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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/out/replicache/src/btree/read.d.ts +12 -1
  2. package/out/replicache/src/btree/read.d.ts.map +1 -1
  3. package/out/replicache/src/btree/read.js +24 -12
  4. package/out/replicache/src/btree/read.js.map +1 -1
  5. package/out/replicache/src/db/rebase.d.ts +14 -2
  6. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  7. package/out/replicache/src/db/rebase.js +27 -5
  8. package/out/replicache/src/db/rebase.js.map +1 -1
  9. package/out/replicache/src/db/write.js.map +1 -1
  10. package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
  11. package/out/replicache/src/kv/expo-sqlite/store.js +27 -4
  12. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
  13. package/out/replicache/src/kv/sqlite-store.d.ts +11 -0
  14. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  15. package/out/replicache/src/kv/sqlite-store.js +43 -3
  16. package/out/replicache/src/kv/sqlite-store.js.map +1 -1
  17. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  18. package/out/replicache/src/persist/persist.js +12 -5
  19. package/out/replicache/src/persist/persist.js.map +1 -1
  20. package/out/replicache/src/persist/refresh.js +6 -2
  21. package/out/replicache/src/persist/refresh.js.map +1 -1
  22. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  23. package/out/replicache/src/replicache-impl.js +14 -2
  24. package/out/replicache/src/replicache-impl.js.map +1 -1
  25. package/out/replicache/src/replicache-options.d.ts +9 -0
  26. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  27. package/out/replicache/src/transactions.d.ts.map +1 -1
  28. package/out/replicache/src/transactions.js +1 -1
  29. package/out/replicache/src/transactions.js.map +1 -1
  30. package/out/shared/src/error.d.ts +11 -0
  31. package/out/shared/src/error.d.ts.map +1 -1
  32. package/out/shared/src/error.js +35 -1
  33. package/out/shared/src/error.js.map +1 -1
  34. package/out/shared/src/hash.d.ts.map +1 -1
  35. package/out/shared/src/hash.js +105 -10
  36. package/out/shared/src/hash.js.map +1 -1
  37. package/out/shared/src/map.d.ts +7 -2
  38. package/out/shared/src/map.d.ts.map +1 -1
  39. package/out/shared/src/map.js.map +1 -1
  40. package/out/shared/src/promise-race.d.ts +14 -0
  41. package/out/shared/src/promise-race.d.ts.map +1 -1
  42. package/out/shared/src/promise-race.js +32 -1
  43. package/out/shared/src/promise-race.js.map +1 -1
  44. package/out/zero/package.js +2 -3
  45. package/out/zero/package.js.map +1 -1
  46. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  47. package/out/zero-cache/src/auth/write-authorizer.js +8 -1
  48. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  49. package/out/zero-cache/src/config/normalize.d.ts +5 -0
  50. package/out/zero-cache/src/config/normalize.d.ts.map +1 -1
  51. package/out/zero-cache/src/config/normalize.js +16 -3
  52. package/out/zero-cache/src/config/normalize.js.map +1 -1
  53. package/out/zero-cache/src/config/zero-config.d.ts +36 -7
  54. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  55. package/out/zero-cache/src/config/zero-config.js +121 -46
  56. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  57. package/out/zero-cache/src/db/create.d.ts.map +1 -1
  58. package/out/zero-cache/src/db/create.js +4 -1
  59. package/out/zero-cache/src/db/create.js.map +1 -1
  60. package/out/zero-cache/src/db/index-predicate.d.ts +4 -0
  61. package/out/zero-cache/src/db/index-predicate.d.ts.map +1 -0
  62. package/out/zero-cache/src/db/index-predicate.js +46 -0
  63. package/out/zero-cache/src/db/index-predicate.js.map +1 -0
  64. package/out/zero-cache/src/db/lite-tables.d.ts +10 -2
  65. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  66. package/out/zero-cache/src/db/lite-tables.js +8 -3
  67. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  68. package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
  69. package/out/zero-cache/src/db/migration-lite.js +5 -3
  70. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  71. package/out/zero-cache/src/db/specs.d.ts +41 -0
  72. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  73. package/out/zero-cache/src/db/specs.js +30 -3
  74. package/out/zero-cache/src/db/specs.js.map +1 -1
  75. package/out/zero-cache/src/db/transaction-pool.d.ts +5 -15
  76. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  77. package/out/zero-cache/src/db/transaction-pool.js +39 -73
  78. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  79. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  80. package/out/zero-cache/src/server/change-streamer.js +27 -15
  81. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  82. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  83. package/out/zero-cache/src/server/main.js +4 -4
  84. package/out/zero-cache/src/server/main.js.map +1 -1
  85. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  86. package/out/zero-cache/src/server/replicator.js +8 -4
  87. package/out/zero-cache/src/server/replicator.js.map +1 -1
  88. package/out/zero-cache/src/server/runner/run-worker.js +1 -1
  89. package/out/zero-cache/src/server/worker-urls.d.ts +0 -1
  90. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -1
  91. package/out/zero-cache/src/server/worker-urls.js +1 -2
  92. package/out/zero-cache/src/server/worker-urls.js.map +1 -1
  93. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  94. package/out/zero-cache/src/services/analyze.js +1 -0
  95. package/out/zero-cache/src/services/analyze.js.map +1 -1
  96. package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +12 -2
  97. package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +1 -1
  98. package/out/zero-cache/src/services/change-source/common/backfill-manager.js +14 -3
  99. package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
  100. package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +1 -1
  101. package/out/zero-cache/src/services/change-source/common/replica-schema.js +10 -41
  102. package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
  103. package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +3 -2
  104. package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +1 -1
  105. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +42 -16
  106. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -1
  107. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +34 -2
  108. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  109. package/out/zero-cache/src/services/change-source/pg/change-source.js +47 -19
  110. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  111. package/out/zero-cache/src/services/change-source/pg/decommission.d.ts.map +1 -1
  112. package/out/zero-cache/src/services/change-source/pg/decommission.js +20 -11
  113. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  114. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -0
  115. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  116. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +58 -80
  117. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  118. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +20 -0
  119. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +1 -1
  120. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +43 -3
  121. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  122. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +24 -1
  123. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +1 -1
  124. package/out/zero-cache/src/services/change-source/pg/replication-slots.js +35 -5
  125. package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
  126. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +1513 -229
  127. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  128. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +2 -2
  129. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  130. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts +19 -0
  131. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts.map +1 -0
  132. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +581 -0
  133. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +1 -0
  134. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +1 -1
  135. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
  136. package/out/zero-cache/src/services/change-source/pg/schema/init.js +15 -6
  137. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  138. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +137 -20
  139. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
  140. package/out/zero-cache/src/services/change-source/pg/schema/published.js +82 -13
  141. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  142. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +128 -21
  143. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
  144. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +5 -5
  145. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  146. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +2 -0
  147. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
  148. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +3 -0
  149. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  150. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +1 -4
  151. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +1 -1
  152. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +11 -18
  153. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
  154. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  155. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +8 -3
  156. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  157. package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +1 -1
  158. package/out/zero-cache/src/services/change-streamer/broadcast.js +4 -1
  159. package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
  160. package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +34 -0
  161. package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +1 -0
  162. package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.js +67 -0
  163. package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.js.map +1 -0
  164. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +2 -4
  165. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  166. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +8 -2
  167. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  168. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +34 -13
  169. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  170. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +165 -36
  171. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  172. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +4 -9
  173. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  174. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  175. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  176. package/out/zero-cache/src/services/change-streamer/forwarder.js +12 -3
  177. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  178. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +1 -1
  179. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js +11 -5
  180. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -1
  181. package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +11 -0
  182. package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +1 -0
  183. package/out/zero-cache/src/services/change-streamer/shard-sampling.js +19 -0
  184. package/out/zero-cache/src/services/change-streamer/shard-sampling.js.map +1 -0
  185. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +11 -1
  186. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +1 -1
  187. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js +38 -5
  188. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js.map +1 -1
  189. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +25 -1
  190. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +1 -1
  191. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js +95 -12
  192. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js.map +1 -1
  193. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +83 -0
  194. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +1 -0
  195. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js +417 -0
  196. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js.map +1 -0
  197. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +73 -0
  198. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +1 -0
  199. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js +157 -0
  200. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js.map +1 -0
  201. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +1 -1
  202. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +1 -1
  203. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js +8 -3
  204. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js.map +1 -1
  205. package/out/zero-cache/src/services/change-streamer/storer.d.ts +63 -1
  206. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  207. package/out/zero-cache/src/services/change-streamer/storer.js +217 -49
  208. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  209. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +8 -1
  210. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  211. package/out/zero-cache/src/services/change-streamer/subscriber.js +10 -1
  212. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  213. package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts +29 -0
  214. package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts.map +1 -0
  215. package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js +154 -0
  216. package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js.map +1 -0
  217. package/out/zero-cache/src/services/http-service.d.ts +1 -0
  218. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  219. package/out/zero-cache/src/services/http-service.js +7 -3
  220. package/out/zero-cache/src/services/http-service.js.map +1 -1
  221. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  222. package/out/zero-cache/src/services/litestream/commands.js +16 -7
  223. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  224. package/out/zero-cache/src/services/litestream/config-v5.yml +15 -1
  225. package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +131 -0
  226. package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +1 -0
  227. package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +70 -0
  228. package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +1 -0
  229. package/out/zero-cache/src/services/litestream/litestream-controller.js +101 -0
  230. package/out/zero-cache/src/services/litestream/litestream-controller.js.map +1 -0
  231. package/out/zero-cache/src/services/litestream/metrics.d.ts +1 -0
  232. package/out/zero-cache/src/services/litestream/metrics.d.ts.map +1 -1
  233. package/out/zero-cache/src/services/litestream/metrics.js +4 -1
  234. package/out/zero-cache/src/services/litestream/metrics.js.map +1 -1
  235. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  236. package/out/zero-cache/src/services/mutagen/mutagen.js +1 -1
  237. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  238. package/out/zero-cache/src/services/replicator/change-log-db.d.ts +10 -0
  239. package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +1 -1
  240. package/out/zero-cache/src/services/replicator/change-log-db.js +15 -1
  241. package/out/zero-cache/src/services/replicator/change-log-db.js.map +1 -1
  242. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  243. package/out/zero-cache/src/services/replicator/change-processor.js +18 -21
  244. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  245. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  246. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  247. package/out/zero-cache/src/services/replicator/incremental-sync.js +2 -6
  248. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  249. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  250. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  251. package/out/zero-cache/src/services/replicator/replicator.js +2 -2
  252. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  253. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +3 -2
  254. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +1 -1
  255. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js +8 -6
  256. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js.map +1 -1
  257. package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +27 -2
  258. package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +1 -1
  259. package/out/zero-cache/src/services/replicator/write-worker-client.js +3 -2
  260. package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
  261. package/out/zero-cache/src/services/replicator/write-worker.js +24 -5
  262. package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
  263. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -2
  264. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  265. package/out/zero-cache/src/services/view-syncer/client-handler.js +25 -17
  266. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  267. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  268. package/out/zero-cache/src/services/view-syncer/cvr-store.js +14 -1
  269. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  270. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -3
  271. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  272. package/out/zero-cache/src/services/view-syncer/view-syncer.js +6 -2
  273. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  274. package/out/zero-cache/src/types/downstream.d.ts +11 -0
  275. package/out/zero-cache/src/types/downstream.d.ts.map +1 -0
  276. package/out/zero-cache/src/types/pg.d.ts +15 -2
  277. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  278. package/out/zero-cache/src/types/pg.js +21 -8
  279. package/out/zero-cache/src/types/pg.js.map +1 -1
  280. package/out/zero-cache/src/types/poke-chunk.d.ts +18 -0
  281. package/out/zero-cache/src/types/poke-chunk.d.ts.map +1 -0
  282. package/out/zero-cache/src/types/poke-chunk.js +57 -0
  283. package/out/zero-cache/src/types/poke-chunk.js.map +1 -0
  284. package/out/zero-cache/src/types/processes.js +1 -4
  285. package/out/zero-cache/src/types/processes.js.map +1 -1
  286. package/out/zero-cache/src/types/streams.d.ts +4 -9
  287. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  288. package/out/zero-cache/src/types/streams.js.map +1 -1
  289. package/out/zero-cache/src/types/subscription.d.ts +2 -11
  290. package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
  291. package/out/zero-cache/src/types/subscription.js +4 -25
  292. package/out/zero-cache/src/types/subscription.js.map +1 -1
  293. package/out/zero-cache/src/workers/connection.d.ts +22 -4
  294. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  295. package/out/zero-cache/src/workers/connection.js +112 -14
  296. package/out/zero-cache/src/workers/connection.js.map +1 -1
  297. package/out/zero-cache/src/workers/replicator.d.ts +1 -0
  298. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  299. package/out/zero-cache/src/workers/replicator.js +4 -2
  300. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  301. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  302. package/out/zero-client/src/client/connection-manager.js +46 -0
  303. package/out/zero-client/src/client/connection-manager.js.map +1 -1
  304. package/out/zero-client/src/client/context.d.ts +15 -0
  305. package/out/zero-client/src/client/context.d.ts.map +1 -1
  306. package/out/zero-client/src/client/context.js +44 -0
  307. package/out/zero-client/src/client/context.js.map +1 -1
  308. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  309. package/out/zero-client/src/client/inspector/lazy-inspector.js +19 -12
  310. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
  311. package/out/zero-client/src/client/ivm-branch.js.map +1 -1
  312. package/out/zero-client/src/client/version.js +1 -1
  313. package/out/zero-client/src/client/zero-poke-handler.d.ts +7 -2
  314. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  315. package/out/zero-client/src/client/zero-poke-handler.js +52 -2
  316. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -1
  317. package/out/zero-client/src/client/zero-rep.d.ts +1 -0
  318. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  319. package/out/zero-client/src/client/zero-rep.js +9 -6
  320. package/out/zero-client/src/client/zero-rep.js.map +1 -1
  321. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  322. package/out/zero-client/src/client/zero.js +98 -25
  323. package/out/zero-client/src/client/zero.js.map +1 -1
  324. package/out/zero-protocol/src/custom-queries.d.ts +1 -1
  325. package/out/zero-protocol/src/down.d.ts +1 -1
  326. package/out/zero-protocol/src/error.d.ts +4 -4
  327. package/out/zero-protocol/src/inspect-down.js +1 -1
  328. package/out/zero-protocol/src/mutate-server.d.ts +2 -2
  329. package/out/zero-protocol/src/poke.d.ts +89 -7
  330. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  331. package/out/zero-protocol/src/poke.js +16 -8
  332. package/out/zero-protocol/src/poke.js.map +1 -1
  333. package/out/zero-protocol/src/protocol-version.d.ts +12 -7
  334. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  335. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  336. package/out/zero-protocol/src/push.d.ts +1 -1
  337. package/out/zero-protocol/src/query-server.d.ts +2 -2
  338. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  339. package/out/zql/src/ivm/array-view.js +5 -3
  340. package/out/zql/src/ivm/array-view.js.map +1 -1
  341. package/out/zql/src/ivm/data.d.ts.map +1 -1
  342. package/out/zql/src/ivm/data.js +8 -3
  343. package/out/zql/src/ivm/data.js.map +1 -1
  344. package/out/zql/src/ivm/deferred-input.d.ts +44 -0
  345. package/out/zql/src/ivm/deferred-input.d.ts.map +1 -0
  346. package/out/zql/src/ivm/deferred-input.js +88 -0
  347. package/out/zql/src/ivm/deferred-input.js.map +1 -0
  348. package/out/zql/src/ivm/memory-source.d.ts +10 -2
  349. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  350. package/out/zql/src/ivm/memory-source.js +19 -16
  351. package/out/zql/src/ivm/memory-source.js.map +1 -1
  352. package/out/zql/src/ivm/stream.d.ts +0 -1
  353. package/out/zql/src/ivm/stream.d.ts.map +1 -1
  354. package/out/zql/src/ivm/stream.js +1 -7
  355. package/out/zql/src/ivm/stream.js.map +1 -1
  356. package/out/zql/src/ivm/union-fan-in.d.ts +1 -1
  357. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  358. package/out/zql/src/ivm/union-fan-in.js +11 -2
  359. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  360. package/out/zql/src/ivm/view-apply-change.js +6 -1
  361. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  362. package/out/zql/src/query/query-delegate-base.d.ts +6 -0
  363. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
  364. package/out/zql/src/query/query-delegate-base.js +73 -10
  365. package/out/zql/src/query/query-delegate-base.js.map +1 -1
  366. package/out/zql/src/query/query-delegate.d.ts +22 -0
  367. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  368. package/out/zqlite/src/query-builder.d.ts.map +1 -1
  369. package/out/zqlite/src/query-builder.js +2 -1
  370. package/out/zqlite/src/query-builder.js.map +1 -1
  371. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -1
  372. package/out/zqlite/src/sqlite-stat-fanout.js +1 -0
  373. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
  374. package/out/zqlite/src/table-source.d.ts +1 -1
  375. package/out/zqlite/src/table-source.d.ts.map +1 -1
  376. package/out/zqlite/src/table-source.js +3 -2
  377. package/out/zqlite/src/table-source.js.map +1 -1
  378. package/package.json +2 -3
  379. package/out/zero-cache/src/server/backup-watermark-poller.js +0 -31
  380. package/out/zero-cache/src/server/backup-watermark-poller.js.map +0 -1
  381. package/out/zero-cache/src/services/litestream/vfs-watermark-poller.d.ts +0 -57
  382. package/out/zero-cache/src/services/litestream/vfs-watermark-poller.d.ts.map +0 -1
  383. package/out/zero-cache/src/services/litestream/vfs-watermark-poller.js +0 -137
  384. package/out/zero-cache/src/services/litestream/vfs-watermark-poller.js.map +0 -1
@@ -11,7 +11,7 @@ import { dropDatabase } from "../../../replicache/src/persist/collect-idb-databa
11
11
  import { must } from "../../../shared/src/must.js";
12
12
  import { clientToServer } from "../../../zero-schema/src/name-mapper.js";
13
13
  import { h64 } from "../../../shared/src/hash.js";
14
- import { getErrorMessage } from "../../../shared/src/error.js";
14
+ import { getErrorCauses, getErrorMessage } from "../../../shared/src/error.js";
15
15
  import { ClientNotFound, InvalidMessage } from "../../../zero-protocol/src/error-kind-enum.js";
16
16
  import { ProtocolError } from "../../../zero-protocol/src/error.js";
17
17
  import "../../../zero-protocol/src/client-schema.js";
@@ -31,6 +31,7 @@ import { encodeSecProtocols } from "../../../zero-protocol/src/connect.js";
31
31
  import { CRUD, Custom } from "../../../zero-protocol/src/mutation-type-enum.js";
32
32
  import { mapCRUD } from "../../../zero-protocol/src/mutation.js";
33
33
  import { nullableVersionSchema } from "../../../zero-protocol/src/version.js";
34
+ import "../../../zero-protocol/src/poke.js";
34
35
  import { downstreamSchema } from "../../../zero-protocol/src/down.js";
35
36
  import "../../../zero-protocol/src/protocol-version.js";
36
37
  import { isClientMetric } from "../../../zql/src/query/metrics-delegate.js";
@@ -89,6 +90,11 @@ var DEFAULT_DISCONNECT_TIMEOUT_MS = 60 * 1e3;
89
90
  * consider it timed out.
90
91
  */
91
92
  var CONNECT_TIMEOUT_MS = 1e4;
93
+ /**
94
+ * Setting up active-client tracking blocks the first connect attempt. Above
95
+ * this, say so.
96
+ */
97
+ var SLOW_ACTIVE_CLIENTS_THRESHOLD_MS = 50;
92
98
  var CHECK_CONNECTIVITY_ON_ERROR_FREQUENCY = 6;
93
99
  var DEFAULT_QUERY_CHANGE_THROTTLE_MS = 10;
94
100
  function convertOnUpdateNeededReason(reason) {
@@ -280,7 +286,7 @@ var Zero = class Zero {
280
286
  })).toString(36);
281
287
  const storageScopedUserID = userID ?? "__anonymous__";
282
288
  const replicacheOptions = {
283
- schemaVersion: `51.${hash}`,
289
+ schemaVersion: `52.${hash}`,
284
290
  logLevel: logOptions.logLevel,
285
291
  logSinks: [logOptions.logSink],
286
292
  mutators: replicacheMutators,
@@ -301,6 +307,7 @@ var Zero = class Zero {
301
307
  }, (ast, customQueryID, ttl, gotCallback) => this.#queryManager.addCustom(ast, customQueryID, ttl, gotCallback), (ast, ttl) => {
302
308
  if (enableLegacyQueries) this.#queryManager.updateLegacy(ast, ttl);
303
309
  }, (customQueryID, ttl) => this.#queryManager.updateCustom(customQueryID, ttl), () => this.#queryManager.flushBatch(), batchViewUpdates, this.#addMetric, assertValidRunOptions);
310
+ this.#zeroContext.deferPipelines();
304
311
  this.query = createRunnableBuilder(this.#zeroContext, schema);
305
312
  const rep = new ReplicacheImpl(replicacheOptions, {
306
313
  enableClientGroupForking: false,
@@ -320,7 +327,7 @@ var Zero = class Zero {
320
327
  this.#activeClientsManager = makeActiveClientsManager(rep.clientGroupID, this.clientID, this.#closeAbortController.signal, (clientID, clientGroupID) => this.#deleteClientsManager.onClientsDeleted([{
321
328
  clientGroupID,
322
329
  clientID
323
- }]));
330
+ }]), this.#lc);
324
331
  const onUpdateNeededCallback = (reason) => {
325
332
  if (onUpdateNeeded) onUpdateNeeded(reason);
326
333
  else reloadWithReason(this.#lc, this.#reload, reason.type, updateNeededReloadReasonMessage(reason));
@@ -641,13 +648,36 @@ var Zero = class Zero {
641
648
  }
642
649
  #onMessage = (e) => {
643
650
  const lc = this.#lc;
644
- lc.debug?.("received message", e.data);
651
+ const { data } = e;
652
+ lc.debug?.("received message", data instanceof ArrayBuffer ? {
653
+ type: "binary",
654
+ byteLength: data.byteLength
655
+ } : data);
645
656
  if (this.closed) {
646
657
  lc.debug?.("ignoring message because already closed");
647
658
  return;
648
659
  }
649
660
  let downMessage;
650
- const { data } = e;
661
+ if (data instanceof ArrayBuffer) {
662
+ this.#messageCount++;
663
+ const message = new Uint8Array(data);
664
+ if (message[0] !== 0) {
665
+ this.#disconnect(lc, new ClientError({
666
+ kind: InvalidMessage$1,
667
+ message: `Unknown binary message type: ${String(message[0])}`
668
+ }));
669
+ return;
670
+ }
671
+ this.#handlePokeChunk(message.subarray(1));
672
+ return;
673
+ }
674
+ if (typeof data !== "string") {
675
+ this.#disconnect(lc, new ClientError({
676
+ kind: InvalidMessage$1,
677
+ message: "Invalid binary message received from server"
678
+ }));
679
+ return;
680
+ }
651
681
  try {
652
682
  downMessage = parse(JSON.parse(data), downstreamSchema, "passthrough");
653
683
  } catch (e) {
@@ -889,11 +919,11 @@ var Zero = class Zero {
889
919
  const clientGroupID = await this.clientGroupID;
890
920
  this.#addConnectEvent(lc, attempt, "initializing active clients");
891
921
  const activeClientsManager = await this.#activeClientsManager;
892
- if (signal.aborted) throw signal.reason;
922
+ if (signal.aborted) throw attempt.abortReason ?? signal.reason;
893
923
  const [ws, initConnectionQueries, deletedClients] = await createSocket(this.#rep, this.#queryManager, this.#deleteClientsManager, socketOrigin, connectCookie, this.clientID, clientGroupID, this.#clientSchema, this.userID, fromReplicacheAuthToken(this.#rep.auth), this.#lastMutationIDReceived, wsid, this.#options.logLevel === "debug", lc, this.#options.mutateURL, this.#options.mutateHeaders, this.#options.queryURL ?? this.#options.getQueriesURL, this.#options.queryHeaders, additionalConnectParams, activeClientsManager, this.#options.maxHeaderLength, (event) => this.#addConnectEvent(lc, attempt, event));
894
924
  if (signal.aborted) {
895
925
  ws.close();
896
- throw signal.reason;
926
+ throw attempt.abortReason ?? signal.reason;
897
927
  }
898
928
  if (this.closed) {
899
929
  ws.close();
@@ -909,17 +939,52 @@ var Zero = class Zero {
909
939
  this.#socketResolver.resolve(ws);
910
940
  this.#addConnectEvent(lc, attempt, "waiting for the server acknowledgement");
911
941
  lc.debug?.("Waiting for connection to be acknowledged");
942
+ attempt.clearTimeout?.();
943
+ attempt.clearTimeout = this.#armConnectTimeout(lc, attempt, "ack");
912
944
  await attempt.connected.promise;
913
- if (signal.aborted) throw signal.reason;
945
+ if (signal.aborted) throw attempt.abortReason ?? signal.reason;
914
946
  this.#mutationTracker.onConnected(this.#lastMutationIDReceived);
915
947
  this.#rep.push().catch(() => {});
916
948
  }
949
+ /**
950
+ * Starts the deadline for one phase of a connection attempt, and returns a
951
+ * function that cancels it.
952
+ *
953
+ * The two phases are measured separately because they fail for unrelated
954
+ * reasons. `setup` covers local work — reading the cookie, the client group
955
+ * ID and the active clients from IDB, then preparing and opening the socket
956
+ * — whose duration says nothing about whether the server is reachable.
957
+ * `ack` covers the wait for the server's response. Running them on one
958
+ * budget meant a slow cold boot spent the server's time before the socket
959
+ * existed, and reported a healthy server as unreachable.
960
+ */
961
+ #armConnectTimeout(lc, attempt, phase) {
962
+ const { signal } = attempt.controller;
963
+ if (signal.aborted) return () => {};
964
+ const timeoutID = setTimeout(() => {
965
+ lc.debug?.("Connection attempt timed out");
966
+ this.#disconnect(lc, new ClientError({
967
+ kind: ConnectTimeout,
968
+ message: (phase === "setup" ? `Connection setup timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds. ` : `Server did not acknowledge the connection within ${CONNECT_TIMEOUT_MS / 1e3} seconds. `) + `Connect events: ${JSON.stringify(attempt.events)}`
969
+ }));
970
+ }, CONNECT_TIMEOUT_MS);
971
+ const clear = () => {
972
+ clearTimeout(timeoutID);
973
+ signal.removeEventListener("abort", clear);
974
+ };
975
+ signal.addEventListener("abort", clear, { once: true });
976
+ return clear;
977
+ }
917
978
  #addConnectEvent(lc, attempt, event) {
918
979
  attempt.events.push([/* @__PURE__ */ new Date(), event]);
919
980
  lc.debug?.("Connect event", event);
920
981
  }
921
982
  #disconnect(lc, reason, closeCode) {
922
- this.#currentConnectAttempt?.controller.abort(reason);
983
+ const attempt = this.#currentConnectAttempt;
984
+ if (attempt) {
985
+ attempt.abortReason = reason;
986
+ attempt.controller.abort(reason);
987
+ }
923
988
  if (shouldReportConnectError(reason)) {
924
989
  this.#connectErrorCount++;
925
990
  this.#metrics.lastConnectError.set(getLastConnectErrorValue(reason));
@@ -993,9 +1058,15 @@ var Zero = class Zero {
993
1058
  const lastMutationIDChangeForSelf = this.#pokeHandler.handlePokePart(pokeMessage[1]);
994
1059
  if (lastMutationIDChangeForSelf !== void 0) this.#lastMutationIDReceived = lastMutationIDChangeForSelf;
995
1060
  }
1061
+ #handlePokeChunk(chunk) {
1062
+ this.#abortPingTimeout();
1063
+ this.#pokeHandler.handlePokeChunk(chunk);
1064
+ }
996
1065
  #handlePokeEnd(_lc, pokeMessage) {
997
1066
  this.#abortPingTimeout();
998
- this.#pokeHandler.handlePokeEnd(pokeMessage[1]);
1067
+ const result = this.#pokeHandler.handlePokeEnd(pokeMessage[1]);
1068
+ if (result?.hasRows) resetBackoff();
1069
+ if (result?.lastMutationIDChangeForSelf !== void 0) this.#lastMutationIDReceived = result.lastMutationIDChangeForSelf;
999
1070
  }
1000
1071
  #onPokeError(error) {
1001
1072
  const lc = this.#lc;
@@ -1116,16 +1187,10 @@ var Zero = class Zero {
1116
1187
  };
1117
1188
  this.#currentConnectAttempt = attempt;
1118
1189
  this.#addConnectEvent(lc, attempt, "starting the connection");
1190
+ attempt.clearTimeout = this.#armConnectTimeout(lc, attempt, "setup");
1119
1191
  const canceled = resolver();
1120
- const abortHandler = () => canceled.reject(attempt.controller.signal.reason);
1192
+ const abortHandler = () => canceled.reject(attempt.abortReason ?? attempt.controller.signal.reason);
1121
1193
  attempt.controller.signal.addEventListener("abort", abortHandler, { once: true });
1122
- const timeoutID = setTimeout(() => {
1123
- lc.debug?.("Connection attempt timed out");
1124
- this.#disconnect(lc, new ClientError({
1125
- kind: ConnectTimeout,
1126
- message: `Connection attempt timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds. Connect events: ${JSON.stringify(attempt.events)}`
1127
- }));
1128
- }, CONNECT_TIMEOUT_MS);
1129
1194
  try {
1130
1195
  try {
1131
1196
  await Promise.race([this.#connectAttempt(lc, additionalConnectParams, attempt), canceled.promise]);
@@ -1142,7 +1207,7 @@ var Zero = class Zero {
1142
1207
  ready.resolve();
1143
1208
  additionalConnectParams = void 0;
1144
1209
  } finally {
1145
- clearTimeout(timeoutID);
1210
+ attempt.clearTimeout?.();
1146
1211
  attempt.controller.signal.removeEventListener("abort", abortHandler);
1147
1212
  if (this.#currentConnectAttempt === attempt) this.#currentConnectAttempt = void 0;
1148
1213
  }
@@ -1195,7 +1260,7 @@ var Zero = class Zero {
1195
1260
  })).key === "connectRequest") this.#connectionManager.resumeFromConnectRequest();
1196
1261
  break;
1197
1262
  case Error$1:
1198
- lc.info?.(`Run loop paused in error state. Call zero.connection.connect() to resume.`, currentState.reason);
1263
+ lc.info?.(`Run loop paused in error state. Call zero.connection.connect() to resume.`, currentState.reason, ...getErrorCauses(currentState.reason));
1199
1264
  if ((await promiseRace({
1200
1265
  connectRequest: this.#connectionManager.waitForConnectRequest(),
1201
1266
  stateChange: this.#connectionManager.waitForStateChange()
@@ -1209,7 +1274,7 @@ var Zero = class Zero {
1209
1274
  if (!this.#connectionManager.is("connected") && !isClientClosedError) {
1210
1275
  const level = isAuthError(ex) ? "warn" : "error";
1211
1276
  const kind = isServerError(ex) ? ex.kind : "Unknown Error";
1212
- lc[level]?.("Failed to connect", ex, kind, {
1277
+ lc[level]?.("Failed to connect", ex, ...getErrorCauses(ex), kind, {
1213
1278
  lmid: this.#lastMutationIDReceived,
1214
1279
  baseCookie: this.#connectCookie
1215
1280
  });
@@ -1465,14 +1530,16 @@ async function createSocket(rep, queryManager, deleteClientsManager, socketOrigi
1465
1530
  queriesPatch = void 0;
1466
1531
  } else deletedClients = void 0;
1467
1532
  onEvent?.("creating the WebSocket");
1533
+ const socket = new WS(url.toString(), secProtocol);
1534
+ socket.binaryType = "arraybuffer";
1468
1535
  return [
1469
- new WS(url.toString(), secProtocol),
1536
+ socket,
1470
1537
  queriesPatch,
1471
1538
  skipEmptyDeletedClients(deletedClients)
1472
1539
  ];
1473
1540
  }
1474
1541
  async function createConnectionURL(socketOrigin, clientID, clientGroupID, userID, baseCookie, lmid, wsid, rep, debugPerf, additionalConnectParams, lc) {
1475
- const url = new URL(appendPath(socketOrigin, `/sync/v51/connect`));
1542
+ const url = new URL(appendPath(socketOrigin, `/sync/v52/connect`));
1476
1543
  const { searchParams } = url;
1477
1544
  searchParams.set("clientID", clientID);
1478
1545
  searchParams.set("clientGroupID", clientGroupID);
@@ -1517,8 +1584,14 @@ function addWebSocketIDToLogContext(wsid, lc) {
1517
1584
  return lc.withContext("wsid", wsid);
1518
1585
  }
1519
1586
  function assertValidRunOptions(_options) {}
1520
- async function makeActiveClientsManager(clientGroupID, clientID, signal, onDelete) {
1521
- const manager = await ActiveClientsManager.create(await clientGroupID, clientID, signal);
1587
+ async function makeActiveClientsManager(clientGroupID, clientID, signal, onDelete, lc) {
1588
+ const groupID = await clientGroupID;
1589
+ const start = performance.now();
1590
+ const manager = await ActiveClientsManager.create(groupID, clientID, signal);
1591
+ const elapsed = performance.now() - start;
1592
+ const locks = getBrowserGlobal("navigator")?.locks ? "native" : "fallback";
1593
+ if (elapsed > SLOW_ACTIVE_CLIENTS_THRESHOLD_MS) lc.warn?.(`Initializing active clients took ${Math.round(elapsed)}ms`, { locks });
1594
+ else lc.debug?.("Initialized active clients in", Math.round(elapsed), "ms", { locks });
1522
1595
  manager.onDelete = onDelete;
1523
1596
  return manager;
1524
1597
  }