@rocicorp/zero 0.25.0 → 0.26.0-canary.0
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.
- package/out/analyze-query/src/bin-analyze.js +268 -257
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/analyze-query/src/bin-transform.js +31 -23
- package/out/analyze-query/src/bin-transform.js.map +1 -1
- package/out/analyze-query/src/explain-queries.js +13 -16
- package/out/analyze-query/src/explain-queries.js.map +1 -1
- package/out/analyze-query/src/run-ast.d.ts +3 -2
- package/out/analyze-query/src/run-ast.d.ts.map +1 -1
- package/out/analyze-query/src/run-ast.js +82 -74
- package/out/analyze-query/src/run-ast.js.map +1 -1
- package/out/ast-to-zql/src/ast-to-zql.js +146 -180
- package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
- package/out/ast-to-zql/src/bin.js +51 -54
- package/out/ast-to-zql/src/bin.js.map +1 -1
- package/out/ast-to-zql/src/format.js +15 -14
- package/out/ast-to-zql/src/format.js.map +1 -1
- package/out/datadog/src/datadog-log-sink.js +223 -0
- package/out/datadog/src/datadog-log-sink.js.map +1 -0
- package/out/otel/src/enabled.js +15 -15
- package/out/otel/src/enabled.js.map +1 -1
- package/out/otel/src/log-options.d.ts +1 -1
- package/out/otel/src/log-options.d.ts.map +1 -1
- package/out/otel/src/log-options.js +35 -31
- package/out/otel/src/log-options.js.map +1 -1
- package/out/otel/src/maybe-time.js +14 -11
- package/out/otel/src/maybe-time.js.map +1 -1
- package/out/otel/src/span.js +30 -27
- package/out/otel/src/span.js.map +1 -1
- package/out/otel/src/test-log-config.js +10 -7
- package/out/otel/src/test-log-config.js.map +1 -1
- package/out/otel/src/version.js +5 -2
- package/out/otel/src/version.js.map +1 -1
- package/out/replicache/src/async-iterable-to-array.js +11 -0
- package/out/replicache/src/async-iterable-to-array.js.map +1 -0
- package/out/replicache/src/bg-interval.js +38 -0
- package/out/replicache/src/bg-interval.js.map +1 -0
- package/out/replicache/src/btree/diff.js +8 -0
- package/out/replicache/src/btree/diff.js.map +1 -0
- package/out/replicache/src/btree/node.js +400 -0
- package/out/replicache/src/btree/node.js.map +1 -0
- package/out/replicache/src/btree/read.d.ts +3 -2
- package/out/replicache/src/btree/read.d.ts.map +1 -1
- package/out/replicache/src/btree/read.js +266 -0
- package/out/replicache/src/btree/read.js.map +1 -0
- package/out/replicache/src/btree/splice.js +83 -0
- package/out/replicache/src/btree/splice.js.map +1 -0
- package/out/replicache/src/btree/write.d.ts +1 -1
- package/out/replicache/src/btree/write.d.ts.map +1 -1
- package/out/replicache/src/btree/write.js +163 -0
- package/out/replicache/src/btree/write.js.map +1 -0
- package/out/replicache/src/call-default-fetch.js +34 -0
- package/out/replicache/src/call-default-fetch.js.map +1 -0
- package/out/replicache/src/connection-loop-delegates.js +34 -0
- package/out/replicache/src/connection-loop-delegates.js.map +1 -0
- package/out/replicache/src/connection-loop.js +251 -0
- package/out/replicache/src/connection-loop.js.map +1 -0
- package/out/replicache/src/cookies.js +40 -0
- package/out/replicache/src/cookies.js.map +1 -0
- package/out/replicache/src/dag/chunk.js +59 -0
- package/out/replicache/src/dag/chunk.js.map +1 -0
- package/out/replicache/src/dag/gc.js +117 -0
- package/out/replicache/src/dag/gc.js.map +1 -0
- package/out/replicache/src/dag/key.js +20 -0
- package/out/replicache/src/dag/key.js.map +1 -0
- package/out/replicache/src/dag/lazy-store.d.ts +2 -1
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
- package/out/replicache/src/dag/lazy-store.js +515 -0
- package/out/replicache/src/dag/lazy-store.js.map +1 -0
- package/out/replicache/src/dag/store-impl.js +183 -0
- package/out/replicache/src/dag/store-impl.js.map +1 -0
- package/out/replicache/src/dag/store.js +27 -0
- package/out/replicache/src/dag/store.js.map +1 -0
- package/out/replicache/src/dag/visitor.js +22 -0
- package/out/replicache/src/dag/visitor.js.map +1 -0
- package/out/replicache/src/db/commit.js +358 -0
- package/out/replicache/src/db/commit.js.map +1 -0
- package/out/replicache/src/db/index-operation-enum.js +7 -0
- package/out/replicache/src/db/index-operation-enum.js.map +1 -0
- package/out/replicache/src/db/index.js +134 -0
- package/out/replicache/src/db/index.js.map +1 -0
- package/out/replicache/src/db/meta-type-enum.js +7 -0
- package/out/replicache/src/db/meta-type-enum.js.map +1 -0
- package/out/replicache/src/db/read.d.ts +3 -2
- package/out/replicache/src/db/read.d.ts.map +1 -1
- package/out/replicache/src/db/read.js +72 -0
- package/out/replicache/src/db/read.js.map +1 -0
- package/out/replicache/src/db/rebase.d.ts +2 -2
- package/out/replicache/src/db/rebase.d.ts.map +1 -1
- package/out/replicache/src/db/rebase.js +85 -0
- package/out/replicache/src/db/rebase.js.map +1 -0
- package/out/replicache/src/db/write.d.ts +2 -1
- package/out/replicache/src/db/write.d.ts.map +1 -1
- package/out/replicache/src/db/write.js +296 -0
- package/out/replicache/src/db/write.js.map +1 -0
- package/out/replicache/src/deleted-clients.js +104 -0
- package/out/replicache/src/deleted-clients.js.map +1 -0
- package/out/replicache/src/error-responses.js +34 -0
- package/out/replicache/src/error-responses.js.map +1 -0
- package/out/replicache/src/format-version-enum.js +11 -0
- package/out/replicache/src/format-version-enum.js.map +1 -0
- package/out/{chunk-EZM3XBAB.js → replicache/src/frozen-json.js} +8 -75
- package/out/replicache/src/frozen-json.js.map +1 -0
- package/out/replicache/src/get-default-puller.js +61 -0
- package/out/replicache/src/get-default-puller.js.map +1 -0
- package/out/replicache/src/get-default-pusher.js +39 -0
- package/out/replicache/src/get-default-pusher.js.map +1 -0
- package/out/replicache/src/get-kv-store-provider.js +23 -0
- package/out/replicache/src/get-kv-store-provider.js.map +1 -0
- package/out/replicache/src/hash.js +38 -0
- package/out/replicache/src/hash.js.map +1 -0
- package/out/replicache/src/http-request-info.js +10 -0
- package/out/replicache/src/http-request-info.js.map +1 -0
- package/out/replicache/src/http-status-unauthorized.js +5 -0
- package/out/replicache/src/http-status-unauthorized.js.map +1 -0
- package/out/replicache/src/index-defs.js +32 -0
- package/out/replicache/src/index-defs.js.map +1 -0
- package/out/replicache/src/invoke-kind-enum.js +7 -0
- package/out/replicache/src/invoke-kind-enum.js.map +1 -0
- package/out/{chunk-ZZXMKAAG.js → replicache/src/kv/expo-sqlite/store.js} +8 -16
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js +80 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
- package/out/replicache/src/kv/idb-store.js +183 -0
- package/out/replicache/src/kv/idb-store.js.map +1 -0
- package/out/replicache/src/kv/mem-store.js +51 -0
- package/out/replicache/src/kv/mem-store.js.map +1 -0
- package/out/{op-sqlite.js → replicache/src/kv/op-sqlite/store.js} +7 -18
- package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
- package/out/replicache/src/kv/op-sqlite/types.js +6 -0
- package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
- package/out/replicache/src/kv/read-impl.js +27 -0
- package/out/replicache/src/kv/read-impl.js.map +1 -0
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/{chunk-ECUMGQGC.js → replicache/src/kv/sqlite-store.js} +27 -21
- package/out/replicache/src/kv/sqlite-store.js.map +1 -0
- package/out/{chunk-ASRS2LFV.js → replicache/src/kv/throw-if-closed.js} +4 -6
- package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
- package/out/replicache/src/kv/write-impl-base.js +57 -0
- package/out/replicache/src/kv/write-impl-base.js.map +1 -0
- package/out/replicache/src/kv/write-impl.js +30 -0
- package/out/replicache/src/kv/write-impl.js.map +1 -0
- package/out/replicache/src/lazy.js +13 -0
- package/out/replicache/src/lazy.js.map +1 -0
- package/out/replicache/src/log-options.js +9 -0
- package/out/replicache/src/log-options.js.map +1 -0
- package/out/replicache/src/make-idb-name.js +13 -0
- package/out/replicache/src/make-idb-name.js.map +1 -0
- package/out/replicache/src/new-client-channel.js +51 -0
- package/out/replicache/src/new-client-channel.js.map +1 -0
- package/out/replicache/src/on-persist-channel.js +36 -0
- package/out/replicache/src/on-persist-channel.js.map +1 -0
- package/out/replicache/src/patch-operation.js +42 -0
- package/out/replicache/src/patch-operation.js.map +1 -0
- package/out/replicache/src/pending-mutations.js +16 -0
- package/out/replicache/src/pending-mutations.js.map +1 -0
- package/out/replicache/src/persist/client-gc.js +58 -0
- package/out/replicache/src/persist/client-gc.js.map +1 -0
- package/out/replicache/src/persist/client-group-gc.js +43 -0
- package/out/replicache/src/persist/client-group-gc.js.map +1 -0
- package/out/replicache/src/persist/client-groups.js +184 -0
- package/out/replicache/src/persist/client-groups.js.map +1 -0
- package/out/replicache/src/persist/clients.d.ts +3 -2
- package/out/replicache/src/persist/clients.d.ts.map +1 -1
- package/out/replicache/src/persist/clients.js +353 -0
- package/out/replicache/src/persist/clients.js.map +1 -0
- package/out/replicache/src/persist/collect-idb-databases.js +188 -0
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js +27 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js +37 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
- package/out/replicache/src/persist/heartbeat.js +48 -0
- package/out/replicache/src/persist/heartbeat.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js +14 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store.d.ts +1 -0
- package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -1
- package/out/replicache/src/persist/idb-databases-store.js +103 -0
- package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
- package/out/replicache/src/persist/make-client-id.js +12 -0
- package/out/replicache/src/persist/make-client-id.js.map +1 -0
- package/out/replicache/src/persist/persist.d.ts +2 -2
- package/out/replicache/src/persist/persist.d.ts.map +1 -1
- package/out/replicache/src/persist/persist.js +183 -0
- package/out/replicache/src/persist/persist.js.map +1 -0
- package/out/replicache/src/persist/refresh.d.ts +4 -3
- package/out/replicache/src/persist/refresh.d.ts.map +1 -1
- package/out/replicache/src/persist/refresh.js +198 -0
- package/out/replicache/src/persist/refresh.js.map +1 -0
- package/out/replicache/src/process-scheduler.js +96 -0
- package/out/replicache/src/process-scheduler.js.map +1 -0
- package/out/replicache/src/pusher.js +33 -0
- package/out/replicache/src/pusher.js.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts +1 -1
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js +1200 -0
- package/out/replicache/src/replicache-impl.js.map +1 -0
- package/out/replicache/src/replicache-options.d.ts +3 -2
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/replicache/src/report-error.js +6 -0
- package/out/replicache/src/report-error.js.map +1 -0
- package/out/replicache/src/request-idle.js +13 -0
- package/out/replicache/src/request-idle.js.map +1 -0
- package/out/replicache/src/scan-iterator.js +146 -0
- package/out/replicache/src/scan-iterator.js.map +1 -0
- package/out/replicache/src/scan-options.js +45 -0
- package/out/replicache/src/scan-options.js.map +1 -0
- package/out/replicache/src/set-interval-with-signal.js +12 -0
- package/out/replicache/src/set-interval-with-signal.js.map +1 -0
- package/out/replicache/src/subscriptions.js +355 -0
- package/out/replicache/src/subscriptions.js.map +1 -0
- package/out/replicache/src/sync/diff.d.ts +3 -2
- package/out/replicache/src/sync/diff.d.ts.map +1 -1
- package/out/replicache/src/sync/diff.js +72 -0
- package/out/replicache/src/sync/diff.js.map +1 -0
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +9 -0
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
- package/out/replicache/src/sync/ids.js +9 -0
- package/out/replicache/src/sync/ids.js.map +1 -0
- package/out/replicache/src/sync/patch.js +49 -0
- package/out/replicache/src/sync/patch.js.map +1 -0
- package/out/replicache/src/sync/pull-error.js +16 -0
- package/out/replicache/src/sync/pull-error.js.map +1 -0
- package/out/replicache/src/sync/pull.d.ts +3 -2
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.js +301 -0
- package/out/replicache/src/sync/pull.js.map +1 -0
- package/out/replicache/src/sync/push.js +88 -0
- package/out/replicache/src/sync/push.js.map +1 -0
- package/out/replicache/src/sync/request-id.js +20 -0
- package/out/replicache/src/sync/request-id.js.map +1 -0
- package/out/replicache/src/sync/sync-head-name.js +5 -0
- package/out/replicache/src/sync/sync-head-name.js.map +1 -0
- package/out/replicache/src/to-error.js +10 -0
- package/out/replicache/src/to-error.js.map +1 -0
- package/out/replicache/src/transaction-closed-error.js +19 -0
- package/out/replicache/src/transaction-closed-error.js.map +1 -0
- package/out/replicache/src/transactions.js +152 -0
- package/out/replicache/src/transactions.js.map +1 -0
- package/out/replicache/src/version.js +5 -0
- package/out/replicache/src/version.js.map +1 -0
- package/out/replicache/src/with-transactions.js +28 -0
- package/out/replicache/src/with-transactions.js.map +1 -0
- package/out/shared/src/abort-error.js +6 -3
- package/out/shared/src/abort-error.js.map +1 -1
- package/out/shared/src/arrays.js +45 -43
- package/out/shared/src/arrays.js.map +1 -1
- package/out/shared/src/asserts.js +64 -68
- package/out/shared/src/asserts.js.map +1 -1
- package/out/shared/src/bigint-json.js +38 -42
- package/out/shared/src/bigint-json.js.map +1 -1
- package/out/shared/src/binary-search.js +18 -29
- package/out/shared/src/binary-search.js.map +1 -1
- package/out/shared/src/broadcast-channel.js +24 -0
- package/out/shared/src/broadcast-channel.js.map +1 -0
- package/out/shared/src/browser-env.js +25 -0
- package/out/shared/src/browser-env.js.map +1 -0
- package/out/shared/src/btree-set.js +464 -507
- package/out/shared/src/btree-set.js.map +1 -1
- package/out/shared/src/cache.js +34 -38
- package/out/shared/src/cache.js.map +1 -1
- package/out/shared/src/centroid.js +24 -24
- package/out/shared/src/centroid.js.map +1 -1
- package/out/shared/src/config.js +6 -3
- package/out/shared/src/config.js.map +1 -1
- package/out/shared/src/custom-key-map.js +58 -64
- package/out/shared/src/custom-key-map.js.map +1 -1
- package/out/shared/src/custom-key-set.js +51 -57
- package/out/shared/src/custom-key-set.js.map +1 -1
- package/out/shared/src/deep-clone.js +46 -0
- package/out/shared/src/deep-clone.js.map +1 -0
- package/out/shared/src/deep-merge.d.ts +26 -4
- package/out/shared/src/deep-merge.d.ts.map +1 -1
- package/out/shared/src/deep-merge.js +28 -0
- package/out/shared/src/deep-merge.js.map +1 -0
- package/out/shared/src/document-visible.js +74 -0
- package/out/shared/src/document-visible.js.map +1 -0
- package/out/shared/src/dotenv.js +5 -7
- package/out/shared/src/dotenv.js.map +1 -1
- package/out/shared/src/error.js +57 -56
- package/out/shared/src/error.js.map +1 -1
- package/out/shared/src/has-own.js +5 -3
- package/out/shared/src/has-own.js.map +1 -1
- package/out/shared/src/hash.js +15 -14
- package/out/shared/src/hash.js.map +1 -1
- package/out/shared/src/iterables.d.ts +0 -1
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +44 -80
- package/out/shared/src/iterables.js.map +1 -1
- package/out/shared/src/json-schema.js +30 -33
- package/out/shared/src/json-schema.js.map +1 -1
- package/out/shared/src/json.js +128 -143
- package/out/shared/src/json.js.map +1 -1
- package/out/shared/src/logging-test-utils.js +12 -19
- package/out/shared/src/logging-test-utils.js.map +1 -1
- package/out/shared/src/logging.d.ts.map +1 -1
- package/out/shared/src/logging.js +99 -83
- package/out/shared/src/logging.js.map +1 -1
- package/out/shared/src/must.js +9 -7
- package/out/shared/src/must.js.map +1 -1
- package/out/shared/src/navigator.js +5 -0
- package/out/shared/src/navigator.js.map +1 -0
- package/out/shared/src/object-traversal.d.ts +19 -0
- package/out/shared/src/object-traversal.d.ts.map +1 -0
- package/out/shared/src/object-traversal.js +27 -0
- package/out/shared/src/object-traversal.js.map +1 -0
- package/out/shared/src/objects.js +21 -22
- package/out/shared/src/objects.js.map +1 -1
- package/out/shared/src/options-types.d.ts +113 -0
- package/out/shared/src/options-types.d.ts.map +1 -0
- package/out/shared/src/options.d.ts +4 -111
- package/out/shared/src/options.d.ts.map +1 -1
- package/out/shared/src/options.js +289 -318
- package/out/shared/src/options.js.map +1 -1
- package/out/shared/src/parse-big-int.js +12 -10
- package/out/shared/src/parse-big-int.js.map +1 -1
- package/out/shared/src/promise-race.js +20 -0
- package/out/shared/src/promise-race.js.map +1 -0
- package/out/shared/src/queue.js +119 -122
- package/out/shared/src/queue.js.map +1 -1
- package/out/shared/src/rand.js +8 -10
- package/out/shared/src/rand.js.map +1 -1
- package/out/shared/src/random-uint64.js +9 -0
- package/out/shared/src/random-uint64.js.map +1 -0
- package/out/shared/src/random-values.js +13 -0
- package/out/shared/src/random-values.js.map +1 -0
- package/out/shared/src/record-proxy.d.ts +13 -0
- package/out/shared/src/record-proxy.d.ts.map +1 -0
- package/out/shared/src/record-proxy.js +59 -0
- package/out/shared/src/record-proxy.js.map +1 -0
- package/out/shared/src/resolved-promises.js +12 -9
- package/out/shared/src/resolved-promises.js.map +1 -1
- package/out/shared/src/sentinels.js +13 -6
- package/out/shared/src/sentinels.js.map +1 -1
- package/out/shared/src/set-utils.js +63 -62
- package/out/shared/src/set-utils.js.map +1 -1
- package/out/shared/src/size-of-value.js +58 -0
- package/out/shared/src/size-of-value.js.map +1 -0
- package/out/shared/src/sleep.js +45 -53
- package/out/shared/src/sleep.js.map +1 -1
- package/out/shared/src/string-compare.js +12 -9
- package/out/shared/src/string-compare.js.map +1 -1
- package/out/shared/src/subscribable.js +34 -0
- package/out/shared/src/subscribable.js.map +1 -0
- package/out/shared/src/tdigest-schema.js +7 -7
- package/out/shared/src/tdigest-schema.js.map +1 -1
- package/out/shared/src/tdigest.js +247 -271
- package/out/shared/src/tdigest.js.map +1 -1
- package/out/shared/src/valita.js +195 -207
- package/out/shared/src/valita.js.map +1 -1
- package/out/z2s/src/compiler.d.ts +2 -2
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +439 -310
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/sql.d.ts +1 -1
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +186 -218
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/package.json.js +9 -0
- package/out/zero/package.json.js.map +1 -0
- package/out/zero/src/adapters/drizzle.d.ts +1 -1
- package/out/zero/src/adapters/drizzle.d.ts.map +1 -1
- package/out/zero/src/adapters/drizzle.js +8 -2
- package/out/zero/src/adapters/drizzle.js.map +1 -1
- package/out/zero/src/adapters/pg.js +7 -2
- package/out/zero/src/adapters/pg.js.map +1 -1
- package/out/zero/src/adapters/postgresjs.js +7 -2
- package/out/zero/src/adapters/postgresjs.js.map +1 -1
- package/out/zero/src/analyze-query.js +1 -1
- package/out/zero/src/analyze-query.js.map +1 -1
- package/out/zero/src/ast-to-zql.js +1 -1
- package/out/zero/src/ast-to-zql.js.map +1 -1
- package/out/zero/src/bindings.d.ts +2 -0
- package/out/zero/src/bindings.d.ts.map +1 -0
- package/out/zero/src/bindings.js +27 -0
- package/out/zero/src/bindings.js.map +1 -0
- package/out/zero/src/build-schema.js +3 -5
- package/out/zero/src/build-schema.js.map +1 -1
- package/out/zero/src/change-protocol/v0.js +5 -3
- package/out/zero/src/change-protocol/v0.js.map +1 -1
- package/out/zero/src/cli.js +2 -2
- package/out/zero/src/cli.js.map +1 -1
- package/out/zero/src/deploy-permissions.js +1 -1
- package/out/zero/src/deploy-permissions.js.map +1 -1
- package/out/zero/src/expo-sqlite.js +5 -0
- package/out/zero/src/expo-sqlite.js.map +1 -0
- package/out/zero/src/op-sqlite.js +5 -0
- package/out/zero/src/op-sqlite.js.map +1 -0
- package/out/zero/src/pg.js +31 -3
- package/out/zero/src/pg.js.map +1 -1
- package/out/zero/src/react-native.js +13 -0
- package/out/zero/src/react-native.js.map +1 -0
- package/out/zero/src/react.js +15 -0
- package/out/zero/src/react.js.map +1 -0
- package/out/zero/src/server.js +27 -3
- package/out/zero/src/server.js.map +1 -1
- package/out/zero/src/solid.js +15 -0
- package/out/zero/src/solid.js.map +1 -0
- package/out/zero/src/sqlite.js +7 -0
- package/out/zero/src/sqlite.js.map +1 -0
- package/out/zero/src/transform-query.js +1 -1
- package/out/zero/src/transform-query.js.map +1 -1
- package/out/zero/src/zero-cache-dev.js +138 -104
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero/src/zero-out.js +6 -6
- package/out/zero/src/zero-out.js.map +1 -1
- package/out/zero/src/zero.js +71 -0
- package/out/zero/src/zero.js.map +1 -0
- package/out/zero/src/zqlite.js +11 -3
- package/out/zero/src/zqlite.js.map +1 -1
- package/out/zero-cache/src/auth/jwt.d.ts +3 -0
- package/out/zero-cache/src/auth/jwt.d.ts.map +1 -1
- package/out/zero-cache/src/auth/jwt.js +33 -38
- package/out/zero-cache/src/auth/jwt.js.map +1 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
- package/out/zero-cache/src/auth/load-permissions.js +61 -45
- package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.d.ts +1 -1
- package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +79 -91
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +4 -3
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +395 -328
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/network.js +42 -45
- package/out/zero-cache/src/config/network.js.map +1 -1
- package/out/zero-cache/src/config/normalize.js +86 -83
- package/out/zero-cache/src/config/normalize.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +63 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +743 -682
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.d.ts +5 -5
- package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +170 -162
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +10 -3
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js +101 -109
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/db/create.js +32 -36
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/delete-lite-db.js +9 -6
- package/out/zero-cache/src/db/delete-lite-db.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +150 -174
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +170 -165
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.js +157 -137
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/mode-enum.d.ts +2 -0
- package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -1
- package/out/zero-cache/src/db/mode-enum.js +9 -3
- package/out/zero-cache/src/db/mode-enum.js.map +1 -1
- package/out/zero-cache/src/db/pg-copy.js +51 -90
- package/out/zero-cache/src/db/pg-copy.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +116 -97
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/db/pg-type-parser.js +27 -39
- package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
- package/out/zero-cache/src/db/postgres-replica-identity-enum.js +11 -6
- package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
- package/out/zero-cache/src/db/postgres-type-class-enum.js +17 -9
- package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +1 -7
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.js +66 -40
- package/out/zero-cache/src/db/specs.js.map +1 -1
- package/out/zero-cache/src/db/statements.d.ts +1 -1
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/db/statements.js +59 -52
- package/out/zero-cache/src/db/statements.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +1 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.js +372 -501
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
- package/out/zero-cache/src/db/warmup.js +25 -12
- package/out/zero-cache/src/db/warmup.js.map +1 -1
- package/out/zero-cache/src/observability/events.js +71 -82
- package/out/zero-cache/src/observability/events.js.map +1 -1
- package/out/zero-cache/src/observability/metrics.js +54 -32
- package/out/zero-cache/src/observability/metrics.js.map +1 -1
- package/out/zero-cache/src/scripts/decommission.js +47 -43
- package/out/zero-cache/src/scripts/decommission.js.map +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js +132 -119
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
- package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
- package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
- package/out/zero-cache/src/scripts/permissions.js +106 -100
- package/out/zero-cache/src/scripts/permissions.js.map +1 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts +10 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +1 -1
- package/out/zero-cache/src/server/anonymous-otel-start.js +426 -366
- package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +99 -64
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js +112 -109
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/logging.d.ts +1 -1
- package/out/zero-cache/src/server/logging.d.ts.map +1 -1
- package/out/zero-cache/src/server/logging.js +26 -19
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +137 -120
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/mutator.js +19 -0
- package/out/zero-cache/src/server/mutator.js.map +1 -0
- package/out/zero-cache/src/server/otel-diag-logger.d.ts +1 -1
- package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +1 -1
- package/out/zero-cache/src/server/otel-diag-logger.js +48 -71
- package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -1
- package/out/zero-cache/src/server/otel-log-sink.js +40 -41
- package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
- package/out/zero-cache/src/server/otel-start.d.ts +1 -1
- package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
- package/out/zero-cache/src/server/otel-start.js +53 -68
- package/out/zero-cache/src/server/otel-start.js.map +1 -1
- package/out/zero-cache/src/server/reaper.js +34 -26
- package/out/zero-cache/src/server/reaper.js.map +1 -1
- package/out/zero-cache/src/server/replicator.js +53 -31
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/main.js +6 -4
- package/out/zero-cache/src/server/runner/main.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +46 -50
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/runner/runtime.js +33 -32
- package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js +28 -22
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +130 -63
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.d.ts +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.js +112 -106
- package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/worker-urls.d.ts +7 -0
- package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -0
- package/out/zero-cache/src/server/worker-urls.js +21 -0
- package/out/zero-cache/src/server/worker-urls.js.map +1 -0
- package/out/zero-cache/src/services/analyze.d.ts +4 -9
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +118 -121
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
- package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/column-metadata.js +154 -144
- package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +197 -171
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/sync-schema.js +11 -3
- package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +622 -623
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js +24 -23
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +327 -284
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +61 -69
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js +247 -257
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +127 -119
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/lsn.js +20 -19
- package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +96 -119
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +138 -117
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js +70 -76
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +199 -188
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js +53 -38
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -3
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.js +13 -19
- package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.js +143 -116
- package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +29 -19
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts +8 -0
- package/out/zero-cache/src/services/change-source/protocol/current/json.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/json.js +19 -0
- package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/path.js +5 -20
- package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js +12 -13
- package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.js +5 -4
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current.js +38 -7
- package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -1
- package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/replica-schema.js +67 -37
- package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js +139 -157
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +11 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +208 -157
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +242 -349
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +5 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js +24 -22
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.js +9 -4
- package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.js +53 -57
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js +48 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js +82 -68
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +93 -78
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +58 -0
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.js +28 -18
- package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +3 -2
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +308 -353
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +3 -2
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +85 -87
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/heapz.js +21 -25
- package/out/zero-cache/src/services/heapz.js.map +1 -1
- package/out/zero-cache/src/services/http-service.d.ts +5 -5
- package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/http-service.js +57 -59
- package/out/zero-cache/src/services/http-service.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
- package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +216 -255
- package/out/zero-cache/src/services/life-cycle.js.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +76 -130
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +202 -154
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/error.js +11 -6
- package/out/zero-cache/src/services/mutagen/error.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +271 -267
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +202 -2
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +354 -348
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +483 -497
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +97 -97
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/notifier.js +28 -52
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts +2 -0
- package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js +113 -83
- package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.js +33 -26
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +74 -86
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/constants.js +5 -7
- package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +2 -2
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +70 -74
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts +9 -3
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +91 -78
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/runner.d.ts +1 -1
- package/out/zero-cache/src/services/runner.d.ts.map +1 -1
- package/out/zero-cache/src/services/runner.js +40 -40
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/running-state.d.ts +1 -1
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/running-state.js +122 -119
- package/out/zero-cache/src/services/running-state.js.map +1 -1
- package/out/zero-cache/src/services/statz.js +184 -162
- package/out/zero-cache/src/services/statz.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +56 -42
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +307 -298
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +80 -82
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js +110 -96
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -5
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +676 -611
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +4 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +643 -694
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +38 -60
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +175 -85
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +23 -22
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +584 -461
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +229 -277
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +79 -131
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.js +207 -131
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +4 -4
- package/out/zero-cache/src/services/view-syncer/schema/types.js +265 -257
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +5 -5
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +309 -337
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.js +13 -7
- package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +5 -4
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +1514 -1311
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
- package/out/zero-cache/src/types/error-with-level.js +30 -21
- package/out/zero-cache/src/types/error-with-level.js.map +1 -1
- package/out/zero-cache/src/types/http.js +27 -14
- package/out/zero-cache/src/types/http.js.map +1 -1
- package/out/zero-cache/src/types/lexi-version.js +46 -31
- package/out/zero-cache/src/types/lexi-version.js.map +1 -1
- package/out/zero-cache/src/types/lite.js +118 -125
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/names.js +6 -3
- package/out/zero-cache/src/types/names.js.map +1 -1
- package/out/zero-cache/src/types/pg-data-type.js +74 -68
- package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
- package/out/zero-cache/src/types/pg-types.js +17 -72
- package/out/zero-cache/src/types/pg-types.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +1 -1
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +213 -233
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +2 -2
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +95 -143
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/profiler.js +29 -30
- package/out/zero-cache/src/types/profiler.js.map +1 -1
- package/out/zero-cache/src/types/row-key.js +30 -68
- package/out/zero-cache/src/types/row-key.js.map +1 -1
- package/out/zero-cache/src/types/schema-versions.js +25 -19
- package/out/zero-cache/src/types/schema-versions.js.map +1 -1
- package/out/zero-cache/src/types/shards.js +50 -36
- package/out/zero-cache/src/types/shards.js.map +1 -1
- package/out/zero-cache/src/types/sql.js +9 -13
- package/out/zero-cache/src/types/sql.js.map +1 -1
- package/out/zero-cache/src/types/streams.js +245 -254
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/strings.js +14 -11
- package/out/zero-cache/src/types/strings.js.map +1 -1
- package/out/zero-cache/src/types/subscription.js +200 -259
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/types/url-params.js +35 -30
- package/out/zero-cache/src/types/url-params.js.map +1 -1
- package/out/zero-cache/src/types/websocket-handoff.d.ts +5 -4
- package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
- package/out/zero-cache/src/types/websocket-handoff.js +68 -76
- package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
- package/out/zero-cache/src/types/ws.js +56 -59
- package/out/zero-cache/src/types/ws.js.map +1 -1
- package/out/zero-cache/src/workers/connect-params.d.ts +1 -0
- package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connect-params.js +46 -40
- package/out/zero-cache/src/workers/connect-params.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +282 -243
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/mutator.js +24 -0
- package/out/zero-cache/src/workers/mutator.js.map +1 -0
- package/out/zero-cache/src/workers/replicator.d.ts +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +103 -106
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +181 -147
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts +3 -3
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +192 -169
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.js +199 -0
- package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
- package/out/zero-client/src/client/bindings.d.ts +13 -0
- package/out/zero-client/src/client/bindings.d.ts.map +1 -0
- package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
- package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/client-error-kind-enum.js +29 -0
- package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
- package/out/zero-client/src/client/connection-manager.d.ts +20 -40
- package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-manager.js +310 -0
- package/out/zero-client/src/client/connection-manager.js.map +1 -0
- package/out/zero-client/src/client/connection-status-enum.js +15 -0
- package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
- package/out/zero-client/src/client/connection.d.ts +48 -5
- package/out/zero-client/src/client/connection.d.ts.map +1 -1
- package/out/zero-client/src/client/connection.js +110 -0
- package/out/zero-client/src/client/connection.js.map +1 -0
- package/out/zero-client/src/client/context.d.ts +9 -10
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/context.js +104 -0
- package/out/zero-client/src/client/context.js.map +1 -0
- package/out/zero-client/src/client/crud-impl.d.ts +11 -0
- package/out/zero-client/src/client/crud-impl.d.ts.map +1 -0
- package/out/zero-client/src/client/crud-impl.js +102 -0
- package/out/zero-client/src/client/crud-impl.js.map +1 -0
- package/out/zero-client/src/client/crud.d.ts +17 -47
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.js +143 -0
- package/out/zero-client/src/client/crud.js.map +1 -0
- package/out/zero-client/src/client/custom.d.ts +52 -25
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/custom.js +87 -0
- package/out/zero-client/src/client/custom.js.map +1 -0
- package/out/zero-client/src/client/delete-clients-manager.d.ts +2 -2
- package/out/zero-client/src/client/delete-clients-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/delete-clients-manager.js +98 -0
- package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
- package/out/zero-client/src/client/enable-analytics.js +18 -0
- package/out/zero-client/src/client/enable-analytics.js.map +1 -0
- package/out/zero-client/src/client/error.d.ts +30 -12
- package/out/zero-client/src/client/error.d.ts.map +1 -1
- package/out/zero-client/src/client/error.js +148 -0
- package/out/zero-client/src/client/error.js.map +1 -0
- package/out/zero-client/src/client/http-string.js +11 -0
- package/out/zero-client/src/client/http-string.js.map +1 -0
- package/out/zero-client/src/client/inspector/client-group.js +27 -0
- package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
- package/out/zero-client/src/client/inspector/client.js +28 -0
- package/out/zero-client/src/client/inspector/client.js.map +1 -0
- package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js +77 -0
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
- package/out/zero-client/src/client/inspector/inspector.d.ts +8 -3
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.js +54 -0
- package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js +243 -0
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
- package/out/zero-client/src/client/inspector/query.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/query.js +82 -0
- package/out/zero-client/src/client/inspector/query.js.map +1 -0
- package/out/zero-client/src/client/ivm-branch.d.ts +4 -4
- package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
- package/out/zero-client/src/client/ivm-branch.js +156 -0
- package/out/zero-client/src/client/ivm-branch.js.map +1 -0
- package/out/zero-client/src/client/keys.js +45 -0
- package/out/zero-client/src/client/keys.js.map +1 -0
- package/out/zero-client/src/client/log-options.js +60 -0
- package/out/zero-client/src/client/log-options.js.map +1 -0
- package/out/zero-client/src/client/make-mutate-property.d.ts +40 -0
- package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -0
- package/out/zero-client/src/client/make-mutate-property.js +33 -0
- package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
- package/out/zero-client/src/client/make-replicache-mutators.d.ts +34 -0
- package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -0
- package/out/zero-client/src/client/make-replicache-mutators.js +108 -0
- package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
- package/out/zero-client/src/client/metric-name-enum.js +15 -0
- package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
- package/out/zero-client/src/client/metrics.d.ts +2 -2
- package/out/zero-client/src/client/metrics.d.ts.map +1 -1
- package/out/zero-client/src/client/metrics.js +249 -0
- package/out/zero-client/src/client/metrics.js.map +1 -0
- package/out/zero-client/src/client/mutation-tracker.d.ts +12 -4
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.js +363 -0
- package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
- package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
- package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
- package/out/zero-client/src/client/mutator-proxy.js +143 -0
- package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
- package/out/zero-client/src/client/options.d.ts +70 -10
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/options.js +11 -0
- package/out/zero-client/src/client/options.js.map +1 -0
- package/out/zero-client/src/client/query-manager.d.ts +9 -2
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.js +377 -0
- package/out/zero-client/src/client/query-manager.js.map +1 -0
- package/out/zero-client/src/client/reload-error-handler.d.ts +4 -4
- package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/reload-error-handler.js +114 -0
- package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
- package/out/zero-client/src/client/server-option.js +64 -0
- package/out/zero-client/src/client/server-option.js.map +1 -0
- package/out/zero-client/src/client/update-needed-reason-type-enum.js +9 -0
- package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
- package/out/zero-client/src/client/version.js +5 -0
- package/out/zero-client/src/client/version.js.map +1 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts +4 -4
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js +303 -0
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
- package/out/zero-client/src/client/zero-rep.d.ts +3 -2
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.js +72 -0
- package/out/zero-client/src/client/zero-rep.js.map +1 -0
- package/out/zero-client/src/client/zero.d.ts +119 -28
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +1800 -0
- package/out/zero-client/src/client/zero.js.map +1 -0
- package/out/zero-client/src/mod.d.ts +23 -20
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-client/src/types/query-result.d.ts +5 -4
- package/out/zero-client/src/types/query-result.d.ts.map +1 -1
- package/out/zero-client/src/util/nanoid.js +21 -0
- package/out/zero-client/src/util/nanoid.js.map +1 -0
- package/out/zero-client/src/util/socket.js +7 -0
- package/out/zero-client/src/util/socket.js.map +1 -0
- package/out/zero-events/src/status.d.ts +1 -1
- package/out/zero-events/src/status.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +238 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.js +159 -24
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/application-error.d.ts +2 -8
- package/out/zero-protocol/src/application-error.d.ts.map +1 -1
- package/out/zero-protocol/src/application-error.js +35 -34
- package/out/zero-protocol/src/application-error.js.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +2 -2
- package/out/zero-protocol/src/ast.js +296 -277
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts +2 -2
- package/out/zero-protocol/src/change-desired-queries.js +11 -7
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
- package/out/zero-protocol/src/client-schema.d.ts +2 -2
- package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
- package/out/zero-protocol/src/client-schema.js +40 -26
- package/out/zero-protocol/src/client-schema.js.map +1 -1
- package/out/zero-protocol/src/close-connection.js +11 -18
- package/out/zero-protocol/src/close-connection.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts +4 -4
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js +50 -51
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +4 -4
- package/out/zero-protocol/src/custom-queries.js +61 -39
- package/out/zero-protocol/src/custom-queries.js.map +1 -1
- package/out/zero-protocol/src/data.js +9 -4
- package/out/zero-protocol/src/data.js.map +1 -1
- package/out/zero-protocol/src/delete-clients.js +16 -9
- package/out/zero-protocol/src/delete-clients.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +107 -7
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/down.js +20 -4
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/error-kind-enum.js +41 -23
- package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
- package/out/zero-protocol/src/error-origin-enum.js +9 -4
- package/out/zero-protocol/src/error-origin-enum.js.map +1 -1
- package/out/zero-protocol/src/error-reason-enum.js +17 -8
- package/out/zero-protocol/src/error-reason-enum.js.map +1 -1
- package/out/zero-protocol/src/error.d.ts +17 -17
- package/out/zero-protocol/src/error.js +151 -89
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +321 -21
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js +72 -54
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/inspect-up.d.ts +10 -6
- package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.js +39 -26
- package/out/zero-protocol/src/inspect-up.js.map +1 -1
- package/out/zero-protocol/src/mutation-id.js +9 -5
- package/out/zero-protocol/src/mutation-id.js.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.js +7 -3
- package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
- package/out/zero-protocol/src/mutations-patch.js +16 -17
- package/out/zero-protocol/src/mutations-patch.js.map +1 -1
- package/out/zero-protocol/src/ping.js +9 -4
- package/out/zero-protocol/src/ping.js.map +1 -1
- package/out/zero-protocol/src/poke.js +55 -72
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.js +9 -4
- package/out/zero-protocol/src/pong.js.map +1 -1
- package/out/zero-protocol/src/primary-key.js +19 -5
- package/out/zero-protocol/src/primary-key.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +2 -2
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +7 -58
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/pull.js +26 -19
- package/out/zero-protocol/src/pull.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +4 -4
- package/out/zero-protocol/src/push.js +179 -176
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts +3 -3
- package/out/zero-protocol/src/queries-patch.js +29 -22
- package/out/zero-protocol/src/queries-patch.js.map +1 -1
- package/out/zero-protocol/src/query-hash.js +18 -14
- package/out/zero-protocol/src/query-hash.js.map +1 -1
- package/out/zero-protocol/src/row-patch.js +29 -20
- package/out/zero-protocol/src/row-patch.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +6 -5
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/up.js +18 -4
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-protocol/src/version.js +9 -4
- package/out/zero-protocol/src/version.js.map +1 -1
- package/out/zero-react/src/bindings.d.ts +2 -0
- package/out/zero-react/src/bindings.d.ts.map +1 -0
- package/out/zero-react/src/mod.d.ts +2 -13
- package/out/zero-react/src/mod.d.ts.map +1 -1
- package/out/zero-react/src/use-connection-state.d.ts +9 -0
- package/out/zero-react/src/use-connection-state.d.ts.map +1 -0
- package/out/zero-react/src/use-connection-state.js +14 -0
- package/out/zero-react/src/use-connection-state.js.map +1 -0
- package/out/zero-react/src/use-query.d.ts +5 -9
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-query.js +289 -0
- package/out/zero-react/src/use-query.js.map +1 -0
- package/out/zero-react/src/use-zero-online.d.ts +1 -1
- package/out/zero-react/src/use-zero-online.js +14 -0
- package/out/zero-react/src/use-zero-online.js.map +1 -0
- package/out/zero-react/src/zero-provider.d.ts +19 -10
- package/out/zero-react/src/zero-provider.d.ts.map +1 -1
- package/out/zero-react/src/zero-provider.js +77 -0
- package/out/zero-react/src/zero-provider.js.map +1 -0
- package/out/zero-react/src/zero.d.ts +2 -0
- package/out/zero-react/src/zero.d.ts.map +1 -0
- package/out/zero-schema/src/builder/relationship-builder.js +22 -19
- package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
- package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.js +81 -71
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +117 -116
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-schema/src/compiled-permissions.d.ts +22 -2
- package/out/zero-schema/src/compiled-permissions.d.ts.map +1 -1
- package/out/zero-schema/src/compiled-permissions.js +24 -19
- package/out/zero-schema/src/compiled-permissions.js.map +1 -1
- package/out/zero-schema/src/name-mapper.js +43 -38
- package/out/zero-schema/src/name-mapper.js.map +1 -1
- package/out/zero-schema/src/permissions.d.ts +12 -9
- package/out/zero-schema/src/permissions.d.ts.map +1 -1
- package/out/zero-schema/src/permissions.js +193 -0
- package/out/zero-schema/src/permissions.js.map +1 -0
- package/out/zero-schema/src/schema-config.d.ts +1 -6
- package/out/zero-schema/src/schema-config.d.ts.map +1 -1
- package/out/zero-schema/src/schema-config.js +35 -51
- package/out/zero-schema/src/schema-config.js.map +1 -1
- package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
- package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js +84 -97
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/adapters/pg.d.ts +8 -2
- package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
- package/out/zero-server/src/adapters/pg.js +54 -74
- package/out/zero-server/src/adapters/pg.js.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.d.ts +7 -2
- package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.js +40 -54
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
- package/out/zero-server/src/custom.d.ts +48 -19
- package/out/zero-server/src/custom.d.ts.map +1 -1
- package/out/zero-server/src/custom.js +278 -106
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/logging.js +7 -4
- package/out/zero-server/src/logging.js.map +1 -1
- package/out/zero-server/src/mod.d.ts +1 -1
- package/out/zero-server/src/mod.d.ts.map +1 -1
- package/out/zero-server/src/pg-query-executor.d.ts +11 -0
- package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
- package/out/zero-server/src/pg-query-executor.js +20 -0
- package/out/zero-server/src/pg-query-executor.js.map +1 -0
- package/out/zero-server/src/process-mutations.d.ts +13 -13
- package/out/zero-server/src/process-mutations.d.ts.map +1 -1
- package/out/zero-server/src/process-mutations.js +328 -272
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/push-processor.d.ts +5 -3
- package/out/zero-server/src/push-processor.d.ts.map +1 -1
- package/out/zero-server/src/push-processor.js +50 -32
- package/out/zero-server/src/push-processor.js.map +1 -1
- package/out/zero-server/src/queries/process-queries.d.ts +76 -3
- package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
- package/out/zero-server/src/queries/process-queries.js +104 -93
- package/out/zero-server/src/queries/process-queries.js.map +1 -1
- package/out/zero-server/src/schema.d.ts +2 -2
- package/out/zero-server/src/schema.d.ts.map +1 -1
- package/out/zero-server/src/schema.js +136 -124
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts +9 -6
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero-server/src/zql-database.js +56 -51
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/bindings.d.ts +2 -0
- package/out/zero-solid/src/bindings.d.ts.map +1 -0
- package/out/zero-solid/src/mod.d.ts +1 -9
- package/out/zero-solid/src/mod.d.ts.map +1 -1
- package/out/zero-solid/src/solid-view.d.ts +3 -5
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/{solid.js → zero-solid/src/solid-view.js} +47 -196
- package/out/zero-solid/src/solid-view.js.map +1 -0
- package/out/zero-solid/src/{use-zero-connection-state.d.ts → use-connection-state.d.ts} +3 -3
- package/out/zero-solid/src/use-connection-state.d.ts.map +1 -0
- package/out/zero-solid/src/use-connection-state.js +17 -0
- package/out/zero-solid/src/use-connection-state.js.map +1 -0
- package/out/zero-solid/src/use-query.d.ts +4 -7
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-query.js +92 -0
- package/out/zero-solid/src/use-query.js.map +1 -0
- package/out/zero-solid/src/use-zero-online.d.ts +1 -1
- package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero-online.js +15 -0
- package/out/zero-solid/src/use-zero-online.js.map +1 -0
- package/out/zero-solid/src/use-zero.d.ts +22 -11
- package/out/zero-solid/src/use-zero.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero.js +86 -0
- package/out/zero-solid/src/use-zero.js.map +1 -0
- package/out/zero-solid/src/zero.d.ts +2 -0
- package/out/zero-solid/src/zero.d.ts.map +1 -0
- package/out/zero-types/src/default-types.d.ts +38 -0
- package/out/zero-types/src/default-types.d.ts.map +1 -0
- package/out/zero-types/src/format.js +7 -4
- package/out/zero-types/src/format.js.map +1 -1
- package/out/zero-types/src/name-mapper.js +43 -40
- package/out/zero-types/src/name-mapper.js.map +1 -1
- package/out/zero-types/src/schema.d.ts +4 -4
- package/out/zero-types/src/server-schema.d.ts.map +1 -0
- package/out/zql/src/builder/builder.d.ts +10 -2
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +474 -427
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.d.ts +4 -0
- package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
- package/out/zql/src/builder/debug-delegate.js +68 -47
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/builder/filter.js +132 -138
- package/out/zql/src/builder/filter.js.map +1 -1
- package/out/zql/src/builder/like.js +44 -51
- package/out/zql/src/builder/like.js.map +1 -1
- package/out/zql/src/error.d.ts +5 -0
- package/out/zql/src/error.d.ts.map +1 -1
- package/out/zql/src/error.js +9 -6
- package/out/zql/src/error.js.map +1 -1
- package/out/zql/src/ivm/array-view.d.ts +2 -2
- package/out/zql/src/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/ivm/array-view.js +89 -92
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/constraint.js +74 -127
- package/out/zql/src/ivm/constraint.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts +7 -2
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +53 -87
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/exists.d.ts +6 -4
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +206 -244
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/fan-in.d.ts +5 -3
- package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-in.js +58 -52
- package/out/zql/src/ivm/fan-in.js.map +1 -1
- package/out/zql/src/ivm/fan-out.d.ts +4 -2
- package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-out.js +56 -48
- package/out/zql/src/ivm/fan-out.js.map +1 -1
- package/out/zql/src/ivm/filter-operators.d.ts +13 -11
- package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-operators.js +91 -88
- package/out/zql/src/ivm/filter-operators.js.map +1 -1
- package/out/zql/src/ivm/filter-push.d.ts +2 -1
- package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-push.js +27 -24
- package/out/zql/src/ivm/filter-push.js.map +1 -1
- package/out/zql/src/ivm/filter.d.ts +4 -2
- package/out/zql/src/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/ivm/filter.js +36 -32
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/flipped-join.d.ts +1 -2
- package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
- package/out/zql/src/ivm/flipped-join.js +372 -325
- package/out/zql/src/ivm/flipped-join.js.map +1 -1
- package/out/zql/src/ivm/join-utils.d.ts +9 -2
- package/out/zql/src/ivm/join-utils.d.ts.map +1 -1
- package/out/zql/src/ivm/join-utils.js +104 -78
- package/out/zql/src/ivm/join-utils.js.map +1 -1
- package/out/zql/src/ivm/join.d.ts +3 -16
- package/out/zql/src/ivm/join.d.ts.map +1 -1
- package/out/zql/src/ivm/join.js +225 -211
- package/out/zql/src/ivm/join.js.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +26 -24
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +9 -8
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +484 -491
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/memory-storage.js +32 -31
- package/out/zql/src/ivm/memory-storage.js.map +1 -1
- package/out/zql/src/ivm/operator.d.ts +15 -12
- package/out/zql/src/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/ivm/operator.js +16 -9
- package/out/zql/src/ivm/operator.js.map +1 -1
- package/out/zql/src/ivm/push-accumulated.d.ts +2 -2
- package/out/zql/src/ivm/push-accumulated.d.ts.map +1 -1
- package/out/zql/src/ivm/push-accumulated.js +236 -305
- package/out/zql/src/ivm/push-accumulated.js.map +1 -1
- package/out/zql/src/ivm/skip.d.ts +2 -3
- package/out/zql/src/ivm/skip.d.ts.map +1 -1
- package/out/zql/src/ivm/skip.js +95 -106
- package/out/zql/src/ivm/skip.js.map +1 -1
- package/out/zql/src/ivm/source.d.ts +18 -8
- package/out/zql/src/ivm/source.d.ts.map +1 -1
- package/out/zql/src/ivm/stream.d.ts +2 -0
- package/out/zql/src/ivm/stream.d.ts.map +1 -1
- package/out/zql/src/ivm/stream.js +12 -17
- package/out/zql/src/ivm/stream.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts +2 -3
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +525 -451
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts +4 -4
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js +213 -132
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/ivm/union-fan-out.d.ts +2 -3
- package/out/zql/src/ivm/union-fan-out.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-out.js +43 -45
- package/out/zql/src/ivm/union-fan-out.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js +247 -217
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zql/src/ivm/view.d.ts +3 -2
- package/out/zql/src/ivm/view.d.ts.map +1 -1
- package/out/zql/src/mutate/crud.d.ts +116 -0
- package/out/zql/src/mutate/crud.d.ts.map +1 -0
- package/out/zql/src/mutate/crud.js +41 -0
- package/out/zql/src/mutate/crud.js.map +1 -0
- package/out/zql/src/mutate/custom.d.ts +39 -63
- package/out/zql/src/mutate/custom.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.js +12 -8
- package/out/zql/src/mutate/custom.js.map +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts +112 -0
- package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -0
- package/out/zql/src/mutate/mutator-registry.js +88 -0
- package/out/zql/src/mutate/mutator-registry.js.map +1 -0
- package/out/zql/src/mutate/mutator.d.ts +94 -0
- package/out/zql/src/mutate/mutator.d.ts.map +1 -0
- package/out/zql/src/mutate/mutator.js +34 -0
- package/out/zql/src/mutate/mutator.js.map +1 -0
- package/out/zql/src/planner/planner-builder.d.ts +2 -1
- package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
- package/out/zql/src/planner/planner-builder.js +239 -148
- package/out/zql/src/planner/planner-builder.js.map +1 -1
- package/out/zql/src/planner/planner-connection.d.ts +14 -15
- package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
- package/out/zql/src/planner/planner-connection.js +205 -247
- package/out/zql/src/planner/planner-connection.js.map +1 -1
- package/out/zql/src/planner/planner-constraint.js +8 -11
- package/out/zql/src/planner/planner-constraint.js.map +1 -1
- package/out/zql/src/planner/planner-debug.d.ts +39 -44
- package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
- package/out/zql/src/planner/planner-debug.js +227 -161
- package/out/zql/src/planner/planner-debug.js.map +1 -1
- package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -1
- package/out/zql/src/planner/planner-fan-in.js +157 -159
- package/out/zql/src/planner/planner-fan-in.js.map +1 -1
- package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
- package/out/zql/src/planner/planner-fan-out.js +73 -59
- package/out/zql/src/planner/planner-fan-out.js.map +1 -1
- package/out/zql/src/planner/planner-graph.d.ts +10 -9
- package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
- package/out/zql/src/planner/planner-graph.js +323 -357
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.d.ts +7 -3
- package/out/zql/src/planner/planner-join.d.ts.map +1 -1
- package/out/zql/src/planner/planner-join.js +239 -322
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/planner/planner-node.d.ts +6 -1
- package/out/zql/src/planner/planner-node.d.ts.map +1 -1
- package/out/zql/src/planner/planner-node.js +8 -2
- package/out/zql/src/planner/planner-node.js.map +1 -1
- package/out/zql/src/planner/planner-source.js +23 -12
- package/out/zql/src/planner/planner-source.js.map +1 -1
- package/out/zql/src/planner/planner-terminus.js +28 -27
- package/out/zql/src/planner/planner-terminus.js.map +1 -1
- package/out/zql/src/query/complete-ordering.d.ts +5 -0
- package/out/zql/src/query/complete-ordering.d.ts.map +1 -0
- package/out/zql/src/query/complete-ordering.js +71 -0
- package/out/zql/src/query/complete-ordering.js.map +1 -0
- package/out/zql/src/query/create-builder.d.ts +10 -0
- package/out/zql/src/query/create-builder.d.ts.map +1 -0
- package/out/zql/src/query/create-builder.js +32 -0
- package/out/zql/src/query/create-builder.js.map +1 -0
- package/out/zql/src/query/error.js +12 -8
- package/out/zql/src/query/error.js.map +1 -1
- package/out/zql/src/query/escape-like.js +7 -0
- package/out/zql/src/query/escape-like.js.map +1 -0
- package/out/zql/src/query/expression.d.ts +5 -5
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js +153 -151
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/measure-push-operator.d.ts +2 -3
- package/out/zql/src/query/measure-push-operator.d.ts.map +1 -1
- package/out/zql/src/query/measure-push-operator.js +39 -35
- package/out/zql/src/query/measure-push-operator.js.map +1 -1
- package/out/zql/src/query/metrics-delegate.js +9 -5
- package/out/zql/src/query/metrics-delegate.js.map +1 -1
- package/out/zql/src/query/named.d.ts +21 -12
- package/out/zql/src/query/named.d.ts.map +1 -1
- package/out/zql/src/query/named.js +46 -64
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +120 -0
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
- package/out/zql/src/query/query-delegate-base.js +250 -0
- package/out/zql/src/query/query-delegate-base.js.map +1 -0
- package/out/zql/src/query/query-delegate.d.ts +27 -4
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +30 -52
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +393 -459
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internals.d.ts +68 -0
- package/out/zql/src/query/query-internals.d.ts.map +1 -0
- package/out/zql/src/query/query-internals.js +11 -0
- package/out/zql/src/query/query-internals.js.map +1 -0
- package/out/zql/src/query/query-registry.d.ts +239 -0
- package/out/zql/src/query/query-registry.d.ts.map +1 -0
- package/out/zql/src/query/query-registry.js +121 -0
- package/out/zql/src/query/query-registry.js.map +1 -0
- package/out/zql/src/query/query.d.ts +65 -242
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.d.ts +22 -0
- package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -0
- package/out/zql/src/query/runnable-query-impl.js +60 -0
- package/out/zql/src/query/runnable-query-impl.js.map +1 -0
- package/out/zql/src/query/schema-query.d.ts +7 -0
- package/out/zql/src/query/schema-query.d.ts.map +1 -0
- package/out/zql/src/query/static-query.d.ts +3 -25
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.js +18 -32
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zql/src/query/ttl.js +69 -62
- package/out/zql/src/query/ttl.js.map +1 -1
- package/out/zql/src/query/validate-input.d.ts +15 -0
- package/out/zql/src/query/validate-input.d.ts.map +1 -0
- package/out/zql/src/query/validate-input.js +24 -0
- package/out/zql/src/query/validate-input.js.map +1 -0
- package/out/zqlite/src/database-storage.d.ts +1 -1
- package/out/zqlite/src/database-storage.d.ts.map +1 -1
- package/out/zqlite/src/database-storage.js +99 -102
- package/out/zqlite/src/database-storage.js.map +1 -1
- package/out/zqlite/src/db.d.ts +2 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +241 -192
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/explain-queries.js +13 -16
- package/out/zqlite/src/explain-queries.js.map +1 -1
- package/out/zqlite/src/internal/sql-inline.d.ts +13 -0
- package/out/zqlite/src/internal/sql-inline.d.ts.map +1 -0
- package/out/zqlite/src/internal/sql-inline.js +45 -0
- package/out/zqlite/src/internal/sql-inline.js.map +1 -0
- package/out/zqlite/src/internal/sql.js +15 -10
- package/out/zqlite/src/internal/sql.js.map +1 -1
- package/out/zqlite/src/internal/statement-cache.js +86 -110
- package/out/zqlite/src/internal/statement-cache.js.map +1 -1
- package/out/zqlite/src/query-builder.js +172 -143
- package/out/zqlite/src/query-builder.js.map +1 -1
- package/out/zqlite/src/query-delegate.d.ts +5 -19
- package/out/zqlite/src/query-delegate.d.ts.map +1 -1
- package/out/zqlite/src/query-delegate.js +56 -70
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.js +97 -121
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts +121 -0
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -0
- package/out/zqlite/src/sqlite-stat-fanout.js +301 -0
- package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
- package/out/zqlite/src/table-source.d.ts +18 -6
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +443 -311
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +32 -29
- package/out/chunk-424PT5DM.js +0 -23
- package/out/chunk-424PT5DM.js.map +0 -7
- package/out/chunk-AFADJQ2O.js +0 -1
- package/out/chunk-AFADJQ2O.js.map +0 -7
- package/out/chunk-ASRS2LFV.js.map +0 -7
- package/out/chunk-ECUMGQGC.js.map +0 -7
- package/out/chunk-EZM3XBAB.js.map +0 -7
- package/out/chunk-QZSBDHTA.js +0 -18337
- package/out/chunk-QZSBDHTA.js.map +0 -7
- package/out/chunk-TJFNGO7E.js +0 -4126
- package/out/chunk-TJFNGO7E.js.map +0 -7
- package/out/chunk-VZOYWIRW.js +0 -30
- package/out/chunk-VZOYWIRW.js.map +0 -7
- package/out/chunk-YTVU4GOY.js +0 -372
- package/out/chunk-YTVU4GOY.js.map +0 -7
- package/out/chunk-ZZXMKAAG.js.map +0 -7
- package/out/expo-sqlite.js +0 -11
- package/out/expo-sqlite.js.map +0 -7
- package/out/inspector-IU2HG74I.js +0 -43
- package/out/inspector-IU2HG74I.js.map +0 -7
- package/out/lazy-inspector-OXIFYSSQ.js +0 -574
- package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
- package/out/op-sqlite.js.map +0 -7
- package/out/react-native.js +0 -25
- package/out/react-native.js.map +0 -7
- package/out/react.js +0 -479
- package/out/react.js.map +0 -7
- package/out/shared/src/enum.js +0 -2
- package/out/shared/src/enum.js.map +0 -1
- package/out/shared/src/expand.js +0 -2
- package/out/shared/src/expand.js.map +0 -1
- package/out/shared/src/immutable.js +0 -2
- package/out/shared/src/immutable.js.map +0 -1
- package/out/shared/src/types.js +0 -2
- package/out/shared/src/types.js.map +0 -1
- package/out/shared/src/writable.js +0 -2
- package/out/shared/src/writable.js.map +0 -1
- package/out/solid.js.map +0 -7
- package/out/sqlite.js +0 -15
- package/out/sqlite.js.map +0 -7
- package/out/zero/package.json +0 -194
- package/out/zero/src/server/change-streamer.js +0 -2
- package/out/zero/src/server/change-streamer.js.map +0 -1
- package/out/zero/src/server/main.js +0 -2
- package/out/zero/src/server/main.js.map +0 -1
- package/out/zero/src/server/reaper.js +0 -2
- package/out/zero/src/server/reaper.js.map +0 -1
- package/out/zero/src/server/replicator.js +0 -2
- package/out/zero/src/server/replicator.js.map +0 -1
- package/out/zero/src/server/runner/main.js +0 -2
- package/out/zero/src/server/runner/main.js.map +0 -1
- package/out/zero/src/server/syncer.js +0 -2
- package/out/zero/src/server/syncer.js.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +0 -4
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js.map +0 -1
- package/out/zero-cache/src/services/change-source/protocol/mod.js +0 -5
- package/out/zero-cache/src/services/change-source/protocol/mod.js.map +0 -1
- package/out/zero-cache/src/services/service.js +0 -2
- package/out/zero-cache/src/services/service.js.map +0 -1
- package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +0 -32
- package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/key-columns.js +0 -75
- package/out/zero-cache/src/services/view-syncer/key-columns.js.map +0 -1
- package/out/zero-cache/src/types/satisfies.js +0 -2
- package/out/zero-cache/src/types/satisfies.js.map +0 -1
- package/out/zero-client/src/client/on-error.d.ts +0 -15
- package/out/zero-client/src/client/on-error.d.ts.map +0 -1
- package/out/zero-client/src/client/zero-log-context.d.ts +0 -7
- package/out/zero-client/src/client/zero-log-context.d.ts.map +0 -1
- package/out/zero-events/src/index.js +0 -2
- package/out/zero-events/src/index.js.map +0 -1
- package/out/zero-events/src/json.js +0 -2
- package/out/zero-events/src/json.js.map +0 -1
- package/out/zero-events/src/status.js +0 -3
- package/out/zero-events/src/status.js.map +0 -1
- package/out/zero-pg/src/mod.js +0 -6
- package/out/zero-pg/src/mod.js.map +0 -1
- package/out/zero-protocol/src/error-kind.js +0 -3
- package/out/zero-protocol/src/error-kind.js.map +0 -1
- package/out/zero-protocol/src/error-origin.js +0 -3
- package/out/zero-protocol/src/error-origin.js.map +0 -1
- package/out/zero-protocol/src/error-reason.js +0 -3
- package/out/zero-protocol/src/error-reason.js.map +0 -1
- package/out/zero-react/src/components/inspector.d.ts +0 -8
- package/out/zero-react/src/components/inspector.d.ts.map +0 -1
- package/out/zero-react/src/components/mark-icon.d.ts +0 -3
- package/out/zero-react/src/components/mark-icon.d.ts.map +0 -1
- package/out/zero-react/src/components/zero-inspector.d.ts +0 -7
- package/out/zero-react/src/components/zero-inspector.d.ts.map +0 -1
- package/out/zero-react/src/use-zero-connection-state.d.ts +0 -9
- package/out/zero-react/src/use-zero-connection-state.d.ts.map +0 -1
- package/out/zero-schema/src/server-schema.d.ts.map +0 -1
- package/out/zero-schema/src/server-schema.js +0 -2
- package/out/zero-schema/src/server-schema.js.map +0 -1
- package/out/zero-schema/src/table-schema.js +0 -7
- package/out/zero-schema/src/table-schema.js.map +0 -1
- package/out/zero-server/src/mod.js +0 -9
- package/out/zero-server/src/mod.js.map +0 -1
- package/out/zero-server/src/query.d.ts +0 -22
- package/out/zero-server/src/query.d.ts.map +0 -1
- package/out/zero-server/src/query.js +0 -61
- package/out/zero-server/src/query.js.map +0 -1
- package/out/zero-solid/src/use-zero-connection-state.d.ts.map +0 -1
- package/out/zero-types/src/schema-value.js +0 -2
- package/out/zero-types/src/schema-value.js.map +0 -1
- package/out/zero-types/src/schema.js +0 -2
- package/out/zero-types/src/schema.js.map +0 -1
- package/out/zero.js +0 -81
- package/out/zero.js.map +0 -7
- package/out/zql/src/ivm/change.js +0 -2
- package/out/zql/src/ivm/change.js.map +0 -1
- package/out/zql/src/ivm/default-format.js +0 -2
- package/out/zql/src/ivm/default-format.js.map +0 -1
- package/out/zql/src/ivm/schema.js +0 -2
- package/out/zql/src/ivm/schema.js.map +0 -1
- package/out/zql/src/ivm/source.js +0 -2
- package/out/zql/src/ivm/source.js.map +0 -1
- package/out/zql/src/ivm/view.js +0 -2
- package/out/zql/src/ivm/view.js.map +0 -1
- package/out/zql/src/query/query-delegate.js +0 -2
- package/out/zql/src/query/query-delegate.js.map +0 -1
- package/out/zql/src/query/query.js +0 -9
- package/out/zql/src/query/query.js.map +0 -1
- package/out/zql/src/query/typed-view.js +0 -2
- package/out/zql/src/query/typed-view.js.map +0 -1
- package/out/zqlite/src/mod.js +0 -5
- package/out/zqlite/src/mod.js.map +0 -1
- /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { RWLock } from "@rocicorp/lock";
|
|
2
|
+
import { promiseVoid } from "../../../shared/src/resolved-promises.js";
|
|
3
|
+
import { ReadImpl } from "./read-impl.js";
|
|
4
|
+
import { throwIfStoreClosed } from "./throw-if-closed.js";
|
|
5
|
+
import { WriteImpl } from "./write-impl.js";
|
|
6
|
+
const stores = /* @__PURE__ */ new Map();
|
|
7
|
+
function dropMemStore(name) {
|
|
8
|
+
stores.delete(name);
|
|
9
|
+
return promiseVoid;
|
|
10
|
+
}
|
|
11
|
+
class MemStore {
|
|
12
|
+
#map;
|
|
13
|
+
#rwLock;
|
|
14
|
+
#closed = false;
|
|
15
|
+
constructor(name) {
|
|
16
|
+
const entry = stores.get(name);
|
|
17
|
+
let lock;
|
|
18
|
+
let map;
|
|
19
|
+
if (entry) {
|
|
20
|
+
({ lock, map } = entry);
|
|
21
|
+
} else {
|
|
22
|
+
lock = new RWLock();
|
|
23
|
+
map = /* @__PURE__ */ new Map();
|
|
24
|
+
stores.set(name, { lock, map });
|
|
25
|
+
}
|
|
26
|
+
this.#rwLock = lock;
|
|
27
|
+
this.#map = map;
|
|
28
|
+
}
|
|
29
|
+
async read() {
|
|
30
|
+
throwIfStoreClosed(this);
|
|
31
|
+
const release = await this.#rwLock.read();
|
|
32
|
+
return new ReadImpl(this.#map, release);
|
|
33
|
+
}
|
|
34
|
+
async write() {
|
|
35
|
+
throwIfStoreClosed(this);
|
|
36
|
+
const release = await this.#rwLock.write();
|
|
37
|
+
return new WriteImpl(this.#map, release);
|
|
38
|
+
}
|
|
39
|
+
close() {
|
|
40
|
+
this.#closed = true;
|
|
41
|
+
return promiseVoid;
|
|
42
|
+
}
|
|
43
|
+
get closed() {
|
|
44
|
+
return this.#closed;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
MemStore,
|
|
49
|
+
dropMemStore
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=mem-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem-store.js","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"],"names":[],"mappings":";;;;;AAYA,MAAM,6BAAa,IAAA;AAMZ,SAAS,aAAa,MAA6B;AACxD,SAAO,OAAO,IAAI;AAClB,SAAO;AACT;AAgBO,MAAM,SAA0B;AAAA,EAC5B;AAAA,EACA;AAAA,EACT,UAAU;AAAA,EAEV,YAAY,MAAc;AACxB,UAAM,QAAQ,OAAO,IAAI,IAAI;AAC7B,QAAI;AACJ,QAAI;AACJ,QAAI,OAAO;AACT,OAAC,EAAC,MAAM,IAAA,IAAO;AAAA,IACjB,OAAO;AACL,aAAO,IAAI,OAAA;AACX,gCAAU,IAAA;AACV,aAAO,IAAI,MAAM,EAAC,MAAM,KAAI;AAAA,IAC9B;AACA,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,MAAM,OAAsB;AAC1B,uBAAmB,IAAI;AACvB,UAAM,UAAU,MAAM,KAAK,QAAQ,KAAA;AACnC,WAAO,IAAI,SAAS,KAAK,MAAM,OAAO;AAAA,EACxC;AAAA,EAEA,MAAM,QAAwB;AAC5B,uBAAmB,IAAI;AACvB,UAAM,UAAU,MAAM,KAAK,QAAQ,MAAA;AACnC,WAAO,IAAI,UAAU,KAAK,MAAM,OAAO;AAAA,EACzC;AAAA,EAEA,QAAuB;AACrB,SAAK,UAAU;AACf,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,SAAkB;AACpB,WAAO,KAAK;AAAA,EACd;AACF;"}
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
dropStore
|
|
4
|
-
} from "./chunk-ECUMGQGC.js";
|
|
5
|
-
import "./chunk-ASRS2LFV.js";
|
|
6
|
-
import "./chunk-EZM3XBAB.js";
|
|
7
|
-
import "./chunk-424PT5DM.js";
|
|
8
|
-
|
|
9
|
-
// ../replicache/src/kv/op-sqlite/types.ts
|
|
10
|
-
import { open as openDB } from "@op-engineering/op-sqlite";
|
|
11
|
-
var open = openDB;
|
|
12
|
-
|
|
13
|
-
// ../replicache/src/kv/op-sqlite/store.ts
|
|
1
|
+
import { SQLiteStore, dropStore } from "../sqlite-store.js";
|
|
2
|
+
import { open } from "./types.js";
|
|
14
3
|
function dropOpSQLiteStore(name) {
|
|
15
4
|
return dropStore(
|
|
16
5
|
name,
|
|
@@ -27,7 +16,7 @@ function opSQLiteStoreProvider(opts) {
|
|
|
27
16
|
drop: dropOpSQLiteStore
|
|
28
17
|
};
|
|
29
18
|
}
|
|
30
|
-
|
|
19
|
+
class OpSQLitePreparedStatement {
|
|
31
20
|
#db;
|
|
32
21
|
#sql;
|
|
33
22
|
constructor(db, sql) {
|
|
@@ -41,8 +30,8 @@ var OpSQLitePreparedStatement = class {
|
|
|
41
30
|
async exec(params) {
|
|
42
31
|
await this.#db.executeRaw(this.#sql, params);
|
|
43
32
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
33
|
+
}
|
|
34
|
+
class OpSQLiteDatabase {
|
|
46
35
|
#db;
|
|
47
36
|
#filename;
|
|
48
37
|
constructor(filename, opts) {
|
|
@@ -73,8 +62,8 @@ var OpSQLiteDatabase = class {
|
|
|
73
62
|
execSync(sql) {
|
|
74
63
|
this.#db.executeRawSync(sql, []);
|
|
75
64
|
}
|
|
76
|
-
}
|
|
65
|
+
}
|
|
77
66
|
export {
|
|
78
67
|
opSQLiteStoreProvider
|
|
79
68
|
};
|
|
80
|
-
//# sourceMappingURL=
|
|
69
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","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(name: string): Promise<void> {\n return dropStore(\n name,\n (filename, opts) => new OpSQLiteDatabase(filename, 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: dropOpSQLiteStore,\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 firstValue(params: string[]): Promise<string | undefined> {\n const rows = await this.#db.executeRaw(this.#sql, params);\n return rows[0]?.[0];\n }\n\n async exec(params: string[]): Promise<void> {\n await 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"],"names":["name"],"mappings":";;AAeA,SAAS,kBAAkB,MAA6B;AACtD,SAAO;AAAA,IACL;AAAA,IACA,CAAC,UAAU,SAAS,IAAI,iBAAiB,UAAU,IAAI;AAAA,EAAA;AAE3D;AAQO,SAAS,sBACd,MACe;AACf,SAAO;AAAA,IACL,QAAQ,UACN,IAAI;AAAA,MACF;AAAA,MACA,CAACA,OAAM,YAAY,IAAI,iBAAiBA,OAAM,OAAO;AAAA,MACrD;AAAA,IAAA;AAAA,IAEJ,MAAM;AAAA,EAAA;AAEV;AAEA,MAAM,0BAAuD;AAAA,EAClD;AAAA,EACA;AAAA,EAET,YAAY,IAAQ,KAAa;AAC/B,SAAK,MAAM;AACX,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,MAAM,WAAW,QAA+C;AAC9D,UAAM,OAAO,MAAM,KAAK,IAAI,WAAW,KAAK,MAAM,MAAM;AACxD,WAAO,KAAK,CAAC,IAAI,CAAC;AAAA,EACpB;AAAA,EAEA,MAAM,KAAK,QAAiC;AAC1C,UAAM,KAAK,IAAI,WAAW,KAAK,MAAM,MAAM;AAAA,EAC7C;AACF;AAEA,MAAM,iBAA2C;AAAA,EACtC;AAAA,EACA;AAAA,EAET,YAAY,UAAkB,MAA6B;AACzD,SAAK,YAAY;AACjB,UAAM,WAIF,EAAC,MAAM,SAAA;AAEX,QAAI,MAAM,UAAU;AAClB,eAAS,WAAW,KAAK;AAAA,IAC3B;AACA,QAAI,MAAM,eAAe;AACvB,eAAS,gBAAgB,KAAK;AAAA,IAChC;AAEA,SAAK,MAAM,KAAK,QAAQ;AAAA,EAC1B;AAAA,EAEA,QAAc;AACZ,SAAK,IAAI,MAAA;AAAA,EACX;AAAA,EAEA,UAAgB;AAGd,QAAI;AACF,YAAM,SAAS,KAAK,EAAC,MAAM,KAAK,WAAU;AAC1C,aAAO,OAAA;AACP,aAAO,MAAA;AAAA,IACT,SAAS,QAAQ;AAAA,IAEjB;AAAA,EACF;AAAA,EAEA,QAAQ,KAAgC;AACtC,WAAO,IAAI,0BAA0B,KAAK,KAAK,GAAG;AAAA,EACpD;AAAA,EAEA,SAAS,KAAmB;AAC1B,SAAK,IAAI,eAAe,KAAK,CAAA,CAAE;AAAA,EACjC;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","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\n// @ts-expect-error - Module resolution issue with @op-engineering/op-sqlite exports\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"],"names":["openDB"],"mappings":";AAsBO,MAAM,OAAqBA;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { maybeTransactionIsClosedRejection } from "./throw-if-closed.js";
|
|
2
|
+
class ReadImpl {
|
|
3
|
+
#map;
|
|
4
|
+
#release;
|
|
5
|
+
#closed = false;
|
|
6
|
+
constructor(map, release) {
|
|
7
|
+
this.#map = map;
|
|
8
|
+
this.#release = release;
|
|
9
|
+
}
|
|
10
|
+
release() {
|
|
11
|
+
this.#release();
|
|
12
|
+
this.#closed = true;
|
|
13
|
+
}
|
|
14
|
+
get closed() {
|
|
15
|
+
return this.#closed;
|
|
16
|
+
}
|
|
17
|
+
has(key) {
|
|
18
|
+
return maybeTransactionIsClosedRejection(this) ?? Promise.resolve(this.#map.has(key));
|
|
19
|
+
}
|
|
20
|
+
get(key) {
|
|
21
|
+
return maybeTransactionIsClosedRejection(this) ?? Promise.resolve(this.#map.get(key));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
ReadImpl
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=read-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-impl.js","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"],"names":[],"mappings":";AAIO,MAAM,SAAyB;AAAA,EAC3B;AAAA,EACA;AAAA,EACT,UAAU;AAAA,EAEV,YAAY,KAAmC,SAAqB;AAClE,SAAK,OAAO;AACZ,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,UAAU;AACR,SAAK,SAAA;AACL,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,SAAkB;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,KAA+B;AACjC,WACE,kCAAkC,IAAI,KACtC,QAAQ,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC;AAAA,EAEtC;AAAA,EAEA,IAAI,KAAmD;AACrD,WACE,kCAAkC,IAAI,KACtC,QAAQ,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC;AAAA,EAEtC;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../../../replicache/src/kv/sqlite-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../../../replicache/src/kv/sqlite-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
throwIfStoreClosed,
|
|
3
|
-
throwIfTransactionClosed
|
|
4
|
-
} from "./chunk-ASRS2LFV.js";
|
|
5
|
-
import {
|
|
6
|
-
deepFreeze
|
|
7
|
-
} from "./chunk-EZM3XBAB.js";
|
|
8
|
-
|
|
9
|
-
// ../replicache/src/kv/sqlite-store.ts
|
|
10
1
|
import { RWLock } from "@rocicorp/lock";
|
|
11
|
-
|
|
2
|
+
import { deepFreeze } from "../frozen-json.js";
|
|
3
|
+
import { throwIfStoreClosed, throwIfTransactionClosed } from "./throw-if-closed.js";
|
|
4
|
+
class SQLiteStore {
|
|
12
5
|
#filename;
|
|
13
6
|
#entry;
|
|
14
7
|
#closed = false;
|
|
@@ -53,7 +46,7 @@ var SQLiteStore = class {
|
|
|
53
46
|
get closed() {
|
|
54
47
|
return this.#closed;
|
|
55
48
|
}
|
|
56
|
-
}
|
|
49
|
+
}
|
|
57
50
|
function safeFilename(name) {
|
|
58
51
|
return name.replace(/[^a-zA-Z0-9]/g, "_");
|
|
59
52
|
}
|
|
@@ -79,7 +72,7 @@ function setupDatabase(delegate, opts) {
|
|
|
79
72
|
del: delegate.prepare("DELETE FROM entry WHERE key = ?")
|
|
80
73
|
};
|
|
81
74
|
}
|
|
82
|
-
|
|
75
|
+
class SQLiteStoreRead {
|
|
83
76
|
#release;
|
|
84
77
|
#closed = false;
|
|
85
78
|
#preparedStatements;
|
|
@@ -110,8 +103,8 @@ var SQLiteStoreRead = class {
|
|
|
110
103
|
get closed() {
|
|
111
104
|
return this.#closed;
|
|
112
105
|
}
|
|
113
|
-
}
|
|
114
|
-
|
|
106
|
+
}
|
|
107
|
+
class SQLiteWrite {
|
|
115
108
|
#release;
|
|
116
109
|
#dbDelegate;
|
|
117
110
|
#preparedStatements;
|
|
@@ -162,8 +155,8 @@ var SQLiteWrite = class {
|
|
|
162
155
|
get closed() {
|
|
163
156
|
return this.#closed;
|
|
164
157
|
}
|
|
165
|
-
}
|
|
166
|
-
|
|
158
|
+
}
|
|
159
|
+
const stores = /* @__PURE__ */ new Map();
|
|
167
160
|
function getOrCreateEntry(name, create, opts) {
|
|
168
161
|
const filename = safeFilename(name);
|
|
169
162
|
const entry = stores.get(filename);
|
|
@@ -204,17 +197,30 @@ function dropStore(name, createDelegate) {
|
|
|
204
197
|
const filename = safeFilename(name);
|
|
205
198
|
const entry = stores.get(filename);
|
|
206
199
|
if (entry) {
|
|
207
|
-
|
|
200
|
+
try {
|
|
201
|
+
entry.db.close();
|
|
202
|
+
} catch {
|
|
203
|
+
}
|
|
208
204
|
stores.delete(filename);
|
|
209
205
|
}
|
|
210
206
|
const tempDelegate = createDelegate(filename);
|
|
211
|
-
|
|
207
|
+
try {
|
|
208
|
+
tempDelegate.close();
|
|
209
|
+
} catch {
|
|
210
|
+
}
|
|
211
|
+
try {
|
|
212
|
+
tempDelegate.destroy();
|
|
213
|
+
} catch {
|
|
214
|
+
}
|
|
212
215
|
return Promise.resolve();
|
|
213
216
|
}
|
|
214
|
-
|
|
215
217
|
export {
|
|
216
218
|
SQLiteStore,
|
|
219
|
+
SQLiteStoreRead,
|
|
220
|
+
SQLiteWrite,
|
|
217
221
|
clearAllNamedStoresForTesting,
|
|
218
|
-
dropStore
|
|
222
|
+
dropStore,
|
|
223
|
+
safeFilename,
|
|
224
|
+
setupDatabase
|
|
219
225
|
};
|
|
220
|
-
//# sourceMappingURL=
|
|
226
|
+
//# sourceMappingURL=sqlite-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-store.js","sources":["../../../../../replicache/src/kv/sqlite-store.ts"],"sourcesContent":["import {RWLock} from '@rocicorp/lock';\nimport type {ReadonlyJSONValue} from '../../../shared/src/json.ts';\nimport {deepFreeze} from '../frozen-json.ts';\nimport type {Read, Store, Write} from './store.ts';\nimport {\n throwIfStoreClosed,\n throwIfTransactionClosed,\n} from './throw-if-closed.ts';\n\n/**\n * A SQLite prepared statement.\n *\n * `run` executes the statement with optional parameters.\n * `all` executes the statement and returns the result rows.\n * `finalize` releases the statement.\n */\nexport interface PreparedStatement {\n firstValue(params: string[]): Promise<unknown>;\n exec(params: string[]): Promise<void>;\n}\n\nexport interface SQLiteDatabase {\n /**\n * Close the database connection.\n */\n close(): void;\n\n /**\n * Destroy or delete the database (e.g. delete file).\n */\n destroy(): void;\n\n /**\n * Prepare a SQL string, returning a statement you can execute.\n * E.g. `const stmt = db.prepare(\"SELECT * FROM todos WHERE id=?\");`\n */\n prepare(sql: string): PreparedStatement;\n\n // for PRAGMA statements, schema creation and transaction control.\n execSync(sql: string): void;\n}\n\nexport type CreateSQLiteDatabase = (\n filename: string,\n opts?: SQLiteStoreOptions,\n) => SQLiteDatabase;\n\n/**\n * SQLite-based implementation of the Store interface using a configurable delegate.\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 class SQLiteStore implements Store {\n readonly #filename: string;\n readonly #entry: StoreEntry;\n\n #closed = false;\n\n constructor(\n name: string,\n create: CreateSQLiteDatabase,\n opts?: SQLiteStoreOptions,\n ) {\n this.#filename = safeFilename(name);\n this.#entry = getOrCreateEntry(name, create, opts);\n }\n\n async read(): Promise<Read> {\n throwIfStoreClosed(this);\n\n const entry = this.#entry;\n const {db, lock, preparedStatements} = entry;\n const release = await lock.read();\n\n // Start shared read transaction if this is the first reader\n // This ensures consistent reads across all concurrent readers\n if (entry.activeReaders === 0) {\n db.execSync('BEGIN');\n }\n entry.activeReaders++;\n\n return new SQLiteStoreRead(() => {\n entry.activeReaders--;\n // Commit shared read transaction when last reader finishes\n if (entry.activeReaders === 0) {\n db.execSync('COMMIT');\n }\n release();\n }, preparedStatements);\n }\n\n async write(): Promise<Write> {\n throwIfStoreClosed(this);\n\n const {lock, db, preparedStatements} = this.#entry;\n const release = await lock.write();\n\n // At this point, RWLock guarantees no active readers\n // The last reader would have already committed the shared transaction\n\n db.execSync('BEGIN IMMEDIATE');\n\n return new SQLiteWrite(release, db, preparedStatements);\n }\n\n async close(): Promise<void> {\n if (this.#closed) {\n return;\n }\n\n const {lock, db} = this.#entry;\n // Wait for all readers and writers to finish.\n const writeRelease = await lock.write();\n\n // Handle reference counting for shared stores - only close database\n // when this is the last store instance using it\n decrementStoreRefCount(this.#filename, db);\n\n this.#closed = true;\n writeRelease();\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n}\n\nexport function safeFilename(name: string): string {\n return name.replace(/[^a-zA-Z0-9]/g, '_');\n}\n\nexport type PreparedStatements = {\n has: PreparedStatement;\n get: PreparedStatement;\n put: PreparedStatement;\n del: PreparedStatement;\n};\n\nexport interface SQLiteStoreOptions {\n // Common options\n busyTimeout?: number;\n journalMode?: 'WAL' | 'DELETE';\n synchronous?: 'NORMAL' | 'FULL';\n readUncommitted?: boolean;\n}\n\n/**\n * Common database setup logic shared between expo-sqlite and op-sqlite implementations.\n * Configures SQLite pragmas, creates the entry table, and prepares common statements.\n */\n\nexport function setupDatabase(\n delegate: SQLiteDatabase,\n opts?: SQLiteStoreOptions,\n): PreparedStatements {\n // Configure SQLite pragmas for optimal performance\n delegate.execSync(`PRAGMA busy_timeout = ${opts?.busyTimeout ?? 200}`);\n delegate.execSync(`PRAGMA journal_mode = '${opts?.journalMode ?? 'WAL'}'`);\n delegate.execSync(`PRAGMA synchronous = '${opts?.synchronous ?? 'NORMAL'}'`);\n delegate.execSync(\n `PRAGMA read_uncommitted = ${Boolean(opts?.readUncommitted)}`,\n );\n\n // Create the entry table\n delegate.execSync(`\n CREATE TABLE IF NOT EXISTS entry (\n key TEXT PRIMARY KEY, \n value TEXT NOT NULL\n ) WITHOUT ROWID\n `);\n\n // Prepare common statements\n return {\n has: delegate.prepare(`SELECT 1 FROM entry WHERE key = ? LIMIT 1`),\n get: delegate.prepare('SELECT value FROM entry WHERE key = ?'),\n put: delegate.prepare(\n 'INSERT OR REPLACE INTO entry (key, value) VALUES (?, ?)',\n ),\n del: delegate.prepare('DELETE FROM entry WHERE key = ?'),\n };\n}\n\nexport class SQLiteStoreRead implements Read {\n #release: () => void;\n #closed = false;\n #preparedStatements: PreparedStatements;\n\n constructor(release: () => void, preparedStatements: PreparedStatements) {\n this.#release = release;\n this.#preparedStatements = preparedStatements;\n }\n\n async has(key: string): Promise<boolean> {\n throwIfTransactionClosed(this);\n const value = await this.#preparedStatements.has.firstValue([key]);\n return value !== undefined;\n }\n\n async get(key: string): Promise<ReadonlyJSONValue | undefined> {\n throwIfTransactionClosed(this);\n const value = await this.#preparedStatements.get.firstValue([key]);\n if (!value) {\n return undefined;\n }\n\n const parsedValue = JSON.parse(value as string) as ReadonlyJSONValue;\n return deepFreeze(parsedValue);\n }\n\n release(): void {\n if (!this.#closed) {\n this.#closed = true;\n this.#release();\n }\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n}\n\nexport class SQLiteWrite implements Write {\n readonly #release: () => void;\n readonly #dbDelegate: SQLiteDatabase;\n readonly #preparedStatements: PreparedStatements;\n #committed = false;\n #closed = false;\n\n constructor(\n release: () => void,\n dbDelegate: SQLiteDatabase,\n preparedStatements: PreparedStatements,\n ) {\n this.#release = release;\n this.#dbDelegate = dbDelegate;\n this.#preparedStatements = preparedStatements;\n }\n\n async has(key: string): Promise<boolean> {\n throwIfTransactionClosed(this);\n const value = await this.#preparedStatements.has.firstValue([key]);\n return value !== undefined;\n }\n\n async get(key: string): Promise<ReadonlyJSONValue | undefined> {\n throwIfTransactionClosed(this);\n const value = await this.#preparedStatements.get.firstValue([key]);\n if (!value) {\n return undefined;\n }\n\n const parsedValue = JSON.parse(value as string) as ReadonlyJSONValue;\n return deepFreeze(parsedValue);\n }\n\n async put(key: string, value: ReadonlyJSONValue): Promise<void> {\n throwIfTransactionClosed(this);\n await this.#preparedStatements.put.exec([key, JSON.stringify(value)]);\n }\n\n async del(key: string): Promise<void> {\n throwIfTransactionClosed(this);\n await this.#preparedStatements.del.exec([key]);\n }\n\n // oxlint-disable-next-line require-await\n async commit(): Promise<void> {\n throwIfTransactionClosed(this);\n this.#dbDelegate.execSync('COMMIT');\n this.#committed = true;\n }\n\n release(): void {\n if (!this.#closed) {\n this.#closed = true;\n\n if (!this.#committed) {\n this.#dbDelegate.execSync('ROLLBACK');\n }\n\n this.#release();\n }\n }\n\n get closed(): boolean {\n return this.#closed;\n }\n}\n\ntype StoreEntry = {\n readonly lock: RWLock;\n readonly db: SQLiteDatabase;\n refCount: number;\n activeReaders: number;\n preparedStatements: PreparedStatements;\n};\n\n// Global map to share database connections between multiple store instances with the same name\nconst stores = new Map<string, StoreEntry>();\n\n/**\n * Gets an existing store entry or creates a new one if it doesn't exist.\n * This implements the shared connection pattern where multiple stores with the same\n * name share the same database connection, lock, and delegate.\n */\nfunction getOrCreateEntry(\n name: string,\n create: (filename: string, opts?: SQLiteStoreOptions) => SQLiteDatabase,\n opts?: SQLiteStoreOptions,\n): StoreEntry {\n const filename = safeFilename(name);\n const entry = stores.get(filename);\n\n if (entry) {\n entry.refCount++;\n return entry;\n }\n\n const dbDelegate = create(filename, opts);\n const preparedStatements = setupDatabase(dbDelegate, opts);\n\n const lock = new RWLock();\n\n const newEntry: StoreEntry = {\n lock,\n db: dbDelegate,\n refCount: 1,\n activeReaders: 0,\n preparedStatements,\n };\n stores.set(filename, newEntry);\n return newEntry;\n}\n\n/**\n * Decrements the reference count for a shared store and cleans up resources\n * when the last reference is released.\n */\n\nfunction decrementStoreRefCount(\n filename: string,\n dbDelegate: SQLiteDatabase,\n): void {\n const entry = stores.get(filename);\n if (entry) {\n entry.refCount--;\n if (entry.refCount <= 0) {\n dbDelegate.close();\n stores.delete(filename);\n }\n }\n}\nexport function clearAllNamedStoresForTesting(): void {\n for (const entry of stores.values()) {\n entry.db.close();\n }\n stores.clear();\n}\n\nexport function dropStore(\n name: string,\n createDelegate: (\n filename: string,\n opts?: SQLiteStoreOptions,\n ) => SQLiteDatabase,\n): Promise<void> {\n const filename = safeFilename(name);\n const entry = stores.get(filename);\n if (entry) {\n try {\n entry.db.close();\n } catch {\n // Ignore close errors\n }\n stores.delete(filename);\n }\n\n // Create a temporary delegate to handle database deletion\n const tempDelegate = createDelegate(filename);\n try {\n // we close the db before destroying it - this\n // caused an issue with expo-sqlite since it requires this\n tempDelegate.close();\n } catch {\n // Ignore close errors\n }\n try {\n tempDelegate.destroy();\n } catch {\n // Destroy errors shouldn't be fatal; the file may already be gone or locked\n }\n\n return Promise.resolve();\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// ../replicache/src/kv/throw-if-closed.ts
|
|
2
1
|
function storeError() {
|
|
3
2
|
return new Error("Store is closed");
|
|
4
3
|
}
|
|
@@ -24,12 +23,11 @@ function maybeTransactionIsClosedRejection(transaction) {
|
|
|
24
23
|
function storeIsClosedRejection() {
|
|
25
24
|
return Promise.reject(storeError());
|
|
26
25
|
}
|
|
27
|
-
|
|
28
26
|
export {
|
|
27
|
+
maybeTransactionIsClosedRejection,
|
|
28
|
+
storeIsClosedRejection,
|
|
29
29
|
throwIfStoreClosed,
|
|
30
30
|
throwIfTransactionClosed,
|
|
31
|
-
transactionIsClosedRejection
|
|
32
|
-
maybeTransactionIsClosedRejection,
|
|
33
|
-
storeIsClosedRejection
|
|
31
|
+
transactionIsClosedRejection
|
|
34
32
|
};
|
|
35
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=throw-if-closed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throw-if-closed.js","sources":["../../../../../replicache/src/kv/throw-if-closed.ts"],"sourcesContent":["function storeError(): Error {\n return new Error('Store is closed');\n}\n\nfunction transactionError(): Error {\n return new Error('Transaction is closed');\n}\n\nexport function throwIfStoreClosed(store: {readonly closed: boolean}): void {\n if (store.closed) {\n throw storeError();\n }\n}\n\nexport function throwIfTransactionClosed(transaction: {\n readonly closed: boolean;\n}): void {\n if (transaction.closed) {\n throw transactionError();\n }\n}\n\nexport function transactionIsClosedRejection() {\n return Promise.reject(transactionError());\n}\n\nexport function maybeTransactionIsClosedRejection(transaction: {\n readonly closed: boolean;\n}): Promise<never> | undefined {\n return transaction.closed ? transactionIsClosedRejection() : undefined;\n}\n\nexport function storeIsClosedRejection() {\n return Promise.reject(storeError());\n}\n"],"names":[],"mappings":"AAAA,SAAS,aAAoB;AAC3B,SAAO,IAAI,MAAM,iBAAiB;AACpC;AAEA,SAAS,mBAA0B;AACjC,SAAO,IAAI,MAAM,uBAAuB;AAC1C;AAEO,SAAS,mBAAmB,OAAyC;AAC1E,MAAI,MAAM,QAAQ;AAChB,UAAM,WAAA;AAAA,EACR;AACF;AAEO,SAAS,yBAAyB,aAEhC;AACP,MAAI,YAAY,QAAQ;AACtB,UAAM,iBAAA;AAAA,EACR;AACF;AAEO,SAAS,+BAA+B;AAC7C,SAAO,QAAQ,OAAO,kBAAkB;AAC1C;AAEO,SAAS,kCAAkC,aAEnB;AAC7B,SAAO,YAAY,SAAS,6BAAA,IAAiC;AAC/D;AAEO,SAAS,yBAAyB;AACvC,SAAO,QAAQ,OAAO,YAAY;AACpC;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { promiseTrue, promiseFalse, promiseVoid } from "../../../shared/src/resolved-promises.js";
|
|
2
|
+
import { deepFreezeAllowUndefined, deepFreeze } from "../frozen-json.js";
|
|
3
|
+
import { transactionIsClosedRejection, maybeTransactionIsClosedRejection } from "./throw-if-closed.js";
|
|
4
|
+
const deleteSentinel = Symbol();
|
|
5
|
+
class WriteImplBase {
|
|
6
|
+
_pending = /* @__PURE__ */ new Map();
|
|
7
|
+
#read;
|
|
8
|
+
constructor(read) {
|
|
9
|
+
this.#read = read;
|
|
10
|
+
}
|
|
11
|
+
has(key) {
|
|
12
|
+
if (this.#read.closed) {
|
|
13
|
+
return transactionIsClosedRejection();
|
|
14
|
+
}
|
|
15
|
+
switch (this._pending.get(key)) {
|
|
16
|
+
case void 0:
|
|
17
|
+
return this.#read.has(key);
|
|
18
|
+
case deleteSentinel:
|
|
19
|
+
return promiseFalse;
|
|
20
|
+
default:
|
|
21
|
+
return promiseTrue;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async get(key) {
|
|
25
|
+
if (this.#read.closed) {
|
|
26
|
+
return transactionIsClosedRejection();
|
|
27
|
+
}
|
|
28
|
+
const v = this._pending.get(key);
|
|
29
|
+
switch (v) {
|
|
30
|
+
case deleteSentinel:
|
|
31
|
+
return void 0;
|
|
32
|
+
case void 0: {
|
|
33
|
+
const v2 = await this.#read.get(key);
|
|
34
|
+
return deepFreezeAllowUndefined(v2);
|
|
35
|
+
}
|
|
36
|
+
default:
|
|
37
|
+
return v;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
put(key, value) {
|
|
41
|
+
return maybeTransactionIsClosedRejection(this.#read) ?? (this._pending.set(key, deepFreeze(value)), promiseVoid);
|
|
42
|
+
}
|
|
43
|
+
del(key) {
|
|
44
|
+
return maybeTransactionIsClosedRejection(this.#read) ?? (this._pending.set(key, deleteSentinel), promiseVoid);
|
|
45
|
+
}
|
|
46
|
+
release() {
|
|
47
|
+
this.#read.release();
|
|
48
|
+
}
|
|
49
|
+
get closed() {
|
|
50
|
+
return this.#read.closed;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
WriteImplBase,
|
|
55
|
+
deleteSentinel
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=write-impl-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-impl-base.js","sources":["../../../../../replicache/src/kv/write-impl-base.ts"],"sourcesContent":["import type {ReadonlyJSONValue} from '../../../shared/src/json.ts';\nimport {\n promiseFalse,\n promiseTrue,\n promiseVoid,\n} from '../../../shared/src/resolved-promises.ts';\nimport {\n type FrozenJSONValue,\n deepFreeze,\n deepFreezeAllowUndefined,\n} from '../frozen-json.ts';\nimport type {Read} from './store.ts';\nimport {\n maybeTransactionIsClosedRejection,\n transactionIsClosedRejection,\n} from './throw-if-closed.ts';\n\nexport const deleteSentinel = Symbol();\ntype DeleteSentinel = typeof deleteSentinel;\n\nexport class WriteImplBase {\n protected readonly _pending: Map<string, FrozenJSONValue | DeleteSentinel> =\n new Map();\n readonly #read: Read;\n\n constructor(read: Read) {\n this.#read = read;\n }\n\n has(key: string): Promise<boolean> {\n if (this.#read.closed) {\n return transactionIsClosedRejection();\n }\n switch (this._pending.get(key)) {\n case undefined:\n return this.#read.has(key);\n case deleteSentinel:\n return promiseFalse;\n default:\n return promiseTrue;\n }\n }\n\n async get(key: string): Promise<FrozenJSONValue | undefined> {\n if (this.#read.closed) {\n return transactionIsClosedRejection();\n }\n const v = this._pending.get(key);\n switch (v) {\n case deleteSentinel:\n return undefined;\n case undefined: {\n const v = await this.#read.get(key);\n return deepFreezeAllowUndefined(v);\n }\n default:\n return v;\n }\n }\n\n put(key: string, value: ReadonlyJSONValue) {\n return (\n maybeTransactionIsClosedRejection(this.#read) ??\n (this._pending.set(key, deepFreeze(value)), promiseVoid)\n );\n }\n\n del(key: string): Promise<void> {\n return (\n maybeTransactionIsClosedRejection(this.#read) ??\n (this._pending.set(key, deleteSentinel), promiseVoid)\n );\n }\n\n release(): void {\n this.#read.release();\n }\n\n get closed(): boolean {\n return this.#read.closed;\n }\n}\n"],"names":["v"],"mappings":";;;AAiBO,MAAM,iBAAiB,OAAA;AAGvB,MAAM,cAAc;AAAA,EACN,+BACb,IAAA;AAAA,EACG;AAAA,EAET,YAAY,MAAY;AACtB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,IAAI,KAA+B;AACjC,QAAI,KAAK,MAAM,QAAQ;AACrB,aAAO,6BAAA;AAAA,IACT;AACA,YAAQ,KAAK,SAAS,IAAI,GAAG,GAAA;AAAA,MAC3B,KAAK;AACH,eAAO,KAAK,MAAM,IAAI,GAAG;AAAA,MAC3B,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb;AAAA,EAEA,MAAM,IAAI,KAAmD;AAC3D,QAAI,KAAK,MAAM,QAAQ;AACrB,aAAO,6BAAA;AAAA,IACT;AACA,UAAM,IAAI,KAAK,SAAS,IAAI,GAAG;AAC/B,YAAQ,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK,QAAW;AACd,cAAMA,KAAI,MAAM,KAAK,MAAM,IAAI,GAAG;AAClC,eAAO,yBAAyBA,EAAC;AAAA,MACnC;AAAA,MACA;AACE,eAAO;AAAA,IAAA;AAAA,EAEb;AAAA,EAEA,IAAI,KAAa,OAA0B;AACzC,WACE,kCAAkC,KAAK,KAAK,MAC3C,KAAK,SAAS,IAAI,KAAK,WAAW,KAAK,CAAC,GAAG;AAAA,EAEhD;AAAA,EAEA,IAAI,KAA4B;AAC9B,WACE,kCAAkC,KAAK,KAAK,MAC3C,KAAK,SAAS,IAAI,KAAK,cAAc,GAAG;AAAA,EAE7C;AAAA,EAEA,UAAgB;AACd,SAAK,MAAM,QAAA;AAAA,EACb;AAAA,EAEA,IAAI,SAAkB;AACpB,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { promiseVoid } from "../../../shared/src/resolved-promises.js";
|
|
2
|
+
import { ReadImpl } from "./read-impl.js";
|
|
3
|
+
import { transactionIsClosedRejection } from "./throw-if-closed.js";
|
|
4
|
+
import { WriteImplBase, deleteSentinel } from "./write-impl-base.js";
|
|
5
|
+
class WriteImpl extends WriteImplBase {
|
|
6
|
+
#map;
|
|
7
|
+
constructor(map, release) {
|
|
8
|
+
super(new ReadImpl(map, release));
|
|
9
|
+
this.#map = map;
|
|
10
|
+
}
|
|
11
|
+
commit() {
|
|
12
|
+
if (this.closed) {
|
|
13
|
+
return transactionIsClosedRejection();
|
|
14
|
+
}
|
|
15
|
+
this._pending.forEach((value, key) => {
|
|
16
|
+
if (value === deleteSentinel) {
|
|
17
|
+
this.#map.delete(key);
|
|
18
|
+
} else {
|
|
19
|
+
this.#map.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
this._pending.clear();
|
|
23
|
+
this.release();
|
|
24
|
+
return promiseVoid;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
WriteImpl
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=write-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-impl.js","sources":["../../../../../replicache/src/kv/write-impl.ts"],"sourcesContent":["import {promiseVoid} from '../../../shared/src/resolved-promises.ts';\nimport type {FrozenJSONValue} from '../frozen-json.ts';\nimport {ReadImpl} from './read-impl.ts';\nimport type {Write} from './store.ts';\nimport {transactionIsClosedRejection} from './throw-if-closed.ts';\nimport {deleteSentinel, WriteImplBase} from './write-impl-base.ts';\n\nexport class WriteImpl extends WriteImplBase implements Write {\n readonly #map: Map<string, FrozenJSONValue>;\n\n constructor(map: Map<string, FrozenJSONValue>, release: () => void) {\n super(new ReadImpl(map, release));\n this.#map = map;\n }\n\n commit(): Promise<void> {\n if (this.closed) {\n return transactionIsClosedRejection();\n }\n\n // HOT. Do not allocate entry tuple and destructure.\n this._pending.forEach((value, key) => {\n if (value === deleteSentinel) {\n this.#map.delete(key);\n } else {\n this.#map.set(key, value);\n }\n });\n this._pending.clear();\n this.release();\n return promiseVoid;\n }\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,kBAAkB,cAA+B;AAAA,EACnD;AAAA,EAET,YAAY,KAAmC,SAAqB;AAClE,UAAM,IAAI,SAAS,KAAK,OAAO,CAAC;AAChC,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,SAAwB;AACtB,QAAI,KAAK,QAAQ;AACf,aAAO,6BAAA;AAAA,IACT;AAGA,SAAK,SAAS,QAAQ,CAAC,OAAO,QAAQ;AACpC,UAAI,UAAU,gBAAgB;AAC5B,aAAK,KAAK,OAAO,GAAG;AAAA,MACtB,OAAO;AACL,aAAK,KAAK,IAAI,KAAK,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AACD,SAAK,SAAS,MAAA;AACd,SAAK,QAAA;AACL,WAAO;AAAA,EACT;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.js","sources":["../../../../replicache/src/lazy.ts"],"sourcesContent":["export function lazy<T>(factory: () => T): () => T {\n let value: T | undefined;\n return () => {\n if (value === undefined) {\n value = factory();\n }\n return value;\n };\n}\n"],"names":[],"mappings":"AAAO,SAAS,KAAQ,SAA2B;AACjD,MAAI;AACJ,SAAO,MAAM;AACX,QAAI,UAAU,QAAW;AACvB,cAAQ,QAAA;AAAA,IACV;AACA,WAAO;AAAA,EACT;AACF;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { consoleLogSink, TeeLogSink, LogContext } from "@rocicorp/logger";
|
|
2
|
+
function createLogContext(logLevel = "info", logSinks = [consoleLogSink], context) {
|
|
3
|
+
const logSink = logSinks.length === 1 ? logSinks[0] : new TeeLogSink(logSinks);
|
|
4
|
+
return new LogContext(logLevel, context, logSink);
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
createLogContext
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=log-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-options.js","sources":["../../../../replicache/src/log-options.ts"],"sourcesContent":["import {\n consoleLogSink,\n LogContext,\n TeeLogSink,\n type Context,\n type LogLevel,\n type LogSink,\n} from '@rocicorp/logger';\n\n/**\n * Creates a LogContext\n * @param logLevel The log level to use. Default is `'info'`.\n * @param logSinks Destination for logs. Default is `[consoleLogSink]`.\n * @param context Optional: Additional information that can be associated with logs.\n * @returns A LogContext instance configured with the provided options.\n */\nexport function createLogContext(\n logLevel: LogLevel = 'info',\n logSinks: LogSink[] = [consoleLogSink],\n context?: Context,\n): LogContext {\n const logSink =\n logSinks.length === 1 ? logSinks[0] : new TeeLogSink(logSinks);\n return new LogContext(logLevel, context, logSink);\n}\n"],"names":[],"mappings":";AAgBO,SAAS,iBACd,WAAqB,QACrB,WAAsB,CAAC,cAAc,GACrC,SACY;AACZ,QAAM,UACJ,SAAS,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,QAAQ;AAC/D,SAAO,IAAI,WAAW,UAAU,SAAS,OAAO;AAClD;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Latest } from "./format-version-enum.js";
|
|
2
|
+
function makeIDBName(name, schemaVersion) {
|
|
3
|
+
return makeIDBNameInternal(name, schemaVersion, Latest);
|
|
4
|
+
}
|
|
5
|
+
function makeIDBNameInternal(name, schemaVersion, formatVersion) {
|
|
6
|
+
const n = `rep:${name}:${formatVersion}`;
|
|
7
|
+
return schemaVersion ? `${n}:${schemaVersion}` : n;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
makeIDBName,
|
|
11
|
+
makeIDBNameInternal as makeIDBNameForTesting
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=make-idb-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-idb-name.js","sources":["../../../../replicache/src/make-idb-name.ts"],"sourcesContent":["import * as FormatVersion from './format-version-enum.ts';\n\n/**\n * Returns the name of the IDB database that will be used for a particular Replicache instance.\n * @param name The name of the Replicache instance (i.e., the `name` field of `ReplicacheOptions`).\n * @param schemaVersion The schema version of the database (i.e., the `schemaVersion` field of `ReplicacheOptions`).\n * @returns\n */\n\nexport function makeIDBName(name: string, schemaVersion?: string): string {\n return makeIDBNameInternal(name, schemaVersion, FormatVersion.Latest);\n}\n\nfunction makeIDBNameInternal(\n name: string,\n schemaVersion: string | undefined,\n formatVersion: number,\n): string {\n const n = `rep:${name}:${formatVersion}`;\n return schemaVersion ? `${n}:${schemaVersion}` : n;\n}\n\nexport {makeIDBNameInternal as makeIDBNameForTesting};\n"],"names":["FormatVersion.Latest"],"mappings":";AASO,SAAS,YAAY,MAAc,eAAgC;AACxE,SAAO,oBAAoB,MAAM,eAAeA,MAAoB;AACtE;AAEA,SAAS,oBACP,MACA,eACA,eACQ;AACR,QAAM,IAAI,OAAO,IAAI,IAAI,aAAa;AACtC,SAAO,gBAAgB,GAAG,CAAC,IAAI,aAAa,KAAK;AACnD;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BroadcastChannel as bc } from "../../shared/src/broadcast-channel.js";
|
|
2
|
+
import { getClientGroup } from "./persist/client-groups.js";
|
|
3
|
+
import { withRead } from "./with-transactions.js";
|
|
4
|
+
function makeChannelNameV0(replicacheName) {
|
|
5
|
+
return `replicache-new-client-group:${replicacheName}`;
|
|
6
|
+
}
|
|
7
|
+
function makeChannelNameV1(replicacheName) {
|
|
8
|
+
return `replicache-new-client-group-v1:${replicacheName}`;
|
|
9
|
+
}
|
|
10
|
+
function isNewClientChannelMessageV1(message) {
|
|
11
|
+
return typeof message === "object" && typeof message.clientGroupID === "string" && typeof message.idbName === "string";
|
|
12
|
+
}
|
|
13
|
+
function initNewClientChannel(replicacheName, idbName, signal, clientGroupID, isNewClientGroup, onUpdateNeeded, perdag) {
|
|
14
|
+
if (signal.aborted) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const channelV1 = new bc(makeChannelNameV1(replicacheName));
|
|
18
|
+
if (isNewClientGroup) {
|
|
19
|
+
channelV1.postMessage({ clientGroupID, idbName });
|
|
20
|
+
const channelV0 = new bc(makeChannelNameV0(replicacheName));
|
|
21
|
+
channelV0.postMessage([clientGroupID]);
|
|
22
|
+
channelV0.close();
|
|
23
|
+
}
|
|
24
|
+
channelV1.onmessage = async (e) => {
|
|
25
|
+
const { data } = e;
|
|
26
|
+
if (isNewClientChannelMessageV1(data)) {
|
|
27
|
+
const { clientGroupID: newClientGroupID, idbName: newClientIDBName } = data;
|
|
28
|
+
if (newClientGroupID !== clientGroupID) {
|
|
29
|
+
if (newClientIDBName === idbName) {
|
|
30
|
+
const updateNeeded = await withRead(
|
|
31
|
+
perdag,
|
|
32
|
+
async (perdagRead) => await getClientGroup(newClientGroupID, perdagRead) !== void 0
|
|
33
|
+
);
|
|
34
|
+
if (updateNeeded) {
|
|
35
|
+
onUpdateNeeded();
|
|
36
|
+
}
|
|
37
|
+
} else {
|
|
38
|
+
onUpdateNeeded();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
signal.addEventListener("abort", () => channelV1.close(), { once: true });
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
initNewClientChannel,
|
|
48
|
+
makeChannelNameV0 as makeChannelNameV0ForTesting,
|
|
49
|
+
makeChannelNameV1 as makeChannelNameV1ForTesting
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=new-client-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-client-channel.js","sources":["../../../../replicache/src/new-client-channel.ts"],"sourcesContent":["import {BroadcastChannel} from '../../shared/src/broadcast-channel.ts';\nimport type {Read, Store} from './dag/store.ts';\nimport {getClientGroup} from './persist/client-groups.ts';\nimport {withRead} from './with-transactions.ts';\n\n// Older clients (<= replicache@13.0.1), listened on this channel name\n// and *asserted* that the messages received were an array containing exactly\n// one string.\nfunction makeChannelNameV0(replicacheName: string): string {\n return `replicache-new-client-group:${replicacheName}`;\n}\n\n// This channel name was introduced when we first needed to change the message\n// format. The design of the messages sent on this channel allows for\n// the message content to be extended in the future in a way that is\n// forward and backwards compatible. The message format can be extended\n// by adding new *optional* fields.\nfunction makeChannelNameV1(replicacheName: string): string {\n return `replicache-new-client-group-v1:${replicacheName}`;\n}\n\nexport {\n makeChannelNameV0 as makeChannelNameV0ForTesting,\n makeChannelNameV1 as makeChannelNameV1ForTesting,\n};\n\n// This message type can be extended with optional properties.\ntype NewClientChannelMessageV1 = {clientGroupID: string; idbName: string};\n\nfunction isNewClientChannelMessageV1(\n message: unknown,\n): message is NewClientChannelMessageV1 {\n return (\n typeof message === 'object' &&\n typeof (message as {clientGroupID: unknown}).clientGroupID === 'string' &&\n typeof (message as {idbName: unknown}).idbName === 'string'\n );\n}\n\nexport function initNewClientChannel(\n replicacheName: string,\n idbName: string,\n signal: AbortSignal,\n clientGroupID: string,\n isNewClientGroup: boolean,\n onUpdateNeeded: () => void,\n perdag: Store,\n) {\n if (signal.aborted) {\n return;\n }\n\n const channelV1 = new BroadcastChannel(makeChannelNameV1(replicacheName));\n if (isNewClientGroup) {\n channelV1.postMessage({clientGroupID, idbName});\n // Send expected format to V0 channel for old clients.\n const channelV0 = new BroadcastChannel(makeChannelNameV0(replicacheName));\n channelV0.postMessage([clientGroupID]);\n channelV0.close();\n }\n\n channelV1.onmessage = async (e: MessageEvent) => {\n const {data} = e;\n if (isNewClientChannelMessageV1(data)) {\n const {clientGroupID: newClientGroupID, idbName: newClientIDBName} = data;\n if (newClientGroupID !== clientGroupID) {\n if (newClientIDBName === idbName) {\n // Check if this client can see the new client's newClientGroupID in its\n // perdag. It should be able to if the clients share persistent\n // storage. However, with `ReplicacheOption.kvStore`\n // and `IDBStoreWithMemFallback` clients may not actually share\n // persistent storage. If storage is not shared, then there is no point\n // in updating, since clients cannot sync locally. If clients do update\n // in this case, they can continually cause each other to update, since\n // on each update the clients get assigned a new client group.\n const updateNeeded = await withRead(\n perdag,\n async (perdagRead: Read) =>\n (await getClientGroup(newClientGroupID, perdagRead)) !==\n undefined,\n );\n if (updateNeeded) {\n onUpdateNeeded();\n }\n } else {\n // Idb name is different, indicating new schema or format version.\n // Update to get assigned to newClientIDBName, and hopefully\n // newClientGroupID.\n // If storage is not actually shared (i.e. due to\n // `ReplicacheOption.kvStore`\n // or `IDBStoreWithMemFallback`) the new client will not\n // get assigned to newClientGroupID, but should get the\n // newClientIDBName.\n // Note: we don't try to read from newClientIDBName to see\n // if this client shares storage with the new client, because\n // the newClientIDBName may have a format version this client\n // cannot read.\n onUpdateNeeded();\n return;\n }\n }\n }\n };\n\n signal.addEventListener('abort', () => channelV1.close(), {once: true});\n}\n"],"names":["BroadcastChannel"],"mappings":";;;AAQA,SAAS,kBAAkB,gBAAgC;AACzD,SAAO,+BAA+B,cAAc;AACtD;AAOA,SAAS,kBAAkB,gBAAgC;AACzD,SAAO,kCAAkC,cAAc;AACzD;AAUA,SAAS,4BACP,SACsC;AACtC,SACE,OAAO,YAAY,YACnB,OAAQ,QAAqC,kBAAkB,YAC/D,OAAQ,QAA+B,YAAY;AAEvD;AAEO,SAAS,qBACd,gBACA,SACA,QACA,eACA,kBACA,gBACA,QACA;AACA,MAAI,OAAO,SAAS;AAClB;AAAA,EACF;AAEA,QAAM,YAAY,IAAIA,GAAiB,kBAAkB,cAAc,CAAC;AACxE,MAAI,kBAAkB;AACpB,cAAU,YAAY,EAAC,eAAe,QAAA,CAAQ;AAE9C,UAAM,YAAY,IAAIA,GAAiB,kBAAkB,cAAc,CAAC;AACxE,cAAU,YAAY,CAAC,aAAa,CAAC;AACrC,cAAU,MAAA;AAAA,EACZ;AAEA,YAAU,YAAY,OAAO,MAAoB;AAC/C,UAAM,EAAC,SAAQ;AACf,QAAI,4BAA4B,IAAI,GAAG;AACrC,YAAM,EAAC,eAAe,kBAAkB,SAAS,qBAAoB;AACrE,UAAI,qBAAqB,eAAe;AACtC,YAAI,qBAAqB,SAAS;AAShC,gBAAM,eAAe,MAAM;AAAA,YACzB;AAAA,YACA,OAAO,eACJ,MAAM,eAAe,kBAAkB,UAAU,MAClD;AAAA,UAAA;AAEJ,cAAI,cAAc;AAChB,2BAAA;AAAA,UACF;AAAA,QACF,OAAO;AAaL,yBAAA;AACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,iBAAiB,SAAS,MAAM,UAAU,SAAS,EAAC,MAAM,MAAK;AACxE;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { assertObject, assertString } from "../../shared/src/asserts.js";
|
|
2
|
+
import { BroadcastChannel as bc } from "../../shared/src/broadcast-channel.js";
|
|
3
|
+
function makeChannelName(replicacheName) {
|
|
4
|
+
return `replicache-on-persist:${replicacheName}`;
|
|
5
|
+
}
|
|
6
|
+
function assertPersistInfo(value) {
|
|
7
|
+
assertObject(value);
|
|
8
|
+
assertString(value.clientGroupID);
|
|
9
|
+
assertString(value.clientID);
|
|
10
|
+
}
|
|
11
|
+
function initOnPersistChannel(replicacheName, signal, handlePersist) {
|
|
12
|
+
if (signal.aborted) {
|
|
13
|
+
return () => void 0;
|
|
14
|
+
}
|
|
15
|
+
const channel = new bc(makeChannelName(replicacheName));
|
|
16
|
+
channel.onmessage = (e) => {
|
|
17
|
+
const { data } = e;
|
|
18
|
+
assertPersistInfo(data);
|
|
19
|
+
handlePersist({
|
|
20
|
+
clientGroupID: data.clientGroupID,
|
|
21
|
+
clientID: data.clientID
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
signal.addEventListener("abort", () => channel.close(), { once: true });
|
|
25
|
+
return (persistInfo) => {
|
|
26
|
+
if (signal.aborted) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
channel.postMessage(persistInfo);
|
|
30
|
+
handlePersist(persistInfo);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
initOnPersistChannel
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=on-persist-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-persist-channel.js","sources":["../../../../replicache/src/on-persist-channel.ts"],"sourcesContent":["import {assertObject, assertString} from '../../shared/src/asserts.ts';\nimport {BroadcastChannel} from '../../shared/src/broadcast-channel.ts';\nimport type {ClientGroupID, ClientID} from './sync/ids.ts';\n\nfunction makeChannelName(replicacheName: string): string {\n return `replicache-on-persist:${replicacheName}`;\n}\n\nexport type PersistInfo = {\n clientGroupID: ClientGroupID;\n clientID: ClientID;\n};\n\nexport type OnPersist = (persistInfo: PersistInfo) => void;\n\ntype HandlePersist = OnPersist;\n\nfunction assertPersistInfo(value: unknown): asserts value is PersistInfo {\n assertObject(value);\n assertString(value.clientGroupID);\n assertString(value.clientID);\n}\n\nexport function initOnPersistChannel(\n replicacheName: string,\n signal: AbortSignal,\n handlePersist: HandlePersist,\n): OnPersist {\n if (signal.aborted) {\n return () => undefined;\n }\n const channel = new BroadcastChannel(makeChannelName(replicacheName));\n\n channel.onmessage = e => {\n const {data} = e;\n assertPersistInfo(data);\n handlePersist({\n clientGroupID: data.clientGroupID,\n clientID: data.clientID,\n });\n };\n\n signal.addEventListener('abort', () => channel.close(), {once: true});\n\n return (persistInfo: PersistInfo) => {\n if (signal.aborted) {\n return;\n }\n channel.postMessage(persistInfo);\n handlePersist(persistInfo);\n };\n}\n"],"names":["BroadcastChannel"],"mappings":";;AAIA,SAAS,gBAAgB,gBAAgC;AACvD,SAAO,yBAAyB,cAAc;AAChD;AAWA,SAAS,kBAAkB,OAA8C;AACvE,eAAa,KAAK;AAClB,eAAa,MAAM,aAAa;AAChC,eAAa,MAAM,QAAQ;AAC7B;AAEO,SAAS,qBACd,gBACA,QACA,eACW;AACX,MAAI,OAAO,SAAS;AAClB,WAAO,MAAM;AAAA,EACf;AACA,QAAM,UAAU,IAAIA,GAAiB,gBAAgB,cAAc,CAAC;AAEpE,UAAQ,YAAY,CAAA,MAAK;AACvB,UAAM,EAAC,SAAQ;AACf,sBAAkB,IAAI;AACtB,kBAAc;AAAA,MACZ,eAAe,KAAK;AAAA,MACpB,UAAU,KAAK;AAAA,IAAA,CAChB;AAAA,EACH;AAEA,SAAO,iBAAiB,SAAS,MAAM,QAAQ,SAAS,EAAC,MAAM,MAAK;AAEpE,SAAO,CAAC,gBAA6B;AACnC,QAAI,OAAO,SAAS;AAClB;AAAA,IACF;AACA,YAAQ,YAAY,WAAW;AAC/B,kBAAc,WAAW;AAAA,EAC3B;AACF;"}
|