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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1581) hide show
  1. package/out/analyze-query/src/bin-analyze.js +268 -257
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/analyze-query/src/bin-transform.js +31 -23
  4. package/out/analyze-query/src/bin-transform.js.map +1 -1
  5. package/out/analyze-query/src/explain-queries.js +13 -16
  6. package/out/analyze-query/src/explain-queries.js.map +1 -1
  7. package/out/analyze-query/src/run-ast.d.ts +3 -2
  8. package/out/analyze-query/src/run-ast.d.ts.map +1 -1
  9. package/out/analyze-query/src/run-ast.js +76 -74
  10. package/out/analyze-query/src/run-ast.js.map +1 -1
  11. package/out/ast-to-zql/src/ast-to-zql.js +146 -180
  12. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
  13. package/out/ast-to-zql/src/bin.js +51 -54
  14. package/out/ast-to-zql/src/bin.js.map +1 -1
  15. package/out/ast-to-zql/src/format.js +15 -14
  16. package/out/ast-to-zql/src/format.js.map +1 -1
  17. package/out/datadog/src/datadog-log-sink.js +223 -0
  18. package/out/datadog/src/datadog-log-sink.js.map +1 -0
  19. package/out/otel/src/enabled.js +15 -15
  20. package/out/otel/src/enabled.js.map +1 -1
  21. package/out/otel/src/log-options.js +36 -31
  22. package/out/otel/src/log-options.js.map +1 -1
  23. package/out/otel/src/maybe-time.js +14 -11
  24. package/out/otel/src/maybe-time.js.map +1 -1
  25. package/out/otel/src/span.js +30 -27
  26. package/out/otel/src/span.js.map +1 -1
  27. package/out/otel/src/test-log-config.js +10 -7
  28. package/out/otel/src/test-log-config.js.map +1 -1
  29. package/out/otel/src/version.js +5 -2
  30. package/out/otel/src/version.js.map +1 -1
  31. package/out/replicache/src/async-iterable-to-array.js +11 -0
  32. package/out/replicache/src/async-iterable-to-array.js.map +1 -0
  33. package/out/replicache/src/bg-interval.js +38 -0
  34. package/out/replicache/src/bg-interval.js.map +1 -0
  35. package/out/replicache/src/btree/diff.js +8 -0
  36. package/out/replicache/src/btree/diff.js.map +1 -0
  37. package/out/replicache/src/btree/node.js +400 -0
  38. package/out/replicache/src/btree/node.js.map +1 -0
  39. package/out/replicache/src/btree/read.d.ts +3 -2
  40. package/out/replicache/src/btree/read.d.ts.map +1 -1
  41. package/out/replicache/src/btree/read.js +266 -0
  42. package/out/replicache/src/btree/read.js.map +1 -0
  43. package/out/replicache/src/btree/splice.js +83 -0
  44. package/out/replicache/src/btree/splice.js.map +1 -0
  45. package/out/replicache/src/btree/write.d.ts +1 -1
  46. package/out/replicache/src/btree/write.d.ts.map +1 -1
  47. package/out/replicache/src/btree/write.js +163 -0
  48. package/out/replicache/src/btree/write.js.map +1 -0
  49. package/out/replicache/src/call-default-fetch.js +34 -0
  50. package/out/replicache/src/call-default-fetch.js.map +1 -0
  51. package/out/replicache/src/connection-loop-delegates.js +34 -0
  52. package/out/replicache/src/connection-loop-delegates.js.map +1 -0
  53. package/out/replicache/src/connection-loop.js +251 -0
  54. package/out/replicache/src/connection-loop.js.map +1 -0
  55. package/out/replicache/src/cookies.js +40 -0
  56. package/out/replicache/src/cookies.js.map +1 -0
  57. package/out/replicache/src/dag/chunk.js +59 -0
  58. package/out/replicache/src/dag/chunk.js.map +1 -0
  59. package/out/replicache/src/dag/gc.js +117 -0
  60. package/out/replicache/src/dag/gc.js.map +1 -0
  61. package/out/replicache/src/dag/key.js +20 -0
  62. package/out/replicache/src/dag/key.js.map +1 -0
  63. package/out/replicache/src/dag/lazy-store.d.ts +2 -1
  64. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
  65. package/out/replicache/src/dag/lazy-store.js +515 -0
  66. package/out/replicache/src/dag/lazy-store.js.map +1 -0
  67. package/out/replicache/src/dag/store-impl.js +183 -0
  68. package/out/replicache/src/dag/store-impl.js.map +1 -0
  69. package/out/replicache/src/dag/store.js +27 -0
  70. package/out/replicache/src/dag/store.js.map +1 -0
  71. package/out/replicache/src/dag/visitor.js +22 -0
  72. package/out/replicache/src/dag/visitor.js.map +1 -0
  73. package/out/replicache/src/db/commit.js +358 -0
  74. package/out/replicache/src/db/commit.js.map +1 -0
  75. package/out/replicache/src/db/index-operation-enum.js +7 -0
  76. package/out/replicache/src/db/index-operation-enum.js.map +1 -0
  77. package/out/replicache/src/db/index.js +134 -0
  78. package/out/replicache/src/db/index.js.map +1 -0
  79. package/out/replicache/src/db/meta-type-enum.js +7 -0
  80. package/out/replicache/src/db/meta-type-enum.js.map +1 -0
  81. package/out/replicache/src/db/read.d.ts +3 -2
  82. package/out/replicache/src/db/read.d.ts.map +1 -1
  83. package/out/replicache/src/db/read.js +72 -0
  84. package/out/replicache/src/db/read.js.map +1 -0
  85. package/out/replicache/src/db/rebase.d.ts +2 -2
  86. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  87. package/out/replicache/src/db/rebase.js +85 -0
  88. package/out/replicache/src/db/rebase.js.map +1 -0
  89. package/out/replicache/src/db/write.d.ts +2 -1
  90. package/out/replicache/src/db/write.d.ts.map +1 -1
  91. package/out/replicache/src/db/write.js +296 -0
  92. package/out/replicache/src/db/write.js.map +1 -0
  93. package/out/replicache/src/deleted-clients.js +104 -0
  94. package/out/replicache/src/deleted-clients.js.map +1 -0
  95. package/out/replicache/src/error-responses.js +34 -0
  96. package/out/replicache/src/error-responses.js.map +1 -0
  97. package/out/replicache/src/format-version-enum.js +11 -0
  98. package/out/replicache/src/format-version-enum.js.map +1 -0
  99. package/out/{chunk-EZM3XBAB.js → replicache/src/frozen-json.js} +8 -75
  100. package/out/replicache/src/frozen-json.js.map +1 -0
  101. package/out/replicache/src/get-default-puller.js +61 -0
  102. package/out/replicache/src/get-default-puller.js.map +1 -0
  103. package/out/replicache/src/get-default-pusher.js +39 -0
  104. package/out/replicache/src/get-default-pusher.js.map +1 -0
  105. package/out/replicache/src/get-kv-store-provider.js +23 -0
  106. package/out/replicache/src/get-kv-store-provider.js.map +1 -0
  107. package/out/replicache/src/hash.js +38 -0
  108. package/out/replicache/src/hash.js.map +1 -0
  109. package/out/replicache/src/http-request-info.js +10 -0
  110. package/out/replicache/src/http-request-info.js.map +1 -0
  111. package/out/replicache/src/http-status-unauthorized.js +5 -0
  112. package/out/replicache/src/http-status-unauthorized.js.map +1 -0
  113. package/out/replicache/src/index-defs.js +32 -0
  114. package/out/replicache/src/index-defs.js.map +1 -0
  115. package/out/replicache/src/invoke-kind-enum.js +7 -0
  116. package/out/replicache/src/invoke-kind-enum.js.map +1 -0
  117. package/out/{chunk-ZZXMKAAG.js → replicache/src/kv/expo-sqlite/store.js} +8 -16
  118. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
  119. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +80 -0
  120. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
  121. package/out/replicache/src/kv/idb-store.js +183 -0
  122. package/out/replicache/src/kv/idb-store.js.map +1 -0
  123. package/out/replicache/src/kv/mem-store.js +51 -0
  124. package/out/replicache/src/kv/mem-store.js.map +1 -0
  125. package/out/{op-sqlite.js → replicache/src/kv/op-sqlite/store.js} +7 -18
  126. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
  127. package/out/replicache/src/kv/op-sqlite/types.js +6 -0
  128. package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
  129. package/out/replicache/src/kv/read-impl.js +27 -0
  130. package/out/replicache/src/kv/read-impl.js.map +1 -0
  131. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  132. package/out/{chunk-ECUMGQGC.js → replicache/src/kv/sqlite-store.js} +27 -21
  133. package/out/replicache/src/kv/sqlite-store.js.map +1 -0
  134. package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
  135. package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
  136. package/out/replicache/src/kv/write-impl-base.js +57 -0
  137. package/out/replicache/src/kv/write-impl-base.js.map +1 -0
  138. package/out/replicache/src/kv/write-impl.js +30 -0
  139. package/out/replicache/src/kv/write-impl.js.map +1 -0
  140. package/out/replicache/src/lazy.js +13 -0
  141. package/out/replicache/src/lazy.js.map +1 -0
  142. package/out/replicache/src/log-options.js +9 -0
  143. package/out/replicache/src/log-options.js.map +1 -0
  144. package/out/replicache/src/make-idb-name.js +13 -0
  145. package/out/replicache/src/make-idb-name.js.map +1 -0
  146. package/out/replicache/src/new-client-channel.js +51 -0
  147. package/out/replicache/src/new-client-channel.js.map +1 -0
  148. package/out/replicache/src/on-persist-channel.js +36 -0
  149. package/out/replicache/src/on-persist-channel.js.map +1 -0
  150. package/out/replicache/src/patch-operation.js +42 -0
  151. package/out/replicache/src/patch-operation.js.map +1 -0
  152. package/out/replicache/src/pending-mutations.js +16 -0
  153. package/out/replicache/src/pending-mutations.js.map +1 -0
  154. package/out/replicache/src/persist/client-gc.js +58 -0
  155. package/out/replicache/src/persist/client-gc.js.map +1 -0
  156. package/out/replicache/src/persist/client-group-gc.js +43 -0
  157. package/out/replicache/src/persist/client-group-gc.js.map +1 -0
  158. package/out/replicache/src/persist/client-groups.js +184 -0
  159. package/out/replicache/src/persist/client-groups.js.map +1 -0
  160. package/out/replicache/src/persist/clients.d.ts +3 -2
  161. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  162. package/out/replicache/src/persist/clients.js +353 -0
  163. package/out/replicache/src/persist/clients.js.map +1 -0
  164. package/out/replicache/src/persist/collect-idb-databases.js +188 -0
  165. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
  166. package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
  167. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  168. package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
  169. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  170. package/out/replicache/src/persist/heartbeat.js +48 -0
  171. package/out/replicache/src/persist/heartbeat.js.map +1 -0
  172. package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
  173. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  174. package/out/replicache/src/persist/idb-databases-store.d.ts +1 -0
  175. package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -1
  176. package/out/replicache/src/persist/idb-databases-store.js +103 -0
  177. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  178. package/out/replicache/src/persist/make-client-id.js +12 -0
  179. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  180. package/out/replicache/src/persist/persist.d.ts +2 -2
  181. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  182. package/out/replicache/src/persist/persist.js +183 -0
  183. package/out/replicache/src/persist/persist.js.map +1 -0
  184. package/out/replicache/src/persist/refresh.d.ts +4 -3
  185. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  186. package/out/replicache/src/persist/refresh.js +198 -0
  187. package/out/replicache/src/persist/refresh.js.map +1 -0
  188. package/out/replicache/src/process-scheduler.js +96 -0
  189. package/out/replicache/src/process-scheduler.js.map +1 -0
  190. package/out/replicache/src/pusher.js +33 -0
  191. package/out/replicache/src/pusher.js.map +1 -0
  192. package/out/replicache/src/replicache-impl.d.ts +1 -1
  193. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  194. package/out/replicache/src/replicache-impl.js +1200 -0
  195. package/out/replicache/src/replicache-impl.js.map +1 -0
  196. package/out/replicache/src/replicache-options.d.ts +3 -2
  197. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  198. package/out/replicache/src/report-error.js +6 -0
  199. package/out/replicache/src/report-error.js.map +1 -0
  200. package/out/replicache/src/request-idle.js +13 -0
  201. package/out/replicache/src/request-idle.js.map +1 -0
  202. package/out/replicache/src/scan-iterator.js +146 -0
  203. package/out/replicache/src/scan-iterator.js.map +1 -0
  204. package/out/replicache/src/scan-options.js +45 -0
  205. package/out/replicache/src/scan-options.js.map +1 -0
  206. package/out/replicache/src/set-interval-with-signal.js +12 -0
  207. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  208. package/out/replicache/src/subscriptions.js +355 -0
  209. package/out/replicache/src/subscriptions.js.map +1 -0
  210. package/out/replicache/src/sync/diff.d.ts +3 -2
  211. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  212. package/out/replicache/src/sync/diff.js +72 -0
  213. package/out/replicache/src/sync/diff.js.map +1 -0
  214. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  215. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  216. package/out/replicache/src/sync/ids.js +9 -0
  217. package/out/replicache/src/sync/ids.js.map +1 -0
  218. package/out/replicache/src/sync/patch.js +49 -0
  219. package/out/replicache/src/sync/patch.js.map +1 -0
  220. package/out/replicache/src/sync/pull-error.js +16 -0
  221. package/out/replicache/src/sync/pull-error.js.map +1 -0
  222. package/out/replicache/src/sync/pull.d.ts +3 -2
  223. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  224. package/out/replicache/src/sync/pull.js +301 -0
  225. package/out/replicache/src/sync/pull.js.map +1 -0
  226. package/out/replicache/src/sync/push.js +88 -0
  227. package/out/replicache/src/sync/push.js.map +1 -0
  228. package/out/replicache/src/sync/request-id.js +20 -0
  229. package/out/replicache/src/sync/request-id.js.map +1 -0
  230. package/out/replicache/src/sync/sync-head-name.js +5 -0
  231. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  232. package/out/replicache/src/to-error.js +10 -0
  233. package/out/replicache/src/to-error.js.map +1 -0
  234. package/out/replicache/src/transaction-closed-error.js +19 -0
  235. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  236. package/out/replicache/src/transactions.js +152 -0
  237. package/out/replicache/src/transactions.js.map +1 -0
  238. package/out/replicache/src/version.js +5 -0
  239. package/out/replicache/src/version.js.map +1 -0
  240. package/out/replicache/src/with-transactions.js +28 -0
  241. package/out/replicache/src/with-transactions.js.map +1 -0
  242. package/out/shared/src/abort-error.js +6 -3
  243. package/out/shared/src/abort-error.js.map +1 -1
  244. package/out/shared/src/arrays.js +45 -43
  245. package/out/shared/src/arrays.js.map +1 -1
  246. package/out/shared/src/asserts.js +64 -68
  247. package/out/shared/src/asserts.js.map +1 -1
  248. package/out/shared/src/bigint-json.js +38 -42
  249. package/out/shared/src/bigint-json.js.map +1 -1
  250. package/out/shared/src/binary-search.js +18 -29
  251. package/out/shared/src/binary-search.js.map +1 -1
  252. package/out/shared/src/broadcast-channel.js +24 -0
  253. package/out/shared/src/broadcast-channel.js.map +1 -0
  254. package/out/shared/src/browser-env.js +25 -0
  255. package/out/shared/src/browser-env.js.map +1 -0
  256. package/out/shared/src/btree-set.js +464 -507
  257. package/out/shared/src/btree-set.js.map +1 -1
  258. package/out/shared/src/cache.js +34 -38
  259. package/out/shared/src/cache.js.map +1 -1
  260. package/out/shared/src/centroid.js +24 -24
  261. package/out/shared/src/centroid.js.map +1 -1
  262. package/out/shared/src/config.js +6 -3
  263. package/out/shared/src/config.js.map +1 -1
  264. package/out/shared/src/custom-key-map.js +58 -64
  265. package/out/shared/src/custom-key-map.js.map +1 -1
  266. package/out/shared/src/custom-key-set.js +51 -57
  267. package/out/shared/src/custom-key-set.js.map +1 -1
  268. package/out/shared/src/deep-clone.js +46 -0
  269. package/out/shared/src/deep-clone.js.map +1 -0
  270. package/out/shared/src/deep-merge.d.ts +26 -4
  271. package/out/shared/src/deep-merge.d.ts.map +1 -1
  272. package/out/shared/src/deep-merge.js +28 -0
  273. package/out/shared/src/deep-merge.js.map +1 -0
  274. package/out/shared/src/document-visible.js +74 -0
  275. package/out/shared/src/document-visible.js.map +1 -0
  276. package/out/shared/src/dotenv.js +5 -7
  277. package/out/shared/src/dotenv.js.map +1 -1
  278. package/out/shared/src/error.js +57 -56
  279. package/out/shared/src/error.js.map +1 -1
  280. package/out/shared/src/has-own.js +5 -3
  281. package/out/shared/src/has-own.js.map +1 -1
  282. package/out/shared/src/hash.js +15 -14
  283. package/out/shared/src/hash.js.map +1 -1
  284. package/out/shared/src/iterables.d.ts +0 -1
  285. package/out/shared/src/iterables.d.ts.map +1 -1
  286. package/out/shared/src/iterables.js +44 -80
  287. package/out/shared/src/iterables.js.map +1 -1
  288. package/out/shared/src/json-schema.js +30 -33
  289. package/out/shared/src/json-schema.js.map +1 -1
  290. package/out/shared/src/json.js +128 -143
  291. package/out/shared/src/json.js.map +1 -1
  292. package/out/shared/src/logging-test-utils.js +12 -19
  293. package/out/shared/src/logging-test-utils.js.map +1 -1
  294. package/out/shared/src/logging.d.ts.map +1 -1
  295. package/out/shared/src/logging.js +99 -83
  296. package/out/shared/src/logging.js.map +1 -1
  297. package/out/shared/src/must.js +9 -7
  298. package/out/shared/src/must.js.map +1 -1
  299. package/out/shared/src/navigator.js +5 -0
  300. package/out/shared/src/navigator.js.map +1 -0
  301. package/out/shared/src/object-traversal.d.ts +19 -0
  302. package/out/shared/src/object-traversal.d.ts.map +1 -0
  303. package/out/shared/src/object-traversal.js +27 -0
  304. package/out/shared/src/object-traversal.js.map +1 -0
  305. package/out/shared/src/objects.js +21 -22
  306. package/out/shared/src/objects.js.map +1 -1
  307. package/out/shared/src/options.d.ts +2 -0
  308. package/out/shared/src/options.d.ts.map +1 -1
  309. package/out/shared/src/options.js +289 -318
  310. package/out/shared/src/options.js.map +1 -1
  311. package/out/shared/src/parse-big-int.js +12 -10
  312. package/out/shared/src/parse-big-int.js.map +1 -1
  313. package/out/shared/src/promise-race.js +20 -0
  314. package/out/shared/src/promise-race.js.map +1 -0
  315. package/out/shared/src/queue.js +119 -122
  316. package/out/shared/src/queue.js.map +1 -1
  317. package/out/shared/src/rand.js +8 -10
  318. package/out/shared/src/rand.js.map +1 -1
  319. package/out/shared/src/random-uint64.js +9 -0
  320. package/out/shared/src/random-uint64.js.map +1 -0
  321. package/out/shared/src/random-values.js +13 -0
  322. package/out/shared/src/random-values.js.map +1 -0
  323. package/out/shared/src/record-proxy.d.ts +13 -0
  324. package/out/shared/src/record-proxy.d.ts.map +1 -0
  325. package/out/shared/src/record-proxy.js +59 -0
  326. package/out/shared/src/record-proxy.js.map +1 -0
  327. package/out/shared/src/resolved-promises.js +12 -9
  328. package/out/shared/src/resolved-promises.js.map +1 -1
  329. package/out/shared/src/sentinels.js +13 -6
  330. package/out/shared/src/sentinels.js.map +1 -1
  331. package/out/shared/src/set-utils.js +63 -62
  332. package/out/shared/src/set-utils.js.map +1 -1
  333. package/out/shared/src/size-of-value.js +58 -0
  334. package/out/shared/src/size-of-value.js.map +1 -0
  335. package/out/shared/src/sleep.js +45 -53
  336. package/out/shared/src/sleep.js.map +1 -1
  337. package/out/shared/src/string-compare.js +12 -9
  338. package/out/shared/src/string-compare.js.map +1 -1
  339. package/out/shared/src/subscribable.js +34 -0
  340. package/out/shared/src/subscribable.js.map +1 -0
  341. package/out/shared/src/tdigest-schema.js +7 -7
  342. package/out/shared/src/tdigest-schema.js.map +1 -1
  343. package/out/shared/src/tdigest.js +247 -271
  344. package/out/shared/src/tdigest.js.map +1 -1
  345. package/out/shared/src/valita.js +195 -207
  346. package/out/shared/src/valita.js.map +1 -1
  347. package/out/z2s/src/compiler.d.ts +2 -2
  348. package/out/z2s/src/compiler.d.ts.map +1 -1
  349. package/out/z2s/src/compiler.js +439 -310
  350. package/out/z2s/src/compiler.js.map +1 -1
  351. package/out/z2s/src/sql.d.ts +1 -1
  352. package/out/z2s/src/sql.d.ts.map +1 -1
  353. package/out/z2s/src/sql.js +186 -218
  354. package/out/z2s/src/sql.js.map +1 -1
  355. package/out/zero/package.json.js +9 -0
  356. package/out/zero/package.json.js.map +1 -0
  357. package/out/zero/src/adapters/drizzle.d.ts +1 -1
  358. package/out/zero/src/adapters/drizzle.d.ts.map +1 -1
  359. package/out/zero/src/adapters/drizzle.js +8 -2
  360. package/out/zero/src/adapters/drizzle.js.map +1 -1
  361. package/out/zero/src/adapters/pg.js +7 -2
  362. package/out/zero/src/adapters/pg.js.map +1 -1
  363. package/out/zero/src/adapters/postgresjs.js +7 -2
  364. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  365. package/out/zero/src/analyze-query.js +1 -1
  366. package/out/zero/src/analyze-query.js.map +1 -1
  367. package/out/zero/src/ast-to-zql.js +1 -1
  368. package/out/zero/src/ast-to-zql.js.map +1 -1
  369. package/out/zero/src/bindings.d.ts +2 -0
  370. package/out/zero/src/bindings.d.ts.map +1 -0
  371. package/out/zero/src/bindings.js +27 -0
  372. package/out/zero/src/bindings.js.map +1 -0
  373. package/out/zero/src/build-schema.js +3 -5
  374. package/out/zero/src/build-schema.js.map +1 -1
  375. package/out/zero/src/change-protocol/v0.js +5 -3
  376. package/out/zero/src/change-protocol/v0.js.map +1 -1
  377. package/out/zero/src/cli.js +2 -2
  378. package/out/zero/src/cli.js.map +1 -1
  379. package/out/zero/src/deploy-permissions.js +1 -1
  380. package/out/zero/src/deploy-permissions.js.map +1 -1
  381. package/out/zero/src/expo-sqlite.js +5 -0
  382. package/out/zero/src/expo-sqlite.js.map +1 -0
  383. package/out/zero/src/op-sqlite.js +5 -0
  384. package/out/zero/src/op-sqlite.js.map +1 -0
  385. package/out/zero/src/pg.js +32 -3
  386. package/out/zero/src/pg.js.map +1 -1
  387. package/out/zero/src/react-native.js +13 -0
  388. package/out/zero/src/react-native.js.map +1 -0
  389. package/out/zero/src/react.js +15 -0
  390. package/out/zero/src/react.js.map +1 -0
  391. package/out/zero/src/server.js +28 -3
  392. package/out/zero/src/server.js.map +1 -1
  393. package/out/zero/src/solid.js +15 -0
  394. package/out/zero/src/solid.js.map +1 -0
  395. package/out/zero/src/sqlite.js +7 -0
  396. package/out/zero/src/sqlite.js.map +1 -0
  397. package/out/zero/src/transform-query.js +1 -1
  398. package/out/zero/src/transform-query.js.map +1 -1
  399. package/out/zero/src/zero-cache-dev.js +133 -105
  400. package/out/zero/src/zero-cache-dev.js.map +1 -1
  401. package/out/zero/src/zero-out.js +6 -6
  402. package/out/zero/src/zero-out.js.map +1 -1
  403. package/out/zero/src/zero.js +73 -0
  404. package/out/zero/src/zero.js.map +1 -0
  405. package/out/zero/src/zqlite.js +11 -3
  406. package/out/zero/src/zqlite.js.map +1 -1
  407. package/out/zero-cache/src/auth/jwt.d.ts +3 -0
  408. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
  409. package/out/zero-cache/src/auth/jwt.js +33 -38
  410. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  411. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  412. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  413. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  414. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  415. package/out/zero-cache/src/auth/read-authorizer.d.ts +1 -1
  416. package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
  417. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  418. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  419. package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
  420. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  421. package/out/zero-cache/src/auth/write-authorizer.js +395 -328
  422. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  423. package/out/zero-cache/src/config/network.js +42 -45
  424. package/out/zero-cache/src/config/network.js.map +1 -1
  425. package/out/zero-cache/src/config/normalize.js +86 -83
  426. package/out/zero-cache/src/config/normalize.js.map +1 -1
  427. package/out/zero-cache/src/config/zero-config.d.ts +63 -0
  428. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  429. package/out/zero-cache/src/config/zero-config.js +741 -682
  430. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  431. package/out/zero-cache/src/custom/fetch.d.ts +5 -5
  432. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  433. package/out/zero-cache/src/custom/fetch.js +170 -162
  434. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  435. package/out/zero-cache/src/custom-queries/transform-query.d.ts +10 -3
  436. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  437. package/out/zero-cache/src/custom-queries/transform-query.js +101 -109
  438. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  439. package/out/zero-cache/src/db/create.js +32 -36
  440. package/out/zero-cache/src/db/create.js.map +1 -1
  441. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  442. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  443. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  444. package/out/zero-cache/src/db/lite-tables.js +150 -174
  445. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  446. package/out/zero-cache/src/db/migration-lite.js +170 -165
  447. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  448. package/out/zero-cache/src/db/migration.js +157 -137
  449. package/out/zero-cache/src/db/migration.js.map +1 -1
  450. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  451. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  452. package/out/zero-cache/src/db/mode-enum.js +9 -3
  453. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  454. package/out/zero-cache/src/db/pg-copy.js +51 -90
  455. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  456. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  457. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  458. package/out/zero-cache/src/db/pg-to-lite.js +116 -97
  459. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  460. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  461. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  462. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  463. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  464. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  465. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  466. package/out/zero-cache/src/db/specs.d.ts +1 -7
  467. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  468. package/out/zero-cache/src/db/specs.js +66 -40
  469. package/out/zero-cache/src/db/specs.js.map +1 -1
  470. package/out/zero-cache/src/db/statements.d.ts +1 -1
  471. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  472. package/out/zero-cache/src/db/statements.js +59 -52
  473. package/out/zero-cache/src/db/statements.js.map +1 -1
  474. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  475. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  476. package/out/zero-cache/src/db/transaction-pool.js +372 -501
  477. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  478. package/out/zero-cache/src/db/warmup.js +25 -12
  479. package/out/zero-cache/src/db/warmup.js.map +1 -1
  480. package/out/zero-cache/src/observability/events.js +71 -82
  481. package/out/zero-cache/src/observability/events.js.map +1 -1
  482. package/out/zero-cache/src/observability/metrics.js +54 -32
  483. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  484. package/out/zero-cache/src/scripts/decommission.js +47 -43
  485. package/out/zero-cache/src/scripts/decommission.js.map +1 -1
  486. package/out/zero-cache/src/scripts/deploy-permissions.js +128 -118
  487. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  488. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  489. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  490. package/out/zero-cache/src/scripts/permissions.js +108 -100
  491. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  492. package/out/zero-cache/src/server/anonymous-otel-start.d.ts +10 -1
  493. package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +1 -1
  494. package/out/zero-cache/src/server/anonymous-otel-start.js +426 -366
  495. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  496. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  497. package/out/zero-cache/src/server/change-streamer.js +99 -64
  498. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  499. package/out/zero-cache/src/server/inspector-delegate.js +112 -109
  500. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  501. package/out/zero-cache/src/server/logging.d.ts +1 -1
  502. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  503. package/out/zero-cache/src/server/logging.js +26 -19
  504. package/out/zero-cache/src/server/logging.js.map +1 -1
  505. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  506. package/out/zero-cache/src/server/main.js +137 -120
  507. package/out/zero-cache/src/server/main.js.map +1 -1
  508. package/out/zero-cache/src/server/mutator.js +19 -0
  509. package/out/zero-cache/src/server/mutator.js.map +1 -0
  510. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  511. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  512. package/out/zero-cache/src/server/otel-diag-logger.js +48 -71
  513. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  514. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  515. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  516. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  517. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  518. package/out/zero-cache/src/server/otel-start.js +53 -68
  519. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  520. package/out/zero-cache/src/server/reaper.js +34 -26
  521. package/out/zero-cache/src/server/reaper.js.map +1 -1
  522. package/out/zero-cache/src/server/replicator.js +53 -31
  523. package/out/zero-cache/src/server/replicator.js.map +1 -1
  524. package/out/zero-cache/src/server/runner/main.js +6 -4
  525. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  526. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  527. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  528. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  529. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  530. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  531. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  532. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  533. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  534. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  535. package/out/zero-cache/src/server/syncer.js +130 -63
  536. package/out/zero-cache/src/server/syncer.js.map +1 -1
  537. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  538. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  539. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  540. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  541. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  542. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  543. package/out/zero-cache/src/server/worker-urls.js +21 -0
  544. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  545. package/out/zero-cache/src/services/analyze.d.ts +4 -9
  546. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  547. package/out/zero-cache/src/services/analyze.js +118 -121
  548. package/out/zero-cache/src/services/analyze.js.map +1 -1
  549. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  550. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  551. package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
  552. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  553. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  554. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  555. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  556. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  557. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  558. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  559. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  560. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  561. package/out/zero-cache/src/services/change-source/pg/change-source.js +622 -623
  562. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  563. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  564. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  565. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  566. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  567. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  568. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  569. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  570. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  571. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  572. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  573. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  574. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  575. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  576. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  577. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  578. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  579. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
  580. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  581. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  582. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  583. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  584. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
  585. package/out/zero-cache/src/services/change-source/pg/schema/published.js +67 -74
  586. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  587. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  588. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  589. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  590. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  591. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  592. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  593. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  594. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
  595. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
  596. package/out/zero-cache/src/services/change-source/protocol/current/control.js +13 -19
  597. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  598. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  599. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  600. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
  601. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  602. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  603. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  604. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts +8 -0
  605. package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts.map +1 -0
  606. package/out/zero-cache/src/services/change-source/protocol/current/json.js +19 -0
  607. package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
  608. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  609. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  610. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  611. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  612. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  613. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  614. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  615. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  616. package/out/zero-cache/src/services/change-source/protocol/current.d.ts +1 -0
  617. package/out/zero-cache/src/services/change-source/protocol/current.d.ts.map +1 -1
  618. package/out/zero-cache/src/services/change-source/protocol/current.js +38 -7
  619. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  620. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  621. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  622. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  623. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  624. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  625. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  626. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  627. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -4
  628. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  629. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +208 -157
  630. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  631. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  632. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  633. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +242 -349
  634. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  635. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
  636. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  637. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  638. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  639. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  640. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  641. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  642. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  643. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  644. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  645. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  646. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  647. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  648. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  649. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  650. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  651. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  652. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  653. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  654. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  655. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  656. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  657. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  658. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  659. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  660. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  661. package/out/zero-cache/src/services/change-streamer/storer.js +308 -353
  662. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  663. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  664. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  665. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  666. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  667. package/out/zero-cache/src/services/heapz.js +21 -25
  668. package/out/zero-cache/src/services/heapz.js.map +1 -1
  669. package/out/zero-cache/src/services/http-service.d.ts +5 -5
  670. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  671. package/out/zero-cache/src/services/http-service.js +57 -59
  672. package/out/zero-cache/src/services/http-service.js.map +1 -1
  673. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  674. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  675. package/out/zero-cache/src/services/life-cycle.js +216 -255
  676. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  677. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  678. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  679. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  680. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  681. package/out/zero-cache/src/services/litestream/commands.js +202 -154
  682. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  683. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  684. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  685. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  686. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  687. package/out/zero-cache/src/services/mutagen/mutagen.js +271 -267
  688. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  689. package/out/zero-cache/src/services/mutagen/pusher.d.ts +202 -2
  690. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  691. package/out/zero-cache/src/services/mutagen/pusher.js +354 -348
  692. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  693. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  694. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  695. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  696. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  697. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  698. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  699. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  700. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  701. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  702. package/out/zero-cache/src/services/replicator/replication-status.d.ts +2 -0
  703. package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
  704. package/out/zero-cache/src/services/replicator/replication-status.js +113 -83
  705. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  706. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  707. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  708. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  709. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  710. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  711. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  712. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  713. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  714. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  715. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  716. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  717. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  718. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  719. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  720. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  721. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  722. package/out/zero-cache/src/services/run-ast.js +91 -78
  723. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  724. package/out/zero-cache/src/services/runner.d.ts +1 -1
  725. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  726. package/out/zero-cache/src/services/runner.js +40 -40
  727. package/out/zero-cache/src/services/runner.js.map +1 -1
  728. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  729. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  730. package/out/zero-cache/src/services/running-state.js +122 -119
  731. package/out/zero-cache/src/services/running-state.js.map +1 -1
  732. package/out/zero-cache/src/services/statz.js +184 -162
  733. package/out/zero-cache/src/services/statz.js.map +1 -1
  734. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +2 -1
  735. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +1 -1
  736. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +56 -42
  737. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  738. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
  739. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  740. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
  742. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  743. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +1 -1
  744. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  745. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +110 -96
  746. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  747. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -5
  748. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  749. package/out/zero-cache/src/services/view-syncer/cvr-store.js +676 -611
  750. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  751. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +4 -1
  752. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  753. package/out/zero-cache/src/services/view-syncer/cvr.js +643 -694
  754. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  755. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -60
  756. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  757. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  758. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  759. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  760. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  761. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +23 -22
  762. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  763. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +584 -461
  764. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  765. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  766. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  767. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  768. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  769. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +1 -0
  770. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  771. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +79 -131
  772. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  773. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/schema/init.js +207 -131
  775. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  776. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  777. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  778. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  779. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +5 -5
  780. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  781. package/out/zero-cache/src/services/view-syncer/snapshotter.js +309 -337
  782. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  783. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  784. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  785. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +5 -4
  786. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  787. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1514 -1311
  788. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  789. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  790. package/out/zero-cache/src/types/error-with-level.js +30 -21
  791. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  792. package/out/zero-cache/src/types/http.js +27 -14
  793. package/out/zero-cache/src/types/http.js.map +1 -1
  794. package/out/zero-cache/src/types/lexi-version.js +46 -31
  795. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  796. package/out/zero-cache/src/types/lite.js +118 -125
  797. package/out/zero-cache/src/types/lite.js.map +1 -1
  798. package/out/zero-cache/src/types/names.js +6 -3
  799. package/out/zero-cache/src/types/names.js.map +1 -1
  800. package/out/zero-cache/src/types/pg-data-type.js +74 -68
  801. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  802. package/out/zero-cache/src/types/pg-types.js +17 -72
  803. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  804. package/out/zero-cache/src/types/pg.d.ts +1 -1
  805. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  806. package/out/zero-cache/src/types/pg.js +213 -233
  807. package/out/zero-cache/src/types/pg.js.map +1 -1
  808. package/out/zero-cache/src/types/processes.d.ts +2 -2
  809. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  810. package/out/zero-cache/src/types/processes.js +95 -143
  811. package/out/zero-cache/src/types/processes.js.map +1 -1
  812. package/out/zero-cache/src/types/profiler.js +29 -30
  813. package/out/zero-cache/src/types/profiler.js.map +1 -1
  814. package/out/zero-cache/src/types/row-key.js +30 -68
  815. package/out/zero-cache/src/types/row-key.js.map +1 -1
  816. package/out/zero-cache/src/types/schema-versions.js +25 -19
  817. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  818. package/out/zero-cache/src/types/shards.js +50 -36
  819. package/out/zero-cache/src/types/shards.js.map +1 -1
  820. package/out/zero-cache/src/types/sql.js +9 -13
  821. package/out/zero-cache/src/types/sql.js.map +1 -1
  822. package/out/zero-cache/src/types/streams.js +245 -254
  823. package/out/zero-cache/src/types/streams.js.map +1 -1
  824. package/out/zero-cache/src/types/strings.js +14 -11
  825. package/out/zero-cache/src/types/strings.js.map +1 -1
  826. package/out/zero-cache/src/types/subscription.js +200 -259
  827. package/out/zero-cache/src/types/subscription.js.map +1 -1
  828. package/out/zero-cache/src/types/url-params.js +35 -30
  829. package/out/zero-cache/src/types/url-params.js.map +1 -1
  830. package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
  831. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  832. package/out/zero-cache/src/types/websocket-handoff.js +68 -76
  833. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  834. package/out/zero-cache/src/types/ws.js +56 -59
  835. package/out/zero-cache/src/types/ws.js.map +1 -1
  836. package/out/zero-cache/src/workers/connect-params.d.ts +1 -0
  837. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
  838. package/out/zero-cache/src/workers/connect-params.js +46 -40
  839. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  840. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  841. package/out/zero-cache/src/workers/connection.js +282 -243
  842. package/out/zero-cache/src/workers/connection.js.map +1 -1
  843. package/out/zero-cache/src/workers/mutator.js +24 -0
  844. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  845. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  846. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  847. package/out/zero-cache/src/workers/replicator.js +103 -106
  848. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  849. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  850. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +181 -147
  851. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  852. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  853. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  854. package/out/zero-cache/src/workers/syncer.js +192 -169
  855. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  856. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  857. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  858. package/out/zero-client/src/client/bindings.d.ts +13 -0
  859. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  860. package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
  861. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  862. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  863. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  864. package/out/zero-client/src/client/connection-manager.d.ts +20 -40
  865. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  866. package/out/zero-client/src/client/connection-manager.js +310 -0
  867. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  868. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  869. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  870. package/out/zero-client/src/client/connection.d.ts +47 -4
  871. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  872. package/out/zero-client/src/client/connection.js +110 -0
  873. package/out/zero-client/src/client/connection.js.map +1 -0
  874. package/out/zero-client/src/client/context.d.ts +9 -10
  875. package/out/zero-client/src/client/context.d.ts.map +1 -1
  876. package/out/zero-client/src/client/context.js +104 -0
  877. package/out/zero-client/src/client/context.js.map +1 -0
  878. package/out/zero-client/src/client/crud-impl.d.ts +11 -0
  879. package/out/zero-client/src/client/crud-impl.d.ts.map +1 -0
  880. package/out/zero-client/src/client/crud-impl.js +102 -0
  881. package/out/zero-client/src/client/crud-impl.js.map +1 -0
  882. package/out/zero-client/src/client/crud.d.ts +15 -46
  883. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  884. package/out/zero-client/src/client/crud.js +139 -0
  885. package/out/zero-client/src/client/crud.js.map +1 -0
  886. package/out/zero-client/src/client/custom.d.ts +51 -25
  887. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  888. package/out/zero-client/src/client/custom.js +87 -0
  889. package/out/zero-client/src/client/custom.js.map +1 -0
  890. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  891. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  892. package/out/zero-client/src/client/delete-clients-manager.js +98 -0
  893. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  894. package/out/zero-client/src/client/enable-analytics.js +18 -0
  895. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  896. package/out/zero-client/src/client/error.d.ts +30 -12
  897. package/out/zero-client/src/client/error.d.ts.map +1 -1
  898. package/out/zero-client/src/client/error.js +148 -0
  899. package/out/zero-client/src/client/error.js.map +1 -0
  900. package/out/zero-client/src/client/http-string.js +11 -0
  901. package/out/zero-client/src/client/http-string.js.map +1 -0
  902. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  903. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  904. package/out/zero-client/src/client/inspector/client.js +28 -0
  905. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  906. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  907. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  908. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  909. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  910. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  911. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  912. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  913. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  914. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  915. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  916. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  917. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  918. package/out/zero-client/src/client/inspector/query.js +82 -0
  919. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  920. package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
  921. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  922. package/out/zero-client/src/client/ivm-branch.js +156 -0
  923. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  924. package/out/zero-client/src/client/keys.js +45 -0
  925. package/out/zero-client/src/client/keys.js.map +1 -0
  926. package/out/zero-client/src/client/log-options.js +60 -0
  927. package/out/zero-client/src/client/log-options.js.map +1 -0
  928. package/out/zero-client/src/client/make-mutate-property.d.ts +40 -0
  929. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  930. package/out/zero-client/src/client/make-mutate-property.js +33 -0
  931. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  932. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  933. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  934. package/out/zero-client/src/client/make-replicache-mutators.js +108 -0
  935. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  936. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  937. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  938. package/out/zero-client/src/client/metrics.d.ts +2 -2
  939. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  940. package/out/zero-client/src/client/metrics.js +249 -0
  941. package/out/zero-client/src/client/metrics.js.map +1 -0
  942. package/out/zero-client/src/client/mutation-tracker.d.ts +12 -4
  943. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  944. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  945. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  946. package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
  947. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  948. package/out/zero-client/src/client/mutator-proxy.js +144 -0
  949. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  950. package/out/zero-client/src/client/options.d.ts +70 -10
  951. package/out/zero-client/src/client/options.d.ts.map +1 -1
  952. package/out/zero-client/src/client/options.js +11 -0
  953. package/out/zero-client/src/client/options.js.map +1 -0
  954. package/out/zero-client/src/client/query-manager.d.ts +9 -2
  955. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  956. package/out/zero-client/src/client/query-manager.js +377 -0
  957. package/out/zero-client/src/client/query-manager.js.map +1 -0
  958. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  959. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  960. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  961. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  962. package/out/zero-client/src/client/server-option.js +64 -0
  963. package/out/zero-client/src/client/server-option.js.map +1 -0
  964. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  965. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  966. package/out/zero-client/src/client/version.js +5 -0
  967. package/out/zero-client/src/client/version.js.map +1 -0
  968. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  969. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  970. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  971. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  972. package/out/zero-client/src/client/zero-rep.d.ts +3 -2
  973. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  974. package/out/zero-client/src/client/zero-rep.js +72 -0
  975. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  976. package/out/zero-client/src/client/zero.d.ts +106 -26
  977. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  978. package/out/zero-client/src/client/zero.js +1787 -0
  979. package/out/zero-client/src/client/zero.js.map +1 -0
  980. package/out/zero-client/src/mod.d.ts +24 -20
  981. package/out/zero-client/src/mod.d.ts.map +1 -1
  982. package/out/zero-client/src/types/query-result.d.ts +5 -4
  983. package/out/zero-client/src/types/query-result.d.ts.map +1 -1
  984. package/out/zero-client/src/util/nanoid.js +21 -0
  985. package/out/zero-client/src/util/nanoid.js.map +1 -0
  986. package/out/zero-client/src/util/socket.js +7 -0
  987. package/out/zero-client/src/util/socket.js.map +1 -0
  988. package/out/zero-events/src/status.d.ts +1 -1
  989. package/out/zero-events/src/status.d.ts.map +1 -1
  990. package/out/zero-protocol/src/analyze-query-result.d.ts +238 -1
  991. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  992. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  993. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  994. package/out/zero-protocol/src/application-error.d.ts +2 -8
  995. package/out/zero-protocol/src/application-error.d.ts.map +1 -1
  996. package/out/zero-protocol/src/application-error.js +35 -34
  997. package/out/zero-protocol/src/application-error.js.map +1 -1
  998. package/out/zero-protocol/src/ast.d.ts +2 -2
  999. package/out/zero-protocol/src/ast.js +296 -277
  1000. package/out/zero-protocol/src/ast.js.map +1 -1
  1001. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  1002. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  1003. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  1004. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  1005. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  1006. package/out/zero-protocol/src/client-schema.js +40 -26
  1007. package/out/zero-protocol/src/client-schema.js.map +1 -1
  1008. package/out/zero-protocol/src/close-connection.js +11 -18
  1009. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1010. package/out/zero-protocol/src/connect.d.ts +4 -4
  1011. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1012. package/out/zero-protocol/src/connect.js +50 -51
  1013. package/out/zero-protocol/src/connect.js.map +1 -1
  1014. package/out/zero-protocol/src/custom-queries.d.ts +4 -4
  1015. package/out/zero-protocol/src/custom-queries.js +61 -39
  1016. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1017. package/out/zero-protocol/src/data.js +9 -4
  1018. package/out/zero-protocol/src/data.js.map +1 -1
  1019. package/out/zero-protocol/src/delete-clients.js +16 -9
  1020. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1021. package/out/zero-protocol/src/down.d.ts +107 -7
  1022. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1023. package/out/zero-protocol/src/down.js +20 -4
  1024. package/out/zero-protocol/src/down.js.map +1 -1
  1025. package/out/zero-protocol/src/error-kind-enum.js +41 -23
  1026. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1027. package/out/zero-protocol/src/error-origin-enum.js +9 -4
  1028. package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
  1029. package/out/zero-protocol/src/error-reason-enum.js +17 -8
  1030. package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
  1031. package/out/zero-protocol/src/error.d.ts +17 -17
  1032. package/out/zero-protocol/src/error.js +151 -89
  1033. package/out/zero-protocol/src/error.js.map +1 -1
  1034. package/out/zero-protocol/src/inspect-down.d.ts +321 -21
  1035. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1036. package/out/zero-protocol/src/inspect-down.js +72 -54
  1037. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1038. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1039. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1040. package/out/zero-protocol/src/inspect-up.js +39 -26
  1041. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1042. package/out/zero-protocol/src/mutation-id.js +9 -5
  1043. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  1044. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1045. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1046. package/out/zero-protocol/src/mutations-patch.js +16 -17
  1047. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1048. package/out/zero-protocol/src/ping.js +9 -4
  1049. package/out/zero-protocol/src/ping.js.map +1 -1
  1050. package/out/zero-protocol/src/poke.js +55 -72
  1051. package/out/zero-protocol/src/poke.js.map +1 -1
  1052. package/out/zero-protocol/src/pong.js +9 -4
  1053. package/out/zero-protocol/src/pong.js.map +1 -1
  1054. package/out/zero-protocol/src/primary-key.js +19 -5
  1055. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1056. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1057. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1058. package/out/zero-protocol/src/protocol-version.js +7 -58
  1059. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1060. package/out/zero-protocol/src/pull.js +26 -19
  1061. package/out/zero-protocol/src/pull.js.map +1 -1
  1062. package/out/zero-protocol/src/push.d.ts +4 -4
  1063. package/out/zero-protocol/src/push.js +179 -176
  1064. package/out/zero-protocol/src/push.js.map +1 -1
  1065. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1066. package/out/zero-protocol/src/queries-patch.js +29 -22
  1067. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1068. package/out/zero-protocol/src/query-hash.js +18 -14
  1069. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1070. package/out/zero-protocol/src/row-patch.js +29 -20
  1071. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1072. package/out/zero-protocol/src/up.d.ts +6 -5
  1073. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1074. package/out/zero-protocol/src/up.js +18 -4
  1075. package/out/zero-protocol/src/up.js.map +1 -1
  1076. package/out/zero-protocol/src/version.js +9 -4
  1077. package/out/zero-protocol/src/version.js.map +1 -1
  1078. package/out/zero-react/src/bindings.d.ts +2 -0
  1079. package/out/zero-react/src/bindings.d.ts.map +1 -0
  1080. package/out/zero-react/src/mod.d.ts +2 -13
  1081. package/out/zero-react/src/mod.d.ts.map +1 -1
  1082. package/out/zero-react/src/use-connection-state.d.ts +9 -0
  1083. package/out/zero-react/src/use-connection-state.d.ts.map +1 -0
  1084. package/out/zero-react/src/use-connection-state.js +14 -0
  1085. package/out/zero-react/src/use-connection-state.js.map +1 -0
  1086. package/out/zero-react/src/use-query.d.ts +5 -9
  1087. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1088. package/out/zero-react/src/use-query.js +289 -0
  1089. package/out/zero-react/src/use-query.js.map +1 -0
  1090. package/out/zero-react/src/use-zero-online.d.ts +1 -1
  1091. package/out/zero-react/src/use-zero-online.js +14 -0
  1092. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1093. package/out/zero-react/src/zero-provider.d.ts +19 -10
  1094. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1095. package/out/zero-react/src/zero-provider.js +77 -0
  1096. package/out/zero-react/src/zero-provider.js.map +1 -0
  1097. package/out/zero-react/src/zero.d.ts +2 -0
  1098. package/out/zero-react/src/zero.d.ts.map +1 -0
  1099. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1100. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1101. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1102. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1103. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1104. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1105. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1106. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1107. package/out/zero-schema/src/compiled-permissions.js +23 -19
  1108. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1109. package/out/zero-schema/src/name-mapper.js +43 -38
  1110. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1111. package/out/zero-schema/src/permissions.d.ts +12 -9
  1112. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1113. package/out/zero-schema/src/permissions.js +193 -0
  1114. package/out/zero-schema/src/permissions.js.map +1 -0
  1115. package/out/zero-schema/src/schema-config.d.ts +1 -1
  1116. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1117. package/out/zero-schema/src/schema-config.js +35 -51
  1118. package/out/zero-schema/src/schema-config.js.map +1 -1
  1119. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1120. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1121. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1122. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1123. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1124. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1125. package/out/zero-server/src/adapters/pg.js +54 -74
  1126. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1127. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1128. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1129. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1130. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1131. package/out/zero-server/src/custom.d.ts +57 -19
  1132. package/out/zero-server/src/custom.d.ts.map +1 -1
  1133. package/out/zero-server/src/custom.js +289 -107
  1134. package/out/zero-server/src/custom.js.map +1 -1
  1135. package/out/zero-server/src/logging.js +7 -4
  1136. package/out/zero-server/src/logging.js.map +1 -1
  1137. package/out/zero-server/src/mod.d.ts +1 -1
  1138. package/out/zero-server/src/mod.d.ts.map +1 -1
  1139. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1140. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1141. package/out/zero-server/src/pg-query-executor.js +20 -0
  1142. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1143. package/out/zero-server/src/process-mutations.d.ts +13 -13
  1144. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1145. package/out/zero-server/src/process-mutations.js +328 -272
  1146. package/out/zero-server/src/process-mutations.js.map +1 -1
  1147. package/out/zero-server/src/push-processor.d.ts +5 -3
  1148. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1149. package/out/zero-server/src/push-processor.js +50 -32
  1150. package/out/zero-server/src/push-processor.js.map +1 -1
  1151. package/out/zero-server/src/queries/process-queries.d.ts +76 -3
  1152. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1153. package/out/zero-server/src/queries/process-queries.js +104 -93
  1154. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1155. package/out/zero-server/src/schema.d.ts +2 -2
  1156. package/out/zero-server/src/schema.d.ts.map +1 -1
  1157. package/out/zero-server/src/schema.js +136 -124
  1158. package/out/zero-server/src/schema.js.map +1 -1
  1159. package/out/zero-server/src/zql-database.d.ts +9 -6
  1160. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1161. package/out/zero-server/src/zql-database.js +56 -51
  1162. package/out/zero-server/src/zql-database.js.map +1 -1
  1163. package/out/zero-solid/src/bindings.d.ts +2 -0
  1164. package/out/zero-solid/src/bindings.d.ts.map +1 -0
  1165. package/out/zero-solid/src/mod.d.ts +1 -9
  1166. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1167. package/out/zero-solid/src/solid-view.d.ts +3 -5
  1168. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1169. package/out/{solid.js → zero-solid/src/solid-view.js} +47 -196
  1170. package/out/zero-solid/src/solid-view.js.map +1 -0
  1171. package/out/zero-solid/src/{use-zero-connection-state.d.ts → use-connection-state.d.ts} +3 -3
  1172. package/out/zero-solid/src/use-connection-state.d.ts.map +1 -0
  1173. package/out/zero-solid/src/use-connection-state.js +17 -0
  1174. package/out/zero-solid/src/use-connection-state.js.map +1 -0
  1175. package/out/zero-solid/src/use-query.d.ts +4 -7
  1176. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1177. package/out/zero-solid/src/use-query.js +92 -0
  1178. package/out/zero-solid/src/use-query.js.map +1 -0
  1179. package/out/zero-solid/src/use-zero-online.d.ts +1 -1
  1180. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1181. package/out/zero-solid/src/use-zero-online.js +15 -0
  1182. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1183. package/out/zero-solid/src/use-zero.d.ts +22 -11
  1184. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1185. package/out/zero-solid/src/use-zero.js +86 -0
  1186. package/out/zero-solid/src/use-zero.js.map +1 -0
  1187. package/out/zero-solid/src/zero.d.ts +2 -0
  1188. package/out/zero-solid/src/zero.d.ts.map +1 -0
  1189. package/out/zero-types/src/default-types.d.ts +38 -0
  1190. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1191. package/out/zero-types/src/format.js +7 -4
  1192. package/out/zero-types/src/format.js.map +1 -1
  1193. package/out/zero-types/src/name-mapper.js +43 -40
  1194. package/out/zero-types/src/name-mapper.js.map +1 -1
  1195. package/out/zero-types/src/schema.d.ts +4 -4
  1196. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1197. package/out/zql/src/builder/builder.d.ts +10 -2
  1198. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1199. package/out/zql/src/builder/builder.js +474 -427
  1200. package/out/zql/src/builder/builder.js.map +1 -1
  1201. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1202. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1203. package/out/zql/src/builder/debug-delegate.js +68 -47
  1204. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1205. package/out/zql/src/builder/filter.js +132 -138
  1206. package/out/zql/src/builder/filter.js.map +1 -1
  1207. package/out/zql/src/builder/like.js +44 -51
  1208. package/out/zql/src/builder/like.js.map +1 -1
  1209. package/out/zql/src/error.d.ts +5 -0
  1210. package/out/zql/src/error.d.ts.map +1 -1
  1211. package/out/zql/src/error.js +9 -6
  1212. package/out/zql/src/error.js.map +1 -1
  1213. package/out/zql/src/ivm/array-view.d.ts +2 -2
  1214. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  1215. package/out/zql/src/ivm/array-view.js +89 -92
  1216. package/out/zql/src/ivm/array-view.js.map +1 -1
  1217. package/out/zql/src/ivm/constraint.js +74 -127
  1218. package/out/zql/src/ivm/constraint.js.map +1 -1
  1219. package/out/zql/src/ivm/data.d.ts +7 -2
  1220. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1221. package/out/zql/src/ivm/data.js +53 -87
  1222. package/out/zql/src/ivm/data.js.map +1 -1
  1223. package/out/zql/src/ivm/exists.d.ts +6 -4
  1224. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  1225. package/out/zql/src/ivm/exists.js +206 -244
  1226. package/out/zql/src/ivm/exists.js.map +1 -1
  1227. package/out/zql/src/ivm/fan-in.d.ts +5 -3
  1228. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  1229. package/out/zql/src/ivm/fan-in.js +58 -52
  1230. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1231. package/out/zql/src/ivm/fan-out.d.ts +4 -2
  1232. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  1233. package/out/zql/src/ivm/fan-out.js +56 -48
  1234. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1235. package/out/zql/src/ivm/filter-operators.d.ts +13 -11
  1236. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  1237. package/out/zql/src/ivm/filter-operators.js +91 -88
  1238. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1239. package/out/zql/src/ivm/filter-push.d.ts +2 -1
  1240. package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
  1241. package/out/zql/src/ivm/filter-push.js +27 -24
  1242. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1243. package/out/zql/src/ivm/filter.d.ts +4 -2
  1244. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  1245. package/out/zql/src/ivm/filter.js +36 -32
  1246. package/out/zql/src/ivm/filter.js.map +1 -1
  1247. package/out/zql/src/ivm/flipped-join.d.ts +1 -2
  1248. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  1249. package/out/zql/src/ivm/flipped-join.js +372 -325
  1250. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1251. package/out/zql/src/ivm/join-utils.d.ts +9 -2
  1252. package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
  1253. package/out/zql/src/ivm/join-utils.js +104 -78
  1254. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1255. package/out/zql/src/ivm/join.d.ts +3 -16
  1256. package/out/zql/src/ivm/join.d.ts.map +1 -1
  1257. package/out/zql/src/ivm/join.js +225 -211
  1258. package/out/zql/src/ivm/join.js.map +1 -1
  1259. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
  1260. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
  1261. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1262. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1263. package/out/zql/src/ivm/memory-source.d.ts +9 -8
  1264. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1265. package/out/zql/src/ivm/memory-source.js +484 -491
  1266. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1267. package/out/zql/src/ivm/memory-storage.js +32 -31
  1268. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1269. package/out/zql/src/ivm/operator.d.ts +15 -12
  1270. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  1271. package/out/zql/src/ivm/operator.js +16 -9
  1272. package/out/zql/src/ivm/operator.js.map +1 -1
  1273. package/out/zql/src/ivm/push-accumulated.d.ts +2 -2
  1274. package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -1
  1275. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1276. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1277. package/out/zql/src/ivm/skip.d.ts +2 -3
  1278. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  1279. package/out/zql/src/ivm/skip.js +95 -106
  1280. package/out/zql/src/ivm/skip.js.map +1 -1
  1281. package/out/zql/src/ivm/source.d.ts +18 -8
  1282. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1283. package/out/zql/src/ivm/stream.d.ts +2 -0
  1284. package/out/zql/src/ivm/stream.d.ts.map +1 -1
  1285. package/out/zql/src/ivm/stream.js +12 -17
  1286. package/out/zql/src/ivm/stream.js.map +1 -1
  1287. package/out/zql/src/ivm/take.d.ts +2 -3
  1288. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1289. package/out/zql/src/ivm/take.js +525 -451
  1290. package/out/zql/src/ivm/take.js.map +1 -1
  1291. package/out/zql/src/ivm/union-fan-in.d.ts +4 -4
  1292. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  1293. package/out/zql/src/ivm/union-fan-in.js +213 -132
  1294. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1295. package/out/zql/src/ivm/union-fan-out.d.ts +2 -3
  1296. package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
  1297. package/out/zql/src/ivm/union-fan-out.js +43 -45
  1298. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1299. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  1300. package/out/zql/src/ivm/view-apply-change.js +247 -217
  1301. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1302. package/out/zql/src/ivm/view.d.ts +3 -2
  1303. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1304. package/out/zql/src/mutate/crud.d.ts +139 -0
  1305. package/out/zql/src/mutate/crud.d.ts.map +1 -0
  1306. package/out/zql/src/mutate/crud.js +53 -0
  1307. package/out/zql/src/mutate/crud.js.map +1 -0
  1308. package/out/zql/src/mutate/custom.d.ts +40 -63
  1309. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1310. package/out/zql/src/mutate/custom.js +12 -8
  1311. package/out/zql/src/mutate/custom.js.map +1 -1
  1312. package/out/zql/src/mutate/mutator-registry.d.ts +112 -0
  1313. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1314. package/out/zql/src/mutate/mutator-registry.js +88 -0
  1315. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1316. package/out/zql/src/mutate/mutator.d.ts +94 -0
  1317. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1318. package/out/zql/src/mutate/mutator.js +34 -0
  1319. package/out/zql/src/mutate/mutator.js.map +1 -0
  1320. package/out/zql/src/planner/planner-builder.d.ts +2 -1
  1321. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  1322. package/out/zql/src/planner/planner-builder.js +239 -148
  1323. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1324. package/out/zql/src/planner/planner-connection.d.ts +14 -15
  1325. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  1326. package/out/zql/src/planner/planner-connection.js +205 -247
  1327. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1328. package/out/zql/src/planner/planner-constraint.js +8 -11
  1329. package/out/zql/src/planner/planner-constraint.js.map +1 -1
  1330. package/out/zql/src/planner/planner-debug.d.ts +39 -44
  1331. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1332. package/out/zql/src/planner/planner-debug.js +227 -161
  1333. package/out/zql/src/planner/planner-debug.js.map +1 -1
  1334. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  1335. package/out/zql/src/planner/planner-fan-in.js +157 -159
  1336. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1337. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
  1338. package/out/zql/src/planner/planner-fan-out.js +73 -59
  1339. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1340. package/out/zql/src/planner/planner-graph.d.ts +10 -9
  1341. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  1342. package/out/zql/src/planner/planner-graph.js +323 -357
  1343. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1344. package/out/zql/src/planner/planner-join.d.ts +7 -3
  1345. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  1346. package/out/zql/src/planner/planner-join.js +237 -322
  1347. package/out/zql/src/planner/planner-join.js.map +1 -1
  1348. package/out/zql/src/planner/planner-node.d.ts +6 -1
  1349. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1350. package/out/zql/src/planner/planner-node.js +8 -2
  1351. package/out/zql/src/planner/planner-node.js.map +1 -1
  1352. package/out/zql/src/planner/planner-source.js +23 -12
  1353. package/out/zql/src/planner/planner-source.js.map +1 -1
  1354. package/out/zql/src/planner/planner-terminus.js +28 -27
  1355. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1356. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1357. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1358. package/out/zql/src/query/complete-ordering.js +71 -0
  1359. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1360. package/out/zql/src/query/create-builder.d.ts +10 -0
  1361. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1362. package/out/zql/src/query/create-builder.js +32 -0
  1363. package/out/zql/src/query/create-builder.js.map +1 -0
  1364. package/out/zql/src/query/error.js +12 -8
  1365. package/out/zql/src/query/error.js.map +1 -1
  1366. package/out/zql/src/query/escape-like.js +7 -0
  1367. package/out/zql/src/query/escape-like.js.map +1 -0
  1368. package/out/zql/src/query/expression.d.ts +5 -5
  1369. package/out/zql/src/query/expression.d.ts.map +1 -1
  1370. package/out/zql/src/query/expression.js +153 -151
  1371. package/out/zql/src/query/expression.js.map +1 -1
  1372. package/out/zql/src/query/measure-push-operator.d.ts +2 -3
  1373. package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
  1374. package/out/zql/src/query/measure-push-operator.js +39 -35
  1375. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1376. package/out/zql/src/query/metrics-delegate.js +9 -5
  1377. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1378. package/out/zql/src/query/named.d.ts +21 -12
  1379. package/out/zql/src/query/named.d.ts.map +1 -1
  1380. package/out/zql/src/query/named.js +46 -64
  1381. package/out/zql/src/query/named.js.map +1 -1
  1382. package/out/zql/src/query/query-delegate-base.d.ts +120 -0
  1383. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1384. package/out/zql/src/query/query-delegate-base.js +250 -0
  1385. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1386. package/out/zql/src/query/query-delegate.d.ts +27 -4
  1387. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1388. package/out/zql/src/query/query-impl.d.ts +30 -52
  1389. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1390. package/out/zql/src/query/query-impl.js +393 -459
  1391. package/out/zql/src/query/query-impl.js.map +1 -1
  1392. package/out/zql/src/query/query-internals.d.ts +68 -0
  1393. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1394. package/out/zql/src/query/query-internals.js +11 -0
  1395. package/out/zql/src/query/query-internals.js.map +1 -0
  1396. package/out/zql/src/query/query-registry.d.ts +239 -0
  1397. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1398. package/out/zql/src/query/query-registry.js +121 -0
  1399. package/out/zql/src/query/query-registry.js.map +1 -0
  1400. package/out/zql/src/query/query.d.ts +65 -242
  1401. package/out/zql/src/query/query.d.ts.map +1 -1
  1402. package/out/zql/src/query/runnable-query-impl.d.ts +22 -0
  1403. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -0
  1404. package/out/zql/src/query/runnable-query-impl.js +60 -0
  1405. package/out/zql/src/query/runnable-query-impl.js.map +1 -0
  1406. package/out/zql/src/query/schema-query.d.ts +8 -0
  1407. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1408. package/out/zql/src/query/static-query.d.ts +3 -25
  1409. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1410. package/out/zql/src/query/static-query.js +18 -32
  1411. package/out/zql/src/query/static-query.js.map +1 -1
  1412. package/out/zql/src/query/ttl.js +69 -62
  1413. package/out/zql/src/query/ttl.js.map +1 -1
  1414. package/out/zql/src/query/validate-input.d.ts +15 -0
  1415. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1416. package/out/zql/src/query/validate-input.js +24 -0
  1417. package/out/zql/src/query/validate-input.js.map +1 -0
  1418. package/out/zqlite/src/database-storage.d.ts +1 -1
  1419. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1420. package/out/zqlite/src/database-storage.js +99 -102
  1421. package/out/zqlite/src/database-storage.js.map +1 -1
  1422. package/out/zqlite/src/db.d.ts +2 -1
  1423. package/out/zqlite/src/db.d.ts.map +1 -1
  1424. package/out/zqlite/src/db.js +241 -192
  1425. package/out/zqlite/src/db.js.map +1 -1
  1426. package/out/zqlite/src/explain-queries.js +13 -16
  1427. package/out/zqlite/src/explain-queries.js.map +1 -1
  1428. package/out/zqlite/src/internal/sql-inline.d.ts +13 -0
  1429. package/out/zqlite/src/internal/sql-inline.d.ts.map +1 -0
  1430. package/out/zqlite/src/internal/sql-inline.js +45 -0
  1431. package/out/zqlite/src/internal/sql-inline.js.map +1 -0
  1432. package/out/zqlite/src/internal/sql.js +15 -10
  1433. package/out/zqlite/src/internal/sql.js.map +1 -1
  1434. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1435. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1436. package/out/zqlite/src/query-builder.js +172 -143
  1437. package/out/zqlite/src/query-builder.js.map +1 -1
  1438. package/out/zqlite/src/query-delegate.d.ts +5 -19
  1439. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1440. package/out/zqlite/src/query-delegate.js +56 -70
  1441. package/out/zqlite/src/query-delegate.js.map +1 -1
  1442. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
  1443. package/out/zqlite/src/sqlite-cost-model.js +97 -121
  1444. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1445. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1446. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1447. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1448. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1449. package/out/zqlite/src/table-source.d.ts +18 -6
  1450. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1451. package/out/zqlite/src/table-source.js +443 -311
  1452. package/out/zqlite/src/table-source.js.map +1 -1
  1453. package/package.json +30 -27
  1454. package/out/chunk-424PT5DM.js +0 -23
  1455. package/out/chunk-424PT5DM.js.map +0 -7
  1456. package/out/chunk-AFADJQ2O.js +0 -1
  1457. package/out/chunk-AFADJQ2O.js.map +0 -7
  1458. package/out/chunk-ASRS2LFV.js.map +0 -7
  1459. package/out/chunk-COKJ5W7V.js +0 -18337
  1460. package/out/chunk-COKJ5W7V.js.map +0 -7
  1461. package/out/chunk-ECUMGQGC.js.map +0 -7
  1462. package/out/chunk-EZM3XBAB.js.map +0 -7
  1463. package/out/chunk-TJFNGO7E.js +0 -4126
  1464. package/out/chunk-TJFNGO7E.js.map +0 -7
  1465. package/out/chunk-VZOYWIRW.js +0 -30
  1466. package/out/chunk-VZOYWIRW.js.map +0 -7
  1467. package/out/chunk-YWU2DZ23.js +0 -372
  1468. package/out/chunk-YWU2DZ23.js.map +0 -7
  1469. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1470. package/out/expo-sqlite.js +0 -11
  1471. package/out/expo-sqlite.js.map +0 -7
  1472. package/out/inspector-IU2HG74I.js +0 -43
  1473. package/out/inspector-IU2HG74I.js.map +0 -7
  1474. package/out/lazy-inspector-OXIFYSSQ.js +0 -574
  1475. package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
  1476. package/out/op-sqlite.js.map +0 -7
  1477. package/out/react-native.js +0 -25
  1478. package/out/react-native.js.map +0 -7
  1479. package/out/react.js +0 -479
  1480. package/out/react.js.map +0 -7
  1481. package/out/shared/src/enum.js +0 -2
  1482. package/out/shared/src/enum.js.map +0 -1
  1483. package/out/shared/src/expand.js +0 -2
  1484. package/out/shared/src/expand.js.map +0 -1
  1485. package/out/shared/src/immutable.js +0 -2
  1486. package/out/shared/src/immutable.js.map +0 -1
  1487. package/out/shared/src/types.js +0 -2
  1488. package/out/shared/src/types.js.map +0 -1
  1489. package/out/shared/src/writable.js +0 -2
  1490. package/out/shared/src/writable.js.map +0 -1
  1491. package/out/solid.js.map +0 -7
  1492. package/out/sqlite.js +0 -15
  1493. package/out/sqlite.js.map +0 -7
  1494. package/out/zero/package.json +0 -194
  1495. package/out/zero/src/server/change-streamer.js +0 -2
  1496. package/out/zero/src/server/change-streamer.js.map +0 -1
  1497. package/out/zero/src/server/main.js +0 -2
  1498. package/out/zero/src/server/main.js.map +0 -1
  1499. package/out/zero/src/server/reaper.js +0 -2
  1500. package/out/zero/src/server/reaper.js.map +0 -1
  1501. package/out/zero/src/server/replicator.js +0 -2
  1502. package/out/zero/src/server/replicator.js.map +0 -1
  1503. package/out/zero/src/server/runner/main.js +0 -2
  1504. package/out/zero/src/server/runner/main.js.map +0 -1
  1505. package/out/zero/src/server/syncer.js +0 -2
  1506. package/out/zero/src/server/syncer.js.map +0 -1
  1507. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1508. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1509. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1510. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1511. package/out/zero-cache/src/services/service.js +0 -2
  1512. package/out/zero-cache/src/services/service.js.map +0 -1
  1513. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1514. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1515. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
  1516. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1517. package/out/zero-cache/src/types/satisfies.js +0 -2
  1518. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1519. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1520. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1521. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1522. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1523. package/out/zero-events/src/index.js +0 -2
  1524. package/out/zero-events/src/index.js.map +0 -1
  1525. package/out/zero-events/src/json.js +0 -2
  1526. package/out/zero-events/src/json.js.map +0 -1
  1527. package/out/zero-events/src/status.js +0 -3
  1528. package/out/zero-events/src/status.js.map +0 -1
  1529. package/out/zero-pg/src/mod.js +0 -6
  1530. package/out/zero-pg/src/mod.js.map +0 -1
  1531. package/out/zero-protocol/src/error-kind.js +0 -3
  1532. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1533. package/out/zero-protocol/src/error-origin.js +0 -3
  1534. package/out/zero-protocol/src/error-origin.js.map +0 -1
  1535. package/out/zero-protocol/src/error-reason.js +0 -3
  1536. package/out/zero-protocol/src/error-reason.js.map +0 -1
  1537. package/out/zero-react/src/components/inspector.d.ts +0 -8
  1538. package/out/zero-react/src/components/inspector.d.ts.map +0 -1
  1539. package/out/zero-react/src/components/mark-icon.d.ts +0 -3
  1540. package/out/zero-react/src/components/mark-icon.d.ts.map +0 -1
  1541. package/out/zero-react/src/components/zero-inspector.d.ts +0 -7
  1542. package/out/zero-react/src/components/zero-inspector.d.ts.map +0 -1
  1543. package/out/zero-react/src/use-zero-connection-state.d.ts +0 -9
  1544. package/out/zero-react/src/use-zero-connection-state.d.ts.map +0 -1
  1545. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1546. package/out/zero-schema/src/server-schema.js +0 -2
  1547. package/out/zero-schema/src/server-schema.js.map +0 -1
  1548. package/out/zero-schema/src/table-schema.js +0 -7
  1549. package/out/zero-schema/src/table-schema.js.map +0 -1
  1550. package/out/zero-server/src/mod.js +0 -9
  1551. package/out/zero-server/src/mod.js.map +0 -1
  1552. package/out/zero-server/src/query.d.ts +0 -22
  1553. package/out/zero-server/src/query.d.ts.map +0 -1
  1554. package/out/zero-server/src/query.js +0 -61
  1555. package/out/zero-server/src/query.js.map +0 -1
  1556. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +0 -1
  1557. package/out/zero-types/src/schema-value.js +0 -2
  1558. package/out/zero-types/src/schema-value.js.map +0 -1
  1559. package/out/zero-types/src/schema.js +0 -2
  1560. package/out/zero-types/src/schema.js.map +0 -1
  1561. package/out/zero.js +0 -81
  1562. package/out/zero.js.map +0 -7
  1563. package/out/zql/src/ivm/change.js +0 -2
  1564. package/out/zql/src/ivm/change.js.map +0 -1
  1565. package/out/zql/src/ivm/default-format.js +0 -2
  1566. package/out/zql/src/ivm/default-format.js.map +0 -1
  1567. package/out/zql/src/ivm/schema.js +0 -2
  1568. package/out/zql/src/ivm/schema.js.map +0 -1
  1569. package/out/zql/src/ivm/source.js +0 -2
  1570. package/out/zql/src/ivm/source.js.map +0 -1
  1571. package/out/zql/src/ivm/view.js +0 -2
  1572. package/out/zql/src/ivm/view.js.map +0 -1
  1573. package/out/zql/src/query/query-delegate.js +0 -2
  1574. package/out/zql/src/query/query-delegate.js.map +0 -1
  1575. package/out/zql/src/query/query.js +0 -9
  1576. package/out/zql/src/query/query.js.map +0 -1
  1577. package/out/zql/src/query/typed-view.js +0 -2
  1578. package/out/zql/src/query/typed-view.js.map +0 -1
  1579. package/out/zqlite/src/mod.js +0 -5
  1580. package/out/zqlite/src/mod.js.map +0 -1
  1581. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
@@ -1,269 +1,210 @@
1
- import { resolver } from '@rocicorp/resolver';
1
+ import { resolver } from "@rocicorp/resolver";
2
2
  import { assert } from "../../../shared/src/asserts.js";
3
- /**
4
- * A Subscription abstracts a continuous, logically infinite stream of messages intended
5
- * for serial processing. Unlike the more general Node `Stream` API, a Subscription has
6
- * a limited API with specific semantics:
7
- *
8
- * * **Serial processing**: Messages must be consumed via the {@link AsyncIterable}
9
- * interface, e.g.
10
- * ```ts
11
- * const subscription = server.subscribe(parameters);
12
- *
13
- * for await (const message of subscription) {
14
- * await process(message); // fully process the message before consuming the next
15
- * }
16
- * ```
17
- *
18
- * Moreover, the consumer is expected to completely process each message before
19
- * requesting the next. This is important for cleanup semantics (explained later).
20
- *
21
- * * **cancel()**, not close(): The underlying data in a subscription is logically infinite
22
- * and only terminated when the consumer is no longer interested in receiving the messages
23
- * (or requires a Subscription with a different configuration). As such, there is no API
24
- * for gracefully closing the subscription after pending messages are consumed; rather,
25
- * cancellation is immediate, and upon cancellation, pending messages are dropped. A
26
- * Subscription can also be terminated with exceptional (i.e. `Error`) circumstances,
27
- * for which the behavior is equivalent.
28
- *
29
- * * **Coalescing** (optional): A producer can configure pending messages in the Subscription
30
- * to be merged together with a {@link Options.coalesce coalesce} function. This is useful
31
- * for semantics in which the consumer is not necessarily interested in every incremental
32
- * change, but rather the cumulative change since the last processed message. A
33
- * Subscription with coalescing is guaranteed to have at most one outstanding message,
34
- * regardless of how quickly messages are produced and consumed. This effectively constrains
35
- * the amount of outstanding work in the system.
36
- *
37
- * ### Resource Tracking and Cleanup
38
- *
39
- * Because message consumption is constrained to the async iteration API, standard
40
- * control flow mechanisms allow the producer to perform bookkeeping without any
41
- * explicit cleanup actions on the part of the consumer. This includes:
42
- *
43
- * * **Per-message cleanup**: Each request for the {@link AsyncIterator.next next}
44
- * message, or the termination of the iteration, signals that the consumer has
45
- * finished processing the previous message. The producer of a Subscription can
46
- * supply a {@link Options.consumed consumed} callback to receive these processed
47
- * messages, allowing it to clean up attached resources (e.g. TransactionPools, etc.).
48
- *
49
- * * **Per-subscription cleanup**: The producer of a Subscription can supply a
50
- * {@link Options.cleanup cleanup} callback that is invoked when the Subscription
51
- * is terminated, either explicitly via {@link Subscription.cancel cancel()} /
52
- * {@link Subscription.fail fail()}, or implicitly when an iteration is exited via a
53
- * `break`, `return`, or `throw` statement. All unconsumed messages are passed to the
54
- * call back to facilitate bookkeeping.
55
- *
56
- * @param T The external message type, published to the AsyncIterable
57
- * @param M The internal message type used in the producer-side interfaces
58
- * (e.g. {@link push}, {@link Options.consumed}, {@link Options.coalesce},
59
- * and {@link Options.cleanup}). This is often the same as the external type
60
- * T, but may be diverged to facilitate internal bookkeeping.
61
- */
62
- export class Subscription {
63
- /**
64
- * Convenience factory method for creating a {@link Subscription} with internal message type
65
- * `M` as a subtype of `T`, defaulting to the same type. The default `publish` method publishes
66
- * the message of type `M` directly to the AsyncIterable.
67
- */
68
- static create(options = {}, publish = m => m) {
69
- return new Subscription(options, publish);
3
+ class Subscription {
4
+ /**
5
+ * Convenience factory method for creating a {@link Subscription} with internal message type
6
+ * `M` as a subtype of `T`, defaulting to the same type. The default `publish` method publishes
7
+ * the message of type `M` directly to the AsyncIterable.
8
+ */
9
+ static create(options = {}, publish = (m) => m) {
10
+ return new Subscription(options, publish);
11
+ }
12
+ // Consumers waiting to consume messages (i.e. an async iteration awaiting the next message).
13
+ #consumers = [];
14
+ // Messages waiting to be consumed.
15
+ #messages = [];
16
+ #pipelineEnabled;
17
+ // Sentinel value signaling that the subscription is "done" and no more
18
+ // messages can be added.
19
+ #sentinel = void 0;
20
+ #coalesce;
21
+ #consumed;
22
+ #cleanup;
23
+ #publish;
24
+ /**
25
+ * @param publish function for converting the internally pushed / coalesced message
26
+ * of type `M` to the external type `T` exposed via async iteration.
27
+ */
28
+ constructor(options = {}, publish) {
29
+ const {
30
+ coalesce,
31
+ consumed = () => {
32
+ },
33
+ cleanup = () => {
34
+ },
35
+ pipeline = coalesce === void 0
36
+ } = options;
37
+ this.#coalesce = !coalesce ? void 0 : (curr, prev) => {
38
+ try {
39
+ return coalesce(curr.value, prev.value);
40
+ } finally {
41
+ prev.resolve("coalesced");
42
+ }
43
+ };
44
+ this.#consumed = (entry) => {
45
+ consumed(entry.value);
46
+ entry.resolve("consumed");
47
+ };
48
+ this.#cleanup = (entries, err) => {
49
+ cleanup(
50
+ entries.map((e) => e.value),
51
+ err
52
+ );
53
+ entries.forEach((e) => e.resolve("unconsumed"));
54
+ };
55
+ this.#publish = publish;
56
+ this.#pipelineEnabled = pipeline;
57
+ }
58
+ /**
59
+ * Pushes the next message to be consumed, and returns a `result` that resolves to the
60
+ * eventual {@link Result} of the `value`.
61
+ *
62
+ * If there is an existing unconsumed message and the Subscription has a
63
+ * {@link Options#coalesce coalesce} function, the specified `value` will be coalesced
64
+ * with the pending message. In this case, the result of the pending message
65
+ * is resolved to `coalesced`, regardless of the `coalesce` function implementation.
66
+ *
67
+ * If the subscription is in a terminal state, the message is dropped and the
68
+ * result resolves to `unconsumed`.
69
+ */
70
+ push(value) {
71
+ const { promise: result, resolve } = resolver();
72
+ const entry = { value, resolve };
73
+ if (this.#sentinel) {
74
+ entry.resolve("unconsumed");
75
+ return { result };
70
76
  }
71
- // Consumers waiting to consume messages (i.e. an async iteration awaiting the next message).
72
- #consumers = [];
73
- // Messages waiting to be consumed.
74
- #messages = [];
75
- #pipelineEnabled;
76
- // Sentinel value signaling that the subscription is "done" and no more
77
- // messages can be added.
78
- #sentinel = undefined;
79
- #coalesce;
80
- #consumed;
81
- #cleanup;
82
- #publish;
83
- /**
84
- * @param publish function for converting the internally pushed / coalesced message
85
- * of type `M` to the external type `T` exposed via async iteration.
86
- */
87
- constructor(options = {}, publish) {
88
- const { coalesce, consumed = () => { }, cleanup = () => { }, pipeline = coalesce === undefined, } = options;
89
- this.#coalesce = !coalesce
90
- ? undefined
91
- : (curr, prev) => {
92
- try {
93
- return coalesce(curr.value, prev.value);
94
- }
95
- finally {
96
- prev.resolve('coalesced');
97
- }
98
- };
99
- this.#consumed = entry => {
100
- consumed(entry.value);
101
- entry.resolve('consumed');
102
- };
103
- this.#cleanup = (entries, err) => {
104
- cleanup(entries.map(e => e.value), err);
105
- entries.forEach(e => e.resolve('unconsumed'));
106
- };
107
- this.#publish = publish;
108
- this.#pipelineEnabled = pipeline;
77
+ const consumer = this.#consumers.shift();
78
+ if (consumer) {
79
+ consumer.resolve(entry);
80
+ } else if (this.#coalesce && this.#messages.length && this.#messages[this.#messages.length - 1] !== "terminus") {
81
+ const prev = this.#messages[this.#messages.length - 1];
82
+ assert(prev !== "terminus");
83
+ this.#messages[this.#messages.length - 1] = {
84
+ value: this.#coalesce(entry, prev),
85
+ resolve
86
+ };
87
+ } else {
88
+ this.#messages.push(entry);
109
89
  }
110
- /**
111
- * Pushes the next message to be consumed, and returns a `result` that resolves to the
112
- * eventual {@link Result} of the `value`.
113
- *
114
- * If there is an existing unconsumed message and the Subscription has a
115
- * {@link Options#coalesce coalesce} function, the specified `value` will be coalesced
116
- * with the pending message. In this case, the result of the pending message
117
- * is resolved to `coalesced`, regardless of the `coalesce` function implementation.
118
- *
119
- * If the subscription is in a terminal state, the message is dropped and the
120
- * result resolves to `unconsumed`.
121
- */
122
- push(value) {
123
- const { promise: result, resolve } = resolver();
124
- const entry = { value, resolve };
125
- if (this.#sentinel) {
126
- entry.resolve('unconsumed');
127
- return { result };
128
- }
129
- const consumer = this.#consumers.shift();
130
- if (consumer) {
131
- consumer.resolve(entry);
132
- }
133
- else if (this.#coalesce &&
134
- this.#messages.length &&
135
- this.#messages[this.#messages.length - 1] !== 'terminus') {
136
- const prev = this.#messages[this.#messages.length - 1];
137
- assert(prev !== 'terminus');
138
- this.#messages[this.#messages.length - 1] = {
139
- value: this.#coalesce(entry, prev),
140
- resolve,
141
- };
142
- }
143
- else {
144
- this.#messages.push(entry);
145
- }
146
- return { result };
90
+ return { result };
91
+ }
92
+ /** False if the subscription has been canceled or has failed. */
93
+ get active() {
94
+ return this.#sentinel === void 0;
95
+ }
96
+ /** The number messages waiting to be consumed. This is largely for testing. */
97
+ get queued() {
98
+ return this.#messages.length;
99
+ }
100
+ /**
101
+ * Cancels the subscription after any queued messages are consumed. This is
102
+ * meant for the producer-side code.
103
+ *
104
+ * Any messages pushed after calling `end()` will be unconsumed as if
105
+ * `cancel()` were called (once the first set of pending messages is
106
+ * consumed). In particular, if a coalesce function is defined, the new
107
+ * messages will not be coalesced with the messages enqueued before `end()`
108
+ * was called. However, to effect the intent of memory efficiency, multiple
109
+ * messages pushed after calling `end()` will be coalesced together.
110
+ *
111
+ */
112
+ end() {
113
+ if (this.#sentinel) ;
114
+ else if (this.#messages.length === 0) {
115
+ this.cancel();
116
+ } else {
117
+ this.#messages.push("terminus");
147
118
  }
148
- /** False if the subscription has been canceled or has failed. */
149
- get active() {
150
- return this.#sentinel === undefined;
119
+ }
120
+ /**
121
+ * Cancels the subscription immediately, cleans up, and terminates any iteration.
122
+ */
123
+ cancel() {
124
+ this.#terminate("canceled");
125
+ }
126
+ /** Fails the subscription, cleans up, and throws from any iteration. */
127
+ fail(err) {
128
+ this.#terminate(err);
129
+ }
130
+ #terminate(sentinel) {
131
+ if (!this.#sentinel) {
132
+ this.#sentinel = sentinel;
133
+ this.#cleanup(
134
+ this.#messages.filter((m) => m !== "terminus"),
135
+ sentinel instanceof Error ? sentinel : void 0
136
+ );
137
+ this.#messages.splice(0);
138
+ for (let consumer = this.#consumers.shift(); consumer; consumer = this.#consumers.shift()) {
139
+ sentinel === "canceled" ? consumer.resolve(null) : consumer.reject(sentinel);
140
+ }
151
141
  }
152
- /** The number messages waiting to be consumed. This is largely for testing. */
153
- get queued() {
154
- return this.#messages.length;
155
- }
156
- /**
157
- * Cancels the subscription after any queued messages are consumed. This is
158
- * meant for the producer-side code.
159
- *
160
- * Any messages pushed after calling `end()` will be unconsumed as if
161
- * `cancel()` were called (once the first set of pending messages is
162
- * consumed). In particular, if a coalesce function is defined, the new
163
- * messages will not be coalesced with the messages enqueued before `end()`
164
- * was called. However, to effect the intent of memory efficiency, multiple
165
- * messages pushed after calling `end()` will be coalesced together.
166
- *
167
- */
168
- end() {
169
- if (this.#sentinel) {
170
- // already terminated
142
+ }
143
+ get pipeline() {
144
+ return this.#pipelineEnabled ? { [Symbol.asyncIterator]: () => this.#pipeline() } : void 0;
145
+ }
146
+ #pipeline() {
147
+ return {
148
+ next: async () => {
149
+ const entry = this.#messages.shift();
150
+ if (entry === "terminus") {
151
+ this.cancel();
152
+ return { value: void 0, done: true };
171
153
  }
172
- else if (this.#messages.length === 0) {
173
- this.cancel();
154
+ if (entry !== void 0) {
155
+ return {
156
+ value: {
157
+ value: this.#publish(entry.value),
158
+ consumed: () => this.#consumed(entry)
159
+ }
160
+ };
174
161
  }
175
- else {
176
- this.#messages.push('terminus');
162
+ if (this.#sentinel === "canceled") {
163
+ return { value: void 0, done: true };
177
164
  }
178
- }
179
- /**
180
- * Cancels the subscription immediately, cleans up, and terminates any iteration.
181
- */
182
- cancel() {
183
- this.#terminate('canceled');
184
- }
185
- /** Fails the subscription, cleans up, and throws from any iteration. */
186
- fail(err) {
187
- this.#terminate(err);
188
- }
189
- #terminate(sentinel) {
190
- if (!this.#sentinel) {
191
- this.#sentinel = sentinel;
192
- this.#cleanup(this.#messages.filter(m => m !== 'terminus'), sentinel instanceof Error ? sentinel : undefined);
193
- this.#messages.splice(0);
194
- for (let consumer = this.#consumers.shift(); consumer; consumer = this.#consumers.shift()) {
195
- sentinel === 'canceled'
196
- ? consumer.resolve(null)
197
- : consumer.reject(sentinel);
198
- }
165
+ if (this.#sentinel) {
166
+ return Promise.reject(this.#sentinel);
199
167
  }
200
- }
201
- get pipeline() {
202
- return this.#pipelineEnabled
203
- ? { [Symbol.asyncIterator]: () => this.#pipeline() }
204
- : undefined;
205
- }
206
- #pipeline() {
207
- return {
208
- next: async () => {
209
- const entry = this.#messages.shift();
210
- if (entry === 'terminus') {
211
- this.cancel();
212
- return { value: undefined, done: true };
213
- }
214
- if (entry !== undefined) {
215
- return {
216
- value: {
217
- value: this.#publish(entry.value),
218
- consumed: () => this.#consumed(entry),
219
- },
220
- };
221
- }
222
- if (this.#sentinel === 'canceled') {
223
- return { value: undefined, done: true };
224
- }
225
- if (this.#sentinel) {
226
- return Promise.reject(this.#sentinel);
227
- }
228
- const consumer = resolver();
229
- this.#consumers.push(consumer);
230
- // Wait for push() (or termination) to resolve the consumer.
231
- const result = await consumer.promise;
232
- return result
233
- ? {
234
- value: {
235
- value: this.#publish(result.value),
236
- consumed: () => this.#consumed(result),
237
- },
238
- }
239
- : { value: undefined, done: true };
240
- },
241
- return: value => {
242
- this.cancel();
243
- return Promise.resolve({ value, done: true });
244
- },
245
- };
246
- }
247
- [Symbol.asyncIterator]() {
248
- const delegate = this.#pipeline();
249
- let prevConsumed = () => { };
250
- return {
251
- next: async () => {
252
- prevConsumed();
253
- const entry = await delegate.next();
254
- if (entry.done) {
255
- return entry;
256
- }
257
- const { value, consumed } = entry.value;
258
- prevConsumed = consumed;
259
- return { value };
260
- },
261
- return: value => {
262
- prevConsumed();
263
- this.cancel();
264
- return Promise.resolve({ value, done: true });
265
- },
266
- };
267
- }
168
+ const consumer = resolver();
169
+ this.#consumers.push(consumer);
170
+ const result = await consumer.promise;
171
+ return result ? {
172
+ value: {
173
+ value: this.#publish(result.value),
174
+ consumed: () => this.#consumed(result)
175
+ }
176
+ } : { value: void 0, done: true };
177
+ },
178
+ return: (value) => {
179
+ this.cancel();
180
+ return Promise.resolve({ value, done: true });
181
+ }
182
+ };
183
+ }
184
+ [Symbol.asyncIterator]() {
185
+ const delegate = this.#pipeline();
186
+ let prevConsumed = () => {
187
+ };
188
+ return {
189
+ next: async () => {
190
+ prevConsumed();
191
+ const entry = await delegate.next();
192
+ if (entry.done) {
193
+ return entry;
194
+ }
195
+ const { value, consumed } = entry.value;
196
+ prevConsumed = consumed;
197
+ return { value };
198
+ },
199
+ return: (value) => {
200
+ prevConsumed();
201
+ this.cancel();
202
+ return Promise.resolve({ value, done: true });
203
+ }
204
+ };
205
+ }
268
206
  }
269
- //# sourceMappingURL=subscription.js.map
207
+ export {
208
+ Subscription
209
+ };
210
+ //# sourceMappingURL=subscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.js","sources":["../../../../../zero-cache/src/types/subscription.ts"],"sourcesContent":["import {resolver, type Resolver} from '@rocicorp/resolver';\nimport {assert} from '../../../shared/src/asserts.ts';\nimport type {Sink, Source} from './streams.ts';\n\n/**\n * A Subscription abstracts a continuous, logically infinite stream of messages intended\n * for serial processing. Unlike the more general Node `Stream` API, a Subscription has\n * a limited API with specific semantics:\n *\n * * **Serial processing**: Messages must be consumed via the {@link AsyncIterable}\n * interface, e.g.\n * ```ts\n * const subscription = server.subscribe(parameters);\n *\n * for await (const message of subscription) {\n * await process(message); // fully process the message before consuming the next\n * }\n * ```\n *\n * Moreover, the consumer is expected to completely process each message before\n * requesting the next. This is important for cleanup semantics (explained later).\n *\n * * **cancel()**, not close(): The underlying data in a subscription is logically infinite\n * and only terminated when the consumer is no longer interested in receiving the messages\n * (or requires a Subscription with a different configuration). As such, there is no API\n * for gracefully closing the subscription after pending messages are consumed; rather,\n * cancellation is immediate, and upon cancellation, pending messages are dropped. A\n * Subscription can also be terminated with exceptional (i.e. `Error`) circumstances,\n * for which the behavior is equivalent.\n *\n * * **Coalescing** (optional): A producer can configure pending messages in the Subscription\n * to be merged together with a {@link Options.coalesce coalesce} function. This is useful\n * for semantics in which the consumer is not necessarily interested in every incremental\n * change, but rather the cumulative change since the last processed message. A\n * Subscription with coalescing is guaranteed to have at most one outstanding message,\n * regardless of how quickly messages are produced and consumed. This effectively constrains\n * the amount of outstanding work in the system.\n *\n * ### Resource Tracking and Cleanup\n *\n * Because message consumption is constrained to the async iteration API, standard\n * control flow mechanisms allow the producer to perform bookkeeping without any\n * explicit cleanup actions on the part of the consumer. This includes:\n *\n * * **Per-message cleanup**: Each request for the {@link AsyncIterator.next next}\n * message, or the termination of the iteration, signals that the consumer has\n * finished processing the previous message. The producer of a Subscription can\n * supply a {@link Options.consumed consumed} callback to receive these processed\n * messages, allowing it to clean up attached resources (e.g. TransactionPools, etc.).\n *\n * * **Per-subscription cleanup**: The producer of a Subscription can supply a\n * {@link Options.cleanup cleanup} callback that is invoked when the Subscription\n * is terminated, either explicitly via {@link Subscription.cancel cancel()} /\n * {@link Subscription.fail fail()}, or implicitly when an iteration is exited via a\n * `break`, `return`, or `throw` statement. All unconsumed messages are passed to the\n * call back to facilitate bookkeeping.\n *\n * @param T The external message type, published to the AsyncIterable\n * @param M The internal message type used in the producer-side interfaces\n * (e.g. {@link push}, {@link Options.consumed}, {@link Options.coalesce},\n * and {@link Options.cleanup}). This is often the same as the external type\n * T, but may be diverged to facilitate internal bookkeeping.\n */\nexport class Subscription<T, M = T> implements Source<T>, Sink<M> {\n /**\n * Convenience factory method for creating a {@link Subscription} with internal message type\n * `M` as a subtype of `T`, defaulting to the same type. The default `publish` method publishes\n * the message of type `M` directly to the AsyncIterable.\n */\n static create<T, M extends T = T>(\n options: Options<M> = {},\n publish: (m: M) => T = m => m,\n ) {\n return new Subscription(options, publish);\n }\n\n // Consumers waiting to consume messages (i.e. an async iteration awaiting the next message).\n readonly #consumers: Resolver<Entry<M> | null>[] = [];\n // Messages waiting to be consumed.\n readonly #messages: (Entry<M> | 'terminus')[] = [];\n readonly #pipelineEnabled: boolean;\n // Sentinel value signaling that the subscription is \"done\" and no more\n // messages can be added.\n #sentinel: 'canceled' | Error | undefined = undefined;\n\n #coalesce: ((curr: Entry<M>, prev: Entry<M>) => M) | undefined;\n #consumed: (prev: Entry<M>) => void;\n #cleanup: (unconsumed: Entry<M>[], err?: Error) => void;\n #publish: (internal: M) => T;\n\n /**\n * @param publish function for converting the internally pushed / coalesced message\n * of type `M` to the external type `T` exposed via async iteration.\n */\n constructor(options: Options<M> = {}, publish: (m: M) => T) {\n const {\n coalesce,\n consumed = () => {},\n cleanup = () => {},\n pipeline = coalesce === undefined,\n } = options;\n\n this.#coalesce = !coalesce\n ? undefined\n : (curr, prev) => {\n try {\n return coalesce(curr.value, prev.value);\n } finally {\n prev.resolve('coalesced');\n }\n };\n\n this.#consumed = entry => {\n consumed(entry.value);\n entry.resolve('consumed');\n };\n\n this.#cleanup = (entries, err) => {\n cleanup(\n entries.map(e => e.value),\n err,\n );\n entries.forEach(e => e.resolve('unconsumed'));\n };\n\n this.#publish = publish;\n\n this.#pipelineEnabled = pipeline;\n }\n\n /**\n * Pushes the next message to be consumed, and returns a `result` that resolves to the\n * eventual {@link Result} of the `value`.\n *\n * If there is an existing unconsumed message and the Subscription has a\n * {@link Options#coalesce coalesce} function, the specified `value` will be coalesced\n * with the pending message. In this case, the result of the pending message\n * is resolved to `coalesced`, regardless of the `coalesce` function implementation.\n *\n * If the subscription is in a terminal state, the message is dropped and the\n * result resolves to `unconsumed`.\n */\n push(value: M): PendingResult {\n const {promise: result, resolve} = resolver<Result>();\n const entry = {value, resolve};\n\n if (this.#sentinel) {\n entry.resolve('unconsumed');\n return {result};\n }\n const consumer = this.#consumers.shift();\n if (consumer) {\n consumer.resolve(entry);\n } else if (\n this.#coalesce &&\n this.#messages.length &&\n this.#messages[this.#messages.length - 1] !== 'terminus'\n ) {\n const prev = this.#messages[this.#messages.length - 1];\n assert(prev !== 'terminus');\n this.#messages[this.#messages.length - 1] = {\n value: this.#coalesce(entry, prev),\n resolve,\n };\n } else {\n this.#messages.push(entry);\n }\n return {result};\n }\n\n /** False if the subscription has been canceled or has failed. */\n get active(): boolean {\n return this.#sentinel === undefined;\n }\n\n /** The number messages waiting to be consumed. This is largely for testing. */\n get queued(): number {\n return this.#messages.length;\n }\n\n /**\n * Cancels the subscription after any queued messages are consumed. This is\n * meant for the producer-side code.\n *\n * Any messages pushed after calling `end()` will be unconsumed as if\n * `cancel()` were called (once the first set of pending messages is\n * consumed). In particular, if a coalesce function is defined, the new\n * messages will not be coalesced with the messages enqueued before `end()`\n * was called. However, to effect the intent of memory efficiency, multiple\n * messages pushed after calling `end()` will be coalesced together.\n *\n */\n end() {\n if (this.#sentinel) {\n // already terminated\n } else if (this.#messages.length === 0) {\n this.cancel();\n } else {\n this.#messages.push('terminus');\n }\n }\n\n /**\n * Cancels the subscription immediately, cleans up, and terminates any iteration.\n */\n cancel() {\n this.#terminate('canceled');\n }\n\n /** Fails the subscription, cleans up, and throws from any iteration. */\n fail(err: Error) {\n this.#terminate(err);\n }\n\n #terminate(sentinel: 'canceled' | Error) {\n if (!this.#sentinel) {\n this.#sentinel = sentinel;\n this.#cleanup(\n this.#messages.filter(m => m !== 'terminus'),\n sentinel instanceof Error ? sentinel : undefined,\n );\n this.#messages.splice(0);\n\n for (\n let consumer = this.#consumers.shift();\n consumer;\n consumer = this.#consumers.shift()\n ) {\n sentinel === 'canceled'\n ? consumer.resolve(null)\n : consumer.reject(sentinel);\n }\n }\n }\n\n get pipeline(): AsyncIterable<{value: T; consumed: () => void}> | undefined {\n return this.#pipelineEnabled\n ? {[Symbol.asyncIterator]: () => this.#pipeline()}\n : undefined;\n }\n\n #pipeline(): AsyncIterator<{value: T; consumed: () => void}> {\n return {\n next: async () => {\n const entry = this.#messages.shift();\n if (entry === 'terminus') {\n this.cancel();\n return {value: undefined, done: true};\n }\n if (entry !== undefined) {\n return {\n value: {\n value: this.#publish(entry.value),\n consumed: () => this.#consumed(entry),\n },\n };\n }\n if (this.#sentinel === 'canceled') {\n return {value: undefined, done: true};\n }\n if (this.#sentinel) {\n return Promise.reject(this.#sentinel);\n }\n const consumer = resolver<Entry<M> | null>();\n this.#consumers.push(consumer);\n\n // Wait for push() (or termination) to resolve the consumer.\n const result = await consumer.promise;\n return result\n ? {\n value: {\n value: this.#publish(result.value),\n consumed: () => this.#consumed(result),\n },\n }\n : {value: undefined, done: true};\n },\n\n return: value => {\n this.cancel();\n return Promise.resolve({value, done: true});\n },\n };\n }\n\n [Symbol.asyncIterator](): AsyncIterator<T> {\n const delegate = this.#pipeline();\n\n let prevConsumed = () => {};\n return {\n next: async () => {\n prevConsumed();\n\n const entry = await delegate.next();\n if (entry.done) {\n return entry;\n }\n\n const {value, consumed} = entry.value;\n prevConsumed = consumed;\n return {value};\n },\n\n return: value => {\n prevConsumed();\n\n this.cancel();\n return Promise.resolve({value, done: true});\n },\n };\n }\n}\n\nexport type Options<M> = {\n /**\n * Coalesces messages waiting to be consumed. This is useful for \"watermark\" type\n * subscriptions in which the consumer is only interested in the cumulative state\n * change since the last processed message. When a `coalesce` function is specified,\n * there is guaranteed to be at most one message waiting to be consumed.\n *\n * Note that the `curr` argument comes before `prev`. This facilitates a common\n * scenario in which coalescing just means using the newest value; in such a case,\n * `coalesce` can simply be the identity function (e.g. `msg => msg`).\n */\n coalesce?: (curr: M, prev: M) => M;\n\n /**\n * Called on the previous message in an iteration (1) when the next message is requested,\n * or (2) when the iteration is terminated. This allows the producer to perform\n * per-message cleanup.\n *\n * Note that when a {@link Options.coalesce coalesce} function is defined,\n * `consumed` is _not_ called on the `prev` message; it is the responsibility of\n * producers requiring both coalescing and consumption notification to perform any\n * necessary cleanup of `prev` messages when coalescing.\n */\n consumed?: (prev: M) => void;\n\n /**\n * `cleanup` is called exactly once when the subscription is terminated via a failure or\n * cancelation (whichever happens first), which includes implicit cancelation when\n * the consumer exits an iteration via a `break`, `return`, or `throw` statement.\n *\n * Note that the `err` argument will only reflect an explicit cancelation via a call\n * to {@link Subscription.fail()}. On the other hand, if the iteration is canceled via\n * a `throw` statement, the thrown reason is not reflected in the `err` parameter, as that\n * information is not made available to the AsyncIterator implementation.\n */\n cleanup?: (unconsumed: M[], err?: Error) => void;\n\n /**\n * Enable or disable pipelining when streaming messages over a websocket.\n *\n * If unspecified, pipelining is enabled if there is no {@link Options.coalesce coalesce}\n * method, as pipelining is counter to the semantics of coalescing. However, the\n * application can explicitly enable pipelining even if there is a coalesce method\n * by specifying `true` for this option. This assumes that coalescing is either\n * not important for websocket semantics, or that the receiving end of the websocket\n * transport performs the desired coalescing.\n */\n pipeline?: boolean;\n};\n\n/** Post-queueing results of messages. */\nexport type Result = 'consumed' | 'coalesced' | 'unconsumed';\n\n/**\n * {@link Subscription.subscribe()} wraps the `Promise<Result>` in a `PendingResult`\n * object to avoid forcing all callers to handle the Promise, as most logic does not\n * need to.\n */\nexport type PendingResult = {result: Promise<Result>};\n\ntype Entry<M> = {\n readonly value: M;\n readonly resolve: (r: Result) => void;\n};\n"],"names":[],"mappings":"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"}
@@ -1,35 +1,40 @@
1
- export class URLParams {
2
- url;
3
- constructor(url) {
4
- this.url = url;
1
+ class URLParams {
2
+ url;
3
+ constructor(url) {
4
+ this.url = url;
5
+ }
6
+ get(name, required) {
7
+ const value = this.url.searchParams.get(name);
8
+ if (value === "" || value === null) {
9
+ if (required) {
10
+ throw new Error(`invalid querystring - missing ${name}`);
11
+ }
12
+ return null;
5
13
  }
6
- get(name, required) {
7
- const value = this.url.searchParams.get(name);
8
- if (value === '' || value === null) {
9
- if (required) {
10
- throw new Error(`invalid querystring - missing ${name}`);
11
- }
12
- return null;
13
- }
14
- return value;
14
+ return value;
15
+ }
16
+ getInteger(name, required) {
17
+ const value = this.get(name, required);
18
+ if (value === null) {
19
+ return null;
15
20
  }
16
- getInteger(name, required) {
17
- const value = this.get(name, required);
18
- if (value === null) {
19
- return null;
20
- }
21
- const int = parseInt(value);
22
- if (isNaN(int)) {
23
- throw new Error(`invalid querystring parameter ${name}, got: ${value}, url: ${this.url}`);
24
- }
25
- return int;
21
+ const int = parseInt(value);
22
+ if (isNaN(int)) {
23
+ throw new Error(
24
+ `invalid querystring parameter ${name}, got: ${value}, url: ${this.url}`
25
+ );
26
26
  }
27
- getBoolean(name) {
28
- const value = this.get(name, false);
29
- if (value === null) {
30
- return false;
31
- }
32
- return value === 'true';
27
+ return int;
28
+ }
29
+ getBoolean(name) {
30
+ const value = this.get(name, false);
31
+ if (value === null) {
32
+ return false;
33
33
  }
34
+ return value === "true";
35
+ }
34
36
  }
35
- //# sourceMappingURL=url-params.js.map
37
+ export {
38
+ URLParams
39
+ };
40
+ //# sourceMappingURL=url-params.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url-params.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/url-params.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IACX,GAAG,CAAM;IAElB,YAAY,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAID,GAAG,CAAC,IAAY,EAAE,QAAiB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAID,UAAU,CAAC,IAAY,EAAE,QAAiB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,UAAU,KAAK,UAAU,IAAI,CAAC,GAAG,EAAE,CACzE,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,KAAK,MAAM,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"url-params.js","sources":["../../../../../zero-cache/src/types/url-params.ts"],"sourcesContent":["export class URLParams {\n readonly url: URL;\n\n constructor(url: URL) {\n this.url = url;\n }\n\n get(name: string, required: true): string;\n get(name: string, required: boolean): string | null;\n get(name: string, required: boolean) {\n const value = this.url.searchParams.get(name);\n if (value === '' || value === null) {\n if (required) {\n throw new Error(`invalid querystring - missing ${name}`);\n }\n return null;\n }\n return value;\n }\n\n getInteger(name: string, required: true): number;\n getInteger(name: string, required: boolean): number | null;\n getInteger(name: string, required: boolean) {\n const value = this.get(name, required);\n if (value === null) {\n return null;\n }\n const int = parseInt(value);\n if (isNaN(int)) {\n throw new Error(\n `invalid querystring parameter ${name}, got: ${value}, url: ${this.url}`,\n );\n }\n return int;\n }\n\n getBoolean(name: string): boolean {\n const value = this.get(name, false);\n if (value === null) {\n return false;\n }\n return value === 'true';\n }\n}\n"],"names":[],"mappings":"AAAO,MAAM,UAAU;AAAA,EACZ;AAAA,EAET,YAAY,KAAU;AACpB,SAAK,MAAM;AAAA,EACb;AAAA,EAIA,IAAI,MAAc,UAAmB;AACnC,UAAM,QAAQ,KAAK,IAAI,aAAa,IAAI,IAAI;AAC5C,QAAI,UAAU,MAAM,UAAU,MAAM;AAClC,UAAI,UAAU;AACZ,cAAM,IAAI,MAAM,iCAAiC,IAAI,EAAE;AAAA,MACzD;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAIA,WAAW,MAAc,UAAmB;AAC1C,UAAM,QAAQ,KAAK,IAAI,MAAM,QAAQ;AACrC,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,UAAM,MAAM,SAAS,KAAK;AAC1B,QAAI,MAAM,GAAG,GAAG;AACd,YAAM,IAAI;AAAA,QACR,iCAAiC,IAAI,UAAU,KAAK,UAAU,KAAK,GAAG;AAAA,MAAA;AAAA,IAE1E;AACA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,MAAuB;AAChC,UAAM,QAAQ,KAAK,IAAI,MAAM,KAAK;AAClC,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,WAAO,UAAU;AAAA,EACnB;AACF;"}