@rocicorp/zero 0.25.0-canary.2 → 0.25.0-canary.4

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 (325) hide show
  1. package/out/analyze-query/src/bin-analyze.js +27 -38
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/ast-to-zql/src/bin.js.map +1 -1
  4. package/out/chunk-3KJ5OEIB.js +495 -0
  5. package/out/chunk-3KJ5OEIB.js.map +7 -0
  6. package/out/{chunk-COKJ5W7V.js → chunk-HE4M4K7Q.js} +10111 -9594
  7. package/out/chunk-HE4M4K7Q.js.map +7 -0
  8. package/out/{chunk-TJFNGO7E.js → chunk-TAUDS4QP.js} +10 -7
  9. package/out/{chunk-TJFNGO7E.js.map → chunk-TAUDS4QP.js.map} +2 -2
  10. package/out/{inspector-IU2HG74I.js → inspector-GP3CBZRU.js} +1 -1
  11. package/out/inspector-GP3CBZRU.js.map +7 -0
  12. package/out/{lazy-inspector-OXIFYSSQ.js → lazy-inspector-XLKVABX2.js} +5 -4
  13. package/out/lazy-inspector-XLKVABX2.js.map +7 -0
  14. package/out/react.js +20 -25
  15. package/out/react.js.map +2 -2
  16. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  17. package/out/replicache/src/replicache-options.d.ts +3 -2
  18. package/out/replicache/src/replicache-options.d.ts.map +1 -1
  19. package/out/shared/src/error.js +5 -5
  20. package/out/shared/src/error.js.map +1 -1
  21. package/out/solid.js +9 -7
  22. package/out/solid.js.map +2 -2
  23. package/out/z2s/src/compiler.d.ts +2 -2
  24. package/out/z2s/src/compiler.d.ts.map +1 -1
  25. package/out/z2s/src/compiler.js.map +1 -1
  26. package/out/z2s/src/sql.d.ts +1 -1
  27. package/out/z2s/src/sql.d.ts.map +1 -1
  28. package/out/zero/package.json +3 -2
  29. package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
  30. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  31. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  32. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  33. package/out/zero-cache/src/auth/write-authorizer.js +36 -12
  34. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  35. package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
  36. package/out/zero-cache/src/custom/fetch.js +5 -4
  37. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  38. package/out/zero-cache/src/custom-queries/transform-query.d.ts +3 -3
  39. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  40. package/out/zero-cache/src/custom-queries/transform-query.js +6 -7
  41. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  42. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  43. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  44. package/out/zero-cache/src/db/pg-to-lite.js +16 -2
  45. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  46. package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
  47. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  48. package/out/zero-cache/src/scripts/permissions.js +2 -2
  49. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  50. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  51. package/out/zero-cache/src/server/change-streamer.js +7 -10
  52. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  53. package/out/zero-cache/src/services/analyze.d.ts +2 -6
  54. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/analyze.js +4 -3
  56. package/out/zero-cache/src/services/analyze.js.map +1 -1
  57. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  58. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/change-source/column-metadata.js +26 -13
  60. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  61. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
  62. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
  63. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +15 -15
  64. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
  65. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  66. package/out/zero-cache/src/services/change-source/replica-schema.js +13 -0
  67. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  68. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
  69. package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
  70. package/out/zero-cache/src/services/change-streamer/replica-monitor.js +52 -0
  71. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  72. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  73. package/out/zero-cache/src/services/change-streamer/storer.js +15 -1
  74. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  75. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +2 -2
  76. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  77. package/out/zero-cache/src/services/change-streamer/subscriber.js +16 -11
  78. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  79. package/out/zero-cache/src/services/mutagen/pusher.d.ts +2 -0
  80. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  81. package/out/zero-cache/src/services/mutagen/pusher.js +7 -8
  82. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  83. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  84. package/out/zero-cache/src/services/replicator/change-processor.js +33 -0
  85. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  86. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  87. package/out/zero-cache/src/services/run-ast.js +1 -0
  88. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  89. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  90. package/out/zero-cache/src/services/view-syncer/cvr-store.js +41 -14
  91. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  92. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  93. package/out/zero-cache/src/services/view-syncer/cvr.js +5 -4
  94. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  95. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +1 -1
  96. package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
  97. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +81 -2
  98. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
  99. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  100. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +24 -2
  101. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  102. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  103. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +4 -2
  104. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  105. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  106. package/out/zero-cache/src/services/view-syncer/schema/init.js +25 -0
  107. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  108. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  109. package/out/zero-cache/src/services/view-syncer/view-syncer.js +30 -5
  110. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  111. package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
  112. package/out/zero-cache/src/types/error-with-level.js +8 -3
  113. package/out/zero-cache/src/types/error-with-level.js.map +1 -1
  114. package/out/zero-client/src/client/bindings.d.ts +42 -0
  115. package/out/zero-client/src/client/bindings.d.ts.map +1 -0
  116. package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
  117. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
  118. package/out/zero-client/src/client/connection-manager.d.ts +8 -9
  119. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
  120. package/out/zero-client/src/client/context.d.ts +12 -10
  121. package/out/zero-client/src/client/context.d.ts.map +1 -1
  122. package/out/zero-client/src/client/crud.d.ts +1 -1
  123. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  124. package/out/zero-client/src/client/custom.d.ts +39 -16
  125. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  126. package/out/zero-client/src/client/error.d.ts +23 -11
  127. package/out/zero-client/src/client/error.d.ts.map +1 -1
  128. package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
  129. package/out/zero-client/src/client/inspector/inspector.d.ts +3 -2
  130. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  131. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
  132. package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
  133. package/out/zero-client/src/client/mutation-tracker.d.ts +10 -2
  134. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  135. package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
  136. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
  137. package/out/zero-client/src/client/options.d.ts +37 -7
  138. package/out/zero-client/src/client/options.d.ts.map +1 -1
  139. package/out/zero-client/src/client/query-manager.d.ts +9 -2
  140. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  141. package/out/zero-client/src/client/zero-log-context.d.ts +3 -3
  142. package/out/zero-client/src/client/zero-log-context.d.ts.map +1 -1
  143. package/out/zero-client/src/client/zero-poke-handler.d.ts +3 -3
  144. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  145. package/out/zero-client/src/client/zero-rep.d.ts +5 -4
  146. package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
  147. package/out/zero-client/src/client/zero.d.ts +88 -18
  148. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  149. package/out/zero-client/src/mod.d.ts +14 -9
  150. package/out/zero-client/src/mod.d.ts.map +1 -1
  151. package/out/zero-client/src/types/query-result.d.ts +5 -4
  152. package/out/zero-client/src/types/query-result.d.ts.map +1 -1
  153. package/out/zero-protocol/src/analyze-query-result.d.ts +1 -0
  154. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  155. package/out/zero-protocol/src/analyze-query-result.js +1 -0
  156. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  157. package/out/zero-protocol/src/application-error.d.ts +2 -8
  158. package/out/zero-protocol/src/application-error.d.ts.map +1 -1
  159. package/out/zero-protocol/src/application-error.js +3 -0
  160. package/out/zero-protocol/src/application-error.js.map +1 -1
  161. package/out/zero-protocol/src/down.d.ts +1 -0
  162. package/out/zero-protocol/src/down.d.ts.map +1 -1
  163. package/out/zero-protocol/src/inspect-down.d.ts +3 -0
  164. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  165. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  166. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  167. package/out/zero-protocol/src/protocol-version.js +2 -1
  168. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  169. package/out/zero-react/src/components/inspector.d.ts +1 -1
  170. package/out/zero-react/src/components/inspector.d.ts.map +1 -1
  171. package/out/zero-react/src/components/zero-inspector.d.ts +1 -1
  172. package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
  173. package/out/zero-react/src/mod.d.ts +1 -1
  174. package/out/zero-react/src/mod.d.ts.map +1 -1
  175. package/out/zero-react/src/use-query.d.ts +7 -6
  176. package/out/zero-react/src/use-query.d.ts.map +1 -1
  177. package/out/zero-react/src/zero-provider.d.ts +7 -7
  178. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  179. package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
  180. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  181. package/out/zero-schema/src/permissions.d.ts +1 -1
  182. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  183. package/out/zero-schema/src/schema-config.d.ts +1 -1
  184. package/out/zero-schema/src/schema-config.d.ts.map +1 -1
  185. package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
  186. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  187. package/out/zero-server/src/adapters/drizzle.js +4 -0
  188. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  189. package/out/zero-server/src/adapters/pg.d.ts +8 -3
  190. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  191. package/out/zero-server/src/adapters/pg.js +4 -0
  192. package/out/zero-server/src/adapters/pg.js.map +1 -1
  193. package/out/zero-server/src/adapters/postgresjs.d.ts +8 -3
  194. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  195. package/out/zero-server/src/adapters/postgresjs.js +4 -0
  196. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  197. package/out/zero-server/src/custom.d.ts +11 -8
  198. package/out/zero-server/src/custom.d.ts.map +1 -1
  199. package/out/zero-server/src/custom.js +15 -3
  200. package/out/zero-server/src/custom.js.map +1 -1
  201. package/out/zero-server/src/mod.d.ts +0 -1
  202. package/out/zero-server/src/mod.d.ts.map +1 -1
  203. package/out/zero-server/src/mod.js +0 -1
  204. package/out/zero-server/src/mod.js.map +1 -1
  205. package/out/zero-server/src/pg-query-executor.d.ts +11 -0
  206. package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
  207. package/out/zero-server/src/pg-query-executor.js +17 -0
  208. package/out/zero-server/src/pg-query-executor.js.map +1 -0
  209. package/out/zero-server/src/process-mutations.d.ts +2 -1
  210. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  211. package/out/zero-server/src/process-mutations.js +1 -1
  212. package/out/zero-server/src/process-mutations.js.map +1 -1
  213. package/out/zero-server/src/queries/process-queries.d.ts +4 -4
  214. package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
  215. package/out/zero-server/src/queries/process-queries.js +5 -3
  216. package/out/zero-server/src/queries/process-queries.js.map +1 -1
  217. package/out/zero-server/src/schema.d.ts +2 -2
  218. package/out/zero-server/src/schema.d.ts.map +1 -1
  219. package/out/zero-server/src/schema.js.map +1 -1
  220. package/out/zero-server/src/zql-database.d.ts +6 -3
  221. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  222. package/out/zero-server/src/zql-database.js +17 -19
  223. package/out/zero-server/src/zql-database.js.map +1 -1
  224. package/out/zero-solid/src/solid-view.d.ts +1 -1
  225. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  226. package/out/zero-solid/src/use-query.d.ts +4 -4
  227. package/out/zero-solid/src/use-query.d.ts.map +1 -1
  228. package/out/zero-solid/src/use-zero.d.ts +7 -7
  229. package/out/zero-solid/src/use-zero.d.ts.map +1 -1
  230. package/out/zero-types/src/server-schema.d.ts.map +1 -0
  231. package/out/zero-types/src/server-schema.js.map +1 -0
  232. package/out/zero.js +25 -11
  233. package/out/zql/src/builder/builder.d.ts +6 -0
  234. package/out/zql/src/builder/builder.d.ts.map +1 -1
  235. package/out/zql/src/builder/builder.js +1 -1
  236. package/out/zql/src/builder/builder.js.map +1 -1
  237. package/out/zql/src/builder/debug-delegate.d.ts +4 -0
  238. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  239. package/out/zql/src/builder/debug-delegate.js +17 -0
  240. package/out/zql/src/builder/debug-delegate.js.map +1 -1
  241. package/out/zql/src/ivm/view.d.ts +3 -2
  242. package/out/zql/src/ivm/view.d.ts.map +1 -1
  243. package/out/zql/src/mutate/custom.d.ts +13 -8
  244. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  245. package/out/zql/src/mutate/custom.js.map +1 -1
  246. package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
  247. package/out/zql/src/planner/planner-builder.js +27 -2
  248. package/out/zql/src/planner/planner-builder.js.map +1 -1
  249. package/out/zql/src/planner/planner-graph.js +1 -1
  250. package/out/zql/src/planner/planner-graph.js.map +1 -1
  251. package/out/zql/src/planner/planner-join.d.ts +1 -1
  252. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  253. package/out/zql/src/planner/planner-join.js +9 -5
  254. package/out/zql/src/planner/planner-join.js.map +1 -1
  255. package/out/zql/src/query/chained-query.d.ts +35 -0
  256. package/out/zql/src/query/chained-query.d.ts.map +1 -0
  257. package/out/zql/src/query/chained-query.js +66 -0
  258. package/out/zql/src/query/chained-query.js.map +1 -0
  259. package/out/zql/src/query/define-query.d.ts +51 -0
  260. package/out/zql/src/query/define-query.d.ts.map +1 -0
  261. package/out/zql/src/query/define-query.js +53 -0
  262. package/out/zql/src/query/define-query.js.map +1 -0
  263. package/out/zql/src/query/named.d.ts +18 -7
  264. package/out/zql/src/query/named.d.ts.map +1 -1
  265. package/out/zql/src/query/named.js +38 -20
  266. package/out/zql/src/query/named.js.map +1 -1
  267. package/out/zql/src/query/query-delegate-base.d.ts +122 -0
  268. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
  269. package/out/zql/src/query/query-delegate-base.js +136 -0
  270. package/out/zql/src/query/query-delegate-base.js.map +1 -0
  271. package/out/zql/src/query/query-delegate.d.ts +29 -4
  272. package/out/zql/src/query/query-delegate.d.ts.map +1 -1
  273. package/out/zql/src/query/query-impl.d.ts +27 -48
  274. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  275. package/out/zql/src/query/query-impl.js +155 -175
  276. package/out/zql/src/query/query-impl.js.map +1 -1
  277. package/out/zql/src/query/query-internals.d.ts +70 -0
  278. package/out/zql/src/query/query-internals.d.ts.map +1 -0
  279. package/out/zql/src/query/query-internals.js +21 -0
  280. package/out/zql/src/query/query-internals.js.map +1 -0
  281. package/out/zql/src/query/query.d.ts +26 -243
  282. package/out/zql/src/query/query.d.ts.map +1 -1
  283. package/out/zql/src/query/query.js +0 -1
  284. package/out/zql/src/query/query.js.map +1 -1
  285. package/out/zql/src/query/root-named-query.d.ts +33 -0
  286. package/out/zql/src/query/root-named-query.d.ts.map +1 -0
  287. package/out/zql/src/query/root-named-query.js +95 -0
  288. package/out/zql/src/query/root-named-query.js.map +1 -0
  289. package/out/zql/src/query/static-query.d.ts +5 -14
  290. package/out/zql/src/query/static-query.d.ts.map +1 -1
  291. package/out/zql/src/query/static-query.js +7 -17
  292. package/out/zql/src/query/static-query.js.map +1 -1
  293. package/out/zqlite/src/db.d.ts +2 -1
  294. package/out/zqlite/src/db.d.ts.map +1 -1
  295. package/out/zqlite/src/db.js +2 -0
  296. package/out/zqlite/src/db.js.map +1 -1
  297. package/out/zqlite/src/query-delegate.d.ts +6 -20
  298. package/out/zqlite/src/query-delegate.d.ts.map +1 -1
  299. package/out/zqlite/src/query-delegate.js +5 -29
  300. package/out/zqlite/src/query-delegate.js.map +1 -1
  301. package/out/zqlite/src/table-source.d.ts.map +1 -1
  302. package/out/zqlite/src/table-source.js +16 -0
  303. package/out/zqlite/src/table-source.js.map +1 -1
  304. package/package.json +3 -2
  305. package/out/chunk-COKJ5W7V.js.map +0 -7
  306. package/out/chunk-YWU2DZ23.js +0 -372
  307. package/out/chunk-YWU2DZ23.js.map +0 -7
  308. package/out/inspector-IU2HG74I.js.map +0 -7
  309. package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
  310. package/out/zero-client/src/client/on-error.d.ts +0 -15
  311. package/out/zero-client/src/client/on-error.d.ts.map +0 -1
  312. package/out/zero-schema/src/builder/relationship-builder.js +0 -24
  313. package/out/zero-schema/src/builder/relationship-builder.js.map +0 -1
  314. package/out/zero-schema/src/builder/schema-builder.js +0 -78
  315. package/out/zero-schema/src/builder/schema-builder.js.map +0 -1
  316. package/out/zero-schema/src/builder/table-builder.js +0 -128
  317. package/out/zero-schema/src/builder/table-builder.js.map +0 -1
  318. package/out/zero-schema/src/server-schema.d.ts.map +0 -1
  319. package/out/zero-schema/src/server-schema.js.map +0 -1
  320. package/out/zero-server/src/query.d.ts +0 -22
  321. package/out/zero-server/src/query.d.ts.map +0 -1
  322. package/out/zero-server/src/query.js +0 -61
  323. package/out/zero-server/src/query.js.map +0 -1
  324. /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
  325. /package/out/{zero-schema → zero-types}/src/server-schema.js +0 -0
@@ -83,8 +83,10 @@ export class PlannerJoin {
83
83
  #output; // Set once during graph construction
84
84
  // Reset between planning attempts
85
85
  #type;
86
- constructor(parent, child, parentConstraint, childConstraint, flippable, planId) {
87
- this.#type = 'semi';
86
+ #initialType;
87
+ constructor(parent, child, parentConstraint, childConstraint, flippable, planId, initialType = 'semi') {
88
+ this.#type = initialType;
89
+ this.#initialType = initialType;
88
90
  this.#parent = parent;
89
91
  this.#child = child;
90
92
  this.#childConstraint = childConstraint;
@@ -185,7 +187,7 @@ export class PlannerJoin {
185
187
  }
186
188
  }
187
189
  reset() {
188
- this.#type = 'semi';
190
+ this.#type = this.#initialType;
189
191
  }
190
192
  estimateCost(
191
193
  /**
@@ -253,7 +255,8 @@ export class PlannerJoin {
253
255
  scanEst: parent.limit === undefined
254
256
  ? parent.returnedRows
255
257
  : Math.min(parent.returnedRows, parent.limit / downstreamChildSelectivity),
256
- cost: parent.cost + parent.scanEst * (child.startupCost + child.scanEst),
258
+ cost: parent.cost +
259
+ parent.scanEst * (child.startupCost + child.cost + child.scanEst),
257
260
  returnedRows: parent.returnedRows * child.selectivity,
258
261
  selectivity: child.selectivity * parent.selectivity,
259
262
  limit: parent.limit,
@@ -265,7 +268,8 @@ export class PlannerJoin {
265
268
  scanEst: parent.limit === undefined
266
269
  ? parent.returnedRows
267
270
  : Math.min(parent.returnedRows * child.returnedRows, parent.limit / downstreamChildSelectivity),
268
- cost: child.cost + child.scanEst * (parent.startupCost + parent.scanEst),
271
+ cost: child.cost +
272
+ child.scanEst * (parent.startupCost + parent.cost + parent.scanEst),
269
273
  returnedRows: parent.returnedRows * child.returnedRows * child.selectivity,
270
274
  selectivity: parent.selectivity * child.selectivity,
271
275
  limit: parent.limit,
@@ -1 +1 @@
1
- {"version":3,"file":"planner-join.js","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-join.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planner-join.js","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-join.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { SimpleOperator } from '../../../zero-protocol/src/ast.ts';
2
+ import type { Schema } from '../../../zero-types/src/schema.ts';
3
+ import type { ExpressionFactory, ParameterReference } from './expression.ts';
4
+ import type { AvailableRelationships, DestTableName, ExistsOptions, GetFilterType, NoCompoundTypeSelector, PullRow, PullTableSchema, Query } from './query.ts';
5
+ /**
6
+ * Function type for chaining one query to another.
7
+ */
8
+ type ChainQuery<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn1, TReturn2, TContext> = (q: Query<TSchema, TTable, TReturn1, TContext>) => Query<TSchema, TTable, TReturn2, TContext>;
9
+ export type AnyChainQuery = ChainQuery<Schema, string, PullRow<string, Schema>, PullRow<string, Schema>, unknown>;
10
+ /**
11
+ * Chained query that applies a transformation function to a parent query.
12
+ * This represents a query operation that builds on top of another query.
13
+ */
14
+ export declare class ChainedQuery<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TContext> implements Query<TSchema, TTable, TReturn, TContext> {
15
+ #private;
16
+ constructor(parent: {
17
+ withContext(ctx: TContext): Query<TSchema, TTable, unknown>;
18
+ }, chainFn: AnyChainQuery);
19
+ withContext(ctx: TContext): Query<TSchema, TTable, TReturn>;
20
+ one(): ChainedQuery<TSchema, TTable, TReturn | undefined, TContext>;
21
+ whereExists<TRelationship extends AvailableRelationships<TTable, TSchema>>(relationship: TRelationship, options?: ExistsOptions): ChainedQuery<TSchema, TTable, TReturn, TContext>;
22
+ whereExists<TRelationship extends AvailableRelationships<TTable, TSchema>>(relationship: TRelationship, cb: (q: Query<TSchema, DestTableName<TTable, TSchema, TRelationship>, TContext>) => Query<TSchema, string, TContext>, options?: ExistsOptions): ChainedQuery<TSchema, TTable, TReturn, TContext>;
23
+ related<TRelationship extends AvailableRelationships<TTable, TSchema>>(relationship: TRelationship): ChainedQuery<TSchema, TTable, TReturn & Record<string, unknown>, TContext>;
24
+ related<TRelationship extends AvailableRelationships<TTable, TSchema>, TSub extends Query<TSchema, string, unknown>>(relationship: TRelationship, cb: (q: Query<TSchema, DestTableName<TTable, TSchema, TRelationship>, TContext>) => TSub): ChainedQuery<TSchema, TTable, TReturn & Record<string, unknown>, TContext>;
25
+ where<TSelector extends NoCompoundTypeSelector<PullTableSchema<TTable, TSchema>>, TOperator extends SimpleOperator>(field: TSelector, op: TOperator, value: GetFilterType<PullTableSchema<TTable, TSchema>, TSelector, TOperator> | ParameterReference): ChainedQuery<TSchema, TTable, TReturn, TContext>;
26
+ where<TSelector extends NoCompoundTypeSelector<PullTableSchema<TTable, TSchema>>>(field: TSelector, value: GetFilterType<PullTableSchema<TTable, TSchema>, TSelector, '='> | ParameterReference): ChainedQuery<TSchema, TTable, TReturn, TContext>;
27
+ where(expressionFactory: ExpressionFactory<TSchema, TTable>): ChainedQuery<TSchema, TTable, TReturn, TContext>;
28
+ start(row: Partial<PullRow<TTable, TSchema>>, opts?: {
29
+ inclusive: boolean;
30
+ }): ChainedQuery<TSchema, TTable, TReturn, TContext>;
31
+ limit(limit: number): ChainedQuery<TSchema, TTable, TReturn, TContext>;
32
+ orderBy<TSelector extends keyof PullTableSchema<TTable, TSchema>['columns']>(field: TSelector, direction: 'asc' | 'desc'): ChainedQuery<TSchema, TTable, TReturn, TContext>;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=chained-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chained-query.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/chained-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ var _a;
2
+ /**
3
+ * Chained query that applies a transformation function to a parent query.
4
+ * This represents a query operation that builds on top of another query.
5
+ */
6
+ export class ChainedQuery {
7
+ #parent;
8
+ #chainFn;
9
+ #q;
10
+ constructor(parent, chainFn) {
11
+ this.#parent = parent;
12
+ this.#chainFn = chainFn;
13
+ }
14
+ withContext(ctx) {
15
+ if (this.#q) {
16
+ return this.#q;
17
+ }
18
+ // This is a chained query - get the parent query and apply the chain function
19
+ const parentQuery = this.#parent.withContext(ctx);
20
+ this.#q = this.#chainFn(parentQuery);
21
+ return this.#q;
22
+ }
23
+ #withChain(fn) {
24
+ return new _a(this, fn);
25
+ }
26
+ // Query interface methods
27
+ one() {
28
+ return this.#withChain(q => q.one());
29
+ }
30
+ whereExists(relationship, cbOrOptions, options) {
31
+ if (typeof cbOrOptions === 'function') {
32
+ return this.#withChain(q => q.whereExists(relationship, cbOrOptions, options));
33
+ }
34
+ return this.#withChain(q => q.whereExists(relationship, cbOrOptions));
35
+ }
36
+ related(relationship, cb) {
37
+ if (cb) {
38
+ return this.#withChain(q => q.related(relationship, cb));
39
+ }
40
+ return this.#withChain(q => q.related(relationship));
41
+ }
42
+ where(fieldOrExpressionFactory, opOrValue, value) {
43
+ if (typeof fieldOrExpressionFactory === 'function') {
44
+ return this.#withChain(q => q.where(fieldOrExpressionFactory));
45
+ }
46
+ if (value !== undefined) {
47
+ return this.#withChain(q =>
48
+ // Cast to bypass TypeScript's strict type checking - this proxy method needs runtime flexibility
49
+ q.where(fieldOrExpressionFactory, opOrValue, value));
50
+ }
51
+ return this.#withChain(q =>
52
+ // Cast to bypass TypeScript's strict type checking - this proxy method needs runtime flexibility
53
+ q.where(fieldOrExpressionFactory, opOrValue));
54
+ }
55
+ start(row, opts) {
56
+ return this.#withChain(q => q.start(row, opts));
57
+ }
58
+ limit(limit) {
59
+ return this.#withChain(q => q.limit(limit));
60
+ }
61
+ orderBy(field, direction) {
62
+ return this.#withChain(q => q.orderBy(field, direction));
63
+ }
64
+ }
65
+ _a = ChainedQuery;
66
+ //# sourceMappingURL=chained-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chained-query.js","sourceRoot":"","sources":["../../../../../zql/src/query/chained-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
2
+ import type { ReadonlyJSONValue } from '../../../shared/src/json.ts';
3
+ import type { Schema } from '../../../zero-types/src/schema.ts';
4
+ import type { Query } from './query.ts';
5
+ export type DefineQueryOptions<Input, Output> = {
6
+ validator?: StandardSchemaV1<Input, Output> | undefined;
7
+ };
8
+ /**
9
+ * Function type for root query functions that take context and args.
10
+ */
11
+ export type DefineQueryFunc<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TContext, TArgs> = (options: {
12
+ ctx: TContext;
13
+ args: TArgs;
14
+ }) => Query<TSchema, TTable, TReturn, TContext>;
15
+ export type NamedQueryFunction<TName extends string, TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TContext, TOutput extends ReadonlyJSONValue | undefined, TInput extends ReadonlyJSONValue | undefined> = ([TOutput] extends [undefined] ? (() => Query<TSchema, TTable, TReturn, TContext>) & ((args: undefined) => Query<TSchema, TTable, TReturn, TContext>) : undefined extends TOutput ? (args?: TInput) => Query<TSchema, TTable, TReturn, TContext> : (args: TInput) => Query<TSchema, TTable, TReturn, TContext>) & {
16
+ queryName: TName;
17
+ };
18
+ export type AnyNamedQueryFunction = NamedQueryFunction<string, Schema, string, any, any, ReadonlyJSONValue | undefined, ReadonlyJSONValue | undefined>;
19
+ export declare function defineQuery<TName extends string, TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TContext, TArgs extends ReadonlyJSONValue | undefined>(name: TName, queryFn: DefineQueryFunc<TSchema, TTable, TReturn, TContext, TArgs>): NamedQueryFunction<TName, TSchema, TTable, TReturn, TContext, TArgs, TArgs>;
20
+ export declare function defineQuery<TName extends string, TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TContext, TOutput extends ReadonlyJSONValue | undefined, TInput extends ReadonlyJSONValue | undefined = TOutput>(name: TName, options: DefineQueryOptions<TInput, TOutput>, queryFn: DefineQueryFunc<TSchema, TTable, TReturn, TContext, TOutput>): NamedQueryFunction<TName, TSchema, TTable, TReturn, TContext, TOutput, TInput>;
21
+ export declare function defineQuery<TName extends string, TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TContext, TArgs extends ReadonlyJSONValue | undefined>(name: TName, options: {}, queryFn: DefineQueryFunc<TSchema, TTable, TReturn, TContext, TArgs>): NamedQueryFunction<TName, TSchema, TTable, TReturn, TContext, TArgs, TArgs>;
22
+ /**
23
+ * Creates a type-safe query definition function that is parameterized by a
24
+ * custom context type.
25
+ *
26
+ * This utility allows you to define queries with explicit context typing,
27
+ * ensuring that the query function receives the correct context type. It
28
+ * returns a function that can be used to define named queries with schema,
29
+ * table, input, and output types.
30
+ *
31
+ * @typeParam TContext - The type of the context object that will be passed to
32
+ * the query function.
33
+ *
34
+ * @returns A function for defining named queries with the specified context
35
+ * type.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const defineQuery = defineQueryWithContextType<MyContext>();
40
+ * const myQuery = defineQuery(
41
+ * "getUser",
42
+ * {validator: z.string()},
43
+ * ({ctx, args}) => {
44
+ * ctx satisfies MyContext;
45
+ * ...
46
+ * },
47
+ * );
48
+ * ```
49
+ */
50
+ export declare function defineQueryWithContextType<TContext>(): <TName extends string, TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, TOutput extends ReadonlyJSONValue | undefined, TInput extends ReadonlyJSONValue | undefined = TOutput>(name: TName, optionsOrQueryFn: DefineQueryOptions<TInput, TOutput> | DefineQueryFunc<TSchema, TTable, TReturn, TContext, TOutput>, queryFn?: DefineQueryFunc<TSchema, TTable, TReturn, TContext, TOutput>) => NamedQueryFunction<TName, TSchema, TTable, TReturn, TContext, TOutput, TInput>;
51
+ //# sourceMappingURL=define-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-query.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/define-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { RootNamedQuery } from "./root-named-query.js";
2
+ // Implementation
3
+ export function defineQuery(name, optionsOrQueryFn, queryFn) {
4
+ // Handle different parameter patterns
5
+ let defineOptions;
6
+ let actualQueryFn;
7
+ if (typeof optionsOrQueryFn === 'function') {
8
+ // defineQuery(name, queryFn) - no options
9
+ defineOptions = undefined;
10
+ actualQueryFn = optionsOrQueryFn;
11
+ }
12
+ else {
13
+ // defineQuery(name, options, queryFn) - with options
14
+ defineOptions = optionsOrQueryFn;
15
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
16
+ actualQueryFn = queryFn;
17
+ }
18
+ const f = ((args) => new RootNamedQuery(name, actualQueryFn, args, defineOptions?.validator));
19
+ f.queryName = name;
20
+ return f;
21
+ }
22
+ /**
23
+ * Creates a type-safe query definition function that is parameterized by a
24
+ * custom context type.
25
+ *
26
+ * This utility allows you to define queries with explicit context typing,
27
+ * ensuring that the query function receives the correct context type. It
28
+ * returns a function that can be used to define named queries with schema,
29
+ * table, input, and output types.
30
+ *
31
+ * @typeParam TContext - The type of the context object that will be passed to
32
+ * the query function.
33
+ *
34
+ * @returns A function for defining named queries with the specified context
35
+ * type.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const defineQuery = defineQueryWithContextType<MyContext>();
40
+ * const myQuery = defineQuery(
41
+ * "getUser",
42
+ * {validator: z.string()},
43
+ * ({ctx, args}) => {
44
+ * ctx satisfies MyContext;
45
+ * ...
46
+ * },
47
+ * );
48
+ * ```
49
+ */
50
+ export function defineQueryWithContextType() {
51
+ return defineQuery;
52
+ }
53
+ //# sourceMappingURL=define-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-query.js","sourceRoot":"","sources":["../../../../../zql/src/query/define-query.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAmGrD,iBAAiB;AACjB,MAAM,UAAU,WAAW,CASzB,IAAW,EACX,gBAEgE,EAChE,OAAsE;IAUtE,sCAAsC;IACtC,IAAI,aAA8D,CAAC;IACnE,IAAI,aAMH,CAAC;IAEF,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC3C,0CAA0C;QAC1C,aAAa,GAAG,SAAS,CAAC;QAC1B,aAAa,GAAG,gBAAgB,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,aAAa,GAAG,gBAAgB,CAAC;QACjC,oEAAoE;QACpE,aAAa,GAAG,OAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAC3B,IAAI,cAAc,CAChB,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,aAAa,EAAE,SAAS,CACzB,CAQF,CAAC;IACF,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,0BAA0B;IAsBxC,OAAO,WAqBN,CAAC;AACJ,CAAC"}
@@ -1,20 +1,30 @@
1
1
  import type { ReadonlyJSONValue } from '../../../shared/src/json.ts';
2
2
  import type { Schema } from '../../../zero-types/src/schema.ts';
3
3
  import type { SchemaQuery } from '../mutate/custom.ts';
4
- import type { Query } from './query.ts';
5
- export type QueryFn<TContext, TTakesContext extends boolean, TArg extends ReadonlyJSONValue[], TReturnQuery extends Query<any, any, any>> = TTakesContext extends false ? {
4
+ import type { NamedQueryFunction } from './define-query.ts';
5
+ import { type AnyQuery } from './query.ts';
6
+ export type QueryFn<TContext, TTakesContext extends boolean, TArg extends ReadonlyJSONValue[], TReturnQuery extends AnyQuery> = TTakesContext extends false ? {
6
7
  (...args: TArg): TReturnQuery;
7
8
  } : {
8
9
  (context: TContext, ...args: TArg): TReturnQuery;
9
10
  };
10
- export type SyncedQuery<TName extends string, TContext, TTakesContext extends boolean, TArg extends ReadonlyJSONValue[], TReturnQuery extends Query<any, any, any>> = QueryFn<TContext, TTakesContext, TArg, TReturnQuery> & {
11
+ export type SyncedQuery<TName extends string, TContext, TTakesContext extends boolean, TArg extends ReadonlyJSONValue[], TReturnQuery extends AnyQuery> = QueryFn<TContext, TTakesContext, TArg, TReturnQuery> & {
11
12
  queryName: TName;
12
13
  parse: ParseFn<TArg> | undefined;
13
14
  takesContext: TTakesContext;
14
15
  };
15
- export declare function syncedQuery<TName extends string, TArg extends ReadonlyJSONValue[], TReturnQuery extends Query<any, any, any>>(name: TName, parser: ParseFn<TArg> | HasParseFn<TArg> | undefined, fn: QueryFn<unknown, false, TArg, TReturnQuery>): SyncedQuery<TName, unknown, false, TArg, TReturnQuery>;
16
- export declare function syncedQueryWithContext<TName extends string, TContext, TArg extends ReadonlyJSONValue[], TReturnQuery extends Query<any, any, any>>(name: TName, parser: ParseFn<TArg> | HasParseFn<TArg> | undefined, fn: QueryFn<TContext, true, TArg, TReturnQuery>): SyncedQuery<TName, TContext, true, TArg, TReturnQuery>;
17
- export declare function withValidation<T extends SyncedQuery<any, any, any, any, any>>(fn: T): T extends SyncedQuery<infer N, infer C, any, any, infer R> ? SyncedQuery<N, C, true, ReadonlyJSONValue[], R> : never;
16
+ /**
17
+ * @deprecated Use {@linkcode defineQuery} instead.
18
+ */
19
+ export declare function syncedQuery<TName extends string, TArg extends ReadonlyJSONValue[], TReturnQuery extends AnyQuery>(name: TName, parser: ParseFn<TArg> | HasParseFn<TArg> | undefined, fn: QueryFn<unknown, false, TArg, TReturnQuery>): SyncedQuery<TName, unknown, false, TArg, TReturnQuery>;
20
+ /**
21
+ * @deprecated Use {@linkcode defineQuery} instead.
22
+ */
23
+ export declare function syncedQueryWithContext<TName extends string, TContext, TArg extends ReadonlyJSONValue[], TReturnQuery extends AnyQuery>(name: TName, parser: ParseFn<TArg> | HasParseFn<TArg> | undefined, fn: QueryFn<TContext, true, TArg, TReturnQuery>): SyncedQuery<TName, TContext, true, TArg, TReturnQuery>;
24
+ type AnySyncedQuery = SyncedQuery<any, any, any, any, any>;
25
+ type AnyNamedQueryFunction = NamedQueryFunction<any, any, any, any, any, any, any>;
26
+ export declare function withValidation<F extends AnySyncedQuery>(fn: F): F extends SyncedQuery<infer N, infer C, any, infer A, infer R> ? SyncedQuery<N, C, true, A, R> : never;
27
+ export declare function withValidation<F extends AnyNamedQueryFunction>(fn: F): F;
18
28
  export type ParseFn<T extends ReadonlyJSONValue[]> = (args: unknown[]) => T;
19
29
  export type HasParseFn<T extends ReadonlyJSONValue[]> = {
20
30
  parse: ParseFn<T>;
@@ -27,5 +37,6 @@ export type CustomQueryID = {
27
37
  /**
28
38
  * Returns a set of query builders for the given schema.
29
39
  */
30
- export declare function createBuilder<S extends Schema>(s: S): SchemaQuery<S>;
40
+ export declare function createBuilder<S extends Schema, TContext>(s: S): SchemaQuery<S, TContext>;
41
+ export {};
31
42
  //# sourceMappingURL=named.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"named.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/named.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"named.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/named.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { QueryParseError } from "./error.js";
2
2
  import { newQuery } from "./query-impl.js";
3
+ import { queryWithContext } from "./query-internals.js";
4
+ import {} from "./query.js";
3
5
  function normalizeParser(parser) {
4
6
  if (parser) {
5
7
  if ('parse' in parser) {
@@ -9,16 +11,24 @@ function normalizeParser(parser) {
9
11
  }
10
12
  return undefined;
11
13
  }
14
+ /**
15
+ * @deprecated Use {@linkcode defineQuery} instead.
16
+ */
12
17
  export function syncedQuery(name, parser, fn) {
13
18
  const impl = syncedQueryImpl(name, fn, false);
19
+ // oxlint-disable-next-line no-explicit-any
14
20
  const ret = (...args) => impl(undefined, args);
15
21
  ret.queryName = name;
16
22
  ret.parse = normalizeParser(parser);
17
23
  ret.takesContext = false;
18
24
  return ret;
19
25
  }
26
+ /**
27
+ * @deprecated Use {@linkcode defineQuery} instead.
28
+ */
20
29
  export function syncedQueryWithContext(name, parser, fn) {
21
30
  const impl = syncedQueryImpl(name, fn, true);
31
+ // oxlint-disable-next-line no-explicit-any
22
32
  const ret = (context, ...args) => impl(context, args);
23
33
  ret.queryName = name;
24
34
  ret.parse = normalizeParser(parser);
@@ -28,29 +38,36 @@ export function syncedQueryWithContext(name, parser, fn) {
28
38
  function syncedQueryImpl(name, fn, takesContext) {
29
39
  return (context, args) => {
30
40
  const q = takesContext ? fn(context, ...args) : fn(...args);
31
- return q.nameAndArgs(name, args);
41
+ return queryWithContext(q, context).nameAndArgs(name, args);
32
42
  };
33
43
  }
34
44
  export function withValidation(fn) {
35
- if (!fn.parse) {
36
- throw new Error('ret does not have a parse function defined');
37
- }
38
- const ret = (context, ...args) => {
39
- const f = fn;
40
- // oxlint-disable-next-line no-explicit-any
41
- let parsed;
42
- try {
43
- parsed = f.parse(args);
45
+ // If we have a parse function this is a SyncedQuery
46
+ if ('parse' in fn) {
47
+ const { parse } = fn;
48
+ if (!parse) {
49
+ throw new Error('ret does not have a parse function defined');
44
50
  }
45
- catch (error) {
46
- throw new QueryParseError({ cause: error });
47
- }
48
- return f.takesContext ? f(context, ...parsed) : f(...parsed);
49
- };
50
- ret.queryName = fn.queryName;
51
- ret.parse = fn.parse;
52
- ret.takesContext = true;
53
- return ret;
51
+ // oxlint-disable-next-line no-explicit-any
52
+ const ret = (context, ...args) => {
53
+ let parsed;
54
+ try {
55
+ parsed = parse(args);
56
+ }
57
+ catch (error) {
58
+ throw new QueryParseError({ cause: error });
59
+ }
60
+ // oxlint-disable-next-line no-explicit-any
61
+ return fn.takesContext ? fn(context, ...parsed) : fn(...parsed);
62
+ };
63
+ ret.queryName = fn.queryName;
64
+ ret.parse = fn.parse;
65
+ ret.takesContext = true;
66
+ return ret;
67
+ }
68
+ // Otherwise this is a NamedQueryFunction which always validates.
69
+ // oxlint-disable-next-line no-explicit-any
70
+ return fn;
54
71
  }
55
72
  /**
56
73
  * Returns a set of query builders for the given schema.
@@ -64,6 +81,7 @@ export function createBuilder(s) {
64
81
  */
65
82
  function makeQueryBuilders(schema) {
66
83
  return new Proxy({}, {
84
+ // oxlint-disable-next-line no-explicit-any
67
85
  get: (target, prop) => {
68
86
  if (prop in target) {
69
87
  return target[prop];
@@ -71,7 +89,7 @@ function makeQueryBuilders(schema) {
71
89
  if (!(prop in schema.tables)) {
72
90
  throw new Error(`Table ${prop} does not exist in schema`);
73
91
  }
74
- const q = newQuery(undefined, schema, prop);
92
+ const q = newQuery(schema, prop);
75
93
  target[prop] = q;
76
94
  return q;
77
95
  },
@@ -1 +1 @@
1
- {"version":3,"file":"named.js","sourceRoot":"","sources":["../../../../../zql/src/query/named.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"named.js","sourceRoot":"","sources":["../../../../../zql/src/query/named.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import type { AST } from '../../../zero-protocol/src/ast.ts';
2
+ import type { Schema } from '../../../zero-types/src/schema.ts';
3
+ import type { FilterInput } from '../ivm/filter-operators.ts';
4
+ import type { Input, InputBase, Storage } from '../ivm/operator.ts';
5
+ import type { Source, SourceInput } from '../ivm/source.ts';
6
+ import type { ViewFactory } from '../ivm/view.ts';
7
+ import type { MetricMap } from './metrics-delegate.ts';
8
+ import type { CustomQueryID } from './named.ts';
9
+ import type { CommitListener, GotCallback, QueryDelegate } from './query-delegate.ts';
10
+ import { type QueryInternals } from './query-internals.ts';
11
+ import type { HumanReadable, MaterializeOptions, PreloadOptions, Query, RunOptions } from './query.ts';
12
+ import type { TTL } from './ttl.ts';
13
+ import type { TypedView } from './typed-view.ts';
14
+ /**
15
+ * Base class that provides default implementations for common QueryDelegate methods.
16
+ * Subclasses can override specific methods as needed.
17
+ */
18
+ export declare abstract class QueryDelegateBase<TContext> implements QueryDelegate<TContext> {
19
+ #private;
20
+ constructor(context: TContext);
21
+ /**
22
+ * Default implementation that calls queryWithContext.
23
+ * Override if you need custom context handling.
24
+ */
25
+ withContext<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn>(query: Query<TSchema, TTable, TReturn, TContext>): QueryInternals<TSchema, TTable, TReturn, TContext>;
26
+ /**
27
+ * Default implementation that just calls applyViewUpdates synchronously.
28
+ * Override if you need custom batching behavior (e.g., SolidJS).
29
+ */
30
+ batchViewUpdates<T>(applyViewUpdates: () => T): T;
31
+ /**
32
+ * Default implementation returns MemoryStorage.
33
+ * Override if you need custom storage.
34
+ */
35
+ createStorage(): Storage;
36
+ /**
37
+ * Default implementation calls materializeImpl.
38
+ * Override if you need custom materialization behavior.
39
+ */
40
+ materialize<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn>(query: Query<TSchema, TTable, TReturn, TContext>, factory?: undefined, options?: MaterializeOptions): TypedView<HumanReadable<TReturn>>;
41
+ materialize<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, T>(query: Query<TSchema, TTable, TReturn, TContext>, factory?: ViewFactory<TSchema, TTable, TReturn, TContext, T>, options?: MaterializeOptions): T;
42
+ /**
43
+ * Materialize a query into a custom view using a provided factory function.
44
+ */
45
+ materialize<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn, T>(query: Query<TSchema, TTable, TReturn, TContext>, factory?: ViewFactory<TSchema, TTable, TReturn, TContext, T>, options?: MaterializeOptions): T;
46
+ /**
47
+ * Default implementation calls runImpl.
48
+ * Override if you need custom query execution (e.g., TestPGQueryDelegate).
49
+ */
50
+ run<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn>(query: Query<TSchema, TTable, TReturn, TContext>, options?: RunOptions): Promise<HumanReadable<TReturn>>;
51
+ /**
52
+ * Default implementation calls preloadImpl.
53
+ * Override if you need custom preload behavior.
54
+ */
55
+ preload<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn>(query: Query<TSchema, TTable, TReturn, TContext>, options?: PreloadOptions): {
56
+ cleanup: () => void;
57
+ complete: Promise<void>;
58
+ };
59
+ /**
60
+ * Default no-op implementation for decorateSourceInput.
61
+ * Override if you need to wrap or instrument source inputs.
62
+ */
63
+ decorateSourceInput(input: SourceInput, _queryID: string): Input;
64
+ /**
65
+ * Default no-op implementation for decorateInput.
66
+ * Override if you need to wrap or instrument inputs.
67
+ */
68
+ decorateInput(input: Input, _name: string): Input;
69
+ /**
70
+ * Default no-op implementation for decorateFilterInput.
71
+ * Override if you need to wrap or instrument filter inputs.
72
+ */
73
+ decorateFilterInput(input: FilterInput, _name: string): FilterInput;
74
+ /**
75
+ * Default no-op implementation for addEdge.
76
+ * Override if you need to track graph edges (e.g., visualization).
77
+ */
78
+ addEdge(_source: InputBase, _dest: InputBase): void;
79
+ /**
80
+ * Default no-op implementation for addMetric.
81
+ * Override if you need to collect metrics.
82
+ */
83
+ addMetric<K extends keyof MetricMap>(_metric: K, _value: number, ..._args: MetricMap[K]): void;
84
+ /**
85
+ * Default no-op implementation.
86
+ * Override if you need to track server queries (e.g., ZeroContext, test delegates).
87
+ */
88
+ addServerQuery(_ast: AST, _ttl: TTL, _gotCallback?: GotCallback): () => void;
89
+ /**
90
+ * Default no-op implementation.
91
+ * Override if you need to track custom queries (e.g., ZeroContext, test delegates).
92
+ */
93
+ addCustomQuery(_ast: AST, _customQueryID: CustomQueryID, _ttl: TTL, _gotCallback?: GotCallback): () => void;
94
+ /**
95
+ * Default no-op implementation.
96
+ * Override if you need to handle query updates.
97
+ */
98
+ updateServerQuery(_ast: AST, _ttl: TTL): void;
99
+ /**
100
+ * Default no-op implementation.
101
+ * Override if you need to handle custom query updates.
102
+ */
103
+ updateCustomQuery(_customQueryID: CustomQueryID, _ttl: TTL): void;
104
+ /**
105
+ * Default no-op implementation.
106
+ * Override if you need to flush query changes.
107
+ */
108
+ flushQueryChanges(): void;
109
+ /**
110
+ * Called when a transaction commits. Override to add custom behavior.
111
+ * Default implementation returns a no-op cleanup function.
112
+ */
113
+ onTransactionCommit(_cb: CommitListener): () => void;
114
+ /**
115
+ * Validates run options. Override to add custom validation.
116
+ * Default implementation is a no-op.
117
+ */
118
+ assertValidRunOptions(_options?: RunOptions): void;
119
+ abstract readonly defaultQueryComplete: boolean;
120
+ abstract getSource(name: string): Source | undefined;
121
+ }
122
+ //# sourceMappingURL=query-delegate-base.d.ts.map