@rocicorp/zero 1.12.0-canary.1 → 1.12.0-canary.11

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 (1466) hide show
  1. package/out/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.154.0/helpers/esm}/usingCtx.js +2 -2
  2. package/out/analyze-query/src/analyze-cli.d.ts.map +1 -1
  3. package/out/analyze-query/src/analyze-cli.js +6 -4
  4. package/out/analyze-query/src/analyze-cli.js.map +1 -1
  5. package/out/analyze-query/src/bin-transform.js +4 -3
  6. package/out/analyze-query/src/bin-transform.js.map +1 -1
  7. package/out/analyze-query/src/zql-chain.d.ts +23 -0
  8. package/out/analyze-query/src/zql-chain.d.ts.map +1 -0
  9. package/out/analyze-query/src/zql-chain.js +170 -0
  10. package/out/analyze-query/src/zql-chain.js.map +1 -0
  11. package/out/ast-to-zql/src/ast-to-zql.d.ts.map +1 -1
  12. package/out/ast-to-zql/src/ast-to-zql.js +61 -20
  13. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
  14. package/out/ast-to-zql/src/bin.js +4 -3
  15. package/out/ast-to-zql/src/bin.js.map +1 -1
  16. package/out/ast-to-zql/src/format.js.map +1 -1
  17. package/out/datadog/src/datadog-log-sink.js +5 -4
  18. package/out/datadog/src/datadog-log-sink.js.map +1 -1
  19. package/out/otel/src/log-options.js.map +1 -1
  20. package/out/replicache/src/btree/node.d.ts +0 -2
  21. package/out/replicache/src/btree/node.d.ts.map +1 -1
  22. package/out/replicache/src/btree/node.js +14 -12
  23. package/out/replicache/src/btree/node.js.map +1 -1
  24. package/out/replicache/src/btree/read.js +4 -2
  25. package/out/replicache/src/btree/read.js.map +1 -1
  26. package/out/replicache/src/btree/splice.js.map +1 -1
  27. package/out/replicache/src/btree/write.js +9 -5
  28. package/out/replicache/src/btree/write.js.map +1 -1
  29. package/out/replicache/src/config.js +1 -2
  30. package/out/replicache/src/connection-loop.d.ts.map +1 -1
  31. package/out/replicache/src/connection-loop.js +1 -1
  32. package/out/replicache/src/connection-loop.js.map +1 -1
  33. package/out/replicache/src/dag/chunk.js +1 -1
  34. package/out/replicache/src/dag/gc.js.map +1 -1
  35. package/out/replicache/src/dag/lazy-store.js +8 -7
  36. package/out/replicache/src/dag/lazy-store.js.map +1 -1
  37. package/out/replicache/src/dag/store-impl.js +1 -1
  38. package/out/replicache/src/dag/store-impl.js.map +1 -1
  39. package/out/replicache/src/dag/visitor.js.map +1 -1
  40. package/out/replicache/src/db/commit.d.ts +0 -1
  41. package/out/replicache/src/db/commit.d.ts.map +1 -1
  42. package/out/replicache/src/db/commit.js +5 -3
  43. package/out/replicache/src/db/commit.js.map +1 -1
  44. package/out/replicache/src/db/read.js +1 -1
  45. package/out/replicache/src/db/read.js.map +1 -1
  46. package/out/replicache/src/db/rebase.js.map +1 -1
  47. package/out/replicache/src/db/write.d.ts +0 -2
  48. package/out/replicache/src/db/write.d.ts.map +1 -1
  49. package/out/replicache/src/db/write.js +5 -2
  50. package/out/replicache/src/db/write.js.map +1 -1
  51. package/out/replicache/src/deleted-clients.d.ts +0 -2
  52. package/out/replicache/src/deleted-clients.d.ts.map +1 -1
  53. package/out/replicache/src/deleted-clients.js +5 -3
  54. package/out/replicache/src/deleted-clients.js.map +1 -1
  55. package/out/replicache/src/expo-sqlite.js +1 -2
  56. package/out/replicache/src/frozen-json.d.ts +0 -1
  57. package/out/replicache/src/frozen-json.d.ts.map +1 -1
  58. package/out/replicache/src/frozen-json.js +1 -1
  59. package/out/replicache/src/frozen-json.js.map +1 -1
  60. package/out/replicache/src/get-default-puller.js +1 -1
  61. package/out/replicache/src/hash.js +1 -1
  62. package/out/replicache/src/hash.js.map +1 -1
  63. package/out/replicache/src/impl.js +1 -2
  64. package/out/replicache/src/index-defs.d.ts +0 -2
  65. package/out/replicache/src/index-defs.d.ts.map +1 -1
  66. package/out/replicache/src/index-defs.js +5 -3
  67. package/out/replicache/src/index-defs.js.map +1 -1
  68. package/out/replicache/src/kv/expo-sqlite/store.d.ts +0 -1
  69. package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
  70. package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
  71. package/out/replicache/src/kv/idb-store.js +2 -2
  72. package/out/replicache/src/kv/idb-store.js.map +1 -1
  73. package/out/replicache/src/kv/mem-fallback-store.js +1 -1
  74. package/out/replicache/src/kv/mem-fallback-store.js.map +1 -1
  75. package/out/replicache/src/kv/mem-store.js.map +1 -1
  76. package/out/replicache/src/kv/op-sqlite/store.js.map +1 -1
  77. package/out/replicache/src/kv/op-sqlite/types.js.map +1 -1
  78. package/out/replicache/src/kv/read-impl.js.map +1 -1
  79. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  80. package/out/replicache/src/kv/sqlite-store.js +8 -4
  81. package/out/replicache/src/kv/sqlite-store.js.map +1 -1
  82. package/out/replicache/src/kv/throw-if-closed.d.ts +0 -3
  83. package/out/replicache/src/kv/throw-if-closed.d.ts.map +1 -1
  84. package/out/replicache/src/kv/throw-if-closed.js.map +1 -1
  85. package/out/replicache/src/kv/write-impl-base.js +4 -1
  86. package/out/replicache/src/kv/write-impl-base.js.map +1 -1
  87. package/out/replicache/src/kv/write-impl.js.map +1 -1
  88. package/out/replicache/src/log-options.js +2 -1
  89. package/out/replicache/src/log-options.js.map +1 -1
  90. package/out/replicache/src/make-idb-name.js +1 -1
  91. package/out/replicache/src/new-client-channel.js +9 -7
  92. package/out/replicache/src/new-client-channel.js.map +1 -1
  93. package/out/replicache/src/on-persist-channel.js +1 -1
  94. package/out/replicache/src/on-persist-channel.js.map +1 -1
  95. package/out/replicache/src/op-sqlite.js +1 -2
  96. package/out/replicache/src/pending-mutations.js +2 -1
  97. package/out/replicache/src/pending-mutations.js.map +1 -1
  98. package/out/replicache/src/persist/client-gc.js +2 -2
  99. package/out/replicache/src/persist/client-gc.js.map +1 -1
  100. package/out/replicache/src/persist/client-group-gc.d.ts +0 -7
  101. package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -1
  102. package/out/replicache/src/persist/client-group-gc.js +1 -1
  103. package/out/replicache/src/persist/client-group-gc.js.map +1 -1
  104. package/out/replicache/src/persist/client-groups.js +1 -1
  105. package/out/replicache/src/persist/client-groups.js.map +1 -1
  106. package/out/replicache/src/persist/clients.js +1 -1
  107. package/out/replicache/src/persist/clients.js.map +1 -1
  108. package/out/replicache/src/persist/collect-idb-databases.js +5 -4
  109. package/out/replicache/src/persist/collect-idb-databases.js.map +1 -1
  110. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -1
  111. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -1
  112. package/out/replicache/src/persist/heartbeat.js +2 -2
  113. package/out/replicache/src/persist/heartbeat.js.map +1 -1
  114. package/out/replicache/src/persist/idb-databases-store.js +1 -1
  115. package/out/replicache/src/persist/idb-databases-store.js.map +1 -1
  116. package/out/replicache/src/persist/make-client-id.js +1 -1
  117. package/out/replicache/src/persist/make-client-id.js.map +1 -1
  118. package/out/replicache/src/persist/persist.js +3 -2
  119. package/out/replicache/src/persist/persist.js.map +1 -1
  120. package/out/replicache/src/persist/refresh.js +8 -5
  121. package/out/replicache/src/persist/refresh.js.map +1 -1
  122. package/out/replicache/src/process-scheduler.js +1 -1
  123. package/out/replicache/src/process-scheduler.js.map +1 -1
  124. package/out/replicache/src/replicache-impl.d.ts +2 -7
  125. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  126. package/out/replicache/src/replicache-impl.js +21 -18
  127. package/out/replicache/src/replicache-impl.js.map +1 -1
  128. package/out/replicache/src/scan-iterator.js.map +1 -1
  129. package/out/replicache/src/scan-options.js +7 -6
  130. package/out/replicache/src/scan-options.js.map +1 -1
  131. package/out/replicache/src/sqlite.js +1 -2
  132. package/out/replicache/src/subscriptions.js +1 -1
  133. package/out/replicache/src/subscriptions.js.map +1 -1
  134. package/out/replicache/src/sync/diff.js +3 -1
  135. package/out/replicache/src/sync/diff.js.map +1 -1
  136. package/out/replicache/src/sync/ids.js.map +1 -1
  137. package/out/replicache/src/sync/patch.d.ts +0 -5
  138. package/out/replicache/src/sync/patch.d.ts.map +1 -1
  139. package/out/replicache/src/sync/patch.js +2 -4
  140. package/out/replicache/src/sync/patch.js.map +1 -1
  141. package/out/replicache/src/sync/pull.d.ts +0 -1
  142. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  143. package/out/replicache/src/sync/pull.js +3 -1
  144. package/out/replicache/src/sync/pull.js.map +1 -1
  145. package/out/replicache/src/sync/push.d.ts +2 -1
  146. package/out/replicache/src/sync/push.d.ts.map +1 -1
  147. package/out/replicache/src/sync/push.js.map +1 -1
  148. package/out/replicache/src/sync/request-id.js +1 -1
  149. package/out/replicache/src/sync/request-id.js.map +1 -1
  150. package/out/replicache/src/transactions.js +1 -1
  151. package/out/replicache/src/transactions.js.map +1 -1
  152. package/out/replicache/src/types.d.ts +2 -1
  153. package/out/replicache/src/types.d.ts.map +1 -1
  154. package/out/shared/src/arrays.js +4 -1
  155. package/out/shared/src/arrays.js.map +1 -1
  156. package/out/shared/src/asserts.d.ts +0 -5
  157. package/out/shared/src/asserts.d.ts.map +1 -1
  158. package/out/shared/src/asserts.js.map +1 -1
  159. package/out/shared/src/bigint-json.d.ts +9 -0
  160. package/out/shared/src/bigint-json.d.ts.map +1 -1
  161. package/out/shared/src/bigint-json.js +27 -2
  162. package/out/shared/src/bigint-json.js.map +1 -1
  163. package/out/shared/src/broadcast-channel.js +1 -1
  164. package/out/shared/src/browser-env.d.ts +0 -17
  165. package/out/shared/src/browser-env.d.ts.map +1 -1
  166. package/out/shared/src/browser-env.js.map +1 -1
  167. package/out/shared/src/btree-set.js +11 -8
  168. package/out/shared/src/btree-set.js.map +1 -1
  169. package/out/shared/src/cache.js.map +1 -1
  170. package/out/shared/src/config.js +1 -1
  171. package/out/shared/src/custom-key-map.js.map +1 -1
  172. package/out/shared/src/custom-key-set.js.map +1 -1
  173. package/out/shared/src/deep-clone.d.ts +0 -1
  174. package/out/shared/src/deep-clone.d.ts.map +1 -1
  175. package/out/shared/src/deep-clone.js.map +1 -1
  176. package/out/shared/src/document-visible.js +1 -1
  177. package/out/shared/src/document-visible.js.map +1 -1
  178. package/out/shared/src/dotenv.js.map +1 -1
  179. package/out/shared/src/error.js +1 -1
  180. package/out/shared/src/error.js.map +1 -1
  181. package/out/shared/src/expand.d.ts +0 -3
  182. package/out/shared/src/expand.d.ts.map +1 -1
  183. package/out/shared/src/hash.js +2 -2
  184. package/out/shared/src/hash.js.map +1 -1
  185. package/out/shared/src/immutable.d.ts +1 -1
  186. package/out/shared/src/immutable.d.ts.map +1 -1
  187. package/out/shared/src/iterables.d.ts +0 -1
  188. package/out/shared/src/iterables.d.ts.map +1 -1
  189. package/out/shared/src/iterables.js.map +1 -1
  190. package/out/shared/src/json-schema.js.map +1 -1
  191. package/out/shared/src/json.js.map +1 -1
  192. package/out/shared/src/logging-test-utils.js.map +1 -1
  193. package/out/shared/src/logging.js +1 -1
  194. package/out/shared/src/logging.js.map +1 -1
  195. package/out/shared/src/navigator.js +1 -1
  196. package/out/shared/src/options-types.d.ts +1 -1
  197. package/out/shared/src/options-types.d.ts.map +1 -1
  198. package/out/shared/src/options.d.ts +2 -3
  199. package/out/shared/src/options.d.ts.map +1 -1
  200. package/out/shared/src/options.js +8 -11
  201. package/out/shared/src/options.js.map +1 -1
  202. package/out/shared/src/promise-race.js +1 -1
  203. package/out/shared/src/promise-race.js.map +1 -1
  204. package/out/shared/src/queue.js +1 -1
  205. package/out/shared/src/queue.js.map +1 -1
  206. package/out/shared/src/record-proxy.js.map +1 -1
  207. package/out/shared/src/resolved-promises.d.ts +0 -4
  208. package/out/shared/src/resolved-promises.d.ts.map +1 -1
  209. package/out/shared/src/resolved-promises.js +0 -1
  210. package/out/shared/src/resolved-promises.js.map +1 -1
  211. package/out/shared/src/resolver.d.ts +9 -0
  212. package/out/shared/src/resolver.d.ts.map +1 -0
  213. package/out/shared/src/resolver.js +6 -0
  214. package/out/shared/src/resolver.js.map +1 -0
  215. package/out/shared/src/ring-buffer.js.map +1 -1
  216. package/out/shared/src/size-of-value.js +7 -10
  217. package/out/shared/src/size-of-value.js.map +1 -1
  218. package/out/shared/src/sleep.js +1 -1
  219. package/out/shared/src/sleep.js.map +1 -1
  220. package/out/shared/src/sorted-entries.js.map +1 -1
  221. package/out/shared/src/tdigest-schema.js.map +1 -1
  222. package/out/shared/src/tdigest.d.ts +0 -1
  223. package/out/shared/src/tdigest.d.ts.map +1 -1
  224. package/out/shared/src/tdigest.js.map +1 -1
  225. package/out/shared/src/valita.js +1 -1
  226. package/out/shared/src/valita.js.map +1 -1
  227. package/out/z2s/src/compiler.d.ts +1 -1
  228. package/out/z2s/src/compiler.d.ts.map +1 -1
  229. package/out/z2s/src/compiler.js +344 -9
  230. package/out/z2s/src/compiler.js.map +1 -1
  231. package/out/z2s/src/sql.d.ts +9 -5
  232. package/out/z2s/src/sql.d.ts.map +1 -1
  233. package/out/z2s/src/sql.js +58 -11
  234. package/out/z2s/src/sql.js.map +1 -1
  235. package/out/zero/package.js +210 -189
  236. package/out/zero/package.js.map +1 -1
  237. package/out/zero/src/adapters/drizzle.js +1 -2
  238. package/out/zero/src/adapters/kysely.js +1 -2
  239. package/out/zero/src/adapters/pg.js +1 -2
  240. package/out/zero/src/adapters/postgresjs.js +1 -2
  241. package/out/zero/src/adapters/prisma.js +1 -2
  242. package/out/zero/src/analyze.js +1 -2
  243. package/out/zero/src/bindings.js +4 -4
  244. package/out/zero/src/change-protocol/v0.js +1 -2
  245. package/out/zero/src/expo-sqlite.js +1 -2
  246. package/out/zero/src/op-sqlite.js +1 -2
  247. package/out/zero/src/react-native.js.map +1 -1
  248. package/out/zero/src/sqlite.js +1 -2
  249. package/out/zero/src/zero-cache-dev.js +11 -10
  250. package/out/zero/src/zero-cache-dev.js.map +1 -1
  251. package/out/zero/src/zero-out.js +2 -1
  252. package/out/zero/src/zero-out.js.map +1 -1
  253. package/out/zero-cache/src/auth/auth.js +1 -1
  254. package/out/zero-cache/src/auth/auth.js.map +1 -1
  255. package/out/zero-cache/src/auth/jwt.js +4 -1
  256. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  257. package/out/zero-cache/src/auth/load-permissions.js +1 -1
  258. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  259. package/out/zero-cache/src/auth/read-authorizer.js +3 -2
  260. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  261. package/out/zero-cache/src/auth/write-authorizer.js +16 -20
  262. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  263. package/out/zero-cache/src/config/network.js +1 -1
  264. package/out/zero-cache/src/config/network.js.map +1 -1
  265. package/out/zero-cache/src/config/server-context.js.map +1 -1
  266. package/out/zero-cache/src/config/zero-config.d.ts +23 -11
  267. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  268. package/out/zero-cache/src/config/zero-config.js +51 -4
  269. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  270. package/out/zero-cache/src/custom/fetch.js +1 -1
  271. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  272. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  273. package/out/zero-cache/src/db/create.js +1 -1
  274. package/out/zero-cache/src/db/create.js.map +1 -1
  275. package/out/zero-cache/src/db/index-predicate.js.map +1 -1
  276. package/out/zero-cache/src/db/lite-tables.d.ts +2 -2
  277. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  278. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  279. package/out/zero-cache/src/db/migration-lite.js +1 -1
  280. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  281. package/out/zero-cache/src/db/migration.js +5 -3
  282. package/out/zero-cache/src/db/migration.js.map +1 -1
  283. package/out/zero-cache/src/db/pg-copy-binary.js +4 -3
  284. package/out/zero-cache/src/db/pg-copy-binary.js.map +1 -1
  285. package/out/zero-cache/src/db/pg-copy.js +0 -1
  286. package/out/zero-cache/src/db/pg-copy.js.map +1 -1
  287. package/out/zero-cache/src/db/pg-to-lite.js +1 -1
  288. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  289. package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
  290. package/out/zero-cache/src/db/run-transaction.js.map +1 -1
  291. package/out/zero-cache/src/db/specs.d.ts +3 -4
  292. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  293. package/out/zero-cache/src/db/specs.js +1 -1
  294. package/out/zero-cache/src/db/specs.js.map +1 -1
  295. package/out/zero-cache/src/db/sqlite-corruption.js.map +1 -1
  296. package/out/zero-cache/src/db/statements.d.ts.map +1 -1
  297. package/out/zero-cache/src/db/statements.js +9 -2
  298. package/out/zero-cache/src/db/statements.js.map +1 -1
  299. package/out/zero-cache/src/db/transaction-pool.js +6 -4
  300. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  301. package/out/zero-cache/src/db/warmup.js.map +1 -1
  302. package/out/zero-cache/src/observability/events.js +1 -1
  303. package/out/zero-cache/src/observability/events.js.map +1 -1
  304. package/out/zero-cache/src/observability/log-throttle.js.map +1 -1
  305. package/out/zero-cache/src/observability/metrics.js.map +1 -1
  306. package/out/zero-cache/src/scripts/deploy-permissions.js +5 -3
  307. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  308. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  309. package/out/zero-cache/src/server/anonymous-otel-start.js +2 -1
  310. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  311. package/out/zero-cache/src/server/change-streamer.js +35 -11
  312. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  313. package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
  314. package/out/zero-cache/src/server/logging.js +1 -1
  315. package/out/zero-cache/src/server/logging.js.map +1 -1
  316. package/out/zero-cache/src/server/main.js +2 -2
  317. package/out/zero-cache/src/server/main.js.map +1 -1
  318. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  319. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  320. package/out/zero-cache/src/server/reaper.js +2 -2
  321. package/out/zero-cache/src/server/reaper.js.map +1 -1
  322. package/out/zero-cache/src/server/replicator.js +1 -1
  323. package/out/zero-cache/src/server/replicator.js.map +1 -1
  324. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  325. package/out/zero-cache/src/server/runner/run-worker.js +12 -8
  326. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  327. package/out/zero-cache/src/server/runner/runtime.js +2 -1
  328. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  329. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts +9 -1
  330. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  331. package/out/zero-cache/src/server/runner/zero-dispatcher.js +29 -2
  332. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  333. package/out/zero-cache/src/server/shadow-syncer.js +1 -1
  334. package/out/zero-cache/src/server/shadow-syncer.js.map +1 -1
  335. package/out/zero-cache/src/server/slot-keeper.js.map +1 -1
  336. package/out/zero-cache/src/server/syncer-assigner.js.map +1 -1
  337. package/out/zero-cache/src/server/syncer.js +10 -5
  338. package/out/zero-cache/src/server/syncer.js.map +1 -1
  339. package/out/zero-cache/src/server/worker-dispatcher.js +1 -1
  340. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
  341. package/out/zero-cache/src/server/worker-urls.js.map +1 -1
  342. package/out/zero-cache/src/services/analyze.js +2 -2
  343. package/out/zero-cache/src/services/analyze.js.map +1 -1
  344. package/out/zero-cache/src/services/change-source/common/backfill-manager.js +3 -3
  345. package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
  346. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js +1 -1
  347. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +1 -1
  348. package/out/zero-cache/src/services/change-source/common/init-cleanup.js.map +1 -1
  349. package/out/zero-cache/src/services/change-source/common/replica-restore.js.map +1 -1
  350. package/out/zero-cache/src/services/change-source/common/replica-schema.js +4 -4
  351. package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
  352. package/out/zero-cache/src/services/change-source/custom/change-source.js +3 -3
  353. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  354. package/out/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +1 -1
  355. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +3 -3
  356. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -1
  357. package/out/zero-cache/src/services/change-source/pg/change-source-init.js +52 -27
  358. package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -1
  359. package/out/zero-cache/src/services/change-source/pg/change-source.js +70 -15
  360. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  361. package/out/zero-cache/src/services/change-source/pg/decommission.js +2 -1
  362. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
  363. package/out/zero-cache/src/services/change-source/pg/fork-request.js +54 -0
  364. package/out/zero-cache/src/services/change-source/pg/fork-request.js.map +1 -0
  365. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +9 -7
  366. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  367. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  368. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
  369. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +4 -3
  370. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  371. package/out/zero-cache/src/services/change-source/pg/lsn.d.ts +0 -2
  372. package/out/zero-cache/src/services/change-source/pg/lsn.d.ts.map +1 -1
  373. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
  374. package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js +2 -2
  375. package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js.map +1 -1
  376. package/out/zero-cache/src/services/change-source/pg/replication-slot-health.js +1 -1
  377. package/out/zero-cache/src/services/change-source/pg/replication-slot-health.js.map +1 -1
  378. package/out/zero-cache/src/services/change-source/pg/replication-slots.js +9 -3
  379. package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
  380. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +0 -12
  381. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  382. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +5 -3
  383. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  384. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts +1 -1
  385. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts.map +1 -1
  386. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +13 -12
  387. package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +1 -1
  388. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  389. package/out/zero-cache/src/services/change-source/pg/schema/published.js +2 -2
  390. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  391. package/out/zero-cache/src/services/change-source/pg/schema/replica-stage-enum.js.map +1 -1
  392. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +9 -6
  393. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  394. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts +0 -1
  395. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -1
  396. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +1 -1
  397. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  398. package/out/zero-cache/src/services/change-source/protocol/backfill-progress.js +1 -1
  399. package/out/zero-cache/src/services/change-source/protocol/backfill-progress.js.map +1 -1
  400. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  401. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  402. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +1 -0
  403. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  404. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  405. package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts +3 -0
  406. package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts.map +1 -1
  407. package/out/zero-cache/src/services/change-source/protocol/current/status.js +2 -1
  408. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
  409. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -0
  410. package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
  411. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
  412. package/out/zero-cache/src/services/change-source/protocol/current.js +1 -1
  413. package/out/zero-cache/src/services/change-source/protocol/mod.js +1 -2
  414. package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.js.map +1 -1
  415. package/out/zero-cache/src/services/change-streamer/backfill-state.js +1 -1
  416. package/out/zero-cache/src/services/change-streamer/backfill-state.js.map +1 -1
  417. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +6 -6
  418. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
  419. package/out/zero-cache/src/services/change-streamer/backup-monitor.js +56 -21
  420. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
  421. package/out/zero-cache/src/services/change-streamer/broadcast.js +2 -2
  422. package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
  423. package/out/zero-cache/src/services/change-streamer/change-log-codec.js +2 -3
  424. package/out/zero-cache/src/services/change-streamer/change-log-codec.js.map +1 -1
  425. package/out/zero-cache/src/services/change-streamer/change-log-initializer.js +3 -3
  426. package/out/zero-cache/src/services/change-streamer/change-log-initializer.js.map +1 -1
  427. package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.js.map +1 -1
  428. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +4 -2
  429. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  430. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +49 -30
  431. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  432. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  433. package/out/zero-cache/src/services/change-streamer/drain-tracker.js +1 -1
  434. package/out/zero-cache/src/services/change-streamer/drain-tracker.js.map +1 -1
  435. package/out/zero-cache/src/services/change-streamer/forwarder.js +11 -10
  436. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
  437. package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js +81 -12
  438. package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js.map +1 -1
  439. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js +4 -4
  440. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -1
  441. package/out/zero-cache/src/services/change-streamer/replica-poller.js +2 -2
  442. package/out/zero-cache/src/services/change-streamer/replica-poller.js.map +1 -1
  443. package/out/zero-cache/src/services/change-streamer/restore-admission.js +12 -1
  444. package/out/zero-cache/src/services/change-streamer/restore-admission.js.map +1 -1
  445. package/out/zero-cache/src/services/change-streamer/schema/init.js +1 -1
  446. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  447. package/out/zero-cache/src/services/change-streamer/schema/tables.js +1 -1
  448. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  449. package/out/zero-cache/src/services/change-streamer/server-start-metrics.js +42 -0
  450. package/out/zero-cache/src/services/change-streamer/server-start-metrics.js.map +1 -0
  451. package/out/zero-cache/src/services/change-streamer/snapshot-message.js +1 -2
  452. package/out/zero-cache/src/services/change-streamer/snapshot-message.js.map +1 -1
  453. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js.map +1 -1
  454. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js +2 -2
  455. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js.map +1 -1
  456. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js +2 -2
  457. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js.map +1 -1
  458. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.js.map +1 -1
  459. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js.map +1 -1
  460. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js +4 -6
  461. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js.map +1 -1
  462. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js +3 -5
  463. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js.map +1 -1
  464. package/out/zero-cache/src/services/change-streamer/storer.js +4 -4
  465. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  466. package/out/zero-cache/src/services/change-streamer/subscribe.js.map +1 -1
  467. package/out/zero-cache/src/services/change-streamer/subscriber.js +8 -7
  468. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  469. package/out/zero-cache/src/services/change-streamer/upstream-acker.js +0 -1
  470. package/out/zero-cache/src/services/change-streamer/upstream-acker.js.map +1 -1
  471. package/out/zero-cache/src/services/heapz.js +2 -1
  472. package/out/zero-cache/src/services/heapz.js.map +1 -1
  473. package/out/zero-cache/src/services/http-service.d.ts +8 -2
  474. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  475. package/out/zero-cache/src/services/http-service.js +19 -5
  476. package/out/zero-cache/src/services/http-service.js.map +1 -1
  477. package/out/zero-cache/src/services/life-cycle.d.ts +19 -0
  478. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  479. package/out/zero-cache/src/services/life-cycle.js +55 -3
  480. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  481. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +4 -2
  482. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
  483. package/out/zero-cache/src/services/litestream/commands.js +4 -4
  484. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  485. package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +2 -2
  486. package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +1 -1
  487. package/out/zero-cache/src/services/litestream/litestream-controller.js.map +1 -1
  488. package/out/zero-cache/src/services/litestream/metrics.js.map +1 -1
  489. package/out/zero-cache/src/services/litestream/restore-progress.js.map +1 -1
  490. package/out/zero-cache/src/services/mutagen/mutagen.js +3 -4
  491. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  492. package/out/zero-cache/src/services/mutagen/pusher.js +61 -17
  493. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  494. package/out/zero-cache/src/services/plannerz.d.ts +4 -12
  495. package/out/zero-cache/src/services/plannerz.d.ts.map +1 -1
  496. package/out/zero-cache/src/services/plannerz.js +6 -7
  497. package/out/zero-cache/src/services/plannerz.js.map +1 -1
  498. package/out/zero-cache/src/services/profz.js +5 -3
  499. package/out/zero-cache/src/services/profz.js.map +1 -1
  500. package/out/zero-cache/src/services/replicator/change-log-cookies.js.map +1 -1
  501. package/out/zero-cache/src/services/replicator/change-log-db.js +4 -3
  502. package/out/zero-cache/src/services/replicator/change-log-db.js.map +1 -1
  503. package/out/zero-cache/src/services/replicator/change-log-stream-writer.js.map +1 -1
  504. package/out/zero-cache/src/services/replicator/change-processor.js +1 -1
  505. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  506. package/out/zero-cache/src/services/replicator/drain-handler.js +1 -1
  507. package/out/zero-cache/src/services/replicator/drain-handler.js.map +1 -1
  508. package/out/zero-cache/src/services/replicator/incremental-sync.js +4 -4
  509. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  510. package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
  511. package/out/zero-cache/src/services/replicator/replication-status.js +4 -3
  512. package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
  513. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  514. package/out/zero-cache/src/services/replicator/reporter/recorder.js +2 -2
  515. package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -1
  516. package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts +2 -11
  517. package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts.map +1 -1
  518. package/out/zero-cache/src/services/replicator/reporter/report-schema.js.map +1 -1
  519. package/out/zero-cache/src/services/replicator/schema/backfilling.js +2 -2
  520. package/out/zero-cache/src/services/replicator/schema/backfilling.js.map +1 -1
  521. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +19 -17
  522. package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
  523. package/out/zero-cache/src/services/replicator/schema/change-log.js +31 -15
  524. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
  525. package/out/zero-cache/src/services/replicator/schema/column-metadata.d.ts +0 -7
  526. package/out/zero-cache/src/services/replicator/schema/column-metadata.d.ts.map +1 -1
  527. package/out/zero-cache/src/services/replicator/schema/column-metadata.js +1 -1
  528. package/out/zero-cache/src/services/replicator/schema/column-metadata.js.map +1 -1
  529. package/out/zero-cache/src/services/replicator/schema/replication-state.js +10 -7
  530. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  531. package/out/zero-cache/src/services/replicator/schema/table-metadata.js.map +1 -1
  532. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js +1 -1
  533. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js.map +1 -1
  534. package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js +1 -1
  535. package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js.map +1 -1
  536. package/out/zero-cache/src/services/replicator/write-worker-client.js +2 -2
  537. package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
  538. package/out/zero-cache/src/services/replicator/write-worker.js +3 -3
  539. package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
  540. package/out/zero-cache/src/services/run-ast.js +1 -1
  541. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  542. package/out/zero-cache/src/services/runner.js.map +1 -1
  543. package/out/zero-cache/src/services/running-state.js +1 -1
  544. package/out/zero-cache/src/services/running-state.js.map +1 -1
  545. package/out/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +1 -1
  546. package/out/zero-cache/src/services/statz.js +4 -3
  547. package/out/zero-cache/src/services/statz.js.map +1 -1
  548. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +2 -2
  549. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
  550. package/out/zero-cache/src/services/view-syncer/advancement-metrics.js.map +1 -1
  551. package/out/zero-cache/src/services/view-syncer/batch-pacer.js.map +1 -1
  552. package/out/zero-cache/src/services/view-syncer/client-handler.js +71 -24
  553. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  554. package/out/zero-cache/src/services/view-syncer/client-schema.js +46 -6
  555. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  556. package/out/zero-cache/src/services/view-syncer/connection-context-manager.js.map +1 -1
  557. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +2 -2
  558. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
  559. package/out/zero-cache/src/services/view-syncer/cvr-store.js +12 -7
  560. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  561. package/out/zero-cache/src/services/view-syncer/cvr.js +12 -4
  562. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  563. package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.js +1 -1
  564. package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.js.map +1 -1
  565. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +2 -2
  566. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
  567. package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.js.map +1 -1
  568. package/out/zero-cache/src/services/view-syncer/hydration-budget.js.map +1 -1
  569. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js +2 -2
  570. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js.map +1 -1
  571. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +6 -4
  572. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  573. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +112 -21
  574. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  575. package/out/zero-cache/src/services/view-syncer/plan-warnings.js.map +1 -1
  576. package/out/zero-cache/src/services/view-syncer/push-cost.js.map +1 -1
  577. package/out/zero-cache/src/services/view-syncer/push-cutoff.js.map +1 -1
  578. package/out/zero-cache/src/services/view-syncer/query-covering.js +2 -2
  579. package/out/zero-cache/src/services/view-syncer/query-covering.js.map +1 -1
  580. package/out/zero-cache/src/services/view-syncer/query-shape.js.map +1 -1
  581. package/out/zero-cache/src/services/view-syncer/query-stats.js +1 -1
  582. package/out/zero-cache/src/services/view-syncer/query-stats.js.map +1 -1
  583. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +2 -2
  584. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  585. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  586. package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -16
  587. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  588. package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js +7 -1
  589. package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js.map +1 -1
  590. package/out/zero-cache/src/services/view-syncer/snapshotter.js +13 -9
  591. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  592. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
  593. package/out/zero-cache/src/services/view-syncer/view-syncer.js +52 -28
  594. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  595. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  596. package/out/zero-cache/src/types/lexi-version.js.map +1 -1
  597. package/out/zero-cache/src/types/lite.d.ts +0 -1
  598. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  599. package/out/zero-cache/src/types/lite.js +1 -1
  600. package/out/zero-cache/src/types/lite.js.map +1 -1
  601. package/out/zero-cache/src/types/pg-data-type.js +1 -1
  602. package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
  603. package/out/zero-cache/src/types/pg-types.d.ts +0 -40
  604. package/out/zero-cache/src/types/pg-types.d.ts.map +1 -1
  605. package/out/zero-cache/src/types/pg-types.js.map +1 -1
  606. package/out/zero-cache/src/types/pg.js +6 -4
  607. package/out/zero-cache/src/types/pg.js.map +1 -1
  608. package/out/zero-cache/src/types/poke-chunk.d.ts +0 -1
  609. package/out/zero-cache/src/types/poke-chunk.d.ts.map +1 -1
  610. package/out/zero-cache/src/types/poke-chunk.js +1 -1
  611. package/out/zero-cache/src/types/poke-chunk.js.map +1 -1
  612. package/out/zero-cache/src/types/processes.js +5 -5
  613. package/out/zero-cache/src/types/processes.js.map +1 -1
  614. package/out/zero-cache/src/types/profiler.js +1 -1
  615. package/out/zero-cache/src/types/profiler.js.map +1 -1
  616. package/out/zero-cache/src/types/row-key.d.ts +0 -5
  617. package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
  618. package/out/zero-cache/src/types/row-key.js +8 -1
  619. package/out/zero-cache/src/types/row-key.js.map +1 -1
  620. package/out/zero-cache/src/types/sql.js.map +1 -1
  621. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  622. package/out/zero-cache/src/types/streams.js +11 -10
  623. package/out/zero-cache/src/types/streams.js.map +1 -1
  624. package/out/zero-cache/src/types/strings.js.map +1 -1
  625. package/out/zero-cache/src/types/subscription.js +1 -1
  626. package/out/zero-cache/src/types/subscription.js.map +1 -1
  627. package/out/zero-cache/src/types/timeout.js +1 -1
  628. package/out/zero-cache/src/types/websocket-handoff.d.ts +4 -7
  629. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
  630. package/out/zero-cache/src/types/websocket-handoff.js +16 -2
  631. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
  632. package/out/zero-cache/src/types/ws.d.ts +2 -1
  633. package/out/zero-cache/src/types/ws.d.ts.map +1 -1
  634. package/out/zero-cache/src/types/ws.js.map +1 -1
  635. package/out/zero-cache/src/workers/connection.d.ts +1 -2
  636. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  637. package/out/zero-cache/src/workers/connection.js +10 -8
  638. package/out/zero-cache/src/workers/connection.js.map +1 -1
  639. package/out/zero-cache/src/workers/mutator.js +1 -1
  640. package/out/zero-cache/src/workers/mutator.js.map +1 -1
  641. package/out/zero-cache/src/workers/rehome.d.ts +15 -0
  642. package/out/zero-cache/src/workers/rehome.d.ts.map +1 -0
  643. package/out/zero-cache/src/workers/rehome.js +36 -0
  644. package/out/zero-cache/src/workers/rehome.js.map +1 -0
  645. package/out/zero-cache/src/workers/replicator.js +5 -4
  646. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  647. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +9 -1
  648. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  649. package/out/zero-cache/src/workers/syncer.js +32 -7
  650. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  651. package/out/zero-client/src/client/active-clients-manager.d.ts.map +1 -1
  652. package/out/zero-client/src/client/active-clients-manager.js +2 -2
  653. package/out/zero-client/src/client/active-clients-manager.js.map +1 -1
  654. package/out/zero-client/src/client/bindings.d.ts +1 -1
  655. package/out/zero-client/src/client/bindings.d.ts.map +1 -1
  656. package/out/zero-client/src/client/bindings.js +11 -11
  657. package/out/zero-client/src/client/connection-manager.js +1 -1
  658. package/out/zero-client/src/client/connection-manager.js.map +1 -1
  659. package/out/zero-client/src/client/connection.js +1 -1
  660. package/out/zero-client/src/client/connection.js.map +1 -1
  661. package/out/zero-client/src/client/context.d.ts +7 -1
  662. package/out/zero-client/src/client/context.d.ts.map +1 -1
  663. package/out/zero-client/src/client/context.js +7 -0
  664. package/out/zero-client/src/client/context.js.map +1 -1
  665. package/out/zero-client/src/client/crud-impl.d.ts.map +1 -1
  666. package/out/zero-client/src/client/crud-impl.js +172 -3
  667. package/out/zero-client/src/client/crud-impl.js.map +1 -1
  668. package/out/zero-client/src/client/crud.d.ts +2 -8
  669. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  670. package/out/zero-client/src/client/crud.js.map +1 -1
  671. package/out/zero-client/src/client/custom.d.ts +0 -2
  672. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  673. package/out/zero-client/src/client/custom.js +42 -3
  674. package/out/zero-client/src/client/custom.js.map +1 -1
  675. package/out/zero-client/src/client/delete-clients-manager.js.map +1 -1
  676. package/out/zero-client/src/client/enable-analytics.d.ts +0 -1
  677. package/out/zero-client/src/client/enable-analytics.d.ts.map +1 -1
  678. package/out/zero-client/src/client/enable-analytics.js +1 -0
  679. package/out/zero-client/src/client/enable-analytics.js.map +1 -1
  680. package/out/zero-client/src/client/error.d.ts +4 -5
  681. package/out/zero-client/src/client/error.d.ts.map +1 -1
  682. package/out/zero-client/src/client/error.js.map +1 -1
  683. package/out/zero-client/src/client/inspector/client-group.js.map +1 -1
  684. package/out/zero-client/src/client/inspector/client.js.map +1 -1
  685. package/out/zero-client/src/client/inspector/html-dialog-prompt.js +1 -1
  686. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -1
  687. package/out/zero-client/src/client/inspector/inspector.js.map +1 -1
  688. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
  689. package/out/zero-client/src/client/inspector/query.js.map +1 -1
  690. package/out/zero-client/src/client/ivm-branch.d.ts +62 -2
  691. package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
  692. package/out/zero-client/src/client/ivm-branch.js +153 -34
  693. package/out/zero-client/src/client/ivm-branch.js.map +1 -1
  694. package/out/zero-client/src/client/keys.d.ts +33 -1
  695. package/out/zero-client/src/client/keys.d.ts.map +1 -1
  696. package/out/zero-client/src/client/keys.js +49 -7
  697. package/out/zero-client/src/client/keys.js.map +1 -1
  698. package/out/zero-client/src/client/log-options.js.map +1 -1
  699. package/out/zero-client/src/client/make-replicache-mutators.js +5 -3
  700. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -1
  701. package/out/zero-client/src/client/metrics.js +3 -5
  702. package/out/zero-client/src/client/metrics.js.map +1 -1
  703. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  704. package/out/zero-client/src/client/mutation-tracker.js +1 -1
  705. package/out/zero-client/src/client/mutation-tracker.js.map +1 -1
  706. package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
  707. package/out/zero-client/src/client/options.d.ts +0 -4
  708. package/out/zero-client/src/client/options.d.ts.map +1 -1
  709. package/out/zero-client/src/client/options.js.map +1 -1
  710. package/out/zero-client/src/client/query-manager.js +2 -2
  711. package/out/zero-client/src/client/query-manager.js.map +1 -1
  712. package/out/zero-client/src/client/reload-error-handler.js +4 -3
  713. package/out/zero-client/src/client/reload-error-handler.js.map +1 -1
  714. package/out/zero-client/src/client/replicache-types.d.ts +3 -2
  715. package/out/zero-client/src/client/replicache-types.d.ts.map +1 -1
  716. package/out/zero-client/src/client/version.js +1 -1
  717. package/out/zero-client/src/client/zero-poke-handler.d.ts +1 -2
  718. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  719. package/out/zero-client/src/client/zero-poke-handler.js +30 -2
  720. package/out/zero-client/src/client/zero-poke-handler.js.map +1 -1
  721. package/out/zero-client/src/client/zero-rep.d.ts +1 -1
  722. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  723. package/out/zero-client/src/client/zero-rep.js +2 -15
  724. package/out/zero-client/src/client/zero-rep.js.map +1 -1
  725. package/out/zero-client/src/client/zero.d.ts +1 -5
  726. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  727. package/out/zero-client/src/client/zero.js +21 -13
  728. package/out/zero-client/src/client/zero.js.map +1 -1
  729. package/out/zero-client/src/mod.d.ts +3 -3
  730. package/out/zero-client/src/mod.d.ts.map +1 -1
  731. package/out/zero-client/src/mod.js +23 -23
  732. package/out/zero-client/src/types/client-state.d.ts +0 -6
  733. package/out/zero-client/src/types/client-state.d.ts.map +1 -1
  734. package/out/zero-client/src/util/nanoid.js.map +1 -1
  735. package/out/zero-permissions/src/permissions.d.ts +1 -12
  736. package/out/zero-permissions/src/permissions.d.ts.map +1 -1
  737. package/out/zero-permissions/src/permissions.js +3 -3
  738. package/out/zero-permissions/src/permissions.js.map +1 -1
  739. package/out/zero-pg/src/mod.js +9 -9
  740. package/out/zero-protocol/src/aggregate-table.d.ts +15 -0
  741. package/out/zero-protocol/src/aggregate-table.d.ts.map +1 -0
  742. package/out/zero-protocol/src/aggregate-table.js +5 -0
  743. package/out/zero-protocol/src/aggregate-table.js.map +1 -0
  744. package/out/zero-protocol/src/analyze-query-result.js +1 -1
  745. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  746. package/out/zero-protocol/src/application-error.js.map +1 -1
  747. package/out/zero-protocol/src/ast.d.ts +140 -8
  748. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  749. package/out/zero-protocol/src/ast.js +264 -28
  750. package/out/zero-protocol/src/ast.js.map +1 -1
  751. package/out/zero-protocol/src/change-desired-queries.d.ts +0 -20
  752. package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
  753. package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
  754. package/out/zero-protocol/src/client-schema.d.ts +2 -5
  755. package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
  756. package/out/zero-protocol/src/client-schema.js.map +1 -1
  757. package/out/zero-protocol/src/close-connection.d.ts +0 -8
  758. package/out/zero-protocol/src/close-connection.d.ts.map +1 -1
  759. package/out/zero-protocol/src/close-connection.js.map +1 -1
  760. package/out/zero-protocol/src/connect.d.ts +0 -12
  761. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  762. package/out/zero-protocol/src/connect.js.map +1 -1
  763. package/out/zero-protocol/src/custom-queries.d.ts +3 -17
  764. package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
  765. package/out/zero-protocol/src/custom-queries.js.map +1 -1
  766. package/out/zero-protocol/src/data.d.ts +0 -1
  767. package/out/zero-protocol/src/data.d.ts.map +1 -1
  768. package/out/zero-protocol/src/data.js +3 -1
  769. package/out/zero-protocol/src/data.js.map +1 -1
  770. package/out/zero-protocol/src/delete-clients.js.map +1 -1
  771. package/out/zero-protocol/src/down.d.ts +27 -27
  772. package/out/zero-protocol/src/down.js.map +1 -1
  773. package/out/zero-protocol/src/error.js.map +1 -1
  774. package/out/zero-protocol/src/inspect-down.d.ts +1 -3
  775. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  776. package/out/zero-protocol/src/inspect-down.js.map +1 -1
  777. package/out/zero-protocol/src/inspect-up.d.ts +0 -28
  778. package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
  779. package/out/zero-protocol/src/inspect-up.js.map +1 -1
  780. package/out/zero-protocol/src/mutate-server.d.ts +0 -21
  781. package/out/zero-protocol/src/mutate-server.d.ts.map +1 -1
  782. package/out/zero-protocol/src/mutate-server.js.map +1 -1
  783. package/out/zero-protocol/src/mutation-id.js.map +1 -1
  784. package/out/zero-protocol/src/mutation-type-enum.d.ts +0 -1
  785. package/out/zero-protocol/src/mutation-type-enum.d.ts.map +1 -1
  786. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
  787. package/out/zero-protocol/src/mutation.d.ts +2 -4
  788. package/out/zero-protocol/src/mutation.d.ts.map +1 -1
  789. package/out/zero-protocol/src/mutation.js.map +1 -1
  790. package/out/zero-protocol/src/mutations-patch.d.ts +0 -33
  791. package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
  792. package/out/zero-protocol/src/mutations-patch.js.map +1 -1
  793. package/out/zero-protocol/src/ping.d.ts +0 -2
  794. package/out/zero-protocol/src/ping.d.ts.map +1 -1
  795. package/out/zero-protocol/src/ping.js.map +1 -1
  796. package/out/zero-protocol/src/poke.d.ts +3 -2
  797. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  798. package/out/zero-protocol/src/poke.js +1 -1
  799. package/out/zero-protocol/src/poke.js.map +1 -1
  800. package/out/zero-protocol/src/pong.d.ts +0 -2
  801. package/out/zero-protocol/src/pong.d.ts.map +1 -1
  802. package/out/zero-protocol/src/pong.js.map +1 -1
  803. package/out/zero-protocol/src/primary-key.js.map +1 -1
  804. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  805. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  806. package/out/zero-protocol/src/protocol-version.js +1 -0
  807. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  808. package/out/zero-protocol/src/pull.d.ts +2 -7
  809. package/out/zero-protocol/src/pull.d.ts.map +1 -1
  810. package/out/zero-protocol/src/pull.js.map +1 -1
  811. package/out/zero-protocol/src/push.d.ts +1 -3
  812. package/out/zero-protocol/src/push.d.ts.map +1 -1
  813. package/out/zero-protocol/src/push.js.map +1 -1
  814. package/out/zero-protocol/src/queries-patch.d.ts +0 -16
  815. package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
  816. package/out/zero-protocol/src/queries-patch.js +1 -1
  817. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  818. package/out/zero-protocol/src/query-hash-visitor.d.ts.map +1 -1
  819. package/out/zero-protocol/src/query-hash-visitor.js +38 -0
  820. package/out/zero-protocol/src/query-hash-visitor.js.map +1 -1
  821. package/out/zero-protocol/src/query-hash.js +2 -2
  822. package/out/zero-protocol/src/query-server.d.ts +2 -41
  823. package/out/zero-protocol/src/query-server.d.ts.map +1 -1
  824. package/out/zero-protocol/src/query-server.js.map +1 -1
  825. package/out/zero-protocol/src/row-patch.js.map +1 -1
  826. package/out/zero-protocol/src/up.d.ts +60 -60
  827. package/out/zero-protocol/src/up.js +1 -1
  828. package/out/zero-protocol/src/up.js.map +1 -1
  829. package/out/zero-protocol/src/update-auth.js.map +1 -1
  830. package/out/zero-protocol/src/version.d.ts +0 -1
  831. package/out/zero-protocol/src/version.d.ts.map +1 -1
  832. package/out/zero-protocol/src/version.js.map +1 -1
  833. package/out/zero-react/src/bindings.js +11 -11
  834. package/out/zero-react/src/mod.js +5 -5
  835. package/out/zero-react/src/use-query.d.ts +3 -1
  836. package/out/zero-react/src/use-query.d.ts.map +1 -1
  837. package/out/zero-react/src/use-query.js +6 -4
  838. package/out/zero-react/src/use-query.js.map +1 -1
  839. package/out/zero-react/src/zero-provider.d.ts +1 -1
  840. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  841. package/out/zero-react/src/zero-provider.js +2 -1
  842. package/out/zero-react/src/zero-provider.js.map +1 -1
  843. package/out/zero-react/src/zero.js +23 -23
  844. package/out/zero-schema/src/builder/relationship-builder.d.ts +0 -2
  845. package/out/zero-schema/src/builder/relationship-builder.d.ts.map +1 -1
  846. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  847. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  848. package/out/zero-schema/src/builder/schema-builder.js +5 -2
  849. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  850. package/out/zero-schema/src/builder/table-builder.d.ts +1 -1
  851. package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
  852. package/out/zero-schema/src/builder/table-builder.js +1 -1
  853. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  854. package/out/zero-schema/src/compiled-permissions.js.map +1 -1
  855. package/out/zero-schema/src/name-mapper.d.ts.map +1 -1
  856. package/out/zero-schema/src/name-mapper.js +14 -9
  857. package/out/zero-schema/src/name-mapper.js.map +1 -1
  858. package/out/zero-schema/src/schema-config.d.ts +0 -1
  859. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  860. package/out/zero-schema/src/schema-config.js +1 -1
  861. package/out/zero-schema/src/schema-config.js.map +1 -1
  862. package/out/zero-schema/src/table-schema.d.ts +3 -11
  863. package/out/zero-schema/src/table-schema.d.ts.map +1 -1
  864. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  865. package/out/zero-server/src/adapters/kysely.js.map +1 -1
  866. package/out/zero-server/src/adapters/pg.js.map +1 -1
  867. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  868. package/out/zero-server/src/adapters/prisma.js.map +1 -1
  869. package/out/zero-server/src/closable-db-transaction.js.map +1 -1
  870. package/out/zero-server/src/custom.js +2 -2
  871. package/out/zero-server/src/custom.js.map +1 -1
  872. package/out/zero-server/src/mod.js +8 -8
  873. package/out/zero-server/src/process-mutations.js.map +1 -1
  874. package/out/zero-server/src/push-processor.js.map +1 -1
  875. package/out/zero-server/src/queries/process-queries.d.ts +2 -4
  876. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  877. package/out/zero-server/src/queries/process-queries.js +2 -1
  878. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  879. package/out/zero-server/src/schema.d.ts.map +1 -1
  880. package/out/zero-server/src/schema.js +20 -9
  881. package/out/zero-server/src/schema.js.map +1 -1
  882. package/out/zero-server/src/zql-database.js.map +1 -1
  883. package/out/zero-solid/src/bindings.js +11 -11
  884. package/out/zero-solid/src/mod.js +5 -5
  885. package/out/zero-solid/src/solid-view.d.ts +0 -2
  886. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  887. package/out/zero-solid/src/solid-view.js +4 -4
  888. package/out/zero-solid/src/solid-view.js.map +1 -1
  889. package/out/zero-solid/src/use-connection-state.js +2 -1
  890. package/out/zero-solid/src/use-connection-state.js.map +1 -1
  891. package/out/zero-solid/src/use-query.js.map +1 -1
  892. package/out/zero-solid/src/use-zero-online.js +2 -1
  893. package/out/zero-solid/src/use-zero-online.js.map +1 -1
  894. package/out/zero-solid/src/use-zero.js +3 -2
  895. package/out/zero-solid/src/use-zero.js.map +1 -1
  896. package/out/zero-solid/src/zero.js +23 -23
  897. package/out/zero-types/src/format.d.ts +13 -0
  898. package/out/zero-types/src/format.d.ts.map +1 -1
  899. package/out/zero-types/src/format.js.map +1 -1
  900. package/out/zero-types/src/name-mapper.d.ts +16 -1
  901. package/out/zero-types/src/name-mapper.d.ts.map +1 -1
  902. package/out/zero-types/src/name-mapper.js +12 -0
  903. package/out/zero-types/src/name-mapper.js.map +1 -1
  904. package/out/zero-types/src/schema-value.d.ts +5 -2
  905. package/out/zero-types/src/schema-value.d.ts.map +1 -1
  906. package/out/zero-types/src/schema-value.js +15 -0
  907. package/out/zero-types/src/schema-value.js.map +1 -0
  908. package/out/zero-types/src/schema.d.ts +1 -1
  909. package/out/zero-types/src/schema.d.ts.map +1 -1
  910. package/out/zero-types/src/server-schema.d.ts +18 -0
  911. package/out/zero-types/src/server-schema.d.ts.map +1 -1
  912. package/out/zql/src/builder/builder.d.ts +124 -9
  913. package/out/zql/src/builder/builder.d.ts.map +1 -1
  914. package/out/zql/src/builder/builder.js +295 -23
  915. package/out/zql/src/builder/builder.js.map +1 -1
  916. package/out/zql/src/builder/correlated-predicate-pushdown.js.map +1 -1
  917. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  918. package/out/zql/src/builder/filter.d.ts +1 -2
  919. package/out/zql/src/builder/filter.d.ts.map +1 -1
  920. package/out/zql/src/builder/filter.js +41 -3
  921. package/out/zql/src/builder/filter.js.map +1 -1
  922. package/out/zql/src/builder/like.js +0 -1
  923. package/out/zql/src/builder/like.js.map +1 -1
  924. package/out/zql/src/error.d.ts +0 -5
  925. package/out/zql/src/error.d.ts.map +1 -1
  926. package/out/zql/src/error.js.map +1 -1
  927. package/out/zql/src/ivm/aggregate.d.ts +188 -0
  928. package/out/zql/src/ivm/aggregate.d.ts.map +1 -0
  929. package/out/zql/src/ivm/aggregate.js +470 -0
  930. package/out/zql/src/ivm/aggregate.js.map +1 -0
  931. package/out/zql/src/ivm/array-view.d.ts +1 -1
  932. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  933. package/out/zql/src/ivm/array-view.js +3 -3
  934. package/out/zql/src/ivm/array-view.js.map +1 -1
  935. package/out/zql/src/ivm/cap.d.ts +1 -1
  936. package/out/zql/src/ivm/cap.d.ts.map +1 -1
  937. package/out/zql/src/ivm/cap.js +14 -6
  938. package/out/zql/src/ivm/cap.js.map +1 -1
  939. package/out/zql/src/ivm/constraint.d.ts +0 -7
  940. package/out/zql/src/ivm/constraint.d.ts.map +1 -1
  941. package/out/zql/src/ivm/constraint.js +3 -2
  942. package/out/zql/src/ivm/constraint.js.map +1 -1
  943. package/out/zql/src/ivm/data.d.ts +15 -2
  944. package/out/zql/src/ivm/data.d.ts.map +1 -1
  945. package/out/zql/src/ivm/data.js +15 -1
  946. package/out/zql/src/ivm/data.js.map +1 -1
  947. package/out/zql/src/ivm/deferred-input.js +1 -1
  948. package/out/zql/src/ivm/deferred-input.js.map +1 -1
  949. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  950. package/out/zql/src/ivm/exists.js +32 -22
  951. package/out/zql/src/ivm/exists.js.map +1 -1
  952. package/out/zql/src/ivm/fan-in.js +1 -1
  953. package/out/zql/src/ivm/fan-in.js.map +1 -1
  954. package/out/zql/src/ivm/fan-out.js.map +1 -1
  955. package/out/zql/src/ivm/filter-operators.d.ts +5 -0
  956. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  957. package/out/zql/src/ivm/filter-operators.js +1 -1
  958. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  959. package/out/zql/src/ivm/filter-push.js.map +1 -1
  960. package/out/zql/src/ivm/filter.js.map +1 -1
  961. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  962. package/out/zql/src/ivm/flipped-join.js +4 -5
  963. package/out/zql/src/ivm/flipped-join.js.map +1 -1
  964. package/out/zql/src/ivm/group-by.d.ts +98 -0
  965. package/out/zql/src/ivm/group-by.d.ts.map +1 -0
  966. package/out/zql/src/ivm/group-by.js +384 -0
  967. package/out/zql/src/ivm/group-by.js.map +1 -0
  968. package/out/zql/src/ivm/join-index-tap.js.map +1 -1
  969. package/out/zql/src/ivm/join-index.d.ts.map +1 -1
  970. package/out/zql/src/ivm/join-index.js +2 -1
  971. package/out/zql/src/ivm/join-index.js.map +1 -1
  972. package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
  973. package/out/zql/src/ivm/join-utils.js +13 -14
  974. package/out/zql/src/ivm/join-utils.js.map +1 -1
  975. package/out/zql/src/ivm/join.d.ts.map +1 -1
  976. package/out/zql/src/ivm/join.js +7 -4
  977. package/out/zql/src/ivm/join.js.map +1 -1
  978. package/out/zql/src/ivm/lift-field.d.ts +54 -0
  979. package/out/zql/src/ivm/lift-field.d.ts.map +1 -0
  980. package/out/zql/src/ivm/lift-field.js +168 -0
  981. package/out/zql/src/ivm/lift-field.js.map +1 -0
  982. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +1 -1
  983. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
  984. package/out/zql/src/ivm/memory-source.d.ts +3 -2
  985. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  986. package/out/zql/src/ivm/memory-source.js +36 -27
  987. package/out/zql/src/ivm/memory-source.js.map +1 -1
  988. package/out/zql/src/ivm/memory-storage.js.map +1 -1
  989. package/out/zql/src/ivm/operator.d.ts +6 -0
  990. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  991. package/out/zql/src/ivm/operator.js +2 -2
  992. package/out/zql/src/ivm/operator.js.map +1 -1
  993. package/out/zql/src/ivm/push-accumulated.js +1 -2
  994. package/out/zql/src/ivm/push-accumulated.js.map +1 -1
  995. package/out/zql/src/ivm/schema.d.ts +1 -0
  996. package/out/zql/src/ivm/schema.d.ts.map +1 -1
  997. package/out/zql/src/ivm/skip-yields.js.map +1 -1
  998. package/out/zql/src/ivm/skip.js.map +1 -1
  999. package/out/zql/src/ivm/source.d.ts +21 -0
  1000. package/out/zql/src/ivm/source.d.ts.map +1 -1
  1001. package/out/zql/src/ivm/source.js.map +1 -1
  1002. package/out/zql/src/ivm/stream.d.ts +0 -1
  1003. package/out/zql/src/ivm/stream.d.ts.map +1 -1
  1004. package/out/zql/src/ivm/stream.js.map +1 -1
  1005. package/out/zql/src/ivm/take-gate.js.map +1 -1
  1006. package/out/zql/src/ivm/take.d.ts.map +1 -1
  1007. package/out/zql/src/ivm/take.js +8 -9
  1008. package/out/zql/src/ivm/take.js.map +1 -1
  1009. package/out/zql/src/ivm/union-fan-in.d.ts +0 -1
  1010. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  1011. package/out/zql/src/ivm/union-fan-in.js +1 -1
  1012. package/out/zql/src/ivm/union-fan-in.js.map +1 -1
  1013. package/out/zql/src/ivm/union-fan-out.js.map +1 -1
  1014. package/out/zql/src/ivm/view-apply-change.d.ts +8 -33
  1015. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  1016. package/out/zql/src/ivm/view-apply-change.js +23 -3
  1017. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  1018. package/out/zql/src/mutate/crud.d.ts +1 -3
  1019. package/out/zql/src/mutate/crud.d.ts.map +1 -1
  1020. package/out/zql/src/mutate/crud.js +2 -1
  1021. package/out/zql/src/mutate/crud.js.map +1 -1
  1022. package/out/zql/src/mutate/mutator-registry.d.ts +1 -1
  1023. package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
  1024. package/out/zql/src/mutate/mutator-registry.js.map +1 -1
  1025. package/out/zql/src/mutate/mutator.d.ts +1 -1
  1026. package/out/zql/src/mutate/mutator.d.ts.map +1 -1
  1027. package/out/zql/src/mutate/mutator.js.map +1 -1
  1028. package/out/zql/src/planner/planner-builder.js +1 -1
  1029. package/out/zql/src/planner/planner-builder.js.map +1 -1
  1030. package/out/zql/src/planner/planner-connection.js.map +1 -1
  1031. package/out/zql/src/planner/planner-debug.d.ts +11 -10
  1032. package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
  1033. package/out/zql/src/planner/planner-debug.js +4 -0
  1034. package/out/zql/src/planner/planner-debug.js.map +1 -1
  1035. package/out/zql/src/planner/planner-fan-in.js.map +1 -1
  1036. package/out/zql/src/planner/planner-fan-out.js.map +1 -1
  1037. package/out/zql/src/planner/planner-filter.js.map +1 -1
  1038. package/out/zql/src/planner/planner-graph.js +1 -5
  1039. package/out/zql/src/planner/planner-graph.js.map +1 -1
  1040. package/out/zql/src/planner/planner-join.js +1 -1
  1041. package/out/zql/src/planner/planner-join.js.map +1 -1
  1042. package/out/zql/src/planner/planner-node.d.ts +0 -1
  1043. package/out/zql/src/planner/planner-node.d.ts.map +1 -1
  1044. package/out/zql/src/planner/planner-node.js.map +1 -1
  1045. package/out/zql/src/planner/planner-source.js.map +1 -1
  1046. package/out/zql/src/planner/planner-terminus.js.map +1 -1
  1047. package/out/zql/src/planner/planner-warnings.d.ts +3 -3
  1048. package/out/zql/src/planner/planner-warnings.d.ts.map +1 -1
  1049. package/out/zql/src/planner/planner-warnings.js.map +1 -1
  1050. package/out/zql/src/query/create-builder.js +2 -1
  1051. package/out/zql/src/query/create-builder.js.map +1 -1
  1052. package/out/zql/src/query/expression.d.ts +49 -24
  1053. package/out/zql/src/query/expression.d.ts.map +1 -1
  1054. package/out/zql/src/query/expression.js +62 -6
  1055. package/out/zql/src/query/expression.js.map +1 -1
  1056. package/out/zql/src/query/measure-push-operator.js +1 -1
  1057. package/out/zql/src/query/measure-push-operator.js.map +1 -1
  1058. package/out/zql/src/query/named.js +2 -1
  1059. package/out/zql/src/query/named.js.map +1 -1
  1060. package/out/zql/src/query/query-delegate-base.d.ts +8 -7
  1061. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
  1062. package/out/zql/src/query/query-delegate-base.js +14 -6
  1063. package/out/zql/src/query/query-delegate-base.js.map +1 -1
  1064. package/out/zql/src/query/query-delegate.d.ts +1 -4
  1065. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  1066. package/out/zql/src/query/query-impl.d.ts +17 -3
  1067. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  1068. package/out/zql/src/query/query-impl.js +242 -9
  1069. package/out/zql/src/query/query-impl.js.map +1 -1
  1070. package/out/zql/src/query/query-internals.d.ts +0 -3
  1071. package/out/zql/src/query/query-internals.d.ts.map +1 -1
  1072. package/out/zql/src/query/query-internals.js.map +1 -1
  1073. package/out/zql/src/query/query-registry.d.ts +5 -5
  1074. package/out/zql/src/query/query-registry.d.ts.map +1 -1
  1075. package/out/zql/src/query/query-registry.js +1 -1
  1076. package/out/zql/src/query/query-registry.js.map +1 -1
  1077. package/out/zql/src/query/query-transitions.js +1 -1
  1078. package/out/zql/src/query/query-transitions.js.map +1 -1
  1079. package/out/zql/src/query/query.d.ts +321 -20
  1080. package/out/zql/src/query/query.d.ts.map +1 -1
  1081. package/out/zql/src/query/runnable-query-impl.d.ts +1 -19
  1082. package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -1
  1083. package/out/zql/src/query/runnable-query-impl.js +2 -1
  1084. package/out/zql/src/query/runnable-query-impl.js.map +1 -1
  1085. package/out/zql/src/query/static-query.js.map +1 -1
  1086. package/out/zql/src/query/ttl.d.ts +2 -3
  1087. package/out/zql/src/query/ttl.d.ts.map +1 -1
  1088. package/out/zql/src/query/ttl.js +8 -8
  1089. package/out/zql/src/query/ttl.js.map +1 -1
  1090. package/out/zql/src/query/validate-input.js.map +1 -1
  1091. package/out/zqlite/src/database-storage.js +195 -26
  1092. package/out/zqlite/src/database-storage.js.map +1 -1
  1093. package/out/zqlite/src/db.d.ts +47 -1
  1094. package/out/zqlite/src/db.d.ts.map +1 -1
  1095. package/out/zqlite/src/db.js +121 -21
  1096. package/out/zqlite/src/db.js.map +1 -1
  1097. package/out/zqlite/src/explain-queries.js.map +1 -1
  1098. package/out/zqlite/src/fetch-sql.d.ts +27 -0
  1099. package/out/zqlite/src/fetch-sql.d.ts.map +1 -0
  1100. package/out/zqlite/src/fetch-sql.js +112 -0
  1101. package/out/zqlite/src/fetch-sql.js.map +1 -0
  1102. package/out/zqlite/src/index-usage.js.map +1 -1
  1103. package/out/zqlite/src/internal/sql-inline.js.map +1 -1
  1104. package/out/zqlite/src/internal/sql.js.map +1 -1
  1105. package/out/zqlite/src/internal/statement-cache.d.ts +7 -0
  1106. package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -1
  1107. package/out/zqlite/src/internal/statement-cache.js +11 -4
  1108. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  1109. package/out/zqlite/src/mod.js +5 -5
  1110. package/out/zqlite/src/pending-delta.d.ts.map +1 -1
  1111. package/out/zqlite/src/pending-delta.js +4 -3
  1112. package/out/zqlite/src/pending-delta.js.map +1 -1
  1113. package/out/zqlite/src/query-builder.d.ts +23 -4
  1114. package/out/zqlite/src/query-builder.d.ts.map +1 -1
  1115. package/out/zqlite/src/query-builder.js +135 -19
  1116. package/out/zqlite/src/query-builder.js.map +1 -1
  1117. package/out/zqlite/src/query-delegate.js.map +1 -1
  1118. package/out/zqlite/src/resolve-scalar-subqueries.js +2 -5
  1119. package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -1
  1120. package/out/zqlite/src/sqlite-cost-model.js +3 -2
  1121. package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
  1122. package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
  1123. package/out/zqlite/src/table-source.d.ts +20 -3
  1124. package/out/zqlite/src/table-source.d.ts.map +1 -1
  1125. package/out/zqlite/src/table-source.js +110 -42
  1126. package/out/zqlite/src/table-source.js.map +1 -1
  1127. package/package.json +39 -39
  1128. package/out/analyze-query/src/bin-analyze.d.ts +0 -2
  1129. package/out/analyze-query/src/bin-analyze.d.ts.map +0 -1
  1130. package/out/analyze-query/src/bin-analyze.js +0 -283
  1131. package/out/analyze-query/src/bin-analyze.js.map +0 -1
  1132. package/out/otel/src/maybe-time.d.ts +0 -3
  1133. package/out/otel/src/maybe-time.d.ts.map +0 -1
  1134. package/out/otel/src/maybe-time.js +0 -15
  1135. package/out/otel/src/maybe-time.js.map +0 -1
  1136. package/out/shared/src/cache.d.ts +0 -22
  1137. package/out/shared/src/cache.d.ts.map +0 -1
  1138. package/out/shared/src/custom-key-map.d.ts +0 -26
  1139. package/out/shared/src/custom-key-map.d.ts.map +0 -1
  1140. package/out/shared/src/custom-key-set.d.ts +0 -25
  1141. package/out/shared/src/custom-key-set.d.ts.map +0 -1
  1142. package/out/shared/src/logging-test-utils.d.ts +0 -12
  1143. package/out/shared/src/logging-test-utils.d.ts.map +0 -1
  1144. package/out/shared/src/sorted-entries.d.ts +0 -2
  1145. package/out/shared/src/sorted-entries.d.ts.map +0 -1
  1146. package/out/zero/src/analyze-query.d.ts +0 -3
  1147. package/out/zero/src/analyze-query.d.ts.map +0 -1
  1148. package/out/zero/src/analyze-query.js +0 -3
  1149. package/out/zero/src/server/change-streamer.d.ts +0 -2
  1150. package/out/zero/src/server/change-streamer.d.ts.map +0 -1
  1151. package/out/zero/src/server/main.d.ts +0 -2
  1152. package/out/zero/src/server/main.d.ts.map +0 -1
  1153. package/out/zero/src/server/reaper.d.ts +0 -2
  1154. package/out/zero/src/server/reaper.d.ts.map +0 -1
  1155. package/out/zero/src/server/replicator.d.ts +0 -2
  1156. package/out/zero/src/server/replicator.d.ts.map +0 -1
  1157. package/out/zero/src/server/syncer.d.ts +0 -2
  1158. package/out/zero/src/server/syncer.d.ts.map +0 -1
  1159. package/out/zero-cache/src/auth/jwt.d.ts +0 -12
  1160. package/out/zero-cache/src/auth/jwt.d.ts.map +0 -1
  1161. package/out/zero-cache/src/auth/load-permissions.d.ts +0 -17
  1162. package/out/zero-cache/src/auth/load-permissions.d.ts.map +0 -1
  1163. package/out/zero-cache/src/auth/write-authorizer.d.ts +0 -28
  1164. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +0 -1
  1165. package/out/zero-cache/src/config/server-context.d.ts +0 -16
  1166. package/out/zero-cache/src/config/server-context.d.ts.map +0 -1
  1167. package/out/zero-cache/src/custom/fetch.d.ts +0 -38
  1168. package/out/zero-cache/src/custom/fetch.d.ts.map +0 -1
  1169. package/out/zero-cache/src/custom/metrics.d.ts +0 -31
  1170. package/out/zero-cache/src/custom/metrics.d.ts.map +0 -1
  1171. package/out/zero-cache/src/custom-queries/transform-query.d.ts +0 -68
  1172. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +0 -1
  1173. package/out/zero-cache/src/db/create.d.ts +0 -12
  1174. package/out/zero-cache/src/db/create.d.ts.map +0 -1
  1175. package/out/zero-cache/src/db/delete-lite-db.d.ts +0 -2
  1176. package/out/zero-cache/src/db/delete-lite-db.d.ts.map +0 -1
  1177. package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
  1178. package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
  1179. package/out/zero-cache/src/db/migration-lite.d.ts +0 -78
  1180. package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
  1181. package/out/zero-cache/src/db/migration.d.ts +0 -80
  1182. package/out/zero-cache/src/db/migration.d.ts.map +0 -1
  1183. package/out/zero-cache/src/db/pg-copy-binary.d.ts +0 -101
  1184. package/out/zero-cache/src/db/pg-copy-binary.d.ts.map +0 -1
  1185. package/out/zero-cache/src/db/pg-copy.d.ts +0 -30
  1186. package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
  1187. package/out/zero-cache/src/db/pg-type-parser.d.ts +0 -15
  1188. package/out/zero-cache/src/db/pg-type-parser.d.ts.map +0 -1
  1189. package/out/zero-cache/src/db/transaction-pool.d.ts +0 -205
  1190. package/out/zero-cache/src/db/transaction-pool.d.ts.map +0 -1
  1191. package/out/zero-cache/src/db/warmup.d.ts +0 -4
  1192. package/out/zero-cache/src/db/warmup.d.ts.map +0 -1
  1193. package/out/zero-cache/src/observability/events.d.ts +0 -15
  1194. package/out/zero-cache/src/observability/events.d.ts.map +0 -1
  1195. package/out/zero-cache/src/observability/log-throttle.d.ts +0 -44
  1196. package/out/zero-cache/src/observability/log-throttle.d.ts.map +0 -1
  1197. package/out/zero-cache/src/server/anonymous-otel-start.d.ts +0 -21
  1198. package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +0 -1
  1199. package/out/zero-cache/src/server/change-streamer.d.ts +0 -3
  1200. package/out/zero-cache/src/server/change-streamer.d.ts.map +0 -1
  1201. package/out/zero-cache/src/server/inspector-delegate.d.ts +0 -71
  1202. package/out/zero-cache/src/server/inspector-delegate.d.ts.map +0 -1
  1203. package/out/zero-cache/src/server/main.d.ts +0 -3
  1204. package/out/zero-cache/src/server/main.d.ts.map +0 -1
  1205. package/out/zero-cache/src/server/otel-diag-logger.d.ts +0 -16
  1206. package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +0 -1
  1207. package/out/zero-cache/src/server/otel-start.d.ts +0 -3
  1208. package/out/zero-cache/src/server/otel-start.d.ts.map +0 -1
  1209. package/out/zero-cache/src/server/priority-op.d.ts +0 -8
  1210. package/out/zero-cache/src/server/priority-op.d.ts.map +0 -1
  1211. package/out/zero-cache/src/server/reaper.d.ts +0 -3
  1212. package/out/zero-cache/src/server/reaper.d.ts.map +0 -1
  1213. package/out/zero-cache/src/server/replicator.d.ts +0 -10
  1214. package/out/zero-cache/src/server/replicator.d.ts.map +0 -1
  1215. package/out/zero-cache/src/server/slot-keeper.d.ts +0 -26
  1216. package/out/zero-cache/src/server/slot-keeper.d.ts.map +0 -1
  1217. package/out/zero-cache/src/server/syncer.d.ts +0 -3
  1218. package/out/zero-cache/src/server/syncer.d.ts.map +0 -1
  1219. package/out/zero-cache/src/services/analyze.d.ts +0 -9
  1220. package/out/zero-cache/src/services/analyze.d.ts.map +0 -1
  1221. package/out/zero-cache/src/services/change-source/change-source.d.ts +0 -32
  1222. package/out/zero-cache/src/services/change-source/change-source.d.ts.map +0 -1
  1223. package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +0 -57
  1224. package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +0 -1
  1225. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts +0 -55
  1226. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +0 -1
  1227. package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts +0 -24
  1228. package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts.map +0 -1
  1229. package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts +0 -115
  1230. package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts.map +0 -1
  1231. package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts +0 -14
  1232. package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +0 -1
  1233. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +0 -25
  1234. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +0 -1
  1235. package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts +0 -14
  1236. package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts.map +0 -1
  1237. package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +0 -36
  1238. package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +0 -1
  1239. package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts +0 -65
  1240. package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts.map +0 -1
  1241. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +0 -115
  1242. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +0 -1
  1243. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -155
  1244. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +0 -1
  1245. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +0 -17
  1246. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +0 -1
  1247. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts +0 -28
  1248. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts.map +0 -1
  1249. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts +0 -76
  1250. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts.map +0 -1
  1251. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +0 -169
  1252. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +0 -1
  1253. package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts +0 -16
  1254. package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts.map +0 -1
  1255. package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts +0 -15
  1256. package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts.map +0 -1
  1257. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +0 -127
  1258. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +0 -1
  1259. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +0 -9
  1260. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +0 -1
  1261. package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts +0 -68
  1262. package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts.map +0 -1
  1263. package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts +0 -72
  1264. package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts.map +0 -1
  1265. package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts +0 -50
  1266. package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts.map +0 -1
  1267. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +0 -14
  1268. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +0 -1
  1269. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +0 -18
  1270. package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +0 -1
  1271. package/out/zero-cache/src/services/change-streamer/broadcast.d.ts +0 -98
  1272. package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +0 -1
  1273. package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +0 -34
  1274. package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +0 -1
  1275. package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +0 -34
  1276. package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +0 -1
  1277. package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts +0 -158
  1278. package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts.map +0 -1
  1279. package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts +0 -19
  1280. package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts.map +0 -1
  1281. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -78
  1282. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +0 -1
  1283. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -143
  1284. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +0 -1
  1285. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -586
  1286. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +0 -1
  1287. package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts +0 -24
  1288. package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts.map +0 -1
  1289. package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +0 -15
  1290. package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +0 -1
  1291. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +0 -49
  1292. package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +0 -1
  1293. package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts +0 -53
  1294. package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts.map +0 -1
  1295. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts +0 -88
  1296. package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +0 -1
  1297. package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts +0 -15
  1298. package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts.map +0 -1
  1299. package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts +0 -243
  1300. package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts.map +0 -1
  1301. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +0 -6
  1302. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +0 -1
  1303. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +0 -152
  1304. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +0 -1
  1305. package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +0 -11
  1306. package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +0 -1
  1307. package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts +0 -92
  1308. package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts.map +0 -1
  1309. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +0 -36
  1310. package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +0 -1
  1311. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +0 -22
  1312. package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +0 -1
  1313. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +0 -99
  1314. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +0 -1
  1315. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +0 -83
  1316. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +0 -1
  1317. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts +0 -121
  1318. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map +0 -1
  1319. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +0 -73
  1320. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +0 -1
  1321. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +0 -62
  1322. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +0 -1
  1323. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +0 -114
  1324. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +0 -1
  1325. package/out/zero-cache/src/services/change-streamer/storer.d.ts +0 -276
  1326. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +0 -1
  1327. package/out/zero-cache/src/services/change-streamer/subscribe.d.ts +0 -485
  1328. package/out/zero-cache/src/services/change-streamer/subscribe.d.ts.map +0 -1
  1329. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +0 -194
  1330. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +0 -1
  1331. package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +0 -52
  1332. package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +0 -1
  1333. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +0 -57
  1334. package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +0 -1
  1335. package/out/zero-cache/src/services/litestream/commands.d.ts +0 -77
  1336. package/out/zero-cache/src/services/litestream/commands.d.ts.map +0 -1
  1337. package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -78
  1338. package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
  1339. package/out/zero-cache/src/services/litestream/metrics.d.ts +0 -31
  1340. package/out/zero-cache/src/services/litestream/metrics.d.ts.map +0 -1
  1341. package/out/zero-cache/src/services/litestream/restore-progress.d.ts +0 -24
  1342. package/out/zero-cache/src/services/litestream/restore-progress.d.ts.map +0 -1
  1343. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -40
  1344. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +0 -1
  1345. package/out/zero-cache/src/services/mutagen/pusher.d.ts +0 -63
  1346. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +0 -1
  1347. package/out/zero-cache/src/services/replicator/change-log-db.d.ts +0 -368
  1348. package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +0 -1
  1349. package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +0 -56
  1350. package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +0 -1
  1351. package/out/zero-cache/src/services/replicator/change-processor.d.ts +0 -37
  1352. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +0 -1
  1353. package/out/zero-cache/src/services/replicator/drain-handler.d.ts +0 -82
  1354. package/out/zero-cache/src/services/replicator/drain-handler.d.ts.map +0 -1
  1355. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +0 -25
  1356. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +0 -1
  1357. package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -9
  1358. package/out/zero-cache/src/services/replicator/notifier.d.ts.map +0 -1
  1359. package/out/zero-cache/src/services/replicator/replication-status.d.ts +0 -71
  1360. package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +0 -1
  1361. package/out/zero-cache/src/services/replicator/replicator.d.ts +0 -86
  1362. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +0 -1
  1363. package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +0 -55
  1364. package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +0 -1
  1365. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +0 -132
  1366. package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +0 -1
  1367. package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts +0 -120
  1368. package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts.map +0 -1
  1369. package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +0 -111
  1370. package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +0 -1
  1371. package/out/zero-cache/src/services/run-ast.d.ts +0 -39
  1372. package/out/zero-cache/src/services/run-ast.d.ts.map +0 -1
  1373. package/out/zero-cache/src/services/runner.d.ts +0 -19
  1374. package/out/zero-cache/src/services/runner.d.ts.map +0 -1
  1375. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +0 -17
  1376. package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +0 -1
  1377. package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts +0 -26
  1378. package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts.map +0 -1
  1379. package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts +0 -79
  1380. package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts.map +0 -1
  1381. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +0 -79
  1382. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +0 -1
  1383. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts +0 -5
  1384. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +0 -1
  1385. package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts +0 -184
  1386. package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts.map +0 -1
  1387. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +0 -22
  1388. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +0 -1
  1389. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +0 -128
  1390. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +0 -1
  1391. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -294
  1392. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +0 -1
  1393. package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts +0 -81
  1394. package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts.map +0 -1
  1395. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +0 -45
  1396. package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +0 -1
  1397. package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts +0 -53
  1398. package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts.map +0 -1
  1399. package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
  1400. package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
  1401. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
  1402. package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
  1403. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +0 -34
  1404. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +0 -1
  1405. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -296
  1406. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +0 -1
  1407. package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts +0 -7
  1408. package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts.map +0 -1
  1409. package/out/zero-cache/src/services/view-syncer/push-cost.d.ts +0 -132
  1410. package/out/zero-cache/src/services/view-syncer/push-cost.d.ts.map +0 -1
  1411. package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts +0 -55
  1412. package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts.map +0 -1
  1413. package/out/zero-cache/src/services/view-syncer/query-covering.d.ts +0 -28
  1414. package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +0 -1
  1415. package/out/zero-cache/src/services/view-syncer/query-shape.d.ts +0 -25
  1416. package/out/zero-cache/src/services/view-syncer/query-shape.d.ts.map +0 -1
  1417. package/out/zero-cache/src/services/view-syncer/query-stats.d.ts +0 -89
  1418. package/out/zero-cache/src/services/view-syncer/query-stats.d.ts.map +0 -1
  1419. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +0 -90
  1420. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +0 -1
  1421. package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts +0 -17
  1422. package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts.map +0 -1
  1423. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +0 -86
  1424. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +0 -1
  1425. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +0 -5
  1426. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +0 -1
  1427. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +0 -563
  1428. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +0 -1
  1429. package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts +0 -95
  1430. package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts.map +0 -1
  1431. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +0 -412
  1432. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +0 -1
  1433. package/out/zero-cache/src/services/view-syncer/tracer.d.ts +0 -2
  1434. package/out/zero-cache/src/services/view-syncer/tracer.d.ts.map +0 -1
  1435. package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts +0 -10
  1436. package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts.map +0 -1
  1437. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +0 -133
  1438. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +0 -1
  1439. package/out/zero-cache/src/types/pg-patch.d.ts +0 -21
  1440. package/out/zero-cache/src/types/pg-patch.d.ts.map +0 -1
  1441. package/out/zero-cache/src/types/pg-versions.d.ts +0 -3
  1442. package/out/zero-cache/src/types/pg-versions.d.ts.map +0 -1
  1443. package/out/zero-cache/src/workers/replicator.d.ts +0 -57
  1444. package/out/zero-cache/src/workers/replicator.d.ts.map +0 -1
  1445. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +0 -14
  1446. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +0 -1
  1447. package/out/zero-cache/src/workers/syncer.d.ts +0 -67
  1448. package/out/zero-cache/src/workers/syncer.d.ts.map +0 -1
  1449. package/out/zero-events/src/index.d.ts +0 -27
  1450. package/out/zero-events/src/index.d.ts.map +0 -1
  1451. package/out/zero-events/src/json.d.ts +0 -20
  1452. package/out/zero-events/src/json.d.ts.map +0 -1
  1453. package/out/zero-events/src/status.d.ts +0 -144
  1454. package/out/zero-events/src/status.d.ts.map +0 -1
  1455. package/out/zqlite/src/database-storage.d.ts +0 -24
  1456. package/out/zqlite/src/database-storage.d.ts.map +0 -1
  1457. package/out/zqlite/src/explain-queries.d.ts +0 -4
  1458. package/out/zqlite/src/explain-queries.d.ts.map +0 -1
  1459. package/out/zqlite/src/internal/sql-inline.d.ts +0 -13
  1460. package/out/zqlite/src/internal/sql-inline.d.ts.map +0 -1
  1461. package/out/zqlite/src/resolve-scalar-subqueries.d.ts +0 -72
  1462. package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +0 -1
  1463. package/out/zqlite/src/sqlite-cost-model.d.ts +0 -17
  1464. package/out/zqlite/src/sqlite-cost-model.d.ts.map +0 -1
  1465. package/out/zqlite/src/sqlite-stat-fanout.d.ts +0 -121
  1466. package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pong.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/pong.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAEhD,eAAO,MAAM,cAAc,6BAAe,CAAC;AAC3C,eAAO,MAAM,iBAAiB,4DAA+C,CAAC;AAE9E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"pong.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/pong.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAGhD,eAAO,MAAM,iBAAiB,4DAA+C,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pong.js","names":[],"sources":["../../../../zero-protocol/src/pong.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\n\nexport const pongBodySchema = v.object({});\nexport const pongMessageSchema = v.tuple([v.literal('pong'), pongBodySchema]);\n\nexport type PongBody = v.Infer<typeof pongBodySchema>;\nexport type PongMessage = v.Infer<typeof pongMessageSchema>;\n"],"mappings":";;AAEA,IAAa,iBAAiB,eAAE,OAAO,CAAC,CAAC;AACzC,IAAa,oBAAoB,eAAE,MAAM,CAAC,eAAE,QAAQ,MAAM,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"pong.js","names":["v"],"sources":["../../../../zero-protocol/src/pong.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\n\nconst pongBodySchema = v.object({});\nexport const pongMessageSchema = v.tuple([v.literal('pong'), pongBodySchema]);\n\nexport type PongMessage = v.Infer<typeof pongMessageSchema>;\n"],"mappings":";;AAEA,IAAM,iBAAiBA,eAAE,OAAO,CAAC,CAAC;AAClC,IAAa,oBAAoBA,eAAE,MAAM,CAACA,eAAE,QAAQ,MAAM,GAAG,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"primary-key.js","names":[],"sources":["../../../../zero-protocol/src/primary-key.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\n\nexport const primaryKeySchema = v.readonly(\n // oxlint-disable-next-line e18e/prefer-spread-syntax\n v.tuple([v.string()]).concat(v.array(v.string())),\n);\n\nexport type PrimaryKey = v.Infer<typeof primaryKeySchema>;\n\nexport const primaryKeyValueSchema = v.union(\n v.string(),\n v.number(),\n v.boolean(),\n);\n\nexport type PrimaryKeyValue = v.Infer<typeof primaryKeyValueSchema>;\n\nexport const primaryKeyValueRecordSchema = v.readonlyRecord(\n primaryKeyValueSchema,\n);\n\nexport type PrimaryKeyValueRecord = v.Infer<typeof primaryKeyValueRecordSchema>;\n"],"mappings":";;AAEA,IAAa,mBAAmB,SAE9B,eAAE,MAAM,CAAC,eAAE,OAAO,CAAC,CAAC,EAAE,OAAO,eAAE,MAAM,eAAE,OAAO,CAAC,CAAC,CAClD;AAIA,IAAa,wBAAwB,eAAE,MACrC,eAAE,OAAO,GACT,eAAE,OAAO,GACT,eAAE,QAAQ,CACZ;AAIA,IAAa,8BAA8B,eACzC,qBACF"}
1
+ {"version":3,"file":"primary-key.js","names":["v.readonly","v","v.readonlyRecord"],"sources":["../../../../zero-protocol/src/primary-key.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\n\nexport const primaryKeySchema = v.readonly(\n // oxlint-disable-next-line e18e/prefer-spread-syntax\n v.tuple([v.string()]).concat(v.array(v.string())),\n);\n\nexport type PrimaryKey = v.Infer<typeof primaryKeySchema>;\n\nexport const primaryKeyValueSchema = v.union(\n v.string(),\n v.number(),\n v.boolean(),\n);\n\nexport type PrimaryKeyValue = v.Infer<typeof primaryKeyValueSchema>;\n\nexport const primaryKeyValueRecordSchema = v.readonlyRecord(\n primaryKeyValueSchema,\n);\n\nexport type PrimaryKeyValueRecord = v.Infer<typeof primaryKeyValueRecordSchema>;\n"],"mappings":";;AAEA,IAAa,mBAAmBA,SAE9BC,eAAE,MAAM,CAACA,eAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAOA,eAAE,MAAMA,eAAE,OAAO,CAAC,CAAC,CAClD;AAIA,IAAa,wBAAwBA,eAAE,MACrCA,eAAE,OAAO,GACTA,eAAE,OAAO,GACTA,eAAE,QAAQ,CACZ;AAIA,IAAa,8BAA8BC,eACzC,qBACF"}
@@ -13,7 +13,7 @@
13
13
  * release. The server (`zero-cache`) must be deployed before clients start
14
14
  * running the new code.
15
15
  */
16
- export declare const PROTOCOL_VERSION = 53;
16
+ export declare const PROTOCOL_VERSION = 57;
17
17
  /**
18
18
  * The minimum server-supported sync protocol version (i.e. the version
19
19
  * declared in the "/sync/v{#}/connect" URL).
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-version.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/protocol-version.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAiDH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kCAAkC,KAAK,CAAC"}
1
+ {"version":3,"file":"protocol-version.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/protocol-version.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAwDH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kCAAkC,KAAK,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { assert } from "../../shared/src/asserts.js";
2
+ //#region ../zero-protocol/src/protocol-version.ts
2
3
  assert(true, "MIN_SERVER_SUPPORTED_SYNC_PROTOCOL must be less than PROTOCOL_VERSION");
3
4
  //#endregion
4
5
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-version.js","names":[],"sources":["../../../../zero-protocol/src/protocol-version.ts"],"sourcesContent":["import {assert} from '../../shared/src/asserts.ts';\n\n/**\n * The current `PROTOCOL_VERSION` of the code.\n *\n * The `PROTOCOL_VERSION` encompasses both the wire-protocol of the `/sync/...`\n * connection between the browser and `zero-cache`, as well as the format of\n * the `AST` objects stored in the CVR. The client's local database has its\n * own version, `STORAGE_VERSION` in zero-client. A bump that changes what the\n * client stores (as version 23 did by adding mutation results) must bump that\n * too.\n *\n * A change in the `AST` schema (e.g. new functionality added) must be\n * accompanied by an increment of the `PROTOCOL_VERSION` and a new major\n * release. The server (`zero-cache`) must be deployed before clients start\n * running the new code.\n */\n// History:\n// -- Version 5 adds support for `pokeEnd.cookie`. (0.14)\n// -- Version 6 makes `pokeStart.cookie` optional. (0.16)\n// -- Version 7 introduces the initConnection.clientSchema field. (0.17)\n// -- Version 8 drops support for Version 5 (0.18).\n// -- Version 11 adds inspect queries. (0.18)\n// -- Version 12 adds 'timestamp' and 'date' types to the ClientSchema ValueType. (not shipped, reversed by version 14)\n// -- Version 14 removes 'timestamp' and 'date' types from the ClientSchema ValueType. (0.18)\n// -- Version 15 adds a `userPushParams` field to `initConnection` (0.19)\n// -- Version 16 adds a new error type (alreadyProcessed) to mutation responses (0.19)\n// -- Version 17 deprecates `AST` in downstream query puts. It was never used anyway. (0.21)\n// -- Version 18 adds `name` and `args` to the `queries-patch` protocol (0.21)\n// -- Version 19 adds `activeClients` to the `initConnection` protocol (0.22)\n// -- Version 20 changes inspector down message (0.22)\n// -- Version 21 removes `AST` in downstream query puts which was deprecated in Version 17, removes support for versions < 18 (0.22)\n// -- Version 22 adds an optional 'userQueryParams' field to `initConnection` (0.22)\n// -- Version 23 add `mutationResults` to poke (0.22)\n// -- Version 24 adds `ackMutationResults` to upstream (0.22).\n// -- version 25 modifies `mutationsResults` to include `del` patches (0.22)\n// -- version 26 adds inspect/metrics and adds metrics to inspect/query (0.23)\n// -- version 27 adds inspect/version (0.23)\n// -- version 28 adds more inspect/metrics (0.23)\n// -- version 29 adds error responses for custom queries (0.23)\n// -- version 30 adds an optional primaryKey to the ClientSchema (0.24)\n// -- version 31 adds admin password authentication to inspector RPC calls (0.24)\n// -- version 32 adds analyze-query to the inspector RPC calls (0.24)\n// -- version 33 adds `flip` to CorrelatedSubquery (0.25)\n// -- version 34 moves `flip` from CorrelatedSubquery to CorrelatedSubqueryCondition (0.25)\n// -- version 35 adds `readRows`, `readRowCountsByQuery` and `readRowCount` to analyze-query result (0.25)\n// -- version 36 changes inspector analyze-query and adds error response to RPC (0.25)\n// -- version 37 adds `elapsed` to AnalyzeQueryResult (0.25)\n// -- version 38 adds structured push/transform error responses (0.25)\n// -- version 39 removes per-transform error types and adds `message` to app error (0.25)\n// -- version 40 adds `dbRowScansByQuery` to AnalyzeQueryResult (0.25)\n// -- version 41 makes ClientSchema.primaryKey required (0.25)\n// -- version 42 adds planner events to AnalyzeQueryResult (0.25)\n// -- version 43 renames `plans` to `sqlitePlans`, `plannerEvents` to `joinPlans`, and `plannerDebug` option to `joinPlans` (0.25)\n// -- version 44 adds profileID to connection URL (0.25)\n// -- version 45 adds userPushHeaders and userQueryHeaders to initConnection (0.25)\n// -- version 46 adds scalarSubquery condition type to AST\n// -- version 47 adds optional auth token to push body\n// -- version 48 adds updateAuth\n// -- version 49 adds `scalar` to CorrelatedSubqueryCondition, removes scalarSubquery\n// -- version 50 adds OTEL headers to push and query messages\n// -- version 51 changes inspector metrics fields\n// -- version 52 replaces JSON pokePart messages with binary poke chunks for\n// clients using protocol version 52 or newer. Older clients retain pokePart.\n// -- version 53 adds 'filter' node type to AnalyzeQueryResult\nexport const PROTOCOL_VERSION = 53;\n\n/**\n * The minimum server-supported sync protocol version (i.e. the version\n * declared in the \"/sync/v{#}/connect\" URL).\n *\n * CloudZero can serve applications running old client releases indefinitely.\n * Consequently, this value must never be increased: `zero-cache` must continue\n * to support every sync protocol from this version through `PROTOCOL_VERSION`.\n * A wire change that an old client cannot ignore must branch on the client's\n * protocol version and retain the old behavior. Keep each compatibility fork\n * isolated at the boundary that owns the changed behavior and test both sides\n * of its version cutoff.\n *\n * Client connections from protocol versions before this historical floor are\n * closed with a `VersionNotSupported` error.\n */\nexport const MIN_SERVER_SUPPORTED_SYNC_PROTOCOL = 30;\n\nassert(\n MIN_SERVER_SUPPORTED_SYNC_PROTOCOL < PROTOCOL_VERSION,\n 'MIN_SERVER_SUPPORTED_SYNC_PROTOCOL must be less than PROTOCOL_VERSION',\n);\n"],"mappings":";AAoFA,OAAA,MAEE,uEACF"}
1
+ {"version":3,"file":"protocol-version.js","names":[],"sources":["../../../../zero-protocol/src/protocol-version.ts"],"sourcesContent":["import {assert} from '../../shared/src/asserts.ts';\n\n/**\n * The current `PROTOCOL_VERSION` of the code.\n *\n * The `PROTOCOL_VERSION` encompasses both the wire-protocol of the `/sync/...`\n * connection between the browser and `zero-cache`, as well as the format of\n * the `AST` objects stored in the CVR. The client's local database has its\n * own version, `STORAGE_VERSION` in zero-client. A bump that changes what the\n * client stores (as version 23 did by adding mutation results) must bump that\n * too.\n *\n * A change in the `AST` schema (e.g. new functionality added) must be\n * accompanied by an increment of the `PROTOCOL_VERSION` and a new major\n * release. The server (`zero-cache`) must be deployed before clients start\n * running the new code.\n */\n// History:\n// -- Version 5 adds support for `pokeEnd.cookie`. (0.14)\n// -- Version 6 makes `pokeStart.cookie` optional. (0.16)\n// -- Version 7 introduces the initConnection.clientSchema field. (0.17)\n// -- Version 8 drops support for Version 5 (0.18).\n// -- Version 11 adds inspect queries. (0.18)\n// -- Version 12 adds 'timestamp' and 'date' types to the ClientSchema ValueType. (not shipped, reversed by version 14)\n// -- Version 14 removes 'timestamp' and 'date' types from the ClientSchema ValueType. (0.18)\n// -- Version 15 adds a `userPushParams` field to `initConnection` (0.19)\n// -- Version 16 adds a new error type (alreadyProcessed) to mutation responses (0.19)\n// -- Version 17 deprecates `AST` in downstream query puts. It was never used anyway. (0.21)\n// -- Version 18 adds `name` and `args` to the `queries-patch` protocol (0.21)\n// -- Version 19 adds `activeClients` to the `initConnection` protocol (0.22)\n// -- Version 20 changes inspector down message (0.22)\n// -- Version 21 removes `AST` in downstream query puts which was deprecated in Version 17, removes support for versions < 18 (0.22)\n// -- Version 22 adds an optional 'userQueryParams' field to `initConnection` (0.22)\n// -- Version 23 add `mutationResults` to poke (0.22)\n// -- Version 24 adds `ackMutationResults` to upstream (0.22).\n// -- version 25 modifies `mutationsResults` to include `del` patches (0.22)\n// -- version 26 adds inspect/metrics and adds metrics to inspect/query (0.23)\n// -- version 27 adds inspect/version (0.23)\n// -- version 28 adds more inspect/metrics (0.23)\n// -- version 29 adds error responses for custom queries (0.23)\n// -- version 30 adds an optional primaryKey to the ClientSchema (0.24)\n// -- version 31 adds admin password authentication to inspector RPC calls (0.24)\n// -- version 32 adds analyze-query to the inspector RPC calls (0.24)\n// -- version 33 adds `flip` to CorrelatedSubquery (0.25)\n// -- version 34 moves `flip` from CorrelatedSubquery to CorrelatedSubqueryCondition (0.25)\n// -- version 35 adds `readRows`, `readRowCountsByQuery` and `readRowCount` to analyze-query result (0.25)\n// -- version 36 changes inspector analyze-query and adds error response to RPC (0.25)\n// -- version 37 adds `elapsed` to AnalyzeQueryResult (0.25)\n// -- version 38 adds structured push/transform error responses (0.25)\n// -- version 39 removes per-transform error types and adds `message` to app error (0.25)\n// -- version 40 adds `dbRowScansByQuery` to AnalyzeQueryResult (0.25)\n// -- version 41 makes ClientSchema.primaryKey required (0.25)\n// -- version 42 adds planner events to AnalyzeQueryResult (0.25)\n// -- version 43 renames `plans` to `sqlitePlans`, `plannerEvents` to `joinPlans`, and `plannerDebug` option to `joinPlans` (0.25)\n// -- version 44 adds profileID to connection URL (0.25)\n// -- version 45 adds userPushHeaders and userQueryHeaders to initConnection (0.25)\n// -- version 46 adds scalarSubquery condition type to AST\n// -- version 47 adds optional auth token to push body\n// -- version 48 adds updateAuth\n// -- version 49 adds `scalar` to CorrelatedSubqueryCondition, removes scalarSubquery\n// -- version 50 adds OTEL headers to push and query messages\n// -- version 51 changes inspector metrics fields\n// -- version 52 replaces JSON pokePart messages with binary poke chunks for\n// clients using protocol version 52 or newer. Older clients retain pokePart.\n// -- version 53 adds 'filter' node type to AnalyzeQueryResult\n// -- version 54 adds `aggregate` {fn,field} (count/sum/avg/min/max) to\n// CorrelatedSubquery and, top-level, to AST\n// -- version 55 adds the `json` (JsonPathReference) condition value for JSON path filters\n// -- version 56 adds an optional JSON `path` to `aggregate`\n// -- version 57 adds `groupBy` to AST (alone, a SELECT DISTINCT of its columns;\n// with an `aggregate`, that aggregate per group) and `distinct` to a\n// `count` aggregate\nexport const PROTOCOL_VERSION = 57;\n\n/**\n * The minimum server-supported sync protocol version (i.e. the version\n * declared in the \"/sync/v{#}/connect\" URL).\n *\n * CloudZero can serve applications running old client releases indefinitely.\n * Consequently, this value must never be increased: `zero-cache` must continue\n * to support every sync protocol from this version through `PROTOCOL_VERSION`.\n * A wire change that an old client cannot ignore must branch on the client's\n * protocol version and retain the old behavior. Keep each compatibility fork\n * isolated at the boundary that owns the changed behavior and test both sides\n * of its version cutoff.\n *\n * Client connections from protocol versions before this historical floor are\n * closed with a `VersionNotSupported` error.\n */\nexport const MIN_SERVER_SUPPORTED_SYNC_PROTOCOL = 30;\n\nassert(\n MIN_SERVER_SUPPORTED_SYNC_PROTOCOL < PROTOCOL_VERSION,\n 'MIN_SERVER_SUPPORTED_SYNC_PROTOCOL must be less than PROTOCOL_VERSION',\n);\n"],"mappings":";;AA2FA,OACE,MACA,uEACF"}
@@ -1,10 +1,5 @@
1
1
  import * as v from '../../shared/src/valita.ts';
2
- export declare const pullRequestBodySchema: v.ObjectType<{
3
- clientGroupID: v.Type<string>;
4
- cookie: v.UnionType<[v.Type<string>, v.Type<null>]>;
5
- requestID: v.Type<string>;
6
- }, undefined>;
7
- export declare const pullResponseBodySchema: v.ObjectType<{
2
+ declare const pullResponseBodySchema: v.ObjectType<{
8
3
  cookie: v.Type<string>;
9
4
  requestID: v.Type<string>;
10
5
  lastMutationIDChanges: v.Type<Record<string, number>>;
@@ -19,8 +14,8 @@ export declare const pullResponseMessageSchema: v.TupleType<[v.Type<"pull">, v.O
19
14
  requestID: v.Type<string>;
20
15
  lastMutationIDChanges: v.Type<Record<string, number>>;
21
16
  }, undefined>]>;
22
- export type PullRequestBody = v.Infer<typeof pullRequestBodySchema>;
23
17
  export type PullResponseBody = v.Infer<typeof pullResponseBodySchema>;
24
18
  export type PullRequestMessage = v.Infer<typeof pullRequestMessageSchema>;
25
19
  export type PullResponseMessage = v.Infer<typeof pullResponseMessageSchema>;
20
+ export {};
26
21
  //# sourceMappingURL=pull.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAGhD,eAAO,MAAM,qBAAqB;;;;aAIhC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;aAOjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;eAGnC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;eAGpC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAShD,QAAA,MAAM,sBAAsB;;;;aAO1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;eAGnC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;eAGpC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","names":[],"sources":["../../../../zero-protocol/src/pull.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {nullableVersionSchema, versionSchema} from './version.ts';\n\nexport const pullRequestBodySchema = v.object({\n clientGroupID: v.string(),\n cookie: nullableVersionSchema,\n requestID: v.string(),\n});\n\nexport const pullResponseBodySchema = v.object({\n cookie: versionSchema,\n // Matches pullRequestBodySchema requestID that initiated this response\n requestID: v.string(),\n lastMutationIDChanges: v.record(v.number()),\n // Pull is currently only used for mutation recovery which does not use\n // the patch so we save work by not computing the patch.\n});\n\nexport const pullRequestMessageSchema = v.tuple([\n v.literal('pull'),\n pullRequestBodySchema,\n]);\n\nexport const pullResponseMessageSchema = v.tuple([\n v.literal('pull'),\n pullResponseBodySchema,\n]);\n\nexport type PullRequestBody = v.Infer<typeof pullRequestBodySchema>;\nexport type PullResponseBody = v.Infer<typeof pullResponseBodySchema>;\n\nexport type PullRequestMessage = v.Infer<typeof pullRequestMessageSchema>;\nexport type PullResponseMessage = v.Infer<typeof pullResponseMessageSchema>;\n"],"mappings":";;;AAGA,IAAa,wBAAwB,eAAE,OAAO;CAC5C,eAAe,eAAE,OAAO;CACxB,QAAQ;CACR,WAAW,eAAE,OAAO;AACtB,CAAC;AAED,IAAa,yBAAyB,eAAE,OAAO;CAC7C,QAAQ;CAER,WAAW,eAAE,OAAO;CACpB,uBAAuB,eAAE,OAAO,eAAE,OAAO,CAAC;AAG5C,CAAC;AAED,IAAa,2BAA2B,eAAE,MAAM,CAC9C,eAAE,QAAQ,MAAM,GAChB,qBACF,CAAC;AAED,IAAa,4BAA4B,eAAE,MAAM,CAC/C,eAAE,QAAQ,MAAM,GAChB,sBACF,CAAC"}
1
+ {"version":3,"file":"pull.js","names":["v"],"sources":["../../../../zero-protocol/src/pull.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {nullableVersionSchema, versionSchema} from './version.ts';\n\nconst pullRequestBodySchema = v.object({\n clientGroupID: v.string(),\n cookie: nullableVersionSchema,\n requestID: v.string(),\n});\n\nconst pullResponseBodySchema = v.object({\n cookie: versionSchema,\n // Matches pullRequestBodySchema requestID that initiated this response\n requestID: v.string(),\n lastMutationIDChanges: v.record(v.number()),\n // Pull is currently only used for mutation recovery which does not use\n // the patch so we save work by not computing the patch.\n});\n\nexport const pullRequestMessageSchema = v.tuple([\n v.literal('pull'),\n pullRequestBodySchema,\n]);\n\nexport const pullResponseMessageSchema = v.tuple([\n v.literal('pull'),\n pullResponseBodySchema,\n]);\n\nexport type PullResponseBody = v.Infer<typeof pullResponseBodySchema>;\n\nexport type PullRequestMessage = v.Infer<typeof pullRequestMessageSchema>;\nexport type PullResponseMessage = v.Infer<typeof pullResponseMessageSchema>;\n"],"mappings":";;;AAGA,IAAM,wBAAwBA,eAAE,OAAO;CACrC,eAAeA,eAAE,OAAO;CACxB,QAAQ;CACR,WAAWA,eAAE,OAAO;AACtB,CAAC;AAED,IAAM,yBAAyBA,eAAE,OAAO;CACtC,QAAQ;CAER,WAAWA,eAAE,OAAO;CACpB,uBAAuBA,eAAE,OAAOA,eAAE,OAAO,CAAC;AAG5C,CAAC;AAED,IAAa,2BAA2BA,eAAE,MAAM,CAC9CA,eAAE,QAAQ,MAAM,GAChB,qBACF,CAAC;AAED,IAAa,4BAA4BA,eAAE,MAAM,CAC/CA,eAAE,QAAQ,MAAM,GAChB,sBACF,CAAC"}
@@ -162,7 +162,7 @@ export declare const pushErrorSchema: v.UnionType<[v.ObjectType<{
162
162
  clientID: string;
163
163
  }[]>;
164
164
  }, undefined>]>;
165
- export declare const pushResponseBodySchema: v.UnionType<[v.ObjectType<{
165
+ declare const pushResponseBodySchema: v.UnionType<[v.ObjectType<{
166
166
  mutations: v.ArrayType<v.ObjectType<{
167
167
  id: v.ObjectType<{
168
168
  id: v.Type<number>;
@@ -372,7 +372,6 @@ export declare const ackMutationResponsesMessageSchema: v.TupleType<[v.Type<"ack
372
372
  export type PushBody = v.Infer<typeof pushBodySchema>;
373
373
  export type PushMessage = v.Infer<typeof pushMessageSchema>;
374
374
  export type PushResponseBody = v.Infer<typeof pushResponseBodySchema>;
375
- export type PushResponse = v.Infer<typeof pushResponseSchema>;
376
375
  export type PushResponseMessage = v.Infer<typeof pushResponseMessageSchema>;
377
376
  export type MutationResponse = v.Infer<typeof mutationResponseSchema>;
378
377
  /**
@@ -380,6 +379,5 @@ export type MutationResponse = v.Infer<typeof mutationResponseSchema>;
380
379
  */
381
380
  export type PushError = v.Infer<typeof pushErrorSchema>;
382
381
  export type PushOk = v.Infer<typeof pushOkSchema>;
383
- export type AckMutationMessage = v.Infer<typeof ackMutationResponsesMessageSchema>;
384
382
  export {};
385
383
  //# sourceMappingURL=push.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAGhD,OAAO,EAAC,sBAAsB,EAAiB,MAAM,eAAe,CAAC;AAErE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUzB;;;OAGG;;IAEH,sDAAsD;;aAEtD,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAT5B;;;OAGG;;IAEH,sDAAsD;;eAIqB,CAAC;AAE9E,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;aAEhB,CAAC;AA4CH;;GAEG;AACH,eAAO,MAAM,eAAe;IAzC1B,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;eAWnB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;IAhDjC,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;iBAawD,CAAC;AAE7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;IAlD7B,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBnB,CAAC;AACF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;IAtDpC,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;mBAsBlB,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;eAG5C,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CACtC,OAAO,iCAAiC,CACzC,CAAC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAGhD,OAAO,EAAC,sBAAsB,EAAiB,MAAM,eAAe,CAAC;AAErE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUzB;;;OAGG;;IAEH,sDAAsD;;aAEtD,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAT5B;;;OAGG;;IAEH,sDAAsD;;eAIqB,CAAC;AAE9E,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;aAEhB,CAAC;AA4CH;;GAEG;AACH,eAAO,MAAM,eAAe;IAzC1B,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;eAWnB,CAAC;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;IAhD1B,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;iBAaiD,CAAC;AAEtE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;IAlD7B,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBnB,CAAC;AACF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;IAtDpC,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;;IAOlB,kBAAkB;;IAElB,kBAAkB;;IAElB,kBAAkB;;;;;mBAsBlB,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;eAG5C,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","names":[],"sources":["../../../../zero-protocol/src/push.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {pushFailedBodySchema} from './error.ts';\nimport {mutationIDSchema} from './mutation-id.ts';\nimport {mutationResponseSchema, mutationSchema} from './mutation.ts';\n\nexport const pushBodySchema = v.object({\n clientGroupID: v.string(),\n mutations: v.array(mutationSchema),\n pushVersion: v.number(),\n // For legacy (CRUD) mutations, the schema is tied to the client group /\n // sync connection. For custom mutations, schema versioning is delegated\n // to the custom protocol / api-server.\n schemaVersion: v.number().optional(),\n timestamp: v.number(),\n requestID: v.string(),\n /**\n * @deprecated auth is managed at client-group scope via connect/updateAuth\n * and should not be included in push messages.\n */\n auth: v.string().optional(),\n /** W3C traceparent header for distributed tracing. */\n traceparent: v.string().optional(),\n});\n\nexport const pushMessageSchema = v.tuple([v.literal('push'), pushBodySchema]);\n\nconst pushOkSchema = v.object({\n mutations: v.array(mutationResponseSchema),\n});\n\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nconst unsupportedPushVersionSchema = v.object({\n /** @deprecated */\n error: v.literal('unsupportedPushVersion'),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nconst unsupportedSchemaVersionSchema = v.object({\n /** @deprecated */\n error: v.literal('unsupportedSchemaVersion'),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push http errors are now represented as ['error', { ... }] messages\n */\nconst httpErrorSchema = v.object({\n /** @deprecated */\n error: v.literal('http'),\n /** @deprecated */\n status: v.number(),\n /** @deprecated */\n details: v.string(),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push zero errors are now represented as ['error', { ... }] messages\n */\nconst zeroPusherErrorSchema = v.object({\n /** @deprecated */\n error: v.literal('zeroPusher'),\n /** @deprecated */\n details: v.string(),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nexport const pushErrorSchema = v.union(\n unsupportedPushVersionSchema,\n unsupportedSchemaVersionSchema,\n httpErrorSchema,\n zeroPusherErrorSchema,\n);\n\nexport const pushResponseBodySchema = v.union(pushOkSchema, pushErrorSchema);\n\nexport const pushResponseSchema = v.union(\n pushResponseBodySchema,\n pushFailedBodySchema,\n);\nexport const pushResponseMessageSchema = v.tuple([\n v.literal('pushResponse'),\n pushResponseBodySchema,\n]);\n\nexport const ackMutationResponsesMessageSchema = v.tuple([\n v.literal('ackMutationResponses'),\n mutationIDSchema,\n]);\n\nexport type PushBody = v.Infer<typeof pushBodySchema>;\nexport type PushMessage = v.Infer<typeof pushMessageSchema>;\nexport type PushResponseBody = v.Infer<typeof pushResponseBodySchema>;\nexport type PushResponse = v.Infer<typeof pushResponseSchema>;\nexport type PushResponseMessage = v.Infer<typeof pushResponseMessageSchema>;\nexport type MutationResponse = v.Infer<typeof mutationResponseSchema>;\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nexport type PushError = v.Infer<typeof pushErrorSchema>;\nexport type PushOk = v.Infer<typeof pushOkSchema>;\nexport type AckMutationMessage = v.Infer<\n typeof ackMutationResponsesMessageSchema\n>;\n"],"mappings":";;;;;AAKA,IAAa,iBAAiB,eAAE,OAAO;CACrC,eAAe,eAAE,OAAO;CACxB,WAAW,eAAE,MAAM,cAAc;CACjC,aAAa,eAAE,OAAO;CAItB,eAAe,eAAE,OAAO,EAAE,SAAS;CACnC,WAAW,eAAE,OAAO;CACpB,WAAW,eAAE,OAAO;;;;;CAKpB,MAAM,eAAE,OAAO,EAAE,SAAS;;CAE1B,aAAa,eAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,IAAa,oBAAoB,eAAE,MAAM,CAAC,eAAE,QAAQ,MAAM,GAAG,cAAc,CAAC;AAE5E,IAAM,eAAe,eAAE,OAAO,EAC5B,WAAW,eAAE,MAAM,sBAAsB,EAC3C,CAAC;;;;AAKD,IAAM,+BAA+B,eAAE,OAAO;;CAE5C,OAAO,eAAE,QAAQ,wBAAwB;;CAEzC,aAAa,eAAE,MAAM,gBAAgB,EAAE,SAAS;AAClD,CAAC;;;;AAID,IAAM,iCAAiC,eAAE,OAAO;;CAE9C,OAAO,eAAE,QAAQ,0BAA0B;;CAE3C,aAAa,eAAE,MAAM,gBAAgB,EAAE,SAAS;AAClD,CAAC;;;;AAID,IAAM,kBAAkB,eAAE,OAAO;;CAE/B,OAAO,eAAE,QAAQ,MAAM;;CAEvB,QAAQ,eAAE,OAAO;;CAEjB,SAAS,eAAE,OAAO;;CAElB,aAAa,eAAE,MAAM,gBAAgB,EAAE,SAAS;AAClD,CAAC;;;;AAID,IAAM,wBAAwB,eAAE,OAAO;;CAErC,OAAO,eAAE,QAAQ,YAAY;;CAE7B,SAAS,eAAE,OAAO;;CAElB,aAAa,eAAE,MAAM,gBAAgB,EAAE,SAAS;AAClD,CAAC;;;;AAID,IAAa,kBAAkB,eAAE,MAC/B,8BACA,gCACA,iBACA,qBACF;AAEA,IAAa,yBAAyB,eAAE,MAAM,cAAc,eAAe;AAEzC,eAAE,MAClC,wBACA,oBACF;AACA,IAAa,4BAA4B,eAAE,MAAM,CAC/C,eAAE,QAAQ,cAAc,GACxB,sBACF,CAAC;AAED,IAAa,oCAAoC,eAAE,MAAM,CACvD,eAAE,QAAQ,sBAAsB,GAChC,gBACF,CAAC"}
1
+ {"version":3,"file":"push.js","names":["v"],"sources":["../../../../zero-protocol/src/push.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {pushFailedBodySchema} from './error.ts';\nimport {mutationIDSchema} from './mutation-id.ts';\nimport {mutationResponseSchema, mutationSchema} from './mutation.ts';\n\nexport const pushBodySchema = v.object({\n clientGroupID: v.string(),\n mutations: v.array(mutationSchema),\n pushVersion: v.number(),\n // For legacy (CRUD) mutations, the schema is tied to the client group /\n // sync connection. For custom mutations, schema versioning is delegated\n // to the custom protocol / api-server.\n schemaVersion: v.number().optional(),\n timestamp: v.number(),\n requestID: v.string(),\n /**\n * @deprecated auth is managed at client-group scope via connect/updateAuth\n * and should not be included in push messages.\n */\n auth: v.string().optional(),\n /** W3C traceparent header for distributed tracing. */\n traceparent: v.string().optional(),\n});\n\nexport const pushMessageSchema = v.tuple([v.literal('push'), pushBodySchema]);\n\nconst pushOkSchema = v.object({\n mutations: v.array(mutationResponseSchema),\n});\n\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nconst unsupportedPushVersionSchema = v.object({\n /** @deprecated */\n error: v.literal('unsupportedPushVersion'),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nconst unsupportedSchemaVersionSchema = v.object({\n /** @deprecated */\n error: v.literal('unsupportedSchemaVersion'),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push http errors are now represented as ['error', { ... }] messages\n */\nconst httpErrorSchema = v.object({\n /** @deprecated */\n error: v.literal('http'),\n /** @deprecated */\n status: v.number(),\n /** @deprecated */\n details: v.string(),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push zero errors are now represented as ['error', { ... }] messages\n */\nconst zeroPusherErrorSchema = v.object({\n /** @deprecated */\n error: v.literal('zeroPusher'),\n /** @deprecated */\n details: v.string(),\n /** @deprecated */\n mutationIDs: v.array(mutationIDSchema).optional(),\n});\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nexport const pushErrorSchema = v.union(\n unsupportedPushVersionSchema,\n unsupportedSchemaVersionSchema,\n httpErrorSchema,\n zeroPusherErrorSchema,\n);\n\nconst pushResponseBodySchema = v.union(pushOkSchema, pushErrorSchema);\n\nexport const pushResponseSchema = v.union(\n pushResponseBodySchema,\n pushFailedBodySchema,\n);\nexport const pushResponseMessageSchema = v.tuple([\n v.literal('pushResponse'),\n pushResponseBodySchema,\n]);\n\nexport const ackMutationResponsesMessageSchema = v.tuple([\n v.literal('ackMutationResponses'),\n mutationIDSchema,\n]);\n\nexport type PushBody = v.Infer<typeof pushBodySchema>;\nexport type PushMessage = v.Infer<typeof pushMessageSchema>;\nexport type PushResponseBody = v.Infer<typeof pushResponseBodySchema>;\nexport type PushResponseMessage = v.Infer<typeof pushResponseMessageSchema>;\nexport type MutationResponse = v.Infer<typeof mutationResponseSchema>;\n/**\n * @deprecated push errors are now represented as ['error', { ... }] messages\n */\nexport type PushError = v.Infer<typeof pushErrorSchema>;\nexport type PushOk = v.Infer<typeof pushOkSchema>;\n"],"mappings":";;;;;AAKA,IAAa,iBAAiBA,eAAE,OAAO;CACrC,eAAeA,eAAE,OAAO;CACxB,WAAWA,eAAE,MAAM,cAAc;CACjC,aAAaA,eAAE,OAAO;CAItB,eAAeA,eAAE,OAAO,CAAC,CAAC,SAAS;CACnC,WAAWA,eAAE,OAAO;CACpB,WAAWA,eAAE,OAAO;;;;;CAKpB,MAAMA,eAAE,OAAO,CAAC,CAAC,SAAS;;CAE1B,aAAaA,eAAE,OAAO,CAAC,CAAC,SAAS;AACnC,CAAC;AAED,IAAa,oBAAoBA,eAAE,MAAM,CAACA,eAAE,QAAQ,MAAM,GAAG,cAAc,CAAC;AAE5E,IAAM,eAAeA,eAAE,OAAO,EAC5B,WAAWA,eAAE,MAAM,sBAAsB,EAC3C,CAAC;;;;AAKD,IAAM,+BAA+BA,eAAE,OAAO;;CAE5C,OAAOA,eAAE,QAAQ,wBAAwB;;CAEzC,aAAaA,eAAE,MAAM,gBAAgB,CAAC,CAAC,SAAS;AAClD,CAAC;;;;AAID,IAAM,iCAAiCA,eAAE,OAAO;;CAE9C,OAAOA,eAAE,QAAQ,0BAA0B;;CAE3C,aAAaA,eAAE,MAAM,gBAAgB,CAAC,CAAC,SAAS;AAClD,CAAC;;;;AAID,IAAM,kBAAkBA,eAAE,OAAO;;CAE/B,OAAOA,eAAE,QAAQ,MAAM;;CAEvB,QAAQA,eAAE,OAAO;;CAEjB,SAASA,eAAE,OAAO;;CAElB,aAAaA,eAAE,MAAM,gBAAgB,CAAC,CAAC,SAAS;AAClD,CAAC;;;;AAID,IAAM,wBAAwBA,eAAE,OAAO;;CAErC,OAAOA,eAAE,QAAQ,YAAY;;CAE7B,SAASA,eAAE,OAAO;;CAElB,aAAaA,eAAE,MAAM,gBAAgB,CAAC,CAAC,SAAS;AAClD,CAAC;;;;AAID,IAAa,kBAAkBA,eAAE,MAC/B,8BACA,gCACA,iBACA,qBACF;AAEA,IAAM,yBAAyBA,eAAE,MAAM,cAAc,eAAe;AAElCA,eAAE,MAClC,wBACA,oBACF;AACA,IAAa,4BAA4BA,eAAE,MAAM,CAC/CA,eAAE,QAAQ,cAAc,GACxB,sBACF,CAAC;AAED,IAAa,oCAAoCA,eAAE,MAAM,CACvDA,eAAE,QAAQ,sBAAsB,GAChC,gBACF,CAAC"}
@@ -1,9 +1,4 @@
1
1
  import * as v from '../../shared/src/valita.ts';
2
- export declare const putOpSchema: v.ObjectType<{
3
- op: v.Type<"put">;
4
- hash: v.Type<string>;
5
- ttl: v.Optional<number>;
6
- }, undefined>;
7
2
  export declare const upPutOpSchema: v.ObjectType<Omit<{
8
3
  op: v.Type<"put">;
9
4
  hash: v.Type<string>;
@@ -13,13 +8,6 @@ export declare const upPutOpSchema: v.ObjectType<Omit<{
13
8
  name: v.Optional<string>;
14
9
  args: v.Optional<readonly import("../../shared/src/json.ts").ReadonlyJSONValue[]>;
15
10
  }, undefined>;
16
- declare const delOpSchema: v.ObjectType<{
17
- op: v.Type<"del">;
18
- hash: v.Type<string>;
19
- }, undefined>;
20
- declare const clearOpSchema: v.ObjectType<{
21
- op: v.Type<"clear">;
22
- }, undefined>;
23
11
  declare const patchOpSchema: v.UnionType<[v.ObjectType<{
24
12
  op: v.Type<"put">;
25
13
  hash: v.Type<string>;
@@ -68,12 +56,8 @@ export declare const upQueriesPatchSchema: v.ArrayType<v.UnionType<[v.ObjectType
68
56
  }, undefined>, v.ObjectType<{
69
57
  op: v.Type<"clear">;
70
58
  }, undefined>]>>;
71
- export type QueriesPutOp = v.Infer<typeof putOpSchema>;
72
- export type QueriesDelOp = v.Infer<typeof delOpSchema>;
73
- export type QueriesClearOp = v.Infer<typeof clearOpSchema>;
74
59
  export type QueriesPatchOp = v.Infer<typeof patchOpSchema>;
75
60
  export type UpQueriesPatchOp = v.Infer<typeof upPatchOpSchema>;
76
- export type QueriesPatch = v.Infer<typeof queriesPatchSchema>;
77
61
  export type UpQueriesPatch = v.Infer<typeof upQueriesPatchSchema>;
78
62
  export {};
79
63
  //# sourceMappingURL=queries-patch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries-patch.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/queries-patch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAGhD,eAAO,MAAM,WAAW;;;;aAItB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;aAOxB,CAAC;AAEH,QAAA,MAAM,WAAW;;;aAGf,CAAC;AAEH,QAAA,MAAM,aAAa;;aAEjB,CAAC;AAEH,QAAA,MAAM,aAAa;;;;;;;;;eAAmD,CAAC;AACvE,QAAA,MAAM,eAAe;;;;;;;;;;;;;eAAqD,CAAC;AAE3E,eAAO,MAAM,kBAAkB;;;;;;;;;gBAAyB,CAAC;AACzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;gBAA2B,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"queries-patch.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/queries-patch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAShD,eAAO,MAAM,aAAa;;;;;;;;aAOxB,CAAC;AAWH,QAAA,MAAM,aAAa;;;;;;;;;eAAmD,CAAC;AACvE,QAAA,MAAM,eAAe;;;;;;;;;;;;;eAAqD,CAAC;AAE3E,eAAO,MAAM,kBAAkB;;;;;;;;;gBAAyB,CAAC;AACzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;gBAA2B,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -22,6 +22,6 @@ var upPatchOpSchema = valita_exports.union(upPutOpSchema, delOpSchema, clearOpSc
22
22
  var queriesPatchSchema = valita_exports.array(patchOpSchema);
23
23
  var upQueriesPatchSchema = valita_exports.array(upPatchOpSchema);
24
24
  //#endregion
25
- export { queriesPatchSchema, upQueriesPatchSchema };
25
+ export { queriesPatchSchema, upPutOpSchema, upQueriesPatchSchema };
26
26
 
27
27
  //# sourceMappingURL=queries-patch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries-patch.js","names":[],"sources":["../../../../zero-protocol/src/queries-patch.ts"],"sourcesContent":["import {jsonSchema} from '../../shared/src/json-schema.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {strictASTSchema} from './ast.ts';\n\nexport const putOpSchema = v.object({\n op: v.literal('put'),\n hash: v.string(),\n ttl: v.number().optional(),\n});\n\nexport const upPutOpSchema = putOpSchema.extend({\n // All fields are optional in this transitional period.\n // - ast is filled in for client queries\n // - name and args are filled in for custom queries\n ast: strictASTSchema.optional(),\n name: v.string().optional(),\n args: v.readonly(v.array(jsonSchema)).optional(),\n});\n\nconst delOpSchema = v.object({\n op: v.literal('del'),\n hash: v.string(),\n});\n\nconst clearOpSchema = v.object({\n op: v.literal('clear'),\n});\n\nconst patchOpSchema = v.union(putOpSchema, delOpSchema, clearOpSchema);\nconst upPatchOpSchema = v.union(upPutOpSchema, delOpSchema, clearOpSchema);\n\nexport const queriesPatchSchema = v.array(patchOpSchema);\nexport const upQueriesPatchSchema = v.array(upPatchOpSchema);\n\nexport type QueriesPutOp = v.Infer<typeof putOpSchema>;\nexport type QueriesDelOp = v.Infer<typeof delOpSchema>;\nexport type QueriesClearOp = v.Infer<typeof clearOpSchema>;\nexport type QueriesPatchOp = v.Infer<typeof patchOpSchema>;\nexport type UpQueriesPatchOp = v.Infer<typeof upPatchOpSchema>;\nexport type QueriesPatch = v.Infer<typeof queriesPatchSchema>;\nexport type UpQueriesPatch = v.Infer<typeof upQueriesPatchSchema>;\n"],"mappings":";;;;AAIA,IAAa,cAAc,eAAE,OAAO;CAClC,IAAI,eAAE,QAAQ,KAAK;CACnB,MAAM,eAAE,OAAO;CACf,KAAK,eAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAED,IAAa,gBAAgB,YAAY,OAAO;CAI9C,KAAK,gBAAgB,SAAS;CAC9B,MAAM,eAAE,OAAO,EAAE,SAAS;CAC1B,MAAM,SAAW,eAAE,MAAM,UAAU,CAAC,EAAE,SAAS;AACjD,CAAC;AAED,IAAM,cAAc,eAAE,OAAO;CAC3B,IAAI,eAAE,QAAQ,KAAK;CACnB,MAAM,eAAE,OAAO;AACjB,CAAC;AAED,IAAM,gBAAgB,eAAE,OAAO,EAC7B,IAAI,eAAE,QAAQ,OAAO,EACvB,CAAC;AAED,IAAM,gBAAgB,eAAE,MAAM,aAAa,aAAa,aAAa;AACrE,IAAM,kBAAkB,eAAE,MAAM,eAAe,aAAa,aAAa;AAEzE,IAAa,qBAAqB,eAAE,MAAM,aAAa;AACvD,IAAa,uBAAuB,eAAE,MAAM,eAAe"}
1
+ {"version":3,"file":"queries-patch.js","names":["v","v.readonly"],"sources":["../../../../zero-protocol/src/queries-patch.ts"],"sourcesContent":["import {jsonSchema} from '../../shared/src/json-schema.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {strictASTSchema} from './ast.ts';\n\nconst putOpSchema = v.object({\n op: v.literal('put'),\n hash: v.string(),\n ttl: v.number().optional(),\n});\n\nexport const upPutOpSchema = putOpSchema.extend({\n // All fields are optional in this transitional period.\n // - ast is filled in for client queries\n // - name and args are filled in for custom queries\n ast: strictASTSchema.optional(),\n name: v.string().optional(),\n args: v.readonly(v.array(jsonSchema)).optional(),\n});\n\nconst delOpSchema = v.object({\n op: v.literal('del'),\n hash: v.string(),\n});\n\nconst clearOpSchema = v.object({\n op: v.literal('clear'),\n});\n\nconst patchOpSchema = v.union(putOpSchema, delOpSchema, clearOpSchema);\nconst upPatchOpSchema = v.union(upPutOpSchema, delOpSchema, clearOpSchema);\n\nexport const queriesPatchSchema = v.array(patchOpSchema);\nexport const upQueriesPatchSchema = v.array(upPatchOpSchema);\n\nexport type QueriesPatchOp = v.Infer<typeof patchOpSchema>;\nexport type UpQueriesPatchOp = v.Infer<typeof upPatchOpSchema>;\nexport type UpQueriesPatch = v.Infer<typeof upQueriesPatchSchema>;\n"],"mappings":";;;;AAIA,IAAM,cAAcA,eAAE,OAAO;CAC3B,IAAIA,eAAE,QAAQ,KAAK;CACnB,MAAMA,eAAE,OAAO;CACf,KAAKA,eAAE,OAAO,CAAC,CAAC,SAAS;AAC3B,CAAC;AAED,IAAa,gBAAgB,YAAY,OAAO;CAI9C,KAAK,gBAAgB,SAAS;CAC9B,MAAMA,eAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,MAAMC,SAAWD,eAAE,MAAM,UAAU,CAAC,CAAC,CAAC,SAAS;AACjD,CAAC;AAED,IAAM,cAAcA,eAAE,OAAO;CAC3B,IAAIA,eAAE,QAAQ,KAAK;CACnB,MAAMA,eAAE,OAAO;AACjB,CAAC;AAED,IAAM,gBAAgBA,eAAE,OAAO,EAC7B,IAAIA,eAAE,QAAQ,OAAO,EACvB,CAAC;AAED,IAAM,gBAAgBA,eAAE,MAAM,aAAa,aAAa,aAAa;AACrE,IAAM,kBAAkBA,eAAE,MAAM,eAAe,aAAa,aAAa;AAEzE,IAAa,qBAAqBA,eAAE,MAAM,aAAa;AACvD,IAAa,uBAAuBA,eAAE,MAAM,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-hash-visitor.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/query-hash-visitor.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,KAAK,EACV,GAAG,EAIH,MAAM,EAEP,MAAM,UAAU,CAAC;AA8UlB,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAcxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,MAAM,CAaR;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,eAAe,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,GAC9C,MAAM,CA2BR"}
1
+ {"version":3,"file":"query-hash-visitor.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/query-hash-visitor.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,KAAK,EAEV,GAAG,EAIH,MAAM,EAEP,MAAM,UAAU,CAAC;AAsYlB,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAcxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,MAAM,CAaR;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,eAAe,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,GAC9C,MAAM,CA2BR"}
@@ -63,6 +63,10 @@ var TAG_SYSTEM_PERMISSIONS = 8202;
63
63
  var TAG_SYSTEM_CLIENT = 8203;
64
64
  var TAG_SYSTEM_TEST = 8204;
65
65
  var TAG_JUNCTION = 8205;
66
+ var TAG_AGGREGATE = 8206;
67
+ var TAG_JSON = 8207;
68
+ var TAG_GROUP_BY = 8208;
69
+ var TAG_DISTINCT = 8209;
66
70
  var STR_MARK = 1073741824;
67
71
  function reset() {
68
72
  h1 = PRIME32_5;
@@ -170,6 +174,11 @@ function visitValuePosition(v) {
170
174
  if (typeof v.field === "string") mixString(v.field);
171
175
  else visitCompoundKey(v.field);
172
176
  return;
177
+ case "json":
178
+ mix(TAG_JSON);
179
+ visitValuePosition(v.value);
180
+ visitValue(v.path);
181
+ return;
173
182
  default: unreachable(v);
174
183
  }
175
184
  }
@@ -203,8 +212,31 @@ function visitCorrelatedSubquery(csq) {
203
212
  visitCompoundKey(csq.correlation.childField);
204
213
  mix(csq.hidden === void 0 ? TAG_UNDEF : csq.hidden ? TAG_TRUE : TAG_FALSE);
205
214
  mixOptionalSystem(csq.system);
215
+ visitAggregate(csq.aggregate);
206
216
  visitAST(csq.subquery);
207
217
  }
218
+ /**
219
+ * An absent aggregate writes nothing, unlike the other optionals, so that the
220
+ * hash of every query without one is unchanged by the field's addition. That
221
+ * is unambiguous because of where it is written: an aggregate is always
222
+ * followed by a word no aggregate could begin with (TAG_END on an AST, TAG_OBJ
223
+ * on a correlated subquery), and a present one leads with its own tag.
224
+ */
225
+ function visitAggregate(aggregate) {
226
+ if (aggregate === void 0) return;
227
+ mix(TAG_AGGREGATE);
228
+ mixString(aggregate.fn);
229
+ visitOptionalString(aggregate.field);
230
+ if (aggregate.path !== void 0) {
231
+ mix(TAG_JSON);
232
+ visitValue(aggregate.path);
233
+ }
234
+ if (aggregate.distinct !== void 0) {
235
+ mix(TAG_DISTINCT);
236
+ mix(aggregate.distinct.length);
237
+ for (const col of aggregate.distinct) mixString(col);
238
+ }
239
+ }
208
240
  function visitAST(ast) {
209
241
  mix(TAG_OBJ);
210
242
  visitOptionalString(ast.schema);
@@ -230,6 +262,12 @@ function visitAST(ast) {
230
262
  mixNumber(ast.limit);
231
263
  }
232
264
  visitOrdering(ast.orderBy);
265
+ visitAggregate(ast.aggregate);
266
+ if (ast.groupBy !== void 0) {
267
+ mix(TAG_GROUP_BY);
268
+ mix(ast.groupBy.length);
269
+ for (const col of ast.groupBy) mixString(col);
270
+ }
233
271
  mix(TAG_END);
234
272
  }
235
273
  function hashAST(ast) {
@@ -1 +1 @@
1
- {"version":3,"file":"query-hash-visitor.js","names":[],"sources":["../../../../zero-protocol/src/query-hash-visitor.ts"],"sourcesContent":["import {unreachable} from '../../shared/src/asserts.ts';\n// These live in shared/src/xxhash32.ts, imported via hash.ts's re-export\n// rather than directly: the direct zero-protocol -> shared/xxhash32.ts edge\n// makes tsc 7.0.2 mis-evaluate Query-type relations in other programs --\n// phantom TS2345s in zql's runnable-query-impl.ts under the packages/zero\n// declaration build, and zero-client silently losing the type error that\n// custom.test.ts pins with a ts-expect-error directive. Bisected cold-cache\n// to that one import statement; the hash.ts route checks clean everywhere.\n// Collapse to a direct import when TypeScript is upgraded past this.\nimport {\n avalanche32,\n PRIME32_1,\n PRIME32_5,\n round32,\n} from '../../shared/src/hash.ts';\nimport type {Format} from '../../zero-types/src/format.ts';\n\n/**\n * Hashes a normalized AST by visiting it, rather than by rendering it to JSON\n * and hashing the bytes. `hashOfAST` and `hashOfNameAndArgs` in\n * `query-hash.ts` are both built on this, so these digests are the query IDs\n * the client registers and the transformation hashes the server stores.\n *\n * The pipeline this replaced was\n * `h64(JSON.stringify(normalizeAST(ast))).toString(36)`, which materialized\n * the whole AST as a string, UTF-8 encoded it, and only then hashed it — three\n * passes over the data, two of which existed purely to produce bytes to hash.\n *\n * A visitor can fold values into the hash state as it walks, so nothing is\n * materialized at all. The primitives that make that pay off:\n *\n * - Two 32-bit accumulators held in module-level `let`s, so the \"state\" is\n * plain numbers in registers rather than an object being threaded through\n * the walk.\n * - xxHash32's own round and final mix, shared with `shared/src/hash.ts` via\n * `shared/src/xxhash32.ts`. Only the ingestion differs: that one feeds them\n * UTF-8 bytes, this one feeds them words straight out of the structure.\n * - Strings folded straight from `charCodeAt`, two UTF-16 units at a time, into\n * one 32-bit word. No UTF-8 encoding, and half the loop iterations a\n * byte-oriented hash would need over ASCII.\n *\n * These digests do not agree with xxHash32 over the old JSON encoding, and are\n * not meant to: nothing recomputes a hash produced elsewhere and compares it,\n * so the encoding is free to change as long as every writer moves together.\n * What it does have to give is distinct words for structurally distinct\n * queries — a 64-bit digest cannot promise that absolutely, but every field\n * and node kind must at least reach the mixer, and no two of them may be\n * written so as to be confusable. `query-hash-visitor.test.ts` holds that\n * line with a corpus and a per-field mutation test.\n *\n * The walk is deliberately specialized to the AST shape rather than written as\n * a generic JSON-value walk. That is not premature: a generic version was\n * measured alongside this one and came out ~2.4x slower, no better than the\n * `JSON.stringify` it was meant to replace, because `for...in` and the\n * megamorphic property loads cost about what the native stringify costs. Only\n * `visitValue` below stays generic, for the two places an AST holds arbitrary\n * JSON: a literal's value and a bound's row.\n */\nimport type {\n AST,\n Condition,\n CorrelatedSubquery,\n Ordering,\n System,\n ValuePosition,\n} from './ast.ts';\n\n// Two 32-bit lanes, combined into 64 bits at the end. Module-level so the walk\n// mutates registers rather than allocating or threading state through it.\nlet h1 = 0;\nlet h2 = 0;\n\n/**\n * Fold one 32-bit word into both lanes.\n *\n * Both lanes run xxHash32's own round; only their starting values differ, so\n * they diverge immediately and stay diverged. That is the same construction\n * `h64` uses to widen xxHash32 past 32 bits, just fed words taken from a\n * structure rather than bytes taken from a string.\n */\nfunction mix(w: number): void {\n h1 = round32(h1, w);\n h2 = round32(h2, w);\n}\n\n/**\n * Fold a string, two UTF-16 units per word.\n *\n * The leading length keeps `['ab','c']` and `['a','bc']` apart. STR_MARK is\n * folded into that same word rather than mixed separately: it costs nothing,\n * and since every other count written by this file is a small array length, a\n * string can never fold like one.\n */\nfunction mixString(s: string): void {\n const n = s.length;\n mix(n | STR_MARK);\n let i = 0;\n for (; i + 1 < n; i += 2) {\n mix(s.charCodeAt(i) | (s.charCodeAt(i + 1) << 16));\n }\n if (i < n) {\n mix(s.charCodeAt(i));\n }\n}\n\n// A DataView with an explicit byte order, not a Float64Array/Int32Array\n// aliasing pair: typed arrays read the buffer in host byte order, and these\n// digests are persisted, so a big-endian runtime would fold a float's words\n// swapped and disagree with every little-endian peer.\nconst numView = new DataView(new ArrayBuffer(8));\n\n/** Fold a number: one word for an int32, two for anything else. */\nfunction mixNumber(n: number): void {\n if ((n | 0) === n) {\n mix(n);\n } else {\n numView.setFloat64(0, n, true);\n mix(numView.getInt32(0, true));\n mix(numView.getInt32(4, true));\n }\n}\n\n// Structural tags. Distinct constants so that, say, a string \"1\" and the\n// number 1 cannot fold to the same state.\nconst TAG_NULL = 0x1001;\nconst TAG_FALSE = 0x1002;\nconst TAG_TRUE = 0x1003;\nconst TAG_INT = 0x1004;\nconst TAG_FLOAT = 0x1005;\nconst TAG_ARR = 0x1007;\nconst TAG_OBJ = 0x1008;\nconst TAG_END = 0x1009;\nconst TAG_UNDEF = 0x100a;\n\n// Discriminators for the AST's own unions, kept distinct from the value tags\n// above so a node kind can never fold like a value of some other type.\nconst TAG_LITERAL = 0x2001;\nconst TAG_COLUMN = 0x2002;\nconst TAG_STATIC = 0x2003;\nconst TAG_SIMPLE = 0x2004;\nconst TAG_SUBQUERY = 0x2005;\nconst TAG_AND = 0x2006;\nconst TAG_OR = 0x2007;\nconst TAG_FORMAT = 0x2008;\nconst TAG_NAME_ARGS = 0x2009;\n// `System` is a closed set of three, so it folds as one word rather than as a\n// string -- on an AST it appears once per correlated subquery, so this is on\n// the walk's hot path. The switch below is exhaustive, so adding a member is a\n// type error rather than a silent collision with an existing one.\nconst TAG_SYSTEM_PERMISSIONS = 0x200a;\nconst TAG_SYSTEM_CLIENT = 0x200b;\nconst TAG_SYSTEM_TEST = 0x200c;\nconst TAG_JUNCTION = 0x200d;\n\n// Set on a string's length word. High enough that no array length reaches it.\nconst STR_MARK = 0x40000000;\n\nfunction reset(): void {\n h1 = PRIME32_5;\n h2 = PRIME32_1;\n}\n\n/** Collapse the two lanes into one 64-bit value, avalanching each first. */\nfunction finalize(): string {\n return (\n avalanche32(h1).toString(36).padStart(7, '0') +\n avalanche32(h2).toString(36).padStart(7, '0')\n );\n}\n\n// ---------------------------------------------------------------------------\n// The generic part: arbitrary JSON, for literal values and bound rows.\n// ---------------------------------------------------------------------------\n\nfunction visitValue(v: unknown): void {\n switch (typeof v) {\n case 'string':\n mixString(v);\n return;\n case 'number':\n // NaN and Infinity are null by the time they reach the wire, because\n // that is what JSON.stringify writes for them. Two queries identical on\n // the wire must not get different IDs.\n if (!Number.isFinite(v)) {\n mix(TAG_NULL);\n return;\n }\n mix((v | 0) === v ? TAG_INT : TAG_FLOAT);\n mixNumber(v);\n return;\n case 'boolean':\n mix(v ? TAG_TRUE : TAG_FALSE);\n return;\n case 'object': {\n if (v === null) {\n mix(TAG_NULL);\n return;\n }\n if (Array.isArray(v)) {\n mix(TAG_ARR);\n for (let i = 0; i < v.length; i++) {\n // An `undefined` element is `null` by the time it reaches the wire,\n // because that is what JSON.stringify makes of it. Dropping it\n // instead would fold `[undefined]` onto `[]`.\n const e: unknown = v[i];\n visitValue(e === undefined ? null : e);\n }\n mix(TAG_END);\n return;\n }\n mix(TAG_OBJ);\n // Sorted, so the digest is a function of the object's contents and not\n // of its key order. Rows and custom-query args round-trip through\n // Postgres JSONB, which reorders keys; an order-sensitive digest made\n // reloaded query records look changed. (The AST's own fields don't need\n // this: visitAST reads them in a fixed order by name.)\n const keys = Object.keys(v).sort();\n for (const k of keys) {\n const val = (v as Record<string, unknown>)[k];\n if (val === undefined) {\n continue; // as JSON.stringify does\n }\n mixString(k);\n visitValue(val);\n }\n mix(TAG_END);\n return;\n }\n default:\n // `undefined` and functions as an object's value: dropped, as\n // JSON.stringify drops them. Array elements are handled above.\n return;\n }\n}\n\n// ---------------------------------------------------------------------------\n// The specialized part: the AST's own shape.\n// ---------------------------------------------------------------------------\n\nfunction visitOptionalString(s: string | undefined): void {\n if (s === undefined) {\n mix(TAG_UNDEF);\n } else {\n mixString(s);\n }\n}\n\nfunction mixOptionalSystem(system: System | undefined): void {\n if (system === undefined) {\n mix(TAG_UNDEF);\n } else {\n mixSystem(system);\n }\n}\n\nfunction mixSystem(system: System): void {\n switch (system) {\n case 'permissions':\n mix(TAG_SYSTEM_PERMISSIONS);\n break;\n case 'client':\n mix(TAG_SYSTEM_CLIENT);\n break;\n case 'test':\n mix(TAG_SYSTEM_TEST);\n break;\n default:\n unreachable(system);\n }\n}\n\nfunction visitCompoundKey(k: readonly string[]): void {\n mix(k.length);\n for (let i = 0; i < k.length; i++) {\n mixString(k[i]);\n }\n}\n\nfunction visitOrdering(o: Ordering | undefined): void {\n if (o === undefined) {\n mix(TAG_UNDEF);\n return;\n }\n mix(o.length);\n for (let i = 0; i < o.length; i++) {\n const [field, dir] = o[i];\n mixString(field);\n mix(dir === 'asc' ? TAG_TRUE : TAG_FALSE);\n }\n}\n\nfunction visitValuePosition(v: ValuePosition): void {\n switch (v.type) {\n case 'literal':\n mix(TAG_LITERAL);\n visitValue(v.value);\n return;\n case 'column':\n mix(TAG_COLUMN);\n mixString(v.name);\n return;\n case 'static': {\n mix(TAG_STATIC);\n mixString(v.anchor);\n if (typeof v.field === 'string') {\n mixString(v.field);\n } else {\n visitCompoundKey(v.field);\n }\n return;\n }\n default:\n unreachable(v);\n }\n}\n\nfunction visitCondition(c: Condition): void {\n switch (c.type) {\n case 'simple':\n mix(TAG_SIMPLE);\n mixString(c.op);\n visitValuePosition(c.left);\n visitValuePosition(c.right);\n return;\n case 'correlatedSubquery':\n mix(TAG_SUBQUERY);\n mixString(c.op);\n mix(c.flip === undefined ? TAG_UNDEF : c.flip ? TAG_TRUE : TAG_FALSE);\n mix(c.scalar === undefined ? TAG_UNDEF : c.scalar ? TAG_TRUE : TAG_FALSE);\n visitCorrelatedSubquery(c.related);\n return;\n default: {\n c.type satisfies 'and' | 'or';\n mix(c.type === 'and' ? TAG_AND : TAG_OR);\n const conds = c.conditions;\n mix(conds.length);\n for (let i = 0; i < conds.length; i++) {\n visitCondition(conds[i]);\n }\n return;\n }\n }\n}\n\nfunction visitCorrelatedSubquery(csq: CorrelatedSubquery): void {\n visitCompoundKey(csq.correlation.parentField);\n visitCompoundKey(csq.correlation.childField);\n mix(csq.hidden === undefined ? TAG_UNDEF : csq.hidden ? TAG_TRUE : TAG_FALSE);\n mixOptionalSystem(csq.system);\n visitAST(csq.subquery);\n}\n\nfunction visitAST(ast: AST): void {\n mix(TAG_OBJ);\n visitOptionalString(ast.schema);\n mixString(ast.table);\n visitOptionalString(ast.alias);\n\n if (ast.where === undefined) {\n mix(TAG_UNDEF);\n } else {\n visitCondition(ast.where);\n }\n\n const related = ast.related;\n if (related === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(related.length);\n for (let i = 0; i < related.length; i++) {\n visitCorrelatedSubquery(related[i]);\n }\n }\n\n const start = ast.start;\n if (start === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(start.exclusive ? TAG_TRUE : TAG_FALSE);\n visitValue(start.row);\n }\n\n if (ast.limit === undefined) {\n mix(TAG_UNDEF);\n } else {\n // Tagged, because this is the one optional field whose present and absent\n // forms would otherwise both write a single bare word: an untagged\n // `limit: 4106` is the same word as TAG_UNDEF. The other optionals are\n // safe -- a present string carries STR_MARK, a condition or bound leads\n // with its own kind tag, and `related`/`orderBy` write a count followed by\n // that many items, so their streams diverge straight after.\n mix(TAG_INT);\n mixNumber(ast.limit);\n }\n\n visitOrdering(ast.orderBy);\n mix(TAG_END);\n}\n\nexport function hashAST(ast: AST): string {\n // Save and restore the lanes: `visitValue` reads properties of arbitrary\n // runtime objects, and a getter is free to ask for another hash mid-walk.\n // Without this, the inner call's reset() would corrupt the outer digest.\n const s1 = h1;\n const s2 = h2;\n try {\n reset();\n visitAST(ast);\n return finalize();\n } finally {\n h1 = s1;\n h2 = s2;\n }\n}\n\n/**\n * The identity of a custom query: its name and its arguments.\n *\n * Same walk, entered at a different node. `args` is arbitrary JSON, which is\n * what `visitValue` already exists to handle. The leading tag keeps this hash\n * space disjoint from `hashAST`'s -- both produce query IDs that live in the\n * same namespace, so an AST must not be able to fold to the same words as some\n * name and args.\n */\nexport function hashNameAndArgs(\n name: string,\n args: readonly unknown[],\n): string {\n const s1 = h1;\n const s2 = h2;\n try {\n reset();\n mix(TAG_NAME_ARGS);\n mixString(name);\n visitValue(args);\n return finalize();\n } finally {\n h1 = s1;\n h2 = s2;\n }\n}\n\n/**\n * The identity of a query as the client sees it: its AST, the shape it returns,\n * the system it was built for, and -- for a custom query -- the name and\n * arguments it was declared with.\n *\n * Everything past the AST is here because it is part of what makes two queries\n * different while leaving no trace, or an incomplete one, in the AST itself:\n *\n * - **name and args**: `nameAndArgs` reuses the AST it is given and only\n * attaches a `CustomQueryID`, so without these two different named queries\n * over the same table would be indistinguishable.\n * - **system**: a query stamps it onto every `related` entry and every `exists`\n * correlation it builds, so it is already hashed via\n * {@link visitCorrelatedSubquery} -- but a query with neither has nowhere to\n * put it, and would otherwise hash the same whether it was built for the\n * client or for permissions.\n * - **currentJunction**: builder state, set on the sub-query handed to a\n * two-hop relationship's callback, which makes `limit` and `orderBy` throw.\n * It leaves no trace in the AST at all, so two queries that differ only in\n * whether those methods work would otherwise be indistinguishable.\n *\n * The name and args are taken apart rather than as a `CustomQueryID` because\n * that type lives in `zql`, which is above this package; `hashNameAndArgs`\n * splits them the same way.\n */\nexport function hashOfQueryInternals(\n ast: AST,\n format: Format,\n system: System,\n currentJunction: string | undefined,\n customQueryName: string | undefined,\n customQueryArgs: readonly unknown[] | undefined,\n): string {\n const s1 = h1;\n const s2 = h2;\n try {\n reset();\n visitAST(ast);\n mix(TAG_FORMAT);\n visitValue(format);\n mixSystem(system);\n if (currentJunction === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(TAG_JUNCTION);\n mixString(currentJunction);\n }\n if (customQueryName === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(TAG_NAME_ARGS);\n mixString(customQueryName);\n visitValue(customQueryArgs);\n }\n return finalize();\n } finally {\n h1 = s1;\n h2 = s2;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"query-hash-visitor.js","names":[],"sources":["../../../../zero-protocol/src/query-hash-visitor.ts"],"sourcesContent":["import {unreachable} from '../../shared/src/asserts.ts';\n// These live in shared/src/xxhash32.ts, imported via hash.ts's re-export\n// rather than directly: the direct zero-protocol -> shared/xxhash32.ts edge\n// makes tsc 7.0.2 mis-evaluate Query-type relations in other programs --\n// phantom TS2345s in zql's runnable-query-impl.ts under the packages/zero\n// declaration build, and zero-client silently losing the type error that\n// custom.test.ts pins with a ts-expect-error directive. Bisected cold-cache\n// to that one import statement; the hash.ts route checks clean everywhere.\n// Collapse to a direct import when TypeScript is upgraded past this.\nimport {\n avalanche32,\n PRIME32_1,\n PRIME32_5,\n round32,\n} from '../../shared/src/hash.ts';\nimport type {Format} from '../../zero-types/src/format.ts';\n\n/**\n * Hashes a normalized AST by visiting it, rather than by rendering it to JSON\n * and hashing the bytes. `hashOfAST` and `hashOfNameAndArgs` in\n * `query-hash.ts` are both built on this, so these digests are the query IDs\n * the client registers and the transformation hashes the server stores.\n *\n * The pipeline this replaced was\n * `h64(JSON.stringify(normalizeAST(ast))).toString(36)`, which materialized\n * the whole AST as a string, UTF-8 encoded it, and only then hashed it — three\n * passes over the data, two of which existed purely to produce bytes to hash.\n *\n * A visitor can fold values into the hash state as it walks, so nothing is\n * materialized at all. The primitives that make that pay off:\n *\n * - Two 32-bit accumulators held in module-level `let`s, so the \"state\" is\n * plain numbers in registers rather than an object being threaded through\n * the walk.\n * - xxHash32's own round and final mix, shared with `shared/src/hash.ts` via\n * `shared/src/xxhash32.ts`. Only the ingestion differs: that one feeds them\n * UTF-8 bytes, this one feeds them words straight out of the structure.\n * - Strings folded straight from `charCodeAt`, two UTF-16 units at a time, into\n * one 32-bit word. No UTF-8 encoding, and half the loop iterations a\n * byte-oriented hash would need over ASCII.\n *\n * These digests do not agree with xxHash32 over the old JSON encoding, and are\n * not meant to: nothing recomputes a hash produced elsewhere and compares it,\n * so the encoding is free to change as long as every writer moves together.\n * What it does have to give is distinct words for structurally distinct\n * queries — a 64-bit digest cannot promise that absolutely, but every field\n * and node kind must at least reach the mixer, and no two of them may be\n * written so as to be confusable. `query-hash-visitor.test.ts` holds that\n * line with a corpus and a per-field mutation test.\n *\n * The walk is deliberately specialized to the AST shape rather than written as\n * a generic JSON-value walk. That is not premature: a generic version was\n * measured alongside this one and came out ~2.4x slower, no better than the\n * `JSON.stringify` it was meant to replace, because `for...in` and the\n * megamorphic property loads cost about what the native stringify costs. Only\n * `visitValue` below stays generic, for the two places an AST holds arbitrary\n * JSON: a literal's value and a bound's row.\n */\nimport type {\n Aggregate,\n AST,\n Condition,\n CorrelatedSubquery,\n Ordering,\n System,\n ValuePosition,\n} from './ast.ts';\n\n// Two 32-bit lanes, combined into 64 bits at the end. Module-level so the walk\n// mutates registers rather than allocating or threading state through it.\nlet h1 = 0;\nlet h2 = 0;\n\n/**\n * Fold one 32-bit word into both lanes.\n *\n * Both lanes run xxHash32's own round; only their starting values differ, so\n * they diverge immediately and stay diverged. That is the same construction\n * `h64` uses to widen xxHash32 past 32 bits, just fed words taken from a\n * structure rather than bytes taken from a string.\n */\nfunction mix(w: number): void {\n h1 = round32(h1, w);\n h2 = round32(h2, w);\n}\n\n/**\n * Fold a string, two UTF-16 units per word.\n *\n * The leading length keeps `['ab','c']` and `['a','bc']` apart. STR_MARK is\n * folded into that same word rather than mixed separately: it costs nothing,\n * and since every other count written by this file is a small array length, a\n * string can never fold like one.\n */\nfunction mixString(s: string): void {\n const n = s.length;\n mix(n | STR_MARK);\n let i = 0;\n for (; i + 1 < n; i += 2) {\n mix(s.charCodeAt(i) | (s.charCodeAt(i + 1) << 16));\n }\n if (i < n) {\n mix(s.charCodeAt(i));\n }\n}\n\n// A DataView with an explicit byte order, not a Float64Array/Int32Array\n// aliasing pair: typed arrays read the buffer in host byte order, and these\n// digests are persisted, so a big-endian runtime would fold a float's words\n// swapped and disagree with every little-endian peer.\nconst numView = new DataView(new ArrayBuffer(8));\n\n/** Fold a number: one word for an int32, two for anything else. */\nfunction mixNumber(n: number): void {\n if ((n | 0) === n) {\n mix(n);\n } else {\n numView.setFloat64(0, n, true);\n mix(numView.getInt32(0, true));\n mix(numView.getInt32(4, true));\n }\n}\n\n// Structural tags. Distinct constants so that, say, a string \"1\" and the\n// number 1 cannot fold to the same state.\nconst TAG_NULL = 0x1001;\nconst TAG_FALSE = 0x1002;\nconst TAG_TRUE = 0x1003;\nconst TAG_INT = 0x1004;\nconst TAG_FLOAT = 0x1005;\nconst TAG_ARR = 0x1007;\nconst TAG_OBJ = 0x1008;\nconst TAG_END = 0x1009;\nconst TAG_UNDEF = 0x100a;\n\n// Discriminators for the AST's own unions, kept distinct from the value tags\n// above so a node kind can never fold like a value of some other type.\nconst TAG_LITERAL = 0x2001;\nconst TAG_COLUMN = 0x2002;\nconst TAG_STATIC = 0x2003;\nconst TAG_SIMPLE = 0x2004;\nconst TAG_SUBQUERY = 0x2005;\nconst TAG_AND = 0x2006;\nconst TAG_OR = 0x2007;\nconst TAG_FORMAT = 0x2008;\nconst TAG_NAME_ARGS = 0x2009;\n// `System` is a closed set of three, so it folds as one word rather than as a\n// string -- on an AST it appears once per correlated subquery, so this is on\n// the walk's hot path. The switch below is exhaustive, so adding a member is a\n// type error rather than a silent collision with an existing one.\nconst TAG_SYSTEM_PERMISSIONS = 0x200a;\nconst TAG_SYSTEM_CLIENT = 0x200b;\nconst TAG_SYSTEM_TEST = 0x200c;\nconst TAG_JUNCTION = 0x200d;\nconst TAG_AGGREGATE = 0x200e;\nconst TAG_JSON = 0x200f;\nconst TAG_GROUP_BY = 0x2010;\nconst TAG_DISTINCT = 0x2011;\n\n// Set on a string's length word. High enough that no array length reaches it.\nconst STR_MARK = 0x40000000;\n\nfunction reset(): void {\n h1 = PRIME32_5;\n h2 = PRIME32_1;\n}\n\n/** Collapse the two lanes into one 64-bit value, avalanching each first. */\nfunction finalize(): string {\n return (\n avalanche32(h1).toString(36).padStart(7, '0') +\n avalanche32(h2).toString(36).padStart(7, '0')\n );\n}\n\n// ---------------------------------------------------------------------------\n// The generic part: arbitrary JSON, for literal values and bound rows.\n// ---------------------------------------------------------------------------\n\nfunction visitValue(v: unknown): void {\n switch (typeof v) {\n case 'string':\n mixString(v);\n return;\n case 'number':\n // NaN and Infinity are null by the time they reach the wire, because\n // that is what JSON.stringify writes for them. Two queries identical on\n // the wire must not get different IDs.\n if (!Number.isFinite(v)) {\n mix(TAG_NULL);\n return;\n }\n mix((v | 0) === v ? TAG_INT : TAG_FLOAT);\n mixNumber(v);\n return;\n case 'boolean':\n mix(v ? TAG_TRUE : TAG_FALSE);\n return;\n case 'object': {\n if (v === null) {\n mix(TAG_NULL);\n return;\n }\n if (Array.isArray(v)) {\n mix(TAG_ARR);\n for (let i = 0; i < v.length; i++) {\n // An `undefined` element is `null` by the time it reaches the wire,\n // because that is what JSON.stringify makes of it. Dropping it\n // instead would fold `[undefined]` onto `[]`.\n const e: unknown = v[i];\n visitValue(e === undefined ? null : e);\n }\n mix(TAG_END);\n return;\n }\n mix(TAG_OBJ);\n // Sorted, so the digest is a function of the object's contents and not\n // of its key order. Rows and custom-query args round-trip through\n // Postgres JSONB, which reorders keys; an order-sensitive digest made\n // reloaded query records look changed. (The AST's own fields don't need\n // this: visitAST reads them in a fixed order by name.)\n const keys = Object.keys(v).sort();\n for (const k of keys) {\n const val = (v as Record<string, unknown>)[k];\n if (val === undefined) {\n continue; // as JSON.stringify does\n }\n mixString(k);\n visitValue(val);\n }\n mix(TAG_END);\n return;\n }\n default:\n // `undefined` and functions as an object's value: dropped, as\n // JSON.stringify drops them. Array elements are handled above.\n return;\n }\n}\n\n// ---------------------------------------------------------------------------\n// The specialized part: the AST's own shape.\n// ---------------------------------------------------------------------------\n\nfunction visitOptionalString(s: string | undefined): void {\n if (s === undefined) {\n mix(TAG_UNDEF);\n } else {\n mixString(s);\n }\n}\n\nfunction mixOptionalSystem(system: System | undefined): void {\n if (system === undefined) {\n mix(TAG_UNDEF);\n } else {\n mixSystem(system);\n }\n}\n\nfunction mixSystem(system: System): void {\n switch (system) {\n case 'permissions':\n mix(TAG_SYSTEM_PERMISSIONS);\n break;\n case 'client':\n mix(TAG_SYSTEM_CLIENT);\n break;\n case 'test':\n mix(TAG_SYSTEM_TEST);\n break;\n default:\n unreachable(system);\n }\n}\n\nfunction visitCompoundKey(k: readonly string[]): void {\n mix(k.length);\n for (let i = 0; i < k.length; i++) {\n mixString(k[i]);\n }\n}\n\nfunction visitOrdering(o: Ordering | undefined): void {\n if (o === undefined) {\n mix(TAG_UNDEF);\n return;\n }\n mix(o.length);\n for (let i = 0; i < o.length; i++) {\n const [field, dir] = o[i];\n mixString(field);\n mix(dir === 'asc' ? TAG_TRUE : TAG_FALSE);\n }\n}\n\nfunction visitValuePosition(v: ValuePosition): void {\n switch (v.type) {\n case 'literal':\n mix(TAG_LITERAL);\n visitValue(v.value);\n return;\n case 'column':\n mix(TAG_COLUMN);\n mixString(v.name);\n return;\n case 'static': {\n mix(TAG_STATIC);\n mixString(v.anchor);\n if (typeof v.field === 'string') {\n mixString(v.field);\n } else {\n visitCompoundKey(v.field);\n }\n return;\n }\n case 'json':\n // The wrapped column, then the path as a value: a string segment and a\n // numeric one are tagged differently there, so `['0']` and `[0]` (an\n // object key and an array index) never fold together.\n mix(TAG_JSON);\n visitValuePosition(v.value);\n visitValue(v.path);\n return;\n default:\n unreachable(v);\n }\n}\n\nfunction visitCondition(c: Condition): void {\n switch (c.type) {\n case 'simple':\n mix(TAG_SIMPLE);\n mixString(c.op);\n visitValuePosition(c.left);\n visitValuePosition(c.right);\n return;\n case 'correlatedSubquery':\n mix(TAG_SUBQUERY);\n mixString(c.op);\n mix(c.flip === undefined ? TAG_UNDEF : c.flip ? TAG_TRUE : TAG_FALSE);\n mix(c.scalar === undefined ? TAG_UNDEF : c.scalar ? TAG_TRUE : TAG_FALSE);\n visitCorrelatedSubquery(c.related);\n return;\n default: {\n c.type satisfies 'and' | 'or';\n mix(c.type === 'and' ? TAG_AND : TAG_OR);\n const conds = c.conditions;\n mix(conds.length);\n for (let i = 0; i < conds.length; i++) {\n visitCondition(conds[i]);\n }\n return;\n }\n }\n}\n\nfunction visitCorrelatedSubquery(csq: CorrelatedSubquery): void {\n visitCompoundKey(csq.correlation.parentField);\n visitCompoundKey(csq.correlation.childField);\n mix(csq.hidden === undefined ? TAG_UNDEF : csq.hidden ? TAG_TRUE : TAG_FALSE);\n mixOptionalSystem(csq.system);\n // Before the subquery, whose first word is TAG_OBJ, so an absent aggregate\n // (which writes nothing) is never confusable with a present one.\n visitAggregate(csq.aggregate);\n visitAST(csq.subquery);\n}\n\n/**\n * An absent aggregate writes nothing, unlike the other optionals, so that the\n * hash of every query without one is unchanged by the field's addition. That\n * is unambiguous because of where it is written: an aggregate is always\n * followed by a word no aggregate could begin with (TAG_END on an AST, TAG_OBJ\n * on a correlated subquery), and a present one leads with its own tag.\n */\nfunction visitAggregate(aggregate: Aggregate | undefined): void {\n if (aggregate === undefined) {\n return;\n }\n mix(TAG_AGGREGATE);\n mixString(aggregate.fn);\n visitOptionalString(aggregate.field);\n // Like the aggregate itself, an absent path writes nothing, so aggregates\n // without one hash as before; a present one leads with TAG_JSON, which no\n // following word (TAG_END, TAG_OBJ) can be confused with.\n if (aggregate.path !== undefined) {\n mix(TAG_JSON);\n visitValue(aggregate.path);\n }\n // Absent, it writes nothing too.\n if (aggregate.distinct !== undefined) {\n mix(TAG_DISTINCT);\n mix(aggregate.distinct.length);\n for (const col of aggregate.distinct) {\n mixString(col);\n }\n }\n}\n\nfunction visitAST(ast: AST): void {\n mix(TAG_OBJ);\n visitOptionalString(ast.schema);\n mixString(ast.table);\n visitOptionalString(ast.alias);\n\n if (ast.where === undefined) {\n mix(TAG_UNDEF);\n } else {\n visitCondition(ast.where);\n }\n\n const related = ast.related;\n if (related === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(related.length);\n for (let i = 0; i < related.length; i++) {\n visitCorrelatedSubquery(related[i]);\n }\n }\n\n const start = ast.start;\n if (start === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(start.exclusive ? TAG_TRUE : TAG_FALSE);\n visitValue(start.row);\n }\n\n if (ast.limit === undefined) {\n mix(TAG_UNDEF);\n } else {\n // Tagged, because this is the one optional field whose present and absent\n // forms would otherwise both write a single bare word: an untagged\n // `limit: 4106` is the same word as TAG_UNDEF. The other optionals are\n // safe -- a present string carries STR_MARK, a condition or bound leads\n // with its own kind tag, and `related`/`orderBy` write a count followed by\n // that many items, so their streams diverge straight after.\n mix(TAG_INT);\n mixNumber(ast.limit);\n }\n\n visitOrdering(ast.orderBy);\n visitAggregate(ast.aggregate);\n // Like the aggregate, an absent groupBy writes nothing, so other queries\n // hash as before.\n if (ast.groupBy !== undefined) {\n mix(TAG_GROUP_BY);\n mix(ast.groupBy.length);\n for (const col of ast.groupBy) {\n mixString(col);\n }\n }\n mix(TAG_END);\n}\n\nexport function hashAST(ast: AST): string {\n // Save and restore the lanes: `visitValue` reads properties of arbitrary\n // runtime objects, and a getter is free to ask for another hash mid-walk.\n // Without this, the inner call's reset() would corrupt the outer digest.\n const s1 = h1;\n const s2 = h2;\n try {\n reset();\n visitAST(ast);\n return finalize();\n } finally {\n h1 = s1;\n h2 = s2;\n }\n}\n\n/**\n * The identity of a custom query: its name and its arguments.\n *\n * Same walk, entered at a different node. `args` is arbitrary JSON, which is\n * what `visitValue` already exists to handle. The leading tag keeps this hash\n * space disjoint from `hashAST`'s -- both produce query IDs that live in the\n * same namespace, so an AST must not be able to fold to the same words as some\n * name and args.\n */\nexport function hashNameAndArgs(\n name: string,\n args: readonly unknown[],\n): string {\n const s1 = h1;\n const s2 = h2;\n try {\n reset();\n mix(TAG_NAME_ARGS);\n mixString(name);\n visitValue(args);\n return finalize();\n } finally {\n h1 = s1;\n h2 = s2;\n }\n}\n\n/**\n * The identity of a query as the client sees it: its AST, the shape it returns,\n * the system it was built for, and -- for a custom query -- the name and\n * arguments it was declared with.\n *\n * Everything past the AST is here because it is part of what makes two queries\n * different while leaving no trace, or an incomplete one, in the AST itself:\n *\n * - **name and args**: `nameAndArgs` reuses the AST it is given and only\n * attaches a `CustomQueryID`, so without these two different named queries\n * over the same table would be indistinguishable.\n * - **system**: a query stamps it onto every `related` entry and every `exists`\n * correlation it builds, so it is already hashed via\n * {@link visitCorrelatedSubquery} -- but a query with neither has nowhere to\n * put it, and would otherwise hash the same whether it was built for the\n * client or for permissions.\n * - **currentJunction**: builder state, set on the sub-query handed to a\n * two-hop relationship's callback, which makes `limit` and `orderBy` throw.\n * It leaves no trace in the AST at all, so two queries that differ only in\n * whether those methods work would otherwise be indistinguishable.\n *\n * The name and args are taken apart rather than as a `CustomQueryID` because\n * that type lives in `zql`, which is above this package; `hashNameAndArgs`\n * splits them the same way.\n */\nexport function hashOfQueryInternals(\n ast: AST,\n format: Format,\n system: System,\n currentJunction: string | undefined,\n customQueryName: string | undefined,\n customQueryArgs: readonly unknown[] | undefined,\n): string {\n const s1 = h1;\n const s2 = h2;\n try {\n reset();\n visitAST(ast);\n mix(TAG_FORMAT);\n visitValue(format);\n mixSystem(system);\n if (currentJunction === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(TAG_JUNCTION);\n mixString(currentJunction);\n }\n if (customQueryName === undefined) {\n mix(TAG_UNDEF);\n } else {\n mix(TAG_NAME_ARGS);\n mixString(customQueryName);\n visitValue(customQueryArgs);\n }\n return finalize();\n } finally {\n h1 = s1;\n h2 = s2;\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { getOrInsertComputed } from "../../shared/src/map.js";
2
2
  import { normalizeAST } from "./ast.js";
3
- import { hashAST } from "./query-hash-visitor.js";
3
+ import { hashAST, hashNameAndArgs } from "./query-hash-visitor.js";
4
4
  //#region ../zero-protocol/src/query-hash.ts
5
5
  var hashCache = /* @__PURE__ */ new WeakMap();
6
6
  function hashOfAST(ast) {
@@ -14,6 +14,6 @@ function hashOfNormalizedAST(ast) {
14
14
  return getOrInsertComputed(hashCache, ast, hashAST);
15
15
  }
16
16
  //#endregion
17
- export { hashOfAST };
17
+ export { hashOfAST, hashNameAndArgs as hashOfNameAndArgs, hashOfNormalizedAST };
18
18
 
19
19
  //# sourceMappingURL=query-hash.js.map
@@ -1,23 +1,5 @@
1
1
  import * as v from '../../shared/src/valita.ts';
2
- export declare const queryResultSchema: v.UnionType<[v.ObjectType<{
3
- id: v.Type<string>;
4
- name: v.Type<string>;
5
- ast: v.Type<import("./ast.ts").AST>;
6
- }, undefined>, v.UnionType<[v.ObjectType<{
7
- error: v.Type<"app">;
8
- id: v.Type<string>;
9
- name: v.Type<string>;
10
- message: v.Optional<string>;
11
- details: v.Optional<import("../../shared/src/json.ts").ReadonlyJSONValue>;
12
- }, undefined>, v.ObjectType<{
13
- error: v.Type<"parse">;
14
- id: v.Type<string>;
15
- name: v.Type<string>;
16
- message: v.Type<string>;
17
- details: v.Optional<import("../../shared/src/json.ts").ReadonlyJSONValue>;
18
- }, undefined>]>]>;
19
- export type QueryResult = v.Infer<typeof queryResultSchema>;
20
- export declare const queryResponseBodySchema: v.ArrayType<v.UnionType<[v.ObjectType<{
2
+ declare const queryResponseBodySchema: v.ArrayType<v.UnionType<[v.ObjectType<{
21
3
  id: v.Type<string>;
22
4
  name: v.Type<string>;
23
5
  ast: v.Type<import("./ast.ts").AST>;
@@ -35,28 +17,6 @@ export declare const queryResponseBodySchema: v.ArrayType<v.UnionType<[v.ObjectT
35
17
  details: v.Optional<import("../../shared/src/json.ts").ReadonlyJSONValue>;
36
18
  }, undefined>]>]>>;
37
19
  export type QueryResponseBody = v.Infer<typeof queryResponseBodySchema>;
38
- export declare const querySuccessSchema: v.ObjectType<{
39
- kind: v.Type<"QueryResponse">;
40
- userID: v.Optional<string | null>;
41
- queries: v.ArrayType<v.UnionType<[v.ObjectType<{
42
- id: v.Type<string>;
43
- name: v.Type<string>;
44
- ast: v.Type<import("./ast.ts").AST>;
45
- }, undefined>, v.UnionType<[v.ObjectType<{
46
- error: v.Type<"app">;
47
- id: v.Type<string>;
48
- name: v.Type<string>;
49
- message: v.Optional<string>;
50
- details: v.Optional<import("../../shared/src/json.ts").ReadonlyJSONValue>;
51
- }, undefined>, v.ObjectType<{
52
- error: v.Type<"parse">;
53
- id: v.Type<string>;
54
- name: v.Type<string>;
55
- message: v.Type<string>;
56
- details: v.Optional<import("../../shared/src/json.ts").ReadonlyJSONValue>;
57
- }, undefined>]>]>>;
58
- }, undefined>;
59
- export type QuerySuccess = v.Infer<typeof querySuccessSchema>;
60
20
  export declare const queryResponseSchema: v.UnionType<[v.ObjectType<{
61
21
  kind: v.Type<"QueryResponse">;
62
22
  userID: v.Optional<string | null>;
@@ -147,4 +107,5 @@ export declare const queryResponseSchema: v.UnionType<[v.ObjectType<{
147
107
  reason: v.Type<"internal" | "parse" | "timeout">;
148
108
  }, undefined>]>]>]>]>;
149
109
  export type QueryResponse = v.Infer<typeof queryResponseSchema>;
110
+ export {};
150
111
  //# sourceMappingURL=query-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-server.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/query-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAQhD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAG7B,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;kBAA6B,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;aAI7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAK/B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"query-server.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/query-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAUhD,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;kBAA6B,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAQxE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAK/B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-server.js","names":[],"sources":["../../../../zero-protocol/src/query-server.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {\n erroredQuerySchema,\n transformedQuerySchema,\n transformResponseMessageSchema,\n} from './custom-queries.ts';\nimport {transformFailedBodySchema} from './error.ts';\n\nexport const queryResultSchema = v.union(\n transformedQuerySchema,\n erroredQuerySchema,\n);\nexport type QueryResult = v.Infer<typeof queryResultSchema>;\n\nexport const queryResponseBodySchema = v.array(queryResultSchema);\nexport type QueryResponseBody = v.Infer<typeof queryResponseBodySchema>;\n\nexport const querySuccessSchema = v.object({\n kind: v.literal('QueryResponse'),\n userID: v.string().nullable().optional(),\n queries: queryResponseBodySchema,\n});\nexport type QuerySuccess = v.Infer<typeof querySuccessSchema>;\n\nexport const queryResponseSchema = v.union(\n querySuccessSchema,\n transformFailedBodySchema,\n // for backwards compatibility\n transformResponseMessageSchema,\n);\nexport type QueryResponse = v.Infer<typeof queryResponseSchema>;\n"],"mappings":";;;;AAQA,IAAa,oBAAoB,eAAE,MACjC,wBACA,kBACF;AAGA,IAAa,0BAA0B,eAAE,MAAM,iBAAiB;AAGhE,IAAa,qBAAqB,eAAE,OAAO;CACzC,MAAM,eAAE,QAAQ,eAAe;CAC/B,QAAQ,eAAE,OAAO,EAAE,SAAS,EAAE,SAAS;CACvC,SAAS;AACX,CAAC;AAGD,IAAa,sBAAsB,eAAE,MACnC,oBACA,2BAEA,8BACF"}
1
+ {"version":3,"file":"query-server.js","names":["v"],"sources":["../../../../zero-protocol/src/query-server.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {\n erroredQuerySchema,\n transformedQuerySchema,\n transformResponseMessageSchema,\n} from './custom-queries.ts';\nimport {transformFailedBodySchema} from './error.ts';\n\nconst queryResultSchema = v.union(transformedQuerySchema, erroredQuerySchema);\n\nconst queryResponseBodySchema = v.array(queryResultSchema);\nexport type QueryResponseBody = v.Infer<typeof queryResponseBodySchema>;\n\nconst querySuccessSchema = v.object({\n kind: v.literal('QueryResponse'),\n userID: v.string().nullable().optional(),\n queries: queryResponseBodySchema,\n});\n\nexport const queryResponseSchema = v.union(\n querySuccessSchema,\n transformFailedBodySchema,\n // for backwards compatibility\n transformResponseMessageSchema,\n);\nexport type QueryResponse = v.Infer<typeof queryResponseSchema>;\n"],"mappings":";;;;AAQA,IAAM,oBAAoBA,eAAE,MAAM,wBAAwB,kBAAkB;AAE5E,IAAM,0BAA0BA,eAAE,MAAM,iBAAiB;AAGzD,IAAM,qBAAqBA,eAAE,OAAO;CAClC,MAAMA,eAAE,QAAQ,eAAe;CAC/B,QAAQA,eAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACvC,SAAS;AACX,CAAC;AAED,IAAa,sBAAsBA,eAAE,MACnC,oBACA,2BAEA,8BACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"row-patch.js","names":[],"sources":["../../../../zero-protocol/src/row-patch.ts"],"sourcesContent":["import {jsonObjectSchema} from '../../shared/src/json-schema.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {rowSchema} from './data.ts';\nimport {primaryKeyValueRecordSchema} from './primary-key.ts';\n\nconst putOpSchema = v.object({\n op: v.literal('put'),\n tableName: v.string(),\n value: rowSchema,\n});\n\nconst updateOpSchema = v.object({\n op: v.literal('update'),\n tableName: v.string(),\n id: primaryKeyValueRecordSchema,\n merge: jsonObjectSchema.optional(),\n constrain: v.array(v.string()).optional(),\n});\n\nconst delOpSchema = v.object({\n op: v.literal('del'),\n tableName: v.string(),\n id: primaryKeyValueRecordSchema,\n});\n\nconst clearOpSchema = v.object({\n op: v.literal('clear'),\n});\n\nconst rowPatchOpSchema = v.union(\n putOpSchema,\n updateOpSchema,\n delOpSchema,\n clearOpSchema,\n);\n\nexport const rowsPatchSchema = v.array(rowPatchOpSchema);\nexport type RowPatchOp = v.Infer<typeof rowPatchOpSchema>;\n"],"mappings":";;;;;AAKA,IAAM,cAAc,eAAE,OAAO;CAC3B,IAAI,eAAE,QAAQ,KAAK;CACnB,WAAW,eAAE,OAAO;CACpB,OAAO;AACT,CAAC;AAED,IAAM,iBAAiB,eAAE,OAAO;CAC9B,IAAI,eAAE,QAAQ,QAAQ;CACtB,WAAW,eAAE,OAAO;CACpB,IAAI;CACJ,OAAO,iBAAiB,SAAS;CACjC,WAAW,eAAE,MAAM,eAAE,OAAO,CAAC,EAAE,SAAS;AAC1C,CAAC;AAED,IAAM,cAAc,eAAE,OAAO;CAC3B,IAAI,eAAE,QAAQ,KAAK;CACnB,WAAW,eAAE,OAAO;CACpB,IAAI;AACN,CAAC;AAED,IAAM,gBAAgB,eAAE,OAAO,EAC7B,IAAI,eAAE,QAAQ,OAAO,EACvB,CAAC;AAED,IAAM,mBAAmB,eAAE,MACzB,aACA,gBACA,aACA,aACF;AAEA,IAAa,kBAAkB,eAAE,MAAM,gBAAgB"}
1
+ {"version":3,"file":"row-patch.js","names":["v"],"sources":["../../../../zero-protocol/src/row-patch.ts"],"sourcesContent":["import {jsonObjectSchema} from '../../shared/src/json-schema.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {rowSchema} from './data.ts';\nimport {primaryKeyValueRecordSchema} from './primary-key.ts';\n\nconst putOpSchema = v.object({\n op: v.literal('put'),\n tableName: v.string(),\n value: rowSchema,\n});\n\nconst updateOpSchema = v.object({\n op: v.literal('update'),\n tableName: v.string(),\n id: primaryKeyValueRecordSchema,\n merge: jsonObjectSchema.optional(),\n constrain: v.array(v.string()).optional(),\n});\n\nconst delOpSchema = v.object({\n op: v.literal('del'),\n tableName: v.string(),\n id: primaryKeyValueRecordSchema,\n});\n\nconst clearOpSchema = v.object({\n op: v.literal('clear'),\n});\n\nconst rowPatchOpSchema = v.union(\n putOpSchema,\n updateOpSchema,\n delOpSchema,\n clearOpSchema,\n);\n\nexport const rowsPatchSchema = v.array(rowPatchOpSchema);\nexport type RowPatchOp = v.Infer<typeof rowPatchOpSchema>;\n"],"mappings":";;;;;AAKA,IAAM,cAAcA,eAAE,OAAO;CAC3B,IAAIA,eAAE,QAAQ,KAAK;CACnB,WAAWA,eAAE,OAAO;CACpB,OAAO;AACT,CAAC;AAED,IAAM,iBAAiBA,eAAE,OAAO;CAC9B,IAAIA,eAAE,QAAQ,QAAQ;CACtB,WAAWA,eAAE,OAAO;CACpB,IAAI;CACJ,OAAO,iBAAiB,SAAS;CACjC,WAAWA,eAAE,MAAMA,eAAE,OAAO,CAAC,CAAC,CAAC,SAAS;AAC1C,CAAC;AAED,IAAM,cAAcA,eAAE,OAAO;CAC3B,IAAIA,eAAE,QAAQ,KAAK;CACnB,WAAWA,eAAE,OAAO;CACpB,IAAI;AACN,CAAC;AAED,IAAM,gBAAgBA,eAAE,OAAO,EAC7B,IAAIA,eAAE,QAAQ,OAAO,EACvB,CAAC;AAED,IAAM,mBAAmBA,eAAE,MACzB,aACA,gBACA,aACA,aACF;AAEA,IAAa,kBAAkBA,eAAE,MAAM,gBAAgB"}