@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,54 @@
1
+ import { EventEmitter } from 'eventemitter3';
2
+ import { Subscription, } from '../../types/subscription.js';
3
+ /**
4
+ * Handles the semantics of {@link ReplicatorVersionNotifier.subscribe()}
5
+ * notifications, namely:
6
+ *
7
+ * * New subscribers are notified immediately with the latest received
8
+ * ReplicaState.
9
+ *
10
+ * * Non-latest notifications are discarded if the subscriber is too
11
+ * busy to consume them.
12
+ *
13
+ * By encapsulating the state for the first behavior (essentially, whether
14
+ * the first notification has been sent by the Replicator), Notifier objects
15
+ * can be chained to simplify fanout from Replicator to View Syncers.
16
+ *
17
+ * In particular, each Syncer Thread can manage a single Subscription to
18
+ * the Replicator across a MessageChannel, which it uses for its own Notifier
19
+ * instance to manage subscriptions from View Syncers within its thread. This
20
+ * way a Replicator only deals with sending notifications to a bounded set
21
+ * of MessageChannel-based subscribers (Syncer Threads), while the dynamic
22
+ * subscribe and unsubscribe traffic from View Syncers remains within each
23
+ * Syncer Thread.
24
+ */
25
+ export class Notifier {
26
+ #eventEmitter = new EventEmitter();
27
+ #lastStateReceived;
28
+ #newSubscription() {
29
+ const notify = (state) => subscription.push(state);
30
+ const subscription = Subscription.create({
31
+ coalesce: curr => curr,
32
+ cleanup: () => this.#eventEmitter.off('version', notify),
33
+ });
34
+ return { notify, subscription };
35
+ }
36
+ subscribe() {
37
+ const { notify, subscription } = this.#newSubscription();
38
+ this.#eventEmitter.on('version', notify);
39
+ if (this.#lastStateReceived) {
40
+ // Per Replicator.subscribe() semantics, the current state of the
41
+ // replica, if known, is immediately sent on subscribe.
42
+ notify(this.#lastStateReceived);
43
+ }
44
+ return subscription;
45
+ }
46
+ notifySubscribers(state = { state: 'version-ready' }) {
47
+ this.#lastStateReceived = state;
48
+ return this.#eventEmitter
49
+ .listeners('version')
50
+ .map(notify => notify(state))
51
+ .map(pending => pending.result);
52
+ }
53
+ }
54
+ //# sourceMappingURL=notifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/notifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAGL,YAAY,GACb,MAAM,6BAA6B,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,QAAQ;IACV,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;IAC5C,kBAAkB,CAA2B;IAE7C,gBAAgB;QACd,MAAM,MAAM,GAAG,CAAC,KAAmB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAe;YACrD,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;YACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;SACzD,CAAC,CAAC;QACH,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC;IAChC,CAAC;IAED,SAAS;QACP,MAAM,EAAC,MAAM,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,iEAAiE;YACjE,uDAAuD;YACvD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB,CACf,QAAsB,EAAC,KAAK,EAAE,eAAe,EAAC;QAE9C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,aAAa;aACtB,SAAS,CAAC,SAAS,CAAC;aACpB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAA6B,CAAC;aACxD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,65 @@
1
+ import type { LogContext } from '@rocicorp/logger';
2
+ import type { ReadonlyJSONObject } from '../../../../shared/src/json.js';
3
+ import { Database } from '../../../../zqlite/src/db.js';
4
+ import type { Source } from '../../types/streams.js';
5
+ import type { ChangeStreamer } from '../change-streamer/change-streamer.js';
6
+ import type { Service } from '../service.js';
7
+ import type { Checkpointer } from './checkpointer.js';
8
+ /** See {@link ReplicaStateNotifier.subscribe()}. */
9
+ export type ReplicaState = {
10
+ readonly state: 'version-ready' | 'maintenance';
11
+ /**
12
+ * An optional random integer indicating that the notifier requests
13
+ * an ACK from all (transitive) subscribers. As the Subscription class
14
+ * uses the AsyncIterable paradigm to automatically handle ACKs for
15
+ * in-process communication, this field is primarily for IPC-level
16
+ * logic to perform additional communication between processes.
17
+ *
18
+ * It follows that application logic can largely ignore this field.
19
+ */
20
+ readonly ack?: number | undefined;
21
+ };
22
+ export interface ReplicaStateNotifier {
23
+ /**
24
+ * Creates a cancelable subscription of changes in the replica state.
25
+ *
26
+ * A `version-ready` message indicates that the replica is ready to be
27
+ * read, and henceforth that a _new_ version is ready, i.e. whenever a
28
+ * change is committed to the replica. The `version-ready` message itself
29
+ * otherwise contains no other information; the subscriber queries the
30
+ * replica for the current data.
31
+ *
32
+ * A `maintenance` state indicates that the replica should not be read from.
33
+ * If a subscriber is holding any transaction locks, it should release them
34
+ * until the next `version-ready` signal.
35
+ *
36
+ * Upon subscription, the current state of the replica is sent immediately
37
+ * if known. If multiple notifications occur before the subscriber
38
+ * can consume them, all but the last notification are discarded by the
39
+ * Subscription object (i.e. not buffered). Thus, a subscriber only
40
+ * ever consumes the current (i.e. known) state of the replica. This avoids
41
+ * a buildup of "work" if a subscriber is too busy to consume all
42
+ * notifications.
43
+ */
44
+ subscribe(): Source<ReplicaState>;
45
+ }
46
+ export interface Replicator extends ReplicaStateNotifier {
47
+ /**
48
+ * Returns an opaque message for human-readable consumption. This is
49
+ * purely for ensuring that the Replicator has started at least once to
50
+ * bootstrap a new replica.
51
+ */
52
+ status(): Promise<ReadonlyJSONObject>;
53
+ }
54
+ export declare class ReplicatorService implements Replicator, Service {
55
+ #private;
56
+ readonly id: string;
57
+ constructor(lc: LogContext, id: string, changeStreamer: ChangeStreamer, replica: Database, checkpointer: Checkpointer);
58
+ status(): Promise<{
59
+ status: string;
60
+ }>;
61
+ run(): Promise<void>;
62
+ subscribe(): Source<ReplicaState>;
63
+ stop(): Promise<void>;
64
+ }
65
+ //# sourceMappingURL=replicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAGpD,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;IAEhD;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAW,SAAQ,oBAAoB;IACtD;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACvC;AAED,qBAAa,iBAAkB,YAAW,UAAU,EAAE,OAAO;;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAKlB,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAE,YAAY;IAe5B,MAAM;;;IAIN,GAAG;IAIH,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC;IAI3B,IAAI;CAGX"}
@@ -0,0 +1,27 @@
1
+ import { Database } from '../../../../zqlite/src/db.js';
2
+ import { IncrementalSyncer } from './incremental-sync.js';
3
+ export class ReplicatorService {
4
+ id;
5
+ #lc;
6
+ #incrementalSyncer;
7
+ constructor(lc, id, changeStreamer, replica, checkpointer) {
8
+ this.id = id;
9
+ this.#lc = lc
10
+ .withContext('component', 'replicator')
11
+ .withContext('serviceID', this.id);
12
+ this.#incrementalSyncer = new IncrementalSyncer(id, changeStreamer, replica, checkpointer);
13
+ }
14
+ status() {
15
+ return Promise.resolve({ status: 'ok' });
16
+ }
17
+ run() {
18
+ return this.#incrementalSyncer.run(this.#lc);
19
+ }
20
+ subscribe() {
21
+ return this.#incrementalSyncer.subscribe();
22
+ }
23
+ async stop() {
24
+ await this.#incrementalSyncer.stop(this.#lc);
25
+ }
26
+ }
27
+ //# sourceMappingURL=replicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/replicator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAK1C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAoDxD,MAAM,OAAO,iBAAiB;IACnB,EAAE,CAAS;IACX,GAAG,CAAa;IAChB,kBAAkB,CAAoB;IAE/C,YACE,EAAc,EACd,EAAU,EACV,cAA8B,EAC9B,OAAiB,EACjB,YAA0B;QAE1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,EAAE;aACV,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC;aACtC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,CAC7C,EAAE,EACF,cAAc,EACd,OAAO,EACP,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;IACzC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ import type { Database } from '../../../../../zqlite/src/db.js';
2
+ import * as v from '../../../../../shared/src/valita.js';
3
+ import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
4
+ import type { LexiVersion } from '../../../../../zero-cache/src/types/lexi-version.js';
5
+ import { type RowKey } from '../../../../../zero-cache/src/types/row-key.js';
6
+ /**
7
+ * The Change Log tracks the last operation (set or delete) for each row in the
8
+ * data base, ordered by state version; in other words, a cross-table
9
+ * index of row changes ordered by version. This facilitates a minimal "diff"
10
+ * of row changes needed to advance a pipeline from one state version to another.
11
+ *
12
+ * The Change Log stores identifiers only, i.e. it does not store contents.
13
+ * A database snapshot at the previous version can be used to query a row's
14
+ * old contents, if any, and the current snapshot can be used to query a row's
15
+ * new contents. (In the common case, the new contents will have just been applied
16
+ * and thus has a high likelihood of being in the SQLite cache.)
17
+ *
18
+ * The postgres TRUNCATE operation is represented as a log entry with a `null` row
19
+ * key, which means that it is sorted before any row operations for that table.
20
+ */
21
+ export declare const SET_OP = "s";
22
+ export declare const DEL_OP = "d";
23
+ export declare const TRUNCATE_OP = "t";
24
+ export declare const changeLogEntrySchema: v.Type<{
25
+ rowKey: Readonly<Record<string, import("../../../../../zero-cache/src/types/bigint-json.js").JSONValue>> | null;
26
+ stateVersion: string;
27
+ table: string;
28
+ op: "s" | "d" | "t";
29
+ }>;
30
+ export type ChangeLogEntry = v.Infer<typeof changeLogEntrySchema>;
31
+ export declare function initChangeLog(db: Database): void;
32
+ export declare function logSetOp(db: StatementRunner, version: LexiVersion, table: string, row: RowKey): void;
33
+ export declare function logDeleteOp(db: StatementRunner, version: LexiVersion, table: string, row: RowKey): void;
34
+ export declare function logTruncateOp(db: StatementRunner, version: LexiVersion, table: string): void;
35
+ //# sourceMappingURL=change-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-log.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/change-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAMhE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAqB,KAAK,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,eAAO,MAAM,oBAAoB;;;;;EAU5B,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,QAEzC;AAED,wBAAgB,QAAQ,CACtB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,QAGZ;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,QAGZ;AAqBD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,QAgBd"}
@@ -0,0 +1,78 @@
1
+ import * as v from '../../../../../shared/src/valita.js';
2
+ import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
3
+ import { jsonObjectSchema, parse, stringify, } from '../../../../../zero-cache/src/types/bigint-json.js';
4
+ import { normalizedKeyOrder } from '../../../../../zero-cache/src/types/row-key.js';
5
+ /**
6
+ * The Change Log tracks the last operation (set or delete) for each row in the
7
+ * data base, ordered by state version; in other words, a cross-table
8
+ * index of row changes ordered by version. This facilitates a minimal "diff"
9
+ * of row changes needed to advance a pipeline from one state version to another.
10
+ *
11
+ * The Change Log stores identifiers only, i.e. it does not store contents.
12
+ * A database snapshot at the previous version can be used to query a row's
13
+ * old contents, if any, and the current snapshot can be used to query a row's
14
+ * new contents. (In the common case, the new contents will have just been applied
15
+ * and thus has a high likelihood of being in the SQLite cache.)
16
+ *
17
+ * The postgres TRUNCATE operation is represented as a log entry with a `null` row
18
+ * key, which means that it is sorted before any row operations for that table.
19
+ */
20
+ export const SET_OP = 's';
21
+ export const DEL_OP = 'd';
22
+ export const TRUNCATE_OP = 't';
23
+ const CREATE_CHANGELOG_SCHEMA =
24
+ // stateVersion : a.k.a. row version
25
+ // table : The table associated with the change
26
+ // rowKey : JSON row key for a row change, or NULL for a table TRUNCATE.
27
+ // Note that SQLite will sort rows such that TRUNCATE operations appear
28
+ // before row operations (as desired), as NULL appears before non-NULL values.
29
+ // op : 't' for table truncation, 's' for set (insert/update), and 'd' for delete
30
+ `
31
+ CREATE TABLE "_zero.ChangeLog" (
32
+ "stateVersion" TEXT NOT NULL,
33
+ "table" TEXT NOT NULL,
34
+ "rowKey" TEXT,
35
+ "op" TEXT NOT NULL,
36
+ PRIMARY KEY("stateVersion", "table", "rowKey"),
37
+ UNIQUE("table", "rowKey")
38
+ )
39
+ `;
40
+ export const changeLogEntrySchema = v
41
+ .object({
42
+ stateVersion: v.string(),
43
+ table: v.string(),
44
+ rowKey: v.string().nullable(),
45
+ op: v.union(v.literal(SET_OP), v.literal(DEL_OP), v.literal(TRUNCATE_OP)),
46
+ })
47
+ .map(val => ({
48
+ ...val,
49
+ rowKey: val.rowKey ? v.parse(parse(val.rowKey), jsonObjectSchema) : null,
50
+ }));
51
+ export function initChangeLog(db) {
52
+ db.exec(CREATE_CHANGELOG_SCHEMA);
53
+ }
54
+ export function logSetOp(db, version, table, row) {
55
+ logRowOp(db, version, table, row, SET_OP);
56
+ }
57
+ export function logDeleteOp(db, version, table, row) {
58
+ logRowOp(db, version, table, row, DEL_OP);
59
+ }
60
+ function logRowOp(db, version, table, row, op) {
61
+ const rowKey = stringify(normalizedKeyOrder(row));
62
+ db.run(`
63
+ INSERT INTO "_zero.ChangeLog" (stateVersion, "table", rowKey, op)
64
+ VALUES (@version, @table, JSON(@rowKey), @op)
65
+ ON CONFLICT ("table", rowKey) DO UPDATE
66
+ SET stateVersion = @version, op = @op
67
+ `, { version, table, rowKey, op });
68
+ }
69
+ export function logTruncateOp(db, version, table) {
70
+ db.run(`
71
+ DELETE FROM "_zero.ChangeLog" WHERE "table" = ?
72
+ `, table);
73
+ db.run(`
74
+ INSERT INTO "_zero.ChangeLog" (stateVersion, "table", op)
75
+ VALUES (@version, @table, @op)
76
+ `, { version, table, op: TRUNCATE_OP });
77
+ }
78
+ //# sourceMappingURL=change-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-log.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/change-log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,SAAS,GACV,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAC,kBAAkB,EAAc,MAAM,iCAAiC,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,MAAM,uBAAuB;AAC3B,oCAAoC;AACpC,sDAAsD;AACtD,8EAA8E;AAC9E,sFAAsF;AACtF,6FAA6F;AAC7F,2FAA2F;AAC3F;;;;;;;;;GASC,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1E,CAAC;KACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,GAAG,GAAG;IACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;CACzE,CAAC,CAAC,CAAC;AAIN,MAAM,UAAU,aAAa,CAAC,EAAY;IACxC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,EAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,GAAW;IAEX,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,EAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,GAAW;IAEX,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CACf,EAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,GAAW,EACX,EAAU;IAEV,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,EAAE,CAAC,GAAG,CACJ;;;;;KAKC,EACD,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAC,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,EAAmB,EACnB,OAAoB,EACpB,KAAa;IAEb,EAAE,CAAC,GAAG,CACJ;;KAEC,EACD,KAAK,CACN,CAAC;IAEF,EAAE,CAAC,GAAG,CACJ;;;KAGC,EACD,EAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAC,CAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Replication metadata, used for incremental view maintenance and catchup.
3
+ *
4
+ * These tables are created atomically in {@link setupReplicationTables}
5
+ * after the logical replication handoff when initial data synchronization has completed.
6
+ */
7
+ import * as v from '../../../../../shared/src/valita.js';
8
+ import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
9
+ import { Database } from '../../../../../zqlite/src/db.js';
10
+ export declare const ZERO_VERSION_COLUMN_NAME = "_0_version";
11
+ declare const versionsSchema: v.ObjectType<{
12
+ stateVersion: v.Type<string>;
13
+ nextStateVersion: v.Type<string>;
14
+ }, undefined>;
15
+ export type ReplicationVersions = v.Infer<typeof versionsSchema>;
16
+ export declare function initReplicationState(db: Database, publications: string[], watermark: string): void;
17
+ export declare function getSubscriptionState(db: StatementRunner): {
18
+ publications: string[];
19
+ replicaVersion: string;
20
+ watermark: string;
21
+ };
22
+ export declare function updateReplicationWatermark(db: StatementRunner, watermark: string): void;
23
+ export declare function getReplicationVersions(db: StatementRunner): ReplicationVersions;
24
+ export {};
25
+ //# sourceMappingURL=replication-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-state.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,wBAAwB,eAAe,CAAC;AA4CrD,QAAA,MAAM,cAAc;;;aAGlB,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,QAelB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe;;;;EAUvD;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,MAAM,QAelB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,eAAe,GAClB,mBAAmB,CAKrB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Replication metadata, used for incremental view maintenance and catchup.
3
+ *
4
+ * These tables are created atomically in {@link setupReplicationTables}
5
+ * after the logical replication handoff when initial data synchronization has completed.
6
+ */
7
+ import * as v from '../../../../../shared/src/valita.js';
8
+ import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
9
+ import { Database } from '../../../../../zqlite/src/db.js';
10
+ export const ZERO_VERSION_COLUMN_NAME = '_0_version';
11
+ const CREATE_REPLICATION_STATE_SCHEMA =
12
+ // replicaVersion : A value identifying the version at which the initial sync happened, i.e.
13
+ // at which all rows were copied and initialized with `_0_version: "00"`. This
14
+ // value is used to distinguish data from other replicas (e.g. if a replica is
15
+ // reset or if there are ever multiple replicas). Data from replicas with
16
+ // different versions are incompatible, as their "00" version will correspond
17
+ // to different snapshots of the upstream database.
18
+ // publications : JSON stringified array of publication names
19
+ // lock : Auto-magic column for enforcing single-row semantics.
20
+ `
21
+ CREATE TABLE "_zero.ReplicationConfig" (
22
+ replicaVersion TEXT NOT NULL,
23
+ publications TEXT NOT NULL,
24
+ lock INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
25
+ );
26
+ ` +
27
+ // watermark : Lexicographically sortable watermark denoting the point from which replication
28
+ // should continue. For a Postgres upstream, for example, this is the
29
+ // LexiVersion-encoded LSN. This is also used as the state version for rows
30
+ // modified in the **next** transaction.
31
+ // stateVersion : The value of the _0_version column for the newest rows in the database.
32
+ `
33
+ CREATE TABLE "_zero.ReplicationState" (
34
+ watermark TEXT NOT NULL,
35
+ stateVersion TEXT NOT NULL,
36
+ lock INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
37
+ );
38
+ `;
39
+ const stringArray = v.array(v.string());
40
+ const subscriptionStateSchema = v
41
+ .object({
42
+ replicaVersion: v.string(),
43
+ publications: v.string(),
44
+ watermark: v.string(),
45
+ })
46
+ .map(s => ({
47
+ ...s,
48
+ publications: v.parse(JSON.parse(s.publications), stringArray),
49
+ }));
50
+ const versionsSchema = v.object({
51
+ stateVersion: v.string(),
52
+ nextStateVersion: v.string(),
53
+ });
54
+ export function initReplicationState(db, publications, watermark) {
55
+ db.exec(CREATE_REPLICATION_STATE_SCHEMA);
56
+ db.prepare(`
57
+ INSERT INTO "_zero.ReplicationConfig"
58
+ (replicaVersion, publications) VALUES (?, ?)
59
+ `).run(watermark, JSON.stringify(publications.sort()));
60
+ db.prepare(`
61
+ INSERT INTO "_zero.ReplicationState"
62
+ (watermark, stateVersion) VALUES (?,'00')
63
+ `).run(watermark);
64
+ }
65
+ export function getSubscriptionState(db) {
66
+ const result = db.get(`
67
+ SELECT c.replicaVersion, c.publications, s.watermark
68
+ FROM "_zero.ReplicationConfig" as c
69
+ JOIN "_zero.ReplicationState" as s
70
+ ON c.lock = s.lock
71
+ `);
72
+ return v.parse(result, subscriptionStateSchema);
73
+ }
74
+ export function updateReplicationWatermark(db, watermark) {
75
+ // The previous `watermark` needs to be set as the next `stateVersion`.
76
+ // Rather than explicitly looking that up with an additional statement, use an
77
+ // UPSERT for which the INSERT fails so that the value of `watermark`
78
+ // from the original row can be used to set the new `stateVersion`.
79
+ db.run(`
80
+ INSERT INTO "_zero.ReplicationState"
81
+ (lock, watermark, stateVersion) VALUES (1,'','')
82
+ ON CONFLICT (lock)
83
+ DO UPDATE SET watermark=?, stateVersion=watermark
84
+ `, watermark);
85
+ }
86
+ export function getReplicationVersions(db) {
87
+ const result = db.get(`SELECT stateVersion, watermark as nextStateVersion FROM "_zero.ReplicationState"`);
88
+ return v.parse(result, versionsSchema);
89
+ }
90
+ //# sourceMappingURL=replication-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-state.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAErD,MAAM,+BAA+B;AACnC,8FAA8F;AAC9F,iGAAiG;AACjG,iGAAiG;AACjG,4FAA4F;AAC5F,gGAAgG;AAChG,sEAAsE;AACtE,iEAAiE;AACjE,2EAA2E;AAC3E;;;;;;GAMC;IACD,oGAAoG;IACpG,wFAAwF;IACxF,8FAA8F;IAC9F,2DAA2D;IAC3D,6FAA6F;IAC7F;;;;;;GAMC,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAExC,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC;KACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,GAAG,CAAC;IACJ,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;CAC/D,CAAC,CAAC,CAAC;AAEN,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7B,CAAC,CAAC;AAIH,MAAM,UAAU,oBAAoB,CAClC,EAAY,EACZ,YAAsB,EACtB,SAAiB;IAEjB,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACzC,EAAE,CAAC,OAAO,CACR;;;KAGC,CACF,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,EAAE,CAAC,OAAO,CACR;;;KAGC,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAmB;IACtD,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CACnB;;;;;KAKC,CACF,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,EAAmB,EACnB,SAAiB;IAEjB,uEAAuE;IACvE,8EAA8E;IAC9E,qEAAqE;IACrE,mEAAmE;IACnE,EAAE,CAAC,GAAG,CACJ;;;;;KAKC,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,EAAmB;IAEnB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CACnB,kFAAkF,CACnF,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { LogContext } from '@rocicorp/logger';
2
+ import type { Service } from './service.js';
3
+ /**
4
+ * Manages the creation and lifecycle of objects that implement
5
+ * {@link Service}.
6
+ */
7
+ export declare class ServiceRunner<S extends Service> {
8
+ #private;
9
+ constructor(lc: LogContext, factory: (id: string) => S, isValid?: (existing: S) => boolean);
10
+ /**
11
+ * Creates and runs the Service with the given `id`, returning
12
+ * an existing one if it is still running a valid.
13
+ */
14
+ getService(id: string): S;
15
+ }
16
+ /**
17
+ * Runs the specified services, exiting on SIGTERM, or logging an error and
18
+ * exiting the process if any of them fail.
19
+ */
20
+ export declare function runOrExit(lc: LogContext, ...services: Service[]): Promise<void>;
21
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,OAAO;;gBAOxC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,EAC1B,OAAO,GAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAoB;IAOhD;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;CAqB1B;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,UAAU,EACd,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -0,0 +1,63 @@
1
+ import { LogContext } from '@rocicorp/logger';
2
+ /**
3
+ * Manages the creation and lifecycle of objects that implement
4
+ * {@link Service}.
5
+ */
6
+ export class ServiceRunner {
7
+ #lc;
8
+ #instances = new Map();
9
+ #create;
10
+ #isValid;
11
+ constructor(lc, factory, isValid = () => true) {
12
+ this.#lc = lc;
13
+ this.#create = factory;
14
+ this.#isValid = isValid;
15
+ }
16
+ /**
17
+ * Creates and runs the Service with the given `id`, returning
18
+ * an existing one if it is still running a valid.
19
+ */
20
+ getService(id) {
21
+ const existing = this.#instances.get(id);
22
+ if (existing && this.#isValid(existing)) {
23
+ return existing;
24
+ }
25
+ const service = this.#create(id);
26
+ this.#instances.set(id, service);
27
+ void service
28
+ .run()
29
+ .catch(e => {
30
+ this.#lc.error?.(`Error running ${service.constructor?.name} ${service.id}`, e);
31
+ this.#lc.info?.(e.toString());
32
+ })
33
+ .finally(() => {
34
+ this.#instances.delete(id);
35
+ });
36
+ return service;
37
+ }
38
+ }
39
+ /**
40
+ * Runs the specified services, exiting on SIGTERM, or logging an error and
41
+ * exiting the process if any of them fail.
42
+ */
43
+ export async function runOrExit(lc, ...services) {
44
+ for (const signal of ['SIGINT', 'SIGQUIT', 'SIGTERM']) {
45
+ process.once(signal, () => {
46
+ for (const svc of services) {
47
+ lc.info?.(`exiting ${svc.constructor.name} (${svc.id}) for ${signal}`);
48
+ void svc.stop();
49
+ }
50
+ });
51
+ }
52
+ try {
53
+ // Exit if any of the services stop.
54
+ const svc = await Promise.race(services.map(svc => svc.run().then(() => svc)));
55
+ lc.info?.(`exiting because ${svc.constructor.name} (${svc.id}) stopped`);
56
+ process.exit(0);
57
+ }
58
+ catch (e) {
59
+ lc.error?.(`exiting on error`, e);
60
+ process.exit(-1);
61
+ }
62
+ }
63
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../zero-cache/src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C;;;GAGG;AACH,MAAM,OAAO,aAAa;IACf,GAAG,CAAa;IAChB,UAAU,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,OAAO,CAAoB;IAC3B,QAAQ,CAA2B;IAE5C,YACE,EAAc,EACd,OAA0B,EAC1B,UAAoC,GAAG,EAAE,CAAC,IAAI;QAE9C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,EAAU;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjC,KAAK,OAAO;aACT,GAAG,EAAE;aACL,KAAK,CAAC,CAAC,CAAC,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CACd,iBAAiB,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,EAC1D,CAAC,CACF,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAc,EACd,GAAG,QAAmB;IAEtB,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;gBACvE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAC/C,CAAC;QACF,EAAE,CAAC,IAAI,EAAE,CAAC,mBAAmB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,EAAE,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { LogContext } from '@rocicorp/logger';
2
+ import { sleepWithAbort } from '../../../shared/src/sleep.js';
3
+ export type RetryConfig = {
4
+ initialRetryDelay?: number;
5
+ maxRetryDelay?: number;
6
+ };
7
+ export interface Cancelable {
8
+ cancel(): void;
9
+ }
10
+ export type UnregisterFn = () => void;
11
+ /**
12
+ * Facilitates lifecycle control with exponential backoff.
13
+ */
14
+ export declare class RunningState {
15
+ #private;
16
+ constructor(serviceName: string, retryConfig?: RetryConfig, sleeper?: typeof sleepWithAbort);
17
+ /**
18
+ * Returns `true` until {@link stop()} has been called.
19
+ *
20
+ * This is usually called as part of the service's main loop
21
+ * conditional to determine if the next iteration should execute.
22
+ */
23
+ shouldRun(): boolean;
24
+ /**
25
+ * Registers a Cancelable object to be invoked when {@link stop()} is called.
26
+ * Returns a method to unregister the object.
27
+ */
28
+ cancelOnStop(c: Cancelable): UnregisterFn;
29
+ /**
30
+ * Called to stop the service. After this is called, {@link shouldRun()}
31
+ * will return `false` and the {@link stopped()} Promise will be resolved.
32
+ */
33
+ stop(lc: LogContext, err?: unknown): void;
34
+ /**
35
+ * Returns a Promise that resolves when {@link stop()} is called.
36
+ * This is used internally to cut off a {@link backoff()} delay, but
37
+ * can also be used explicitly in a `Promise.race(...)` call to stop
38
+ * stop waiting for work.
39
+ */
40
+ stopped(): Promise<void>;
41
+ /**
42
+ * Call in response to an error or unexpected termination in the main
43
+ * loop of the service. The returned Promise will resolve after an
44
+ * exponential delay, or once {@link stop()} is called.
45
+ *
46
+ * If the supplied `err` is an `AbortError`, the service will shut down.
47
+ */
48
+ backoff(lc: LogContext, err?: unknown): Promise<void>;
49
+ /**
50
+ * When using {@link backoff()}, this method should be called when the
51
+ * implementation receives a healthy signal (e.g. a successful
52
+ * response). This resets the delay used in {@link backoff()}.
53
+ */
54
+ resetBackoff(): void;
55
+ }
56
+ //# sourceMappingURL=running-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"running-state.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/services/running-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAKnD,MAAM,MAAM,WAAW,GAAG;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC;;GAEG;AACH,qBAAa,YAAY;;gBAWrB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,wBAAiB;IAsB1B;;;;;OAKG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY;IAMzC;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;IAWzC;;;;;OAKG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB;;;;;;OAMG;IACG,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D;;;;OAIG;IACH,YAAY;CAGb"}