@rocicorp/zero 0.0.0-202410031711
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/deps/sqlite3/sqlite3.c +260574 -0
- package/deps/sqlite3/sqlite3.h +13572 -0
- package/deps/sqlite3/sqlite3ext.h +719 -0
- package/out/btree/b+tree.d.ts +471 -0
- package/out/btree/b+tree.d.ts.map +1 -0
- package/out/btree/b+tree.js +1708 -0
- package/out/btree/b+tree.js.map +1 -0
- package/out/btree/interfaces.d.ts +270 -0
- package/out/btree/interfaces.d.ts.map +1 -0
- package/out/btree/interfaces.js +3 -0
- package/out/btree/interfaces.js.map +1 -0
- package/out/chunk-2RUT5EQV.js +28 -0
- package/out/chunk-2RUT5EQV.js.map +7 -0
- package/out/datadog/src/datadog-log-sink.d.ts +20 -0
- package/out/datadog/src/datadog-log-sink.d.ts.map +1 -0
- package/out/datadog/src/datadog-log-sink.js +231 -0
- package/out/datadog/src/datadog-log-sink.js.map +1 -0
- package/out/datadog/src/mod.d.ts +2 -0
- package/out/datadog/src/mod.d.ts.map +1 -0
- package/out/react.js +108 -0
- package/out/react.js.map +7 -0
- package/out/replicache/src/async-iterable-to-array.d.ts +2 -0
- package/out/replicache/src/async-iterable-to-array.d.ts.map +1 -0
- package/out/replicache/src/bg-interval.d.ts +3 -0
- package/out/replicache/src/bg-interval.d.ts.map +1 -0
- package/out/replicache/src/binary-search.d.ts +15 -0
- package/out/replicache/src/binary-search.d.ts.map +1 -0
- package/out/replicache/src/broadcast-channel.d.ts +3 -0
- package/out/replicache/src/broadcast-channel.d.ts.map +1 -0
- package/out/replicache/src/btree/diff.d.ts +4 -0
- package/out/replicache/src/btree/diff.d.ts.map +1 -0
- package/out/replicache/src/btree/node.d.ts +125 -0
- package/out/replicache/src/btree/node.d.ts.map +1 -0
- package/out/replicache/src/btree/read.d.ts +32 -0
- package/out/replicache/src/btree/read.d.ts.map +1 -0
- package/out/replicache/src/btree/splice.d.ts +9 -0
- package/out/replicache/src/btree/splice.d.ts.map +1 -0
- package/out/replicache/src/btree/write.d.ts +24 -0
- package/out/replicache/src/btree/write.d.ts.map +1 -0
- package/out/replicache/src/call-default-fetch.d.ts +6 -0
- package/out/replicache/src/call-default-fetch.d.ts.map +1 -0
- package/out/replicache/src/config.d.ts +13 -0
- package/out/replicache/src/config.d.ts.map +1 -0
- package/out/replicache/src/connection-loop-delegates.d.ts +20 -0
- package/out/replicache/src/connection-loop-delegates.d.ts.map +1 -0
- package/out/replicache/src/connection-loop.d.ts +28 -0
- package/out/replicache/src/connection-loop.d.ts.map +1 -0
- package/out/replicache/src/cookies.d.ts +29 -0
- package/out/replicache/src/cookies.d.ts.map +1 -0
- package/out/replicache/src/dag/chunk.d.ts +35 -0
- package/out/replicache/src/dag/chunk.d.ts.map +1 -0
- package/out/replicache/src/dag/gc.d.ts +42 -0
- package/out/replicache/src/dag/gc.d.ts.map +1 -0
- package/out/replicache/src/dag/key.d.ts +26 -0
- package/out/replicache/src/dag/key.d.ts.map +1 -0
- package/out/replicache/src/dag/lazy-store.d.ts +181 -0
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -0
- package/out/replicache/src/dag/store-impl.d.ts +38 -0
- package/out/replicache/src/dag/store-impl.d.ts.map +1 -0
- package/out/replicache/src/dag/store.d.ts +36 -0
- package/out/replicache/src/dag/store.d.ts.map +1 -0
- package/out/replicache/src/dag/visitor.d.ts +13 -0
- package/out/replicache/src/dag/visitor.d.ts.map +1 -0
- package/out/replicache/src/db/commit.d.ts +133 -0
- package/out/replicache/src/db/commit.d.ts.map +1 -0
- package/out/replicache/src/db/index.d.ts +33 -0
- package/out/replicache/src/db/index.d.ts.map +1 -0
- package/out/replicache/src/db/read.d.ts +24 -0
- package/out/replicache/src/db/read.d.ts.map +1 -0
- package/out/replicache/src/db/rebase.d.ts +10 -0
- package/out/replicache/src/db/rebase.d.ts.map +1 -0
- package/out/replicache/src/db/scan.d.ts +15 -0
- package/out/replicache/src/db/scan.d.ts.map +1 -0
- package/out/replicache/src/db/write.d.ts +39 -0
- package/out/replicache/src/db/write.d.ts.map +1 -0
- package/out/replicache/src/error-responses.d.ts +26 -0
- package/out/replicache/src/error-responses.d.ts.map +1 -0
- package/out/replicache/src/filter-async-iterable.d.ts +10 -0
- package/out/replicache/src/filter-async-iterable.d.ts.map +1 -0
- package/out/replicache/src/format-version.d.ts +9 -0
- package/out/replicache/src/format-version.d.ts.map +1 -0
- package/out/replicache/src/frozen-json.d.ts +35 -0
- package/out/replicache/src/frozen-json.d.ts.map +1 -0
- package/out/replicache/src/get-default-puller.d.ts +14 -0
- package/out/replicache/src/get-default-puller.d.ts.map +1 -0
- package/out/replicache/src/get-default-pusher.d.ts +10 -0
- package/out/replicache/src/get-default-pusher.d.ts.map +1 -0
- package/out/replicache/src/hash.d.ts +29 -0
- package/out/replicache/src/hash.d.ts.map +1 -0
- package/out/replicache/src/http-request-info.d.ts +6 -0
- package/out/replicache/src/http-request-info.d.ts.map +1 -0
- package/out/replicache/src/impl.d.ts +4 -0
- package/out/replicache/src/impl.d.ts.map +1 -0
- package/out/replicache/src/index-defs.d.ts +36 -0
- package/out/replicache/src/index-defs.d.ts.map +1 -0
- package/out/replicache/src/iterable-union.d.ts +5 -0
- package/out/replicache/src/iterable-union.d.ts.map +1 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +25 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +1 -0
- package/out/replicache/src/kv/idb-store.d.ts +18 -0
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -0
- package/out/replicache/src/kv/mem-store.d.ts +23 -0
- package/out/replicache/src/kv/mem-store.d.ts.map +1 -0
- package/out/replicache/src/kv/read-impl.d.ts +11 -0
- package/out/replicache/src/kv/read-impl.d.ts.map +1 -0
- package/out/replicache/src/kv/store.d.ts +76 -0
- package/out/replicache/src/kv/store.d.ts.map +1 -0
- package/out/replicache/src/kv/write-impl-base.d.ts +18 -0
- package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -0
- package/out/replicache/src/kv/write-impl.d.ts +9 -0
- package/out/replicache/src/kv/write-impl.d.ts.map +1 -0
- package/out/replicache/src/lazy.d.ts +2 -0
- package/out/replicache/src/lazy.d.ts.map +1 -0
- package/out/replicache/src/log-options.d.ts +10 -0
- package/out/replicache/src/log-options.d.ts.map +1 -0
- package/out/replicache/src/merge-async-iterables.d.ts +16 -0
- package/out/replicache/src/merge-async-iterables.d.ts.map +1 -0
- package/out/replicache/src/mod.d.ts +38 -0
- package/out/replicache/src/mod.d.ts.map +1 -0
- package/out/replicache/src/mutation-recovery.d.ts +43 -0
- package/out/replicache/src/mutation-recovery.d.ts.map +1 -0
- package/out/replicache/src/new-client-channel.d.ts +6 -0
- package/out/replicache/src/new-client-channel.d.ts.map +1 -0
- package/out/replicache/src/on-persist-channel.d.ts +10 -0
- package/out/replicache/src/on-persist-channel.d.ts.map +1 -0
- package/out/replicache/src/patch-operation.d.ts +32 -0
- package/out/replicache/src/patch-operation.d.ts.map +1 -0
- package/out/replicache/src/pending-mutations.d.ts +14 -0
- package/out/replicache/src/pending-mutations.d.ts.map +1 -0
- package/out/replicache/src/persist/client-gc.d.ts +17 -0
- package/out/replicache/src/persist/client-gc.d.ts.map +1 -0
- package/out/replicache/src/persist/client-group-gc.d.ts +10 -0
- package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -0
- package/out/replicache/src/persist/client-groups.d.ts +72 -0
- package/out/replicache/src/persist/client-groups.d.ts.map +1 -0
- package/out/replicache/src/persist/clients.d.ts +155 -0
- package/out/replicache/src/persist/clients.d.ts.map +1 -0
- package/out/replicache/src/persist/collect-idb-databases.d.ts +91 -0
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.d.ts +12 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.d.ts.map +1 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.d.ts +17 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.d.ts.map +1 -0
- package/out/replicache/src/persist/heartbeat.d.ts +9 -0
- package/out/replicache/src/persist/heartbeat.d.ts.map +1 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.d.ts +5 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.d.ts.map +1 -0
- package/out/replicache/src/persist/idb-databases-store.d.ts +24 -0
- package/out/replicache/src/persist/idb-databases-store.d.ts.map +1 -0
- package/out/replicache/src/persist/make-client-id.d.ts +6 -0
- package/out/replicache/src/persist/make-client-id.d.ts.map +1 -0
- package/out/replicache/src/persist/persist.d.ts +26 -0
- package/out/replicache/src/persist/persist.d.ts.map +1 -0
- package/out/replicache/src/persist/refresh.d.ts +13 -0
- package/out/replicache/src/persist/refresh.d.ts.map +1 -0
- package/out/replicache/src/process-scheduler.d.ts +20 -0
- package/out/replicache/src/process-scheduler.d.ts.map +1 -0
- package/out/replicache/src/puller.d.ts +61 -0
- package/out/replicache/src/puller.d.ts.map +1 -0
- package/out/replicache/src/pusher.d.ts +33 -0
- package/out/replicache/src/pusher.d.ts.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts +321 -0
- package/out/replicache/src/replicache-impl.d.ts.map +1 -0
- package/out/replicache/src/replicache-options.d.ts +209 -0
- package/out/replicache/src/replicache-options.d.ts.map +1 -0
- package/out/replicache/src/replicache.d.ts +298 -0
- package/out/replicache/src/replicache.d.ts.map +1 -0
- package/out/replicache/src/request-idle.d.ts +6 -0
- package/out/replicache/src/request-idle.d.ts.map +1 -0
- package/out/replicache/src/scan-iterator.d.ts +127 -0
- package/out/replicache/src/scan-iterator.d.ts.map +1 -0
- package/out/replicache/src/scan-options.d.ts +67 -0
- package/out/replicache/src/scan-options.d.ts.map +1 -0
- package/out/replicache/src/set-interval-with-signal.d.ts +2 -0
- package/out/replicache/src/set-interval-with-signal.d.ts.map +1 -0
- package/out/replicache/src/size-of-value.d.ts +19 -0
- package/out/replicache/src/size-of-value.d.ts.map +1 -0
- package/out/replicache/src/subscriptions.d.ts +140 -0
- package/out/replicache/src/subscriptions.d.ts.map +1 -0
- package/out/replicache/src/sync/diff.d.ts +31 -0
- package/out/replicache/src/sync/diff.d.ts.map +1 -0
- package/out/replicache/src/sync/ids.d.ts +13 -0
- package/out/replicache/src/sync/ids.d.ts.map +1 -0
- package/out/replicache/src/sync/patch.d.ts +5 -0
- package/out/replicache/src/sync/patch.d.ts.map +1 -0
- package/out/replicache/src/sync/pull-error.d.ts +9 -0
- package/out/replicache/src/sync/pull-error.d.ts.map +1 -0
- package/out/replicache/src/sync/pull.d.ts +82 -0
- package/out/replicache/src/sync/pull.d.ts.map +1 -0
- package/out/replicache/src/sync/push.d.ts +65 -0
- package/out/replicache/src/sync/push.d.ts.map +1 -0
- package/out/replicache/src/sync/request-id.d.ts +10 -0
- package/out/replicache/src/sync/request-id.d.ts.map +1 -0
- package/out/replicache/src/sync/sync-head-name.d.ts +2 -0
- package/out/replicache/src/sync/sync-head-name.d.ts.map +1 -0
- package/out/replicache/src/test-license-key.d.ts +3 -0
- package/out/replicache/src/test-license-key.d.ts.map +1 -0
- package/out/replicache/src/to-error.d.ts +2 -0
- package/out/replicache/src/to-error.d.ts.map +1 -0
- package/out/replicache/src/transaction-closed-error.d.ts +12 -0
- package/out/replicache/src/transaction-closed-error.d.ts.map +1 -0
- package/out/replicache/src/transactions.d.ts +156 -0
- package/out/replicache/src/transactions.d.ts.map +1 -0
- package/out/replicache/src/types.d.ts +57 -0
- package/out/replicache/src/types.d.ts.map +1 -0
- package/out/replicache/src/version.d.ts +5 -0
- package/out/replicache/src/version.d.ts.map +1 -0
- package/out/replicache/src/with-transactions.d.ts +23 -0
- package/out/replicache/src/with-transactions.d.ts.map +1 -0
- package/out/shared/src/abort-error.d.ts +4 -0
- package/out/shared/src/abort-error.d.ts.map +1 -0
- package/out/shared/src/abort-error.js +4 -0
- package/out/shared/src/abort-error.js.map +1 -0
- package/out/shared/src/asserts.d.ts +17 -0
- package/out/shared/src/asserts.d.ts.map +1 -0
- package/out/shared/src/asserts.js +73 -0
- package/out/shared/src/asserts.js.map +1 -0
- package/out/shared/src/browser-env.d.ts +3 -0
- package/out/shared/src/browser-env.d.ts.map +1 -0
- package/out/shared/src/config.d.ts +3 -0
- package/out/shared/src/config.d.ts.map +1 -0
- package/out/shared/src/config.js +3 -0
- package/out/shared/src/config.js.map +1 -0
- package/out/shared/src/custom-key-map.d.ts +26 -0
- package/out/shared/src/custom-key-map.d.ts.map +1 -0
- package/out/shared/src/custom-key-map.js +65 -0
- package/out/shared/src/custom-key-map.js.map +1 -0
- package/out/shared/src/deep-clone.d.ts +4 -0
- package/out/shared/src/deep-clone.d.ts.map +1 -0
- package/out/shared/src/document-visible.d.ts +9 -0
- package/out/shared/src/document-visible.d.ts.map +1 -0
- package/out/shared/src/has-own.d.ts +5 -0
- package/out/shared/src/has-own.d.ts.map +1 -0
- package/out/shared/src/has-own.js +8 -0
- package/out/shared/src/has-own.js.map +1 -0
- package/out/shared/src/immutable.d.ts +11 -0
- package/out/shared/src/immutable.d.ts.map +1 -0
- package/out/shared/src/iterables.d.ts +11 -0
- package/out/shared/src/iterables.d.ts.map +1 -0
- package/out/shared/src/json-schema.d.ts +5 -0
- package/out/shared/src/json-schema.d.ts.map +1 -0
- package/out/shared/src/json-schema.js +36 -0
- package/out/shared/src/json-schema.js.map +1 -0
- package/out/shared/src/json.d.ts +55 -0
- package/out/shared/src/json.d.ts.map +1 -0
- package/out/shared/src/json.js +164 -0
- package/out/shared/src/json.js.map +1 -0
- package/out/shared/src/must.d.ts +2 -0
- package/out/shared/src/must.d.ts.map +1 -0
- package/out/shared/src/must.js +8 -0
- package/out/shared/src/must.js.map +1 -0
- package/out/shared/src/navigator.d.ts +7 -0
- package/out/shared/src/navigator.d.ts.map +1 -0
- package/out/shared/src/parse-big-int.d.ts +2 -0
- package/out/shared/src/parse-big-int.d.ts.map +1 -0
- package/out/shared/src/parse-big-int.js +11 -0
- package/out/shared/src/parse-big-int.js.map +1 -0
- package/out/shared/src/queue.d.ts +40 -0
- package/out/shared/src/queue.d.ts.map +1 -0
- package/out/shared/src/queue.js +118 -0
- package/out/shared/src/queue.js.map +1 -0
- package/out/shared/src/rand.d.ts +7 -0
- package/out/shared/src/rand.d.ts.map +1 -0
- package/out/shared/src/rand.js +11 -0
- package/out/shared/src/rand.js.map +1 -0
- package/out/shared/src/random-uint64.d.ts +2 -0
- package/out/shared/src/random-uint64.d.ts.map +1 -0
- package/out/shared/src/random-values.d.ts +2 -0
- package/out/shared/src/random-values.d.ts.map +1 -0
- package/out/shared/src/resolved-promises.d.ts +5 -0
- package/out/shared/src/resolved-promises.d.ts.map +1 -0
- package/out/shared/src/resolved-promises.js +5 -0
- package/out/shared/src/resolved-promises.js.map +1 -0
- package/out/shared/src/set-utils.d.ts +9 -0
- package/out/shared/src/set-utils.d.ts.map +1 -0
- package/out/shared/src/set-utils.js +60 -0
- package/out/shared/src/set-utils.js.map +1 -0
- package/out/shared/src/sleep.d.ts +15 -0
- package/out/shared/src/sleep.d.ts.map +1 -0
- package/out/shared/src/sleep.js +54 -0
- package/out/shared/src/sleep.js.map +1 -0
- package/out/shared/src/string-compare.d.ts +2 -0
- package/out/shared/src/string-compare.d.ts.map +1 -0
- package/out/shared/src/string-compare.js +10 -0
- package/out/shared/src/string-compare.js.map +1 -0
- package/out/shared/src/types.d.ts +2 -0
- package/out/shared/src/types.d.ts.map +1 -0
- package/out/shared/src/valita.d.ts +27 -0
- package/out/shared/src/valita.d.ts.map +1 -0
- package/out/shared/src/valita.js +118 -0
- package/out/shared/src/valita.js.map +1 -0
- package/out/shared/src/xxhash.d.ts +3 -0
- package/out/shared/src/xxhash.d.ts.map +1 -0
- package/out/shared/src/xxhash.js +4 -0
- package/out/shared/src/xxhash.js.map +1 -0
- package/out/zero/src/cli.d.ts +3 -0
- package/out/zero/src/cli.d.ts.map +1 -0
- package/out/zero/src/cli.js +3 -0
- package/out/zero/src/cli.js.map +1 -0
- package/out/zero/src/react.d.ts +2 -0
- package/out/zero/src/react.d.ts.map +1 -0
- package/out/zero/src/server/change-streamer.d.ts +2 -0
- package/out/zero/src/server/change-streamer.d.ts.map +1 -0
- package/out/zero/src/server/change-streamer.js +2 -0
- package/out/zero/src/server/change-streamer.js.map +1 -0
- package/out/zero/src/server/main.d.ts +2 -0
- package/out/zero/src/server/main.d.ts.map +1 -0
- package/out/zero/src/server/main.js +2 -0
- package/out/zero/src/server/main.js.map +1 -0
- package/out/zero/src/server/replicator.d.ts +2 -0
- package/out/zero/src/server/replicator.d.ts.map +1 -0
- package/out/zero/src/server/replicator.js +2 -0
- package/out/zero/src/server/replicator.js.map +1 -0
- package/out/zero/src/server/syncer.d.ts +2 -0
- package/out/zero/src/server/syncer.d.ts.map +1 -0
- package/out/zero/src/server/syncer.js +2 -0
- package/out/zero/src/server/syncer.js.map +1 -0
- package/out/zero/src/zero.d.ts +2 -0
- package/out/zero/src/zero.d.ts.map +1 -0
- package/out/zero-cache/src/config/zero-config.d.ts +1509 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -0
- package/out/zero-cache/src/config/zero-config.js +227 -0
- package/out/zero-cache/src/config/zero-config.js.map +1 -0
- package/out/zero-cache/src/db/lite-tables.d.ts +5 -0
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -0
- package/out/zero-cache/src/db/lite-tables.js +75 -0
- package/out/zero-cache/src/db/lite-tables.js.map +1 -0
- package/out/zero-cache/src/db/migration-lite.d.ts +38 -0
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -0
- package/out/zero-cache/src/db/migration-lite.js +161 -0
- package/out/zero-cache/src/db/migration-lite.js.map +1 -0
- package/out/zero-cache/src/db/migration.d.ts +38 -0
- package/out/zero-cache/src/db/migration.d.ts.map +1 -0
- package/out/zero-cache/src/db/migration.js +139 -0
- package/out/zero-cache/src/db/migration.js.map +1 -0
- package/out/zero-cache/src/db/statements.d.ts +31 -0
- package/out/zero-cache/src/db/statements.d.ts.map +1 -0
- package/out/zero-cache/src/db/statements.js +48 -0
- package/out/zero-cache/src/db/statements.js.map +1 -0
- package/out/zero-cache/src/db/transaction-pool.d.ts +187 -0
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -0
- package/out/zero-cache/src/db/transaction-pool.js +445 -0
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -0
- package/out/zero-cache/src/server/change-streamer.d.ts +3 -0
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -0
- package/out/zero-cache/src/server/change-streamer.js +30 -0
- package/out/zero-cache/src/server/change-streamer.js.map +1 -0
- package/out/zero-cache/src/server/logging.d.ts +6 -0
- package/out/zero-cache/src/server/logging.d.ts.map +1 -0
- package/out/zero-cache/src/server/logging.js +23 -0
- package/out/zero-cache/src/server/logging.js.map +1 -0
- package/out/zero-cache/src/server/main.d.ts +2 -0
- package/out/zero-cache/src/server/main.d.ts.map +1 -0
- package/out/zero-cache/src/server/main.js +92 -0
- package/out/zero-cache/src/server/main.js.map +1 -0
- package/out/zero-cache/src/server/replicator.d.ts +3 -0
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -0
- package/out/zero-cache/src/server/replicator.js +35 -0
- package/out/zero-cache/src/server/replicator.js.map +1 -0
- package/out/zero-cache/src/server/syncer.d.ts +3 -0
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -0
- package/out/zero-cache/src/server/syncer.js +45 -0
- package/out/zero-cache/src/server/syncer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +23 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +98 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +39 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +212 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +110 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js +7 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +19 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.js +56 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts +14 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +206 -0
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts +6 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +192 -0
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +17 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js +17 -0
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +6 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +29 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +79 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +237 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +5 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +111 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +26 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js +185 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +11 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js +86 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts +19 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.js +2 -0
- package/out/zero-cache/src/services/change-streamer/pg/shard-config.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts +4 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +12 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +31 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.js +2 -0
- package/out/zero-cache/src/services/change-streamer/schema/change.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +4 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js +10 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +22 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +49 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +22 -0
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.js +157 -0
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +27 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js +70 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +20 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.js +36 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +19 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.js +55 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts +11 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +1 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.js +33 -0
- package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +1 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +57 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +1 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +130 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +24 -0
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -0
- package/out/zero-cache/src/services/mutagen/mutagen.js +247 -0
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts +20 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +187 -0
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -0
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts +79 -0
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/checkpointer.js +124 -0
- package/out/zero-cache/src/services/replicator/checkpointer.js.map +1 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +39 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.js +342 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -0
- package/out/zero-cache/src/services/replicator/notifier.d.ts +30 -0
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/notifier.js +54 -0
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -0
- package/out/zero-cache/src/services/replicator/replicator.d.ts +65 -0
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/replicator.js +27 -0
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +35 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.js +78 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +25 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +90 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -0
- package/out/zero-cache/src/services/runner.d.ts +21 -0
- package/out/zero-cache/src/services/runner.d.ts.map +1 -0
- package/out/zero-cache/src/services/runner.js +63 -0
- package/out/zero-cache/src/services/runner.js.map +1 -0
- package/out/zero-cache/src/services/running-state.d.ts +56 -0
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -0
- package/out/zero-cache/src/services/running-state.js +106 -0
- package/out/zero-cache/src/services/running-state.js.map +1 -0
- package/out/zero-cache/src/services/service.d.ts +29 -0
- package/out/zero-cache/src/services/service.d.ts.map +1 -0
- package/out/zero-cache/src/services/service.js +2 -0
- package/out/zero-cache/src/services/service.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +53 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.js +184 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +44 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +386 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +146 -0
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr.js +446 -0
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +22 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.js +129 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +103 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +290 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +54 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +181 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts +4 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js +12 -0
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +783 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.js +213 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +166 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +374 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +37 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +522 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -0
- package/out/zero-cache/src/types/bigint-json.d.ts +26 -0
- package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -0
- package/out/zero-cache/src/types/bigint-json.js +49 -0
- package/out/zero-cache/src/types/bigint-json.js.map +1 -0
- package/out/zero-cache/src/types/error-for-client.d.ts +7 -0
- package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -0
- package/out/zero-cache/src/types/error-for-client.js +17 -0
- package/out/zero-cache/src/types/error-for-client.js.map +1 -0
- package/out/zero-cache/src/types/lexi-version.d.ts +29 -0
- package/out/zero-cache/src/types/lexi-version.d.ts.map +1 -0
- package/out/zero-cache/src/types/lexi-version.js +36 -0
- package/out/zero-cache/src/types/lexi-version.js.map +1 -0
- package/out/zero-cache/src/types/lite.d.ts +11 -0
- package/out/zero-cache/src/types/lite.d.ts.map +1 -0
- package/out/zero-cache/src/types/lite.js +26 -0
- package/out/zero-cache/src/types/lite.js.map +1 -0
- package/out/zero-cache/src/types/names.d.ts +5 -0
- package/out/zero-cache/src/types/names.d.ts.map +1 -0
- package/out/zero-cache/src/types/names.js +4 -0
- package/out/zero-cache/src/types/names.js.map +1 -0
- package/out/zero-cache/src/types/pg.d.ts +31 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -0
- package/out/zero-cache/src/types/pg.js +60 -0
- package/out/zero-cache/src/types/pg.js.map +1 -0
- package/out/zero-cache/src/types/processes.d.ts +57 -0
- package/out/zero-cache/src/types/processes.d.ts.map +1 -0
- package/out/zero-cache/src/types/processes.js +121 -0
- package/out/zero-cache/src/types/processes.js.map +1 -0
- package/out/zero-cache/src/types/row-key.d.ts +37 -0
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -0
- package/out/zero-cache/src/types/row-key.js +64 -0
- package/out/zero-cache/src/types/row-key.js.map +1 -0
- package/out/zero-cache/src/types/satisfies.d.ts +14 -0
- package/out/zero-cache/src/types/satisfies.d.ts.map +1 -0
- package/out/zero-cache/src/types/satisfies.js +2 -0
- package/out/zero-cache/src/types/satisfies.js.map +1 -0
- package/out/zero-cache/src/types/specs.d.ts +29 -0
- package/out/zero-cache/src/types/specs.d.ts.map +1 -0
- package/out/zero-cache/src/types/specs.js +2 -0
- package/out/zero-cache/src/types/specs.js.map +1 -0
- package/out/zero-cache/src/types/sql.d.ts +11 -0
- package/out/zero-cache/src/types/sql.d.ts.map +1 -0
- package/out/zero-cache/src/types/sql.js +15 -0
- package/out/zero-cache/src/types/sql.js.map +1 -0
- package/out/zero-cache/src/types/streams.d.ts +33 -0
- package/out/zero-cache/src/types/streams.d.ts.map +1 -0
- package/out/zero-cache/src/types/streams.js +141 -0
- package/out/zero-cache/src/types/streams.js.map +1 -0
- package/out/zero-cache/src/types/subscription.d.ts +158 -0
- package/out/zero-cache/src/types/subscription.d.ts.map +1 -0
- package/out/zero-cache/src/types/subscription.js +233 -0
- package/out/zero-cache/src/types/subscription.js.map +1 -0
- package/out/zero-cache/src/types/timeout.d.ts +11 -0
- package/out/zero-cache/src/types/timeout.d.ts.map +1 -0
- package/out/zero-cache/src/types/timeout.js +23 -0
- package/out/zero-cache/src/types/timeout.js.map +1 -0
- package/out/zero-cache/src/types/url-params.d.ts +10 -0
- package/out/zero-cache/src/types/url-params.d.ts.map +1 -0
- package/out/zero-cache/src/types/url-params.js +35 -0
- package/out/zero-cache/src/types/url-params.js.map +1 -0
- package/out/zero-cache/src/workers/connection.d.ts +25 -0
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -0
- package/out/zero-cache/src/workers/connection.js +189 -0
- package/out/zero-cache/src/workers/connection.js.map +1 -0
- package/out/zero-cache/src/workers/replicator.d.ts +17 -0
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -0
- package/out/zero-cache/src/workers/replicator.js +105 -0
- package/out/zero-cache/src/workers/replicator.js.map +1 -0
- package/out/zero-cache/src/workers/syncer.d.ts +28 -0
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -0
- package/out/zero-cache/src/workers/syncer.js +72 -0
- package/out/zero-cache/src/workers/syncer.js.map +1 -0
- package/out/zero-client/src/client/context.d.ts +23 -0
- package/out/zero-client/src/client/context.d.ts.map +1 -0
- package/out/zero-client/src/client/crud.d.ts +52 -0
- package/out/zero-client/src/client/crud.d.ts.map +1 -0
- package/out/zero-client/src/client/enable-analytics.d.ts +3 -0
- package/out/zero-client/src/client/enable-analytics.d.ts.map +1 -0
- package/out/zero-client/src/client/http-string.d.ts +7 -0
- package/out/zero-client/src/client/http-string.d.ts.map +1 -0
- package/out/zero-client/src/client/keys.d.ts +11 -0
- package/out/zero-client/src/client/keys.d.ts.map +1 -0
- package/out/zero-client/src/client/log-options.d.ts +12 -0
- package/out/zero-client/src/client/log-options.d.ts.map +1 -0
- package/out/zero-client/src/client/metrics.d.ts +115 -0
- package/out/zero-client/src/client/metrics.d.ts.map +1 -0
- package/out/zero-client/src/client/options.d.ts +94 -0
- package/out/zero-client/src/client/options.d.ts.map +1 -0
- package/out/zero-client/src/client/query-manager.d.ts +16 -0
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -0
- package/out/zero-client/src/client/reload-error-handler.d.ts +5 -0
- package/out/zero-client/src/client/reload-error-handler.d.ts.map +1 -0
- package/out/zero-client/src/client/replicache-types.d.ts +48 -0
- package/out/zero-client/src/client/replicache-types.d.ts.map +1 -0
- package/out/zero-client/src/client/server-error.d.ts +12 -0
- package/out/zero-client/src/client/server-error.d.ts.map +1 -0
- package/out/zero-client/src/client/server-option.d.ts +3 -0
- package/out/zero-client/src/client/server-option.d.ts.map +1 -0
- package/out/zero-client/src/client/version.d.ts +5 -0
- package/out/zero-client/src/client/version.d.ts.map +1 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts +28 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -0
- package/out/zero-client/src/client/zero.d.ts +183 -0
- package/out/zero-client/src/client/zero.d.ts.map +1 -0
- package/out/zero-client/src/mod.d.ts +9 -0
- package/out/zero-client/src/mod.d.ts.map +1 -0
- package/out/zero-client/src/util/nanoid.d.ts +2 -0
- package/out/zero-client/src/util/nanoid.d.ts.map +1 -0
- package/out/zero-client/src/util/socket.d.ts +3 -0
- package/out/zero-client/src/util/socket.d.ts.map +1 -0
- package/out/zero-protocol/src/ast.d.ts +69 -0
- package/out/zero-protocol/src/ast.d.ts.map +1 -0
- package/out/zero-protocol/src/ast.js +64 -0
- package/out/zero-protocol/src/ast.js.map +1 -0
- package/out/zero-protocol/src/change-desired-queries.d.ts +71 -0
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -0
- package/out/zero-protocol/src/change-desired-queries.js +10 -0
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -0
- package/out/zero-protocol/src/clients-patch.d.ts +37 -0
- package/out/zero-protocol/src/clients-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/clients-patch.js +15 -0
- package/out/zero-protocol/src/clients-patch.js.map +1 -0
- package/out/zero-protocol/src/connect.d.ts +88 -0
- package/out/zero-protocol/src/connect.d.ts.map +1 -0
- package/out/zero-protocol/src/connect.js +25 -0
- package/out/zero-protocol/src/connect.js.map +1 -0
- package/out/zero-protocol/src/delete-clients.d.ts +11 -0
- package/out/zero-protocol/src/delete-clients.d.ts.map +1 -0
- package/out/zero-protocol/src/delete-clients.js +9 -0
- package/out/zero-protocol/src/delete-clients.js.map +1 -0
- package/out/zero-protocol/src/down.d.ts +110 -0
- package/out/zero-protocol/src/down.d.ts.map +1 -0
- package/out/zero-protocol/src/down.js +8 -0
- package/out/zero-protocol/src/down.js.map +1 -0
- package/out/zero-protocol/src/entities-patch.d.ts +66 -0
- package/out/zero-protocol/src/entities-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/entities-patch.js +27 -0
- package/out/zero-protocol/src/entities-patch.js.map +1 -0
- package/out/zero-protocol/src/entity.d.ts +9 -0
- package/out/zero-protocol/src/entity.d.ts.map +1 -0
- package/out/zero-protocol/src/entity.js +8 -0
- package/out/zero-protocol/src/entity.js.map +1 -0
- package/out/zero-protocol/src/error.d.ts +19 -0
- package/out/zero-protocol/src/error.d.ts.map +1 -0
- package/out/zero-protocol/src/error.js +26 -0
- package/out/zero-protocol/src/error.js.map +1 -0
- package/out/zero-protocol/src/mod.d.ts +16 -0
- package/out/zero-protocol/src/mod.d.ts.map +1 -0
- package/out/zero-protocol/src/mod.js +16 -0
- package/out/zero-protocol/src/mod.js.map +1 -0
- package/out/zero-protocol/src/ping.d.ts +6 -0
- package/out/zero-protocol/src/ping.d.ts.map +1 -0
- package/out/zero-protocol/src/ping.js +4 -0
- package/out/zero-protocol/src/ping.js.map +1 -0
- package/out/zero-protocol/src/poke.d.ts +236 -0
- package/out/zero-protocol/src/poke.d.ts.map +1 -0
- package/out/zero-protocol/src/poke.js +69 -0
- package/out/zero-protocol/src/poke.js.map +1 -0
- package/out/zero-protocol/src/pong.d.ts +6 -0
- package/out/zero-protocol/src/pong.d.ts.map +1 -0
- package/out/zero-protocol/src/pong.js +4 -0
- package/out/zero-protocol/src/pong.js.map +1 -0
- package/out/zero-protocol/src/pull.d.ts +26 -0
- package/out/zero-protocol/src/pull.d.ts.map +1 -0
- package/out/zero-protocol/src/pull.js +24 -0
- package/out/zero-protocol/src/pull.js.map +1 -0
- package/out/zero-protocol/src/push.d.ts +257 -0
- package/out/zero-protocol/src/push.d.ts.map +1 -0
- package/out/zero-protocol/src/push.js +77 -0
- package/out/zero-protocol/src/push.js.map +1 -0
- package/out/zero-protocol/src/queries-patch.d.ts +103 -0
- package/out/zero-protocol/src/queries-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/queries-patch.js +17 -0
- package/out/zero-protocol/src/queries-patch.js.map +1 -0
- package/out/zero-protocol/src/up.d.ts +116 -0
- package/out/zero-protocol/src/up.d.ts.map +1 -0
- package/out/zero-protocol/src/up.js +9 -0
- package/out/zero-protocol/src/up.js.map +1 -0
- package/out/zero-protocol/src/version.d.ts +6 -0
- package/out/zero-protocol/src/version.d.ts.map +1 -0
- package/out/zero-protocol/src/version.js +4 -0
- package/out/zero-protocol/src/version.js.map +1 -0
- package/out/zero-react/src/mod.d.ts +3 -0
- package/out/zero-react/src/mod.d.ts.map +1 -0
- package/out/zero-react/src/use-query.d.ts +3 -0
- package/out/zero-react/src/use-query.d.ts.map +1 -0
- package/out/zero-react/src/use-zero.d.ts +8 -0
- package/out/zero-react/src/use-zero.d.ts.map +1 -0
- package/out/zero.js +7000 -0
- package/out/zero.js.map +7 -0
- package/out/zql/src/zql/ast/ast.d.ts +84 -0
- package/out/zql/src/zql/ast/ast.d.ts.map +1 -0
- package/out/zql/src/zql/ast/ast.js +54 -0
- package/out/zql/src/zql/ast/ast.js.map +1 -0
- package/out/zql/src/zql/builder/builder.d.ts +56 -0
- package/out/zql/src/zql/builder/builder.d.ts.map +1 -0
- package/out/zql/src/zql/builder/builder.js +112 -0
- package/out/zql/src/zql/builder/builder.js.map +1 -0
- package/out/zql/src/zql/builder/error.d.ts +3 -0
- package/out/zql/src/zql/builder/error.d.ts.map +1 -0
- package/out/zql/src/zql/builder/error.js +3 -0
- package/out/zql/src/zql/builder/error.js.map +1 -0
- package/out/zql/src/zql/builder/filter.d.ts +6 -0
- package/out/zql/src/zql/builder/filter.d.ts.map +1 -0
- package/out/zql/src/zql/builder/filter.js +53 -0
- package/out/zql/src/zql/builder/filter.js.map +1 -0
- package/out/zql/src/zql/builder/like.d.ts +3 -0
- package/out/zql/src/zql/builder/like.d.ts.map +1 -0
- package/out/zql/src/zql/builder/like.js +60 -0
- package/out/zql/src/zql/builder/like.js.map +1 -0
- package/out/zql/src/zql/ivm/array-view.d.ts +42 -0
- package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/change.d.ts +44 -0
- package/out/zql/src/zql/ivm/change.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/change.js +2 -0
- package/out/zql/src/zql/ivm/change.js.map +1 -0
- package/out/zql/src/zql/ivm/data.d.ts +72 -0
- package/out/zql/src/zql/ivm/data.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/data.js +84 -0
- package/out/zql/src/zql/ivm/data.js.map +1 -0
- package/out/zql/src/zql/ivm/filter.d.ts +27 -0
- package/out/zql/src/zql/ivm/filter.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/filter.js +60 -0
- package/out/zql/src/zql/ivm/filter.js.map +1 -0
- package/out/zql/src/zql/ivm/join.d.ts +37 -0
- package/out/zql/src/zql/ivm/join.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/join.js +228 -0
- package/out/zql/src/zql/ivm/join.js.map +1 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.d.ts +13 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.js +45 -0
- package/out/zql/src/zql/ivm/lookahead-iterator.js.map +1 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts +10 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js +34 -0
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.js.map +1 -0
- package/out/zql/src/zql/ivm/memory-source.d.ts +65 -0
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/memory-source.js +508 -0
- package/out/zql/src/zql/ivm/memory-source.js.map +1 -0
- package/out/zql/src/zql/ivm/memory-storage.d.ts +18 -0
- package/out/zql/src/zql/ivm/memory-storage.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/operator.d.ts +89 -0
- package/out/zql/src/zql/ivm/operator.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/operator.js +2 -0
- package/out/zql/src/zql/ivm/operator.js.map +1 -0
- package/out/zql/src/zql/ivm/schema.d.ts +29 -0
- package/out/zql/src/zql/ivm/schema.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/schema.js +3 -0
- package/out/zql/src/zql/ivm/schema.js.map +1 -0
- package/out/zql/src/zql/ivm/skip.d.ts +24 -0
- package/out/zql/src/zql/ivm/skip.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/skip.js +113 -0
- package/out/zql/src/zql/ivm/skip.js.map +1 -0
- package/out/zql/src/zql/ivm/source.d.ts +57 -0
- package/out/zql/src/zql/ivm/source.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/source.js +2 -0
- package/out/zql/src/zql/ivm/source.js.map +1 -0
- package/out/zql/src/zql/ivm/stream.d.ts +11 -0
- package/out/zql/src/zql/ivm/stream.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/stream.js +19 -0
- package/out/zql/src/zql/ivm/stream.js.map +1 -0
- package/out/zql/src/zql/ivm/take.d.ts +24 -0
- package/out/zql/src/zql/ivm/take.d.ts.map +1 -0
- package/out/zql/src/zql/ivm/take.js +453 -0
- package/out/zql/src/zql/ivm/take.js.map +1 -0
- package/out/zql/src/zql/query/query-impl.d.ts +45 -0
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -0
- package/out/zql/src/zql/query/query.d.ts +130 -0
- package/out/zql/src/zql/query/query.d.ts.map +1 -0
- package/out/zql/src/zql/query/schema.d.ts +53 -0
- package/out/zql/src/zql/query/schema.d.ts.map +1 -0
- package/out/zql/src/zql/query/typed-view.d.ts +10 -0
- package/out/zql/src/zql/query/typed-view.d.ts.map +1 -0
- package/out/zqlite/src/db.d.ts +23 -0
- package/out/zqlite/src/db.d.ts.map +1 -0
- package/out/zqlite/src/db.js +117 -0
- package/out/zqlite/src/db.js.map +1 -0
- package/out/zqlite/src/internal/sql.d.ts +9 -0
- package/out/zqlite/src/internal/sql.d.ts.map +1 -0
- package/out/zqlite/src/internal/sql.js +14 -0
- package/out/zqlite/src/internal/sql.js.map +1 -0
- package/out/zqlite/src/internal/statement-cache.d.ts +67 -0
- package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -0
- package/out/zqlite/src/internal/statement-cache.js +119 -0
- package/out/zqlite/src/internal/statement-cache.js.map +1 -0
- package/out/zqlite/src/table-source.d.ts +43 -0
- package/out/zqlite/src/table-source.d.ts.map +1 -0
- package/out/zqlite/src/table-source.js +393 -0
- package/out/zqlite/src/table-source.js.map +1 -0
- package/package.json +79 -0
- package/tool/install-sqlite3.js +37 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import { ident } from 'pg-format';
|
|
3
|
+
import { assert } from '../../../../shared/src/asserts.js';
|
|
4
|
+
import * as v from '../../../../shared/src/valita.js';
|
|
5
|
+
import { StatementRunner } from '../../../../zero-cache/src/db/statements.js';
|
|
6
|
+
import { jsonObjectSchema, } from '../../../../zero-cache/src/types/bigint-json.js';
|
|
7
|
+
import { normalizedKeyOrder, } from '../../../../zero-cache/src/types/row-key.js';
|
|
8
|
+
import { Database } from '../../../../zqlite/src/db.js';
|
|
9
|
+
import { changeLogEntrySchema as schema, SET_OP, TRUNCATE_OP, } from '../replicator/schema/change-log.js';
|
|
10
|
+
import { getReplicationVersions, ZERO_VERSION_COLUMN_NAME as ROW_VERSION, } from '../replicator/schema/replication-state.js';
|
|
11
|
+
/**
|
|
12
|
+
* A `Snapshotter` manages the progression of database snapshots for a
|
|
13
|
+
* ViewSyncer.
|
|
14
|
+
*
|
|
15
|
+
* The Replicator and ViewSyncers operate on the same SQLite file, with the
|
|
16
|
+
* Replicator being the sole writer to the database. The IVM logic in
|
|
17
|
+
* ViewSyncers, however, rely on incrementally applying changes to the DB to
|
|
18
|
+
* update the state of its pipelines.
|
|
19
|
+
*
|
|
20
|
+
* To avoid coupling the progress of the Replicator and all IVM pipelines on
|
|
21
|
+
* each other, ViewSyncers operate on ephemeral forks of the database by holding
|
|
22
|
+
* [concurrent](https://sqlite.org/src/doc/begin-concurrent/doc/begin_concurrent.md)
|
|
23
|
+
* snapshots of the database and simulating (but ultimately rolling back)
|
|
24
|
+
* mutations on these snapshots.
|
|
25
|
+
*
|
|
26
|
+
* Example:
|
|
27
|
+
* 1. ViewSyncer takes `snapshot_a` at version `t1` of the database and
|
|
28
|
+
* hydrates its pipeline(s).
|
|
29
|
+
* 2. Replicator applies a new transaction to the database and notifies
|
|
30
|
+
* subscribers.
|
|
31
|
+
* 3. ViewSyncer takes `snapshot_b` at `t2`, and queries the `ChangeLog` at
|
|
32
|
+
* that snapshot for changes since `t1`.
|
|
33
|
+
* 4. ViewSyncer applies those changes to `snapshot_a` for IVM, but does not
|
|
34
|
+
* commit them. (Recall that the Replicator is the sole writer to the db, so
|
|
35
|
+
* the ViewSyncer never commits any writes.)
|
|
36
|
+
* 5. Replicator applies the next transaction and advances the database to `t3`.
|
|
37
|
+
* 6. ViewSyncer rolls back `snapshot_a` and opens `snapshot_c` at `t3`, using
|
|
38
|
+
* `snapshot_b` to simulate changes from `t2` to `t3`.
|
|
39
|
+
*
|
|
40
|
+
* ```
|
|
41
|
+
* Replicator: t1 --------------> t2 --------------> t3 --------------->
|
|
42
|
+
* ViewSyncer: [snapshot_a] ----> [snapshot_b] ----> [snapshot_c]
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* Note that the Replicator (and ViewSyncers) do not wait on the progress of
|
|
46
|
+
* other ViewSyncers. If a ViewSyncer is busy hydrating at `t1`, the Replicator
|
|
47
|
+
* and other ViewSyncers can progress through `t2`, `t3`, etc. independently,
|
|
48
|
+
* as the busy ViewSyncer simply takes its own snapshot when it is ready.
|
|
49
|
+
*
|
|
50
|
+
* ```
|
|
51
|
+
* Replicator: t1 --------------> t2 --------------> t3 --------------->
|
|
52
|
+
* ViewSyncer1: [snapshot_a] ----> [snapshot_b] ----> [snapshot_c]
|
|
53
|
+
* ViewSyncer2: [.......... snapshot_a ..........] ----> [snapshot_b]
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* To minimize Database connections (and statement preparation, etc.), the
|
|
57
|
+
* Snapshotter reuses the connection from the previous (rolled back)
|
|
58
|
+
* snapshot when opening the new one.
|
|
59
|
+
*
|
|
60
|
+
* ```
|
|
61
|
+
* Replicator: t1 --------------> t2 --------------> t3 --------------->
|
|
62
|
+
* ViewSyncer: [snapshot_a] ----> [snapshot_b] ----> [snapshot_c]
|
|
63
|
+
* (conn_1) (conn_2) (conn_1)
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* In this manner, each ViewSyncer uses two connections that continually
|
|
67
|
+
* "leapfrog" each other to replay the timeline of changes in isolation from
|
|
68
|
+
* the Replicator and other ViewSyncers.
|
|
69
|
+
*/
|
|
70
|
+
export class Snapshotter {
|
|
71
|
+
#lc;
|
|
72
|
+
#dbFile;
|
|
73
|
+
#curr;
|
|
74
|
+
#prev;
|
|
75
|
+
constructor(lc, dbFile) {
|
|
76
|
+
this.#lc = lc;
|
|
77
|
+
this.#dbFile = dbFile;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Initializes the snapshot to the current head of the database. This must be
|
|
81
|
+
* only be called once. The state of whether a Snapshotter has been initialized
|
|
82
|
+
* can be determined by calling {@link initialized()}.
|
|
83
|
+
*/
|
|
84
|
+
init() {
|
|
85
|
+
assert(this.#curr === undefined, 'Already initialized');
|
|
86
|
+
this.#curr = Snapshot.create(this.#lc, this.#dbFile);
|
|
87
|
+
this.#lc.debug?.(`Initial snapshot at version ${this.#curr.version}`);
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
initialized() {
|
|
91
|
+
return this.#curr !== undefined;
|
|
92
|
+
}
|
|
93
|
+
/** Returns the current snapshot. Asserts if {@link initialized()} is false. */
|
|
94
|
+
current() {
|
|
95
|
+
assert(this.#curr?.hasLock, 'Snapshotter uninitialized or released');
|
|
96
|
+
return this.#curr;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Advances to the head of the Database, returning a diff between the
|
|
100
|
+
* previously current Snapshot and a new Snapshot at head. This is called
|
|
101
|
+
* in response to a notification from a Replicator subscription. Subsequent
|
|
102
|
+
* calls to {@link current()} return the new Snapshot. Note that the Snapshotter
|
|
103
|
+
* must be initialized before advancing.
|
|
104
|
+
*
|
|
105
|
+
* The returned {@link SnapshotDiff} contains snapshots at the endpoints
|
|
106
|
+
* of the database timeline. Iterating over the diff generates a sequence
|
|
107
|
+
* of {@link Change}s between the two snapshots.
|
|
108
|
+
*
|
|
109
|
+
* Note that this sequence is not chronological; rather, the sequence is
|
|
110
|
+
* ordered by `<table, row-key>`, such that a row can appear at most once
|
|
111
|
+
* in the common case, or twice if its table is `TRUNCATE`'d and a new value
|
|
112
|
+
* is subsequently `INSERT`'ed. This results in dropping most intermediate
|
|
113
|
+
* changes to a row and bounds the amount of work needed to catch up;
|
|
114
|
+
* however, as a consequence, a consistent database state is only guaranteed
|
|
115
|
+
* when the sequence has been fully consumed.
|
|
116
|
+
*
|
|
117
|
+
* Note that Change generation relies on the state of the underlying
|
|
118
|
+
* database connections, and because the connection for the previous snapshot
|
|
119
|
+
* is reused to produce the next snapshot, the diff object is only valid
|
|
120
|
+
* until the next call to `advance()`.
|
|
121
|
+
*
|
|
122
|
+
* It is okay for the caller to apply `Change`s to the `prev` snapshot
|
|
123
|
+
* during the iteration (e.g. this is necessary for IVM); the remainder
|
|
124
|
+
* of the iteration is not affected because a given row can appear at most
|
|
125
|
+
* once in the sequence (with the exception being TRUNCATE, after which the
|
|
126
|
+
* deleted rows can be re-inserted, but this will also behave correctly if
|
|
127
|
+
* the changes are applied).
|
|
128
|
+
*
|
|
129
|
+
* Once the changes have been applied, however, a _subsequent_ iteration
|
|
130
|
+
* will not produce the correct results. In order to perform multiple
|
|
131
|
+
* change-applying iterations, the caller must (1) create a save point
|
|
132
|
+
* on `prev` before each iteration, and (2) rollback to the save point after
|
|
133
|
+
* the iteration.
|
|
134
|
+
*/
|
|
135
|
+
advance() {
|
|
136
|
+
assert(this.#curr !== undefined, 'Snapshotter has not been initialized');
|
|
137
|
+
const next = this.#prev
|
|
138
|
+
? this.#prev.resetToHead()
|
|
139
|
+
: Snapshot.create(this.#lc, this.#curr.db.db.name);
|
|
140
|
+
this.#prev = this.#curr;
|
|
141
|
+
this.#curr = next;
|
|
142
|
+
return new Diff(this.#prev, this.#curr);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Releases all locks on the database. Call {@link advance()}
|
|
146
|
+
* to reestablish a snapshot.
|
|
147
|
+
*
|
|
148
|
+
* This must only be called if the Snapshotter has been initialized.
|
|
149
|
+
*/
|
|
150
|
+
release() {
|
|
151
|
+
assert(this.#curr !== undefined, 'Snapshotter has not been initialized');
|
|
152
|
+
this.#curr.release();
|
|
153
|
+
this.#prev?.release();
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Call this to close the database connections when the Snapshotter is
|
|
157
|
+
* no longer needed.
|
|
158
|
+
*/
|
|
159
|
+
destroy() {
|
|
160
|
+
this.#curr?.db.db.close();
|
|
161
|
+
this.#prev?.db.db.close();
|
|
162
|
+
this.#lc.debug?.('closed database connections');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
class Snapshot {
|
|
166
|
+
static create(lc, dbFile) {
|
|
167
|
+
const conn = new Database(lc, dbFile);
|
|
168
|
+
conn.pragma('synchronous = OFF'); // Applied changes are ephemeral; COMMIT is never called.
|
|
169
|
+
const db = new StatementRunner(conn);
|
|
170
|
+
db.beginConcurrent();
|
|
171
|
+
// Note: The subsequent read is necessary to acquire the read lock
|
|
172
|
+
// (which results in the logical creation of the snapshot). Calling
|
|
173
|
+
// `BEGIN CONCURRENT` alone does not result in acquiring the read lock.
|
|
174
|
+
const { stateVersion } = getReplicationVersions(db);
|
|
175
|
+
return new Snapshot(db, stateVersion);
|
|
176
|
+
}
|
|
177
|
+
db;
|
|
178
|
+
version;
|
|
179
|
+
constructor(db, version) {
|
|
180
|
+
this.db = db;
|
|
181
|
+
this.version = version;
|
|
182
|
+
}
|
|
183
|
+
numChangesSince(prevVersion) {
|
|
184
|
+
const { count } = this.db.get('SELECT COUNT(*) AS count FROM "_zero.ChangeLog" WHERE stateVersion > ?', prevVersion);
|
|
185
|
+
return count;
|
|
186
|
+
}
|
|
187
|
+
changesSince(prevVersion) {
|
|
188
|
+
const cached = this.db.statementCache.get('SELECT * FROM "_zero.ChangeLog" WHERE stateVersion > ?');
|
|
189
|
+
return {
|
|
190
|
+
changes: cached.statement.iterate(prevVersion),
|
|
191
|
+
cleanup: () => this.db.statementCache.return(cached),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
getRow(table, rowKey) {
|
|
195
|
+
const key = normalizedKeyOrder(rowKey);
|
|
196
|
+
const conds = Object.keys(key).map(c => `${ident(c)}=?`);
|
|
197
|
+
const cached = this.db.statementCache.get(`SELECT * FROM ${ident(table)} WHERE ${conds.join(' AND ')}`);
|
|
198
|
+
cached.statement.safeIntegers(true);
|
|
199
|
+
try {
|
|
200
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
201
|
+
return cached.statement.get(Object.values(key));
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
this.db.statementCache.return(cached);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
getRows(table) {
|
|
208
|
+
const cached = this.db.statementCache.get(`SELECT * FROM ${ident(table)}`);
|
|
209
|
+
cached.statement.safeIntegers(true);
|
|
210
|
+
return {
|
|
211
|
+
rows: cached.statement.iterate(),
|
|
212
|
+
cleanup: () => this.db.statementCache.return(cached),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
get hasLock() {
|
|
216
|
+
return this.db.db.inTransaction;
|
|
217
|
+
}
|
|
218
|
+
release() {
|
|
219
|
+
if (this.hasLock) {
|
|
220
|
+
this.db.rollback();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
resetToHead() {
|
|
224
|
+
this.release();
|
|
225
|
+
this.db.beginConcurrent();
|
|
226
|
+
const { stateVersion } = getReplicationVersions(this.db);
|
|
227
|
+
return new Snapshot(this.db, stateVersion);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
class Diff {
|
|
231
|
+
prev;
|
|
232
|
+
curr;
|
|
233
|
+
changes;
|
|
234
|
+
constructor(prev, curr) {
|
|
235
|
+
this.prev = prev;
|
|
236
|
+
this.curr = curr;
|
|
237
|
+
this.changes = curr.numChangesSince(prev.version);
|
|
238
|
+
}
|
|
239
|
+
[Symbol.iterator]() {
|
|
240
|
+
const { changes, cleanup: done } = this.curr.changesSince(this.prev.version);
|
|
241
|
+
const truncates = new TruncateTracker(this.prev);
|
|
242
|
+
const cleanup = () => {
|
|
243
|
+
done();
|
|
244
|
+
truncates.done();
|
|
245
|
+
};
|
|
246
|
+
return {
|
|
247
|
+
next: () => {
|
|
248
|
+
for (;;) {
|
|
249
|
+
// Exhaust the TRUNCATE iteration before continuing the Change sequence.
|
|
250
|
+
const truncatedRow = truncates.next();
|
|
251
|
+
if (truncatedRow) {
|
|
252
|
+
return truncatedRow;
|
|
253
|
+
}
|
|
254
|
+
const { value, done } = changes.next();
|
|
255
|
+
if (done) {
|
|
256
|
+
cleanup();
|
|
257
|
+
return { value, done: true };
|
|
258
|
+
}
|
|
259
|
+
const { table, rowKey, op, stateVersion } = v.parse(value, schema);
|
|
260
|
+
if (op === TRUNCATE_OP) {
|
|
261
|
+
truncates.startTruncate(table);
|
|
262
|
+
continue; // loop around to pull rows from the TruncateTracker.
|
|
263
|
+
}
|
|
264
|
+
assert(rowKey !== null);
|
|
265
|
+
const prevValue = truncates.getRowIfNotTruncated(table, rowKey) ?? null;
|
|
266
|
+
const nextValue = op === SET_OP ? this.curr.getRow(table, rowKey) : null;
|
|
267
|
+
// Sanity check detects if the diff is being accessed after the Snapshots have advanced.
|
|
268
|
+
this.checkThatDiffIsValid(stateVersion, op, prevValue, nextValue);
|
|
269
|
+
if (prevValue === null && nextValue === null) {
|
|
270
|
+
// Filter out no-op changes (e.g. a delete of a row that does not exist in prev).
|
|
271
|
+
// TODO: Consider doing this for deep-equal values.
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
return { value: { table, prevValue, nextValue } };
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
return: (value) => {
|
|
278
|
+
try {
|
|
279
|
+
// Allow open iterators to clean up their state.
|
|
280
|
+
truncates.iterReturn(value);
|
|
281
|
+
changes.return?.(value);
|
|
282
|
+
return { value, done: true };
|
|
283
|
+
}
|
|
284
|
+
finally {
|
|
285
|
+
cleanup();
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
throw: (err) => {
|
|
289
|
+
try {
|
|
290
|
+
// Allow open iterators to clean up their state.
|
|
291
|
+
truncates.iterThrow(err);
|
|
292
|
+
changes.throw?.(err);
|
|
293
|
+
return { value: undefined, done: true };
|
|
294
|
+
}
|
|
295
|
+
finally {
|
|
296
|
+
cleanup();
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
checkThatDiffIsValid(stateVersion, op, prevValue, nextValue) {
|
|
302
|
+
// Sanity checks to detect that the diff is not being accessed after
|
|
303
|
+
// the Snapshots have advanced.
|
|
304
|
+
if (stateVersion > this.curr.version) {
|
|
305
|
+
throw new InvalidDiffError(`Diff is no longer valid. curr db has advanced past ${this.curr.version}`);
|
|
306
|
+
}
|
|
307
|
+
if (prevValue !== null &&
|
|
308
|
+
(prevValue[ROW_VERSION] ?? '~') > this.prev.version) {
|
|
309
|
+
throw new InvalidDiffError(`Diff is no longer valid. prev db has advanced past ${this.prev.version}.`);
|
|
310
|
+
}
|
|
311
|
+
if (op === SET_OP && nextValue[ROW_VERSION] !== stateVersion) {
|
|
312
|
+
throw new InvalidDiffError('Diff is no longer valid. curr db has advanced.');
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* `TRUNCATE` changes are handled by:
|
|
318
|
+
* 1. Iterating over all of the rows in the `prev` Snapshot and returning
|
|
319
|
+
* corresponding `DELETE` row operations for them (i.e. `nextValue: null`).
|
|
320
|
+
* 2. Tracking the fact that a table has been truncated (i.e. all row-deletes
|
|
321
|
+
* have been returned) so that subsequent lookups of prevValues (e.g. for
|
|
322
|
+
* inserts after the truncate) correctly return `null`.
|
|
323
|
+
*/
|
|
324
|
+
class TruncateTracker {
|
|
325
|
+
#prev;
|
|
326
|
+
#truncated = new Set();
|
|
327
|
+
#truncating = null;
|
|
328
|
+
constructor(prev) {
|
|
329
|
+
this.#prev = prev;
|
|
330
|
+
}
|
|
331
|
+
startTruncate(table) {
|
|
332
|
+
assert(this.#truncating === null);
|
|
333
|
+
const { rows, cleanup } = this.#prev.getRows(table);
|
|
334
|
+
this.#truncating = { table, rows, cleanup };
|
|
335
|
+
}
|
|
336
|
+
next() {
|
|
337
|
+
if (this.#truncating === null) {
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
const { table } = this.#truncating;
|
|
341
|
+
const { value, done } = this.#truncating.rows.next();
|
|
342
|
+
if (done) {
|
|
343
|
+
this.#truncating.cleanup();
|
|
344
|
+
this.#truncating = null;
|
|
345
|
+
this.#truncated.add(table);
|
|
346
|
+
return null;
|
|
347
|
+
}
|
|
348
|
+
const prevValue = v.parse(value, jsonObjectSchema);
|
|
349
|
+
// Sanity check detects if the diff is being accessed after the Snapshots have advanced.
|
|
350
|
+
if ((prevValue[ROW_VERSION] ?? '~') > this.#prev.version) {
|
|
351
|
+
throw new InvalidDiffError(`Diff is no longer valid. prev db has advanced past ${this.#prev.version}.`);
|
|
352
|
+
}
|
|
353
|
+
return { value: { table, prevValue, nextValue: null } };
|
|
354
|
+
}
|
|
355
|
+
getRowIfNotTruncated(table, rowKey) {
|
|
356
|
+
// If the row has been returned in a TRUNCATE iteration, its prevValue is henceforth null.
|
|
357
|
+
return this.#truncated.has(table) ? null : this.#prev.getRow(table, rowKey);
|
|
358
|
+
}
|
|
359
|
+
iterReturn(value) {
|
|
360
|
+
this.#truncating?.rows.return?.(value);
|
|
361
|
+
}
|
|
362
|
+
iterThrow(err) {
|
|
363
|
+
this.#truncating?.rows.throw?.(err);
|
|
364
|
+
}
|
|
365
|
+
done() {
|
|
366
|
+
this.#truncating?.cleanup();
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
export class InvalidDiffError extends Error {
|
|
370
|
+
constructor(msg) {
|
|
371
|
+
super(msg);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=snapshotter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { ChangeDesiredQueriesMessage, Downstream, InitConnectionMessage } from '../../../../zero-protocol/src/mod.js';
|
|
3
|
+
import type { PostgresDB } from '../../types/pg.js';
|
|
4
|
+
import type { Source } from '../../types/streams.js';
|
|
5
|
+
import { Subscription } from '../../types/subscription.js';
|
|
6
|
+
import type { ReplicaState } from '../replicator/replicator.js';
|
|
7
|
+
import type { ActivityBasedService } from '../service.js';
|
|
8
|
+
import { PipelineDriver } from './pipeline-driver.js';
|
|
9
|
+
export type SyncContext = {
|
|
10
|
+
readonly clientID: string;
|
|
11
|
+
readonly wsID: string;
|
|
12
|
+
readonly baseCookie: string | null;
|
|
13
|
+
};
|
|
14
|
+
export interface ViewSyncer {
|
|
15
|
+
initConnection(ctx: SyncContext, msg: InitConnectionMessage): Promise<Source<Downstream>>;
|
|
16
|
+
changeDesiredQueries(ctx: SyncContext, msg: ChangeDesiredQueriesMessage): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare class ViewSyncerService implements ViewSyncer, ActivityBasedService {
|
|
19
|
+
#private;
|
|
20
|
+
readonly id: string;
|
|
21
|
+
constructor(lc: LogContext, clientGroupID: string, db: PostgresDB, pipelineDriver: PipelineDriver, versionChanges: Subscription<ReplicaState>, keepaliveMs?: number);
|
|
22
|
+
run(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Guarantees that the ViewSyncer will remain running for at least
|
|
25
|
+
* its configured `keepaliveMs`. This is called when establishing a
|
|
26
|
+
* new connection to ensure that its associated ViewSyncer isn't
|
|
27
|
+
* shutdown before it receives the connection.
|
|
28
|
+
*
|
|
29
|
+
* @return `true` if the ViewSyncer will stay alive, `false` if the
|
|
30
|
+
* ViewSyncer is shutting down.
|
|
31
|
+
*/
|
|
32
|
+
keepalive(): boolean;
|
|
33
|
+
initConnection(ctx: SyncContext, initConnectionMessage: InitConnectionMessage): Promise<Source<Downstream>>;
|
|
34
|
+
changeDesiredQueries(ctx: SyncContext, msg: ChangeDesiredQueriesMessage): Promise<void>;
|
|
35
|
+
stop(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=view-syncer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAEV,2BAA2B,EAC3B,UAAU,EACV,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAaxD,OAAO,EAAC,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AASpE,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,cAAc,CACZ,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE/B,oBAAoB,CAClB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAQD,qBAAa,iBAAkB,YAAW,UAAU,EAAE,oBAAoB;;IACxE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAiBlB,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,UAAU,EACd,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,EAC1C,WAAW,SAAuB;IAyB9B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAwF1B;;;;;;;;OAQG;IACH,SAAS,IAAI,OAAO;IAyBd,cAAc,CAClB,GAAG,EAAE,WAAW,EAChB,qBAAqB,EAAE,qBAAqB,GAC3C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAmCxB,oBAAoB,CACxB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,IAAI,CAAC;IAkbV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAe5B"}
|