@rocicorp/zero 0.0.0-202410031711

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 (831) hide show
  1. package/deps/sqlite3/sqlite3.c +260574 -0
  2. package/deps/sqlite3/sqlite3.h +13572 -0
  3. package/deps/sqlite3/sqlite3ext.h +719 -0
  4. package/out/btree/b+tree.d.ts +471 -0
  5. package/out/btree/b+tree.d.ts.map +1 -0
  6. package/out/btree/b+tree.js +1708 -0
  7. package/out/btree/b+tree.js.map +1 -0
  8. package/out/btree/interfaces.d.ts +270 -0
  9. package/out/btree/interfaces.d.ts.map +1 -0
  10. package/out/btree/interfaces.js +3 -0
  11. package/out/btree/interfaces.js.map +1 -0
  12. package/out/chunk-2RUT5EQV.js +28 -0
  13. package/out/chunk-2RUT5EQV.js.map +7 -0
  14. package/out/datadog/src/datadog-log-sink.d.ts +20 -0
  15. package/out/datadog/src/datadog-log-sink.d.ts.map +1 -0
  16. package/out/datadog/src/datadog-log-sink.js +231 -0
  17. package/out/datadog/src/datadog-log-sink.js.map +1 -0
  18. package/out/datadog/src/mod.d.ts +2 -0
  19. package/out/datadog/src/mod.d.ts.map +1 -0
  20. package/out/react.js +108 -0
  21. package/out/react.js.map +7 -0
  22. package/out/replicache/src/async-iterable-to-array.d.ts +2 -0
  23. package/out/replicache/src/async-iterable-to-array.d.ts.map +1 -0
  24. package/out/replicache/src/bg-interval.d.ts +3 -0
  25. package/out/replicache/src/bg-interval.d.ts.map +1 -0
  26. package/out/replicache/src/binary-search.d.ts +15 -0
  27. package/out/replicache/src/binary-search.d.ts.map +1 -0
  28. package/out/replicache/src/broadcast-channel.d.ts +3 -0
  29. package/out/replicache/src/broadcast-channel.d.ts.map +1 -0
  30. package/out/replicache/src/btree/diff.d.ts +4 -0
  31. package/out/replicache/src/btree/diff.d.ts.map +1 -0
  32. package/out/replicache/src/btree/node.d.ts +125 -0
  33. package/out/replicache/src/btree/node.d.ts.map +1 -0
  34. package/out/replicache/src/btree/read.d.ts +32 -0
  35. package/out/replicache/src/btree/read.d.ts.map +1 -0
  36. package/out/replicache/src/btree/splice.d.ts +9 -0
  37. package/out/replicache/src/btree/splice.d.ts.map +1 -0
  38. package/out/replicache/src/btree/write.d.ts +24 -0
  39. package/out/replicache/src/btree/write.d.ts.map +1 -0
  40. package/out/replicache/src/call-default-fetch.d.ts +6 -0
  41. package/out/replicache/src/call-default-fetch.d.ts.map +1 -0
  42. package/out/replicache/src/config.d.ts +13 -0
  43. package/out/replicache/src/config.d.ts.map +1 -0
  44. package/out/replicache/src/connection-loop-delegates.d.ts +20 -0
  45. package/out/replicache/src/connection-loop-delegates.d.ts.map +1 -0
  46. package/out/replicache/src/connection-loop.d.ts +28 -0
  47. package/out/replicache/src/connection-loop.d.ts.map +1 -0
  48. package/out/replicache/src/cookies.d.ts +29 -0
  49. package/out/replicache/src/cookies.d.ts.map +1 -0
  50. package/out/replicache/src/dag/chunk.d.ts +35 -0
  51. package/out/replicache/src/dag/chunk.d.ts.map +1 -0
  52. package/out/replicache/src/dag/gc.d.ts +42 -0
  53. package/out/replicache/src/dag/gc.d.ts.map +1 -0
  54. package/out/replicache/src/dag/key.d.ts +26 -0
  55. package/out/replicache/src/dag/key.d.ts.map +1 -0
  56. package/out/replicache/src/dag/lazy-store.d.ts +181 -0
  57. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -0
  58. package/out/replicache/src/dag/store-impl.d.ts +38 -0
  59. package/out/replicache/src/dag/store-impl.d.ts.map +1 -0
  60. package/out/replicache/src/dag/store.d.ts +36 -0
  61. package/out/replicache/src/dag/store.d.ts.map +1 -0
  62. package/out/replicache/src/dag/visitor.d.ts +13 -0
  63. package/out/replicache/src/dag/visitor.d.ts.map +1 -0
  64. package/out/replicache/src/db/commit.d.ts +133 -0
  65. package/out/replicache/src/db/commit.d.ts.map +1 -0
  66. package/out/replicache/src/db/index.d.ts +33 -0
  67. package/out/replicache/src/db/index.d.ts.map +1 -0
  68. package/out/replicache/src/db/read.d.ts +24 -0
  69. package/out/replicache/src/db/read.d.ts.map +1 -0
  70. package/out/replicache/src/db/rebase.d.ts +10 -0
  71. package/out/replicache/src/db/rebase.d.ts.map +1 -0
  72. package/out/replicache/src/db/scan.d.ts +15 -0
  73. package/out/replicache/src/db/scan.d.ts.map +1 -0
  74. package/out/replicache/src/db/write.d.ts +39 -0
  75. package/out/replicache/src/db/write.d.ts.map +1 -0
  76. package/out/replicache/src/error-responses.d.ts +26 -0
  77. package/out/replicache/src/error-responses.d.ts.map +1 -0
  78. package/out/replicache/src/filter-async-iterable.d.ts +10 -0
  79. package/out/replicache/src/filter-async-iterable.d.ts.map +1 -0
  80. package/out/replicache/src/format-version.d.ts +9 -0
  81. package/out/replicache/src/format-version.d.ts.map +1 -0
  82. package/out/replicache/src/frozen-json.d.ts +35 -0
  83. package/out/replicache/src/frozen-json.d.ts.map +1 -0
  84. package/out/replicache/src/get-default-puller.d.ts +14 -0
  85. package/out/replicache/src/get-default-puller.d.ts.map +1 -0
  86. package/out/replicache/src/get-default-pusher.d.ts +10 -0
  87. package/out/replicache/src/get-default-pusher.d.ts.map +1 -0
  88. package/out/replicache/src/hash.d.ts +29 -0
  89. package/out/replicache/src/hash.d.ts.map +1 -0
  90. package/out/replicache/src/http-request-info.d.ts +6 -0
  91. package/out/replicache/src/http-request-info.d.ts.map +1 -0
  92. package/out/replicache/src/impl.d.ts +4 -0
  93. package/out/replicache/src/impl.d.ts.map +1 -0
  94. package/out/replicache/src/index-defs.d.ts +36 -0
  95. package/out/replicache/src/index-defs.d.ts.map +1 -0
  96. package/out/replicache/src/iterable-union.d.ts +5 -0
  97. package/out/replicache/src/iterable-union.d.ts.map +1 -0
  98. package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +25 -0
  99. package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +1 -0
  100. package/out/replicache/src/kv/idb-store.d.ts +18 -0
  101. package/out/replicache/src/kv/idb-store.d.ts.map +1 -0
  102. package/out/replicache/src/kv/mem-store.d.ts +23 -0
  103. package/out/replicache/src/kv/mem-store.d.ts.map +1 -0
  104. package/out/replicache/src/kv/read-impl.d.ts +11 -0
  105. package/out/replicache/src/kv/read-impl.d.ts.map +1 -0
  106. package/out/replicache/src/kv/store.d.ts +76 -0
  107. package/out/replicache/src/kv/store.d.ts.map +1 -0
  108. package/out/replicache/src/kv/write-impl-base.d.ts +18 -0
  109. package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -0
  110. package/out/replicache/src/kv/write-impl.d.ts +9 -0
  111. package/out/replicache/src/kv/write-impl.d.ts.map +1 -0
  112. package/out/replicache/src/lazy.d.ts +2 -0
  113. package/out/replicache/src/lazy.d.ts.map +1 -0
  114. package/out/replicache/src/log-options.d.ts +10 -0
  115. package/out/replicache/src/log-options.d.ts.map +1 -0
  116. package/out/replicache/src/merge-async-iterables.d.ts +16 -0
  117. package/out/replicache/src/merge-async-iterables.d.ts.map +1 -0
  118. package/out/replicache/src/mod.d.ts +38 -0
  119. package/out/replicache/src/mod.d.ts.map +1 -0
  120. package/out/replicache/src/mutation-recovery.d.ts +43 -0
  121. package/out/replicache/src/mutation-recovery.d.ts.map +1 -0
  122. package/out/replicache/src/new-client-channel.d.ts +6 -0
  123. package/out/replicache/src/new-client-channel.d.ts.map +1 -0
  124. package/out/replicache/src/on-persist-channel.d.ts +10 -0
  125. package/out/replicache/src/on-persist-channel.d.ts.map +1 -0
  126. package/out/replicache/src/patch-operation.d.ts +32 -0
  127. package/out/replicache/src/patch-operation.d.ts.map +1 -0
  128. package/out/replicache/src/pending-mutations.d.ts +14 -0
  129. package/out/replicache/src/pending-mutations.d.ts.map +1 -0
  130. package/out/replicache/src/persist/client-gc.d.ts +17 -0
  131. package/out/replicache/src/persist/client-gc.d.ts.map +1 -0
  132. package/out/replicache/src/persist/client-group-gc.d.ts +10 -0
  133. package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -0
  134. package/out/replicache/src/persist/client-groups.d.ts +72 -0
  135. package/out/replicache/src/persist/client-groups.d.ts.map +1 -0
  136. package/out/replicache/src/persist/clients.d.ts +155 -0
  137. package/out/replicache/src/persist/clients.d.ts.map +1 -0
  138. package/out/replicache/src/persist/collect-idb-databases.d.ts +91 -0
  139. package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -0
  140. package/out/replicache/src/persist/gather-mem-only-visitor.d.ts +12 -0
  141. package/out/replicache/src/persist/gather-mem-only-visitor.d.ts.map +1 -0
  142. package/out/replicache/src/persist/gather-not-cached-visitor.d.ts +17 -0
  143. package/out/replicache/src/persist/gather-not-cached-visitor.d.ts.map +1 -0
  144. package/out/replicache/src/persist/heartbeat.d.ts +9 -0
  145. package/out/replicache/src/persist/heartbeat.d.ts.map +1 -0
  146. package/out/replicache/src/persist/idb-databases-store-db-name.d.ts +5 -0
  147. package/out/replicache/src/persist/idb-databases-store-db-name.d.ts.map +1 -0
  148. package/out/replicache/src/persist/idb-databases-store.d.ts +24 -0
  149. package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -0
  150. package/out/replicache/src/persist/make-client-id.d.ts +6 -0
  151. package/out/replicache/src/persist/make-client-id.d.ts.map +1 -0
  152. package/out/replicache/src/persist/persist.d.ts +26 -0
  153. package/out/replicache/src/persist/persist.d.ts.map +1 -0
  154. package/out/replicache/src/persist/refresh.d.ts +13 -0
  155. package/out/replicache/src/persist/refresh.d.ts.map +1 -0
  156. package/out/replicache/src/process-scheduler.d.ts +20 -0
  157. package/out/replicache/src/process-scheduler.d.ts.map +1 -0
  158. package/out/replicache/src/puller.d.ts +61 -0
  159. package/out/replicache/src/puller.d.ts.map +1 -0
  160. package/out/replicache/src/pusher.d.ts +33 -0
  161. package/out/replicache/src/pusher.d.ts.map +1 -0
  162. package/out/replicache/src/replicache-impl.d.ts +321 -0
  163. package/out/replicache/src/replicache-impl.d.ts.map +1 -0
  164. package/out/replicache/src/replicache-options.d.ts +209 -0
  165. package/out/replicache/src/replicache-options.d.ts.map +1 -0
  166. package/out/replicache/src/replicache.d.ts +298 -0
  167. package/out/replicache/src/replicache.d.ts.map +1 -0
  168. package/out/replicache/src/request-idle.d.ts +6 -0
  169. package/out/replicache/src/request-idle.d.ts.map +1 -0
  170. package/out/replicache/src/scan-iterator.d.ts +127 -0
  171. package/out/replicache/src/scan-iterator.d.ts.map +1 -0
  172. package/out/replicache/src/scan-options.d.ts +67 -0
  173. package/out/replicache/src/scan-options.d.ts.map +1 -0
  174. package/out/replicache/src/set-interval-with-signal.d.ts +2 -0
  175. package/out/replicache/src/set-interval-with-signal.d.ts.map +1 -0
  176. package/out/replicache/src/size-of-value.d.ts +19 -0
  177. package/out/replicache/src/size-of-value.d.ts.map +1 -0
  178. package/out/replicache/src/subscriptions.d.ts +140 -0
  179. package/out/replicache/src/subscriptions.d.ts.map +1 -0
  180. package/out/replicache/src/sync/diff.d.ts +31 -0
  181. package/out/replicache/src/sync/diff.d.ts.map +1 -0
  182. package/out/replicache/src/sync/ids.d.ts +13 -0
  183. package/out/replicache/src/sync/ids.d.ts.map +1 -0
  184. package/out/replicache/src/sync/patch.d.ts +5 -0
  185. package/out/replicache/src/sync/patch.d.ts.map +1 -0
  186. package/out/replicache/src/sync/pull-error.d.ts +9 -0
  187. package/out/replicache/src/sync/pull-error.d.ts.map +1 -0
  188. package/out/replicache/src/sync/pull.d.ts +82 -0
  189. package/out/replicache/src/sync/pull.d.ts.map +1 -0
  190. package/out/replicache/src/sync/push.d.ts +65 -0
  191. package/out/replicache/src/sync/push.d.ts.map +1 -0
  192. package/out/replicache/src/sync/request-id.d.ts +10 -0
  193. package/out/replicache/src/sync/request-id.d.ts.map +1 -0
  194. package/out/replicache/src/sync/sync-head-name.d.ts +2 -0
  195. package/out/replicache/src/sync/sync-head-name.d.ts.map +1 -0
  196. package/out/replicache/src/test-license-key.d.ts +3 -0
  197. package/out/replicache/src/test-license-key.d.ts.map +1 -0
  198. package/out/replicache/src/to-error.d.ts +2 -0
  199. package/out/replicache/src/to-error.d.ts.map +1 -0
  200. package/out/replicache/src/transaction-closed-error.d.ts +12 -0
  201. package/out/replicache/src/transaction-closed-error.d.ts.map +1 -0
  202. package/out/replicache/src/transactions.d.ts +156 -0
  203. package/out/replicache/src/transactions.d.ts.map +1 -0
  204. package/out/replicache/src/types.d.ts +57 -0
  205. package/out/replicache/src/types.d.ts.map +1 -0
  206. package/out/replicache/src/version.d.ts +5 -0
  207. package/out/replicache/src/version.d.ts.map +1 -0
  208. package/out/replicache/src/with-transactions.d.ts +23 -0
  209. package/out/replicache/src/with-transactions.d.ts.map +1 -0
  210. package/out/shared/src/abort-error.d.ts +4 -0
  211. package/out/shared/src/abort-error.d.ts.map +1 -0
  212. package/out/shared/src/abort-error.js +4 -0
  213. package/out/shared/src/abort-error.js.map +1 -0
  214. package/out/shared/src/asserts.d.ts +17 -0
  215. package/out/shared/src/asserts.d.ts.map +1 -0
  216. package/out/shared/src/asserts.js +73 -0
  217. package/out/shared/src/asserts.js.map +1 -0
  218. package/out/shared/src/browser-env.d.ts +3 -0
  219. package/out/shared/src/browser-env.d.ts.map +1 -0
  220. package/out/shared/src/config.d.ts +3 -0
  221. package/out/shared/src/config.d.ts.map +1 -0
  222. package/out/shared/src/config.js +3 -0
  223. package/out/shared/src/config.js.map +1 -0
  224. package/out/shared/src/custom-key-map.d.ts +26 -0
  225. package/out/shared/src/custom-key-map.d.ts.map +1 -0
  226. package/out/shared/src/custom-key-map.js +65 -0
  227. package/out/shared/src/custom-key-map.js.map +1 -0
  228. package/out/shared/src/deep-clone.d.ts +4 -0
  229. package/out/shared/src/deep-clone.d.ts.map +1 -0
  230. package/out/shared/src/document-visible.d.ts +9 -0
  231. package/out/shared/src/document-visible.d.ts.map +1 -0
  232. package/out/shared/src/has-own.d.ts +5 -0
  233. package/out/shared/src/has-own.d.ts.map +1 -0
  234. package/out/shared/src/has-own.js +8 -0
  235. package/out/shared/src/has-own.js.map +1 -0
  236. package/out/shared/src/immutable.d.ts +11 -0
  237. package/out/shared/src/immutable.d.ts.map +1 -0
  238. package/out/shared/src/iterables.d.ts +11 -0
  239. package/out/shared/src/iterables.d.ts.map +1 -0
  240. package/out/shared/src/json-schema.d.ts +5 -0
  241. package/out/shared/src/json-schema.d.ts.map +1 -0
  242. package/out/shared/src/json-schema.js +36 -0
  243. package/out/shared/src/json-schema.js.map +1 -0
  244. package/out/shared/src/json.d.ts +55 -0
  245. package/out/shared/src/json.d.ts.map +1 -0
  246. package/out/shared/src/json.js +164 -0
  247. package/out/shared/src/json.js.map +1 -0
  248. package/out/shared/src/must.d.ts +2 -0
  249. package/out/shared/src/must.d.ts.map +1 -0
  250. package/out/shared/src/must.js +8 -0
  251. package/out/shared/src/must.js.map +1 -0
  252. package/out/shared/src/navigator.d.ts +7 -0
  253. package/out/shared/src/navigator.d.ts.map +1 -0
  254. package/out/shared/src/parse-big-int.d.ts +2 -0
  255. package/out/shared/src/parse-big-int.d.ts.map +1 -0
  256. package/out/shared/src/parse-big-int.js +11 -0
  257. package/out/shared/src/parse-big-int.js.map +1 -0
  258. package/out/shared/src/queue.d.ts +40 -0
  259. package/out/shared/src/queue.d.ts.map +1 -0
  260. package/out/shared/src/queue.js +118 -0
  261. package/out/shared/src/queue.js.map +1 -0
  262. package/out/shared/src/rand.d.ts +7 -0
  263. package/out/shared/src/rand.d.ts.map +1 -0
  264. package/out/shared/src/rand.js +11 -0
  265. package/out/shared/src/rand.js.map +1 -0
  266. package/out/shared/src/random-uint64.d.ts +2 -0
  267. package/out/shared/src/random-uint64.d.ts.map +1 -0
  268. package/out/shared/src/random-values.d.ts +2 -0
  269. package/out/shared/src/random-values.d.ts.map +1 -0
  270. package/out/shared/src/resolved-promises.d.ts +5 -0
  271. package/out/shared/src/resolved-promises.d.ts.map +1 -0
  272. package/out/shared/src/resolved-promises.js +5 -0
  273. package/out/shared/src/resolved-promises.js.map +1 -0
  274. package/out/shared/src/set-utils.d.ts +9 -0
  275. package/out/shared/src/set-utils.d.ts.map +1 -0
  276. package/out/shared/src/set-utils.js +60 -0
  277. package/out/shared/src/set-utils.js.map +1 -0
  278. package/out/shared/src/sleep.d.ts +15 -0
  279. package/out/shared/src/sleep.d.ts.map +1 -0
  280. package/out/shared/src/sleep.js +54 -0
  281. package/out/shared/src/sleep.js.map +1 -0
  282. package/out/shared/src/string-compare.d.ts +2 -0
  283. package/out/shared/src/string-compare.d.ts.map +1 -0
  284. package/out/shared/src/string-compare.js +10 -0
  285. package/out/shared/src/string-compare.js.map +1 -0
  286. package/out/shared/src/types.d.ts +2 -0
  287. package/out/shared/src/types.d.ts.map +1 -0
  288. package/out/shared/src/valita.d.ts +27 -0
  289. package/out/shared/src/valita.d.ts.map +1 -0
  290. package/out/shared/src/valita.js +118 -0
  291. package/out/shared/src/valita.js.map +1 -0
  292. package/out/shared/src/xxhash.d.ts +3 -0
  293. package/out/shared/src/xxhash.d.ts.map +1 -0
  294. package/out/shared/src/xxhash.js +4 -0
  295. package/out/shared/src/xxhash.js.map +1 -0
  296. package/out/zero/src/cli.d.ts +3 -0
  297. package/out/zero/src/cli.d.ts.map +1 -0
  298. package/out/zero/src/cli.js +3 -0
  299. package/out/zero/src/cli.js.map +1 -0
  300. package/out/zero/src/react.d.ts +2 -0
  301. package/out/zero/src/react.d.ts.map +1 -0
  302. package/out/zero/src/server/change-streamer.d.ts +2 -0
  303. package/out/zero/src/server/change-streamer.d.ts.map +1 -0
  304. package/out/zero/src/server/change-streamer.js +2 -0
  305. package/out/zero/src/server/change-streamer.js.map +1 -0
  306. package/out/zero/src/server/main.d.ts +2 -0
  307. package/out/zero/src/server/main.d.ts.map +1 -0
  308. package/out/zero/src/server/main.js +2 -0
  309. package/out/zero/src/server/main.js.map +1 -0
  310. package/out/zero/src/server/replicator.d.ts +2 -0
  311. package/out/zero/src/server/replicator.d.ts.map +1 -0
  312. package/out/zero/src/server/replicator.js +2 -0
  313. package/out/zero/src/server/replicator.js.map +1 -0
  314. package/out/zero/src/server/syncer.d.ts +2 -0
  315. package/out/zero/src/server/syncer.d.ts.map +1 -0
  316. package/out/zero/src/server/syncer.js +2 -0
  317. package/out/zero/src/server/syncer.js.map +1 -0
  318. package/out/zero/src/zero.d.ts +2 -0
  319. package/out/zero/src/zero.d.ts.map +1 -0
  320. package/out/zero-cache/src/config/zero-config.d.ts +1509 -0
  321. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -0
  322. package/out/zero-cache/src/config/zero-config.js +227 -0
  323. package/out/zero-cache/src/config/zero-config.js.map +1 -0
  324. package/out/zero-cache/src/db/lite-tables.d.ts +5 -0
  325. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -0
  326. package/out/zero-cache/src/db/lite-tables.js +75 -0
  327. package/out/zero-cache/src/db/lite-tables.js.map +1 -0
  328. package/out/zero-cache/src/db/migration-lite.d.ts +38 -0
  329. package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -0
  330. package/out/zero-cache/src/db/migration-lite.js +161 -0
  331. package/out/zero-cache/src/db/migration-lite.js.map +1 -0
  332. package/out/zero-cache/src/db/migration.d.ts +38 -0
  333. package/out/zero-cache/src/db/migration.d.ts.map +1 -0
  334. package/out/zero-cache/src/db/migration.js +139 -0
  335. package/out/zero-cache/src/db/migration.js.map +1 -0
  336. package/out/zero-cache/src/db/statements.d.ts +31 -0
  337. package/out/zero-cache/src/db/statements.d.ts.map +1 -0
  338. package/out/zero-cache/src/db/statements.js +48 -0
  339. package/out/zero-cache/src/db/statements.js.map +1 -0
  340. package/out/zero-cache/src/db/transaction-pool.d.ts +187 -0
  341. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -0
  342. package/out/zero-cache/src/db/transaction-pool.js +445 -0
  343. package/out/zero-cache/src/db/transaction-pool.js.map +1 -0
  344. package/out/zero-cache/src/server/change-streamer.d.ts +3 -0
  345. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -0
  346. package/out/zero-cache/src/server/change-streamer.js +30 -0
  347. package/out/zero-cache/src/server/change-streamer.js.map +1 -0
  348. package/out/zero-cache/src/server/logging.d.ts +6 -0
  349. package/out/zero-cache/src/server/logging.d.ts.map +1 -0
  350. package/out/zero-cache/src/server/logging.js +23 -0
  351. package/out/zero-cache/src/server/logging.js.map +1 -0
  352. package/out/zero-cache/src/server/main.d.ts +2 -0
  353. package/out/zero-cache/src/server/main.d.ts.map +1 -0
  354. package/out/zero-cache/src/server/main.js +92 -0
  355. package/out/zero-cache/src/server/main.js.map +1 -0
  356. package/out/zero-cache/src/server/replicator.d.ts +3 -0
  357. package/out/zero-cache/src/server/replicator.d.ts.map +1 -0
  358. package/out/zero-cache/src/server/replicator.js +35 -0
  359. package/out/zero-cache/src/server/replicator.js.map +1 -0
  360. package/out/zero-cache/src/server/syncer.d.ts +3 -0
  361. package/out/zero-cache/src/server/syncer.d.ts.map +1 -0
  362. package/out/zero-cache/src/server/syncer.js +45 -0
  363. package/out/zero-cache/src/server/syncer.js.map +1 -0
  364. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +23 -0
  365. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -0
  366. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +98 -0
  367. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -0
  368. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +39 -0
  369. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -0
  370. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +212 -0
  371. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -0
  372. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +110 -0
  373. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -0
  374. package/out/zero-cache/src/services/change-streamer/change-streamer.js +7 -0
  375. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -0
  376. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +19 -0
  377. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -0
  378. package/out/zero-cache/src/services/change-streamer/forwarder.js +56 -0
  379. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -0
  380. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts +14 -0
  381. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -0
  382. package/out/zero-cache/src/services/change-streamer/pg/change-source.js +206 -0
  383. package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -0
  384. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts +6 -0
  385. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -0
  386. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +192 -0
  387. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -0
  388. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +17 -0
  389. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +1 -0
  390. package/out/zero-cache/src/services/change-streamer/pg/lsn.js +17 -0
  391. package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +1 -0
  392. package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +6 -0
  393. package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +1 -0
  394. package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +29 -0
  395. package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +1 -0
  396. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +79 -0
  397. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -0
  398. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +237 -0
  399. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -0
  400. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +5 -0
  401. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +1 -0
  402. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +111 -0
  403. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +1 -0
  404. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +26 -0
  405. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -0
  406. package/out/zero-cache/src/services/change-streamer/pg/schema/published.js +185 -0
  407. package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -0
  408. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +11 -0
  409. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -0
  410. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js +86 -0
  411. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js.map +1 -0
  412. package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts +19 -0
  413. package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts.map +1 -0
  414. package/out/zero-cache/src/services/change-streamer/pg/shard-config.js +2 -0
  415. package/out/zero-cache/src/services/change-streamer/pg/shard-config.js.map +1 -0
  416. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts +4 -0
  417. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts.map +1 -0
  418. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +12 -0
  419. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -0
  420. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +31 -0
  421. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -0
  422. package/out/zero-cache/src/services/change-streamer/schema/change.js +2 -0
  423. package/out/zero-cache/src/services/change-streamer/schema/change.js.map +1 -0
  424. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +4 -0
  425. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -0
  426. package/out/zero-cache/src/services/change-streamer/schema/init.js +10 -0
  427. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -0
  428. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +22 -0
  429. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -0
  430. package/out/zero-cache/src/services/change-streamer/schema/tables.js +49 -0
  431. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -0
  432. package/out/zero-cache/src/services/change-streamer/storer.d.ts +22 -0
  433. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -0
  434. package/out/zero-cache/src/services/change-streamer/storer.js +157 -0
  435. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -0
  436. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +27 -0
  437. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -0
  438. package/out/zero-cache/src/services/change-streamer/subscriber.js +70 -0
  439. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -0
  440. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +20 -0
  441. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -0
  442. package/out/zero-cache/src/services/dispatcher/connect-params.js +36 -0
  443. package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -0
  444. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +19 -0
  445. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -0
  446. package/out/zero-cache/src/services/dispatcher/dispatcher.js +55 -0
  447. package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -0
  448. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts +11 -0
  449. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +1 -0
  450. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js +33 -0
  451. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +1 -0
  452. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +57 -0
  453. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +1 -0
  454. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +130 -0
  455. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -0
  456. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +24 -0
  457. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -0
  458. package/out/zero-cache/src/services/mutagen/mutagen.js +247 -0
  459. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -0
  460. package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts +20 -0
  461. package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -0
  462. package/out/zero-cache/src/services/mutagen/write-authorizer.js +187 -0
  463. package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -0
  464. package/out/zero-cache/src/services/replicator/checkpointer.d.ts +79 -0
  465. package/out/zero-cache/src/services/replicator/checkpointer.d.ts.map +1 -0
  466. package/out/zero-cache/src/services/replicator/checkpointer.js +124 -0
  467. package/out/zero-cache/src/services/replicator/checkpointer.js.map +1 -0
  468. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +39 -0
  469. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -0
  470. package/out/zero-cache/src/services/replicator/incremental-sync.js +342 -0
  471. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -0
  472. package/out/zero-cache/src/services/replicator/notifier.d.ts +30 -0
  473. package/out/zero-cache/src/services/replicator/notifier.d.ts.map +1 -0
  474. package/out/zero-cache/src/services/replicator/notifier.js +54 -0
  475. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -0
  476. package/out/zero-cache/src/services/replicator/replicator.d.ts +65 -0
  477. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -0
  478. package/out/zero-cache/src/services/replicator/replicator.js +27 -0
  479. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -0
  480. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +35 -0
  481. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -0
  482. package/out/zero-cache/src/services/replicator/schema/change-log.js +78 -0
  483. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -0
  484. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +25 -0
  485. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -0
  486. package/out/zero-cache/src/services/replicator/schema/replication-state.js +90 -0
  487. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -0
  488. package/out/zero-cache/src/services/runner.d.ts +21 -0
  489. package/out/zero-cache/src/services/runner.d.ts.map +1 -0
  490. package/out/zero-cache/src/services/runner.js +63 -0
  491. package/out/zero-cache/src/services/runner.js.map +1 -0
  492. package/out/zero-cache/src/services/running-state.d.ts +56 -0
  493. package/out/zero-cache/src/services/running-state.d.ts.map +1 -0
  494. package/out/zero-cache/src/services/running-state.js +106 -0
  495. package/out/zero-cache/src/services/running-state.js.map +1 -0
  496. package/out/zero-cache/src/services/service.d.ts +29 -0
  497. package/out/zero-cache/src/services/service.d.ts.map +1 -0
  498. package/out/zero-cache/src/services/service.js +2 -0
  499. package/out/zero-cache/src/services/service.js.map +1 -0
  500. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +53 -0
  501. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -0
  502. package/out/zero-cache/src/services/view-syncer/client-handler.js +184 -0
  503. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -0
  504. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +44 -0
  505. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -0
  506. package/out/zero-cache/src/services/view-syncer/cvr-store.js +386 -0
  507. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -0
  508. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +146 -0
  509. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -0
  510. package/out/zero-cache/src/services/view-syncer/cvr.js +446 -0
  511. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -0
  512. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +22 -0
  513. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -0
  514. package/out/zero-cache/src/services/view-syncer/database-storage.js +129 -0
  515. package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -0
  516. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +103 -0
  517. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -0
  518. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +290 -0
  519. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -0
  520. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +54 -0
  521. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -0
  522. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +181 -0
  523. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -0
  524. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts +4 -0
  525. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts.map +1 -0
  526. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js +12 -0
  527. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js.map +1 -0
  528. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +783 -0
  529. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -0
  530. package/out/zero-cache/src/services/view-syncer/schema/types.js +213 -0
  531. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -0
  532. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +166 -0
  533. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -0
  534. package/out/zero-cache/src/services/view-syncer/snapshotter.js +374 -0
  535. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -0
  536. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +37 -0
  537. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -0
  538. package/out/zero-cache/src/services/view-syncer/view-syncer.js +522 -0
  539. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -0
  540. package/out/zero-cache/src/types/bigint-json.d.ts +26 -0
  541. package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -0
  542. package/out/zero-cache/src/types/bigint-json.js +49 -0
  543. package/out/zero-cache/src/types/bigint-json.js.map +1 -0
  544. package/out/zero-cache/src/types/error-for-client.d.ts +7 -0
  545. package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -0
  546. package/out/zero-cache/src/types/error-for-client.js +17 -0
  547. package/out/zero-cache/src/types/error-for-client.js.map +1 -0
  548. package/out/zero-cache/src/types/lexi-version.d.ts +29 -0
  549. package/out/zero-cache/src/types/lexi-version.d.ts.map +1 -0
  550. package/out/zero-cache/src/types/lexi-version.js +36 -0
  551. package/out/zero-cache/src/types/lexi-version.js.map +1 -0
  552. package/out/zero-cache/src/types/lite.d.ts +11 -0
  553. package/out/zero-cache/src/types/lite.d.ts.map +1 -0
  554. package/out/zero-cache/src/types/lite.js +26 -0
  555. package/out/zero-cache/src/types/lite.js.map +1 -0
  556. package/out/zero-cache/src/types/names.d.ts +5 -0
  557. package/out/zero-cache/src/types/names.d.ts.map +1 -0
  558. package/out/zero-cache/src/types/names.js +4 -0
  559. package/out/zero-cache/src/types/names.js.map +1 -0
  560. package/out/zero-cache/src/types/pg.d.ts +31 -0
  561. package/out/zero-cache/src/types/pg.d.ts.map +1 -0
  562. package/out/zero-cache/src/types/pg.js +60 -0
  563. package/out/zero-cache/src/types/pg.js.map +1 -0
  564. package/out/zero-cache/src/types/processes.d.ts +57 -0
  565. package/out/zero-cache/src/types/processes.d.ts.map +1 -0
  566. package/out/zero-cache/src/types/processes.js +121 -0
  567. package/out/zero-cache/src/types/processes.js.map +1 -0
  568. package/out/zero-cache/src/types/row-key.d.ts +37 -0
  569. package/out/zero-cache/src/types/row-key.d.ts.map +1 -0
  570. package/out/zero-cache/src/types/row-key.js +64 -0
  571. package/out/zero-cache/src/types/row-key.js.map +1 -0
  572. package/out/zero-cache/src/types/satisfies.d.ts +14 -0
  573. package/out/zero-cache/src/types/satisfies.d.ts.map +1 -0
  574. package/out/zero-cache/src/types/satisfies.js +2 -0
  575. package/out/zero-cache/src/types/satisfies.js.map +1 -0
  576. package/out/zero-cache/src/types/specs.d.ts +29 -0
  577. package/out/zero-cache/src/types/specs.d.ts.map +1 -0
  578. package/out/zero-cache/src/types/specs.js +2 -0
  579. package/out/zero-cache/src/types/specs.js.map +1 -0
  580. package/out/zero-cache/src/types/sql.d.ts +11 -0
  581. package/out/zero-cache/src/types/sql.d.ts.map +1 -0
  582. package/out/zero-cache/src/types/sql.js +15 -0
  583. package/out/zero-cache/src/types/sql.js.map +1 -0
  584. package/out/zero-cache/src/types/streams.d.ts +33 -0
  585. package/out/zero-cache/src/types/streams.d.ts.map +1 -0
  586. package/out/zero-cache/src/types/streams.js +141 -0
  587. package/out/zero-cache/src/types/streams.js.map +1 -0
  588. package/out/zero-cache/src/types/subscription.d.ts +158 -0
  589. package/out/zero-cache/src/types/subscription.d.ts.map +1 -0
  590. package/out/zero-cache/src/types/subscription.js +233 -0
  591. package/out/zero-cache/src/types/subscription.js.map +1 -0
  592. package/out/zero-cache/src/types/timeout.d.ts +11 -0
  593. package/out/zero-cache/src/types/timeout.d.ts.map +1 -0
  594. package/out/zero-cache/src/types/timeout.js +23 -0
  595. package/out/zero-cache/src/types/timeout.js.map +1 -0
  596. package/out/zero-cache/src/types/url-params.d.ts +10 -0
  597. package/out/zero-cache/src/types/url-params.d.ts.map +1 -0
  598. package/out/zero-cache/src/types/url-params.js +35 -0
  599. package/out/zero-cache/src/types/url-params.js.map +1 -0
  600. package/out/zero-cache/src/workers/connection.d.ts +25 -0
  601. package/out/zero-cache/src/workers/connection.d.ts.map +1 -0
  602. package/out/zero-cache/src/workers/connection.js +189 -0
  603. package/out/zero-cache/src/workers/connection.js.map +1 -0
  604. package/out/zero-cache/src/workers/replicator.d.ts +17 -0
  605. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -0
  606. package/out/zero-cache/src/workers/replicator.js +105 -0
  607. package/out/zero-cache/src/workers/replicator.js.map +1 -0
  608. package/out/zero-cache/src/workers/syncer.d.ts +28 -0
  609. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -0
  610. package/out/zero-cache/src/workers/syncer.js +72 -0
  611. package/out/zero-cache/src/workers/syncer.js.map +1 -0
  612. package/out/zero-client/src/client/context.d.ts +23 -0
  613. package/out/zero-client/src/client/context.d.ts.map +1 -0
  614. package/out/zero-client/src/client/crud.d.ts +52 -0
  615. package/out/zero-client/src/client/crud.d.ts.map +1 -0
  616. package/out/zero-client/src/client/enable-analytics.d.ts +3 -0
  617. package/out/zero-client/src/client/enable-analytics.d.ts.map +1 -0
  618. package/out/zero-client/src/client/http-string.d.ts +7 -0
  619. package/out/zero-client/src/client/http-string.d.ts.map +1 -0
  620. package/out/zero-client/src/client/keys.d.ts +11 -0
  621. package/out/zero-client/src/client/keys.d.ts.map +1 -0
  622. package/out/zero-client/src/client/log-options.d.ts +12 -0
  623. package/out/zero-client/src/client/log-options.d.ts.map +1 -0
  624. package/out/zero-client/src/client/metrics.d.ts +115 -0
  625. package/out/zero-client/src/client/metrics.d.ts.map +1 -0
  626. package/out/zero-client/src/client/options.d.ts +94 -0
  627. package/out/zero-client/src/client/options.d.ts.map +1 -0
  628. package/out/zero-client/src/client/query-manager.d.ts +16 -0
  629. package/out/zero-client/src/client/query-manager.d.ts.map +1 -0
  630. package/out/zero-client/src/client/reload-error-handler.d.ts +5 -0
  631. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -0
  632. package/out/zero-client/src/client/replicache-types.d.ts +48 -0
  633. package/out/zero-client/src/client/replicache-types.d.ts.map +1 -0
  634. package/out/zero-client/src/client/server-error.d.ts +12 -0
  635. package/out/zero-client/src/client/server-error.d.ts.map +1 -0
  636. package/out/zero-client/src/client/server-option.d.ts +3 -0
  637. package/out/zero-client/src/client/server-option.d.ts.map +1 -0
  638. package/out/zero-client/src/client/version.d.ts +5 -0
  639. package/out/zero-client/src/client/version.d.ts.map +1 -0
  640. package/out/zero-client/src/client/zero-poke-handler.d.ts +28 -0
  641. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -0
  642. package/out/zero-client/src/client/zero.d.ts +183 -0
  643. package/out/zero-client/src/client/zero.d.ts.map +1 -0
  644. package/out/zero-client/src/mod.d.ts +9 -0
  645. package/out/zero-client/src/mod.d.ts.map +1 -0
  646. package/out/zero-client/src/util/nanoid.d.ts +2 -0
  647. package/out/zero-client/src/util/nanoid.d.ts.map +1 -0
  648. package/out/zero-client/src/util/socket.d.ts +3 -0
  649. package/out/zero-client/src/util/socket.d.ts.map +1 -0
  650. package/out/zero-protocol/src/ast.d.ts +69 -0
  651. package/out/zero-protocol/src/ast.d.ts.map +1 -0
  652. package/out/zero-protocol/src/ast.js +64 -0
  653. package/out/zero-protocol/src/ast.js.map +1 -0
  654. package/out/zero-protocol/src/change-desired-queries.d.ts +71 -0
  655. package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -0
  656. package/out/zero-protocol/src/change-desired-queries.js +10 -0
  657. package/out/zero-protocol/src/change-desired-queries.js.map +1 -0
  658. package/out/zero-protocol/src/clients-patch.d.ts +37 -0
  659. package/out/zero-protocol/src/clients-patch.d.ts.map +1 -0
  660. package/out/zero-protocol/src/clients-patch.js +15 -0
  661. package/out/zero-protocol/src/clients-patch.js.map +1 -0
  662. package/out/zero-protocol/src/connect.d.ts +88 -0
  663. package/out/zero-protocol/src/connect.d.ts.map +1 -0
  664. package/out/zero-protocol/src/connect.js +25 -0
  665. package/out/zero-protocol/src/connect.js.map +1 -0
  666. package/out/zero-protocol/src/delete-clients.d.ts +11 -0
  667. package/out/zero-protocol/src/delete-clients.d.ts.map +1 -0
  668. package/out/zero-protocol/src/delete-clients.js +9 -0
  669. package/out/zero-protocol/src/delete-clients.js.map +1 -0
  670. package/out/zero-protocol/src/down.d.ts +110 -0
  671. package/out/zero-protocol/src/down.d.ts.map +1 -0
  672. package/out/zero-protocol/src/down.js +8 -0
  673. package/out/zero-protocol/src/down.js.map +1 -0
  674. package/out/zero-protocol/src/entities-patch.d.ts +66 -0
  675. package/out/zero-protocol/src/entities-patch.d.ts.map +1 -0
  676. package/out/zero-protocol/src/entities-patch.js +27 -0
  677. package/out/zero-protocol/src/entities-patch.js.map +1 -0
  678. package/out/zero-protocol/src/entity.d.ts +9 -0
  679. package/out/zero-protocol/src/entity.d.ts.map +1 -0
  680. package/out/zero-protocol/src/entity.js +8 -0
  681. package/out/zero-protocol/src/entity.js.map +1 -0
  682. package/out/zero-protocol/src/error.d.ts +19 -0
  683. package/out/zero-protocol/src/error.d.ts.map +1 -0
  684. package/out/zero-protocol/src/error.js +26 -0
  685. package/out/zero-protocol/src/error.js.map +1 -0
  686. package/out/zero-protocol/src/mod.d.ts +16 -0
  687. package/out/zero-protocol/src/mod.d.ts.map +1 -0
  688. package/out/zero-protocol/src/mod.js +16 -0
  689. package/out/zero-protocol/src/mod.js.map +1 -0
  690. package/out/zero-protocol/src/ping.d.ts +6 -0
  691. package/out/zero-protocol/src/ping.d.ts.map +1 -0
  692. package/out/zero-protocol/src/ping.js +4 -0
  693. package/out/zero-protocol/src/ping.js.map +1 -0
  694. package/out/zero-protocol/src/poke.d.ts +236 -0
  695. package/out/zero-protocol/src/poke.d.ts.map +1 -0
  696. package/out/zero-protocol/src/poke.js +69 -0
  697. package/out/zero-protocol/src/poke.js.map +1 -0
  698. package/out/zero-protocol/src/pong.d.ts +6 -0
  699. package/out/zero-protocol/src/pong.d.ts.map +1 -0
  700. package/out/zero-protocol/src/pong.js +4 -0
  701. package/out/zero-protocol/src/pong.js.map +1 -0
  702. package/out/zero-protocol/src/pull.d.ts +26 -0
  703. package/out/zero-protocol/src/pull.d.ts.map +1 -0
  704. package/out/zero-protocol/src/pull.js +24 -0
  705. package/out/zero-protocol/src/pull.js.map +1 -0
  706. package/out/zero-protocol/src/push.d.ts +257 -0
  707. package/out/zero-protocol/src/push.d.ts.map +1 -0
  708. package/out/zero-protocol/src/push.js +77 -0
  709. package/out/zero-protocol/src/push.js.map +1 -0
  710. package/out/zero-protocol/src/queries-patch.d.ts +103 -0
  711. package/out/zero-protocol/src/queries-patch.d.ts.map +1 -0
  712. package/out/zero-protocol/src/queries-patch.js +17 -0
  713. package/out/zero-protocol/src/queries-patch.js.map +1 -0
  714. package/out/zero-protocol/src/up.d.ts +116 -0
  715. package/out/zero-protocol/src/up.d.ts.map +1 -0
  716. package/out/zero-protocol/src/up.js +9 -0
  717. package/out/zero-protocol/src/up.js.map +1 -0
  718. package/out/zero-protocol/src/version.d.ts +6 -0
  719. package/out/zero-protocol/src/version.d.ts.map +1 -0
  720. package/out/zero-protocol/src/version.js +4 -0
  721. package/out/zero-protocol/src/version.js.map +1 -0
  722. package/out/zero-react/src/mod.d.ts +3 -0
  723. package/out/zero-react/src/mod.d.ts.map +1 -0
  724. package/out/zero-react/src/use-query.d.ts +3 -0
  725. package/out/zero-react/src/use-query.d.ts.map +1 -0
  726. package/out/zero-react/src/use-zero.d.ts +8 -0
  727. package/out/zero-react/src/use-zero.d.ts.map +1 -0
  728. package/out/zero.js +7000 -0
  729. package/out/zero.js.map +7 -0
  730. package/out/zql/src/zql/ast/ast.d.ts +84 -0
  731. package/out/zql/src/zql/ast/ast.d.ts.map +1 -0
  732. package/out/zql/src/zql/ast/ast.js +54 -0
  733. package/out/zql/src/zql/ast/ast.js.map +1 -0
  734. package/out/zql/src/zql/builder/builder.d.ts +56 -0
  735. package/out/zql/src/zql/builder/builder.d.ts.map +1 -0
  736. package/out/zql/src/zql/builder/builder.js +112 -0
  737. package/out/zql/src/zql/builder/builder.js.map +1 -0
  738. package/out/zql/src/zql/builder/error.d.ts +3 -0
  739. package/out/zql/src/zql/builder/error.d.ts.map +1 -0
  740. package/out/zql/src/zql/builder/error.js +3 -0
  741. package/out/zql/src/zql/builder/error.js.map +1 -0
  742. package/out/zql/src/zql/builder/filter.d.ts +6 -0
  743. package/out/zql/src/zql/builder/filter.d.ts.map +1 -0
  744. package/out/zql/src/zql/builder/filter.js +53 -0
  745. package/out/zql/src/zql/builder/filter.js.map +1 -0
  746. package/out/zql/src/zql/builder/like.d.ts +3 -0
  747. package/out/zql/src/zql/builder/like.d.ts.map +1 -0
  748. package/out/zql/src/zql/builder/like.js +60 -0
  749. package/out/zql/src/zql/builder/like.js.map +1 -0
  750. package/out/zql/src/zql/ivm/array-view.d.ts +42 -0
  751. package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -0
  752. package/out/zql/src/zql/ivm/change.d.ts +44 -0
  753. package/out/zql/src/zql/ivm/change.d.ts.map +1 -0
  754. package/out/zql/src/zql/ivm/change.js +2 -0
  755. package/out/zql/src/zql/ivm/change.js.map +1 -0
  756. package/out/zql/src/zql/ivm/data.d.ts +72 -0
  757. package/out/zql/src/zql/ivm/data.d.ts.map +1 -0
  758. package/out/zql/src/zql/ivm/data.js +84 -0
  759. package/out/zql/src/zql/ivm/data.js.map +1 -0
  760. package/out/zql/src/zql/ivm/filter.d.ts +27 -0
  761. package/out/zql/src/zql/ivm/filter.d.ts.map +1 -0
  762. package/out/zql/src/zql/ivm/filter.js +60 -0
  763. package/out/zql/src/zql/ivm/filter.js.map +1 -0
  764. package/out/zql/src/zql/ivm/join.d.ts +37 -0
  765. package/out/zql/src/zql/ivm/join.d.ts.map +1 -0
  766. package/out/zql/src/zql/ivm/join.js +228 -0
  767. package/out/zql/src/zql/ivm/join.js.map +1 -0
  768. package/out/zql/src/zql/ivm/lookahead-iterator.d.ts +13 -0
  769. package/out/zql/src/zql/ivm/lookahead-iterator.d.ts.map +1 -0
  770. package/out/zql/src/zql/ivm/lookahead-iterator.js +45 -0
  771. package/out/zql/src/zql/ivm/lookahead-iterator.js.map +1 -0
  772. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts +10 -0
  773. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -0
  774. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js +34 -0
  775. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js.map +1 -0
  776. package/out/zql/src/zql/ivm/memory-source.d.ts +65 -0
  777. package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -0
  778. package/out/zql/src/zql/ivm/memory-source.js +508 -0
  779. package/out/zql/src/zql/ivm/memory-source.js.map +1 -0
  780. package/out/zql/src/zql/ivm/memory-storage.d.ts +18 -0
  781. package/out/zql/src/zql/ivm/memory-storage.d.ts.map +1 -0
  782. package/out/zql/src/zql/ivm/operator.d.ts +89 -0
  783. package/out/zql/src/zql/ivm/operator.d.ts.map +1 -0
  784. package/out/zql/src/zql/ivm/operator.js +2 -0
  785. package/out/zql/src/zql/ivm/operator.js.map +1 -0
  786. package/out/zql/src/zql/ivm/schema.d.ts +29 -0
  787. package/out/zql/src/zql/ivm/schema.d.ts.map +1 -0
  788. package/out/zql/src/zql/ivm/schema.js +3 -0
  789. package/out/zql/src/zql/ivm/schema.js.map +1 -0
  790. package/out/zql/src/zql/ivm/skip.d.ts +24 -0
  791. package/out/zql/src/zql/ivm/skip.d.ts.map +1 -0
  792. package/out/zql/src/zql/ivm/skip.js +113 -0
  793. package/out/zql/src/zql/ivm/skip.js.map +1 -0
  794. package/out/zql/src/zql/ivm/source.d.ts +57 -0
  795. package/out/zql/src/zql/ivm/source.d.ts.map +1 -0
  796. package/out/zql/src/zql/ivm/source.js +2 -0
  797. package/out/zql/src/zql/ivm/source.js.map +1 -0
  798. package/out/zql/src/zql/ivm/stream.d.ts +11 -0
  799. package/out/zql/src/zql/ivm/stream.d.ts.map +1 -0
  800. package/out/zql/src/zql/ivm/stream.js +19 -0
  801. package/out/zql/src/zql/ivm/stream.js.map +1 -0
  802. package/out/zql/src/zql/ivm/take.d.ts +24 -0
  803. package/out/zql/src/zql/ivm/take.d.ts.map +1 -0
  804. package/out/zql/src/zql/ivm/take.js +453 -0
  805. package/out/zql/src/zql/ivm/take.js.map +1 -0
  806. package/out/zql/src/zql/query/query-impl.d.ts +45 -0
  807. package/out/zql/src/zql/query/query-impl.d.ts.map +1 -0
  808. package/out/zql/src/zql/query/query.d.ts +130 -0
  809. package/out/zql/src/zql/query/query.d.ts.map +1 -0
  810. package/out/zql/src/zql/query/schema.d.ts +53 -0
  811. package/out/zql/src/zql/query/schema.d.ts.map +1 -0
  812. package/out/zql/src/zql/query/typed-view.d.ts +10 -0
  813. package/out/zql/src/zql/query/typed-view.d.ts.map +1 -0
  814. package/out/zqlite/src/db.d.ts +23 -0
  815. package/out/zqlite/src/db.d.ts.map +1 -0
  816. package/out/zqlite/src/db.js +117 -0
  817. package/out/zqlite/src/db.js.map +1 -0
  818. package/out/zqlite/src/internal/sql.d.ts +9 -0
  819. package/out/zqlite/src/internal/sql.d.ts.map +1 -0
  820. package/out/zqlite/src/internal/sql.js +14 -0
  821. package/out/zqlite/src/internal/sql.js.map +1 -0
  822. package/out/zqlite/src/internal/statement-cache.d.ts +67 -0
  823. package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -0
  824. package/out/zqlite/src/internal/statement-cache.js +119 -0
  825. package/out/zqlite/src/internal/statement-cache.js.map +1 -0
  826. package/out/zqlite/src/table-source.d.ts +43 -0
  827. package/out/zqlite/src/table-source.d.ts.map +1 -0
  828. package/out/zqlite/src/table-source.js +393 -0
  829. package/out/zqlite/src/table-source.js.map +1 -0
  830. package/package.json +79 -0
  831. package/tool/install-sqlite3.js +37 -0
@@ -0,0 +1,453 @@
1
+ import { assert, unreachable } from '../../../../shared/src/asserts.js';
2
+ import { must } from '../../../../shared/src/must.js';
3
+ import { assertOrderingIncludesPK } from '../builder/builder.js';
4
+ import { normalizeUndefined } from './data.js';
5
+ import { first, take } from './stream.js';
6
+ const MAX_BOUND_KEY = 'maxBound';
7
+ /**
8
+ * The Take operator is for implementing limit queries. It takes the first n
9
+ * nodes of its input as determined by the input’s comparator. It then keeps
10
+ * a *bound* of the last item it has accepted so that it can evaluate whether
11
+ * new incoming pushes should be accepted or rejected.
12
+ *
13
+ * Take can count rows globally or by unique value of some field.
14
+ */
15
+ export class Take {
16
+ #input;
17
+ #storage;
18
+ #limit;
19
+ #partitionKey;
20
+ #output = null;
21
+ constructor(input, storage, limit, partitionKey) {
22
+ this.#input = input;
23
+ this.#storage = storage;
24
+ this.#limit = limit;
25
+ this.#partitionKey = partitionKey;
26
+ assert(limit >= 0);
27
+ assertOrderingIncludesPK(this.#input.getSchema().sort, this.#input.getSchema().primaryKey);
28
+ this.#input.setOutput(this);
29
+ }
30
+ setOutput(output) {
31
+ this.#output = output;
32
+ }
33
+ getSchema() {
34
+ return this.#input.getSchema();
35
+ }
36
+ *fetch(req) {
37
+ if (this.#partitionKey === undefined ||
38
+ req.constraint?.key === this.#partitionKey) {
39
+ const partitionValue = this.#partitionKey === undefined ? undefined : req.constraint?.value;
40
+ const takeStateKey = getTakeStateKey(partitionValue);
41
+ const takeState = this.#storage.get(takeStateKey);
42
+ if (!takeState) {
43
+ yield* this.#initialFetch(req);
44
+ return;
45
+ }
46
+ if (takeState.bound === undefined) {
47
+ return;
48
+ }
49
+ for (const inputNode of this.#input.fetch(req)) {
50
+ if (this.getSchema().compareRows(takeState.bound, inputNode.row) < 0) {
51
+ return;
52
+ }
53
+ yield inputNode;
54
+ }
55
+ return;
56
+ }
57
+ // There is a partition key, but the fetch is not constrained or constrained
58
+ // on a different key. Thus we don't have a single take state to bound by.
59
+ // This currently only happens with nested sub-queries
60
+ // e.g. issues include issuelabels include label. We could remove this
61
+ // case if we added a translation layer (powered by some state) in join.
62
+ // Specifically we need joinKeyValue => parent constraint key
63
+ const maxBound = this.#storage.get(MAX_BOUND_KEY);
64
+ if (maxBound === undefined) {
65
+ return;
66
+ }
67
+ for (const inputNode of this.#input.fetch(req)) {
68
+ if (this.getSchema().compareRows(inputNode.row, maxBound) > 0) {
69
+ return;
70
+ }
71
+ const partitionValue = inputNode.row[this.#partitionKey];
72
+ const takeStateKey = getTakeStateKey(partitionValue);
73
+ const takeState = this.#storage.get(takeStateKey);
74
+ if (takeState?.bound !== undefined &&
75
+ this.getSchema().compareRows(takeState.bound, inputNode.row) >= 0) {
76
+ yield inputNode;
77
+ }
78
+ }
79
+ }
80
+ *#initialFetch(req) {
81
+ assert(req.start === undefined);
82
+ assert(this.#partitionKey === undefined ||
83
+ (req.constraint !== undefined &&
84
+ req.constraint.key === this.#partitionKey));
85
+ if (this.#limit === 0) {
86
+ return;
87
+ }
88
+ const partitionValue = this.#partitionKey === undefined ? undefined : req.constraint?.value;
89
+ const takeStateKey = getTakeStateKey(partitionValue);
90
+ assert(this.#storage.get(takeStateKey) === undefined);
91
+ let size = 0;
92
+ let bound;
93
+ let downstreamEarlyReturn = true;
94
+ try {
95
+ for (const inputNode of this.#input.fetch(req)) {
96
+ yield inputNode;
97
+ bound = inputNode.row;
98
+ size++;
99
+ if (size === this.#limit) {
100
+ break;
101
+ }
102
+ }
103
+ downstreamEarlyReturn = false;
104
+ }
105
+ finally {
106
+ this.#setTakeState(takeStateKey, size, bound, this.#storage.get(MAX_BOUND_KEY));
107
+ // If it becomes necessary to support downstream early return, this
108
+ // assert should be removed, and replaced with code that consumes
109
+ // the input stream until limit is reached or the input stream is
110
+ // exhausted so that takeState is properly hydrated.
111
+ assert(!downstreamEarlyReturn, 'Unexpected early return prevented full hydration');
112
+ }
113
+ }
114
+ *cleanup(req) {
115
+ assert(req.start === undefined);
116
+ assert(this.#partitionKey === undefined ||
117
+ (req.constraint !== undefined &&
118
+ req.constraint.key === this.#partitionKey));
119
+ let takeState;
120
+ if (this.#limit > 0) {
121
+ const partitionValue = this.#partitionKey === undefined ? undefined : req.constraint?.value;
122
+ const takeStateKey = getTakeStateKey(partitionValue);
123
+ takeState = this.#storage.get(takeStateKey);
124
+ assert(takeState !== undefined);
125
+ this.#storage.del(takeStateKey);
126
+ }
127
+ for (const inputNode of this.#input.cleanup(req)) {
128
+ if (takeState?.bound === undefined ||
129
+ this.getSchema().compareRows(takeState.bound, inputNode.row) < 0) {
130
+ return;
131
+ }
132
+ yield inputNode;
133
+ }
134
+ }
135
+ #getStateAndConstraint(row) {
136
+ const partitionValue = this.#partitionKey === undefined ? undefined : row[this.#partitionKey];
137
+ const takeStateKey = getTakeStateKey(partitionValue);
138
+ const takeState = this.#storage.get(takeStateKey);
139
+ let maxBound;
140
+ let constraint;
141
+ // The partition key was never fetched, so this push can be discarded.
142
+ if (takeState) {
143
+ maxBound = this.#storage.get(MAX_BOUND_KEY);
144
+ constraint = this.#partitionKey
145
+ ? {
146
+ key: this.#partitionKey,
147
+ value: partitionValue,
148
+ }
149
+ : undefined;
150
+ }
151
+ return { takeState, takeStateKey, maxBound, constraint };
152
+ }
153
+ push(change) {
154
+ if (change.type === 'edit') {
155
+ this.#pushEditChange(change);
156
+ return;
157
+ }
158
+ assert(this.#output, 'Output not set');
159
+ // When take below join is supported, this assert should be removed
160
+ // and a 'child' change should be pushed to output if its row
161
+ // is <= bound.
162
+ assert(change.type !== 'child', 'child changes are not supported');
163
+ const { takeState, takeStateKey, maxBound, constraint } = this.#getStateAndConstraint(change.node.row);
164
+ if (!takeState) {
165
+ return;
166
+ }
167
+ const { compareRows } = this.getSchema();
168
+ if (change.type === 'add') {
169
+ if (takeState.size < this.#limit) {
170
+ this.#setTakeState(takeStateKey, takeState.size + 1, takeState.bound === undefined ||
171
+ compareRows(takeState.bound, change.node.row) < 0
172
+ ? change.node.row
173
+ : takeState.bound, maxBound);
174
+ this.#output.push(change);
175
+ return;
176
+ }
177
+ // size === limit
178
+ if (takeState.bound === undefined ||
179
+ compareRows(change.node.row, takeState.bound) >= 0) {
180
+ return;
181
+ }
182
+ // added row < bound
183
+ let beforeBoundNode;
184
+ let boundNode;
185
+ if (this.#limit === 1) {
186
+ boundNode = must(first(this.#input.fetch({
187
+ start: {
188
+ row: takeState.bound,
189
+ basis: 'at',
190
+ },
191
+ constraint,
192
+ })));
193
+ }
194
+ else {
195
+ [beforeBoundNode, boundNode] = take(this.#input.fetch({
196
+ start: {
197
+ row: takeState.bound,
198
+ basis: 'before',
199
+ },
200
+ constraint,
201
+ }), 2);
202
+ }
203
+ const removeChange = {
204
+ type: 'remove',
205
+ node: boundNode,
206
+ };
207
+ this.#setTakeState(takeStateKey, takeState.size, beforeBoundNode === undefined ||
208
+ compareRows(change.node.row, beforeBoundNode.row) > 0
209
+ ? change.node.row
210
+ : beforeBoundNode.row, maxBound);
211
+ this.#output.push(removeChange);
212
+ this.#output.push(change);
213
+ }
214
+ else if (change.type === 'remove') {
215
+ if (takeState.bound === undefined) {
216
+ // change is after bound
217
+ return;
218
+ }
219
+ const compToBound = compareRows(change.node.row, takeState.bound);
220
+ if (compToBound > 0) {
221
+ // change is after bound
222
+ return;
223
+ }
224
+ if (takeState.size === 1) {
225
+ this.#storage.set(takeStateKey, {
226
+ size: 0,
227
+ bound: undefined,
228
+ });
229
+ this.#output.push(change);
230
+ return;
231
+ }
232
+ // The bound is removed
233
+ let beforeBoundNode;
234
+ let afterBoundNode;
235
+ if (compToBound === 0) {
236
+ [beforeBoundNode, afterBoundNode] = take(this.#input.fetch({
237
+ start: {
238
+ row: takeState.bound,
239
+ basis: 'before',
240
+ },
241
+ constraint,
242
+ }), 2);
243
+ }
244
+ else {
245
+ [beforeBoundNode, , afterBoundNode] = take(this.#input.fetch({
246
+ start: {
247
+ row: takeState.bound,
248
+ basis: 'before',
249
+ },
250
+ constraint,
251
+ }), 3);
252
+ }
253
+ if (afterBoundNode) {
254
+ this.#setTakeState(takeStateKey, takeState.size, afterBoundNode.row, maxBound);
255
+ this.#output.push(change);
256
+ this.#output.push({
257
+ type: 'add',
258
+ node: afterBoundNode,
259
+ });
260
+ return;
261
+ }
262
+ this.#setTakeState(takeStateKey, takeState.size - 1, compToBound === 0 ? beforeBoundNode.row : takeState.bound, maxBound);
263
+ this.#output.push(change);
264
+ }
265
+ }
266
+ #pushEditChange(change) {
267
+ assert(this.#output, 'Output not set');
268
+ if (this.#partitionKey !== undefined &&
269
+ change.oldRow[this.#partitionKey] !== change.row[this.#partitionKey]) {
270
+ // different partition key so fall back to remove/add.
271
+ // TODO: So in some cases these don't need to be transformed into a remove
272
+ // + add.
273
+ //
274
+ // If the oldRow was <= the bound of the old partition value, and the
275
+ // newRow is <= the bound of the new partition value, this can be sent as
276
+ // an edit, as the row is present in the output of this operator before
277
+ // and after applying this push.
278
+ // We do not need the relationships because Take comes before Join
279
+ this.push({
280
+ type: 'remove',
281
+ node: {
282
+ row: change.oldRow,
283
+ relationships: {},
284
+ },
285
+ });
286
+ this.push({
287
+ type: 'add',
288
+ node: {
289
+ row: change.row,
290
+ relationships: {},
291
+ },
292
+ });
293
+ return;
294
+ }
295
+ const { takeState, takeStateKey, maxBound, constraint } = this.#getStateAndConstraint(change.oldRow);
296
+ if (!takeState) {
297
+ return;
298
+ }
299
+ assert(takeState.bound, 'Bound should be set');
300
+ const { compareRows } = this.getSchema();
301
+ const oldCmp = compareRows(change.oldRow, takeState.bound);
302
+ const newCmp = compareRows(change.row, takeState.bound);
303
+ const replaceBoundAndForwardChange = () => {
304
+ this.#setTakeState(takeStateKey, takeState.size, change.row, maxBound);
305
+ this.#output.push(change);
306
+ };
307
+ // The bounds row was changed.
308
+ if (oldCmp === 0) {
309
+ // The new row is the new bound.
310
+ if (newCmp === 0) {
311
+ // no need to update the state since we are keeping the bounds
312
+ this.#output.push(change);
313
+ return;
314
+ }
315
+ if (newCmp < 0) {
316
+ if (this.#limit === 1) {
317
+ replaceBoundAndForwardChange();
318
+ return;
319
+ }
320
+ // New row will be in the result but it might not be the bounds any
321
+ // more. We need to find the row before the bounds to determine the new
322
+ // bounds.
323
+ const beforeBoundNode = must(first(this.#input.fetch({
324
+ start: {
325
+ row: takeState.bound,
326
+ basis: 'before',
327
+ },
328
+ constraint,
329
+ })));
330
+ this.#setTakeState(takeStateKey, takeState.size, beforeBoundNode.row, maxBound);
331
+ this.#output.push(change);
332
+ return;
333
+ }
334
+ assert(newCmp > 0);
335
+ // Find the first item at the old bounds. This will be the new bounds.
336
+ const newBoundNode = must(first(this.#input.fetch({
337
+ start: {
338
+ row: takeState.bound,
339
+ basis: 'at',
340
+ },
341
+ constraint,
342
+ })));
343
+ // The next row is the new row. We can replace the bounds and keep the
344
+ // edit change.
345
+ if (compareRows(newBoundNode.row, change.row) === 0) {
346
+ replaceBoundAndForwardChange();
347
+ return;
348
+ }
349
+ // The new row is now outside the bounds, so we need to remove the old
350
+ // row and add the new bounds row.
351
+ this.#setTakeState(takeStateKey, takeState.size, newBoundNode.row, maxBound);
352
+ this.#output.push({
353
+ type: 'remove',
354
+ node: {
355
+ row: change.oldRow,
356
+ relationships: {},
357
+ },
358
+ });
359
+ this.#output.push({
360
+ type: 'add',
361
+ node: newBoundNode,
362
+ });
363
+ return;
364
+ }
365
+ if (oldCmp > 0) {
366
+ assert(newCmp !== 0, 'Invalid state. Row has duplicate primary key');
367
+ // Both old and new outside of bounds
368
+ if (newCmp > 0) {
369
+ return;
370
+ }
371
+ // old was outside, new is inside. Pushing out the old bounds
372
+ assert(newCmp < 0);
373
+ const [newBoundNode, oldBoundNode] = take(this.#input.fetch({
374
+ start: {
375
+ row: takeState.bound,
376
+ basis: 'before',
377
+ },
378
+ constraint,
379
+ }), 2);
380
+ this.#setTakeState(takeStateKey, takeState.size, newBoundNode.row, maxBound);
381
+ this.#output.push({
382
+ type: 'remove',
383
+ node: oldBoundNode,
384
+ });
385
+ // We do not need the relationships because Take comes before Join
386
+ this.#output.push({
387
+ type: 'add',
388
+ node: {
389
+ row: change.row,
390
+ relationships: {},
391
+ },
392
+ });
393
+ return;
394
+ }
395
+ if (oldCmp < 0) {
396
+ assert(newCmp !== 0, 'Invalid state. Row has duplicate primary key');
397
+ // Both old and new inside of bounds
398
+ if (newCmp < 0) {
399
+ this.#output.push(change);
400
+ return;
401
+ }
402
+ // old was inside, new is larger than old bound
403
+ assert(newCmp > 0);
404
+ // at this point we need to find the row after the bound and use that or
405
+ // the newRow as the new bound.
406
+ const afterBoundNode = must(first(this.#input.fetch({
407
+ start: {
408
+ row: takeState.bound,
409
+ basis: 'after',
410
+ },
411
+ constraint,
412
+ })));
413
+ // The new row is the new bound. Use an edit change.
414
+ if (compareRows(afterBoundNode.row, change.row) === 0) {
415
+ replaceBoundAndForwardChange();
416
+ return;
417
+ }
418
+ this.#setTakeState(takeStateKey, takeState.size, afterBoundNode.row, maxBound);
419
+ // We do not need the relationships because Take comes before Join
420
+ this.#output.push({
421
+ type: 'remove',
422
+ node: {
423
+ row: change.oldRow,
424
+ relationships: {},
425
+ },
426
+ });
427
+ this.#output.push({
428
+ type: 'add',
429
+ node: afterBoundNode,
430
+ });
431
+ return;
432
+ }
433
+ unreachable();
434
+ }
435
+ #setTakeState(takeStateKey, size, bound, maxBound) {
436
+ this.#storage.set(takeStateKey, {
437
+ size,
438
+ bound,
439
+ });
440
+ if (bound !== undefined &&
441
+ (maxBound === undefined ||
442
+ this.getSchema().compareRows(bound, maxBound) > 0)) {
443
+ this.#storage.set(MAX_BOUND_KEY, bound);
444
+ }
445
+ }
446
+ destroy() {
447
+ this.#input.destroy();
448
+ }
449
+ }
450
+ function getTakeStateKey(partitionValue) {
451
+ return JSON.stringify(['take', normalizeUndefined(partitionValue)]);
452
+ }
453
+ //# sourceMappingURL=take.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take.js","sourceRoot":"","sources":["../../../../../../zql/src/zql/ivm/take.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { AST } from '../ast/ast.js';
2
+ import { type BuilderDelegate } from '../builder/builder.js';
3
+ import { type Format } from '../ivm/array-view.js';
4
+ import type { AddSelections, AddSubselect, DefaultQueryResultRow, GetFieldTypeNoNullOrUndefined, MakeSingular, Operator, Parameter, Query, QueryType, SchemaToRow, Selector, Smash } from './query.js';
5
+ import { type PullSchemaForRelationship, type TableSchema } from './schema.js';
6
+ import type { TypedView } from './typed-view.js';
7
+ export declare function newQuery<TSchema extends TableSchema, TReturn extends QueryType = DefaultQueryResultRow<TSchema>>(delegate: QueryDelegate, tableSchema: TSchema): Query<TSchema, TReturn>;
8
+ export type CommitListener = () => void;
9
+ export interface QueryDelegate extends BuilderDelegate {
10
+ addServerQuery(ast: AST): () => void;
11
+ onTransactionCommit(cb: CommitListener): () => void;
12
+ }
13
+ export declare function staticParam<TAnchor, TField extends keyof TAnchor>(anchorClass: 'authData' | 'preMutationRow', field: TField): Parameter<TAnchor, TField, TAnchor[TField]>;
14
+ export declare abstract class AbstractQuery<TSchema extends TableSchema, TReturn extends QueryType = DefaultQueryResultRow<TSchema>> implements Query<TSchema, TReturn> {
15
+ #private;
16
+ constructor(schema: TSchema, ast?: AST | undefined, format?: Format | undefined);
17
+ get ast(): AST;
18
+ select<TFields extends Selector<TSchema>[]>(..._fields: TFields): Query<TSchema, AddSelections<TSchema, TFields, TReturn>>;
19
+ protected abstract _newQuery<TSchema extends TableSchema, TReturn extends QueryType>(schema: TSchema, ast: AST, format: Format | undefined): Query<TSchema, TReturn>;
20
+ one(): Query<TSchema, MakeSingular<TReturn>>;
21
+ related<TRelationship extends keyof TSchema['relationships']>(relationship: TRelationship): Query<TSchema, AddSubselect<Query<PullSchemaForRelationship<TSchema, TRelationship>, DefaultQueryResultRow<PullSchemaForRelationship<TSchema, TRelationship>>>, TReturn, TRelationship & string>>;
22
+ where(field: any, opOrValue: Operator | GetFieldTypeNoNullOrUndefined<any, any, any> | Parameter<any, any, any>, value?: GetFieldTypeNoNullOrUndefined<any, any, any> | Parameter<any, any, any>): Query<TSchema, TReturn>;
23
+ start(row: Partial<SchemaToRow<TSchema>>, opts?: {
24
+ inclusive: boolean;
25
+ } | undefined): Query<TSchema, TReturn>;
26
+ limit(limit: number): Query<TSchema, TReturn>;
27
+ orderBy<TSelector extends keyof TSchema['columns']>(field: TSelector, direction: 'asc' | 'desc'): Query<TSchema, TReturn>;
28
+ protected _completeAst(): AST;
29
+ abstract materialize(): TypedView<Smash<TReturn>>;
30
+ abstract preload(): {
31
+ cleanup: () => void;
32
+ };
33
+ }
34
+ export declare class QueryImpl<TSchema extends TableSchema, TReturn extends QueryType = DefaultQueryResultRow<TSchema>> extends AbstractQuery<TSchema, TReturn> {
35
+ #private;
36
+ constructor(delegate: QueryDelegate, schema: TSchema, ast?: AST | undefined, format?: Format | undefined);
37
+ get format(): Format;
38
+ get singular(): TReturn['singular'];
39
+ protected _newQuery<TSchema extends TableSchema, TReturn extends QueryType>(schema: TSchema, ast: AST, format: Format | undefined): Query<TSchema, TReturn>;
40
+ materialize(): TypedView<Smash<TReturn>>;
41
+ preload(): {
42
+ cleanup: () => void;
43
+ };
44
+ }
45
+ //# sourceMappingURL=query-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-impl.d.ts","sourceRoot":"","sources":["../../../../../../zql/src/zql/query/query-impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import type { Row } from '../ivm/data.js';
2
+ import type { SchemaValue } from '../ivm/schema.js';
3
+ import type { Source } from '../ivm/source.js';
4
+ import type { PullSchemaForRelationship, TableSchema } from './schema.js';
5
+ import type { TypedView } from './typed-view.js';
6
+ /**
7
+ * The type that can be passed into `select()`. A selector
8
+ * references a field on an row.
9
+ */
10
+ export type Selector<E extends TableSchema> = keyof E['columns'];
11
+ export type Context = {
12
+ getSource: (name: string) => Source;
13
+ createStorage: () => Storage;
14
+ };
15
+ export type Smash<T extends QueryType> = T['singular'] extends true ? SmashOne<T> : Array<SmashOne<T>>;
16
+ type SmashOne<T extends QueryType> = T['row'] & {
17
+ [K in keyof T['related']]: T['related'][K] extends QueryType ? Smash<T['related'][K]> : never;
18
+ };
19
+ /**
20
+ * Given a schema value, return the TypeScript type.
21
+ *
22
+ * This allows us to create the correct return type for a
23
+ * query that has a selection.
24
+ */
25
+ type SchemaValueToTSType<T extends SchemaValue> = (T extends {
26
+ type: 'string';
27
+ } ? string : T extends {
28
+ type: 'number';
29
+ } ? number : T extends {
30
+ type: 'boolean';
31
+ } ? boolean : T extends {
32
+ type: 'null';
33
+ } ? null : never) | (T extends {
34
+ optional: true;
35
+ } ? undefined : never);
36
+ export type GetFieldTypeNoNullOrUndefined<TSchema extends TableSchema, TColumn extends keyof TSchema['columns'], TOperator extends Operator> = TOperator extends 'IN' | 'NOT IN' ? Exclude<SchemaValueToTSType<TSchema['columns'][TColumn]>, null | undefined>[] : Exclude<SchemaValueToTSType<TSchema['columns'][TColumn]>, null | undefined>;
37
+ export type SchemaToRow<T extends TableSchema> = {
38
+ [K in keyof T['columns']]: SchemaValueToTSType<T['columns'][K]>;
39
+ };
40
+ export type QueryReturnType<T extends Query<TableSchema>> = T extends Query<TableSchema, infer TReturn> ? Smash<TReturn> : never;
41
+ export type QueryRowType<T extends Query<any, any>> = QueryReturnType<T>[number];
42
+ /**
43
+ * A query can have:
44
+ * 1. Selections and
45
+ * 2. Subqueries
46
+ *
47
+ * The composition of these two yields the return type
48
+ * of the query.
49
+ *
50
+ * This takes a return type of a query (TReturn), a schema type (TSchema),
51
+ * and a list of selections (TSelections) made against that row,
52
+ * returning a new return type with the selections added.
53
+ *
54
+ * `.select('foo')` would add `foo` to `TReturn`.
55
+ */
56
+ export type AddSelections<TSchema extends TableSchema, TSelections extends Selector<TSchema>[], TReturn extends QueryType> = {
57
+ row: {
58
+ [K in TSelections[number]]: SchemaValueToTSType<TSchema['columns'][K]>;
59
+ };
60
+ related: TReturn['related'];
61
+ singular: TReturn['singular'];
62
+ };
63
+ export type AddSubselect<TSubquery extends Query<TableSchema>, TReturn extends QueryType, TAs extends string> = {
64
+ row: TReturn['row'];
65
+ related: {
66
+ [K in TAs]: InferSubreturn<TSubquery>;
67
+ } & TReturn['related'];
68
+ singular: TReturn['singular'];
69
+ };
70
+ export type MakeSingular<TReturn extends QueryType> = {
71
+ row: TReturn['row'];
72
+ related: TReturn['related'];
73
+ singular: true;
74
+ };
75
+ type InferSubreturn<TSubquery> = TSubquery extends Query<TableSchema, infer TSubreturn> ? TSubreturn : EmptyQueryResultRow;
76
+ /**
77
+ * Encodes the internal "type" of the query. This is different than the schema,
78
+ * and different than the result type. The schema is the input type from the
79
+ * database of the table the query started from.
80
+ *
81
+ * The result type is the output type of the query after the 'row' and 'related'
82
+ * fields have been smashed down.
83
+ */
84
+ export type QueryType = {
85
+ row: Row;
86
+ related: Record<string, QueryType>;
87
+ singular: boolean;
88
+ };
89
+ type EmptyQueryResultRow = {
90
+ row: {};
91
+ related: {};
92
+ };
93
+ export type Operator = '=' | '!=' | '<' | '<=' | '>' | '>=' | 'IN' | 'NOT IN' | 'LIKE' | 'ILIKE';
94
+ export type DefaultQueryResultRow<TSchema extends TableSchema> = {
95
+ row: {
96
+ [K in keyof TSchema['columns']]: SchemaValueToTSType<TSchema['columns'][K]>;
97
+ };
98
+ related: {};
99
+ singular: false;
100
+ };
101
+ /** Expands/simplifies */
102
+ type Expand<T> = T extends infer O ? {
103
+ [K in keyof O]: O[K];
104
+ } : never;
105
+ export type Parameter<T, TField extends keyof T, _TReturn = T[TField]> = {
106
+ type: 'static';
107
+ anchor: 'authData' | 'preMutationRow';
108
+ field: TField;
109
+ };
110
+ export interface Query<TSchema extends TableSchema, TReturn extends QueryType = DefaultQueryResultRow<TSchema>> {
111
+ select<TFields extends Selector<TSchema>[]>(...columnName: Expand<TFields>): Query<TSchema, AddSelections<TSchema, TFields, TReturn>>;
112
+ related<TRelationship extends keyof TSchema['relationships']>(relationship: TRelationship): Query<TSchema, AddSubselect<Query<PullSchemaForRelationship<TSchema, TRelationship>, DefaultQueryResultRow<PullSchemaForRelationship<TSchema, TRelationship>>>, TReturn, TRelationship & string>>;
113
+ related<TRelationship extends keyof TSchema['relationships'], TSub extends Query<any, any>>(relationship: TRelationship, cb: (query: Query<PullSchemaForRelationship<TSchema, TRelationship>, DefaultQueryResultRow<PullSchemaForRelationship<TSchema, TRelationship>>>) => TSub): Query<TSchema, AddSubselect<TSub, TReturn, TRelationship & string>>;
114
+ where<TSelector extends Selector<TSchema>, TOperator extends Operator>(field: TSelector, op: TOperator, value: GetFieldTypeNoNullOrUndefined<TSchema, TSelector, TOperator>): Query<TSchema, TReturn>;
115
+ where<TSelector extends Selector<TSchema>>(field: TSelector, value: GetFieldTypeNoNullOrUndefined<TSchema, TSelector, '='>): Query<TSchema, TReturn>;
116
+ where<TSelector extends Selector<TSchema>, TOperator extends Operator, TParamAnchor, TParamField extends keyof TParamAnchor, TParamTypeBound extends GetFieldTypeNoNullOrUndefined<TSchema, TSelector, TOperator>>(field: TSelector, op: TOperator, value: Parameter<TParamAnchor, TParamField, TParamTypeBound>): Query<TSchema, TReturn>;
117
+ where<TSelector extends Selector<TSchema>, TParamAnchor, TParamField extends keyof TParamAnchor, TParamTypeBound extends GetFieldTypeNoNullOrUndefined<TSchema, TSelector, '='>>(field: TSelector, value: Parameter<TParamAnchor, TParamField, TParamTypeBound>): Query<TSchema, TReturn>;
118
+ start(row: Partial<SchemaToRow<TSchema>>, opts?: {
119
+ inclusive: boolean;
120
+ } | undefined): Query<TSchema, TReturn>;
121
+ limit(limit: number): Query<TSchema, TReturn>;
122
+ orderBy<TSelector extends Selector<TSchema>>(field: TSelector, direction: 'asc' | 'desc'): Query<TSchema, TReturn>;
123
+ one(): Query<TSchema, MakeSingular<TReturn>>;
124
+ materialize(): TypedView<Smash<TReturn>>;
125
+ preload(): {
126
+ cleanup: () => void;
127
+ };
128
+ }
129
+ export {};
130
+ //# sourceMappingURL=query.d.ts.map