@rocicorp/zero 0.0.202410041744 → 0.2.2024101100

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 (383) hide show
  1. package/out/btree/src/mod.d.ts +2 -0
  2. package/out/btree/src/mod.d.ts.map +1 -0
  3. package/out/btree/src/mod.js +2 -0
  4. package/out/btree/src/mod.js.map +1 -0
  5. package/out/datadog/src/mod.js +2 -0
  6. package/out/datadog/src/mod.js.map +1 -0
  7. package/out/react.js +9 -3
  8. package/out/react.js.map +3 -3
  9. package/out/replicache/src/btree/node.d.ts.map +1 -1
  10. package/out/replicache/src/config.d.ts.map +1 -1
  11. package/out/replicache/src/connection-loop.d.ts.map +1 -1
  12. package/out/replicache/src/cookies.d.ts.map +1 -1
  13. package/out/replicache/src/dag/gc.d.ts.map +1 -1
  14. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
  15. package/out/replicache/src/db/scan.d.ts.map +1 -1
  16. package/out/replicache/src/frozen-json.d.ts.map +1 -1
  17. package/out/replicache/src/get-default-puller.d.ts.map +1 -1
  18. package/out/replicache/src/hash.d.ts.map +1 -1
  19. package/out/replicache/src/http-request-info.d.ts.map +1 -1
  20. package/out/replicache/src/index-defs.d.ts.map +1 -1
  21. package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
  22. package/out/replicache/src/kv/store.d.ts.map +1 -1
  23. package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -1
  24. package/out/replicache/src/mod.d.ts.map +1 -1
  25. package/out/replicache/src/mutation-recovery.d.ts.map +1 -1
  26. package/out/replicache/src/patch-operation.d.ts.map +1 -1
  27. package/out/replicache/src/pending-mutations.d.ts.map +1 -1
  28. package/out/replicache/src/persist/client-groups.d.ts.map +1 -1
  29. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  30. package/out/replicache/src/puller.d.ts.map +1 -1
  31. package/out/replicache/src/replicache-impl.d.ts +0 -1
  32. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  33. package/out/replicache/src/replicache.d.ts.map +1 -1
  34. package/out/replicache/src/scan-iterator.d.ts.map +1 -1
  35. package/out/replicache/src/subscriptions.d.ts +1 -1
  36. package/out/replicache/src/subscriptions.d.ts.map +1 -1
  37. package/out/replicache/src/sync/ids.d.ts.map +1 -1
  38. package/out/replicache/src/sync/patch.d.ts.map +1 -1
  39. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  40. package/out/replicache/src/sync/push.d.ts.map +1 -1
  41. package/out/replicache/src/sync/request-id.d.ts.map +1 -1
  42. package/out/replicache/src/transactions.d.ts.map +1 -1
  43. package/out/replicache/src/types.d.ts.map +1 -1
  44. package/out/shared/src/browser-env.d.ts +4 -2
  45. package/out/shared/src/browser-env.d.ts.map +1 -1
  46. package/out/shared/src/h64-with-reverse.d.ts +6 -0
  47. package/out/shared/src/h64-with-reverse.d.ts.map +1 -0
  48. package/out/shared/src/h64-with-reverse.js +13 -0
  49. package/out/shared/src/h64-with-reverse.js.map +1 -0
  50. package/out/shared/src/reverse-string.d.ts +2 -0
  51. package/out/shared/src/reverse-string.d.ts.map +1 -0
  52. package/out/shared/src/reverse-string.js +8 -0
  53. package/out/shared/src/reverse-string.js.map +1 -0
  54. package/out/zero/src/cli.js +0 -0
  55. package/out/zero/src/react.d.ts +1 -1
  56. package/out/zero/src/react.d.ts.map +1 -1
  57. package/out/zero/src/server/change-streamer.d.ts.map +1 -1
  58. package/out/zero/src/server/change-streamer.js.map +1 -1
  59. package/out/zero/src/server/main.d.ts.map +1 -1
  60. package/out/zero/src/server/main.js.map +1 -1
  61. package/out/zero/src/server/replicator.d.ts.map +1 -1
  62. package/out/zero/src/server/replicator.js.map +1 -1
  63. package/out/zero/src/server/syncer.d.ts.map +1 -1
  64. package/out/zero/src/server/syncer.js.map +1 -1
  65. package/out/zero/src/zero.d.ts +1 -1
  66. package/out/zero/src/zero.d.ts.map +1 -1
  67. package/out/zero-cache/src/config/zero-config.d.ts +46 -21
  68. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  69. package/out/zero-cache/src/config/zero-config.js +38 -20
  70. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  71. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  72. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  73. package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
  74. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  75. package/out/zero-cache/src/db/migration.d.ts.map +1 -1
  76. package/out/zero-cache/src/db/migration.js.map +1 -1
  77. package/out/zero-cache/src/db/statements.d.ts +2 -0
  78. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  79. package/out/zero-cache/src/db/statements.js +6 -0
  80. package/out/zero-cache/src/db/statements.js.map +1 -1
  81. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  82. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  83. package/out/zero-cache/src/server/change-streamer.js +5 -5
  84. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  85. package/out/zero-cache/src/server/life-cycle.d.ts +38 -0
  86. package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -0
  87. package/out/zero-cache/src/server/life-cycle.js +125 -0
  88. package/out/zero-cache/src/server/life-cycle.js.map +1 -0
  89. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  90. package/out/zero-cache/src/server/logging.js +43 -4
  91. package/out/zero-cache/src/server/logging.js.map +1 -1
  92. package/out/zero-cache/src/server/main.js +18 -16
  93. package/out/zero-cache/src/server/main.js.map +1 -1
  94. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  95. package/out/zero-cache/src/server/replicator.js +12 -11
  96. package/out/zero-cache/src/server/replicator.js.map +1 -1
  97. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  98. package/out/zero-cache/src/server/syncer.js +9 -8
  99. package/out/zero-cache/src/server/syncer.js.map +1 -1
  100. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +3 -3
  101. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  102. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +11 -10
  103. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  104. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +2 -2
  105. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  106. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +4 -4
  107. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  108. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +2 -2
  109. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  110. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
  111. package/out/zero-cache/src/services/change-streamer/pg/change-source.js +10 -5
  112. package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
  113. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -1
  114. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +6 -6
  115. package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -1
  116. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +1 -1
  117. package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +1 -1
  118. package/out/zero-cache/src/services/change-streamer/pg/lsn.js +1 -1
  119. package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +1 -1
  120. package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +1 -1
  121. package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +1 -1
  122. package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +1 -1
  123. package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +1 -1
  124. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +1 -1
  125. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -1
  126. package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -1
  127. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +3 -2
  128. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +1 -1
  129. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +20 -68
  130. package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +1 -1
  131. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +1 -1
  132. package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -1
  133. package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -1
  134. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +1 -1
  135. package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -1
  136. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +1 -1
  137. package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -1
  138. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +2 -2
  139. package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -1
  140. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +1 -1
  141. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  142. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  143. package/out/zero-cache/src/services/change-streamer/storer.d.ts +1 -1
  144. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  145. package/out/zero-cache/src/services/change-streamer/storer.js +1 -1
  146. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  147. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +1 -1
  148. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  149. package/out/zero-cache/src/services/change-streamer/subscriber.js +1 -1
  150. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  151. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +1 -0
  152. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
  153. package/out/zero-cache/src/services/dispatcher/connect-params.js +3 -1
  154. package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
  155. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +1 -1
  156. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -1
  157. package/out/zero-cache/src/services/dispatcher/dispatcher.js +2 -6
  158. package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -1
  159. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +1 -1
  160. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +15 -8
  161. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  162. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +8 -4
  163. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  164. package/out/zero-cache/src/services/mutagen/mutagen.js +25 -16
  165. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  166. package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -1
  167. package/out/zero-cache/src/services/mutagen/write-authorizer.js +1 -1
  168. package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
  169. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +8 -7
  170. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  171. package/out/zero-cache/src/services/replicator/incremental-sync.js +88 -57
  172. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  173. package/out/zero-cache/src/services/replicator/replicator.d.ts +4 -13
  174. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  175. package/out/zero-cache/src/services/replicator/replicator.js +2 -2
  176. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  177. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +7 -7
  178. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  179. package/out/zero-cache/src/services/replicator/schema/change-log.js +3 -3
  180. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  181. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +1 -1
  182. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  183. package/out/zero-cache/src/services/replicator/schema/replication-state.js +1 -1
  184. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  185. package/out/zero-cache/src/services/runner.d.ts +2 -5
  186. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  187. package/out/zero-cache/src/services/runner.js +4 -22
  188. package/out/zero-cache/src/services/runner.js.map +1 -1
  189. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  190. package/out/zero-cache/src/services/running-state.js +3 -3
  191. package/out/zero-cache/src/services/running-state.js.map +1 -1
  192. package/out/zero-cache/src/services/service.d.ts +8 -0
  193. package/out/zero-cache/src/services/service.d.ts.map +1 -1
  194. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -2
  195. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  196. package/out/zero-cache/src/services/view-syncer/client-handler.js +14 -3
  197. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  198. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  199. package/out/zero-cache/src/services/view-syncer/cvr-store.js +1 -1
  200. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  201. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
  202. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  203. package/out/zero-cache/src/services/view-syncer/cvr.js +1 -1
  204. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  205. package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -1
  206. package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
  207. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +12 -9
  208. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  209. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +33 -23
  210. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  211. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +1 -1
  212. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  213. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
  214. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  215. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +30 -14
  216. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  217. package/out/zero-cache/src/services/view-syncer/snapshotter.js +38 -37
  218. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  219. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -0
  220. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  221. package/out/zero-cache/src/services/view-syncer/view-syncer.js +28 -44
  222. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  223. package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -1
  224. package/out/zero-cache/src/types/bigint-json.js.map +1 -1
  225. package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -1
  226. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  227. package/out/zero-cache/src/types/lite.d.ts +30 -8
  228. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  229. package/out/zero-cache/src/types/lite.js +114 -15
  230. package/out/zero-cache/src/types/lite.js.map +1 -1
  231. package/out/zero-cache/src/types/pg.d.ts +21 -0
  232. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  233. package/out/zero-cache/src/types/pg.js +49 -6
  234. package/out/zero-cache/src/types/pg.js.map +1 -1
  235. package/out/zero-cache/src/types/processes.d.ts +1 -1
  236. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  237. package/out/zero-cache/src/types/processes.js +8 -14
  238. package/out/zero-cache/src/types/processes.js.map +1 -1
  239. package/out/zero-cache/src/types/row-key.d.ts +4 -1
  240. package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
  241. package/out/zero-cache/src/types/row-key.js +5 -14
  242. package/out/zero-cache/src/types/row-key.js.map +1 -1
  243. package/out/zero-cache/src/types/schema-versions.d.ts +8 -0
  244. package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -0
  245. package/out/zero-cache/src/types/schema-versions.js +21 -0
  246. package/out/zero-cache/src/types/schema-versions.js.map +1 -0
  247. package/out/zero-cache/src/types/streams.d.ts +2 -2
  248. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  249. package/out/zero-cache/src/types/streams.js +36 -26
  250. package/out/zero-cache/src/types/streams.js.map +1 -1
  251. package/out/zero-cache/src/types/timeout.js.map +1 -1
  252. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  253. package/out/zero-cache/src/workers/connection.js +6 -6
  254. package/out/zero-cache/src/workers/connection.js.map +1 -1
  255. package/out/zero-cache/src/workers/replicator.d.ts +4 -4
  256. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  257. package/out/zero-cache/src/workers/replicator.js +3 -31
  258. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  259. package/out/zero-cache/src/workers/syncer.d.ts +12 -4
  260. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  261. package/out/zero-cache/src/workers/syncer.js +34 -2
  262. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  263. package/out/zero-client/src/client/context.d.ts +4 -4
  264. package/out/zero-client/src/client/context.d.ts.map +1 -1
  265. package/out/zero-client/src/client/crud.d.ts +20 -18
  266. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  267. package/out/zero-client/src/client/keys.d.ts +2 -2
  268. package/out/zero-client/src/client/keys.d.ts.map +1 -1
  269. package/out/zero-client/src/client/log-options.d.ts +1 -1
  270. package/out/zero-client/src/client/log-options.d.ts.map +1 -1
  271. package/out/zero-client/src/client/make-id-from-primary-key.d.ts +5 -0
  272. package/out/zero-client/src/client/make-id-from-primary-key.d.ts.map +1 -0
  273. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  274. package/out/zero-client/src/client/options.d.ts +1 -1
  275. package/out/zero-client/src/client/options.d.ts.map +1 -1
  276. package/out/zero-client/src/client/query-manager.d.ts +5 -3
  277. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  278. package/out/zero-client/src/client/replicache-types.d.ts +1 -1
  279. package/out/zero-client/src/client/replicache-types.d.ts.map +1 -1
  280. package/out/zero-client/src/client/server-error.d.ts.map +1 -1
  281. package/out/zero-client/src/client/server-option.d.ts.map +1 -1
  282. package/out/zero-client/src/client/zero-poke-handler.d.ts +5 -4
  283. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  284. package/out/zero-client/src/client/zero.d.ts +3 -3
  285. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  286. package/out/zero-client/src/mod.d.ts +2 -2
  287. package/out/zero-client/src/mod.d.ts.map +1 -1
  288. package/out/zero-client/src/util/socket.d.ts.map +1 -1
  289. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  290. package/out/zero-protocol/src/ast.js +5 -8
  291. package/out/zero-protocol/src/ast.js.map +1 -1
  292. package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
  293. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  294. package/out/zero-protocol/src/clients-patch.d.ts.map +1 -1
  295. package/out/zero-protocol/src/clients-patch.js.map +1 -1
  296. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  297. package/out/zero-protocol/src/connect.js.map +1 -1
  298. package/out/zero-protocol/src/delete-clients.d.ts.map +1 -1
  299. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  300. package/out/zero-protocol/src/down.d.ts +9 -5
  301. package/out/zero-protocol/src/down.d.ts.map +1 -1
  302. package/out/zero-protocol/src/down.js.map +1 -1
  303. package/out/zero-protocol/src/entities-patch.d.ts +15 -15
  304. package/out/zero-protocol/src/entities-patch.d.ts.map +1 -1
  305. package/out/zero-protocol/src/entities-patch.js +5 -4
  306. package/out/zero-protocol/src/entities-patch.js.map +1 -1
  307. package/out/zero-protocol/src/error.d.ts +2 -1
  308. package/out/zero-protocol/src/error.d.ts.map +1 -1
  309. package/out/zero-protocol/src/error.js +2 -1
  310. package/out/zero-protocol/src/error.js.map +1 -1
  311. package/out/zero-protocol/src/ping.d.ts.map +1 -1
  312. package/out/zero-protocol/src/ping.js.map +1 -1
  313. package/out/zero-protocol/src/poke.d.ts +18 -10
  314. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  315. package/out/zero-protocol/src/poke.js +4 -0
  316. package/out/zero-protocol/src/poke.js.map +1 -1
  317. package/out/zero-protocol/src/pong.d.ts.map +1 -1
  318. package/out/zero-protocol/src/pong.js.map +1 -1
  319. package/out/zero-protocol/src/primary-key.d.ts +9 -0
  320. package/out/zero-protocol/src/primary-key.d.ts.map +1 -0
  321. package/out/zero-protocol/src/primary-key.js +7 -0
  322. package/out/zero-protocol/src/primary-key.js.map +1 -0
  323. package/out/zero-protocol/src/pull.d.ts.map +1 -1
  324. package/out/zero-protocol/src/pull.js.map +1 -1
  325. package/out/zero-protocol/src/push.d.ts +53 -53
  326. package/out/zero-protocol/src/push.d.ts.map +1 -1
  327. package/out/zero-protocol/src/push.js +5 -5
  328. package/out/zero-protocol/src/push.js.map +1 -1
  329. package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
  330. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  331. package/out/zero-protocol/src/up.d.ts +8 -8
  332. package/out/zero-protocol/src/up.d.ts.map +1 -1
  333. package/out/zero-protocol/src/up.js.map +1 -1
  334. package/out/zero-protocol/src/version.d.ts.map +1 -1
  335. package/out/zero-protocol/src/version.js.map +1 -1
  336. package/out/zero-react/src/use-query.d.ts +1 -1
  337. package/out/zero-react/src/use-query.d.ts.map +1 -1
  338. package/out/zero-react/src/use-zero.d.ts +1 -1
  339. package/out/zero-react/src/use-zero.d.ts.map +1 -1
  340. package/out/zero.js +294 -124
  341. package/out/zero.js.map +4 -4
  342. package/out/zql/src/zql/ast/ast.js.map +1 -1
  343. package/out/zql/src/zql/builder/builder.d.ts.map +1 -1
  344. package/out/zql/src/zql/builder/builder.js.map +1 -1
  345. package/out/zql/src/zql/builder/filter.js.map +1 -1
  346. package/out/zql/src/zql/builder/like.js.map +1 -1
  347. package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -1
  348. package/out/zql/src/zql/ivm/data.d.ts.map +1 -1
  349. package/out/zql/src/zql/ivm/data.js +1 -1
  350. package/out/zql/src/zql/ivm/data.js.map +1 -1
  351. package/out/zql/src/zql/ivm/filter.js.map +1 -1
  352. package/out/zql/src/zql/ivm/join.js.map +1 -1
  353. package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -1
  354. package/out/zql/src/zql/ivm/memory-source.js +1 -1
  355. package/out/zql/src/zql/ivm/memory-source.js.map +1 -1
  356. package/out/zql/src/zql/ivm/memory-storage.d.ts.map +1 -1
  357. package/out/zql/src/zql/ivm/operator.d.ts.map +1 -1
  358. package/out/zql/src/zql/ivm/schema.d.ts +1 -1
  359. package/out/zql/src/zql/ivm/schema.d.ts.map +1 -1
  360. package/out/zql/src/zql/ivm/schema.js.map +1 -1
  361. package/out/zql/src/zql/ivm/skip.js.map +1 -1
  362. package/out/zql/src/zql/ivm/take.js.map +1 -1
  363. package/out/zql/src/zql/query/query-impl.d.ts +4 -1
  364. package/out/zql/src/zql/query/query-impl.d.ts.map +1 -1
  365. package/out/zql/src/zql/query/query.d.ts +2 -1
  366. package/out/zql/src/zql/query/query.d.ts.map +1 -1
  367. package/out/zql/src/zql/query/typed-view.d.ts.map +1 -1
  368. package/out/zqlite/src/db.js +1 -1
  369. package/out/zqlite/src/db.js.map +1 -1
  370. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  371. package/out/zqlite/src/table-source.d.ts +1 -1
  372. package/out/zqlite/src/table-source.d.ts.map +1 -1
  373. package/out/zqlite/src/table-source.js +36 -33
  374. package/out/zqlite/src/table-source.js.map +1 -1
  375. package/package.json +10 -6
  376. package/out/zero-cache/src/services/replicator/checkpointer.d.ts +0 -79
  377. package/out/zero-cache/src/services/replicator/checkpointer.d.ts.map +0 -1
  378. package/out/zero-cache/src/services/replicator/checkpointer.js +0 -124
  379. package/out/zero-cache/src/services/replicator/checkpointer.js.map +0 -1
  380. package/out/zero-protocol/src/entity.d.ts +0 -9
  381. package/out/zero-protocol/src/entity.d.ts.map +0 -1
  382. package/out/zero-protocol/src/entity.js +0 -8
  383. package/out/zero-protocol/src/entity.js.map +0 -1
@@ -3,7 +3,7 @@ import { must } from '../../shared/src/must.js';
3
3
  import { assertOrderingIncludesPK } from '../../zql/src/zql/builder/builder.js';
4
4
  import { makeComparator, } from '../../zql/src/zql/ivm/data.js';
5
5
  import { generateWithOverlay, generateWithStart, } from '../../zql/src/zql/ivm/memory-source.js';
6
- import { Database, Statement } from '../../zqlite/src/db.js';
6
+ import { Database, Statement } from './db.js';
7
7
  import { compile, format, sql } from './internal/sql.js';
8
8
  import { StatementCache } from './internal/statement-cache.js';
9
9
  /**
@@ -59,12 +59,15 @@ export class TableSource {
59
59
  : undefined,
60
60
  checkExists: db.prepare(compile(sql `SELECT 1 AS "exists" FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map(k => sql `${sql.ident(k)}=?`), sql ` AND `)} LIMIT 1`)),
61
61
  getRow: db
62
- .prepare(compile(sql `SELECT * FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map(k => sql `${sql.ident(k)}=?`), sql ` AND`)}`))
62
+ .prepare(compile(sql `SELECT ${this.#allColumns} FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map(k => sql `${sql.ident(k)}=?`), sql ` AND`)}`))
63
63
  .safeIntegers(true),
64
64
  };
65
65
  this.#dbCache.set(db, stmts);
66
66
  return stmts;
67
67
  }
68
+ get #allColumns() {
69
+ return sql.join(Object.keys(this.#columns).map(c => sql.ident(c)), sql `,`);
70
+ }
68
71
  #getSchema(connection) {
69
72
  return {
70
73
  tableName: this.#table,
@@ -121,7 +124,7 @@ export class TableSource {
121
124
  */
122
125
  if (start?.basis === 'before') {
123
126
  assert(beforeRequest === undefined, 'Before should only be converted once.');
124
- const preSql = requestToSQL(this.#table, req.constraint, req.start !== undefined
127
+ const preSql = this.#requestToSQL(req.constraint, req.start !== undefined
125
128
  ? {
126
129
  from: req.start.row,
127
130
  direction: req.start.basis === 'before' ? 'before' : 'after',
@@ -139,7 +142,7 @@ export class TableSource {
139
142
  yield* this.#fetch(newReq, connection, req);
140
143
  }
141
144
  else {
142
- const query = requestToSQL(this.#table, req.constraint, req.start !== undefined
145
+ const query = this.#requestToSQL(req.constraint, req.start !== undefined
143
146
  ? {
144
147
  from: req.start.row,
145
148
  direction: req.start.basis === 'before' ? 'before' : 'after',
@@ -238,39 +241,39 @@ export class TableSource {
238
241
  }
239
242
  return row;
240
243
  }
241
- }
242
- function requestToSQL(table, constraint, cursor, filters, order) {
243
- let query = sql `SELECT * FROM ${sql.ident(table)}`;
244
- const constraints = [];
245
- if (constraint) {
246
- constraints.push(sql `${sql.ident(constraint.key)} = ${constraint.value}`);
247
- }
248
- if (cursor) {
249
- constraints.push(gatherStartConstraints(cursor, order));
250
- }
251
- for (const filter of filters) {
252
- const { op } = filter;
253
- if (op === 'IN' || op === 'NOT IN') {
254
- constraints.push(sql `${sql.ident(filter.field)} ${sql.__dangerous__rawValue(filter.op)} (SELECT value FROM json_each(${JSON.stringify(filter.value)}))`);
244
+ #requestToSQL(constraint, cursor, filters, order) {
245
+ let query = sql `SELECT ${this.#allColumns} FROM ${sql.ident(this.#table)}`;
246
+ const constraints = [];
247
+ if (constraint) {
248
+ constraints.push(sql `${sql.ident(constraint.key)} = ${constraint.value}`);
249
+ }
250
+ if (cursor) {
251
+ constraints.push(gatherStartConstraints(cursor, order));
252
+ }
253
+ for (const filter of filters) {
254
+ const { op } = filter;
255
+ if (op === 'IN' || op === 'NOT IN') {
256
+ constraints.push(sql `${sql.ident(filter.field)} ${sql.__dangerous__rawValue(filter.op)} (SELECT value FROM json_each(${JSON.stringify(filter.value)}))`);
257
+ }
258
+ else {
259
+ constraints.push(sql `${sql.ident(filter.field)} ${sql.__dangerous__rawValue(filter.op === 'ILIKE'
260
+ ? 'LIKE'
261
+ : filter.op === 'NOT ILIKE'
262
+ ? 'NOT LIKE'
263
+ : filter.op)} ${filter.value}`);
264
+ }
265
+ }
266
+ if (constraints.length > 0) {
267
+ query = sql `${query} WHERE ${sql.join(constraints, sql ` AND `)}`;
268
+ }
269
+ if (cursor?.direction === 'before') {
270
+ query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1] === 'asc' ? 'desc' : 'asc')}`), sql `, `)}`;
255
271
  }
256
272
  else {
257
- constraints.push(sql `${sql.ident(filter.field)} ${sql.__dangerous__rawValue(filter.op === 'ILIKE'
258
- ? 'LIKE'
259
- : filter.op === 'NOT ILIKE'
260
- ? 'NOT LIKE'
261
- : filter.op)} ${filter.value}`);
273
+ query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1])}`), sql `, `)}`;
262
274
  }
275
+ return query;
263
276
  }
264
- if (constraints.length > 0) {
265
- query = sql `${query} WHERE ${sql.join(constraints, sql ` AND `)}`;
266
- }
267
- if (cursor?.direction === 'before') {
268
- query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1] === 'asc' ? 'desc' : 'asc')}`), sql `, `)}`;
269
- }
270
- else {
271
- query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1])}`), sql `, `)}`;
272
- }
273
- return query;
274
277
  }
275
278
  /**
276
279
  * The ordering could be complex such as:
@@ -1 +1 @@
1
- {"version":3,"file":"table-source.js","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-source.js","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@rocicorp/zero",
3
- "version": "0.0.202410041744+c31257",
3
+ "version": "0.2.2024101100+12f1bf",
4
4
  "scripts": {
5
5
  "prepack": "rm -rf deps && mkdir -p deps/sqlite3 && cp -r ../../deps/sqlite3/* deps/sqlite3/",
6
6
  "preinstall": "node tool/install-sqlite3.js",
7
7
  "build": "rm -rf out && npm run build-server && npm run build-client",
8
8
  "build-client": "tsc -p tsconfig.client.json && tsc-alias -p tsconfig.client.json && node tool/build.js",
9
- "build-server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json",
10
- "check-types": "tsc --noEmit",
11
- "check-types:watch": "tsc --noEmit --watch",
9
+ "build-server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json && chmod +x out/zero/src/cli.js",
10
+ "check-types": "tsc",
11
+ "check-types:watch": "tsc --watch",
12
12
  "format": "prettier --write .",
13
13
  "check-format": "prettier --check .",
14
14
  "lint": "eslint --ext .ts,.tsx,.js,.jsx src/"
@@ -20,9 +20,10 @@
20
20
  "@drdgvhbh/postgres-error-codes": "^0.0.6",
21
21
  "@fastify/cors": "^10.0.0",
22
22
  "@fastify/websocket": "^11.0.0",
23
+ "@google-cloud/precise-date": "^4.0.0",
23
24
  "@postgresql-typed/oids": "^0.2.0",
24
25
  "@rocicorp/lock": "^1.0.4",
25
- "@rocicorp/logger": "^5.2.2",
26
+ "@rocicorp/logger": "^5.3.0",
26
27
  "@rocicorp/resolver": "^1.0.2",
27
28
  "compare-utf8": "^0.1.1",
28
29
  "dotenv": "^16.4.5",
@@ -68,6 +69,9 @@
68
69
  "bin": {
69
70
  "zero-cache": "./out/zero/src/cli.js"
70
71
  },
72
+ "engines": {
73
+ "node": ">=20"
74
+ },
71
75
  "files": [
72
76
  "out",
73
77
  "!*.tsbuildinfo",
@@ -75,7 +79,7 @@
75
79
  "tool/install-sqlite3.js"
76
80
  ],
77
81
  "eslintConfig": {
78
- "extends": "@rocicorp/eslint-config"
82
+ "extends": "../../eslint-config.json"
79
83
  },
80
84
  "prettier": "@rocicorp/prettier-config"
81
85
  }
@@ -1,79 +0,0 @@
1
- import { LogContext } from '@rocicorp/logger';
2
- import { Notifier } from './notifier.js';
3
- /**
4
- * A `Checkpointer` is consulted by the Replicator after each commit and given
5
- * the opportunity to perform a blocking WAL checkpoint before the Replicator
6
- * continues processing the replication stream.
7
- */
8
- export interface Checkpointer {
9
- maybeCheckpoint(numCommittedChanges: number, notifier: Notifier): Promise<void>;
10
- stop(): void;
11
- }
12
- /**
13
- * The `NULL_CHECKPOINTER` is suitable for an environment in which checkpoints are
14
- * handled by an external entity, such as a `litestream replicate` process.
15
- */
16
- export declare const NULL_CHECKPOINTER: Checkpointer;
17
- export type CheckpointerConfig = {
18
- /**
19
- * The number of outstanding frames or changes at which a blocking
20
- * checkpoint is triggered.
21
- *
22
- * Defaults to 200.
23
- */
24
- threshold?: number;
25
- /**
26
- * The base timeout to block on an active checkpoint. This timeout is increased
27
- * in proportion to the size of WAL divided by the `threshold`. For example, if
28
- * the size of the WAL is twice the `threshold`, the timeout will be doubled.
29
- *
30
- * This dynamic timeout algorithm reduces the amount of system-wide pausing in
31
- * the common case, even in the presence of occasional, long-held locks due to
32
- * events like a long hydration. If checkpoint is not able to start within the
33
- * timeout, the checkpointer gives up and allows the system to progress. As the
34
- * size of the WAL grows, the checkpointer will wait for longer timeouts to ensure
35
- * that the checkpointing eventually succeeds.
36
- *
37
- * Defaults to 200 milliseconds.
38
- */
39
- baseCheckpointTimeoutMs?: number;
40
- /**
41
- * A regular interval at which passive checkpoints are attempted. This allows an
42
- * idle task (i.e. no sync connections) to clean up outside of the
43
- * replication path.
44
- *
45
- * Defaults to one minute.
46
- */
47
- passiveCheckpointPeriodMs?: number;
48
- };
49
- /**
50
- * The `WALCheckpointer` executes checkpoints when the number of WAL log entries
51
- * exceeds a configurable threshold. It does this by:
52
- *
53
- * 1. Broadcasting a `maintenance` ReplicaState message to signal view-syncers to
54
- * release their locks.
55
- * 2. Executing `wal_checkpoint(TRUNCATE)` with a busy_timeout proportional to
56
- * the outstanding log size.
57
- * 3. Broadcasting a `version-ready` ReplicaState message to signal view-syncers to
58
- * reestablish their locks.
59
- *
60
- * Points of interest:
61
- *
62
- * * The checkpointer waits for the `maintenance` broadcast to be sent to over
63
- * IPC channels (in-process blocking), but does not request or wait for ACKs from
64
- * the view syncers. This is because the `wal_checkpoint(TRUNCATE)` command itself
65
- * will block until all read locks are released, up to the configured `busy_timeout`.
66
- *
67
- * * After performing the checkpoint, however, the checkpointer _does_ request ACKs
68
- * from view-syncers to confirm that they have reestablished their snapshots. There
69
- * is otherwise no way to know when it is safe to continue replication. This is
70
- * expected to be very fast, but to avoid pathological cases the wait is capped at
71
- * 100ms.
72
- */
73
- export declare class WALCheckpointer implements Checkpointer {
74
- #private;
75
- constructor(lc: LogContext, replicaDbFile: string, cfg?: CheckpointerConfig);
76
- stop(): void;
77
- maybeCheckpoint(changes: number, notifier: Notifier): Promise<void>;
78
- }
79
- //# sourceMappingURL=checkpointer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpointer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/checkpointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe,CACb,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAGtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAgB,YAAW,YAAY;;gBAWhD,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,kBAAuB;IA4B9B,IAAI;IAKE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;CAwE1D"}
@@ -1,124 +0,0 @@
1
- import { LogContext } from '@rocicorp/logger';
2
- import { assert } from '../../../../shared/src/asserts.js';
3
- import { randInt } from '../../../../shared/src/rand.js';
4
- import { promiseVoid } from '../../../../shared/src/resolved-promises.js';
5
- import { orTimeout } from '../../../../zero-cache/src/types/timeout.js';
6
- import { Database } from '../../../../zqlite/src/db.js';
7
- import { Notifier } from './notifier.js';
8
- /**
9
- * The `NULL_CHECKPOINTER` is suitable for an environment in which checkpoints are
10
- * handled by an external entity, such as a `litestream replicate` process.
11
- */
12
- export const NULL_CHECKPOINTER = {
13
- maybeCheckpoint: () => promiseVoid,
14
- stop: () => { },
15
- };
16
- /**
17
- * The `WALCheckpointer` executes checkpoints when the number of WAL log entries
18
- * exceeds a configurable threshold. It does this by:
19
- *
20
- * 1. Broadcasting a `maintenance` ReplicaState message to signal view-syncers to
21
- * release their locks.
22
- * 2. Executing `wal_checkpoint(TRUNCATE)` with a busy_timeout proportional to
23
- * the outstanding log size.
24
- * 3. Broadcasting a `version-ready` ReplicaState message to signal view-syncers to
25
- * reestablish their locks.
26
- *
27
- * Points of interest:
28
- *
29
- * * The checkpointer waits for the `maintenance` broadcast to be sent to over
30
- * IPC channels (in-process blocking), but does not request or wait for ACKs from
31
- * the view syncers. This is because the `wal_checkpoint(TRUNCATE)` command itself
32
- * will block until all read locks are released, up to the configured `busy_timeout`.
33
- *
34
- * * After performing the checkpoint, however, the checkpointer _does_ request ACKs
35
- * from view-syncers to confirm that they have reestablished their snapshots. There
36
- * is otherwise no way to know when it is safe to continue replication. This is
37
- * expected to be very fast, but to avoid pathological cases the wait is capped at
38
- * 100ms.
39
- */
40
- export class WALCheckpointer {
41
- #lc;
42
- #db;
43
- #threshold;
44
- #baseCheckpointTimeoutMs;
45
- #passiveCheckpointTimer;
46
- #logSize = 0;
47
- #outstandingChanges = 0;
48
- constructor(lc, replicaDbFile, cfg = {}) {
49
- const { threshold = 200, baseCheckpointTimeoutMs = 10, passiveCheckpointPeriodMs = 60_000, } = cfg;
50
- assert(threshold > 0 &&
51
- baseCheckpointTimeoutMs > 0 &&
52
- passiveCheckpointPeriodMs > 0, `Invalid config ${JSON.stringify(cfg)}`);
53
- const db = new Database(lc, replicaDbFile);
54
- db.pragma('journal_mode = WAL');
55
- this.#lc = lc.withContext('component', 'wal-checkpointer');
56
- this.#db = db;
57
- this.#threshold = threshold;
58
- this.#baseCheckpointTimeoutMs = baseCheckpointTimeoutMs;
59
- this.#passiveCheckpointTimer = setInterval(() => this.#checkpoint('PASSIVE'), passiveCheckpointPeriodMs);
60
- }
61
- stop() {
62
- clearTimeout(this.#passiveCheckpointTimer);
63
- this.#lc.info?.('stopped');
64
- }
65
- async maybeCheckpoint(changes, notifier) {
66
- this.#outstandingChanges += changes;
67
- // Simplification: changes and frames equivalently w.r.t. the threshold.
68
- if (Math.max(this.#outstandingChanges, this.#logSize) >= this.#threshold) {
69
- // If no read locks are held, a PASSIVE checkpoint may suffice.
70
- // Regardless of success, #logSize gets updated to determine if a
71
- // blocking checkpoint is warranted.
72
- this.#checkpoint('PASSIVE');
73
- }
74
- if (this.#logSize >= this.#threshold) {
75
- const logSize = this.#logSize;
76
- const t0 = Date.now();
77
- await this.#enterMaintenanceMode(notifier);
78
- const t1 = Date.now();
79
- // The timeout is proportional to the size of the log compared to the threshold.
80
- const timeout = (this.#logSize / this.#threshold) * this.#baseCheckpointTimeoutMs;
81
- const result = this.#checkpoint('TRUNCATE', timeout);
82
- const t2 = Date.now();
83
- await this.#exitMaintenanceMode(notifier);
84
- const t3 = Date.now();
85
- this.#lc.info?.(`WAL(busy=${timeout}ms): pre=${t1 - t0}ms checkpoint=${t2 - t1}ms post=${t3 - t2}ms logSize=${logSize} result`, result);
86
- }
87
- }
88
- async #enterMaintenanceMode(notifier) {
89
- await Promise.all(notifier.notifySubscribers({ state: 'maintenance' }));
90
- }
91
- async #exitMaintenanceMode(notifier) {
92
- // Request an ACK when exiting maintenance mode to maximize the chance of
93
- // view syncers re-establishing snapshots at the same version. This is expected
94
- // to be very fast (single-digit milliseconds).
95
- //
96
- // However, this is also the chance for view syncers to invoke an occasional
97
- // `PRAGMA optimize` call, for which latency may be variable. To avoid holding
98
- // up the replication stream indefinitely, we cap the wait at 100ms.
99
- const result = await orTimeout(Promise.all(notifier.notifySubscribers({
100
- state: 'version-ready',
101
- ack: randomACK(),
102
- })), 100);
103
- if (result === 'timed-out') {
104
- this.#lc.info?.('timed out waiting for view-syncer resumption');
105
- }
106
- }
107
- #checkpoint(mode, timeoutMs) {
108
- if (timeoutMs) {
109
- this.#db.pragma(`busy_timeout = ${timeoutMs}`);
110
- }
111
- const result = checkpoint(this.#db, mode);
112
- this.#logSize = result.log;
113
- this.#outstandingChanges = 0;
114
- return result;
115
- }
116
- }
117
- function checkpoint(db, mode) {
118
- const result = db.pragma(`wal_checkpoint(${mode})`);
119
- return result[0];
120
- }
121
- function randomACK() {
122
- return randInt(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
123
- }
124
- //# sourceMappingURL=checkpointer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpointer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/checkpointer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import * as v from '../../shared/src/valita.js';
2
- /**
3
- * attribute name => value
4
- * Single entry models simple primary keys.
5
- * Multiple entries models composite primary keys.
6
- */
7
- export declare const entityIDSchema: v.Type<Record<string, string>>;
8
- export type EntityID = v.Infer<typeof entityIDSchema>;
9
- //# sourceMappingURL=entity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,cAAc,gCAAuB,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import * as v from '../../shared/src/valita.js';
2
- /**
3
- * attribute name => value
4
- * Single entry models simple primary keys.
5
- * Multiple entries models composite primary keys.
6
- */
7
- export const entityIDSchema = v.record(v.string());
8
- //# sourceMappingURL=entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../zero-protocol/src/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC"}