@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.js","names":[],"sources":["../../../../../../replicache/src/db/commit.ts"],"sourcesContent":["import {\n assert,\n assertArray,\n assertBoolean,\n assertNumber,\n assertObject,\n assertString,\n unreachable,\n} from '../../../shared/src/asserts.ts';\nimport {assertJSONValue} from '../../../shared/src/json.ts';\nimport {skipCommitDataAsserts} from '../config.ts';\nimport {type FrozenCookie, compareCookies} from '../cookies.ts';\nimport {type Chunk, type CreateChunk, type Refs, toRefs} from '../dag/chunk.ts';\nimport {type MustGetChunk, type Read, mustGetHeadHash} from '../dag/store.ts';\nimport {\n type FrozenJSONValue,\n type FrozenTag,\n assertDeepFrozen,\n deepFreeze,\n} from '../frozen-json.ts';\nimport {type Hash, assertHash} from '../hash.ts';\nimport type {IndexDefinition} from '../index-defs.ts';\nimport type {ClientID} from '../sync/ids.ts';\nimport * as MetaType from './meta-type-enum.ts';\n\nexport const DEFAULT_HEAD_NAME = 'main';\n\nexport function commitIsLocalDD31(\n commit: Commit<Meta>,\n): commit is Commit<LocalMetaDD31> {\n return isLocalMetaDD31(commit.meta);\n}\n\nexport function commitIsLocal(\n commit: Commit<Meta>,\n): commit is Commit<LocalMetaDD31> {\n return commitIsLocalDD31(commit);\n}\n\nexport function commitIsSnapshot(\n commit: Commit<Meta>,\n): commit is Commit<SnapshotMetaDD31> {\n return isSnapshotMetaDD31(commit.meta);\n}\n\nexport class Commit<M extends Meta> {\n readonly chunk: Chunk<CommitData<M>>;\n\n constructor(chunk: Chunk<CommitData<M>>) {\n this.chunk = chunk;\n }\n\n get meta(): M {\n return this.chunk.data.meta;\n }\n\n get valueHash(): Hash {\n // Already validated!\n return this.chunk.data.valueHash;\n }\n\n getMutationID(clientID: ClientID, dagRead: MustGetChunk): Promise<number> {\n return getMutationID(clientID, dagRead, this.meta);\n }\n\n async getNextMutationID(\n clientID: ClientID,\n dagRead: MustGetChunk,\n ): Promise<number> {\n return (await this.getMutationID(clientID, dagRead)) + 1;\n }\n\n get indexes(): readonly IndexRecord[] {\n // Already validated!\n return this.chunk.data.indexes;\n }\n}\n\nexport async function getMutationID(\n clientID: ClientID,\n dagRead: MustGetChunk,\n meta: Meta,\n): Promise<number> {\n switch (meta.type) {\n case MetaType.SnapshotDD31:\n return meta.lastMutationIDs[clientID] ?? 0;\n\n case MetaType.LocalDD31: {\n if (meta.clientID === clientID) {\n return meta.mutationID;\n }\n const {basisHash} = meta;\n const basisCommit = await commitFromHash(basisHash, dagRead);\n return getMutationID(clientID, dagRead, basisCommit.meta);\n }\n\n default:\n unreachable(meta);\n }\n}\n\n/**\n * Returns the set of local commits from the given `fromCommitHash` back to but not\n * including its base snapshot. If `fromCommitHash` is a snapshot, the returned vector\n * will be empty. When, as typical, `fromCommitHash` is the head of the default chain\n * then the returned commits are the set of pending commits, ie the set of local commits\n * that have not yet been pushed to the data layer.\n *\n * The vector of commits is returned in reverse chain order, that is, starting\n * with the commit with hash `fromCommitHash` and walking backwards.\n */\nexport async function localMutations(\n fromCommitHash: Hash,\n dagRead: Read,\n): Promise<Commit<LocalMetaDD31>[]> {\n const commits = await commitChain(fromCommitHash, dagRead);\n // Filter does not deal with type narrowing.\n return commits.filter(c => commitIsLocal(c)) as Commit<LocalMetaDD31>[];\n}\n\nexport async function localMutationsDD31(\n fromCommitHash: Hash,\n dagRead: Read,\n): Promise<Commit<LocalMetaDD31>[]> {\n const commits = await commitChain(fromCommitHash, dagRead);\n // Filter does not deal with type narrowing.\n return commits.filter(c => commitIsLocalDD31(c)) as Commit<LocalMetaDD31>[];\n}\n\nexport async function localMutationsGreaterThan(\n commit: Commit<Meta>,\n mutationIDLimits: Record<ClientID, number>,\n dagRead: Read,\n): Promise<Commit<LocalMetaDD31>[]> {\n const commits: Commit<LocalMetaDD31>[] = [];\n const remainingMutationIDLimits = new Map(Object.entries(mutationIDLimits));\n while (!commitIsSnapshot(commit) && remainingMutationIDLimits.size > 0) {\n if (commitIsLocalDD31(commit)) {\n const {meta} = commit;\n const mutationIDLowerLimit = remainingMutationIDLimits.get(meta.clientID);\n if (mutationIDLowerLimit !== undefined) {\n if (meta.mutationID <= mutationIDLowerLimit) {\n remainingMutationIDLimits.delete(meta.clientID);\n } else {\n commits.push(commit as Commit<LocalMetaDD31>);\n }\n }\n }\n const {basisHash} = commit.meta;\n if (basisHash === null) {\n throw new Error(`Commit ${commit.chunk.hash} has no basis`);\n }\n commit = await commitFromHash(basisHash, dagRead);\n }\n return commits;\n}\n\nexport async function baseSnapshotFromHead(\n name: string,\n dagRead: Read,\n): Promise<Commit<SnapshotMetaDD31>> {\n const hash = await dagRead.getHead(name);\n assert(hash, `Missing head ${name}`);\n return baseSnapshotFromHash(hash, dagRead);\n}\n\nexport async function baseSnapshotHashFromHash(\n hash: Hash,\n dagRead: Read,\n): Promise<Hash> {\n return (await baseSnapshotFromHash(hash, dagRead)).chunk.hash;\n}\n\nexport async function baseSnapshotFromHash(\n hash: Hash,\n dagRead: Read,\n): Promise<Commit<SnapshotMetaDD31>> {\n const commit = await commitFromHash(hash, dagRead);\n return baseSnapshotFromCommit(commit, dagRead);\n}\n\nexport async function baseSnapshotFromCommit(\n commit: Commit<Meta>,\n dagRead: Read,\n): Promise<Commit<SnapshotMetaDD31>> {\n while (!commitIsSnapshot(commit)) {\n const {meta} = commit;\n if (isLocalMetaDD31(meta)) {\n commit = await commitFromHash(meta.baseSnapshotHash, dagRead);\n } else {\n const {basisHash} = meta;\n if (basisHash === null) {\n throw new Error(`Commit ${commit.chunk.hash} has no basis`);\n }\n commit = await commitFromHash(basisHash, dagRead);\n }\n }\n return commit;\n}\n\nexport function snapshotMetaParts(\n c: Commit<SnapshotMetaDD31>,\n clientID: ClientID,\n): [lastMutationID: number, cookie: FrozenCookie | FrozenJSONValue] {\n const m = c.meta;\n const lmid = m.lastMutationIDs[clientID] ?? 0;\n return [lmid, m.cookieJSON];\n}\n\nexport function compareCookiesForSnapshots(\n a: Commit<SnapshotMetaDD31>,\n b: Commit<SnapshotMetaDD31>,\n): number {\n return compareCookies(a.meta.cookieJSON, b.meta.cookieJSON);\n}\n\n/**\n * Returns all commits from the commit with fromCommitHash to its base snapshot,\n * inclusive of both. Resulting vector is in chain-head-first order (so snapshot\n * comes last).\n */\nexport async function commitChain(\n fromCommitHash: Hash,\n dagRead: Read,\n): Promise<Commit<Meta>[]> {\n let commit = await commitFromHash(fromCommitHash, dagRead);\n const commits = [];\n while (!commitIsSnapshot(commit)) {\n const {meta} = commit;\n const {basisHash} = meta;\n if (basisHash === null) {\n throw new Error(`Commit ${commit.chunk.hash} has no basis`);\n }\n commits.push(commit);\n commit = await commitFromHash(basisHash, dagRead);\n }\n commits.push(commit);\n return commits;\n}\n\nexport async function commitFromHash(\n hash: Hash,\n dagRead: MustGetChunk,\n): Promise<Commit<Meta>> {\n const chunk = await dagRead.mustGetChunk(hash);\n return fromChunk(chunk);\n}\n\nexport async function commitFromHead(\n name: string,\n dagRead: Read,\n): Promise<Commit<Meta>> {\n const hash = await mustGetHeadHash(name, dagRead);\n return commitFromHash(hash, dagRead);\n}\n\nexport type LocalMetaDD31 = {\n readonly type: MetaType.LocalDD31;\n readonly basisHash: Hash;\n readonly mutationID: number;\n readonly mutatorName: string;\n readonly mutatorArgsJSON: FrozenJSONValue;\n readonly originalHash: Hash | null;\n readonly timestamp: number;\n readonly clientID: ClientID;\n readonly baseSnapshotHash: Hash;\n};\n\nexport type LocalMeta = LocalMetaDD31;\n\nexport function assertLocalMetaDD31(\n v: Record<string, unknown>,\n): asserts v is LocalMetaDD31 {\n // type already asserted\n assertString(v.clientID);\n assertNumber(v.mutationID);\n assertString(v.mutatorName);\n if (!v.mutatorName) {\n throw new Error('Missing mutator name');\n }\n assertJSONValue(v.mutatorArgsJSON);\n if (v.originalHash !== null) {\n assertHash(v.originalHash);\n }\n assertNumber(v.timestamp);\n}\n\nexport function isLocalMetaDD31(meta: Meta): meta is LocalMetaDD31 {\n return meta.type === MetaType.LocalDD31;\n}\n\nexport function assertLocalCommitDD31(\n c: Commit<Meta>,\n): asserts c is Commit<LocalMetaDD31> {\n assertLocalMetaDD31(c.meta);\n}\n\nexport type SnapshotMetaDD31 = {\n readonly type: MetaType.SnapshotDD31;\n readonly basisHash: Hash | null;\n readonly lastMutationIDs: Record<ClientID, number>;\n readonly cookieJSON: FrozenCookie;\n};\n\nexport type SnapshotMeta = SnapshotMetaDD31;\n\nexport function assertSnapshotMetaDD31(\n v: Record<string, unknown>,\n): asserts v is SnapshotMetaDD31 {\n // type already asserted\n if (v.basisHash !== null) {\n assertHash(v.basisHash);\n }\n assertJSONValue(v.cookieJSON);\n assertLastMutationIDs(v.lastMutationIDs);\n}\n\nfunction assertLastMutationIDs(\n v: unknown,\n): asserts v is Record<ClientID, number> {\n assertObject(v);\n for (const e of Object.values(v)) {\n assertNumber(e);\n }\n}\n\nexport type Meta = LocalMetaDD31 | SnapshotMetaDD31;\n\nexport function assertSnapshotCommitDD31(\n c: Commit<Meta>,\n): asserts c is Commit<SnapshotMetaDD31> {\n assertSnapshotMetaDD31(c.meta);\n}\n\nfunction isSnapshotMetaDD31(meta: Meta): meta is SnapshotMetaDD31 {\n return meta.type === MetaType.SnapshotDD31;\n}\n\nfunction assertMeta(v: unknown): asserts v is Meta {\n assertObject(v);\n assertDeepFrozen(v);\n if (v.basisHash !== null) {\n assertString(v.basisHash);\n }\n\n assertNumber(v.type);\n switch (v.type) {\n case MetaType.LocalDD31:\n assertLocalMetaDD31(v);\n break;\n case MetaType.SnapshotDD31:\n assertSnapshotMetaDD31(v);\n break;\n default:\n throw new Error(`Invalid enum value ${v.type}`);\n }\n}\n\n/**\n * This is the type used for index definitions as defined in the Commit chunk data.\n *\n * Changing this requires a REPLICACHE_FORMAT_VERSION bump.\n */\nexport type ChunkIndexDefinition = {\n readonly name: string;\n readonly keyPrefix: string;\n readonly jsonPointer: string;\n // Used to not exist\n readonly allowEmpty?: boolean;\n};\n\nexport function chunkIndexDefinitionEqualIgnoreName(\n a: ChunkIndexDefinition,\n b: ChunkIndexDefinition,\n): boolean {\n return (\n a.jsonPointer === b.jsonPointer &&\n (a.allowEmpty ?? false) === (b.allowEmpty ?? false) &&\n a.keyPrefix === b.keyPrefix\n );\n}\n\nfunction assertChunkIndexDefinition(\n v: unknown,\n): asserts v is ChunkIndexDefinition {\n assertObject(v);\n assertDeepFrozen(v);\n assertString(v.name);\n assertString(v.keyPrefix);\n assertString(v.jsonPointer);\n if (v.allowEmpty !== undefined) {\n assertBoolean(v.allowEmpty);\n }\n}\n\nexport function toChunkIndexDefinition(\n name: string,\n indexDefinition: IndexDefinition,\n): Required<ChunkIndexDefinition> {\n return {\n name,\n keyPrefix: indexDefinition.prefix ?? '',\n jsonPointer: indexDefinition.jsonPointer,\n allowEmpty: indexDefinition.allowEmpty ?? false,\n };\n}\n\nexport type IndexRecord = {\n readonly definition: ChunkIndexDefinition;\n readonly valueHash: Hash;\n};\n\nfunction assertIndexRecord(v: unknown): asserts v is IndexRecord {\n assertObject(v);\n assertDeepFrozen(v);\n assertChunkIndexDefinition(v.definition);\n assertString(v.valueHash);\n}\n\nfunction assertIndexRecords(v: unknown): asserts v is IndexRecord[] {\n assertArray(v);\n assertDeepFrozen(v);\n for (const ir of v) {\n assertIndexRecord(ir);\n }\n}\n\nexport function newLocalDD31(\n createChunk: CreateChunk,\n basisHash: Hash,\n baseSnapshotHash: Hash,\n mutationID: number,\n mutatorName: string,\n mutatorArgsJSON: FrozenJSONValue,\n originalHash: Hash | null,\n valueHash: Hash,\n indexes: readonly IndexRecord[],\n timestamp: number,\n clientID: ClientID,\n): Commit<LocalMetaDD31> {\n const meta: LocalMetaDD31 = {\n type: MetaType.LocalDD31,\n basisHash,\n baseSnapshotHash,\n mutationID,\n mutatorName,\n mutatorArgsJSON,\n originalHash,\n timestamp,\n clientID,\n };\n return commitFromCommitData(\n createChunk,\n makeCommitData(meta, valueHash, indexes),\n );\n}\n\nexport function newSnapshotDD31(\n createChunk: CreateChunk,\n basisHash: Hash | null,\n lastMutationIDs: Record<ClientID, number>,\n cookieJSON: FrozenCookie,\n valueHash: Hash,\n indexes: readonly IndexRecord[],\n): Commit<SnapshotMetaDD31> {\n return commitFromCommitData(\n createChunk,\n newSnapshotCommitDataDD31(\n basisHash,\n lastMutationIDs,\n cookieJSON,\n valueHash,\n indexes,\n ),\n );\n}\n\nexport function newSnapshotCommitDataDD31(\n basisHash: Hash | null,\n lastMutationIDs: Record<ClientID, number>,\n cookieJSON: FrozenCookie,\n valueHash: Hash,\n indexes: readonly IndexRecord[],\n): CommitData<SnapshotMetaDD31> {\n const meta: SnapshotMetaDD31 = {\n type: MetaType.SnapshotDD31,\n basisHash,\n lastMutationIDs,\n cookieJSON,\n };\n return makeCommitData(meta, valueHash, indexes);\n}\n\nexport function fromChunk(chunk: Chunk): Commit<Meta> {\n validateChunk(chunk);\n return new Commit(chunk);\n}\n\nfunction commitFromCommitData<M extends Meta>(\n createChunk: CreateChunk,\n data: CommitData<M>,\n): Commit<M> {\n return new Commit(createChunk(data, getRefs(data)));\n}\n\nexport function getRefs(data: CommitData<Meta>): Refs {\n const refs: Set<Hash> = new Set();\n refs.add(data.valueHash);\n const {meta} = data;\n switch (meta.type) {\n case MetaType.LocalDD31:\n meta.basisHash && refs.add(meta.basisHash);\n // Local has weak originalHash\n break;\n case MetaType.SnapshotDD31:\n // Snapshot has weak basisHash\n break;\n default:\n unreachable(meta);\n }\n\n for (const index of data.indexes) {\n refs.add(index.valueHash);\n }\n\n return toRefs(refs);\n}\n\nexport type CommitData<M extends Meta> = FrozenTag<{\n readonly meta: M;\n readonly valueHash: Hash;\n readonly indexes: readonly IndexRecord[];\n}>;\n\nexport function makeCommitData<M extends Meta>(\n meta: M,\n valueHash: Hash,\n indexes: readonly IndexRecord[],\n): CommitData<M> {\n return deepFreeze({\n meta,\n valueHash,\n indexes,\n }) as unknown as CommitData<M>;\n}\n\nexport function assertCommitData(v: unknown): asserts v is CommitData<Meta> {\n if (skipCommitDataAsserts) {\n return;\n }\n\n assertObject(v);\n assertDeepFrozen(v);\n assertMeta(v.meta);\n assertString(v.valueHash);\n assertIndexRecords(v.indexes);\n}\n\nfunction validateChunk(chunk: Chunk): asserts chunk is Chunk<CommitData<Meta>> {\n const {data} = chunk;\n assertCommitData(data);\n\n const seen = new Set();\n for (const index of data.indexes) {\n const {name} = index.definition;\n if (seen.has(name)) {\n throw new Error(`Duplicate index ${name}`);\n }\n seen.add(name);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../replicache/src/db/index.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport type {Enum} from '../../../shared/src/enum.ts';\nimport type {BTreeRead} from '../btree/read.ts';\nimport type {BTreeWrite} from '../btree/write.ts';\nimport type {FrozenJSONObject, FrozenJSONValue} from '../frozen-json.ts';\nimport type {Hash} from '../hash.ts';\nimport type {IndexRecord} from './commit.ts';\nimport * as IndexOperation from './index-operation-enum.ts';\n\ntype IndexOperation = Enum<typeof IndexOperation>;\n\nexport class IndexRead<BTree = BTreeRead> {\n readonly meta: IndexRecord;\n readonly map: BTree;\n\n constructor(meta: IndexRecord, map: BTree) {\n this.meta = meta;\n this.map = map;\n }\n}\n\nexport class IndexWrite extends IndexRead<BTreeWrite> {\n // Note: does not update self.meta.valueHash (doesn't need to at this point as flush\n // is only called during commit.)\n flush(): Promise<Hash> {\n return this.map.flush();\n }\n\n clear(): Promise<void> {\n return this.map.clear();\n }\n}\n\n// Index or de-index a single primary entry.\nexport async function indexValue(\n lc: LogContext,\n index: BTreeWrite,\n op: IndexOperation,\n key: string,\n val: FrozenJSONValue,\n jsonPointer: string,\n allowEmpty: boolean,\n): Promise<void> {\n try {\n for (const entry of getIndexKeys(key, val, jsonPointer, allowEmpty)) {\n switch (op) {\n case IndexOperation.Add:\n await index.put(entry, val);\n break;\n case IndexOperation.Remove:\n await index.del(entry);\n break;\n }\n }\n } catch (e) {\n // Right now all the errors that index_value() returns are customers dev\n // problems: either the value is not json, the pointer is into nowhere, etc.\n // So we ignore them.\n lc.info?.('Not indexing value', val, ':', e);\n }\n}\n\n// Gets the set of index keys for a given primary key and value.\nexport function getIndexKeys(\n primary: string,\n value: FrozenJSONValue,\n jsonPointer: string,\n allowEmpty: boolean,\n): string[] {\n const target = evaluateJSONPointer(value, jsonPointer);\n if (target === undefined) {\n if (allowEmpty) {\n return [];\n }\n throw new Error(`No value at path: ${jsonPointer}`);\n }\n\n const values = Array.isArray(target) ? target : [target];\n\n const indexKeys: string[] = [];\n for (const value of values) {\n if (typeof value === 'string') {\n indexKeys.push(encodeIndexKey([value, primary]));\n } else {\n throw new Error('Unsupported target type');\n }\n }\n\n return indexKeys;\n}\n\nexport const KEY_VERSION_0 = '\\u0000';\nexport const KEY_SEPARATOR = '\\u0000';\n\n/**\n * When using indexes the key is a tuple of the secondary key and the primary\n * key.\n */\nexport type IndexKey = readonly [secondary: string, primary: string];\n\n// An index key is encoded to vec of bytes in the following order:\n// - key version byte(s), followed by\n// - the secondary key bytes (which for now is a UTF8 encoded string), followed by\n// - the key separator, a null byte, followed by\n// - the primary key bytes\n//\n// The null separator byte ensures that if a secondary key A is longer than B then\n// A always sorts after B. Appending the primary key ensures index keys with\n// identical secondary keys sort in primary key order. Secondary keys must not\n// contain a zero (null) byte.\nexport function encodeIndexKey(indexKey: IndexKey): string {\n const secondary = indexKey[0];\n const primary = indexKey[1];\n\n if (secondary.includes('\\u0000')) {\n throw new Error('Secondary key cannot contain null byte');\n }\n return KEY_VERSION_0 + secondary + KEY_SEPARATOR + primary;\n}\n\n// Returns bytes that can be used to scan for the given secondary index value.\n//\n// Consider a scan for start_secondary_key=\"a\" (97). We want to scan with scan\n// key [0, 97]. We could also scan with [0, 97, 0], but then we couldn't use\n// this function for prefix scans, so we lop off the null byte. If we want\n// the scan to be exclusive, we scan with the next greater value, [0, 97, 1]\n// (we disallow zero bytes in secondary keys).\n//\n// Now it gets a little tricky. We also want to be able to scan using the\n// primary key, start_key. When we do this we have to encode the scan key\n// a little differently We essentially have to fix the value of the\n// secondary key so we can vary the start_key. That is, the match on\n// start_secondary_key becomes an exact match.\n//\n// Consider the scan for start_secondary_key=\"a\" and start_key=[2]. We want\n// to scan with [0, 97, 0, 2]. If we want exclusive we want to scan with\n// the next highest value, [0, 97, 0, 2, 0] (zero bytes are allowed in primary\n// keys). So far so good. It is important to notice that we need to\n// be able to distinguish between not wanting use start_key and wanting to\n// use start_key=[]. In the former case we want to scan with the secondary\n// key value, possibly followed by a 1 with no trailing zero byte ([0, 97]\n// or [0, 97, 1]). In the latter case we want to scan by the secondary\n// key value, followed by the zero byte, followed by the primary key value\n// and another zero if it is exclusive ([0, 97, 0] or [0, 97, 0, 0]).\n// This explains why we need the Option around start_key.\nexport function encodeIndexScanKey(\n secondary: string,\n primary: string | undefined,\n): string {\n const k = encodeIndexKey([secondary, primary || '']);\n if (primary === undefined) {\n return k.slice(0, k.length - 1);\n }\n return k;\n}\n\n// Decodes an IndexKey encoded by encode_index_key.\nexport function decodeIndexKey(encodedIndexKey: string): IndexKey {\n if (encodedIndexKey[0] !== KEY_VERSION_0) {\n throw new Error('Invalid version');\n }\n\n const versionLen = KEY_VERSION_0.length;\n const separatorLen = KEY_SEPARATOR.length;\n const separatorOffset = encodedIndexKey.indexOf(KEY_SEPARATOR, versionLen);\n if (separatorOffset === -1) {\n throw new Error('Invalid formatting');\n }\n\n const secondary = encodedIndexKey.slice(versionLen, separatorOffset);\n const primary = encodedIndexKey.slice(separatorOffset + separatorLen);\n return [secondary, primary];\n}\n\nexport function evaluateJSONPointer(\n value: FrozenJSONValue,\n pointer: string,\n): FrozenJSONValue | undefined {\n function parseIndex(s: string): number | undefined {\n if (s.startsWith('+') || (s.startsWith('0') && s.length !== 1)) {\n return undefined;\n }\n return parseInt(s, 10);\n }\n\n if (pointer === '') {\n return value;\n }\n if (!pointer.startsWith('/')) {\n throw new Error(`Invalid JSON pointer: ${pointer}`);\n }\n\n const tokens = pointer\n .split('/')\n .slice(1)\n .map(x => x.replace(/~1/g, '/').replace(/~0/g, '~'));\n\n let target = value;\n for (const token of tokens) {\n let targetOpt;\n if (Array.isArray(target)) {\n const i = parseIndex(token);\n if (i === undefined) {\n return undefined;\n }\n targetOpt = target[i];\n } else if (target === null) {\n return undefined;\n } else if (typeof target === 'object') {\n target = target as FrozenJSONObject;\n targetOpt = target[token];\n }\n if (targetOpt === undefined) {\n return undefined;\n }\n target = targetOpt;\n }\n return target;\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","names":["#dagRead"],"sources":["../../../../../../replicache/src/db/read.ts"],"sourcesContent":["import type {Enum} from '../../../shared/src/enum.ts';\nimport {BTreeRead} from '../btree/read.ts';\nimport type {Read as DagRead} from '../dag/store.ts';\nimport type * as FormatVersion from '../format-version-enum.ts';\nimport type {FrozenJSONValue} from '../frozen-json.ts';\nimport type {Hash} from '../hash.ts';\nimport type {Commit} from './commit.ts';\nimport {\n DEFAULT_HEAD_NAME,\n type Meta,\n commitFromHash,\n commitFromHead,\n} from './commit.ts';\nimport {IndexRead} from './index.ts';\n\ntype FormatVersion = Enum<typeof FormatVersion>;\n\nexport class Read {\n readonly #dagRead: DagRead;\n map: BTreeRead;\n readonly indexes: Map<string, IndexRead>;\n\n constructor(\n dagRead: DagRead,\n map: BTreeRead,\n indexes: Map<string, IndexRead>,\n ) {\n this.#dagRead = dagRead;\n this.map = map;\n this.indexes = indexes;\n }\n\n has(key: string): Promise<boolean> {\n return this.map.has(key);\n }\n\n get(key: string): Promise<FrozenJSONValue | undefined> {\n return this.map.get(key);\n }\n\n isEmpty(): Promise<boolean> {\n return this.map.isEmpty();\n }\n\n getMapForIndex(indexName: string): BTreeRead {\n const idx = this.indexes.get(indexName);\n if (idx === undefined) {\n throw new Error(`Unknown index name: ${indexName}`);\n }\n return idx.map;\n }\n\n get closed(): boolean {\n return this.#dagRead.closed;\n }\n\n close(): void {\n this.#dagRead.release();\n }\n}\n\nexport function readFromDefaultHead(\n dagRead: DagRead,\n formatVersion: FormatVersion,\n): Promise<Read> {\n return readFromHead(DEFAULT_HEAD_NAME, dagRead, formatVersion);\n}\n\nexport async function readFromHead(\n name: string,\n dagRead: DagRead,\n formatVersion: FormatVersion,\n): Promise<Read> {\n const commit = await commitFromHead(name, dagRead);\n return readFromCommit(commit, dagRead, formatVersion);\n}\n\nexport async function readFromHash(\n hash: Hash,\n dagRead: DagRead,\n formatVersion: FormatVersion,\n): Promise<Read> {\n const commit = await commitFromHash(hash, dagRead);\n return readFromCommit(commit, dagRead, formatVersion);\n}\n\nfunction readFromCommit(\n commit: Commit<Meta>,\n dagRead: DagRead,\n formatVersion: FormatVersion,\n): Read {\n const indexes = readIndexesForRead(commit, dagRead, formatVersion);\n const map = new BTreeRead(dagRead, formatVersion, commit.valueHash);\n return new Read(dagRead, map, indexes);\n}\n\nexport function readIndexesForRead(\n commit: Commit<Meta>,\n dagRead: DagRead,\n formatVersion: FormatVersion,\n): Map<string, IndexRead> {\n const m = new Map();\n for (const index of commit.indexes) {\n m.set(\n index.definition.name,\n new IndexRead(\n index,\n new BTreeRead(dagRead, formatVersion, index.valueHash),\n ),\n );\n }\n return m;\n}\n"],"mappings":";;;;AAiBA,IAAa,OAAb,MAAkB;CAChB;CACA;CACA;CAEA,YACE,SACA,KACA,SACA;EACA,KAAKA,WAAW;EAChB,KAAK,MAAM;EACX,KAAK,UAAU;CACjB;CAEA,IAAI,KAA+B;EACjC,OAAO,KAAK,IAAI,IAAI,GAAG;CACzB;CAEA,IAAI,KAAmD;EACrD,OAAO,KAAK,IAAI,IAAI,GAAG;CACzB;CAEA,UAA4B;EAC1B,OAAO,KAAK,IAAI,QAAQ;CAC1B;CAEA,eAAe,WAA8B;EAC3C,MAAM,MAAM,KAAK,QAAQ,IAAI,SAAS;EACtC,IAAI,QAAQ,KAAA,GACV,MAAM,IAAI,MAAM,uBAAuB,WAAW;EAEpD,OAAO,IAAI;CACb;CAEA,IAAI,SAAkB;EACpB,OAAO,KAAKA,SAAS;CACvB;CAEA,QAAc;EACZ,KAAKA,SAAS,QAAQ;CACxB;AACF;AAEA,SAAgB,oBACd,SACA,eACe;CACf,OAAO,aAAa,mBAAmB,SAAS,aAAa;AAC/D;AAEA,eAAsB,aACpB,MACA,SACA,eACe;CAEf,OAAO,eAAe,MADD,eAAe,MAAM,OAAO,GACnB,SAAS,aAAa;AACtD;AAEA,eAAsB,aACpB,MACA,SACA,eACe;CAEf,OAAO,eAAe,MADD,eAAe,MAAM,OAAO,GACnB,SAAS,aAAa;AACtD;AAEA,SAAS,eACP,QACA,SACA,eACM;CACN,MAAM,UAAU,mBAAmB,QAAQ,SAAS,aAAa;CAEjE,OAAO,IAAI,KAAK,SAAS,IADT,UAAU,SAAS,eAAe,OAAO,SAChC,GAAK,OAAO;AACvC;AAEA,SAAgB,mBACd,QACA,SACA,eACwB;CACxB,MAAM,oBAAI,IAAI,IAAI;CAClB,KAAK,MAAM,SAAS,OAAO,SACzB,EAAE,IACA,MAAM,WAAW,MACjB,IAAI,UACF,OACA,IAAI,UAAU,SAAS,eAAe,MAAM,SAAS,CACvD,CACF;CAEF,OAAO;AACT"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase.js","names":[],"sources":["../../../../../../replicache/src/db/rebase.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {assert} from '../../../shared/src/asserts.ts';\nimport type {Enum} from '../../../shared/src/enum.ts';\nimport type {Write as DagWrite} from '../dag/store.ts';\nimport * as FormatVersion from '../format-version-enum.ts';\nimport type {Hash} from '../hash.ts';\nimport type {ZeroTxData} from '../replicache-options.ts';\nimport type {ClientID} from '../sync/ids.ts';\nimport {WriteTransactionImpl} from '../transactions.ts';\nimport type {MutatorDefs} from '../types.ts';\nimport {\n type Commit,\n type LocalMeta,\n type LocalMetaDD31,\n type Meta,\n assertLocalMetaDD31,\n commitFromHash,\n isLocalMetaDD31,\n} from './commit.ts';\nimport type {Write} from './write.ts';\nimport {newWriteLocal} from './write.ts';\n\ntype FormatVersion = Enum<typeof FormatVersion>;\n\nasync function rebaseMutation(\n mutation: Commit<LocalMetaDD31>,\n dagWrite: DagWrite,\n basisHash: Hash,\n mutators: MutatorDefs,\n lc: LogContext,\n mutationClientID: ClientID,\n formatVersion: FormatVersion,\n zeroData: ZeroTxData | undefined,\n): Promise<Write> {\n const localMeta = mutation.meta;\n const name = localMeta.mutatorName;\n if (isLocalMetaDD31(localMeta)) {\n assert(\n localMeta.clientID === mutationClientID,\n 'mutationClientID must match clientID of LocalMeta',\n );\n }\n const maybeMutatorImpl = mutators[name];\n if (!maybeMutatorImpl) {\n // Developers must not remove mutator names from code deployed with the\n // same schemaVersion because Replicache needs to be able to replay\n // mutations during pull.\n //\n // If we detect that this has happened, stub in a no-op mutator so that at\n // least sync can move forward. Note that the server-side mutation will\n // still get sent. This doesn't remove the queued local mutation, it just\n // removes its visible effects.\n lc.error?.(`Cannot rebase unknown mutator ${name}`);\n }\n const mutatorImpl =\n maybeMutatorImpl ||\n (async () => {\n // no op\n });\n\n const args = localMeta.mutatorArgsJSON;\n\n const basisCommit = await commitFromHash(basisHash, dagWrite);\n const nextMutationID = await basisCommit.getNextMutationID(\n mutationClientID,\n dagWrite,\n );\n if (nextMutationID !== localMeta.mutationID) {\n throw new Error(\n `Inconsistent mutation ID: original: ${localMeta.mutationID}, next: ${nextMutationID} - mutationClientID: ${mutationClientID} mutatorName: ${name}`,\n );\n }\n\n if (formatVersion >= FormatVersion.DD31) {\n assertLocalMetaDD31(localMeta);\n }\n\n const dbWrite = await newWriteLocal(\n basisHash,\n name,\n args,\n mutation.chunk.hash,\n dagWrite,\n localMeta.timestamp,\n mutationClientID,\n formatVersion,\n );\n\n const tx = new WriteTransactionImpl(\n mutationClientID,\n await dbWrite.getMutationID(),\n 'rebase',\n zeroData,\n dbWrite,\n lc,\n );\n await mutatorImpl(tx, args);\n return dbWrite;\n}\n\nexport async function rebaseMutationAndPutCommit(\n mutation: Commit<LocalMeta>,\n dagWrite: DagWrite,\n basis: Hash,\n mutators: MutatorDefs,\n lc: LogContext,\n // TODO(greg): mutationClientID can be retrieved from mutation if LocalMeta\n // is a LocalMetaDD31. As part of DD31 cleanup we can remove this arg.\n mutationClientID: ClientID,\n formatVersion: FormatVersion,\n zeroData: ZeroTxData | undefined,\n): Promise<Commit<Meta>> {\n const tx = await rebaseMutation(\n mutation,\n dagWrite,\n basis,\n mutators,\n lc,\n mutationClientID,\n formatVersion,\n zeroData,\n );\n return tx.putCommit();\n}\n\nexport async function rebaseMutationAndCommit(\n mutation: Commit<LocalMeta>,\n dagWrite: DagWrite,\n basis: Hash,\n headName: string,\n mutators: MutatorDefs,\n lc: LogContext,\n // TODO(greg): mutationClientID can be retrieved from mutation if LocalMeta\n // is a LocalMetaDD31. As part of DD31 cleanup we can remove this arg.\n mutationClientID: ClientID,\n formatVersion: FormatVersion,\n zeroData: ZeroTxData | undefined,\n): Promise<Hash> {\n const dbWrite = await rebaseMutation(\n mutation,\n dagWrite,\n basis,\n mutators,\n lc,\n mutationClientID,\n formatVersion,\n zeroData,\n );\n return dbWrite.commit(headName);\n}\n"],"mappings":";;;;;AAwBA,eAAe,eACb,UACA,UACA,WACA,UACA,IACA,kBACA,eACA,UACgB;CAChB,MAAM,YAAY,SAAS;CAC3B,MAAM,OAAO,UAAU;CACvB,IAAI,gBAAgB,SAAS,GAC3B,OACE,UAAU,aAAa,kBACvB,mDACF;CAEF,MAAM,mBAAmB,SAAS;CAClC,IAAI,CAAC,kBASH,GAAG,QAAQ,iCAAiC,MAAM;CAEpD,MAAM,cACJ,qBACC,YAAY,CAEb;CAEF,MAAM,OAAO,UAAU;CAGvB,MAAM,iBAAiB,OAAM,MADH,eAAe,WAAW,QAAQ,GACnB,kBACvC,kBACA,QACF;CACA,IAAI,mBAAmB,UAAU,YAC/B,MAAM,IAAI,MACR,uCAAuC,UAAU,WAAW,UAAU,eAAe,uBAAuB,iBAAiB,gBAAgB,MAC/I;CAGF,IAAI,iBAAiB,GACnB,oBAAoB,SAAS;CAG/B,MAAM,UAAU,MAAM,cACpB,WACA,MACA,MACA,SAAS,MAAM,MACf,UACA,UAAU,WACV,kBACA,aACF;CAUA,MAAM,YAAY,IARH,qBACb,kBACA,MAAM,QAAQ,cAAc,GAC5B,UACA,UACA,SACA,EAEgB,GAAI,IAAI;CAC1B,OAAO;AACT;AAEA,eAAsB,2BACpB,UACA,UACA,OACA,UACA,IAGA,kBACA,eACA,UACuB;CAWvB,QAAO,MAVU,eACf,UACA,UACA,OACA,UACA,IACA,kBACA,eACA,QACF,GACU,UAAU;AACtB;AAEA,eAAsB,wBACpB,UACA,UACA,OACA,UACA,UACA,IAGA,kBACA,eACA,UACe;CAWf,QAAO,MAVe,eACpB,UACA,UACA,OACA,UACA,IACA,kBACA,eACA,QACF,GACe,OAAO,QAAQ;AAChC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","names":["#dagWrite","#basis","#meta","#clientID","#formatVersion","#generateDiffs"],"sources":["../../../../../../replicache/src/db/write.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {assert} from '../../../shared/src/asserts.ts';\nimport type {Enum} from '../../../shared/src/enum.ts';\nimport {diff} from '../btree/diff.ts';\nimport type {InternalDiff} from '../btree/node.ts';\nimport {BTreeRead, allEntriesAsDiff} from '../btree/read.ts';\nimport {BTreeWrite} from '../btree/write.ts';\nimport type {FrozenCookie} from '../cookies.ts';\nimport type {Write as DagWrite} from '../dag/store.ts';\nimport * as FormatVersion from '../format-version-enum.ts';\nimport type {FrozenJSONValue} from '../frozen-json.ts';\nimport {type Hash, emptyHash} from '../hash.ts';\nimport {lazy} from '../lazy.ts';\nimport type {DiffComputationConfig} from '../sync/diff.ts';\nimport {DiffsMap} from '../sync/diff.ts';\nimport type {ClientID} from '../sync/ids.ts';\nimport type {Commit} from './commit.ts';\nimport {\n type Meta as CommitMeta,\n type IndexRecord,\n type Meta,\n baseSnapshotHashFromHash,\n commitFromHash,\n newLocalDD31 as commitNewLocalDD31,\n newSnapshotDD31 as commitNewSnapshotDD31,\n getMutationID,\n} from './commit.ts';\nimport * as IndexOperation from './index-operation-enum.ts';\nimport type {IndexRead} from './index.ts';\nimport {IndexWrite, indexValue} from './index.ts';\nimport * as MetaType from './meta-type-enum.ts';\nimport {Read, readIndexesForRead} from './read.ts';\n\ntype FormatVersion = Enum<typeof FormatVersion>;\n\nexport class Write extends Read {\n readonly #dagWrite: DagWrite;\n readonly #basis: Commit<CommitMeta> | undefined;\n readonly #meta: CommitMeta;\n\n declare map: BTreeWrite;\n\n declare readonly indexes: Map<string, IndexWrite>;\n readonly #clientID: ClientID;\n readonly #formatVersion: FormatVersion;\n\n constructor(\n dagWrite: DagWrite,\n map: BTreeWrite,\n basis: Commit<CommitMeta> | undefined,\n meta: CommitMeta,\n indexes: Map<string, IndexWrite>,\n clientID: ClientID,\n formatVersion: FormatVersion,\n ) {\n // TypeScript has trouble\n super(dagWrite, map, indexes);\n this.#dagWrite = dagWrite;\n this.#basis = basis;\n this.#meta = meta;\n this.#clientID = clientID;\n this.#formatVersion = formatVersion;\n\n // TODO(arv): if (DEBUG) { ...\n if (basis === undefined) {\n assert(\n meta.basisHash === emptyHash,\n 'Expected basisHash to be emptyHash when basis is undefined',\n );\n } else {\n assert(\n meta.basisHash === basis.chunk.hash,\n 'Expected meta.basisHash to equal basis.chunk.hash',\n );\n }\n }\n\n /**\n * The value needs to be frozen since it is kept in memory and used later for\n * comparison as well as returned in `get`.\n */\n async put(\n lc: LogContext,\n key: string,\n value: FrozenJSONValue,\n ): Promise<void> {\n const oldVal = lazy(() => this.map.get(key));\n await updateIndexes(lc, this.indexes, key, oldVal, value);\n\n await this.map.put(key, value);\n }\n\n /**\n * Inserts or updates multiple entries in a single bulk operation. More\n * efficient than calling {@link put} in a loop because it uses\n * {@link BTreeWrite.putMany} to build or merge tree nodes in one pass.\n *\n * `entries` must be sorted in ascending key order.\n */\n async putMany(\n lc: LogContext,\n entries: ReadonlyArray<readonly [string, FrozenJSONValue]>,\n ): Promise<void> {\n if (entries.length === 0) {\n return;\n }\n\n // Update indexes for all entries\n if (this.indexes.size > 0) {\n // TODO(arv): Indexes can use the optimizePatch pattern too.\n for (const [key, value] of entries) {\n const oldVal = lazy(() => this.map.get(key));\n await updateIndexes(lc, this.indexes, key, oldVal, value);\n }\n }\n\n // BTreeWrite.putMany handles both empty and non-empty trees optimally\n await this.map.putMany(entries);\n }\n\n getMutationID(): Promise<number> {\n return getMutationID(this.#clientID, this.#dagWrite, this.#meta);\n }\n\n async del(lc: LogContext, key: string): Promise<boolean> {\n // TODO(arv): This does the binary search twice. We can do better.\n const oldVal = lazy(() => this.map.get(key));\n if (oldVal !== undefined) {\n await updateIndexes(lc, this.indexes, key, oldVal, undefined);\n }\n return this.map.del(key);\n }\n\n async clear(): Promise<void> {\n await this.map.clear();\n const ps = [];\n for (const idx of this.indexes.values()) {\n ps.push(idx.clear());\n }\n await Promise.all(ps);\n }\n\n async putCommit(): Promise<Commit<CommitMeta>> {\n const valueHash = await this.map.flush();\n const indexRecords: IndexRecord[] = [];\n\n for (const index of this.indexes.values()) {\n const valueHash = await index.flush();\n const indexRecord: IndexRecord = {\n definition: index.meta.definition,\n valueHash,\n };\n indexRecords.push(indexRecord);\n }\n\n let commit: Commit<Meta>;\n const meta = this.#meta;\n switch (meta.type) {\n case MetaType.LocalDD31: {\n assert(\n this.#formatVersion >= FormatVersion.DD31,\n 'Expected formatVersion >= DD31 for LocalDD31 commit',\n );\n const {\n basisHash,\n mutationID,\n mutatorName,\n mutatorArgsJSON,\n originalHash,\n timestamp,\n } = meta;\n commit = commitNewLocalDD31(\n this.#dagWrite.createChunk,\n basisHash,\n await baseSnapshotHashFromHash(basisHash, this.#dagWrite),\n mutationID,\n mutatorName,\n mutatorArgsJSON,\n originalHash,\n valueHash,\n indexRecords,\n timestamp,\n this.#clientID,\n );\n break;\n }\n\n case MetaType.SnapshotDD31: {\n assert(\n this.#formatVersion > FormatVersion.DD31,\n 'Expected formatVersion > DD31 for SnapshotDD31 commit',\n );\n const {basisHash, lastMutationIDs, cookieJSON} = meta;\n commit = commitNewSnapshotDD31(\n this.#dagWrite.createChunk,\n basisHash,\n lastMutationIDs,\n cookieJSON,\n valueHash,\n indexRecords,\n );\n break;\n }\n }\n await this.#dagWrite.putChunk(commit.chunk);\n return commit;\n }\n\n // Return value is the hash of the new commit.\n async commit(headName: string): Promise<Hash> {\n const commit = await this.putCommit();\n const commitHash = commit.chunk.hash;\n await this.#dagWrite.setHead(headName, commitHash);\n await this.#dagWrite.commit();\n return commitHash;\n }\n\n async commitWithDiffs(\n headName: string,\n diffConfig: DiffComputationConfig,\n ): Promise<[Hash, DiffsMap]> {\n const commit = this.putCommit();\n const diffMap = await this.#generateDiffs(diffConfig);\n const commitHash = (await commit).chunk.hash;\n await this.#dagWrite.setHead(headName, commitHash);\n await this.#dagWrite.commit();\n return [commitHash, diffMap];\n }\n\n async #generateDiffs(diffConfig: DiffComputationConfig): Promise<DiffsMap> {\n const diffsMap = new DiffsMap();\n if (!diffConfig.shouldComputeDiffs()) {\n return diffsMap;\n }\n\n let valueDiff: InternalDiff = [];\n if (this.#basis) {\n const basisMap = new BTreeRead(\n this.#dagWrite,\n this.#formatVersion,\n this.#basis.valueHash,\n );\n valueDiff = await diff(basisMap, this.map);\n }\n diffsMap.set('', valueDiff);\n let basisIndexes: Map<string, IndexRead>;\n if (this.#basis) {\n basisIndexes = readIndexesForRead(\n this.#basis,\n this.#dagWrite,\n this.#formatVersion,\n );\n } else {\n basisIndexes = new Map();\n }\n\n for (const [name, index] of this.indexes) {\n if (!diffConfig.shouldComputeDiffsForIndex(name)) {\n continue;\n }\n const basisIndex = basisIndexes.get(name);\n assert(index !== basisIndex, 'Expected index to differ from basisIndex');\n\n const indexDiffResult = await (basisIndex\n ? diff(basisIndex.map, index.map)\n : // No basis. All keys are new.\n allEntriesAsDiff(index.map, 'add'));\n diffsMap.set(name, indexDiffResult);\n }\n\n // Handle indexes in basisIndex but not in this.indexes. All keys are\n // deleted.\n for (const [name, basisIndex] of basisIndexes) {\n if (\n !this.indexes.has(name) &&\n diffConfig.shouldComputeDiffsForIndex(name)\n ) {\n const indexDiffResult = await allEntriesAsDiff(basisIndex.map, 'del');\n diffsMap.set(name, indexDiffResult);\n }\n }\n return diffsMap;\n }\n\n close(): void {\n this.#dagWrite.release();\n }\n}\n\nexport async function newWriteLocal(\n basisHash: Hash,\n mutatorName: string,\n mutatorArgsJSON: FrozenJSONValue,\n originalHash: Hash | null,\n dagWrite: DagWrite,\n timestamp: number,\n clientID: ClientID,\n formatVersion: FormatVersion,\n): Promise<Write> {\n const basis = await commitFromHash(basisHash, dagWrite);\n const bTreeWrite = new BTreeWrite(dagWrite, formatVersion, basis.valueHash);\n const mutationID = await basis.getNextMutationID(clientID, dagWrite);\n const indexes = readIndexesForWrite(basis, dagWrite, formatVersion);\n assert(\n formatVersion >= FormatVersion.DD31,\n 'Expected formatVersion >= DD31 for newWriteLocal',\n );\n return new Write(\n dagWrite,\n bTreeWrite,\n basis,\n\n {\n type: MetaType.LocalDD31,\n basisHash,\n baseSnapshotHash: await baseSnapshotHashFromHash(basisHash, dagWrite),\n mutatorName,\n mutatorArgsJSON,\n mutationID,\n originalHash,\n timestamp,\n clientID,\n },\n indexes,\n clientID,\n formatVersion,\n );\n}\n\nexport async function newWriteSnapshotDD31(\n basisHash: Hash,\n lastMutationIDs: Record<ClientID, number>,\n cookieJSON: FrozenCookie,\n dagWrite: DagWrite,\n clientID: ClientID,\n formatVersion: FormatVersion,\n): Promise<Write> {\n const basis = await commitFromHash(basisHash, dagWrite);\n const bTreeWrite = new BTreeWrite(dagWrite, formatVersion, basis.valueHash);\n return new Write(\n dagWrite,\n bTreeWrite,\n basis,\n {basisHash, type: MetaType.SnapshotDD31, lastMutationIDs, cookieJSON},\n readIndexesForWrite(basis, dagWrite, formatVersion),\n clientID,\n formatVersion,\n );\n}\n\nexport async function updateIndexes(\n lc: LogContext,\n indexes: Map<string, IndexWrite>,\n key: string,\n oldValGetter: () => Promise<FrozenJSONValue | undefined>,\n newVal: FrozenJSONValue | undefined,\n): Promise<void> {\n const ps: Promise<void>[] = [];\n for (const idx of indexes.values()) {\n const {keyPrefix} = idx.meta.definition;\n if (!keyPrefix || key.startsWith(keyPrefix)) {\n const oldVal = await oldValGetter();\n if (oldVal !== undefined) {\n ps.push(\n indexValue(\n lc,\n idx.map,\n IndexOperation.Remove,\n key,\n oldVal,\n idx.meta.definition.jsonPointer,\n idx.meta.definition.allowEmpty ?? false,\n ),\n );\n }\n if (newVal !== undefined) {\n ps.push(\n indexValue(\n lc,\n idx.map,\n IndexOperation.Add,\n key,\n newVal,\n idx.meta.definition.jsonPointer,\n idx.meta.definition.allowEmpty ?? false,\n ),\n );\n }\n }\n }\n await Promise.all(ps);\n}\n\nexport function readIndexesForWrite(\n commit: Commit<CommitMeta>,\n dagWrite: DagWrite,\n formatVersion: FormatVersion,\n): Map<string, IndexWrite> {\n const m = new Map();\n for (const index of commit.indexes) {\n m.set(\n index.definition.name,\n new IndexWrite(\n index,\n new BTreeWrite(dagWrite, formatVersion, index.valueHash),\n ),\n );\n }\n return m;\n}\n\nexport async function createIndexBTree(\n lc: LogContext,\n dagWrite: DagWrite,\n valueMap: BTreeRead,\n prefix: string,\n jsonPointer: string,\n allowEmpty: boolean,\n formatVersion: FormatVersion,\n): Promise<BTreeWrite> {\n const indexMap = new BTreeWrite(dagWrite, formatVersion);\n for await (const entry of valueMap.scan(prefix)) {\n const key = entry[0];\n if (!key.startsWith(prefix)) {\n break;\n }\n await indexValue(\n lc,\n indexMap,\n IndexOperation.Add,\n key,\n entry[1],\n jsonPointer,\n allowEmpty,\n );\n }\n return indexMap;\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleted-clients.js","names":[],"sources":["../../../../../replicache/src/deleted-clients.ts"],"sourcesContent":["import {stringCompare} from '../../shared/src/string-compare.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport type {Read, Write} from './dag/store.ts';\nimport {deepFreeze} from './frozen-json.ts';\nimport {getClients, setClients} from './persist/clients.ts';\nimport {\n clientGroupIDSchema,\n clientIDSchema,\n type ClientGroupID,\n type ClientID,\n} from './sync/ids.ts';\n\n/**\n * We keep track of deleted clients in the {@linkcode DELETED_CLIENTS_HEAD_NAME}\n * head.\n */\nexport const DELETED_CLIENTS_HEAD_NAME = 'deleted-clients-v2';\n\ntype ClientIDPair = {\n clientGroupID: ClientGroupID;\n clientID: ClientID;\n};\n\nexport type DeletedClients = readonly Readonly<ClientIDPair>[];\n\nexport type WritableDeletedClients = ClientIDPair[];\n\nexport const deletedClientsSchema: v.Type<DeletedClients> = v.readonlyArray(\n v.readonlyObject({\n clientGroupID: clientGroupIDSchema,\n clientID: clientIDSchema,\n }),\n);\n\nfunction compare(a: ClientIDPair, b: ClientIDPair): number {\n const cg = stringCompare(a.clientGroupID, b.clientGroupID);\n if (cg !== 0) {\n return cg;\n }\n return stringCompare(a.clientID, b.clientID);\n}\n\nexport function normalizeDeletedClients(\n deletedClients: DeletedClients,\n): DeletedClients {\n return deletedClients\n .toSorted(compare)\n .filter((item, i, arr) => i === 0 || compare(item, arr[i - 1]) !== 0);\n}\n\nexport function mergeDeletedClients(\n a: DeletedClients,\n b: DeletedClients,\n): DeletedClients {\n const merged: WritableDeletedClients = [];\n a = normalizeDeletedClients(a);\n b = normalizeDeletedClients(b);\n for (let i = 0, j = 0; i < a.length || j < b.length; ) {\n if (i < a.length && (j >= b.length || compare(a[i], b[j]) < 0)) {\n merged.push(a[i]);\n i++;\n } else if (j < b.length && (i >= a.length || compare(b[j], a[i]) < 0)) {\n merged.push(b[j]);\n j++;\n } else {\n // equal\n merged.push(a[i]);\n i++;\n j++;\n }\n }\n return merged;\n}\n\nexport function removeFromDeletedClients(\n old: DeletedClients,\n toRemove: DeletedClients,\n): DeletedClients {\n old = normalizeDeletedClients(old);\n toRemove = normalizeDeletedClients(toRemove);\n const result: WritableDeletedClients = [];\n for (let i = 0, j = 0; i < old.length; ) {\n if (j >= toRemove.length || compare(old[i], toRemove[j]) < 0) {\n result.push(old[i]);\n i++;\n } else if (j < toRemove.length && compare(old[i], toRemove[j]) === 0) {\n // equal, skip\n i++;\n j++;\n } else {\n // old[i] > toRemove[j]\n j++;\n }\n }\n return result;\n}\n\nexport async function setDeletedClients(\n dagWrite: Write,\n deletedClients: DeletedClients,\n): Promise<DeletedClients> {\n // sort and dedupe\n\n const data = normalizeDeletedClients(deletedClients);\n\n const chunkData = deepFreeze(data);\n const chunk = dagWrite.createChunk(chunkData, []);\n await dagWrite.putChunk(chunk);\n await dagWrite.setHead(DELETED_CLIENTS_HEAD_NAME, chunk.hash);\n return data;\n}\n\nexport async function getDeletedClients(\n dagRead: Read,\n): Promise<DeletedClients> {\n const hash = await dagRead.getHead(DELETED_CLIENTS_HEAD_NAME);\n if (hash === undefined) {\n return [];\n }\n const chunk = await dagRead.mustGetChunk(hash);\n\n const res = v.test(chunk.data, deletedClientsSchema);\n if (!res.ok) {\n // If not ok then we ignore this. It might be in the old format but we do\n // not know the clientGroupID of the old clients.\n return [];\n }\n\n return res.value;\n}\n\n/**\n * Adds deleted clients to the {@linkcode DELETED_CLIENTS_HEAD_NAME} head.\n * @returns the new list of deleted clients (sorted and deduped).\n */\nexport async function addDeletedClients(\n dagWrite: Write,\n deletedClientsToAdd: DeletedClients,\n): Promise<DeletedClients> {\n const oldDeletedClients = await getDeletedClients(dagWrite);\n\n return setDeletedClients(\n dagWrite,\n mergeDeletedClients(oldDeletedClients, deletedClientsToAdd),\n );\n}\n\nexport async function removeDeletedClients(\n dagWrite: Write,\n deletedClientsToRemove: DeletedClients,\n): Promise<DeletedClients> {\n const oldDeletedClients = await getDeletedClients(dagWrite);\n return setDeletedClients(\n dagWrite,\n removeFromDeletedClients(oldDeletedClients, deletedClientsToRemove),\n );\n}\n\nexport async function confirmDeletedClients(\n dagWrite: Write,\n deletedClientIds: readonly ClientID[],\n deletedClientGroupIds: readonly ClientGroupID[],\n): Promise<DeletedClients> {\n const deletedClientIDSet = new Set(deletedClientIds);\n const deletedClientGroupIDSet = new Set(deletedClientGroupIds);\n const oldDeletedClients = await getDeletedClients(dagWrite);\n const clients = new Map(await getClients(dagWrite));\n for (const clientID of deletedClientIds) {\n clients.delete(clientID);\n }\n for (const clientGroupID of deletedClientGroupIds) {\n for (const [clientID, client] of clients) {\n if (client.clientGroupID === clientGroupID) {\n clients.delete(clientID);\n }\n }\n }\n\n await setClients(clients, dagWrite);\n\n return setDeletedClients(\n dagWrite,\n oldDeletedClients.filter(\n ({clientGroupID, clientID}) =>\n !deletedClientGroupIDSet.has(clientGroupID) &&\n !deletedClientIDSet.has(clientID),\n ),\n );\n}\n"],"mappings":";;;;;;;;;;AAgBA,IAAa,4BAA4B;AAWzC,IAAa,uBAA+C,cAC1D,eAAiB;CACf,eAAe;CACf,UAAU;AACZ,CAAC,CACH;AAEA,SAAS,QAAQ,GAAiB,GAAyB;CACzD,MAAM,KAAK,cAAc,EAAE,eAAe,EAAE,aAAa;CACzD,IAAI,OAAO,GACT,OAAO;CAET,OAAO,cAAc,EAAE,UAAU,EAAE,QAAQ;AAC7C;AAEA,SAAgB,wBACd,gBACgB;CAChB,OAAO,eACJ,SAAS,OAAO,EAChB,QAAQ,MAAM,GAAG,QAAQ,MAAM,KAAK,QAAQ,MAAM,IAAI,IAAI,EAAE,MAAM,CAAC;AACxE;AAEA,SAAgB,oBACd,GACA,GACgB;CAChB,MAAM,SAAiC,CAAC;CACxC,IAAI,wBAAwB,CAAC;CAC7B,IAAI,wBAAwB,CAAC;CAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,SAC3C,IAAI,IAAI,EAAE,WAAW,KAAK,EAAE,UAAU,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;EAC9D,OAAO,KAAK,EAAE,EAAE;EAChB;CACF,OAAO,IAAI,IAAI,EAAE,WAAW,KAAK,EAAE,UAAU,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;EACrE,OAAO,KAAK,EAAE,EAAE;EAChB;CACF,OAAO;EAEL,OAAO,KAAK,EAAE,EAAE;EAChB;EACA;CACF;CAEF,OAAO;AACT;AAyBA,eAAsB,kBACpB,UACA,gBACyB;CAGzB,MAAM,OAAO,wBAAwB,cAAc;CAEnD,MAAM,YAAY,WAAW,IAAI;CACjC,MAAM,QAAQ,SAAS,YAAY,WAAW,CAAC,CAAC;CAChD,MAAM,SAAS,SAAS,KAAK;CAC7B,MAAM,SAAS,QAAQ,2BAA2B,MAAM,IAAI;CAC5D,OAAO;AACT;AAEA,eAAsB,kBACpB,SACyB;CACzB,MAAM,OAAO,MAAM,QAAQ,QAAQ,yBAAyB;CAC5D,IAAI,SAAS,KAAA,GACX,OAAO,CAAC;CAIV,MAAM,MAAM,MAAO,MAFC,QAAQ,aAAa,IAAI,GAEpB,MAAM,oBAAoB;CACnD,IAAI,CAAC,IAAI,IAGP,OAAO,CAAC;CAGV,OAAO,IAAI;AACb;;;;;AAMA,eAAsB,kBACpB,UACA,qBACyB;CAGzB,OAAO,kBACL,UACA,oBAAoB,MAJU,kBAAkB,QAAQ,GAIjB,mBAAmB,CAC5D;AACF;AAaA,eAAsB,sBACpB,UACA,kBACA,uBACyB;CACzB,MAAM,qBAAqB,IAAI,IAAI,gBAAgB;CACnD,MAAM,0BAA0B,IAAI,IAAI,qBAAqB;CAC7D,MAAM,oBAAoB,MAAM,kBAAkB,QAAQ;CAC1D,MAAM,UAAU,IAAI,IAAI,MAAM,WAAW,QAAQ,CAAC;CAClD,KAAK,MAAM,YAAY,kBACrB,QAAQ,OAAO,QAAQ;CAEzB,KAAK,MAAM,iBAAiB,uBAC1B,KAAK,MAAM,CAAC,UAAU,WAAW,SAC/B,IAAI,OAAO,kBAAkB,eAC3B,QAAQ,OAAO,QAAQ;CAK7B,MAAM,WAAW,SAAS,QAAQ;CAElC,OAAO,kBACL,UACA,kBAAkB,QACf,EAAC,eAAe,eACf,CAAC,wBAAwB,IAAI,aAAa,KAC1C,CAAC,mBAAmB,IAAI,QAAQ,CACpC,CACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-responses.js","names":[],"sources":["../../../../../replicache/src/error-responses.ts"],"sourcesContent":["import {assert} from '../../shared/src/asserts.ts';\n\nfunction isError(obj: unknown, type: string): boolean {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n (obj as {error: unknown}).error === type\n );\n}\n\ntype ErrorResponse = {error: string};\n\nexport function isErrorResponse(obj: object): obj is ErrorResponse {\n return typeof (obj as {error: unknown}).error === 'string';\n}\n\n/**\n * In certain scenarios the server can signal that it does not know about the\n * client. For example, the server might have lost all of its state (this might\n * happen during the development of the server).\n */\nexport type ClientStateNotFoundResponse = {\n error: 'ClientStateNotFound';\n};\n\nexport function isClientStateNotFoundResponse(\n v: unknown,\n): v is ClientStateNotFoundResponse {\n return isError(v, 'ClientStateNotFound');\n}\n\n/**\n * The server endpoint may respond with a `VersionNotSupported` error if it does\n * not know how to handle the pull, push or schema version.\n */\nexport type VersionNotSupportedResponse = {\n error: 'VersionNotSupported';\n versionType?: 'pull' | 'push' | 'schema' | undefined;\n};\n\nexport function isVersionNotSupportedResponse(\n v: unknown,\n): v is VersionNotSupportedResponse {\n if (!isError(v, 'VersionNotSupported')) {\n return false;\n }\n\n const {versionType} = v as Record<string, unknown>;\n switch (versionType) {\n case undefined:\n case 'pull':\n case 'push':\n case 'schema':\n return true;\n }\n\n return false;\n}\n\nexport function assertVersionNotSupportedResponse(\n v: unknown,\n): asserts v is VersionNotSupportedResponse {\n assert(\n isVersionNotSupportedResponse(v),\n 'Expected a VersionNotSupportedResponse',\n );\n}\n"],"mappings":";;AAEA,SAAS,QAAQ,KAAc,MAAuB;CACpD,OACE,OAAO,QAAQ,YACf,QAAQ,QACP,IAAyB,UAAU;AAExC;AAIA,SAAgB,gBAAgB,KAAmC;CACjE,OAAO,OAAQ,IAAyB,UAAU;AACpD;AAWA,SAAgB,8BACd,GACkC;CAClC,OAAO,QAAQ,GAAG,qBAAqB;AACzC;AAWA,SAAgB,8BACd,GACkC;CAClC,IAAI,CAAC,QAAQ,GAAG,qBAAqB,GACnC,OAAO;CAGT,MAAM,EAAC,gBAAe;CACtB,QAAQ,aAAR;EACE,KAAK,KAAA;EACL,KAAK;EACL,KAAK;EACL,KAAK,UACH,OAAO;CACX;CAEA,OAAO;AACT;AAEA,SAAgB,kCACd,GAC0C;CAC1C,OACE,8BAA8B,CAAC,GAC/B,wCACF;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frozen-json.js","names":[],"sources":["../../../../../replicache/src/frozen-json.ts"],"sourcesContent":["import {throwInvalidType} from '../../shared/src/asserts.ts';\nimport {skipAssertJSONValue} from '../../shared/src/config.ts';\nimport {hasOwn} from '../../shared/src/has-own.ts';\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from '../../shared/src/json.ts';\nimport {skipFreeze, skipFrozenAsserts} from './config.ts';\nimport type {Cookie, FrozenCookie} from './cookies.ts';\n\ndeclare const frozenJSONTag: unique symbol;\n\n/**\n * Used to mark a type as having been frozen.\n */\nexport type FrozenTag<T> = T & {readonly [frozenJSONTag]: true};\n\nexport type FrozenJSONValue =\n | null\n | string\n | boolean\n | number\n | FrozenJSONArray\n | FrozenJSONObject;\n\ntype FrozenJSONArray = FrozenTag<ReadonlyArray<FrozenJSONValue>>;\n\nexport type FrozenJSONObject = FrozenTag<{\n readonly [key: string]: FrozenJSONValue;\n}>;\n\n/**\n * We tag deep frozen objects in debug mode so that we do not have to deep\n * freeze an object more than once.\n */\nconst deepFrozenObjects = new WeakSet<object>();\n\n/**\n * Recursively freezes the passed in value (mutates it) and returns it.\n *\n * This is controlled by `skipFreeze` which is true in release mode.\n */\nexport function deepFreeze(v: Cookie): FrozenCookie;\nexport function deepFreeze(v: ReadonlyJSONValue): FrozenJSONValue;\nexport function deepFreeze(v: ReadonlyJSONValue): FrozenJSONValue {\n if (skipFreeze) {\n return v as FrozenJSONValue;\n }\n\n deepFreezeInternal(v, []);\n return v as FrozenJSONValue;\n}\n\nfunction deepFreezeInternal(\n v: ReadonlyJSONValue | undefined,\n seen: object[],\n): void {\n switch (typeof v) {\n case 'undefined':\n throw new TypeError('Unexpected value undefined');\n case 'boolean':\n case 'number':\n case 'string':\n return;\n case 'object': {\n if (v === null) {\n return;\n }\n\n if (deepFrozenObjects.has(v)) {\n return;\n }\n deepFrozenObjects.add(v);\n\n if (seen.includes(v)) {\n throwInvalidType(v, 'Cyclic JSON object');\n }\n\n seen.push(v);\n\n Object.freeze(v);\n if (Array.isArray(v)) {\n deepFreezeArray(v, seen);\n } else {\n deepFreezeObject(v as ReadonlyJSONObject, seen);\n }\n seen.pop();\n return;\n }\n\n default:\n throwInvalidType(v, 'JSON value');\n }\n}\n\nfunction deepFreezeArray(\n v: ReadonlyArray<ReadonlyJSONValue>,\n seen: object[],\n): void {\n for (const item of v) {\n deepFreezeInternal(item, seen);\n }\n}\n\nfunction deepFreezeObject(v: ReadonlyJSONObject, seen: object[]): void {\n for (const k in v) {\n if (hasOwn(v, k)) {\n const value = v[k];\n if (value !== undefined) {\n deepFreezeInternal(value, seen);\n }\n }\n }\n}\n\nexport function assertFrozenJSONValue(\n v: unknown,\n): asserts v is FrozenJSONValue {\n if (skipFrozenAsserts || skipAssertJSONValue) {\n return;\n }\n\n switch (typeof v) {\n case 'boolean':\n case 'number':\n case 'string':\n return;\n case 'object':\n if (v === null) {\n return;\n }\n\n if (isDeepFrozen(v, [])) {\n return;\n }\n }\n throwInvalidType(v, 'JSON value');\n}\n\nexport function assertDeepFrozen<V>(v: V): asserts v is Readonly<V> {\n if (skipFrozenAsserts) {\n return;\n }\n\n if (!isDeepFrozen(v, [])) {\n throw new Error('Expected frozen object');\n }\n}\n\n/**\n * Recursive deep frozen check.\n *\n * It adds frozen objects to the {@link deepFrozenObjects} WeakSet so that we do\n * not have to check the same object more than once.\n */\nexport function isDeepFrozen(v: unknown, seen: object[]): boolean {\n switch (typeof v) {\n case 'boolean':\n case 'number':\n case 'string':\n return true;\n case 'object':\n if (v === null) {\n return true;\n }\n\n if (deepFrozenObjects.has(v)) {\n return true;\n }\n\n if (!Object.isFrozen(v)) {\n return false;\n }\n\n if (seen.includes(v)) {\n throwInvalidType(v, 'Cyclic JSON object');\n }\n\n seen.push(v);\n\n if (Array.isArray(v)) {\n for (const item of v) {\n if (!isDeepFrozen(item, seen)) {\n seen.pop();\n return false;\n }\n }\n } else {\n for (const k in v) {\n if (hasOwn(v, k)) {\n const value = (v as Record<string, unknown>)[k];\n if (value !== undefined && !isDeepFrozen(value, seen)) {\n seen.pop();\n return false;\n }\n }\n }\n }\n\n deepFrozenObjects.add(v);\n seen.pop();\n return true;\n\n default:\n throwInvalidType(v, 'JSON value');\n }\n}\n\nexport type P = Parameters<typeof deepFreeze>[0];\nexport type R = ReturnType<typeof deepFreeze>;\nexport function deepFreezeAllowUndefined(v: P | undefined): R | undefined {\n if (v === undefined) {\n return undefined;\n }\n return deepFreeze(v) as R;\n}\n"],"mappings":";;;;;;;;;AAmCA,IAAM,oCAAoB,IAAI,QAAgB;AAS9C,SAAgB,WAAW,GAAuC;CAChE,IAAI,QACF,OAAO;CAGT,mBAAmB,GAAG,CAAC,CAAC;CACxB,OAAO;AACT;AAEA,SAAS,mBACP,GACA,MACM;CACN,QAAQ,OAAO,GAAf;EACE,KAAK,aACH,MAAM,IAAI,UAAU,4BAA4B;EAClD,KAAK;EACL,KAAK;EACL,KAAK,UACH;EACF,KAAK;GACH,IAAI,MAAM,MACR;GAGF,IAAI,kBAAkB,IAAI,CAAC,GACzB;GAEF,kBAAkB,IAAI,CAAC;GAEvB,IAAI,KAAK,SAAS,CAAC,GACjB,iBAAiB,GAAG,oBAAoB;GAG1C,KAAK,KAAK,CAAC;GAEX,OAAO,OAAO,CAAC;GACf,IAAI,MAAM,QAAQ,CAAC,GACjB,gBAAgB,GAAG,IAAI;QAEvB,iBAAiB,GAAyB,IAAI;GAEhD,KAAK,IAAI;GACT;EAGF,SACE,iBAAiB,GAAG,YAAY;CACpC;AACF;AAEA,SAAS,gBACP,GACA,MACM;CACN,KAAK,MAAM,QAAQ,GACjB,mBAAmB,MAAM,IAAI;AAEjC;AAEA,SAAS,iBAAiB,GAAuB,MAAsB;CACrE,KAAK,MAAM,KAAK,GACd,IAAI,OAAO,GAAG,CAAC,GAAG;EAChB,MAAM,QAAQ,EAAE;EAChB,IAAI,UAAU,KAAA,GACZ,mBAAmB,OAAO,IAAI;CAElC;AAEJ;AA0BA,SAAgB,iBAAoB,GAAgC;CAClE,IAAI,QACF;CAGF,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,GACrB,MAAM,IAAI,MAAM,wBAAwB;AAE5C;;;;;;;AAQA,SAAgB,aAAa,GAAY,MAAyB;CAChE,QAAQ,OAAO,GAAf;EACE,KAAK;EACL,KAAK;EACL,KAAK,UACH,OAAO;EACT,KAAK;GACH,IAAI,MAAM,MACR,OAAO;GAGT,IAAI,kBAAkB,IAAI,CAAC,GACzB,OAAO;GAGT,IAAI,CAAC,OAAO,SAAS,CAAC,GACpB,OAAO;GAGT,IAAI,KAAK,SAAS,CAAC,GACjB,iBAAiB,GAAG,oBAAoB;GAG1C,KAAK,KAAK,CAAC;GAEX,IAAI,MAAM,QAAQ,CAAC;SACZ,MAAM,QAAQ,GACjB,IAAI,CAAC,aAAa,MAAM,IAAI,GAAG;KAC7B,KAAK,IAAI;KACT,OAAO;IACT;UAGF,KAAK,MAAM,KAAK,GACd,IAAI,OAAO,GAAG,CAAC,GAAG;IAChB,MAAM,QAAS,EAA8B;IAC7C,IAAI,UAAU,KAAA,KAAa,CAAC,aAAa,OAAO,IAAI,GAAG;KACrD,KAAK,IAAI;KACT,OAAO;IACT;GACF;GAIJ,kBAAkB,IAAI,CAAC;GACvB,KAAK,IAAI;GACT,OAAO;EAET,SACE,iBAAiB,GAAG,YAAY;CACpC;AACF;AAIA,SAAgB,yBAAyB,GAAiC;CACxE,IAAI,MAAM,KAAA,GACR;CAEF,OAAO,WAAW,CAAC;AACrB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-default-puller.js","names":[],"sources":["../../../../../replicache/src/get-default-puller.ts"],"sourcesContent":["import {\n assertNumber,\n assertObject,\n assertString,\n} from '../../shared/src/asserts.ts';\nimport {callDefaultFetch} from './call-default-fetch.ts';\nimport {assertCookie} from './cookies.ts';\nimport {\n isClientStateNotFoundResponse,\n isVersionNotSupportedResponse,\n} from './error-responses.ts';\nimport {assertHTTPRequestInfo} from './http-request-info.ts';\nimport {assertPatchOperations} from './patch-operation.ts';\nimport type {\n PullResponseV1,\n Puller,\n PullerResult,\n PullerResultV1,\n} from './puller.ts';\nimport type {PullRequest} from './sync/pull.ts';\n\n/**\n * This creates a default puller which uses HTTP POST to send the pull request.\n */\nexport function getDefaultPuller(rep: {pullURL: string; auth: string}): Puller {\n async function puller(\n requestBody: PullRequest,\n requestID: string,\n ): Promise<PullerResult> {\n const [response, httpRequestInfo] = await callDefaultFetch(\n rep.pullURL,\n rep.auth,\n requestID,\n requestBody,\n );\n if (!response) {\n return {httpRequestInfo};\n }\n\n return {\n response: await response.json(),\n httpRequestInfo,\n };\n }\n\n defaultPullers.add(puller);\n return puller;\n}\n\nconst defaultPullers = new WeakSet();\n\nexport function isDefaultPuller(puller: Puller): boolean {\n return defaultPullers.has(puller);\n}\n\nexport function assertPullResponseV1(v: unknown): asserts v is PullResponseV1 {\n assertObject(v);\n if (isClientStateNotFoundResponse(v) || isVersionNotSupportedResponse(v)) {\n return;\n }\n if (v.cookie !== undefined) {\n assertCookie(v.cookie);\n }\n assertLastMutationIDChanges(v.lastMutationIDChanges);\n assertPatchOperations(v.patch);\n}\n\nfunction assertLastMutationIDChanges(\n lastMutationIDChanges: unknown,\n): asserts lastMutationIDChanges is Record<string, number> {\n assertObject(lastMutationIDChanges);\n for (const [key, value] of Object.entries(lastMutationIDChanges)) {\n assertString(key);\n assertNumber(value);\n }\n}\n\nexport function assertPullerResultV1(v: unknown): asserts v is PullerResultV1 {\n assertObject(v);\n assertHTTPRequestInfo(v.httpRequestInfo);\n if (v.response !== undefined) {\n assertPullResponseV1(v.response);\n }\n}\n"],"mappings":";;;;;;;;;;AAwBA,SAAgB,iBAAiB,KAA8C;CAC7E,eAAe,OACb,aACA,WACuB;EACvB,MAAM,CAAC,UAAU,mBAAmB,MAAM,iBACxC,IAAI,SACJ,IAAI,MACJ,WACA,WACF;EACA,IAAI,CAAC,UACH,OAAO,EAAC,gBAAe;EAGzB,OAAO;GACL,UAAU,MAAM,SAAS,KAAK;GAC9B;EACF;CACF;CAEA,eAAe,IAAI,MAAM;CACzB,OAAO;AACT;AAEA,IAAM,iCAAiB,IAAI,QAAQ;AAEnC,SAAgB,gBAAgB,QAAyB;CACvD,OAAO,eAAe,IAAI,MAAM;AAClC;AAEA,SAAgB,qBAAqB,GAAyC;CAC5E,aAAa,CAAC;CACd,IAAI,8BAA8B,CAAC,KAAK,8BAA8B,CAAC,GACrE;CAEF,IAAI,EAAE,WAAW,KAAA,GACf,aAAa,EAAE,MAAM;CAEvB,4BAA4B,EAAE,qBAAqB;CACnD,sBAAsB,EAAE,KAAK;AAC/B;AAEA,SAAS,4BACP,uBACyD;CACzD,aAAa,qBAAqB;CAClC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,qBAAqB,GAAG;EAChE,aAAa,GAAG;EAChB,aAAa,KAAK;CACpB;AACF;AAEA,SAAgB,qBAAqB,GAAyC;CAC5E,aAAa,CAAC;CACd,sBAAsB,EAAE,eAAe;CACvC,IAAI,EAAE,aAAa,KAAA,GACjB,qBAAqB,EAAE,QAAQ;AAEnC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-default-pusher.js","names":[],"sources":["../../../../../replicache/src/get-default-pusher.ts"],"sourcesContent":["import {callDefaultFetch} from './call-default-fetch.ts';\nimport {\n isClientStateNotFoundResponse,\n isVersionNotSupportedResponse,\n} from './error-responses.ts';\nimport type {Pusher, PusherResult} from './pusher.ts';\nimport type {PushRequest} from './sync/push.ts';\n\n/**\n * This creates a default pusher which uses HTTP POST to send the push request.\n */\nexport function getDefaultPusher(rep: {pushURL: string; auth: string}): Pusher {\n async function pusher(\n requestBody: PushRequest,\n requestID: string,\n ): Promise<PusherResult> {\n const [response, httpRequestInfo] = await callDefaultFetch(\n rep.pushURL,\n rep.auth,\n requestID,\n requestBody,\n );\n if (!response) {\n return {httpRequestInfo};\n }\n\n const rv: PusherResult = {\n httpRequestInfo,\n };\n\n let result;\n try {\n result = await response.json();\n } catch {\n // Ignore JSON parse errors. It is valid to return a non-JSON response.\n return rv;\n }\n\n if (\n isClientStateNotFoundResponse(result) ||\n isVersionNotSupportedResponse(result)\n ) {\n rv.response = result;\n }\n\n return rv;\n }\n\n defaultPushers.add(pusher);\n return pusher;\n}\n\nconst defaultPushers = new WeakSet();\n\nexport function isDefaultPusher(pusher: Pusher): boolean {\n return defaultPushers.has(pusher);\n}\n"],"mappings":";;;;;;AAWA,SAAgB,iBAAiB,KAA8C;CAC7E,eAAe,OACb,aACA,WACuB;EACvB,MAAM,CAAC,UAAU,mBAAmB,MAAM,iBACxC,IAAI,SACJ,IAAI,MACJ,WACA,WACF;EACA,IAAI,CAAC,UACH,OAAO,EAAC,gBAAe;EAGzB,MAAM,KAAmB,EACvB,gBACF;EAEA,IAAI;EACJ,IAAI;GACF,SAAS,MAAM,SAAS,KAAK;EAC/B,QAAQ;GAEN,OAAO;EACT;EAEA,IACE,8BAA8B,MAAM,KACpC,8BAA8B,MAAM,GAEpC,GAAG,WAAW;EAGhB,OAAO;CACT;CAEA,eAAe,IAAI,MAAM;CACzB,OAAO;AACT;AAEA,IAAM,iCAAiB,IAAI,QAAQ;AAEnC,SAAgB,gBAAgB,QAAyB;CACvD,OAAO,eAAe,IAAI,MAAM;AAClC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-kv-store-provider.js","names":[],"sources":["../../../../../replicache/src/get-kv-store-provider.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {\n dropIDBStoreWithMemFallback,\n newIDBStoreWithMemFallback,\n} from './kv/idb-store-with-mem-fallback.ts';\nimport {dropMemStore, MemStore} from './kv/mem-store.ts';\nimport type {StoreProvider} from './kv/store.ts';\n\nexport function getKVStoreProvider(\n lc: LogContext,\n kvStore: 'mem' | 'idb' | StoreProvider | undefined,\n): StoreProvider {\n switch (kvStore) {\n case 'idb':\n case undefined:\n return {\n create: name => newIDBStoreWithMemFallback(lc, name),\n drop: dropIDBStoreWithMemFallback,\n };\n case 'mem':\n return {\n create: name => new MemStore(name),\n drop: name => dropMemStore(name),\n };\n default:\n return kvStore;\n }\n}\n"],"mappings":";;;AAQA,SAAgB,mBACd,IACA,SACe;CACf,QAAQ,SAAR;EACE,KAAK;EACL,KAAK,KAAA,GACH,OAAO;GACL,SAAQ,SAAQ,2BAA2B,IAAI,IAAI;GACnD,MAAM;EACR;EACF,KAAK,OACH,OAAO;GACL,SAAQ,SAAQ,IAAI,SAAS,IAAI;GACjC,OAAM,SAAQ,aAAa,IAAI;EACjC;EACF,SACE,OAAO;CACX;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","names":[],"sources":["../../../../../replicache/src/hash.ts"],"sourcesContent":["import {assert} from '../../shared/src/asserts.ts';\nimport {randomUint64} from '../../shared/src/random-uint64.ts';\nimport * as valita from '../../shared/src/valita.ts';\n\nexport const STRING_LENGTH = 22;\n\n// We use an opaque type so that we can make sure that a hash is always a hash.\n// TypeScript does not have direct support but we can use a trick described\n// here:\n//\n// https://evertpot.com/opaque-ts-types/\n//\n// The basic idea is to declare a type that cannot be created. We then use\n// functions that cast a string to this type.\n//\n\n// By using declare we tell the type system that there is a unique symbol.\n// However, there is no such symbol but the type system does not care.\ndeclare const hashTag: unique symbol;\n\n/**\n * Opaque type representing a hash. The only way to create one is using `parse`\n * or `hashOf` (except for static unsafe cast of course).\n */\nexport type Hash = string & {[hashTag]: true};\n\n// We are no longer using hashes but due to legacy reason we still refer to\n// them as hashes. We use UUID and counters instead.\nconst hashRe = /^[0-9a-v-]+$/;\n\nexport function parse(s: string): Hash {\n assertHash(s);\n return s;\n}\n\nconst emptyUUID = '0'.repeat(STRING_LENGTH);\nexport const emptyHash = emptyUUID as unknown as Hash;\n\n/**\n * Creates a function that generates random hashes.\n */\nexport const newRandomHash = makeNewRandomHashFunctionInternal();\n\nconst fakeHashRe = /^[0-9a-v]{0,8}$/;\n\n/**\n * Creates a function that generates UUID hashes for tests.\n */\nexport function makeNewFakeHashFunction(hashPrefix = 'fake'): () => Hash {\n assert(fakeHashRe.test(hashPrefix), `Invalid hash prefix: ${hashPrefix}`);\n let i = 0;\n return () => {\n const count = String(i++);\n return (hashPrefix +\n '0'.repeat(STRING_LENGTH - hashPrefix.length - count.length) +\n count) as Hash;\n };\n}\n\nfunction toStringAndSlice(n: number | bigint, len: number): string {\n return n.toString(32).slice(-len).padStart(len, '0');\n}\n\n/**\n * This creates an ID that looks like `<RANDOM><COUNTER>`. The random part is\n * a random number encoded with base 32 and the length is 12 characters. The\n * is 10 characters long and encoded as base 32. The total length is 22 characters.\n *\n * Do the math: https://devina.io/collision-calculator\n */\nfunction makeNewRandomHashFunctionInternal(): () => Hash {\n let base = '';\n let i = 0;\n\n return () => {\n if (!base) {\n // This needs to be lazy because the cloudflare worker environment will\n // throw an error if crypto.getRandomValues is used statically. Specifically:\n // Error: Some functionality, such as asynchronous I/O, timeouts, and\n // generating random values, can only be performed while handling a\n // request.\n base = toStringAndSlice(randomUint64(), 12);\n }\n const tail = toStringAndSlice(i++, 10);\n return (base + tail) as Hash;\n };\n}\n\n/**\n * Generates a fake hash useful for testing.\n */\nexport function fakeHash(word: string | number): Hash {\n if (typeof word === 'number') {\n word = String(word);\n }\n return ('fake' + '0'.repeat(STRING_LENGTH - 4 - word.length) + word) as Hash;\n}\n\nexport function isHash(value: unknown): value is Hash {\n return typeof value === 'string' && hashRe.test(value);\n}\n\nexport function assertHash(value: unknown): asserts value is Hash {\n valita.assert(value, hashSchema);\n}\n\nexport const hashSchema = valita.string().assert(isHash, 'Invalid hash');\n"],"mappings":";;AA4BA,IAAM,SAAS;AAQf,IAAa,YADK,IAAI,OAAA,EACG;;;;AAKzB,IAAa,gBAAgB,kCAAkC;AAkB/D,SAAS,iBAAiB,GAAoB,KAAqB;CACjE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,KAAK,GAAG;AACrD;;;;;;;;AASA,SAAS,oCAAgD;CACvD,IAAI,OAAO;CACX,IAAI,IAAI;CAER,aAAa;EACX,IAAI,CAAC,MAMH,OAAO,iBAAiB,aAAa,GAAG,EAAE;EAE5C,MAAM,OAAO,iBAAiB,KAAK,EAAE;EACrC,OAAQ,OAAO;CACjB;AACF;AAYA,SAAgB,OAAO,OAA+B;CACpD,OAAO,OAAO,UAAU,YAAY,OAAO,KAAK,KAAK;AACvD;AAEA,SAAgB,WAAW,OAAuC;CAChE,OAAc,OAAO,UAAU;AACjC;AAEA,IAAa,aAAa,eAAO,OAAO,EAAE,OAAO,QAAQ,cAAc"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request-info.js","names":[],"sources":["../../../../../replicache/src/http-request-info.ts"],"sourcesContent":["import {\n assertNumber,\n assertObject,\n assertString,\n} from '../../shared/src/asserts.ts';\n\nexport function assertHTTPRequestInfo(\n v: unknown,\n): asserts v is HTTPRequestInfo {\n assertObject(v);\n assertNumber(v.httpStatusCode);\n assertString(v.errorMessage);\n}\n\nexport type HTTPRequestInfo = {\n httpStatusCode: number;\n errorMessage: string;\n};\n"],"mappings":";;AAMA,SAAgB,sBACd,GAC8B;CAC9B,aAAa,CAAC;CACd,aAAa,EAAE,cAAc;CAC7B,aAAa,EAAE,YAAY;AAC7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-defs.js","names":[],"sources":["../../../../../replicache/src/index-defs.ts"],"sourcesContent":["import * as valita from '../../shared/src/valita.ts';\n\n/**\n * The definition of a single index.\n */\nexport type IndexDefinition = {\n /**\n * The prefix, if any, to limit the index over. If not provided the values of\n * all keys are indexed.\n */\n readonly prefix?: string | undefined;\n\n /**\n * A [JSON Pointer](https://tools.ietf.org/html/rfc6901) pointing at the sub\n * value inside each value to index over.\n *\n * For example, one might index over users' ages like so:\n * `{prefix: '/user/', jsonPointer: '/age'}`\n */\n readonly jsonPointer: string;\n\n /**\n * If `true`, indexing empty values will not emit a warning. Defaults to `false`.\n */\n readonly allowEmpty?: boolean | undefined;\n};\n\nexport const indexDefinitionSchema: valita.Type<IndexDefinition> =\n valita.readonlyObject({\n prefix: valita.string().optional(),\n jsonPointer: valita.string(),\n allowEmpty: valita.boolean().optional(),\n });\n\n/**\n * An object as a map defining the indexes. The keys are the index names and the\n * values are the index definitions.\n */\nexport type IndexDefinitions = {readonly [name: string]: IndexDefinition};\n\nexport const indexDefinitionsSchema = valita.readonlyRecord(\n indexDefinitionSchema,\n);\n\nexport function indexDefinitionEqual(\n a: IndexDefinition,\n b: IndexDefinition,\n): boolean {\n return (\n a.jsonPointer === b.jsonPointer &&\n (a.allowEmpty ?? false) === (b.allowEmpty ?? false) &&\n (a.prefix ?? '') === (b.prefix ?? '')\n );\n}\n\nexport function indexDefinitionsEqual(\n a: IndexDefinitions,\n b: IndexDefinitions,\n): boolean {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const [aKey, aValue] of Object.entries(a)) {\n const bValue = b[aKey];\n if (!bValue || !indexDefinitionEqual(aValue, bValue)) {\n return false;\n }\n }\n return true;\n}\n\nexport function assertIndexDefinitions(\n value: unknown,\n): asserts value is IndexDefinitions {\n valita.assert(value, indexDefinitionsSchema);\n}\n"],"mappings":";AAwCA,IAAa,yBAAyB,eAZpC,eAAsB;CACpB,QAAQ,eAAO,OAAO,EAAE,SAAS;CACjC,aAAa,eAAO,OAAO;CAC3B,YAAY,eAAO,QAAQ,EAAE,SAAS;AACxC,CASA,CACF;AAEA,SAAgB,qBACd,GACA,GACS;CACT,OACE,EAAE,gBAAgB,EAAE,gBACnB,EAAE,cAAc,YAAY,EAAE,cAAc,WAC5C,EAAE,UAAU,SAAS,EAAE,UAAU;AAEtC;AAEA,SAAgB,sBACd,GACA,GACS;CACT,IAAI,OAAO,KAAK,CAAC,EAAE,WAAW,OAAO,KAAK,CAAC,EAAE,QAC3C,OAAO;CAET,KAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,CAAC,GAAG;EAC9C,MAAM,SAAS,EAAE;EACjB,IAAI,CAAC,UAAU,CAAC,qBAAqB,QAAQ,MAAM,GACjD,OAAO;CAEX;CACA,OAAO;AACT"}
@@ -0,0 +1,57 @@
1
+ import { SQLiteStore, dropStore } from "../sqlite-store.js";
2
+ import { deleteDatabaseSync, openDatabaseSync } from "expo-sqlite";
3
+ //#region ../replicache/src/kv/expo-sqlite/store.ts
4
+ function dropExpoSQLiteStore(name, opts) {
5
+ return dropStore(name, (filename) => new ExpoSQLiteDatabase(filename), opts);
6
+ }
7
+ /**
8
+ * Creates a StoreProvider for SQLite-based stores using expo-sqlite.
9
+ * Supports shared connections between multiple store instances with the same name,
10
+ * providing efficient resource utilization and proper transaction isolation.
11
+ */
12
+ function expoSQLiteStoreProvider(opts) {
13
+ return {
14
+ create: (name) => new SQLiteStore(name, (name) => new ExpoSQLiteDatabase(name), opts),
15
+ drop: (name) => dropExpoSQLiteStore(name, opts)
16
+ };
17
+ }
18
+ var ExpoSQLitePreparedStatement = class {
19
+ #statement;
20
+ constructor(statement) {
21
+ this.#statement = statement;
22
+ }
23
+ async exec(params) {
24
+ await this.#statement.executeForRawResultAsync(params);
25
+ }
26
+ async all(params) {
27
+ return (await this.#statement.executeForRawResultAsync(params)).getAllAsync();
28
+ }
29
+ };
30
+ var ExpoSQLiteDatabase = class {
31
+ #db;
32
+ #filename;
33
+ #statements = /* @__PURE__ */ new Set();
34
+ constructor(filename) {
35
+ this.#filename = filename;
36
+ this.#db = openDatabaseSync(filename);
37
+ }
38
+ close() {
39
+ for (const stmt of this.#statements) stmt.finalizeSync();
40
+ this.#db.closeSync();
41
+ }
42
+ destroy() {
43
+ deleteDatabaseSync(this.#filename);
44
+ }
45
+ prepare(sql) {
46
+ const statement = this.#db.prepareSync(sql);
47
+ this.#statements.add(statement);
48
+ return new ExpoSQLitePreparedStatement(statement);
49
+ }
50
+ execSync(sql) {
51
+ this.#db.execSync(sql);
52
+ }
53
+ };
54
+ //#endregion
55
+ export { expoSQLiteStoreProvider };
56
+
57
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","names":["#statement","#db","#filename","#statements"],"sources":["../../../../../../../replicache/src/kv/expo-sqlite/store.ts"],"sourcesContent":["import {\n deleteDatabaseSync,\n openDatabaseSync,\n type SQLiteDatabase as DB,\n type SQLiteStatement,\n} from 'expo-sqlite';\nimport type {\n PreparedStatement,\n SQLiteDatabase,\n SQLiteStoreOptions,\n} from '../sqlite-store.ts';\nimport {dropStore, SQLiteStore} from '../sqlite-store.ts';\nimport type {StoreProvider} from '../store.ts';\n\nexport type ExpoSQLiteStoreOptions = SQLiteStoreOptions;\n\nexport function dropExpoSQLiteStore(\n name: string,\n opts?: ExpoSQLiteStoreOptions,\n): Promise<void> {\n return dropStore(name, filename => new ExpoSQLiteDatabase(filename), opts);\n}\n\n/**\n * Creates a StoreProvider for SQLite-based stores using expo-sqlite.\n * Supports shared connections between multiple store instances with the same name,\n * providing efficient resource utilization and proper transaction isolation.\n */\nexport function expoSQLiteStoreProvider(\n opts?: ExpoSQLiteStoreOptions,\n): StoreProvider {\n return {\n create: name =>\n new SQLiteStore(name, name => new ExpoSQLiteDatabase(name), opts),\n drop: name => dropExpoSQLiteStore(name, opts),\n };\n}\n\nclass ExpoSQLitePreparedStatement implements PreparedStatement {\n readonly #statement: SQLiteStatement;\n\n constructor(statement: SQLiteStatement) {\n this.#statement = statement;\n }\n\n async exec(params: string[]): Promise<void> {\n await this.#statement.executeForRawResultAsync(params);\n }\n\n async all(params: string[]): Promise<unknown[][]> {\n const result = await this.#statement.executeForRawResultAsync(params);\n return result.getAllAsync() as Promise<unknown[][]>;\n }\n}\n\nclass ExpoSQLiteDatabase implements SQLiteDatabase {\n readonly #db: DB;\n readonly #filename: string;\n readonly #statements: Set<SQLiteStatement> = new Set();\n\n constructor(filename: string) {\n this.#filename = filename;\n this.#db = openDatabaseSync(filename);\n }\n\n close(): void {\n for (const stmt of this.#statements) {\n stmt.finalizeSync();\n }\n this.#db.closeSync();\n }\n\n destroy(): void {\n deleteDatabaseSync(this.#filename);\n }\n\n prepare(sql: string): PreparedStatement {\n const statement = this.#db.prepareSync(sql);\n this.#statements.add(statement);\n return new ExpoSQLitePreparedStatement(statement);\n }\n\n execSync(sql: string): void {\n this.#db.execSync(sql);\n }\n}\n"],"mappings":";;;AAgBA,SAAgB,oBACd,MACA,MACe;CACf,OAAO,UAAU,OAAM,aAAY,IAAI,mBAAmB,QAAQ,GAAG,IAAI;AAC3E;;;;;;AAOA,SAAgB,wBACd,MACe;CACf,OAAO;EACL,SAAQ,SACN,IAAI,YAAY,OAAM,SAAQ,IAAI,mBAAmB,IAAI,GAAG,IAAI;EAClE,OAAM,SAAQ,oBAAoB,MAAM,IAAI;CAC9C;AACF;AAEA,IAAM,8BAAN,MAA+D;CAC7D;CAEA,YAAY,WAA4B;EACtC,KAAKA,aAAa;CACpB;CAEA,MAAM,KAAK,QAAiC;EAC1C,MAAM,KAAKA,WAAW,yBAAyB,MAAM;CACvD;CAEA,MAAM,IAAI,QAAwC;EAEhD,QAAO,MADc,KAAKA,WAAW,yBAAyB,MAAM,GACtD,YAAY;CAC5B;AACF;AAEA,IAAM,qBAAN,MAAmD;CACjD;CACA;CACA,8BAA6C,IAAI,IAAI;CAErD,YAAY,UAAkB;EAC5B,KAAKE,YAAY;EACjB,KAAKD,MAAM,iBAAiB,QAAQ;CACtC;CAEA,QAAc;EACZ,KAAK,MAAM,QAAQ,KAAKE,aACtB,KAAK,aAAa;EAEpB,KAAKF,IAAI,UAAU;CACrB;CAEA,UAAgB;EACd,mBAAmB,KAAKC,SAAS;CACnC;CAEA,QAAQ,KAAgC;EACtC,MAAM,YAAY,KAAKD,IAAI,YAAY,GAAG;EAC1C,KAAKE,YAAY,IAAI,SAAS;EAC9B,OAAO,IAAI,4BAA4B,SAAS;CAClD;CAEA,SAAS,KAAmB;EAC1B,KAAKF,IAAI,SAAS,GAAG;CACvB;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idb-store-with-mem-fallback.js","names":["#lc","#name","#store","#withBrainTransplant"],"sources":["../../../../../../replicache/src/kv/idb-store-with-mem-fallback.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {navigator} from '../../../shared/src/navigator.ts';\nimport {promiseVoid} from '../../../shared/src/resolved-promises.ts';\nimport {IDBStore} from './idb-store.ts';\nimport {MemStore, dropMemStore} from './mem-store.ts';\nimport type {Read, Store, Write} from './store.ts';\n\n/**\n * This store uses an {@link IDBStore} by default. If the {@link IDBStore} fails\n * to open the DB with an exception that matches\n * {@link isFirefoxPrivateBrowsingError} we switch out the implementation to use\n * a {@link MemStore} instead.\n *\n * The reason this is relatively complicated is that when {@link IDBStore} is\n * created, it calls `openDatabase` synchronously, but that returns a `Promise`\n * that will reject in the case of Firefox private browsing. We don't await this\n * promise until we call `read` or `write` so we cannot do the switch until\n * then.\n */\n\nexport class IDBStoreWithMemFallback implements Store {\n readonly #lc: LogContext;\n readonly #name: string;\n #store: Store;\n constructor(lc: LogContext, name: string) {\n this.#lc = lc;\n this.#name = name;\n this.#store = new IDBStore(name);\n }\n\n read(): Promise<Read> {\n return this.#withBrainTransplant(s => s.read());\n }\n\n write(): Promise<Write> {\n return this.#withBrainTransplant(s => s.write());\n }\n\n async #withBrainTransplant<T extends Read>(\n f: (store: Store) => Promise<T>,\n ): Promise<T> {\n try {\n return await f(this.#store);\n } catch (e) {\n if (isFirefoxPrivateBrowsingError(e)) {\n // It is possible that we end up with multiple pending read/write and\n // they all reject. Make sure we only replace the implementation once.\n if (this.#store instanceof IDBStore) {\n this.#lc.info?.(\n 'Switching to MemStore because of Firefox private browsing error',\n );\n this.#store = new MemStore(this.#name);\n }\n return f(this.#store);\n }\n throw e;\n }\n }\n\n close(): Promise<void> {\n return this.#store.close();\n }\n\n get closed(): boolean {\n return this.#store.closed;\n }\n}\n\nfunction isFirefoxPrivateBrowsingError(e: unknown): e is DOMException {\n return (\n isFirefox() &&\n e instanceof DOMException &&\n e.name === 'InvalidStateError' &&\n e.message ===\n 'A mutation operation was attempted on a database that did not allow mutations.'\n );\n}\n\nfunction isFirefox(): boolean {\n return navigator?.userAgent?.includes('Firefox') ?? false;\n}\n\nexport function newIDBStoreWithMemFallback(\n lc: LogContext,\n name: string,\n): Store {\n if (isFirefox()) {\n return new IDBStoreWithMemFallback(lc, name);\n }\n return new IDBStore(name);\n}\n\nexport function dropIDBStoreWithMemFallback(name: string): Promise<void> {\n if (!isFirefox()) {\n return dropIDBStore(name);\n }\n try {\n return dropIDBStore(name);\n } catch (e) {\n if (isFirefoxPrivateBrowsingError(e)) {\n return dropMemStore(name);\n }\n }\n return promiseVoid;\n}\n\nfunction dropIDBStore(name: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const req = indexedDB.deleteDatabase(name);\n req.onsuccess = () => resolve();\n req.onerror = () => reject(req.error);\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,IAAa,0BAAb,MAAsD;CACpD;CACA;CACA;CACA,YAAY,IAAgB,MAAc;EACxC,KAAKA,MAAM;EACX,KAAKC,QAAQ;EACb,KAAKC,SAAS,IAAI,SAAS,IAAI;CACjC;CAEA,OAAsB;EACpB,OAAO,KAAKC,sBAAqB,MAAK,EAAE,KAAK,CAAC;CAChD;CAEA,QAAwB;EACtB,OAAO,KAAKA,sBAAqB,MAAK,EAAE,MAAM,CAAC;CACjD;CAEA,MAAMA,qBACJ,GACY;EACZ,IAAI;GACF,OAAO,MAAM,EAAE,KAAKD,MAAM;EAC5B,SAAS,GAAG;GACV,IAAI,8BAA8B,CAAC,GAAG;IAGpC,IAAI,KAAKA,kBAAkB,UAAU;KACnC,KAAKF,IAAI,OACP,iEACF;KACA,KAAKE,SAAS,IAAI,SAAS,KAAKD,KAAK;IACvC;IACA,OAAO,EAAE,KAAKC,MAAM;GACtB;GACA,MAAM;EACR;CACF;CAEA,QAAuB;EACrB,OAAO,KAAKA,OAAO,MAAM;CAC3B;CAEA,IAAI,SAAkB;EACpB,OAAO,KAAKA,OAAO;CACrB;AACF;AAEA,SAAS,8BAA8B,GAA+B;CACpE,OACE,UAAU,KACV,aAAa,gBACb,EAAE,SAAS,uBACX,EAAE,YACA;AAEN;AAEA,SAAS,YAAqB;CAC5B,OAAO,gBAAW,WAAW,SAAS,SAAS,KAAK;AACtD;AAEA,SAAgB,2BACd,IACA,MACO;CACP,IAAI,UAAU,GACZ,OAAO,IAAI,wBAAwB,IAAI,IAAI;CAE7C,OAAO,IAAI,SAAS,IAAI;AAC1B;AAEA,SAAgB,4BAA4B,MAA6B;CACvE,IAAI,CAAC,UAAU,GACb,OAAO,aAAa,IAAI;CAE1B,IAAI;EACF,OAAO,aAAa,IAAI;CAC1B,SAAS,GAAG;EACV,IAAI,8BAA8B,CAAC,GACjC,OAAO,aAAa,IAAI;CAE5B;CACA,OAAO;AACT;AAEA,SAAS,aAAa,MAA6B;CACjD,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,MAAM,UAAU,eAAe,IAAI;EACzC,IAAI,kBAAkB,QAAQ;EAC9B,IAAI,gBAAgB,OAAO,IAAI,KAAK;CACtC,CAAC;AACH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idb-store.js","names":["#db","#closed","#withReopen","#idbDeleted","#tx"],"sources":["../../../../../../replicache/src/kv/idb-store.ts"],"sourcesContent":["import {resolver} from '@rocicorp/resolver';\nimport {assertNotNull} from '../../../shared/src/asserts.ts';\nimport {mustGetBrowserGlobal} from '../../../shared/src/browser-env.ts';\nimport {promiseVoid} from '../../../shared/src/resolved-promises.ts';\nimport {\n type FrozenJSONValue,\n deepFreezeAllowUndefined,\n} from '../frozen-json.ts';\nimport type {Read, Store, Write} from './store.ts';\nimport {\n storeIsClosedRejection,\n transactionIsClosedRejection,\n} from './throw-if-closed.ts';\nimport {WriteImplBase, deleteSentinel} from './write-impl-base.ts';\n\nconst RELAXED = {durability: 'relaxed'} as const;\nconst OBJECT_STORE = 'chunks';\n\nexport class IDBStore implements Store {\n #db: Promise<IDBDatabase>;\n #closed = false;\n #idbDeleted = false;\n\n constructor(name: string) {\n this.#db = openDatabase(name);\n }\n\n read(): Promise<Read> {\n if (this.#closed) {\n return storeIsClosedRejection();\n }\n return this.#withReopen(readImpl);\n }\n\n write(): Promise<Write> {\n if (this.#closed) {\n return storeIsClosedRejection();\n }\n return this.#withReopen(writeImpl);\n }\n\n async close(): Promise<void> {\n if (!this.#idbDeleted) {\n const db = await this.#db;\n db.close();\n }\n this.#closed = true;\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n\n async #withReopen<R>(fn: (db: IDBDatabase) => R): Promise<R> {\n // Tries to reopen an IndexedDB, and rejects if the database needs\n // upgrading (is missing for whatever reason).\n const reopenExistingDB = async (name: string): Promise<IDBDatabase> => {\n const {promise, resolve, reject} = resolver<IDBDatabase>();\n const req = indexedDB.open(name);\n\n req.onupgradeneeded = () => {\n const tx = req.transaction;\n assertNotNull(tx);\n tx.abort();\n this.#idbDeleted = true;\n reject(\n new IDBNotFoundError(\n `Expected IndexedDB not found: ${name}. This likely means that the user deleted IndexedDB instances while the app was running. This is non-fatal. The app will continue running in memory until reload.`,\n ),\n );\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n const db = await promise;\n db.onversionchange = () => db.close();\n return db;\n };\n\n // We abstract on `readImpl` to work around an issue in Safari. Safari does\n // not allow any microtask between a transaction is created until it is\n // first used. We used to use `await read()` here instead of `await\n // this._db` but then there is a microtask between the creation of the\n // transaction and the return of this function. By doing `await this._db`\n // here we only await the db and no await is involved with the transaction.\n // See https://github.com/jakearchibald/idb-keyval/commit/1af0a00b1a70a678d2f9cf5e74c55a22e57324c5#r55989916\n const db = await this.#db;\n\n try {\n return fn(db);\n } catch (e: unknown) {\n if (!this.#closed && e instanceof DOMException) {\n if (e.name === 'InvalidStateError') {\n this.#db = reopenExistingDB(db.name);\n const reopened = await this.#db;\n return fn(reopened);\n } else if (e.name === 'NotFoundError') {\n // This edge-case can happen if the db has been deleted and the\n // user/developer has DevTools open in certain browsers.\n // See discussion at https://github.com/rocicorp/replicache-internal/pull/216\n this.#idbDeleted = true;\n mustGetBrowserGlobal('indexedDB').deleteDatabase(db.name);\n throw new IDBNotFoundError(\n `Expected IndexedDB ${db.name} missing object store. Deleting db. This is non-fatal, the app will continue working in memory until it is reloaded.`,\n );\n }\n }\n throw e;\n }\n }\n}\n\nclass ReadImpl implements Read {\n readonly #tx: IDBTransaction;\n #closed = false;\n\n constructor(tx: IDBTransaction) {\n this.#tx = tx;\n }\n\n has(key: string): Promise<boolean> {\n if (this.#closed) {\n return transactionIsClosedRejection();\n }\n return new Promise((resolve, reject) => {\n const req = objectStore(this.#tx).count(key);\n req.onsuccess = () => resolve(req.result > 0);\n req.onerror = () => reject(req.error);\n });\n }\n\n get(key: string): Promise<FrozenJSONValue | undefined> {\n if (this.#closed) {\n return transactionIsClosedRejection();\n }\n return new Promise((resolve, reject) => {\n const req = objectStore(this.#tx).get(key);\n req.onsuccess = () => resolve(deepFreezeAllowUndefined(req.result));\n req.onerror = () => reject(req.error);\n });\n }\n\n release(): void {\n this.#closed = true;\n // Do nothing. We rely on IDB locking.\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n}\n\nclass WriteImpl extends WriteImplBase {\n readonly #tx: IDBTransaction;\n #closed = false;\n\n constructor(tx: IDBTransaction) {\n super(new ReadImpl(tx));\n this.#tx = tx;\n }\n\n commit(): Promise<void> {\n if (this.#closed) {\n return transactionIsClosedRejection();\n }\n if (this._pending.size === 0) {\n return promiseVoid;\n }\n\n return new Promise((resolve, reject) => {\n const tx = this.#tx;\n const store = objectStore(tx);\n for (const [key, val] of this._pending) {\n if (val === deleteSentinel) {\n store.delete(key);\n } else {\n store.put(val, key);\n }\n }\n tx.oncomplete = () => resolve();\n tx.onerror = () => reject(tx.error);\n });\n }\n\n release(): void {\n // We rely on IDB locking so no need to do anything here.\n this.#closed = true;\n super.release();\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n}\n\nfunction writeImpl(db: IDBDatabase): Write {\n const tx = db.transaction(OBJECT_STORE, 'readwrite', RELAXED);\n return new WriteImpl(tx);\n}\n\nfunction readImpl(db: IDBDatabase): Read {\n const tx = db.transaction(OBJECT_STORE, 'readonly');\n return new ReadImpl(tx);\n}\n\nfunction objectStore(tx: IDBTransaction): IDBObjectStore {\n return tx.objectStore(OBJECT_STORE);\n}\n\nfunction openDatabase(name: string): Promise<IDBDatabase> {\n const idb = mustGetBrowserGlobal('indexedDB');\n return new Promise((resolve, reject) => {\n const req = idb.open(name);\n req.onupgradeneeded = () => {\n req.result.createObjectStore(OBJECT_STORE);\n };\n req.onsuccess = () => {\n const db = req.result;\n // Another tab/process wants to modify the db, so release it.\n db.onversionchange = () => db.close();\n resolve(db);\n };\n req.onerror = () => reject(req.error);\n });\n}\n\n/**\n * This error is thrown when we detect that the IndexedDB has been removed. This\n * does not normally happen but can happen during development if the user has\n * DevTools open and deletes the IndexedDB from there.\n */\nexport class IDBNotFoundError extends Error {\n name = 'IDBNotFoundError';\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mem-store.js","names":["#map","#rwLock","#closed"],"sources":["../../../../../../replicache/src/kv/mem-store.ts"],"sourcesContent":["import {RWLock} from '@rocicorp/lock';\nimport {promiseVoid} from '../../../shared/src/resolved-promises.ts';\nimport type {FrozenJSONValue} from '../frozen-json.ts';\nimport {ReadImpl} from './read-impl.ts';\nimport type {Read, Store, Write} from './store.ts';\nimport {throwIfStoreClosed} from './throw-if-closed.ts';\nimport {WriteImpl} from './write-impl.ts';\n\ntype StorageMap = Map<string, FrozenJSONValue>;\n\ntype Value = {readonly lock: RWLock; readonly map: StorageMap};\n\nconst stores = new Map<string, Value>();\n\nexport function clearAllNamedMemStoresForTesting(): void {\n stores.clear();\n}\n\nexport function dropMemStore(name: string): Promise<void> {\n stores.delete(name);\n return promiseVoid;\n}\n\nexport function hasMemStore(name: string): boolean {\n return stores.has(name);\n}\n\n/**\n * A named in-memory Store implementation.\n *\n * Two (or more) named memory stores with the same name will share the same\n * underlying storage. They will also share the same read/write locks, so that\n * only one write transaction can be running at the same time.\n *\n * @experimental This class is experimental and might be removed or changed\n * in the future without following semver versioning. Please be cautious.\n */\nexport class MemStore implements Store {\n readonly #map: StorageMap;\n readonly #rwLock: RWLock;\n #closed = false;\n\n constructor(name: string) {\n const entry = stores.get(name);\n let lock: RWLock;\n let map: StorageMap;\n if (entry) {\n ({lock, map} = entry);\n } else {\n lock = new RWLock();\n map = new Map();\n stores.set(name, {lock, map});\n }\n this.#rwLock = lock;\n this.#map = map;\n }\n\n async read(): Promise<Read> {\n throwIfStoreClosed(this);\n const release = await this.#rwLock.read();\n return new ReadImpl(this.#map, release);\n }\n\n async write(): Promise<Write> {\n throwIfStoreClosed(this);\n const release = await this.#rwLock.write();\n return new WriteImpl(this.#map, release);\n }\n\n close(): Promise<void> {\n this.#closed = true;\n return promiseVoid;\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n}\n"],"mappings":";;;;;;AAYA,IAAM,yBAAS,IAAI,IAAmB;AAMtC,SAAgB,aAAa,MAA6B;CACxD,OAAO,OAAO,IAAI;CAClB,OAAO;AACT;;;;;;;;;;;AAgBA,IAAa,WAAb,MAAuC;CACrC;CACA;CACA,UAAU;CAEV,YAAY,MAAc;EACxB,MAAM,QAAQ,OAAO,IAAI,IAAI;EAC7B,IAAI;EACJ,IAAI;EACJ,IAAI,OACF,CAAC,CAAC,MAAM,OAAO;OACV;GACL,OAAO,IAAI,OAAO;GAClB,sBAAM,IAAI,IAAI;GACd,OAAO,IAAI,MAAM;IAAC;IAAM;GAAG,CAAC;EAC9B;EACA,KAAKC,UAAU;EACf,KAAKD,OAAO;CACd;CAEA,MAAM,OAAsB;EAC1B,mBAAmB,IAAI;EACvB,MAAM,UAAU,MAAM,KAAKC,QAAQ,KAAK;EACxC,OAAO,IAAI,SAAS,KAAKD,MAAM,OAAO;CACxC;CAEA,MAAM,QAAwB;EAC5B,mBAAmB,IAAI;EACvB,MAAM,UAAU,MAAM,KAAKC,QAAQ,MAAM;EACzC,OAAO,IAAI,UAAU,KAAKD,MAAM,OAAO;CACzC;CAEA,QAAuB;EACrB,KAAKE,UAAU;EACf,OAAO;CACT;CAEA,IAAI,SAAkB;EACpB,OAAO,KAAKA;CACd;AACF"}
@@ -0,0 +1,63 @@
1
+ import { SQLiteStore, dropStore } from "../sqlite-store.js";
2
+ import { open } from "./types.js";
3
+ //#region ../replicache/src/kv/op-sqlite/store.ts
4
+ function dropOpSQLiteStore(name, opts) {
5
+ return dropStore(name, (filename, options) => new OpSQLiteDatabase(filename, options), opts);
6
+ }
7
+ /**
8
+ * Creates a StoreProvider for SQLite-based stores using @op-engineering/op-sqlite.
9
+ * Supports shared connections between multiple store instances with the same name,
10
+ * providing efficient resource utilization and proper transaction isolation.
11
+ * Uses parameterized queries for safety and performance.
12
+ */
13
+ function opSQLiteStoreProvider(opts) {
14
+ return {
15
+ create: (name) => new SQLiteStore(name, (name, options) => new OpSQLiteDatabase(name, options), opts),
16
+ drop: (name) => dropOpSQLiteStore(name, opts)
17
+ };
18
+ }
19
+ var OpSQLitePreparedStatement = class {
20
+ #db;
21
+ #sql;
22
+ constructor(db, sql) {
23
+ this.#db = db;
24
+ this.#sql = sql;
25
+ }
26
+ async exec(params) {
27
+ await this.#db.executeRaw(this.#sql, params);
28
+ }
29
+ all(params) {
30
+ return this.#db.executeRaw(this.#sql, params);
31
+ }
32
+ };
33
+ var OpSQLiteDatabase = class {
34
+ #db;
35
+ #filename;
36
+ constructor(filename, opts) {
37
+ this.#filename = filename;
38
+ const openOpts = { name: filename };
39
+ if (opts?.location) openOpts.location = opts.location;
40
+ if (opts?.encryptionKey) openOpts.encryptionKey = opts.encryptionKey;
41
+ this.#db = open(openOpts);
42
+ }
43
+ close() {
44
+ this.#db.close();
45
+ }
46
+ destroy() {
47
+ try {
48
+ const tempDb = open({ name: this.#filename });
49
+ tempDb.delete();
50
+ tempDb.close();
51
+ } catch (_error) {}
52
+ }
53
+ prepare(sql) {
54
+ return new OpSQLitePreparedStatement(this.#db, sql);
55
+ }
56
+ execSync(sql) {
57
+ this.#db.executeRawSync(sql, []);
58
+ }
59
+ };
60
+ //#endregion
61
+ export { opSQLiteStoreProvider };
62
+
63
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","names":["#db","#sql","#filename"],"sources":["../../../../../../../replicache/src/kv/op-sqlite/store.ts"],"sourcesContent":["import type {\n PreparedStatement,\n SQLiteDatabase,\n SQLiteStoreOptions,\n} from '../sqlite-store.ts';\nimport {dropStore, SQLiteStore} from '../sqlite-store.ts';\nimport type {StoreProvider} from '../store.ts';\nimport {open, type DB} from './types.ts';\n\nexport type OpSQLiteStoreOptions = SQLiteStoreOptions & {\n // OpSQLite-specific options\n location?: 'default' | 'Library' | 'Documents' | 'Temporary';\n encryptionKey?: string;\n};\n\nfunction dropOpSQLiteStore(\n name: string,\n opts?: OpSQLiteStoreOptions,\n): Promise<void> {\n return dropStore(\n name,\n (filename, options) => new OpSQLiteDatabase(filename, options),\n opts,\n );\n}\n\n/**\n * Creates a StoreProvider for SQLite-based stores using @op-engineering/op-sqlite.\n * Supports shared connections between multiple store instances with the same name,\n * providing efficient resource utilization and proper transaction isolation.\n * Uses parameterized queries for safety and performance.\n */\nexport function opSQLiteStoreProvider(\n opts?: OpSQLiteStoreOptions,\n): StoreProvider {\n return {\n create: name =>\n new SQLiteStore(\n name,\n (name, options) => new OpSQLiteDatabase(name, options),\n opts,\n ),\n drop: name => dropOpSQLiteStore(name, opts),\n };\n}\n\nclass OpSQLitePreparedStatement implements PreparedStatement {\n readonly #db: DB;\n readonly #sql: string;\n\n constructor(db: DB, sql: string) {\n this.#db = db;\n this.#sql = sql;\n }\n\n async exec(params: string[]): Promise<void> {\n await this.#db.executeRaw(this.#sql, params);\n }\n\n all(params: string[]): Promise<unknown[][]> {\n return this.#db.executeRaw(this.#sql, params);\n }\n}\n\nclass OpSQLiteDatabase implements SQLiteDatabase {\n readonly #db: DB;\n readonly #filename: string;\n\n constructor(filename: string, opts?: OpSQLiteStoreOptions) {\n this.#filename = filename;\n const openOpts: {\n name: string;\n location?: string;\n encryptionKey?: string;\n } = {name: filename};\n\n if (opts?.location) {\n openOpts.location = opts.location;\n }\n if (opts?.encryptionKey) {\n openOpts.encryptionKey = opts.encryptionKey;\n }\n\n this.#db = open(openOpts);\n }\n\n close(): void {\n this.#db.close();\n }\n\n destroy(): void {\n // OpSQLite uses delete method on the database instance\n // We need to create a temporary connection to delete the database\n try {\n const tempDb = open({name: this.#filename});\n tempDb.delete();\n tempDb.close();\n } catch (_error) {\n // Database might not exist, which is fine\n }\n }\n\n prepare(sql: string): PreparedStatement {\n return new OpSQLitePreparedStatement(this.#db, sql);\n }\n\n execSync(sql: string): void {\n this.#db.executeRawSync(sql, []);\n }\n}\n"],"mappings":";;;AAeA,SAAS,kBACP,MACA,MACe;CACf,OAAO,UACL,OACC,UAAU,YAAY,IAAI,iBAAiB,UAAU,OAAO,GAC7D,IACF;AACF;;;;;;;AAQA,SAAgB,sBACd,MACe;CACf,OAAO;EACL,SAAQ,SACN,IAAI,YACF,OACC,MAAM,YAAY,IAAI,iBAAiB,MAAM,OAAO,GACrD,IACF;EACF,OAAM,SAAQ,kBAAkB,MAAM,IAAI;CAC5C;AACF;AAEA,IAAM,4BAAN,MAA6D;CAC3D;CACA;CAEA,YAAY,IAAQ,KAAa;EAC/B,KAAKA,MAAM;EACX,KAAKC,OAAO;CACd;CAEA,MAAM,KAAK,QAAiC;EAC1C,MAAM,KAAKD,IAAI,WAAW,KAAKC,MAAM,MAAM;CAC7C;CAEA,IAAI,QAAwC;EAC1C,OAAO,KAAKD,IAAI,WAAW,KAAKC,MAAM,MAAM;CAC9C;AACF;AAEA,IAAM,mBAAN,MAAiD;CAC/C;CACA;CAEA,YAAY,UAAkB,MAA6B;EACzD,KAAKC,YAAY;EACjB,MAAM,WAIF,EAAC,MAAM,SAAQ;EAEnB,IAAI,MAAM,UACR,SAAS,WAAW,KAAK;EAE3B,IAAI,MAAM,eACR,SAAS,gBAAgB,KAAK;EAGhC,KAAKF,MAAM,KAAK,QAAQ;CAC1B;CAEA,QAAc;EACZ,KAAKA,IAAI,MAAM;CACjB;CAEA,UAAgB;EAGd,IAAI;GACF,MAAM,SAAS,KAAK,EAAC,MAAM,KAAKE,UAAS,CAAC;GAC1C,OAAO,OAAO;GACd,OAAO,MAAM;EACf,SAAS,QAAQ,CAEjB;CACF;CAEA,QAAQ,KAAgC;EACtC,OAAO,IAAI,0BAA0B,KAAKF,KAAK,GAAG;CACpD;CAEA,SAAS,KAAmB;EAC1B,KAAKA,IAAI,eAAe,KAAK,CAAC,CAAC;CACjC;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../../../replicache/src/kv/op-sqlite/types.ts"],"sourcesContent":["// Type definitions and imports for @op-engineering/op-sqlite\n// This file isolates the module resolution workarounds needed for this package\n\nimport {open as openDB} from '@op-engineering/op-sqlite';\n\n// Minimal type definitions for @op-engineering/op-sqlite\n// These types are used as fallback since imports have module resolution issues\nexport interface DB {\n close: () => void;\n delete: (location?: string) => void;\n executeRaw: (query: string, params?: string[]) => Promise<string[][]>;\n executeRawSync: (query: string, params?: string[]) => string[][];\n}\n\nexport type OpenFunction = (params: {\n name: string;\n location?: string;\n encryptionKey?: string;\n}) => DB;\n\n// Export the open function with proper typing\nexport const open: OpenFunction = openDB;\n"],"mappings":";;AAqBA,IAAa,SAAqB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-impl.js","names":["#map","#release","#closed"],"sources":["../../../../../../replicache/src/kv/read-impl.ts"],"sourcesContent":["import type {FrozenJSONValue} from '../frozen-json.ts';\nimport type {Read} from './store.ts';\nimport {maybeTransactionIsClosedRejection} from './throw-if-closed.ts';\n\nexport class ReadImpl implements Read {\n readonly #map: Map<string, FrozenJSONValue>;\n readonly #release: () => void;\n #closed = false;\n\n constructor(map: Map<string, FrozenJSONValue>, release: () => void) {\n this.#map = map;\n this.#release = release;\n }\n\n release() {\n this.#release();\n this.#closed = true;\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n\n has(key: string): Promise<boolean> {\n return (\n maybeTransactionIsClosedRejection(this) ??\n Promise.resolve(this.#map.has(key))\n );\n }\n\n get(key: string): Promise<FrozenJSONValue | undefined> {\n return (\n maybeTransactionIsClosedRejection(this) ??\n Promise.resolve(this.#map.get(key))\n );\n }\n}\n"],"mappings":";;AAIA,IAAa,WAAb,MAAsC;CACpC;CACA;CACA,UAAU;CAEV,YAAY,KAAmC,SAAqB;EAClE,KAAKA,OAAO;EACZ,KAAKC,WAAW;CAClB;CAEA,UAAU;EACR,KAAKA,SAAS;EACd,KAAKC,UAAU;CACjB;CAEA,IAAI,SAAkB;EACpB,OAAO,KAAKA;CACd;CAEA,IAAI,KAA+B;EACjC,OACE,kCAAkC,IAAI,KACtC,QAAQ,QAAQ,KAAKF,KAAK,IAAI,GAAG,CAAC;CAEtC;CAEA,IAAI,KAAmD;EACrD,OACE,kCAAkC,IAAI,KACtC,QAAQ,QAAQ,KAAKA,KAAK,IAAI,GAAG,CAAC;CAEtC;AACF"}