@rocicorp/zero 0.25.0-canary.0 → 0.25.0-canary.10

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 (1553) hide show
  1. package/out/analyze-query/src/bin-analyze.js +268 -257
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/analyze-query/src/bin-transform.js +31 -23
  4. package/out/analyze-query/src/bin-transform.js.map +1 -1
  5. package/out/analyze-query/src/explain-queries.js +13 -16
  6. package/out/analyze-query/src/explain-queries.js.map +1 -1
  7. package/out/analyze-query/src/run-ast.d.ts +3 -2
  8. package/out/analyze-query/src/run-ast.d.ts.map +1 -1
  9. package/out/analyze-query/src/run-ast.js +79 -73
  10. package/out/analyze-query/src/run-ast.js.map +1 -1
  11. package/out/ast-to-zql/src/ast-to-zql.js +146 -180
  12. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
  13. package/out/ast-to-zql/src/bin.js +51 -54
  14. package/out/ast-to-zql/src/bin.js.map +1 -1
  15. package/out/ast-to-zql/src/format.js +15 -14
  16. package/out/ast-to-zql/src/format.js.map +1 -1
  17. package/out/datadog/src/datadog-log-sink.js +223 -0
  18. package/out/datadog/src/datadog-log-sink.js.map +1 -0
  19. package/out/otel/src/enabled.js +15 -15
  20. package/out/otel/src/enabled.js.map +1 -1
  21. package/out/otel/src/log-options.js +36 -31
  22. package/out/otel/src/log-options.js.map +1 -1
  23. package/out/otel/src/maybe-time.js +14 -11
  24. package/out/otel/src/maybe-time.js.map +1 -1
  25. package/out/otel/src/span.js +30 -27
  26. package/out/otel/src/span.js.map +1 -1
  27. package/out/otel/src/test-log-config.js +10 -7
  28. package/out/otel/src/test-log-config.js.map +1 -1
  29. package/out/otel/src/version.js +5 -2
  30. package/out/otel/src/version.js.map +1 -1
  31. package/out/replicache/src/async-iterable-to-array.js +11 -0
  32. package/out/replicache/src/async-iterable-to-array.js.map +1 -0
  33. package/out/replicache/src/bg-interval.js +38 -0
  34. package/out/replicache/src/bg-interval.js.map +1 -0
  35. package/out/replicache/src/btree/diff.js +8 -0
  36. package/out/replicache/src/btree/diff.js.map +1 -0
  37. package/out/replicache/src/btree/node.js +400 -0
  38. package/out/replicache/src/btree/node.js.map +1 -0
  39. package/out/replicache/src/btree/read.d.ts +3 -2
  40. package/out/replicache/src/btree/read.d.ts.map +1 -1
  41. package/out/replicache/src/btree/read.js +266 -0
  42. package/out/replicache/src/btree/read.js.map +1 -0
  43. package/out/replicache/src/btree/splice.js +83 -0
  44. package/out/replicache/src/btree/splice.js.map +1 -0
  45. package/out/replicache/src/btree/write.d.ts +1 -1
  46. package/out/replicache/src/btree/write.d.ts.map +1 -1
  47. package/out/replicache/src/btree/write.js +163 -0
  48. package/out/replicache/src/btree/write.js.map +1 -0
  49. package/out/replicache/src/call-default-fetch.js +34 -0
  50. package/out/replicache/src/call-default-fetch.js.map +1 -0
  51. package/out/replicache/src/connection-loop-delegates.js +34 -0
  52. package/out/replicache/src/connection-loop-delegates.js.map +1 -0
  53. package/out/replicache/src/connection-loop.js +251 -0
  54. package/out/replicache/src/connection-loop.js.map +1 -0
  55. package/out/replicache/src/cookies.js +40 -0
  56. package/out/replicache/src/cookies.js.map +1 -0
  57. package/out/replicache/src/dag/chunk.js +59 -0
  58. package/out/replicache/src/dag/chunk.js.map +1 -0
  59. package/out/replicache/src/dag/gc.js +117 -0
  60. package/out/replicache/src/dag/gc.js.map +1 -0
  61. package/out/replicache/src/dag/key.js +20 -0
  62. package/out/replicache/src/dag/key.js.map +1 -0
  63. package/out/replicache/src/dag/lazy-store.d.ts +3 -2
  64. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
  65. package/out/replicache/src/dag/lazy-store.js +515 -0
  66. package/out/replicache/src/dag/lazy-store.js.map +1 -0
  67. package/out/replicache/src/dag/store-impl.js +183 -0
  68. package/out/replicache/src/dag/store-impl.js.map +1 -0
  69. package/out/replicache/src/dag/store.js +27 -0
  70. package/out/replicache/src/dag/store.js.map +1 -0
  71. package/out/replicache/src/dag/visitor.js +22 -0
  72. package/out/replicache/src/dag/visitor.js.map +1 -0
  73. package/out/replicache/src/db/commit.js +358 -0
  74. package/out/replicache/src/db/commit.js.map +1 -0
  75. package/out/replicache/src/db/index-operation-enum.js +7 -0
  76. package/out/replicache/src/db/index-operation-enum.js.map +1 -0
  77. package/out/replicache/src/db/index.js +134 -0
  78. package/out/replicache/src/db/index.js.map +1 -0
  79. package/out/replicache/src/db/meta-type-enum.js +7 -0
  80. package/out/replicache/src/db/meta-type-enum.js.map +1 -0
  81. package/out/replicache/src/db/read.d.ts +3 -2
  82. package/out/replicache/src/db/read.d.ts.map +1 -1
  83. package/out/replicache/src/db/read.js +72 -0
  84. package/out/replicache/src/db/read.js.map +1 -0
  85. package/out/replicache/src/db/rebase.d.ts +2 -2
  86. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  87. package/out/replicache/src/db/rebase.js +85 -0
  88. package/out/replicache/src/db/rebase.js.map +1 -0
  89. package/out/replicache/src/db/write.d.ts +2 -1
  90. package/out/replicache/src/db/write.d.ts.map +1 -1
  91. package/out/replicache/src/db/write.js +296 -0
  92. package/out/replicache/src/db/write.js.map +1 -0
  93. package/out/replicache/src/deleted-clients.js +104 -0
  94. package/out/replicache/src/deleted-clients.js.map +1 -0
  95. package/out/replicache/src/error-responses.js +34 -0
  96. package/out/replicache/src/error-responses.js.map +1 -0
  97. package/out/replicache/src/format-version-enum.js +11 -0
  98. package/out/replicache/src/format-version-enum.js.map +1 -0
  99. package/out/{chunk-EZM3XBAB.js → replicache/src/frozen-json.js} +8 -75
  100. package/out/replicache/src/frozen-json.js.map +1 -0
  101. package/out/replicache/src/get-default-puller.js +61 -0
  102. package/out/replicache/src/get-default-puller.js.map +1 -0
  103. package/out/replicache/src/get-default-pusher.js +39 -0
  104. package/out/replicache/src/get-default-pusher.js.map +1 -0
  105. package/out/replicache/src/get-kv-store-provider.js +23 -0
  106. package/out/replicache/src/get-kv-store-provider.js.map +1 -0
  107. package/out/replicache/src/hash.js +38 -0
  108. package/out/replicache/src/hash.js.map +1 -0
  109. package/out/replicache/src/http-request-info.js +10 -0
  110. package/out/replicache/src/http-request-info.js.map +1 -0
  111. package/out/replicache/src/http-status-unauthorized.js +5 -0
  112. package/out/replicache/src/http-status-unauthorized.js.map +1 -0
  113. package/out/replicache/src/index-defs.js +32 -0
  114. package/out/replicache/src/index-defs.js.map +1 -0
  115. package/out/replicache/src/invoke-kind-enum.js +7 -0
  116. package/out/replicache/src/invoke-kind-enum.js.map +1 -0
  117. package/out/{chunk-ZZXMKAAG.js → replicache/src/kv/expo-sqlite/store.js} +8 -16
  118. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
  119. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +80 -0
  120. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
  121. package/out/replicache/src/kv/idb-store.js +183 -0
  122. package/out/replicache/src/kv/idb-store.js.map +1 -0
  123. package/out/replicache/src/kv/mem-store.js +51 -0
  124. package/out/replicache/src/kv/mem-store.js.map +1 -0
  125. package/out/{op-sqlite.js → replicache/src/kv/op-sqlite/store.js} +7 -18
  126. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
  127. package/out/replicache/src/kv/op-sqlite/types.js +6 -0
  128. package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
  129. package/out/replicache/src/kv/read-impl.js +27 -0
  130. package/out/replicache/src/kv/read-impl.js.map +1 -0
  131. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  132. package/out/{chunk-ECUMGQGC.js → replicache/src/kv/sqlite-store.js} +27 -21
  133. package/out/replicache/src/kv/sqlite-store.js.map +1 -0
  134. package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
  135. package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
  136. package/out/replicache/src/kv/write-impl-base.js +57 -0
  137. package/out/replicache/src/kv/write-impl-base.js.map +1 -0
  138. package/out/replicache/src/kv/write-impl.js +30 -0
  139. package/out/replicache/src/kv/write-impl.js.map +1 -0
  140. package/out/replicache/src/lazy.js +13 -0
  141. package/out/replicache/src/lazy.js.map +1 -0
  142. package/out/replicache/src/log-options.d.ts +1 -1
  143. package/out/replicache/src/log-options.d.ts.map +1 -1
  144. package/out/replicache/src/log-options.js +9 -0
  145. package/out/replicache/src/log-options.js.map +1 -0
  146. package/out/replicache/src/make-idb-name.js +13 -0
  147. package/out/replicache/src/make-idb-name.js.map +1 -0
  148. package/out/replicache/src/new-client-channel.js +51 -0
  149. package/out/replicache/src/new-client-channel.js.map +1 -0
  150. package/out/replicache/src/on-persist-channel.js +36 -0
  151. package/out/replicache/src/on-persist-channel.js.map +1 -0
  152. package/out/replicache/src/patch-operation.js +42 -0
  153. package/out/replicache/src/patch-operation.js.map +1 -0
  154. package/out/replicache/src/pending-mutations.js +16 -0
  155. package/out/replicache/src/pending-mutations.js.map +1 -0
  156. package/out/replicache/src/persist/client-gc.js +58 -0
  157. package/out/replicache/src/persist/client-gc.js.map +1 -0
  158. package/out/replicache/src/persist/client-group-gc.js +43 -0
  159. package/out/replicache/src/persist/client-group-gc.js.map +1 -0
  160. package/out/replicache/src/persist/client-groups.js +184 -0
  161. package/out/replicache/src/persist/client-groups.js.map +1 -0
  162. package/out/replicache/src/persist/clients.d.ts +3 -2
  163. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  164. package/out/replicache/src/persist/clients.js +353 -0
  165. package/out/replicache/src/persist/clients.js.map +1 -0
  166. package/out/replicache/src/persist/collect-idb-databases.d.ts +3 -3
  167. package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
  168. package/out/replicache/src/persist/collect-idb-databases.js +188 -0
  169. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
  170. package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
  171. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  172. package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
  173. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  174. package/out/replicache/src/persist/heartbeat.js +48 -0
  175. package/out/replicache/src/persist/heartbeat.js.map +1 -0
  176. package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
  177. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  178. package/out/replicache/src/persist/idb-databases-store.js +92 -0
  179. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  180. package/out/replicache/src/persist/make-client-id.js +12 -0
  181. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  182. package/out/replicache/src/persist/persist.d.ts +2 -2
  183. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  184. package/out/replicache/src/persist/persist.js +183 -0
  185. package/out/replicache/src/persist/persist.js.map +1 -0
  186. package/out/replicache/src/persist/refresh.d.ts +4 -3
  187. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  188. package/out/replicache/src/persist/refresh.js +198 -0
  189. package/out/replicache/src/persist/refresh.js.map +1 -0
  190. package/out/replicache/src/process-scheduler.js +96 -0
  191. package/out/replicache/src/process-scheduler.js.map +1 -0
  192. package/out/replicache/src/pusher.js +33 -0
  193. package/out/replicache/src/pusher.js.map +1 -0
  194. package/out/replicache/src/replicache-impl.d.ts +1 -1
  195. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  196. package/out/replicache/src/replicache-impl.js +1200 -0
  197. package/out/replicache/src/replicache-impl.js.map +1 -0
  198. package/out/replicache/src/replicache-options.d.ts +4 -3
  199. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  200. package/out/replicache/src/report-error.js +6 -0
  201. package/out/replicache/src/report-error.js.map +1 -0
  202. package/out/replicache/src/request-idle.js +13 -0
  203. package/out/replicache/src/request-idle.js.map +1 -0
  204. package/out/replicache/src/scan-iterator.js +146 -0
  205. package/out/replicache/src/scan-iterator.js.map +1 -0
  206. package/out/replicache/src/scan-options.js +45 -0
  207. package/out/replicache/src/scan-options.js.map +1 -0
  208. package/out/replicache/src/set-interval-with-signal.js +12 -0
  209. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  210. package/out/replicache/src/subscriptions.js +355 -0
  211. package/out/replicache/src/subscriptions.js.map +1 -0
  212. package/out/replicache/src/sync/diff.d.ts +3 -2
  213. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  214. package/out/replicache/src/sync/diff.js +72 -0
  215. package/out/replicache/src/sync/diff.js.map +1 -0
  216. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  217. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  218. package/out/replicache/src/sync/ids.js +9 -0
  219. package/out/replicache/src/sync/ids.js.map +1 -0
  220. package/out/replicache/src/sync/patch.js +49 -0
  221. package/out/replicache/src/sync/patch.js.map +1 -0
  222. package/out/replicache/src/sync/pull-error.js +16 -0
  223. package/out/replicache/src/sync/pull-error.js.map +1 -0
  224. package/out/replicache/src/sync/pull.d.ts +3 -2
  225. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  226. package/out/replicache/src/sync/pull.js +301 -0
  227. package/out/replicache/src/sync/pull.js.map +1 -0
  228. package/out/replicache/src/sync/push.js +88 -0
  229. package/out/replicache/src/sync/push.js.map +1 -0
  230. package/out/replicache/src/sync/request-id.js +20 -0
  231. package/out/replicache/src/sync/request-id.js.map +1 -0
  232. package/out/replicache/src/sync/sync-head-name.js +5 -0
  233. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  234. package/out/replicache/src/to-error.js +10 -0
  235. package/out/replicache/src/to-error.js.map +1 -0
  236. package/out/replicache/src/transaction-closed-error.js +19 -0
  237. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  238. package/out/replicache/src/transactions.js +152 -0
  239. package/out/replicache/src/transactions.js.map +1 -0
  240. package/out/replicache/src/version.js +5 -0
  241. package/out/replicache/src/version.js.map +1 -0
  242. package/out/replicache/src/with-transactions.js +28 -0
  243. package/out/replicache/src/with-transactions.js.map +1 -0
  244. package/out/shared/src/abort-error.js +6 -3
  245. package/out/shared/src/abort-error.js.map +1 -1
  246. package/out/shared/src/arrays.js +45 -43
  247. package/out/shared/src/arrays.js.map +1 -1
  248. package/out/shared/src/asserts.js +64 -68
  249. package/out/shared/src/asserts.js.map +1 -1
  250. package/out/shared/src/bigint-json.js +38 -42
  251. package/out/shared/src/bigint-json.js.map +1 -1
  252. package/out/shared/src/binary-search.js +18 -29
  253. package/out/shared/src/binary-search.js.map +1 -1
  254. package/out/shared/src/broadcast-channel.js +24 -0
  255. package/out/shared/src/broadcast-channel.js.map +1 -0
  256. package/out/shared/src/browser-env.js +25 -0
  257. package/out/shared/src/browser-env.js.map +1 -0
  258. package/out/shared/src/btree-set.js +464 -507
  259. package/out/shared/src/btree-set.js.map +1 -1
  260. package/out/shared/src/cache.js +34 -38
  261. package/out/shared/src/cache.js.map +1 -1
  262. package/out/shared/src/centroid.js +24 -24
  263. package/out/shared/src/centroid.js.map +1 -1
  264. package/out/shared/src/config.js +6 -3
  265. package/out/shared/src/config.js.map +1 -1
  266. package/out/shared/src/custom-key-map.js +58 -64
  267. package/out/shared/src/custom-key-map.js.map +1 -1
  268. package/out/shared/src/custom-key-set.js +51 -57
  269. package/out/shared/src/custom-key-set.js.map +1 -1
  270. package/out/shared/src/deep-clone.js +46 -0
  271. package/out/shared/src/deep-clone.js.map +1 -0
  272. package/out/shared/src/deep-merge.d.ts +24 -4
  273. package/out/shared/src/deep-merge.d.ts.map +1 -1
  274. package/out/shared/src/deep-merge.js +27 -0
  275. package/out/shared/src/deep-merge.js.map +1 -0
  276. package/out/shared/src/document-visible.js +74 -0
  277. package/out/shared/src/document-visible.js.map +1 -0
  278. package/out/shared/src/dotenv.js +5 -7
  279. package/out/shared/src/dotenv.js.map +1 -1
  280. package/out/shared/src/error.d.ts +4 -0
  281. package/out/shared/src/error.d.ts.map +1 -0
  282. package/out/shared/src/error.js +71 -0
  283. package/out/shared/src/error.js.map +1 -0
  284. package/out/shared/src/has-own.js +5 -3
  285. package/out/shared/src/has-own.js.map +1 -1
  286. package/out/shared/src/hash.js +15 -14
  287. package/out/shared/src/hash.js.map +1 -1
  288. package/out/shared/src/iterables.js +71 -73
  289. package/out/shared/src/iterables.js.map +1 -1
  290. package/out/shared/src/json-schema.js +30 -33
  291. package/out/shared/src/json-schema.js.map +1 -1
  292. package/out/shared/src/json.js +128 -143
  293. package/out/shared/src/json.js.map +1 -1
  294. package/out/shared/src/logging-test-utils.js +12 -19
  295. package/out/shared/src/logging-test-utils.js.map +1 -1
  296. package/out/shared/src/logging.d.ts.map +1 -1
  297. package/out/shared/src/logging.js +99 -83
  298. package/out/shared/src/logging.js.map +1 -1
  299. package/out/shared/src/must.js +9 -7
  300. package/out/shared/src/must.js.map +1 -1
  301. package/out/shared/src/navigator.js +5 -0
  302. package/out/shared/src/navigator.js.map +1 -0
  303. package/out/shared/src/object-traversal.d.ts +19 -0
  304. package/out/shared/src/object-traversal.d.ts.map +1 -0
  305. package/out/shared/src/object-traversal.js +27 -0
  306. package/out/shared/src/object-traversal.js.map +1 -0
  307. package/out/shared/src/objects.js +21 -22
  308. package/out/shared/src/objects.js.map +1 -1
  309. package/out/shared/src/options.d.ts +3 -1
  310. package/out/shared/src/options.d.ts.map +1 -1
  311. package/out/shared/src/options.js +289 -318
  312. package/out/shared/src/options.js.map +1 -1
  313. package/out/shared/src/parse-big-int.js +12 -10
  314. package/out/shared/src/parse-big-int.js.map +1 -1
  315. package/out/shared/src/promise-race.d.ts +17 -0
  316. package/out/shared/src/promise-race.d.ts.map +1 -0
  317. package/out/shared/src/promise-race.js +20 -0
  318. package/out/shared/src/promise-race.js.map +1 -0
  319. package/out/shared/src/queue.js +119 -122
  320. package/out/shared/src/queue.js.map +1 -1
  321. package/out/shared/src/rand.js +8 -10
  322. package/out/shared/src/rand.js.map +1 -1
  323. package/out/shared/src/random-uint64.js +9 -0
  324. package/out/shared/src/random-uint64.js.map +1 -0
  325. package/out/shared/src/random-values.js +13 -0
  326. package/out/shared/src/random-values.js.map +1 -0
  327. package/out/shared/src/resolved-promises.js +12 -9
  328. package/out/shared/src/resolved-promises.js.map +1 -1
  329. package/out/shared/src/sentinels.js +13 -6
  330. package/out/shared/src/sentinels.js.map +1 -1
  331. package/out/shared/src/set-utils.js +63 -62
  332. package/out/shared/src/set-utils.js.map +1 -1
  333. package/out/shared/src/size-of-value.js +58 -0
  334. package/out/shared/src/size-of-value.js.map +1 -0
  335. package/out/shared/src/sleep.js +45 -53
  336. package/out/shared/src/sleep.js.map +1 -1
  337. package/out/shared/src/string-compare.js +12 -9
  338. package/out/shared/src/string-compare.js.map +1 -1
  339. package/out/shared/src/subscribable.js +34 -0
  340. package/out/shared/src/subscribable.js.map +1 -0
  341. package/out/shared/src/tdigest-schema.js +7 -7
  342. package/out/shared/src/tdigest-schema.js.map +1 -1
  343. package/out/shared/src/tdigest.js +247 -271
  344. package/out/shared/src/tdigest.js.map +1 -1
  345. package/out/shared/src/valita.js +195 -207
  346. package/out/shared/src/valita.js.map +1 -1
  347. package/out/z2s/src/compiler.d.ts +3 -3
  348. package/out/z2s/src/compiler.d.ts.map +1 -1
  349. package/out/z2s/src/compiler.js +438 -311
  350. package/out/z2s/src/compiler.js.map +1 -1
  351. package/out/z2s/src/sql.d.ts +1 -1
  352. package/out/z2s/src/sql.d.ts.map +1 -1
  353. package/out/z2s/src/sql.js +186 -218
  354. package/out/z2s/src/sql.js.map +1 -1
  355. package/out/zero/package.json.js +9 -0
  356. package/out/zero/package.json.js.map +1 -0
  357. package/out/zero/src/adapters/drizzle.js +5 -2
  358. package/out/zero/src/adapters/drizzle.js.map +1 -1
  359. package/out/zero/src/adapters/pg.js +7 -2
  360. package/out/zero/src/adapters/pg.js.map +1 -1
  361. package/out/zero/src/adapters/postgresjs.js +7 -2
  362. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  363. package/out/zero/src/analyze-query.js +1 -1
  364. package/out/zero/src/analyze-query.js.map +1 -1
  365. package/out/zero/src/ast-to-zql.js +1 -1
  366. package/out/zero/src/ast-to-zql.js.map +1 -1
  367. package/out/zero/src/build-schema.js +3 -5
  368. package/out/zero/src/build-schema.js.map +1 -1
  369. package/out/zero/src/change-protocol/v0.js +5 -3
  370. package/out/zero/src/change-protocol/v0.js.map +1 -1
  371. package/out/zero/src/cli.js +2 -2
  372. package/out/zero/src/cli.js.map +1 -1
  373. package/out/zero/src/deploy-permissions.js +1 -1
  374. package/out/zero/src/deploy-permissions.js.map +1 -1
  375. package/out/zero/src/expo-sqlite.js +5 -0
  376. package/out/zero/src/expo-sqlite.js.map +1 -0
  377. package/out/zero/src/op-sqlite.js +5 -0
  378. package/out/zero/src/op-sqlite.js.map +1 -0
  379. package/out/zero/src/pg.js +29 -3
  380. package/out/zero/src/pg.js.map +1 -1
  381. package/out/zero/src/react-native.js +13 -0
  382. package/out/zero/src/react-native.js.map +1 -0
  383. package/out/zero/src/react.js +17 -0
  384. package/out/zero/src/react.js.map +1 -0
  385. package/out/zero/src/server.js +25 -3
  386. package/out/zero/src/server.js.map +1 -1
  387. package/out/zero/src/solid.js +15 -0
  388. package/out/zero/src/solid.js.map +1 -0
  389. package/out/zero/src/sqlite.js +7 -0
  390. package/out/zero/src/sqlite.js.map +1 -0
  391. package/out/zero/src/transform-query.js +1 -1
  392. package/out/zero/src/transform-query.js.map +1 -1
  393. package/out/zero/src/zero-cache-dev.js +133 -105
  394. package/out/zero/src/zero-cache-dev.js.map +1 -1
  395. package/out/zero/src/zero-out.d.ts +3 -0
  396. package/out/zero/src/zero-out.d.ts.map +1 -0
  397. package/out/zero/src/zero-out.js +13 -0
  398. package/out/zero/src/zero-out.js.map +1 -0
  399. package/out/zero/src/zero.js +67 -0
  400. package/out/zero/src/zero.js.map +1 -0
  401. package/out/zero/src/zqlite.js +11 -3
  402. package/out/zero/src/zqlite.js.map +1 -1
  403. package/out/zero-cache/src/auth/jwt.d.ts +3 -0
  404. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
  405. package/out/zero-cache/src/auth/jwt.js +33 -38
  406. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  407. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  408. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  409. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  410. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  411. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  412. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  413. package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
  414. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  415. package/out/zero-cache/src/auth/write-authorizer.js +387 -328
  416. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  417. package/out/zero-cache/src/config/network.js +42 -45
  418. package/out/zero-cache/src/config/network.js.map +1 -1
  419. package/out/zero-cache/src/config/normalize.js +86 -83
  420. package/out/zero-cache/src/config/normalize.js.map +1 -1
  421. package/out/zero-cache/src/config/zero-config.d.ts +39 -0
  422. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  423. package/out/zero-cache/src/config/zero-config.js +704 -646
  424. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  425. package/out/zero-cache/src/custom/fetch.d.ts +5 -3
  426. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  427. package/out/zero-cache/src/custom/fetch.js +171 -86
  428. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  429. package/out/zero-cache/src/custom-queries/transform-query.d.ts +11 -8
  430. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  431. package/out/zero-cache/src/custom-queries/transform-query.js +101 -108
  432. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  433. package/out/zero-cache/src/db/create.d.ts +4 -0
  434. package/out/zero-cache/src/db/create.d.ts.map +1 -1
  435. package/out/zero-cache/src/db/create.js +33 -39
  436. package/out/zero-cache/src/db/create.js.map +1 -1
  437. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  438. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  439. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  440. package/out/zero-cache/src/db/lite-tables.js +150 -174
  441. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  442. package/out/zero-cache/src/db/migration-lite.js +170 -165
  443. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  444. package/out/zero-cache/src/db/migration.js +157 -137
  445. package/out/zero-cache/src/db/migration.js.map +1 -1
  446. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  447. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  448. package/out/zero-cache/src/db/mode-enum.js +9 -3
  449. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  450. package/out/zero-cache/src/db/pg-copy.js +51 -90
  451. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  452. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  453. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  454. package/out/zero-cache/src/db/pg-to-lite.js +116 -96
  455. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  456. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  457. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  458. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  459. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  460. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  461. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  462. package/out/zero-cache/src/db/specs.d.ts +12 -18
  463. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  464. package/out/zero-cache/src/db/specs.js +66 -40
  465. package/out/zero-cache/src/db/specs.js.map +1 -1
  466. package/out/zero-cache/src/db/statements.d.ts +1 -1
  467. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  468. package/out/zero-cache/src/db/statements.js +59 -52
  469. package/out/zero-cache/src/db/statements.js.map +1 -1
  470. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  471. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  472. package/out/zero-cache/src/db/transaction-pool.js +375 -501
  473. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  474. package/out/zero-cache/src/db/warmup.js +25 -12
  475. package/out/zero-cache/src/db/warmup.js.map +1 -1
  476. package/out/zero-cache/src/observability/events.js +71 -82
  477. package/out/zero-cache/src/observability/events.js.map +1 -1
  478. package/out/zero-cache/src/observability/metrics.js +54 -32
  479. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  480. package/out/zero-cache/src/scripts/decommission.d.ts +50 -0
  481. package/out/zero-cache/src/scripts/decommission.d.ts.map +1 -0
  482. package/out/zero-cache/src/scripts/decommission.js +55 -0
  483. package/out/zero-cache/src/scripts/decommission.js.map +1 -0
  484. package/out/zero-cache/src/scripts/deploy-permissions.js +128 -118
  485. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  486. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  487. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  488. package/out/zero-cache/src/scripts/permissions.js +108 -100
  489. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  490. package/out/zero-cache/src/server/anonymous-otel-start.js +410 -366
  491. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  492. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  493. package/out/zero-cache/src/server/change-streamer.js +105 -64
  494. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  495. package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
  496. package/out/zero-cache/src/server/inspector-delegate.js +113 -105
  497. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  498. package/out/zero-cache/src/server/logging.d.ts +1 -1
  499. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  500. package/out/zero-cache/src/server/logging.js +26 -19
  501. package/out/zero-cache/src/server/logging.js.map +1 -1
  502. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  503. package/out/zero-cache/src/server/main.js +137 -120
  504. package/out/zero-cache/src/server/main.js.map +1 -1
  505. package/out/zero-cache/src/server/mutator.js +19 -0
  506. package/out/zero-cache/src/server/mutator.js.map +1 -0
  507. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  508. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  509. package/out/zero-cache/src/server/otel-diag-logger.js +67 -70
  510. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  511. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  512. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  513. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  514. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  515. package/out/zero-cache/src/server/otel-start.js +57 -68
  516. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  517. package/out/zero-cache/src/server/reaper.js +34 -26
  518. package/out/zero-cache/src/server/reaper.js.map +1 -1
  519. package/out/zero-cache/src/server/replicator.js +53 -31
  520. package/out/zero-cache/src/server/replicator.js.map +1 -1
  521. package/out/zero-cache/src/server/runner/main.js +6 -4
  522. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  523. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  524. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  525. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  526. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  527. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  528. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  529. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  530. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  531. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  532. package/out/zero-cache/src/server/syncer.js +124 -63
  533. package/out/zero-cache/src/server/syncer.js.map +1 -1
  534. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  535. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  536. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  537. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  538. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  539. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  540. package/out/zero-cache/src/server/worker-urls.js +21 -0
  541. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  542. package/out/zero-cache/src/services/analyze.d.ts +4 -9
  543. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  544. package/out/zero-cache/src/services/analyze.js +104 -120
  545. package/out/zero-cache/src/services/analyze.js.map +1 -1
  546. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  547. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  548. package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
  549. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  550. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  551. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  552. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  553. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  554. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  555. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  556. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  557. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  558. package/out/zero-cache/src/services/change-source/pg/change-source.js +601 -621
  559. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  560. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  561. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  562. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  563. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  564. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  565. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  566. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  567. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  568. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  569. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  570. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  571. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  572. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  573. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  574. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  575. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  576. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +25 -25
  577. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  578. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  579. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  580. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  581. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +10 -10
  582. package/out/zero-cache/src/services/change-source/pg/schema/published.js +67 -74
  583. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  584. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +5 -5
  585. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  586. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  587. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  588. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  589. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  590. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  591. package/out/zero-cache/src/services/change-source/protocol/current/control.js +9 -19
  592. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  593. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +16 -16
  594. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  595. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  596. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +24 -24
  597. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  598. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  599. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  600. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  601. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  602. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  603. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  604. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  605. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  606. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  607. package/out/zero-cache/src/services/change-source/protocol/current.js +35 -7
  608. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  609. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  610. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  611. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  612. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  613. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  614. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  615. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  616. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +14 -4
  617. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  618. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +213 -141
  619. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  620. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  621. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  622. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +235 -349
  623. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  624. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +13 -9
  625. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  626. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  627. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  628. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  629. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  630. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  631. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  632. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  633. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  634. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  635. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  636. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  637. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  638. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  639. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  640. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  641. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  642. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  643. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  644. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  645. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  646. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  647. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  648. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  649. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  650. package/out/zero-cache/src/services/change-streamer/storer.js +309 -353
  651. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  652. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  653. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  654. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  655. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  656. package/out/zero-cache/src/services/heapz.js +21 -25
  657. package/out/zero-cache/src/services/heapz.js.map +1 -1
  658. package/out/zero-cache/src/services/http-service.d.ts +6 -5
  659. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  660. package/out/zero-cache/src/services/http-service.js +61 -59
  661. package/out/zero-cache/src/services/http-service.js.map +1 -1
  662. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  663. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  664. package/out/zero-cache/src/services/life-cycle.js +216 -255
  665. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  666. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  667. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  668. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  669. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  670. package/out/zero-cache/src/services/litestream/commands.js +201 -154
  671. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  672. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  673. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  674. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  675. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  676. package/out/zero-cache/src/services/mutagen/mutagen.js +272 -266
  677. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  678. package/out/zero-cache/src/services/mutagen/pusher.d.ts +221 -25
  679. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  680. package/out/zero-cache/src/services/mutagen/pusher.js +356 -332
  681. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  682. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  683. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  684. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  685. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  686. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  687. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  688. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  689. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  690. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  691. package/out/zero-cache/src/services/replicator/replication-status.js +100 -83
  692. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  693. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  694. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  695. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  696. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  697. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  698. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  699. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  700. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  701. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  702. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  703. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  704. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  705. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  706. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  707. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  708. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  709. package/out/zero-cache/src/services/run-ast.js +87 -78
  710. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  711. package/out/zero-cache/src/services/runner.d.ts +1 -1
  712. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  713. package/out/zero-cache/src/services/runner.js +40 -40
  714. package/out/zero-cache/src/services/runner.js.map +1 -1
  715. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  716. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  717. package/out/zero-cache/src/services/running-state.js +122 -119
  718. package/out/zero-cache/src/services/running-state.js.map +1 -1
  719. package/out/zero-cache/src/services/statz.js +184 -162
  720. package/out/zero-cache/src/services/statz.js.map +1 -1
  721. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +40 -39
  722. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  723. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -1
  724. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  725. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -294
  726. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  727. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  728. package/out/zero-cache/src/services/view-syncer/client-schema.js +81 -80
  729. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  730. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  731. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +84 -94
  732. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  733. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -8
  734. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  735. package/out/zero-cache/src/services/view-syncer/cvr-store.js +655 -603
  736. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  737. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
  738. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  739. package/out/zero-cache/src/services/view-syncer/cvr.js +633 -693
  740. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +1 -0
  742. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
  743. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -55
  744. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  745. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  746. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  747. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  748. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  749. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +15 -14
  750. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  751. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +535 -449
  752. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  753. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  754. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  755. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  756. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  757. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  758. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +57 -122
  759. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  760. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  761. package/out/zero-cache/src/services/view-syncer/schema/init.js +177 -131
  762. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  763. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  764. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  765. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  766. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +3 -3
  767. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  768. package/out/zero-cache/src/services/view-syncer/snapshotter.js +295 -338
  769. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  770. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  771. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  772. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +10 -3
  773. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1510 -1250
  775. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  776. package/out/zero-cache/src/types/error-with-level.d.ts +9 -0
  777. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -0
  778. package/out/zero-cache/src/types/error-with-level.js +33 -0
  779. package/out/zero-cache/src/types/error-with-level.js.map +1 -0
  780. package/out/zero-cache/src/types/http.js +27 -14
  781. package/out/zero-cache/src/types/http.js.map +1 -1
  782. package/out/zero-cache/src/types/lexi-version.js +46 -31
  783. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  784. package/out/zero-cache/src/types/lite.d.ts +15 -13
  785. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  786. package/out/zero-cache/src/types/lite.js +119 -114
  787. package/out/zero-cache/src/types/lite.js.map +1 -1
  788. package/out/zero-cache/src/types/names.js +6 -3
  789. package/out/zero-cache/src/types/names.js.map +1 -1
  790. package/out/zero-cache/src/types/pg-data-type.d.ts +73 -0
  791. package/out/zero-cache/src/types/pg-data-type.d.ts.map +1 -0
  792. package/out/zero-cache/src/types/pg-data-type.js +82 -0
  793. package/out/zero-cache/src/types/pg-data-type.js.map +1 -0
  794. package/out/zero-cache/src/types/pg-types.js +17 -72
  795. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  796. package/out/zero-cache/src/types/pg.d.ts +2 -74
  797. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  798. package/out/zero-cache/src/types/pg.js +212 -309
  799. package/out/zero-cache/src/types/pg.js.map +1 -1
  800. package/out/zero-cache/src/types/processes.d.ts +2 -2
  801. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  802. package/out/zero-cache/src/types/processes.js +95 -143
  803. package/out/zero-cache/src/types/processes.js.map +1 -1
  804. package/out/zero-cache/src/types/profiler.js +29 -30
  805. package/out/zero-cache/src/types/profiler.js.map +1 -1
  806. package/out/zero-cache/src/types/row-key.js +30 -68
  807. package/out/zero-cache/src/types/row-key.js.map +1 -1
  808. package/out/zero-cache/src/types/schema-versions.d.ts +7 -3
  809. package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -1
  810. package/out/zero-cache/src/types/schema-versions.js +26 -18
  811. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  812. package/out/zero-cache/src/types/shards.js +50 -36
  813. package/out/zero-cache/src/types/shards.js.map +1 -1
  814. package/out/zero-cache/src/types/sql.js +9 -13
  815. package/out/zero-cache/src/types/sql.js.map +1 -1
  816. package/out/zero-cache/src/types/streams.d.ts +1 -1
  817. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  818. package/out/zero-cache/src/types/streams.js +246 -245
  819. package/out/zero-cache/src/types/streams.js.map +1 -1
  820. package/out/zero-cache/src/types/strings.js +14 -11
  821. package/out/zero-cache/src/types/strings.js.map +1 -1
  822. package/out/zero-cache/src/types/subscription.d.ts +17 -2
  823. package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
  824. package/out/zero-cache/src/types/subscription.js +202 -225
  825. package/out/zero-cache/src/types/subscription.js.map +1 -1
  826. package/out/zero-cache/src/types/url-params.js +35 -30
  827. package/out/zero-cache/src/types/url-params.js.map +1 -1
  828. package/out/zero-cache/src/types/websocket-handoff.d.ts +7 -6
  829. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  830. package/out/zero-cache/src/types/websocket-handoff.js +68 -74
  831. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  832. package/out/zero-cache/src/types/ws.js +56 -59
  833. package/out/zero-cache/src/types/ws.js.map +1 -1
  834. package/out/zero-cache/src/workers/connect-params.js +44 -40
  835. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  836. package/out/zero-cache/src/workers/connection.d.ts +6 -1
  837. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  838. package/out/zero-cache/src/workers/connection.js +283 -227
  839. package/out/zero-cache/src/workers/connection.js.map +1 -1
  840. package/out/zero-cache/src/workers/mutator.js +24 -0
  841. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  842. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  843. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  844. package/out/zero-cache/src/workers/replicator.js +103 -106
  845. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  846. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  847. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +179 -141
  848. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  849. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  850. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  851. package/out/zero-cache/src/workers/syncer.js +195 -154
  852. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  853. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  854. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  855. package/out/zero-client/src/client/bindings.d.ts +43 -0
  856. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  857. package/out/zero-client/src/client/bindings.js +33 -0
  858. package/out/zero-client/src/client/bindings.js.map +1 -0
  859. package/out/zero-client/src/client/client-error-kind-enum.d.ts +14 -6
  860. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  861. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  862. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  863. package/out/zero-client/src/client/connection-manager.d.ts +70 -22
  864. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  865. package/out/zero-client/src/client/connection-manager.js +310 -0
  866. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  867. package/out/zero-client/src/client/connection-status-enum.d.ts +4 -0
  868. package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
  869. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  870. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  871. package/out/zero-client/src/client/connection.d.ts +96 -0
  872. package/out/zero-client/src/client/connection.d.ts.map +1 -0
  873. package/out/zero-client/src/client/connection.js +103 -0
  874. package/out/zero-client/src/client/connection.js.map +1 -0
  875. package/out/zero-client/src/client/context.d.ts +9 -10
  876. package/out/zero-client/src/client/context.d.ts.map +1 -1
  877. package/out/zero-client/src/client/context.js +104 -0
  878. package/out/zero-client/src/client/context.js.map +1 -0
  879. package/out/zero-client/src/client/crud.d.ts +8 -6
  880. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  881. package/out/zero-client/src/client/crud.js +225 -0
  882. package/out/zero-client/src/client/crud.js.map +1 -0
  883. package/out/zero-client/src/client/custom.d.ts +48 -25
  884. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  885. package/out/zero-client/src/client/custom.js +128 -0
  886. package/out/zero-client/src/client/custom.js.map +1 -0
  887. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  888. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  889. package/out/zero-client/src/client/delete-clients-manager.js +71 -0
  890. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  891. package/out/zero-client/src/client/enable-analytics.js +18 -0
  892. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  893. package/out/zero-client/src/client/error.d.ts +62 -22
  894. package/out/zero-client/src/client/error.d.ts.map +1 -1
  895. package/out/zero-client/src/client/error.js +148 -0
  896. package/out/zero-client/src/client/error.js.map +1 -0
  897. package/out/zero-client/src/client/http-string.js +11 -0
  898. package/out/zero-client/src/client/http-string.js.map +1 -0
  899. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  900. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  901. package/out/zero-client/src/client/inspector/client.js +28 -0
  902. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  903. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  904. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  905. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  906. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  907. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  908. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  909. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  910. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  911. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  912. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  913. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  914. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  915. package/out/zero-client/src/client/inspector/query.js +82 -0
  916. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  917. package/out/zero-client/src/client/ivm-branch.d.ts +6 -6
  918. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  919. package/out/zero-client/src/client/ivm-branch.js +149 -0
  920. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  921. package/out/zero-client/src/client/keys.js +45 -0
  922. package/out/zero-client/src/client/keys.js.map +1 -0
  923. package/out/zero-client/src/client/log-options.js +60 -0
  924. package/out/zero-client/src/client/log-options.js.map +1 -0
  925. package/out/zero-client/src/client/make-mutate-property.d.ts +43 -0
  926. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  927. package/out/zero-client/src/client/make-mutate-property.js +38 -0
  928. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  929. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  930. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  931. package/out/zero-client/src/client/make-replicache-mutators.js +103 -0
  932. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  933. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  934. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  935. package/out/zero-client/src/client/metrics.d.ts +11 -2
  936. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  937. package/out/zero-client/src/client/metrics.js +249 -0
  938. package/out/zero-client/src/client/metrics.js.map +1 -0
  939. package/out/zero-client/src/client/mutation-tracker.d.ts +15 -6
  940. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  941. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  942. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  943. package/out/zero-client/src/client/mutator-proxy.d.ts +15 -0
  944. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  945. package/out/zero-client/src/client/mutator-proxy.js +132 -0
  946. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  947. package/out/zero-client/src/client/options.d.ts +83 -26
  948. package/out/zero-client/src/client/options.d.ts.map +1 -1
  949. package/out/zero-client/src/client/options.js +11 -0
  950. package/out/zero-client/src/client/options.js.map +1 -0
  951. package/out/zero-client/src/client/query-manager.d.ts +13 -5
  952. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  953. package/out/zero-client/src/client/query-manager.js +377 -0
  954. package/out/zero-client/src/client/query-manager.js.map +1 -0
  955. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  956. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  957. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  958. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  959. package/out/zero-client/src/client/server-option.js +64 -0
  960. package/out/zero-client/src/client/server-option.js.map +1 -0
  961. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  962. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  963. package/out/zero-client/src/client/version.js +5 -0
  964. package/out/zero-client/src/client/version.js.map +1 -0
  965. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  966. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  967. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  968. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  969. package/out/zero-client/src/client/zero-rep.d.ts +6 -3
  970. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  971. package/out/zero-client/src/client/zero-rep.js +72 -0
  972. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  973. package/out/zero-client/src/client/zero.d.ts +125 -25
  974. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  975. package/out/zero-client/src/client/zero.js +1759 -0
  976. package/out/zero-client/src/client/zero.js.map +1 -0
  977. package/out/zero-client/src/mod.d.ts +24 -10
  978. package/out/zero-client/src/mod.d.ts.map +1 -1
  979. package/out/zero-client/src/types/query-result.d.ts +24 -0
  980. package/out/zero-client/src/types/query-result.d.ts.map +1 -0
  981. package/out/zero-client/src/util/nanoid.js +21 -0
  982. package/out/zero-client/src/util/nanoid.js.map +1 -0
  983. package/out/zero-client/src/util/socket.js +7 -0
  984. package/out/zero-client/src/util/socket.js.map +1 -0
  985. package/out/zero-protocol/src/analyze-query-result.d.ts +237 -0
  986. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  987. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  988. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  989. package/out/zero-protocol/src/application-error.d.ts +27 -0
  990. package/out/zero-protocol/src/application-error.d.ts.map +1 -0
  991. package/out/zero-protocol/src/application-error.js +38 -0
  992. package/out/zero-protocol/src/application-error.js.map +1 -0
  993. package/out/zero-protocol/src/ast.d.ts +2 -2
  994. package/out/zero-protocol/src/ast.js +296 -277
  995. package/out/zero-protocol/src/ast.js.map +1 -1
  996. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  997. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  998. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  999. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  1000. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  1001. package/out/zero-protocol/src/client-schema.js +40 -26
  1002. package/out/zero-protocol/src/client-schema.js.map +1 -1
  1003. package/out/zero-protocol/src/close-connection.js +11 -18
  1004. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1005. package/out/zero-protocol/src/connect.d.ts +4 -4
  1006. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1007. package/out/zero-protocol/src/connect.js +50 -51
  1008. package/out/zero-protocol/src/connect.js.map +1 -1
  1009. package/out/zero-protocol/src/custom-queries.d.ts +56 -53
  1010. package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
  1011. package/out/zero-protocol/src/custom-queries.js +63 -39
  1012. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1013. package/out/zero-protocol/src/data.js +9 -4
  1014. package/out/zero-protocol/src/data.js.map +1 -1
  1015. package/out/zero-protocol/src/delete-clients.js +16 -9
  1016. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1017. package/out/zero-protocol/src/down.d.ts +114 -16
  1018. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1019. package/out/zero-protocol/src/down.js +20 -4
  1020. package/out/zero-protocol/src/down.js.map +1 -1
  1021. package/out/zero-protocol/src/error-kind-enum.d.ts +65 -0
  1022. package/out/zero-protocol/src/error-kind-enum.d.ts.map +1 -1
  1023. package/out/zero-protocol/src/error-kind-enum.js +41 -21
  1024. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1025. package/out/zero-protocol/src/error-origin-enum.d.ts +7 -0
  1026. package/out/zero-protocol/src/error-origin-enum.d.ts.map +1 -0
  1027. package/out/zero-protocol/src/error-origin-enum.js +9 -0
  1028. package/out/zero-protocol/src/error-origin-enum.js.map +1 -0
  1029. package/out/zero-protocol/src/error-origin.d.ts +5 -0
  1030. package/out/zero-protocol/src/error-origin.d.ts.map +1 -0
  1031. package/out/zero-protocol/src/error-reason-enum.d.ts +15 -0
  1032. package/out/zero-protocol/src/error-reason-enum.d.ts.map +1 -0
  1033. package/out/zero-protocol/src/error-reason-enum.js +17 -0
  1034. package/out/zero-protocol/src/error-reason-enum.js.map +1 -0
  1035. package/out/zero-protocol/src/error-reason.d.ts +5 -0
  1036. package/out/zero-protocol/src/error-reason.d.ts.map +1 -0
  1037. package/out/zero-protocol/src/error.d.ts +182 -2
  1038. package/out/zero-protocol/src/error.d.ts.map +1 -1
  1039. package/out/zero-protocol/src/error.js +157 -26
  1040. package/out/zero-protocol/src/error.js.map +1 -1
  1041. package/out/zero-protocol/src/inspect-down.d.ts +318 -18
  1042. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1043. package/out/zero-protocol/src/inspect-down.js +72 -54
  1044. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1045. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1046. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1047. package/out/zero-protocol/src/inspect-up.js +39 -26
  1048. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1049. package/out/zero-protocol/src/mutation-id.d.ts +7 -0
  1050. package/out/zero-protocol/src/mutation-id.d.ts.map +1 -0
  1051. package/out/zero-protocol/src/mutation-id.js +10 -0
  1052. package/out/zero-protocol/src/mutation-id.js.map +1 -0
  1053. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1054. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1055. package/out/zero-protocol/src/mutations-patch.d.ts +6 -3
  1056. package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
  1057. package/out/zero-protocol/src/mutations-patch.js +18 -18
  1058. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1059. package/out/zero-protocol/src/ping.js +9 -4
  1060. package/out/zero-protocol/src/ping.js.map +1 -1
  1061. package/out/zero-protocol/src/poke.d.ts +2 -0
  1062. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  1063. package/out/zero-protocol/src/poke.js +55 -72
  1064. package/out/zero-protocol/src/poke.js.map +1 -1
  1065. package/out/zero-protocol/src/pong.js +9 -4
  1066. package/out/zero-protocol/src/pong.js.map +1 -1
  1067. package/out/zero-protocol/src/primary-key.js +19 -5
  1068. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1069. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1070. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1071. package/out/zero-protocol/src/protocol-version.js +7 -56
  1072. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1073. package/out/zero-protocol/src/pull.js +26 -19
  1074. package/out/zero-protocol/src/pull.js.map +1 -1
  1075. package/out/zero-protocol/src/push.d.ts +145 -13
  1076. package/out/zero-protocol/src/push.d.ts.map +1 -1
  1077. package/out/zero-protocol/src/push.js +182 -157
  1078. package/out/zero-protocol/src/push.js.map +1 -1
  1079. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1080. package/out/zero-protocol/src/queries-patch.js +29 -22
  1081. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1082. package/out/zero-protocol/src/query-hash.js +18 -14
  1083. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1084. package/out/zero-protocol/src/row-patch.js +29 -20
  1085. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1086. package/out/zero-protocol/src/up.d.ts +6 -5
  1087. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1088. package/out/zero-protocol/src/up.js +18 -4
  1089. package/out/zero-protocol/src/up.js.map +1 -1
  1090. package/out/zero-protocol/src/version.js +9 -4
  1091. package/out/zero-protocol/src/version.js.map +1 -1
  1092. package/out/zero-react/src/components/inspector.d.ts +5 -3
  1093. package/out/zero-react/src/components/inspector.d.ts.map +1 -1
  1094. package/out/{inspector-IU2HG74I.js → zero-react/src/components/inspector.js} +4 -9
  1095. package/out/zero-react/src/components/inspector.js.map +1 -0
  1096. package/out/{chunk-VZOYWIRW.js → zero-react/src/components/mark-icon.js} +3 -5
  1097. package/out/zero-react/src/components/mark-icon.js.map +1 -0
  1098. package/out/zero-react/src/components/zero-inspector.d.ts +5 -3
  1099. package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
  1100. package/out/zero-react/src/components/zero-inspector.js +44 -0
  1101. package/out/zero-react/src/components/zero-inspector.js.map +1 -0
  1102. package/out/zero-react/src/mod.d.ts +6 -3
  1103. package/out/zero-react/src/mod.d.ts.map +1 -1
  1104. package/out/zero-react/src/use-query.d.ts +11 -28
  1105. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1106. package/out/zero-react/src/use-query.js +286 -0
  1107. package/out/zero-react/src/use-query.js.map +1 -0
  1108. package/out/zero-react/src/use-zero-connection-state.d.ts +9 -0
  1109. package/out/zero-react/src/use-zero-connection-state.d.ts.map +1 -0
  1110. package/out/zero-react/src/use-zero-connection-state.js +14 -0
  1111. package/out/zero-react/src/use-zero-connection-state.js.map +1 -0
  1112. package/out/zero-react/src/use-zero-online.d.ts +2 -0
  1113. package/out/zero-react/src/use-zero-online.d.ts.map +1 -1
  1114. package/out/zero-react/src/use-zero-online.js +14 -0
  1115. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1116. package/out/zero-react/src/zero-provider.d.ts +21 -7
  1117. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1118. package/out/zero-react/src/zero-provider.js +61 -0
  1119. package/out/zero-react/src/zero-provider.js.map +1 -0
  1120. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1121. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1122. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1123. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1124. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1125. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1126. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1127. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1128. package/out/zero-schema/src/compiled-permissions.js +23 -19
  1129. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1130. package/out/zero-schema/src/name-mapper.js +43 -38
  1131. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1132. package/out/zero-schema/src/permissions.d.ts +9 -9
  1133. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1134. package/out/{chunk-BJ2CGCME.js → zero-schema/src/permissions.js} +16 -173
  1135. package/out/zero-schema/src/permissions.js.map +1 -0
  1136. package/out/zero-schema/src/schema-config.d.ts +1 -1
  1137. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1138. package/out/zero-schema/src/schema-config.js +35 -51
  1139. package/out/zero-schema/src/schema-config.js.map +1 -1
  1140. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1141. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1142. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1143. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1144. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1145. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1146. package/out/zero-server/src/adapters/pg.js +54 -74
  1147. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1148. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1149. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1150. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1151. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1152. package/out/zero-server/src/custom.d.ts +14 -18
  1153. package/out/zero-server/src/custom.d.ts.map +1 -1
  1154. package/out/zero-server/src/custom.js +185 -105
  1155. package/out/zero-server/src/custom.js.map +1 -1
  1156. package/out/zero-server/src/logging.js +7 -4
  1157. package/out/zero-server/src/logging.js.map +1 -1
  1158. package/out/zero-server/src/mod.d.ts +5 -4
  1159. package/out/zero-server/src/mod.d.ts.map +1 -1
  1160. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1161. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1162. package/out/zero-server/src/pg-query-executor.js +20 -0
  1163. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1164. package/out/zero-server/src/process-mutations.d.ts +11 -15
  1165. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1166. package/out/zero-server/src/process-mutations.js +341 -163
  1167. package/out/zero-server/src/process-mutations.js.map +1 -1
  1168. package/out/zero-server/src/push-processor.d.ts +5 -3
  1169. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1170. package/out/zero-server/src/push-processor.js +48 -32
  1171. package/out/zero-server/src/push-processor.js.map +1 -1
  1172. package/out/zero-server/src/queries/process-queries.d.ts +66 -4
  1173. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1174. package/out/zero-server/src/queries/process-queries.js +101 -27
  1175. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1176. package/out/zero-server/src/schema.d.ts +2 -2
  1177. package/out/zero-server/src/schema.d.ts.map +1 -1
  1178. package/out/zero-server/src/schema.js +137 -125
  1179. package/out/zero-server/src/schema.js.map +1 -1
  1180. package/out/zero-server/src/zql-database.d.ts +9 -6
  1181. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1182. package/out/zero-server/src/zql-database.js +68 -51
  1183. package/out/zero-server/src/zql-database.js.map +1 -1
  1184. package/out/zero-solid/src/mod.d.ts +10 -2
  1185. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1186. package/out/zero-solid/src/solid-view.d.ts +3 -23
  1187. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1188. package/out/{solid.js → zero-solid/src/solid-view.js} +54 -167
  1189. package/out/zero-solid/src/solid-view.js.map +1 -0
  1190. package/out/zero-solid/src/use-query.d.ts +7 -6
  1191. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1192. package/out/zero-solid/src/use-query.js +57 -0
  1193. package/out/zero-solid/src/use-query.js.map +1 -0
  1194. package/out/zero-solid/src/use-zero-connection-state.d.ts +10 -0
  1195. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +1 -0
  1196. package/out/zero-solid/src/use-zero-connection-state.js +17 -0
  1197. package/out/zero-solid/src/use-zero-connection-state.js.map +1 -0
  1198. package/out/zero-solid/src/use-zero-online.d.ts +1 -7
  1199. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1200. package/out/zero-solid/src/use-zero-online.js +15 -0
  1201. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1202. package/out/zero-solid/src/use-zero.d.ts +24 -7
  1203. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1204. package/out/zero-solid/src/use-zero.js +70 -0
  1205. package/out/zero-solid/src/use-zero.js.map +1 -0
  1206. package/out/zero-types/src/default-types.d.ts +38 -0
  1207. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1208. package/out/zero-types/src/format.js +7 -4
  1209. package/out/zero-types/src/format.js.map +1 -1
  1210. package/out/zero-types/src/name-mapper.js +43 -40
  1211. package/out/zero-types/src/name-mapper.js.map +1 -1
  1212. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1213. package/out/zql/src/builder/builder.d.ts +11 -2
  1214. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1215. package/out/zql/src/builder/builder.js +487 -424
  1216. package/out/zql/src/builder/builder.js.map +1 -1
  1217. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1218. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1219. package/out/zql/src/builder/debug-delegate.js +68 -47
  1220. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1221. package/out/zql/src/builder/filter.js +132 -138
  1222. package/out/zql/src/builder/filter.js.map +1 -1
  1223. package/out/zql/src/builder/like.js +44 -51
  1224. package/out/zql/src/builder/like.js.map +1 -1
  1225. package/out/zql/src/error.d.ts +5 -0
  1226. package/out/zql/src/error.d.ts.map +1 -1
  1227. package/out/zql/src/error.js +18 -6
  1228. package/out/zql/src/error.js.map +1 -1
  1229. package/out/zql/src/ivm/array-view.js +86 -92
  1230. package/out/zql/src/ivm/array-view.js.map +1 -1
  1231. package/out/zql/src/ivm/constraint.js +74 -127
  1232. package/out/zql/src/ivm/constraint.js.map +1 -1
  1233. package/out/zql/src/ivm/data.d.ts +1 -1
  1234. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1235. package/out/zql/src/ivm/data.js +59 -85
  1236. package/out/zql/src/ivm/data.js.map +1 -1
  1237. package/out/zql/src/ivm/exists.js +236 -243
  1238. package/out/zql/src/ivm/exists.js.map +1 -1
  1239. package/out/zql/src/ivm/fan-in.js +50 -51
  1240. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1241. package/out/zql/src/ivm/fan-out.js +48 -50
  1242. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1243. package/out/zql/src/ivm/filter-operators.js +87 -87
  1244. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1245. package/out/zql/src/ivm/filter-push.d.ts +1 -1
  1246. package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
  1247. package/out/zql/src/ivm/filter-push.js +26 -23
  1248. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1249. package/out/zql/src/ivm/filter.js +30 -32
  1250. package/out/zql/src/ivm/filter.js.map +1 -1
  1251. package/out/zql/src/ivm/flipped-join.js +343 -326
  1252. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1253. package/out/zql/src/ivm/join-utils.js +85 -79
  1254. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1255. package/out/zql/src/ivm/join.js +287 -207
  1256. package/out/zql/src/ivm/join.js.map +1 -1
  1257. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1258. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1259. package/out/zql/src/ivm/memory-source.d.ts +4 -4
  1260. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1261. package/out/zql/src/ivm/memory-source.js +471 -489
  1262. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1263. package/out/zql/src/ivm/memory-storage.js +32 -31
  1264. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1265. package/out/zql/src/ivm/operator.js +8 -9
  1266. package/out/zql/src/ivm/operator.js.map +1 -1
  1267. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1268. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1269. package/out/zql/src/ivm/skip.js +92 -106
  1270. package/out/zql/src/ivm/skip.js.map +1 -1
  1271. package/out/zql/src/ivm/source.d.ts +4 -2
  1272. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1273. package/out/zql/src/ivm/stream.js +20 -16
  1274. package/out/zql/src/ivm/stream.js.map +1 -1
  1275. package/out/zql/src/ivm/take.d.ts +1 -1
  1276. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1277. package/out/zql/src/ivm/take.js +502 -456
  1278. package/out/zql/src/ivm/take.js.map +1 -1
  1279. package/out/zql/src/ivm/union-fan-in.js +156 -134
  1280. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1281. package/out/zql/src/ivm/union-fan-out.js +46 -45
  1282. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1283. package/out/zql/src/ivm/view-apply-change.js +246 -216
  1284. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1285. package/out/zql/src/ivm/view.d.ts +3 -2
  1286. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1287. package/out/zql/src/mutate/custom.d.ts +26 -11
  1288. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1289. package/out/zql/src/mutate/custom.js +15 -7
  1290. package/out/zql/src/mutate/custom.js.map +1 -1
  1291. package/out/zql/src/mutate/mutator-registry.d.ts +93 -0
  1292. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1293. package/out/zql/src/mutate/mutator-registry.js +93 -0
  1294. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1295. package/out/zql/src/mutate/mutator.d.ts +79 -0
  1296. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1297. package/out/zql/src/mutate/mutator.js +31 -0
  1298. package/out/zql/src/mutate/mutator.js.map +1 -0
  1299. package/out/zql/src/planner/planner-builder.d.ts +15 -0
  1300. package/out/zql/src/planner/planner-builder.d.ts.map +1 -0
  1301. package/out/zql/src/planner/planner-builder.js +271 -0
  1302. package/out/zql/src/planner/planner-builder.js.map +1 -0
  1303. package/out/zql/src/planner/planner-connection.d.ts +124 -0
  1304. package/out/zql/src/planner/planner-connection.d.ts.map +1 -0
  1305. package/out/zql/src/planner/planner-connection.js +215 -0
  1306. package/out/zql/src/planner/planner-connection.js.map +1 -0
  1307. package/out/zql/src/planner/planner-constraint.d.ts +14 -0
  1308. package/out/zql/src/planner/planner-constraint.d.ts.map +1 -0
  1309. package/out/zql/src/planner/planner-constraint.js +9 -0
  1310. package/out/zql/src/planner/planner-constraint.js.map +1 -0
  1311. package/out/zql/src/planner/planner-debug.d.ts +143 -0
  1312. package/out/zql/src/planner/planner-debug.d.ts.map +1 -0
  1313. package/out/zql/src/planner/planner-debug.js +242 -0
  1314. package/out/zql/src/planner/planner-debug.js.map +1 -0
  1315. package/out/zql/src/planner/planner-fan-in.d.ts +39 -0
  1316. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -0
  1317. package/out/zql/src/planner/planner-fan-in.js +165 -0
  1318. package/out/zql/src/planner/planner-fan-in.js.map +1 -0
  1319. package/out/zql/src/planner/planner-fan-out.d.ts +23 -0
  1320. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -0
  1321. package/out/zql/src/planner/planner-fan-out.js +76 -0
  1322. package/out/zql/src/planner/planner-fan-out.js.map +1 -0
  1323. package/out/zql/src/planner/planner-graph.d.ts +102 -0
  1324. package/out/zql/src/planner/planner-graph.d.ts.map +1 -0
  1325. package/out/zql/src/planner/planner-graph.js +346 -0
  1326. package/out/zql/src/planner/planner-graph.js.map +1 -0
  1327. package/out/zql/src/planner/planner-join.d.ts +140 -0
  1328. package/out/zql/src/planner/planner-join.d.ts.map +1 -0
  1329. package/out/zql/src/planner/planner-join.js +244 -0
  1330. package/out/zql/src/planner/planner-join.js.map +1 -0
  1331. package/out/zql/src/planner/planner-node.d.ts +53 -0
  1332. package/out/zql/src/planner/planner-node.d.ts.map +1 -0
  1333. package/out/zql/src/planner/planner-node.js +8 -0
  1334. package/out/zql/src/planner/planner-node.js.map +1 -0
  1335. package/out/zql/src/planner/planner-source.d.ts +11 -0
  1336. package/out/zql/src/planner/planner-source.d.ts.map +1 -0
  1337. package/out/zql/src/planner/planner-source.js +24 -0
  1338. package/out/zql/src/planner/planner-source.js.map +1 -0
  1339. package/out/zql/src/planner/planner-terminus.d.ts +17 -0
  1340. package/out/zql/src/planner/planner-terminus.d.ts.map +1 -0
  1341. package/out/zql/src/planner/planner-terminus.js +29 -0
  1342. package/out/zql/src/planner/planner-terminus.js.map +1 -0
  1343. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1344. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1345. package/out/zql/src/query/complete-ordering.js +71 -0
  1346. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1347. package/out/zql/src/query/create-builder.d.ts +7 -0
  1348. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1349. package/out/zql/src/query/create-builder.js +44 -0
  1350. package/out/zql/src/query/create-builder.js.map +1 -0
  1351. package/out/zql/src/query/error.d.ts +4 -0
  1352. package/out/zql/src/query/error.d.ts.map +1 -0
  1353. package/out/zql/src/query/error.js +13 -0
  1354. package/out/zql/src/query/error.js.map +1 -0
  1355. package/out/zql/src/query/escape-like.js +7 -0
  1356. package/out/zql/src/query/escape-like.js.map +1 -0
  1357. package/out/zql/src/query/expression.d.ts +5 -5
  1358. package/out/zql/src/query/expression.d.ts.map +1 -1
  1359. package/out/zql/src/query/expression.js +153 -151
  1360. package/out/zql/src/query/expression.js.map +1 -1
  1361. package/out/zql/src/query/measure-push-operator.js +42 -35
  1362. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1363. package/out/zql/src/query/metrics-delegate.js +9 -5
  1364. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1365. package/out/zql/src/query/named.d.ts +21 -12
  1366. package/out/zql/src/query/named.d.ts.map +1 -1
  1367. package/out/zql/src/query/named.js +47 -57
  1368. package/out/zql/src/query/named.js.map +1 -1
  1369. package/out/zql/src/query/query-delegate-base.d.ts +114 -0
  1370. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1371. package/out/zql/src/query/query-delegate-base.js +120 -0
  1372. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1373. package/out/zql/src/query/query-delegate.d.ts +30 -7
  1374. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1375. package/out/zql/src/query/query-impl.d.ts +29 -50
  1376. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1377. package/out/zql/src/query/query-impl.js +514 -453
  1378. package/out/zql/src/query/query-impl.js.map +1 -1
  1379. package/out/zql/src/query/query-internals.d.ts +68 -0
  1380. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1381. package/out/zql/src/query/query-internals.js +11 -0
  1382. package/out/zql/src/query/query-internals.js.map +1 -0
  1383. package/out/zql/src/query/query-registry.d.ts +163 -0
  1384. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1385. package/out/zql/src/query/query-registry.js +123 -0
  1386. package/out/zql/src/query/query-registry.js.map +1 -0
  1387. package/out/zql/src/query/query.d.ts +54 -250
  1388. package/out/zql/src/query/query.d.ts.map +1 -1
  1389. package/out/zql/src/query/schema-query.d.ts +6 -0
  1390. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1391. package/out/zql/src/query/static-query.d.ts +7 -16
  1392. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1393. package/out/zql/src/query/static-query.js +44 -31
  1394. package/out/zql/src/query/static-query.js.map +1 -1
  1395. package/out/zql/src/query/ttl.js +69 -62
  1396. package/out/zql/src/query/ttl.js.map +1 -1
  1397. package/out/zql/src/query/typed-view.d.ts +1 -1
  1398. package/out/zql/src/query/typed-view.d.ts.map +1 -1
  1399. package/out/zql/src/query/validate-input.d.ts +15 -0
  1400. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1401. package/out/zql/src/query/validate-input.js +24 -0
  1402. package/out/zql/src/query/validate-input.js.map +1 -0
  1403. package/out/zqlite/src/database-storage.d.ts +1 -1
  1404. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1405. package/out/zqlite/src/database-storage.js +99 -102
  1406. package/out/zqlite/src/database-storage.js.map +1 -1
  1407. package/out/zqlite/src/db.d.ts +2 -1
  1408. package/out/zqlite/src/db.d.ts.map +1 -1
  1409. package/out/zqlite/src/db.js +241 -192
  1410. package/out/zqlite/src/db.js.map +1 -1
  1411. package/out/zqlite/src/explain-queries.js +13 -16
  1412. package/out/zqlite/src/explain-queries.js.map +1 -1
  1413. package/out/zqlite/src/internal/sql.js +15 -10
  1414. package/out/zqlite/src/internal/sql.js.map +1 -1
  1415. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1416. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1417. package/out/zqlite/src/query-builder.js +172 -143
  1418. package/out/zqlite/src/query-builder.js.map +1 -1
  1419. package/out/zqlite/src/query-delegate.d.ts +6 -20
  1420. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1421. package/out/zqlite/src/query-delegate.js +56 -70
  1422. package/out/zqlite/src/query-delegate.js.map +1 -1
  1423. package/out/zqlite/src/sqlite-cost-model.d.ts +17 -0
  1424. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -0
  1425. package/out/zqlite/src/sqlite-cost-model.js +110 -0
  1426. package/out/zqlite/src/sqlite-cost-model.js.map +1 -0
  1427. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1428. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1429. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1430. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1431. package/out/zqlite/src/table-source.d.ts +10 -5
  1432. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1433. package/out/zqlite/src/table-source.js +424 -311
  1434. package/out/zqlite/src/table-source.js.map +1 -1
  1435. package/package.json +30 -29
  1436. package/out/chunk-424PT5DM.js +0 -23
  1437. package/out/chunk-424PT5DM.js.map +0 -7
  1438. package/out/chunk-4RB4OYLQ.js +0 -4125
  1439. package/out/chunk-4RB4OYLQ.js.map +0 -7
  1440. package/out/chunk-AFADJQ2O.js +0 -1
  1441. package/out/chunk-AFADJQ2O.js.map +0 -7
  1442. package/out/chunk-ASRS2LFV.js.map +0 -7
  1443. package/out/chunk-BJ2CGCME.js.map +0 -7
  1444. package/out/chunk-ECUMGQGC.js.map +0 -7
  1445. package/out/chunk-EZM3XBAB.js.map +0 -7
  1446. package/out/chunk-MXPHMVU7.js +0 -16350
  1447. package/out/chunk-MXPHMVU7.js.map +0 -7
  1448. package/out/chunk-VZOYWIRW.js.map +0 -7
  1449. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1450. package/out/expo-sqlite.js +0 -11
  1451. package/out/expo-sqlite.js.map +0 -7
  1452. package/out/inspector-IU2HG74I.js.map +0 -7
  1453. package/out/lazy-inspector-2SW772W4.js +0 -574
  1454. package/out/lazy-inspector-2SW772W4.js.map +0 -7
  1455. package/out/op-sqlite.js.map +0 -7
  1456. package/out/react-native.js +0 -25
  1457. package/out/react-native.js.map +0 -7
  1458. package/out/react.js +0 -448
  1459. package/out/react.js.map +0 -7
  1460. package/out/shared/src/enum.js +0 -2
  1461. package/out/shared/src/enum.js.map +0 -1
  1462. package/out/shared/src/expand.js +0 -2
  1463. package/out/shared/src/expand.js.map +0 -1
  1464. package/out/shared/src/immutable.js +0 -2
  1465. package/out/shared/src/immutable.js.map +0 -1
  1466. package/out/shared/src/types.js +0 -2
  1467. package/out/shared/src/types.js.map +0 -1
  1468. package/out/shared/src/writable.js +0 -2
  1469. package/out/shared/src/writable.js.map +0 -1
  1470. package/out/solid.js.map +0 -7
  1471. package/out/sqlite.js +0 -15
  1472. package/out/sqlite.js.map +0 -7
  1473. package/out/zero/package.json +0 -192
  1474. package/out/zero/src/server/change-streamer.js +0 -2
  1475. package/out/zero/src/server/change-streamer.js.map +0 -1
  1476. package/out/zero/src/server/main.js +0 -2
  1477. package/out/zero/src/server/main.js.map +0 -1
  1478. package/out/zero/src/server/reaper.js +0 -2
  1479. package/out/zero/src/server/reaper.js.map +0 -1
  1480. package/out/zero/src/server/replicator.js +0 -2
  1481. package/out/zero/src/server/replicator.js.map +0 -1
  1482. package/out/zero/src/server/runner/main.js +0 -2
  1483. package/out/zero/src/server/runner/main.js.map +0 -1
  1484. package/out/zero/src/server/syncer.js +0 -2
  1485. package/out/zero/src/server/syncer.js.map +0 -1
  1486. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1487. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1488. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1489. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1490. package/out/zero-cache/src/services/service.js +0 -2
  1491. package/out/zero-cache/src/services/service.js.map +0 -1
  1492. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1493. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1494. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -73
  1495. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1496. package/out/zero-cache/src/types/error-for-client.d.ts +0 -23
  1497. package/out/zero-cache/src/types/error-for-client.d.ts.map +0 -1
  1498. package/out/zero-cache/src/types/error-for-client.js +0 -28
  1499. package/out/zero-cache/src/types/error-for-client.js.map +0 -1
  1500. package/out/zero-cache/src/types/satisfies.js +0 -2
  1501. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1502. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1503. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1504. package/out/zero-client/src/client/ping-result-enum.d.ts +0 -5
  1505. package/out/zero-client/src/client/ping-result-enum.d.ts.map +0 -1
  1506. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1507. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1508. package/out/zero-events/src/index.js +0 -2
  1509. package/out/zero-events/src/index.js.map +0 -1
  1510. package/out/zero-events/src/json.js +0 -2
  1511. package/out/zero-events/src/json.js.map +0 -1
  1512. package/out/zero-events/src/status.js +0 -3
  1513. package/out/zero-events/src/status.js.map +0 -1
  1514. package/out/zero-pg/src/mod.js +0 -6
  1515. package/out/zero-pg/src/mod.js.map +0 -1
  1516. package/out/zero-protocol/src/error-kind.js +0 -3
  1517. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1518. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1519. package/out/zero-schema/src/server-schema.js +0 -2
  1520. package/out/zero-schema/src/server-schema.js.map +0 -1
  1521. package/out/zero-schema/src/table-schema.js +0 -7
  1522. package/out/zero-schema/src/table-schema.js.map +0 -1
  1523. package/out/zero-server/src/mod.js +0 -8
  1524. package/out/zero-server/src/mod.js.map +0 -1
  1525. package/out/zero-server/src/query.d.ts +0 -22
  1526. package/out/zero-server/src/query.d.ts.map +0 -1
  1527. package/out/zero-server/src/query.js +0 -61
  1528. package/out/zero-server/src/query.js.map +0 -1
  1529. package/out/zero-types/src/schema-value.js +0 -2
  1530. package/out/zero-types/src/schema-value.js.map +0 -1
  1531. package/out/zero-types/src/schema.js +0 -2
  1532. package/out/zero-types/src/schema.js.map +0 -1
  1533. package/out/zero.js +0 -69
  1534. package/out/zero.js.map +0 -7
  1535. package/out/zql/src/ivm/change.js +0 -2
  1536. package/out/zql/src/ivm/change.js.map +0 -1
  1537. package/out/zql/src/ivm/default-format.js +0 -2
  1538. package/out/zql/src/ivm/default-format.js.map +0 -1
  1539. package/out/zql/src/ivm/schema.js +0 -2
  1540. package/out/zql/src/ivm/schema.js.map +0 -1
  1541. package/out/zql/src/ivm/source.js +0 -2
  1542. package/out/zql/src/ivm/source.js.map +0 -1
  1543. package/out/zql/src/ivm/view.js +0 -2
  1544. package/out/zql/src/ivm/view.js.map +0 -1
  1545. package/out/zql/src/query/query-delegate.js +0 -2
  1546. package/out/zql/src/query/query-delegate.js.map +0 -1
  1547. package/out/zql/src/query/query.js +0 -9
  1548. package/out/zql/src/query/query.js.map +0 -1
  1549. package/out/zql/src/query/typed-view.js +0 -2
  1550. package/out/zql/src/query/typed-view.js.map +0 -1
  1551. package/out/zqlite/src/mod.js +0 -5
  1552. package/out/zqlite/src/mod.js.map +0 -1
  1553. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
@@ -0,0 +1,301 @@
1
+ class SQLiteStatFanout {
2
+ #db;
3
+ #defaultFanout;
4
+ /**
5
+ * Cache of fanout results by table and columns.
6
+ * Key format: "tableName:col1,col2,col3" (sorted alphabetically)
7
+ */
8
+ #cache = /* @__PURE__ */ new Map();
9
+ /**
10
+ * Prepared statements for querying SQLite statistics tables.
11
+ * Prepared once in constructor for performance.
12
+ */
13
+ #stat4Stmt;
14
+ #stat1Stmt;
15
+ #indexStmt;
16
+ /**
17
+ * Creates a new fanout calculator.
18
+ *
19
+ * @param db Database instance
20
+ * @param defaultFanout Default fanout when statistics unavailable (default: 3)
21
+ * - 1: Conservative (assumes FK relationships)
22
+ * - 3: Moderate (recommended, safe middle ground)
23
+ * - 10: SQLite's default (optimistic)
24
+ */
25
+ constructor(db, defaultFanout = 3) {
26
+ this.#db = db;
27
+ this.#defaultFanout = defaultFanout;
28
+ this.#stat4Stmt = this.#db.prepare(`
29
+ SELECT neq, nlt, ndlt, sample
30
+ FROM sqlite_stat4
31
+ WHERE tbl = ? AND idx = ?
32
+ ORDER BY nlt
33
+ `);
34
+ this.#stat1Stmt = this.#db.prepare(`
35
+ SELECT stat
36
+ FROM sqlite_stat1
37
+ WHERE tbl = ? AND idx = ?
38
+ `);
39
+ this.#indexStmt = this.#db.prepare(`
40
+ SELECT il.name as index_name, ii.seqno, ii.name as column_name
41
+ FROM pragma_index_list(?) il
42
+ JOIN pragma_index_info(il.name) ii
43
+ ORDER BY il.seq, ii.seqno
44
+ `);
45
+ }
46
+ /**
47
+ * Gets the fanout factor for join column(s).
48
+ *
49
+ * Fanout = average number of child rows per distinct parent key value(s).
50
+ *
51
+ * ## Strategy
52
+ *
53
+ * 1. Try sqlite_stat4 (best): Histogram with separate NULL/non-NULL samples
54
+ * 2. Fallback to sqlite_stat1: Average across all rows (includes NULLs)
55
+ * 3. Fallback to default: When no statistics available
56
+ *
57
+ * ## Compound Indexes
58
+ *
59
+ * For multi-column joins, finds indexes where ALL columns appear as an
60
+ * exact prefix. Uses the appropriate depth in stat1/stat4.
61
+ *
62
+ * Example:
63
+ * - Columns: `['customerId', 'storeId']`
64
+ * - Matches index: `(customerId, storeId, date)` at depth 2
65
+ * - Uses stat1 parts[2] or stat4 neq[1] for accurate fanout
66
+ *
67
+ * ## Caching
68
+ *
69
+ * Results are cached per (table, columns) combination. Clear the cache if
70
+ * you run ANALYZE to update statistics.
71
+ *
72
+ * @param tableName Table containing the join column(s)
73
+ * @param columns Array of column names (one or more columns)
74
+ * @returns Fanout result with value and source
75
+ */
76
+ getFanout(tableName, columns) {
77
+ const cacheKey = `${tableName}:${[...columns].sort().join(",")}`;
78
+ const cached = this.#cache.get(cacheKey);
79
+ if (cached) {
80
+ return cached;
81
+ }
82
+ const stat4Result = this.#getFanoutFromStat4(tableName, columns);
83
+ if (stat4Result) {
84
+ this.#cache.set(cacheKey, stat4Result);
85
+ return stat4Result;
86
+ }
87
+ const stat1Result = this.#getFanoutFromStat1(tableName, columns);
88
+ if (stat1Result) {
89
+ this.#cache.set(cacheKey, stat1Result);
90
+ return stat1Result;
91
+ }
92
+ const defaultResult = {
93
+ fanout: this.#defaultFanout,
94
+ confidence: "none",
95
+ source: "default"
96
+ };
97
+ this.#cache.set(cacheKey, defaultResult);
98
+ return defaultResult;
99
+ }
100
+ /**
101
+ * Clears the fanout cache.
102
+ * Call this after running ANALYZE to pick up updated statistics.
103
+ */
104
+ clearCache() {
105
+ this.#cache.clear();
106
+ }
107
+ /**
108
+ * Gets fanout from sqlite_stat4 histogram.
109
+ *
110
+ * Queries stat4 samples, decodes to identify NULLs, and returns
111
+ * the median fanout of non-NULL samples.
112
+ *
113
+ * For compound indexes, uses the neq value at the appropriate depth.
114
+ *
115
+ * @param columns Array of column names to get fanout for
116
+ * @returns Fanout result or undefined if stat4 unavailable
117
+ */
118
+ #getFanoutFromStat4(tableName, columns) {
119
+ try {
120
+ const indexInfo = this.#findIndexForColumns(tableName, columns);
121
+ if (!indexInfo) {
122
+ return void 0;
123
+ }
124
+ const samples = this.#stat4Stmt.all(
125
+ tableName,
126
+ indexInfo.indexName
127
+ );
128
+ if (samples.length === 0) {
129
+ return void 0;
130
+ }
131
+ const neqIndex = indexInfo.depth - 1;
132
+ const decodedSamples = samples.map((s) => {
133
+ const neqParts = s.neq.split(" ");
134
+ return {
135
+ fanout: parseInt(neqParts[neqIndex] ?? neqParts[0], 10),
136
+ isNull: this.#decodeSampleIsNull(s.sample)
137
+ };
138
+ });
139
+ const nonNullSamples = decodedSamples.filter((s) => !s.isNull);
140
+ if (nonNullSamples.length === 0) {
141
+ return {
142
+ fanout: 0,
143
+ source: "stat4",
144
+ confidence: "high"
145
+ };
146
+ }
147
+ const fanouts = nonNullSamples.map((s) => s.fanout).sort((a, b) => a - b);
148
+ const medianFanout = fanouts.length % 2 === 0 ? Math.floor(
149
+ (fanouts[fanouts.length / 2 - 1] + fanouts[fanouts.length / 2]) / 2
150
+ ) : fanouts[Math.floor(fanouts.length / 2)];
151
+ return {
152
+ fanout: medianFanout,
153
+ source: "stat4",
154
+ confidence: "high"
155
+ };
156
+ } catch {
157
+ return void 0;
158
+ }
159
+ }
160
+ /**
161
+ * Gets fanout from sqlite_stat1 average.
162
+ *
163
+ * Note: This includes NULL rows in the calculation and may overestimate
164
+ * fanout for sparse foreign keys.
165
+ *
166
+ * For compound indexes, uses the stat value at the appropriate depth.
167
+ *
168
+ * @param columns Array of column names to get fanout for
169
+ * @returns Fanout result or undefined if stat1 unavailable
170
+ */
171
+ #getFanoutFromStat1(tableName, columns) {
172
+ try {
173
+ const indexInfo = this.#findIndexForColumns(tableName, columns);
174
+ if (!indexInfo) {
175
+ return void 0;
176
+ }
177
+ const result = this.#stat1Stmt.get(tableName, indexInfo.indexName);
178
+ if (!result) {
179
+ return void 0;
180
+ }
181
+ const parts = result.stat.split(" ");
182
+ if (parts.length < indexInfo.depth + 1) {
183
+ return void 0;
184
+ }
185
+ const fanout = parseInt(parts[indexInfo.depth], 10);
186
+ if (isNaN(fanout)) {
187
+ return void 0;
188
+ }
189
+ return {
190
+ fanout,
191
+ source: "stat1",
192
+ confidence: "med"
193
+ };
194
+ } catch {
195
+ return void 0;
196
+ }
197
+ }
198
+ /**
199
+ * Finds an index that can be used to get statistics for column(s).
200
+ *
201
+ * Uses pragma_index_list and pragma_index_info to reliably get index
202
+ * column names, avoiding brittle SQL parsing. Includes all indices:
203
+ * user-created (CREATE INDEX), PRIMARY KEY, and UNIQUE constraints.
204
+ *
205
+ * Uses flexible matching: Finds indexes where ALL columns appear in the
206
+ * first N positions, regardless of order. This works because SQLite statistics
207
+ * at depth N represent the fanout for the combination of the first N columns,
208
+ * and combinations are order-independent.
209
+ *
210
+ * Example:
211
+ * - columns: ['customerId', 'storeId']
212
+ * - Matches: (customerId, storeId, date) at depth 2 ✅
213
+ * - Matches: (storeId, customerId, date) at depth 2 ✅ (flexible order)
214
+ * - Does NOT match: (date, customerId, storeId) ❌ (columns not in first 2 positions)
215
+ * - Does NOT match: (customerId, date, storeId) ❌ (storeId not in first 2 positions)
216
+ *
217
+ * @param columns Array of column names (order-independent for matching)
218
+ * @returns Index info with name and depth, or undefined if no match
219
+ */
220
+ #findIndexForColumns(tableName, columns) {
221
+ try {
222
+ const rows = this.#indexStmt.all(tableName);
223
+ const indexMap = /* @__PURE__ */ new Map();
224
+ for (const row of rows) {
225
+ const cols = indexMap.get(row.index_name) ?? [];
226
+ cols.push(row.column_name);
227
+ indexMap.set(row.index_name, cols);
228
+ }
229
+ for (const [indexName, indexColumns] of indexMap) {
230
+ if (this.#isPrefixMatch(columns, indexColumns)) {
231
+ return {
232
+ indexName,
233
+ depth: columns.length
234
+ };
235
+ }
236
+ }
237
+ return void 0;
238
+ } catch {
239
+ return void 0;
240
+ }
241
+ }
242
+ /**
243
+ * Checks if all queryColumns exist in the first N positions of indexColumns,
244
+ * regardless of order.
245
+ *
246
+ * This allows flexible matching: constraint {a, b} matches both index (a, b, c)
247
+ * and index (b, a, c) at depth 2, since both represent the fanout for the
248
+ * combination of columns a and b.
249
+ *
250
+ * Gaps are NOT allowed: constraint {a, c} does NOT match index (a, b, c)
251
+ * because no depth represents just (a, c) without b. Statistics are cumulative
252
+ * from position 0.
253
+ *
254
+ * @param queryColumns Columns we're looking for (from constraint)
255
+ * @param indexColumns Columns in the index (in order)
256
+ * @returns true if all queryColumns exist in indexColumns[0...queryColumns.length-1]
257
+ */
258
+ #isPrefixMatch(queryColumns, indexColumns) {
259
+ if (queryColumns.length > indexColumns.length) {
260
+ return false;
261
+ }
262
+ const indexPrefix = indexColumns.slice(0, queryColumns.length);
263
+ const indexPrefixLower = new Set(indexPrefix.map((col) => col.toLowerCase()));
264
+ const queryColumnsLower = queryColumns.map((col) => col.toLowerCase());
265
+ return queryColumnsLower.every((queryCol) => indexPrefixLower.has(queryCol));
266
+ }
267
+ /**
268
+ * Decodes a sqlite_stat4 sample value to check if it's NULL.
269
+ *
270
+ * SQLite record format (simplified):
271
+ * - Varint: header size
272
+ * - Serial types for each column (one byte each typically)
273
+ * - Actual data
274
+ *
275
+ * Serial type 0 = NULL
276
+ * Serial type 1 = 8-bit int
277
+ * Serial type 2 = 16-bit int
278
+ * Serial type 3 = 24-bit int
279
+ * etc.
280
+ *
281
+ * We only need to check the first column's serial type.
282
+ *
283
+ * @param sample Binary-encoded sample from stat4
284
+ * @returns true if the sample value is NULL
285
+ */
286
+ #decodeSampleIsNull(sample) {
287
+ if (sample.length === 0) {
288
+ return true;
289
+ }
290
+ const headerSize = sample[0];
291
+ if (headerSize === 0 || headerSize >= sample.length) {
292
+ return true;
293
+ }
294
+ const serialType = sample[1];
295
+ return serialType === 0;
296
+ }
297
+ }
298
+ export {
299
+ SQLiteStatFanout
300
+ };
301
+ //# sourceMappingURL=sqlite-stat-fanout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-stat-fanout.js","sources":["../../../../zqlite/src/sqlite-stat-fanout.ts"],"sourcesContent":["import type {Database} from './db.ts';\n\n/**\n * Result of fanout calculation from SQLite statistics.\n */\nexport interface FanoutResult {\n /**\n * The fanout value (average rows per distinct value of the join column).\n * For non-NULL joins, this represents how many child rows exist per parent key.\n */\n fanout: number;\n confidence: 'high' | 'med' | 'none';\n\n /**\n * Source of the fanout calculation.\n * - 'stat4': From sqlite_stat4 histogram (most accurate, excludes NULLs)\n * - 'stat1': From sqlite_stat1 average (includes NULLs, may overestimate)\n * - 'default': Fallback constant when statistics unavailable\n */\n source: 'stat4' | 'stat1' | 'default';\n}\n\n/**\n * Sample from sqlite_stat4 histogram.\n */\ninterface Stat4Sample {\n /** \"N1 N2\" = rows equal to sample (N1=first col, N2=if composite) */\n neq: string;\n /** \"N1 N2\" = rows less than sample */\n nlt: string;\n /** \"N1 N2\" = distinct values less than sample */\n ndlt: string;\n /** The actual sample value (binary encoded) */\n sample: Buffer;\n}\n\n/**\n * Computes join fanout factors from SQLite statistics tables.\n *\n * Fanout is the average number of child rows per distinct parent key value,\n * used to estimate join cardinality in query planning.\n *\n * ## Problem\n *\n * sqlite_stat1 includes NULL rows in its calculation, which can significantly\n * overestimate fanout for sparse foreign keys:\n *\n * ```\n * Example: 100 tasks, 20 with project_id, 80 with NULL\n * - stat1 reports: \"100 17\" → fanout = 17 (WRONG - includes NULLs)\n * - stat4 shows: NULL samples with fanout=80, non-NULL samples with fanout=4\n * - True fanout: 4 (CORRECT)\n * ```\n *\n * ## Solution\n *\n * This class uses sqlite_stat4 histogram to separate NULL and non-NULL samples,\n * providing accurate fanout for non-NULL joins.\n *\n * ## Usage\n *\n * ```typescript\n * const calculator = new SQLiteStatFanout(db);\n *\n * // Get fanout for posts.userId → users.id join\n * const result = calculator.getFanout('posts', 'userId');\n *\n * if (result.source === 'stat4') {\n * // Accurate: excludes NULLs, samples actual distribution\n * console.log(`Fanout: ${result.fanout} (from stat4)`);\n * } else if (result.source === 'stat1') {\n * // Conservative: includes NULLs, may overestimate\n * console.log(`Fanout: ${result.fanout} (from stat1, includes NULLs)`);\n * } else {\n * // Fallback: no statistics available\n * console.log(`Fanout: ${result.fanout} (default estimate)`);\n * }\n * ```\n *\n * ## Requirements\n *\n * - SQLite compiled with ENABLE_STAT4 (most builds include this)\n * - `ANALYZE` command run on the database\n * - Index exists on the join column\n *\n * @see https://sqlite.org/fileformat2.html#stat4tab\n * @see packages/zql/src/planner/SELECTIVITY_PLAN.md\n */\nexport class SQLiteStatFanout {\n readonly #db: Database;\n readonly #defaultFanout: number;\n\n /**\n * Cache of fanout results by table and columns.\n * Key format: \"tableName:col1,col2,col3\" (sorted alphabetically)\n */\n readonly #cache = new Map<string, FanoutResult>();\n\n /**\n * Prepared statements for querying SQLite statistics tables.\n * Prepared once in constructor for performance.\n */\n readonly #stat4Stmt: ReturnType<Database['prepare']>;\n readonly #stat1Stmt: ReturnType<Database['prepare']>;\n readonly #indexStmt: ReturnType<Database['prepare']>;\n\n /**\n * Creates a new fanout calculator.\n *\n * @param db Database instance\n * @param defaultFanout Default fanout when statistics unavailable (default: 3)\n * - 1: Conservative (assumes FK relationships)\n * - 3: Moderate (recommended, safe middle ground)\n * - 10: SQLite's default (optimistic)\n */\n constructor(db: Database, defaultFanout = 3) {\n this.#db = db;\n this.#defaultFanout = defaultFanout;\n\n // Prepare SQL statements once for reuse across multiple getFanout() calls\n this.#stat4Stmt = this.#db.prepare(`\n SELECT neq, nlt, ndlt, sample\n FROM sqlite_stat4\n WHERE tbl = ? AND idx = ?\n ORDER BY nlt\n `);\n\n this.#stat1Stmt = this.#db.prepare(`\n SELECT stat\n FROM sqlite_stat1\n WHERE tbl = ? AND idx = ?\n `);\n\n this.#indexStmt = this.#db.prepare(`\n SELECT il.name as index_name, ii.seqno, ii.name as column_name\n FROM pragma_index_list(?) il\n JOIN pragma_index_info(il.name) ii\n ORDER BY il.seq, ii.seqno\n `);\n }\n\n /**\n * Gets the fanout factor for join column(s).\n *\n * Fanout = average number of child rows per distinct parent key value(s).\n *\n * ## Strategy\n *\n * 1. Try sqlite_stat4 (best): Histogram with separate NULL/non-NULL samples\n * 2. Fallback to sqlite_stat1: Average across all rows (includes NULLs)\n * 3. Fallback to default: When no statistics available\n *\n * ## Compound Indexes\n *\n * For multi-column joins, finds indexes where ALL columns appear as an\n * exact prefix. Uses the appropriate depth in stat1/stat4.\n *\n * Example:\n * - Columns: `['customerId', 'storeId']`\n * - Matches index: `(customerId, storeId, date)` at depth 2\n * - Uses stat1 parts[2] or stat4 neq[1] for accurate fanout\n *\n * ## Caching\n *\n * Results are cached per (table, columns) combination. Clear the cache if\n * you run ANALYZE to update statistics.\n *\n * @param tableName Table containing the join column(s)\n * @param columns Array of column names (one or more columns)\n * @returns Fanout result with value and source\n */\n getFanout(tableName: string, columns: string[]): FanoutResult {\n // Cache key uses sorted columns for consistency\n const cacheKey = `${tableName}:${[...columns].sort().join(',')}`;\n const cached = this.#cache.get(cacheKey);\n if (cached) {\n return cached;\n }\n\n // Strategy 1: Try stat4 first (most accurate)\n // NOTE: columns are NOT sorted - preserves Object.keys() order from constraint\n // Matching is order-independent (flexible), but we keep original order for consistency\n const stat4Result = this.#getFanoutFromStat4(tableName, columns);\n if (stat4Result) {\n this.#cache.set(cacheKey, stat4Result);\n return stat4Result;\n }\n\n // Strategy 2: Fallback to stat1 (includes NULLs)\n const stat1Result = this.#getFanoutFromStat1(tableName, columns);\n if (stat1Result) {\n this.#cache.set(cacheKey, stat1Result);\n return stat1Result;\n }\n\n // Strategy 3: Use default\n const defaultResult: FanoutResult = {\n fanout: this.#defaultFanout,\n confidence: 'none',\n source: 'default',\n };\n this.#cache.set(cacheKey, defaultResult);\n return defaultResult;\n }\n\n /**\n * Clears the fanout cache.\n * Call this after running ANALYZE to pick up updated statistics.\n */\n clearCache(): void {\n this.#cache.clear();\n }\n\n /**\n * Gets fanout from sqlite_stat4 histogram.\n *\n * Queries stat4 samples, decodes to identify NULLs, and returns\n * the median fanout of non-NULL samples.\n *\n * For compound indexes, uses the neq value at the appropriate depth.\n *\n * @param columns Array of column names to get fanout for\n * @returns Fanout result or undefined if stat4 unavailable\n */\n #getFanoutFromStat4(\n tableName: string,\n columns: string[],\n ): FanoutResult | undefined {\n try {\n // Find index containing the columns as a prefix\n const indexInfo = this.#findIndexForColumns(tableName, columns);\n if (!indexInfo) {\n return undefined;\n }\n\n // Query stat4 samples for this index (using prepared statement)\n const samples = this.#stat4Stmt.all(\n tableName,\n indexInfo.indexName,\n ) as Stat4Sample[];\n\n if (samples.length === 0) {\n return undefined;\n }\n\n // Decode samples and separate NULL from non-NULL\n // Use depth-1 for neq array index (depth is 1-based, array is 0-based)\n const neqIndex = indexInfo.depth - 1;\n const decodedSamples = samples.map(s => {\n const neqParts = s.neq.split(' ');\n return {\n fanout: parseInt(neqParts[neqIndex] ?? neqParts[0], 10),\n isNull: this.#decodeSampleIsNull(s.sample),\n };\n });\n\n const nonNullSamples = decodedSamples.filter(s => !s.isNull);\n\n if (nonNullSamples.length === 0) {\n // All samples are NULL - return fanout of 0 since NULLs don't match in joins\n return {\n fanout: 0,\n source: 'stat4',\n confidence: 'high',\n };\n }\n\n // Use median of non-NULL fanouts (more robust than average)\n const fanouts = nonNullSamples.map(s => s.fanout).sort((a, b) => a - b);\n const medianFanout =\n fanouts.length % 2 === 0\n ? Math.floor(\n (fanouts[fanouts.length / 2 - 1] + fanouts[fanouts.length / 2]) /\n 2,\n )\n : fanouts[Math.floor(fanouts.length / 2)];\n\n return {\n fanout: medianFanout,\n source: 'stat4',\n confidence: 'high',\n };\n } catch {\n // stat4 table may not exist or query may fail\n return undefined;\n }\n }\n\n /**\n * Gets fanout from sqlite_stat1 average.\n *\n * Note: This includes NULL rows in the calculation and may overestimate\n * fanout for sparse foreign keys.\n *\n * For compound indexes, uses the stat value at the appropriate depth.\n *\n * @param columns Array of column names to get fanout for\n * @returns Fanout result or undefined if stat1 unavailable\n */\n #getFanoutFromStat1(\n tableName: string,\n columns: string[],\n ): FanoutResult | undefined {\n try {\n // Find index containing the columns as a prefix\n const indexInfo = this.#findIndexForColumns(tableName, columns);\n if (!indexInfo) {\n return undefined;\n }\n\n // Query stat1 for this index (using prepared statement)\n const result = this.#stat1Stmt.get(tableName, indexInfo.indexName) as\n | {stat: string}\n | undefined;\n\n if (!result) {\n return undefined;\n }\n\n const parts = result.stat.split(' ');\n // Check if we have enough parts for the requested depth\n if (parts.length < indexInfo.depth + 1) {\n return undefined;\n }\n\n const fanout = parseInt(parts[indexInfo.depth], 10);\n if (isNaN(fanout)) {\n return undefined;\n }\n\n return {\n fanout,\n source: 'stat1',\n confidence: 'med',\n };\n } catch {\n return undefined;\n }\n }\n\n /**\n * Finds an index that can be used to get statistics for column(s).\n *\n * Uses pragma_index_list and pragma_index_info to reliably get index\n * column names, avoiding brittle SQL parsing. Includes all indices:\n * user-created (CREATE INDEX), PRIMARY KEY, and UNIQUE constraints.\n *\n * Uses flexible matching: Finds indexes where ALL columns appear in the\n * first N positions, regardless of order. This works because SQLite statistics\n * at depth N represent the fanout for the combination of the first N columns,\n * and combinations are order-independent.\n *\n * Example:\n * - columns: ['customerId', 'storeId']\n * - Matches: (customerId, storeId, date) at depth 2 ✅\n * - Matches: (storeId, customerId, date) at depth 2 ✅ (flexible order)\n * - Does NOT match: (date, customerId, storeId) ❌ (columns not in first 2 positions)\n * - Does NOT match: (customerId, date, storeId) ❌ (storeId not in first 2 positions)\n *\n * @param columns Array of column names (order-independent for matching)\n * @returns Index info with name and depth, or undefined if no match\n */\n #findIndexForColumns(\n tableName: string,\n columns: string[],\n ): {indexName: string; depth: number} | undefined {\n try {\n // Query returns all columns for all indexes (including PK/UNIQUE) in order\n const rows = this.#indexStmt.all(tableName) as {\n index_name: string;\n seqno: number;\n column_name: string;\n }[];\n\n // Group by index name\n const indexMap = new Map<string, string[]>();\n for (const row of rows) {\n const cols = indexMap.get(row.index_name) ?? [];\n cols.push(row.column_name);\n indexMap.set(row.index_name, cols);\n }\n\n // Check each index for prefix match\n for (const [indexName, indexColumns] of indexMap) {\n if (this.#isPrefixMatch(columns, indexColumns)) {\n return {\n indexName,\n depth: columns.length,\n };\n }\n }\n\n return undefined;\n } catch {\n return undefined;\n }\n }\n\n /**\n * Checks if all queryColumns exist in the first N positions of indexColumns,\n * regardless of order.\n *\n * This allows flexible matching: constraint {a, b} matches both index (a, b, c)\n * and index (b, a, c) at depth 2, since both represent the fanout for the\n * combination of columns a and b.\n *\n * Gaps are NOT allowed: constraint {a, c} does NOT match index (a, b, c)\n * because no depth represents just (a, c) without b. Statistics are cumulative\n * from position 0.\n *\n * @param queryColumns Columns we're looking for (from constraint)\n * @param indexColumns Columns in the index (in order)\n * @returns true if all queryColumns exist in indexColumns[0...queryColumns.length-1]\n */\n #isPrefixMatch(queryColumns: string[], indexColumns: string[]): boolean {\n if (queryColumns.length > indexColumns.length) {\n return false;\n }\n\n // Get the prefix of the index that we're checking against\n const indexPrefix = indexColumns.slice(0, queryColumns.length);\n\n // Normalize to lowercase for case-insensitive comparison\n const indexPrefixLower = new Set(indexPrefix.map(col => col.toLowerCase()));\n const queryColumnsLower = queryColumns.map(col => col.toLowerCase());\n\n // Check if ALL query columns exist in the index prefix\n return queryColumnsLower.every(queryCol => indexPrefixLower.has(queryCol));\n }\n\n /**\n * Decodes a sqlite_stat4 sample value to check if it's NULL.\n *\n * SQLite record format (simplified):\n * - Varint: header size\n * - Serial types for each column (one byte each typically)\n * - Actual data\n *\n * Serial type 0 = NULL\n * Serial type 1 = 8-bit int\n * Serial type 2 = 16-bit int\n * Serial type 3 = 24-bit int\n * etc.\n *\n * We only need to check the first column's serial type.\n *\n * @param sample Binary-encoded sample from stat4\n * @returns true if the sample value is NULL\n */\n #decodeSampleIsNull(sample: Buffer): boolean {\n if (sample.length === 0) {\n return true;\n }\n\n // Read header size (varint - simplified: assume single byte)\n const headerSize = sample[0];\n\n if (headerSize === 0 || headerSize >= sample.length) {\n return true;\n }\n\n // Read first serial type (at position 1)\n const serialType = sample[1];\n\n // Serial type 0 = NULL\n return serialType === 0;\n }\n}\n"],"names":[],"mappings":"AAwFO,MAAM,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,6BAAa,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWT,YAAY,IAAc,gBAAgB,GAAG;AAC3C,SAAK,MAAM;AACX,SAAK,iBAAiB;AAGtB,SAAK,aAAa,KAAK,IAAI,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,KAKlC;AAED,SAAK,aAAa,KAAK,IAAI,QAAQ;AAAA;AAAA;AAAA;AAAA,KAIlC;AAED,SAAK,aAAa,KAAK,IAAI,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,KAKlC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgCA,UAAU,WAAmB,SAAiC;AAE5D,UAAM,WAAW,GAAG,SAAS,IAAI,CAAC,GAAG,OAAO,EAAE,KAAA,EAAO,KAAK,GAAG,CAAC;AAC9D,UAAM,SAAS,KAAK,OAAO,IAAI,QAAQ;AACvC,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AAKA,UAAM,cAAc,KAAK,oBAAoB,WAAW,OAAO;AAC/D,QAAI,aAAa;AACf,WAAK,OAAO,IAAI,UAAU,WAAW;AACrC,aAAO;AAAA,IACT;AAGA,UAAM,cAAc,KAAK,oBAAoB,WAAW,OAAO;AAC/D,QAAI,aAAa;AACf,WAAK,OAAO,IAAI,UAAU,WAAW;AACrC,aAAO;AAAA,IACT;AAGA,UAAM,gBAA8B;AAAA,MAClC,QAAQ,KAAK;AAAA,MACb,YAAY;AAAA,MACZ,QAAQ;AAAA,IAAA;AAEV,SAAK,OAAO,IAAI,UAAU,aAAa;AACvC,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAmB;AACjB,SAAK,OAAO,MAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,oBACE,WACA,SAC0B;AAC1B,QAAI;AAEF,YAAM,YAAY,KAAK,qBAAqB,WAAW,OAAO;AAC9D,UAAI,CAAC,WAAW;AACd,eAAO;AAAA,MACT;AAGA,YAAM,UAAU,KAAK,WAAW;AAAA,QAC9B;AAAA,QACA,UAAU;AAAA,MAAA;AAGZ,UAAI,QAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACT;AAIA,YAAM,WAAW,UAAU,QAAQ;AACnC,YAAM,iBAAiB,QAAQ,IAAI,CAAA,MAAK;AACtC,cAAM,WAAW,EAAE,IAAI,MAAM,GAAG;AAChC,eAAO;AAAA,UACL,QAAQ,SAAS,SAAS,QAAQ,KAAK,SAAS,CAAC,GAAG,EAAE;AAAA,UACtD,QAAQ,KAAK,oBAAoB,EAAE,MAAM;AAAA,QAAA;AAAA,MAE7C,CAAC;AAED,YAAM,iBAAiB,eAAe,OAAO,CAAA,MAAK,CAAC,EAAE,MAAM;AAE3D,UAAI,eAAe,WAAW,GAAG;AAE/B,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,YAAY;AAAA,QAAA;AAAA,MAEhB;AAGA,YAAM,UAAU,eAAe,IAAI,CAAA,MAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACtE,YAAM,eACJ,QAAQ,SAAS,MAAM,IACnB,KAAK;AAAA,SACF,QAAQ,QAAQ,SAAS,IAAI,CAAC,IAAI,QAAQ,QAAQ,SAAS,CAAC,KAC3D;AAAA,MAAA,IAEJ,QAAQ,KAAK,MAAM,QAAQ,SAAS,CAAC,CAAC;AAE5C,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,YAAY;AAAA,MAAA;AAAA,IAEhB,QAAQ;AAEN,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,oBACE,WACA,SAC0B;AAC1B,QAAI;AAEF,YAAM,YAAY,KAAK,qBAAqB,WAAW,OAAO;AAC9D,UAAI,CAAC,WAAW;AACd,eAAO;AAAA,MACT;AAGA,YAAM,SAAS,KAAK,WAAW,IAAI,WAAW,UAAU,SAAS;AAIjE,UAAI,CAAC,QAAQ;AACX,eAAO;AAAA,MACT;AAEA,YAAM,QAAQ,OAAO,KAAK,MAAM,GAAG;AAEnC,UAAI,MAAM,SAAS,UAAU,QAAQ,GAAG;AACtC,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,SAAS,MAAM,UAAU,KAAK,GAAG,EAAE;AAClD,UAAI,MAAM,MAAM,GAAG;AACjB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,QACL;AAAA,QACA,QAAQ;AAAA,QACR,YAAY;AAAA,MAAA;AAAA,IAEhB,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBA,qBACE,WACA,SACgD;AAChD,QAAI;AAEF,YAAM,OAAO,KAAK,WAAW,IAAI,SAAS;AAO1C,YAAM,+BAAe,IAAA;AACrB,iBAAW,OAAO,MAAM;AACtB,cAAM,OAAO,SAAS,IAAI,IAAI,UAAU,KAAK,CAAA;AAC7C,aAAK,KAAK,IAAI,WAAW;AACzB,iBAAS,IAAI,IAAI,YAAY,IAAI;AAAA,MACnC;AAGA,iBAAW,CAAC,WAAW,YAAY,KAAK,UAAU;AAChD,YAAI,KAAK,eAAe,SAAS,YAAY,GAAG;AAC9C,iBAAO;AAAA,YACL;AAAA,YACA,OAAO,QAAQ;AAAA,UAAA;AAAA,QAEnB;AAAA,MACF;AAEA,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,eAAe,cAAwB,cAAiC;AACtE,QAAI,aAAa,SAAS,aAAa,QAAQ;AAC7C,aAAO;AAAA,IACT;AAGA,UAAM,cAAc,aAAa,MAAM,GAAG,aAAa,MAAM;AAG7D,UAAM,mBAAmB,IAAI,IAAI,YAAY,IAAI,CAAA,QAAO,IAAI,YAAA,CAAa,CAAC;AAC1E,UAAM,oBAAoB,aAAa,IAAI,CAAA,QAAO,IAAI,aAAa;AAGnE,WAAO,kBAAkB,MAAM,CAAA,aAAY,iBAAiB,IAAI,QAAQ,CAAC;AAAA,EAC3E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBA,oBAAoB,QAAyB;AAC3C,QAAI,OAAO,WAAW,GAAG;AACvB,aAAO;AAAA,IACT;AAGA,UAAM,aAAa,OAAO,CAAC;AAE3B,QAAI,eAAe,KAAK,cAAc,OAAO,QAAQ;AACnD,aAAO;AAAA,IACT;AAGA,UAAM,aAAa,OAAO,CAAC;AAG3B,WAAO,eAAe;AAAA,EACxB;AACF;"}
@@ -2,10 +2,11 @@ import type { LogContext } from '@rocicorp/logger';
2
2
  import type { LogConfig } from '../../otel/src/log-options.ts';
3
3
  import type { Condition, Ordering } from '../../zero-protocol/src/ast.ts';
4
4
  import type { Row } from '../../zero-protocol/src/data.ts';
5
+ import type { PrimaryKey } from '../../zero-protocol/src/primary-key.ts';
5
6
  import type { SchemaValue, ValueType } from '../../zero-schema/src/table-schema.ts';
6
7
  import type { DebugDelegate } from '../../zql/src/builder/debug-delegate.ts';
7
- import type { Source, SourceChange, SourceInput } from '../../zql/src/ivm/source.ts';
8
- import { Database } from './db.ts';
8
+ import { type Source, type SourceChange, type SourceInput } from '../../zql/src/ivm/source.ts';
9
+ import type { Database } from './db.ts';
9
10
  /**
10
11
  * A source that is backed by a SQLite table.
11
12
  *
@@ -22,14 +23,18 @@ import { Database } from './db.ts';
22
23
  */
23
24
  export declare class TableSource implements Source {
24
25
  #private;
25
- constructor(logContext: LogContext, logConfig: LogConfig, db: Database, tableName: string, columns: Record<string, SchemaValue>, primaryKey: readonly [string, ...string[]]);
26
- get table(): string;
26
+ constructor(logContext: LogContext, logConfig: LogConfig, db: Database, tableName: string, columns: Record<string, SchemaValue>, primaryKey: PrimaryKey);
27
+ get tableSchema(): {
28
+ name: string;
29
+ columns: Record<string, SchemaValue>;
30
+ primaryKey: readonly [string, ...string[]];
31
+ };
27
32
  /**
28
33
  * Sets the db (snapshot) to use, to facilitate the Snapshotter leapfrog
29
34
  * algorithm for concurrent traversal of historic timelines.
30
35
  */
31
36
  setDB(db: Database): void;
32
- connect(sort: Ordering, filters?: Condition | undefined, splitEditKeys?: Set<string> | undefined, debug?: DebugDelegate | undefined): SourceInput;
37
+ connect(sort: Ordering, filters?: Condition, splitEditKeys?: Set<string>, debug?: DebugDelegate): SourceInput;
33
38
  toSQLiteRow(row: Row): Row;
34
39
  push(change: SourceChange): void;
35
40
  genPush(change: SourceChange): Generator<undefined, void, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"table-source.d.ts","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAM7D,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAC,GAAG,EAAQ,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAoB3E,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,QAAQ,EAAY,MAAM,SAAS,CAAC;AAe5C;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;;gBActC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAgB5C,IAAI,KAAK,WAER;IAED;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ;IA4FlB,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,EAC/B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EACvC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS;IAsCnC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAsF1B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAM/B,OAAO,CAAC,MAAM,EAAE,YAAY;IA2F7B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CA+CrC;AA6BD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACvC,SAAS,OAAO,EAAE,CAEpB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,wCAa/C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB,GAAG,CAaL;AAwCD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"table-source.d.ts","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAK7D,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAC,GAAG,EAAQ,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAe3E,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAY,MAAM,SAAS,CAAC;AAqBjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;;gBActC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,UAAU,EAAE,UAAU;IAgBxB,IAAI,WAAW;;;;MAMd;IAED;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ;IA4FlB,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,SAAS,EACnB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,KAAK,CAAC,EAAE,aAAa;IAuCvB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAyG1B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAM/B,OAAO,CAAC,MAAM,EAAE,YAAY;IA2F7B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CA6BrC;AA6BD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACvC,SAAS,OAAO,EAAE,CAEpB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,wCAa/C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB,GAAG,CAaL;AAwCD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}