@rocicorp/zero 0.0.2024100800 → 0.0.202410040736

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 (849) hide show
  1. package/package.json +6 -8
  2. package/out/btree/b+tree.d.ts +0 -471
  3. package/out/btree/b+tree.d.ts.map +0 -1
  4. package/out/btree/b+tree.js +0 -1708
  5. package/out/btree/b+tree.js.map +0 -1
  6. package/out/btree/interfaces.d.ts +0 -270
  7. package/out/btree/interfaces.d.ts.map +0 -1
  8. package/out/btree/interfaces.js +0 -3
  9. package/out/btree/interfaces.js.map +0 -1
  10. package/out/btree/src/mod.d.ts +0 -2
  11. package/out/btree/src/mod.d.ts.map +0 -1
  12. package/out/btree/src/mod.js +0 -2
  13. package/out/btree/src/mod.js.map +0 -1
  14. package/out/chunk-2RUT5EQV.js +0 -28
  15. package/out/chunk-2RUT5EQV.js.map +0 -7
  16. package/out/datadog/src/datadog-log-sink.d.ts +0 -20
  17. package/out/datadog/src/datadog-log-sink.d.ts.map +0 -1
  18. package/out/datadog/src/datadog-log-sink.js +0 -231
  19. package/out/datadog/src/datadog-log-sink.js.map +0 -1
  20. package/out/datadog/src/mod.d.ts +0 -2
  21. package/out/datadog/src/mod.d.ts.map +0 -1
  22. package/out/datadog/src/mod.js +0 -2
  23. package/out/datadog/src/mod.js.map +0 -1
  24. package/out/react.js +0 -114
  25. package/out/react.js.map +0 -7
  26. package/out/replicache/src/async-iterable-to-array.d.ts +0 -2
  27. package/out/replicache/src/async-iterable-to-array.d.ts.map +0 -1
  28. package/out/replicache/src/bg-interval.d.ts +0 -3
  29. package/out/replicache/src/bg-interval.d.ts.map +0 -1
  30. package/out/replicache/src/binary-search.d.ts +0 -15
  31. package/out/replicache/src/binary-search.d.ts.map +0 -1
  32. package/out/replicache/src/broadcast-channel.d.ts +0 -3
  33. package/out/replicache/src/broadcast-channel.d.ts.map +0 -1
  34. package/out/replicache/src/btree/diff.d.ts +0 -4
  35. package/out/replicache/src/btree/diff.d.ts.map +0 -1
  36. package/out/replicache/src/btree/node.d.ts +0 -125
  37. package/out/replicache/src/btree/node.d.ts.map +0 -1
  38. package/out/replicache/src/btree/read.d.ts +0 -32
  39. package/out/replicache/src/btree/read.d.ts.map +0 -1
  40. package/out/replicache/src/btree/splice.d.ts +0 -9
  41. package/out/replicache/src/btree/splice.d.ts.map +0 -1
  42. package/out/replicache/src/btree/write.d.ts +0 -24
  43. package/out/replicache/src/btree/write.d.ts.map +0 -1
  44. package/out/replicache/src/call-default-fetch.d.ts +0 -6
  45. package/out/replicache/src/call-default-fetch.d.ts.map +0 -1
  46. package/out/replicache/src/config.d.ts +0 -13
  47. package/out/replicache/src/config.d.ts.map +0 -1
  48. package/out/replicache/src/connection-loop-delegates.d.ts +0 -20
  49. package/out/replicache/src/connection-loop-delegates.d.ts.map +0 -1
  50. package/out/replicache/src/connection-loop.d.ts +0 -28
  51. package/out/replicache/src/connection-loop.d.ts.map +0 -1
  52. package/out/replicache/src/cookies.d.ts +0 -29
  53. package/out/replicache/src/cookies.d.ts.map +0 -1
  54. package/out/replicache/src/dag/chunk.d.ts +0 -35
  55. package/out/replicache/src/dag/chunk.d.ts.map +0 -1
  56. package/out/replicache/src/dag/gc.d.ts +0 -42
  57. package/out/replicache/src/dag/gc.d.ts.map +0 -1
  58. package/out/replicache/src/dag/key-type-enum.d.ts +0 -10
  59. package/out/replicache/src/dag/key-type-enum.d.ts.map +0 -1
  60. package/out/replicache/src/dag/key.d.ts +0 -21
  61. package/out/replicache/src/dag/key.d.ts.map +0 -1
  62. package/out/replicache/src/dag/lazy-store.d.ts +0 -181
  63. package/out/replicache/src/dag/lazy-store.d.ts.map +0 -1
  64. package/out/replicache/src/dag/store-impl.d.ts +0 -38
  65. package/out/replicache/src/dag/store-impl.d.ts.map +0 -1
  66. package/out/replicache/src/dag/store.d.ts +0 -36
  67. package/out/replicache/src/dag/store.d.ts.map +0 -1
  68. package/out/replicache/src/dag/visitor.d.ts +0 -13
  69. package/out/replicache/src/dag/visitor.d.ts.map +0 -1
  70. package/out/replicache/src/db/commit.d.ts +0 -127
  71. package/out/replicache/src/db/commit.d.ts.map +0 -1
  72. package/out/replicache/src/db/index-operation-enum.d.ts +0 -6
  73. package/out/replicache/src/db/index-operation-enum.d.ts.map +0 -1
  74. package/out/replicache/src/db/index.d.ts +0 -30
  75. package/out/replicache/src/db/index.d.ts.map +0 -1
  76. package/out/replicache/src/db/meta-type-enum.d.ts +0 -12
  77. package/out/replicache/src/db/meta-type-enum.d.ts.map +0 -1
  78. package/out/replicache/src/db/read.d.ts +0 -24
  79. package/out/replicache/src/db/read.d.ts.map +0 -1
  80. package/out/replicache/src/db/rebase.d.ts +0 -10
  81. package/out/replicache/src/db/rebase.d.ts.map +0 -1
  82. package/out/replicache/src/db/scan.d.ts +0 -15
  83. package/out/replicache/src/db/scan.d.ts.map +0 -1
  84. package/out/replicache/src/db/write.d.ts +0 -39
  85. package/out/replicache/src/db/write.d.ts.map +0 -1
  86. package/out/replicache/src/error-responses.d.ts +0 -26
  87. package/out/replicache/src/error-responses.d.ts.map +0 -1
  88. package/out/replicache/src/filter-async-iterable.d.ts +0 -10
  89. package/out/replicache/src/filter-async-iterable.d.ts.map +0 -1
  90. package/out/replicache/src/format-version-enum.d.ts +0 -13
  91. package/out/replicache/src/format-version-enum.d.ts.map +0 -1
  92. package/out/replicache/src/format-version.d.ts +0 -3
  93. package/out/replicache/src/format-version.d.ts.map +0 -1
  94. package/out/replicache/src/frozen-json.d.ts +0 -35
  95. package/out/replicache/src/frozen-json.d.ts.map +0 -1
  96. package/out/replicache/src/get-default-puller.d.ts +0 -14
  97. package/out/replicache/src/get-default-puller.d.ts.map +0 -1
  98. package/out/replicache/src/get-default-pusher.d.ts +0 -10
  99. package/out/replicache/src/get-default-pusher.d.ts.map +0 -1
  100. package/out/replicache/src/hash.d.ts +0 -29
  101. package/out/replicache/src/hash.d.ts.map +0 -1
  102. package/out/replicache/src/http-request-info.d.ts +0 -6
  103. package/out/replicache/src/http-request-info.d.ts.map +0 -1
  104. package/out/replicache/src/impl.d.ts +0 -4
  105. package/out/replicache/src/impl.d.ts.map +0 -1
  106. package/out/replicache/src/index-defs.d.ts +0 -36
  107. package/out/replicache/src/index-defs.d.ts.map +0 -1
  108. package/out/replicache/src/invoke-kind-enum.d.ts +0 -6
  109. package/out/replicache/src/invoke-kind-enum.d.ts.map +0 -1
  110. package/out/replicache/src/iterable-union.d.ts +0 -5
  111. package/out/replicache/src/iterable-union.d.ts.map +0 -1
  112. package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +0 -25
  113. package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +0 -1
  114. package/out/replicache/src/kv/idb-store.d.ts +0 -18
  115. package/out/replicache/src/kv/idb-store.d.ts.map +0 -1
  116. package/out/replicache/src/kv/mem-store.d.ts +0 -23
  117. package/out/replicache/src/kv/mem-store.d.ts.map +0 -1
  118. package/out/replicache/src/kv/read-impl.d.ts +0 -11
  119. package/out/replicache/src/kv/read-impl.d.ts.map +0 -1
  120. package/out/replicache/src/kv/store.d.ts +0 -76
  121. package/out/replicache/src/kv/store.d.ts.map +0 -1
  122. package/out/replicache/src/kv/write-impl-base.d.ts +0 -18
  123. package/out/replicache/src/kv/write-impl-base.d.ts.map +0 -1
  124. package/out/replicache/src/kv/write-impl.d.ts +0 -9
  125. package/out/replicache/src/kv/write-impl.d.ts.map +0 -1
  126. package/out/replicache/src/lazy.d.ts +0 -2
  127. package/out/replicache/src/lazy.d.ts.map +0 -1
  128. package/out/replicache/src/log-options.d.ts +0 -10
  129. package/out/replicache/src/log-options.d.ts.map +0 -1
  130. package/out/replicache/src/merge-async-iterables.d.ts +0 -16
  131. package/out/replicache/src/merge-async-iterables.d.ts.map +0 -1
  132. package/out/replicache/src/mod.d.ts +0 -38
  133. package/out/replicache/src/mod.d.ts.map +0 -1
  134. package/out/replicache/src/mutation-recovery.d.ts +0 -43
  135. package/out/replicache/src/mutation-recovery.d.ts.map +0 -1
  136. package/out/replicache/src/new-client-channel.d.ts +0 -6
  137. package/out/replicache/src/new-client-channel.d.ts.map +0 -1
  138. package/out/replicache/src/on-persist-channel.d.ts +0 -10
  139. package/out/replicache/src/on-persist-channel.d.ts.map +0 -1
  140. package/out/replicache/src/patch-operation.d.ts +0 -32
  141. package/out/replicache/src/patch-operation.d.ts.map +0 -1
  142. package/out/replicache/src/pending-mutations.d.ts +0 -14
  143. package/out/replicache/src/pending-mutations.d.ts.map +0 -1
  144. package/out/replicache/src/persist/client-gc.d.ts +0 -17
  145. package/out/replicache/src/persist/client-gc.d.ts.map +0 -1
  146. package/out/replicache/src/persist/client-group-gc.d.ts +0 -10
  147. package/out/replicache/src/persist/client-group-gc.d.ts.map +0 -1
  148. package/out/replicache/src/persist/client-groups.d.ts +0 -72
  149. package/out/replicache/src/persist/client-groups.d.ts.map +0 -1
  150. package/out/replicache/src/persist/clients.d.ts +0 -155
  151. package/out/replicache/src/persist/clients.d.ts.map +0 -1
  152. package/out/replicache/src/persist/collect-idb-databases.d.ts +0 -91
  153. package/out/replicache/src/persist/collect-idb-databases.d.ts.map +0 -1
  154. package/out/replicache/src/persist/gather-mem-only-visitor.d.ts +0 -12
  155. package/out/replicache/src/persist/gather-mem-only-visitor.d.ts.map +0 -1
  156. package/out/replicache/src/persist/gather-not-cached-visitor.d.ts +0 -17
  157. package/out/replicache/src/persist/gather-not-cached-visitor.d.ts.map +0 -1
  158. package/out/replicache/src/persist/heartbeat.d.ts +0 -9
  159. package/out/replicache/src/persist/heartbeat.d.ts.map +0 -1
  160. package/out/replicache/src/persist/idb-databases-store-db-name.d.ts +0 -5
  161. package/out/replicache/src/persist/idb-databases-store-db-name.d.ts.map +0 -1
  162. package/out/replicache/src/persist/idb-databases-store.d.ts +0 -24
  163. package/out/replicache/src/persist/idb-databases-store.d.ts.map +0 -1
  164. package/out/replicache/src/persist/make-client-id.d.ts +0 -6
  165. package/out/replicache/src/persist/make-client-id.d.ts.map +0 -1
  166. package/out/replicache/src/persist/persist.d.ts +0 -26
  167. package/out/replicache/src/persist/persist.d.ts.map +0 -1
  168. package/out/replicache/src/persist/refresh.d.ts +0 -13
  169. package/out/replicache/src/persist/refresh.d.ts.map +0 -1
  170. package/out/replicache/src/process-scheduler.d.ts +0 -20
  171. package/out/replicache/src/process-scheduler.d.ts.map +0 -1
  172. package/out/replicache/src/puller.d.ts +0 -61
  173. package/out/replicache/src/puller.d.ts.map +0 -1
  174. package/out/replicache/src/pusher.d.ts +0 -33
  175. package/out/replicache/src/pusher.d.ts.map +0 -1
  176. package/out/replicache/src/replicache-impl.d.ts +0 -321
  177. package/out/replicache/src/replicache-impl.d.ts.map +0 -1
  178. package/out/replicache/src/replicache-options.d.ts +0 -209
  179. package/out/replicache/src/replicache-options.d.ts.map +0 -1
  180. package/out/replicache/src/replicache.d.ts +0 -298
  181. package/out/replicache/src/replicache.d.ts.map +0 -1
  182. package/out/replicache/src/request-idle.d.ts +0 -6
  183. package/out/replicache/src/request-idle.d.ts.map +0 -1
  184. package/out/replicache/src/scan-iterator.d.ts +0 -127
  185. package/out/replicache/src/scan-iterator.d.ts.map +0 -1
  186. package/out/replicache/src/scan-options.d.ts +0 -67
  187. package/out/replicache/src/scan-options.d.ts.map +0 -1
  188. package/out/replicache/src/set-interval-with-signal.d.ts +0 -2
  189. package/out/replicache/src/set-interval-with-signal.d.ts.map +0 -1
  190. package/out/replicache/src/size-of-value.d.ts +0 -19
  191. package/out/replicache/src/size-of-value.d.ts.map +0 -1
  192. package/out/replicache/src/subscriptions.d.ts +0 -137
  193. package/out/replicache/src/subscriptions.d.ts.map +0 -1
  194. package/out/replicache/src/sync/diff.d.ts +0 -31
  195. package/out/replicache/src/sync/diff.d.ts.map +0 -1
  196. package/out/replicache/src/sync/handle-pull-response-result-type-enum.d.ts +0 -8
  197. package/out/replicache/src/sync/handle-pull-response-result-type-enum.d.ts.map +0 -1
  198. package/out/replicache/src/sync/ids.d.ts +0 -13
  199. package/out/replicache/src/sync/ids.d.ts.map +0 -1
  200. package/out/replicache/src/sync/patch.d.ts +0 -5
  201. package/out/replicache/src/sync/patch.d.ts.map +0 -1
  202. package/out/replicache/src/sync/pull-error.d.ts +0 -9
  203. package/out/replicache/src/sync/pull-error.d.ts.map +0 -1
  204. package/out/replicache/src/sync/pull.d.ts +0 -78
  205. package/out/replicache/src/sync/pull.d.ts.map +0 -1
  206. package/out/replicache/src/sync/push.d.ts +0 -65
  207. package/out/replicache/src/sync/push.d.ts.map +0 -1
  208. package/out/replicache/src/sync/request-id.d.ts +0 -10
  209. package/out/replicache/src/sync/request-id.d.ts.map +0 -1
  210. package/out/replicache/src/sync/sync-head-name.d.ts +0 -2
  211. package/out/replicache/src/sync/sync-head-name.d.ts.map +0 -1
  212. package/out/replicache/src/test-license-key.d.ts +0 -3
  213. package/out/replicache/src/test-license-key.d.ts.map +0 -1
  214. package/out/replicache/src/to-error.d.ts +0 -2
  215. package/out/replicache/src/to-error.d.ts.map +0 -1
  216. package/out/replicache/src/transaction-closed-error.d.ts +0 -12
  217. package/out/replicache/src/transaction-closed-error.d.ts.map +0 -1
  218. package/out/replicache/src/transactions.d.ts +0 -156
  219. package/out/replicache/src/transactions.d.ts.map +0 -1
  220. package/out/replicache/src/types.d.ts +0 -57
  221. package/out/replicache/src/types.d.ts.map +0 -1
  222. package/out/replicache/src/version.d.ts +0 -5
  223. package/out/replicache/src/version.d.ts.map +0 -1
  224. package/out/replicache/src/with-transactions.d.ts +0 -23
  225. package/out/replicache/src/with-transactions.d.ts.map +0 -1
  226. package/out/shared/src/abort-error.d.ts +0 -4
  227. package/out/shared/src/abort-error.d.ts.map +0 -1
  228. package/out/shared/src/abort-error.js +0 -4
  229. package/out/shared/src/abort-error.js.map +0 -1
  230. package/out/shared/src/asserts.d.ts +0 -17
  231. package/out/shared/src/asserts.d.ts.map +0 -1
  232. package/out/shared/src/asserts.js +0 -73
  233. package/out/shared/src/asserts.js.map +0 -1
  234. package/out/shared/src/browser-env.d.ts +0 -3
  235. package/out/shared/src/browser-env.d.ts.map +0 -1
  236. package/out/shared/src/config.d.ts +0 -3
  237. package/out/shared/src/config.d.ts.map +0 -1
  238. package/out/shared/src/config.js +0 -3
  239. package/out/shared/src/config.js.map +0 -1
  240. package/out/shared/src/custom-key-map.d.ts +0 -26
  241. package/out/shared/src/custom-key-map.d.ts.map +0 -1
  242. package/out/shared/src/custom-key-map.js +0 -65
  243. package/out/shared/src/custom-key-map.js.map +0 -1
  244. package/out/shared/src/deep-clone.d.ts +0 -4
  245. package/out/shared/src/deep-clone.d.ts.map +0 -1
  246. package/out/shared/src/document-visible.d.ts +0 -9
  247. package/out/shared/src/document-visible.d.ts.map +0 -1
  248. package/out/shared/src/has-own.d.ts +0 -5
  249. package/out/shared/src/has-own.d.ts.map +0 -1
  250. package/out/shared/src/has-own.js +0 -8
  251. package/out/shared/src/has-own.js.map +0 -1
  252. package/out/shared/src/immutable.d.ts +0 -11
  253. package/out/shared/src/immutable.d.ts.map +0 -1
  254. package/out/shared/src/iterables.d.ts +0 -11
  255. package/out/shared/src/iterables.d.ts.map +0 -1
  256. package/out/shared/src/json-schema.d.ts +0 -5
  257. package/out/shared/src/json-schema.d.ts.map +0 -1
  258. package/out/shared/src/json-schema.js +0 -36
  259. package/out/shared/src/json-schema.js.map +0 -1
  260. package/out/shared/src/json.d.ts +0 -55
  261. package/out/shared/src/json.d.ts.map +0 -1
  262. package/out/shared/src/json.js +0 -164
  263. package/out/shared/src/json.js.map +0 -1
  264. package/out/shared/src/must.d.ts +0 -2
  265. package/out/shared/src/must.d.ts.map +0 -1
  266. package/out/shared/src/must.js +0 -8
  267. package/out/shared/src/must.js.map +0 -1
  268. package/out/shared/src/navigator.d.ts +0 -7
  269. package/out/shared/src/navigator.d.ts.map +0 -1
  270. package/out/shared/src/parse-big-int.d.ts +0 -2
  271. package/out/shared/src/parse-big-int.d.ts.map +0 -1
  272. package/out/shared/src/parse-big-int.js +0 -11
  273. package/out/shared/src/parse-big-int.js.map +0 -1
  274. package/out/shared/src/queue.d.ts +0 -40
  275. package/out/shared/src/queue.d.ts.map +0 -1
  276. package/out/shared/src/queue.js +0 -118
  277. package/out/shared/src/queue.js.map +0 -1
  278. package/out/shared/src/rand.d.ts +0 -7
  279. package/out/shared/src/rand.d.ts.map +0 -1
  280. package/out/shared/src/rand.js +0 -11
  281. package/out/shared/src/rand.js.map +0 -1
  282. package/out/shared/src/random-uint64.d.ts +0 -2
  283. package/out/shared/src/random-uint64.d.ts.map +0 -1
  284. package/out/shared/src/random-values.d.ts +0 -2
  285. package/out/shared/src/random-values.d.ts.map +0 -1
  286. package/out/shared/src/resolved-promises.d.ts +0 -5
  287. package/out/shared/src/resolved-promises.d.ts.map +0 -1
  288. package/out/shared/src/resolved-promises.js +0 -5
  289. package/out/shared/src/resolved-promises.js.map +0 -1
  290. package/out/shared/src/set-utils.d.ts +0 -9
  291. package/out/shared/src/set-utils.d.ts.map +0 -1
  292. package/out/shared/src/set-utils.js +0 -60
  293. package/out/shared/src/set-utils.js.map +0 -1
  294. package/out/shared/src/sleep.d.ts +0 -15
  295. package/out/shared/src/sleep.d.ts.map +0 -1
  296. package/out/shared/src/sleep.js +0 -54
  297. package/out/shared/src/sleep.js.map +0 -1
  298. package/out/shared/src/string-compare.d.ts +0 -2
  299. package/out/shared/src/string-compare.d.ts.map +0 -1
  300. package/out/shared/src/string-compare.js +0 -10
  301. package/out/shared/src/string-compare.js.map +0 -1
  302. package/out/shared/src/types.d.ts +0 -2
  303. package/out/shared/src/types.d.ts.map +0 -1
  304. package/out/shared/src/valita.d.ts +0 -27
  305. package/out/shared/src/valita.d.ts.map +0 -1
  306. package/out/shared/src/valita.js +0 -118
  307. package/out/shared/src/valita.js.map +0 -1
  308. package/out/shared/src/xxhash.d.ts +0 -3
  309. package/out/shared/src/xxhash.d.ts.map +0 -1
  310. package/out/shared/src/xxhash.js +0 -4
  311. package/out/shared/src/xxhash.js.map +0 -1
  312. package/out/zero/src/cli.d.ts +0 -3
  313. package/out/zero/src/cli.d.ts.map +0 -1
  314. package/out/zero/src/cli.js +0 -3
  315. package/out/zero/src/cli.js.map +0 -1
  316. package/out/zero/src/react.d.ts +0 -2
  317. package/out/zero/src/react.d.ts.map +0 -1
  318. package/out/zero/src/server/change-streamer.d.ts +0 -2
  319. package/out/zero/src/server/change-streamer.d.ts.map +0 -1
  320. package/out/zero/src/server/change-streamer.js +0 -2
  321. package/out/zero/src/server/change-streamer.js.map +0 -1
  322. package/out/zero/src/server/main.d.ts +0 -2
  323. package/out/zero/src/server/main.d.ts.map +0 -1
  324. package/out/zero/src/server/main.js +0 -2
  325. package/out/zero/src/server/main.js.map +0 -1
  326. package/out/zero/src/server/replicator.d.ts +0 -2
  327. package/out/zero/src/server/replicator.d.ts.map +0 -1
  328. package/out/zero/src/server/replicator.js +0 -2
  329. package/out/zero/src/server/replicator.js.map +0 -1
  330. package/out/zero/src/server/syncer.d.ts +0 -2
  331. package/out/zero/src/server/syncer.d.ts.map +0 -1
  332. package/out/zero/src/server/syncer.js +0 -2
  333. package/out/zero/src/server/syncer.js.map +0 -1
  334. package/out/zero/src/zero.d.ts +0 -2
  335. package/out/zero/src/zero.d.ts.map +0 -1
  336. package/out/zero-cache/src/config/zero-config.d.ts +0 -1509
  337. package/out/zero-cache/src/config/zero-config.d.ts.map +0 -1
  338. package/out/zero-cache/src/config/zero-config.js +0 -237
  339. package/out/zero-cache/src/config/zero-config.js.map +0 -1
  340. package/out/zero-cache/src/db/lite-tables.d.ts +0 -5
  341. package/out/zero-cache/src/db/lite-tables.d.ts.map +0 -1
  342. package/out/zero-cache/src/db/lite-tables.js +0 -75
  343. package/out/zero-cache/src/db/lite-tables.js.map +0 -1
  344. package/out/zero-cache/src/db/migration-lite.d.ts +0 -38
  345. package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
  346. package/out/zero-cache/src/db/migration-lite.js +0 -161
  347. package/out/zero-cache/src/db/migration-lite.js.map +0 -1
  348. package/out/zero-cache/src/db/migration.d.ts +0 -38
  349. package/out/zero-cache/src/db/migration.d.ts.map +0 -1
  350. package/out/zero-cache/src/db/migration.js +0 -139
  351. package/out/zero-cache/src/db/migration.js.map +0 -1
  352. package/out/zero-cache/src/db/statements.d.ts +0 -32
  353. package/out/zero-cache/src/db/statements.d.ts.map +0 -1
  354. package/out/zero-cache/src/db/statements.js +0 -51
  355. package/out/zero-cache/src/db/statements.js.map +0 -1
  356. package/out/zero-cache/src/db/transaction-pool.d.ts +0 -187
  357. package/out/zero-cache/src/db/transaction-pool.d.ts.map +0 -1
  358. package/out/zero-cache/src/db/transaction-pool.js +0 -445
  359. package/out/zero-cache/src/db/transaction-pool.js.map +0 -1
  360. package/out/zero-cache/src/server/change-streamer.d.ts +0 -3
  361. package/out/zero-cache/src/server/change-streamer.d.ts.map +0 -1
  362. package/out/zero-cache/src/server/change-streamer.js +0 -30
  363. package/out/zero-cache/src/server/change-streamer.js.map +0 -1
  364. package/out/zero-cache/src/server/life-cycle.d.ts +0 -38
  365. package/out/zero-cache/src/server/life-cycle.d.ts.map +0 -1
  366. package/out/zero-cache/src/server/life-cycle.js +0 -110
  367. package/out/zero-cache/src/server/life-cycle.js.map +0 -1
  368. package/out/zero-cache/src/server/logging.d.ts +0 -6
  369. package/out/zero-cache/src/server/logging.d.ts.map +0 -1
  370. package/out/zero-cache/src/server/logging.js +0 -23
  371. package/out/zero-cache/src/server/logging.js.map +0 -1
  372. package/out/zero-cache/src/server/main.d.ts +0 -2
  373. package/out/zero-cache/src/server/main.d.ts.map +0 -1
  374. package/out/zero-cache/src/server/main.js +0 -94
  375. package/out/zero-cache/src/server/main.js.map +0 -1
  376. package/out/zero-cache/src/server/replicator.d.ts +0 -3
  377. package/out/zero-cache/src/server/replicator.d.ts.map +0 -1
  378. package/out/zero-cache/src/server/replicator.js +0 -36
  379. package/out/zero-cache/src/server/replicator.js.map +0 -1
  380. package/out/zero-cache/src/server/syncer.d.ts +0 -3
  381. package/out/zero-cache/src/server/syncer.d.ts.map +0 -1
  382. package/out/zero-cache/src/server/syncer.js +0 -46
  383. package/out/zero-cache/src/server/syncer.js.map +0 -1
  384. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -23
  385. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +0 -1
  386. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +0 -98
  387. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +0 -1
  388. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -39
  389. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +0 -1
  390. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +0 -212
  391. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +0 -1
  392. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -110
  393. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +0 -1
  394. package/out/zero-cache/src/services/change-streamer/change-streamer.js +0 -7
  395. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +0 -1
  396. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +0 -19
  397. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +0 -1
  398. package/out/zero-cache/src/services/change-streamer/forwarder.js +0 -56
  399. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +0 -1
  400. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts +0 -14
  401. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +0 -1
  402. package/out/zero-cache/src/services/change-streamer/pg/change-source.js +0 -211
  403. package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +0 -1
  404. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts +0 -6
  405. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +0 -1
  406. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +0 -192
  407. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +0 -1
  408. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +0 -17
  409. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +0 -1
  410. package/out/zero-cache/src/services/change-streamer/pg/lsn.js +0 -17
  411. package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +0 -1
  412. package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +0 -6
  413. package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +0 -1
  414. package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +0 -29
  415. package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +0 -1
  416. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +0 -79
  417. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +0 -1
  418. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +0 -237
  419. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +0 -1
  420. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +0 -5
  421. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +0 -1
  422. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +0 -111
  423. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +0 -1
  424. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +0 -26
  425. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +0 -1
  426. package/out/zero-cache/src/services/change-streamer/pg/schema/published.js +0 -185
  427. package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +0 -1
  428. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +0 -11
  429. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +0 -1
  430. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js +0 -86
  431. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js.map +0 -1
  432. package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts +0 -19
  433. package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts.map +0 -1
  434. package/out/zero-cache/src/services/change-streamer/pg/shard-config.js +0 -2
  435. package/out/zero-cache/src/services/change-streamer/pg/shard-config.js.map +0 -1
  436. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts +0 -4
  437. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts.map +0 -1
  438. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +0 -12
  439. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +0 -1
  440. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +0 -31
  441. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +0 -1
  442. package/out/zero-cache/src/services/change-streamer/schema/change.js +0 -2
  443. package/out/zero-cache/src/services/change-streamer/schema/change.js.map +0 -1
  444. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +0 -4
  445. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +0 -1
  446. package/out/zero-cache/src/services/change-streamer/schema/init.js +0 -10
  447. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +0 -1
  448. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +0 -22
  449. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +0 -1
  450. package/out/zero-cache/src/services/change-streamer/schema/tables.js +0 -49
  451. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +0 -1
  452. package/out/zero-cache/src/services/change-streamer/storer.d.ts +0 -22
  453. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +0 -1
  454. package/out/zero-cache/src/services/change-streamer/storer.js +0 -157
  455. package/out/zero-cache/src/services/change-streamer/storer.js.map +0 -1
  456. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +0 -27
  457. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +0 -1
  458. package/out/zero-cache/src/services/change-streamer/subscriber.js +0 -70
  459. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +0 -1
  460. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +0 -21
  461. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +0 -1
  462. package/out/zero-cache/src/services/dispatcher/connect-params.js +0 -38
  463. package/out/zero-cache/src/services/dispatcher/connect-params.js.map +0 -1
  464. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +0 -19
  465. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +0 -1
  466. package/out/zero-cache/src/services/dispatcher/dispatcher.js +0 -54
  467. package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +0 -1
  468. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts +0 -11
  469. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +0 -1
  470. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js +0 -33
  471. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +0 -1
  472. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +0 -57
  473. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +0 -1
  474. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +0 -137
  475. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +0 -1
  476. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -28
  477. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +0 -1
  478. package/out/zero-cache/src/services/mutagen/mutagen.js +0 -256
  479. package/out/zero-cache/src/services/mutagen/mutagen.js.map +0 -1
  480. package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts +0 -20
  481. package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +0 -1
  482. package/out/zero-cache/src/services/mutagen/write-authorizer.js +0 -187
  483. package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +0 -1
  484. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +0 -40
  485. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +0 -1
  486. package/out/zero-cache/src/services/replicator/incremental-sync.js +0 -348
  487. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +0 -1
  488. package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -30
  489. package/out/zero-cache/src/services/replicator/notifier.d.ts.map +0 -1
  490. package/out/zero-cache/src/services/replicator/notifier.js +0 -54
  491. package/out/zero-cache/src/services/replicator/notifier.js.map +0 -1
  492. package/out/zero-cache/src/services/replicator/replicator.d.ts +0 -56
  493. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +0 -1
  494. package/out/zero-cache/src/services/replicator/replicator.js +0 -27
  495. package/out/zero-cache/src/services/replicator/replicator.js.map +0 -1
  496. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +0 -35
  497. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +0 -1
  498. package/out/zero-cache/src/services/replicator/schema/change-log.js +0 -78
  499. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +0 -1
  500. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +0 -25
  501. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +0 -1
  502. package/out/zero-cache/src/services/replicator/schema/replication-state.js +0 -90
  503. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +0 -1
  504. package/out/zero-cache/src/services/runner.d.ts +0 -18
  505. package/out/zero-cache/src/services/runner.d.ts.map +0 -1
  506. package/out/zero-cache/src/services/runner.js +0 -45
  507. package/out/zero-cache/src/services/runner.js.map +0 -1
  508. package/out/zero-cache/src/services/running-state.d.ts +0 -56
  509. package/out/zero-cache/src/services/running-state.d.ts.map +0 -1
  510. package/out/zero-cache/src/services/running-state.js +0 -106
  511. package/out/zero-cache/src/services/running-state.js.map +0 -1
  512. package/out/zero-cache/src/services/service.d.ts +0 -37
  513. package/out/zero-cache/src/services/service.d.ts.map +0 -1
  514. package/out/zero-cache/src/services/service.js +0 -2
  515. package/out/zero-cache/src/services/service.js.map +0 -1
  516. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +0 -54
  517. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +0 -1
  518. package/out/zero-cache/src/services/view-syncer/client-handler.js +0 -195
  519. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +0 -1
  520. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +0 -44
  521. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +0 -1
  522. package/out/zero-cache/src/services/view-syncer/cvr-store.js +0 -386
  523. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +0 -1
  524. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -146
  525. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +0 -1
  526. package/out/zero-cache/src/services/view-syncer/cvr.js +0 -446
  527. package/out/zero-cache/src/services/view-syncer/cvr.js.map +0 -1
  528. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +0 -22
  529. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +0 -1
  530. package/out/zero-cache/src/services/view-syncer/database-storage.js +0 -129
  531. package/out/zero-cache/src/services/view-syncer/database-storage.js.map +0 -1
  532. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -108
  533. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +0 -1
  534. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +0 -300
  535. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +0 -1
  536. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +0 -54
  537. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +0 -1
  538. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +0 -181
  539. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +0 -1
  540. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts +0 -4
  541. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts.map +0 -1
  542. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js +0 -12
  543. package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js.map +0 -1
  544. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +0 -783
  545. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +0 -1
  546. package/out/zero-cache/src/services/view-syncer/schema/types.js +0 -213
  547. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +0 -1
  548. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +0 -177
  549. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +0 -1
  550. package/out/zero-cache/src/services/view-syncer/snapshotter.js +0 -363
  551. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +0 -1
  552. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +0 -40
  553. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +0 -1
  554. package/out/zero-cache/src/services/view-syncer/view-syncer.js +0 -506
  555. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +0 -1
  556. package/out/zero-cache/src/types/bigint-json.d.ts +0 -26
  557. package/out/zero-cache/src/types/bigint-json.d.ts.map +0 -1
  558. package/out/zero-cache/src/types/bigint-json.js +0 -49
  559. package/out/zero-cache/src/types/bigint-json.js.map +0 -1
  560. package/out/zero-cache/src/types/error-for-client.d.ts +0 -7
  561. package/out/zero-cache/src/types/error-for-client.d.ts.map +0 -1
  562. package/out/zero-cache/src/types/error-for-client.js +0 -17
  563. package/out/zero-cache/src/types/error-for-client.js.map +0 -1
  564. package/out/zero-cache/src/types/lexi-version.d.ts +0 -29
  565. package/out/zero-cache/src/types/lexi-version.d.ts.map +0 -1
  566. package/out/zero-cache/src/types/lexi-version.js +0 -36
  567. package/out/zero-cache/src/types/lexi-version.js.map +0 -1
  568. package/out/zero-cache/src/types/lite.d.ts +0 -11
  569. package/out/zero-cache/src/types/lite.d.ts.map +0 -1
  570. package/out/zero-cache/src/types/lite.js +0 -26
  571. package/out/zero-cache/src/types/lite.js.map +0 -1
  572. package/out/zero-cache/src/types/names.d.ts +0 -5
  573. package/out/zero-cache/src/types/names.d.ts.map +0 -1
  574. package/out/zero-cache/src/types/names.js +0 -4
  575. package/out/zero-cache/src/types/names.js.map +0 -1
  576. package/out/zero-cache/src/types/pg.d.ts +0 -31
  577. package/out/zero-cache/src/types/pg.d.ts.map +0 -1
  578. package/out/zero-cache/src/types/pg.js +0 -60
  579. package/out/zero-cache/src/types/pg.js.map +0 -1
  580. package/out/zero-cache/src/types/processes.d.ts +0 -57
  581. package/out/zero-cache/src/types/processes.d.ts.map +0 -1
  582. package/out/zero-cache/src/types/processes.js +0 -115
  583. package/out/zero-cache/src/types/processes.js.map +0 -1
  584. package/out/zero-cache/src/types/row-key.d.ts +0 -37
  585. package/out/zero-cache/src/types/row-key.d.ts.map +0 -1
  586. package/out/zero-cache/src/types/row-key.js +0 -64
  587. package/out/zero-cache/src/types/row-key.js.map +0 -1
  588. package/out/zero-cache/src/types/satisfies.d.ts +0 -14
  589. package/out/zero-cache/src/types/satisfies.d.ts.map +0 -1
  590. package/out/zero-cache/src/types/satisfies.js +0 -2
  591. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  592. package/out/zero-cache/src/types/schema-versions.d.ts +0 -8
  593. package/out/zero-cache/src/types/schema-versions.d.ts.map +0 -1
  594. package/out/zero-cache/src/types/schema-versions.js +0 -21
  595. package/out/zero-cache/src/types/schema-versions.js.map +0 -1
  596. package/out/zero-cache/src/types/specs.d.ts +0 -29
  597. package/out/zero-cache/src/types/specs.d.ts.map +0 -1
  598. package/out/zero-cache/src/types/specs.js +0 -2
  599. package/out/zero-cache/src/types/specs.js.map +0 -1
  600. package/out/zero-cache/src/types/sql.d.ts +0 -11
  601. package/out/zero-cache/src/types/sql.d.ts.map +0 -1
  602. package/out/zero-cache/src/types/sql.js +0 -15
  603. package/out/zero-cache/src/types/sql.js.map +0 -1
  604. package/out/zero-cache/src/types/streams.d.ts +0 -33
  605. package/out/zero-cache/src/types/streams.d.ts.map +0 -1
  606. package/out/zero-cache/src/types/streams.js +0 -141
  607. package/out/zero-cache/src/types/streams.js.map +0 -1
  608. package/out/zero-cache/src/types/subscription.d.ts +0 -158
  609. package/out/zero-cache/src/types/subscription.d.ts.map +0 -1
  610. package/out/zero-cache/src/types/subscription.js +0 -233
  611. package/out/zero-cache/src/types/subscription.js.map +0 -1
  612. package/out/zero-cache/src/types/timeout.d.ts +0 -11
  613. package/out/zero-cache/src/types/timeout.d.ts.map +0 -1
  614. package/out/zero-cache/src/types/timeout.js +0 -23
  615. package/out/zero-cache/src/types/timeout.js.map +0 -1
  616. package/out/zero-cache/src/types/url-params.d.ts +0 -10
  617. package/out/zero-cache/src/types/url-params.d.ts.map +0 -1
  618. package/out/zero-cache/src/types/url-params.js +0 -35
  619. package/out/zero-cache/src/types/url-params.js.map +0 -1
  620. package/out/zero-cache/src/workers/connection.d.ts +0 -25
  621. package/out/zero-cache/src/workers/connection.d.ts.map +0 -1
  622. package/out/zero-cache/src/workers/connection.js +0 -189
  623. package/out/zero-cache/src/workers/connection.js.map +0 -1
  624. package/out/zero-cache/src/workers/replicator.d.ts +0 -17
  625. package/out/zero-cache/src/workers/replicator.d.ts.map +0 -1
  626. package/out/zero-cache/src/workers/replicator.js +0 -77
  627. package/out/zero-cache/src/workers/replicator.js.map +0 -1
  628. package/out/zero-cache/src/workers/syncer.d.ts +0 -36
  629. package/out/zero-cache/src/workers/syncer.d.ts.map +0 -1
  630. package/out/zero-cache/src/workers/syncer.js +0 -104
  631. package/out/zero-cache/src/workers/syncer.js.map +0 -1
  632. package/out/zero-client/src/client/context.d.ts +0 -23
  633. package/out/zero-client/src/client/context.d.ts.map +0 -1
  634. package/out/zero-client/src/client/crud.d.ts +0 -52
  635. package/out/zero-client/src/client/crud.d.ts.map +0 -1
  636. package/out/zero-client/src/client/enable-analytics.d.ts +0 -3
  637. package/out/zero-client/src/client/enable-analytics.d.ts.map +0 -1
  638. package/out/zero-client/src/client/http-string.d.ts +0 -7
  639. package/out/zero-client/src/client/http-string.d.ts.map +0 -1
  640. package/out/zero-client/src/client/keys.d.ts +0 -11
  641. package/out/zero-client/src/client/keys.d.ts.map +0 -1
  642. package/out/zero-client/src/client/log-options.d.ts +0 -12
  643. package/out/zero-client/src/client/log-options.d.ts.map +0 -1
  644. package/out/zero-client/src/client/metrics.d.ts +0 -115
  645. package/out/zero-client/src/client/metrics.d.ts.map +0 -1
  646. package/out/zero-client/src/client/options.d.ts +0 -94
  647. package/out/zero-client/src/client/options.d.ts.map +0 -1
  648. package/out/zero-client/src/client/query-manager.d.ts +0 -18
  649. package/out/zero-client/src/client/query-manager.d.ts.map +0 -1
  650. package/out/zero-client/src/client/reload-error-handler.d.ts +0 -5
  651. package/out/zero-client/src/client/reload-error-handler.d.ts.map +0 -1
  652. package/out/zero-client/src/client/replicache-types.d.ts +0 -48
  653. package/out/zero-client/src/client/replicache-types.d.ts.map +0 -1
  654. package/out/zero-client/src/client/server-error.d.ts +0 -12
  655. package/out/zero-client/src/client/server-error.d.ts.map +0 -1
  656. package/out/zero-client/src/client/server-option.d.ts +0 -3
  657. package/out/zero-client/src/client/server-option.d.ts.map +0 -1
  658. package/out/zero-client/src/client/version.d.ts +0 -5
  659. package/out/zero-client/src/client/version.d.ts.map +0 -1
  660. package/out/zero-client/src/client/zero-poke-handler.d.ts +0 -28
  661. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +0 -1
  662. package/out/zero-client/src/client/zero.d.ts +0 -182
  663. package/out/zero-client/src/client/zero.d.ts.map +0 -1
  664. package/out/zero-client/src/mod.d.ts +0 -9
  665. package/out/zero-client/src/mod.d.ts.map +0 -1
  666. package/out/zero-client/src/util/nanoid.d.ts +0 -2
  667. package/out/zero-client/src/util/nanoid.d.ts.map +0 -1
  668. package/out/zero-client/src/util/socket.d.ts +0 -3
  669. package/out/zero-client/src/util/socket.d.ts.map +0 -1
  670. package/out/zero-protocol/src/ast.d.ts +0 -69
  671. package/out/zero-protocol/src/ast.d.ts.map +0 -1
  672. package/out/zero-protocol/src/ast.js +0 -64
  673. package/out/zero-protocol/src/ast.js.map +0 -1
  674. package/out/zero-protocol/src/change-desired-queries.d.ts +0 -71
  675. package/out/zero-protocol/src/change-desired-queries.d.ts.map +0 -1
  676. package/out/zero-protocol/src/change-desired-queries.js +0 -10
  677. package/out/zero-protocol/src/change-desired-queries.js.map +0 -1
  678. package/out/zero-protocol/src/clients-patch.d.ts +0 -37
  679. package/out/zero-protocol/src/clients-patch.d.ts.map +0 -1
  680. package/out/zero-protocol/src/clients-patch.js +0 -15
  681. package/out/zero-protocol/src/clients-patch.js.map +0 -1
  682. package/out/zero-protocol/src/connect.d.ts +0 -88
  683. package/out/zero-protocol/src/connect.d.ts.map +0 -1
  684. package/out/zero-protocol/src/connect.js +0 -25
  685. package/out/zero-protocol/src/connect.js.map +0 -1
  686. package/out/zero-protocol/src/delete-clients.d.ts +0 -11
  687. package/out/zero-protocol/src/delete-clients.d.ts.map +0 -1
  688. package/out/zero-protocol/src/delete-clients.js +0 -9
  689. package/out/zero-protocol/src/delete-clients.js.map +0 -1
  690. package/out/zero-protocol/src/down.d.ts +0 -114
  691. package/out/zero-protocol/src/down.d.ts.map +0 -1
  692. package/out/zero-protocol/src/down.js +0 -8
  693. package/out/zero-protocol/src/down.js.map +0 -1
  694. package/out/zero-protocol/src/entities-patch.d.ts +0 -66
  695. package/out/zero-protocol/src/entities-patch.d.ts.map +0 -1
  696. package/out/zero-protocol/src/entities-patch.js +0 -27
  697. package/out/zero-protocol/src/entities-patch.js.map +0 -1
  698. package/out/zero-protocol/src/entity.d.ts +0 -9
  699. package/out/zero-protocol/src/entity.d.ts.map +0 -1
  700. package/out/zero-protocol/src/entity.js +0 -8
  701. package/out/zero-protocol/src/entity.js.map +0 -1
  702. package/out/zero-protocol/src/error.d.ts +0 -21
  703. package/out/zero-protocol/src/error.d.ts.map +0 -1
  704. package/out/zero-protocol/src/error.js +0 -28
  705. package/out/zero-protocol/src/error.js.map +0 -1
  706. package/out/zero-protocol/src/mod.d.ts +0 -16
  707. package/out/zero-protocol/src/mod.d.ts.map +0 -1
  708. package/out/zero-protocol/src/mod.js +0 -16
  709. package/out/zero-protocol/src/mod.js.map +0 -1
  710. package/out/zero-protocol/src/ping.d.ts +0 -6
  711. package/out/zero-protocol/src/ping.d.ts.map +0 -1
  712. package/out/zero-protocol/src/ping.js +0 -4
  713. package/out/zero-protocol/src/ping.js.map +0 -1
  714. package/out/zero-protocol/src/poke.d.ts +0 -244
  715. package/out/zero-protocol/src/poke.d.ts.map +0 -1
  716. package/out/zero-protocol/src/poke.js +0 -73
  717. package/out/zero-protocol/src/poke.js.map +0 -1
  718. package/out/zero-protocol/src/pong.d.ts +0 -6
  719. package/out/zero-protocol/src/pong.d.ts.map +0 -1
  720. package/out/zero-protocol/src/pong.js +0 -4
  721. package/out/zero-protocol/src/pong.js.map +0 -1
  722. package/out/zero-protocol/src/pull.d.ts +0 -26
  723. package/out/zero-protocol/src/pull.d.ts.map +0 -1
  724. package/out/zero-protocol/src/pull.js +0 -24
  725. package/out/zero-protocol/src/pull.js.map +0 -1
  726. package/out/zero-protocol/src/push.d.ts +0 -257
  727. package/out/zero-protocol/src/push.d.ts.map +0 -1
  728. package/out/zero-protocol/src/push.js +0 -77
  729. package/out/zero-protocol/src/push.js.map +0 -1
  730. package/out/zero-protocol/src/queries-patch.d.ts +0 -103
  731. package/out/zero-protocol/src/queries-patch.d.ts.map +0 -1
  732. package/out/zero-protocol/src/queries-patch.js +0 -17
  733. package/out/zero-protocol/src/queries-patch.js.map +0 -1
  734. package/out/zero-protocol/src/up.d.ts +0 -116
  735. package/out/zero-protocol/src/up.d.ts.map +0 -1
  736. package/out/zero-protocol/src/up.js +0 -9
  737. package/out/zero-protocol/src/up.js.map +0 -1
  738. package/out/zero-protocol/src/version.d.ts +0 -6
  739. package/out/zero-protocol/src/version.d.ts.map +0 -1
  740. package/out/zero-protocol/src/version.js +0 -4
  741. package/out/zero-protocol/src/version.js.map +0 -1
  742. package/out/zero-react/src/mod.d.ts +0 -3
  743. package/out/zero-react/src/mod.d.ts.map +0 -1
  744. package/out/zero-react/src/use-query.d.ts +0 -3
  745. package/out/zero-react/src/use-query.d.ts.map +0 -1
  746. package/out/zero-react/src/use-zero.d.ts +0 -8
  747. package/out/zero-react/src/use-zero.d.ts.map +0 -1
  748. package/out/zero.js +0 -15868
  749. package/out/zero.js.map +0 -7
  750. package/out/zql/src/zql/ast/ast.d.ts +0 -84
  751. package/out/zql/src/zql/ast/ast.d.ts.map +0 -1
  752. package/out/zql/src/zql/ast/ast.js +0 -54
  753. package/out/zql/src/zql/ast/ast.js.map +0 -1
  754. package/out/zql/src/zql/builder/builder.d.ts +0 -56
  755. package/out/zql/src/zql/builder/builder.d.ts.map +0 -1
  756. package/out/zql/src/zql/builder/builder.js +0 -115
  757. package/out/zql/src/zql/builder/builder.js.map +0 -1
  758. package/out/zql/src/zql/builder/error.d.ts +0 -3
  759. package/out/zql/src/zql/builder/error.d.ts.map +0 -1
  760. package/out/zql/src/zql/builder/error.js +0 -3
  761. package/out/zql/src/zql/builder/error.js.map +0 -1
  762. package/out/zql/src/zql/builder/filter.d.ts +0 -6
  763. package/out/zql/src/zql/builder/filter.d.ts.map +0 -1
  764. package/out/zql/src/zql/builder/filter.js +0 -53
  765. package/out/zql/src/zql/builder/filter.js.map +0 -1
  766. package/out/zql/src/zql/builder/like.d.ts +0 -3
  767. package/out/zql/src/zql/builder/like.d.ts.map +0 -1
  768. package/out/zql/src/zql/builder/like.js +0 -60
  769. package/out/zql/src/zql/builder/like.js.map +0 -1
  770. package/out/zql/src/zql/ivm/array-view.d.ts +0 -42
  771. package/out/zql/src/zql/ivm/array-view.d.ts.map +0 -1
  772. package/out/zql/src/zql/ivm/change.d.ts +0 -44
  773. package/out/zql/src/zql/ivm/change.d.ts.map +0 -1
  774. package/out/zql/src/zql/ivm/change.js +0 -2
  775. package/out/zql/src/zql/ivm/change.js.map +0 -1
  776. package/out/zql/src/zql/ivm/data.d.ts +0 -72
  777. package/out/zql/src/zql/ivm/data.d.ts.map +0 -1
  778. package/out/zql/src/zql/ivm/data.js +0 -84
  779. package/out/zql/src/zql/ivm/data.js.map +0 -1
  780. package/out/zql/src/zql/ivm/filter.d.ts +0 -27
  781. package/out/zql/src/zql/ivm/filter.d.ts.map +0 -1
  782. package/out/zql/src/zql/ivm/filter.js +0 -60
  783. package/out/zql/src/zql/ivm/filter.js.map +0 -1
  784. package/out/zql/src/zql/ivm/join.d.ts +0 -37
  785. package/out/zql/src/zql/ivm/join.d.ts.map +0 -1
  786. package/out/zql/src/zql/ivm/join.js +0 -228
  787. package/out/zql/src/zql/ivm/join.js.map +0 -1
  788. package/out/zql/src/zql/ivm/lookahead-iterator.d.ts +0 -13
  789. package/out/zql/src/zql/ivm/lookahead-iterator.d.ts.map +0 -1
  790. package/out/zql/src/zql/ivm/lookahead-iterator.js +0 -45
  791. package/out/zql/src/zql/ivm/lookahead-iterator.js.map +0 -1
  792. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts +0 -10
  793. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +0 -1
  794. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js +0 -34
  795. package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js.map +0 -1
  796. package/out/zql/src/zql/ivm/memory-source.d.ts +0 -65
  797. package/out/zql/src/zql/ivm/memory-source.d.ts.map +0 -1
  798. package/out/zql/src/zql/ivm/memory-source.js +0 -508
  799. package/out/zql/src/zql/ivm/memory-source.js.map +0 -1
  800. package/out/zql/src/zql/ivm/memory-storage.d.ts +0 -18
  801. package/out/zql/src/zql/ivm/memory-storage.d.ts.map +0 -1
  802. package/out/zql/src/zql/ivm/operator.d.ts +0 -89
  803. package/out/zql/src/zql/ivm/operator.d.ts.map +0 -1
  804. package/out/zql/src/zql/ivm/operator.js +0 -2
  805. package/out/zql/src/zql/ivm/operator.js.map +0 -1
  806. package/out/zql/src/zql/ivm/schema.d.ts +0 -29
  807. package/out/zql/src/zql/ivm/schema.d.ts.map +0 -1
  808. package/out/zql/src/zql/ivm/schema.js +0 -3
  809. package/out/zql/src/zql/ivm/schema.js.map +0 -1
  810. package/out/zql/src/zql/ivm/skip.d.ts +0 -24
  811. package/out/zql/src/zql/ivm/skip.d.ts.map +0 -1
  812. package/out/zql/src/zql/ivm/skip.js +0 -113
  813. package/out/zql/src/zql/ivm/skip.js.map +0 -1
  814. package/out/zql/src/zql/ivm/source.d.ts +0 -57
  815. package/out/zql/src/zql/ivm/source.d.ts.map +0 -1
  816. package/out/zql/src/zql/ivm/source.js +0 -2
  817. package/out/zql/src/zql/ivm/source.js.map +0 -1
  818. package/out/zql/src/zql/ivm/stream.d.ts +0 -11
  819. package/out/zql/src/zql/ivm/stream.d.ts.map +0 -1
  820. package/out/zql/src/zql/ivm/stream.js +0 -19
  821. package/out/zql/src/zql/ivm/stream.js.map +0 -1
  822. package/out/zql/src/zql/ivm/take.d.ts +0 -24
  823. package/out/zql/src/zql/ivm/take.d.ts.map +0 -1
  824. package/out/zql/src/zql/ivm/take.js +0 -453
  825. package/out/zql/src/zql/ivm/take.js.map +0 -1
  826. package/out/zql/src/zql/query/query-impl.d.ts +0 -48
  827. package/out/zql/src/zql/query/query-impl.d.ts.map +0 -1
  828. package/out/zql/src/zql/query/query.d.ts +0 -131
  829. package/out/zql/src/zql/query/query.d.ts.map +0 -1
  830. package/out/zql/src/zql/query/schema.d.ts +0 -53
  831. package/out/zql/src/zql/query/schema.d.ts.map +0 -1
  832. package/out/zql/src/zql/query/typed-view.d.ts +0 -10
  833. package/out/zql/src/zql/query/typed-view.d.ts.map +0 -1
  834. package/out/zqlite/src/db.d.ts +0 -23
  835. package/out/zqlite/src/db.d.ts.map +0 -1
  836. package/out/zqlite/src/db.js +0 -117
  837. package/out/zqlite/src/db.js.map +0 -1
  838. package/out/zqlite/src/internal/sql.d.ts +0 -9
  839. package/out/zqlite/src/internal/sql.d.ts.map +0 -1
  840. package/out/zqlite/src/internal/sql.js +0 -14
  841. package/out/zqlite/src/internal/sql.js.map +0 -1
  842. package/out/zqlite/src/internal/statement-cache.d.ts +0 -67
  843. package/out/zqlite/src/internal/statement-cache.d.ts.map +0 -1
  844. package/out/zqlite/src/internal/statement-cache.js +0 -119
  845. package/out/zqlite/src/internal/statement-cache.js.map +0 -1
  846. package/out/zqlite/src/table-source.d.ts +0 -43
  847. package/out/zqlite/src/table-source.d.ts.map +0 -1
  848. package/out/zqlite/src/table-source.js +0 -393
  849. package/out/zqlite/src/table-source.js.map +0 -1
@@ -1,445 +0,0 @@
1
- import { resolver } from '@rocicorp/resolver';
2
- import { assert } from '../../../shared/src/asserts.js';
3
- import { Queue } from '../../../shared/src/queue.js';
4
- export var Mode;
5
- (function (Mode) {
6
- Mode["SERIALIZABLE"] = "ISOLATION LEVEL SERIALIZABLE";
7
- Mode["READONLY"] = "ISOLATION LEVEL REPEATABLE READ READ ONLY";
8
- })(Mode || (Mode = {}));
9
- /**
10
- * A TransactionPool is a pool of one or more {@link postgres.TransactionSql}
11
- * objects that participate in processing a dynamic queue of tasks.
12
- *
13
- * This can be used for serializing a set of tasks that arrive asynchronously
14
- * to a single transaction (for writing) or performing parallel reads across
15
- * multiple connections at the same snapshot (e.g. read only snapshot transactions).
16
- */
17
- export class TransactionPool {
18
- #lc;
19
- #mode;
20
- #init;
21
- #cleanup;
22
- #tasks = new Queue();
23
- #workers = [];
24
- #initialWorkers;
25
- #maxWorkers;
26
- #timeoutTask;
27
- #numWorkers;
28
- #numWorking = 0;
29
- #db; // set when running. stored to allow adaptive pool sizing.
30
- #refCount = 1;
31
- #done = false;
32
- #failure;
33
- /**
34
- * @param init A {@link Task} that is run in each Transaction before it begins
35
- * processing general tasks. This can be used to to set the transaction
36
- * mode, export/set snapshots, etc. This will be run even if
37
- * {@link fail} has been called on the pool.
38
- * @param cleanup A {@link Task} that is run in each Transaction before it closes.
39
- * This will be run even if {@link fail} has been called, or if a
40
- * preceding Task threw an Error.
41
- * @param initialWorkers The initial number of transaction workers to process tasks.
42
- * This is the steady state number of workers that will be kept
43
- * alive if the TransactionPool is long lived.
44
- * This must be greater than 0. Defaults to 1.
45
- * @param maxWorkers When specified, allows the pool to grow to `maxWorkers`. This
46
- * must be greater than or equal to `initialWorkers`. On-demand
47
- * workers will be shut down after an idle timeout of 5 seconds.
48
- */
49
- constructor(lc, mode, init, cleanup, initialWorkers = 1, maxWorkers = initialWorkers, timeoutTasks = TIMEOUT_TASKS) {
50
- assert(initialWorkers > 0);
51
- assert(maxWorkers >= initialWorkers);
52
- this.#lc = lc;
53
- this.#mode = mode;
54
- this.#init = init ? queuedStmt(init) : undefined;
55
- this.#cleanup = cleanup ? queuedStmt(cleanup) : undefined;
56
- this.#initialWorkers = initialWorkers;
57
- this.#numWorkers = initialWorkers;
58
- this.#maxWorkers = maxWorkers;
59
- this.#timeoutTask = timeoutTasks;
60
- }
61
- /**
62
- * Starts the pool of workers to process Tasks with transactions opened from the
63
- * specified {@link db}.
64
- */
65
- run(db) {
66
- assert(!this.#db, 'already running');
67
- this.#db = db;
68
- for (let i = 0; i < this.#numWorkers; i++) {
69
- this.#addWorker(db);
70
- }
71
- return this;
72
- }
73
- /**
74
- * Adds context parameters to internal LogContext. This is useful for context values that
75
- * are not known when the TransactionPool is constructed (e.g. determined after a database
76
- * call when the pool is running).
77
- *
78
- * Returns an object that can be used to add more parameters.
79
- */
80
- addLoggingContext(key, value) {
81
- this.#lc = this.#lc.withContext(key, value);
82
- return {
83
- addLoggingContext: (key, value) => this.addLoggingContext(key, value),
84
- };
85
- }
86
- /**
87
- * Returns a promise that:
88
- *
89
- * * resolves after {@link setDone} has been called (or the the pool as been {@link unref}ed
90
- * to a 0 ref count), once all added tasks have been processed and all transactions have been
91
- * committed or closed.
92
- *
93
- * * rejects if processing was aborted with {@link fail} or if processing any of
94
- * the tasks resulted in an error. All uncommitted transactions will have been
95
- * rolled back.
96
- *
97
- * Note that partial failures are possible if processing writes with multiple workers
98
- * (e.g. `setDone` is called, allowing some workers to commit, after which other
99
- * workers encounter errors). Using a TransactionPool in this manner does not make
100
- * sense in terms of transactional semantics, and is thus not recommended.
101
- *
102
- * For reads, however, multiple workers is useful for performing parallel reads
103
- * at the same snapshot. See {@link synchronizedSnapshots} for an example.
104
- * Resolves or rejects when all workers are done or failed.
105
- */
106
- async done() {
107
- const numWorkers = this.#workers.length;
108
- await Promise.all(this.#workers);
109
- if (numWorkers < this.#workers.length) {
110
- // If workers were added after the initial set, they must be awaited to ensure
111
- // that the results (i.e. rejections) of all workers are accounted for. This only
112
- // needs to be re-done once, because the fact that the first `await` completed
113
- // guarantees that the pool is in a terminal state and no new workers can be added.
114
- await Promise.all(this.#workers);
115
- }
116
- this.#lc.debug?.('transaction pool done');
117
- }
118
- #addWorker(db) {
119
- const lc = this.#lc.withContext('worker', `#${this.#workers.length + 1}`);
120
- const tt = this.#workers.length < this.#initialWorkers
121
- ? this.#timeoutTask.forInitialWorkers
122
- : this.#timeoutTask.forExtraWorkers;
123
- const { timeoutMs } = tt;
124
- const timeoutTask = tt.task === 'done' ? 'done' : { task: queuedStmt(tt.task) };
125
- const worker = async (tx) => {
126
- try {
127
- lc.debug?.('started worker');
128
- const pending = [];
129
- const executeTask = async (taskTracker) => {
130
- const { task, resolver } = taskTracker;
131
- task !== this.#init && this.#numWorking++;
132
- let result;
133
- try {
134
- result = await task(tx, lc);
135
- if (result instanceof Statements) {
136
- // Execute the statements (i.e. send to the db) immediately and add them to
137
- // `pending` for the final await.
138
- //
139
- // Optimization: Fail immediately on rejections to prevent more tasks from
140
- // queueing up. This can save a lot of time if an initial task fails before
141
- // many subsequent tasks (e.g. transaction replay detection).
142
- const start = Date.now();
143
- pending.push(...result.stmts.map(stmt => stmt
144
- .execute()
145
- .then(() => lc.debug?.(`Executed statement (${Date.now() - start} ms)`, stmt.strings))
146
- .catch(e => this.fail(e))));
147
- }
148
- }
149
- catch (e) {
150
- if (resolver) {
151
- resolver.reject(e); // Reject the ReadTask only.
152
- }
153
- else {
154
- throw e; // Fail the pool for (write) Tasks.
155
- }
156
- }
157
- finally {
158
- task !== this.#init && this.#numWorking--;
159
- resolver?.resolve(
160
- // Note: This must be a ReadResult because of the TaskTracker type.
161
- result instanceof ReadResult ? result.result : result?.stmts);
162
- }
163
- };
164
- let task = this.#init
165
- ? { task: this.#init }
166
- : await this.#tasks.dequeue(timeoutTask, timeoutMs);
167
- try {
168
- while (task !== 'done') {
169
- if (task instanceof Error ||
170
- (task.task !== this.#init && this.#failure)) {
171
- await Promise.allSettled(pending); // avoid unhandled rejections
172
- throw this.#failure ?? task;
173
- }
174
- await executeTask(task);
175
- // await the next task.
176
- task = await this.#tasks.dequeue(timeoutTask, timeoutMs);
177
- }
178
- }
179
- finally {
180
- // Execute the cleanup task even on failure.
181
- if (this.#cleanup) {
182
- await executeTask({ task: this.#cleanup });
183
- }
184
- }
185
- lc.debug?.('worker done');
186
- return Promise.all(pending);
187
- }
188
- catch (e) {
189
- lc.error?.('error from worker', e);
190
- this.fail(e); // A failure in any worker should fail the pool.
191
- throw e;
192
- }
193
- };
194
- this.#workers.push(db.begin(this.#mode, worker).finally(() => this.#numWorkers--));
195
- // After adding the worker, enqueue a terminal signal if we are in either of the
196
- // terminal states (both of which prevent more tasks from being enqueued), to ensure
197
- // that the added worker eventually exits.
198
- if (this.#done) {
199
- void this.#tasks.enqueue('done');
200
- }
201
- if (this.#failure) {
202
- void this.#tasks.enqueue(this.#failure);
203
- }
204
- }
205
- process(task) {
206
- this.#trackAndProcess({ task: queuedStmt(task) });
207
- }
208
- #trackAndProcess(taskTracker) {
209
- assert(!this.#done, 'already set done');
210
- if (this.#failure) {
211
- taskTracker.resolver?.reject(this.#failure);
212
- return;
213
- }
214
- void this.#tasks.enqueue(taskTracker);
215
- // Check if the pool size can and should be increased.
216
- if (this.#numWorkers < this.#maxWorkers) {
217
- const outstanding = this.#tasks.size();
218
- if (outstanding > this.#numWorkers - this.#numWorking) {
219
- this.#db && this.#addWorker(this.#db);
220
- this.#numWorkers++;
221
- this.#lc.debug?.(`Increased pool size to ${this.#numWorkers}`);
222
- }
223
- }
224
- }
225
- processReadTask(readTask) {
226
- const r = resolver();
227
- this.#trackAndProcess({
228
- task: queuedRead(readTask),
229
- resolver: r,
230
- });
231
- return r.promise;
232
- }
233
- /**
234
- * Signals to all workers to end their transaction once all pending tasks have
235
- * been completed.
236
- */
237
- setDone() {
238
- assert(!this.#done, 'already set done');
239
- this.#done = true;
240
- for (let i = 0; i < this.#workers.length; i++) {
241
- void this.#tasks.enqueue('done');
242
- }
243
- }
244
- /**
245
- * An alternative to explicitly calling {@link setDone}, `ref()` increments an internal reference
246
- * count, and {@link unref} decrements it. When the reference count reaches 0, {@link setDone} is
247
- * automatically called. A TransactionPool is initialized with a reference count of 1.
248
- *
249
- * `ref()` should be called before sharing the pool with another component, and only after the
250
- * pool has been started with {@link run()}. It must not be called on a TransactionPool that is
251
- * already done (either via {@link unref()} or {@link setDone()}. (Doing so indicates a logical
252
- * error in the code.)
253
- *
254
- * It follows that:
255
- * * The creator of the TransactionPool is responsible for running it.
256
- * * The TransactionPool should be ref'ed before being sharing.
257
- * * The receiver of the TransactionPool is only responsible for unref'ing it.
258
- *
259
- * On the other hand, a transaction pool that fails with a runtime error can still be ref'ed;
260
- * attempts to use the pool will result in the runtime error as expected.
261
- */
262
- ref(count = 1) {
263
- assert(this.#db !== undefined && !this.#done, `Cannot ref() a TransactionPool that is not running`);
264
- this.#refCount += count;
265
- }
266
- /**
267
- * Decrements the internal reference count, automatically invoking {@link setDone} when it reaches 0.
268
- */
269
- unref(count = 1) {
270
- assert(count <= this.#refCount);
271
- this.#refCount -= count;
272
- if (this.#refCount === 0) {
273
- this.setDone();
274
- }
275
- }
276
- isRunning() {
277
- return this.#db !== undefined && !this.#done && this.#failure === undefined;
278
- }
279
- /**
280
- * Signals all workers to fail their transactions with the given {@link err}.
281
- */
282
- fail(err) {
283
- if (!this.#failure) {
284
- this.#failure = ensureError(err); // Fail fast: this is checked in the worker loop.
285
- if (this.#failure instanceof ControlFlowError) {
286
- this.#lc.debug?.(this.#failure);
287
- }
288
- else {
289
- this.#lc.error?.(this.#failure);
290
- }
291
- for (let i = 0; i < this.#workers.length; i++) {
292
- // Enqueue the Error to terminate any workers waiting for tasks.
293
- void this.#tasks.enqueue(this.#failure);
294
- }
295
- }
296
- }
297
- }
298
- /**
299
- * Init Tasks for Postgres snapshot synchronization across transactions.
300
- *
301
- * https://www.postgresql.org/docs/9.3/functions-admin.html#:~:text=Snapshot%20Synchronization%20Functions,identical%20content%20in%20the%20database.
302
- */
303
- export function synchronizedSnapshots() {
304
- const { promise: snapshotExported, resolve: exportSnapshot, reject: failExport, } = resolver();
305
- const { promise: snapshotCaptured, resolve: captureSnapshot, reject: failCapture, } = resolver();
306
- // Set by the first worker to run its initTask, who becomes responsible for
307
- // exporting the snapshot. TODO: Plumb the workerNum and use that instead.
308
- let firstWorkerRun = false;
309
- // Note: Neither init task should `await`, as processing in each pool can proceed
310
- // as soon as the statements have been sent to the db. However, the `cleanupExport`
311
- // task must `await` the result of `setSnapshot` to ensure that exporting transaction
312
- // does not close before the snapshot has been captured.
313
- return {
314
- exportSnapshot: tx => {
315
- if (!firstWorkerRun) {
316
- firstWorkerRun = true;
317
- const stmt = tx `SELECT pg_export_snapshot() AS snapshot; SET TRANSACTION READ ONLY;`.simple();
318
- // Intercept the promise to propagate the information to `snapshotExported`.
319
- stmt.then(result => exportSnapshot(result[0].snapshot), failExport);
320
- return [stmt]; // Also return the stmt so that it gets awaited (and errors handled).
321
- }
322
- return snapshotExported.then(snapshotID => [
323
- tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`),
324
- tx `SET TRANSACTION READ ONLY`.simple(),
325
- ]);
326
- },
327
- setSnapshot: tx => snapshotExported.then(snapshotID => {
328
- const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);
329
- // Intercept the promise to propagate the information to `cleanupExport`.
330
- stmt.then(captureSnapshot, failCapture);
331
- return [stmt];
332
- }),
333
- cleanupExport: async () => {
334
- await snapshotCaptured;
335
- return [];
336
- },
337
- snapshotID: snapshotExported,
338
- };
339
- }
340
- /**
341
- * Returns `init` and `cleanup` {@link Task}s for a TransactionPool that ensure its workers
342
- * share a single view of the database. This is used for View Notifier and View Syncer logic
343
- * that allows multiple entities to perform parallel reads on the same snapshot of the database.
344
- */
345
- export function sharedSnapshot() {
346
- const { promise: snapshotExported, resolve: exportSnapshot, reject: failExport, } = resolver();
347
- // Set by the first worker to run its initTask, who becomes responsible for
348
- // exporting the snapshot.
349
- let firstWorkerRun = false;
350
- // Set when any worker is done, signalling that all non-sentinel Tasks have been
351
- // dequeued, and thus any subsequently spawned workers should skip their initTask
352
- // since the snapshot is no longer needed (and soon to become invalid).
353
- let firstWorkerDone = false;
354
- return {
355
- init: (tx, lc) => {
356
- if (!firstWorkerRun) {
357
- firstWorkerRun = true;
358
- const stmt = tx `SELECT pg_export_snapshot() AS snapshot;`.simple();
359
- // Intercept the promise to propagate the information to `snapshotExported`.
360
- stmt.then(result => exportSnapshot(result[0].snapshot), failExport);
361
- return [stmt]; // Also return the stmt so that it gets awaited (and errors handled).
362
- }
363
- if (!firstWorkerDone) {
364
- return snapshotExported.then(snapshotID => [
365
- tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`),
366
- ]);
367
- }
368
- lc.debug?.('All work is done. No need to set snapshot');
369
- return [];
370
- },
371
- cleanup: () => {
372
- firstWorkerDone = true;
373
- return [];
374
- },
375
- snapshotID: snapshotExported,
376
- };
377
- }
378
- /**
379
- * @returns An `init` Task for importing a snapshot from another transaction.
380
- */
381
- export function importSnapshot(snapshotID) {
382
- const { promise: imported, resolve, reject } = resolver();
383
- return {
384
- init: tx => {
385
- const stmt = tx.unsafe(`SET TRANSACTION SNAPSHOT '${snapshotID}'`);
386
- stmt.then(() => resolve(), reject);
387
- return [stmt];
388
- },
389
- imported,
390
- };
391
- }
392
- /**
393
- * A superclass of Errors used for control flow that is needed to handle
394
- * another Error but does not constitute an error condition itself (e.g.
395
- * aborting transactions after a previous one fails). Subclassing this Error
396
- * will result in lowering the log level from `error` to `debug`.
397
- */
398
- export class ControlFlowError extends Error {
399
- constructor(err) {
400
- super();
401
- this.cause = err;
402
- }
403
- }
404
- function ensureError(err) {
405
- if (err instanceof Error) {
406
- return err;
407
- }
408
- const error = new Error();
409
- error.cause = err;
410
- return error;
411
- }
412
- // Internal classes for handling read and write tasks in the same queue.
413
- class Statements {
414
- stmts;
415
- constructor(stmts) {
416
- this.stmts = stmts;
417
- }
418
- }
419
- class ReadResult {
420
- result;
421
- constructor(result) {
422
- this.result = result;
423
- }
424
- }
425
- function queuedStmt(task) {
426
- return async (tx, lc) => new Statements(await task(tx, lc));
427
- }
428
- function queuedRead(task) {
429
- return async (tx, lc) => new ReadResult(await task(tx, lc));
430
- }
431
- const IDLE_TIMEOUT_MS = 5_000;
432
- const KEEPALIVE_TIMEOUT_MS = 60_000;
433
- const KEEPALIVE_TASK = tx => [tx `SELECT 1`.simple()];
434
- // Production timeout tasks. Overridden in tests.
435
- const TIMEOUT_TASKS = {
436
- forInitialWorkers: {
437
- timeoutMs: KEEPALIVE_TIMEOUT_MS,
438
- task: KEEPALIVE_TASK,
439
- },
440
- forExtraWorkers: {
441
- timeoutMs: IDLE_TIMEOUT_MS,
442
- task: 'done',
443
- },
444
- };
445
- //# sourceMappingURL=transaction-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-pool.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/transaction-pool.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { type Worker } from '../types/processes.js';
2
- export default function runWorker(parent: Worker): Promise<void>;
3
- //# sourceMappingURL=change-streamer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAM/B,wBAA8B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCrE"}
@@ -1,30 +0,0 @@
1
- import { must } from '../../../shared/src/must.js';
2
- import { getZeroConfig } from '../config/zero-config.js';
3
- import { ChangeStreamerHttpServer } from '../services/change-streamer/change-streamer-http.js';
4
- import { initializeStreamer } from '../services/change-streamer/change-streamer-service.js';
5
- import { initializeChangeSource } from '../services/change-streamer/pg/change-source.js';
6
- import { pgClient } from '../types/pg.js';
7
- import { parentWorker, singleProcessMode, } from '../types/processes.js';
8
- import { exitAfter, runUntilKilled } from './life-cycle.js';
9
- import { createLogContext } from './logging.js';
10
- const MAX_CHANGE_DB_CONNECTIONS = 5;
11
- export default async function runWorker(parent) {
12
- const config = await getZeroConfig();
13
- const lc = createLogContext(config.log, { worker: 'change-streamer' });
14
- // Kick off DB connection warmup in the background.
15
- const changeDB = pgClient(lc, config.changeDBConnStr, {
16
- max: MAX_CHANGE_DB_CONNECTIONS,
17
- });
18
- void Promise.allSettled(Array.from({ length: MAX_CHANGE_DB_CONNECTIONS }, () => changeDB `SELECT 1`.simple().execute()));
19
- // Note: This performs initial sync of the replica if necessary.
20
- const { changeSource, replicationConfig } = await initializeChangeSource(lc, config.upstreamDBConnStr, config.shard, config.replicaDBFile);
21
- const changeStreamer = await initializeStreamer(lc, changeDB, changeSource, replicationConfig);
22
- const changeStreamerWebServer = new ChangeStreamerHttpServer(lc, changeStreamer);
23
- parent.send(['ready', { ready: true }]);
24
- return runUntilKilled(lc, parent, changeStreamer, changeStreamerWebServer);
25
- }
26
- // fork()
27
- if (!singleProcessMode()) {
28
- exitAfter(runWorker(must(parentWorker)));
29
- }
30
- //# sourceMappingURL=change-streamer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,wDAAwD,CAAC;AAC1F,OAAO,EAAC,sBAAsB,EAAC,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAE9C,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IACpD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,iBAAiB,EAAC,CAAC,CAAC;IAErE,mDAAmD;IACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,eAAe,EAAE;QACpD,GAAG,EAAE,yBAAyB;KAC/B,CAAC,CAAC;IACH,KAAK,OAAO,CAAC,UAAU,CACrB,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,yBAAyB,EAAC,EAAE,GAAG,EAAE,CACnD,QAAQ,CAAA,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CACtC,CACF,CAAC;IAEF,gEAAgE;IAChE,MAAM,EAAC,YAAY,EAAE,iBAAiB,EAAC,GAAG,MAAM,sBAAsB,CACpE,EAAE,EACF,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,aAAa,CACrB,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,EAAE,EACF,QAAQ,EACR,YAAY,EACZ,iBAAiB,CAClB,CAAC;IAEF,MAAM,uBAAuB,GAAG,IAAI,wBAAwB,CAC1D,EAAE,EACF,cAAc,CACf,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAEtC,OAAO,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS;AACT,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACzB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,38 +0,0 @@
1
- import { LogContext } from '@rocicorp/logger';
2
- import type { EventEmitter } from 'stream';
3
- import type { SingletonService } from '../services/service.js';
4
- import type { Worker } from '../types/processes.js';
5
- /**
6
- * * `user-facing` workers serve external requests and are the first to
7
- * receive a `SIGTERM` or `SIGINT` signal for graceful shutdown.
8
- *
9
- * * `supporting` workers support `user-facing` workers and are sent
10
- * the `SIGTERM` signal only after all `user-facing` workers have
11
- * exited.
12
- *
13
- * For other kill signals, such as `SIGQUIT`, all workers
14
- * are stopped without draining. Additionally, if any worker exits
15
- * unexpectedly, all workers sent an immediate `SIGQUIT` signal.
16
- */
17
- export type WorkerType = 'user-facing' | 'supporting';
18
- export declare const GRACEFUL_SHUTDOWN: readonly ["SIGTERM", "SIGINT"];
19
- export declare const FORCEFUL_SHUTDOWN: readonly ["SIGQUIT"];
20
- /**
21
- * Handles termination signals and coordination of graceful shutdown.
22
- */
23
- export declare class Terminator {
24
- #private;
25
- constructor(lc: LogContext, proc?: EventEmitter, exit?: (code: number) => never);
26
- addWorker(worker: Worker, type: WorkerType): Worker;
27
- logErrorAndExit(err: unknown): never;
28
- }
29
- /**
30
- * Runs the specified services, stopping them on `SIGTERM` or `SIGINT` with
31
- * an optional {@link SingletonService.drain drain()}, or stopping them
32
- * without draining for `SIGQUIT`.
33
- *
34
- * @returns a Promise that resolves/rejects when any of the services stops/throws.
35
- */
36
- export declare function runUntilKilled(lc: LogContext, parent: Worker, ...services: SingletonService[]): Promise<void>;
37
- export declare function exitAfter(running: Promise<void>): void;
38
- //# sourceMappingURL=life-cycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"life-cycle.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/life-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAEtD,eAAO,MAAM,iBAAiB,gCAAiC,CAAC;AAChE,eAAO,MAAM,iBAAiB,sBAAuB,CAAC;AAEtD;;GAEG;AACH,qBAAa,UAAU;;gBASnB,EAAE,EAAE,UAAU,EAEd,IAAI,GAAE,YAAsB,EAC5B,IAAI,UAAU,MAAM,UAAuB;IA6B7C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAWnD,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK;CAkCrC;AAQD;;;;;;GAMG;AAEH,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,GAAG,QAAQ,EAAE,gBAAgB,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAK/C"}
@@ -1,110 +0,0 @@
1
- import { LogContext } from '@rocicorp/logger';
2
- export const GRACEFUL_SHUTDOWN = ['SIGTERM', 'SIGINT'];
3
- export const FORCEFUL_SHUTDOWN = ['SIGQUIT'];
4
- /**
5
- * Handles termination signals and coordination of graceful shutdown.
6
- */
7
- export class Terminator {
8
- #lc;
9
- #userFacing = new Set();
10
- #all = new Set();
11
- #exit;
12
- #drainStart = 0;
13
- constructor(lc,
14
- // testing hooks
15
- proc = process, exit = (code) => process.exit(code)) {
16
- this.#lc = lc.withContext('component', 'terminator');
17
- // Propagate `SIGTERM` and `SIGINT` to all user-facing workers,
18
- // initiating a graceful shutdown. The terminator process will
19
- // exit once all user-facing workers have exited ...
20
- for (const signal of GRACEFUL_SHUTDOWN) {
21
- proc.on(signal, () => {
22
- this.#drainStart = Date.now();
23
- kill(this.#userFacing, signal);
24
- });
25
- }
26
- // ... which will result in sending `SIGTERM` to the remaining workers.
27
- proc.on('exit', code => kill(this.#all, code === 0 ? GRACEFUL_SHUTDOWN[0] : FORCEFUL_SHUTDOWN[0]));
28
- // For other (catchable) kill signals, exit with a non-zero error code
29
- // to send a `SIGQUIT` to all workers. For this signal, workers are
30
- // stopped immediately without draining. See `runUntilKilled()`.
31
- for (const signal of FORCEFUL_SHUTDOWN) {
32
- proc.on(signal, () => exit(-1));
33
- }
34
- this.#exit = exit;
35
- }
36
- addWorker(worker, type) {
37
- if (type === 'user-facing') {
38
- this.#userFacing.add(worker);
39
- }
40
- this.#all.add(worker);
41
- worker.on('error', err => this.logErrorAndExit(err));
42
- worker.on('close', code => this.#onExit(code, worker, type));
43
- return worker;
44
- }
45
- logErrorAndExit(err) {
46
- this.#lc.error?.(`shutting down for error`, err);
47
- this.#exit(-1);
48
- }
49
- #onExit(code, worker, type) {
50
- if (code !== 0) {
51
- this.#lc.error?.(`shutting down because worker exited with code ${code}`);
52
- return this.#exit(code);
53
- }
54
- if (type === 'supporting') {
55
- this.#lc.error?.(`shutting down because supporting worker exited with code ${code}`);
56
- return this.#exit(-1);
57
- }
58
- if (this.#drainStart === 0) {
59
- this.#lc.error?.(`shutting down because user-facing worker exited before SIGTERM`);
60
- return this.#exit(-1);
61
- }
62
- // user-facing worker finished draining.
63
- this.#userFacing.delete(worker);
64
- this.#all.delete(worker);
65
- if (this.#userFacing.size === 0) {
66
- this.#lc.info?.(`all user-facing workers drained (${Date.now() - this.#drainStart} ms)`);
67
- return this.#exit(0);
68
- }
69
- }
70
- }
71
- function kill(workers, signal) {
72
- for (const worker of workers) {
73
- worker.kill(signal);
74
- }
75
- }
76
- /**
77
- * Runs the specified services, stopping them on `SIGTERM` or `SIGINT` with
78
- * an optional {@link SingletonService.drain drain()}, or stopping them
79
- * without draining for `SIGQUIT`.
80
- *
81
- * @returns a Promise that resolves/rejects when any of the services stops/throws.
82
- */
83
- export async function runUntilKilled(lc, parent, ...services) {
84
- for (const signal of [...GRACEFUL_SHUTDOWN, ...FORCEFUL_SHUTDOWN]) {
85
- parent.once(signal, () => {
86
- const GRACEFUL_SIGNALS = GRACEFUL_SHUTDOWN;
87
- services.forEach(async (svc) => {
88
- if (GRACEFUL_SIGNALS.includes(signal) && svc.drain) {
89
- lc.info?.(`draining ${svc.constructor.name} (${svc.id})`);
90
- await svc.drain();
91
- }
92
- lc.info?.(`stopping ${svc.constructor.name} (${svc.id}) for ${signal}`);
93
- await svc.stop();
94
- });
95
- });
96
- }
97
- try {
98
- // Run all services and resolve when any of them stops.
99
- const svc = await Promise.race(services.map(svc => svc.run().then(() => svc)));
100
- lc.info?.(`${svc.constructor.name} (${svc.id}) stopped`);
101
- }
102
- catch (e) {
103
- lc.error?.(`exiting on error`, e);
104
- throw e;
105
- }
106
- }
107
- export function exitAfter(running) {
108
- void running.then(() => process.exit(0), () => process.exit(-1));
109
- }
110
- //# sourceMappingURL=life-cycle.js.map