@rocicorp/zero 1.10.0-canary.23 → 1.10.0-canary.25

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 (485) hide show
  1. package/out/analyze-query/src/bin-analyze.js +1 -1
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/replicache/src/btree/read.d.ts +1 -12
  4. package/out/replicache/src/btree/read.d.ts.map +1 -1
  5. package/out/replicache/src/btree/read.js +12 -24
  6. package/out/replicache/src/btree/read.js.map +1 -1
  7. package/out/replicache/src/dag/gc.d.ts.map +1 -1
  8. package/out/replicache/src/dag/gc.js +1 -2
  9. package/out/replicache/src/dag/gc.js.map +1 -1
  10. package/out/replicache/src/dag/store-impl.d.ts +2 -12
  11. package/out/replicache/src/dag/store-impl.d.ts.map +1 -1
  12. package/out/replicache/src/dag/store-impl.js +8 -22
  13. package/out/replicache/src/dag/store-impl.js.map +1 -1
  14. package/out/replicache/src/db/rebase.d.ts +2 -14
  15. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  16. package/out/replicache/src/db/rebase.js +5 -27
  17. package/out/replicache/src/db/rebase.js.map +1 -1
  18. package/out/replicache/src/db/write.js.map +1 -1
  19. package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
  20. package/out/replicache/src/kv/expo-sqlite/store.js +5 -28
  21. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
  22. package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +5 -15
  23. package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +1 -1
  24. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +25 -25
  25. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -1
  26. package/out/replicache/src/kv/idb-store.d.ts +0 -9
  27. package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
  28. package/out/replicache/src/kv/idb-store.js +2 -14
  29. package/out/replicache/src/kv/idb-store.js.map +1 -1
  30. package/out/replicache/src/kv/mem-store.d.ts +0 -1
  31. package/out/replicache/src/kv/mem-store.d.ts.map +1 -1
  32. package/out/replicache/src/kv/mem-store.js +0 -3
  33. package/out/replicache/src/kv/mem-store.js.map +1 -1
  34. package/out/replicache/src/kv/op-sqlite/store.d.ts.map +1 -1
  35. package/out/replicache/src/kv/op-sqlite/store.js +1 -1
  36. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -1
  37. package/out/replicache/src/kv/sqlite-store.d.ts +1 -13
  38. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  39. package/out/replicache/src/kv/sqlite-store.js +4 -49
  40. package/out/replicache/src/kv/sqlite-store.js.map +1 -1
  41. package/out/replicache/src/kv/store.d.ts +0 -6
  42. package/out/replicache/src/kv/store.d.ts.map +1 -1
  43. package/out/replicache/src/persist/collect-idb-databases.d.ts +5 -10
  44. package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
  45. package/out/replicache/src/persist/collect-idb-databases.js +9 -16
  46. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -1
  47. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  48. package/out/replicache/src/persist/persist.js +5 -12
  49. package/out/replicache/src/persist/persist.js.map +1 -1
  50. package/out/replicache/src/persist/refresh.js +2 -6
  51. package/out/replicache/src/persist/refresh.js.map +1 -1
  52. package/out/replicache/src/replicache-impl.d.ts +3 -14
  53. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  54. package/out/replicache/src/replicache-impl.js +11 -118
  55. package/out/replicache/src/replicache-impl.js.map +1 -1
  56. package/out/replicache/src/replicache-options.d.ts +0 -9
  57. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  58. package/out/replicache/src/transactions.d.ts.map +1 -1
  59. package/out/replicache/src/transactions.js +1 -1
  60. package/out/replicache/src/transactions.js.map +1 -1
  61. package/out/shared/src/arrays.js +15 -1
  62. package/out/shared/src/arrays.js.map +1 -1
  63. package/out/shared/src/base64.d.ts +19 -0
  64. package/out/shared/src/base64.d.ts.map +1 -0
  65. package/out/shared/src/base64.js +40 -0
  66. package/out/shared/src/base64.js.map +1 -0
  67. package/out/shared/src/error.d.ts +0 -11
  68. package/out/shared/src/error.d.ts.map +1 -1
  69. package/out/shared/src/error.js +1 -35
  70. package/out/shared/src/error.js.map +1 -1
  71. package/out/shared/src/hash.d.ts +0 -1
  72. package/out/shared/src/hash.d.ts.map +1 -1
  73. package/out/shared/src/hash.js +10 -87
  74. package/out/shared/src/hash.js.map +1 -1
  75. package/out/shared/src/iterables.d.ts +0 -2
  76. package/out/shared/src/iterables.d.ts.map +1 -1
  77. package/out/shared/src/iterables.js +1 -18
  78. package/out/shared/src/iterables.js.map +1 -1
  79. package/out/shared/src/json.d.ts.map +1 -1
  80. package/out/shared/src/json.js +2 -2
  81. package/out/shared/src/json.js.map +1 -1
  82. package/out/shared/src/map.d.ts +2 -7
  83. package/out/shared/src/map.d.ts.map +1 -1
  84. package/out/shared/src/map.js.map +1 -1
  85. package/out/shared/src/packed-boolean-map.d.ts +7 -0
  86. package/out/shared/src/packed-boolean-map.d.ts.map +1 -0
  87. package/out/shared/src/packed-boolean-map.js +36 -0
  88. package/out/shared/src/packed-boolean-map.js.map +1 -0
  89. package/out/shared/src/ring-buffer.d.ts +0 -8
  90. package/out/shared/src/ring-buffer.d.ts.map +1 -1
  91. package/out/shared/src/ring-buffer.js +1 -22
  92. package/out/shared/src/ring-buffer.js.map +1 -1
  93. package/out/z2s/src/compiler.js +1 -1
  94. package/out/zero/package.js +3 -2
  95. package/out/zero/package.js.map +1 -1
  96. package/out/zero-cache/src/auth/read-authorizer.js +1 -1
  97. package/out/zero-cache/src/config/zero-config.d.ts +2 -27
  98. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  99. package/out/zero-cache/src/config/zero-config.js +28 -114
  100. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  101. package/out/zero-cache/src/custom-queries/transform-query.js +1 -1
  102. package/out/zero-cache/src/db/create.d.ts.map +1 -1
  103. package/out/zero-cache/src/db/create.js +1 -4
  104. package/out/zero-cache/src/db/create.js.map +1 -1
  105. package/out/zero-cache/src/db/lite-tables.d.ts +2 -10
  106. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  107. package/out/zero-cache/src/db/lite-tables.js +3 -8
  108. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  109. package/out/zero-cache/src/db/specs.d.ts +0 -41
  110. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  111. package/out/zero-cache/src/db/specs.js +3 -30
  112. package/out/zero-cache/src/db/specs.js.map +1 -1
  113. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  114. package/out/zero-cache/src/server/change-streamer.js +4 -13
  115. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  116. package/out/zero-cache/src/server/inspector-delegate.d.ts +2 -18
  117. package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
  118. package/out/zero-cache/src/server/inspector-delegate.js +9 -23
  119. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  120. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  121. package/out/zero-cache/src/server/main.js +1 -8
  122. package/out/zero-cache/src/server/main.js.map +1 -1
  123. package/out/zero-cache/src/server/mutator.js +0 -2
  124. package/out/zero-cache/src/server/mutator.js.map +1 -1
  125. package/out/zero-cache/src/server/reaper.d.ts.map +1 -1
  126. package/out/zero-cache/src/server/reaper.js +0 -2
  127. package/out/zero-cache/src/server/reaper.js.map +1 -1
  128. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  129. package/out/zero-cache/src/server/replicator.js +2 -8
  130. package/out/zero-cache/src/server/replicator.js.map +1 -1
  131. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  132. package/out/zero-cache/src/server/runner/zero-dispatcher.js +0 -3
  133. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  134. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  135. package/out/zero-cache/src/server/syncer.js +0 -2
  136. package/out/zero-cache/src/server/syncer.js.map +1 -1
  137. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  138. package/out/zero-cache/src/services/analyze.js +2 -3
  139. package/out/zero-cache/src/services/analyze.js.map +1 -1
  140. package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +1 -1
  141. package/out/zero-cache/src/services/change-source/common/backfill-manager.js +1 -14
  142. package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
  143. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +1 -1
  144. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js +3 -15
  145. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +1 -1
  146. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -11
  147. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  148. package/out/zero-cache/src/services/change-source/pg/change-source.js +2 -21
  149. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  150. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -1
  151. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  152. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +7 -8
  153. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  154. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +229 -1513
  155. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  156. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +2 -2
  157. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  158. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +1 -1
  159. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
  160. package/out/zero-cache/src/services/change-source/pg/schema/init.js +6 -15
  161. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  162. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +20 -137
  163. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
  164. package/out/zero-cache/src/services/change-source/pg/schema/published.js +13 -82
  165. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  166. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +21 -128
  167. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
  168. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +5 -5
  169. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  170. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +0 -2
  171. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
  172. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +0 -3
  173. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  174. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -3
  175. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  176. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +1 -3
  177. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  178. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -1
  179. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  180. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  181. package/out/zero-cache/src/services/litestream/commands.js +3 -8
  182. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  183. package/out/zero-cache/src/services/litestream/config-v5.yml +1 -15
  184. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -5
  185. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  186. package/out/zero-cache/src/services/mutagen/mutagen.js +1 -7
  187. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  188. package/out/zero-cache/src/services/mutagen/pusher.d.ts +87 -87
  189. package/out/zero-cache/src/services/mutagen/pusher.js +2 -3
  190. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  191. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  192. package/out/zero-cache/src/services/replicator/change-processor.js +16 -16
  193. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  194. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  195. package/out/zero-cache/src/services/replicator/incremental-sync.js +0 -1
  196. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  197. package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +2 -27
  198. package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +1 -1
  199. package/out/zero-cache/src/services/replicator/write-worker-client.js +2 -3
  200. package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
  201. package/out/zero-cache/src/services/replicator/write-worker.js +5 -24
  202. package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
  203. package/out/zero-cache/src/services/run-ast.d.ts +0 -12
  204. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  205. package/out/zero-cache/src/services/run-ast.js +15 -27
  206. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  207. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  208. package/out/zero-cache/src/services/runner.js +1 -1
  209. package/out/zero-cache/src/services/runner.js.map +1 -1
  210. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -45
  211. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  212. package/out/zero-cache/src/services/view-syncer/cvr.js +1 -133
  213. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  214. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +1 -14
  215. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
  216. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +4 -30
  217. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  218. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +1 -1
  219. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  220. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +2 -2
  221. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  222. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +1 -2
  223. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  224. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +18 -33
  225. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  226. package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +1 -1
  227. package/out/zero-cache/src/services/view-syncer/query-covering.js.map +1 -1
  228. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +1 -4
  229. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  230. package/out/zero-cache/src/services/view-syncer/snapshotter.js +3 -9
  231. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  232. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +1 -11
  233. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  234. package/out/zero-cache/src/services/view-syncer/view-syncer.js +90 -470
  235. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  236. package/out/zero-cache/src/types/processes.d.ts +0 -32
  237. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  238. package/out/zero-cache/src/types/processes.js +4 -43
  239. package/out/zero-cache/src/types/processes.js.map +1 -1
  240. package/out/zero-cache/src/types/profiler.d.ts +0 -12
  241. package/out/zero-cache/src/types/profiler.d.ts.map +1 -1
  242. package/out/zero-cache/src/types/profiler.js +1 -46
  243. package/out/zero-cache/src/types/profiler.js.map +1 -1
  244. package/out/zero-cache/src/workers/connect-params.d.ts +17 -1
  245. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
  246. package/out/zero-cache/src/workers/connect-params.js +21 -1
  247. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  248. package/out/zero-cache/src/workers/connection.d.ts +4 -4
  249. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  250. package/out/zero-cache/src/workers/connection.js +8 -8
  251. package/out/zero-cache/src/workers/connection.js.map +1 -1
  252. package/out/zero-cache/src/workers/replicator.d.ts +0 -1
  253. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  254. package/out/zero-cache/src/workers/replicator.js +2 -4
  255. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  256. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  257. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +16 -21
  258. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  259. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  260. package/out/zero-cache/src/workers/syncer.js +1 -10
  261. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  262. package/out/zero-client/src/client/connection-manager.d.ts +0 -20
  263. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  264. package/out/zero-client/src/client/connection-manager.js +13 -77
  265. package/out/zero-client/src/client/connection-manager.js.map +1 -1
  266. package/out/zero-client/src/client/connection-status-enum.d.ts +0 -2
  267. package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
  268. package/out/zero-client/src/client/connection-status-enum.js +1 -3
  269. package/out/zero-client/src/client/connection-status-enum.js.map +1 -1
  270. package/out/zero-client/src/client/connection.d.ts +0 -6
  271. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  272. package/out/zero-client/src/client/connection.js +1 -2
  273. package/out/zero-client/src/client/connection.js.map +1 -1
  274. package/out/zero-client/src/client/context.d.ts +2 -27
  275. package/out/zero-client/src/client/context.d.ts.map +1 -1
  276. package/out/zero-client/src/client/context.js +1 -112
  277. package/out/zero-client/src/client/context.js.map +1 -1
  278. package/out/zero-client/src/client/custom.js +2 -2
  279. package/out/zero-client/src/client/custom.js.map +1 -1
  280. package/out/zero-client/src/client/error.js +1 -1
  281. package/out/zero-client/src/client/inspector/lazy-inspector.js +2 -2
  282. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
  283. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  284. package/out/zero-client/src/client/ivm-branch.js +3 -20
  285. package/out/zero-client/src/client/ivm-branch.js.map +1 -1
  286. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  287. package/out/zero-client/src/client/mutation-tracker.js +1 -1
  288. package/out/zero-client/src/client/mutation-tracker.js.map +1 -1
  289. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -1
  290. package/out/zero-client/src/client/mutator-proxy.js +1 -2
  291. package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
  292. package/out/zero-client/src/client/options.d.ts +0 -3
  293. package/out/zero-client/src/client/options.d.ts.map +1 -1
  294. package/out/zero-client/src/client/options.js.map +1 -1
  295. package/out/zero-client/src/client/query-manager.d.ts +0 -2
  296. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  297. package/out/zero-client/src/client/query-manager.js +9 -48
  298. package/out/zero-client/src/client/query-manager.js.map +1 -1
  299. package/out/zero-client/src/client/version.js +1 -1
  300. package/out/zero-client/src/client/zero-rep.d.ts +0 -1
  301. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  302. package/out/zero-client/src/client/zero-rep.js +6 -9
  303. package/out/zero-client/src/client/zero-rep.js.map +1 -1
  304. package/out/zero-client/src/client/zero.d.ts +3 -18
  305. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  306. package/out/zero-client/src/client/zero.js +36 -123
  307. package/out/zero-client/src/client/zero.js.map +1 -1
  308. package/out/zero-client/src/types/query-result.d.ts +0 -2
  309. package/out/zero-client/src/types/query-result.d.ts.map +1 -1
  310. package/out/zero-protocol/src/ast.d.ts +1 -64
  311. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  312. package/out/zero-protocol/src/ast.js +51 -223
  313. package/out/zero-protocol/src/ast.js.map +1 -1
  314. package/out/zero-protocol/src/connect.d.ts +16 -0
  315. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  316. package/out/zero-protocol/src/connect.js +27 -1
  317. package/out/zero-protocol/src/connect.js.map +1 -1
  318. package/out/zero-protocol/src/error.d.ts +1 -1
  319. package/out/zero-protocol/src/feature-flag-enum.d.ts +7 -0
  320. package/out/zero-protocol/src/feature-flag-enum.d.ts.map +1 -0
  321. package/out/zero-protocol/src/feature-flag-enum.js +7 -0
  322. package/out/zero-protocol/src/feature-flag-enum.js.map +1 -0
  323. package/out/zero-protocol/src/feature-flag.d.ts +5 -0
  324. package/out/zero-protocol/src/feature-flag.d.ts.map +1 -0
  325. package/out/zero-protocol/src/poke.d.ts +11 -4
  326. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  327. package/out/zero-protocol/src/poke.js +3 -2
  328. package/out/zero-protocol/src/poke.js.map +1 -1
  329. package/out/zero-protocol/src/protocol-version.d.ts +30 -6
  330. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  331. package/out/zero-protocol/src/protocol-version.js +1 -1
  332. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  333. package/out/zero-protocol/src/query-hash.d.ts +2 -7
  334. package/out/zero-protocol/src/query-hash.d.ts.map +1 -1
  335. package/out/zero-protocol/src/query-hash.js +9 -12
  336. package/out/zero-protocol/src/query-hash.js.map +1 -1
  337. package/out/zero-react/src/use-query.d.ts +4 -5
  338. package/out/zero-react/src/use-query.d.ts.map +1 -1
  339. package/out/zero-react/src/use-query.js +9 -86
  340. package/out/zero-react/src/use-query.js.map +1 -1
  341. package/out/zero-solid/src/solid-view.d.ts +0 -17
  342. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  343. package/out/zero-solid/src/solid-view.js +1 -39
  344. package/out/zero-solid/src/solid-view.js.map +1 -1
  345. package/out/zero-solid/src/use-query.js +3 -5
  346. package/out/zero-solid/src/use-query.js.map +1 -1
  347. package/out/zql/src/builder/debug-delegate.d.ts +1 -6
  348. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  349. package/out/zql/src/builder/debug-delegate.js +2 -14
  350. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  351. package/out/zql/src/ivm/array-view.d.ts +0 -29
  352. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  353. package/out/zql/src/ivm/array-view.js +12 -63
  354. package/out/zql/src/ivm/array-view.js.map +1 -1
  355. package/out/zql/src/ivm/cap.d.ts.map +1 -1
  356. package/out/zql/src/ivm/cap.js +3 -5
  357. package/out/zql/src/ivm/cap.js.map +1 -1
  358. package/out/zql/src/ivm/data.d.ts.map +1 -1
  359. package/out/zql/src/ivm/data.js +3 -8
  360. package/out/zql/src/ivm/data.js.map +1 -1
  361. package/out/zql/src/ivm/exists.d.ts +1 -1
  362. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  363. package/out/zql/src/ivm/exists.js +1 -1
  364. package/out/zql/src/ivm/exists.js.map +1 -1
  365. package/out/zql/src/ivm/fan-in.d.ts +2 -2
  366. package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
  367. package/out/zql/src/ivm/fan-in.js +5 -6
  368. package/out/zql/src/ivm/fan-in.js.map +1 -1
  369. package/out/zql/src/ivm/fan-out.d.ts +2 -2
  370. package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
  371. package/out/zql/src/ivm/fan-out.js.map +1 -1
  372. package/out/zql/src/ivm/filter-operators.d.ts +4 -4
  373. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  374. package/out/zql/src/ivm/filter-operators.js +8 -10
  375. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  376. package/out/zql/src/ivm/filter.d.ts +2 -2
  377. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  378. package/out/zql/src/ivm/filter.js +4 -7
  379. package/out/zql/src/ivm/filter.js.map +1 -1
  380. package/out/zql/src/ivm/flipped-join.js +2 -2
  381. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  382. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
  383. package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
  384. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +4 -6
  385. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  386. package/out/zql/src/ivm/memory-source.d.ts +3 -15
  387. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  388. package/out/zql/src/ivm/memory-source.js +19 -40
  389. package/out/zql/src/ivm/memory-source.js.map +1 -1
  390. package/out/zql/src/ivm/take.d.ts.map +1 -1
  391. package/out/zql/src/ivm/take.js +4 -3
  392. package/out/zql/src/ivm/take.js.map +1 -1
  393. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  394. package/out/zql/src/ivm/union-fan-in.js +7 -9
  395. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  396. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  397. package/out/zql/src/ivm/view-apply-change.js +4 -9
  398. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  399. package/out/zql/src/ivm/view.d.ts +0 -15
  400. package/out/zql/src/ivm/view.d.ts.map +1 -1
  401. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
  402. package/out/zql/src/mutate/mutator-registry.js +2 -2
  403. package/out/zql/src/mutate/mutator-registry.js.map +1 -1
  404. package/out/zql/src/query/query-delegate-base.d.ts +1 -9
  405. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
  406. package/out/zql/src/query/query-delegate-base.js +36 -132
  407. package/out/zql/src/query/query-delegate-base.js.map +1 -1
  408. package/out/zql/src/query/query-delegate.d.ts +1 -50
  409. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  410. package/out/zql/src/query/query-impl.d.ts +14 -25
  411. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  412. package/out/zql/src/query/query-impl.js +94 -414
  413. package/out/zql/src/query/query-impl.js.map +1 -1
  414. package/out/zql/src/query/query-internals.d.ts +11 -21
  415. package/out/zql/src/query/query-internals.d.ts.map +1 -1
  416. package/out/zql/src/query/query-internals.js.map +1 -1
  417. package/out/zql/src/query/query.d.ts +2 -11
  418. package/out/zql/src/query/query.d.ts.map +1 -1
  419. package/out/zql/src/query/runnable-query-impl.d.ts +2 -3
  420. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -1
  421. package/out/zql/src/query/runnable-query-impl.js +2 -23
  422. package/out/zql/src/query/runnable-query-impl.js.map +1 -1
  423. package/out/zql/src/query/typed-view.d.ts +1 -1
  424. package/out/zql/src/query/typed-view.d.ts.map +1 -1
  425. package/out/zqlite/src/db.d.ts +1 -9
  426. package/out/zqlite/src/db.d.ts.map +1 -1
  427. package/out/zqlite/src/db.js +2 -8
  428. package/out/zqlite/src/db.js.map +1 -1
  429. package/out/zqlite/src/query-builder.d.ts.map +1 -1
  430. package/out/zqlite/src/query-builder.js +1 -2
  431. package/out/zqlite/src/query-builder.js.map +1 -1
  432. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -1
  433. package/out/zqlite/src/sqlite-stat-fanout.js +0 -1
  434. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
  435. package/out/zqlite/src/table-source.d.ts +1 -2
  436. package/out/zqlite/src/table-source.d.ts.map +1 -1
  437. package/out/zqlite/src/table-source.js +6 -12
  438. package/out/zqlite/src/table-source.js.map +1 -1
  439. package/package.json +3 -2
  440. package/out/replicache/src/dag/invalid-ref-count-error.d.ts +0 -12
  441. package/out/replicache/src/dag/invalid-ref-count-error.d.ts.map +0 -1
  442. package/out/replicache/src/dag/invalid-ref-count-error.js +0 -19
  443. package/out/replicache/src/dag/invalid-ref-count-error.js.map +0 -1
  444. package/out/shared/src/xxhash32.d.ts +0 -36
  445. package/out/shared/src/xxhash32.d.ts.map +0 -1
  446. package/out/shared/src/xxhash32.js +0 -51
  447. package/out/shared/src/xxhash32.js.map +0 -1
  448. package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
  449. package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
  450. package/out/zero-cache/src/db/index-predicate.js +0 -46
  451. package/out/zero-cache/src/db/index-predicate.js.map +0 -1
  452. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts +0 -19
  453. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts.map +0 -1
  454. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +0 -581
  455. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +0 -1
  456. package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +0 -131
  457. package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +0 -1
  458. package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -70
  459. package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
  460. package/out/zero-cache/src/services/litestream/litestream-controller.js +0 -101
  461. package/out/zero-cache/src/services/litestream/litestream-controller.js.map +0 -1
  462. package/out/zero-cache/src/services/profz.d.ts +0 -7
  463. package/out/zero-cache/src/services/profz.d.ts.map +0 -1
  464. package/out/zero-cache/src/services/profz.js +0 -103
  465. package/out/zero-cache/src/services/profz.js.map +0 -1
  466. package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
  467. package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
  468. package/out/zero-cache/src/services/view-syncer/hydration-budget.js +0 -62
  469. package/out/zero-cache/src/services/view-syncer/hydration-budget.js.map +0 -1
  470. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
  471. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
  472. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js +0 -78
  473. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js.map +0 -1
  474. package/out/zero-protocol/src/query-hash-visitor.d.ts +0 -81
  475. package/out/zero-protocol/src/query-hash-visitor.d.ts.map +0 -1
  476. package/out/zero-protocol/src/query-hash-visitor.js +0 -324
  477. package/out/zero-protocol/src/query-hash-visitor.js.map +0 -1
  478. package/out/zql/src/ivm/deferred-input.d.ts +0 -44
  479. package/out/zql/src/ivm/deferred-input.d.ts.map +0 -1
  480. package/out/zql/src/ivm/deferred-input.js +0 -89
  481. package/out/zql/src/ivm/deferred-input.js.map +0 -1
  482. package/out/zql/src/query/query-transitions.d.ts +0 -171
  483. package/out/zql/src/query/query-transitions.d.ts.map +0 -1
  484. package/out/zql/src/query/query-transitions.js +0 -207
  485. package/out/zql/src/query/query-transitions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ring-buffer.js","names":["#capacity","#buffer","#size","#grow","#head","#shrink"],"sources":["../../../../shared/src/ring-buffer.ts"],"sourcesContent":["const DEFAULT_INITIAL_CAPACITY = 16;\nconst MIN_CAPACITY = 16;\n\n/**\n * A FIFO ring buffer backed by a circular array. Provides:\n *\n * - `push()` — O(1) amortized (O(n) on resize)\n * - `shift()` — O(1)\n * - `size` — O(1)\n * - `drain()` — O(n)\n *\n * The buffer grows (doubles) when full and shrinks (halves) when\n * utilization drops below 25%, bounded by {@link MIN_CAPACITY}.\n */\nexport class RingBuffer<T> {\n #buffer: (T | undefined)[];\n #head = 0;\n #size = 0;\n #capacity: number;\n\n constructor(initialCapacity = DEFAULT_INITIAL_CAPACITY) {\n this.#capacity = Math.max(MIN_CAPACITY, initialCapacity);\n this.#buffer = Array.from({length: initialCapacity});\n }\n\n get size(): number {\n return this.#size;\n }\n\n push(value: T): void {\n if (this.#size === this.#capacity) {\n this.#grow();\n }\n this.#buffer[(this.#head + this.#size) % this.#capacity] = value;\n this.#size++;\n }\n\n /** Returns the last element, or `undefined` if empty. */\n last(): T | undefined {\n return this.#size === 0\n ? undefined\n : this.#buffer[(this.#head + this.#size - 1) % this.#capacity];\n }\n\n /** Replaces the last element, or appends it if empty. */\n replaceLast(value: T): void {\n if (this.#size === 0) {\n this.push(value);\n } else {\n this.#buffer[(this.#head + this.#size - 1) % this.#capacity] = value;\n }\n }\n\n /** Removes and returns the front element, or `undefined` if empty. */\n shift(): T | undefined {\n if (this.#size === 0) {\n return undefined;\n }\n const value = this.#buffer[this.#head];\n this.#buffer[this.#head] = undefined; // allow GC of removed element\n this.#head = (this.#head + 1) % this.#capacity;\n this.#size--;\n\n // Shrink when utilization drops below 25%, keeping a minimum capacity.\n if (\n this.#size > 0 &&\n this.#size < this.#capacity >> 2 &&\n this.#capacity > MIN_CAPACITY\n ) {\n this.#shrink();\n }\n\n return value;\n }\n\n /**\n * Removes all elements matching `value` (by identity `===`).\n *\n * This is O(n) — suitable for rare operations like cancellation.\n *\n * @returns The number of elements removed.\n */\n delete(value: T): number {\n if (this.#size === 0) {\n return 0;\n }\n // Rebuild the buffer without matching elements.\n const newBuffer: (T | undefined)[] = Array.from({length: this.#capacity});\n let newSize = 0;\n let count = 0;\n for (let i = 0; i < this.#size; i++) {\n const item = this.#buffer[(this.#head + i) % this.#capacity];\n if (item === value) {\n count++;\n } else {\n newBuffer[newSize++] = item;\n }\n }\n this.#buffer = newBuffer;\n this.#head = 0;\n this.#size = newSize;\n return count;\n }\n\n /**\n * Removes and returns all elements in FIFO order, resetting the buffer.\n */\n drain(): T[] {\n const result = this.toArray();\n this.#head = 0;\n this.#size = 0;\n this.#buffer = Array.from({length: this.#capacity});\n return result;\n }\n\n /** Copies all elements in FIFO order without removing them. */\n toArray(): T[] {\n const result = Array.from<T>({length: this.#size});\n for (let i = 0; i < this.#size; i++) {\n result[i] = this.#buffer[(this.#head + i) % this.#capacity] as T;\n }\n return result;\n }\n\n /** Removes all elements and releases extra capacity. */\n clear(): void {\n this.#head = 0;\n this.#size = 0;\n this.#capacity = MIN_CAPACITY;\n this.#buffer = Array.from({length: this.#capacity});\n }\n\n /**\n * Grows the buffer in place by doubling its length and relocating\n * only the wrapped-around elements (those before #head) into the\n * newly available space. No new array is allocated.\n */\n #grow(): void {\n const oldLen = this.#buffer.length;\n const newLen = oldLen * 2;\n this.#buffer.length = newLen;\n this.#capacity = newLen;\n\n // Copy wrapped-around elements (indices 0..head-1) into the new space.\n for (let i = 0; i < this.#head; i++) {\n this.#buffer[oldLen + i] = this.#buffer[i];\n this.#buffer[i] = undefined; // ensure gc when the element is removed\n }\n }\n\n /**\n * Shrinks the buffer in place by halving its length. Elements whose\n * indices fall in the removed half are relocated into the lower half,\n * then the array is truncated.\n */\n #shrink(): void {\n const oldLen = this.#buffer.length;\n const newLen = Math.max(MIN_CAPACITY, oldLen >> 1);\n\n // Move elements that sit in the upper half down by newLen.\n const left = Math.max(newLen, this.#head);\n const right = Math.min(this.#head + this.#size, oldLen);\n for (let i = left; i < right; i++) {\n this.#buffer[i - newLen] = this.#buffer[i];\n }\n\n if (this.#head >= newLen) {\n this.#head -= newLen;\n }\n this.#buffer.length = newLen;\n this.#capacity = newLen;\n }\n}\n"],"mappings":";AAAA,IAAM,2BAA2B;AACjC,IAAM,eAAe;;;;;;;;;;;;AAarB,IAAa,aAAb,MAA2B;CACzB;CACA,QAAQ;CACR,QAAQ;CACR;CAEA,YAAY,kBAAkB,0BAA0B;EACtD,KAAKA,YAAY,KAAK,IAAI,cAAc,eAAe;EACvD,KAAKC,UAAU,MAAM,KAAK,EAAC,QAAQ,gBAAe,CAAC;CACrD;CAEA,IAAI,OAAe;EACjB,OAAO,KAAKC;CACd;CAEA,KAAK,OAAgB;EACnB,IAAI,KAAKA,UAAU,KAAKF,WACtB,KAAKG,MAAM;EAEb,KAAKF,SAAS,KAAKG,QAAQ,KAAKF,SAAS,KAAKF,aAAa;EAC3D,KAAKE;CACP;;CAGA,OAAsB;EACpB,OAAO,KAAKA,UAAU,IAClB,KAAA,IACA,KAAKD,SAAS,KAAKG,QAAQ,KAAKF,QAAQ,KAAK,KAAKF;CACxD;;CAGA,YAAY,OAAgB;EAC1B,IAAI,KAAKE,UAAU,GACjB,KAAK,KAAK,KAAK;OAEf,KAAKD,SAAS,KAAKG,QAAQ,KAAKF,QAAQ,KAAK,KAAKF,aAAa;CAEnE;;CAGA,QAAuB;EACrB,IAAI,KAAKE,UAAU,GACjB;EAEF,MAAM,QAAQ,KAAKD,QAAQ,KAAKG;EAChC,KAAKH,QAAQ,KAAKG,SAAS,KAAA;EAC3B,KAAKA,SAAS,KAAKA,QAAQ,KAAK,KAAKJ;EACrC,KAAKE;EAGL,IACE,KAAKA,QAAQ,KACb,KAAKA,QAAQ,KAAKF,aAAa,KAC/B,KAAKA,YAAY,cAEjB,KAAKK,QAAQ;EAGf,OAAO;CACT;;;;;;;;CASA,OAAO,OAAkB;EACvB,IAAI,KAAKH,UAAU,GACjB,OAAO;EAGT,MAAM,YAA+B,MAAM,KAAK,EAAC,QAAQ,KAAKF,UAAS,CAAC;EACxE,IAAI,UAAU;EACd,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,IAAI,KAAKE,OAAO,KAAK;GACnC,MAAM,OAAO,KAAKD,SAAS,KAAKG,QAAQ,KAAK,KAAKJ;GAClD,IAAI,SAAS,OACX;QAEA,UAAU,aAAa;EAE3B;EACA,KAAKC,UAAU;EACf,KAAKG,QAAQ;EACb,KAAKF,QAAQ;EACb,OAAO;CACT;;;;CAKA,QAAa;EACX,MAAM,SAAS,KAAK,QAAQ;EAC5B,KAAKE,QAAQ;EACb,KAAKF,QAAQ;EACb,KAAKD,UAAU,MAAM,KAAK,EAAC,QAAQ,KAAKD,UAAS,CAAC;EAClD,OAAO;CACT;;CAGA,UAAe;EACb,MAAM,SAAS,MAAM,KAAQ,EAAC,QAAQ,KAAKE,MAAK,CAAC;EACjD,KAAK,IAAI,IAAI,GAAG,IAAI,KAAKA,OAAO,KAC9B,OAAO,KAAK,KAAKD,SAAS,KAAKG,QAAQ,KAAK,KAAKJ;EAEnD,OAAO;CACT;;CAGA,QAAc;EACZ,KAAKI,QAAQ;EACb,KAAKF,QAAQ;EACb,KAAKF,YAAY;EACjB,KAAKC,UAAU,MAAM,KAAK,EAAC,QAAQ,KAAKD,UAAS,CAAC;CACpD;;;;;;CAOA,QAAc;EACZ,MAAM,SAAS,KAAKC,QAAQ;EAC5B,MAAM,SAAS,SAAS;EACxB,KAAKA,QAAQ,SAAS;EACtB,KAAKD,YAAY;EAGjB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAKI,OAAO,KAAK;GACnC,KAAKH,QAAQ,SAAS,KAAK,KAAKA,QAAQ;GACxC,KAAKA,QAAQ,KAAK,KAAA;EACpB;CACF;;;;;;CAOA,UAAgB;EACd,MAAM,SAAS,KAAKA,QAAQ;EAC5B,MAAM,SAAS,KAAK,IAAI,cAAc,UAAU,CAAC;EAGjD,MAAM,OAAO,KAAK,IAAI,QAAQ,KAAKG,KAAK;EACxC,MAAM,QAAQ,KAAK,IAAI,KAAKA,QAAQ,KAAKF,OAAO,MAAM;EACtD,KAAK,IAAI,IAAI,MAAM,IAAI,OAAO,KAC5B,KAAKD,QAAQ,IAAI,UAAU,KAAKA,QAAQ;EAG1C,IAAI,KAAKG,SAAS,QAChB,KAAKA,SAAS;EAEhB,KAAKH,QAAQ,SAAS;EACtB,KAAKD,YAAY;CACnB;AACF"}
1
+ {"version":3,"file":"ring-buffer.js","names":["#capacity","#buffer","#size","#grow","#head","#shrink"],"sources":["../../../../shared/src/ring-buffer.ts"],"sourcesContent":["const DEFAULT_INITIAL_CAPACITY = 16;\nconst MIN_CAPACITY = 16;\n\n/**\n * A FIFO ring buffer backed by a circular array. Provides:\n *\n * - `push()` — O(1) amortized (O(n) on resize)\n * - `shift()` — O(1)\n * - `size` — O(1)\n * - `drain()` — O(n)\n *\n * The buffer grows (doubles) when full and shrinks (halves) when\n * utilization drops below 25%, bounded by {@link MIN_CAPACITY}.\n */\nexport class RingBuffer<T> {\n #buffer: (T | undefined)[];\n #head = 0;\n #size = 0;\n #capacity: number;\n\n constructor(initialCapacity = DEFAULT_INITIAL_CAPACITY) {\n this.#capacity = Math.max(MIN_CAPACITY, initialCapacity);\n this.#buffer = Array.from({length: initialCapacity});\n }\n\n get size(): number {\n return this.#size;\n }\n\n push(value: T): void {\n if (this.#size === this.#capacity) {\n this.#grow();\n }\n this.#buffer[(this.#head + this.#size) % this.#capacity] = value;\n this.#size++;\n }\n\n /** Removes and returns the front element, or `undefined` if empty. */\n shift(): T | undefined {\n if (this.#size === 0) {\n return undefined;\n }\n const value = this.#buffer[this.#head];\n this.#buffer[this.#head] = undefined; // allow GC of removed element\n this.#head = (this.#head + 1) % this.#capacity;\n this.#size--;\n\n // Shrink when utilization drops below 25%, keeping a minimum capacity.\n if (\n this.#size > 0 &&\n this.#size < this.#capacity >> 2 &&\n this.#capacity > MIN_CAPACITY\n ) {\n this.#shrink();\n }\n\n return value;\n }\n\n /**\n * Removes all elements matching `value` (by identity `===`).\n *\n * This is O(n) — suitable for rare operations like cancellation.\n *\n * @returns The number of elements removed.\n */\n delete(value: T): number {\n if (this.#size === 0) {\n return 0;\n }\n // Rebuild the buffer without matching elements.\n const newBuffer: (T | undefined)[] = Array.from({length: this.#capacity});\n let newSize = 0;\n let count = 0;\n for (let i = 0; i < this.#size; i++) {\n const item = this.#buffer[(this.#head + i) % this.#capacity];\n if (item === value) {\n count++;\n } else {\n newBuffer[newSize++] = item;\n }\n }\n this.#buffer = newBuffer;\n this.#head = 0;\n this.#size = newSize;\n return count;\n }\n\n /**\n * Removes and returns all elements in FIFO order, resetting the buffer.\n */\n drain(): T[] {\n const result = Array.from<T>({length: this.#size});\n for (let i = 0; i < this.#size; i++) {\n result[i] = this.#buffer[(this.#head + i) % this.#capacity] as T;\n }\n this.#head = 0;\n this.#size = 0;\n this.#buffer = Array.from({length: this.#capacity});\n return result;\n }\n\n /**\n * Grows the buffer in place by doubling its length and relocating\n * only the wrapped-around elements (those before #head) into the\n * newly available space. No new array is allocated.\n */\n #grow(): void {\n const oldLen = this.#buffer.length;\n const newLen = oldLen * 2;\n this.#buffer.length = newLen;\n this.#capacity = newLen;\n\n // Copy wrapped-around elements (indices 0..head-1) into the new space.\n for (let i = 0; i < this.#head; i++) {\n this.#buffer[oldLen + i] = this.#buffer[i];\n this.#buffer[i] = undefined; // ensure gc when the element is removed\n }\n }\n\n /**\n * Shrinks the buffer in place by halving its length. Elements whose\n * indices fall in the removed half are relocated into the lower half,\n * then the array is truncated.\n */\n #shrink(): void {\n const oldLen = this.#buffer.length;\n const newLen = Math.max(MIN_CAPACITY, oldLen >> 1);\n\n // Move elements that sit in the upper half down by newLen.\n const left = Math.max(newLen, this.#head);\n const right = Math.min(this.#head + this.#size, oldLen);\n for (let i = left; i < right; i++) {\n this.#buffer[i - newLen] = this.#buffer[i];\n }\n\n if (this.#head >= newLen) {\n this.#head -= newLen;\n }\n this.#buffer.length = newLen;\n this.#capacity = newLen;\n }\n}\n"],"mappings":";AAAA,IAAM,2BAA2B;AACjC,IAAM,eAAe;;;;;;;;;;;;AAarB,IAAa,aAAb,MAA2B;CACzB;CACA,QAAQ;CACR,QAAQ;CACR;CAEA,YAAY,kBAAkB,0BAA0B;EACtD,KAAKA,YAAY,KAAK,IAAI,cAAc,eAAe;EACvD,KAAKC,UAAU,MAAM,KAAK,EAAC,QAAQ,gBAAe,CAAC;CACrD;CAEA,IAAI,OAAe;EACjB,OAAO,KAAKC;CACd;CAEA,KAAK,OAAgB;EACnB,IAAI,KAAKA,UAAU,KAAKF,WACtB,KAAKG,MAAM;EAEb,KAAKF,SAAS,KAAKG,QAAQ,KAAKF,SAAS,KAAKF,aAAa;EAC3D,KAAKE;CACP;;CAGA,QAAuB;EACrB,IAAI,KAAKA,UAAU,GACjB;EAEF,MAAM,QAAQ,KAAKD,QAAQ,KAAKG;EAChC,KAAKH,QAAQ,KAAKG,SAAS,KAAA;EAC3B,KAAKA,SAAS,KAAKA,QAAQ,KAAK,KAAKJ;EACrC,KAAKE;EAGL,IACE,KAAKA,QAAQ,KACb,KAAKA,QAAQ,KAAKF,aAAa,KAC/B,KAAKA,YAAY,cAEjB,KAAKK,QAAQ;EAGf,OAAO;CACT;;;;;;;;CASA,OAAO,OAAkB;EACvB,IAAI,KAAKH,UAAU,GACjB,OAAO;EAGT,MAAM,YAA+B,MAAM,KAAK,EAAC,QAAQ,KAAKF,UAAS,CAAC;EACxE,IAAI,UAAU;EACd,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,IAAI,KAAKE,OAAO,KAAK;GACnC,MAAM,OAAO,KAAKD,SAAS,KAAKG,QAAQ,KAAK,KAAKJ;GAClD,IAAI,SAAS,OACX;QAEA,UAAU,aAAa;EAE3B;EACA,KAAKC,UAAU;EACf,KAAKG,QAAQ;EACb,KAAKF,QAAQ;EACb,OAAO;CACT;;;;CAKA,QAAa;EACX,MAAM,SAAS,MAAM,KAAQ,EAAC,QAAQ,KAAKA,MAAK,CAAC;EACjD,KAAK,IAAI,IAAI,GAAG,IAAI,KAAKA,OAAO,KAC9B,OAAO,KAAK,KAAKD,SAAS,KAAKG,QAAQ,KAAK,KAAKJ;EAEnD,KAAKI,QAAQ;EACb,KAAKF,QAAQ;EACb,KAAKD,UAAU,MAAM,KAAK,EAAC,QAAQ,KAAKD,UAAS,CAAC;EAClD,OAAO;CACT;;;;;;CAOA,QAAc;EACZ,MAAM,SAAS,KAAKC,QAAQ;EAC5B,MAAM,SAAS,SAAS;EACxB,KAAKA,QAAQ,SAAS;EACtB,KAAKD,YAAY;EAGjB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAKI,OAAO,KAAK;GACnC,KAAKH,QAAQ,SAAS,KAAK,KAAKA,QAAQ;GACxC,KAAKA,QAAQ,KAAK,KAAA;EACpB;CACF;;;;;;CAOA,UAAgB;EACd,MAAM,SAAS,KAAKA,QAAQ;EAC5B,MAAM,SAAS,KAAK,IAAI,cAAc,UAAU,CAAC;EAGjD,MAAM,OAAO,KAAK,IAAI,QAAQ,KAAKG,KAAK;EACxC,MAAM,QAAQ,KAAK,IAAI,KAAKA,QAAQ,KAAKF,OAAO,MAAM;EACtD,KAAK,IAAI,IAAI,MAAM,IAAI,OAAO,KAC5B,KAAKD,QAAQ,IAAI,UAAU,KAAKA,QAAQ;EAG1C,IAAI,KAAKG,SAAS,QAChB,KAAKA,SAAS;EAEhB,KAAKH,QAAQ,SAAS;EACtB,KAAKD,YAAY;CACnB;AACF"}
@@ -1,10 +1,10 @@
1
1
  import { assert, unreachable } from "../../shared/src/asserts.js";
2
2
  import { hasOwn } from "../../shared/src/has-own.js";
3
3
  import "../../shared/src/json.js";
4
+ import { last, zip } from "../../shared/src/arrays.js";
4
5
  import { must } from "../../shared/src/must.js";
5
6
  import { clientToServer } from "../../zero-schema/src/name-mapper.js";
6
7
  import { completeOrdering } from "../../zql/src/query/complete-ordering.js";
7
- import { last, zip } from "../../shared/src/arrays.js";
8
8
  import { parse } from "../../shared/src/bigint-json.js";
9
9
  import { sql, sqlConvertColumnArg, sqlConvertPluralLiteralArg, sqlConvertSingularLiteralArg } from "./sql.js";
10
10
  //#region ../z2s/src/compiler.ts
@@ -1,6 +1,6 @@
1
1
  var package_default = {
2
2
  name: "@rocicorp/zero",
3
- version: "1.10.0-canary.23",
3
+ version: "1.10.0-canary.25",
4
4
  description: "Zero is a web framework for serverless web development.",
5
5
  homepage: "https://zero.rocicorp.dev",
6
6
  bugs: { "url": "https://bugs.rocicorp.dev" },
@@ -146,12 +146,13 @@ var package_default = {
146
146
  "cloudevents": "^10.0.0",
147
147
  "command-line-args": "^6.0.1",
148
148
  "command-line-usage": "^7.0.3",
149
- "compare-utf8": "^0.2.3",
149
+ "compare-utf8": "^0.2.0",
150
150
  "defu": "^6.1.4",
151
151
  "eventemitter3": "^5.0.1",
152
152
  "fastify": "^5.0.0",
153
153
  "is-in-subnet": "^4.0.1",
154
154
  "jose": "^5.9.3",
155
+ "js-xxhash": "^4.0.0",
155
156
  "json-custom-numbers": "^3.1.1",
156
157
  "kasi": "^1.1.0",
157
158
  "nanoid": "^5.1.2",
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":[],"sources":["../../package.json"],"sourcesContent":["{\n \"name\": \"@rocicorp/zero\",\n \"version\": \"1.10.0-canary.23\",\n \"description\": \"Zero is a web framework for serverless web development.\",\n \"homepage\": \"https://zero.rocicorp.dev\",\n \"bugs\": {\n \"url\": \"https://bugs.rocicorp.dev\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": \"Rocicorp, Inc.\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/rocicorp/mono.git\",\n \"directory\": \"packages/zero\"\n },\n \"bin\": {\n \"analyze-query\": \"./out/zero/src/analyze-query.js\",\n \"ast-to-zql\": \"./out/zero/src/ast-to-zql.js\",\n \"transform-query\": \"./out/zero/src/transform-query.js\",\n \"zero-build-schema\": \"./out/zero/src/build-schema.js\",\n \"zero-cache\": \"./out/zero/src/cli.js\",\n \"zero-cache-dev\": \"./out/zero/src/zero-cache-dev.js\",\n \"zero-deploy-permissions\": \"./out/zero/src/deploy-permissions.js\",\n \"zero-out\": \"./out/zero/src/zero-out.js\"\n },\n \"files\": [\n \"out\",\n \"!*.tsbuildinfo\"\n ],\n \"type\": \"module\",\n \"main\": \"out/zero/src/zero.js\",\n \"module\": \"out/zero/src/zero.js\",\n \"types\": \"out/zero/src/zero.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./out/zero/src/zero.d.ts\",\n \"default\": \"./out/zero/src/zero.js\"\n },\n \"./analyze\": {\n \"types\": \"./out/zero/src/analyze.d.ts\",\n \"default\": \"./out/zero/src/analyze.js\"\n },\n \"./bindings\": {\n \"types\": \"./out/zero/src/bindings.d.ts\",\n \"default\": \"./out/zero/src/bindings.js\"\n },\n \"./change-protocol/v0\": {\n \"types\": \"./out/zero/src/change-protocol/v0.d.ts\",\n \"default\": \"./out/zero/src/change-protocol/v0.js\"\n },\n \"./expo-sqlite\": {\n \"types\": \"./out/zero/src/expo-sqlite.d.ts\",\n \"default\": \"./out/zero/src/expo-sqlite.js\"\n },\n \"./op-sqlite\": {\n \"types\": \"./out/zero/src/op-sqlite.d.ts\",\n \"default\": \"./out/zero/src/op-sqlite.js\"\n },\n \"./pg\": {\n \"types\": \"./out/zero/src/pg.d.ts\",\n \"default\": \"./out/zero/src/pg.js\"\n },\n \"./react\": {\n \"types\": \"./out/zero/src/react.d.ts\",\n \"default\": \"./out/zero/src/react.js\"\n },\n \"./react-native\": {\n \"types\": \"./out/zero/src/react-native.d.ts\",\n \"default\": \"./out/zero/src/react-native.js\"\n },\n \"./server\": {\n \"types\": \"./out/zero/src/server.d.ts\",\n \"default\": \"./out/zero/src/server.js\"\n },\n \"./server/adapters/drizzle\": {\n \"types\": \"./out/zero/src/adapters/drizzle.d.ts\",\n \"default\": \"./out/zero/src/adapters/drizzle.js\"\n },\n \"./server/adapters/kysely\": {\n \"types\": \"./out/zero/src/adapters/kysely.d.ts\",\n \"default\": \"./out/zero/src/adapters/kysely.js\"\n },\n \"./server/adapters/prisma\": {\n \"types\": \"./out/zero/src/adapters/prisma.d.ts\",\n \"default\": \"./out/zero/src/adapters/prisma.js\"\n },\n \"./server/adapters/pg\": {\n \"types\": \"./out/zero/src/adapters/pg.d.ts\",\n \"default\": \"./out/zero/src/adapters/pg.js\"\n },\n \"./server/adapters/postgresjs\": {\n \"types\": \"./out/zero/src/adapters/postgresjs.d.ts\",\n \"default\": \"./out/zero/src/adapters/postgresjs.js\"\n },\n \"./solid\": {\n \"types\": \"./out/zero/src/solid.d.ts\",\n \"default\": \"./out/zero/src/solid.js\"\n },\n \"./sqlite\": {\n \"types\": \"./out/zero/src/sqlite.d.ts\",\n \"default\": \"./out/zero/src/sqlite.js\"\n },\n \"./zqlite\": {\n \"types\": \"./out/zero/src/zqlite.d.ts\",\n \"default\": \"./out/zero/src/zqlite.js\"\n }\n },\n \"scripts\": {\n \"build\": \"node --experimental-strip-types --no-warnings tool/build.ts\",\n \"build:watch\": \"node --experimental-strip-types --no-warnings tool/build.ts --watch\",\n \"check-types\": \"tsc -p tsconfig.client.json && tsc -p tsconfig.server.json\",\n \"check-types:client:watch\": \"tsc -p tsconfig.client.json --watch\",\n \"check-types:server:watch\": \"tsc -p tsconfig.server.json --watch\",\n \"format\": \"oxfmt .\",\n \"check-format\": \"oxfmt --check .\",\n \"lint\": \"oxlint --quiet --config ../../oxlint.config.ts src/\",\n \"docs\": \"node --experimental-strip-types --no-warnings tool/generate-docs.ts\",\n \"docs:server\": \"node --watch --experimental-strip-types --no-warnings tool/generate-docs.ts --server\",\n \"fmt\": \"oxfmt .\",\n \"check-fmt\": \"oxfmt --check .\"\n },\n \"dependencies\": {\n \"@badrap/valita\": \"0.3.11\",\n \"@databases/escape-identifier\": \"^1.0.3\",\n \"@databases/sql\": \"^3.3.0\",\n \"@dotenvx/dotenvx\": \"^1.39.0\",\n \"@drdgvhbh/postgres-error-codes\": \"^0.0.6\",\n \"@fastify/cors\": \"^10.0.0\",\n \"@fastify/websocket\": \"^11.0.0\",\n \"@google-cloud/precise-date\": \"^4.0.0\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/api-logs\": \"^0.218.0\",\n \"@opentelemetry/auto-instrumentations-node\": \"^0.76.0\",\n \"@opentelemetry/exporter-metrics-otlp-http\": \"^0.218.0\",\n \"@opentelemetry/resources\": \"^2.7.1\",\n \"@opentelemetry/sdk-metrics\": \"^2.7.1\",\n \"@opentelemetry/sdk-node\": \"^0.218.0\",\n \"@opentelemetry/sdk-trace-node\": \"^2.7.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.41.1\",\n \"@postgresql-typed/oids\": \"^0.2.0\",\n \"@rocicorp/lock\": \"^1.0.4\",\n \"@rocicorp/logger\": \"^6.1.0\",\n \"@rocicorp/resolver\": \"^1.0.2\",\n \"@rocicorp/zero-sqlite3\": \"^1.1.4\",\n \"@standard-schema/spec\": \"^1.0.0\",\n \"@types/basic-auth\": \"^1.1.8\",\n \"@types/ws\": \"^8.5.12\",\n \"basic-auth\": \"^2.0.1\",\n \"chalk-template\": \"^1.1.0\",\n \"chokidar\": \"^4.0.1\",\n \"cloudevents\": \"^10.0.0\",\n \"command-line-args\": \"^6.0.1\",\n \"command-line-usage\": \"^7.0.3\",\n \"compare-utf8\": \"^0.2.3\",\n \"defu\": \"^6.1.4\",\n \"eventemitter3\": \"^5.0.1\",\n \"fastify\": \"^5.0.0\",\n \"is-in-subnet\": \"^4.0.1\",\n \"jose\": \"^5.9.3\",\n \"json-custom-numbers\": \"^3.1.1\",\n \"kasi\": \"^1.1.0\",\n \"nanoid\": \"^5.1.2\",\n \"oxfmt\": \"^0.45.0\",\n \"parse-prometheus-text-format\": \"^1.1.1\",\n \"pg-format\": \"npm:pg-format-fix@^1.0.5\",\n \"postgres\": \"3.4.7\",\n \"semver\": \"^7.5.4\",\n \"url-pattern\": \"^1.0.3\",\n \"urlpattern-polyfill\": \"^10.1.0\",\n \"ws\": \"^8.18.1\"\n },\n \"devDependencies\": {\n \"@op-engineering/op-sqlite\": \">=15\",\n \"@vitest/runner\": \"^4.1.6\",\n \"analyze-query\": \"workspace:*\",\n \"ast-to-zql\": \"workspace:*\",\n \"expo-sqlite\": \">=15\",\n \"oxc-parser\": \"^0.129.0\",\n \"replicache\": \"workspace:*\",\n \"shared\": \"workspace:*\",\n \"syncpack\": \"^14.3.0\",\n \"typedoc\": \"^0.28.17\",\n \"typedoc-plugin-markdown\": \"^4.10.0\",\n \"typescript\": \"~6.0.2\",\n \"vite\": \"^8.0.13\",\n \"vitest\": \"^4.1.6\",\n \"zero-cache\": \"workspace:*\",\n \"zero-client\": \"workspace:*\",\n \"zero-pg\": \"workspace:*\",\n \"zero-react\": \"workspace:*\",\n \"zero-server\": \"workspace:*\",\n \"zero-solid\": \"workspace:*\",\n \"zqlite\": \"workspace:*\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"packageManager\": \"pnpm@11.11.0\"\n}\n"],"mappings":""}
1
+ {"version":3,"file":"package.js","names":[],"sources":["../../package.json"],"sourcesContent":["{\n \"name\": \"@rocicorp/zero\",\n \"version\": \"1.10.0-canary.25\",\n \"description\": \"Zero is a web framework for serverless web development.\",\n \"homepage\": \"https://zero.rocicorp.dev\",\n \"bugs\": {\n \"url\": \"https://bugs.rocicorp.dev\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": \"Rocicorp, Inc.\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/rocicorp/mono.git\",\n \"directory\": \"packages/zero\"\n },\n \"bin\": {\n \"analyze-query\": \"./out/zero/src/analyze-query.js\",\n \"ast-to-zql\": \"./out/zero/src/ast-to-zql.js\",\n \"transform-query\": \"./out/zero/src/transform-query.js\",\n \"zero-build-schema\": \"./out/zero/src/build-schema.js\",\n \"zero-cache\": \"./out/zero/src/cli.js\",\n \"zero-cache-dev\": \"./out/zero/src/zero-cache-dev.js\",\n \"zero-deploy-permissions\": \"./out/zero/src/deploy-permissions.js\",\n \"zero-out\": \"./out/zero/src/zero-out.js\"\n },\n \"files\": [\n \"out\",\n \"!*.tsbuildinfo\"\n ],\n \"type\": \"module\",\n \"main\": \"out/zero/src/zero.js\",\n \"module\": \"out/zero/src/zero.js\",\n \"types\": \"out/zero/src/zero.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./out/zero/src/zero.d.ts\",\n \"default\": \"./out/zero/src/zero.js\"\n },\n \"./analyze\": {\n \"types\": \"./out/zero/src/analyze.d.ts\",\n \"default\": \"./out/zero/src/analyze.js\"\n },\n \"./bindings\": {\n \"types\": \"./out/zero/src/bindings.d.ts\",\n \"default\": \"./out/zero/src/bindings.js\"\n },\n \"./change-protocol/v0\": {\n \"types\": \"./out/zero/src/change-protocol/v0.d.ts\",\n \"default\": \"./out/zero/src/change-protocol/v0.js\"\n },\n \"./expo-sqlite\": {\n \"types\": \"./out/zero/src/expo-sqlite.d.ts\",\n \"default\": \"./out/zero/src/expo-sqlite.js\"\n },\n \"./op-sqlite\": {\n \"types\": \"./out/zero/src/op-sqlite.d.ts\",\n \"default\": \"./out/zero/src/op-sqlite.js\"\n },\n \"./pg\": {\n \"types\": \"./out/zero/src/pg.d.ts\",\n \"default\": \"./out/zero/src/pg.js\"\n },\n \"./react\": {\n \"types\": \"./out/zero/src/react.d.ts\",\n \"default\": \"./out/zero/src/react.js\"\n },\n \"./react-native\": {\n \"types\": \"./out/zero/src/react-native.d.ts\",\n \"default\": \"./out/zero/src/react-native.js\"\n },\n \"./server\": {\n \"types\": \"./out/zero/src/server.d.ts\",\n \"default\": \"./out/zero/src/server.js\"\n },\n \"./server/adapters/drizzle\": {\n \"types\": \"./out/zero/src/adapters/drizzle.d.ts\",\n \"default\": \"./out/zero/src/adapters/drizzle.js\"\n },\n \"./server/adapters/kysely\": {\n \"types\": \"./out/zero/src/adapters/kysely.d.ts\",\n \"default\": \"./out/zero/src/adapters/kysely.js\"\n },\n \"./server/adapters/prisma\": {\n \"types\": \"./out/zero/src/adapters/prisma.d.ts\",\n \"default\": \"./out/zero/src/adapters/prisma.js\"\n },\n \"./server/adapters/pg\": {\n \"types\": \"./out/zero/src/adapters/pg.d.ts\",\n \"default\": \"./out/zero/src/adapters/pg.js\"\n },\n \"./server/adapters/postgresjs\": {\n \"types\": \"./out/zero/src/adapters/postgresjs.d.ts\",\n \"default\": \"./out/zero/src/adapters/postgresjs.js\"\n },\n \"./solid\": {\n \"types\": \"./out/zero/src/solid.d.ts\",\n \"default\": \"./out/zero/src/solid.js\"\n },\n \"./sqlite\": {\n \"types\": \"./out/zero/src/sqlite.d.ts\",\n \"default\": \"./out/zero/src/sqlite.js\"\n },\n \"./zqlite\": {\n \"types\": \"./out/zero/src/zqlite.d.ts\",\n \"default\": \"./out/zero/src/zqlite.js\"\n }\n },\n \"scripts\": {\n \"build\": \"node --experimental-strip-types --no-warnings tool/build.ts\",\n \"build:watch\": \"node --experimental-strip-types --no-warnings tool/build.ts --watch\",\n \"check-types\": \"tsc -p tsconfig.client.json && tsc -p tsconfig.server.json\",\n \"check-types:client:watch\": \"tsc -p tsconfig.client.json --watch\",\n \"check-types:server:watch\": \"tsc -p tsconfig.server.json --watch\",\n \"format\": \"oxfmt .\",\n \"check-format\": \"oxfmt --check .\",\n \"lint\": \"oxlint --quiet --config ../../oxlint.config.ts src/\",\n \"docs\": \"node --experimental-strip-types --no-warnings tool/generate-docs.ts\",\n \"docs:server\": \"node --watch --experimental-strip-types --no-warnings tool/generate-docs.ts --server\",\n \"fmt\": \"oxfmt .\",\n \"check-fmt\": \"oxfmt --check .\"\n },\n \"dependencies\": {\n \"@badrap/valita\": \"0.3.11\",\n \"@databases/escape-identifier\": \"^1.0.3\",\n \"@databases/sql\": \"^3.3.0\",\n \"@dotenvx/dotenvx\": \"^1.39.0\",\n \"@drdgvhbh/postgres-error-codes\": \"^0.0.6\",\n \"@fastify/cors\": \"^10.0.0\",\n \"@fastify/websocket\": \"^11.0.0\",\n \"@google-cloud/precise-date\": \"^4.0.0\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/api-logs\": \"^0.218.0\",\n \"@opentelemetry/auto-instrumentations-node\": \"^0.76.0\",\n \"@opentelemetry/exporter-metrics-otlp-http\": \"^0.218.0\",\n \"@opentelemetry/resources\": \"^2.7.1\",\n \"@opentelemetry/sdk-metrics\": \"^2.7.1\",\n \"@opentelemetry/sdk-node\": \"^0.218.0\",\n \"@opentelemetry/sdk-trace-node\": \"^2.7.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.41.1\",\n \"@postgresql-typed/oids\": \"^0.2.0\",\n \"@rocicorp/lock\": \"^1.0.4\",\n \"@rocicorp/logger\": \"^6.1.0\",\n \"@rocicorp/resolver\": \"^1.0.2\",\n \"@rocicorp/zero-sqlite3\": \"^1.1.4\",\n \"@standard-schema/spec\": \"^1.0.0\",\n \"@types/basic-auth\": \"^1.1.8\",\n \"@types/ws\": \"^8.5.12\",\n \"basic-auth\": \"^2.0.1\",\n \"chalk-template\": \"^1.1.0\",\n \"chokidar\": \"^4.0.1\",\n \"cloudevents\": \"^10.0.0\",\n \"command-line-args\": \"^6.0.1\",\n \"command-line-usage\": \"^7.0.3\",\n \"compare-utf8\": \"^0.2.0\",\n \"defu\": \"^6.1.4\",\n \"eventemitter3\": \"^5.0.1\",\n \"fastify\": \"^5.0.0\",\n \"is-in-subnet\": \"^4.0.1\",\n \"jose\": \"^5.9.3\",\n \"js-xxhash\": \"^4.0.0\",\n \"json-custom-numbers\": \"^3.1.1\",\n \"kasi\": \"^1.1.0\",\n \"nanoid\": \"^5.1.2\",\n \"oxfmt\": \"^0.45.0\",\n \"parse-prometheus-text-format\": \"^1.1.1\",\n \"pg-format\": \"npm:pg-format-fix@^1.0.5\",\n \"postgres\": \"3.4.7\",\n \"semver\": \"^7.5.4\",\n \"url-pattern\": \"^1.0.3\",\n \"urlpattern-polyfill\": \"^10.1.0\",\n \"ws\": \"^8.18.1\"\n },\n \"devDependencies\": {\n \"@op-engineering/op-sqlite\": \">=15\",\n \"@vitest/runner\": \"^4.1.6\",\n \"analyze-query\": \"workspace:*\",\n \"ast-to-zql\": \"workspace:*\",\n \"expo-sqlite\": \">=15\",\n \"oxc-parser\": \"^0.129.0\",\n \"replicache\": \"workspace:*\",\n \"shared\": \"workspace:*\",\n \"syncpack\": \"^14.3.0\",\n \"typedoc\": \"^0.28.17\",\n \"typedoc-plugin-markdown\": \"^4.10.0\",\n \"typescript\": \"~6.0.2\",\n \"vite\": \"^8.0.13\",\n \"vitest\": \"^4.1.6\",\n \"zero-cache\": \"workspace:*\",\n \"zero-client\": \"workspace:*\",\n \"zero-pg\": \"workspace:*\",\n \"zero-react\": \"workspace:*\",\n \"zero-server\": \"workspace:*\",\n \"zero-solid\": \"workspace:*\",\n \"zqlite\": \"workspace:*\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"packageManager\": \"pnpm@11.11.0\"\n}\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { simplifyCondition } from "../../../zql/src/query/expression.js";
2
1
  import { hashOfAST } from "../../../zero-protocol/src/query-hash.js";
2
+ import { simplifyCondition } from "../../../zql/src/query/expression.js";
3
3
  import { bindStaticParameters } from "../../../zql/src/builder/builder.js";
4
4
  //#region ../zero-cache/src/auth/read-authorizer.ts
5
5
  /**
@@ -111,10 +111,6 @@ export declare const zeroOptions: {
111
111
  type: v.Optional<boolean>;
112
112
  desc: string[];
113
113
  };
114
- pgPartialIndexTriggers: {
115
- type: v.Type<boolean>;
116
- hidden: boolean;
117
- };
118
114
  pgStreamInboundTimeoutMs: {
119
115
  type: v.Optional<number>;
120
116
  desc: string[];
@@ -281,14 +277,6 @@ export declare const zeroOptions: {
281
277
  type: v.Type<number>;
282
278
  desc: string[];
283
279
  };
284
- viewSyncerHydrationBudgetMs: {
285
- type: v.Type<number>;
286
- desc: string[];
287
- };
288
- viewSyncerQueryHydrationTimeoutMs: {
289
- type: v.Type<number>;
290
- desc: string[];
291
- };
292
280
  change: {
293
281
  db: {
294
282
  type: v.Optional<string>;
@@ -601,34 +589,21 @@ export declare const zeroOptions: {
601
589
  };
602
590
  minCheckpointPageCount: {
603
591
  type: v.Optional<number>;
604
- deprecated: string[];
605
- hidden: boolean;
592
+ desc: string[];
606
593
  };
607
594
  maxCheckpointPageCount: {
608
595
  type: v.Optional<number>;
609
596
  desc: string[];
610
597
  };
611
- forceCheckpointThresholdMB: {
612
- type: v.Type<number>;
613
- desc: string[];
614
- };
615
- maxWalSizeMB: {
616
- type: v.Type<number>;
617
- desc: string[];
618
- };
619
598
  incrementalBackupIntervalMinutes: {
620
599
  type: v.Type<number>;
621
600
  desc: string[];
622
601
  };
623
- snapshotBackupIntervalHours: {
624
- type: v.Type<number>;
625
- desc: string[];
626
- };
627
602
  incrementalBackupIntervalSeconds: {
628
603
  type: v.Type<number>;
629
604
  desc: string[];
630
605
  };
631
- snapshotBackupIntervalHoursV5: {
606
+ snapshotBackupIntervalHours: {
632
607
  type: v.Type<number>;
633
608
  desc: string[];
634
609
  };
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAUnD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,eAAO,MAAM,UAAU;;;;;;;;;CA+CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DhB,CAAC;AA0HF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,UAAU,EACV,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CACrD,CAAC;AAKF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4EtB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmIhB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkHlB,kBAAkB;;;;;;QASlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAomBpB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAIpD,wBAAgB,aAAa,CAC3B,IAAI,GAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAM,GAC7C,UAAU,CAaZ;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,GAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAM,GAC7C,oBAAoB,CAItB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,SAAS,GACpD,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,EACnD,QAAQ,EAAE,MAAM,GAAG,SAAS,WAwC7B;AAYD,wBAAgB,kBAAkB,SAEjC"}
@@ -274,10 +274,6 @@ var zeroOptions = {
274
274
  `(Note that this option has no effect for Postgres versions before 17.)`
275
275
  ]
276
276
  },
277
- pgPartialIndexTriggers: {
278
- type: valita_exports.boolean().default(false),
279
- hidden: true
280
- },
281
277
  pgStreamInboundTimeoutMs: {
282
278
  type: valita_exports.number().optional(),
283
279
  desc: [
@@ -338,12 +334,9 @@ var zeroOptions = {
338
334
  hidden: true
339
335
  },
340
336
  garbageCollectionInactivityThresholdHours: {
341
- type: valita_exports.number().default(168),
337
+ type: valita_exports.number().default(48),
342
338
  desc: [
343
339
  `The duration after which an inactive CVR is eligible for garbage collection.`,
344
- `Purging a CVR forces the next connection from that client group to`,
345
- `re-sync from scratch, so this should comfortably exceed how long a`,
346
- `typical user goes between sessions.`,
347
340
  `Note that garbage collection is an incremental, periodic process which does not`,
348
341
  `necessarily purge all eligible CVRs immediately.`
349
342
  ]
@@ -411,30 +404,6 @@ var zeroOptions = {
411
404
  `the cost of reduced throughput.`
412
405
  ]
413
406
  },
414
- viewSyncerHydrationBudgetMs: {
415
- type: valita_exports.number().assert((value) => Number.isSafeInteger(value) && value >= 0, "must be a nonnegative integer").default(0),
416
- desc: [
417
- `The soft time budget in milliseconds for hydrating inactive queries`,
418
- `during a view-syncer hydration pass. Active and internal queries always`,
419
- `finish, and time spent in custom-query transform round trips is not`,
420
- `charged to the budget. An inactive query not reached before the budget`,
421
- `is spent is evicted: its CVR record and the remaining TTL that would`,
422
- `have kept it warm are both dropped. A value of 0 disables`,
423
- `hydration-budget eviction.`
424
- ]
425
- },
426
- viewSyncerQueryHydrationTimeoutMs: {
427
- type: valita_exports.number().assert((value) => Number.isSafeInteger(value) && value >= 0, "must be a nonnegative integer").default(0),
428
- desc: [
429
- `The maximum processing time in milliseconds that a view-syncer spends`,
430
- `hydrating a single client query. Time spent yielding to other work is`,
431
- `not counted. A query whose hydration exceeds this limit is aborted and`,
432
- `removed from the client's view, and affected clients receive an error`,
433
- `for the query. The query is then rejected without being run again for`,
434
- `a cooldown period, after which a retry is allowed. Internal queries are`,
435
- `never aborted. A value of 0 disables the limit.`
436
- ]
437
- },
438
407
  change: {
439
408
  db: {
440
409
  type: valita_exports.string().optional(),
@@ -646,7 +615,7 @@ var zeroOptions = {
646
615
  ]
647
616
  },
648
617
  flowControlConsensusTimeoutProportion: {
649
- type: valita_exports.number().default(4),
618
+ type: valita_exports.number().default(2),
650
619
  desc: [
651
620
  `During periodic flow control checks (every 64kb), the amount of time to wait after the majority`,
652
621
  `of subscribers have acked, proportional to that interval, after which replication will continue`,
@@ -660,7 +629,7 @@ var zeroOptions = {
660
629
  ``,
661
630
  `For example, if the majority of subscribers ack a message in 2.5ms, a padding proportion of`,
662
631
  `1.0 instructs replication to continue after an additional 2.5ms; for a proportion of 2.0, an`,
663
- `additional 5.0ms, etc. The default value of 4.0 allows for a subscriber to be 5x slower than the`,
632
+ `additional 5.0ms, etc. The default value of 2.0 allows for a subscriber to be 3x slower than the`,
664
633
  `majority in the steady state, while similarly bounding the extent to which a temporarily lagging`,
665
634
  `subscriber (e.g. due to catchup) slows down the fleet.`,
666
635
  ``,
@@ -903,18 +872,26 @@ var zeroOptions = {
903
872
  checkpointThresholdMB: {
904
873
  type: valita_exports.number().default(40),
905
874
  desc: [
906
- `The size of the WAL file at which litestream performs background, best-effort (PASSIVE)`,
907
- `SQLite checkpoints to apply the writes in the WAL to the main database file. Checkpoints`,
908
- `result in new WAL (v3) or LTS (v5) files that are then backed up asynchronously.`,
875
+ `The size of the WAL file at which to perform an SQlite checkpoint to apply`,
876
+ `the writes in the WAL to the main database file. Each checkpoint creates`,
877
+ `a new WAL segment file that will be backed up by litestream (v3). Smaller thresholds`,
878
+ `may improve read performance, at the expense of creating more files to download`,
879
+ `when restoring the replica from the backup.`,
909
880
  ``,
910
- `Note that these PASSIVE checkpoints are skipped if a write is in progress, so high writes rates`,
911
- `can precipitate runaway wal growth. Also see {bold ZERO_LITESTREAM_FORCE_CHECKPOINT_THRESHOLD_MB}`
881
+ `This setting is only relevant when replicating with litestream v3, and is ignored`,
882
+ `when replicating with litestream v5.`
912
883
  ]
913
884
  },
914
885
  minCheckpointPageCount: {
915
886
  type: valita_exports.number().optional(),
916
- deprecated: [`Use {bold ZERO_CHECKPOINT_THRESHOLD_MB}`],
917
- hidden: true
887
+ desc: [
888
+ `The WAL page count at which SQLite attempts a PASSIVE checkpoint, which`,
889
+ `transfers pages to the main database file without blocking writers.`,
890
+ `Defaults to {bold checkpointThresholdMB * 250} (since SQLite page size is 4KB).`,
891
+ ``,
892
+ `This setting is only relevant when replicating with litestream v3, and is ignored`,
893
+ `when replicating with litestream v5.`
894
+ ]
918
895
  },
919
896
  maxCheckpointPageCount: {
920
897
  type: valita_exports.number().optional(),
@@ -927,45 +904,6 @@ var zeroOptions = {
927
904
  `when replicating with litestream v5.`
928
905
  ]
929
906
  },
930
- forceCheckpointThresholdMB: {
931
- type: valita_exports.number().default(256),
932
- desc: [
933
- `The size of the WAL file at which to pause writes and explicitly initiate a`,
934
- `local litestream sync. This is a safeguard for the situation in which litestream's`,
935
- `background checkpoints continually defer to incoming writes (i.e. high write load).`,
936
- ``,
937
- `If the WAL size reaches the forced checkpoint threshold, writes pause for an`,
938
- `an explicit litestream checkpoint, providing a flow-control mechanism to ensure timely`,
939
- `backups and prevent runaway wal growth.`,
940
- ``,
941
- `Note that these checkpoints {italic can} be skipped if litestream is performing a`,
942
- `snapshot at the time (though snapshots are disabled by default). For such configurations,`,
943
- `the {bold ZERO_LITESTREAM_MAX_WAL_SIZE_MB} provides an emergency break to prevent`,
944
- `exceeding available disk space.`,
945
- ``,
946
- `Set this to 0 to disable and instead rely on the litestream's default {bold truncate-page-n}`,
947
- `emergency break.`,
948
- ``,
949
- `This feature is only enabled with {bold ZERO_LITESTREAM_BACKUP_USING_V5}.`
950
- ]
951
- },
952
- maxWalSizeMB: {
953
- type: valita_exports.number().default(10240),
954
- desc: [
955
- `A fail-safe that pauses writes once the un-checkpointed WAL reaches this size,`,
956
- `resuming when litestream manages to checkpoint it. This bounds WAL growth (and`,
957
- `ultimately disk usage) whenever litestream cannot checkpoint — e.g. while it holds`,
958
- `the checkpoint lock for an in-progress snapshot — and serves as an alternative to`,
959
- `litestream's {bold truncate-page-n} emergency checkpoint, which would otherwise block`,
960
- `writes for a second "bounary" snapshot.`,
961
- ``,
962
- `Size this generously relative to available disk; it should rarely be hit, as`,
963
- `{bold ZERO_LITESTREAM_FORCE_CHECKPOINT_THRESHOLD_MB} keeps the WAL far smaller in`,
964
- `normal operation. Set to {bold 0} to disable.`,
965
- ``,
966
- `This feature is only enabled with {bold ZERO_LITESTREAM_BACKUP_USING_V5}.`
967
- ]
968
- },
969
907
  incrementalBackupIntervalMinutes: {
970
908
  type: valita_exports.number().default(15),
971
909
  desc: [
@@ -979,20 +917,6 @@ var zeroOptions = {
979
917
  `frequency, use {bold ZERO_LITESTREAM_INCREMENTAL_BACKUP_INTERVAL_SECONDS}.`
980
918
  ]
981
919
  },
982
- snapshotBackupIntervalHours: {
983
- type: valita_exports.number().default(12),
984
- desc: [
985
- `The interval between snapshot backups of the replica. Snapshot backups`,
986
- `make a full copy of the database to a new litestream generation. This`,
987
- `improves restore time at the expense of bandwidth. Applications with a`,
988
- `large database and low write rate can increase this interval to reduce`,
989
- `network usage for backups (litestream defaults to 24 hours).`,
990
- ``,
991
- `This option only applies to litestream v3 backups and will be deprecated/removed`,
992
- `once the zero-cache is transitioned to litestream v5. For configuring v5 backup`,
993
- `frequency, use {bold ZERO_LITESTREAM_SNAPSHOT_BACKUP_INTERVAL_HOURS_V5}.`
994
- ]
995
- },
996
920
  incrementalBackupIntervalSeconds: {
997
921
  type: valita_exports.number().default(15),
998
922
  desc: [
@@ -1008,28 +932,18 @@ var zeroOptions = {
1008
932
  `{bold ZERO_LITESTREAM_INCREMENTAL_BACKUP_INTERVAL_MINUTES}.`
1009
933
  ]
1010
934
  },
1011
- snapshotBackupIntervalHoursV5: {
1012
- type: valita_exports.number().default(720),
935
+ snapshotBackupIntervalHours: {
936
+ type: valita_exports.number().default(12),
1013
937
  desc: [
1014
- `The interval between snapshot backups of the replica when`,
1015
- `{bold ZERO_LITESTREAM_BACKUP_USING_V5} is enabled.`,
1016
- ``,
1017
- `By default, snapshots are effectively disabled (i.e. every 30 days)`,
1018
- `because v5 compaction fulfills the role that snapshots played in v3`,
1019
- `(i.e. because of litestream v5 compaction, restores will generally involve`,
1020
- `O(db-size) bytes.`,
1021
- ``,
1022
- `Snapshots are disabled by default because they hold a read-lock on`,
1023
- `the database and prevent wal checkpoints, introducing the risk of large wal`,
1024
- `files for large databases with a high write rate.`,
1025
- ``,
1026
- `If configuring the zero-cache to actually perform v5 snapshots, the`,
1027
- `{bold ZERO_LITESTREAM_MAX_WAL_SIZE_MB} option can be used to pause replication`,
1028
- `if the wal reaches a certain size and cannot be checkpointed because of an`,
1029
- `in-progress snapshot.`,
938
+ `The interval between snapshot backups of the replica. Snapshot backups`,
939
+ `make a full copy of the database to a new litestream generation. This`,
940
+ `improves restore time at the expense of bandwidth. Applications with a`,
941
+ `large database and low write rate can increase this interval to reduce`,
942
+ `network usage for backups (litestream defaults to 24 hours).`,
1030
943
  ``,
1031
- `This option only applies to litestream v5 backups. For v3 backups, use`,
1032
- `{bold ZERO_LITESTREAM_SNAPSHOT_BACKUP_INTERVAL_HOURS}.`
944
+ `This setting is applied when replicating with either litestream v3 or v5.`,
945
+ `Note, however, that snapshots are generally not needed to improve restore time`,
946
+ `with v5, and so a longer interval (e.g. the litestream default of 24h) is fine.`
1033
947
  ]
1034
948
  },
1035
949
  restoreParallelism: {