@rocicorp/zero 1.6.0-canary.1 → 1.6.0-canary.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1772) hide show
  1. package/README.md +28 -3
  2. package/out/_virtual/_@oxc-project_runtime@0.130.0/helpers/usingCtx.js +57 -0
  3. package/out/_virtual/__vite-optional-peer-dep_pg-native_pg.js +13 -0
  4. package/out/_virtual/__vite-optional-peer-dep_pg-native_pg.js.map +1 -0
  5. package/out/_virtual/_rolldown/runtime.js +12 -1
  6. package/out/node_modules/.pnpm/@opentelemetry_semantic-conventions@1.41.1/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js +12 -0
  7. package/out/node_modules/.pnpm/@opentelemetry_semantic-conventions@1.41.1/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js.map +1 -0
  8. package/out/node_modules/.pnpm/pg-cloudflare@1.3.0/node_modules/pg-cloudflare/dist/empty.js +11 -0
  9. package/out/node_modules/.pnpm/pg-cloudflare@1.3.0/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
  10. package/out/node_modules/.pnpm/pg-connection-string@2.12.0/node_modules/pg-connection-string/index.js +130 -0
  11. package/out/node_modules/.pnpm/pg-connection-string@2.12.0/node_modules/pg-connection-string/index.js.map +1 -0
  12. package/out/node_modules/.pnpm/pg-int8@1.0.1/node_modules/pg-int8/index.js +62 -0
  13. package/out/node_modules/.pnpm/pg-int8@1.0.1/node_modules/pg-int8/index.js.map +1 -0
  14. package/out/node_modules/.pnpm/pg-pool@3.13.0_pg@8.20.0/node_modules/pg-pool/index.js +353 -0
  15. package/out/node_modules/.pnpm/pg-pool@3.13.0_pg@8.20.0/node_modules/pg-pool/index.js.map +1 -0
  16. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-reader.js +60 -0
  17. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
  18. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-writer.js +81 -0
  19. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
  20. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/index.js +35 -0
  21. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/index.js.map +1 -0
  22. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/messages.js +167 -0
  23. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/messages.js.map +1 -0
  24. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/parser.js +288 -0
  25. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/parser.js.map +1 -0
  26. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/serializer.js +177 -0
  27. package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/serializer.js.map +1 -0
  28. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.js +46 -0
  29. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.js.map +1 -0
  30. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/arrayParser.js +16 -0
  31. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/arrayParser.js.map +1 -0
  32. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/binaryParsers.js +165 -0
  33. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/binaryParsers.js.map +1 -0
  34. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/builtins.js +81 -0
  35. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/builtins.js.map +1 -0
  36. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/textParsers.js +167 -0
  37. package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/textParsers.js.map +1 -0
  38. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/esm/index.js +19 -0
  39. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/esm/index.js.map +1 -0
  40. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/client.js +508 -0
  41. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/client.js.map +1 -0
  42. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection-parameters.js +104 -0
  43. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection-parameters.js.map +1 -0
  44. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection.js +160 -0
  45. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection.js.map +1 -0
  46. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/cert-signatures.js +97 -0
  47. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/cert-signatures.js.map +1 -0
  48. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/sasl.js +131 -0
  49. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/sasl.js.map +1 -0
  50. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-legacy.js +39 -0
  51. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-legacy.js.map +1 -0
  52. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-webcrypto.js +89 -0
  53. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-webcrypto.js.map +1 -0
  54. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils.js +13 -0
  55. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils.js.map +1 -0
  56. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/defaults.js +46 -0
  57. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/defaults.js.map +1 -0
  58. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/index.js +71 -0
  59. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/index.js.map +1 -0
  60. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/client.js +226 -0
  61. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/client.js.map +1 -0
  62. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/index.js +11 -0
  63. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/index.js.map +1 -0
  64. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/query.js +117 -0
  65. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/query.js.map +1 -0
  66. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/query.js +151 -0
  67. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/query.js.map +1 -0
  68. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/result.js +76 -0
  69. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/result.js.map +1 -0
  70. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/stream.js +73 -0
  71. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/stream.js.map +1 -0
  72. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/type-overrides.js +35 -0
  73. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/type-overrides.js.map +1 -0
  74. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/utils.js +118 -0
  75. package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/utils.js.map +1 -0
  76. package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/helper.js +147 -0
  77. package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/helper.js.map +1 -0
  78. package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/index.js +21 -0
  79. package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/index.js.map +1 -0
  80. package/out/node_modules/.pnpm/postgres-array@2.0.0/node_modules/postgres-array/index.js +84 -0
  81. package/out/node_modules/.pnpm/postgres-array@2.0.0/node_modules/postgres-array/index.js.map +1 -0
  82. package/out/node_modules/.pnpm/postgres-bytea@1.0.1/node_modules/postgres-bytea/index.js +28 -0
  83. package/out/node_modules/.pnpm/postgres-bytea@1.0.1/node_modules/postgres-bytea/index.js.map +1 -0
  84. package/out/node_modules/.pnpm/postgres-date@1.0.7/node_modules/postgres-date/index.js +65 -0
  85. package/out/node_modules/.pnpm/postgres-date@1.0.7/node_modules/postgres-date/index.js.map +1 -0
  86. package/out/node_modules/.pnpm/postgres-interval@1.2.0/node_modules/postgres-interval/index.js +107 -0
  87. package/out/node_modules/.pnpm/postgres-interval@1.2.0/node_modules/postgres-interval/index.js.map +1 -0
  88. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js +696 -0
  89. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
  90. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js +44 -0
  91. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
  92. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js +1585 -0
  93. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js.map +1 -0
  94. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js +329 -0
  95. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js.map +1 -0
  96. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/index.js +13 -0
  97. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/index.js.map +1 -0
  98. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js +13 -0
  99. package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js.map +1 -0
  100. package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/dist/server.js +131 -0
  101. package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/dist/server.js.map +1 -0
  102. package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/store/dist/server.js +96 -0
  103. package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/store/dist/server.js.map +1 -0
  104. package/out/node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js +95 -0
  105. package/out/node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js.map +1 -0
  106. package/out/node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/mutable.js +18 -0
  107. package/out/node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/mutable.js.map +1 -0
  108. package/out/packages/analyze-query/src/analyze-cli.js.map +1 -0
  109. package/out/packages/analyze-query/src/bin-analyze.js +282 -0
  110. package/out/packages/analyze-query/src/bin-analyze.js.map +1 -0
  111. package/out/packages/analyze-query/src/bin-transform.js.map +1 -0
  112. package/out/packages/ast-to-zql/src/ast-to-zql.js.map +1 -0
  113. package/out/packages/ast-to-zql/src/bin.js.map +1 -0
  114. package/out/packages/ast-to-zql/src/format.js.map +1 -0
  115. package/out/packages/datadog/src/datadog-log-sink.js.map +1 -0
  116. package/out/packages/otel/src/enabled.js.map +1 -0
  117. package/out/packages/otel/src/log-options.js.map +1 -0
  118. package/out/packages/otel/src/maybe-time.js.map +1 -0
  119. package/out/packages/otel/src/span.js.map +1 -0
  120. package/out/packages/otel/src/version.js.map +1 -0
  121. package/out/packages/replicache/src/async-iterable-to-array.js.map +1 -0
  122. package/out/packages/replicache/src/bg-interval.js.map +1 -0
  123. package/out/packages/replicache/src/btree/diff.js.map +1 -0
  124. package/out/packages/replicache/src/btree/node.js.map +1 -0
  125. package/out/packages/replicache/src/btree/read.js.map +1 -0
  126. package/out/packages/replicache/src/btree/splice.js.map +1 -0
  127. package/out/packages/replicache/src/btree/write.js +191 -0
  128. package/out/packages/replicache/src/btree/write.js.map +1 -0
  129. package/out/packages/replicache/src/call-default-fetch.js.map +1 -0
  130. package/out/packages/replicache/src/connection-loop-delegates.js.map +1 -0
  131. package/out/packages/replicache/src/connection-loop.js.map +1 -0
  132. package/out/packages/replicache/src/cookies.js.map +1 -0
  133. package/out/packages/replicache/src/dag/chunk.js.map +1 -0
  134. package/out/packages/replicache/src/dag/gc.js.map +1 -0
  135. package/out/packages/replicache/src/dag/key.js.map +1 -0
  136. package/out/packages/replicache/src/dag/lazy-store.js.map +1 -0
  137. package/out/packages/replicache/src/dag/store-impl.js +157 -0
  138. package/out/packages/replicache/src/dag/store-impl.js.map +1 -0
  139. package/out/packages/replicache/src/dag/store.js.map +1 -0
  140. package/out/packages/replicache/src/dag/visitor.js.map +1 -0
  141. package/out/packages/replicache/src/db/commit.js.map +1 -0
  142. package/out/packages/replicache/src/db/index.js.map +1 -0
  143. package/out/packages/replicache/src/db/read.js.map +1 -0
  144. package/out/packages/replicache/src/db/rebase.js.map +1 -0
  145. package/out/packages/replicache/src/db/write.js.map +1 -0
  146. package/out/packages/replicache/src/deleted-clients.js.map +1 -0
  147. package/out/packages/replicache/src/error-responses.js.map +1 -0
  148. package/out/packages/replicache/src/frozen-json.js.map +1 -0
  149. package/out/packages/replicache/src/get-default-puller.js.map +1 -0
  150. package/out/packages/replicache/src/get-default-pusher.js.map +1 -0
  151. package/out/packages/replicache/src/get-kv-store-provider.js.map +1 -0
  152. package/out/packages/replicache/src/hash.js.map +1 -0
  153. package/out/packages/replicache/src/http-request-info.js.map +1 -0
  154. package/out/packages/replicache/src/index-defs.js.map +1 -0
  155. package/out/packages/replicache/src/kv/expo-sqlite/store.js +57 -0
  156. package/out/packages/replicache/src/kv/expo-sqlite/store.js.map +1 -0
  157. package/out/packages/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
  158. package/out/packages/replicache/src/kv/idb-store.js.map +1 -0
  159. package/out/packages/replicache/src/kv/mem-store.js.map +1 -0
  160. package/out/packages/replicache/src/kv/op-sqlite/store.js +63 -0
  161. package/out/packages/replicache/src/kv/op-sqlite/store.js.map +1 -0
  162. package/out/packages/replicache/src/kv/op-sqlite/types.js.map +1 -0
  163. package/out/packages/replicache/src/kv/read-impl.js.map +1 -0
  164. package/out/packages/replicache/src/kv/sqlite-store.js +301 -0
  165. package/out/packages/replicache/src/kv/sqlite-store.js.map +1 -0
  166. package/out/packages/replicache/src/kv/throw-if-closed.js +23 -0
  167. package/out/packages/replicache/src/kv/throw-if-closed.js.map +1 -0
  168. package/out/packages/replicache/src/kv/write-impl-base.js.map +1 -0
  169. package/out/packages/replicache/src/kv/write-impl.js.map +1 -0
  170. package/out/packages/replicache/src/lazy.js.map +1 -0
  171. package/out/packages/replicache/src/log-options.js.map +1 -0
  172. package/out/packages/replicache/src/make-idb-name.js.map +1 -0
  173. package/out/packages/replicache/src/new-client-channel.js.map +1 -0
  174. package/out/packages/replicache/src/on-persist-channel.js.map +1 -0
  175. package/out/packages/replicache/src/patch-operation.js.map +1 -0
  176. package/out/packages/replicache/src/pending-mutations.js.map +1 -0
  177. package/out/packages/replicache/src/persist/client-gc.js.map +1 -0
  178. package/out/packages/replicache/src/persist/client-group-gc.js.map +1 -0
  179. package/out/packages/replicache/src/persist/client-groups.js +150 -0
  180. package/out/packages/replicache/src/persist/client-groups.js.map +1 -0
  181. package/out/packages/replicache/src/persist/clients.js +289 -0
  182. package/out/packages/replicache/src/persist/clients.js.map +1 -0
  183. package/out/packages/replicache/src/persist/collect-idb-databases.js.map +1 -0
  184. package/out/packages/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
  185. package/out/packages/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
  186. package/out/packages/replicache/src/persist/heartbeat.js.map +1 -0
  187. package/out/packages/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
  188. package/out/packages/replicache/src/persist/idb-databases-store.js.map +1 -0
  189. package/out/packages/replicache/src/persist/make-client-id.js.map +1 -0
  190. package/out/packages/replicache/src/persist/persist.js +124 -0
  191. package/out/packages/replicache/src/persist/persist.js.map +1 -0
  192. package/out/packages/replicache/src/persist/refresh.js.map +1 -0
  193. package/out/packages/replicache/src/process-scheduler.js.map +1 -0
  194. package/out/packages/replicache/src/pusher.js.map +1 -0
  195. package/out/packages/replicache/src/replicache-impl.js.map +1 -0
  196. package/out/packages/replicache/src/report-error.js.map +1 -0
  197. package/out/packages/replicache/src/request-idle.js.map +1 -0
  198. package/out/packages/replicache/src/scan-iterator.js.map +1 -0
  199. package/out/packages/replicache/src/scan-options.js.map +1 -0
  200. package/out/packages/replicache/src/set-interval-with-signal.js.map +1 -0
  201. package/out/packages/replicache/src/subscriptions.js.map +1 -0
  202. package/out/packages/replicache/src/sync/diff.js.map +1 -0
  203. package/out/packages/replicache/src/sync/ids.js.map +1 -0
  204. package/out/packages/replicache/src/sync/patch.js.map +1 -0
  205. package/out/packages/replicache/src/sync/pull-error.js.map +1 -0
  206. package/out/packages/replicache/src/sync/pull.js +169 -0
  207. package/out/packages/replicache/src/sync/pull.js.map +1 -0
  208. package/out/packages/replicache/src/sync/push.js.map +1 -0
  209. package/out/packages/replicache/src/sync/request-id.js.map +1 -0
  210. package/out/packages/replicache/src/sync/sync-head-name.js.map +1 -0
  211. package/out/packages/replicache/src/to-error.js.map +1 -0
  212. package/out/packages/replicache/src/transaction-closed-error.js.map +1 -0
  213. package/out/packages/replicache/src/transactions.js.map +1 -0
  214. package/out/packages/replicache/src/version.js.map +1 -0
  215. package/out/packages/replicache/src/with-transactions.js.map +1 -0
  216. package/out/packages/shared/src/abort-error.js.map +1 -0
  217. package/out/packages/shared/src/arrays.js.map +1 -0
  218. package/out/packages/shared/src/asserts.js.map +1 -0
  219. package/out/packages/shared/src/bigint-json.js.map +1 -0
  220. package/out/packages/shared/src/binary-search.js.map +1 -0
  221. package/out/packages/shared/src/broadcast-channel.js.map +1 -0
  222. package/out/packages/shared/src/browser-env.js.map +1 -0
  223. package/out/packages/shared/src/btree-set.js.map +1 -0
  224. package/out/packages/shared/src/cache.js.map +1 -0
  225. package/out/packages/shared/src/centroid.js.map +1 -0
  226. package/out/packages/shared/src/config.js.map +1 -0
  227. package/out/packages/shared/src/custom-key-map.js.map +1 -0
  228. package/out/packages/shared/src/custom-key-set.js.map +1 -0
  229. package/out/packages/shared/src/deep-clone.js.map +1 -0
  230. package/out/packages/shared/src/deep-merge.js.map +1 -0
  231. package/out/packages/shared/src/document-visible.js.map +1 -0
  232. package/out/packages/shared/src/dotenv.js.map +1 -0
  233. package/out/packages/shared/src/error.js.map +1 -0
  234. package/out/packages/shared/src/has-own.js.map +1 -0
  235. package/out/packages/shared/src/hash.js.map +1 -0
  236. package/out/packages/shared/src/iterables.js.map +1 -0
  237. package/out/packages/shared/src/json-schema.js.map +1 -0
  238. package/out/packages/shared/src/json.js.map +1 -0
  239. package/out/packages/shared/src/logging-test-utils.js.map +1 -0
  240. package/out/packages/shared/src/logging.js.map +1 -0
  241. package/out/packages/shared/src/map.js +39 -0
  242. package/out/packages/shared/src/map.js.map +1 -0
  243. package/out/packages/shared/src/must.js.map +1 -0
  244. package/out/packages/shared/src/navigator.js.map +1 -0
  245. package/out/packages/shared/src/object-traversal.js.map +1 -0
  246. package/out/packages/shared/src/objects.js.map +1 -0
  247. package/out/packages/shared/src/options.js.map +1 -0
  248. package/out/packages/shared/src/parse-big-int.js.map +1 -0
  249. package/out/packages/shared/src/promise-race.js.map +1 -0
  250. package/out/packages/shared/src/queue.js +120 -0
  251. package/out/packages/shared/src/queue.js.map +1 -0
  252. package/out/packages/shared/src/rand.js.map +1 -0
  253. package/out/packages/shared/src/random-uint64.js.map +1 -0
  254. package/out/packages/shared/src/random-values.js.map +1 -0
  255. package/out/packages/shared/src/record-proxy.js.map +1 -0
  256. package/out/packages/shared/src/resolved-promises.js.map +1 -0
  257. package/out/packages/shared/src/ring-buffer.js +109 -0
  258. package/out/packages/shared/src/ring-buffer.js.map +1 -0
  259. package/out/packages/shared/src/sentinels.js.map +1 -0
  260. package/out/packages/shared/src/set-utils.js.map +1 -0
  261. package/out/packages/shared/src/size-of-value.js.map +1 -0
  262. package/out/packages/shared/src/sleep.js.map +1 -0
  263. package/out/packages/shared/src/sorted-entries.js.map +1 -0
  264. package/out/packages/shared/src/string-compare.js.map +1 -0
  265. package/out/packages/shared/src/subscribable.js.map +1 -0
  266. package/out/packages/shared/src/tdigest-schema.js.map +1 -0
  267. package/out/packages/shared/src/tdigest.js.map +1 -0
  268. package/out/packages/shared/src/valita.js +172 -0
  269. package/out/packages/shared/src/valita.js.map +1 -0
  270. package/out/packages/z2s/src/compiler.js.map +1 -0
  271. package/out/packages/z2s/src/sql.js.map +1 -0
  272. package/out/packages/zero/package.js +205 -0
  273. package/out/packages/zero/package.js.map +1 -0
  274. package/out/packages/zero-cache/src/auth/auth.js.map +1 -0
  275. package/out/packages/zero-cache/src/auth/jwt.js.map +1 -0
  276. package/out/packages/zero-cache/src/auth/load-permissions.js.map +1 -0
  277. package/out/packages/zero-cache/src/auth/read-authorizer.js.map +1 -0
  278. package/out/packages/zero-cache/src/auth/write-authorizer.js.map +1 -0
  279. package/out/packages/zero-cache/src/config/network.js.map +1 -0
  280. package/out/packages/zero-cache/src/config/normalize.js.map +1 -0
  281. package/out/packages/zero-cache/src/config/server-context.js.map +1 -0
  282. package/out/packages/zero-cache/src/config/zero-config.js +921 -0
  283. package/out/packages/zero-cache/src/config/zero-config.js.map +1 -0
  284. package/out/packages/zero-cache/src/custom/fetch.js.map +1 -0
  285. package/out/packages/zero-cache/src/custom-queries/transform-query.js.map +1 -0
  286. package/out/packages/zero-cache/src/db/create.js.map +1 -0
  287. package/out/packages/zero-cache/src/db/delete-lite-db.js.map +1 -0
  288. package/out/packages/zero-cache/src/db/lite-tables.js.map +1 -0
  289. package/out/packages/zero-cache/src/db/migration-lite.js +166 -0
  290. package/out/packages/zero-cache/src/db/migration-lite.js.map +1 -0
  291. package/out/packages/zero-cache/src/db/migration.js +139 -0
  292. package/out/packages/zero-cache/src/db/migration.js.map +1 -0
  293. package/out/packages/zero-cache/src/db/mode-enum.js.map +1 -0
  294. package/out/packages/zero-cache/src/db/pg-copy-binary.js.map +1 -0
  295. package/out/packages/zero-cache/src/db/pg-copy.js.map +1 -0
  296. package/out/packages/zero-cache/src/db/pg-to-lite.js.map +1 -0
  297. package/out/packages/zero-cache/src/db/pg-type-parser.js.map +1 -0
  298. package/out/packages/zero-cache/src/db/run-transaction.js.map +1 -0
  299. package/out/packages/zero-cache/src/db/specs.js.map +1 -0
  300. package/out/packages/zero-cache/src/db/statements.js.map +1 -0
  301. package/out/packages/zero-cache/src/db/transaction-pool.js.map +1 -0
  302. package/out/packages/zero-cache/src/db/warmup.js.map +1 -0
  303. package/out/packages/zero-cache/src/observability/events.js.map +1 -0
  304. package/out/packages/zero-cache/src/observability/metrics.js.map +1 -0
  305. package/out/packages/zero-cache/src/scripts/decommission.js.map +1 -0
  306. package/out/packages/zero-cache/src/scripts/deploy-permissions.js.map +1 -0
  307. package/out/packages/zero-cache/src/scripts/permissions.js.map +1 -0
  308. package/out/packages/zero-cache/src/server/anonymous-otel-start.js +306 -0
  309. package/out/packages/zero-cache/src/server/anonymous-otel-start.js.map +1 -0
  310. package/out/packages/zero-cache/src/server/inspector-delegate.js.map +1 -0
  311. package/out/packages/zero-cache/src/server/logging.js.map +1 -0
  312. package/out/packages/zero-cache/src/server/otel-diag-logger.js.map +1 -0
  313. package/out/packages/zero-cache/src/server/otel-log-sink.js.map +1 -0
  314. package/out/packages/zero-cache/src/server/otel-start.js +53 -0
  315. package/out/packages/zero-cache/src/server/otel-start.js.map +1 -0
  316. package/out/packages/zero-cache/src/server/priority-op.js.map +1 -0
  317. package/out/packages/zero-cache/src/server/runner/main.js +11 -0
  318. package/out/packages/zero-cache/src/server/runner/main.js.map +1 -0
  319. package/out/packages/zero-cache/src/server/runner/run-worker.js.map +1 -0
  320. package/out/packages/zero-cache/src/server/runner/runtime.js.map +1 -0
  321. package/out/packages/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -0
  322. package/out/packages/zero-cache/src/server/worker-dispatcher.js.map +1 -0
  323. package/out/packages/zero-cache/src/server/worker-urls.js.map +1 -0
  324. package/out/packages/zero-cache/src/services/analyze.js +72 -0
  325. package/out/packages/zero-cache/src/services/analyze.js.map +1 -0
  326. package/out/packages/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -0
  327. package/out/packages/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +1 -0
  328. package/out/packages/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -0
  329. package/out/packages/zero-cache/src/services/change-source/custom/change-source.js.map +1 -0
  330. package/out/packages/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +1 -0
  331. package/out/packages/zero-cache/src/services/change-source/pg/backfill-stream.js +197 -0
  332. package/out/packages/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -0
  333. package/out/packages/zero-cache/src/services/change-source/pg/change-source.js +929 -0
  334. package/out/packages/zero-cache/src/services/change-source/pg/change-source.js.map +1 -0
  335. package/out/packages/zero-cache/src/services/change-source/pg/decommission.js.map +1 -0
  336. package/out/packages/zero-cache/src/services/change-source/pg/initial-sync.js +553 -0
  337. package/out/packages/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -0
  338. package/out/packages/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -0
  339. package/out/packages/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -0
  340. package/out/packages/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -0
  341. package/out/packages/zero-cache/src/services/change-source/pg/lsn.js.map +1 -0
  342. package/out/packages/zero-cache/src/services/change-source/pg/replication-slots.js +162 -0
  343. package/out/packages/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -0
  344. package/out/packages/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -0
  345. package/out/packages/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -0
  346. package/out/packages/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -0
  347. package/out/packages/zero-cache/src/services/change-source/pg/schema/shard.js +330 -0
  348. package/out/packages/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -0
  349. package/out/packages/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -0
  350. package/out/packages/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -0
  351. package/out/packages/zero-cache/src/services/change-source/protocol/current/data.js +194 -0
  352. package/out/packages/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -0
  353. package/out/packages/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -0
  354. package/out/packages/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
  355. package/out/packages/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -0
  356. package/out/packages/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -0
  357. package/out/packages/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -0
  358. package/out/packages/zero-cache/src/services/change-source/protocol/current.js +56 -0
  359. package/out/packages/zero-cache/src/services/change-source/protocol/current.js.map +1 -0
  360. package/out/packages/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -0
  361. package/out/packages/zero-cache/src/services/change-streamer/broadcast.js.map +1 -0
  362. package/out/packages/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -0
  363. package/out/packages/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -0
  364. package/out/packages/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -0
  365. package/out/packages/zero-cache/src/services/change-streamer/forwarder.js.map +1 -0
  366. package/out/packages/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
  367. package/out/packages/zero-cache/src/services/change-streamer/schema/init.js +70 -0
  368. package/out/packages/zero-cache/src/services/change-streamer/schema/init.js.map +1 -0
  369. package/out/packages/zero-cache/src/services/change-streamer/schema/tables.js +191 -0
  370. package/out/packages/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -0
  371. package/out/packages/zero-cache/src/services/change-streamer/snapshot.js +42 -0
  372. package/out/packages/zero-cache/src/services/change-streamer/snapshot.js.map +1 -0
  373. package/out/packages/zero-cache/src/services/change-streamer/storer.js.map +1 -0
  374. package/out/packages/zero-cache/src/services/change-streamer/subscriber.js.map +1 -0
  375. package/out/packages/zero-cache/src/services/heapz.js.map +1 -0
  376. package/out/packages/zero-cache/src/services/http-service.js.map +1 -0
  377. package/out/packages/zero-cache/src/services/life-cycle.js +200 -0
  378. package/out/packages/zero-cache/src/services/life-cycle.js.map +1 -0
  379. package/out/packages/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -0
  380. package/out/packages/zero-cache/src/services/litestream/commands.js.map +1 -0
  381. package/out/packages/zero-cache/src/services/mutagen/error.js.map +1 -0
  382. package/out/packages/zero-cache/src/services/mutagen/mutagen.js.map +1 -0
  383. package/out/packages/zero-cache/src/services/mutagen/pusher.js.map +1 -0
  384. package/out/packages/zero-cache/src/services/replicator/change-processor.js.map +1 -0
  385. package/out/packages/zero-cache/src/services/replicator/incremental-sync.js.map +1 -0
  386. package/out/packages/zero-cache/src/services/replicator/notifier.js.map +1 -0
  387. package/out/packages/zero-cache/src/services/replicator/replication-status.js.map +1 -0
  388. package/out/packages/zero-cache/src/services/replicator/replicator.js.map +1 -0
  389. package/out/packages/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -0
  390. package/out/packages/zero-cache/src/services/replicator/reporter/report-schema.js.map +1 -0
  391. package/out/packages/zero-cache/src/services/replicator/schema/change-log.js.map +1 -0
  392. package/out/packages/zero-cache/src/services/replicator/schema/column-metadata.js.map +1 -0
  393. package/out/packages/zero-cache/src/services/replicator/schema/constants.js.map +1 -0
  394. package/out/packages/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -0
  395. package/out/packages/zero-cache/src/services/replicator/schema/table-metadata.js.map +1 -0
  396. package/out/packages/zero-cache/src/services/replicator/write-worker-client.js.map +1 -0
  397. package/out/packages/zero-cache/src/services/replicator/write-worker.js.map +1 -0
  398. package/out/packages/zero-cache/src/services/run-ast.js +88 -0
  399. package/out/packages/zero-cache/src/services/run-ast.js.map +1 -0
  400. package/out/packages/zero-cache/src/services/runner.js.map +1 -0
  401. package/out/packages/zero-cache/src/services/running-state.js +139 -0
  402. package/out/packages/zero-cache/src/services/running-state.js.map +1 -0
  403. package/out/packages/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +1 -0
  404. package/out/packages/zero-cache/src/services/statz.js.map +1 -0
  405. package/out/packages/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -0
  406. package/out/packages/zero-cache/src/services/view-syncer/client-handler.js +270 -0
  407. package/out/packages/zero-cache/src/services/view-syncer/client-handler.js.map +1 -0
  408. package/out/packages/zero-cache/src/services/view-syncer/client-schema.js.map +1 -0
  409. package/out/packages/zero-cache/src/services/view-syncer/connection-context-manager.js.map +1 -0
  410. package/out/packages/zero-cache/src/services/view-syncer/cvr-purger.js +110 -0
  411. package/out/packages/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -0
  412. package/out/packages/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -0
  413. package/out/packages/zero-cache/src/services/view-syncer/cvr.js.map +1 -0
  414. package/out/packages/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -0
  415. package/out/packages/zero-cache/src/services/view-syncer/inspect-handler.js +102 -0
  416. package/out/packages/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -0
  417. package/out/packages/zero-cache/src/services/view-syncer/pipeline-driver.js +628 -0
  418. package/out/packages/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -0
  419. package/out/packages/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -0
  420. package/out/packages/zero-cache/src/services/view-syncer/row-set-signature.js.map +1 -0
  421. package/out/packages/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -0
  422. package/out/packages/zero-cache/src/services/view-syncer/schema/init.js +142 -0
  423. package/out/packages/zero-cache/src/services/view-syncer/schema/init.js.map +1 -0
  424. package/out/packages/zero-cache/src/services/view-syncer/schema/types.js +278 -0
  425. package/out/packages/zero-cache/src/services/view-syncer/schema/types.js.map +1 -0
  426. package/out/packages/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -0
  427. package/out/packages/zero-cache/src/services/view-syncer/tracer.js.map +1 -0
  428. package/out/packages/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -0
  429. package/out/packages/zero-cache/src/services/view-syncer/view-syncer.js +1245 -0
  430. package/out/packages/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -0
  431. package/out/packages/zero-cache/src/types/configuration-error.js +11 -0
  432. package/out/packages/zero-cache/src/types/configuration-error.js.map +1 -0
  433. package/out/packages/zero-cache/src/types/error-with-level.js.map +1 -0
  434. package/out/packages/zero-cache/src/types/http.js.map +1 -0
  435. package/out/packages/zero-cache/src/types/lexi-version.js.map +1 -0
  436. package/out/packages/zero-cache/src/types/lite.js.map +1 -0
  437. package/out/packages/zero-cache/src/types/names.js.map +1 -0
  438. package/out/packages/zero-cache/src/types/pg-data-type.js.map +1 -0
  439. package/out/packages/zero-cache/src/types/pg-types.js.map +1 -0
  440. package/out/packages/zero-cache/src/types/pg-versions.js.map +1 -0
  441. package/out/packages/zero-cache/src/types/pg.js +222 -0
  442. package/out/packages/zero-cache/src/types/pg.js.map +1 -0
  443. package/out/packages/zero-cache/src/types/processes.js.map +1 -0
  444. package/out/packages/zero-cache/src/types/profiler.js.map +1 -0
  445. package/out/packages/zero-cache/src/types/row-key.js.map +1 -0
  446. package/out/packages/zero-cache/src/types/shards.js.map +1 -0
  447. package/out/packages/zero-cache/src/types/sql.js.map +1 -0
  448. package/out/packages/zero-cache/src/types/state-version.js.map +1 -0
  449. package/out/packages/zero-cache/src/types/streams.js.map +1 -0
  450. package/out/packages/zero-cache/src/types/strings.js.map +1 -0
  451. package/out/packages/zero-cache/src/types/subscription.js.map +1 -0
  452. package/out/packages/zero-cache/src/types/timeout.js.map +1 -0
  453. package/out/packages/zero-cache/src/types/url-params.js.map +1 -0
  454. package/out/packages/zero-cache/src/types/websocket-handoff.js.map +1 -0
  455. package/out/packages/zero-cache/src/types/ws.js.map +1 -0
  456. package/out/packages/zero-cache/src/workers/connect-params.js.map +1 -0
  457. package/out/packages/zero-cache/src/workers/connection.js.map +1 -0
  458. package/out/packages/zero-cache/src/workers/mutator.js.map +1 -0
  459. package/out/packages/zero-cache/src/workers/replicator.js.map +1 -0
  460. package/out/packages/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -0
  461. package/out/packages/zero-cache/src/workers/syncer.js.map +1 -0
  462. package/out/packages/zero-client/src/client/active-clients-manager.js.map +1 -0
  463. package/out/packages/zero-client/src/client/client-error-kind-enum.js.map +1 -0
  464. package/out/packages/zero-client/src/client/connection-manager.js +296 -0
  465. package/out/packages/zero-client/src/client/connection-manager.js.map +1 -0
  466. package/out/packages/zero-client/src/client/connection-status-enum.js +20 -0
  467. package/out/packages/zero-client/src/client/connection-status-enum.js.map +1 -0
  468. package/out/packages/zero-client/src/client/connection.js.map +1 -0
  469. package/out/packages/zero-client/src/client/context.js.map +1 -0
  470. package/out/packages/zero-client/src/client/crud-impl.js +61 -0
  471. package/out/packages/zero-client/src/client/crud-impl.js.map +1 -0
  472. package/out/packages/zero-client/src/client/crud.js.map +1 -0
  473. package/out/packages/zero-client/src/client/custom.js +64 -0
  474. package/out/packages/zero-client/src/client/custom.js.map +1 -0
  475. package/out/packages/zero-client/src/client/delete-clients-manager.js.map +1 -0
  476. package/out/packages/zero-client/src/client/enable-analytics.js.map +1 -0
  477. package/out/packages/zero-client/src/client/error.js.map +1 -0
  478. package/out/packages/zero-client/src/client/http-string.js.map +1 -0
  479. package/out/packages/zero-client/src/client/inspector/client-group.js.map +1 -0
  480. package/out/packages/zero-client/src/client/inspector/client.js.map +1 -0
  481. package/out/packages/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
  482. package/out/packages/zero-client/src/client/inspector/inspector.js.map +1 -0
  483. package/out/packages/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
  484. package/out/packages/zero-client/src/client/inspector/query.js.map +1 -0
  485. package/out/packages/zero-client/src/client/ivm-branch.js.map +1 -0
  486. package/out/packages/zero-client/src/client/keys.js.map +1 -0
  487. package/out/packages/zero-client/src/client/log-options.js.map +1 -0
  488. package/out/packages/zero-client/src/client/make-mutate-property.js.map +1 -0
  489. package/out/packages/zero-client/src/client/make-replicache-mutators.js.map +1 -0
  490. package/out/packages/zero-client/src/client/metric-name-enum.js.map +1 -0
  491. package/out/packages/zero-client/src/client/metrics.js.map +1 -0
  492. package/out/packages/zero-client/src/client/mutation-tracker.js.map +1 -0
  493. package/out/packages/zero-client/src/client/mutator-proxy.js.map +1 -0
  494. package/out/packages/zero-client/src/client/options.js.map +1 -0
  495. package/out/packages/zero-client/src/client/query-manager.js.map +1 -0
  496. package/out/packages/zero-client/src/client/reload-error-handler.js.map +1 -0
  497. package/out/packages/zero-client/src/client/server-option.js.map +1 -0
  498. package/out/packages/zero-client/src/client/update-needed-reason-type-enum.js +27 -0
  499. package/out/packages/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
  500. package/out/packages/zero-client/src/client/version.js +9 -0
  501. package/out/packages/zero-client/src/client/version.js.map +1 -0
  502. package/out/packages/zero-client/src/client/zero-poke-handler.js.map +1 -0
  503. package/out/packages/zero-client/src/client/zero-rep.js.map +1 -0
  504. package/out/packages/zero-client/src/client/zero.js +1469 -0
  505. package/out/packages/zero-client/src/client/zero.js.map +1 -0
  506. package/out/packages/zero-client/src/util/nanoid.js.map +1 -0
  507. package/out/packages/zero-protocol/src/analyze-query-result.js +123 -0
  508. package/out/packages/zero-protocol/src/analyze-query-result.js.map +1 -0
  509. package/out/packages/zero-protocol/src/application-error.js.map +1 -0
  510. package/out/packages/zero-protocol/src/ast.js.map +1 -0
  511. package/out/packages/zero-protocol/src/change-desired-queries.js +13 -0
  512. package/out/packages/zero-protocol/src/change-desired-queries.js.map +1 -0
  513. package/out/packages/zero-protocol/src/client-schema.js.map +1 -0
  514. package/out/packages/zero-protocol/src/close-connection.js.map +1 -0
  515. package/out/packages/zero-protocol/src/connect.js +54 -0
  516. package/out/packages/zero-protocol/src/connect.js.map +1 -0
  517. package/out/packages/zero-protocol/src/custom-queries.js.map +1 -0
  518. package/out/packages/zero-protocol/src/data.js.map +1 -0
  519. package/out/packages/zero-protocol/src/delete-clients.js.map +1 -0
  520. package/out/packages/zero-protocol/src/down.js.map +1 -0
  521. package/out/packages/zero-protocol/src/error-kind-enum.js.map +1 -0
  522. package/out/packages/zero-protocol/src/error-origin-enum.js.map +1 -0
  523. package/out/packages/zero-protocol/src/error-reason-enum.js.map +1 -0
  524. package/out/packages/zero-protocol/src/error.js +91 -0
  525. package/out/packages/zero-protocol/src/error.js.map +1 -0
  526. package/out/packages/zero-protocol/src/inspect-down.js.map +1 -0
  527. package/out/packages/zero-protocol/src/inspect-up.js +35 -0
  528. package/out/packages/zero-protocol/src/inspect-up.js.map +1 -0
  529. package/out/packages/zero-protocol/src/mutate-server.js.map +1 -0
  530. package/out/packages/zero-protocol/src/mutation-id.js.map +1 -0
  531. package/out/packages/zero-protocol/src/mutation-type-enum.js.map +1 -0
  532. package/out/packages/zero-protocol/src/mutation.js.map +1 -0
  533. package/out/packages/zero-protocol/src/mutations-patch.js.map +1 -0
  534. package/out/packages/zero-protocol/src/ping.js.map +1 -0
  535. package/out/packages/zero-protocol/src/poke.js +63 -0
  536. package/out/packages/zero-protocol/src/poke.js.map +1 -0
  537. package/out/packages/zero-protocol/src/pong.js.map +1 -0
  538. package/out/packages/zero-protocol/src/primary-key.js.map +1 -0
  539. package/out/packages/zero-protocol/src/protocol-version.js.map +1 -0
  540. package/out/packages/zero-protocol/src/pull.js.map +1 -0
  541. package/out/packages/zero-protocol/src/push.js +76 -0
  542. package/out/packages/zero-protocol/src/push.js.map +1 -0
  543. package/out/packages/zero-protocol/src/queries-patch.js.map +1 -0
  544. package/out/packages/zero-protocol/src/query-hash.js.map +1 -0
  545. package/out/packages/zero-protocol/src/query-server.js.map +1 -0
  546. package/out/packages/zero-protocol/src/row-patch.js.map +1 -0
  547. package/out/packages/zero-protocol/src/up.js.map +1 -0
  548. package/out/packages/zero-protocol/src/update-auth.js.map +1 -0
  549. package/out/packages/zero-protocol/src/version.js.map +1 -0
  550. package/out/packages/zero-react/src/use-connection-state.js +19 -0
  551. package/out/packages/zero-react/src/use-connection-state.js.map +1 -0
  552. package/out/packages/zero-react/src/use-query.js +301 -0
  553. package/out/packages/zero-react/src/use-query.js.map +1 -0
  554. package/out/packages/zero-react/src/use-zero-online.js +22 -0
  555. package/out/packages/zero-react/src/use-zero-online.js.map +1 -0
  556. package/out/packages/zero-react/src/zero-provider.js +90 -0
  557. package/out/packages/zero-react/src/zero-provider.js.map +1 -0
  558. package/out/packages/zero-schema/src/builder/relationship-builder.js.map +1 -0
  559. package/out/packages/zero-schema/src/builder/schema-builder.js.map +1 -0
  560. package/out/packages/zero-schema/src/builder/table-builder.js.map +1 -0
  561. package/out/packages/zero-schema/src/compiled-permissions.js.map +1 -0
  562. package/out/packages/zero-schema/src/name-mapper.js.map +1 -0
  563. package/out/packages/zero-schema/src/permissions.js.map +1 -0
  564. package/out/packages/zero-schema/src/schema-config.js.map +1 -0
  565. package/out/packages/zero-server/src/adapters/drizzle.js.map +1 -0
  566. package/out/packages/zero-server/src/adapters/kysely.js.map +1 -0
  567. package/out/packages/zero-server/src/adapters/pg.js +83 -0
  568. package/out/packages/zero-server/src/adapters/pg.js.map +1 -0
  569. package/out/packages/zero-server/src/adapters/postgresjs.js.map +1 -0
  570. package/out/packages/zero-server/src/adapters/prisma.js.map +1 -0
  571. package/out/packages/zero-server/src/custom.js +215 -0
  572. package/out/packages/zero-server/src/custom.js.map +1 -0
  573. package/out/packages/zero-server/src/logging.js.map +1 -0
  574. package/out/packages/zero-server/src/pg-query-executor.js.map +1 -0
  575. package/out/packages/zero-server/src/process-mutations.js.map +1 -0
  576. package/out/packages/zero-server/src/push-processor.js.map +1 -0
  577. package/out/packages/zero-server/src/queries/process-queries.js.map +1 -0
  578. package/out/packages/zero-server/src/schema.js.map +1 -0
  579. package/out/packages/zero-server/src/zql-database.js.map +1 -0
  580. package/out/packages/zero-solid/src/solid-view.js +145 -0
  581. package/out/packages/zero-solid/src/solid-view.js.map +1 -0
  582. package/out/packages/zero-solid/src/use-connection-state.js +21 -0
  583. package/out/packages/zero-solid/src/use-connection-state.js.map +1 -0
  584. package/out/packages/zero-solid/src/use-query.js +64 -0
  585. package/out/packages/zero-solid/src/use-query.js.map +1 -0
  586. package/out/packages/zero-solid/src/use-zero-online.js +21 -0
  587. package/out/packages/zero-solid/src/use-zero-online.js.map +1 -0
  588. package/out/packages/zero-solid/src/use-zero.js +93 -0
  589. package/out/packages/zero-solid/src/use-zero.js.map +1 -0
  590. package/out/packages/zero-types/src/format.js.map +1 -0
  591. package/out/packages/zero-types/src/name-mapper.js.map +1 -0
  592. package/out/packages/zql/src/builder/builder.js +381 -0
  593. package/out/packages/zql/src/builder/builder.js.map +1 -0
  594. package/out/packages/zql/src/builder/debug-delegate.js +81 -0
  595. package/out/packages/zql/src/builder/debug-delegate.js.map +1 -0
  596. package/out/packages/zql/src/builder/filter.js.map +1 -0
  597. package/out/packages/zql/src/builder/like.js.map +1 -0
  598. package/out/packages/zql/src/error.js.map +1 -0
  599. package/out/packages/zql/src/ivm/array-view.js.map +1 -0
  600. package/out/packages/zql/src/ivm/cap.js +205 -0
  601. package/out/packages/zql/src/ivm/cap.js.map +1 -0
  602. package/out/packages/zql/src/ivm/change.js.map +1 -0
  603. package/out/packages/zql/src/ivm/constraint.js +82 -0
  604. package/out/packages/zql/src/ivm/constraint.js.map +1 -0
  605. package/out/packages/zql/src/ivm/data.js.map +1 -0
  606. package/out/packages/zql/src/ivm/exists.js.map +1 -0
  607. package/out/packages/zql/src/ivm/fan-in.js.map +1 -0
  608. package/out/packages/zql/src/ivm/fan-out.js.map +1 -0
  609. package/out/packages/zql/src/ivm/filter-operators.js.map +1 -0
  610. package/out/packages/zql/src/ivm/filter-push.js.map +1 -0
  611. package/out/packages/zql/src/ivm/filter.js.map +1 -0
  612. package/out/packages/zql/src/ivm/flipped-join.js +307 -0
  613. package/out/packages/zql/src/ivm/flipped-join.js.map +1 -0
  614. package/out/packages/zql/src/ivm/join-utils.js.map +1 -0
  615. package/out/packages/zql/src/ivm/join.js.map +1 -0
  616. package/out/packages/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -0
  617. package/out/packages/zql/src/ivm/memory-source.js +612 -0
  618. package/out/packages/zql/src/ivm/memory-source.js.map +1 -0
  619. package/out/packages/zql/src/ivm/memory-storage.js.map +1 -0
  620. package/out/packages/zql/src/ivm/operator.js.map +1 -0
  621. package/out/packages/zql/src/ivm/push-accumulated.js.map +1 -0
  622. package/out/packages/zql/src/ivm/skip-yields.js.map +1 -0
  623. package/out/packages/zql/src/ivm/skip.js.map +1 -0
  624. package/out/packages/zql/src/ivm/source.js.map +1 -0
  625. package/out/packages/zql/src/ivm/stream.js.map +1 -0
  626. package/out/packages/zql/src/ivm/take.js +410 -0
  627. package/out/packages/zql/src/ivm/take.js.map +1 -0
  628. package/out/packages/zql/src/ivm/union-fan-in.js +165 -0
  629. package/out/packages/zql/src/ivm/union-fan-in.js.map +1 -0
  630. package/out/packages/zql/src/ivm/union-fan-out.js.map +1 -0
  631. package/out/packages/zql/src/ivm/view-apply-change.js.map +1 -0
  632. package/out/packages/zql/src/mutate/crud.js.map +1 -0
  633. package/out/packages/zql/src/mutate/custom.js.map +1 -0
  634. package/out/packages/zql/src/mutate/mutator-registry.js.map +1 -0
  635. package/out/packages/zql/src/mutate/mutator.js.map +1 -0
  636. package/out/packages/zql/src/planner/planner-builder.js.map +1 -0
  637. package/out/packages/zql/src/planner/planner-connection.js.map +1 -0
  638. package/out/packages/zql/src/planner/planner-constraint.js.map +1 -0
  639. package/out/packages/zql/src/planner/planner-debug.js.map +1 -0
  640. package/out/packages/zql/src/planner/planner-fan-in.js.map +1 -0
  641. package/out/packages/zql/src/planner/planner-fan-out.js.map +1 -0
  642. package/out/packages/zql/src/planner/planner-graph.js.map +1 -0
  643. package/out/packages/zql/src/planner/planner-join.js +262 -0
  644. package/out/packages/zql/src/planner/planner-join.js.map +1 -0
  645. package/out/packages/zql/src/planner/planner-node.js.map +1 -0
  646. package/out/packages/zql/src/planner/planner-source.js.map +1 -0
  647. package/out/packages/zql/src/planner/planner-terminus.js.map +1 -0
  648. package/out/packages/zql/src/query/complete-ordering.js.map +1 -0
  649. package/out/packages/zql/src/query/create-builder.js.map +1 -0
  650. package/out/packages/zql/src/query/error.js.map +1 -0
  651. package/out/packages/zql/src/query/escape-like.js.map +1 -0
  652. package/out/packages/zql/src/query/expression.js.map +1 -0
  653. package/out/packages/zql/src/query/measure-push-operator.js.map +1 -0
  654. package/out/packages/zql/src/query/metrics-delegate.js.map +1 -0
  655. package/out/packages/zql/src/query/named.js.map +1 -0
  656. package/out/packages/zql/src/query/query-delegate-base.js.map +1 -0
  657. package/out/packages/zql/src/query/query-impl.js +290 -0
  658. package/out/packages/zql/src/query/query-impl.js.map +1 -0
  659. package/out/packages/zql/src/query/query-internals.js.map +1 -0
  660. package/out/packages/zql/src/query/query-registry.js.map +1 -0
  661. package/out/packages/zql/src/query/runnable-query-impl.js.map +1 -0
  662. package/out/packages/zql/src/query/static-query.js.map +1 -0
  663. package/out/packages/zql/src/query/ttl.js.map +1 -0
  664. package/out/packages/zql/src/query/validate-input.js.map +1 -0
  665. package/out/packages/zqlite/src/database-storage.js.map +1 -0
  666. package/out/packages/zqlite/src/db.js.map +1 -0
  667. package/out/packages/zqlite/src/explain-queries.js.map +1 -0
  668. package/out/packages/zqlite/src/internal/sql-inline.js.map +1 -0
  669. package/out/packages/zqlite/src/internal/sql.js.map +1 -0
  670. package/out/packages/zqlite/src/internal/statement-cache.js.map +1 -0
  671. package/out/packages/zqlite/src/query-builder.js.map +1 -0
  672. package/out/packages/zqlite/src/query-delegate.js.map +1 -0
  673. package/out/packages/zqlite/src/resolve-scalar-subqueries.js.map +1 -0
  674. package/out/packages/zqlite/src/sqlite-cost-model.js.map +1 -0
  675. package/out/packages/zqlite/src/sqlite-stat-fanout.js.map +1 -0
  676. package/out/packages/zqlite/src/table-source.js +313 -0
  677. package/out/packages/zqlite/src/table-source.js.map +1 -0
  678. package/out/replicache/src/dag/store-impl.d.ts.map +1 -1
  679. package/out/replicache/src/kv/expo-sqlite/store.d.ts +1 -1
  680. package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
  681. package/out/replicache/src/kv/op-sqlite/store.d.ts.map +1 -1
  682. package/out/replicache/src/kv/sqlite-store.d.ts +6 -6
  683. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  684. package/out/replicache/src/kv/throw-if-closed.d.ts +1 -0
  685. package/out/replicache/src/kv/throw-if-closed.d.ts.map +1 -1
  686. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  687. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  688. package/out/shared/src/map.d.ts +6 -0
  689. package/out/shared/src/map.d.ts.map +1 -0
  690. package/out/shared/src/queue.d.ts.map +1 -1
  691. package/out/shared/src/ring-buffer.d.ts +32 -0
  692. package/out/shared/src/ring-buffer.d.ts.map +1 -0
  693. package/out/zero/src/adapters/drizzle.js +1 -1
  694. package/out/zero/src/adapters/kysely.js +1 -1
  695. package/out/zero/src/adapters/pg.js +1 -1
  696. package/out/zero/src/adapters/postgresjs.js +1 -1
  697. package/out/zero/src/adapters/prisma.js +1 -1
  698. package/out/zero/src/analyze-query.js +1 -1
  699. package/out/zero/src/analyze.js +1 -1
  700. package/out/zero/src/ast-to-zql.js +1 -1
  701. package/out/zero/src/bindings.js +11 -11
  702. package/out/zero/src/build-schema.js.map +1 -1
  703. package/out/zero/src/change-protocol/v0.js +2 -2
  704. package/out/zero/src/cli.js +1 -1
  705. package/out/zero/src/deploy-permissions.js +1 -1
  706. package/out/zero/src/expo-sqlite.js +2 -2
  707. package/out/zero/src/op-sqlite.js +2 -2
  708. package/out/zero/src/pg.js +9 -9
  709. package/out/zero/src/react-native.js +2 -2
  710. package/out/zero/src/react.js +5 -5
  711. package/out/zero/src/server.js +8 -8
  712. package/out/zero/src/solid.js +5 -5
  713. package/out/zero/src/sqlite.js +2 -2
  714. package/out/zero/src/transform-query.js +1 -1
  715. package/out/zero/src/zero-cache-dev.js +6 -6
  716. package/out/zero/src/zero-cache-dev.js.map +1 -1
  717. package/out/zero/src/zero-out.js +5 -5
  718. package/out/zero/src/zero-out.js.map +1 -1
  719. package/out/zero/src/zero.js +22 -22
  720. package/out/zero/src/zqlite.js +5 -5
  721. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  722. package/out/zero-cache/src/server/change-streamer.js +38 -32
  723. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  724. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  725. package/out/zero-cache/src/server/main.js +15 -13
  726. package/out/zero-cache/src/server/main.js.map +1 -1
  727. package/out/zero-cache/src/server/mutator.js +12 -10
  728. package/out/zero-cache/src/server/mutator.js.map +1 -1
  729. package/out/zero-cache/src/server/reaper.d.ts.map +1 -1
  730. package/out/zero-cache/src/server/reaper.js +18 -16
  731. package/out/zero-cache/src/server/reaper.js.map +1 -1
  732. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  733. package/out/zero-cache/src/server/replicator.js +20 -18
  734. package/out/zero-cache/src/server/replicator.js.map +1 -1
  735. package/out/zero-cache/src/server/runner/main.d.ts.map +1 -1
  736. package/out/zero-cache/src/server/shadow-syncer.js +16 -13
  737. package/out/zero-cache/src/server/shadow-syncer.js.map +1 -1
  738. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  739. package/out/zero-cache/src/server/syncer.js +36 -34
  740. package/out/zero-cache/src/server/syncer.js.map +1 -1
  741. package/out/zero-cache/src/server/write-worker.js +1 -1
  742. package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
  743. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  744. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +8 -2
  745. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  746. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +1 -1
  747. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +1 -1
  748. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  749. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  750. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  751. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  752. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  753. package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
  754. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  755. package/out/zero-cache/src/types/configuration-error.d.ts +4 -0
  756. package/out/zero-cache/src/types/configuration-error.d.ts.map +1 -0
  757. package/out/zero-cache/src/types/pg.d.ts +2 -0
  758. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  759. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  760. package/out/zql/src/builder/builder.d.ts.map +1 -1
  761. package/out/zql/src/builder/debug-delegate.d.ts +5 -0
  762. package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
  763. package/out/zql/src/ivm/cap.d.ts +32 -0
  764. package/out/zql/src/ivm/cap.d.ts.map +1 -0
  765. package/out/zql/src/ivm/flipped-join.d.ts +4 -8
  766. package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
  767. package/out/zql/src/ivm/operator.d.ts +1 -1
  768. package/out/zql/src/ivm/schema.d.ts +0 -8
  769. package/out/zql/src/ivm/schema.d.ts.map +1 -1
  770. package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
  771. package/out/zql/src/mutate/mutator.d.ts +12 -3
  772. package/out/zql/src/mutate/mutator.d.ts.map +1 -1
  773. package/out/zql/src/planner/planner-join.d.ts.map +1 -1
  774. package/out/zql/src/query/query-registry.d.ts +10 -3
  775. package/out/zql/src/query/query-registry.d.ts.map +1 -1
  776. package/out/zqlite/src/table-source.d.ts.map +1 -1
  777. package/package.json +23 -23
  778. package/out/_virtual/_@oxc-project_runtime@0.122.0/helpers/usingCtx.js +0 -57
  779. package/out/analyze-query/src/analyze-cli.js.map +0 -1
  780. package/out/analyze-query/src/bin-analyze.js +0 -277
  781. package/out/analyze-query/src/bin-analyze.js.map +0 -1
  782. package/out/analyze-query/src/bin-transform.js.map +0 -1
  783. package/out/ast-to-zql/src/ast-to-zql.js.map +0 -1
  784. package/out/ast-to-zql/src/bin.js.map +0 -1
  785. package/out/ast-to-zql/src/format.js.map +0 -1
  786. package/out/datadog/src/datadog-log-sink.js.map +0 -1
  787. package/out/otel/src/enabled.js.map +0 -1
  788. package/out/otel/src/log-options.js.map +0 -1
  789. package/out/otel/src/maybe-time.js.map +0 -1
  790. package/out/otel/src/span.js.map +0 -1
  791. package/out/otel/src/version.js.map +0 -1
  792. package/out/replicache/src/async-iterable-to-array.js.map +0 -1
  793. package/out/replicache/src/bg-interval.js.map +0 -1
  794. package/out/replicache/src/btree/diff.js.map +0 -1
  795. package/out/replicache/src/btree/node.js.map +0 -1
  796. package/out/replicache/src/btree/read.js.map +0 -1
  797. package/out/replicache/src/btree/splice.js.map +0 -1
  798. package/out/replicache/src/btree/write.js +0 -188
  799. package/out/replicache/src/btree/write.js.map +0 -1
  800. package/out/replicache/src/call-default-fetch.js.map +0 -1
  801. package/out/replicache/src/connection-loop-delegates.js.map +0 -1
  802. package/out/replicache/src/connection-loop.js.map +0 -1
  803. package/out/replicache/src/cookies.js.map +0 -1
  804. package/out/replicache/src/dag/chunk.js.map +0 -1
  805. package/out/replicache/src/dag/gc.js.map +0 -1
  806. package/out/replicache/src/dag/key.js.map +0 -1
  807. package/out/replicache/src/dag/lazy-store.js.map +0 -1
  808. package/out/replicache/src/dag/store-impl.js +0 -152
  809. package/out/replicache/src/dag/store-impl.js.map +0 -1
  810. package/out/replicache/src/dag/store.js.map +0 -1
  811. package/out/replicache/src/dag/visitor.js.map +0 -1
  812. package/out/replicache/src/db/commit.js.map +0 -1
  813. package/out/replicache/src/db/index.js.map +0 -1
  814. package/out/replicache/src/db/read.js.map +0 -1
  815. package/out/replicache/src/db/rebase.js.map +0 -1
  816. package/out/replicache/src/db/write.js.map +0 -1
  817. package/out/replicache/src/deleted-clients.js.map +0 -1
  818. package/out/replicache/src/error-responses.js.map +0 -1
  819. package/out/replicache/src/frozen-json.js.map +0 -1
  820. package/out/replicache/src/get-default-puller.js.map +0 -1
  821. package/out/replicache/src/get-default-pusher.js.map +0 -1
  822. package/out/replicache/src/get-kv-store-provider.js.map +0 -1
  823. package/out/replicache/src/hash.js.map +0 -1
  824. package/out/replicache/src/http-request-info.js.map +0 -1
  825. package/out/replicache/src/index-defs.js.map +0 -1
  826. package/out/replicache/src/kv/expo-sqlite/store.js +0 -58
  827. package/out/replicache/src/kv/expo-sqlite/store.js.map +0 -1
  828. package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +0 -1
  829. package/out/replicache/src/kv/idb-store.js.map +0 -1
  830. package/out/replicache/src/kv/mem-store.js.map +0 -1
  831. package/out/replicache/src/kv/op-sqlite/store.js +0 -63
  832. package/out/replicache/src/kv/op-sqlite/store.js.map +0 -1
  833. package/out/replicache/src/kv/op-sqlite/types.js.map +0 -1
  834. package/out/replicache/src/kv/read-impl.js.map +0 -1
  835. package/out/replicache/src/kv/sqlite-store.js +0 -216
  836. package/out/replicache/src/kv/sqlite-store.js.map +0 -1
  837. package/out/replicache/src/kv/throw-if-closed.js +0 -26
  838. package/out/replicache/src/kv/throw-if-closed.js.map +0 -1
  839. package/out/replicache/src/kv/write-impl-base.js.map +0 -1
  840. package/out/replicache/src/kv/write-impl.js.map +0 -1
  841. package/out/replicache/src/lazy.js.map +0 -1
  842. package/out/replicache/src/log-options.js.map +0 -1
  843. package/out/replicache/src/make-idb-name.js.map +0 -1
  844. package/out/replicache/src/new-client-channel.js.map +0 -1
  845. package/out/replicache/src/on-persist-channel.js.map +0 -1
  846. package/out/replicache/src/patch-operation.js.map +0 -1
  847. package/out/replicache/src/pending-mutations.js.map +0 -1
  848. package/out/replicache/src/persist/client-gc.js.map +0 -1
  849. package/out/replicache/src/persist/client-group-gc.js.map +0 -1
  850. package/out/replicache/src/persist/client-groups.js +0 -110
  851. package/out/replicache/src/persist/client-groups.js.map +0 -1
  852. package/out/replicache/src/persist/clients.js +0 -261
  853. package/out/replicache/src/persist/clients.js.map +0 -1
  854. package/out/replicache/src/persist/collect-idb-databases.js.map +0 -1
  855. package/out/replicache/src/persist/gather-mem-only-visitor.js.map +0 -1
  856. package/out/replicache/src/persist/gather-not-cached-visitor.js.map +0 -1
  857. package/out/replicache/src/persist/heartbeat.js.map +0 -1
  858. package/out/replicache/src/persist/idb-databases-store-db-name.js.map +0 -1
  859. package/out/replicache/src/persist/idb-databases-store.js.map +0 -1
  860. package/out/replicache/src/persist/make-client-id.js.map +0 -1
  861. package/out/replicache/src/persist/persist.js +0 -122
  862. package/out/replicache/src/persist/persist.js.map +0 -1
  863. package/out/replicache/src/persist/refresh.js.map +0 -1
  864. package/out/replicache/src/process-scheduler.js.map +0 -1
  865. package/out/replicache/src/pusher.js.map +0 -1
  866. package/out/replicache/src/replicache-impl.js.map +0 -1
  867. package/out/replicache/src/report-error.js.map +0 -1
  868. package/out/replicache/src/request-idle.js.map +0 -1
  869. package/out/replicache/src/scan-iterator.js.map +0 -1
  870. package/out/replicache/src/scan-options.js.map +0 -1
  871. package/out/replicache/src/set-interval-with-signal.js.map +0 -1
  872. package/out/replicache/src/subscriptions.js.map +0 -1
  873. package/out/replicache/src/sync/diff.js.map +0 -1
  874. package/out/replicache/src/sync/ids.js.map +0 -1
  875. package/out/replicache/src/sync/patch.js.map +0 -1
  876. package/out/replicache/src/sync/pull-error.js.map +0 -1
  877. package/out/replicache/src/sync/pull.js +0 -166
  878. package/out/replicache/src/sync/pull.js.map +0 -1
  879. package/out/replicache/src/sync/push.js.map +0 -1
  880. package/out/replicache/src/sync/request-id.js.map +0 -1
  881. package/out/replicache/src/sync/sync-head-name.js.map +0 -1
  882. package/out/replicache/src/to-error.js.map +0 -1
  883. package/out/replicache/src/transaction-closed-error.js.map +0 -1
  884. package/out/replicache/src/transactions.js.map +0 -1
  885. package/out/replicache/src/version.js.map +0 -1
  886. package/out/replicache/src/with-transactions.js.map +0 -1
  887. package/out/shared/src/abort-error.js.map +0 -1
  888. package/out/shared/src/arrays.js.map +0 -1
  889. package/out/shared/src/asserts.js.map +0 -1
  890. package/out/shared/src/bigint-json.js.map +0 -1
  891. package/out/shared/src/binary-search.js.map +0 -1
  892. package/out/shared/src/broadcast-channel.js.map +0 -1
  893. package/out/shared/src/browser-env.js.map +0 -1
  894. package/out/shared/src/btree-set.js.map +0 -1
  895. package/out/shared/src/cache.js.map +0 -1
  896. package/out/shared/src/centroid.js.map +0 -1
  897. package/out/shared/src/config.js.map +0 -1
  898. package/out/shared/src/custom-key-map.js.map +0 -1
  899. package/out/shared/src/custom-key-set.js.map +0 -1
  900. package/out/shared/src/deep-clone.js.map +0 -1
  901. package/out/shared/src/deep-merge.js.map +0 -1
  902. package/out/shared/src/document-visible.js.map +0 -1
  903. package/out/shared/src/dotenv.js.map +0 -1
  904. package/out/shared/src/error.js.map +0 -1
  905. package/out/shared/src/has-own.js.map +0 -1
  906. package/out/shared/src/hash.js.map +0 -1
  907. package/out/shared/src/iterables.js.map +0 -1
  908. package/out/shared/src/json-schema.js.map +0 -1
  909. package/out/shared/src/json.js.map +0 -1
  910. package/out/shared/src/logging-test-utils.js.map +0 -1
  911. package/out/shared/src/logging.js.map +0 -1
  912. package/out/shared/src/must.js.map +0 -1
  913. package/out/shared/src/navigator.js.map +0 -1
  914. package/out/shared/src/object-traversal.js.map +0 -1
  915. package/out/shared/src/objects.js.map +0 -1
  916. package/out/shared/src/options.js.map +0 -1
  917. package/out/shared/src/parse-big-int.js.map +0 -1
  918. package/out/shared/src/promise-race.js.map +0 -1
  919. package/out/shared/src/queue.js +0 -126
  920. package/out/shared/src/queue.js.map +0 -1
  921. package/out/shared/src/rand.js.map +0 -1
  922. package/out/shared/src/random-uint64.js.map +0 -1
  923. package/out/shared/src/random-values.js.map +0 -1
  924. package/out/shared/src/record-proxy.js.map +0 -1
  925. package/out/shared/src/resolved-promises.js.map +0 -1
  926. package/out/shared/src/sentinels.js.map +0 -1
  927. package/out/shared/src/set-utils.js.map +0 -1
  928. package/out/shared/src/size-of-value.js.map +0 -1
  929. package/out/shared/src/sleep.js.map +0 -1
  930. package/out/shared/src/sorted-entries.js.map +0 -1
  931. package/out/shared/src/string-compare.js.map +0 -1
  932. package/out/shared/src/subscribable.js.map +0 -1
  933. package/out/shared/src/tdigest-schema.js.map +0 -1
  934. package/out/shared/src/tdigest.js.map +0 -1
  935. package/out/shared/src/valita.js +0 -172
  936. package/out/shared/src/valita.js.map +0 -1
  937. package/out/z2s/src/compiler.js.map +0 -1
  938. package/out/z2s/src/sql.js.map +0 -1
  939. package/out/zero/package.js +0 -205
  940. package/out/zero/package.js.map +0 -1
  941. package/out/zero-cache/src/auth/auth.js.map +0 -1
  942. package/out/zero-cache/src/auth/jwt.js.map +0 -1
  943. package/out/zero-cache/src/auth/load-permissions.js.map +0 -1
  944. package/out/zero-cache/src/auth/read-authorizer.js.map +0 -1
  945. package/out/zero-cache/src/auth/write-authorizer.js.map +0 -1
  946. package/out/zero-cache/src/config/network.js.map +0 -1
  947. package/out/zero-cache/src/config/normalize.js.map +0 -1
  948. package/out/zero-cache/src/config/server-context.js.map +0 -1
  949. package/out/zero-cache/src/config/zero-config.js +0 -916
  950. package/out/zero-cache/src/config/zero-config.js.map +0 -1
  951. package/out/zero-cache/src/custom/fetch.js.map +0 -1
  952. package/out/zero-cache/src/custom-queries/transform-query.js.map +0 -1
  953. package/out/zero-cache/src/db/create.js.map +0 -1
  954. package/out/zero-cache/src/db/delete-lite-db.js.map +0 -1
  955. package/out/zero-cache/src/db/lite-tables.js.map +0 -1
  956. package/out/zero-cache/src/db/migration-lite.js +0 -147
  957. package/out/zero-cache/src/db/migration-lite.js.map +0 -1
  958. package/out/zero-cache/src/db/migration.js +0 -120
  959. package/out/zero-cache/src/db/migration.js.map +0 -1
  960. package/out/zero-cache/src/db/mode-enum.js.map +0 -1
  961. package/out/zero-cache/src/db/pg-copy-binary.js.map +0 -1
  962. package/out/zero-cache/src/db/pg-copy.js.map +0 -1
  963. package/out/zero-cache/src/db/pg-to-lite.js.map +0 -1
  964. package/out/zero-cache/src/db/pg-type-parser.js.map +0 -1
  965. package/out/zero-cache/src/db/run-transaction.js.map +0 -1
  966. package/out/zero-cache/src/db/specs.js.map +0 -1
  967. package/out/zero-cache/src/db/statements.js.map +0 -1
  968. package/out/zero-cache/src/db/transaction-pool.js.map +0 -1
  969. package/out/zero-cache/src/db/warmup.js.map +0 -1
  970. package/out/zero-cache/src/observability/events.js.map +0 -1
  971. package/out/zero-cache/src/observability/metrics.js.map +0 -1
  972. package/out/zero-cache/src/scripts/decommission.js.map +0 -1
  973. package/out/zero-cache/src/scripts/deploy-permissions.js.map +0 -1
  974. package/out/zero-cache/src/scripts/permissions.js.map +0 -1
  975. package/out/zero-cache/src/server/anonymous-otel-start.js +0 -305
  976. package/out/zero-cache/src/server/anonymous-otel-start.js.map +0 -1
  977. package/out/zero-cache/src/server/inspector-delegate.js.map +0 -1
  978. package/out/zero-cache/src/server/logging.js.map +0 -1
  979. package/out/zero-cache/src/server/otel-diag-logger.js.map +0 -1
  980. package/out/zero-cache/src/server/otel-log-sink.js.map +0 -1
  981. package/out/zero-cache/src/server/otel-start.js +0 -53
  982. package/out/zero-cache/src/server/otel-start.js.map +0 -1
  983. package/out/zero-cache/src/server/priority-op.js.map +0 -1
  984. package/out/zero-cache/src/server/runner/main.js +0 -10
  985. package/out/zero-cache/src/server/runner/main.js.map +0 -1
  986. package/out/zero-cache/src/server/runner/run-worker.js.map +0 -1
  987. package/out/zero-cache/src/server/runner/runtime.js.map +0 -1
  988. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +0 -1
  989. package/out/zero-cache/src/server/worker-dispatcher.js.map +0 -1
  990. package/out/zero-cache/src/server/worker-urls.js.map +0 -1
  991. package/out/zero-cache/src/services/analyze.js +0 -69
  992. package/out/zero-cache/src/services/analyze.js.map +0 -1
  993. package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +0 -1
  994. package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +0 -1
  995. package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +0 -1
  996. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +0 -1
  997. package/out/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +0 -1
  998. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +0 -197
  999. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +0 -1
  1000. package/out/zero-cache/src/services/change-source/pg/change-source.js +0 -929
  1001. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +0 -1
  1002. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +0 -1
  1003. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +0 -552
  1004. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +0 -1
  1005. package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +0 -1
  1006. package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +0 -1
  1007. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +0 -1
  1008. package/out/zero-cache/src/services/change-source/pg/lsn.js.map +0 -1
  1009. package/out/zero-cache/src/services/change-source/pg/replication-slots.js +0 -162
  1010. package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +0 -1
  1011. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +0 -1
  1012. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +0 -1
  1013. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +0 -1
  1014. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +0 -330
  1015. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +0 -1
  1016. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +0 -1
  1017. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +0 -1
  1018. package/out/zero-cache/src/services/change-source/protocol/current/data.js +0 -192
  1019. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +0 -1
  1020. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +0 -1
  1021. package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +0 -1
  1022. package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +0 -1
  1023. package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +0 -1
  1024. package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +0 -1
  1025. package/out/zero-cache/src/services/change-source/protocol/current.js +0 -56
  1026. package/out/zero-cache/src/services/change-source/protocol/current.js.map +0 -1
  1027. package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +0 -1
  1028. package/out/zero-cache/src/services/change-streamer/broadcast.js.map +0 -1
  1029. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +0 -1
  1030. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +0 -1
  1031. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +0 -1
  1032. package/out/zero-cache/src/services/change-streamer/forwarder.js.map +0 -1
  1033. package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +0 -1
  1034. package/out/zero-cache/src/services/change-streamer/schema/init.js +0 -74
  1035. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +0 -1
  1036. package/out/zero-cache/src/services/change-streamer/schema/tables.js +0 -191
  1037. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +0 -1
  1038. package/out/zero-cache/src/services/change-streamer/snapshot.js +0 -27
  1039. package/out/zero-cache/src/services/change-streamer/snapshot.js.map +0 -1
  1040. package/out/zero-cache/src/services/change-streamer/storer.js.map +0 -1
  1041. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +0 -1
  1042. package/out/zero-cache/src/services/heapz.js.map +0 -1
  1043. package/out/zero-cache/src/services/http-service.js.map +0 -1
  1044. package/out/zero-cache/src/services/life-cycle.js +0 -195
  1045. package/out/zero-cache/src/services/life-cycle.js.map +0 -1
  1046. package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +0 -1
  1047. package/out/zero-cache/src/services/litestream/commands.js.map +0 -1
  1048. package/out/zero-cache/src/services/mutagen/error.js.map +0 -1
  1049. package/out/zero-cache/src/services/mutagen/mutagen.js.map +0 -1
  1050. package/out/zero-cache/src/services/mutagen/pusher.js.map +0 -1
  1051. package/out/zero-cache/src/services/replicator/change-processor.js.map +0 -1
  1052. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +0 -1
  1053. package/out/zero-cache/src/services/replicator/notifier.js.map +0 -1
  1054. package/out/zero-cache/src/services/replicator/replication-status.js.map +0 -1
  1055. package/out/zero-cache/src/services/replicator/replicator.js.map +0 -1
  1056. package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +0 -1
  1057. package/out/zero-cache/src/services/replicator/reporter/report-schema.js.map +0 -1
  1058. package/out/zero-cache/src/services/replicator/schema/change-log.js.map +0 -1
  1059. package/out/zero-cache/src/services/replicator/schema/column-metadata.js.map +0 -1
  1060. package/out/zero-cache/src/services/replicator/schema/constants.js.map +0 -1
  1061. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +0 -1
  1062. package/out/zero-cache/src/services/replicator/schema/table-metadata.js.map +0 -1
  1063. package/out/zero-cache/src/services/replicator/write-worker-client.js.map +0 -1
  1064. package/out/zero-cache/src/services/replicator/write-worker.js.map +0 -1
  1065. package/out/zero-cache/src/services/run-ast.js +0 -87
  1066. package/out/zero-cache/src/services/run-ast.js.map +0 -1
  1067. package/out/zero-cache/src/services/runner.js.map +0 -1
  1068. package/out/zero-cache/src/services/running-state.js +0 -136
  1069. package/out/zero-cache/src/services/running-state.js.map +0 -1
  1070. package/out/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +0 -1
  1071. package/out/zero-cache/src/services/statz.js.map +0 -1
  1072. package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +0 -1
  1073. package/out/zero-cache/src/services/view-syncer/client-handler.js +0 -270
  1074. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +0 -1
  1075. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +0 -1
  1076. package/out/zero-cache/src/services/view-syncer/connection-context-manager.js.map +0 -1
  1077. package/out/zero-cache/src/services/view-syncer/cvr-purger.js +0 -109
  1078. package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +0 -1
  1079. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +0 -1
  1080. package/out/zero-cache/src/services/view-syncer/cvr.js.map +0 -1
  1081. package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +0 -1
  1082. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +0 -102
  1083. package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +0 -1
  1084. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +0 -628
  1085. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +0 -1
  1086. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +0 -1
  1087. package/out/zero-cache/src/services/view-syncer/row-set-signature.js.map +0 -1
  1088. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +0 -1
  1089. package/out/zero-cache/src/services/view-syncer/schema/init.js +0 -158
  1090. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +0 -1
  1091. package/out/zero-cache/src/services/view-syncer/schema/types.js +0 -176
  1092. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +0 -1
  1093. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +0 -1
  1094. package/out/zero-cache/src/services/view-syncer/tracer.js.map +0 -1
  1095. package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +0 -1
  1096. package/out/zero-cache/src/services/view-syncer/view-syncer.js +0 -1235
  1097. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +0 -1
  1098. package/out/zero-cache/src/types/error-with-level.js.map +0 -1
  1099. package/out/zero-cache/src/types/http.js.map +0 -1
  1100. package/out/zero-cache/src/types/lexi-version.js.map +0 -1
  1101. package/out/zero-cache/src/types/lite.js.map +0 -1
  1102. package/out/zero-cache/src/types/names.js.map +0 -1
  1103. package/out/zero-cache/src/types/pg-data-type.js.map +0 -1
  1104. package/out/zero-cache/src/types/pg-types.js.map +0 -1
  1105. package/out/zero-cache/src/types/pg-versions.js.map +0 -1
  1106. package/out/zero-cache/src/types/pg.js +0 -189
  1107. package/out/zero-cache/src/types/pg.js.map +0 -1
  1108. package/out/zero-cache/src/types/processes.js.map +0 -1
  1109. package/out/zero-cache/src/types/profiler.js.map +0 -1
  1110. package/out/zero-cache/src/types/row-key.js.map +0 -1
  1111. package/out/zero-cache/src/types/shards.js.map +0 -1
  1112. package/out/zero-cache/src/types/sql.js.map +0 -1
  1113. package/out/zero-cache/src/types/state-version.js.map +0 -1
  1114. package/out/zero-cache/src/types/streams.js.map +0 -1
  1115. package/out/zero-cache/src/types/strings.js.map +0 -1
  1116. package/out/zero-cache/src/types/subscription.js.map +0 -1
  1117. package/out/zero-cache/src/types/timeout.js.map +0 -1
  1118. package/out/zero-cache/src/types/url-params.js.map +0 -1
  1119. package/out/zero-cache/src/types/websocket-handoff.js.map +0 -1
  1120. package/out/zero-cache/src/types/ws.js.map +0 -1
  1121. package/out/zero-cache/src/workers/connect-params.js.map +0 -1
  1122. package/out/zero-cache/src/workers/connection.js.map +0 -1
  1123. package/out/zero-cache/src/workers/mutator.js.map +0 -1
  1124. package/out/zero-cache/src/workers/replicator.js.map +0 -1
  1125. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +0 -1
  1126. package/out/zero-cache/src/workers/syncer.js.map +0 -1
  1127. package/out/zero-client/src/client/active-clients-manager.js.map +0 -1
  1128. package/out/zero-client/src/client/client-error-kind-enum.js.map +0 -1
  1129. package/out/zero-client/src/client/connection-manager.js +0 -295
  1130. package/out/zero-client/src/client/connection-manager.js.map +0 -1
  1131. package/out/zero-client/src/client/connection-status-enum.js +0 -20
  1132. package/out/zero-client/src/client/connection-status-enum.js.map +0 -1
  1133. package/out/zero-client/src/client/connection.js.map +0 -1
  1134. package/out/zero-client/src/client/context.js.map +0 -1
  1135. package/out/zero-client/src/client/crud-impl.js +0 -61
  1136. package/out/zero-client/src/client/crud-impl.js.map +0 -1
  1137. package/out/zero-client/src/client/crud.js.map +0 -1
  1138. package/out/zero-client/src/client/custom.js +0 -63
  1139. package/out/zero-client/src/client/custom.js.map +0 -1
  1140. package/out/zero-client/src/client/delete-clients-manager.js.map +0 -1
  1141. package/out/zero-client/src/client/enable-analytics.js.map +0 -1
  1142. package/out/zero-client/src/client/error.js.map +0 -1
  1143. package/out/zero-client/src/client/http-string.js.map +0 -1
  1144. package/out/zero-client/src/client/inspector/client-group.js.map +0 -1
  1145. package/out/zero-client/src/client/inspector/client.js.map +0 -1
  1146. package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +0 -1
  1147. package/out/zero-client/src/client/inspector/inspector.js.map +0 -1
  1148. package/out/zero-client/src/client/inspector/lazy-inspector.js.map +0 -1
  1149. package/out/zero-client/src/client/inspector/query.js.map +0 -1
  1150. package/out/zero-client/src/client/ivm-branch.js.map +0 -1
  1151. package/out/zero-client/src/client/keys.js.map +0 -1
  1152. package/out/zero-client/src/client/log-options.js.map +0 -1
  1153. package/out/zero-client/src/client/make-mutate-property.js.map +0 -1
  1154. package/out/zero-client/src/client/make-replicache-mutators.js.map +0 -1
  1155. package/out/zero-client/src/client/metric-name-enum.js.map +0 -1
  1156. package/out/zero-client/src/client/metrics.js.map +0 -1
  1157. package/out/zero-client/src/client/mutation-tracker.js.map +0 -1
  1158. package/out/zero-client/src/client/mutator-proxy.js.map +0 -1
  1159. package/out/zero-client/src/client/options.js.map +0 -1
  1160. package/out/zero-client/src/client/query-manager.js.map +0 -1
  1161. package/out/zero-client/src/client/reload-error-handler.js.map +0 -1
  1162. package/out/zero-client/src/client/server-option.js.map +0 -1
  1163. package/out/zero-client/src/client/update-needed-reason-type-enum.js +0 -27
  1164. package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +0 -1
  1165. package/out/zero-client/src/client/version.js +0 -9
  1166. package/out/zero-client/src/client/version.js.map +0 -1
  1167. package/out/zero-client/src/client/zero-poke-handler.js.map +0 -1
  1168. package/out/zero-client/src/client/zero-rep.js.map +0 -1
  1169. package/out/zero-client/src/client/zero.js +0 -1443
  1170. package/out/zero-client/src/client/zero.js.map +0 -1
  1171. package/out/zero-client/src/util/nanoid.js.map +0 -1
  1172. package/out/zero-client/src/util/socket.d.ts +0 -3
  1173. package/out/zero-client/src/util/socket.d.ts.map +0 -1
  1174. package/out/zero-client/src/util/socket.js +0 -8
  1175. package/out/zero-client/src/util/socket.js.map +0 -1
  1176. package/out/zero-protocol/src/analyze-query-result.js +0 -120
  1177. package/out/zero-protocol/src/analyze-query-result.js.map +0 -1
  1178. package/out/zero-protocol/src/application-error.js.map +0 -1
  1179. package/out/zero-protocol/src/ast.js.map +0 -1
  1180. package/out/zero-protocol/src/change-desired-queries.js +0 -12
  1181. package/out/zero-protocol/src/change-desired-queries.js.map +0 -1
  1182. package/out/zero-protocol/src/client-schema.js.map +0 -1
  1183. package/out/zero-protocol/src/close-connection.js.map +0 -1
  1184. package/out/zero-protocol/src/connect.js +0 -47
  1185. package/out/zero-protocol/src/connect.js.map +0 -1
  1186. package/out/zero-protocol/src/custom-queries.js.map +0 -1
  1187. package/out/zero-protocol/src/data.js.map +0 -1
  1188. package/out/zero-protocol/src/delete-clients.js.map +0 -1
  1189. package/out/zero-protocol/src/down.js.map +0 -1
  1190. package/out/zero-protocol/src/error-kind-enum.js.map +0 -1
  1191. package/out/zero-protocol/src/error-origin-enum.js.map +0 -1
  1192. package/out/zero-protocol/src/error-reason-enum.js.map +0 -1
  1193. package/out/zero-protocol/src/error.js +0 -84
  1194. package/out/zero-protocol/src/error.js.map +0 -1
  1195. package/out/zero-protocol/src/inspect-down.js.map +0 -1
  1196. package/out/zero-protocol/src/inspect-up.js +0 -34
  1197. package/out/zero-protocol/src/inspect-up.js.map +0 -1
  1198. package/out/zero-protocol/src/mutate-server.js.map +0 -1
  1199. package/out/zero-protocol/src/mutation-id.js.map +0 -1
  1200. package/out/zero-protocol/src/mutation-type-enum.js.map +0 -1
  1201. package/out/zero-protocol/src/mutation.js.map +0 -1
  1202. package/out/zero-protocol/src/mutations-patch.js.map +0 -1
  1203. package/out/zero-protocol/src/ping.js.map +0 -1
  1204. package/out/zero-protocol/src/poke.js +0 -59
  1205. package/out/zero-protocol/src/poke.js.map +0 -1
  1206. package/out/zero-protocol/src/pong.js.map +0 -1
  1207. package/out/zero-protocol/src/primary-key.js.map +0 -1
  1208. package/out/zero-protocol/src/protocol-version.js.map +0 -1
  1209. package/out/zero-protocol/src/pull.js.map +0 -1
  1210. package/out/zero-protocol/src/push.js +0 -60
  1211. package/out/zero-protocol/src/push.js.map +0 -1
  1212. package/out/zero-protocol/src/queries-patch.js.map +0 -1
  1213. package/out/zero-protocol/src/query-hash.js.map +0 -1
  1214. package/out/zero-protocol/src/query-server.js.map +0 -1
  1215. package/out/zero-protocol/src/row-patch.js.map +0 -1
  1216. package/out/zero-protocol/src/up.js.map +0 -1
  1217. package/out/zero-protocol/src/update-auth.js.map +0 -1
  1218. package/out/zero-protocol/src/version.js.map +0 -1
  1219. package/out/zero-react/src/use-connection-state.js +0 -17
  1220. package/out/zero-react/src/use-connection-state.js.map +0 -1
  1221. package/out/zero-react/src/use-query.js +0 -299
  1222. package/out/zero-react/src/use-query.js.map +0 -1
  1223. package/out/zero-react/src/use-zero-online.js +0 -20
  1224. package/out/zero-react/src/use-zero-online.js.map +0 -1
  1225. package/out/zero-react/src/zero-provider.js +0 -87
  1226. package/out/zero-react/src/zero-provider.js.map +0 -1
  1227. package/out/zero-schema/src/builder/relationship-builder.js.map +0 -1
  1228. package/out/zero-schema/src/builder/schema-builder.js.map +0 -1
  1229. package/out/zero-schema/src/builder/table-builder.js.map +0 -1
  1230. package/out/zero-schema/src/compiled-permissions.js.map +0 -1
  1231. package/out/zero-schema/src/name-mapper.js.map +0 -1
  1232. package/out/zero-schema/src/permissions.js.map +0 -1
  1233. package/out/zero-schema/src/schema-config.js.map +0 -1
  1234. package/out/zero-server/src/adapters/drizzle.js.map +0 -1
  1235. package/out/zero-server/src/adapters/kysely.js.map +0 -1
  1236. package/out/zero-server/src/adapters/pg.js +0 -83
  1237. package/out/zero-server/src/adapters/pg.js.map +0 -1
  1238. package/out/zero-server/src/adapters/postgresjs.js.map +0 -1
  1239. package/out/zero-server/src/adapters/prisma.js.map +0 -1
  1240. package/out/zero-server/src/custom.js +0 -214
  1241. package/out/zero-server/src/custom.js.map +0 -1
  1242. package/out/zero-server/src/logging.js.map +0 -1
  1243. package/out/zero-server/src/pg-query-executor.js.map +0 -1
  1244. package/out/zero-server/src/process-mutations.js.map +0 -1
  1245. package/out/zero-server/src/push-processor.js.map +0 -1
  1246. package/out/zero-server/src/queries/process-queries.js.map +0 -1
  1247. package/out/zero-server/src/schema.js.map +0 -1
  1248. package/out/zero-server/src/zql-database.js.map +0 -1
  1249. package/out/zero-solid/src/solid-view.js +0 -145
  1250. package/out/zero-solid/src/solid-view.js.map +0 -1
  1251. package/out/zero-solid/src/use-connection-state.js +0 -21
  1252. package/out/zero-solid/src/use-connection-state.js.map +0 -1
  1253. package/out/zero-solid/src/use-query.js +0 -64
  1254. package/out/zero-solid/src/use-query.js.map +0 -1
  1255. package/out/zero-solid/src/use-zero-online.js +0 -21
  1256. package/out/zero-solid/src/use-zero-online.js.map +0 -1
  1257. package/out/zero-solid/src/use-zero.js +0 -93
  1258. package/out/zero-solid/src/use-zero.js.map +0 -1
  1259. package/out/zero-types/src/format.js.map +0 -1
  1260. package/out/zero-types/src/name-mapper.js.map +0 -1
  1261. package/out/zql/src/builder/builder.js +0 -370
  1262. package/out/zql/src/builder/builder.js.map +0 -1
  1263. package/out/zql/src/builder/debug-delegate.js +0 -72
  1264. package/out/zql/src/builder/debug-delegate.js.map +0 -1
  1265. package/out/zql/src/builder/filter.js.map +0 -1
  1266. package/out/zql/src/builder/like.js.map +0 -1
  1267. package/out/zql/src/error.js.map +0 -1
  1268. package/out/zql/src/ivm/array-view.js.map +0 -1
  1269. package/out/zql/src/ivm/change.js.map +0 -1
  1270. package/out/zql/src/ivm/constraint.js +0 -82
  1271. package/out/zql/src/ivm/constraint.js.map +0 -1
  1272. package/out/zql/src/ivm/data.js.map +0 -1
  1273. package/out/zql/src/ivm/exists.js.map +0 -1
  1274. package/out/zql/src/ivm/fan-in.js.map +0 -1
  1275. package/out/zql/src/ivm/fan-out.js.map +0 -1
  1276. package/out/zql/src/ivm/filter-operators.js.map +0 -1
  1277. package/out/zql/src/ivm/filter-push.js.map +0 -1
  1278. package/out/zql/src/ivm/filter.js.map +0 -1
  1279. package/out/zql/src/ivm/flipped-join.js +0 -311
  1280. package/out/zql/src/ivm/flipped-join.js.map +0 -1
  1281. package/out/zql/src/ivm/join-utils.js.map +0 -1
  1282. package/out/zql/src/ivm/join.js.map +0 -1
  1283. package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +0 -1
  1284. package/out/zql/src/ivm/memory-source.js +0 -612
  1285. package/out/zql/src/ivm/memory-source.js.map +0 -1
  1286. package/out/zql/src/ivm/memory-storage.js.map +0 -1
  1287. package/out/zql/src/ivm/operator.js.map +0 -1
  1288. package/out/zql/src/ivm/push-accumulated.js.map +0 -1
  1289. package/out/zql/src/ivm/skip-yields.js.map +0 -1
  1290. package/out/zql/src/ivm/skip.js.map +0 -1
  1291. package/out/zql/src/ivm/source.js.map +0 -1
  1292. package/out/zql/src/ivm/stream.js.map +0 -1
  1293. package/out/zql/src/ivm/take.js +0 -410
  1294. package/out/zql/src/ivm/take.js.map +0 -1
  1295. package/out/zql/src/ivm/union-fan-in.js +0 -163
  1296. package/out/zql/src/ivm/union-fan-in.js.map +0 -1
  1297. package/out/zql/src/ivm/union-fan-out.js.map +0 -1
  1298. package/out/zql/src/ivm/view-apply-change.js.map +0 -1
  1299. package/out/zql/src/mutate/crud.js.map +0 -1
  1300. package/out/zql/src/mutate/custom.js.map +0 -1
  1301. package/out/zql/src/mutate/mutator-registry.js.map +0 -1
  1302. package/out/zql/src/mutate/mutator.js.map +0 -1
  1303. package/out/zql/src/planner/planner-builder.js.map +0 -1
  1304. package/out/zql/src/planner/planner-connection.js.map +0 -1
  1305. package/out/zql/src/planner/planner-constraint.js.map +0 -1
  1306. package/out/zql/src/planner/planner-debug.js.map +0 -1
  1307. package/out/zql/src/planner/planner-fan-in.js.map +0 -1
  1308. package/out/zql/src/planner/planner-fan-out.js.map +0 -1
  1309. package/out/zql/src/planner/planner-graph.js.map +0 -1
  1310. package/out/zql/src/planner/planner-join.js +0 -261
  1311. package/out/zql/src/planner/planner-join.js.map +0 -1
  1312. package/out/zql/src/planner/planner-node.js.map +0 -1
  1313. package/out/zql/src/planner/planner-source.js.map +0 -1
  1314. package/out/zql/src/planner/planner-terminus.js.map +0 -1
  1315. package/out/zql/src/query/complete-ordering.js.map +0 -1
  1316. package/out/zql/src/query/create-builder.js.map +0 -1
  1317. package/out/zql/src/query/error.js.map +0 -1
  1318. package/out/zql/src/query/escape-like.js.map +0 -1
  1319. package/out/zql/src/query/expression.js.map +0 -1
  1320. package/out/zql/src/query/measure-push-operator.js.map +0 -1
  1321. package/out/zql/src/query/metrics-delegate.js.map +0 -1
  1322. package/out/zql/src/query/named.js.map +0 -1
  1323. package/out/zql/src/query/query-delegate-base.js.map +0 -1
  1324. package/out/zql/src/query/query-impl.js +0 -290
  1325. package/out/zql/src/query/query-impl.js.map +0 -1
  1326. package/out/zql/src/query/query-internals.js.map +0 -1
  1327. package/out/zql/src/query/query-registry.js.map +0 -1
  1328. package/out/zql/src/query/runnable-query-impl.js.map +0 -1
  1329. package/out/zql/src/query/static-query.js.map +0 -1
  1330. package/out/zql/src/query/ttl.js.map +0 -1
  1331. package/out/zql/src/query/validate-input.js.map +0 -1
  1332. package/out/zqlite/src/database-storage.js.map +0 -1
  1333. package/out/zqlite/src/db.js.map +0 -1
  1334. package/out/zqlite/src/explain-queries.js.map +0 -1
  1335. package/out/zqlite/src/internal/sql-inline.js.map +0 -1
  1336. package/out/zqlite/src/internal/sql.js.map +0 -1
  1337. package/out/zqlite/src/internal/statement-cache.js.map +0 -1
  1338. package/out/zqlite/src/query-builder.js.map +0 -1
  1339. package/out/zqlite/src/query-delegate.js.map +0 -1
  1340. package/out/zqlite/src/resolve-scalar-subqueries.js.map +0 -1
  1341. package/out/zqlite/src/sqlite-cost-model.js.map +0 -1
  1342. package/out/zqlite/src/sqlite-stat-fanout.js.map +0 -1
  1343. package/out/zqlite/src/table-source.js +0 -313
  1344. package/out/zqlite/src/table-source.js.map +0 -1
  1345. /package/out/{analyze-query → packages/analyze-query}/src/analyze-cli.js +0 -0
  1346. /package/out/{analyze-query → packages/analyze-query}/src/bin-transform.js +0 -0
  1347. /package/out/{ast-to-zql → packages/ast-to-zql}/src/ast-to-zql.js +0 -0
  1348. /package/out/{ast-to-zql → packages/ast-to-zql}/src/bin.js +0 -0
  1349. /package/out/{ast-to-zql → packages/ast-to-zql}/src/format.js +0 -0
  1350. /package/out/{datadog → packages/datadog}/src/datadog-log-sink.js +0 -0
  1351. /package/out/{otel → packages/otel}/src/enabled.js +0 -0
  1352. /package/out/{otel → packages/otel}/src/log-options.js +0 -0
  1353. /package/out/{otel → packages/otel}/src/maybe-time.js +0 -0
  1354. /package/out/{otel → packages/otel}/src/span.js +0 -0
  1355. /package/out/{otel → packages/otel}/src/version.js +0 -0
  1356. /package/out/{replicache → packages/replicache}/src/async-iterable-to-array.js +0 -0
  1357. /package/out/{replicache → packages/replicache}/src/bg-interval.js +0 -0
  1358. /package/out/{replicache → packages/replicache}/src/btree/diff.js +0 -0
  1359. /package/out/{replicache → packages/replicache}/src/btree/node.js +0 -0
  1360. /package/out/{replicache → packages/replicache}/src/btree/read.js +0 -0
  1361. /package/out/{replicache → packages/replicache}/src/btree/splice.js +0 -0
  1362. /package/out/{replicache → packages/replicache}/src/call-default-fetch.js +0 -0
  1363. /package/out/{replicache → packages/replicache}/src/config.js +0 -0
  1364. /package/out/{replicache → packages/replicache}/src/connection-loop-delegates.js +0 -0
  1365. /package/out/{replicache → packages/replicache}/src/connection-loop.js +0 -0
  1366. /package/out/{replicache → packages/replicache}/src/cookies.js +0 -0
  1367. /package/out/{replicache → packages/replicache}/src/dag/chunk.js +0 -0
  1368. /package/out/{replicache → packages/replicache}/src/dag/gc.js +0 -0
  1369. /package/out/{replicache → packages/replicache}/src/dag/key.js +0 -0
  1370. /package/out/{replicache → packages/replicache}/src/dag/lazy-store.js +0 -0
  1371. /package/out/{replicache → packages/replicache}/src/dag/store.js +0 -0
  1372. /package/out/{replicache → packages/replicache}/src/dag/visitor.js +0 -0
  1373. /package/out/{replicache → packages/replicache}/src/db/commit.js +0 -0
  1374. /package/out/{replicache → packages/replicache}/src/db/index.js +0 -0
  1375. /package/out/{replicache → packages/replicache}/src/db/read.js +0 -0
  1376. /package/out/{replicache → packages/replicache}/src/db/rebase.js +0 -0
  1377. /package/out/{replicache → packages/replicache}/src/db/write.js +0 -0
  1378. /package/out/{replicache → packages/replicache}/src/deleted-clients.js +0 -0
  1379. /package/out/{replicache → packages/replicache}/src/error-responses.js +0 -0
  1380. /package/out/{replicache → packages/replicache}/src/expo-sqlite.js +0 -0
  1381. /package/out/{replicache → packages/replicache}/src/frozen-json.js +0 -0
  1382. /package/out/{replicache → packages/replicache}/src/get-default-puller.js +0 -0
  1383. /package/out/{replicache → packages/replicache}/src/get-default-pusher.js +0 -0
  1384. /package/out/{replicache → packages/replicache}/src/get-kv-store-provider.js +0 -0
  1385. /package/out/{replicache → packages/replicache}/src/hash.js +0 -0
  1386. /package/out/{replicache → packages/replicache}/src/http-request-info.js +0 -0
  1387. /package/out/{replicache → packages/replicache}/src/impl.js +0 -0
  1388. /package/out/{replicache → packages/replicache}/src/index-defs.js +0 -0
  1389. /package/out/{replicache → packages/replicache}/src/kv/idb-store-with-mem-fallback.js +0 -0
  1390. /package/out/{replicache → packages/replicache}/src/kv/idb-store.js +0 -0
  1391. /package/out/{replicache → packages/replicache}/src/kv/mem-store.js +0 -0
  1392. /package/out/{replicache → packages/replicache}/src/kv/op-sqlite/types.js +0 -0
  1393. /package/out/{replicache → packages/replicache}/src/kv/read-impl.js +0 -0
  1394. /package/out/{replicache → packages/replicache}/src/kv/write-impl-base.js +0 -0
  1395. /package/out/{replicache → packages/replicache}/src/kv/write-impl.js +0 -0
  1396. /package/out/{replicache → packages/replicache}/src/lazy.js +0 -0
  1397. /package/out/{replicache → packages/replicache}/src/log-options.js +0 -0
  1398. /package/out/{replicache → packages/replicache}/src/make-idb-name.js +0 -0
  1399. /package/out/{replicache → packages/replicache}/src/mutation-recovery.js +0 -0
  1400. /package/out/{replicache → packages/replicache}/src/new-client-channel.js +0 -0
  1401. /package/out/{replicache → packages/replicache}/src/on-persist-channel.js +0 -0
  1402. /package/out/{replicache → packages/replicache}/src/op-sqlite.js +0 -0
  1403. /package/out/{replicache → packages/replicache}/src/patch-operation.js +0 -0
  1404. /package/out/{replicache → packages/replicache}/src/pending-mutations.js +0 -0
  1405. /package/out/{replicache → packages/replicache}/src/persist/client-gc.js +0 -0
  1406. /package/out/{replicache → packages/replicache}/src/persist/client-group-gc.js +0 -0
  1407. /package/out/{replicache → packages/replicache}/src/persist/collect-idb-databases.js +0 -0
  1408. /package/out/{replicache → packages/replicache}/src/persist/gather-mem-only-visitor.js +0 -0
  1409. /package/out/{replicache → packages/replicache}/src/persist/gather-not-cached-visitor.js +0 -0
  1410. /package/out/{replicache → packages/replicache}/src/persist/heartbeat.js +0 -0
  1411. /package/out/{replicache → packages/replicache}/src/persist/idb-databases-store-db-name.js +0 -0
  1412. /package/out/{replicache → packages/replicache}/src/persist/idb-databases-store.js +0 -0
  1413. /package/out/{replicache → packages/replicache}/src/persist/make-client-id.js +0 -0
  1414. /package/out/{replicache → packages/replicache}/src/persist/refresh.js +0 -0
  1415. /package/out/{replicache → packages/replicache}/src/process-scheduler.js +0 -0
  1416. /package/out/{replicache → packages/replicache}/src/pusher.js +0 -0
  1417. /package/out/{replicache → packages/replicache}/src/replicache-impl.js +0 -0
  1418. /package/out/{replicache → packages/replicache}/src/report-error.js +0 -0
  1419. /package/out/{replicache → packages/replicache}/src/request-idle.js +0 -0
  1420. /package/out/{replicache → packages/replicache}/src/scan-iterator.js +0 -0
  1421. /package/out/{replicache → packages/replicache}/src/scan-options.js +0 -0
  1422. /package/out/{replicache → packages/replicache}/src/set-interval-with-signal.js +0 -0
  1423. /package/out/{replicache → packages/replicache}/src/sqlite.js +0 -0
  1424. /package/out/{replicache → packages/replicache}/src/subscriptions.js +0 -0
  1425. /package/out/{replicache → packages/replicache}/src/sync/diff.js +0 -0
  1426. /package/out/{replicache → packages/replicache}/src/sync/ids.js +0 -0
  1427. /package/out/{replicache → packages/replicache}/src/sync/patch.js +0 -0
  1428. /package/out/{replicache → packages/replicache}/src/sync/pull-error.js +0 -0
  1429. /package/out/{replicache → packages/replicache}/src/sync/push.js +0 -0
  1430. /package/out/{replicache → packages/replicache}/src/sync/request-id.js +0 -0
  1431. /package/out/{replicache → packages/replicache}/src/sync/sync-head-name.js +0 -0
  1432. /package/out/{replicache → packages/replicache}/src/to-error.js +0 -0
  1433. /package/out/{replicache → packages/replicache}/src/transaction-closed-error.js +0 -0
  1434. /package/out/{replicache → packages/replicache}/src/transactions.js +0 -0
  1435. /package/out/{replicache → packages/replicache}/src/version.js +0 -0
  1436. /package/out/{replicache → packages/replicache}/src/with-transactions.js +0 -0
  1437. /package/out/{shared → packages/shared}/src/abort-error.js +0 -0
  1438. /package/out/{shared → packages/shared}/src/arrays.js +0 -0
  1439. /package/out/{shared → packages/shared}/src/asserts.js +0 -0
  1440. /package/out/{shared → packages/shared}/src/bigint-json.js +0 -0
  1441. /package/out/{shared → packages/shared}/src/binary-search.js +0 -0
  1442. /package/out/{shared → packages/shared}/src/broadcast-channel.js +0 -0
  1443. /package/out/{shared → packages/shared}/src/browser-env.js +0 -0
  1444. /package/out/{shared → packages/shared}/src/btree-set.js +0 -0
  1445. /package/out/{shared → packages/shared}/src/cache.js +0 -0
  1446. /package/out/{shared → packages/shared}/src/centroid.js +0 -0
  1447. /package/out/{shared → packages/shared}/src/config.js +0 -0
  1448. /package/out/{shared → packages/shared}/src/custom-key-map.js +0 -0
  1449. /package/out/{shared → packages/shared}/src/custom-key-set.js +0 -0
  1450. /package/out/{shared → packages/shared}/src/deep-clone.js +0 -0
  1451. /package/out/{shared → packages/shared}/src/deep-merge.js +0 -0
  1452. /package/out/{shared → packages/shared}/src/document-visible.js +0 -0
  1453. /package/out/{shared → packages/shared}/src/dotenv.js +0 -0
  1454. /package/out/{shared → packages/shared}/src/error.js +0 -0
  1455. /package/out/{shared → packages/shared}/src/has-own.js +0 -0
  1456. /package/out/{shared → packages/shared}/src/hash.js +0 -0
  1457. /package/out/{shared → packages/shared}/src/iterables.js +0 -0
  1458. /package/out/{shared → packages/shared}/src/json-schema.js +0 -0
  1459. /package/out/{shared → packages/shared}/src/json.js +0 -0
  1460. /package/out/{shared → packages/shared}/src/logging-test-utils.js +0 -0
  1461. /package/out/{shared → packages/shared}/src/logging.js +0 -0
  1462. /package/out/{shared → packages/shared}/src/must.js +0 -0
  1463. /package/out/{shared → packages/shared}/src/navigator.js +0 -0
  1464. /package/out/{shared → packages/shared}/src/object-traversal.js +0 -0
  1465. /package/out/{shared → packages/shared}/src/objects.js +0 -0
  1466. /package/out/{shared → packages/shared}/src/options.js +0 -0
  1467. /package/out/{shared → packages/shared}/src/parse-big-int.js +0 -0
  1468. /package/out/{shared → packages/shared}/src/promise-race.js +0 -0
  1469. /package/out/{shared → packages/shared}/src/rand.js +0 -0
  1470. /package/out/{shared → packages/shared}/src/random-uint64.js +0 -0
  1471. /package/out/{shared → packages/shared}/src/random-values.js +0 -0
  1472. /package/out/{shared → packages/shared}/src/record-proxy.js +0 -0
  1473. /package/out/{shared → packages/shared}/src/resolved-promises.js +0 -0
  1474. /package/out/{shared → packages/shared}/src/sentinels.js +0 -0
  1475. /package/out/{shared → packages/shared}/src/set-utils.js +0 -0
  1476. /package/out/{shared → packages/shared}/src/size-of-value.js +0 -0
  1477. /package/out/{shared → packages/shared}/src/sleep.js +0 -0
  1478. /package/out/{shared → packages/shared}/src/sorted-entries.js +0 -0
  1479. /package/out/{shared → packages/shared}/src/string-compare.js +0 -0
  1480. /package/out/{shared → packages/shared}/src/subscribable.js +0 -0
  1481. /package/out/{shared → packages/shared}/src/tdigest-schema.js +0 -0
  1482. /package/out/{shared → packages/shared}/src/tdigest.js +0 -0
  1483. /package/out/{z2s → packages/z2s}/src/compiler.js +0 -0
  1484. /package/out/{z2s → packages/z2s}/src/sql.js +0 -0
  1485. /package/out/{zero → packages/zero}/src/server/runner/main.js +0 -0
  1486. /package/out/{zero-cache → packages/zero-cache}/src/auth/auth.js +0 -0
  1487. /package/out/{zero-cache → packages/zero-cache}/src/auth/jwt.js +0 -0
  1488. /package/out/{zero-cache → packages/zero-cache}/src/auth/load-permissions.js +0 -0
  1489. /package/out/{zero-cache → packages/zero-cache}/src/auth/read-authorizer.js +0 -0
  1490. /package/out/{zero-cache → packages/zero-cache}/src/auth/write-authorizer.js +0 -0
  1491. /package/out/{zero-cache → packages/zero-cache}/src/config/network.js +0 -0
  1492. /package/out/{zero-cache → packages/zero-cache}/src/config/normalize.js +0 -0
  1493. /package/out/{zero-cache → packages/zero-cache}/src/config/server-context.js +0 -0
  1494. /package/out/{zero-cache → packages/zero-cache}/src/custom/fetch.js +0 -0
  1495. /package/out/{zero-cache → packages/zero-cache}/src/custom-queries/transform-query.js +0 -0
  1496. /package/out/{zero-cache → packages/zero-cache}/src/db/create.js +0 -0
  1497. /package/out/{zero-cache → packages/zero-cache}/src/db/delete-lite-db.js +0 -0
  1498. /package/out/{zero-cache → packages/zero-cache}/src/db/lite-tables.js +0 -0
  1499. /package/out/{zero-cache → packages/zero-cache}/src/db/mode-enum.js +0 -0
  1500. /package/out/{zero-cache → packages/zero-cache}/src/db/pg-copy-binary.js +0 -0
  1501. /package/out/{zero-cache → packages/zero-cache}/src/db/pg-copy.js +0 -0
  1502. /package/out/{zero-cache → packages/zero-cache}/src/db/pg-to-lite.js +0 -0
  1503. /package/out/{zero-cache → packages/zero-cache}/src/db/pg-type-parser.js +0 -0
  1504. /package/out/{zero-cache → packages/zero-cache}/src/db/run-transaction.js +0 -0
  1505. /package/out/{zero-cache → packages/zero-cache}/src/db/specs.js +0 -0
  1506. /package/out/{zero-cache → packages/zero-cache}/src/db/statements.js +0 -0
  1507. /package/out/{zero-cache → packages/zero-cache}/src/db/transaction-pool.js +0 -0
  1508. /package/out/{zero-cache → packages/zero-cache}/src/db/warmup.js +0 -0
  1509. /package/out/{zero-cache → packages/zero-cache}/src/observability/events.js +0 -0
  1510. /package/out/{zero-cache → packages/zero-cache}/src/observability/metrics.js +0 -0
  1511. /package/out/{zero-cache → packages/zero-cache}/src/scripts/decommission.js +0 -0
  1512. /package/out/{zero-cache → packages/zero-cache}/src/scripts/deploy-permissions.js +0 -0
  1513. /package/out/{zero-cache → packages/zero-cache}/src/scripts/permissions.js +0 -0
  1514. /package/out/{zero-cache → packages/zero-cache}/src/server/inspector-delegate.js +0 -0
  1515. /package/out/{zero-cache → packages/zero-cache}/src/server/logging.js +0 -0
  1516. /package/out/{zero-cache → packages/zero-cache}/src/server/otel-diag-logger.js +0 -0
  1517. /package/out/{zero-cache → packages/zero-cache}/src/server/otel-log-sink.js +0 -0
  1518. /package/out/{zero-cache → packages/zero-cache}/src/server/priority-op.js +0 -0
  1519. /package/out/{zero-cache → packages/zero-cache}/src/server/runner/run-worker.js +0 -0
  1520. /package/out/{zero-cache → packages/zero-cache}/src/server/runner/runtime.js +0 -0
  1521. /package/out/{zero-cache → packages/zero-cache}/src/server/runner/zero-dispatcher.js +0 -0
  1522. /package/out/{zero-cache → packages/zero-cache}/src/server/worker-dispatcher.js +0 -0
  1523. /package/out/{zero-cache → packages/zero-cache}/src/server/worker-urls.js +0 -0
  1524. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/common/backfill-manager.js +0 -0
  1525. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/common/change-stream-multiplexer.js +0 -0
  1526. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/common/replica-schema.js +0 -0
  1527. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/custom/change-source.js +0 -0
  1528. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/backfill-metadata.js +0 -0
  1529. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/decommission.js +0 -0
  1530. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/logical-replication/binary-reader.js +0 -0
  1531. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/logical-replication/pgoutput-parser.js +0 -0
  1532. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/logical-replication/stream.js +0 -0
  1533. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/lsn.js +0 -0
  1534. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/schema/ddl.js +0 -0
  1535. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/schema/init.js +0 -0
  1536. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/schema/published.js +0 -0
  1537. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/pg/schema/validation.js +0 -0
  1538. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/current/control.js +0 -0
  1539. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/current/downstream.js +0 -0
  1540. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/current/json.js +0 -0
  1541. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/current/path.js +0 -0
  1542. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/current/status.js +0 -0
  1543. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/current/upstream.js +0 -0
  1544. /package/out/{zero-cache → packages/zero-cache}/src/services/change-source/protocol/mod.js +0 -0
  1545. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/backup-monitor.js +0 -0
  1546. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/broadcast.js +0 -0
  1547. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/change-streamer-http.js +0 -0
  1548. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/change-streamer-service.js +0 -0
  1549. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/change-streamer.js +0 -0
  1550. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/forwarder.js +0 -0
  1551. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/replica-monitor.js +0 -0
  1552. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/storer.js +0 -0
  1553. /package/out/{zero-cache → packages/zero-cache}/src/services/change-streamer/subscriber.js +0 -0
  1554. /package/out/{zero-cache → packages/zero-cache}/src/services/heapz.js +0 -0
  1555. /package/out/{zero-cache → packages/zero-cache}/src/services/http-service.js +0 -0
  1556. /package/out/{zero-cache → packages/zero-cache}/src/services/limiter/sliding-window-limiter.js +0 -0
  1557. /package/out/{zero-cache → packages/zero-cache}/src/services/litestream/commands.js +0 -0
  1558. /package/out/{zero-cache → packages/zero-cache}/src/services/mutagen/error.js +0 -0
  1559. /package/out/{zero-cache → packages/zero-cache}/src/services/mutagen/mutagen.js +0 -0
  1560. /package/out/{zero-cache → packages/zero-cache}/src/services/mutagen/pusher.js +0 -0
  1561. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/change-processor.js +0 -0
  1562. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/incremental-sync.js +0 -0
  1563. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/notifier.js +0 -0
  1564. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/replication-status.js +0 -0
  1565. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/replicator.js +0 -0
  1566. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/reporter/recorder.js +0 -0
  1567. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/reporter/report-schema.js +0 -0
  1568. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/schema/change-log.js +0 -0
  1569. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/schema/column-metadata.js +0 -0
  1570. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/schema/constants.js +0 -0
  1571. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/schema/replication-state.js +0 -0
  1572. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/schema/table-metadata.js +0 -0
  1573. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/write-worker-client.js +0 -0
  1574. /package/out/{zero-cache → packages/zero-cache}/src/services/replicator/write-worker.js +0 -0
  1575. /package/out/{zero-cache → packages/zero-cache}/src/services/runner.js +0 -0
  1576. /package/out/{zero-cache → packages/zero-cache}/src/services/shadow-sync/shadow-sync-service.js +0 -0
  1577. /package/out/{zero-cache → packages/zero-cache}/src/services/statz.js +0 -0
  1578. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/active-users-gauge.js +0 -0
  1579. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/client-schema.js +0 -0
  1580. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/connection-context-manager.js +0 -0
  1581. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/cvr-store.js +0 -0
  1582. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/cvr.js +0 -0
  1583. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/drain-coordinator.js +0 -0
  1584. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/row-record-cache.js +0 -0
  1585. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/row-set-signature.js +0 -0
  1586. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/schema/cvr.js +0 -0
  1587. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/snapshotter.js +0 -0
  1588. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/tracer.js +0 -0
  1589. /package/out/{zero-cache → packages/zero-cache}/src/services/view-syncer/ttl-clock.js +0 -0
  1590. /package/out/{zero-cache → packages/zero-cache}/src/types/error-with-level.js +0 -0
  1591. /package/out/{zero-cache → packages/zero-cache}/src/types/http.js +0 -0
  1592. /package/out/{zero-cache → packages/zero-cache}/src/types/lexi-version.js +0 -0
  1593. /package/out/{zero-cache → packages/zero-cache}/src/types/lite.js +0 -0
  1594. /package/out/{zero-cache → packages/zero-cache}/src/types/names.js +0 -0
  1595. /package/out/{zero-cache → packages/zero-cache}/src/types/pg-data-type.js +0 -0
  1596. /package/out/{zero-cache → packages/zero-cache}/src/types/pg-types.js +0 -0
  1597. /package/out/{zero-cache → packages/zero-cache}/src/types/pg-versions.js +0 -0
  1598. /package/out/{zero-cache → packages/zero-cache}/src/types/processes.js +0 -0
  1599. /package/out/{zero-cache → packages/zero-cache}/src/types/profiler.js +0 -0
  1600. /package/out/{zero-cache → packages/zero-cache}/src/types/row-key.js +0 -0
  1601. /package/out/{zero-cache → packages/zero-cache}/src/types/shards.js +0 -0
  1602. /package/out/{zero-cache → packages/zero-cache}/src/types/sql.js +0 -0
  1603. /package/out/{zero-cache → packages/zero-cache}/src/types/state-version.js +0 -0
  1604. /package/out/{zero-cache → packages/zero-cache}/src/types/streams.js +0 -0
  1605. /package/out/{zero-cache → packages/zero-cache}/src/types/strings.js +0 -0
  1606. /package/out/{zero-cache → packages/zero-cache}/src/types/subscription.js +0 -0
  1607. /package/out/{zero-cache → packages/zero-cache}/src/types/timeout.js +0 -0
  1608. /package/out/{zero-cache → packages/zero-cache}/src/types/url-params.js +0 -0
  1609. /package/out/{zero-cache → packages/zero-cache}/src/types/websocket-handoff.js +0 -0
  1610. /package/out/{zero-cache → packages/zero-cache}/src/types/ws.js +0 -0
  1611. /package/out/{zero-cache → packages/zero-cache}/src/workers/connect-params.js +0 -0
  1612. /package/out/{zero-cache → packages/zero-cache}/src/workers/connection.js +0 -0
  1613. /package/out/{zero-cache → packages/zero-cache}/src/workers/mutator.js +0 -0
  1614. /package/out/{zero-cache → packages/zero-cache}/src/workers/replicator.js +0 -0
  1615. /package/out/{zero-cache → packages/zero-cache}/src/workers/syncer-ws-message-handler.js +0 -0
  1616. /package/out/{zero-cache → packages/zero-cache}/src/workers/syncer.js +0 -0
  1617. /package/out/{zero-client → packages/zero-client}/src/client/active-clients-manager.js +0 -0
  1618. /package/out/{zero-client → packages/zero-client}/src/client/bindings.js +0 -0
  1619. /package/out/{zero-client → packages/zero-client}/src/client/client-error-kind-enum.js +0 -0
  1620. /package/out/{zero-client → packages/zero-client}/src/client/connection.js +0 -0
  1621. /package/out/{zero-client → packages/zero-client}/src/client/context.js +0 -0
  1622. /package/out/{zero-client → packages/zero-client}/src/client/crud.js +0 -0
  1623. /package/out/{zero-client → packages/zero-client}/src/client/delete-clients-manager.js +0 -0
  1624. /package/out/{zero-client → packages/zero-client}/src/client/enable-analytics.js +0 -0
  1625. /package/out/{zero-client → packages/zero-client}/src/client/error.js +0 -0
  1626. /package/out/{zero-client → packages/zero-client}/src/client/http-string.js +0 -0
  1627. /package/out/{zero-client → packages/zero-client}/src/client/inspector/client-group.js +0 -0
  1628. /package/out/{zero-client → packages/zero-client}/src/client/inspector/client.js +0 -0
  1629. /package/out/{zero-client → packages/zero-client}/src/client/inspector/html-dialog-prompt.js +0 -0
  1630. /package/out/{zero-client → packages/zero-client}/src/client/inspector/inspector.js +0 -0
  1631. /package/out/{zero-client → packages/zero-client}/src/client/inspector/lazy-inspector.js +0 -0
  1632. /package/out/{zero-client → packages/zero-client}/src/client/inspector/query.js +0 -0
  1633. /package/out/{zero-client → packages/zero-client}/src/client/ivm-branch.js +0 -0
  1634. /package/out/{zero-client → packages/zero-client}/src/client/keys.js +0 -0
  1635. /package/out/{zero-client → packages/zero-client}/src/client/log-options.js +0 -0
  1636. /package/out/{zero-client → packages/zero-client}/src/client/make-mutate-property.js +0 -0
  1637. /package/out/{zero-client → packages/zero-client}/src/client/make-replicache-mutators.js +0 -0
  1638. /package/out/{zero-client → packages/zero-client}/src/client/metric-name-enum.js +0 -0
  1639. /package/out/{zero-client → packages/zero-client}/src/client/metrics.js +0 -0
  1640. /package/out/{zero-client → packages/zero-client}/src/client/mutation-tracker.js +0 -0
  1641. /package/out/{zero-client → packages/zero-client}/src/client/mutator-proxy.js +0 -0
  1642. /package/out/{zero-client → packages/zero-client}/src/client/options.js +0 -0
  1643. /package/out/{zero-client → packages/zero-client}/src/client/query-manager.js +0 -0
  1644. /package/out/{zero-client → packages/zero-client}/src/client/reload-error-handler.js +0 -0
  1645. /package/out/{zero-client → packages/zero-client}/src/client/server-option.js +0 -0
  1646. /package/out/{zero-client → packages/zero-client}/src/client/zero-poke-handler.js +0 -0
  1647. /package/out/{zero-client → packages/zero-client}/src/client/zero-rep.js +0 -0
  1648. /package/out/{zero-client → packages/zero-client}/src/mod.js +0 -0
  1649. /package/out/{zero-client → packages/zero-client}/src/util/nanoid.js +0 -0
  1650. /package/out/{zero-pg → packages/zero-pg}/src/mod.js +0 -0
  1651. /package/out/{zero-protocol → packages/zero-protocol}/src/application-error.js +0 -0
  1652. /package/out/{zero-protocol → packages/zero-protocol}/src/ast.js +0 -0
  1653. /package/out/{zero-protocol → packages/zero-protocol}/src/client-schema.js +0 -0
  1654. /package/out/{zero-protocol → packages/zero-protocol}/src/close-connection.js +0 -0
  1655. /package/out/{zero-protocol → packages/zero-protocol}/src/custom-queries.js +0 -0
  1656. /package/out/{zero-protocol → packages/zero-protocol}/src/data.js +0 -0
  1657. /package/out/{zero-protocol → packages/zero-protocol}/src/delete-clients.js +0 -0
  1658. /package/out/{zero-protocol → packages/zero-protocol}/src/down.js +0 -0
  1659. /package/out/{zero-protocol → packages/zero-protocol}/src/error-kind-enum.js +0 -0
  1660. /package/out/{zero-protocol → packages/zero-protocol}/src/error-origin-enum.js +0 -0
  1661. /package/out/{zero-protocol → packages/zero-protocol}/src/error-reason-enum.js +0 -0
  1662. /package/out/{zero-protocol → packages/zero-protocol}/src/inspect-down.js +0 -0
  1663. /package/out/{zero-protocol → packages/zero-protocol}/src/mutate-server.js +0 -0
  1664. /package/out/{zero-protocol → packages/zero-protocol}/src/mutation-id.js +0 -0
  1665. /package/out/{zero-protocol → packages/zero-protocol}/src/mutation-type-enum.js +0 -0
  1666. /package/out/{zero-protocol → packages/zero-protocol}/src/mutation.js +0 -0
  1667. /package/out/{zero-protocol → packages/zero-protocol}/src/mutations-patch.js +0 -0
  1668. /package/out/{zero-protocol → packages/zero-protocol}/src/ping.js +0 -0
  1669. /package/out/{zero-protocol → packages/zero-protocol}/src/pong.js +0 -0
  1670. /package/out/{zero-protocol → packages/zero-protocol}/src/primary-key.js +0 -0
  1671. /package/out/{zero-protocol → packages/zero-protocol}/src/protocol-version.js +0 -0
  1672. /package/out/{zero-protocol → packages/zero-protocol}/src/pull.js +0 -0
  1673. /package/out/{zero-protocol → packages/zero-protocol}/src/queries-patch.js +0 -0
  1674. /package/out/{zero-protocol → packages/zero-protocol}/src/query-hash.js +0 -0
  1675. /package/out/{zero-protocol → packages/zero-protocol}/src/query-server.js +0 -0
  1676. /package/out/{zero-protocol → packages/zero-protocol}/src/row-patch.js +0 -0
  1677. /package/out/{zero-protocol → packages/zero-protocol}/src/up.js +0 -0
  1678. /package/out/{zero-protocol → packages/zero-protocol}/src/update-auth.js +0 -0
  1679. /package/out/{zero-protocol → packages/zero-protocol}/src/version.js +0 -0
  1680. /package/out/{zero-react → packages/zero-react}/src/bindings.js +0 -0
  1681. /package/out/{zero-react → packages/zero-react}/src/mod.js +0 -0
  1682. /package/out/{zero-react → packages/zero-react}/src/zero.js +0 -0
  1683. /package/out/{zero-schema → packages/zero-schema}/src/builder/relationship-builder.js +0 -0
  1684. /package/out/{zero-schema → packages/zero-schema}/src/builder/schema-builder.js +0 -0
  1685. /package/out/{zero-schema → packages/zero-schema}/src/builder/table-builder.js +0 -0
  1686. /package/out/{zero-schema → packages/zero-schema}/src/compiled-permissions.js +0 -0
  1687. /package/out/{zero-schema → packages/zero-schema}/src/name-mapper.js +0 -0
  1688. /package/out/{zero-schema → packages/zero-schema}/src/permissions.js +0 -0
  1689. /package/out/{zero-schema → packages/zero-schema}/src/schema-config.js +0 -0
  1690. /package/out/{zero-server → packages/zero-server}/src/adapters/drizzle.js +0 -0
  1691. /package/out/{zero-server → packages/zero-server}/src/adapters/kysely.js +0 -0
  1692. /package/out/{zero-server → packages/zero-server}/src/adapters/postgresjs.js +0 -0
  1693. /package/out/{zero-server → packages/zero-server}/src/adapters/prisma.js +0 -0
  1694. /package/out/{zero-server → packages/zero-server}/src/logging.js +0 -0
  1695. /package/out/{zero-server → packages/zero-server}/src/mod.js +0 -0
  1696. /package/out/{zero-server → packages/zero-server}/src/pg-query-executor.js +0 -0
  1697. /package/out/{zero-server → packages/zero-server}/src/process-mutations.js +0 -0
  1698. /package/out/{zero-server → packages/zero-server}/src/push-processor.js +0 -0
  1699. /package/out/{zero-server → packages/zero-server}/src/queries/process-queries.js +0 -0
  1700. /package/out/{zero-server → packages/zero-server}/src/schema.js +0 -0
  1701. /package/out/{zero-server → packages/zero-server}/src/zql-database.js +0 -0
  1702. /package/out/{zero-solid → packages/zero-solid}/src/bindings.js +0 -0
  1703. /package/out/{zero-solid → packages/zero-solid}/src/mod.js +0 -0
  1704. /package/out/{zero-solid → packages/zero-solid}/src/zero.js +0 -0
  1705. /package/out/{zero-types → packages/zero-types}/src/format.js +0 -0
  1706. /package/out/{zero-types → packages/zero-types}/src/name-mapper.js +0 -0
  1707. /package/out/{zql → packages/zql}/src/builder/filter.js +0 -0
  1708. /package/out/{zql → packages/zql}/src/builder/like.js +0 -0
  1709. /package/out/{zql → packages/zql}/src/error.js +0 -0
  1710. /package/out/{zql → packages/zql}/src/ivm/array-view.js +0 -0
  1711. /package/out/{zql → packages/zql}/src/ivm/change.js +0 -0
  1712. /package/out/{zql → packages/zql}/src/ivm/data.js +0 -0
  1713. /package/out/{zql → packages/zql}/src/ivm/exists.js +0 -0
  1714. /package/out/{zql → packages/zql}/src/ivm/fan-in.js +0 -0
  1715. /package/out/{zql → packages/zql}/src/ivm/fan-out.js +0 -0
  1716. /package/out/{zql → packages/zql}/src/ivm/filter-operators.js +0 -0
  1717. /package/out/{zql → packages/zql}/src/ivm/filter-push.js +0 -0
  1718. /package/out/{zql → packages/zql}/src/ivm/filter.js +0 -0
  1719. /package/out/{zql → packages/zql}/src/ivm/join-utils.js +0 -0
  1720. /package/out/{zql → packages/zql}/src/ivm/join.js +0 -0
  1721. /package/out/{zql → packages/zql}/src/ivm/maybe-split-and-push-edit-change.js +0 -0
  1722. /package/out/{zql → packages/zql}/src/ivm/memory-storage.js +0 -0
  1723. /package/out/{zql → packages/zql}/src/ivm/operator.js +0 -0
  1724. /package/out/{zql → packages/zql}/src/ivm/push-accumulated.js +0 -0
  1725. /package/out/{zql → packages/zql}/src/ivm/skip-yields.js +0 -0
  1726. /package/out/{zql → packages/zql}/src/ivm/skip.js +0 -0
  1727. /package/out/{zql → packages/zql}/src/ivm/source.js +0 -0
  1728. /package/out/{zql → packages/zql}/src/ivm/stream.js +0 -0
  1729. /package/out/{zql → packages/zql}/src/ivm/union-fan-out.js +0 -0
  1730. /package/out/{zql → packages/zql}/src/ivm/view-apply-change.js +0 -0
  1731. /package/out/{zql → packages/zql}/src/mutate/crud.js +0 -0
  1732. /package/out/{zql → packages/zql}/src/mutate/custom.js +0 -0
  1733. /package/out/{zql → packages/zql}/src/mutate/mutator-registry.js +0 -0
  1734. /package/out/{zql → packages/zql}/src/mutate/mutator.js +0 -0
  1735. /package/out/{zql → packages/zql}/src/planner/planner-builder.js +0 -0
  1736. /package/out/{zql → packages/zql}/src/planner/planner-connection.js +0 -0
  1737. /package/out/{zql → packages/zql}/src/planner/planner-constraint.js +0 -0
  1738. /package/out/{zql → packages/zql}/src/planner/planner-debug.js +0 -0
  1739. /package/out/{zql → packages/zql}/src/planner/planner-fan-in.js +0 -0
  1740. /package/out/{zql → packages/zql}/src/planner/planner-fan-out.js +0 -0
  1741. /package/out/{zql → packages/zql}/src/planner/planner-graph.js +0 -0
  1742. /package/out/{zql → packages/zql}/src/planner/planner-node.js +0 -0
  1743. /package/out/{zql → packages/zql}/src/planner/planner-source.js +0 -0
  1744. /package/out/{zql → packages/zql}/src/planner/planner-terminus.js +0 -0
  1745. /package/out/{zql → packages/zql}/src/query/complete-ordering.js +0 -0
  1746. /package/out/{zql → packages/zql}/src/query/create-builder.js +0 -0
  1747. /package/out/{zql → packages/zql}/src/query/error.js +0 -0
  1748. /package/out/{zql → packages/zql}/src/query/escape-like.js +0 -0
  1749. /package/out/{zql → packages/zql}/src/query/expression.js +0 -0
  1750. /package/out/{zql → packages/zql}/src/query/measure-push-operator.js +0 -0
  1751. /package/out/{zql → packages/zql}/src/query/metrics-delegate.js +0 -0
  1752. /package/out/{zql → packages/zql}/src/query/named.js +0 -0
  1753. /package/out/{zql → packages/zql}/src/query/query-delegate-base.js +0 -0
  1754. /package/out/{zql → packages/zql}/src/query/query-internals.js +0 -0
  1755. /package/out/{zql → packages/zql}/src/query/query-registry.js +0 -0
  1756. /package/out/{zql → packages/zql}/src/query/query.js +0 -0
  1757. /package/out/{zql → packages/zql}/src/query/runnable-query-impl.js +0 -0
  1758. /package/out/{zql → packages/zql}/src/query/static-query.js +0 -0
  1759. /package/out/{zql → packages/zql}/src/query/ttl.js +0 -0
  1760. /package/out/{zql → packages/zql}/src/query/validate-input.js +0 -0
  1761. /package/out/{zqlite → packages/zqlite}/src/database-storage.js +0 -0
  1762. /package/out/{zqlite → packages/zqlite}/src/db.js +0 -0
  1763. /package/out/{zqlite → packages/zqlite}/src/explain-queries.js +0 -0
  1764. /package/out/{zqlite → packages/zqlite}/src/internal/sql-inline.js +0 -0
  1765. /package/out/{zqlite → packages/zqlite}/src/internal/sql.js +0 -0
  1766. /package/out/{zqlite → packages/zqlite}/src/internal/statement-cache.js +0 -0
  1767. /package/out/{zqlite → packages/zqlite}/src/mod.js +0 -0
  1768. /package/out/{zqlite → packages/zqlite}/src/query-builder.js +0 -0
  1769. /package/out/{zqlite → packages/zqlite}/src/query-delegate.js +0 -0
  1770. /package/out/{zqlite → packages/zqlite}/src/resolve-scalar-subqueries.js +0 -0
  1771. /package/out/{zqlite → packages/zqlite}/src/sqlite-cost-model.js +0 -0
  1772. /package/out/{zqlite → packages/zqlite}/src/sqlite-stat-fanout.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-scalar-subqueries.js","names":[],"sources":["../../../../zqlite/src/resolve-scalar-subqueries.ts"],"sourcesContent":["import type {\n AST,\n Condition,\n CorrelatedSubqueryCondition,\n LiteralValue,\n SimpleCondition,\n} from '../../zero-protocol/src/ast.ts';\nimport type {PrimaryKey} from '../../zero-protocol/src/primary-key.ts';\n\ntype TableSpecWithUniqueKeys = {\n tableSpec: {\n uniqueKeys: PrimaryKey[];\n };\n};\n\nexport type CompanionSubquery = {\n /** The original scalar subquery AST (the subquery table query). */\n ast: AST;\n /** The field in the subquery row whose value was resolved. */\n childField: string;\n /** The resolved value, `null` if a row matched but the field was `NULL`,\n * or `undefined` if no row matched. */\n resolvedValue: LiteralValue | null | undefined;\n};\n\nexport type ResolveResult = {\n ast: AST;\n companions: CompanionSubquery[];\n};\n\n/**\n * Callback that executes a scalar subquery and returns the value of\n * `childField` from the (at most one) matching row, or `undefined`\n * if no rows match.\n */\nexport type ScalarExecutor = (\n subqueryAST: AST,\n childField: string,\n) => LiteralValue | null | undefined;\n\n/**\n * Resolves \"simple\" scalar subqueries by calling the provided executor\n * and replacing them with literal conditions. A scalar subquery is simple\n * when all columns of at least one unique index on the subquery table are\n * equality-constrained by literal values in the subquery's WHERE clause\n * (using only AND conjunctions).\n *\n * Non-simple scalar subqueries are left untouched for the existing\n * EXISTS rewrite in buildPipelineInternal.\n *\n * Returns the resolved AST and a list of companion subquery ASTs whose\n * rows need to be synced to the client for the EXISTS rewrite to work.\n */\nexport function resolveSimpleScalarSubqueries(\n ast: AST,\n tableSpecs: Map<string, TableSpecWithUniqueKeys>,\n execute: ScalarExecutor,\n): ResolveResult {\n const companions: CompanionSubquery[] = [];\n const resolved = resolveASTRecursive(ast, tableSpecs, execute, companions);\n return {ast: resolved, companions};\n}\n\nfunction resolveASTRecursive(\n ast: AST,\n tableSpecs: Map<string, TableSpecWithUniqueKeys>,\n execute: ScalarExecutor,\n companions: CompanionSubquery[],\n): AST {\n const where = ast.where\n ? resolveCondition(ast.where, tableSpecs, execute, companions)\n : undefined;\n\n const related = ast.related?.map(r => ({\n ...r,\n subquery: resolveASTRecursive(r.subquery, tableSpecs, execute, companions),\n }));\n\n if (where !== ast.where || related !== ast.related) {\n return {...ast, where, related};\n }\n return ast;\n}\n\nfunction resolveCondition(\n condition: Condition,\n tableSpecs: Map<string, TableSpecWithUniqueKeys>,\n execute: ScalarExecutor,\n companions: CompanionSubquery[],\n): Condition {\n switch (condition.type) {\n case 'correlatedSubquery':\n if (condition.scalar) {\n return resolveScalarSubquery(\n condition,\n tableSpecs,\n execute,\n companions,\n );\n }\n // Non-scalar correlated subquery: recurse into its subquery\n {\n const resolvedSubquery = resolveASTRecursive(\n condition.related.subquery,\n tableSpecs,\n execute,\n companions,\n );\n if (resolvedSubquery !== condition.related.subquery) {\n return {\n ...condition,\n related: {...condition.related, subquery: resolvedSubquery},\n };\n }\n return condition;\n }\n case 'and':\n case 'or': {\n const resolved = condition.conditions.map(c =>\n resolveCondition(c, tableSpecs, execute, companions),\n );\n if (resolved.every((c, i) => c === condition.conditions[i])) {\n return condition;\n }\n return {type: condition.type, conditions: resolved};\n }\n default:\n return condition;\n }\n}\n\nfunction resolveScalarSubquery(\n condition: CorrelatedSubqueryCondition,\n tableSpecs: Map<string, TableSpecWithUniqueKeys>,\n execute: ScalarExecutor,\n companions: CompanionSubquery[],\n): Condition {\n const parentField = condition.related.correlation.parentField[0];\n const childField = condition.related.correlation.childField[0];\n\n // Recursively resolve any scalar subqueries nested in the\n // subquery's own WHERE (and related) before evaluating this one.\n const subquery = resolveASTRecursive(\n condition.related.subquery,\n tableSpecs,\n execute,\n companions,\n );\n\n if (!isSimpleSubquery(subquery, tableSpecs)) {\n // Return with the (possibly partially-resolved) subquery.\n if (subquery !== condition.related.subquery) {\n return {\n ...condition,\n related: {...condition.related, subquery},\n };\n }\n return condition;\n }\n\n const value = execute(subquery, childField);\n\n // Record the companion subquery AST so its rows are synced to the client.\n // The client rewrites scalar subqueries to EXISTS and needs those rows.\n companions.push({\n ast: subquery,\n childField,\n resolvedValue: value,\n });\n\n if (value === undefined || value === null) {\n // No rows or NULL value — both x = NULL and x != NULL are false in SQL\n return ALWAYS_FALSE;\n }\n\n const op = condition.op === 'EXISTS' ? '=' : 'IS NOT';\n return {\n type: 'simple',\n op,\n left: {type: 'column', name: parentField},\n right: {type: 'literal', value},\n } satisfies SimpleCondition;\n}\n\nconst ALWAYS_FALSE: SimpleCondition = {\n type: 'simple',\n op: '=',\n left: {type: 'literal', value: 1},\n right: {type: 'literal', value: 0},\n};\n\n/**\n * Checks if the subquery is guaranteed to return at most one deterministic row.\n *\n * This is true when all columns of at least one unique index on the subquery\n * table are equality-constrained by literal values in the WHERE clause\n * (using only AND conjunctions).\n */\nexport function isSimpleSubquery(\n subquery: AST,\n tableSpecs: Map<string, TableSpecWithUniqueKeys>,\n): boolean {\n const spec = tableSpecs.get(subquery.table);\n if (!spec) {\n return false;\n }\n\n if (!subquery.where) {\n return false;\n }\n\n const constraints = extractLiteralEqualityConstraints(subquery.where);\n if (constraints.size === 0) {\n return false;\n }\n\n const {uniqueKeys} = spec.tableSpec;\n return uniqueKeys.some(key => key.every(col => constraints.has(col)));\n}\n\n/**\n * Extracts column=literal equality constraints from a condition tree,\n * only following AND conjunctions (not OR).\n */\nexport function extractLiteralEqualityConstraints(\n condition: Condition,\n): Map<string, LiteralValue> {\n const constraints = new Map<string, LiteralValue>();\n collectConstraints(condition, constraints);\n return constraints;\n}\n\nfunction collectConstraints(\n condition: Condition,\n constraints: Map<string, LiteralValue>,\n): void {\n switch (condition.type) {\n case 'simple':\n if (condition.op === '=') {\n if (\n condition.left.type === 'column' &&\n condition.right.type === 'literal'\n ) {\n constraints.set(condition.left.name, condition.right.value);\n }\n }\n break;\n case 'and':\n for (const c of condition.conditions) {\n collectConstraints(c, constraints);\n }\n break;\n // OR, correlatedSubquery (non-scalar) — don't contribute constraints\n default:\n break;\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite-cost-model.js","names":[],"sources":["../../../../zqlite/src/sqlite-cost-model.ts"],"sourcesContent":["import SQLite3Database from '@rocicorp/zero-sqlite3';\nimport {assert} from '../../shared/src/asserts.ts';\nimport {must} from '../../shared/src/must.ts';\nimport type {Condition, Ordering} from '../../zero-protocol/src/ast.ts';\nimport type {SchemaValue} from '../../zero-types/src/schema-value.ts';\nimport type {\n ConnectionCostModel,\n CostModelCost,\n} from '../../zql/src/planner/planner-connection.ts';\nimport type {PlannerConstraint} from '../../zql/src/planner/planner-constraint.ts';\nimport type {Database, Statement} from './db.ts';\nimport {compileInline} from './internal/sql-inline.ts';\nimport {buildSelectQuery, type NoSubqueryCondition} from './query-builder.ts';\nimport {SQLiteStatFanout} from './sqlite-stat-fanout.ts';\n\n/**\n * Loop information returned by SQLite's scanstatus API.\n */\ninterface ScanstatusLoop {\n /** Unique identifier for this loop */\n selectId: number;\n /** Parent loop ID, or 0 for root loops */\n parentId: number;\n /** Estimated rows emitted per turn of parent loop */\n est: number;\n /** EXPLAIN text for this loop to determine: b-tree vs list subquery */\n explain: string;\n}\n\n/**\n * Creates a SQLite-based cost model for query planning.\n * Uses SQLite's scanstatus API to estimate query costs based on the actual\n * SQLite query planner's analysis.\n *\n * @param db Database instance for preparing statements\n * @param tableSpecs Map of table names to their table specs with ZQL schemas\n * @returns ConnectionCostModel function for use with the planner\n */\nexport function createSQLiteCostModel(\n db: Database,\n tableSpecs: Map<string, {zqlSpec: Record<string, SchemaValue>}>,\n): ConnectionCostModel {\n const fanoutEstimator = new SQLiteStatFanout(db);\n return (\n tableName: string,\n sort: Ordering,\n filters: Condition | undefined,\n constraint: PlannerConstraint | undefined,\n ): CostModelCost => {\n // Transform filters to remove correlated subqueries\n // The cost model can't handle correlated subqueries, so we estimate cost\n // without them. This is conservative - actual cost may be higher.\n const noSubqueryFilters = filters\n ? removeCorrelatedSubqueries(filters)\n : undefined;\n\n // Build the SQL query using the same logic as actual queries\n const {zqlSpec} = must(tableSpecs.get(tableName));\n\n const query = buildSelectQuery(\n tableName,\n zqlSpec,\n constraint,\n noSubqueryFilters,\n sort,\n undefined, // reverse is undefined here\n undefined, // start is undefined here\n );\n\n // Use compileInline to inline actual values into the SQL for cost estimation.\n // This allows SQLite's query planner to see real values and make better decisions\n // about index usage and query plans. This is safe here because it's only used for\n // cost estimation, not for executing user-facing queries (which use parameterized\n // queries via the standard compile() function).\n const sql = compileInline(query);\n\n // Prepare statement to get scanstatus information\n const stmt = db.prepare(sql);\n\n // Get scanstatus loops from the prepared statement\n const loops = getScanstatusLoops(stmt);\n\n // Scanstatus should always be available - if we get no loops, something is wrong\n assert(\n loops.length > 0,\n `Expected scanstatus to return at least one loop for query: ${sql}`,\n );\n\n const ret = estimateCost(loops, (columns: string[]) =>\n fanoutEstimator.getFanout(tableName, columns),\n );\n\n return ret;\n };\n}\n\n/**\n * Removes correlated subqueries from conditions.\n * The cost model estimates cost without correlated subqueries since\n * they can't be included in the scanstatus query.\n */\nfunction removeCorrelatedSubqueries(\n condition: Condition,\n): NoSubqueryCondition | undefined {\n switch (condition.type) {\n case 'correlatedSubquery':\n // Remove subqueries - we can't estimate their cost via scanstatus\n return undefined;\n case 'simple':\n return condition;\n case 'and': {\n const filtered = condition.conditions\n .map(c => removeCorrelatedSubqueries(c))\n .filter((c): c is NoSubqueryCondition => c !== undefined);\n if (filtered.length === 0) return undefined;\n if (filtered.length === 1) return filtered[0];\n return {type: 'and', conditions: filtered};\n }\n case 'or': {\n const filtered = condition.conditions\n .map(c => removeCorrelatedSubqueries(c))\n .filter((c): c is NoSubqueryCondition => c !== undefined);\n if (filtered.length === 0) return undefined;\n if (filtered.length === 1) return filtered[0];\n return {type: 'or', conditions: filtered};\n }\n }\n}\n\n/**\n * Gets scanstatus loop information from a prepared statement.\n * Iterates through all query elements and extracts loop statistics.\n *\n * Uses SQLITE_SCANSTAT_COMPLEX flag (1) to get all loops including sorting operations.\n *\n * @param stmt Prepared statement to get scanstatus from\n * @returns Array of loop information, or empty array if scanstatus unavailable\n */\nfunction getScanstatusLoops(stmt: Statement): ScanstatusLoop[] {\n const loops: ScanstatusLoop[] = [];\n\n // Iterate through query elements by incrementing idx until we get undefined\n // which indicates we've reached the end\n for (let idx = 0; ; idx++) {\n const selectId = stmt.scanStatus(\n idx,\n SQLite3Database.SQLITE_SCANSTAT_SELECTID,\n 1,\n );\n\n if (selectId === undefined) {\n break;\n }\n\n loops.push({\n selectId: must(selectId),\n parentId: must(\n stmt.scanStatus(idx, SQLite3Database.SQLITE_SCANSTAT_PARENTID, 1),\n ),\n explain: must(\n stmt.scanStatus(idx, SQLite3Database.SQLITE_SCANSTAT_EXPLAIN, 1),\n ),\n est: must(stmt.scanStatus(idx, SQLite3Database.SQLITE_SCANSTAT_EST, 1)),\n });\n }\n\n return loops.sort((a, b) => a.selectId - b.selectId);\n}\n\n/**\n * Estimates the cost of a query based on scanstats from sqlite3_stmt_scanstatus_v2\n */\nfunction estimateCost(\n scanstats: ScanstatusLoop[],\n fanout: CostModelCost['fanout'],\n): CostModelCost {\n // Sort by selectId to process in execution order\n const sorted = scanstats.toSorted((a, b) => a.selectId - b.selectId);\n\n let totalRows = 0;\n let totalCost = 0;\n\n // Identify if there are multiple top-level (parentId=0) operations\n // If so, the first is typically the scan, and subsequent ones are sorts\n const topLevelOps = sorted.filter(s => s.parentId === 0);\n\n // We only consider top level ops since ZQL queries are single-table when hitting SQLite.\n // We do have a nested op in the case of `WHERE x IN (:arg)` but it is negligible\n // assuming :arg is small.\n let firstLoop = true;\n for (const op of topLevelOps) {\n if (firstLoop) {\n // First top-level op is the main scan\n // and determines the total number of rows output.\n totalRows = op.est;\n firstLoop = false;\n } else {\n if (op.explain.includes('ORDER BY')) {\n totalCost += btreeCost(totalRows);\n }\n }\n }\n\n return {\n rows: totalRows,\n startupCost: totalCost,\n fanout,\n };\n}\n\nexport function btreeCost(rows: number): number {\n // B-Tree construction is ~O(n log n) so we estimate the cost as such.\n // We divide the cost by 10 because sorting in SQLite is ~10x faster\n // than bringing the data into JS and sorting there.\n return (rows * Math.log2(rows)) / 10;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAsCA,SAAgB,sBACd,IACA,YACqB;CACrB,MAAM,kBAAkB,IAAI,iBAAiB,GAAG;AAChD,SACE,WACA,MACA,SACA,eACkB;EAIlB,MAAM,oBAAoB,UACtB,2BAA2B,QAAQ,GACnC,KAAA;EAGJ,MAAM,EAAC,YAAW,KAAK,WAAW,IAAI,UAAU,CAAC;EAiBjD,MAAM,MAAM,cAfE,iBACZ,WACA,SACA,YACA,mBACA,MACA,KAAA,GACA,KAAA,EACD,CAO+B;EAMhC,MAAM,QAAQ,mBAHD,GAAG,QAAQ,IAAI,CAGU;AAGtC,SACE,MAAM,SAAS,GACf,8DAA8D,MAC/D;AAMD,SAJY,aAAa,QAAQ,YAC/B,gBAAgB,UAAU,WAAW,QAAQ,CAC9C;;;;;;;;AAWL,SAAS,2BACP,WACiC;AACjC,SAAQ,UAAU,MAAlB;EACE,KAAK,qBAEH;EACF,KAAK,SACH,QAAO;EACT,KAAK,OAAO;GACV,MAAM,WAAW,UAAU,WACxB,KAAI,MAAK,2BAA2B,EAAE,CAAC,CACvC,QAAQ,MAAgC,MAAM,KAAA,EAAU;AAC3D,OAAI,SAAS,WAAW,EAAG,QAAO,KAAA;AAClC,OAAI,SAAS,WAAW,EAAG,QAAO,SAAS;AAC3C,UAAO;IAAC,MAAM;IAAO,YAAY;IAAS;;EAE5C,KAAK,MAAM;GACT,MAAM,WAAW,UAAU,WACxB,KAAI,MAAK,2BAA2B,EAAE,CAAC,CACvC,QAAQ,MAAgC,MAAM,KAAA,EAAU;AAC3D,OAAI,SAAS,WAAW,EAAG,QAAO,KAAA;AAClC,OAAI,SAAS,WAAW,EAAG,QAAO,SAAS;AAC3C,UAAO;IAAC,MAAM;IAAM,YAAY;IAAS;;;;;;;;;;;;;AAc/C,SAAS,mBAAmB,MAAmC;CAC7D,MAAM,QAA0B,EAAE;AAIlC,MAAK,IAAI,MAAM,IAAK,OAAO;EACzB,MAAM,WAAW,KAAK,WACpB,KACA,gBAAgB,0BAChB,EACD;AAED,MAAI,aAAa,KAAA,EACf;AAGF,QAAM,KAAK;GACT,UAAU,KAAK,SAAS;GACxB,UAAU,KACR,KAAK,WAAW,KAAK,gBAAgB,0BAA0B,EAAE,CAClE;GACD,SAAS,KACP,KAAK,WAAW,KAAK,gBAAgB,yBAAyB,EAAE,CACjE;GACD,KAAK,KAAK,KAAK,WAAW,KAAK,gBAAgB,qBAAqB,EAAE,CAAC;GACxE,CAAC;;AAGJ,QAAO,MAAM,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,SAAS;;;;;AAMtD,SAAS,aACP,WACA,QACe;CAEf,MAAM,SAAS,UAAU,UAAU,GAAG,MAAM,EAAE,WAAW,EAAE,SAAS;CAEpE,IAAI,YAAY;CAChB,IAAI,YAAY;CAIhB,MAAM,cAAc,OAAO,QAAO,MAAK,EAAE,aAAa,EAAE;CAKxD,IAAI,YAAY;AAChB,MAAK,MAAM,MAAM,YACf,KAAI,WAAW;AAGb,cAAY,GAAG;AACf,cAAY;YAER,GAAG,QAAQ,SAAS,WAAW,CACjC,cAAa,UAAU,UAAU;AAKvC,QAAO;EACL,MAAM;EACN,aAAa;EACb;EACD;;AAGH,SAAgB,UAAU,MAAsB;AAI9C,QAAQ,OAAO,KAAK,KAAK,KAAK,GAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite-stat-fanout.js","names":["#db","#defaultFanout","#cache","#stat4Stmt","#stat1Stmt","#indexStmt","#getFanoutFromStat4","#getFanoutFromStat1","#findIndexForColumns","#decodeSampleIsNull","#isPrefixMatch"],"sources":["../../../../zqlite/src/sqlite-stat-fanout.ts"],"sourcesContent":["import type {Database} from './db.ts';\n\n/**\n * Result of fanout calculation from SQLite statistics.\n */\nexport interface FanoutResult {\n /**\n * The fanout value (average rows per distinct value of the join column).\n * For non-NULL joins, this represents how many child rows exist per parent key.\n */\n fanout: number;\n confidence: 'high' | 'med' | 'none';\n\n /**\n * Source of the fanout calculation.\n * - 'stat4': From sqlite_stat4 histogram (most accurate, excludes NULLs)\n * - 'stat1': From sqlite_stat1 average (includes NULLs, may overestimate)\n * - 'default': Fallback constant when statistics unavailable\n */\n source: 'stat4' | 'stat1' | 'default';\n}\n\n/**\n * Sample from sqlite_stat4 histogram.\n */\ninterface Stat4Sample {\n /** \"N1 N2\" = rows equal to sample (N1=first col, N2=if composite) */\n neq: string;\n /** \"N1 N2\" = rows less than sample */\n nlt: string;\n /** \"N1 N2\" = distinct values less than sample */\n ndlt: string;\n /** The actual sample value (binary encoded) */\n sample: Buffer;\n}\n\n/**\n * Computes join fanout factors from SQLite statistics tables.\n *\n * Fanout is the average number of child rows per distinct parent key value,\n * used to estimate join cardinality in query planning.\n *\n * ## Problem\n *\n * sqlite_stat1 includes NULL rows in its calculation, which can significantly\n * overestimate fanout for sparse foreign keys:\n *\n * ```\n * Example: 100 tasks, 20 with project_id, 80 with NULL\n * - stat1 reports: \"100 17\" → fanout = 17 (WRONG - includes NULLs)\n * - stat4 shows: NULL samples with fanout=80, non-NULL samples with fanout=4\n * - True fanout: 4 (CORRECT)\n * ```\n *\n * ## Solution\n *\n * This class uses sqlite_stat4 histogram to separate NULL and non-NULL samples,\n * providing accurate fanout for non-NULL joins.\n *\n * ## Usage\n *\n * ```typescript\n * const calculator = new SQLiteStatFanout(db);\n *\n * // Get fanout for posts.userId → users.id join\n * const result = calculator.getFanout('posts', 'userId');\n *\n * if (result.source === 'stat4') {\n * // Accurate: excludes NULLs, samples actual distribution\n * console.log(`Fanout: ${result.fanout} (from stat4)`);\n * } else if (result.source === 'stat1') {\n * // Conservative: includes NULLs, may overestimate\n * console.log(`Fanout: ${result.fanout} (from stat1, includes NULLs)`);\n * } else {\n * // Fallback: no statistics available\n * console.log(`Fanout: ${result.fanout} (default estimate)`);\n * }\n * ```\n *\n * ## Requirements\n *\n * - SQLite compiled with ENABLE_STAT4 (most builds include this)\n * - `ANALYZE` command run on the database\n * - Index exists on the join column\n *\n * @see https://sqlite.org/fileformat2.html#stat4tab\n * @see packages/zql/src/planner/SELECTIVITY_PLAN.md\n */\nexport class SQLiteStatFanout {\n readonly #db: Database;\n readonly #defaultFanout: number;\n\n /**\n * Cache of fanout results by table and columns.\n * Key format: \"tableName:col1,col2,col3\" (sorted alphabetically)\n */\n readonly #cache = new Map<string, FanoutResult>();\n\n /**\n * Prepared statements for querying SQLite statistics tables.\n * Prepared once in constructor for performance.\n */\n readonly #stat4Stmt: ReturnType<Database['prepare']>;\n readonly #stat1Stmt: ReturnType<Database['prepare']>;\n readonly #indexStmt: ReturnType<Database['prepare']>;\n\n /**\n * Creates a new fanout calculator.\n *\n * @param db Database instance\n * @param defaultFanout Default fanout when statistics unavailable (default: 3)\n * - 1: Conservative (assumes FK relationships)\n * - 3: Moderate (recommended, safe middle ground)\n * - 10: SQLite's default (optimistic)\n */\n constructor(db: Database, defaultFanout = 3) {\n this.#db = db;\n this.#defaultFanout = defaultFanout;\n\n // Prepare SQL statements once for reuse across multiple getFanout() calls\n this.#stat4Stmt = this.#db.prepare(`\n SELECT neq, nlt, ndlt, sample\n FROM sqlite_stat4\n WHERE tbl = ? AND idx = ?\n ORDER BY nlt\n `);\n\n this.#stat1Stmt = this.#db.prepare(`\n SELECT stat\n FROM sqlite_stat1\n WHERE tbl = ? AND idx = ?\n `);\n\n this.#indexStmt = this.#db.prepare(`\n SELECT il.name as index_name, ii.seqno, ii.name as column_name\n FROM pragma_index_list(?) il\n JOIN pragma_index_info(il.name) ii\n ORDER BY il.seq, ii.seqno\n `);\n }\n\n /**\n * Gets the fanout factor for join column(s).\n *\n * Fanout = average number of child rows per distinct parent key value(s).\n *\n * ## Strategy\n *\n * 1. Try sqlite_stat4 (best): Histogram with separate NULL/non-NULL samples\n * 2. Fallback to sqlite_stat1: Average across all rows (includes NULLs)\n * 3. Fallback to default: When no statistics available\n *\n * ## Compound Indexes\n *\n * For multi-column joins, finds indexes where ALL columns appear as an\n * exact prefix. Uses the appropriate depth in stat1/stat4.\n *\n * Example:\n * - Columns: `['customerId', 'storeId']`\n * - Matches index: `(customerId, storeId, date)` at depth 2\n * - Uses stat1 parts[2] or stat4 neq[1] for accurate fanout\n *\n * ## Caching\n *\n * Results are cached per (table, columns) combination. Clear the cache if\n * you run ANALYZE to update statistics.\n *\n * @param tableName Table containing the join column(s)\n * @param columns Array of column names (one or more columns)\n * @returns Fanout result with value and source\n */\n getFanout(tableName: string, columns: string[]): FanoutResult {\n // Cache key uses sorted columns for consistency\n const cacheKey = `${tableName}:${columns.toSorted().join(',')}`;\n const cached = this.#cache.get(cacheKey);\n if (cached) {\n return cached;\n }\n\n // Strategy 1: Try stat4 first (most accurate)\n // NOTE: columns are NOT sorted - preserves Object.keys() order from constraint\n // Matching is order-independent (flexible), but we keep original order for consistency\n const stat4Result = this.#getFanoutFromStat4(tableName, columns);\n if (stat4Result) {\n this.#cache.set(cacheKey, stat4Result);\n return stat4Result;\n }\n\n // Strategy 2: Fallback to stat1 (includes NULLs)\n const stat1Result = this.#getFanoutFromStat1(tableName, columns);\n if (stat1Result) {\n this.#cache.set(cacheKey, stat1Result);\n return stat1Result;\n }\n\n // Strategy 3: Use default\n const defaultResult: FanoutResult = {\n fanout: this.#defaultFanout,\n confidence: 'none',\n source: 'default',\n };\n this.#cache.set(cacheKey, defaultResult);\n return defaultResult;\n }\n\n /**\n * Clears the fanout cache.\n * Call this after running ANALYZE to pick up updated statistics.\n */\n clearCache(): void {\n this.#cache.clear();\n }\n\n /**\n * Gets fanout from sqlite_stat4 histogram.\n *\n * Queries stat4 samples, decodes to identify NULLs, and returns\n * the median fanout of non-NULL samples.\n *\n * For compound indexes, uses the neq value at the appropriate depth.\n *\n * @param columns Array of column names to get fanout for\n * @returns Fanout result or undefined if stat4 unavailable\n */\n #getFanoutFromStat4(\n tableName: string,\n columns: string[],\n ): FanoutResult | undefined {\n try {\n // Find index containing the columns as a prefix\n const indexInfo = this.#findIndexForColumns(tableName, columns);\n if (!indexInfo) {\n return undefined;\n }\n\n // Query stat4 samples for this index (using prepared statement)\n const samples = this.#stat4Stmt.all(\n tableName,\n indexInfo.indexName,\n ) as Stat4Sample[];\n\n if (samples.length === 0) {\n return undefined;\n }\n\n // Decode samples and separate NULL from non-NULL\n // Use depth-1 for neq array index (depth is 1-based, array is 0-based)\n const neqIndex = indexInfo.depth - 1;\n const decodedSamples = samples.map(s => {\n const neqParts = s.neq.split(' ');\n return {\n fanout: parseInt(neqParts[neqIndex] ?? neqParts[0], 10),\n isNull: this.#decodeSampleIsNull(s.sample),\n };\n });\n\n const nonNullSamples = decodedSamples.filter(s => !s.isNull);\n\n if (nonNullSamples.length === 0) {\n // All samples are NULL - return fanout of 0 since NULLs don't match in joins\n return {\n fanout: 0,\n source: 'stat4',\n confidence: 'high',\n };\n }\n\n // Use median of non-NULL fanouts (more robust than average)\n const fanouts = nonNullSamples.map(s => s.fanout).sort((a, b) => a - b);\n const medianFanout =\n fanouts.length % 2 === 0\n ? Math.floor(\n (fanouts[fanouts.length / 2 - 1] + fanouts[fanouts.length / 2]) /\n 2,\n )\n : fanouts[Math.floor(fanouts.length / 2)];\n\n return {\n fanout: medianFanout,\n source: 'stat4',\n confidence: 'high',\n };\n } catch {\n // stat4 table may not exist or query may fail\n return undefined;\n }\n }\n\n /**\n * Gets fanout from sqlite_stat1 average.\n *\n * Note: This includes NULL rows in the calculation and may overestimate\n * fanout for sparse foreign keys.\n *\n * For compound indexes, uses the stat value at the appropriate depth.\n *\n * @param columns Array of column names to get fanout for\n * @returns Fanout result or undefined if stat1 unavailable\n */\n #getFanoutFromStat1(\n tableName: string,\n columns: string[],\n ): FanoutResult | undefined {\n try {\n // Find index containing the columns as a prefix\n const indexInfo = this.#findIndexForColumns(tableName, columns);\n if (!indexInfo) {\n return undefined;\n }\n\n // Query stat1 for this index (using prepared statement)\n const result = this.#stat1Stmt.get(tableName, indexInfo.indexName) as\n | {stat: string}\n | undefined;\n\n if (!result) {\n return undefined;\n }\n\n const parts = result.stat.split(' ');\n // Check if we have enough parts for the requested depth\n if (parts.length < indexInfo.depth + 1) {\n return undefined;\n }\n\n const fanout = parseInt(parts[indexInfo.depth], 10);\n if (isNaN(fanout)) {\n return undefined;\n }\n\n return {\n fanout,\n source: 'stat1',\n confidence: 'med',\n };\n } catch {\n return undefined;\n }\n }\n\n /**\n * Finds an index that can be used to get statistics for column(s).\n *\n * Uses pragma_index_list and pragma_index_info to reliably get index\n * column names, avoiding brittle SQL parsing. Includes all indices:\n * user-created (CREATE INDEX), PRIMARY KEY, and UNIQUE constraints.\n *\n * Uses flexible matching: Finds indexes where ALL columns appear in the\n * first N positions, regardless of order. This works because SQLite statistics\n * at depth N represent the fanout for the combination of the first N columns,\n * and combinations are order-independent.\n *\n * Example:\n * - columns: ['customerId', 'storeId']\n * - Matches: (customerId, storeId, date) at depth 2 ✅\n * - Matches: (storeId, customerId, date) at depth 2 ✅ (flexible order)\n * - Does NOT match: (date, customerId, storeId) ❌ (columns not in first 2 positions)\n * - Does NOT match: (customerId, date, storeId) ❌ (storeId not in first 2 positions)\n *\n * @param columns Array of column names (order-independent for matching)\n * @returns Index info with name and depth, or undefined if no match\n */\n #findIndexForColumns(\n tableName: string,\n columns: string[],\n ): {indexName: string; depth: number} | undefined {\n try {\n // Query returns all columns for all indexes (including PK/UNIQUE) in order\n const rows = this.#indexStmt.all(tableName) as {\n index_name: string;\n seqno: number;\n column_name: string;\n }[];\n\n // Group by index name\n const indexMap = new Map<string, string[]>();\n for (const row of rows) {\n const cols = indexMap.get(row.index_name) ?? [];\n cols.push(row.column_name);\n indexMap.set(row.index_name, cols);\n }\n\n // Check each index for prefix match\n for (const [indexName, indexColumns] of indexMap) {\n if (this.#isPrefixMatch(columns, indexColumns)) {\n return {\n indexName,\n depth: columns.length,\n };\n }\n }\n\n return undefined;\n } catch {\n return undefined;\n }\n }\n\n /**\n * Checks if all queryColumns exist in the first N positions of indexColumns,\n * regardless of order.\n *\n * This allows flexible matching: constraint {a, b} matches both index (a, b, c)\n * and index (b, a, c) at depth 2, since both represent the fanout for the\n * combination of columns a and b.\n *\n * Gaps are NOT allowed: constraint {a, c} does NOT match index (a, b, c)\n * because no depth represents just (a, c) without b. Statistics are cumulative\n * from position 0.\n *\n * @param queryColumns Columns we're looking for (from constraint)\n * @param indexColumns Columns in the index (in order)\n * @returns true if all queryColumns exist in indexColumns[0...queryColumns.length-1]\n */\n #isPrefixMatch(queryColumns: string[], indexColumns: string[]): boolean {\n if (queryColumns.length > indexColumns.length) {\n return false;\n }\n\n // Get the prefix of the index that we're checking against\n const indexPrefix = indexColumns.slice(0, queryColumns.length);\n\n // Normalize to lowercase for case-insensitive comparison\n const indexPrefixLower = new Set(indexPrefix.map(col => col.toLowerCase()));\n const queryColumnsLower = queryColumns.map(col => col.toLowerCase());\n\n // Check if ALL query columns exist in the index prefix\n return queryColumnsLower.every(queryCol => indexPrefixLower.has(queryCol));\n }\n\n /**\n * Decodes a sqlite_stat4 sample value to check if it's NULL.\n *\n * SQLite record format (simplified):\n * - Varint: header size\n * - Serial types for each column (one byte each typically)\n * - Actual data\n *\n * Serial type 0 = NULL\n * Serial type 1 = 8-bit int\n * Serial type 2 = 16-bit int\n * Serial type 3 = 24-bit int\n * etc.\n *\n * We only need to check the first column's serial type.\n *\n * @param sample Binary-encoded sample from stat4\n * @returns true if the sample value is NULL\n */\n #decodeSampleIsNull(sample: Buffer): boolean {\n if (sample.length === 0) {\n return true;\n }\n\n // Read header size (varint - simplified: assume single byte)\n const headerSize = sample[0];\n\n if (headerSize === 0 || headerSize >= sample.length) {\n return true;\n }\n\n // Read first serial type (at position 1)\n const serialType = sample[1];\n\n // Serial type 0 = NULL\n return serialType === 0;\n }\n}\n"],"mappings":"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"}
@@ -1,313 +0,0 @@
1
- import { assert, unreachable } from "../../shared/src/asserts.js";
2
- import { must } from "../../shared/src/must.js";
3
- import { makeComparator } from "../../zql/src/ivm/data.js";
4
- import { createPredicate, transformFilters } from "../../zql/src/builder/filter.js";
5
- import { assertOrderingIncludesPK } from "../../zql/src/query/complete-ordering.js";
6
- import { genPushAndWriteWithSplitEdit, generateWithOverlay, generateWithOverlayUnordered, generateWithStart } from "../../zql/src/ivm/memory-source.js";
7
- import { timeSampled } from "../../otel/src/maybe-time.js";
8
- import { compile, format, sql } from "./internal/sql.js";
9
- import { StatementCache } from "./internal/statement-cache.js";
10
- import { buildSelectQuery, toSQLiteType } from "./query-builder.js";
11
- import SQLite3Database from "@rocicorp/zero-sqlite3";
12
- //#region ../zqlite/src/table-source.ts
13
- var eventCount = 0;
14
- /**
15
- * A source that is backed by a SQLite table.
16
- *
17
- * Values are written to the backing table _after_ being vended by the source.
18
- *
19
- * This ordering of events is to ensure self joins function properly. That is,
20
- * we can't reveal a value to an output before it has been pushed to that output.
21
- *
22
- * The code is fairly straightforward except for:
23
- * 1. Dealing with a `fetch` that has a basis of `before`.
24
- * 2. Dealing with compound orders that have differing directions (a ASC, b DESC, c ASC)
25
- *
26
- * See comments in relevant functions for more details.
27
- */
28
- var TableSource = class {
29
- #dbCache = /* @__PURE__ */ new WeakMap();
30
- #connections = [];
31
- #table;
32
- #columns;
33
- #uniqueIndexes;
34
- #uniqueIndexColumns;
35
- #primaryKey;
36
- #logConfig;
37
- #lc;
38
- #shouldYield;
39
- #stmts;
40
- #overlay;
41
- #pushEpoch = 0;
42
- /**
43
- * @param shouldYield a function called after each row is read from the database,
44
- * which should return true if the source should yield the special 'yield' value
45
- * to yield control back to the caller at the end of the pipeline. Can
46
- * also throw an error to abort the pipeline processing.
47
- */
48
- constructor(logContext, logConfig, db, tableName, columns, primaryKey, shouldYield = () => false) {
49
- this.#lc = logContext;
50
- this.#logConfig = logConfig;
51
- this.#table = tableName;
52
- this.#columns = columns;
53
- this.#uniqueIndexes = getUniqueIndexes(db, tableName);
54
- this.#uniqueIndexColumns = Array.from(this.#uniqueIndexes.values(), (set) => [...set].toSorted());
55
- this.#primaryKey = primaryKey;
56
- this.#stmts = this.#getStatementsFor(db);
57
- this.#shouldYield = shouldYield;
58
- assert(this.#uniqueIndexes.has(JSON.stringify(primaryKey.toSorted())), `primary key ${primaryKey} does not have a UNIQUE index`);
59
- }
60
- get tableSchema() {
61
- return {
62
- name: this.#table,
63
- columns: this.#columns,
64
- primaryKey: this.#primaryKey
65
- };
66
- }
67
- /**
68
- * Sets the db (snapshot) to use, to facilitate the Snapshotter leapfrog
69
- * algorithm for concurrent traversal of historic timelines.
70
- */
71
- setDB(db) {
72
- this.#stmts = this.#getStatementsFor(db);
73
- }
74
- #getStatementsFor(db) {
75
- const cached = this.#dbCache.get(db);
76
- if (cached) return cached;
77
- const stmts = {
78
- cache: new StatementCache(db),
79
- insert: db.prepare(compile(sql`INSERT INTO ${sql.ident(this.#table)} (${sql.join(Object.keys(this.#columns).map((c) => sql.ident(c)), ", ")}) VALUES (${sql.__dangerous__rawValue(Array.from({ length: Object.keys(this.#columns).length }).fill("?").join(","))})`)),
80
- delete: db.prepare(compile(sql`DELETE FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map((k) => sql`${sql.ident(k)}=?`), " AND ")}`)),
81
- update: Object.keys(this.#columns).length > this.#primaryKey.length ? db.prepare(compile(sql`UPDATE ${sql.ident(this.#table)} SET ${sql.join(nonPrimaryKeys(this.#columns, this.#primaryKey).map((c) => sql`${sql.ident(c)}=?`), ",")} WHERE ${sql.join(this.#primaryKey.map((k) => sql`${sql.ident(k)}=?`), " AND ")}`)) : void 0,
82
- checkExists: db.prepare(compile(sql`SELECT 1 AS "exists" FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map((k) => sql`${sql.ident(k)}=?`), " AND ")} LIMIT 1`)),
83
- getExisting: db.prepare(compile(sql`SELECT * FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map((k) => sql`${sql.ident(k)}=?`), " AND ")}`))
84
- };
85
- this.#dbCache.set(db, stmts);
86
- return stmts;
87
- }
88
- get #allColumns() {
89
- return sql.join(Object.keys(this.#columns).map((c) => sql.ident(c)), sql`,`);
90
- }
91
- #getSchema(connection, unordered) {
92
- return {
93
- tableName: this.#table,
94
- columns: this.#columns,
95
- primaryKey: this.#primaryKey,
96
- uniqueIndexes: this.#uniqueIndexColumns,
97
- sort: unordered ? void 0 : connection.sort,
98
- relationships: {},
99
- isHidden: false,
100
- system: "client",
101
- compareRows: connection.compareRows
102
- };
103
- }
104
- connect(sort, filters, splitEditKeys, debug) {
105
- const transformedFilters = transformFilters(filters);
106
- const unordered = sort === void 0;
107
- const primaryKeySort = this.#primaryKey.map((k) => [k, "asc"]);
108
- const input = {
109
- getSchema: () => schema,
110
- fetch: (req) => this.#fetch(req, connection),
111
- setOutput: (output) => {
112
- connection.output = output;
113
- },
114
- destroy: () => {
115
- const idx = this.#connections.indexOf(connection);
116
- assert(idx !== -1, "Connection not found");
117
- this.#connections.splice(idx, 1);
118
- },
119
- fullyAppliedFilters: !transformedFilters.conditionsRemoved
120
- };
121
- const connection = {
122
- input,
123
- debug,
124
- output: void 0,
125
- sort,
126
- splitEditKeys,
127
- filters: transformedFilters.filters ? {
128
- condition: transformedFilters.filters,
129
- predicate: createPredicate(transformedFilters.filters)
130
- } : void 0,
131
- compareRows: sort ? makeComparator(sort) : makeComparator(primaryKeySort),
132
- lastPushedEpoch: 0
133
- };
134
- const schema = this.#getSchema(connection, unordered);
135
- if (!unordered) assertOrderingIncludesPK(sort, this.#primaryKey);
136
- this.#connections.push(connection);
137
- return input;
138
- }
139
- toSQLiteRow(row) {
140
- return Object.fromEntries(Object.entries(row).map(([key, value]) => [key, toSQLiteType(value, this.#columns[key].type)]));
141
- }
142
- *#fetch(req, connection) {
143
- const { sort, debug } = connection;
144
- const sqlAndBindings = format(this.#requestToSQL(req, connection.filters?.condition, sort));
145
- const cachedStatement = this.#stmts.cache.get(sqlAndBindings.text);
146
- cachedStatement.statement.safeIntegers(true);
147
- const rowIterator = cachedStatement.statement.iterate(...sqlAndBindings.values);
148
- try {
149
- debug?.initQuery(this.#table, sqlAndBindings.text);
150
- if (sort) {
151
- const comparator = makeComparator(sort, req.reverse);
152
- yield* generateWithStart(generateWithYields(generateWithOverlay(req.start?.row, this.#mapFromSQLiteTypes(this.#columns, rowIterator, sqlAndBindings.text, debug), req.constraint, this.#overlay, connection.lastPushedEpoch, comparator, connection.filters?.predicate, req.multiConstraints), this.#shouldYield), req.start, comparator);
153
- } else yield* generateWithYields(generateWithOverlayUnordered(this.#mapFromSQLiteTypes(this.#columns, rowIterator, sqlAndBindings.text, debug), req.constraint, this.#overlay, connection.lastPushedEpoch, this.#primaryKey, connection.filters?.predicate, req.multiConstraints), this.#shouldYield);
154
- } finally {
155
- rowIterator.return?.();
156
- if (debug) {
157
- let totalNvisit = 0;
158
- let i = 0;
159
- while (true) {
160
- const nvisit = cachedStatement.statement.scanStatus(i++, SQLite3Database.SQLITE_SCANSTAT_NVISIT, 1);
161
- if (nvisit === void 0) break;
162
- totalNvisit += Number(nvisit);
163
- }
164
- if (totalNvisit !== 0) debug.recordNVisit(this.#table, sqlAndBindings.text, totalNvisit);
165
- cachedStatement.statement.scanStatusReset();
166
- }
167
- this.#stmts.cache.return(cachedStatement);
168
- }
169
- }
170
- *#mapFromSQLiteTypes(valueTypes, rowIterator, query, debug) {
171
- let result;
172
- do {
173
- result = timeSampled(this.#lc, ++eventCount, this.#logConfig.ivmSampling, () => rowIterator.next(), this.#logConfig.slowRowThreshold, () => `table-source.next took too long for ${query}. Are you missing an index?`);
174
- if (result.done) break;
175
- const row = fromSQLiteTypes(valueTypes, result.value, this.#table);
176
- debug?.rowVended(this.#table, query, row);
177
- yield row;
178
- } while (!result.done);
179
- }
180
- *push(change) {
181
- for (const result of this.genPush(change)) if (result === "yield") yield result;
182
- }
183
- *genPush(change) {
184
- const exists = (row) => this.#stmts.checkExists.get(...toSQLiteTypes(this.#primaryKey, row, this.#columns))?.exists === 1;
185
- const setOverlay = (o) => this.#overlay = o;
186
- const writeChange = (c) => this.#writeChange(c);
187
- yield* genPushAndWriteWithSplitEdit(this.#connections, change, exists, setOverlay, writeChange, () => ++this.#pushEpoch);
188
- }
189
- #writeChange(change) {
190
- switch (change[0]) {
191
- case 0:
192
- this.#stmts.insert.run(...toSQLiteTypes(Object.keys(this.#columns), change[1], this.#columns));
193
- break;
194
- case 1:
195
- this.#stmts.delete.run(...toSQLiteTypes(this.#primaryKey, change[1], this.#columns));
196
- break;
197
- case 2:
198
- if (canUseUpdate(change[2], change[1], this.#columns, this.#primaryKey)) {
199
- const mergedRow = {
200
- ...change[2],
201
- ...change[1]
202
- };
203
- const params = [...nonPrimaryValues(this.#columns, this.#primaryKey, mergedRow), ...toSQLiteTypes(this.#primaryKey, mergedRow, this.#columns)];
204
- must(this.#stmts.update).run(params);
205
- } else {
206
- this.#stmts.delete.run(...toSQLiteTypes(this.#primaryKey, change[2], this.#columns));
207
- this.#stmts.insert.run(...toSQLiteTypes(Object.keys(this.#columns), change[1], this.#columns));
208
- }
209
- break;
210
- default: unreachable(change);
211
- }
212
- }
213
- #getRowStmtCache = /* @__PURE__ */ new Map();
214
- #getRowStmt(keyCols) {
215
- const keyString = JSON.stringify(keyCols);
216
- let stmt = this.#getRowStmtCache.get(keyString);
217
- if (!stmt) {
218
- stmt = compile(sql`SELECT ${this.#allColumns} FROM ${sql.ident(this.#table)} WHERE ${sql.join(keyCols.map((k) => sql`${sql.ident(k)}=?`), sql` AND`)}`);
219
- this.#getRowStmtCache.set(keyString, stmt);
220
- }
221
- return stmt;
222
- }
223
- /**
224
- * Retrieves a row from the backing DB by a unique key, or `undefined` if such a
225
- * row does not exist. This is not used in the IVM pipeline but is useful
226
- * for retrieving data that is consistent with the state (and type
227
- * semantics) of the pipeline. Note that this key may not necessarily correspond
228
- * to the `primaryKey` with which this TableSource.
229
- */
230
- getRow(rowKey) {
231
- const keyCols = Object.keys(rowKey);
232
- const stmt = this.#getRowStmt(keyCols);
233
- const row = this.#stmts.cache.use(stmt, (cached) => cached.statement.safeIntegers(true).get(...toSQLiteTypes(keyCols, rowKey, this.#columns)));
234
- if (row) return fromSQLiteTypes(this.#columns, row, this.#table);
235
- return row;
236
- }
237
- #requestToSQL(request, filters, order) {
238
- return buildSelectQuery(this.#table, this.#columns, request.constraint, filters, order, request.reverse, request.start, request.multiConstraints);
239
- }
240
- };
241
- function getUniqueIndexes(db, tableName) {
242
- const sqlAndBindings = format(sql`
243
- SELECT idx.name, json_group_array(col.name) as columnsJSON
244
- FROM sqlite_master as idx
245
- JOIN pragma_index_list(idx.tbl_name) AS info ON info.name = idx.name
246
- JOIN pragma_index_info(idx.name) as col
247
- WHERE idx.tbl_name = ${tableName} AND
248
- idx.type = 'index' AND
249
- info."unique" != 0
250
- GROUP BY idx.name
251
- ORDER BY idx.name`);
252
- const indexes = db.prepare(sqlAndBindings.text).all(...sqlAndBindings.values);
253
- return new Map(indexes.map(({ columnsJSON }) => {
254
- const columns = JSON.parse(columnsJSON);
255
- const set = new Set(columns);
256
- return [JSON.stringify(columns.sort()), set];
257
- }));
258
- }
259
- function toSQLiteTypes(columns, row, columnTypes) {
260
- return columns.map((col) => toSQLiteType(row[col], columnTypes[col].type));
261
- }
262
- function fromSQLiteTypes(valueTypes, row, tableName) {
263
- const newRow = {};
264
- for (const key of Object.keys(row)) {
265
- const valueType = valueTypes[key];
266
- if (valueType === void 0) {
267
- const columnList = Object.keys(valueTypes).sort().join(", ");
268
- throw new Error(`Invalid column "${key}" for table "${tableName}". Synced columns include ${columnList}`);
269
- }
270
- newRow[key] = fromSQLiteType(valueType.type, row[key], key, tableName);
271
- }
272
- return newRow;
273
- }
274
- function fromSQLiteType(valueType, v, column, tableName) {
275
- if (v === null) return null;
276
- switch (valueType) {
277
- case "boolean": return !!v;
278
- case "number":
279
- case "string":
280
- case "null":
281
- if (typeof v === "bigint") {
282
- if (v > Number.MAX_SAFE_INTEGER || v < Number.MIN_SAFE_INTEGER) throw new UnsupportedValueError(`value ${v} (in ${tableName}.${column}) is outside of supported bounds`);
283
- return Number(v);
284
- }
285
- return v;
286
- case "json": try {
287
- return JSON.parse(v);
288
- } catch (error) {
289
- throw new UnsupportedValueError(`Failed to parse JSON for ${tableName}.${column}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
290
- }
291
- }
292
- }
293
- var UnsupportedValueError = class extends Error {};
294
- function canUseUpdate(oldRow, row, columns, primaryKey) {
295
- for (const pk of primaryKey) if (oldRow[pk] !== row[pk]) return false;
296
- return Object.keys(columns).length > primaryKey.length;
297
- }
298
- function nonPrimaryValues(columns, primaryKey, row) {
299
- return nonPrimaryKeys(columns, primaryKey).map((c) => toSQLiteType(row[c], columns[c].type));
300
- }
301
- function nonPrimaryKeys(columns, primaryKey) {
302
- return Object.keys(columns).filter((c) => !primaryKey.includes(c));
303
- }
304
- function* generateWithYields(stream, shouldYield) {
305
- for (const n of stream) {
306
- if (shouldYield()) yield "yield";
307
- yield n;
308
- }
309
- }
310
- //#endregion
311
- export { TableSource, fromSQLiteTypes };
312
-
313
- //# sourceMappingURL=table-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-source.js","names":["#dbCache","#connections","#table","#columns","#uniqueIndexes","#uniqueIndexColumns","#primaryKey","#logConfig","#lc","#shouldYield","#stmts","#getStatementsFor","#allColumns","#fetch","#getSchema","#requestToSQL","#mapFromSQLiteTypes","#overlay","#writeChange","#pushEpoch","#getRowStmtCache","#getRowStmt"],"sources":["../../../../zqlite/src/table-source.ts"],"sourcesContent":["import type {SQLQuery} from '@databases/sql';\nimport type {LogContext} from '@rocicorp/logger';\nimport SQLite3Database from '@rocicorp/zero-sqlite3';\nimport type {LogConfig} from '../../otel/src/log-options.ts';\nimport {timeSampled} from '../../otel/src/maybe-time.ts';\nimport {assert, unreachable} from '../../shared/src/asserts.ts';\nimport {must} from '../../shared/src/must.ts';\nimport type {Writable} from '../../shared/src/writable.ts';\nimport type {Condition, Ordering} from '../../zero-protocol/src/ast.ts';\nimport type {Row, Value} from '../../zero-protocol/src/data.ts';\nimport type {PrimaryKey} from '../../zero-protocol/src/primary-key.ts';\nimport type {\n SchemaValue,\n ValueType,\n} from '../../zero-schema/src/table-schema.ts';\nimport type {DebugDelegate} from '../../zql/src/builder/debug-delegate.ts';\nimport {\n createPredicate,\n transformFilters,\n} from '../../zql/src/builder/filter.ts';\nimport {ChangeType} from '../../zql/src/ivm/change-type.ts';\nimport {makeComparator, type Node} from '../../zql/src/ivm/data.ts';\nimport {\n generateWithOverlay,\n generateWithOverlayUnordered,\n generateWithStart,\n genPushAndWriteWithSplitEdit,\n type Connection,\n type Overlay,\n} from '../../zql/src/ivm/memory-source.ts';\nimport {type FetchRequest} from '../../zql/src/ivm/operator.ts';\nimport type {SourceSchema} from '../../zql/src/ivm/schema.ts';\nimport {SourceChangeIndex} from '../../zql/src/ivm/source-change-index.ts';\nimport {\n type Source,\n type SourceChange,\n type SourceInput,\n} from '../../zql/src/ivm/source.ts';\nimport type {Stream} from '../../zql/src/ivm/stream.ts';\nimport {assertOrderingIncludesPK} from '../../zql/src/query/complete-ordering.ts';\nimport type {Database, Statement} from './db.ts';\nimport {compile, format, sql} from './internal/sql.ts';\nimport {StatementCache} from './internal/statement-cache.ts';\nimport {\n buildSelectQuery,\n toSQLiteType,\n type NoSubqueryCondition,\n} from './query-builder.ts';\n\ntype Statements = {\n readonly cache: StatementCache;\n readonly insert: Statement;\n readonly delete: Statement;\n readonly update: Statement | undefined;\n readonly checkExists: Statement;\n readonly getExisting: Statement;\n};\n\nlet eventCount = 0;\n\n/**\n * A source that is backed by a SQLite table.\n *\n * Values are written to the backing table _after_ being vended by the source.\n *\n * This ordering of events is to ensure self joins function properly. That is,\n * we can't reveal a value to an output before it has been pushed to that output.\n *\n * The code is fairly straightforward except for:\n * 1. Dealing with a `fetch` that has a basis of `before`.\n * 2. Dealing with compound orders that have differing directions (a ASC, b DESC, c ASC)\n *\n * See comments in relevant functions for more details.\n */\nexport class TableSource implements Source {\n readonly #dbCache = new WeakMap<Database, Statements>();\n readonly #connections: Connection[] = [];\n readonly #table: string;\n readonly #columns: Record<string, SchemaValue>;\n // Maps sorted columns JSON string (e.g. '[\"a\",\"b\"]) to Set of columns.\n readonly #uniqueIndexes: Map<string, Set<string>>;\n readonly #uniqueIndexColumns: readonly PrimaryKey[];\n readonly #primaryKey: PrimaryKey;\n readonly #logConfig: LogConfig;\n readonly #lc: LogContext;\n readonly #shouldYield: () => boolean;\n #stmts: Statements;\n #overlay?: Overlay | undefined;\n #pushEpoch = 0;\n\n /**\n * @param shouldYield a function called after each row is read from the database,\n * which should return true if the source should yield the special 'yield' value\n * to yield control back to the caller at the end of the pipeline. Can\n * also throw an error to abort the pipeline processing.\n */\n constructor(\n logContext: LogContext,\n logConfig: LogConfig,\n db: Database,\n tableName: string,\n columns: Record<string, SchemaValue>,\n primaryKey: PrimaryKey,\n shouldYield = () => false,\n ) {\n this.#lc = logContext;\n this.#logConfig = logConfig;\n this.#table = tableName;\n this.#columns = columns;\n this.#uniqueIndexes = getUniqueIndexes(db, tableName);\n // `keyMatchesPrimaryKey` requires the compared key to be pre-sorted and\n // non-empty. A unique index always has >= 1 column, hence the cast.\n this.#uniqueIndexColumns = Array.from(\n this.#uniqueIndexes.values(),\n set => [...set].toSorted() as unknown as PrimaryKey,\n );\n this.#primaryKey = primaryKey;\n this.#stmts = this.#getStatementsFor(db);\n this.#shouldYield = shouldYield;\n\n assert(\n this.#uniqueIndexes.has(JSON.stringify(primaryKey.toSorted())),\n `primary key ${primaryKey} does not have a UNIQUE index`,\n );\n }\n\n get tableSchema() {\n return {\n name: this.#table,\n columns: this.#columns,\n primaryKey: this.#primaryKey,\n };\n }\n\n /**\n * Sets the db (snapshot) to use, to facilitate the Snapshotter leapfrog\n * algorithm for concurrent traversal of historic timelines.\n */\n setDB(db: Database) {\n this.#stmts = this.#getStatementsFor(db);\n }\n\n #getStatementsFor(db: Database) {\n const cached = this.#dbCache.get(db);\n if (cached) {\n return cached;\n }\n\n const stmts = {\n cache: new StatementCache(db),\n insert: db.prepare(\n compile(\n sql`INSERT INTO ${sql.ident(this.#table)} (${sql.join(\n Object.keys(this.#columns).map(c => sql.ident(c)),\n ', ',\n )}) VALUES (${sql.__dangerous__rawValue(\n Array.from({length: Object.keys(this.#columns).length})\n .fill('?')\n .join(','),\n )})`,\n ),\n ),\n delete: db.prepare(\n compile(\n sql`DELETE FROM ${sql.ident(this.#table)} WHERE ${sql.join(\n this.#primaryKey.map(k => sql`${sql.ident(k)}=?`),\n ' AND ',\n )}`,\n ),\n ),\n // If all the columns are part of the primary key, we cannot use UPDATE.\n update:\n Object.keys(this.#columns).length > this.#primaryKey.length\n ? db.prepare(\n compile(\n sql`UPDATE ${sql.ident(this.#table)} SET ${sql.join(\n nonPrimaryKeys(this.#columns, this.#primaryKey).map(\n c => sql`${sql.ident(c)}=?`,\n ),\n ',',\n )} WHERE ${sql.join(\n this.#primaryKey.map(k => sql`${sql.ident(k)}=?`),\n ' AND ',\n )}`,\n ),\n )\n : undefined,\n checkExists: db.prepare(\n compile(\n sql`SELECT 1 AS \"exists\" FROM ${sql.ident(\n this.#table,\n )} WHERE ${sql.join(\n this.#primaryKey.map(k => sql`${sql.ident(k)}=?`),\n ' AND ',\n )} LIMIT 1`,\n ),\n ),\n getExisting: db.prepare(\n compile(\n sql`SELECT * FROM ${sql.ident(this.#table)} WHERE ${sql.join(\n this.#primaryKey.map(k => sql`${sql.ident(k)}=?`),\n ' AND ',\n )}`,\n ),\n ),\n };\n this.#dbCache.set(db, stmts);\n return stmts;\n }\n\n get #allColumns() {\n return sql.join(\n Object.keys(this.#columns).map(c => sql.ident(c)),\n sql`,`,\n );\n }\n\n #getSchema(connection: Connection, unordered: boolean): SourceSchema {\n return {\n tableName: this.#table,\n columns: this.#columns,\n primaryKey: this.#primaryKey,\n uniqueIndexes: this.#uniqueIndexColumns,\n sort: unordered ? undefined : connection.sort,\n relationships: {},\n isHidden: false,\n system: 'client',\n compareRows: connection.compareRows,\n };\n }\n\n connect(\n sort: Ordering | undefined,\n filters?: Condition,\n splitEditKeys?: Set<string>,\n debug?: DebugDelegate,\n ) {\n const transformedFilters = transformFilters(filters);\n const unordered = sort === undefined;\n // PK comparator is used for source-level overlay matching (remove by PK\n // equality) even when no ordering is requested.\n const primaryKeySort: Ordering = this.#primaryKey.map(k => [k, 'asc']);\n\n const input: SourceInput = {\n getSchema: () => schema,\n fetch: req => this.#fetch(req, connection),\n setOutput: output => {\n connection.output = output;\n },\n destroy: () => {\n const idx = this.#connections.indexOf(connection);\n assert(idx !== -1, 'Connection not found');\n this.#connections.splice(idx, 1);\n },\n fullyAppliedFilters: !transformedFilters.conditionsRemoved,\n };\n\n const connection: Connection = {\n input,\n debug,\n output: undefined,\n sort,\n splitEditKeys,\n filters: transformedFilters.filters\n ? {\n condition: transformedFilters.filters,\n predicate: createPredicate(transformedFilters.filters),\n }\n : undefined,\n compareRows: sort ? makeComparator(sort) : makeComparator(primaryKeySort),\n lastPushedEpoch: 0,\n };\n const schema = this.#getSchema(connection, unordered);\n if (!unordered) {\n assertOrderingIncludesPK(sort, this.#primaryKey);\n }\n\n this.#connections.push(connection);\n return input;\n }\n\n toSQLiteRow(row: Row): Row {\n return Object.fromEntries(\n Object.entries(row).map(([key, value]) => [\n key,\n toSQLiteType(value, this.#columns[key].type),\n ]),\n ) as Row;\n }\n\n *#fetch(req: FetchRequest, connection: Connection): Stream<Node | 'yield'> {\n const {sort, debug} = connection;\n\n const query = this.#requestToSQL(req, connection.filters?.condition, sort);\n const sqlAndBindings = format(query);\n\n const cachedStatement = this.#stmts.cache.get(sqlAndBindings.text);\n cachedStatement.statement.safeIntegers(true);\n const rowIterator = cachedStatement.statement.iterate<Row>(\n ...sqlAndBindings.values,\n );\n try {\n debug?.initQuery(this.#table, sqlAndBindings.text);\n\n if (sort) {\n const comparator = makeComparator(sort, req.reverse);\n yield* generateWithStart(\n generateWithYields(\n generateWithOverlay(\n req.start?.row,\n this.#mapFromSQLiteTypes(\n this.#columns,\n rowIterator,\n sqlAndBindings.text,\n debug,\n ),\n req.constraint,\n this.#overlay,\n connection.lastPushedEpoch,\n comparator,\n connection.filters?.predicate,\n req.multiConstraints,\n ),\n this.#shouldYield,\n ),\n req.start,\n comparator,\n );\n } else {\n yield* generateWithYields(\n generateWithOverlayUnordered(\n this.#mapFromSQLiteTypes(\n this.#columns,\n rowIterator,\n sqlAndBindings.text,\n debug,\n ),\n req.constraint,\n this.#overlay,\n connection.lastPushedEpoch,\n this.#primaryKey,\n connection.filters?.predicate,\n req.multiConstraints,\n ),\n this.#shouldYield,\n );\n }\n } finally {\n // Ensure the SQLite iterate() is closed.\n rowIterator.return?.();\n if (debug) {\n let totalNvisit = 0;\n let i = 0;\n while (true) {\n const nvisit = cachedStatement.statement.scanStatus(\n i++,\n SQLite3Database.SQLITE_SCANSTAT_NVISIT,\n 1,\n );\n if (nvisit === undefined) {\n break;\n }\n totalNvisit += Number(nvisit);\n }\n if (totalNvisit !== 0) {\n debug.recordNVisit(this.#table, sqlAndBindings.text, totalNvisit);\n }\n cachedStatement.statement.scanStatusReset();\n }\n this.#stmts.cache.return(cachedStatement);\n }\n }\n\n *#mapFromSQLiteTypes(\n valueTypes: Record<string, SchemaValue>,\n rowIterator: IterableIterator<Row>,\n query: string,\n debug: DebugDelegate | undefined,\n ): IterableIterator<Row> {\n let result;\n do {\n result = timeSampled(\n this.#lc,\n ++eventCount,\n this.#logConfig.ivmSampling,\n () => rowIterator.next(),\n this.#logConfig.slowRowThreshold,\n () =>\n `table-source.next took too long for ${query}. Are you missing an index?`,\n );\n if (result.done) {\n break;\n }\n const row = fromSQLiteTypes(valueTypes, result.value, this.#table);\n debug?.rowVended(this.#table, query, row);\n yield row;\n } while (!result.done);\n }\n\n *push(change: SourceChange): Stream<'yield'> {\n for (const result of this.genPush(change)) {\n if (result === 'yield') {\n yield result;\n }\n }\n }\n\n *genPush(change: SourceChange) {\n const exists = (row: Row) =>\n this.#stmts.checkExists.get<{exists: number} | undefined>(\n ...toSQLiteTypes(this.#primaryKey, row, this.#columns),\n )?.exists === 1;\n const setOverlay = (o: Overlay | undefined) => (this.#overlay = o);\n const writeChange = (c: SourceChange) => this.#writeChange(c);\n\n yield* genPushAndWriteWithSplitEdit(\n this.#connections,\n change,\n exists,\n setOverlay,\n writeChange,\n () => ++this.#pushEpoch,\n );\n }\n\n #writeChange(change: SourceChange) {\n switch (change[SourceChangeIndex.TYPE]) {\n case ChangeType.ADD:\n this.#stmts.insert.run(\n ...toSQLiteTypes(\n // TODO(arv): Compute this once!\n Object.keys(this.#columns),\n change[SourceChangeIndex.ROW],\n this.#columns,\n ),\n );\n break;\n case ChangeType.REMOVE:\n this.#stmts.delete.run(\n ...toSQLiteTypes(\n this.#primaryKey,\n change[SourceChangeIndex.ROW],\n this.#columns,\n ),\n );\n break;\n case ChangeType.EDIT: {\n // If the PK is the same, use UPDATE.\n if (\n canUseUpdate(\n change[SourceChangeIndex.OLD_ROW],\n change[SourceChangeIndex.ROW],\n this.#columns,\n this.#primaryKey,\n )\n ) {\n const mergedRow = {\n ...change[SourceChangeIndex.OLD_ROW],\n ...change[SourceChangeIndex.ROW],\n };\n const params = [\n ...nonPrimaryValues(this.#columns, this.#primaryKey, mergedRow),\n ...toSQLiteTypes(this.#primaryKey, mergedRow, this.#columns),\n ];\n must(this.#stmts.update).run(params);\n } else {\n this.#stmts.delete.run(\n ...toSQLiteTypes(\n this.#primaryKey,\n change[SourceChangeIndex.OLD_ROW],\n this.#columns,\n ),\n );\n this.#stmts.insert.run(\n ...toSQLiteTypes(\n Object.keys(this.#columns),\n change[SourceChangeIndex.ROW],\n this.#columns,\n ),\n );\n }\n\n break;\n }\n default:\n unreachable(change);\n }\n }\n\n #getRowStmtCache = new Map<string, string>();\n\n #getRowStmt(keyCols: string[]): string {\n const keyString = JSON.stringify(keyCols);\n let stmt = this.#getRowStmtCache.get(keyString);\n if (!stmt) {\n stmt = compile(\n sql`SELECT ${this.#allColumns} FROM ${sql.ident(\n this.#table,\n )} WHERE ${sql.join(\n keyCols.map(k => sql`${sql.ident(k)}=?`),\n sql` AND`,\n )}`,\n );\n this.#getRowStmtCache.set(keyString, stmt);\n }\n return stmt;\n }\n\n /**\n * Retrieves a row from the backing DB by a unique key, or `undefined` if such a\n * row does not exist. This is not used in the IVM pipeline but is useful\n * for retrieving data that is consistent with the state (and type\n * semantics) of the pipeline. Note that this key may not necessarily correspond\n * to the `primaryKey` with which this TableSource.\n */\n getRow(rowKey: Row): Row | undefined {\n const keyCols = Object.keys(rowKey);\n\n const stmt = this.#getRowStmt(keyCols);\n const row = this.#stmts.cache.use(stmt, cached =>\n cached.statement\n .safeIntegers(true)\n .get<Row>(...toSQLiteTypes(keyCols, rowKey, this.#columns)),\n );\n if (row) {\n return fromSQLiteTypes(this.#columns, row, this.#table);\n }\n return row;\n }\n\n #requestToSQL(\n request: FetchRequest,\n filters: NoSubqueryCondition | undefined,\n order: Ordering | undefined,\n ): SQLQuery {\n return buildSelectQuery(\n this.#table,\n this.#columns,\n request.constraint,\n filters,\n order,\n request.reverse,\n request.start,\n request.multiConstraints,\n );\n }\n}\n\nfunction getUniqueIndexes(\n db: Database,\n tableName: string,\n): Map<string, Set<string>> {\n const sqlAndBindings = format(\n sql`\n SELECT idx.name, json_group_array(col.name) as columnsJSON\n FROM sqlite_master as idx\n JOIN pragma_index_list(idx.tbl_name) AS info ON info.name = idx.name\n JOIN pragma_index_info(idx.name) as col\n WHERE idx.tbl_name = ${tableName} AND\n idx.type = 'index' AND \n info.\"unique\" != 0\n GROUP BY idx.name\n ORDER BY idx.name`,\n );\n const stmt = db.prepare(sqlAndBindings.text);\n const indexes = stmt.all<{columnsJSON: string}>(...sqlAndBindings.values);\n return new Map(\n indexes.map(({columnsJSON}) => {\n const columns = JSON.parse(columnsJSON);\n const set = new Set<string>(columns);\n return [JSON.stringify(columns.sort()), set];\n }),\n );\n}\n\nexport function toSQLiteTypes(\n columns: readonly string[],\n row: Row,\n columnTypes: Record<string, SchemaValue>,\n): readonly unknown[] {\n return columns.map(col => toSQLiteType(row[col], columnTypes[col].type));\n}\n\nexport function toSQLiteTypeName(type: ValueType) {\n switch (type) {\n case 'boolean':\n return 'INTEGER';\n case 'number':\n return 'REAL';\n case 'string':\n return 'TEXT';\n case 'null':\n return 'NULL';\n case 'json':\n return 'TEXT';\n }\n}\n\nexport function fromSQLiteTypes(\n valueTypes: Record<string, SchemaValue>,\n row: Row,\n tableName: string,\n): Row {\n const newRow: Writable<Row> = {};\n for (const key of Object.keys(row)) {\n const valueType = valueTypes[key];\n if (valueType === undefined) {\n const columnList = Object.keys(valueTypes).sort().join(', ');\n throw new Error(\n `Invalid column \"${key}\" for table \"${tableName}\". Synced columns include ${columnList}`,\n );\n }\n newRow[key] = fromSQLiteType(valueType.type, row[key], key, tableName);\n }\n return newRow;\n}\n\nfunction fromSQLiteType(\n valueType: ValueType,\n v: Value,\n column: string,\n tableName: string,\n): Value {\n if (v === null) {\n return null;\n }\n switch (valueType) {\n case 'boolean':\n return !!v;\n case 'number':\n case 'string':\n case 'null':\n if (typeof v === 'bigint') {\n if (v > Number.MAX_SAFE_INTEGER || v < Number.MIN_SAFE_INTEGER) {\n throw new UnsupportedValueError(\n `value ${v} (in ${tableName}.${column}) is outside of supported bounds`,\n );\n }\n return Number(v);\n }\n return v;\n case 'json':\n try {\n return JSON.parse(v as string);\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n throw new UnsupportedValueError(\n `Failed to parse JSON for ${tableName}.${column}: ${errorMessage}`,\n {cause: error},\n );\n }\n }\n}\n\nexport class UnsupportedValueError extends Error {}\n\nfunction canUseUpdate(\n oldRow: Row,\n row: Row,\n columns: Record<string, SchemaValue>,\n primaryKey: PrimaryKey,\n): boolean {\n for (const pk of primaryKey) {\n if (oldRow[pk] !== row[pk]) {\n return false;\n }\n }\n return Object.keys(columns).length > primaryKey.length;\n}\n\nfunction nonPrimaryValues(\n columns: Record<string, SchemaValue>,\n primaryKey: PrimaryKey,\n row: Row,\n): Iterable<unknown> {\n return nonPrimaryKeys(columns, primaryKey).map(c =>\n toSQLiteType(row[c], columns[c].type),\n );\n}\n\nfunction nonPrimaryKeys(\n columns: Record<string, SchemaValue>,\n primaryKey: PrimaryKey,\n) {\n return Object.keys(columns).filter(c => !primaryKey.includes(c));\n}\n\nfunction* generateWithYields(stream: Stream<Node>, shouldYield: () => boolean) {\n for (const n of stream) {\n if (shouldYield()) {\n yield 'yield';\n }\n yield n;\n }\n}\n"],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes