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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1553) hide show
  1. package/out/analyze-query/src/bin-analyze.js +268 -257
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/analyze-query/src/bin-transform.js +31 -23
  4. package/out/analyze-query/src/bin-transform.js.map +1 -1
  5. package/out/analyze-query/src/explain-queries.js +13 -16
  6. package/out/analyze-query/src/explain-queries.js.map +1 -1
  7. package/out/analyze-query/src/run-ast.d.ts +3 -2
  8. package/out/analyze-query/src/run-ast.d.ts.map +1 -1
  9. package/out/analyze-query/src/run-ast.js +79 -73
  10. package/out/analyze-query/src/run-ast.js.map +1 -1
  11. package/out/ast-to-zql/src/ast-to-zql.js +146 -180
  12. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
  13. package/out/ast-to-zql/src/bin.js +51 -54
  14. package/out/ast-to-zql/src/bin.js.map +1 -1
  15. package/out/ast-to-zql/src/format.js +15 -14
  16. package/out/ast-to-zql/src/format.js.map +1 -1
  17. package/out/datadog/src/datadog-log-sink.js +223 -0
  18. package/out/datadog/src/datadog-log-sink.js.map +1 -0
  19. package/out/otel/src/enabled.js +15 -15
  20. package/out/otel/src/enabled.js.map +1 -1
  21. package/out/otel/src/log-options.js +36 -31
  22. package/out/otel/src/log-options.js.map +1 -1
  23. package/out/otel/src/maybe-time.js +14 -11
  24. package/out/otel/src/maybe-time.js.map +1 -1
  25. package/out/otel/src/span.js +30 -27
  26. package/out/otel/src/span.js.map +1 -1
  27. package/out/otel/src/test-log-config.js +10 -7
  28. package/out/otel/src/test-log-config.js.map +1 -1
  29. package/out/otel/src/version.js +5 -2
  30. package/out/otel/src/version.js.map +1 -1
  31. package/out/replicache/src/async-iterable-to-array.js +11 -0
  32. package/out/replicache/src/async-iterable-to-array.js.map +1 -0
  33. package/out/replicache/src/bg-interval.js +38 -0
  34. package/out/replicache/src/bg-interval.js.map +1 -0
  35. package/out/replicache/src/btree/diff.js +8 -0
  36. package/out/replicache/src/btree/diff.js.map +1 -0
  37. package/out/replicache/src/btree/node.js +400 -0
  38. package/out/replicache/src/btree/node.js.map +1 -0
  39. package/out/replicache/src/btree/read.d.ts +3 -2
  40. package/out/replicache/src/btree/read.d.ts.map +1 -1
  41. package/out/replicache/src/btree/read.js +266 -0
  42. package/out/replicache/src/btree/read.js.map +1 -0
  43. package/out/replicache/src/btree/splice.js +83 -0
  44. package/out/replicache/src/btree/splice.js.map +1 -0
  45. package/out/replicache/src/btree/write.d.ts +1 -1
  46. package/out/replicache/src/btree/write.d.ts.map +1 -1
  47. package/out/replicache/src/btree/write.js +163 -0
  48. package/out/replicache/src/btree/write.js.map +1 -0
  49. package/out/replicache/src/call-default-fetch.js +34 -0
  50. package/out/replicache/src/call-default-fetch.js.map +1 -0
  51. package/out/replicache/src/connection-loop-delegates.js +34 -0
  52. package/out/replicache/src/connection-loop-delegates.js.map +1 -0
  53. package/out/replicache/src/connection-loop.js +251 -0
  54. package/out/replicache/src/connection-loop.js.map +1 -0
  55. package/out/replicache/src/cookies.js +40 -0
  56. package/out/replicache/src/cookies.js.map +1 -0
  57. package/out/replicache/src/dag/chunk.js +59 -0
  58. package/out/replicache/src/dag/chunk.js.map +1 -0
  59. package/out/replicache/src/dag/gc.js +117 -0
  60. package/out/replicache/src/dag/gc.js.map +1 -0
  61. package/out/replicache/src/dag/key.js +20 -0
  62. package/out/replicache/src/dag/key.js.map +1 -0
  63. package/out/replicache/src/dag/lazy-store.d.ts +3 -2
  64. package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
  65. package/out/replicache/src/dag/lazy-store.js +515 -0
  66. package/out/replicache/src/dag/lazy-store.js.map +1 -0
  67. package/out/replicache/src/dag/store-impl.js +183 -0
  68. package/out/replicache/src/dag/store-impl.js.map +1 -0
  69. package/out/replicache/src/dag/store.js +27 -0
  70. package/out/replicache/src/dag/store.js.map +1 -0
  71. package/out/replicache/src/dag/visitor.js +22 -0
  72. package/out/replicache/src/dag/visitor.js.map +1 -0
  73. package/out/replicache/src/db/commit.js +358 -0
  74. package/out/replicache/src/db/commit.js.map +1 -0
  75. package/out/replicache/src/db/index-operation-enum.js +7 -0
  76. package/out/replicache/src/db/index-operation-enum.js.map +1 -0
  77. package/out/replicache/src/db/index.js +134 -0
  78. package/out/replicache/src/db/index.js.map +1 -0
  79. package/out/replicache/src/db/meta-type-enum.js +7 -0
  80. package/out/replicache/src/db/meta-type-enum.js.map +1 -0
  81. package/out/replicache/src/db/read.d.ts +3 -2
  82. package/out/replicache/src/db/read.d.ts.map +1 -1
  83. package/out/replicache/src/db/read.js +72 -0
  84. package/out/replicache/src/db/read.js.map +1 -0
  85. package/out/replicache/src/db/rebase.d.ts +2 -2
  86. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  87. package/out/replicache/src/db/rebase.js +85 -0
  88. package/out/replicache/src/db/rebase.js.map +1 -0
  89. package/out/replicache/src/db/write.d.ts +2 -1
  90. package/out/replicache/src/db/write.d.ts.map +1 -1
  91. package/out/replicache/src/db/write.js +296 -0
  92. package/out/replicache/src/db/write.js.map +1 -0
  93. package/out/replicache/src/deleted-clients.js +104 -0
  94. package/out/replicache/src/deleted-clients.js.map +1 -0
  95. package/out/replicache/src/error-responses.js +34 -0
  96. package/out/replicache/src/error-responses.js.map +1 -0
  97. package/out/replicache/src/format-version-enum.js +11 -0
  98. package/out/replicache/src/format-version-enum.js.map +1 -0
  99. package/out/{chunk-EZM3XBAB.js → replicache/src/frozen-json.js} +8 -75
  100. package/out/replicache/src/frozen-json.js.map +1 -0
  101. package/out/replicache/src/get-default-puller.js +61 -0
  102. package/out/replicache/src/get-default-puller.js.map +1 -0
  103. package/out/replicache/src/get-default-pusher.js +39 -0
  104. package/out/replicache/src/get-default-pusher.js.map +1 -0
  105. package/out/replicache/src/get-kv-store-provider.js +23 -0
  106. package/out/replicache/src/get-kv-store-provider.js.map +1 -0
  107. package/out/replicache/src/hash.js +38 -0
  108. package/out/replicache/src/hash.js.map +1 -0
  109. package/out/replicache/src/http-request-info.js +10 -0
  110. package/out/replicache/src/http-request-info.js.map +1 -0
  111. package/out/replicache/src/http-status-unauthorized.js +5 -0
  112. package/out/replicache/src/http-status-unauthorized.js.map +1 -0
  113. package/out/replicache/src/index-defs.js +32 -0
  114. package/out/replicache/src/index-defs.js.map +1 -0
  115. package/out/replicache/src/invoke-kind-enum.js +7 -0
  116. package/out/replicache/src/invoke-kind-enum.js.map +1 -0
  117. package/out/{chunk-ZZXMKAAG.js → replicache/src/kv/expo-sqlite/store.js} +8 -16
  118. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
  119. package/out/replicache/src/kv/idb-store-with-mem-fallback.js +80 -0
  120. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
  121. package/out/replicache/src/kv/idb-store.js +183 -0
  122. package/out/replicache/src/kv/idb-store.js.map +1 -0
  123. package/out/replicache/src/kv/mem-store.js +51 -0
  124. package/out/replicache/src/kv/mem-store.js.map +1 -0
  125. package/out/{op-sqlite.js → replicache/src/kv/op-sqlite/store.js} +7 -18
  126. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
  127. package/out/replicache/src/kv/op-sqlite/types.js +6 -0
  128. package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
  129. package/out/replicache/src/kv/read-impl.js +27 -0
  130. package/out/replicache/src/kv/read-impl.js.map +1 -0
  131. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  132. package/out/{chunk-ECUMGQGC.js → replicache/src/kv/sqlite-store.js} +27 -21
  133. package/out/replicache/src/kv/sqlite-store.js.map +1 -0
  134. package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
  135. package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
  136. package/out/replicache/src/kv/write-impl-base.js +57 -0
  137. package/out/replicache/src/kv/write-impl-base.js.map +1 -0
  138. package/out/replicache/src/kv/write-impl.js +30 -0
  139. package/out/replicache/src/kv/write-impl.js.map +1 -0
  140. package/out/replicache/src/lazy.js +13 -0
  141. package/out/replicache/src/lazy.js.map +1 -0
  142. package/out/replicache/src/log-options.d.ts +1 -1
  143. package/out/replicache/src/log-options.d.ts.map +1 -1
  144. package/out/replicache/src/log-options.js +9 -0
  145. package/out/replicache/src/log-options.js.map +1 -0
  146. package/out/replicache/src/make-idb-name.js +13 -0
  147. package/out/replicache/src/make-idb-name.js.map +1 -0
  148. package/out/replicache/src/new-client-channel.js +51 -0
  149. package/out/replicache/src/new-client-channel.js.map +1 -0
  150. package/out/replicache/src/on-persist-channel.js +36 -0
  151. package/out/replicache/src/on-persist-channel.js.map +1 -0
  152. package/out/replicache/src/patch-operation.js +42 -0
  153. package/out/replicache/src/patch-operation.js.map +1 -0
  154. package/out/replicache/src/pending-mutations.js +16 -0
  155. package/out/replicache/src/pending-mutations.js.map +1 -0
  156. package/out/replicache/src/persist/client-gc.js +58 -0
  157. package/out/replicache/src/persist/client-gc.js.map +1 -0
  158. package/out/replicache/src/persist/client-group-gc.js +43 -0
  159. package/out/replicache/src/persist/client-group-gc.js.map +1 -0
  160. package/out/replicache/src/persist/client-groups.js +184 -0
  161. package/out/replicache/src/persist/client-groups.js.map +1 -0
  162. package/out/replicache/src/persist/clients.d.ts +3 -2
  163. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  164. package/out/replicache/src/persist/clients.js +353 -0
  165. package/out/replicache/src/persist/clients.js.map +1 -0
  166. package/out/replicache/src/persist/collect-idb-databases.d.ts +3 -3
  167. package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
  168. package/out/replicache/src/persist/collect-idb-databases.js +188 -0
  169. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
  170. package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
  171. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  172. package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
  173. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  174. package/out/replicache/src/persist/heartbeat.js +48 -0
  175. package/out/replicache/src/persist/heartbeat.js.map +1 -0
  176. package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
  177. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  178. package/out/replicache/src/persist/idb-databases-store.js +92 -0
  179. package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
  180. package/out/replicache/src/persist/make-client-id.js +12 -0
  181. package/out/replicache/src/persist/make-client-id.js.map +1 -0
  182. package/out/replicache/src/persist/persist.d.ts +2 -2
  183. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  184. package/out/replicache/src/persist/persist.js +183 -0
  185. package/out/replicache/src/persist/persist.js.map +1 -0
  186. package/out/replicache/src/persist/refresh.d.ts +4 -3
  187. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  188. package/out/replicache/src/persist/refresh.js +198 -0
  189. package/out/replicache/src/persist/refresh.js.map +1 -0
  190. package/out/replicache/src/process-scheduler.js +96 -0
  191. package/out/replicache/src/process-scheduler.js.map +1 -0
  192. package/out/replicache/src/pusher.js +33 -0
  193. package/out/replicache/src/pusher.js.map +1 -0
  194. package/out/replicache/src/replicache-impl.d.ts +1 -1
  195. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  196. package/out/replicache/src/replicache-impl.js +1200 -0
  197. package/out/replicache/src/replicache-impl.js.map +1 -0
  198. package/out/replicache/src/replicache-options.d.ts +4 -3
  199. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  200. package/out/replicache/src/report-error.js +6 -0
  201. package/out/replicache/src/report-error.js.map +1 -0
  202. package/out/replicache/src/request-idle.js +13 -0
  203. package/out/replicache/src/request-idle.js.map +1 -0
  204. package/out/replicache/src/scan-iterator.js +146 -0
  205. package/out/replicache/src/scan-iterator.js.map +1 -0
  206. package/out/replicache/src/scan-options.js +45 -0
  207. package/out/replicache/src/scan-options.js.map +1 -0
  208. package/out/replicache/src/set-interval-with-signal.js +12 -0
  209. package/out/replicache/src/set-interval-with-signal.js.map +1 -0
  210. package/out/replicache/src/subscriptions.js +355 -0
  211. package/out/replicache/src/subscriptions.js.map +1 -0
  212. package/out/replicache/src/sync/diff.d.ts +3 -2
  213. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  214. package/out/replicache/src/sync/diff.js +72 -0
  215. package/out/replicache/src/sync/diff.js.map +1 -0
  216. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
  217. package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
  218. package/out/replicache/src/sync/ids.js +9 -0
  219. package/out/replicache/src/sync/ids.js.map +1 -0
  220. package/out/replicache/src/sync/patch.js +49 -0
  221. package/out/replicache/src/sync/patch.js.map +1 -0
  222. package/out/replicache/src/sync/pull-error.js +16 -0
  223. package/out/replicache/src/sync/pull-error.js.map +1 -0
  224. package/out/replicache/src/sync/pull.d.ts +3 -2
  225. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  226. package/out/replicache/src/sync/pull.js +301 -0
  227. package/out/replicache/src/sync/pull.js.map +1 -0
  228. package/out/replicache/src/sync/push.js +88 -0
  229. package/out/replicache/src/sync/push.js.map +1 -0
  230. package/out/replicache/src/sync/request-id.js +20 -0
  231. package/out/replicache/src/sync/request-id.js.map +1 -0
  232. package/out/replicache/src/sync/sync-head-name.js +5 -0
  233. package/out/replicache/src/sync/sync-head-name.js.map +1 -0
  234. package/out/replicache/src/to-error.js +10 -0
  235. package/out/replicache/src/to-error.js.map +1 -0
  236. package/out/replicache/src/transaction-closed-error.js +19 -0
  237. package/out/replicache/src/transaction-closed-error.js.map +1 -0
  238. package/out/replicache/src/transactions.js +152 -0
  239. package/out/replicache/src/transactions.js.map +1 -0
  240. package/out/replicache/src/version.js +5 -0
  241. package/out/replicache/src/version.js.map +1 -0
  242. package/out/replicache/src/with-transactions.js +28 -0
  243. package/out/replicache/src/with-transactions.js.map +1 -0
  244. package/out/shared/src/abort-error.js +6 -3
  245. package/out/shared/src/abort-error.js.map +1 -1
  246. package/out/shared/src/arrays.js +45 -43
  247. package/out/shared/src/arrays.js.map +1 -1
  248. package/out/shared/src/asserts.js +64 -68
  249. package/out/shared/src/asserts.js.map +1 -1
  250. package/out/shared/src/bigint-json.js +38 -42
  251. package/out/shared/src/bigint-json.js.map +1 -1
  252. package/out/shared/src/binary-search.js +18 -29
  253. package/out/shared/src/binary-search.js.map +1 -1
  254. package/out/shared/src/broadcast-channel.js +24 -0
  255. package/out/shared/src/broadcast-channel.js.map +1 -0
  256. package/out/shared/src/browser-env.js +25 -0
  257. package/out/shared/src/browser-env.js.map +1 -0
  258. package/out/shared/src/btree-set.js +464 -507
  259. package/out/shared/src/btree-set.js.map +1 -1
  260. package/out/shared/src/cache.js +34 -38
  261. package/out/shared/src/cache.js.map +1 -1
  262. package/out/shared/src/centroid.js +24 -24
  263. package/out/shared/src/centroid.js.map +1 -1
  264. package/out/shared/src/config.js +6 -3
  265. package/out/shared/src/config.js.map +1 -1
  266. package/out/shared/src/custom-key-map.js +58 -64
  267. package/out/shared/src/custom-key-map.js.map +1 -1
  268. package/out/shared/src/custom-key-set.js +51 -57
  269. package/out/shared/src/custom-key-set.js.map +1 -1
  270. package/out/shared/src/deep-clone.js +46 -0
  271. package/out/shared/src/deep-clone.js.map +1 -0
  272. package/out/shared/src/deep-merge.d.ts +24 -4
  273. package/out/shared/src/deep-merge.d.ts.map +1 -1
  274. package/out/shared/src/deep-merge.js +27 -0
  275. package/out/shared/src/deep-merge.js.map +1 -0
  276. package/out/shared/src/document-visible.js +74 -0
  277. package/out/shared/src/document-visible.js.map +1 -0
  278. package/out/shared/src/dotenv.js +5 -7
  279. package/out/shared/src/dotenv.js.map +1 -1
  280. package/out/shared/src/error.d.ts +4 -0
  281. package/out/shared/src/error.d.ts.map +1 -0
  282. package/out/shared/src/error.js +71 -0
  283. package/out/shared/src/error.js.map +1 -0
  284. package/out/shared/src/has-own.js +5 -3
  285. package/out/shared/src/has-own.js.map +1 -1
  286. package/out/shared/src/hash.js +15 -14
  287. package/out/shared/src/hash.js.map +1 -1
  288. package/out/shared/src/iterables.js +71 -73
  289. package/out/shared/src/iterables.js.map +1 -1
  290. package/out/shared/src/json-schema.js +30 -33
  291. package/out/shared/src/json-schema.js.map +1 -1
  292. package/out/shared/src/json.js +128 -143
  293. package/out/shared/src/json.js.map +1 -1
  294. package/out/shared/src/logging-test-utils.js +12 -19
  295. package/out/shared/src/logging-test-utils.js.map +1 -1
  296. package/out/shared/src/logging.d.ts.map +1 -1
  297. package/out/shared/src/logging.js +99 -83
  298. package/out/shared/src/logging.js.map +1 -1
  299. package/out/shared/src/must.js +9 -7
  300. package/out/shared/src/must.js.map +1 -1
  301. package/out/shared/src/navigator.js +5 -0
  302. package/out/shared/src/navigator.js.map +1 -0
  303. package/out/shared/src/object-traversal.d.ts +19 -0
  304. package/out/shared/src/object-traversal.d.ts.map +1 -0
  305. package/out/shared/src/object-traversal.js +27 -0
  306. package/out/shared/src/object-traversal.js.map +1 -0
  307. package/out/shared/src/objects.js +21 -22
  308. package/out/shared/src/objects.js.map +1 -1
  309. package/out/shared/src/options.d.ts +3 -1
  310. package/out/shared/src/options.d.ts.map +1 -1
  311. package/out/shared/src/options.js +289 -318
  312. package/out/shared/src/options.js.map +1 -1
  313. package/out/shared/src/parse-big-int.js +12 -10
  314. package/out/shared/src/parse-big-int.js.map +1 -1
  315. package/out/shared/src/promise-race.d.ts +17 -0
  316. package/out/shared/src/promise-race.d.ts.map +1 -0
  317. package/out/shared/src/promise-race.js +20 -0
  318. package/out/shared/src/promise-race.js.map +1 -0
  319. package/out/shared/src/queue.js +119 -122
  320. package/out/shared/src/queue.js.map +1 -1
  321. package/out/shared/src/rand.js +8 -10
  322. package/out/shared/src/rand.js.map +1 -1
  323. package/out/shared/src/random-uint64.js +9 -0
  324. package/out/shared/src/random-uint64.js.map +1 -0
  325. package/out/shared/src/random-values.js +13 -0
  326. package/out/shared/src/random-values.js.map +1 -0
  327. package/out/shared/src/resolved-promises.js +12 -9
  328. package/out/shared/src/resolved-promises.js.map +1 -1
  329. package/out/shared/src/sentinels.js +13 -6
  330. package/out/shared/src/sentinels.js.map +1 -1
  331. package/out/shared/src/set-utils.js +63 -62
  332. package/out/shared/src/set-utils.js.map +1 -1
  333. package/out/shared/src/size-of-value.js +58 -0
  334. package/out/shared/src/size-of-value.js.map +1 -0
  335. package/out/shared/src/sleep.js +45 -53
  336. package/out/shared/src/sleep.js.map +1 -1
  337. package/out/shared/src/string-compare.js +12 -9
  338. package/out/shared/src/string-compare.js.map +1 -1
  339. package/out/shared/src/subscribable.js +34 -0
  340. package/out/shared/src/subscribable.js.map +1 -0
  341. package/out/shared/src/tdigest-schema.js +7 -7
  342. package/out/shared/src/tdigest-schema.js.map +1 -1
  343. package/out/shared/src/tdigest.js +247 -271
  344. package/out/shared/src/tdigest.js.map +1 -1
  345. package/out/shared/src/valita.js +195 -207
  346. package/out/shared/src/valita.js.map +1 -1
  347. package/out/z2s/src/compiler.d.ts +3 -3
  348. package/out/z2s/src/compiler.d.ts.map +1 -1
  349. package/out/z2s/src/compiler.js +438 -311
  350. package/out/z2s/src/compiler.js.map +1 -1
  351. package/out/z2s/src/sql.d.ts +1 -1
  352. package/out/z2s/src/sql.d.ts.map +1 -1
  353. package/out/z2s/src/sql.js +186 -218
  354. package/out/z2s/src/sql.js.map +1 -1
  355. package/out/zero/package.json.js +9 -0
  356. package/out/zero/package.json.js.map +1 -0
  357. package/out/zero/src/adapters/drizzle.js +5 -2
  358. package/out/zero/src/adapters/drizzle.js.map +1 -1
  359. package/out/zero/src/adapters/pg.js +7 -2
  360. package/out/zero/src/adapters/pg.js.map +1 -1
  361. package/out/zero/src/adapters/postgresjs.js +7 -2
  362. package/out/zero/src/adapters/postgresjs.js.map +1 -1
  363. package/out/zero/src/analyze-query.js +1 -1
  364. package/out/zero/src/analyze-query.js.map +1 -1
  365. package/out/zero/src/ast-to-zql.js +1 -1
  366. package/out/zero/src/ast-to-zql.js.map +1 -1
  367. package/out/zero/src/build-schema.js +3 -5
  368. package/out/zero/src/build-schema.js.map +1 -1
  369. package/out/zero/src/change-protocol/v0.js +5 -3
  370. package/out/zero/src/change-protocol/v0.js.map +1 -1
  371. package/out/zero/src/cli.js +2 -2
  372. package/out/zero/src/cli.js.map +1 -1
  373. package/out/zero/src/deploy-permissions.js +1 -1
  374. package/out/zero/src/deploy-permissions.js.map +1 -1
  375. package/out/zero/src/expo-sqlite.js +5 -0
  376. package/out/zero/src/expo-sqlite.js.map +1 -0
  377. package/out/zero/src/op-sqlite.js +5 -0
  378. package/out/zero/src/op-sqlite.js.map +1 -0
  379. package/out/zero/src/pg.js +29 -3
  380. package/out/zero/src/pg.js.map +1 -1
  381. package/out/zero/src/react-native.js +13 -0
  382. package/out/zero/src/react-native.js.map +1 -0
  383. package/out/zero/src/react.js +17 -0
  384. package/out/zero/src/react.js.map +1 -0
  385. package/out/zero/src/server.js +25 -3
  386. package/out/zero/src/server.js.map +1 -1
  387. package/out/zero/src/solid.js +15 -0
  388. package/out/zero/src/solid.js.map +1 -0
  389. package/out/zero/src/sqlite.js +7 -0
  390. package/out/zero/src/sqlite.js.map +1 -0
  391. package/out/zero/src/transform-query.js +1 -1
  392. package/out/zero/src/transform-query.js.map +1 -1
  393. package/out/zero/src/zero-cache-dev.js +133 -105
  394. package/out/zero/src/zero-cache-dev.js.map +1 -1
  395. package/out/zero/src/zero-out.d.ts +3 -0
  396. package/out/zero/src/zero-out.d.ts.map +1 -0
  397. package/out/zero/src/zero-out.js +13 -0
  398. package/out/zero/src/zero-out.js.map +1 -0
  399. package/out/zero/src/zero.js +67 -0
  400. package/out/zero/src/zero.js.map +1 -0
  401. package/out/zero/src/zqlite.js +11 -3
  402. package/out/zero/src/zqlite.js.map +1 -1
  403. package/out/zero-cache/src/auth/jwt.d.ts +3 -0
  404. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
  405. package/out/zero-cache/src/auth/jwt.js +33 -38
  406. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  407. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  408. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  409. package/out/zero-cache/src/auth/load-permissions.js +61 -45
  410. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  411. package/out/zero-cache/src/auth/read-authorizer.js +79 -91
  412. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  413. package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
  414. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  415. package/out/zero-cache/src/auth/write-authorizer.js +387 -328
  416. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  417. package/out/zero-cache/src/config/network.js +42 -45
  418. package/out/zero-cache/src/config/network.js.map +1 -1
  419. package/out/zero-cache/src/config/normalize.js +86 -83
  420. package/out/zero-cache/src/config/normalize.js.map +1 -1
  421. package/out/zero-cache/src/config/zero-config.d.ts +39 -0
  422. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  423. package/out/zero-cache/src/config/zero-config.js +704 -646
  424. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  425. package/out/zero-cache/src/custom/fetch.d.ts +5 -3
  426. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  427. package/out/zero-cache/src/custom/fetch.js +171 -86
  428. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  429. package/out/zero-cache/src/custom-queries/transform-query.d.ts +11 -8
  430. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  431. package/out/zero-cache/src/custom-queries/transform-query.js +101 -108
  432. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  433. package/out/zero-cache/src/db/create.d.ts +4 -0
  434. package/out/zero-cache/src/db/create.d.ts.map +1 -1
  435. package/out/zero-cache/src/db/create.js +33 -39
  436. package/out/zero-cache/src/db/create.js.map +1 -1
  437. package/out/zero-cache/src/db/delete-lite-db.js +9 -6
  438. package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
  439. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  440. package/out/zero-cache/src/db/lite-tables.js +150 -174
  441. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  442. package/out/zero-cache/src/db/migration-lite.js +170 -165
  443. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  444. package/out/zero-cache/src/db/migration.js +157 -137
  445. package/out/zero-cache/src/db/migration.js.map +1 -1
  446. package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
  447. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
  448. package/out/zero-cache/src/db/mode-enum.js +9 -3
  449. package/out/zero-cache/src/db/mode-enum.js.map +1 -1
  450. package/out/zero-cache/src/db/pg-copy.js +51 -90
  451. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  452. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  453. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  454. package/out/zero-cache/src/db/pg-to-lite.js +116 -96
  455. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  456. package/out/zero-cache/src/db/pg-type-parser.js +27 -39
  457. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  458. package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
  459. package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
  460. package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
  461. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
  462. package/out/zero-cache/src/db/specs.d.ts +12 -18
  463. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  464. package/out/zero-cache/src/db/specs.js +66 -40
  465. package/out/zero-cache/src/db/specs.js.map +1 -1
  466. package/out/zero-cache/src/db/statements.d.ts +1 -1
  467. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  468. package/out/zero-cache/src/db/statements.js +59 -52
  469. package/out/zero-cache/src/db/statements.js.map +1 -1
  470. package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
  471. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  472. package/out/zero-cache/src/db/transaction-pool.js +375 -501
  473. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  474. package/out/zero-cache/src/db/warmup.js +25 -12
  475. package/out/zero-cache/src/db/warmup.js.map +1 -1
  476. package/out/zero-cache/src/observability/events.js +71 -82
  477. package/out/zero-cache/src/observability/events.js.map +1 -1
  478. package/out/zero-cache/src/observability/metrics.js +54 -32
  479. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  480. package/out/zero-cache/src/scripts/decommission.d.ts +50 -0
  481. package/out/zero-cache/src/scripts/decommission.d.ts.map +1 -0
  482. package/out/zero-cache/src/scripts/decommission.js +55 -0
  483. package/out/zero-cache/src/scripts/decommission.js.map +1 -0
  484. package/out/zero-cache/src/scripts/deploy-permissions.js +128 -118
  485. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  486. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  487. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  488. package/out/zero-cache/src/scripts/permissions.js +108 -100
  489. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  490. package/out/zero-cache/src/server/anonymous-otel-start.js +410 -366
  491. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  492. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  493. package/out/zero-cache/src/server/change-streamer.js +105 -64
  494. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  495. package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
  496. package/out/zero-cache/src/server/inspector-delegate.js +113 -105
  497. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  498. package/out/zero-cache/src/server/logging.d.ts +1 -1
  499. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  500. package/out/zero-cache/src/server/logging.js +26 -19
  501. package/out/zero-cache/src/server/logging.js.map +1 -1
  502. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  503. package/out/zero-cache/src/server/main.js +137 -120
  504. package/out/zero-cache/src/server/main.js.map +1 -1
  505. package/out/zero-cache/src/server/mutator.js +19 -0
  506. package/out/zero-cache/src/server/mutator.js.map +1 -0
  507. package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
  508. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
  509. package/out/zero-cache/src/server/otel-diag-logger.js +67 -70
  510. package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
  511. package/out/zero-cache/src/server/otel-log-sink.js +40 -41
  512. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  513. package/out/zero-cache/src/server/otel-start.d.ts +1 -1
  514. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  515. package/out/zero-cache/src/server/otel-start.js +57 -68
  516. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  517. package/out/zero-cache/src/server/reaper.js +34 -26
  518. package/out/zero-cache/src/server/reaper.js.map +1 -1
  519. package/out/zero-cache/src/server/replicator.js +53 -31
  520. package/out/zero-cache/src/server/replicator.js.map +1 -1
  521. package/out/zero-cache/src/server/runner/main.js +6 -4
  522. package/out/zero-cache/src/server/runner/main.js.map +1 -1
  523. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  524. package/out/zero-cache/src/server/runner/run-worker.js +46 -50
  525. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  526. package/out/zero-cache/src/server/runner/runtime.js +33 -32
  527. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  528. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  529. package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
  530. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  531. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  532. package/out/zero-cache/src/server/syncer.js +124 -63
  533. package/out/zero-cache/src/server/syncer.js.map +1 -1
  534. package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
  535. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
  536. package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
  537. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  538. package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
  539. package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
  540. package/out/zero-cache/src/server/worker-urls.js +21 -0
  541. package/out/zero-cache/src/server/worker-urls.js.map +1 -0
  542. package/out/zero-cache/src/services/analyze.d.ts +4 -9
  543. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  544. package/out/zero-cache/src/services/analyze.js +104 -120
  545. package/out/zero-cache/src/services/analyze.js.map +1 -1
  546. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  547. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  548. package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
  549. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  550. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
  551. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  552. package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
  553. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  554. package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
  555. package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
  556. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  557. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  558. package/out/zero-cache/src/services/change-source/pg/change-source.js +601 -621
  559. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  560. package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
  561. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  562. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
  563. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  564. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
  565. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  566. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  567. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  568. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
  569. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  570. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
  571. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  572. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
  573. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  574. package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
  575. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  576. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +25 -25
  577. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
  578. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  579. package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
  580. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  581. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +10 -10
  582. package/out/zero-cache/src/services/change-source/pg/schema/published.js +67 -74
  583. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  584. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +5 -5
  585. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
  586. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  587. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
  588. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  589. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
  590. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  591. package/out/zero-cache/src/services/change-source/protocol/current/control.js +9 -19
  592. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  593. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +16 -16
  594. package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
  595. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  596. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +24 -24
  597. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
  598. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  599. package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
  600. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
  601. package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
  602. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  603. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
  604. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  605. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
  606. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  607. package/out/zero-cache/src/services/change-source/protocol/current.js +35 -7
  608. package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
  609. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  610. package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
  611. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  612. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
  613. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
  614. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
  615. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  616. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +14 -4
  617. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  618. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +213 -141
  619. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  620. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  621. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  622. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +235 -349
  623. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  624. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +13 -9
  625. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  626. package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
  627. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  628. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
  629. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
  630. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
  631. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
  632. package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
  633. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  634. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  635. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  636. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
  637. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  638. package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
  639. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  640. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
  641. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  642. package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
  643. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  644. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
  645. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
  646. package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
  647. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
  648. package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
  649. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  650. package/out/zero-cache/src/services/change-streamer/storer.js +309 -353
  651. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  652. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
  653. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  654. package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
  655. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  656. package/out/zero-cache/src/services/heapz.js +21 -25
  657. package/out/zero-cache/src/services/heapz.js.map +1 -1
  658. package/out/zero-cache/src/services/http-service.d.ts +6 -5
  659. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  660. package/out/zero-cache/src/services/http-service.js +61 -59
  661. package/out/zero-cache/src/services/http-service.js.map +1 -1
  662. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  663. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  664. package/out/zero-cache/src/services/life-cycle.js +216 -255
  665. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  666. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
  667. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  668. package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
  669. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  670. package/out/zero-cache/src/services/litestream/commands.js +201 -154
  671. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  672. package/out/zero-cache/src/services/mutagen/error.js +11 -6
  673. package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
  674. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
  675. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  676. package/out/zero-cache/src/services/mutagen/mutagen.js +272 -266
  677. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  678. package/out/zero-cache/src/services/mutagen/pusher.d.ts +221 -25
  679. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  680. package/out/zero-cache/src/services/mutagen/pusher.js +356 -332
  681. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  682. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  683. package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
  684. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  685. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
  686. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  687. package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
  688. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  689. package/out/zero-cache/src/services/replicator/notifier.js +28 -52
  690. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  691. package/out/zero-cache/src/services/replicator/replication-status.js +100 -83
  692. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  693. package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
  694. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  695. package/out/zero-cache/src/services/replicator/replicator.js +33 -26
  696. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  697. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
  698. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  699. package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
  700. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  701. package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
  702. package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
  703. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
  704. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  705. package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
  706. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  707. package/out/zero-cache/src/services/run-ast.d.ts +9 -3
  708. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  709. package/out/zero-cache/src/services/run-ast.js +87 -78
  710. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  711. package/out/zero-cache/src/services/runner.d.ts +1 -1
  712. package/out/zero-cache/src/services/runner.d.ts.map +1 -1
  713. package/out/zero-cache/src/services/runner.js +40 -40
  714. package/out/zero-cache/src/services/runner.js.map +1 -1
  715. package/out/zero-cache/src/services/running-state.d.ts +1 -1
  716. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  717. package/out/zero-cache/src/services/running-state.js +122 -119
  718. package/out/zero-cache/src/services/running-state.js.map +1 -1
  719. package/out/zero-cache/src/services/statz.js +184 -162
  720. package/out/zero-cache/src/services/statz.js.map +1 -1
  721. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +40 -39
  722. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  723. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -1
  724. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  725. package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -294
  726. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  727. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  728. package/out/zero-cache/src/services/view-syncer/client-schema.js +81 -80
  729. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  730. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  731. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +84 -94
  732. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  733. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -8
  734. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  735. package/out/zero-cache/src/services/view-syncer/cvr-store.js +655 -603
  736. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  737. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
  738. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  739. package/out/zero-cache/src/services/view-syncer/cvr.js +633 -693
  740. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  741. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +1 -0
  742. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
  743. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -55
  744. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  745. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
  746. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  747. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
  748. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  749. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +15 -14
  750. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  751. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +535 -449
  752. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  753. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
  754. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  755. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
  756. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  757. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  758. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +57 -122
  759. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  760. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  761. package/out/zero-cache/src/services/view-syncer/schema/init.js +177 -131
  762. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  763. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
  764. package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
  765. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  766. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +3 -3
  767. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  768. package/out/zero-cache/src/services/view-syncer/snapshotter.js +295 -338
  769. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  770. package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
  771. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  772. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +10 -3
  773. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  774. package/out/zero-cache/src/services/view-syncer/view-syncer.js +1510 -1250
  775. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  776. package/out/zero-cache/src/types/error-with-level.d.ts +9 -0
  777. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -0
  778. package/out/zero-cache/src/types/error-with-level.js +33 -0
  779. package/out/zero-cache/src/types/error-with-level.js.map +1 -0
  780. package/out/zero-cache/src/types/http.js +27 -14
  781. package/out/zero-cache/src/types/http.js.map +1 -1
  782. package/out/zero-cache/src/types/lexi-version.js +46 -31
  783. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  784. package/out/zero-cache/src/types/lite.d.ts +15 -13
  785. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  786. package/out/zero-cache/src/types/lite.js +119 -114
  787. package/out/zero-cache/src/types/lite.js.map +1 -1
  788. package/out/zero-cache/src/types/names.js +6 -3
  789. package/out/zero-cache/src/types/names.js.map +1 -1
  790. package/out/zero-cache/src/types/pg-data-type.d.ts +73 -0
  791. package/out/zero-cache/src/types/pg-data-type.d.ts.map +1 -0
  792. package/out/zero-cache/src/types/pg-data-type.js +82 -0
  793. package/out/zero-cache/src/types/pg-data-type.js.map +1 -0
  794. package/out/zero-cache/src/types/pg-types.js +17 -72
  795. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  796. package/out/zero-cache/src/types/pg.d.ts +2 -74
  797. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  798. package/out/zero-cache/src/types/pg.js +212 -309
  799. package/out/zero-cache/src/types/pg.js.map +1 -1
  800. package/out/zero-cache/src/types/processes.d.ts +2 -2
  801. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  802. package/out/zero-cache/src/types/processes.js +95 -143
  803. package/out/zero-cache/src/types/processes.js.map +1 -1
  804. package/out/zero-cache/src/types/profiler.js +29 -30
  805. package/out/zero-cache/src/types/profiler.js.map +1 -1
  806. package/out/zero-cache/src/types/row-key.js +30 -68
  807. package/out/zero-cache/src/types/row-key.js.map +1 -1
  808. package/out/zero-cache/src/types/schema-versions.d.ts +7 -3
  809. package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -1
  810. package/out/zero-cache/src/types/schema-versions.js +26 -18
  811. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  812. package/out/zero-cache/src/types/shards.js +50 -36
  813. package/out/zero-cache/src/types/shards.js.map +1 -1
  814. package/out/zero-cache/src/types/sql.js +9 -13
  815. package/out/zero-cache/src/types/sql.js.map +1 -1
  816. package/out/zero-cache/src/types/streams.d.ts +1 -1
  817. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  818. package/out/zero-cache/src/types/streams.js +246 -245
  819. package/out/zero-cache/src/types/streams.js.map +1 -1
  820. package/out/zero-cache/src/types/strings.js +14 -11
  821. package/out/zero-cache/src/types/strings.js.map +1 -1
  822. package/out/zero-cache/src/types/subscription.d.ts +17 -2
  823. package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
  824. package/out/zero-cache/src/types/subscription.js +202 -225
  825. package/out/zero-cache/src/types/subscription.js.map +1 -1
  826. package/out/zero-cache/src/types/url-params.js +35 -30
  827. package/out/zero-cache/src/types/url-params.js.map +1 -1
  828. package/out/zero-cache/src/types/websocket-handoff.d.ts +7 -6
  829. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  830. package/out/zero-cache/src/types/websocket-handoff.js +68 -74
  831. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  832. package/out/zero-cache/src/types/ws.js +56 -59
  833. package/out/zero-cache/src/types/ws.js.map +1 -1
  834. package/out/zero-cache/src/workers/connect-params.js +44 -40
  835. package/out/zero-cache/src/workers/connect-params.js.map +1 -1
  836. package/out/zero-cache/src/workers/connection.d.ts +6 -1
  837. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  838. package/out/zero-cache/src/workers/connection.js +283 -227
  839. package/out/zero-cache/src/workers/connection.js.map +1 -1
  840. package/out/zero-cache/src/workers/mutator.js +24 -0
  841. package/out/zero-cache/src/workers/mutator.js.map +1 -0
  842. package/out/zero-cache/src/workers/replicator.d.ts +1 -1
  843. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  844. package/out/zero-cache/src/workers/replicator.js +103 -106
  845. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  846. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  847. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +179 -141
  848. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  849. package/out/zero-cache/src/workers/syncer.d.ts +3 -3
  850. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  851. package/out/zero-cache/src/workers/syncer.js +195 -154
  852. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  853. package/out/zero-client/src/client/active-clients-manager.js +199 -0
  854. package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
  855. package/out/zero-client/src/client/bindings.d.ts +43 -0
  856. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  857. package/out/zero-client/src/client/bindings.js +33 -0
  858. package/out/zero-client/src/client/bindings.js.map +1 -0
  859. package/out/zero-client/src/client/client-error-kind-enum.d.ts +14 -6
  860. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  861. package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
  862. package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  863. package/out/zero-client/src/client/connection-manager.d.ts +70 -22
  864. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  865. package/out/zero-client/src/client/connection-manager.js +310 -0
  866. package/out/zero-client/src/client/connection-manager.js.map +1 -0
  867. package/out/zero-client/src/client/connection-status-enum.d.ts +4 -0
  868. package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
  869. package/out/zero-client/src/client/connection-status-enum.js +15 -0
  870. package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
  871. package/out/zero-client/src/client/connection.d.ts +96 -0
  872. package/out/zero-client/src/client/connection.d.ts.map +1 -0
  873. package/out/zero-client/src/client/connection.js +103 -0
  874. package/out/zero-client/src/client/connection.js.map +1 -0
  875. package/out/zero-client/src/client/context.d.ts +9 -10
  876. package/out/zero-client/src/client/context.d.ts.map +1 -1
  877. package/out/zero-client/src/client/context.js +104 -0
  878. package/out/zero-client/src/client/context.js.map +1 -0
  879. package/out/zero-client/src/client/crud.d.ts +8 -6
  880. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  881. package/out/zero-client/src/client/crud.js +225 -0
  882. package/out/zero-client/src/client/crud.js.map +1 -0
  883. package/out/zero-client/src/client/custom.d.ts +48 -25
  884. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  885. package/out/zero-client/src/client/custom.js +128 -0
  886. package/out/zero-client/src/client/custom.js.map +1 -0
  887. package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
  888. package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
  889. package/out/zero-client/src/client/delete-clients-manager.js +71 -0
  890. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
  891. package/out/zero-client/src/client/enable-analytics.js +18 -0
  892. package/out/zero-client/src/client/enable-analytics.js.map +1 -0
  893. package/out/zero-client/src/client/error.d.ts +62 -22
  894. package/out/zero-client/src/client/error.d.ts.map +1 -1
  895. package/out/zero-client/src/client/error.js +148 -0
  896. package/out/zero-client/src/client/error.js.map +1 -0
  897. package/out/zero-client/src/client/http-string.js +11 -0
  898. package/out/zero-client/src/client/http-string.js.map +1 -0
  899. package/out/zero-client/src/client/inspector/client-group.js +27 -0
  900. package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
  901. package/out/zero-client/src/client/inspector/client.js +28 -0
  902. package/out/zero-client/src/client/inspector/client.js.map +1 -0
  903. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  904. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
  905. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  906. package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
  907. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  908. package/out/zero-client/src/client/inspector/inspector.js +54 -0
  909. package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
  910. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  911. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  912. package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
  913. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  914. package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
  915. package/out/zero-client/src/client/inspector/query.js +82 -0
  916. package/out/zero-client/src/client/inspector/query.js.map +1 -0
  917. package/out/zero-client/src/client/ivm-branch.d.ts +6 -6
  918. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  919. package/out/zero-client/src/client/ivm-branch.js +149 -0
  920. package/out/zero-client/src/client/ivm-branch.js.map +1 -0
  921. package/out/zero-client/src/client/keys.js +45 -0
  922. package/out/zero-client/src/client/keys.js.map +1 -0
  923. package/out/zero-client/src/client/log-options.js +60 -0
  924. package/out/zero-client/src/client/log-options.js.map +1 -0
  925. package/out/zero-client/src/client/make-mutate-property.d.ts +43 -0
  926. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
  927. package/out/zero-client/src/client/make-mutate-property.js +38 -0
  928. package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
  929. package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
  930. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
  931. package/out/zero-client/src/client/make-replicache-mutators.js +103 -0
  932. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  933. package/out/zero-client/src/client/metric-name-enum.js +15 -0
  934. package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
  935. package/out/zero-client/src/client/metrics.d.ts +11 -2
  936. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  937. package/out/zero-client/src/client/metrics.js +249 -0
  938. package/out/zero-client/src/client/metrics.js.map +1 -0
  939. package/out/zero-client/src/client/mutation-tracker.d.ts +15 -6
  940. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  941. package/out/zero-client/src/client/mutation-tracker.js +363 -0
  942. package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
  943. package/out/zero-client/src/client/mutator-proxy.d.ts +15 -0
  944. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  945. package/out/zero-client/src/client/mutator-proxy.js +132 -0
  946. package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
  947. package/out/zero-client/src/client/options.d.ts +83 -26
  948. package/out/zero-client/src/client/options.d.ts.map +1 -1
  949. package/out/zero-client/src/client/options.js +11 -0
  950. package/out/zero-client/src/client/options.js.map +1 -0
  951. package/out/zero-client/src/client/query-manager.d.ts +13 -5
  952. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  953. package/out/zero-client/src/client/query-manager.js +377 -0
  954. package/out/zero-client/src/client/query-manager.js.map +1 -0
  955. package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
  956. package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
  957. package/out/zero-client/src/client/reload-error-handler.js +114 -0
  958. package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
  959. package/out/zero-client/src/client/server-option.js +64 -0
  960. package/out/zero-client/src/client/server-option.js.map +1 -0
  961. package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
  962. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  963. package/out/zero-client/src/client/version.js +5 -0
  964. package/out/zero-client/src/client/version.js.map +1 -0
  965. package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
  966. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  967. package/out/zero-client/src/client/zero-poke-handler.js +303 -0
  968. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
  969. package/out/zero-client/src/client/zero-rep.d.ts +6 -3
  970. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  971. package/out/zero-client/src/client/zero-rep.js +72 -0
  972. package/out/zero-client/src/client/zero-rep.js.map +1 -0
  973. package/out/zero-client/src/client/zero.d.ts +125 -25
  974. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  975. package/out/zero-client/src/client/zero.js +1759 -0
  976. package/out/zero-client/src/client/zero.js.map +1 -0
  977. package/out/zero-client/src/mod.d.ts +24 -10
  978. package/out/zero-client/src/mod.d.ts.map +1 -1
  979. package/out/zero-client/src/types/query-result.d.ts +24 -0
  980. package/out/zero-client/src/types/query-result.d.ts.map +1 -0
  981. package/out/zero-client/src/util/nanoid.js +21 -0
  982. package/out/zero-client/src/util/nanoid.js.map +1 -0
  983. package/out/zero-client/src/util/socket.js +7 -0
  984. package/out/zero-client/src/util/socket.js.map +1 -0
  985. package/out/zero-protocol/src/analyze-query-result.d.ts +237 -0
  986. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  987. package/out/zero-protocol/src/analyze-query-result.js +159 -24
  988. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  989. package/out/zero-protocol/src/application-error.d.ts +27 -0
  990. package/out/zero-protocol/src/application-error.d.ts.map +1 -0
  991. package/out/zero-protocol/src/application-error.js +38 -0
  992. package/out/zero-protocol/src/application-error.js.map +1 -0
  993. package/out/zero-protocol/src/ast.d.ts +2 -2
  994. package/out/zero-protocol/src/ast.js +296 -277
  995. package/out/zero-protocol/src/ast.js.map +1 -1
  996. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
  997. package/out/zero-protocol/src/change-desired-queries.js +11 -7
  998. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  999. package/out/zero-protocol/src/client-schema.d.ts +2 -2
  1000. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  1001. package/out/zero-protocol/src/client-schema.js +40 -26
  1002. package/out/zero-protocol/src/client-schema.js.map +1 -1
  1003. package/out/zero-protocol/src/close-connection.js +11 -18
  1004. package/out/zero-protocol/src/close-connection.js.map +1 -1
  1005. package/out/zero-protocol/src/connect.d.ts +4 -4
  1006. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  1007. package/out/zero-protocol/src/connect.js +50 -51
  1008. package/out/zero-protocol/src/connect.js.map +1 -1
  1009. package/out/zero-protocol/src/custom-queries.d.ts +56 -53
  1010. package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
  1011. package/out/zero-protocol/src/custom-queries.js +63 -39
  1012. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  1013. package/out/zero-protocol/src/data.js +9 -4
  1014. package/out/zero-protocol/src/data.js.map +1 -1
  1015. package/out/zero-protocol/src/delete-clients.js +16 -9
  1016. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  1017. package/out/zero-protocol/src/down.d.ts +114 -16
  1018. package/out/zero-protocol/src/down.d.ts.map +1 -1
  1019. package/out/zero-protocol/src/down.js +20 -4
  1020. package/out/zero-protocol/src/down.js.map +1 -1
  1021. package/out/zero-protocol/src/error-kind-enum.d.ts +65 -0
  1022. package/out/zero-protocol/src/error-kind-enum.d.ts.map +1 -1
  1023. package/out/zero-protocol/src/error-kind-enum.js +41 -21
  1024. package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
  1025. package/out/zero-protocol/src/error-origin-enum.d.ts +7 -0
  1026. package/out/zero-protocol/src/error-origin-enum.d.ts.map +1 -0
  1027. package/out/zero-protocol/src/error-origin-enum.js +9 -0
  1028. package/out/zero-protocol/src/error-origin-enum.js.map +1 -0
  1029. package/out/zero-protocol/src/error-origin.d.ts +5 -0
  1030. package/out/zero-protocol/src/error-origin.d.ts.map +1 -0
  1031. package/out/zero-protocol/src/error-reason-enum.d.ts +15 -0
  1032. package/out/zero-protocol/src/error-reason-enum.d.ts.map +1 -0
  1033. package/out/zero-protocol/src/error-reason-enum.js +17 -0
  1034. package/out/zero-protocol/src/error-reason-enum.js.map +1 -0
  1035. package/out/zero-protocol/src/error-reason.d.ts +5 -0
  1036. package/out/zero-protocol/src/error-reason.d.ts.map +1 -0
  1037. package/out/zero-protocol/src/error.d.ts +182 -2
  1038. package/out/zero-protocol/src/error.d.ts.map +1 -1
  1039. package/out/zero-protocol/src/error.js +157 -26
  1040. package/out/zero-protocol/src/error.js.map +1 -1
  1041. package/out/zero-protocol/src/inspect-down.d.ts +318 -18
  1042. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  1043. package/out/zero-protocol/src/inspect-down.js +72 -54
  1044. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  1045. package/out/zero-protocol/src/inspect-up.d.ts +10 -6
  1046. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  1047. package/out/zero-protocol/src/inspect-up.js +39 -26
  1048. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  1049. package/out/zero-protocol/src/mutation-id.d.ts +7 -0
  1050. package/out/zero-protocol/src/mutation-id.d.ts.map +1 -0
  1051. package/out/zero-protocol/src/mutation-id.js +10 -0
  1052. package/out/zero-protocol/src/mutation-id.js.map +1 -0
  1053. package/out/zero-protocol/src/mutation-type-enum.js +7 -3
  1054. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  1055. package/out/zero-protocol/src/mutations-patch.d.ts +6 -3
  1056. package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
  1057. package/out/zero-protocol/src/mutations-patch.js +18 -18
  1058. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  1059. package/out/zero-protocol/src/ping.js +9 -4
  1060. package/out/zero-protocol/src/ping.js.map +1 -1
  1061. package/out/zero-protocol/src/poke.d.ts +2 -0
  1062. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  1063. package/out/zero-protocol/src/poke.js +55 -72
  1064. package/out/zero-protocol/src/poke.js.map +1 -1
  1065. package/out/zero-protocol/src/pong.js +9 -4
  1066. package/out/zero-protocol/src/pong.js.map +1 -1
  1067. package/out/zero-protocol/src/primary-key.js +19 -5
  1068. package/out/zero-protocol/src/primary-key.js.map +1 -1
  1069. package/out/zero-protocol/src/protocol-version.d.ts +2 -2
  1070. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  1071. package/out/zero-protocol/src/protocol-version.js +7 -56
  1072. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  1073. package/out/zero-protocol/src/pull.js +26 -19
  1074. package/out/zero-protocol/src/pull.js.map +1 -1
  1075. package/out/zero-protocol/src/push.d.ts +145 -13
  1076. package/out/zero-protocol/src/push.d.ts.map +1 -1
  1077. package/out/zero-protocol/src/push.js +182 -157
  1078. package/out/zero-protocol/src/push.js.map +1 -1
  1079. package/out/zero-protocol/src/queries-patch.d.ts +3 -3
  1080. package/out/zero-protocol/src/queries-patch.js +29 -22
  1081. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  1082. package/out/zero-protocol/src/query-hash.js +18 -14
  1083. package/out/zero-protocol/src/query-hash.js.map +1 -1
  1084. package/out/zero-protocol/src/row-patch.js +29 -20
  1085. package/out/zero-protocol/src/row-patch.js.map +1 -1
  1086. package/out/zero-protocol/src/up.d.ts +6 -5
  1087. package/out/zero-protocol/src/up.d.ts.map +1 -1
  1088. package/out/zero-protocol/src/up.js +18 -4
  1089. package/out/zero-protocol/src/up.js.map +1 -1
  1090. package/out/zero-protocol/src/version.js +9 -4
  1091. package/out/zero-protocol/src/version.js.map +1 -1
  1092. package/out/zero-react/src/components/inspector.d.ts +5 -3
  1093. package/out/zero-react/src/components/inspector.d.ts.map +1 -1
  1094. package/out/{inspector-IU2HG74I.js → zero-react/src/components/inspector.js} +4 -9
  1095. package/out/zero-react/src/components/inspector.js.map +1 -0
  1096. package/out/{chunk-VZOYWIRW.js → zero-react/src/components/mark-icon.js} +3 -5
  1097. package/out/zero-react/src/components/mark-icon.js.map +1 -0
  1098. package/out/zero-react/src/components/zero-inspector.d.ts +5 -3
  1099. package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
  1100. package/out/zero-react/src/components/zero-inspector.js +44 -0
  1101. package/out/zero-react/src/components/zero-inspector.js.map +1 -0
  1102. package/out/zero-react/src/mod.d.ts +6 -3
  1103. package/out/zero-react/src/mod.d.ts.map +1 -1
  1104. package/out/zero-react/src/use-query.d.ts +11 -28
  1105. package/out/zero-react/src/use-query.d.ts.map +1 -1
  1106. package/out/zero-react/src/use-query.js +286 -0
  1107. package/out/zero-react/src/use-query.js.map +1 -0
  1108. package/out/zero-react/src/use-zero-connection-state.d.ts +9 -0
  1109. package/out/zero-react/src/use-zero-connection-state.d.ts.map +1 -0
  1110. package/out/zero-react/src/use-zero-connection-state.js +14 -0
  1111. package/out/zero-react/src/use-zero-connection-state.js.map +1 -0
  1112. package/out/zero-react/src/use-zero-online.d.ts +2 -0
  1113. package/out/zero-react/src/use-zero-online.d.ts.map +1 -1
  1114. package/out/zero-react/src/use-zero-online.js +14 -0
  1115. package/out/zero-react/src/use-zero-online.js.map +1 -0
  1116. package/out/zero-react/src/zero-provider.d.ts +21 -7
  1117. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  1118. package/out/zero-react/src/zero-provider.js +61 -0
  1119. package/out/zero-react/src/zero-provider.js.map +1 -0
  1120. package/out/zero-schema/src/builder/relationship-builder.js +22 -19
  1121. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  1122. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  1123. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  1124. package/out/zero-schema/src/builder/schema-builder.js +81 -71
  1125. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  1126. package/out/zero-schema/src/builder/table-builder.js +117 -116
  1127. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  1128. package/out/zero-schema/src/compiled-permissions.js +23 -19
  1129. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  1130. package/out/zero-schema/src/name-mapper.js +43 -38
  1131. package/out/zero-schema/src/name-mapper.js.map +1 -1
  1132. package/out/zero-schema/src/permissions.d.ts +9 -9
  1133. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  1134. package/out/{chunk-BJ2CGCME.js → zero-schema/src/permissions.js} +16 -173
  1135. package/out/zero-schema/src/permissions.js.map +1 -0
  1136. package/out/zero-schema/src/schema-config.d.ts +1 -1
  1137. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  1138. package/out/zero-schema/src/schema-config.js +35 -51
  1139. package/out/zero-schema/src/schema-config.js.map +1 -1
  1140. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  1141. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  1142. package/out/zero-server/src/adapters/drizzle.js +84 -97
  1143. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  1144. package/out/zero-server/src/adapters/pg.d.ts +8 -2
  1145. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  1146. package/out/zero-server/src/adapters/pg.js +54 -74
  1147. package/out/zero-server/src/adapters/pg.js.map +1 -1
  1148. package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
  1149. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  1150. package/out/zero-server/src/adapters/postgresjs.js +40 -54
  1151. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  1152. package/out/zero-server/src/custom.d.ts +14 -18
  1153. package/out/zero-server/src/custom.d.ts.map +1 -1
  1154. package/out/zero-server/src/custom.js +185 -105
  1155. package/out/zero-server/src/custom.js.map +1 -1
  1156. package/out/zero-server/src/logging.js +7 -4
  1157. package/out/zero-server/src/logging.js.map +1 -1
  1158. package/out/zero-server/src/mod.d.ts +5 -4
  1159. package/out/zero-server/src/mod.d.ts.map +1 -1
  1160. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  1161. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  1162. package/out/zero-server/src/pg-query-executor.js +20 -0
  1163. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  1164. package/out/zero-server/src/process-mutations.d.ts +11 -15
  1165. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  1166. package/out/zero-server/src/process-mutations.js +341 -163
  1167. package/out/zero-server/src/process-mutations.js.map +1 -1
  1168. package/out/zero-server/src/push-processor.d.ts +5 -3
  1169. package/out/zero-server/src/push-processor.d.ts.map +1 -1
  1170. package/out/zero-server/src/push-processor.js +48 -32
  1171. package/out/zero-server/src/push-processor.js.map +1 -1
  1172. package/out/zero-server/src/queries/process-queries.d.ts +66 -4
  1173. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  1174. package/out/zero-server/src/queries/process-queries.js +101 -27
  1175. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  1176. package/out/zero-server/src/schema.d.ts +2 -2
  1177. package/out/zero-server/src/schema.d.ts.map +1 -1
  1178. package/out/zero-server/src/schema.js +137 -125
  1179. package/out/zero-server/src/schema.js.map +1 -1
  1180. package/out/zero-server/src/zql-database.d.ts +9 -6
  1181. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  1182. package/out/zero-server/src/zql-database.js +68 -51
  1183. package/out/zero-server/src/zql-database.js.map +1 -1
  1184. package/out/zero-solid/src/mod.d.ts +10 -2
  1185. package/out/zero-solid/src/mod.d.ts.map +1 -1
  1186. package/out/zero-solid/src/solid-view.d.ts +3 -23
  1187. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  1188. package/out/{solid.js → zero-solid/src/solid-view.js} +54 -167
  1189. package/out/zero-solid/src/solid-view.js.map +1 -0
  1190. package/out/zero-solid/src/use-query.d.ts +7 -6
  1191. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  1192. package/out/zero-solid/src/use-query.js +57 -0
  1193. package/out/zero-solid/src/use-query.js.map +1 -0
  1194. package/out/zero-solid/src/use-zero-connection-state.d.ts +10 -0
  1195. package/out/zero-solid/src/use-zero-connection-state.d.ts.map +1 -0
  1196. package/out/zero-solid/src/use-zero-connection-state.js +17 -0
  1197. package/out/zero-solid/src/use-zero-connection-state.js.map +1 -0
  1198. package/out/zero-solid/src/use-zero-online.d.ts +1 -7
  1199. package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
  1200. package/out/zero-solid/src/use-zero-online.js +15 -0
  1201. package/out/zero-solid/src/use-zero-online.js.map +1 -0
  1202. package/out/zero-solid/src/use-zero.d.ts +24 -7
  1203. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  1204. package/out/zero-solid/src/use-zero.js +70 -0
  1205. package/out/zero-solid/src/use-zero.js.map +1 -0
  1206. package/out/zero-types/src/default-types.d.ts +38 -0
  1207. package/out/zero-types/src/default-types.d.ts.map +1 -0
  1208. package/out/zero-types/src/format.js +7 -4
  1209. package/out/zero-types/src/format.js.map +1 -1
  1210. package/out/zero-types/src/name-mapper.js +43 -40
  1211. package/out/zero-types/src/name-mapper.js.map +1 -1
  1212. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  1213. package/out/zql/src/builder/builder.d.ts +11 -2
  1214. package/out/zql/src/builder/builder.d.ts.map +1 -1
  1215. package/out/zql/src/builder/builder.js +487 -424
  1216. package/out/zql/src/builder/builder.js.map +1 -1
  1217. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  1218. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  1219. package/out/zql/src/builder/debug-delegate.js +68 -47
  1220. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  1221. package/out/zql/src/builder/filter.js +132 -138
  1222. package/out/zql/src/builder/filter.js.map +1 -1
  1223. package/out/zql/src/builder/like.js +44 -51
  1224. package/out/zql/src/builder/like.js.map +1 -1
  1225. package/out/zql/src/error.d.ts +5 -0
  1226. package/out/zql/src/error.d.ts.map +1 -1
  1227. package/out/zql/src/error.js +18 -6
  1228. package/out/zql/src/error.js.map +1 -1
  1229. package/out/zql/src/ivm/array-view.js +86 -92
  1230. package/out/zql/src/ivm/array-view.js.map +1 -1
  1231. package/out/zql/src/ivm/constraint.js +74 -127
  1232. package/out/zql/src/ivm/constraint.js.map +1 -1
  1233. package/out/zql/src/ivm/data.d.ts +1 -1
  1234. package/out/zql/src/ivm/data.d.ts.map +1 -1
  1235. package/out/zql/src/ivm/data.js +59 -85
  1236. package/out/zql/src/ivm/data.js.map +1 -1
  1237. package/out/zql/src/ivm/exists.js +236 -243
  1238. package/out/zql/src/ivm/exists.js.map +1 -1
  1239. package/out/zql/src/ivm/fan-in.js +50 -51
  1240. package/out/zql/src/ivm/fan-in.js.map +1 -1
  1241. package/out/zql/src/ivm/fan-out.js +48 -50
  1242. package/out/zql/src/ivm/fan-out.js.map +1 -1
  1243. package/out/zql/src/ivm/filter-operators.js +87 -87
  1244. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  1245. package/out/zql/src/ivm/filter-push.d.ts +1 -1
  1246. package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
  1247. package/out/zql/src/ivm/filter-push.js +26 -23
  1248. package/out/zql/src/ivm/filter-push.js.map +1 -1
  1249. package/out/zql/src/ivm/filter.js +30 -32
  1250. package/out/zql/src/ivm/filter.js.map +1 -1
  1251. package/out/zql/src/ivm/flipped-join.js +343 -326
  1252. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  1253. package/out/zql/src/ivm/join-utils.js +85 -79
  1254. package/out/zql/src/ivm/join-utils.js.map +1 -1
  1255. package/out/zql/src/ivm/join.js +287 -207
  1256. package/out/zql/src/ivm/join.js.map +1 -1
  1257. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
  1258. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  1259. package/out/zql/src/ivm/memory-source.d.ts +4 -4
  1260. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  1261. package/out/zql/src/ivm/memory-source.js +471 -489
  1262. package/out/zql/src/ivm/memory-source.js.map +1 -1
  1263. package/out/zql/src/ivm/memory-storage.js +32 -31
  1264. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  1265. package/out/zql/src/ivm/operator.js +8 -9
  1266. package/out/zql/src/ivm/operator.js.map +1 -1
  1267. package/out/zql/src/ivm/push-accumulated.js +236 -305
  1268. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  1269. package/out/zql/src/ivm/skip.js +92 -106
  1270. package/out/zql/src/ivm/skip.js.map +1 -1
  1271. package/out/zql/src/ivm/source.d.ts +4 -2
  1272. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1273. package/out/zql/src/ivm/stream.js +20 -16
  1274. package/out/zql/src/ivm/stream.js.map +1 -1
  1275. package/out/zql/src/ivm/take.d.ts +1 -1
  1276. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1277. package/out/zql/src/ivm/take.js +502 -456
  1278. package/out/zql/src/ivm/take.js.map +1 -1
  1279. package/out/zql/src/ivm/union-fan-in.js +156 -134
  1280. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1281. package/out/zql/src/ivm/union-fan-out.js +46 -45
  1282. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1283. package/out/zql/src/ivm/view-apply-change.js +246 -216
  1284. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1285. package/out/zql/src/ivm/view.d.ts +3 -2
  1286. package/out/zql/src/ivm/view.d.ts.map +1 -1
  1287. package/out/zql/src/mutate/custom.d.ts +26 -11
  1288. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  1289. package/out/zql/src/mutate/custom.js +15 -7
  1290. package/out/zql/src/mutate/custom.js.map +1 -1
  1291. package/out/zql/src/mutate/mutator-registry.d.ts +93 -0
  1292. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
  1293. package/out/zql/src/mutate/mutator-registry.js +93 -0
  1294. package/out/zql/src/mutate/mutator-registry.js.map +1 -0
  1295. package/out/zql/src/mutate/mutator.d.ts +79 -0
  1296. package/out/zql/src/mutate/mutator.d.ts.map +1 -0
  1297. package/out/zql/src/mutate/mutator.js +31 -0
  1298. package/out/zql/src/mutate/mutator.js.map +1 -0
  1299. package/out/zql/src/planner/planner-builder.d.ts +15 -0
  1300. package/out/zql/src/planner/planner-builder.d.ts.map +1 -0
  1301. package/out/zql/src/planner/planner-builder.js +271 -0
  1302. package/out/zql/src/planner/planner-builder.js.map +1 -0
  1303. package/out/zql/src/planner/planner-connection.d.ts +124 -0
  1304. package/out/zql/src/planner/planner-connection.d.ts.map +1 -0
  1305. package/out/zql/src/planner/planner-connection.js +215 -0
  1306. package/out/zql/src/planner/planner-connection.js.map +1 -0
  1307. package/out/zql/src/planner/planner-constraint.d.ts +14 -0
  1308. package/out/zql/src/planner/planner-constraint.d.ts.map +1 -0
  1309. package/out/zql/src/planner/planner-constraint.js +9 -0
  1310. package/out/zql/src/planner/planner-constraint.js.map +1 -0
  1311. package/out/zql/src/planner/planner-debug.d.ts +143 -0
  1312. package/out/zql/src/planner/planner-debug.d.ts.map +1 -0
  1313. package/out/zql/src/planner/planner-debug.js +242 -0
  1314. package/out/zql/src/planner/planner-debug.js.map +1 -0
  1315. package/out/zql/src/planner/planner-fan-in.d.ts +39 -0
  1316. package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -0
  1317. package/out/zql/src/planner/planner-fan-in.js +165 -0
  1318. package/out/zql/src/planner/planner-fan-in.js.map +1 -0
  1319. package/out/zql/src/planner/planner-fan-out.d.ts +23 -0
  1320. package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -0
  1321. package/out/zql/src/planner/planner-fan-out.js +76 -0
  1322. package/out/zql/src/planner/planner-fan-out.js.map +1 -0
  1323. package/out/zql/src/planner/planner-graph.d.ts +102 -0
  1324. package/out/zql/src/planner/planner-graph.d.ts.map +1 -0
  1325. package/out/zql/src/planner/planner-graph.js +346 -0
  1326. package/out/zql/src/planner/planner-graph.js.map +1 -0
  1327. package/out/zql/src/planner/planner-join.d.ts +140 -0
  1328. package/out/zql/src/planner/planner-join.d.ts.map +1 -0
  1329. package/out/zql/src/planner/planner-join.js +244 -0
  1330. package/out/zql/src/planner/planner-join.js.map +1 -0
  1331. package/out/zql/src/planner/planner-node.d.ts +53 -0
  1332. package/out/zql/src/planner/planner-node.d.ts.map +1 -0
  1333. package/out/zql/src/planner/planner-node.js +8 -0
  1334. package/out/zql/src/planner/planner-node.js.map +1 -0
  1335. package/out/zql/src/planner/planner-source.d.ts +11 -0
  1336. package/out/zql/src/planner/planner-source.d.ts.map +1 -0
  1337. package/out/zql/src/planner/planner-source.js +24 -0
  1338. package/out/zql/src/planner/planner-source.js.map +1 -0
  1339. package/out/zql/src/planner/planner-terminus.d.ts +17 -0
  1340. package/out/zql/src/planner/planner-terminus.d.ts.map +1 -0
  1341. package/out/zql/src/planner/planner-terminus.js +29 -0
  1342. package/out/zql/src/planner/planner-terminus.js.map +1 -0
  1343. package/out/zql/src/query/complete-ordering.d.ts +5 -0
  1344. package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
  1345. package/out/zql/src/query/complete-ordering.js +71 -0
  1346. package/out/zql/src/query/complete-ordering.js.map +1 -0
  1347. package/out/zql/src/query/create-builder.d.ts +7 -0
  1348. package/out/zql/src/query/create-builder.d.ts.map +1 -0
  1349. package/out/zql/src/query/create-builder.js +44 -0
  1350. package/out/zql/src/query/create-builder.js.map +1 -0
  1351. package/out/zql/src/query/error.d.ts +4 -0
  1352. package/out/zql/src/query/error.d.ts.map +1 -0
  1353. package/out/zql/src/query/error.js +13 -0
  1354. package/out/zql/src/query/error.js.map +1 -0
  1355. package/out/zql/src/query/escape-like.js +7 -0
  1356. package/out/zql/src/query/escape-like.js.map +1 -0
  1357. package/out/zql/src/query/expression.d.ts +5 -5
  1358. package/out/zql/src/query/expression.d.ts.map +1 -1
  1359. package/out/zql/src/query/expression.js +153 -151
  1360. package/out/zql/src/query/expression.js.map +1 -1
  1361. package/out/zql/src/query/measure-push-operator.js +42 -35
  1362. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1363. package/out/zql/src/query/metrics-delegate.js +9 -5
  1364. package/out/zql/src/query/metrics-delegate.js.map +1 -1
  1365. package/out/zql/src/query/named.d.ts +21 -12
  1366. package/out/zql/src/query/named.d.ts.map +1 -1
  1367. package/out/zql/src/query/named.js +47 -57
  1368. package/out/zql/src/query/named.js.map +1 -1
  1369. package/out/zql/src/query/query-delegate-base.d.ts +114 -0
  1370. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  1371. package/out/zql/src/query/query-delegate-base.js +120 -0
  1372. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  1373. package/out/zql/src/query/query-delegate.d.ts +30 -7
  1374. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1375. package/out/zql/src/query/query-impl.d.ts +29 -50
  1376. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1377. package/out/zql/src/query/query-impl.js +514 -453
  1378. package/out/zql/src/query/query-impl.js.map +1 -1
  1379. package/out/zql/src/query/query-internals.d.ts +68 -0
  1380. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  1381. package/out/zql/src/query/query-internals.js +11 -0
  1382. package/out/zql/src/query/query-internals.js.map +1 -0
  1383. package/out/zql/src/query/query-registry.d.ts +163 -0
  1384. package/out/zql/src/query/query-registry.d.ts.map +1 -0
  1385. package/out/zql/src/query/query-registry.js +123 -0
  1386. package/out/zql/src/query/query-registry.js.map +1 -0
  1387. package/out/zql/src/query/query.d.ts +54 -250
  1388. package/out/zql/src/query/query.d.ts.map +1 -1
  1389. package/out/zql/src/query/schema-query.d.ts +6 -0
  1390. package/out/zql/src/query/schema-query.d.ts.map +1 -0
  1391. package/out/zql/src/query/static-query.d.ts +7 -16
  1392. package/out/zql/src/query/static-query.d.ts.map +1 -1
  1393. package/out/zql/src/query/static-query.js +44 -31
  1394. package/out/zql/src/query/static-query.js.map +1 -1
  1395. package/out/zql/src/query/ttl.js +69 -62
  1396. package/out/zql/src/query/ttl.js.map +1 -1
  1397. package/out/zql/src/query/typed-view.d.ts +1 -1
  1398. package/out/zql/src/query/typed-view.d.ts.map +1 -1
  1399. package/out/zql/src/query/validate-input.d.ts +15 -0
  1400. package/out/zql/src/query/validate-input.d.ts.map +1 -0
  1401. package/out/zql/src/query/validate-input.js +24 -0
  1402. package/out/zql/src/query/validate-input.js.map +1 -0
  1403. package/out/zqlite/src/database-storage.d.ts +1 -1
  1404. package/out/zqlite/src/database-storage.d.ts.map +1 -1
  1405. package/out/zqlite/src/database-storage.js +99 -102
  1406. package/out/zqlite/src/database-storage.js.map +1 -1
  1407. package/out/zqlite/src/db.d.ts +2 -1
  1408. package/out/zqlite/src/db.d.ts.map +1 -1
  1409. package/out/zqlite/src/db.js +241 -192
  1410. package/out/zqlite/src/db.js.map +1 -1
  1411. package/out/zqlite/src/explain-queries.js +13 -16
  1412. package/out/zqlite/src/explain-queries.js.map +1 -1
  1413. package/out/zqlite/src/internal/sql.js +15 -10
  1414. package/out/zqlite/src/internal/sql.js.map +1 -1
  1415. package/out/zqlite/src/internal/statement-cache.js +86 -110
  1416. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1417. package/out/zqlite/src/query-builder.js +172 -143
  1418. package/out/zqlite/src/query-builder.js.map +1 -1
  1419. package/out/zqlite/src/query-delegate.d.ts +6 -20
  1420. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  1421. package/out/zqlite/src/query-delegate.js +56 -70
  1422. package/out/zqlite/src/query-delegate.js.map +1 -1
  1423. package/out/zqlite/src/sqlite-cost-model.d.ts +17 -0
  1424. package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -0
  1425. package/out/zqlite/src/sqlite-cost-model.js +110 -0
  1426. package/out/zqlite/src/sqlite-cost-model.js.map +1 -0
  1427. package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
  1428. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
  1429. package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
  1430. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  1431. package/out/zqlite/src/table-source.d.ts +10 -5
  1432. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1433. package/out/zqlite/src/table-source.js +424 -311
  1434. package/out/zqlite/src/table-source.js.map +1 -1
  1435. package/package.json +30 -29
  1436. package/out/chunk-424PT5DM.js +0 -23
  1437. package/out/chunk-424PT5DM.js.map +0 -7
  1438. package/out/chunk-4RB4OYLQ.js +0 -4125
  1439. package/out/chunk-4RB4OYLQ.js.map +0 -7
  1440. package/out/chunk-AFADJQ2O.js +0 -1
  1441. package/out/chunk-AFADJQ2O.js.map +0 -7
  1442. package/out/chunk-ASRS2LFV.js.map +0 -7
  1443. package/out/chunk-BJ2CGCME.js.map +0 -7
  1444. package/out/chunk-ECUMGQGC.js.map +0 -7
  1445. package/out/chunk-EZM3XBAB.js.map +0 -7
  1446. package/out/chunk-MXPHMVU7.js +0 -16350
  1447. package/out/chunk-MXPHMVU7.js.map +0 -7
  1448. package/out/chunk-VZOYWIRW.js.map +0 -7
  1449. package/out/chunk-ZZXMKAAG.js.map +0 -7
  1450. package/out/expo-sqlite.js +0 -11
  1451. package/out/expo-sqlite.js.map +0 -7
  1452. package/out/inspector-IU2HG74I.js.map +0 -7
  1453. package/out/lazy-inspector-2SW772W4.js +0 -574
  1454. package/out/lazy-inspector-2SW772W4.js.map +0 -7
  1455. package/out/op-sqlite.js.map +0 -7
  1456. package/out/react-native.js +0 -25
  1457. package/out/react-native.js.map +0 -7
  1458. package/out/react.js +0 -448
  1459. package/out/react.js.map +0 -7
  1460. package/out/shared/src/enum.js +0 -2
  1461. package/out/shared/src/enum.js.map +0 -1
  1462. package/out/shared/src/expand.js +0 -2
  1463. package/out/shared/src/expand.js.map +0 -1
  1464. package/out/shared/src/immutable.js +0 -2
  1465. package/out/shared/src/immutable.js.map +0 -1
  1466. package/out/shared/src/types.js +0 -2
  1467. package/out/shared/src/types.js.map +0 -1
  1468. package/out/shared/src/writable.js +0 -2
  1469. package/out/shared/src/writable.js.map +0 -1
  1470. package/out/solid.js.map +0 -7
  1471. package/out/sqlite.js +0 -15
  1472. package/out/sqlite.js.map +0 -7
  1473. package/out/zero/package.json +0 -192
  1474. package/out/zero/src/server/change-streamer.js +0 -2
  1475. package/out/zero/src/server/change-streamer.js.map +0 -1
  1476. package/out/zero/src/server/main.js +0 -2
  1477. package/out/zero/src/server/main.js.map +0 -1
  1478. package/out/zero/src/server/reaper.js +0 -2
  1479. package/out/zero/src/server/reaper.js.map +0 -1
  1480. package/out/zero/src/server/replicator.js +0 -2
  1481. package/out/zero/src/server/replicator.js.map +0 -1
  1482. package/out/zero/src/server/runner/main.js +0 -2
  1483. package/out/zero/src/server/runner/main.js.map +0 -1
  1484. package/out/zero/src/server/syncer.js +0 -2
  1485. package/out/zero/src/server/syncer.js.map +0 -1
  1486. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
  1487. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
  1488. package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
  1489. package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
  1490. package/out/zero-cache/src/services/service.js +0 -2
  1491. package/out/zero-cache/src/services/service.js.map +0 -1
  1492. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
  1493. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
  1494. package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -73
  1495. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
  1496. package/out/zero-cache/src/types/error-for-client.d.ts +0 -23
  1497. package/out/zero-cache/src/types/error-for-client.d.ts.map +0 -1
  1498. package/out/zero-cache/src/types/error-for-client.js +0 -28
  1499. package/out/zero-cache/src/types/error-for-client.js.map +0 -1
  1500. package/out/zero-cache/src/types/satisfies.js +0 -2
  1501. package/out/zero-cache/src/types/satisfies.js.map +0 -1
  1502. package/out/zero-client/src/client/on-error.d.ts +0 -15
  1503. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  1504. package/out/zero-client/src/client/ping-result-enum.d.ts +0 -5
  1505. package/out/zero-client/src/client/ping-result-enum.d.ts.map +0 -1
  1506. package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
  1507. package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
  1508. package/out/zero-events/src/index.js +0 -2
  1509. package/out/zero-events/src/index.js.map +0 -1
  1510. package/out/zero-events/src/json.js +0 -2
  1511. package/out/zero-events/src/json.js.map +0 -1
  1512. package/out/zero-events/src/status.js +0 -3
  1513. package/out/zero-events/src/status.js.map +0 -1
  1514. package/out/zero-pg/src/mod.js +0 -6
  1515. package/out/zero-pg/src/mod.js.map +0 -1
  1516. package/out/zero-protocol/src/error-kind.js +0 -3
  1517. package/out/zero-protocol/src/error-kind.js.map +0 -1
  1518. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  1519. package/out/zero-schema/src/server-schema.js +0 -2
  1520. package/out/zero-schema/src/server-schema.js.map +0 -1
  1521. package/out/zero-schema/src/table-schema.js +0 -7
  1522. package/out/zero-schema/src/table-schema.js.map +0 -1
  1523. package/out/zero-server/src/mod.js +0 -8
  1524. package/out/zero-server/src/mod.js.map +0 -1
  1525. package/out/zero-server/src/query.d.ts +0 -22
  1526. package/out/zero-server/src/query.d.ts.map +0 -1
  1527. package/out/zero-server/src/query.js +0 -61
  1528. package/out/zero-server/src/query.js.map +0 -1
  1529. package/out/zero-types/src/schema-value.js +0 -2
  1530. package/out/zero-types/src/schema-value.js.map +0 -1
  1531. package/out/zero-types/src/schema.js +0 -2
  1532. package/out/zero-types/src/schema.js.map +0 -1
  1533. package/out/zero.js +0 -69
  1534. package/out/zero.js.map +0 -7
  1535. package/out/zql/src/ivm/change.js +0 -2
  1536. package/out/zql/src/ivm/change.js.map +0 -1
  1537. package/out/zql/src/ivm/default-format.js +0 -2
  1538. package/out/zql/src/ivm/default-format.js.map +0 -1
  1539. package/out/zql/src/ivm/schema.js +0 -2
  1540. package/out/zql/src/ivm/schema.js.map +0 -1
  1541. package/out/zql/src/ivm/source.js +0 -2
  1542. package/out/zql/src/ivm/source.js.map +0 -1
  1543. package/out/zql/src/ivm/view.js +0 -2
  1544. package/out/zql/src/ivm/view.js.map +0 -1
  1545. package/out/zql/src/query/query-delegate.js +0 -2
  1546. package/out/zql/src/query/query-delegate.js.map +0 -1
  1547. package/out/zql/src/query/query.js +0 -9
  1548. package/out/zql/src/query/query.js.map +0 -1
  1549. package/out/zql/src/query/typed-view.js +0 -2
  1550. package/out/zql/src/query/typed-view.js.map +0 -1
  1551. package/out/zqlite/src/mod.js +0 -5
  1552. package/out/zqlite/src/mod.js.map +0 -1
  1553. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sources":["../../../../../../zero-client/src/client/inspector/query.ts"],"sourcesContent":["import {astToZQL} from '../../../../ast-to-zql/src/ast-to-zql.ts';\nimport type {ReadonlyJSONValue} from '../../../../shared/src/json.ts';\nimport {must} from '../../../../shared/src/must.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 const details =\n this.name && this.args\n ? {\n name: this.name,\n args: this.args,\n }\n : {value: must(this.#serverAST, 'AST is required for unnamed queries')};\n\n return rpc(\n await this.#socket(),\n {\n op: 'analyze-query',\n ...details,\n options,\n },\n inspectAnalyzeQueryDownSchema,\n );\n }\n}\n"],"names":["percentile"],"mappings":";;;;;AAmBO,MAAM,MAAM;AAAA,EACR;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YACE,KACA,UACA,QACA;AACA,SAAK,UAAU;AAEf,UAAM,EAAC,KAAK,SAAS,cAAA,IAAiB;AAItC,SAAK,WAAW,IAAI;AACpB,SAAK,KAAK;AACV,SAAK,gBACH,kBAAkB,OAAO,OAAO,IAAI,KAAK,aAAa;AACxD,SAAK,MAAM,aAAa,IAAI,GAAG;AAC/B,SAAK,OAAO,IAAI;AAChB,SAAK,OAAO,IAAI;AAChB,SAAK,MAAM,IAAI;AACf,SAAK,WAAW,IAAI;AACpB,SAAK,UAAU,IAAI;AACnB,SAAK,aAAa;AAClB,SAAK,YAAY,MAAM,IAAI,QAAQ,SAAS,GAAG,IAAI;AACnD,UAAM,YAAY,SAAS,OAAO,OAAO;AACzC,SAAK,YAAY,YAAY,UAAU,QAAQ,SAAS,SAAS,IAAI;AAGrE,UAAM,gBAAgB,SAAS,gBAAgB,OAAO;AACtD,UAAM,gBAAgB,IAAI;AAE1B,UAAM,SAAS,aAAa,eAAe,aAAa;AACxD,SAAK,UAAU;AAEf,UAAM,aAAa,CACjB,MACAA,gBACkB;AAClB,UAAI,CAAC,SAAS,IAAI,GAAG;AACnB,eAAO;AAAA,MACT;AACA,YAAM,IAAI,OAAO,IAAI,EAAE,SAASA,WAAU;AAC1C,aAAO,OAAO,MAAM,CAAC,IAAI,OAAO;AAAA,IAClC;AAGA,SAAK,gBAAgB,WAAW,gCAAgC,GAAG;AACnE,SAAK,gBAAgB,WAAW,gCAAgC,GAAG;AACnE,SAAK,eAAe,WAAW,oCAAoC,GAAG;AAGtE,SAAK,kBAAkB,WAAW,uBAAuB,GAAG;AAC5D,SAAK,kBAAkB,WAAW,uBAAuB,IAAI;AAE7D,SAAK,kBAAkB,WAAW,uBAAuB,GAAG;AAC5D,SAAK,kBAAkB,WAAW,uBAAuB,IAAI;AAAA,EAC/D;AAAA,EAEA,MAAM,QAAQ,SAA4D;AACxE,UAAM,UACJ,KAAK,QAAQ,KAAK,OACd;AAAA,MACE,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,IAAA,IAEb,EAAC,OAAO,KAAK,KAAK,YAAY,qCAAqC,EAAA;AAEzE,WAAO;AAAA,MACL,MAAM,KAAK,QAAA;AAAA,MACX;AAAA,QACE,IAAI;AAAA,QACJ,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,MAEF;AAAA,IAAA;AAAA,EAEJ;AACF;"}
@@ -1,10 +1,10 @@
1
- import { MemorySource } from '../../../zql/src/ivm/memory-source.ts';
2
- import type { TableSchema } from '../../../zero-schema/src/table-schema.ts';
1
+ import type { NoIndexDiff } from '../../../replicache/src/btree/node.ts';
2
+ import type { LazyStore } from '../../../replicache/src/dag/lazy-store.ts';
3
3
  import { type Store } from '../../../replicache/src/dag/store.ts';
4
4
  import type { Hash } from '../../../replicache/src/hash.ts';
5
- import type { NoIndexDiff } from '../../../replicache/src/btree/node.ts';
6
5
  import type { ZeroReadOptions } from '../../../replicache/src/replicache-options.ts';
7
- import type { LazyStore } from '../../../replicache/src/dag/lazy-store.ts';
6
+ import type { TableSchema } from '../../../zero-schema/src/table-schema.ts';
7
+ import { MemorySource } from '../../../zql/src/ivm/memory-source.ts';
8
8
  /**
9
9
  * Replicache needs to rebase mutations onto different
10
10
  * commits of it's b-tree. These mutations can have reads
@@ -24,7 +24,7 @@ import type { LazyStore } from '../../../replicache/src/dag/lazy-store.ts';
24
24
  export declare class IVMSourceBranch {
25
25
  #private;
26
26
  hash: Hash | undefined;
27
- constructor(tables: Record<string, TableSchema>, hash?: Hash | undefined, sources?: Map<string, MemorySource | undefined>);
27
+ constructor(tables: Record<string, TableSchema>, hash?: Hash, sources?: Map<string, MemorySource | undefined>);
28
28
  getSource(name: string): MemorySource | undefined;
29
29
  clear(): void;
30
30
  /**
@@ -35,7 +35,7 @@ export declare class IVMSourceBranch {
35
35
  /**
36
36
  * Fork the branch and patch it up to match the desired head.
37
37
  */
38
- forkToHead(store: LazyStore, desiredHead: Hash, readOptions?: ZeroReadOptions | undefined): Promise<IVMSourceBranch>;
38
+ forkToHead(store: LazyStore, desiredHead: Hash, readOptions?: ZeroReadOptions): Promise<IVMSourceBranch>;
39
39
  /**
40
40
  * Creates a new IVMSourceBranch that is a copy of the current one.
41
41
  * This is a cheap operation since the b-trees are shared until a write is performed
@@ -1 +1 @@
1
- {"version":3,"file":"ivm-branch.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/ivm-branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,uCAAuC,CAAC;AACnE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAY,KAAK,KAAK,EAAC,MAAM,sCAAsC,CAAC;AAE3E,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,iCAAiC,CAAC;AAO1D,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,+CAA+C,CAAC;AACnF,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,2CAA2C,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;;IAG1B,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;gBAGrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,EACvB,OAAO,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAa;IAO5D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAajD,KAAK;IAIL;;;OAGG;IACH,OAAO,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW;IAWzE;;OAEG;IACG,UAAU,CACd,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,IAAI,EACjB,WAAW,CAAC,EAAE,eAAe,GAAG,SAAS,GACxC,OAAO,CAAC,eAAe,CAAC;IAY3B;;;;;;;OAOG;IACH,IAAI;CAYL;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,iBAkBb"}
1
+ {"version":3,"file":"ivm-branch.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/ivm-branch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAY,KAAK,KAAK,EAAC,MAAM,sCAAsC,CAAC;AAG3E,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,+CAA+C,CAAC;AASnF,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAC,YAAY,EAAC,MAAM,uCAAuC,CAAC;AAGnE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;;IAG1B,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;gBAGrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,IAAI,CAAC,EAAE,IAAI,EACX,OAAO,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAa;IAO5D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAajD,KAAK;IAIL;;;OAGG;IACH,OAAO,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW;IAWzE;;OAEG;IACG,UAAU,CACd,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,IAAI,EACjB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,eAAe,CAAC;IAY3B;;;;;;;OAOG;IACH,IAAI;CAYL;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,iBAkBb"}
@@ -0,0 +1,149 @@
1
+ import { assert } from "../../../shared/src/asserts.js";
2
+ import "../../../shared/src/config.js";
3
+ import "../../../replicache/src/hash.js";
4
+ import "../../../replicache/src/btree/node.js";
5
+ import { Latest } from "../../../replicache/src/format-version-enum.js";
6
+ import { diffBinarySearch } from "../../../replicache/src/subscriptions.js";
7
+ import { diff } from "../../../replicache/src/sync/diff.js";
8
+ import { using, withRead } from "../../../replicache/src/with-transactions.js";
9
+ import { wrapIterable } from "../../../shared/src/iterables.js";
10
+ import { must } from "../../../shared/src/must.js";
11
+ import { MemorySource } from "../../../zql/src/ivm/memory-source.js";
12
+ import { ENTITIES_KEY_PREFIX, sourceNameFromKey } from "./keys.js";
13
+ class IVMSourceBranch {
14
+ #sources;
15
+ #tables;
16
+ hash;
17
+ constructor(tables, hash, sources = /* @__PURE__ */ new Map()) {
18
+ this.#tables = tables;
19
+ this.#sources = sources;
20
+ this.hash = hash;
21
+ }
22
+ getSource(name) {
23
+ if (this.#sources.has(name)) {
24
+ return this.#sources.get(name);
25
+ }
26
+ const schema = this.#tables[name];
27
+ const source = schema ? new MemorySource(name, schema.columns, schema.primaryKey) : void 0;
28
+ this.#sources.set(name, source);
29
+ return source;
30
+ }
31
+ clear() {
32
+ this.#sources.clear();
33
+ }
34
+ /**
35
+ * Mutates the current branch, advancing it to the new head
36
+ * by applying the given diffs.
37
+ */
38
+ advance(expectedHead, newHead, diffs) {
39
+ assert(
40
+ this.hash === expectedHead,
41
+ () => `Expected head must match the main head. Got: ${this.hash}, expected: ${expectedHead}`
42
+ );
43
+ applyDiffs(diffs, this);
44
+ this.hash = newHead;
45
+ }
46
+ /**
47
+ * Fork the branch and patch it up to match the desired head.
48
+ */
49
+ async forkToHead(store, desiredHead, readOptions) {
50
+ const fork = this.fork();
51
+ if (fork.hash === desiredHead) {
52
+ return fork;
53
+ }
54
+ await patchBranch(desiredHead, store, fork, readOptions);
55
+ fork.hash = desiredHead;
56
+ return fork;
57
+ }
58
+ /**
59
+ * Creates a new IVMSourceBranch that is a copy of the current one.
60
+ * This is a cheap operation since the b-trees are shared until a write is performed
61
+ * and then only the modified nodes are copied.
62
+ *
63
+ * IVM branches are forked when we need to rebase mutations.
64
+ * The mutations modify the fork rather than original branch.
65
+ */
66
+ fork() {
67
+ return new IVMSourceBranch(
68
+ this.#tables,
69
+ this.hash,
70
+ new Map(
71
+ wrapIterable(this.#sources.entries()).map(([name, source]) => [
72
+ name,
73
+ source?.fork()
74
+ ])
75
+ )
76
+ );
77
+ }
78
+ }
79
+ async function patchBranch(desiredHead, store, fork, readOptions) {
80
+ const diffs = await computeDiffs(
81
+ must(fork.hash),
82
+ desiredHead,
83
+ store,
84
+ readOptions
85
+ );
86
+ if (!diffs) {
87
+ return;
88
+ }
89
+ applyDiffs(diffs, fork);
90
+ }
91
+ async function computeDiffs(startHash, endHash, store, readOptions) {
92
+ const readFn = (dagRead) => diff(
93
+ startHash,
94
+ endHash,
95
+ dagRead,
96
+ {
97
+ shouldComputeDiffs: () => true,
98
+ shouldComputeDiffsForIndex(_name) {
99
+ return false;
100
+ }
101
+ },
102
+ Latest
103
+ );
104
+ let diffs;
105
+ if (readOptions?.openLazySourceRead) {
106
+ diffs = await using(store.read(readOptions.openLazySourceRead), readFn);
107
+ } else if (readOptions?.openLazyRead) {
108
+ diffs = await readFn(readOptions.openLazyRead);
109
+ } else {
110
+ diffs = await withRead(store, readFn);
111
+ }
112
+ return diffs.get("");
113
+ }
114
+ function applyDiffs(diffs, branch) {
115
+ for (let i = diffBinarySearch(diffs, ENTITIES_KEY_PREFIX, (diff2) => diff2.key); i < diffs.length; i++) {
116
+ const diff2 = diffs[i];
117
+ const { key } = diff2;
118
+ if (!key.startsWith(ENTITIES_KEY_PREFIX)) {
119
+ break;
120
+ }
121
+ const name = sourceNameFromKey(key);
122
+ const source = must(branch.getSource(name));
123
+ switch (diff2.op) {
124
+ case "del":
125
+ source.push({
126
+ type: "remove",
127
+ row: diff2.oldValue
128
+ });
129
+ break;
130
+ case "add":
131
+ source.push({
132
+ type: "add",
133
+ row: diff2.newValue
134
+ });
135
+ break;
136
+ case "change":
137
+ source.push({
138
+ type: "edit",
139
+ row: diff2.newValue,
140
+ oldRow: diff2.oldValue
141
+ });
142
+ break;
143
+ }
144
+ }
145
+ }
146
+ export {
147
+ IVMSourceBranch
148
+ };
149
+ //# sourceMappingURL=ivm-branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ivm-branch.js","sources":["../../../../../zero-client/src/client/ivm-branch.ts"],"sourcesContent":["import type {\n InternalDiff,\n InternalDiffOperation,\n NoIndexDiff,\n} from '../../../replicache/src/btree/node.ts';\nimport type {LazyStore} from '../../../replicache/src/dag/lazy-store.ts';\nimport {type Read, type Store} 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 type {Hash} from '../../../replicache/src/hash.ts';\nimport type {ZeroReadOptions} from '../../../replicache/src/replicache-options.ts';\nimport {diffBinarySearch} from '../../../replicache/src/subscriptions.ts';\nimport type {DiffsMap} from '../../../replicache/src/sync/diff.ts';\nimport {diff} from '../../../replicache/src/sync/diff.ts';\nimport {using, withRead} from '../../../replicache/src/with-transactions.ts';\nimport {assert} from '../../../shared/src/asserts.ts';\nimport {wrapIterable} from '../../../shared/src/iterables.ts';\nimport {must} from '../../../shared/src/must.ts';\nimport type {Row} from '../../../zero-protocol/src/data.ts';\nimport type {TableSchema} from '../../../zero-schema/src/table-schema.ts';\nimport {MemorySource} from '../../../zql/src/ivm/memory-source.ts';\nimport {ENTITIES_KEY_PREFIX, sourceNameFromKey} from './keys.ts';\n\n/**\n * Replicache needs to rebase mutations onto different\n * commits of it's b-tree. These mutations can have reads\n * in them and those reads must be run against the IVM sources.\n *\n * To ensure the reads get the correct state, the IVM\n * sources need to reflect the state of the commit\n * being rebased onto. `IVMSourceBranch` allows us to:\n * 1. fork the IVM sources\n * 2. patch them up to match the desired head\n * 3. run the reads against the forked sources\n *\n * (2) is expected to be a cheap operation as there should only\n * ever be a few outstanding diffs to apply given Zero is meant\n * to be run in a connected state.\n */\nexport class IVMSourceBranch {\n readonly #sources: Map<string, MemorySource | undefined>;\n readonly #tables: Record<string, TableSchema>;\n hash: Hash | undefined;\n\n constructor(\n tables: Record<string, TableSchema>,\n hash?: Hash,\n sources: Map<string, MemorySource | undefined> = new Map(),\n ) {\n this.#tables = tables;\n this.#sources = sources;\n this.hash = hash;\n }\n\n getSource(name: string): MemorySource | undefined {\n if (this.#sources.has(name)) {\n return this.#sources.get(name);\n }\n\n const schema = this.#tables[name];\n const source = schema\n ? new MemorySource(name, schema.columns, schema.primaryKey)\n : undefined;\n this.#sources.set(name, source);\n return source;\n }\n\n clear() {\n this.#sources.clear();\n }\n\n /**\n * Mutates the current branch, advancing it to the new head\n * by applying the given diffs.\n */\n advance(expectedHead: Hash | undefined, newHead: Hash, diffs: NoIndexDiff) {\n assert(\n this.hash === expectedHead,\n () =>\n `Expected head must match the main head. Got: ${this.hash}, expected: ${expectedHead}`,\n );\n\n applyDiffs(diffs, this);\n this.hash = newHead;\n }\n\n /**\n * Fork the branch and patch it up to match the desired head.\n */\n async forkToHead(\n store: LazyStore,\n desiredHead: Hash,\n readOptions?: ZeroReadOptions,\n ): Promise<IVMSourceBranch> {\n const fork = this.fork();\n\n if (fork.hash === desiredHead) {\n return fork;\n }\n\n await patchBranch(desiredHead, store, fork, readOptions);\n fork.hash = desiredHead;\n return fork;\n }\n\n /**\n * Creates a new IVMSourceBranch that is a copy of the current one.\n * This is a cheap operation since the b-trees are shared until a write is performed\n * and then only the modified nodes are copied.\n *\n * IVM branches are forked when we need to rebase mutations.\n * The mutations modify the fork rather than original branch.\n */\n fork() {\n return new IVMSourceBranch(\n this.#tables,\n this.hash,\n new Map(\n wrapIterable(this.#sources.entries()).map(([name, source]) => [\n name,\n source?.fork(),\n ]),\n ),\n );\n }\n}\n\nexport async function initFromStore(\n branch: IVMSourceBranch,\n hash: Hash,\n store: Store,\n) {\n const diffs: InternalDiffOperation[] = [];\n await withRead(store, async dagRead => {\n const read = await readFromHash(hash, dagRead, FormatVersion.Latest);\n for await (const entry of read.map.scan(ENTITIES_KEY_PREFIX)) {\n if (!entry[0].startsWith(ENTITIES_KEY_PREFIX)) {\n break;\n }\n diffs.push({\n op: 'add',\n key: entry[0],\n newValue: entry[1],\n });\n }\n });\n\n branch.advance(undefined, hash, diffs);\n}\n\nasync function patchBranch(\n desiredHead: Hash,\n store: LazyStore,\n fork: IVMSourceBranch,\n readOptions: ZeroReadOptions | undefined,\n) {\n const diffs = await computeDiffs(\n must(fork.hash),\n desiredHead,\n store,\n readOptions,\n );\n if (!diffs) {\n return;\n }\n applyDiffs(diffs, fork);\n}\n\nasync function computeDiffs(\n startHash: Hash,\n endHash: Hash,\n store: LazyStore,\n readOptions: ZeroReadOptions | undefined,\n): Promise<InternalDiff | undefined> {\n const readFn = (dagRead: Read) =>\n diff(\n startHash,\n endHash,\n dagRead,\n {\n shouldComputeDiffs: () => true,\n shouldComputeDiffsForIndex(_name) {\n return false;\n },\n },\n FormatVersion.Latest,\n );\n\n let diffs: DiffsMap;\n if (readOptions?.openLazySourceRead) {\n diffs = await using(store.read(readOptions.openLazySourceRead), readFn);\n } else if (readOptions?.openLazyRead) {\n diffs = await readFn(readOptions.openLazyRead);\n } else {\n diffs = await withRead(store, readFn);\n }\n\n return diffs.get('');\n}\n\nfunction applyDiffs(diffs: NoIndexDiff, branch: IVMSourceBranch) {\n for (\n let i = diffBinarySearch(diffs, ENTITIES_KEY_PREFIX, diff => diff.key);\n i < diffs.length;\n i++\n ) {\n const diff = diffs[i];\n const {key} = diff;\n if (!key.startsWith(ENTITIES_KEY_PREFIX)) {\n break;\n }\n const name = sourceNameFromKey(key);\n const source = must(branch.getSource(name));\n switch (diff.op) {\n case 'del':\n source.push({\n type: 'remove',\n row: diff.oldValue as Row,\n });\n break;\n case 'add':\n source.push({\n type: 'add',\n row: diff.newValue as Row,\n });\n break;\n case 'change':\n source.push({\n type: 'edit',\n row: diff.newValue as Row,\n oldRow: diff.oldValue as Row,\n });\n break;\n }\n }\n}\n"],"names":["FormatVersion.Latest","diff"],"mappings":";;;;;;;;;;;;AAuCO,MAAM,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,EACT;AAAA,EAEA,YACE,QACA,MACA,UAAiD,oBAAI,OACrD;AACA,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,UAAU,MAAwC;AAChD,QAAI,KAAK,SAAS,IAAI,IAAI,GAAG;AAC3B,aAAO,KAAK,SAAS,IAAI,IAAI;AAAA,IAC/B;AAEA,UAAM,SAAS,KAAK,QAAQ,IAAI;AAChC,UAAM,SAAS,SACX,IAAI,aAAa,MAAM,OAAO,SAAS,OAAO,UAAU,IACxD;AACJ,SAAK,SAAS,IAAI,MAAM,MAAM;AAC9B,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ;AACN,SAAK,SAAS,MAAA;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,cAAgC,SAAe,OAAoB;AACzE;AAAA,MACE,KAAK,SAAS;AAAA,MACd,MACE,gDAAgD,KAAK,IAAI,eAAe,YAAY;AAAA,IAAA;AAGxF,eAAW,OAAO,IAAI;AACtB,SAAK,OAAO;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WACJ,OACA,aACA,aAC0B;AAC1B,UAAM,OAAO,KAAK,KAAA;AAElB,QAAI,KAAK,SAAS,aAAa;AAC7B,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,aAAa,OAAO,MAAM,WAAW;AACvD,SAAK,OAAO;AACZ,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO;AACL,WAAO,IAAI;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,IAAI;AAAA,QACF,aAAa,KAAK,SAAS,QAAA,CAAS,EAAE,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM;AAAA,UAC5D;AAAA,UACA,QAAQ,KAAA;AAAA,QAAK,CACd;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAyBA,eAAe,YACb,aACA,OACA,MACA,aACA;AACA,QAAM,QAAQ,MAAM;AAAA,IAClB,KAAK,KAAK,IAAI;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,MAAI,CAAC,OAAO;AACV;AAAA,EACF;AACA,aAAW,OAAO,IAAI;AACxB;AAEA,eAAe,aACb,WACA,SACA,OACA,aACmC;AACnC,QAAM,SAAS,CAAC,YACd;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,oBAAoB,MAAM;AAAA,MAC1B,2BAA2B,OAAO;AAChC,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,IAEFA;AAAAA,EAAc;AAGlB,MAAI;AACJ,MAAI,aAAa,oBAAoB;AACnC,YAAQ,MAAM,MAAM,MAAM,KAAK,YAAY,kBAAkB,GAAG,MAAM;AAAA,EACxE,WAAW,aAAa,cAAc;AACpC,YAAQ,MAAM,OAAO,YAAY,YAAY;AAAA,EAC/C,OAAO;AACL,YAAQ,MAAM,SAAS,OAAO,MAAM;AAAA,EACtC;AAEA,SAAO,MAAM,IAAI,EAAE;AACrB;AAEA,SAAS,WAAW,OAAoB,QAAyB;AAC/D,WACM,IAAI,iBAAiB,OAAO,qBAAqB,CAAAC,UAAQA,MAAK,GAAG,GACrE,IAAI,MAAM,QACV,KACA;AACA,UAAMA,QAAO,MAAM,CAAC;AACpB,UAAM,EAAC,QAAOA;AACd,QAAI,CAAC,IAAI,WAAW,mBAAmB,GAAG;AACxC;AAAA,IACF;AACA,UAAM,OAAO,kBAAkB,GAAG;AAClC,UAAM,SAAS,KAAK,OAAO,UAAU,IAAI,CAAC;AAC1C,YAAQA,MAAK,IAAA;AAAA,MACX,KAAK;AACH,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,KAAKA,MAAK;AAAA,QAAA,CACX;AACD;AAAA,MACF,KAAK;AACH,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,KAAKA,MAAK;AAAA,QAAA,CACX;AACD;AAAA,MACF,KAAK;AACH,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,KAAKA,MAAK;AAAA,UACV,QAAQA,MAAK;AAAA,QAAA,CACd;AACD;AAAA,IAAA;AAAA,EAEN;AACF;"}
@@ -0,0 +1,45 @@
1
+ import { h128 } from "../../../shared/src/hash.js";
2
+ import { parse } from "../../../shared/src/valita.js";
3
+ import { primaryKeyValueSchema } from "../../../zero-protocol/src/primary-key.js";
4
+ const DESIRED_QUERIES_KEY_PREFIX = "d/";
5
+ const GOT_QUERIES_KEY_PREFIX = "g/";
6
+ const ENTITIES_KEY_PREFIX = "e/";
7
+ const MUTATIONS_KEY_PREFIX = "m/";
8
+ function toDesiredQueriesKey(clientID, hash) {
9
+ return DESIRED_QUERIES_KEY_PREFIX + clientID + "/" + hash;
10
+ }
11
+ function desiredQueriesPrefixForClient(clientID) {
12
+ return DESIRED_QUERIES_KEY_PREFIX + clientID + "/";
13
+ }
14
+ function toGotQueriesKey(hash) {
15
+ return GOT_QUERIES_KEY_PREFIX + hash;
16
+ }
17
+ function toMutationResponseKey(mid) {
18
+ return MUTATIONS_KEY_PREFIX + mid.clientID + "/" + mid.id;
19
+ }
20
+ function toPrimaryKeyString(tableName, primaryKey, value) {
21
+ if (primaryKey.length === 1) {
22
+ return ENTITIES_KEY_PREFIX + tableName + "/" + parse(value[primaryKey[0]], primaryKeyValueSchema);
23
+ }
24
+ const values = primaryKey.map((k) => parse(value[k], primaryKeyValueSchema));
25
+ const str = JSON.stringify(values);
26
+ const idSegment = h128(str);
27
+ return ENTITIES_KEY_PREFIX + tableName + "/" + idSegment;
28
+ }
29
+ function sourceNameFromKey(key) {
30
+ const slash = key.indexOf("/", ENTITIES_KEY_PREFIX.length);
31
+ return key.slice(ENTITIES_KEY_PREFIX.length, slash);
32
+ }
33
+ export {
34
+ DESIRED_QUERIES_KEY_PREFIX,
35
+ ENTITIES_KEY_PREFIX,
36
+ GOT_QUERIES_KEY_PREFIX,
37
+ MUTATIONS_KEY_PREFIX,
38
+ desiredQueriesPrefixForClient,
39
+ sourceNameFromKey,
40
+ toDesiredQueriesKey,
41
+ toGotQueriesKey,
42
+ toMutationResponseKey,
43
+ toPrimaryKeyString
44
+ };
45
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sources":["../../../../../zero-client/src/client/keys.ts"],"sourcesContent":["import {h128} from '../../../shared/src/hash.ts';\nimport * as v from '../../../shared/src/valita.ts';\nimport type {CompoundKey} from '../../../zero-protocol/src/ast.ts';\nimport type {Row} from '../../../zero-protocol/src/data.ts';\nimport {primaryKeyValueSchema} from '../../../zero-protocol/src/primary-key.ts';\nimport type {MutationID} from '../../../zero-protocol/src/push.ts';\n\nexport const DESIRED_QUERIES_KEY_PREFIX = 'd/';\nexport const GOT_QUERIES_KEY_PREFIX = 'g/';\nexport const ENTITIES_KEY_PREFIX = 'e/';\nexport const MUTATIONS_KEY_PREFIX = 'm/';\n\nexport function toDesiredQueriesKey(clientID: string, hash: string): string {\n return DESIRED_QUERIES_KEY_PREFIX + clientID + '/' + hash;\n}\n\nexport function desiredQueriesPrefixForClient(clientID: string): string {\n return DESIRED_QUERIES_KEY_PREFIX + clientID + '/';\n}\n\nexport function toGotQueriesKey(hash: string): string {\n return GOT_QUERIES_KEY_PREFIX + hash;\n}\n\nexport function toMutationResponseKey(mid: MutationID): string {\n return MUTATIONS_KEY_PREFIX + mid.clientID + '/' + mid.id;\n}\n\nexport function toPrimaryKeyString(\n tableName: string,\n primaryKey: CompoundKey,\n value: Row,\n): string {\n if (primaryKey.length === 1) {\n return (\n ENTITIES_KEY_PREFIX +\n tableName +\n '/' +\n v.parse(value[primaryKey[0]], primaryKeyValueSchema)\n );\n }\n\n const values = primaryKey.map(k => v.parse(value[k], primaryKeyValueSchema));\n const str = JSON.stringify(values);\n\n const idSegment = h128(str);\n return ENTITIES_KEY_PREFIX + tableName + '/' + idSegment;\n}\n\nexport function sourceNameFromKey(key: string): string {\n const slash = key.indexOf('/', ENTITIES_KEY_PREFIX.length);\n return key.slice(ENTITIES_KEY_PREFIX.length, slash);\n}\n"],"names":["v.parse"],"mappings":";;;AAOO,MAAM,6BAA6B;AACnC,MAAM,yBAAyB;AAC/B,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAE7B,SAAS,oBAAoB,UAAkB,MAAsB;AAC1E,SAAO,6BAA6B,WAAW,MAAM;AACvD;AAEO,SAAS,8BAA8B,UAA0B;AACtE,SAAO,6BAA6B,WAAW;AACjD;AAEO,SAAS,gBAAgB,MAAsB;AACpD,SAAO,yBAAyB;AAClC;AAEO,SAAS,sBAAsB,KAAyB;AAC7D,SAAO,uBAAuB,IAAI,WAAW,MAAM,IAAI;AACzD;AAEO,SAAS,mBACd,WACA,YACA,OACQ;AACR,MAAI,WAAW,WAAW,GAAG;AAC3B,WACE,sBACA,YACA,MACAA,MAAQ,MAAM,WAAW,CAAC,CAAC,GAAG,qBAAqB;AAAA,EAEvD;AAEA,QAAM,SAAS,WAAW,IAAI,CAAA,MAAKA,MAAQ,MAAM,CAAC,GAAG,qBAAqB,CAAC;AAC3E,QAAM,MAAM,KAAK,UAAU,MAAM;AAEjC,QAAM,YAAY,KAAK,GAAG;AAC1B,SAAO,sBAAsB,YAAY,MAAM;AACjD;AAEO,SAAS,kBAAkB,KAAqB;AACrD,QAAM,QAAQ,IAAI,QAAQ,KAAK,oBAAoB,MAAM;AACzD,SAAO,IAAI,MAAM,oBAAoB,QAAQ,KAAK;AACpD;"}
@@ -0,0 +1,60 @@
1
+ import { consoleLogSink, TeeLogSink } from "@rocicorp/logger";
2
+ import { DatadogLogSink } from "../../../datadog/src/datadog-log-sink.js";
3
+ import { appendPath } from "./http-string.js";
4
+ import { version } from "./version.js";
5
+ class LevelFilterLogSink {
6
+ #wrappedLogSink;
7
+ #level;
8
+ constructor(wrappedLogSink, level) {
9
+ this.#wrappedLogSink = wrappedLogSink;
10
+ this.#level = level;
11
+ }
12
+ log(level, context, ...args) {
13
+ if (this.#level === "error" && level !== "error") {
14
+ return;
15
+ }
16
+ if (this.#level === "info" && level === "debug") {
17
+ return;
18
+ }
19
+ this.#wrappedLogSink.log(level, context, ...args);
20
+ }
21
+ async flush() {
22
+ await consoleLogSink.flush?.();
23
+ }
24
+ }
25
+ const DATADOG_LOG_LEVEL = "info";
26
+ const ZERO_SASS_DOMAIN = ".reflect-server.net";
27
+ function createLogOptions(options, createDatadogLogSink = (options2) => new DatadogLogSink(options2)) {
28
+ const { consoleLogLevel, server, enableAnalytics } = options;
29
+ if (!enableAnalytics || server === null) {
30
+ return {
31
+ logLevel: consoleLogLevel,
32
+ logSink: consoleLogSink
33
+ };
34
+ }
35
+ const serverURL = new URL(server);
36
+ const { hostname } = serverURL;
37
+ const datadogServiceLabel = hostname.endsWith(ZERO_SASS_DOMAIN) ? hostname.substring(0, hostname.length - ZERO_SASS_DOMAIN.length).toLowerCase() : hostname;
38
+ const baseURL = new URL(appendPath(server, "/logs/v0/log"));
39
+ const logLevel = consoleLogLevel === "debug" ? "debug" : "info";
40
+ const logSink = new TeeLogSink([
41
+ new LevelFilterLogSink(consoleLogSink, consoleLogLevel),
42
+ new LevelFilterLogSink(
43
+ createDatadogLogSink({
44
+ service: datadogServiceLabel,
45
+ host: location.host,
46
+ version,
47
+ baseURL
48
+ }),
49
+ DATADOG_LOG_LEVEL
50
+ )
51
+ ]);
52
+ return {
53
+ logLevel,
54
+ logSink
55
+ };
56
+ }
57
+ export {
58
+ createLogOptions
59
+ };
60
+ //# sourceMappingURL=log-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-options.js","sources":["../../../../../zero-client/src/client/log-options.ts"],"sourcesContent":["import {\n TeeLogSink,\n consoleLogSink,\n type Context,\n type LogLevel,\n type LogSink,\n} from '@rocicorp/logger';\nimport {\n DatadogLogSink,\n type DatadogLogSinkOptions,\n} from '../../../datadog/src/datadog-log-sink.ts';\nimport {appendPath, type HTTPString} from './http-string.ts';\nimport {version} from './version.ts';\n\nclass LevelFilterLogSink implements LogSink {\n readonly #wrappedLogSink: LogSink;\n readonly #level: LogLevel;\n\n constructor(wrappedLogSink: LogSink, level: LogLevel) {\n this.#wrappedLogSink = wrappedLogSink;\n this.#level = level;\n }\n\n log(level: LogLevel, context: Context | undefined, ...args: unknown[]): void {\n if (this.#level === 'error' && level !== 'error') {\n return;\n }\n if (this.#level === 'info' && level === 'debug') {\n return;\n }\n this.#wrappedLogSink.log(level, context, ...args);\n }\n\n async flush() {\n await consoleLogSink.flush?.();\n }\n}\n\nconst DATADOG_LOG_LEVEL = 'info';\nconst ZERO_SASS_DOMAIN = '.reflect-server.net';\n\nexport type LogOptions = {\n readonly logLevel: LogLevel;\n readonly logSink: LogSink;\n};\n\nexport function createLogOptions(\n options: {\n consoleLogLevel: LogLevel;\n server: HTTPString | null;\n enableAnalytics: boolean;\n },\n createDatadogLogSink: (options: DatadogLogSinkOptions) => LogSink = (\n options: DatadogLogSinkOptions,\n ) => new DatadogLogSink(options),\n): LogOptions {\n const {consoleLogLevel, server, enableAnalytics} = options;\n\n if (!enableAnalytics || server === null) {\n return {\n logLevel: consoleLogLevel,\n logSink: consoleLogSink,\n };\n }\n\n const serverURL = new URL(server);\n const {hostname} = serverURL;\n const datadogServiceLabel = hostname.endsWith(ZERO_SASS_DOMAIN)\n ? hostname\n .substring(0, hostname.length - ZERO_SASS_DOMAIN.length)\n .toLowerCase()\n : hostname;\n const baseURL = new URL(appendPath(server, '/logs/v0/log'));\n const logLevel = consoleLogLevel === 'debug' ? 'debug' : 'info';\n const logSink = new TeeLogSink([\n new LevelFilterLogSink(consoleLogSink, consoleLogLevel),\n new LevelFilterLogSink(\n createDatadogLogSink({\n service: datadogServiceLabel,\n host: location.host,\n version,\n baseURL,\n }),\n DATADOG_LOG_LEVEL,\n ),\n ]);\n return {\n logLevel,\n logSink,\n };\n}\n"],"names":["options"],"mappings":";;;;AAcA,MAAM,mBAAsC;AAAA,EACjC;AAAA,EACA;AAAA,EAET,YAAY,gBAAyB,OAAiB;AACpD,SAAK,kBAAkB;AACvB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,OAAiB,YAAiC,MAAuB;AAC3E,QAAI,KAAK,WAAW,WAAW,UAAU,SAAS;AAChD;AAAA,IACF;AACA,QAAI,KAAK,WAAW,UAAU,UAAU,SAAS;AAC/C;AAAA,IACF;AACA,SAAK,gBAAgB,IAAI,OAAO,SAAS,GAAG,IAAI;AAAA,EAClD;AAAA,EAEA,MAAM,QAAQ;AACZ,UAAM,eAAe,QAAA;AAAA,EACvB;AACF;AAEA,MAAM,oBAAoB;AAC1B,MAAM,mBAAmB;AAOlB,SAAS,iBACd,SAKA,uBAAoE,CAClEA,aACG,IAAI,eAAeA,QAAO,GACnB;AACZ,QAAM,EAAC,iBAAiB,QAAQ,gBAAA,IAAmB;AAEnD,MAAI,CAAC,mBAAmB,WAAW,MAAM;AACvC,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EAEb;AAEA,QAAM,YAAY,IAAI,IAAI,MAAM;AAChC,QAAM,EAAC,aAAY;AACnB,QAAM,sBAAsB,SAAS,SAAS,gBAAgB,IAC1D,SACG,UAAU,GAAG,SAAS,SAAS,iBAAiB,MAAM,EACtD,gBACH;AACJ,QAAM,UAAU,IAAI,IAAI,WAAW,QAAQ,cAAc,CAAC;AAC1D,QAAM,WAAW,oBAAoB,UAAU,UAAU;AACzD,QAAM,UAAU,IAAI,WAAW;AAAA,IAC7B,IAAI,mBAAmB,gBAAgB,eAAe;AAAA,IACtD,IAAI;AAAA,MACF,qBAAqB;AAAA,QACnB,SAAS;AAAA,QACT,MAAM,SAAS;AAAA,QACf;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACD;AAAA,IAAA;AAAA,EACF,CACD;AACD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,43 @@
1
+ import type { DeepMerge } from '../../../shared/src/deep-merge.ts';
2
+ import type { Schema } from '../../../zero-types/src/schema.ts';
3
+ import { type Transaction } from '../../../zql/src/mutate/custom.ts';
4
+ import type { AnyMutatorRegistry } from '../../../zql/src/mutate/mutator-registry.ts';
5
+ import { type MutatorDefinition } from '../../../zql/src/mutate/mutator.ts';
6
+ import type { DBMutator } from './crud.ts';
7
+ import type { CustomMutatorDefs, MutatorResult } from './custom.ts';
8
+ import type { MutatorProxy } from './mutator-proxy.ts';
9
+ /**
10
+ * Creates and populates a mutate property object by processing mutator definitions recursively.
11
+ *
12
+ * This function traverses through mutator definitions (either schema-based or custom) and builds
13
+ * a corresponding object structure where each mutator is wrapped by the mutator proxy. It handles
14
+ * both flat mutator functions and nested mutator definition objects.
15
+ *
16
+ * @template S - The schema type that defines the structure of the data
17
+ * @template C - The context type used by mutators, defaults to unknown
18
+ *
19
+ * @param mutators - The mutator definitions to process, can be schema-based or custom mutator definitions
20
+ * @param mutatorProxy - The proxy object responsible for wrapping mutators with additional functionality
21
+ * @param mutateObject - The target object to populate with wrapped mutators
22
+ * @param replicacheMutate - The source object containing the actual mutator implementations to wrap
23
+ *
24
+ * @returns void - This function mutates the mutateObject parameter directly
25
+ *
26
+ * @remarks
27
+ * The function recursively processes nested mutator structures, creating corresponding nested objects
28
+ * in the mutateObject. For leaf mutators (functions or mutator definitions), it generates a full key
29
+ * using different separators ('.' for mutator definitions, '|' for custom functions) and wraps them
30
+ * using the mutator proxy.
31
+ */
32
+ export declare function makeMutateProperty(mutators: AnyMutatorRegistry | CustomMutatorDefs, mutatorProxy: MutatorProxy, mutateObject: Record<string, unknown>, replicacheMutate: Record<string, unknown>): void;
33
+ /**
34
+ * Builds the mutate type from mutator definitions, handling arbitrary nesting.
35
+ * Each node can be either a MutatorDefinition or a CustomMutatorImpl function,
36
+ * or a namespace containing more mutators.
37
+ */
38
+ type MakeFromMutatorDefinitions<S extends Schema, MD extends AnyMutatorRegistry | CustomMutatorDefs, C> = {
39
+ readonly [K in keyof MD]: MD[K] extends MutatorDefinition<infer TInput, any, S, C, any> ? [TInput] extends [undefined] ? () => MutatorResult : undefined extends TInput ? (args?: TInput) => MutatorResult : (args: TInput) => MutatorResult : MD[K] extends (tx: Transaction<S>, ...args: infer Args) => Promise<void> ? (...args: Args) => MutatorResult : MD[K] extends AnyMutatorRegistry | CustomMutatorDefs ? MakeFromMutatorDefinitions<S, MD[K], C> : never;
40
+ };
41
+ export type MakeMutatePropertyType<S extends Schema, MD extends AnyMutatorRegistry | CustomMutatorDefs | undefined, C> = MD extends AnyMutatorRegistry ? {} : MD extends AnyMutatorRegistry | CustomMutatorDefs ? S['enableLegacyMutators'] extends false ? MakeFromMutatorDefinitions<S, MD, C> : DeepMerge<DBMutator<S>, MakeFromMutatorDefinitions<S, MD, C>> : DBMutator<S>;
42
+ export {};
43
+ //# sourceMappingURL=make-mutate-property.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-mutate-property.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/make-mutate-property.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAEjE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,EAChD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,IAAI,CAwCN;AAED;;;;GAIG;AACH,KAAK,0BAA0B,CAC7B,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,kBAAkB,GAAG,iBAAiB,EACjD,CAAC,IACC;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,iBAAiB,CACvD,MAAM,MAAM,EAEZ,GAAG,EACH,CAAC,EACD,CAAC,EAED,GAAG,CACJ,GACG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAC1B,MAAM,aAAa,GACnB,SAAS,SAAS,MAAM,GACtB,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,aAAa,GAChC,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GACnC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GACtE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,GAChC,EAAE,CAAC,CAAC,CAAC,SAAS,kBAAkB,GAAG,iBAAiB,GAClD,0BAA0B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACvC,KAAK;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,kBAAkB,GAAG,iBAAiB,GAAG,SAAS,EAC7D,CAAC,IACC,EAAE,SAAS,kBAAkB,GAE7B,EAAE,GACF,EAAE,SAAS,kBAAkB,GAAG,iBAAiB,GAC/C,CAAC,CAAC,sBAAsB,CAAC,SAAS,KAAK,GACrC,0BAA0B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAC/D,SAAS,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { must } from "../../../shared/src/must.js";
2
+ import { customMutatorKey } from "../../../zql/src/mutate/custom.js";
3
+ import { isMutator } from "../../../zql/src/mutate/mutator.js";
4
+ function makeMutateProperty(mutators, mutatorProxy, mutateObject, replicacheMutate) {
5
+ const processMutators = (mutators2, path, mutateObject2) => {
6
+ for (const [key, mutator] of Object.entries(mutators2)) {
7
+ path.push(key);
8
+ let fullKey;
9
+ if (isMutator(mutator)) {
10
+ fullKey = customMutatorKey(".", path);
11
+ } else if (typeof mutator === "function") {
12
+ fullKey = customMutatorKey("|", path);
13
+ }
14
+ if (fullKey) {
15
+ mutateObject2[key] = mutatorProxy.wrapCustomMutator(
16
+ must(replicacheMutate[fullKey])
17
+ );
18
+ } else {
19
+ let existing = mutateObject2[key];
20
+ if (existing === void 0) {
21
+ existing = {};
22
+ mutateObject2[key] = existing;
23
+ }
24
+ processMutators(
25
+ mutator,
26
+ path,
27
+ existing
28
+ );
29
+ }
30
+ path.pop();
31
+ }
32
+ };
33
+ processMutators(mutators, [], mutateObject);
34
+ }
35
+ export {
36
+ makeMutateProperty
37
+ };
38
+ //# sourceMappingURL=make-mutate-property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-mutate-property.js","sources":["../../../../../zero-client/src/client/make-mutate-property.ts"],"sourcesContent":["import type {DeepMerge} from '../../../shared/src/deep-merge.ts';\nimport {must} from '../../../shared/src/must.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport {\n customMutatorKey,\n type Transaction,\n} from '../../../zql/src/mutate/custom.ts';\nimport type {AnyMutatorRegistry} from '../../../zql/src/mutate/mutator-registry.ts';\nimport {\n isMutator,\n type MutatorDefinition,\n} from '../../../zql/src/mutate/mutator.ts';\nimport type {DBMutator} from './crud.ts';\nimport type {CustomMutatorDefs, MutatorResult} from './custom.ts';\nimport type {MutatorProxy} from './mutator-proxy.ts';\n\n/**\n * Creates and populates a mutate property object by processing mutator definitions recursively.\n *\n * This function traverses through mutator definitions (either schema-based or custom) and builds\n * a corresponding object structure where each mutator is wrapped by the mutator proxy. It handles\n * both flat mutator functions and nested mutator definition objects.\n *\n * @template S - The schema type that defines the structure of the data\n * @template C - The context type used by mutators, defaults to unknown\n *\n * @param mutators - The mutator definitions to process, can be schema-based or custom mutator definitions\n * @param mutatorProxy - The proxy object responsible for wrapping mutators with additional functionality\n * @param mutateObject - The target object to populate with wrapped mutators\n * @param replicacheMutate - The source object containing the actual mutator implementations to wrap\n *\n * @returns void - This function mutates the mutateObject parameter directly\n *\n * @remarks\n * The function recursively processes nested mutator structures, creating corresponding nested objects\n * in the mutateObject. For leaf mutators (functions or mutator definitions), it generates a full key\n * using different separators ('.' for mutator definitions, '|' for custom functions) and wraps them\n * using the mutator proxy.\n */\nexport function makeMutateProperty(\n mutators: AnyMutatorRegistry | CustomMutatorDefs,\n mutatorProxy: MutatorProxy,\n mutateObject: Record<string, unknown>,\n replicacheMutate: Record<string, unknown>,\n): void {\n const processMutators = (\n mutators: AnyMutatorRegistry | CustomMutatorDefs,\n path: string[],\n mutateObject: Record<string, unknown>,\n ) => {\n for (const [key, mutator] of Object.entries(mutators)) {\n path.push(key);\n let fullKey: string | undefined;\n if (isMutator(mutator)) {\n fullKey = customMutatorKey('.', path);\n } else if (typeof mutator === 'function') {\n // Legacy CustomMutatorImpl\n fullKey = customMutatorKey('|', path);\n }\n\n if (fullKey) {\n mutateObject[key] = mutatorProxy.wrapCustomMutator(\n must(replicacheMutate[fullKey]) as unknown as (\n ...args: unknown[]\n ) => MutatorResult,\n );\n } else {\n // recursive build and process.\n let existing = mutateObject[key];\n if (existing === undefined) {\n existing = {};\n mutateObject[key] = existing;\n }\n processMutators(\n mutator as AnyMutatorRegistry | CustomMutatorDefs,\n path,\n existing as Record<string, unknown>,\n );\n }\n path.pop();\n }\n };\n\n processMutators(mutators, [], mutateObject);\n}\n\n/**\n * Builds the mutate type from mutator definitions, handling arbitrary nesting.\n * Each node can be either a MutatorDefinition or a CustomMutatorImpl function,\n * or a namespace containing more mutators.\n */\ntype MakeFromMutatorDefinitions<\n S extends Schema,\n MD extends AnyMutatorRegistry | CustomMutatorDefs,\n C,\n> = {\n readonly [K in keyof MD]: MD[K] extends MutatorDefinition<\n infer TInput,\n // oxlint-disable-next-line no-explicit-any\n any,\n S,\n C,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >\n ? [TInput] extends [undefined]\n ? () => MutatorResult\n : undefined extends TInput\n ? (args?: TInput) => MutatorResult\n : (args: TInput) => MutatorResult\n : MD[K] extends (tx: Transaction<S>, ...args: infer Args) => Promise<void>\n ? (...args: Args) => MutatorResult\n : MD[K] extends AnyMutatorRegistry | CustomMutatorDefs\n ? MakeFromMutatorDefinitions<S, MD[K], C>\n : never;\n};\n\nexport type MakeMutatePropertyType<\n S extends Schema,\n MD extends AnyMutatorRegistry | CustomMutatorDefs | undefined,\n C,\n> = MD extends AnyMutatorRegistry\n ? // MutatorRegistry: no property tree, user calls zero.mutate(mr) directly\n {}\n : MD extends AnyMutatorRegistry | CustomMutatorDefs\n ? S['enableLegacyMutators'] extends false\n ? MakeFromMutatorDefinitions<S, MD, C>\n : DeepMerge<DBMutator<S>, MakeFromMutatorDefinitions<S, MD, C>>\n : DBMutator<S>;\n"],"names":["mutators","mutateObject"],"mappings":";;;AAuCO,SAAS,mBACd,UACA,cACA,cACA,kBACM;AACN,QAAM,kBAAkB,CACtBA,WACA,MACAC,kBACG;AACH,eAAW,CAAC,KAAK,OAAO,KAAK,OAAO,QAAQD,SAAQ,GAAG;AACrD,WAAK,KAAK,GAAG;AACb,UAAI;AACJ,UAAI,UAAU,OAAO,GAAG;AACtB,kBAAU,iBAAiB,KAAK,IAAI;AAAA,MACtC,WAAW,OAAO,YAAY,YAAY;AAExC,kBAAU,iBAAiB,KAAK,IAAI;AAAA,MACtC;AAEA,UAAI,SAAS;AACXC,sBAAa,GAAG,IAAI,aAAa;AAAA,UAC/B,KAAK,iBAAiB,OAAO,CAAC;AAAA,QAAA;AAAA,MAIlC,OAAO;AAEL,YAAI,WAAWA,cAAa,GAAG;AAC/B,YAAI,aAAa,QAAW;AAC1B,qBAAW,CAAA;AACXA,wBAAa,GAAG,IAAI;AAAA,QACtB;AACA;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AACA,WAAK,IAAA;AAAA,IACP;AAAA,EACF;AAEA,kBAAgB,UAAU,CAAA,GAAI,YAAY;AAC5C;"}
@@ -0,0 +1,34 @@
1
+ import type { LogContext } from '@rocicorp/logger';
2
+ import type { MutatorDefs } from '../../../replicache/src/types.ts';
3
+ import type { Schema } from '../../../zero-types/src/schema.ts';
4
+ import { type AnyMutatorRegistry } from '../../../zql/src/mutate/mutator-registry.ts';
5
+ import { type CRUDMutator } from './crud.ts';
6
+ import type { CustomMutatorDefs } from './custom.ts';
7
+ export declare function extendReplicacheMutators<S extends Schema, C>(lc: LogContext, context: C, mutators: AnyMutatorRegistry | CustomMutatorDefs, schema: S, mutateObject: Record<string, unknown>): void;
8
+ /**
9
+ * Creates Replicache mutators from mutator definitions.
10
+ *
11
+ * This function processes mutator definitions at arbitrary depth, supporting both
12
+ * new-style mutator definitions and legacy custom mutator implementations. It creates
13
+ * a mutator object with the CRUD mutator and any provided custom mutators, with keys
14
+ * generated based on their path in the mutator definition hierarchy.
15
+ *
16
+ * @template S - The schema type that defines the structure of the data
17
+ * @template C - The type of the context object passed to mutators
18
+ *
19
+ * @param schema - The schema instance used for validation and type checking
20
+ * @param mutators - The mutator definitions to process, can be nested objects or custom mutator definitions
21
+ * @param context - The context to be passed to mutators
22
+ * @param lc - The log context used for logging operations
23
+ *
24
+ * @returns A mutator definitions object containing the CRUD mutator and any custom mutators
25
+ *
26
+ * @remarks
27
+ * - New-style mutator definitions use '.' as a separator in their keys
28
+ * - Legacy custom mutator implementations use '|' as a separator in their keys
29
+ * - The CRUD mutator can be disabled by setting `enableLegacyMutators: false` in the schema
30
+ */
31
+ export declare function makeReplicacheMutators<const S extends Schema, C>(schema: S, mutators: AnyMutatorRegistry | CustomMutatorDefs | undefined, context: C, lc: LogContext): MutatorDefs & {
32
+ _zero_crud: CRUDMutator;
33
+ };
34
+ //# sourceMappingURL=make-replicache-mutators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-replicache-mutators.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/make-replicache-mutators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAGlE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAkB,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAC,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAQtE,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC1D,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,EAChD,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,IAAI,CA8BN;AA2BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC9D,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,SAAS,EAC5D,OAAO,EAAE,CAAC,EACV,EAAE,EAAE,UAAU,GACb,WAAW,GAAG;IAAC,UAAU,EAAE,WAAW,CAAA;CAAC,CAoCzC"}
@@ -0,0 +1,103 @@
1
+ import { CRUD_MUTATION_NAME } from "../../../zero-protocol/src/push.js";
2
+ import { customMutatorKey } from "../../../zql/src/mutate/custom.js";
3
+ import { isMutatorRegistry } from "../../../zql/src/mutate/mutator-registry.js";
4
+ import { Internal } from "./client-error-kind-enum.js";
5
+ import { makeCRUDMutator } from "./crud.js";
6
+ import { TransactionImpl, makeReplicacheMutator as makeReplicacheMutator$1 } from "./custom.js";
7
+ import { ClientError } from "./error.js";
8
+ function extendReplicacheMutators(lc, context, mutators, schema, mutateObject) {
9
+ const processMutators = (mutators2, path) => {
10
+ for (const [key, mutator] of Object.entries(mutators2)) {
11
+ path.push(key);
12
+ if (isMutator(mutator)) {
13
+ const fullKey = customMutatorKey(".", path);
14
+ mutateObject[fullKey] = makeReplicacheMutator(
15
+ lc,
16
+ mutator,
17
+ schema,
18
+ context
19
+ );
20
+ } else if (typeof mutator === "function") {
21
+ const fullKey = customMutatorKey("|", path);
22
+ mutateObject[fullKey] = makeReplicacheMutator$1(
23
+ lc,
24
+ // oxlint-disable-next-line no-explicit-any
25
+ mutator,
26
+ schema,
27
+ context
28
+ );
29
+ } else {
30
+ processMutators(mutator, path);
31
+ }
32
+ path.pop();
33
+ }
34
+ };
35
+ processMutators(mutators, []);
36
+ }
37
+ function makeReplicacheMutator(lc, mutator, schema, context) {
38
+ return async (repTx, args) => {
39
+ const tx = new TransactionImpl(lc, repTx, schema);
40
+ await mutator.fn({
41
+ args,
42
+ ctx: context,
43
+ tx
44
+ });
45
+ };
46
+ }
47
+ function makeReplicacheMutators(schema, mutators, context, lc) {
48
+ const { enableLegacyMutators = true } = schema;
49
+ const replicacheMutators = {
50
+ [CRUD_MUTATION_NAME]: enableLegacyMutators ? makeCRUDMutator(schema) : () => Promise.reject(
51
+ new ClientError({
52
+ kind: Internal,
53
+ message: "Zero CRUD mutators are not enabled."
54
+ })
55
+ )
56
+ };
57
+ if (mutators) {
58
+ if (isMutatorRegistry(mutators)) {
59
+ extendFromMutatorRegistry(
60
+ lc,
61
+ context,
62
+ mutators,
63
+ schema,
64
+ replicacheMutators
65
+ );
66
+ } else {
67
+ extendReplicacheMutators(
68
+ lc,
69
+ context,
70
+ mutators,
71
+ schema,
72
+ replicacheMutators
73
+ );
74
+ }
75
+ }
76
+ return replicacheMutators;
77
+ }
78
+ function isMutator(value) {
79
+ return typeof value === "function" && "mutatorName" in value && typeof value.mutatorName === "string" && "fn" in value && typeof value.fn === "function";
80
+ }
81
+ function extendFromMutatorRegistry(lc, context, registry, schema, mutateObject) {
82
+ const walk = (node) => {
83
+ if (typeof node !== "object" || node === null) {
84
+ return;
85
+ }
86
+ for (const value of Object.values(node)) {
87
+ if (isMutator(value)) {
88
+ mutateObject[value.mutatorName] = (repTx, args) => {
89
+ const tx = new TransactionImpl(lc, repTx, schema);
90
+ return value.fn({ args, ctx: context, tx });
91
+ };
92
+ } else if (typeof value === "object" && value !== null) {
93
+ walk(value);
94
+ }
95
+ }
96
+ };
97
+ walk(registry);
98
+ }
99
+ export {
100
+ extendReplicacheMutators,
101
+ makeReplicacheMutators
102
+ };
103
+ //# sourceMappingURL=make-replicache-mutators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-replicache-mutators.js","sources":["../../../../../zero-client/src/client/make-replicache-mutators.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport type {MutatorDefs} from '../../../replicache/src/types.ts';\nimport type {ReadonlyJSONValue} from '../../../shared/src/json.ts';\nimport {CRUD_MUTATION_NAME} from '../../../zero-protocol/src/push.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport {customMutatorKey} from '../../../zql/src/mutate/custom.ts';\nimport {\n isMutatorRegistry,\n type AnyMutatorRegistry,\n} from '../../../zql/src/mutate/mutator-registry.ts';\nimport {type Mutator} from '../../../zql/src/mutate/mutator.ts';\nimport {ClientErrorKind} from './client-error-kind.ts';\nimport {makeCRUDMutator, type CRUDMutator} from './crud.ts';\nimport type {CustomMutatorDefs, CustomMutatorImpl} from './custom.ts';\nimport {\n makeReplicacheMutator as makeReplicacheMutatorLegacy,\n TransactionImpl,\n} from './custom.ts';\nimport {ClientError} from './error.ts';\nimport type {WriteTransaction} from './replicache-types.ts';\n\nexport function extendReplicacheMutators<S extends Schema, C>(\n lc: LogContext,\n context: C,\n mutators: AnyMutatorRegistry | CustomMutatorDefs,\n schema: S,\n mutateObject: Record<string, unknown>,\n): void {\n // Recursively process mutator definitions at arbitrary depth\n const processMutators = (mutators: object, path: string[]) => {\n for (const [key, mutator] of Object.entries(mutators)) {\n path.push(key);\n if (isMutator(mutator)) {\n const fullKey = customMutatorKey('.', path);\n mutateObject[fullKey] = makeReplicacheMutator(\n lc,\n mutator,\n schema,\n context,\n );\n } else if (typeof mutator === 'function') {\n const fullKey = customMutatorKey('|', path);\n mutateObject[fullKey] = makeReplicacheMutatorLegacy(\n lc,\n // oxlint-disable-next-line no-explicit-any\n mutator as CustomMutatorImpl<any>,\n schema,\n context,\n );\n } else {\n processMutators(mutator, path);\n }\n path.pop();\n }\n };\n\n processMutators(mutators, []);\n}\n\nfunction makeReplicacheMutator<\n TArgs extends ReadonlyJSONValue | undefined,\n TSchema extends Schema,\n TContext,\n TWrappedTransaction,\n>(\n lc: LogContext,\n mutator: Mutator<TArgs, TSchema, TContext, TWrappedTransaction>,\n schema: TSchema,\n context: TContext,\n): (repTx: WriteTransaction, args: ReadonlyJSONValue) => Promise<void> {\n return async (\n repTx: WriteTransaction,\n args: ReadonlyJSONValue,\n ): Promise<void> => {\n const tx = new TransactionImpl(lc, repTx, schema);\n // fn does input validation internally\n await mutator.fn({\n args: args as TArgs,\n ctx: context,\n tx: tx,\n });\n };\n}\n\n/**\n * Creates Replicache mutators from mutator definitions.\n *\n * This function processes mutator definitions at arbitrary depth, supporting both\n * new-style mutator definitions and legacy custom mutator implementations. It creates\n * a mutator object with the CRUD mutator and any provided custom mutators, with keys\n * generated based on their path in the mutator definition hierarchy.\n *\n * @template S - The schema type that defines the structure of the data\n * @template C - The type of the context object passed to mutators\n *\n * @param schema - The schema instance used for validation and type checking\n * @param mutators - The mutator definitions to process, can be nested objects or custom mutator definitions\n * @param context - The context to be passed to mutators\n * @param lc - The log context used for logging operations\n *\n * @returns A mutator definitions object containing the CRUD mutator and any custom mutators\n *\n * @remarks\n * - New-style mutator definitions use '.' as a separator in their keys\n * - Legacy custom mutator implementations use '|' as a separator in their keys\n * - The CRUD mutator can be disabled by setting `enableLegacyMutators: false` in the schema\n */\nexport function makeReplicacheMutators<const S extends Schema, C>(\n schema: S,\n mutators: AnyMutatorRegistry | CustomMutatorDefs | undefined,\n context: C,\n lc: LogContext,\n): MutatorDefs & {_zero_crud: CRUDMutator} {\n const {enableLegacyMutators = true} = schema;\n\n const replicacheMutators = {\n [CRUD_MUTATION_NAME]: enableLegacyMutators\n ? makeCRUDMutator(schema)\n : () =>\n Promise.reject(\n new ClientError({\n kind: ClientErrorKind.Internal,\n message: 'Zero CRUD mutators are not enabled.',\n }),\n ),\n };\n\n if (mutators) {\n if (isMutatorRegistry(mutators)) {\n extendFromMutatorRegistry(\n lc,\n context,\n mutators,\n schema,\n replicacheMutators,\n );\n } else {\n extendReplicacheMutators(\n lc,\n context,\n mutators as CustomMutatorDefs,\n schema,\n replicacheMutators,\n );\n }\n }\n\n return replicacheMutators;\n}\n\n/**\n * Checks if a value is a Mutator (from MutatorRegistry).\n * Mutators have `mutatorName` and `fn` properties.\n */\nfunction isMutator(\n value: unknown,\n // oxlint-disable-next-line no-explicit-any\n): value is Mutator<any, any, any, any> {\n return (\n typeof value === 'function' &&\n 'mutatorName' in value &&\n typeof value.mutatorName === 'string' &&\n 'fn' in value &&\n typeof value.fn === 'function'\n );\n}\n\n/**\n * Extends replicache mutators from a MutatorRegistry.\n * Walks the registry tree and wraps each Mutator.fn for Replicache.\n */\nfunction extendFromMutatorRegistry<S extends Schema, C>(\n lc: LogContext,\n context: C,\n registry: AnyMutatorRegistry,\n schema: S,\n mutateObject: Record<string, unknown>,\n): void {\n const walk = (node: unknown) => {\n if (typeof node !== 'object' || node === null) {\n return;\n }\n for (const value of Object.values(node)) {\n if (isMutator(value)) {\n // Mutator.fn already handles validation internally\n mutateObject[value.mutatorName] = (\n repTx: WriteTransaction,\n args: ReadonlyJSONValue,\n ): Promise<void> => {\n const tx = new TransactionImpl(lc, repTx, schema);\n return value.fn({args, ctx: context, tx});\n };\n } else if (typeof value === 'object' && value !== null) {\n // Nested namespace\n walk(value);\n }\n }\n };\n walk(registry);\n}\n"],"names":["mutators","makeReplicacheMutatorLegacy","ClientErrorKind.Internal"],"mappings":";;;;;;;AAqBO,SAAS,yBACd,IACA,SACA,UACA,QACA,cACM;AAEN,QAAM,kBAAkB,CAACA,WAAkB,SAAmB;AAC5D,eAAW,CAAC,KAAK,OAAO,KAAK,OAAO,QAAQA,SAAQ,GAAG;AACrD,WAAK,KAAK,GAAG;AACb,UAAI,UAAU,OAAO,GAAG;AACtB,cAAM,UAAU,iBAAiB,KAAK,IAAI;AAC1C,qBAAa,OAAO,IAAI;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,WAAW,OAAO,YAAY,YAAY;AACxC,cAAM,UAAU,iBAAiB,KAAK,IAAI;AAC1C,qBAAa,OAAO,IAAIC;AAAAA,UACtB;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,OAAO;AACL,wBAAgB,SAAS,IAAI;AAAA,MAC/B;AACA,WAAK,IAAA;AAAA,IACP;AAAA,EACF;AAEA,kBAAgB,UAAU,EAAE;AAC9B;AAEA,SAAS,sBAMP,IACA,SACA,QACA,SACqE;AACrE,SAAO,OACL,OACA,SACkB;AAClB,UAAM,KAAK,IAAI,gBAAgB,IAAI,OAAO,MAAM;AAEhD,UAAM,QAAQ,GAAG;AAAA,MACf;AAAA,MACA,KAAK;AAAA,MACL;AAAA,IAAA,CACD;AAAA,EACH;AACF;AAyBO,SAAS,uBACd,QACA,UACA,SACA,IACyC;AACzC,QAAM,EAAC,uBAAuB,KAAA,IAAQ;AAEtC,QAAM,qBAAqB;AAAA,IACzB,CAAC,kBAAkB,GAAG,uBAClB,gBAAgB,MAAM,IACtB,MACE,QAAQ;AAAA,MACN,IAAI,YAAY;AAAA,QACd,MAAMC;AAAAA,QACN,SAAS;AAAA,MAAA,CACV;AAAA,IAAA;AAAA,EACH;AAGR,MAAI,UAAU;AACZ,QAAI,kBAAkB,QAAQ,GAAG;AAC/B;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ,OAAO;AACL;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAEA,SAAO;AACT;AAMA,SAAS,UACP,OAEsC;AACtC,SACE,OAAO,UAAU,cACjB,iBAAiB,SACjB,OAAO,MAAM,gBAAgB,YAC7B,QAAQ,SACR,OAAO,MAAM,OAAO;AAExB;AAMA,SAAS,0BACP,IACA,SACA,UACA,QACA,cACM;AACN,QAAM,OAAO,CAAC,SAAkB;AAC9B,QAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C;AAAA,IACF;AACA,eAAW,SAAS,OAAO,OAAO,IAAI,GAAG;AACvC,UAAI,UAAU,KAAK,GAAG;AAEpB,qBAAa,MAAM,WAAW,IAAI,CAChC,OACA,SACkB;AAClB,gBAAM,KAAK,IAAI,gBAAgB,IAAI,OAAO,MAAM;AAChD,iBAAO,MAAM,GAAG,EAAC,MAAM,KAAK,SAAS,IAAG;AAAA,QAC1C;AAAA,MACF,WAAW,OAAO,UAAU,YAAY,UAAU,MAAM;AAEtD,aAAK,KAAK;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACA,OAAK,QAAQ;AACf;"}