@rocicorp/zero 0.25.0-canary.6 → 0.25.0-canary.8

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 (1367) hide show
  1. package/out/analyze-query/src/bin-analyze.js +258 -236
  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 +2 -1
  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-HCZQVP5R.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/{chunk-WPAQ4EPM.js → replicache/src/kv/sqlite-store.js} +15 -19
  132. package/out/replicache/src/kv/sqlite-store.js.map +1 -0
  133. package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
  134. package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
  135. package/out/replicache/src/kv/write-impl-base.js +57 -0
  136. package/out/replicache/src/kv/write-impl-base.js.map +1 -0
  137. package/out/replicache/src/kv/write-impl.js +30 -0
  138. package/out/replicache/src/kv/write-impl.js.map +1 -0
  139. package/out/replicache/src/lazy.js +13 -0
  140. package/out/replicache/src/lazy.js.map +1 -0
  141. package/out/replicache/src/log-options.js +9 -0
  142. package/out/replicache/src/log-options.js.map +1 -0
  143. package/out/replicache/src/make-idb-name.js +13 -0
  144. package/out/replicache/src/make-idb-name.js.map +1 -0
  145. package/out/replicache/src/new-client-channel.js +51 -0
  146. package/out/replicache/src/new-client-channel.js.map +1 -0
  147. package/out/replicache/src/on-persist-channel.js +36 -0
  148. package/out/replicache/src/on-persist-channel.js.map +1 -0
  149. package/out/replicache/src/patch-operation.js +42 -0
  150. package/out/replicache/src/patch-operation.js.map +1 -0
  151. package/out/replicache/src/pending-mutations.js +16 -0
  152. package/out/replicache/src/pending-mutations.js.map +1 -0
  153. package/out/replicache/src/persist/client-gc.js +58 -0
  154. package/out/replicache/src/persist/client-gc.js.map +1 -0
  155. package/out/replicache/src/persist/client-group-gc.js +43 -0
  156. package/out/replicache/src/persist/client-group-gc.js.map +1 -0
  157. package/out/replicache/src/persist/client-groups.js +184 -0
  158. package/out/replicache/src/persist/client-groups.js.map +1 -0
  159. package/out/replicache/src/persist/clients.d.ts +3 -2
  160. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  161. package/out/replicache/src/persist/clients.js +353 -0
  162. package/out/replicache/src/persist/clients.js.map +1 -0
  163. package/out/replicache/src/persist/collect-idb-databases.js +188 -0
  164. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
  165. package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
  166. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  167. package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
  168. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  169. package/out/replicache/src/persist/heartbeat.js +48 -0
  170. package/out/replicache/src/persist/heartbeat.js.map +1 -0
  171. package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
  172. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  173. package/out/replicache/src/persist/idb-databases-store.js +92 -0
  174. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  175. package/out/replicache/src/persist/make-client-id.js +12 -0
  176. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  177. package/out/replicache/src/persist/persist.d.ts +2 -2
  178. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  179. package/out/replicache/src/persist/persist.js +183 -0
  180. package/out/replicache/src/persist/persist.js.map +1 -0
  181. package/out/replicache/src/persist/refresh.d.ts +4 -3
  182. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  183. package/out/replicache/src/persist/refresh.js +198 -0
  184. package/out/replicache/src/persist/refresh.js.map +1 -0
  185. package/out/replicache/src/process-scheduler.js +96 -0
  186. package/out/replicache/src/process-scheduler.js.map +1 -0
  187. package/out/replicache/src/pusher.js +33 -0
  188. package/out/replicache/src/pusher.js.map +1 -0
  189. package/out/replicache/src/replicache-impl.d.ts +1 -1
  190. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  191. package/out/replicache/src/replicache-impl.js +1200 -0
  192. package/out/replicache/src/replicache-impl.js.map +1 -0
  193. package/out/replicache/src/report-error.js +6 -0
  194. package/out/replicache/src/report-error.js.map +1 -0
  195. package/out/replicache/src/request-idle.js +13 -0
  196. package/out/replicache/src/request-idle.js.map +1 -0
  197. package/out/replicache/src/scan-iterator.js +146 -0
  198. package/out/replicache/src/scan-iterator.js.map +1 -0
  199. package/out/replicache/src/scan-options.js +45 -0
  200. package/out/replicache/src/scan-options.js.map +1 -0
  201. package/out/replicache/src/set-interval-with-signal.js +12 -0
  202. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  203. package/out/replicache/src/subscriptions.js +355 -0
  204. package/out/replicache/src/subscriptions.js.map +1 -0
  205. package/out/replicache/src/sync/diff.d.ts +3 -2
  206. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  207. package/out/replicache/src/sync/diff.js +72 -0
  208. package/out/replicache/src/sync/diff.js.map +1 -0
  209. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  210. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  211. package/out/replicache/src/sync/ids.js +9 -0
  212. package/out/replicache/src/sync/ids.js.map +1 -0
  213. package/out/replicache/src/sync/patch.js +49 -0
  214. package/out/replicache/src/sync/patch.js.map +1 -0
  215. package/out/replicache/src/sync/pull-error.js +16 -0
  216. package/out/replicache/src/sync/pull-error.js.map +1 -0
  217. package/out/replicache/src/sync/pull.d.ts +3 -2
  218. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  219. package/out/replicache/src/sync/pull.js +301 -0
  220. package/out/replicache/src/sync/pull.js.map +1 -0
  221. package/out/replicache/src/sync/push.js +88 -0
  222. package/out/replicache/src/sync/push.js.map +1 -0
  223. package/out/replicache/src/sync/request-id.js +20 -0
  224. package/out/replicache/src/sync/request-id.js.map +1 -0
  225. package/out/replicache/src/sync/sync-head-name.js +5 -0
  226. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  227. package/out/replicache/src/to-error.js +10 -0
  228. package/out/replicache/src/to-error.js.map +1 -0
  229. package/out/replicache/src/transaction-closed-error.js +19 -0
  230. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  231. package/out/replicache/src/transactions.js +152 -0
  232. package/out/replicache/src/transactions.js.map +1 -0
  233. package/out/replicache/src/version.js +5 -0
  234. package/out/replicache/src/version.js.map +1 -0
  235. package/out/replicache/src/with-transactions.js +28 -0
  236. package/out/replicache/src/with-transactions.js.map +1 -0
  237. package/out/shared/src/abort-error.js +6 -3
  238. package/out/shared/src/abort-error.js.map +1 -1
  239. package/out/shared/src/arrays.js +45 -43
  240. package/out/shared/src/arrays.js.map +1 -1
  241. package/out/shared/src/asserts.js +64 -68
  242. package/out/shared/src/asserts.js.map +1 -1
  243. package/out/shared/src/bigint-json.js +38 -42
  244. package/out/shared/src/bigint-json.js.map +1 -1
  245. package/out/shared/src/binary-search.js +18 -29
  246. package/out/shared/src/binary-search.js.map +1 -1
  247. package/out/shared/src/broadcast-channel.js +24 -0
  248. package/out/shared/src/broadcast-channel.js.map +1 -0
  249. package/out/shared/src/browser-env.js +25 -0
  250. package/out/shared/src/browser-env.js.map +1 -0
  251. package/out/shared/src/btree-set.js +464 -507
  252. package/out/shared/src/btree-set.js.map +1 -1
  253. package/out/shared/src/cache.js +34 -38
  254. package/out/shared/src/cache.js.map +1 -1
  255. package/out/shared/src/centroid.js +24 -24
  256. package/out/shared/src/centroid.js.map +1 -1
  257. package/out/shared/src/config.js +6 -3
  258. package/out/shared/src/config.js.map +1 -1
  259. package/out/shared/src/custom-key-map.js +58 -64
  260. package/out/shared/src/custom-key-map.js.map +1 -1
  261. package/out/shared/src/custom-key-set.js +51 -57
  262. package/out/shared/src/custom-key-set.js.map +1 -1
  263. package/out/shared/src/deep-clone.js +46 -0
  264. package/out/shared/src/deep-clone.js.map +1 -0
  265. package/out/shared/src/document-visible.js +74 -0
  266. package/out/shared/src/document-visible.js.map +1 -0
  267. package/out/shared/src/dotenv.js +5 -7
  268. package/out/shared/src/dotenv.js.map +1 -1
  269. package/out/shared/src/error.js +57 -56
  270. package/out/shared/src/error.js.map +1 -1
  271. package/out/shared/src/has-own.js +5 -3
  272. package/out/shared/src/has-own.js.map +1 -1
  273. package/out/shared/src/hash.js +15 -14
  274. package/out/shared/src/hash.js.map +1 -1
  275. package/out/shared/src/iterables.js +71 -73
  276. package/out/shared/src/iterables.js.map +1 -1
  277. package/out/shared/src/json-schema.js +30 -33
  278. package/out/shared/src/json-schema.js.map +1 -1
  279. package/out/shared/src/json.js +128 -143
  280. package/out/shared/src/json.js.map +1 -1
  281. package/out/shared/src/logging-test-utils.js +12 -19
  282. package/out/shared/src/logging-test-utils.js.map +1 -1
  283. package/out/shared/src/logging.js +83 -83
  284. package/out/shared/src/logging.js.map +1 -1
  285. package/out/shared/src/must.js +9 -7
  286. package/out/shared/src/must.js.map +1 -1
  287. package/out/shared/src/navigator.js +5 -0
  288. package/out/shared/src/navigator.js.map +1 -0
  289. package/out/shared/src/objects.js +21 -22
  290. package/out/shared/src/objects.js.map +1 -1
  291. package/out/shared/src/options.d.ts +2 -0
  292. package/out/shared/src/options.d.ts.map +1 -1
  293. package/out/shared/src/options.js +289 -318
  294. package/out/shared/src/options.js.map +1 -1
  295. package/out/shared/src/parse-big-int.js +12 -10
  296. package/out/shared/src/parse-big-int.js.map +1 -1
  297. package/out/shared/src/promise-race.js +20 -0
  298. package/out/shared/src/promise-race.js.map +1 -0
  299. package/out/shared/src/queue.js +119 -122
  300. package/out/shared/src/queue.js.map +1 -1
  301. package/out/shared/src/rand.js +8 -10
  302. package/out/shared/src/rand.js.map +1 -1
  303. package/out/shared/src/random-uint64.js +9 -0
  304. package/out/shared/src/random-uint64.js.map +1 -0
  305. package/out/shared/src/random-values.js +13 -0
  306. package/out/shared/src/random-values.js.map +1 -0
  307. package/out/shared/src/resolved-promises.js +12 -9
  308. package/out/shared/src/resolved-promises.js.map +1 -1
  309. package/out/shared/src/sentinels.js +13 -6
  310. package/out/shared/src/sentinels.js.map +1 -1
  311. package/out/shared/src/set-utils.js +63 -62
  312. package/out/shared/src/set-utils.js.map +1 -1
  313. package/out/shared/src/size-of-value.js +58 -0
  314. package/out/shared/src/size-of-value.js.map +1 -0
  315. package/out/shared/src/sleep.js +45 -53
  316. package/out/shared/src/sleep.js.map +1 -1
  317. package/out/shared/src/string-compare.js +12 -9
  318. package/out/shared/src/string-compare.js.map +1 -1
  319. package/out/shared/src/subscribable.js +34 -0
  320. package/out/shared/src/subscribable.js.map +1 -0
  321. package/out/shared/src/tdigest-schema.js +7 -7
  322. package/out/shared/src/tdigest-schema.js.map +1 -1
  323. package/out/shared/src/tdigest.js +247 -271
  324. package/out/shared/src/tdigest.js.map +1 -1
  325. package/out/shared/src/valita.js +195 -207
  326. package/out/shared/src/valita.js.map +1 -1
  327. package/out/z2s/src/compiler.d.ts.map +1 -1
  328. package/out/z2s/src/compiler.js +437 -310
  329. package/out/z2s/src/compiler.js.map +1 -1
  330. package/out/z2s/src/sql.js +186 -218
  331. package/out/z2s/src/sql.js.map +1 -1
  332. package/out/zero/package.json.js +9 -0
  333. package/out/zero/package.json.js.map +1 -0
  334. package/out/zero/src/adapters/drizzle.js +5 -2
  335. package/out/zero/src/adapters/drizzle.js.map +1 -1
  336. package/out/zero/src/adapters/pg.js +7 -2
  337. package/out/zero/src/adapters/pg.js.map +1 -1
  338. package/out/zero/src/adapters/postgresjs.js +7 -2
  339. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  340. package/out/zero/src/analyze-query.js +1 -1
  341. package/out/zero/src/analyze-query.js.map +1 -1
  342. package/out/zero/src/ast-to-zql.js +1 -1
  343. package/out/zero/src/ast-to-zql.js.map +1 -1
  344. package/out/zero/src/build-schema.js +3 -5
  345. package/out/zero/src/build-schema.js.map +1 -1
  346. package/out/zero/src/change-protocol/v0.js +5 -3
  347. package/out/zero/src/change-protocol/v0.js.map +1 -1
  348. package/out/zero/src/cli.js +2 -2
  349. package/out/zero/src/cli.js.map +1 -1
  350. package/out/zero/src/deploy-permissions.js +1 -1
  351. package/out/zero/src/deploy-permissions.js.map +1 -1
  352. package/out/zero/src/expo-sqlite.js +5 -0
  353. package/out/zero/src/expo-sqlite.js.map +1 -0
  354. package/out/zero/src/op-sqlite.js +5 -0
  355. package/out/zero/src/op-sqlite.js.map +1 -0
  356. package/out/zero/src/pg.js +31 -3
  357. package/out/zero/src/pg.js.map +1 -1
  358. package/out/zero/src/react-native.js +13 -0
  359. package/out/zero/src/react-native.js.map +1 -0
  360. package/out/zero/src/react.js +17 -0
  361. package/out/zero/src/react.js.map +1 -0
  362. package/out/zero/src/server.js +27 -3
  363. package/out/zero/src/server.js.map +1 -1
  364. package/out/zero/src/solid.js +15 -0
  365. package/out/zero/src/solid.js.map +1 -0
  366. package/out/zero/src/sqlite.js +7 -0
  367. package/out/zero/src/sqlite.js.map +1 -0
  368. package/out/zero/src/transform-query.js +1 -1
  369. package/out/zero/src/transform-query.js.map +1 -1
  370. package/out/zero/src/zero-cache-dev.js +135 -124
  371. package/out/zero/src/zero-cache-dev.js.map +1 -1
  372. package/out/zero/src/zero-out.js +6 -6
  373. package/out/zero/src/zero-out.js.map +1 -1
  374. package/out/zero/src/zero.js +55 -0
  375. package/out/zero/src/zero.js.map +1 -0
  376. package/out/zero/src/zqlite.js +11 -3
  377. package/out/zero/src/zqlite.js.map +1 -1
  378. package/out/zero-cache/src/auth/jwt.js +33 -38
  379. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  380. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  381. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  382. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  383. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  384. package/out/zero-cache/src/auth/write-authorizer.d.ts +2 -2
  385. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  386. package/out/zero-cache/src/auth/write-authorizer.js +394 -349
  387. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  388. package/out/zero-cache/src/config/network.js +42 -45
  389. package/out/zero-cache/src/config/network.js.map +1 -1
  390. package/out/zero-cache/src/config/normalize.js +86 -83
  391. package/out/zero-cache/src/config/normalize.js.map +1 -1
  392. package/out/zero-cache/src/config/zero-config.js +676 -682
  393. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  394. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  395. package/out/zero-cache/src/custom/fetch.js +166 -162
  396. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  397. package/out/zero-cache/src/custom-queries/transform-query.d.ts +7 -0
  398. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  399. package/out/zero-cache/src/custom-queries/transform-query.js +101 -106
  400. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  401. package/out/zero-cache/src/db/create.js +32 -36
  402. package/out/zero-cache/src/db/create.js.map +1 -1
  403. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  404. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  405. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  406. package/out/zero-cache/src/db/lite-tables.js +150 -174
  407. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  408. package/out/zero-cache/src/db/migration-lite.js +170 -165
  409. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  410. package/out/zero-cache/src/db/migration.js +157 -137
  411. package/out/zero-cache/src/db/migration.js.map +1 -1
  412. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  413. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  414. package/out/zero-cache/src/db/mode-enum.js +9 -3
  415. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  416. package/out/zero-cache/src/db/pg-copy.js +51 -90
  417. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  418. package/out/zero-cache/src/db/pg-to-lite.js +114 -109
  419. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  420. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  421. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  422. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  423. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  424. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  425. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  426. package/out/zero-cache/src/db/specs.d.ts +0 -6
  427. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  428. package/out/zero-cache/src/db/specs.js +66 -40
  429. package/out/zero-cache/src/db/specs.js.map +1 -1
  430. package/out/zero-cache/src/db/statements.d.ts +1 -1
  431. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  432. package/out/zero-cache/src/db/statements.js +59 -52
  433. package/out/zero-cache/src/db/statements.js.map +1 -1
  434. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  435. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  436. package/out/zero-cache/src/db/transaction-pool.js +375 -501
  437. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  438. package/out/zero-cache/src/db/warmup.js +25 -12
  439. package/out/zero-cache/src/db/warmup.js.map +1 -1
  440. package/out/zero-cache/src/observability/events.js +71 -82
  441. package/out/zero-cache/src/observability/events.js.map +1 -1
  442. package/out/zero-cache/src/observability/metrics.js +54 -32
  443. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  444. package/out/zero-cache/src/scripts/decommission.js +47 -43
  445. package/out/zero-cache/src/scripts/decommission.js.map +1 -1
  446. package/out/zero-cache/src/scripts/deploy-permissions.js +128 -118
  447. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  448. package/out/zero-cache/src/scripts/permissions.js +107 -99
  449. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  450. package/out/zero-cache/src/server/anonymous-otel-start.js +410 -366
  451. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  452. package/out/zero-cache/src/server/change-streamer.js +104 -60
  453. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  454. package/out/zero-cache/src/server/inspector-delegate.js +112 -109
  455. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  456. package/out/zero-cache/src/server/logging.d.ts +1 -1
  457. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  458. package/out/zero-cache/src/server/logging.js +26 -19
  459. package/out/zero-cache/src/server/logging.js.map +1 -1
  460. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  461. package/out/zero-cache/src/server/main.js +137 -120
  462. package/out/zero-cache/src/server/main.js.map +1 -1
  463. package/out/zero-cache/src/server/mutator.js +19 -0
  464. package/out/zero-cache/src/server/mutator.js.map +1 -0
  465. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  466. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  467. package/out/zero-cache/src/server/otel-diag-logger.js +67 -70
  468. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  469. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  470. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  471. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  472. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  473. package/out/zero-cache/src/server/otel-start.js +57 -68
  474. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  475. package/out/zero-cache/src/server/reaper.js +34 -26
  476. package/out/zero-cache/src/server/reaper.js.map +1 -1
  477. package/out/zero-cache/src/server/replicator.js +53 -31
  478. package/out/zero-cache/src/server/replicator.js.map +1 -1
  479. package/out/zero-cache/src/server/runner/main.js +6 -4
  480. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  481. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  482. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  483. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  484. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  485. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  486. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  487. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  488. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  489. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  490. package/out/zero-cache/src/server/syncer.js +112 -63
  491. package/out/zero-cache/src/server/syncer.js.map +1 -1
  492. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  493. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  494. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  495. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  496. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  497. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  498. package/out/zero-cache/src/server/worker-urls.js +21 -0
  499. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  500. package/out/zero-cache/src/services/analyze.d.ts +3 -4
  501. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  502. package/out/zero-cache/src/services/analyze.js +96 -122
  503. package/out/zero-cache/src/services/analyze.js.map +1 -1
  504. package/out/zero-cache/src/services/change-source/column-metadata.js +152 -155
  505. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  506. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  507. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  508. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  509. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  510. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  511. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  512. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  513. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  514. package/out/zero-cache/src/services/change-source/pg/change-source.js +601 -622
  515. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  516. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  517. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  518. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  519. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  520. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  521. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  522. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  523. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  524. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  525. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  526. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  527. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  528. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  529. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  530. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  531. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  532. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  533. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  534. package/out/zero-cache/src/services/change-source/pg/schema/published.js +67 -74
  535. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  536. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  537. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  538. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  539. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  540. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  541. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  542. package/out/zero-cache/src/services/change-source/protocol/current/control.js +9 -19
  543. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  544. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  545. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  546. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  547. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  548. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  549. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  550. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  551. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  552. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  553. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  554. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  555. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  556. package/out/zero-cache/src/services/change-source/protocol/current.js +35 -7
  557. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  558. package/out/zero-cache/src/services/change-source/replica-schema.js +64 -47
  559. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  560. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  561. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  562. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  563. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  564. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +2 -2
  565. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  566. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +178 -158
  567. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  568. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  569. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  570. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +235 -349
  571. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  572. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
  573. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  574. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  575. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  576. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  577. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  578. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  579. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  580. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  581. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  582. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +40 -44
  583. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -1
  584. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  585. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  586. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  587. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  588. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  589. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  590. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  591. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  592. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  593. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  594. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  595. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  596. package/out/zero-cache/src/services/change-streamer/storer.js +309 -367
  597. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  598. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +2 -1
  599. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  600. package/out/zero-cache/src/services/change-streamer/subscriber.js +83 -90
  601. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  602. package/out/zero-cache/src/services/heapz.js +21 -25
  603. package/out/zero-cache/src/services/heapz.js.map +1 -1
  604. package/out/zero-cache/src/services/http-service.d.ts +1 -1
  605. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  606. package/out/zero-cache/src/services/http-service.js +56 -59
  607. package/out/zero-cache/src/services/http-service.js.map +1 -1
  608. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  609. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  610. package/out/zero-cache/src/services/life-cycle.js +216 -255
  611. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  612. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  613. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  614. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  615. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  616. package/out/zero-cache/src/services/litestream/commands.js +201 -154
  617. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  618. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  619. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  620. package/out/zero-cache/src/services/mutagen/mutagen.js +270 -267
  621. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  622. package/out/zero-cache/src/services/mutagen/pusher.js +351 -344
  623. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  624. package/out/zero-cache/src/services/replicator/change-processor.js +483 -530
  625. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  626. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  627. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  628. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  629. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  630. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  631. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  632. package/out/zero-cache/src/services/replicator/replication-status.js +100 -83
  633. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  634. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  635. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  636. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  637. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  638. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  639. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  640. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  641. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  642. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  643. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  644. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  645. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  646. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  647. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  648. package/out/zero-cache/src/services/run-ast.d.ts +5 -3
  649. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  650. package/out/zero-cache/src/services/run-ast.js +80 -79
  651. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  652. package/out/zero-cache/src/services/runner.d.ts +1 -1
  653. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  654. package/out/zero-cache/src/services/runner.js +40 -40
  655. package/out/zero-cache/src/services/runner.js.map +1 -1
  656. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  657. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  658. package/out/zero-cache/src/services/running-state.js +122 -119
  659. package/out/zero-cache/src/services/running-state.js.map +1 -1
  660. package/out/zero-cache/src/services/statz.js +184 -162
  661. package/out/zero-cache/src/services/statz.js.map +1 -1
  662. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +40 -39
  663. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  664. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
  665. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  666. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  667. package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
  668. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  669. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  670. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +84 -94
  671. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  672. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +2 -4
  673. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  674. package/out/zero-cache/src/services/view-syncer/cvr-store.js +628 -612
  675. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  676. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
  677. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  678. package/out/zero-cache/src/services/view-syncer/cvr.js +631 -694
  679. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  680. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -60
  681. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  682. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  683. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  684. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +168 -158
  685. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  686. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +14 -13
  687. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  688. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +529 -467
  689. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  690. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  691. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  692. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  693. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  694. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +53 -120
  695. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  696. package/out/zero-cache/src/services/view-syncer/schema/init.js +171 -150
  697. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  698. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  699. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  700. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +3 -3
  701. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  702. package/out/zero-cache/src/services/view-syncer/snapshotter.js +295 -338
  703. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  704. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  705. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  706. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -3
  707. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  708. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1485 -1307
  709. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  710. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  711. package/out/zero-cache/src/types/error-with-level.js +29 -25
  712. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  713. package/out/zero-cache/src/types/http.js +27 -14
  714. package/out/zero-cache/src/types/http.js.map +1 -1
  715. package/out/zero-cache/src/types/lexi-version.js +46 -31
  716. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  717. package/out/zero-cache/src/types/lite.js +118 -125
  718. package/out/zero-cache/src/types/lite.js.map +1 -1
  719. package/out/zero-cache/src/types/names.js +6 -3
  720. package/out/zero-cache/src/types/names.js.map +1 -1
  721. package/out/zero-cache/src/types/pg-data-type.js +74 -68
  722. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  723. package/out/zero-cache/src/types/pg-types.js +17 -72
  724. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  725. package/out/zero-cache/src/types/pg.d.ts +1 -1
  726. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  727. package/out/zero-cache/src/types/pg.js +213 -233
  728. package/out/zero-cache/src/types/pg.js.map +1 -1
  729. package/out/zero-cache/src/types/processes.d.ts +2 -2
  730. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  731. package/out/zero-cache/src/types/processes.js +95 -143
  732. package/out/zero-cache/src/types/processes.js.map +1 -1
  733. package/out/zero-cache/src/types/profiler.js +29 -30
  734. package/out/zero-cache/src/types/profiler.js.map +1 -1
  735. package/out/zero-cache/src/types/row-key.js +30 -68
  736. package/out/zero-cache/src/types/row-key.js.map +1 -1
  737. package/out/zero-cache/src/types/schema-versions.js +25 -19
  738. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  739. package/out/zero-cache/src/types/shards.js +50 -36
  740. package/out/zero-cache/src/types/shards.js.map +1 -1
  741. package/out/zero-cache/src/types/sql.js +9 -13
  742. package/out/zero-cache/src/types/sql.js.map +1 -1
  743. package/out/zero-cache/src/types/streams.js +245 -254
  744. package/out/zero-cache/src/types/streams.js.map +1 -1
  745. package/out/zero-cache/src/types/strings.js +14 -11
  746. package/out/zero-cache/src/types/strings.js.map +1 -1
  747. package/out/zero-cache/src/types/subscription.js +200 -259
  748. package/out/zero-cache/src/types/subscription.js.map +1 -1
  749. package/out/zero-cache/src/types/url-params.js +35 -30
  750. package/out/zero-cache/src/types/url-params.js.map +1 -1
  751. package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
  752. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  753. package/out/zero-cache/src/types/websocket-handoff.js +68 -76
  754. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  755. package/out/zero-cache/src/types/ws.js +56 -59
  756. package/out/zero-cache/src/types/ws.js.map +1 -1
  757. package/out/zero-cache/src/workers/connect-params.js +44 -40
  758. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  759. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  760. package/out/zero-cache/src/workers/connection.js +277 -243
  761. package/out/zero-cache/src/workers/connection.js.map +1 -1
  762. package/out/zero-cache/src/workers/mutator.js +24 -0
  763. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  764. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  765. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  766. package/out/zero-cache/src/workers/replicator.js +103 -106
  767. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  768. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +179 -147
  769. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  770. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  771. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  772. package/out/zero-cache/src/workers/syncer.js +192 -169
  773. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  774. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  775. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  776. package/out/zero-client/src/client/bindings.d.ts +8 -7
  777. package/out/zero-client/src/client/bindings.d.ts.map +1 -1
  778. package/out/zero-client/src/client/bindings.js +33 -0
  779. package/out/zero-client/src/client/bindings.js.map +1 -0
  780. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  781. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  782. package/out/zero-client/src/client/connection-manager.d.ts +12 -31
  783. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  784. package/out/zero-client/src/client/connection-manager.js +310 -0
  785. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  786. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  787. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  788. package/out/zero-client/src/client/connection.d.ts +47 -4
  789. package/out/zero-client/src/client/connection.d.ts.map +1 -1
  790. package/out/zero-client/src/client/connection.js +103 -0
  791. package/out/zero-client/src/client/connection.js.map +1 -0
  792. package/out/zero-client/src/client/context.d.ts +4 -7
  793. package/out/zero-client/src/client/context.d.ts.map +1 -1
  794. package/out/zero-client/src/client/context.js +104 -0
  795. package/out/zero-client/src/client/context.js.map +1 -0
  796. package/out/zero-client/src/client/crud.js +225 -0
  797. package/out/zero-client/src/client/crud.js.map +1 -0
  798. package/out/zero-client/src/client/custom.d.ts +12 -15
  799. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  800. package/out/zero-client/src/client/custom.js +123 -0
  801. package/out/zero-client/src/client/custom.js.map +1 -0
  802. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  803. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  804. package/out/zero-client/src/client/delete-clients-manager.js +71 -0
  805. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  806. package/out/zero-client/src/client/enable-analytics.js +18 -0
  807. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  808. package/out/zero-client/src/client/error.d.ts +2 -1
  809. package/out/zero-client/src/client/error.d.ts.map +1 -1
  810. package/out/zero-client/src/client/error.js +148 -0
  811. package/out/zero-client/src/client/error.js.map +1 -0
  812. package/out/zero-client/src/client/http-string.js +11 -0
  813. package/out/zero-client/src/client/http-string.js.map +1 -0
  814. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  815. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  816. package/out/zero-client/src/client/inspector/client.js +28 -0
  817. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  818. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  819. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  820. package/out/zero-client/src/client/inspector/inspector.d.ts +1 -1
  821. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  822. package/out/zero-client/src/client/inspector/inspector.js +47 -0
  823. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  824. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +1 -1
  825. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  826. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  827. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  828. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  829. package/out/zero-client/src/client/inspector/query.js +82 -0
  830. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  831. package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
  832. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  833. package/out/zero-client/src/client/ivm-branch.js +149 -0
  834. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  835. package/out/zero-client/src/client/keys.js +45 -0
  836. package/out/zero-client/src/client/keys.js.map +1 -0
  837. package/out/zero-client/src/client/log-options.js +60 -0
  838. package/out/zero-client/src/client/log-options.js.map +1 -0
  839. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  840. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  841. package/out/zero-client/src/client/metrics.d.ts +2 -2
  842. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  843. package/out/zero-client/src/client/metrics.js +249 -0
  844. package/out/zero-client/src/client/metrics.js.map +1 -0
  845. package/out/zero-client/src/client/mutation-tracker.d.ts +2 -2
  846. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  847. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  848. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  849. package/out/zero-client/src/client/mutator-proxy.d.ts +1 -2
  850. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -1
  851. package/out/zero-client/src/client/mutator-proxy.js +132 -0
  852. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  853. package/out/zero-client/src/client/options.d.ts +36 -19
  854. package/out/zero-client/src/client/options.d.ts.map +1 -1
  855. package/out/zero-client/src/client/options.js +11 -0
  856. package/out/zero-client/src/client/options.js.map +1 -0
  857. package/out/zero-client/src/client/query-manager.d.ts +5 -5
  858. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  859. package/out/zero-client/src/client/query-manager.js +377 -0
  860. package/out/zero-client/src/client/query-manager.js.map +1 -0
  861. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  862. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  863. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  864. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  865. package/out/zero-client/src/client/server-option.js +64 -0
  866. package/out/zero-client/src/client/server-option.js.map +1 -0
  867. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  868. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  869. package/out/zero-client/src/client/version.js +5 -0
  870. package/out/zero-client/src/client/version.js.map +1 -0
  871. package/out/zero-client/src/client/zero-poke-handler.d.ts +2 -2
  872. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  873. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  874. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  875. package/out/zero-client/src/client/zero-rep.d.ts +2 -2
  876. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  877. package/out/zero-client/src/client/zero-rep.js +72 -0
  878. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  879. package/out/zero-client/src/client/zero.d.ts +28 -11
  880. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  881. package/out/zero-client/src/client/zero.js +1825 -0
  882. package/out/zero-client/src/client/zero.js.map +1 -0
  883. package/out/zero-client/src/mod.d.ts +4 -12
  884. package/out/zero-client/src/mod.d.ts.map +1 -1
  885. package/out/zero-client/src/util/nanoid.js +21 -0
  886. package/out/zero-client/src/util/nanoid.js.map +1 -0
  887. package/out/zero-client/src/util/socket.js +7 -0
  888. package/out/zero-client/src/util/socket.js.map +1 -0
  889. package/out/zero-protocol/src/analyze-query-result.js +32 -24
  890. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  891. package/out/zero-protocol/src/application-error.js +35 -37
  892. package/out/zero-protocol/src/application-error.js.map +1 -1
  893. package/out/zero-protocol/src/ast.d.ts +1 -1
  894. package/out/zero-protocol/src/ast.js +296 -277
  895. package/out/zero-protocol/src/ast.js.map +1 -1
  896. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  897. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  898. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  899. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  900. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  901. package/out/zero-protocol/src/client-schema.js +40 -26
  902. package/out/zero-protocol/src/client-schema.js.map +1 -1
  903. package/out/zero-protocol/src/close-connection.js +11 -18
  904. package/out/zero-protocol/src/close-connection.js.map +1 -1
  905. package/out/zero-protocol/src/connect.d.ts +4 -4
  906. package/out/zero-protocol/src/connect.js +46 -51
  907. package/out/zero-protocol/src/connect.js.map +1 -1
  908. package/out/zero-protocol/src/custom-queries.d.ts +4 -4
  909. package/out/zero-protocol/src/custom-queries.js +61 -39
  910. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  911. package/out/zero-protocol/src/data.js +9 -4
  912. package/out/zero-protocol/src/data.js.map +1 -1
  913. package/out/zero-protocol/src/delete-clients.js +16 -9
  914. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  915. package/out/zero-protocol/src/down.d.ts +6 -6
  916. package/out/zero-protocol/src/down.js +20 -4
  917. package/out/zero-protocol/src/down.js.map +1 -1
  918. package/out/zero-protocol/src/error-kind-enum.js +41 -23
  919. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  920. package/out/zero-protocol/src/error-origin-enum.js +9 -4
  921. package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
  922. package/out/zero-protocol/src/error-reason-enum.js +17 -8
  923. package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
  924. package/out/zero-protocol/src/error.d.ts +17 -17
  925. package/out/zero-protocol/src/error.js +151 -89
  926. package/out/zero-protocol/src/error.js.map +1 -1
  927. package/out/zero-protocol/src/inspect-down.d.ts +18 -18
  928. package/out/zero-protocol/src/inspect-down.js +72 -54
  929. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  930. package/out/zero-protocol/src/inspect-up.d.ts +6 -6
  931. package/out/zero-protocol/src/inspect-up.js +38 -26
  932. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  933. package/out/zero-protocol/src/mutation-id.js +9 -5
  934. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  935. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  936. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  937. package/out/zero-protocol/src/mutations-patch.js +16 -17
  938. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  939. package/out/zero-protocol/src/ping.js +9 -4
  940. package/out/zero-protocol/src/ping.js.map +1 -1
  941. package/out/zero-protocol/src/poke.js +55 -72
  942. package/out/zero-protocol/src/poke.js.map +1 -1
  943. package/out/zero-protocol/src/pong.js +9 -4
  944. package/out/zero-protocol/src/pong.js.map +1 -1
  945. package/out/zero-protocol/src/primary-key.js +19 -5
  946. package/out/zero-protocol/src/primary-key.js.map +1 -1
  947. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  948. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  949. package/out/zero-protocol/src/protocol-version.js +7 -59
  950. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  951. package/out/zero-protocol/src/pull.js +26 -19
  952. package/out/zero-protocol/src/pull.js.map +1 -1
  953. package/out/zero-protocol/src/push.d.ts +4 -4
  954. package/out/zero-protocol/src/push.js +179 -176
  955. package/out/zero-protocol/src/push.js.map +1 -1
  956. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  957. package/out/zero-protocol/src/queries-patch.js +29 -22
  958. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  959. package/out/zero-protocol/src/query-hash.js +18 -14
  960. package/out/zero-protocol/src/query-hash.js.map +1 -1
  961. package/out/zero-protocol/src/row-patch.js +29 -20
  962. package/out/zero-protocol/src/row-patch.js.map +1 -1
  963. package/out/zero-protocol/src/up.d.ts +5 -5
  964. package/out/zero-protocol/src/up.js +18 -4
  965. package/out/zero-protocol/src/up.js.map +1 -1
  966. package/out/zero-protocol/src/version.js +9 -4
  967. package/out/zero-protocol/src/version.js.map +1 -1
  968. package/out/{inspector-GP3CBZRU.js → zero-react/src/components/inspector.js} +4 -9
  969. package/out/zero-react/src/components/inspector.js.map +1 -0
  970. package/out/{chunk-VZOYWIRW.js → zero-react/src/components/mark-icon.js} +3 -5
  971. package/out/zero-react/src/components/mark-icon.js.map +1 -0
  972. package/out/zero-react/src/components/zero-inspector.js +44 -0
  973. package/out/zero-react/src/components/zero-inspector.js.map +1 -0
  974. package/out/zero-react/src/mod.d.ts +1 -3
  975. package/out/zero-react/src/mod.d.ts.map +1 -1
  976. package/out/zero-react/src/use-query.d.ts +4 -4
  977. package/out/zero-react/src/use-query.d.ts.map +1 -1
  978. package/out/{react.js → zero-react/src/use-query.js} +25 -217
  979. package/out/zero-react/src/use-query.js.map +1 -0
  980. package/out/zero-react/src/use-zero-connection-state.d.ts +1 -1
  981. package/out/zero-react/src/use-zero-connection-state.d.ts.map +1 -1
  982. package/out/zero-react/src/use-zero-connection-state.js +14 -0
  983. package/out/zero-react/src/use-zero-connection-state.js.map +1 -0
  984. package/out/zero-react/src/use-zero-online.js +14 -0
  985. package/out/zero-react/src/use-zero-online.js.map +1 -0
  986. package/out/zero-react/src/zero-provider.d.ts +7 -6
  987. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  988. package/out/zero-react/src/zero-provider.js +59 -0
  989. package/out/zero-react/src/zero-provider.js.map +1 -0
  990. package/out/zero-schema/src/builder/relationship-builder.js +27 -0
  991. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -0
  992. package/out/zero-schema/src/builder/schema-builder.js +88 -0
  993. package/out/zero-schema/src/builder/schema-builder.js.map +1 -0
  994. package/out/zero-schema/src/builder/table-builder.js +129 -0
  995. package/out/zero-schema/src/builder/table-builder.js.map +1 -0
  996. package/out/zero-schema/src/compiled-permissions.js +23 -19
  997. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  998. package/out/zero-schema/src/name-mapper.js +43 -38
  999. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1000. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1001. package/out/zero-schema/src/permissions.js +199 -0
  1002. package/out/zero-schema/src/permissions.js.map +1 -0
  1003. package/out/zero-schema/src/schema-config.js +35 -51
  1004. package/out/zero-schema/src/schema-config.js.map +1 -1
  1005. package/out/zero-server/src/adapters/drizzle.d.ts +1 -1
  1006. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1007. package/out/zero-server/src/adapters/drizzle.js +83 -100
  1008. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1009. package/out/zero-server/src/adapters/pg.d.ts +4 -3
  1010. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1011. package/out/zero-server/src/adapters/pg.js +53 -77
  1012. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1013. package/out/zero-server/src/adapters/postgresjs.d.ts +2 -2
  1014. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1015. package/out/zero-server/src/adapters/postgresjs.js +39 -57
  1016. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1017. package/out/zero-server/src/custom.d.ts +6 -6
  1018. package/out/zero-server/src/custom.d.ts.map +1 -1
  1019. package/out/zero-server/src/custom.js +185 -117
  1020. package/out/zero-server/src/custom.js.map +1 -1
  1021. package/out/zero-server/src/logging.js +7 -4
  1022. package/out/zero-server/src/logging.js.map +1 -1
  1023. package/out/zero-server/src/mod.d.ts +2 -0
  1024. package/out/zero-server/src/mod.d.ts.map +1 -1
  1025. package/out/zero-server/src/pg-query-executor.js +17 -14
  1026. package/out/zero-server/src/pg-query-executor.js.map +1 -1
  1027. package/out/zero-server/src/process-mutations.js +293 -274
  1028. package/out/zero-server/src/process-mutations.js.map +1 -1
  1029. package/out/zero-server/src/push-processor.js +55 -31
  1030. package/out/zero-server/src/push-processor.js.map +1 -1
  1031. package/out/zero-server/src/queries/process-queries.d.ts +63 -2
  1032. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1033. package/out/zero-server/src/queries/process-queries.js +101 -95
  1034. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1035. package/out/zero-server/src/query-registry.d.ts +10 -0
  1036. package/out/zero-server/src/query-registry.d.ts.map +1 -0
  1037. package/out/zero-server/src/query-registry.js +35 -0
  1038. package/out/zero-server/src/query-registry.js.map +1 -0
  1039. package/out/zero-server/src/schema.js +136 -124
  1040. package/out/zero-server/src/schema.js.map +1 -1
  1041. package/out/zero-server/src/zql-database.d.ts +4 -4
  1042. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1043. package/out/zero-server/src/zql-database.js +66 -47
  1044. package/out/zero-server/src/zql-database.js.map +1 -1
  1045. package/out/zero-solid/src/mod.d.ts +1 -2
  1046. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1047. package/out/zero-solid/src/solid-view.d.ts +1 -1
  1048. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1049. package/out/{solid.js → zero-solid/src/solid-view.js} +42 -196
  1050. package/out/zero-solid/src/solid-view.js.map +1 -0
  1051. package/out/zero-solid/src/use-query.d.ts +1 -1
  1052. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1053. package/out/zero-solid/src/use-query.js +70 -0
  1054. package/out/zero-solid/src/use-query.js.map +1 -0
  1055. package/out/zero-solid/src/use-zero-connection-state.d.ts +1 -1
  1056. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +1 -1
  1057. package/out/zero-solid/src/use-zero-connection-state.js +15 -0
  1058. package/out/zero-solid/src/use-zero-connection-state.js.map +1 -0
  1059. package/out/zero-solid/src/use-zero-online.js +13 -0
  1060. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1061. package/out/zero-solid/src/use-zero.d.ts +1 -1
  1062. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1063. package/out/zero-solid/src/use-zero.js +74 -0
  1064. package/out/zero-solid/src/use-zero.js.map +1 -0
  1065. package/out/zero-types/src/format.js +7 -4
  1066. package/out/zero-types/src/format.js.map +1 -1
  1067. package/out/zero-types/src/name-mapper.js +43 -40
  1068. package/out/zero-types/src/name-mapper.js.map +1 -1
  1069. package/out/zql/src/builder/builder.d.ts +2 -1
  1070. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1071. package/out/zql/src/builder/builder.js +486 -428
  1072. package/out/zql/src/builder/builder.js.map +1 -1
  1073. package/out/zql/src/builder/debug-delegate.js +68 -64
  1074. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1075. package/out/zql/src/builder/filter.js +132 -138
  1076. package/out/zql/src/builder/filter.js.map +1 -1
  1077. package/out/zql/src/builder/like.js +44 -51
  1078. package/out/zql/src/builder/like.js.map +1 -1
  1079. package/out/zql/src/error.d.ts +5 -0
  1080. package/out/zql/src/error.d.ts.map +1 -1
  1081. package/out/zql/src/error.js +18 -6
  1082. package/out/zql/src/error.js.map +1 -1
  1083. package/out/zql/src/ivm/array-view.js +86 -92
  1084. package/out/zql/src/ivm/array-view.js.map +1 -1
  1085. package/out/zql/src/ivm/constraint.js +74 -127
  1086. package/out/zql/src/ivm/constraint.js.map +1 -1
  1087. package/out/zql/src/ivm/data.js +59 -85
  1088. package/out/zql/src/ivm/data.js.map +1 -1
  1089. package/out/zql/src/ivm/exists.js +236 -243
  1090. package/out/zql/src/ivm/exists.js.map +1 -1
  1091. package/out/zql/src/ivm/fan-in.js +50 -51
  1092. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1093. package/out/zql/src/ivm/fan-out.js +48 -50
  1094. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1095. package/out/zql/src/ivm/filter-operators.js +87 -87
  1096. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1097. package/out/zql/src/ivm/filter-push.js +26 -23
  1098. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1099. package/out/zql/src/ivm/filter.js +30 -32
  1100. package/out/zql/src/ivm/filter.js.map +1 -1
  1101. package/out/zql/src/ivm/flipped-join.js +343 -326
  1102. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1103. package/out/zql/src/ivm/join-utils.js +85 -79
  1104. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1105. package/out/zql/src/ivm/join.js +287 -207
  1106. package/out/zql/src/ivm/join.js.map +1 -1
  1107. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1108. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1109. package/out/zql/src/ivm/memory-source.d.ts +2 -2
  1110. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1111. package/out/zql/src/ivm/memory-source.js +471 -489
  1112. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1113. package/out/zql/src/ivm/memory-storage.js +32 -31
  1114. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1115. package/out/zql/src/ivm/operator.js +8 -9
  1116. package/out/zql/src/ivm/operator.js.map +1 -1
  1117. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1118. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1119. package/out/zql/src/ivm/skip.js +92 -106
  1120. package/out/zql/src/ivm/skip.js.map +1 -1
  1121. package/out/zql/src/ivm/source.d.ts +3 -1
  1122. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1123. package/out/zql/src/ivm/stream.js +20 -16
  1124. package/out/zql/src/ivm/stream.js.map +1 -1
  1125. package/out/zql/src/ivm/take.js +502 -456
  1126. package/out/zql/src/ivm/take.js.map +1 -1
  1127. package/out/zql/src/ivm/union-fan-in.js +156 -134
  1128. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1129. package/out/zql/src/ivm/union-fan-out.js +46 -45
  1130. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1131. package/out/zql/src/ivm/view-apply-change.js +246 -216
  1132. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1133. package/out/zql/src/ivm/view.d.ts +2 -2
  1134. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1135. package/out/zql/src/mutate/custom.d.ts +11 -11
  1136. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1137. package/out/zql/src/mutate/custom.js +15 -7
  1138. package/out/zql/src/mutate/custom.js.map +1 -1
  1139. package/out/zql/src/planner/planner-builder.js +238 -172
  1140. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1141. package/out/zql/src/planner/planner-connection.d.ts +7 -0
  1142. package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
  1143. package/out/zql/src/planner/planner-connection.js +202 -250
  1144. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1145. package/out/zql/src/planner/planner-constraint.js +8 -11
  1146. package/out/zql/src/planner/planner-constraint.js.map +1 -1
  1147. package/out/zql/src/planner/planner-debug.d.ts +2 -1
  1148. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1149. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
  1150. package/out/zql/src/planner/planner-fan-in.js +154 -159
  1151. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1152. package/out/zql/src/planner/planner-fan-out.js +71 -60
  1153. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1154. package/out/zql/src/planner/planner-graph.d.ts +7 -8
  1155. package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
  1156. package/out/zql/src/planner/planner-graph.js +315 -357
  1157. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1158. package/out/zql/src/planner/planner-join.d.ts +6 -2
  1159. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  1160. package/out/zql/src/planner/planner-join.js +234 -326
  1161. package/out/zql/src/planner/planner-join.js.map +1 -1
  1162. package/out/zql/src/planner/planner-node.d.ts +2 -1
  1163. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1164. package/out/zql/src/planner/planner-source.js +23 -12
  1165. package/out/zql/src/planner/planner-source.js.map +1 -1
  1166. package/out/zql/src/planner/planner-terminus.js +28 -27
  1167. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1168. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1169. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1170. package/out/zql/src/query/complete-ordering.js +71 -0
  1171. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1172. package/out/zql/src/query/define-query.d.ts +47 -23
  1173. package/out/zql/src/query/define-query.d.ts.map +1 -1
  1174. package/out/zql/src/query/define-query.js +45 -51
  1175. package/out/zql/src/query/define-query.js.map +1 -1
  1176. package/out/zql/src/query/error.js +12 -8
  1177. package/out/zql/src/query/error.js.map +1 -1
  1178. package/out/zql/src/query/escape-like.js +7 -0
  1179. package/out/zql/src/query/escape-like.js.map +1 -0
  1180. package/out/zql/src/query/expression.js +153 -151
  1181. package/out/zql/src/query/expression.js.map +1 -1
  1182. package/out/zql/src/query/measure-push-operator.js +42 -35
  1183. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1184. package/out/zql/src/query/metrics-delegate.js +9 -5
  1185. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1186. package/out/zql/src/query/named.d.ts +9 -5
  1187. package/out/zql/src/query/named.d.ts.map +1 -1
  1188. package/out/zql/src/query/named.js +70 -85
  1189. package/out/zql/src/query/named.js.map +1 -1
  1190. package/out/zql/src/query/query-definitions.d.ts +32 -0
  1191. package/out/zql/src/query/query-definitions.d.ts.map +1 -0
  1192. package/out/zql/src/query/query-delegate-base.d.ts +6 -14
  1193. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
  1194. package/out/zql/src/query/query-delegate-base.js +118 -134
  1195. package/out/zql/src/query/query-delegate-base.js.map +1 -1
  1196. package/out/zql/src/query/query-delegate.d.ts +6 -8
  1197. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1198. package/out/zql/src/query/query-impl.d.ts +17 -18
  1199. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1200. package/out/zql/src/query/query-impl.js +511 -433
  1201. package/out/zql/src/query/query-impl.js.map +1 -1
  1202. package/out/zql/src/query/query-internals.d.ts +11 -13
  1203. package/out/zql/src/query/query-internals.d.ts.map +1 -1
  1204. package/out/zql/src/query/query-internals.js +13 -19
  1205. package/out/zql/src/query/query-internals.js.map +1 -1
  1206. package/out/zql/src/query/query.d.ts +15 -16
  1207. package/out/zql/src/query/query.d.ts.map +1 -1
  1208. package/out/zql/src/query/static-query.d.ts +3 -3
  1209. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1210. package/out/zql/src/query/static-query.js +41 -18
  1211. package/out/zql/src/query/static-query.js.map +1 -1
  1212. package/out/zql/src/query/ttl.js +69 -62
  1213. package/out/zql/src/query/ttl.js.map +1 -1
  1214. package/out/zql/src/query/validate-input.d.ts +15 -0
  1215. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1216. package/out/zql/src/query/validate-input.js +25 -0
  1217. package/out/zql/src/query/validate-input.js.map +1 -0
  1218. package/out/zqlite/src/database-storage.d.ts +1 -1
  1219. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1220. package/out/zqlite/src/database-storage.js +99 -102
  1221. package/out/zqlite/src/database-storage.js.map +1 -1
  1222. package/out/zqlite/src/db.js +241 -194
  1223. package/out/zqlite/src/db.js.map +1 -1
  1224. package/out/zqlite/src/explain-queries.js +13 -16
  1225. package/out/zqlite/src/explain-queries.js.map +1 -1
  1226. package/out/zqlite/src/internal/sql.js +15 -10
  1227. package/out/zqlite/src/internal/sql.js.map +1 -1
  1228. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1229. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1230. package/out/zqlite/src/query-builder.js +172 -143
  1231. package/out/zqlite/src/query-builder.js.map +1 -1
  1232. package/out/zqlite/src/query-delegate.d.ts +2 -2
  1233. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1234. package/out/zqlite/src/query-delegate.js +53 -43
  1235. package/out/zqlite/src/query-delegate.js.map +1 -1
  1236. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
  1237. package/out/zqlite/src/sqlite-cost-model.js +96 -120
  1238. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1239. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1240. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1241. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1242. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1243. package/out/zqlite/src/table-source.d.ts +9 -4
  1244. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1245. package/out/zqlite/src/table-source.js +424 -327
  1246. package/out/zqlite/src/table-source.js.map +1 -1
  1247. package/package.json +23 -26
  1248. package/out/chunk-424PT5DM.js +0 -23
  1249. package/out/chunk-424PT5DM.js.map +0 -7
  1250. package/out/chunk-AFADJQ2O.js +0 -1
  1251. package/out/chunk-AFADJQ2O.js.map +0 -7
  1252. package/out/chunk-ASRS2LFV.js.map +0 -7
  1253. package/out/chunk-EZM3XBAB.js.map +0 -7
  1254. package/out/chunk-HCZQVP5R.js.map +0 -7
  1255. package/out/chunk-PFM5IJC4.js +0 -495
  1256. package/out/chunk-PFM5IJC4.js.map +0 -7
  1257. package/out/chunk-TAUDS4QP.js +0 -4129
  1258. package/out/chunk-TAUDS4QP.js.map +0 -7
  1259. package/out/chunk-VZOYWIRW.js.map +0 -7
  1260. package/out/chunk-WPAQ4EPM.js.map +0 -7
  1261. package/out/chunk-WWNKZSEE.js +0 -18857
  1262. package/out/chunk-WWNKZSEE.js.map +0 -7
  1263. package/out/expo-sqlite.js +0 -11
  1264. package/out/expo-sqlite.js.map +0 -7
  1265. package/out/inspector-GP3CBZRU.js.map +0 -7
  1266. package/out/lazy-inspector-XLKVABX2.js +0 -575
  1267. package/out/lazy-inspector-XLKVABX2.js.map +0 -7
  1268. package/out/op-sqlite.js.map +0 -7
  1269. package/out/react-native.js +0 -25
  1270. package/out/react-native.js.map +0 -7
  1271. package/out/react.js.map +0 -7
  1272. package/out/shared/src/enum.js +0 -2
  1273. package/out/shared/src/enum.js.map +0 -1
  1274. package/out/shared/src/expand.js +0 -2
  1275. package/out/shared/src/expand.js.map +0 -1
  1276. package/out/shared/src/immutable.js +0 -2
  1277. package/out/shared/src/immutable.js.map +0 -1
  1278. package/out/shared/src/types.js +0 -2
  1279. package/out/shared/src/types.js.map +0 -1
  1280. package/out/shared/src/writable.js +0 -2
  1281. package/out/shared/src/writable.js.map +0 -1
  1282. package/out/solid.js.map +0 -7
  1283. package/out/sqlite.js +0 -15
  1284. package/out/sqlite.js.map +0 -7
  1285. package/out/zero/package.json +0 -195
  1286. package/out/zero/src/server/change-streamer.js +0 -2
  1287. package/out/zero/src/server/change-streamer.js.map +0 -1
  1288. package/out/zero/src/server/main.js +0 -2
  1289. package/out/zero/src/server/main.js.map +0 -1
  1290. package/out/zero/src/server/reaper.js +0 -2
  1291. package/out/zero/src/server/reaper.js.map +0 -1
  1292. package/out/zero/src/server/replicator.js +0 -2
  1293. package/out/zero/src/server/replicator.js.map +0 -1
  1294. package/out/zero/src/server/runner/main.js +0 -2
  1295. package/out/zero/src/server/runner/main.js.map +0 -1
  1296. package/out/zero/src/server/syncer.js +0 -2
  1297. package/out/zero/src/server/syncer.js.map +0 -1
  1298. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1299. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1300. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1301. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1302. package/out/zero-cache/src/services/service.js +0 -2
  1303. package/out/zero-cache/src/services/service.js.map +0 -1
  1304. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1305. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1306. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
  1307. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1308. package/out/zero-cache/src/types/satisfies.js +0 -2
  1309. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1310. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1311. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1312. package/out/zero-events/src/index.js +0 -2
  1313. package/out/zero-events/src/index.js.map +0 -1
  1314. package/out/zero-events/src/json.js +0 -2
  1315. package/out/zero-events/src/json.js.map +0 -1
  1316. package/out/zero-events/src/status.js +0 -3
  1317. package/out/zero-events/src/status.js.map +0 -1
  1318. package/out/zero-pg/src/mod.js +0 -6
  1319. package/out/zero-pg/src/mod.js.map +0 -1
  1320. package/out/zero-protocol/src/error-kind.js +0 -3
  1321. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1322. package/out/zero-protocol/src/error-origin.js +0 -3
  1323. package/out/zero-protocol/src/error-origin.js.map +0 -1
  1324. package/out/zero-protocol/src/error-reason.js +0 -3
  1325. package/out/zero-protocol/src/error-reason.js.map +0 -1
  1326. package/out/zero-schema/src/table-schema.js +0 -7
  1327. package/out/zero-schema/src/table-schema.js.map +0 -1
  1328. package/out/zero-server/src/mod.js +0 -8
  1329. package/out/zero-server/src/mod.js.map +0 -1
  1330. package/out/zero-types/src/schema-value.js +0 -2
  1331. package/out/zero-types/src/schema-value.js.map +0 -1
  1332. package/out/zero-types/src/schema.js +0 -2
  1333. package/out/zero-types/src/schema.js.map +0 -1
  1334. package/out/zero-types/src/server-schema.js +0 -2
  1335. package/out/zero-types/src/server-schema.js.map +0 -1
  1336. package/out/zero.js +0 -95
  1337. package/out/zero.js.map +0 -7
  1338. package/out/zql/src/ivm/change.js +0 -2
  1339. package/out/zql/src/ivm/change.js.map +0 -1
  1340. package/out/zql/src/ivm/default-format.js +0 -2
  1341. package/out/zql/src/ivm/default-format.js.map +0 -1
  1342. package/out/zql/src/ivm/schema.js +0 -2
  1343. package/out/zql/src/ivm/schema.js.map +0 -1
  1344. package/out/zql/src/ivm/source.js +0 -2
  1345. package/out/zql/src/ivm/source.js.map +0 -1
  1346. package/out/zql/src/ivm/view.js +0 -2
  1347. package/out/zql/src/ivm/view.js.map +0 -1
  1348. package/out/zql/src/planner/planner-debug.js +0 -176
  1349. package/out/zql/src/planner/planner-debug.js.map +0 -1
  1350. package/out/zql/src/planner/planner-node.js +0 -2
  1351. package/out/zql/src/planner/planner-node.js.map +0 -1
  1352. package/out/zql/src/query/chained-query.d.ts +0 -35
  1353. package/out/zql/src/query/chained-query.d.ts.map +0 -1
  1354. package/out/zql/src/query/chained-query.js +0 -66
  1355. package/out/zql/src/query/chained-query.js.map +0 -1
  1356. package/out/zql/src/query/query-delegate.js +0 -2
  1357. package/out/zql/src/query/query-delegate.js.map +0 -1
  1358. package/out/zql/src/query/query.js +0 -8
  1359. package/out/zql/src/query/query.js.map +0 -1
  1360. package/out/zql/src/query/root-named-query.d.ts +0 -33
  1361. package/out/zql/src/query/root-named-query.d.ts.map +0 -1
  1362. package/out/zql/src/query/root-named-query.js +0 -95
  1363. package/out/zql/src/query/root-named-query.js.map +0 -1
  1364. package/out/zql/src/query/typed-view.js +0 -2
  1365. package/out/zql/src/query/typed-view.js.map +0 -1
  1366. package/out/zqlite/src/mod.js +0 -5
  1367. package/out/zqlite/src/mod.js.map +0 -1
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../zero-client/src/client/inspector/html-dialog-prompt.ts", "../../ast-to-zql/src/ast-to-zql.ts", "../../zero-client/src/client/inspector/query.ts", "../../zero-client/src/client/inspector/lazy-inspector.ts"],
4
- "sourcesContent": ["/**\n * Checks if we can create HTML elements and are in a browser document context\n */\nfunction canUseHTMLDialog(): boolean {\n try {\n // Check if we're in a test environment (vitest sets this)\n if (\n typeof globalThis !== 'undefined' &&\n '__vitest_worker__' in globalThis\n ) {\n return false;\n }\n\n return (\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function' &&\n typeof HTMLDialogElement !== 'undefined' &&\n document.body !== null &&\n // Make sure we can actually create a dialog element\n document.createElement('dialog') instanceof HTMLDialogElement\n );\n } catch {\n return false;\n }\n}\n\n/**\n * Creates a password prompt using HTML <dialog> element\n */\nexport function createHTMLPasswordPrompt(\n message: string,\n): Promise<string | null> {\n if (!canUseHTMLDialog()) {\n // Fallback to browser prompt if HTML dialog is not available\n return Promise.resolve(prompt(message));\n }\n\n return new Promise<string | null>(resolve => {\n // Shared CSS constants\n const reset = 'all:revert;';\n const w = 'rgba(255,255,255,';\n const white = w + '1)';\n const whiteTransp = w + '0.4)';\n const r1 = '0.25rem';\n const font = `font-family:system-ui,sans-serif;color:${white};`;\n const btnBase = `${reset}${font}cursor:pointer;font-size:1rem;font-weight:500;border:none;padding:0.4rem 0.75rem;border-radius:${r1};background:`;\n\n const dialog = document.createElement('dialog');\n dialog.style.cssText = `${reset}${font}background:rgba(0,0,0,0.95);padding:2rem;border:1px solid ${whiteTransp};border-radius:0.5rem;`;\n\n // Prevent keydown from escaping the dialog which can be interfered by other\n // listeners (e.g. global hotkeys)\n dialog.addEventListener('keydown', e => {\n e.stopPropagation();\n });\n\n dialog.oncancel = () => {\n dialog.remove();\n resolve(null);\n };\n\n const form = document.createElement('form');\n form.method = 'dialog';\n form.style.cssText = `${reset}margin:0;`;\n\n const messagePara = document.createElement('p');\n messagePara.style.cssText = `${reset}${font}font-size:1.5rem;margin:0 0 1rem 0;`;\n messagePara.append(message);\n\n const passwordInput = document.createElement('input');\n passwordInput.type = 'password';\n passwordInput.placeholder = 'Admin password';\n passwordInput.autocomplete = 'current-password';\n passwordInput.autofocus = true;\n passwordInput.style.cssText = `${reset}${font}font-size:1rem;display:block;margin:0 0 1rem 0;padding:0.5rem;background:rgba(0,0,0,0.5);border:1px solid ${whiteTransp};border-radius:${r1};`;\n\n const buttonDiv = document.createElement('div');\n buttonDiv.style.cssText = reset;\n\n const cancelBtn = document.createElement('button');\n cancelBtn.type = 'reset';\n cancelBtn.append('Cancel');\n cancelBtn.style.cssText = btnBase + w + '0.25);';\n\n const okBtn = document.createElement('button');\n okBtn.type = 'submit';\n okBtn.value = 'ok';\n okBtn.append('OK');\n okBtn.style.cssText = btnBase + 'rgba(19,106,235,1);margin-right:0.5rem;';\n\n buttonDiv.append(okBtn, cancelBtn);\n form.append(messagePara, passwordInput, buttonDiv);\n dialog.append(form);\n\n form.onreset = () => {\n dialog.close();\n };\n\n dialog.onclose = () => {\n if (dialog.returnValue === 'ok') {\n resolve(passwordInput.value || null);\n } else {\n resolve(null);\n }\n dialog.remove();\n };\n\n document.body.append(dialog);\n dialog.showModal();\n });\n}\n", "import {unreachable} from '../../shared/src/asserts.ts';\nimport {must} from '../../shared/src/must.ts';\nimport type {\n AST,\n Condition,\n Conjunction,\n CorrelatedSubquery,\n CorrelatedSubqueryCondition,\n Disjunction,\n LiteralReference,\n Ordering,\n Parameter,\n SimpleCondition,\n ValuePosition,\n} from '../../zero-protocol/src/ast.ts';\nimport {SUBQ_PREFIX} from '../../zero-protocol/src/ast.ts';\n\n/**\n * Converts an AST to the equivalent query builder code.\n * This is useful for debugging and understanding queries.\n *\n * @example\n * ```\n * const ast = query.issue.where('id', '=', 123)[astSymbol];\n * console.log(astToZQL(ast)); // outputs: .where('id', '=', 123)\n * ```\n */\nexport function astToZQL(ast: AST): string {\n let code = '';\n\n // Handle where conditions\n if (ast.where) {\n code += transformCondition(ast.where, '.where', new Set());\n }\n\n // Handle related subqueries\n if (ast.related && ast.related.length > 0) {\n for (const related of ast.related) {\n if (related.hidden) {\n const nestedRelated = related.subquery.related?.[0];\n if (nestedRelated) {\n code += transformRelated(nestedRelated);\n }\n } else {\n code += transformRelated(related);\n }\n }\n }\n\n // Handle orderBy\n if (ast.orderBy && ast.orderBy.length > 0) {\n code += transformOrder(ast.orderBy);\n }\n\n // Handle limit\n if (ast.limit !== undefined) {\n code += `.limit(${ast.limit})`;\n }\n\n // Handle start\n if (ast.start) {\n const {row, exclusive} = ast.start;\n code += `.start(${JSON.stringify(row)}${\n exclusive ? '' : ', { inclusive: true }'\n })`;\n }\n\n return code;\n}\n\ntype Args = Set<string>;\n\ntype Prefix = '.where' | 'cmp';\n\nfunction transformCondition(\n condition: Condition,\n prefix: Prefix,\n args: Args,\n): string {\n switch (condition.type) {\n case 'simple':\n return transformSimpleCondition(condition, prefix);\n case 'and':\n case 'or':\n return transformLogicalCondition(condition, prefix, args);\n case 'correlatedSubquery':\n return transformExistsCondition(condition, prefix, args);\n default:\n unreachable(condition);\n }\n}\n\nfunction transformSimpleCondition(\n condition: SimpleCondition,\n prefix: Prefix,\n): string {\n const {left, op, right} = condition;\n\n const leftCode = transformValuePosition(left);\n const rightCode = transformValuePosition(right);\n\n // Handle the shorthand form for equals\n if (op === '=') {\n return `${prefix}(${leftCode}, ${rightCode})`;\n }\n\n return `${prefix}(${leftCode}, '${op}', ${rightCode})`;\n}\n\nfunction transformLogicalCondition(\n condition: Conjunction | Disjunction,\n prefix: Prefix,\n args: Args,\n): string {\n const {type, conditions} = condition;\n\n // For single condition, no need for logical operator\n if (conditions.length === 1) {\n return transformCondition(conditions[0], prefix, args);\n }\n\n // Generate multiple where calls for top-level AND conditions\n if (type === 'and') {\n const parts = conditions.map(c => transformCondition(c, prefix, args));\n // Simply concatenate the where conditions\n if (prefix === '.where') {\n return parts.join('');\n }\n args.add('and');\n return 'and(' + parts.join(', ') + ')';\n }\n\n args = new Set<string>();\n\n // Handle nested conditions with a callback for OR conditions and nested ANDs/ORs\n const conditionsCode = conditions\n .map(c => transformCondition(c, 'cmp', args))\n .join(', ');\n\n args.add('cmp');\n args.add(type);\n const argsCode = [...args].sort().join(', ');\n\n return `.where(({${argsCode}}) => ${type}(${conditionsCode}))`;\n}\n\nfunction transformExistsCondition(\n condition: CorrelatedSubqueryCondition,\n prefix: '.where' | 'cmp',\n args: Set<string>,\n): string {\n const {related, op} = condition;\n const relationship = extractRelationshipName(related);\n\n const nextSubquery = getNextExistsSubquery(related);\n\n // Check if subquery has additional properties\n const hasSubQueryProps =\n nextSubquery.where ||\n (nextSubquery.related && nextSubquery.related.length > 0) ||\n nextSubquery.orderBy ||\n nextSubquery.limit;\n\n if (op === 'EXISTS') {\n const flipped = condition.flip ? ', {flip: true}' : '';\n if (!hasSubQueryProps) {\n if (prefix === '.where') {\n return `.whereExists('${relationship}'${flipped})`;\n }\n args.add('exists');\n return `exists('${relationship}'${flipped})`;\n }\n\n if (prefix === '.where') {\n return `.whereExists('${relationship}', q => q${astToZQL(nextSubquery)}${flipped})`;\n }\n prefix satisfies 'cmp';\n args.add('exists');\n return `exists('${relationship}', q => q${astToZQL(nextSubquery)}${flipped})`;\n }\n\n op satisfies 'NOT EXISTS';\n\n if (hasSubQueryProps) {\n if (prefix === '.where') {\n return `.where(({exists, not}) => not(exists('${relationship}', q => q${astToZQL(\n nextSubquery,\n )})))`;\n }\n prefix satisfies 'cmp';\n args.add('not');\n args.add('exists');\n return `not(exists('${relationship}', q => q${astToZQL(nextSubquery)}))`;\n }\n\n if (prefix === '.where') {\n return `.where(({exists, not}) => not(exists('${relationship}')))`;\n }\n args.add('not');\n args.add('exists');\n\n return `not(exists('${relationship}')))`;\n}\n\n// If the `exists` is applied against a junction edge, both hops will have the same alias and both hops will be exists conditions.\nfunction getNextExistsSubquery(related: CorrelatedSubquery): AST {\n if (\n related.subquery.where?.type === 'correlatedSubquery' &&\n related.subquery.where.related.subquery.alias?.includes(\n SUBQ_PREFIX + 'zhidden_',\n )\n ) {\n return getNextExistsSubquery(related.subquery.where.related);\n }\n\n return related.subquery;\n}\n\nfunction extractRelationshipName(related: CorrelatedSubquery): string {\n const alias = must(related.subquery.alias);\n return alias.startsWith(SUBQ_PREFIX)\n ? alias.substring(SUBQ_PREFIX.length)\n : alias;\n}\n\nfunction transformRelated(related: CorrelatedSubquery): string {\n const {alias} = related.subquery;\n if (!alias) return '';\n\n const relationship = alias;\n let code = `.related('${relationship}'`;\n\n // If the subquery has additional filters or configurations\n if (\n related.subquery.where ||\n (related.subquery.related && related.subquery.related.length > 0) ||\n related.subquery.orderBy ||\n related.subquery.limit\n ) {\n code += ', q => q' + astToZQL(related.subquery);\n }\n\n code += ')';\n return code;\n}\n\nfunction transformOrder(orderBy: Ordering): string {\n let code = '';\n for (const [field, direction] of orderBy) {\n code += `.orderBy('${field}', '${direction}')`;\n }\n return code;\n}\n\nfunction transformValuePosition(value: ValuePosition): string {\n switch (value.type) {\n case 'literal':\n return transformLiteral(value);\n case 'column':\n return `'${value.name}'`;\n case 'static':\n return transformParameter(value);\n default:\n unreachable(value);\n }\n}\n\nfunction transformLiteral(literal: LiteralReference): string {\n if (literal.value === null) {\n return 'null';\n }\n if (Array.isArray(literal.value)) {\n return JSON.stringify(literal.value);\n }\n if (typeof literal.value === 'string') {\n return `'${literal.value.replace(/'/g, \"\\\\'\")}'`;\n }\n return String(literal.value);\n}\n\nfunction transformParameter(param: Parameter): string {\n const fieldStr = Array.isArray(param.field)\n ? `[${param.field.map(f => `'${f}'`).join(', ')}]`\n : `'${param.field}'`;\n\n return `authParam(${fieldStr})`;\n}\n", "import {astToZQL} from '../../../../ast-to-zql/src/ast-to-zql.ts';\nimport {assert} from '../../../../shared/src/asserts.ts';\nimport type {ReadonlyJSONValue} from '../../../../shared/src/json.ts';\nimport type {AnalyzeQueryResult} from '../../../../zero-protocol/src/analyze-query-result.ts';\nimport type {AST} from '../../../../zero-protocol/src/ast.ts';\nimport {\n type InspectQueryRow,\n inspectAnalyzeQueryDownSchema,\n} from '../../../../zero-protocol/src/inspect-down.ts';\nimport type {AnalyzeQueryOptions} from '../../../../zero-protocol/src/inspect-up.ts';\nimport {type TTL, normalizeTTL} from '../../../../zql/src/query/ttl.ts';\nimport {\n type ExtendedInspectorDelegate,\n type GetWebSocket,\n type Metrics,\n mergeMetrics,\n rpc,\n} from './lazy-inspector.ts';\n\nexport class Query {\n readonly #socket: GetWebSocket;\n\n readonly name: string | null;\n readonly args: ReadonlyArray<ReadonlyJSONValue> | null;\n readonly got: boolean;\n readonly ttl: TTL;\n readonly inactivatedAt: Date | null;\n readonly rowCount: number;\n readonly deleted: boolean;\n readonly id: string;\n readonly clientID: string;\n readonly metrics: Metrics | null;\n readonly clientZQL: string | null;\n readonly serverZQL: string | null;\n readonly #serverAST: AST | null;\n\n readonly hydrateClient: number | null;\n readonly hydrateServer: number | null;\n readonly hydrateTotal: number | null;\n\n readonly updateClientP50: number | null;\n readonly updateClientP95: number | null;\n readonly updateServerP50: number | null;\n readonly updateServerP95: number | null;\n\n constructor(\n row: InspectQueryRow,\n delegate: ExtendedInspectorDelegate,\n socket: GetWebSocket,\n ) {\n this.#socket = socket;\n\n const {ast, queryID, inactivatedAt} = row;\n // Use own properties to make this more useful in dev tools. For example, in\n // Chrome dev tools, if you do console.table(queries) you'll see the\n // properties in the table, if these were getters you would not see them in the table.\n this.clientID = row.clientID;\n this.id = queryID;\n this.inactivatedAt =\n inactivatedAt === null ? null : new Date(inactivatedAt);\n this.ttl = normalizeTTL(row.ttl);\n this.name = row.name;\n this.args = row.args;\n this.got = row.got;\n this.rowCount = row.rowCount;\n this.deleted = row.deleted;\n this.#serverAST = ast;\n this.serverZQL = ast ? ast.table + astToZQL(ast) : null;\n const clientAST = delegate.getAST(queryID);\n this.clientZQL = clientAST ? clientAST.table + astToZQL(clientAST) : null;\n\n // Merge client and server metrics\n const clientMetrics = delegate.getQueryMetrics(queryID);\n const serverMetrics = row.metrics;\n\n const merged = mergeMetrics(clientMetrics, serverMetrics);\n this.metrics = merged;\n\n const percentile = (\n name: keyof typeof merged,\n percentile: number,\n ): number | null => {\n if (!merged?.[name]) {\n return null;\n }\n const n = merged[name].quantile(percentile);\n return Number.isNaN(n) ? null : n;\n };\n\n // Extract hydration metrics (median values) - handle NaN by defaulting to 0\n this.hydrateClient = percentile('query-materialization-client', 0.5);\n this.hydrateServer = percentile('query-materialization-server', 0.5);\n this.hydrateTotal = percentile('query-materialization-end-to-end', 0.5);\n\n // Extract update metrics (P50 and P95) - handle NaN by defaulting to 0\n this.updateClientP50 = percentile('query-update-client', 0.5);\n this.updateClientP95 = percentile('query-update-client', 0.95);\n\n this.updateServerP50 = percentile('query-update-server', 0.5);\n this.updateServerP95 = percentile('query-update-server', 0.95);\n }\n\n async analyze(options?: AnalyzeQueryOptions): Promise<AnalyzeQueryResult> {\n assert(this.#serverAST, 'No server AST available for this query');\n return rpc(\n await this.#socket(),\n {\n op: 'analyze-query',\n value: this.#serverAST,\n options,\n },\n inspectAnalyzeQueryDownSchema,\n );\n }\n}\n", "import type {BTreeRead} from '../../../../replicache/src/btree/read.ts';\nimport type {Read} from '../../../../replicache/src/dag/store.ts';\nimport {readFromHash} from '../../../../replicache/src/db/read.ts';\nimport * as FormatVersion from '../../../../replicache/src/format-version-enum.ts';\nimport {getClientGroup} from '../../../../replicache/src/persist/client-groups.ts';\nimport {\n getClient,\n getClients,\n type ClientMap,\n} from '../../../../replicache/src/persist/clients.ts';\nimport type {ReplicacheImpl} from '../../../../replicache/src/replicache-impl.ts';\nimport {withRead} from '../../../../replicache/src/with-transactions.ts';\nimport {assert} from '../../../../shared/src/asserts.ts';\nimport type {ReadonlyJSONValue} from '../../../../shared/src/json.ts';\nimport {mapValues} from '../../../../shared/src/objects.ts';\nimport {TDigest, type ReadonlyTDigest} from '../../../../shared/src/tdigest.ts';\nimport * as valita from '../../../../shared/src/valita.ts';\nimport type {AnalyzeQueryResult} from '../../../../zero-protocol/src/analyze-query-result.ts';\nimport type {AST} from '../../../../zero-protocol/src/ast.ts';\nimport type {Row} from '../../../../zero-protocol/src/data.ts';\nimport {\n inspectAnalyzeQueryDownSchema,\n inspectAuthenticatedDownSchema,\n inspectMetricsDownSchema,\n inspectQueriesDownSchema,\n inspectVersionDownSchema,\n type InspectDownBody,\n type InspectQueryRow,\n type ServerMetrics as ServerMetricsJSON,\n} from '../../../../zero-protocol/src/inspect-down.ts';\nimport type {\n AnalyzeQueryOptions,\n InspectUpBody,\n} from '../../../../zero-protocol/src/inspect-up.ts';\nimport type {\n ClientMetricMap,\n ServerMetricMap,\n} from '../../../../zql/src/query/metrics-delegate.ts';\nimport type {QueryDelegate} from '../../../../zql/src/query/query-delegate.ts';\nimport type {AnyQuery} from '../../../../zql/src/query/query.ts';\nimport {nanoid} from '../../util/nanoid.ts';\nimport {ENTITIES_KEY_PREFIX} from '../keys.ts';\nimport type {MutatorDefs} from '../replicache-types.ts';\nimport {Client} from './client.ts';\nimport {createHTMLPasswordPrompt} from './html-dialog-prompt.ts';\nimport {type Lazy} from './inspector.ts';\nimport {Query} from './query.ts';\n\nexport type GetWebSocket = () => Promise<WebSocket>;\n\nexport type Metrics = {\n readonly [K in keyof (ClientMetricMap & ServerMetricMap)]: ReadonlyTDigest;\n};\n\ntype DistributiveOmit<T, K extends string> = T extends object\n ? Omit<T, K>\n : never;\n\nexport async function rpc<T extends InspectDownBody>(\n socket: WebSocket,\n arg: DistributiveOmit<InspectUpBody, 'id'>,\n downSchema: valita.Type<T>,\n): Promise<T['value']> {\n try {\n return await rpcNoAuthTry(socket, arg, downSchema);\n } catch (e) {\n if (e instanceof UnauthenticatedError) {\n const password = await createHTMLPasswordPrompt('Enter password:');\n if (password) {\n // Do authenticate rpc\n const authRes = await rpcNoAuthTry(\n socket,\n {op: 'authenticate', value: password},\n inspectAuthenticatedDownSchema,\n );\n if (authRes) {\n // If authentication is successful, retry the original RPC\n return rpcNoAuthTry(socket, arg, downSchema);\n }\n }\n throw new Error('Authentication failed');\n }\n throw e;\n }\n}\n\nfunction rpcNoAuthTry<T extends InspectDownBody>(\n socket: WebSocket,\n arg: DistributiveOmit<InspectUpBody, 'id'>,\n downSchema: valita.Type<T>,\n): Promise<T['value']> {\n return new Promise((resolve, reject) => {\n const id = nanoid();\n const f = (ev: MessageEvent) => {\n const msg = JSON.parse(ev.data);\n if (msg[0] === 'inspect') {\n const body = msg[1];\n if (body.id !== id) {\n return;\n }\n const res = valita.test(body, downSchema);\n if (res.ok) {\n if (res.value.op === 'error') {\n reject(new Error(res.value.value));\n } else {\n resolve(res.value.value);\n }\n } else {\n // Check if we got un authenticated/false response\n const authRes = valita.test(body, inspectAuthenticatedDownSchema);\n if (authRes.ok) {\n // Handle authenticated response\n assert(\n authRes.value.value === false,\n 'Expected unauthenticated response',\n );\n reject(new UnauthenticatedError());\n }\n\n reject(res.error);\n }\n socket.removeEventListener('message', f);\n }\n };\n socket.addEventListener('message', f);\n socket.send(JSON.stringify(['inspect', {...arg, id}]));\n });\n} // T extends forces T to be resolved\n\nexport function mergeMetrics(\n clientMetrics: ClientMetrics | undefined,\n serverMetrics: ServerMetricsJSON | null | undefined,\n): ClientMetrics & ServerMetrics {\n return {\n ...(clientMetrics ?? newClientMetrics()),\n ...(serverMetrics\n ? convertServerMetrics(serverMetrics)\n : newServerMetrics()),\n };\n}\n\nfunction newClientMetrics(): ClientMetrics {\n return {\n 'query-materialization-client': new TDigest(),\n 'query-materialization-end-to-end': new TDigest(),\n 'query-update-client': new TDigest(),\n };\n}\n\nfunction newServerMetrics(): ServerMetrics {\n return {\n 'query-materialization-server': new TDigest(),\n 'query-update-server': new TDigest(),\n };\n}\n\nfunction convertServerMetrics(metrics: ServerMetricsJSON): ServerMetrics {\n return mapValues(metrics, v => TDigest.fromJSON(v));\n}\n\nexport async function inspectorMetrics(\n delegate: ExtendedInspectorDelegate,\n): Promise<Metrics> {\n const clientMetrics = delegate.metrics;\n const serverMetricsJSON = await rpc(\n await delegate.getSocket(),\n {op: 'metrics'},\n inspectMetricsDownSchema,\n );\n return mergeMetrics(clientMetrics, serverMetricsJSON);\n}\n\nexport function inspectorClients(\n delegate: ExtendedInspectorDelegate,\n): Promise<Client[]> {\n return withDagRead(delegate, dagRead => clients(delegate, dagRead));\n}\n\nexport function inspectorClientsWithQueries(\n delegate: ExtendedInspectorDelegate,\n): Promise<Client[]> {\n return withDagRead(delegate, dagRead =>\n clientsWithQueries(delegate, dagRead),\n );\n}\n\nasync function withDagRead<T>(\n delegate: ExtendedInspectorDelegate,\n f: (dagRead: Read) => Promise<T>,\n): Promise<T> {\n const {rep} = delegate;\n await rep.refresh();\n await rep.persist();\n return withRead(rep.perdag, f);\n}\n\nasync function getBTree(dagRead: Read, clientID: string): Promise<BTreeRead> {\n const client = await getClient(clientID, dagRead);\n assert(client, `Client not found: ${clientID}`);\n const {clientGroupID} = client;\n const clientGroup = await getClientGroup(clientGroupID, dagRead);\n assert(clientGroup, `Client group not found: ${clientGroupID}`);\n const dbRead = await readFromHash(\n clientGroup.headHash,\n dagRead,\n FormatVersion.Latest,\n );\n return dbRead.map;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\ntype MapEntry<T extends ReadonlyMap<any, any>> =\n T extends ReadonlyMap<infer K, infer V> ? readonly [K, V] : never;\n\nasync function clients(\n delegate: ExtendedInspectorDelegate,\n dagRead: Read,\n predicate: (entry: MapEntry<ClientMap>) => boolean = () => true,\n): Promise<Client[]> {\n const clients = await getClients(dagRead);\n return [...clients.entries()]\n .filter(predicate)\n .map(\n ([clientID, {clientGroupID}]) =>\n new Client(delegate, clientID, clientGroupID),\n );\n}\n\nasync function clientsWithQueries(\n delegate: ExtendedInspectorDelegate,\n dagRead: Read,\n predicate: (entry: MapEntry<ClientMap>) => boolean = () => true,\n): Promise<Client[]> {\n const allClients = await clients(delegate, dagRead, predicate);\n const clientsWithQueries: Client[] = [];\n await Promise.all(\n allClients.map(async client => {\n const queries = await client.queries();\n if (queries.length > 0) {\n clientsWithQueries.push(client);\n }\n }),\n );\n return clientsWithQueries;\n}\n\nexport async function clientGroupClients(\n delegate: ExtendedInspectorDelegate,\n clientGroupID: Promise<string> | string,\n): Promise<Client[]> {\n const id = await clientGroupID;\n return withDagRead(delegate, dagRead =>\n clients(delegate, dagRead, ([_, v]) => v.clientGroupID === id),\n );\n}\n\nexport async function clientGroupClientsWithQueries(\n delegate: ExtendedInspectorDelegate,\n clientGroupID: Promise<string> | string,\n): Promise<Client[]> {\n const id = await clientGroupID;\n return withDagRead(delegate, dagRead =>\n clientsWithQueries(delegate, dagRead, ([_, v]) => v.clientGroupID === id),\n );\n}\n\nexport async function clientGroupQueries(\n delegate: ExtendedInspectorDelegate,\n): Promise<Query[]> {\n const rows: InspectQueryRow[] = await rpc(\n await delegate.getSocket(),\n {op: 'queries'},\n inspectQueriesDownSchema,\n );\n return rows.map(row => new Query(row, delegate, delegate.getSocket));\n}\n\nexport function clientMap(\n delegate: ExtendedInspectorDelegate,\n clientID: string,\n): Promise<Map<string, ReadonlyJSONValue>> {\n return withDagRead(delegate, async dagRead => {\n const tree = await getBTree(dagRead, clientID);\n const map = new Map<string, ReadonlyJSONValue>();\n for await (const [key, value] of tree.scan('')) {\n map.set(key, value);\n }\n return map;\n });\n}\n\nexport function clientRows(\n delegate: ExtendedInspectorDelegate,\n clientID: string,\n tableName: string,\n): Promise<Row[]> {\n return withDagRead(delegate, async dagRead => {\n const prefix = ENTITIES_KEY_PREFIX + tableName + '/';\n const tree = await getBTree(dagRead, clientID);\n const rows: Row[] = [];\n for await (const [key, value] of tree.scan(prefix)) {\n if (!key.startsWith(prefix)) {\n break;\n }\n rows.push(value as Row);\n }\n return rows;\n });\n}\n\nexport async function serverVersion(\n delegate: ExtendedInspectorDelegate,\n): Promise<string> {\n return rpc(\n await delegate.getSocket(),\n {op: 'version'},\n inspectVersionDownSchema,\n );\n}\n\nexport async function clientQueries(\n delegate: ExtendedInspectorDelegate,\n clientID: string,\n): Promise<Query[]> {\n const rows: InspectQueryRow[] = await rpc(\n await delegate.getSocket(),\n {op: 'queries', clientID},\n inspectQueriesDownSchema,\n );\n return rows.map(row => new Query(row, delegate, delegate.getSocket));\n}\n\nexport async function analyzeQuery(\n delegate: ExtendedInspectorDelegate,\n query: AnyQuery,\n options?: AnalyzeQueryOptions,\n): Promise<AnalyzeQueryResult> {\n const qi = delegate.queryDelegate.withContext(query);\n const {customQueryID} = qi;\n const queryParameters = customQueryID\n ? {name: customQueryID.name, args: customQueryID.args}\n : {ast: delegate.mapClientASTToServer(qi.ast)};\n\n return rpc(\n await delegate.getSocket(),\n {\n op: 'analyze-query',\n ...queryParameters,\n options,\n },\n inspectAnalyzeQueryDownSchema,\n );\n}\n\nclass UnauthenticatedError extends Error {}\n\nexport interface InspectorDelegate {\n getQueryMetrics(hash: string): ClientMetrics | undefined;\n getAST(queryID: string): AST | undefined;\n readonly metrics: ClientMetrics;\n mapClientASTToServer(ast: AST): AST;\n}\n\nexport interface ExtendedInspectorDelegate extends InspectorDelegate {\n readonly rep: Rep;\n readonly getSocket: () => Promise<WebSocket>;\n readonly queryDelegate: QueryDelegate<unknown>;\n lazy: Promise<Lazy>;\n}\n\nexport type Rep = ReplicacheImpl<MutatorDefs>;\n\nexport type ClientMetrics = {\n readonly [K in keyof ClientMetricMap]: ReadonlyTDigest;\n};\n\nexport type ServerMetrics = {\n readonly [K in keyof ServerMetricMap]: ReadonlyTDigest;\n};\n"],
5
- "mappings": "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",
6
- "names": ["percentile", "clients", "clientsWithQueries"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../replicache/src/kv/op-sqlite/types.ts", "../../replicache/src/kv/op-sqlite/store.ts"],
4
- "sourcesContent": ["// Type definitions and imports for @op-engineering/op-sqlite\n// This file isolates the module resolution workarounds needed for this package\n\n// @ts-expect-error - Module resolution issue with @op-engineering/op-sqlite exports\nimport {open as openDB} from '@op-engineering/op-sqlite';\n\n// Minimal type definitions for @op-engineering/op-sqlite\n// These types are used as fallback since imports have module resolution issues\nexport interface DB {\n close: () => void;\n delete: (location?: string) => void;\n executeRaw: (query: string, params?: string[]) => Promise<string[][]>;\n executeRawSync: (query: string, params?: string[]) => string[][];\n}\n\nexport type OpenFunction = (params: {\n name: string;\n location?: string;\n encryptionKey?: string;\n}) => DB;\n\n// Export the open function with proper typing\nexport const open: OpenFunction = openDB;\n", "import type {\n PreparedStatement,\n SQLiteDatabase,\n SQLiteStoreOptions,\n} from '../sqlite-store.ts';\nimport {dropStore, SQLiteStore} from '../sqlite-store.ts';\nimport type {StoreProvider} from '../store.ts';\nimport {open, type DB} from './types.ts';\n\nexport type OpSQLiteStoreOptions = SQLiteStoreOptions & {\n // OpSQLite-specific options\n location?: 'default' | 'Library' | 'Documents' | 'Temporary';\n encryptionKey?: string;\n};\n\nfunction dropOpSQLiteStore(name: string): Promise<void> {\n return dropStore(\n name,\n (filename, opts) => new OpSQLiteDatabase(filename, opts),\n );\n}\n\n/**\n * Creates a StoreProvider for SQLite-based stores using @op-engineering/op-sqlite.\n * Supports shared connections between multiple store instances with the same name,\n * providing efficient resource utilization and proper transaction isolation.\n * Uses parameterized queries for safety and performance.\n */\nexport function opSQLiteStoreProvider(\n opts?: OpSQLiteStoreOptions,\n): StoreProvider {\n return {\n create: name =>\n new SQLiteStore(\n name,\n (name, options) => new OpSQLiteDatabase(name, options),\n opts,\n ),\n drop: dropOpSQLiteStore,\n };\n}\n\nclass OpSQLitePreparedStatement implements PreparedStatement {\n readonly #db: DB;\n readonly #sql: string;\n\n constructor(db: DB, sql: string) {\n this.#db = db;\n this.#sql = sql;\n }\n\n async firstValue(params: string[]): Promise<string | undefined> {\n const rows = await this.#db.executeRaw(this.#sql, params);\n return rows[0]?.[0];\n }\n\n async exec(params: string[]): Promise<void> {\n await this.#db.executeRaw(this.#sql, params);\n }\n}\n\nclass OpSQLiteDatabase implements SQLiteDatabase {\n readonly #db: DB;\n readonly #filename: string;\n\n constructor(filename: string, opts?: OpSQLiteStoreOptions) {\n this.#filename = filename;\n const openOpts: {\n name: string;\n location?: string;\n encryptionKey?: string;\n } = {name: filename};\n\n if (opts?.location) {\n openOpts.location = opts.location;\n }\n if (opts?.encryptionKey) {\n openOpts.encryptionKey = opts.encryptionKey;\n }\n\n this.#db = open(openOpts);\n }\n\n close(): void {\n this.#db.close();\n }\n\n destroy(): void {\n // OpSQLite uses delete method on the database instance\n // We need to create a temporary connection to delete the database\n try {\n const tempDb = open({name: this.#filename});\n tempDb.delete();\n tempDb.close();\n } catch (_error) {\n // Database might not exist, which is fine\n }\n }\n\n prepare(sql: string): PreparedStatement {\n return new OpSQLitePreparedStatement(this.#db, sql);\n }\n\n execSync(sql: string): void {\n this.#db.executeRawSync(sql, []);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAAQ,QAAQ,cAAa;AAkBtB,IAAM,OAAqB;;;ACPlC,SAAS,kBAAkB,MAA6B;AACtD,SAAO;AAAA,IACL;AAAA,IACA,CAAC,UAAU,SAAS,IAAI,iBAAiB,UAAU,IAAI;AAAA,EACzD;AACF;AAQO,SAAS,sBACd,MACe;AACf,SAAO;AAAA,IACL,QAAQ,UACN,IAAI;AAAA,MACF;AAAA,MACA,CAACA,OAAM,YAAY,IAAI,iBAAiBA,OAAM,OAAO;AAAA,MACrD;AAAA,IACF;AAAA,IACF,MAAM;AAAA,EACR;AACF;AAEA,IAAM,4BAAN,MAA6D;AAAA,EAClD;AAAA,EACA;AAAA,EAET,YAAY,IAAQ,KAAa;AAC/B,SAAK,MAAM;AACX,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,MAAM,WAAW,QAA+C;AAC9D,UAAM,OAAO,MAAM,KAAK,IAAI,WAAW,KAAK,MAAM,MAAM;AACxD,WAAO,KAAK,CAAC,IAAI,CAAC;AAAA,EACpB;AAAA,EAEA,MAAM,KAAK,QAAiC;AAC1C,UAAM,KAAK,IAAI,WAAW,KAAK,MAAM,MAAM;AAAA,EAC7C;AACF;AAEA,IAAM,mBAAN,MAAiD;AAAA,EACtC;AAAA,EACA;AAAA,EAET,YAAY,UAAkB,MAA6B;AACzD,SAAK,YAAY;AACjB,UAAM,WAIF,EAAC,MAAM,SAAQ;AAEnB,QAAI,MAAM,UAAU;AAClB,eAAS,WAAW,KAAK;AAAA,IAC3B;AACA,QAAI,MAAM,eAAe;AACvB,eAAS,gBAAgB,KAAK;AAAA,IAChC;AAEA,SAAK,MAAM,KAAK,QAAQ;AAAA,EAC1B;AAAA,EAEA,QAAc;AACZ,SAAK,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,UAAgB;AAGd,QAAI;AACF,YAAM,SAAS,KAAK,EAAC,MAAM,KAAK,UAAS,CAAC;AAC1C,aAAO,OAAO;AACd,aAAO,MAAM;AAAA,IACf,SAAS,QAAQ;AAAA,IAEjB;AAAA,EACF;AAAA,EAEA,QAAQ,KAAgC;AACtC,WAAO,IAAI,0BAA0B,KAAK,KAAK,GAAG;AAAA,EACpD;AAAA,EAEA,SAAS,KAAmB;AAC1B,SAAK,IAAI,eAAe,KAAK,CAAC,CAAC;AAAA,EACjC;AACF;",
6
- "names": ["name"]
7
- }
@@ -1,25 +0,0 @@
1
- import "./chunk-AFADJQ2O.js";
2
- import {
3
- expoSQLiteStoreProvider
4
- } from "./chunk-HCZQVP5R.js";
5
- import {
6
- SQLiteStore,
7
- clearAllNamedStoresForTesting,
8
- dropStore
9
- } from "./chunk-WPAQ4EPM.js";
10
- import "./chunk-ASRS2LFV.js";
11
- import "./chunk-EZM3XBAB.js";
12
- import "./chunk-424PT5DM.js";
13
-
14
- // src/react-native.ts
15
- var expoSQLiteStoreProvider2 = expoSQLiteStoreProvider;
16
- var clearAllNamedStoresForTesting2 = clearAllNamedStoresForTesting;
17
- var dropStore2 = dropStore;
18
- var SQLiteStore2 = SQLiteStore;
19
- export {
20
- SQLiteStore2 as SQLiteStore,
21
- clearAllNamedStoresForTesting2 as clearAllNamedStoresForTesting,
22
- dropStore2 as dropStore,
23
- expoSQLiteStoreProvider2 as expoSQLiteStoreProvider
24
- };
25
- //# sourceMappingURL=react-native.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/react-native.ts"],
4
- "sourcesContent": ["import * as expo from './expo-sqlite.ts';\nimport * as sqlite from './sqlite.ts';\n\n// We reassign these so that we can mark them deprecated in the docs/IDEs.\n\n/** @deprecated Use `expoSQLiteStoreProvider` from `@rocicorp/zero/expo-sqlite` instead. */\nexport const expoSQLiteStoreProvider = expo.expoSQLiteStoreProvider;\n\n/** @deprecated Use `clearAllNamedStoresForTesting` from `@rocicorp/zero/expo-sqlite` instead. */\nexport const clearAllNamedStoresForTesting =\n sqlite.clearAllNamedStoresForTesting;\n\n/** @deprecated Use `dropStore` from `@rocicorp/zero/expo-sqlite` instead. */\nexport const dropStore = sqlite.dropStore;\n\n/** @deprecated Use `SQLiteStore` from `@rocicorp/zero/expo-sqlite` instead. */\nexport const SQLiteStore = sqlite.SQLiteStore;\n\n/** @deprecated Use `ExpoSQLiteStoreOptions` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type ExpoSQLiteStoreOptions = expo.ExpoSQLiteStoreOptions;\n\n/** @deprecated Use `PreparedStatement` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type PreparedStatement = sqlite.PreparedStatement;\n\n/** @deprecated Use `SQLiteDatabase` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type SQLiteDatabase = sqlite.SQLiteDatabase;\n\n/** @deprecated Use `SQLiteStoreOptions` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type SQLiteStoreOptions = sqlite.SQLiteStoreOptions;\n\n/** @deprecated Use `CreateStore` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type CreateStore = sqlite.CreateStore;\n\n/** @deprecated Use `DropStore` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type DropStore = sqlite.DropStore;\n\n/** @deprecated Use `Read` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type Read = sqlite.Read;\n\n/** @deprecated Use `Store` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type Store = sqlite.Store;\n\n/** @deprecated Use `StoreProvider` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type StoreProvider = sqlite.StoreProvider;\n\n/** @deprecated Use `Write` from `@rocicorp/zero/expo-sqlite` instead. */\nexport type Write = sqlite.Write;\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAMO,IAAMA,2BAA+B;AAGrC,IAAMC,iCACJ;AAGF,IAAMC,aAAmB;AAGzB,IAAMC,eAAqB;",
6
- "names": ["expoSQLiteStoreProvider", "clearAllNamedStoresForTesting", "dropStore", "SQLiteStore"]
7
- }
package/out/react.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../zero-react/src/components/zero-inspector.tsx", "../../zero-react/src/use-query.tsx", "../../shared/src/deep-clone.ts", "../../zero-react/src/zero-provider.tsx", "../../zero-react/src/use-zero-connection-state.tsx", "../../zero-react/src/use-zero-online.tsx"],
4
- "sourcesContent": ["import {lazy, Suspense, useState} from 'react';\nimport type {CustomMutatorDefs} from '../../../zero-client/src/client/custom.ts';\nimport type {Zero} from '../../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport {MarkIcon} from './mark-icon.tsx';\n\nconst Inspector = lazy(() => import('./inspector.tsx'));\n\nexport function ZeroInspector<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n>({zero}: {zero: Zero<S, MD>}): JSX.Element {\n const [show, setShow] = useState(false);\n return show ? (\n <Suspense fallback={<div>Loading Inspector...</div>}>\n <Inspector\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n zero={zero as any}\n onClose={() => setShow(false)}\n />\n </Suspense>\n ) : (\n <button\n onClick={() => setShow(!show)}\n style={{\n position: 'fixed',\n bottom: 0,\n right: 0,\n zIndex: 1000,\n padding: '5px',\n color: 'white',\n backgroundColor: '#333',\n borderTopLeftRadius: '8px',\n opacity: 0.95,\n }}\n >\n <MarkIcon\n style={{\n width: '20px',\n height: '20px',\n fill: 'currentColor',\n }}\n />\n </button>\n );\n}\n", "import {resolver} from '@rocicorp/resolver';\nimport React, {useSyncExternalStore} from 'react';\nimport {deepClone} from '../../shared/src/deep-clone.ts';\nimport type {Immutable} from '../../shared/src/immutable.ts';\nimport type {ReadonlyJSONValue} from '../../shared/src/json.ts';\nimport {\n bindingsForZero,\n type BindingsForZero,\n} from '../../zero-client/src/client/bindings.ts';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\nimport {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {\n QueryErrorDetails,\n QueryResultDetails,\n} from '../../zero-client/src/types/query-result.ts';\nimport type {ErroredQuery} from '../../zero-protocol/src/custom-queries.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport type {Format} from '../../zql/src/ivm/view.ts';\nimport {type HumanReadable, type Query} from '../../zql/src/query/query.ts';\nimport {DEFAULT_TTL_MS, type TTL} from '../../zql/src/query/ttl.ts';\nimport type {ResultType, TypedView} from '../../zql/src/query/typed-view.ts';\nimport {useZero} from './zero-provider.tsx';\n\nexport type QueryResult<TReturn> = readonly [\n HumanReadable<TReturn>,\n QueryResultDetails & {},\n];\n\nexport type UseQueryOptions = {\n enabled?: boolean | undefined;\n /**\n * Time to live (TTL) in seconds. Controls how long query results are cached\n * after the query is removed. During this time, Zero continues to sync the query.\n * Default is 'never'.\n */\n ttl?: TTL | undefined;\n};\n\nexport type UseSuspenseQueryOptions = UseQueryOptions & {\n /**\n * Whether to suspend until:\n * - 'partial': the query has partial results (partial array or defined\n * value for singular results) which may be of result type 'unknown',\n * or the query result type is 'complete' (in which case results may be\n * empty). This is useful for suspending until there are partial\n * optimistic local results, or the query has completed loading from the\n * server.\n * - 'complete': the query result type is 'complete'.\n *\n * Default is 'partial'.\n */\n suspendUntil?: 'complete' | 'partial';\n};\n\nconst reactUse = (React as {use?: (p: Promise<unknown>) => void}).use;\nconst suspend: (p: Promise<unknown>) => void = reactUse\n ? reactUse\n : p => {\n throw p;\n };\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n TContext,\n>(\n query: Query<TSchema, TTable, TReturn, TContext>,\n options?: UseQueryOptions | boolean,\n): QueryResult<TReturn> {\n let enabled = true;\n let ttl: TTL = DEFAULT_TTL_MS;\n if (typeof options === 'boolean') {\n enabled = options;\n } else if (options) {\n ({enabled = true, ttl = DEFAULT_TTL_MS} = options);\n }\n\n const view = viewStore.getView(useZero(), query, enabled, ttl);\n // https://react.dev/reference/react/useSyncExternalStore\n return useSyncExternalStore(\n view.subscribeReactInternals,\n view.getSnapshot,\n view.getSnapshot,\n );\n}\n\nexport function useSuspenseQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n TContext,\n>(\n query: Query<TSchema, TTable, TReturn, TContext>,\n options?: UseSuspenseQueryOptions | boolean,\n): QueryResult<TReturn> {\n let enabled = true;\n let ttl: TTL = DEFAULT_TTL_MS;\n let suspendUntil: 'complete' | 'partial' = 'partial';\n if (typeof options === 'boolean') {\n enabled = options;\n } else if (options) {\n ({\n enabled = true,\n ttl = DEFAULT_TTL_MS,\n suspendUntil = 'complete',\n } = options);\n }\n\n const view = viewStore.getView(useZero(), query, enabled, ttl);\n // https://react.dev/reference/react/useSyncExternalStore\n const snapshot = useSyncExternalStore(\n view.subscribeReactInternals,\n view.getSnapshot,\n view.getSnapshot,\n );\n\n if (enabled) {\n if (suspendUntil === 'complete' && !view.complete) {\n suspend(view.waitForComplete());\n }\n\n if (suspendUntil === 'partial' && !view.nonEmpty) {\n suspend(view.waitForNonEmpty());\n }\n }\n\n return snapshot;\n}\n\nconst emptyArray: unknown[] = [];\nconst disabledSubscriber = () => () => {};\n\nconst resultTypeUnknown = {type: 'unknown'} as const;\nconst resultTypeComplete = {type: 'complete'} as const;\nconst resultTypeError = {type: 'error'} as const;\n\nconst emptySnapshotSingularUnknown = [undefined, resultTypeUnknown] as const;\nconst emptySnapshotSingularComplete = [undefined, resultTypeComplete] as const;\nconst emptySnapshotSingularErrorUnknown = [undefined, resultTypeError] as const;\nconst emptySnapshotPluralUnknown = [emptyArray, resultTypeUnknown] as const;\nconst emptySnapshotPluralComplete = [emptyArray, resultTypeComplete] as const;\nconst emptySnapshotErrorUnknown = [emptyArray, resultTypeError] as const;\n\nfunction getDefaultSnapshot<TReturn>(singular: boolean): QueryResult<TReturn> {\n return (\n singular ? emptySnapshotSingularUnknown : emptySnapshotPluralUnknown\n ) as QueryResult<TReturn>;\n}\n\n/**\n * Returns a new snapshot or one of the empty predefined ones. Returning the\n * predefined ones is important to prevent unnecessary re-renders in React.\n */\nfunction getSnapshot<TReturn>(\n singular: boolean,\n data: HumanReadable<TReturn>,\n resultType: ResultType,\n retryFn: () => void,\n error?: ErroredQuery,\n): QueryResult<TReturn> {\n if (singular && data === undefined) {\n switch (resultType) {\n case 'error':\n if (error) {\n return [\n undefined,\n makeError(retryFn, error),\n ] as unknown as QueryResult<TReturn>;\n }\n return emptySnapshotSingularErrorUnknown as unknown as QueryResult<TReturn>;\n case 'complete':\n return emptySnapshotSingularComplete as unknown as QueryResult<TReturn>;\n case 'unknown':\n return emptySnapshotSingularUnknown as unknown as QueryResult<TReturn>;\n }\n }\n\n if (!singular && (data as unknown[]).length === 0) {\n switch (resultType) {\n case 'error':\n if (error) {\n return [\n emptyArray,\n makeError(retryFn, error),\n ] as unknown as QueryResult<TReturn>;\n }\n return emptySnapshotErrorUnknown as unknown as QueryResult<TReturn>;\n case 'complete':\n return emptySnapshotPluralComplete as unknown as QueryResult<TReturn>;\n case 'unknown':\n return emptySnapshotPluralUnknown as unknown as QueryResult<TReturn>;\n }\n }\n\n switch (resultType) {\n case 'error':\n if (error) {\n return [data, makeError(retryFn, error)];\n }\n return [\n data,\n makeError(retryFn, {\n error: 'app',\n id: 'unknown',\n name: 'unknown',\n message: 'An unknown error occurred',\n }),\n ];\n case 'complete':\n return [data, resultTypeComplete];\n case 'unknown':\n return [data, resultTypeUnknown];\n }\n}\n\nfunction makeError(retry: () => void, error: ErroredQuery): QueryErrorDetails {\n const message = error.message ?? 'An unknown error occurred';\n return {\n type: 'error',\n retry,\n refetch: retry,\n error: {\n type: error.error,\n message,\n ...(error.details ? {details: error.details} : {}),\n },\n };\n}\n\ndeclare const TESTING: boolean;\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyViewWrapper = ViewWrapper<any, any, any, any, any>;\n\nconst allViews = new WeakMap<ViewStore, Map<string, AnyViewWrapper>>();\n\nexport function getAllViewsSizeForTesting(store: ViewStore): number {\n if (TESTING) {\n return allViews.get(store)?.size ?? 0;\n }\n return 0;\n}\n\n/**\n * A global store of all active views.\n *\n * React subscribes and unsubscribes to these views\n * via `useSyncExternalStore`.\n *\n * Managing views through `useEffect` or `useLayoutEffect` causes\n * inconsistencies because effects run after render.\n *\n * For example, if useQuery used use*Effect in the component below:\n * ```ts\n * function Foo({issueID}) {\n * const issue = useQuery(z.query.issue.where('id', issueID).one());\n * if (issue?.id !== undefined && issue.id !== issueID) {\n * console.log('MISMATCH!', issue.id, issueID);\n * }\n * }\n * ```\n *\n * `MISMATCH` will be printed whenever the `issueID` prop changes.\n *\n * This is because the component will render once with\n * the old state returned from `useQuery`. Then the effect inside\n * `useQuery` will run. The component will render again with the new\n * state. This inconsistent transition can cause unexpected results.\n *\n * Emulating `useEffect` via `useState` and `if` causes resource leaks.\n * That is:\n *\n * ```ts\n * function useQuery(q) {\n * const [oldHash, setOldHash] = useState();\n * if (hash(q) !== oldHash) {\n * // make new view\n * }\n *\n * useEffect(() => {\n * return () => view.destroy();\n * }, []);\n * }\n * ```\n *\n * I'm not sure why but in strict mode the cleanup function\n * fails to be called for the first instance of the view and only\n * cleans up later instances.\n *\n * Swapping `useState` to `useRef` has similar problems.\n */\nexport class ViewStore {\n #views = new Map<string, AnyViewWrapper>();\n\n constructor() {\n if (TESTING) {\n allViews.set(this, this.#views);\n }\n }\n\n getView<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n MD extends CustomMutatorDefs | undefined,\n TContext,\n >(\n zero: Zero<TSchema, MD, TContext>,\n query: Query<TSchema, TTable, TReturn, TContext>,\n enabled: boolean,\n ttl: TTL,\n ): {\n getSnapshot: () => QueryResult<TReturn>;\n subscribeReactInternals: (internals: () => void) => () => void;\n updateTTL: (ttl: TTL) => void;\n waitForComplete: () => Promise<void>;\n waitForNonEmpty: () => Promise<void>;\n complete: boolean;\n nonEmpty: boolean;\n } {\n const bindings = bindingsForZero(zero);\n const format = bindings.format(query);\n if (!enabled) {\n return {\n getSnapshot: () => getDefaultSnapshot(format.singular),\n subscribeReactInternals: disabledSubscriber,\n updateTTL: () => {},\n waitForComplete: () => Promise.resolve(),\n waitForNonEmpty: () => Promise.resolve(),\n complete: false,\n nonEmpty: false,\n };\n }\n\n const hash = bindings.hash(query) + zero.clientID;\n let existing = this.#views.get(hash);\n if (!existing) {\n existing = new ViewWrapper(bindings, query, format, ttl, view => {\n const currentView = this.#views.get(hash);\n if (currentView && currentView !== view) {\n // we replaced the view with a new one already.\n return;\n }\n this.#views.delete(hash);\n });\n this.#views.set(hash, existing);\n } else {\n existing.updateTTL(ttl);\n }\n return existing as ViewWrapper<TSchema, TTable, TReturn, MD, TContext>;\n }\n}\n\nconst viewStore = new ViewStore();\n\n/**\n * This wraps and ref counts a view.\n *\n * The only signal we have from React as to whether or not it is\n * done with a view is when it calls `unsubscribe`.\n *\n * In non-strict-mode we can clean up the view as soon\n * as the listener count goes to 0.\n *\n * In strict-mode, the listener count will go to 0 then a\n * new listener for the same view is immediately added back.\n *\n * This is why the `onMaterialized` and `onDematerialized` callbacks exist --\n * they allow a view which React is still referencing to be added\n * back into the store when React re-subscribes to it.\n *\n * This wrapper also exists to deal with the various\n * `useSyncExternalStore` caveats that cause excessive\n * re-renders and materializations.\n *\n * See: https://react.dev/reference/react/useSyncExternalStore#caveats\n * Especially:\n * 1. The store snapshot returned by getSnapshot must be immutable. If the underlying store has mutable data, return a new immutable snapshot if the data has changed. Otherwise, return a cached last snapshot.\n * 2. If a different subscribe function is passed during a re-render, React will re-subscribe to the store using the newly passed subscribe function. You can prevent this by declaring subscribe outside the component.\n */\nclass ViewWrapper<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n MD extends CustomMutatorDefs | undefined,\n TContext,\n> {\n #view: TypedView<HumanReadable<TReturn>> | undefined;\n readonly #onDematerialized;\n readonly #query: Query<TSchema, TTable, TReturn, TContext>;\n readonly #format: Format;\n #snapshot: QueryResult<TReturn>;\n #reactInternals: Set<() => void>;\n #ttl: TTL;\n #complete = false;\n #completeResolver = resolver<void>();\n #nonEmpty = false;\n #nonEmptyResolver = resolver<void>();\n readonly #bindings: BindingsForZero<TSchema, TContext>;\n\n constructor(\n bindings: BindingsForZero<TSchema, TContext>,\n query: Query<TSchema, TTable, TReturn, TContext>,\n format: Format,\n ttl: TTL,\n onDematerialized: (\n view: ViewWrapper<TSchema, TTable, TReturn, MD, TContext>,\n ) => void,\n ) {\n this.#bindings = bindings;\n this.#query = query;\n this.#format = format;\n this.#ttl = ttl;\n this.#onDematerialized = onDematerialized;\n this.#snapshot = getDefaultSnapshot(format.singular);\n this.#reactInternals = new Set();\n this.#materializeIfNeeded();\n }\n\n #onData = (\n snap: Immutable<HumanReadable<TReturn>>,\n resultType: ResultType,\n error?: ErroredQuery,\n ) => {\n const data =\n snap === undefined\n ? snap\n : (deepClone(snap as ReadonlyJSONValue) as HumanReadable<TReturn>);\n this.#snapshot = getSnapshot(\n this.#format.singular,\n data,\n resultType,\n this.#retry,\n error,\n );\n if (resultType === 'complete' || resultType === 'error') {\n this.#complete = true;\n this.#completeResolver.resolve();\n this.#nonEmpty = true;\n this.#nonEmptyResolver.resolve();\n }\n\n if (\n this.#format.singular\n ? this.#snapshot[0] !== undefined\n : (this.#snapshot[0] as unknown[]).length !== 0\n ) {\n this.#nonEmpty = true;\n this.#nonEmptyResolver.resolve();\n }\n\n for (const internals of this.#reactInternals) {\n internals();\n }\n };\n\n /**\n * Called by the user to force a retry of the query\n * in the case the query errored.\n */\n #retry = () => {\n this.#view?.destroy();\n this.#view = undefined;\n this.#materializeIfNeeded();\n };\n\n #materializeIfNeeded = () => {\n if (this.#view) {\n return;\n }\n this.#view = this.#bindings.materialize(this.#query, undefined, {\n ttl: this.#ttl,\n });\n this.#view.addListener(this.#onData);\n };\n\n getSnapshot = () => this.#snapshot;\n\n subscribeReactInternals = (internals: () => void): (() => void) => {\n this.#reactInternals.add(internals);\n this.#materializeIfNeeded();\n return () => {\n this.#reactInternals.delete(internals);\n\n // only schedule a cleanup task if we have no listeners left\n if (this.#reactInternals.size === 0) {\n setTimeout(() => {\n // We already destroyed the view\n if (this.#view === undefined) {\n return;\n }\n\n // Someone re-registered a listener on this view before the timeout elapsed.\n // This happens often in strict-mode which forces a component\n // to mount, unmount, remount.\n if (this.#reactInternals.size > 0) {\n return;\n }\n\n this.#view.destroy();\n this.#view = undefined;\n this.#complete = false;\n this.#completeResolver = resolver();\n this.#nonEmpty = false;\n this.#nonEmptyResolver = resolver();\n this.#onDematerialized(this);\n }, 10);\n }\n };\n };\n\n updateTTL(ttl: TTL): void {\n this.#ttl = ttl;\n this.#view?.updateTTL(ttl);\n }\n\n get complete() {\n return this.#complete;\n }\n\n waitForComplete(): Promise<void> {\n return this.#completeResolver.promise;\n }\n\n get nonEmpty() {\n return this.#nonEmpty;\n }\n\n waitForNonEmpty(): Promise<void> {\n return this.#nonEmptyResolver.promise;\n }\n}\n", "import {hasOwn} from './has-own.ts';\nimport type {JSONValue, ReadonlyJSONValue} from './json.ts';\n\nexport function deepClone(value: ReadonlyJSONValue): JSONValue {\n const seen: Array<ReadonlyJSONValue> = [];\n return internalDeepClone(value, seen);\n}\n\nexport function internalDeepClone(\n value: ReadonlyJSONValue,\n seen: Array<ReadonlyJSONValue>,\n): JSONValue {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'string':\n case 'undefined':\n return value;\n case 'object': {\n if (value === null) {\n return null;\n }\n if (seen.includes(value)) {\n throw new Error('Cyclic object');\n }\n seen.push(value);\n if (Array.isArray(value)) {\n const rv = value.map(v => internalDeepClone(v, seen));\n seen.pop();\n return rv;\n }\n\n const obj: JSONValue = {};\n\n for (const k in value) {\n if (hasOwn(value, k)) {\n const v = (value as Record<string, ReadonlyJSONValue>)[k];\n if (v !== undefined) {\n obj[k] = internalDeepClone(v, seen);\n }\n }\n }\n seen.pop();\n return obj;\n }\n\n default:\n throw new Error(`Invalid type: ${typeof value}`);\n }\n}\n", "import {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\nimport type {ZeroOptions} from '../../zero-client/src/client/options.ts';\nimport {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport {stringCompare} from '../../shared/src/string-compare.ts';\n\nexport const ZeroContext = createContext<unknown | undefined>(undefined);\n\nexport function useZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n Context = unknown,\n>(): Zero<S, MD, Context> {\n const zero = useContext(ZeroContext);\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero as Zero<S, MD, Context>;\n}\n\nexport function createUseZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n Context = unknown,\n>() {\n return () => useZero<S, MD, Context>();\n}\n\nexport type ZeroProviderProps<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n Context = unknown,\n> = (ZeroOptions<S, MD, Context> | {zero: Zero<S, MD, Context>}) & {\n init?: (zero: Zero<S, MD, Context>) => void;\n children: ReactNode;\n};\n\nconst NO_AUTH_SET = Symbol();\n\nexport function ZeroProvider<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n Context = unknown,\n>({children, init, ...props}: ZeroProviderProps<S, MD, Context>) {\n const isExternalZero = 'zero' in props;\n\n const [zero, setZero] = useState<Zero<S, MD, Context> | undefined>(\n isExternalZero ? props.zero : undefined,\n );\n\n const auth = 'auth' in props ? props.auth : NO_AUTH_SET;\n const prevAuthRef = useRef<typeof auth>(auth);\n\n const keysWithoutAuth = useMemo(\n () =>\n Object.entries(props)\n .filter(([key]) => key !== 'auth')\n .sort(([a], [b]) => stringCompare(a, b))\n .map(([_, value]) => value),\n [props],\n );\n\n // If Zero is not passed in, we construct it, but only client-side.\n // Zero doesn't really work SSR today so this is usually the right thing.\n // When we support Zero SSR this will either become a breaking change or\n // more likely server support will be opt-in with a new prop on this\n // component.\n useEffect(() => {\n if (isExternalZero) {\n setZero(props.zero);\n return;\n }\n\n const z = new Zero(props);\n init?.(z);\n setZero(z);\n\n return () => {\n void z.close();\n setZero(undefined);\n };\n // we intentionally don't include auth in the dependency array\n // to avoid closing zero when auth changes\n }, [init, ...keysWithoutAuth]);\n\n useEffect(() => {\n if (!zero) return;\n\n const authChanged = auth !== prevAuthRef.current;\n\n if (authChanged) {\n prevAuthRef.current = auth;\n void zero.connection.connect({\n auth: auth === NO_AUTH_SET ? undefined : auth,\n });\n }\n }, [auth, zero]);\n\n return (\n zero && <ZeroContext.Provider value={zero}>{children}</ZeroContext.Provider>\n );\n}\n", "import {useSyncExternalStore} from 'react';\nimport type {ConnectionState} from '../../zero-client/src/client/connection-manager.ts';\nimport {useZero} from './zero-provider.tsx';\n\n/**\n * Hook to subscribe to the connection status of the Zero instance.\n *\n * @returns The connection status of the Zero instance.\n * @see {@link ConnectionState} for more details on the connection state.\n */\nexport function useZeroConnectionState(): ConnectionState {\n const zero = useZero();\n return useSyncExternalStore(\n zero.connection.state.subscribe,\n () => zero.connection.state.current,\n () => zero.connection.state.current,\n );\n}\n", "import {useSyncExternalStore} from 'react';\nimport {useZero} from './zero-provider.tsx';\n\n/**\n * Hook to subscribe to the online status of the Zero instance.\n *\n * This is useful when you want to update state based on the online status.\n *\n * @returns The online status of the Zero instance.\n *\n * @deprecated Use {@linkcode useZeroConnectionState} instead, which provides more detailed connection state.\n */\nexport function useZeroOnline(): boolean {\n const zero = useZero();\n return useSyncExternalStore(\n zero.onOnline,\n () => zero.online,\n () => zero.online,\n );\n}\n"],
5
- "mappings": "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",
6
- "names": ["useState", "jsx", "useState", "useSyncExternalStore", "useSyncExternalStore", "useSyncExternalStore", "useSyncExternalStore"]
7
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=enum.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../shared/src/enum.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=expand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../../shared/src/expand.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=immutable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"immutable.js","sourceRoot":"","sources":["../../../../shared/src/immutable.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../shared/src/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=writable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"writable.js","sourceRoot":"","sources":["../../../../shared/src/writable.ts"],"names":[],"mappings":""}
package/out/solid.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../zero-solid/src/use-query.ts", "../../zero-solid/src/solid-view.ts", "../../zero-solid/src/use-zero.ts", "../../zero-solid/src/use-zero-connection-state.ts", "../../zero-solid/src/use-zero-online.ts"],
4
- "sourcesContent": ["import {createComputed, createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {createStore} from 'solid-js/store';\nimport type {ClientID} from '../../replicache/src/sync/ids.ts';\nimport {bindingsForZero} from '../../zero-client/src/client/bindings.ts';\nimport type {QueryResultDetails} from '../../zero-client/src/types/query-result.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport type {HumanReadable, Query} from '../../zql/src/query/query.ts';\nimport {DEFAULT_TTL_MS, type TTL} from '../../zql/src/query/ttl.ts';\nimport {\n createSolidViewFactory,\n UNKNOWN,\n type SolidView,\n type State,\n} from './solid-view.ts';\nimport {useZero} from './use-zero.ts';\n\nexport type QueryResult<TReturn> = readonly [\n Accessor<HumanReadable<TReturn>>,\n Accessor<QueryResultDetails & {}>,\n];\n\n// Deprecated in 0.22\n/**\n * @deprecated Use {@linkcode UseQueryOptions} instead.\n */\nexport type CreateQueryOptions = {\n ttl?: TTL | undefined;\n};\n\nexport type UseQueryOptions = {\n ttl?: TTL | undefined;\n};\n\n// Deprecated in 0.22\n/**\n * @deprecated Use {@linkcode useQuery} instead.\n */\nexport function createQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n>(\n querySignal: Accessor<Query<TSchema, TTable, TReturn>>,\n options?: CreateQueryOptions | Accessor<CreateQueryOptions>,\n): QueryResult<TReturn> {\n return useQuery(querySignal, options);\n}\n\nexport function useQuery<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n TContext,\n>(\n querySignal: Accessor<Query<TSchema, TTable, TReturn, TContext>>,\n options?: UseQueryOptions | Accessor<UseQueryOptions>,\n): QueryResult<TReturn> {\n const [state, setState] = createStore<State>([\n {\n '': undefined,\n },\n UNKNOWN,\n ]);\n const initialRefetchKey = 0;\n const [refetchKey, setRefetchKey] = createSignal(initialRefetchKey);\n\n const refetch = () => {\n setRefetchKey(k => k + 1);\n };\n\n let view: SolidView | undefined = undefined;\n\n // Wrap in in createComputed to ensure a new view is created if the querySignal changes.\n createComputed<\n [\n SolidView | undefined,\n ClientID | undefined,\n Query<TSchema, TTable, TReturn, TContext> | undefined,\n string | undefined,\n TTL | undefined,\n number,\n ]\n >(\n ([\n prevView,\n prevClientID,\n prevQuery,\n prevQueryHash,\n prevTtl,\n prevRefetchKey,\n ]) => {\n const zero = useZero()();\n const currentRefetchKey = refetchKey(); // depend on refetchKey to force re-evaluation\n const {clientID} = zero;\n const query = querySignal();\n const bindings = bindingsForZero(zero);\n const queryHash = bindings.hash(query);\n const ttl = normalize(options)?.ttl ?? DEFAULT_TTL_MS;\n if (\n !prevView ||\n clientID !== prevClientID ||\n prevRefetchKey !== currentRefetchKey ||\n (query !== prevQuery &&\n (clientID === undefined || queryHash !== prevQueryHash))\n ) {\n if (prevView) {\n prevView.destroy();\n }\n view = bindings.materialize(\n query,\n createSolidViewFactory(setState, refetch),\n {ttl},\n );\n } else {\n view = prevView;\n if (ttl !== prevTtl) {\n view.updateTTL(ttl);\n }\n }\n\n return [view, clientID, query, queryHash, ttl, currentRefetchKey];\n },\n [undefined, undefined, undefined, undefined, undefined, initialRefetchKey],\n );\n\n onCleanup(() => {\n view?.destroy();\n });\n\n return [() => state[0][''] as HumanReadable<TReturn>, () => state[1]];\n}\n\nfunction normalize<T>(options?: T | Accessor<T | undefined>): T | undefined {\n return typeof options === 'function' ? (options as Accessor<T>)() : options;\n}\n", "import {produce, reconcile, type SetStoreFunction} from 'solid-js/store';\nimport {\n applyChange,\n type AnyViewFactory,\n type Change,\n type Entry,\n type Format,\n type Input,\n type Node,\n type Output,\n type Query,\n type Schema,\n type Stream,\n type TTL,\n type ViewChange,\n} from '../../zero-client/src/mod.js';\nimport type {\n QueryErrorDetails,\n QueryResultDetails,\n} from '../../zero-client/src/types/query-result.ts';\nimport type {ErroredQuery} from '../../zero-protocol/src/custom-queries.ts';\nimport {idSymbol} from '../../zql/src/ivm/view-apply-change.ts';\n\nexport type State = [Entry, QueryResultDetails];\n\nexport const COMPLETE: QueryResultDetails = Object.freeze({type: 'complete'});\nexport const UNKNOWN: QueryResultDetails = Object.freeze({type: 'unknown'});\n\nexport class SolidView implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n readonly #retry: () => void;\n\n #setState: SetStoreFunction<State>;\n\n // Optimization: if the store is currently empty we build up\n // the view on a plain old JS object stored at #builderRoot, and return\n // that for the new state on transaction commit. This avoids building up\n // large views from scratch via solid produce. The proxy object used by\n // solid produce is slow and in this case we don't care about solid tracking\n // the fine grained changes (everything has changed, it's all new). For a\n // test case with a view with 3000 rows, each row having 2 children, this\n // optimization reduced #applyChanges time from 743ms to 133ms.\n #builderRoot: Entry | undefined;\n #pendingChanges: ViewChange[] = [];\n readonly #updateTTL: (ttl: TTL) => void;\n\n constructor(\n input: Input,\n onTransactionCommit: (cb: () => void) => void,\n format: Format,\n onDestroy: () => void,\n queryComplete: true | ErroredQuery | Promise<true>,\n updateTTL: (ttl: TTL) => void,\n setState: SetStoreFunction<State>,\n retry: () => void,\n ) {\n this.#input = input;\n onTransactionCommit(this.#onTransactionCommit);\n this.#format = format;\n this.#onDestroy = onDestroy;\n this.#updateTTL = updateTTL;\n this.#retry = retry;\n\n input.setOutput(this);\n\n const initialRoot = this.#createEmptyRoot();\n this.#applyChangesToRoot(\n input.fetch({}),\n node => ({type: 'add', node}),\n initialRoot,\n );\n\n this.#setState = setState;\n this.#setState(\n reconcile(\n [\n initialRoot,\n queryComplete === true\n ? COMPLETE\n : 'error' in queryComplete\n ? this.#makeError(queryComplete)\n : UNKNOWN,\n ],\n {\n // solidjs's types want a string, but a symbol works\n key: idSymbol as unknown as string,\n },\n ),\n );\n\n if (isEmptyRoot(initialRoot)) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n\n if (queryComplete !== true && !('error' in queryComplete)) {\n void queryComplete\n .then(() => {\n this.#setState(prev => [prev[0], COMPLETE]);\n })\n .catch((error: ErroredQuery) => {\n this.#setState(prev => [prev[0], this.#makeError(error)]);\n });\n }\n }\n\n #makeError(error: ErroredQuery): QueryErrorDetails {\n const message = error.message ?? 'An unknown error occurred';\n return {\n type: 'error',\n retry: this.#retry,\n refetch: this.#retry,\n error: {\n type: error.error,\n message,\n ...(error.details ? {details: error.details} : {}),\n },\n };\n }\n\n destroy(): void {\n this.#onDestroy();\n }\n\n #onTransactionCommit = () => {\n const builderRoot = this.#builderRoot;\n if (builderRoot) {\n if (!isEmptyRoot(builderRoot)) {\n this.#setState(\n 0,\n reconcile(builderRoot, {\n // solidjs's types want a string, but a symbol works\n key: idSymbol as unknown as string,\n }),\n );\n this.#setState(prev => [builderRoot, prev[1]]);\n this.#builderRoot = undefined;\n }\n } else {\n try {\n this.#applyChanges(this.#pendingChanges, c => c);\n } finally {\n this.#pendingChanges = [];\n }\n }\n };\n\n push(change: Change): void {\n // Delay updating the solid store state until the transaction commit\n // (because each update of the solid store is quite expensive). If\n // this.#builderRoot is defined apply the changes to it (we are building\n // from an empty root), otherwise queue the changes to be applied\n // using produce at the end of the transaction but read the relationships\n // now as they are only valid to read when the push is received.\n if (this.#builderRoot) {\n this.#applyChangeToRoot(change, this.#builderRoot);\n } else {\n this.#pendingChanges.push(materializeRelationships(change));\n }\n }\n\n #applyChanges<T>(changes: Iterable<T>, mapper: (v: T) => ViewChange): void {\n this.#setState(\n produce((draftState: State) => {\n this.#applyChangesToRoot<T>(changes, mapper, draftState[0]);\n if (isEmptyRoot(draftState[0])) {\n this.#builderRoot = this.#createEmptyRoot();\n }\n }),\n );\n }\n\n #applyChangesToRoot<T>(\n changes: Iterable<T>,\n mapper: (v: T) => ViewChange,\n root: Entry,\n ) {\n for (const change of changes) {\n this.#applyChangeToRoot(mapper(change), root);\n }\n }\n\n #applyChangeToRoot(change: ViewChange, root: Entry) {\n applyChange(\n root,\n change,\n this.#input.getSchema(),\n '',\n this.#format,\n true /* withIDs */,\n );\n }\n\n #createEmptyRoot(): Entry {\n return {\n '': this.#format.singular ? undefined : [],\n };\n }\n\n updateTTL(ttl: TTL): void {\n this.#updateTTL(ttl);\n }\n}\n\nfunction materializeRelationships(change: Change): ViewChange {\n switch (change.type) {\n case 'add':\n return {type: 'add', node: materializeNodeRelationships(change.node)};\n case 'remove':\n return {type: 'remove', node: materializeNodeRelationships(change.node)};\n case 'child':\n return {\n type: 'child',\n node: {row: change.node.row},\n child: {\n relationshipName: change.child.relationshipName,\n change: materializeRelationships(change.child.change),\n },\n };\n case 'edit':\n return {\n type: 'edit',\n node: {row: change.node.row},\n oldNode: {row: change.oldNode.row},\n };\n }\n}\n\nfunction materializeNodeRelationships(node: Node): Node {\n const relationships: Record<string, () => Stream<Node>> = {};\n for (const relationship in node.relationships) {\n const materialized: Node[] = [];\n for (const n of node.relationships[relationship]()) {\n materialized.push(materializeNodeRelationships(n));\n }\n relationships[relationship] = () => materialized;\n }\n return {\n row: node.row,\n relationships,\n };\n}\n\nfunction isEmptyRoot(entry: Entry) {\n const data = entry[''];\n return data === undefined || (Array.isArray(data) && data.length === 0);\n}\n\nexport function createSolidViewFactory(\n setState: SetStoreFunction<State>,\n retry?: () => void,\n) {\n function solidViewFactory<\n TSchema extends Schema,\n TTable extends keyof TSchema['tables'] & string,\n TReturn,\n TContext,\n >(\n _query: Query<TSchema, TTable, TReturn, TContext>,\n input: Input,\n format: Format,\n onDestroy: () => void,\n onTransactionCommit: (cb: () => void) => void,\n queryComplete: true | ErroredQuery | Promise<true>,\n updateTTL: (ttl: TTL) => void,\n ) {\n return new SolidView(\n input,\n onTransactionCommit,\n format,\n onDestroy,\n queryComplete,\n updateTTL,\n setState,\n retry || (() => {}),\n );\n }\n\n solidViewFactory satisfies AnyViewFactory;\n\n return solidViewFactory;\n}\n", "import {\n batch,\n createContext,\n createEffect,\n createMemo,\n onCleanup,\n splitProps,\n untrack,\n useContext,\n type Accessor,\n type JSX,\n} from 'solid-js';\nimport type {CustomMutatorDefs} from '../../zero-client/src/client/custom.ts';\nimport type {ZeroOptions} from '../../zero-client/src/client/options.ts';\nimport {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\n\n// oxlint-disable-next-line no-explicit-any\nconst ZeroContext = createContext<Accessor<Zero<any, any, any>> | undefined>(\n undefined,\n);\n\nconst NO_AUTH_SET = Symbol();\n\nexport function createZero<\n S extends Schema,\n MD extends CustomMutatorDefs,\n Context,\n>(options: ZeroOptions<S, MD, Context>): Zero<S, MD, Context> {\n const opts = {\n ...options,\n batchViewUpdates: batch,\n };\n return new Zero(opts);\n}\n\nexport function useZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n Context = unknown,\n>(): () => Zero<S, MD, Context> {\n const zero = useContext(ZeroContext);\n\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero;\n}\n\nexport function createUseZero<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined = undefined,\n Context = unknown,\n>() {\n return () => useZero<S, MD, Context>();\n}\n\nexport function ZeroProvider<\n S extends Schema,\n MD extends CustomMutatorDefs | undefined,\n Context,\n>(\n props: {children: JSX.Element; init?: (zero: Zero<S, MD>) => void} & (\n | {\n zero: Zero<S, MD, Context>;\n }\n | ZeroOptions<S, MD, Context>\n ),\n) {\n const zero = createMemo(() => {\n if ('zero' in props) {\n return props.zero;\n }\n\n const [, options] = splitProps(props, ['children', 'auth']);\n\n const authValue = untrack(() => props.auth);\n const createdZero = new Zero({\n ...options,\n ...(authValue !== undefined ? {auth: authValue} : {}),\n batchViewUpdates: batch,\n });\n options.init?.(createdZero);\n onCleanup(() => createdZero.close());\n return createdZero;\n });\n\n const auth = createMemo<typeof NO_AUTH_SET | ZeroOptions<S, MD>['auth']>(\n () => ('auth' in props ? props.auth : NO_AUTH_SET),\n );\n\n let prevAuth: typeof NO_AUTH_SET | ZeroOptions<S, MD>['auth'] = NO_AUTH_SET;\n\n createEffect(() => {\n const currentZero = zero();\n if (!currentZero) {\n return;\n }\n\n const currentAuth = auth();\n\n if (prevAuth === NO_AUTH_SET) {\n prevAuth = currentAuth;\n return;\n }\n\n if (currentAuth !== prevAuth) {\n prevAuth = currentAuth;\n void currentZero.connection.connect({\n auth: currentAuth === NO_AUTH_SET ? undefined : currentAuth,\n });\n }\n });\n\n return ZeroContext.Provider({\n value: zero,\n get children() {\n return props.children;\n },\n });\n}\n", "import {createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {useZero} from './use-zero.ts';\nimport type {ConnectionState} from '../../zero-client/src/client/connection-manager.ts';\n\n/**\n * Tracks the connection status of the current Zero instance.\n *\n * @returns The connection status of the Zero instance.\n * @see {@link ConnectionState} for more details on the connection state.\n */\nexport function useZeroConnectionState(): Accessor<ConnectionState> {\n const zero = useZero()();\n\n const [connectionState, setConnectionState] = createSignal<ConnectionState>(\n zero.connection.state.current,\n );\n\n const unsubscribe = zero.connection.state.subscribe(setConnectionState);\n\n onCleanup(unsubscribe);\n\n return connectionState;\n}\n", "import {createSignal, onCleanup, type Accessor} from 'solid-js';\nimport {useZero} from './use-zero.ts';\n\n/**\n * Tracks the online status of the current Zero instance.\n *\n * @returns An accessor \u2014 call `online()` to get a reactive `boolean`.\n * @deprecated Use {@linkcode useZeroConnectionState} instead, which provides more detailed connection state.\n */\nexport function useZeroOnline(): Accessor<boolean> {\n const zero = useZero()();\n\n const [online, setOnline] = createSignal<boolean>(zero.online);\n\n const unsubscribe = zero.onOnline(setOnline);\n\n onCleanup(unsubscribe);\n\n return online;\n}\n"],
5
- "mappings": "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",
6
- "names": ["onCleanup", "onCleanup", "createSignal", "onCleanup", "createSignal", "onCleanup", "createSignal", "onCleanup", "createSignal", "onCleanup"]
7
- }
package/out/sqlite.js DELETED
@@ -1,15 +0,0 @@
1
- import "./chunk-AFADJQ2O.js";
2
- import {
3
- SQLiteStore,
4
- clearAllNamedStoresForTesting,
5
- dropStore
6
- } from "./chunk-WPAQ4EPM.js";
7
- import "./chunk-ASRS2LFV.js";
8
- import "./chunk-EZM3XBAB.js";
9
- import "./chunk-424PT5DM.js";
10
- export {
11
- SQLiteStore,
12
- clearAllNamedStoresForTesting,
13
- dropStore
14
- };
15
- //# sourceMappingURL=sqlite.js.map
package/out/sqlite.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,195 +0,0 @@
1
- {
2
- "name": "@rocicorp/zero",
3
- "version": "0.25.0-canary.6",
4
- "description": "Zero is a web framework for serverless web development.",
5
- "author": "Rocicorp, Inc.",
6
- "repository": {
7
- "type": "git",
8
- "url": "git+https://github.com/rocicorp/mono.git",
9
- "directory": "packages/zero"
10
- },
11
- "license": "Apache-2.0",
12
- "homepage": "https://zero.rocicorp.dev",
13
- "bugs": {
14
- "url": "https://bugs.rocicorp.dev"
15
- },
16
- "scripts": {
17
- "build": "rm -rf out && npm run build-server && npm run build-client",
18
- "build-client": "tsc -p tsconfig.client.json && tsx tool/build.js",
19
- "build-server": "tsc -p tsconfig.server.json && chmod +x out/zero/src/cli.js out/zero/src/build-schema.js out/zero/src/deploy-permissions.js out/zero/src/zero-cache-dev.js out/zero/src/ast-to-zql.js out/zero/src/analyze-query.js out/zero/src/transform-query.js out/zero/src/zero-out.js",
20
- "check-types": "tsc -p tsconfig.client.json && tsc -p tsconfig.server.json",
21
- "check-types:client:watch": "tsc -p tsconfig.client.json --watch",
22
- "check-types:server:watch": "tsc -p tsconfig.server.json --watch",
23
- "format": "prettier --write .",
24
- "check-format": "prettier --check .",
25
- "lint": "oxlint --type-aware src/",
26
- "prepack": "cp ../zero-cache/src/services/litestream/config.yml ./out/zero-cache/src/services/litestream/",
27
- "docs": "node --experimental-strip-types --no-warnings tool/generate-docs.ts",
28
- "docs:server": "node --watch --experimental-strip-types --no-warnings tool/generate-docs.ts --server"
29
- },
30
- "dependencies": {
31
- "@badrap/valita": "0.3.11",
32
- "@databases/escape-identifier": "^1.0.3",
33
- "@databases/sql": "^3.3.0",
34
- "@dotenvx/dotenvx": "^1.39.0",
35
- "@drdgvhbh/postgres-error-codes": "^0.0.6",
36
- "@fastify/cors": "^10.0.0",
37
- "@fastify/websocket": "^11.0.0",
38
- "@google-cloud/precise-date": "^4.0.0",
39
- "@opentelemetry/api": "^1.9.0",
40
- "@opentelemetry/api-logs": "^0.203.0",
41
- "@opentelemetry/auto-instrumentations-node": "^0.62.0",
42
- "@opentelemetry/exporter-metrics-otlp-http": "^0.203.0",
43
- "@opentelemetry/resources": "^2.0.1",
44
- "@opentelemetry/sdk-metrics": "^2.0.1",
45
- "@opentelemetry/sdk-node": "^0.203.0",
46
- "@opentelemetry/sdk-trace-node": "^2.0.1",
47
- "@postgresql-typed/oids": "^0.2.0",
48
- "@rocicorp/lock": "^1.0.4",
49
- "@rocicorp/logger": "^5.4.0",
50
- "@rocicorp/resolver": "^1.0.2",
51
- "@rocicorp/zero-sqlite3": "^1.0.12",
52
- "@types/basic-auth": "^1.1.8",
53
- "basic-auth": "^2.0.1",
54
- "chalk": "^5.3.0",
55
- "chalk-template": "^1.1.0",
56
- "chokidar": "^4.0.1",
57
- "cloudevents": "^10.0.0",
58
- "command-line-args": "^6.0.1",
59
- "command-line-usage": "^7.0.3",
60
- "compare-utf8": "^0.1.1",
61
- "defu": "^6.1.4",
62
- "eventemitter3": "^5.0.1",
63
- "fastify": "^5.0.0",
64
- "is-in-subnet": "^4.0.1",
65
- "jose": "^5.9.3",
66
- "js-xxhash": "^4.0.0",
67
- "json-custom-numbers": "^3.1.1",
68
- "kasi": "^1.1.0",
69
- "nanoid": "^5.1.2",
70
- "parse-prometheus-text-format": "^1.1.1",
71
- "pg-format": "npm:pg-format-fix@^1.0.5",
72
- "postgres": "^3.4.4",
73
- "prettier": "^3.5.3",
74
- "semver": "^7.5.4",
75
- "@standard-schema/spec": "^1.0.0",
76
- "tsx": "^4.19.1",
77
- "url-pattern": "^1.0.3",
78
- "urlpattern-polyfill": "^10.1.0",
79
- "ws": "^8.18.1"
80
- },
81
- "devDependencies": {
82
- "@op-engineering/op-sqlite": ">=15",
83
- "@rocicorp/prettier-config": "^0.4.0",
84
- "@vitest/runner": "3.2.4",
85
- "analyze-query": "0.0.0",
86
- "ast-to-zql": "0.0.0",
87
- "esbuild": "^0.25.10",
88
- "expo-sqlite": ">=15",
89
- "replicache": "15.2.1",
90
- "shared": "0.0.0",
91
- "typedoc": "^0.28.2",
92
- "typedoc-plugin-markdown": "^4.6.1",
93
- "typescript": "~5.8.2",
94
- "vitest": "3.2.4",
95
- "zero-cache": "0.0.0",
96
- "zero-client": "0.0.0",
97
- "zero-pg": "0.0.0",
98
- "zero-react": "0.0.0",
99
- "zero-server": "0.0.0",
100
- "zero-solid": "0.0.0",
101
- "zqlite": "0.0.0"
102
- },
103
- "peerDependencies": {
104
- "expo-sqlite": ">=15",
105
- "@op-engineering/op-sqlite": ">=15"
106
- },
107
- "peerDependenciesMeta": {
108
- "expo-sqlite": {
109
- "optional": true
110
- },
111
- "@op-engineering/op-sqlite": {
112
- "optional": true
113
- }
114
- },
115
- "type": "module",
116
- "main": "out/zero.js",
117
- "module": "out/zero.js",
118
- "types": "out/zero-client/src/mod.d.ts",
119
- "exports": {
120
- ".": {
121
- "types": "./out/zero-client/src/mod.d.ts",
122
- "default": "./out/zero.js"
123
- },
124
- "./change-protocol/v0": {
125
- "types": "./out/zero/src/change-protocol/v0.d.ts",
126
- "default": "./out/zero/src/change-protocol/v0.js"
127
- },
128
- "./expo-sqlite": {
129
- "types": "./out/zero/src/expo-sqlite.d.ts",
130
- "default": "./out/expo-sqlite.js"
131
- },
132
- "./op-sqlite": {
133
- "types": "./out/zero/src/op-sqlite.d.ts",
134
- "default": "./out/op-sqlite.js"
135
- },
136
- "./pg": {
137
- "types": "./out/zero-pg/src/mod.d.ts",
138
- "default": "./out/zero/src/pg.js"
139
- },
140
- "./react": {
141
- "types": "./out/zero-react/src/mod.d.ts",
142
- "default": "./out/react.js"
143
- },
144
- "./react-native": {
145
- "types": "./out/zero/src/react-native.d.ts",
146
- "default": "./out/react-native.js"
147
- },
148
- "./server": {
149
- "types": "./out/zero-server/src/mod.d.ts",
150
- "default": "./out/zero/src/server.js"
151
- },
152
- "./server/adapters/drizzle": {
153
- "types": "./out/zero-server/src/adapters/drizzle.d.ts",
154
- "default": "./out/zero/src/adapters/drizzle.js"
155
- },
156
- "./server/adapters/pg": {
157
- "types": "./out/zero-server/src/adapters/pg.d.ts",
158
- "default": "./out/zero/src/adapters/pg.js"
159
- },
160
- "./server/adapters/postgresjs": {
161
- "types": "./out/zero-server/src/adapters/postgresjs.d.ts",
162
- "default": "./out/zero/src/adapters/postgresjs.js"
163
- },
164
- "./solid": {
165
- "types": "./out/zero-solid/src/mod.d.ts",
166
- "default": "./out/solid.js"
167
- },
168
- "./sqlite": {
169
- "types": "./out/zero/src/sqlite.d.ts",
170
- "default": "./out/sqlite.js"
171
- },
172
- "./zqlite": {
173
- "types": "./out/zqlite/src/mod.d.ts",
174
- "default": "./out/zero/src/zqlite.js"
175
- }
176
- },
177
- "bin": {
178
- "zero-build-schema": "./out/zero/src/build-schema.js",
179
- "zero-cache": "./out/zero/src/cli.js",
180
- "zero-cache-dev": "./out/zero/src/zero-cache-dev.js",
181
- "zero-deploy-permissions": "./out/zero/src/deploy-permissions.js",
182
- "zero-out": "./out/zero/src/zero-out.js",
183
- "ast-to-zql": "./out/zero/src/ast-to-zql.js",
184
- "analyze-query": "./out/zero/src/analyze-query.js",
185
- "transform-query": "./out/zero/src/transform-query.js"
186
- },
187
- "engines": {
188
- "node": ">=22"
189
- },
190
- "files": [
191
- "out",
192
- "!*.tsbuildinfo"
193
- ],
194
- "prettier": "@rocicorp/prettier-config"
195
- }
@@ -1,2 +0,0 @@
1
- import "../../../zero-cache/src/server/change-streamer.js";
2
- //# sourceMappingURL=change-streamer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../src/server/change-streamer.ts"],"names":[],"mappings":"AAAA,OAAO,mDAAmD,CAAC"}
@@ -1,2 +0,0 @@
1
- import "../../../zero-cache/src/server/main.js";
2
- //# sourceMappingURL=main.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/server/main.ts"],"names":[],"mappings":"AAAA,OAAO,wCAAwC,CAAC"}
@@ -1,2 +0,0 @@
1
- import "../../../zero-cache/src/server/reaper.js";
2
- //# sourceMappingURL=reaper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reaper.js","sourceRoot":"","sources":["../../../../src/server/reaper.ts"],"names":[],"mappings":"AAAA,OAAO,0CAA0C,CAAC"}
@@ -1,2 +0,0 @@
1
- import "../../../zero-cache/src/server/replicator.js";
2
- //# sourceMappingURL=replicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../src/server/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,8CAA8C,CAAC"}
@@ -1,2 +0,0 @@
1
- import "../../../../zero-cache/src/server/runner/main.js";
2
- //# sourceMappingURL=main.js.map