@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,54 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { Subscription, } from '../../types/subscription.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles the semantics of {@link ReplicatorVersionNotifier.subscribe()}
|
|
5
|
+
* notifications, namely:
|
|
6
|
+
*
|
|
7
|
+
* * New subscribers are notified immediately with the latest received
|
|
8
|
+
* ReplicaState.
|
|
9
|
+
*
|
|
10
|
+
* * Non-latest notifications are discarded if the subscriber is too
|
|
11
|
+
* busy to consume them.
|
|
12
|
+
*
|
|
13
|
+
* By encapsulating the state for the first behavior (essentially, whether
|
|
14
|
+
* the first notification has been sent by the Replicator), Notifier objects
|
|
15
|
+
* can be chained to simplify fanout from Replicator to View Syncers.
|
|
16
|
+
*
|
|
17
|
+
* In particular, each Syncer Thread can manage a single Subscription to
|
|
18
|
+
* the Replicator across a MessageChannel, which it uses for its own Notifier
|
|
19
|
+
* instance to manage subscriptions from View Syncers within its thread. This
|
|
20
|
+
* way a Replicator only deals with sending notifications to a bounded set
|
|
21
|
+
* of MessageChannel-based subscribers (Syncer Threads), while the dynamic
|
|
22
|
+
* subscribe and unsubscribe traffic from View Syncers remains within each
|
|
23
|
+
* Syncer Thread.
|
|
24
|
+
*/
|
|
25
|
+
export class Notifier {
|
|
26
|
+
#eventEmitter = new EventEmitter();
|
|
27
|
+
#lastStateReceived;
|
|
28
|
+
#newSubscription() {
|
|
29
|
+
const notify = (state) => subscription.push(state);
|
|
30
|
+
const subscription = Subscription.create({
|
|
31
|
+
coalesce: curr => curr,
|
|
32
|
+
cleanup: () => this.#eventEmitter.off('version', notify),
|
|
33
|
+
});
|
|
34
|
+
return { notify, subscription };
|
|
35
|
+
}
|
|
36
|
+
subscribe() {
|
|
37
|
+
const { notify, subscription } = this.#newSubscription();
|
|
38
|
+
this.#eventEmitter.on('version', notify);
|
|
39
|
+
if (this.#lastStateReceived) {
|
|
40
|
+
// Per Replicator.subscribe() semantics, the current state of the
|
|
41
|
+
// replica, if known, is immediately sent on subscribe.
|
|
42
|
+
notify(this.#lastStateReceived);
|
|
43
|
+
}
|
|
44
|
+
return subscription;
|
|
45
|
+
}
|
|
46
|
+
notifySubscribers(state = { state: 'version-ready' }) {
|
|
47
|
+
this.#lastStateReceived = state;
|
|
48
|
+
return this.#eventEmitter
|
|
49
|
+
.listeners('version')
|
|
50
|
+
.map(notify => notify(state))
|
|
51
|
+
.map(pending => pending.result);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=notifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/notifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAGL,YAAY,GACb,MAAM,6BAA6B,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,QAAQ;IACV,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;IAC5C,kBAAkB,CAA2B;IAE7C,gBAAgB;QACd,MAAM,MAAM,GAAG,CAAC,KAAmB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAe;YACrD,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;YACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;SACzD,CAAC,CAAC;QACH,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC;IAChC,CAAC;IAED,SAAS;QACP,MAAM,EAAC,MAAM,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,iEAAiE;YACjE,uDAAuD;YACvD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB,CACf,QAAsB,EAAC,KAAK,EAAE,eAAe,EAAC;QAE9C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,aAAa;aACtB,SAAS,CAAC,SAAS,CAAC;aACpB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAA6B,CAAC;aACxD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { ReadonlyJSONObject } from '../../../../shared/src/json.js';
|
|
3
|
+
import { Database } from '../../../../zqlite/src/db.js';
|
|
4
|
+
import type { Source } from '../../types/streams.js';
|
|
5
|
+
import type { ChangeStreamer } from '../change-streamer/change-streamer.js';
|
|
6
|
+
import type { Service } from '../service.js';
|
|
7
|
+
import type { Checkpointer } from './checkpointer.js';
|
|
8
|
+
/** See {@link ReplicaStateNotifier.subscribe()}. */
|
|
9
|
+
export type ReplicaState = {
|
|
10
|
+
readonly state: 'version-ready' | 'maintenance';
|
|
11
|
+
/**
|
|
12
|
+
* An optional random integer indicating that the notifier requests
|
|
13
|
+
* an ACK from all (transitive) subscribers. As the Subscription class
|
|
14
|
+
* uses the AsyncIterable paradigm to automatically handle ACKs for
|
|
15
|
+
* in-process communication, this field is primarily for IPC-level
|
|
16
|
+
* logic to perform additional communication between processes.
|
|
17
|
+
*
|
|
18
|
+
* It follows that application logic can largely ignore this field.
|
|
19
|
+
*/
|
|
20
|
+
readonly ack?: number | undefined;
|
|
21
|
+
};
|
|
22
|
+
export interface ReplicaStateNotifier {
|
|
23
|
+
/**
|
|
24
|
+
* Creates a cancelable subscription of changes in the replica state.
|
|
25
|
+
*
|
|
26
|
+
* A `version-ready` message indicates that the replica is ready to be
|
|
27
|
+
* read, and henceforth that a _new_ version is ready, i.e. whenever a
|
|
28
|
+
* change is committed to the replica. The `version-ready` message itself
|
|
29
|
+
* otherwise contains no other information; the subscriber queries the
|
|
30
|
+
* replica for the current data.
|
|
31
|
+
*
|
|
32
|
+
* A `maintenance` state indicates that the replica should not be read from.
|
|
33
|
+
* If a subscriber is holding any transaction locks, it should release them
|
|
34
|
+
* until the next `version-ready` signal.
|
|
35
|
+
*
|
|
36
|
+
* Upon subscription, the current state of the replica is sent immediately
|
|
37
|
+
* if known. If multiple notifications occur before the subscriber
|
|
38
|
+
* can consume them, all but the last notification are discarded by the
|
|
39
|
+
* Subscription object (i.e. not buffered). Thus, a subscriber only
|
|
40
|
+
* ever consumes the current (i.e. known) state of the replica. This avoids
|
|
41
|
+
* a buildup of "work" if a subscriber is too busy to consume all
|
|
42
|
+
* notifications.
|
|
43
|
+
*/
|
|
44
|
+
subscribe(): Source<ReplicaState>;
|
|
45
|
+
}
|
|
46
|
+
export interface Replicator extends ReplicaStateNotifier {
|
|
47
|
+
/**
|
|
48
|
+
* Returns an opaque message for human-readable consumption. This is
|
|
49
|
+
* purely for ensuring that the Replicator has started at least once to
|
|
50
|
+
* bootstrap a new replica.
|
|
51
|
+
*/
|
|
52
|
+
status(): Promise<ReadonlyJSONObject>;
|
|
53
|
+
}
|
|
54
|
+
export declare class ReplicatorService implements Replicator, Service {
|
|
55
|
+
#private;
|
|
56
|
+
readonly id: string;
|
|
57
|
+
constructor(lc: LogContext, id: string, changeStreamer: ChangeStreamer, replica: Database, checkpointer: Checkpointer);
|
|
58
|
+
status(): Promise<{
|
|
59
|
+
status: string;
|
|
60
|
+
}>;
|
|
61
|
+
run(): Promise<void>;
|
|
62
|
+
subscribe(): Source<ReplicaState>;
|
|
63
|
+
stop(): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=replicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAGpD,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;IAEhD;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAW,SAAQ,oBAAoB;IACtD;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACvC;AAED,qBAAa,iBAAkB,YAAW,UAAU,EAAE,OAAO;;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAKlB,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAE,YAAY;IAe5B,MAAM;;;IAIN,GAAG;IAIH,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC;IAI3B,IAAI;CAGX"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Database } from '../../../../zqlite/src/db.js';
|
|
2
|
+
import { IncrementalSyncer } from './incremental-sync.js';
|
|
3
|
+
export class ReplicatorService {
|
|
4
|
+
id;
|
|
5
|
+
#lc;
|
|
6
|
+
#incrementalSyncer;
|
|
7
|
+
constructor(lc, id, changeStreamer, replica, checkpointer) {
|
|
8
|
+
this.id = id;
|
|
9
|
+
this.#lc = lc
|
|
10
|
+
.withContext('component', 'replicator')
|
|
11
|
+
.withContext('serviceID', this.id);
|
|
12
|
+
this.#incrementalSyncer = new IncrementalSyncer(id, changeStreamer, replica, checkpointer);
|
|
13
|
+
}
|
|
14
|
+
status() {
|
|
15
|
+
return Promise.resolve({ status: 'ok' });
|
|
16
|
+
}
|
|
17
|
+
run() {
|
|
18
|
+
return this.#incrementalSyncer.run(this.#lc);
|
|
19
|
+
}
|
|
20
|
+
subscribe() {
|
|
21
|
+
return this.#incrementalSyncer.subscribe();
|
|
22
|
+
}
|
|
23
|
+
async stop() {
|
|
24
|
+
await this.#incrementalSyncer.stop(this.#lc);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=replicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/replicator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAK1C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAoDxD,MAAM,OAAO,iBAAiB;IACnB,EAAE,CAAS;IACX,GAAG,CAAa;IAChB,kBAAkB,CAAoB;IAE/C,YACE,EAAc,EACd,EAAU,EACV,cAA8B,EAC9B,OAAiB,EACjB,YAA0B;QAE1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,EAAE;aACV,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC;aACtC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,CAC7C,EAAE,EACF,cAAc,EACd,OAAO,EACP,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;IACzC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Database } from '../../../../../zqlite/src/db.js';
|
|
2
|
+
import * as v from '../../../../../shared/src/valita.js';
|
|
3
|
+
import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
|
|
4
|
+
import type { LexiVersion } from '../../../../../zero-cache/src/types/lexi-version.js';
|
|
5
|
+
import { type RowKey } from '../../../../../zero-cache/src/types/row-key.js';
|
|
6
|
+
/**
|
|
7
|
+
* The Change Log tracks the last operation (set or delete) for each row in the
|
|
8
|
+
* data base, ordered by state version; in other words, a cross-table
|
|
9
|
+
* index of row changes ordered by version. This facilitates a minimal "diff"
|
|
10
|
+
* of row changes needed to advance a pipeline from one state version to another.
|
|
11
|
+
*
|
|
12
|
+
* The Change Log stores identifiers only, i.e. it does not store contents.
|
|
13
|
+
* A database snapshot at the previous version can be used to query a row's
|
|
14
|
+
* old contents, if any, and the current snapshot can be used to query a row's
|
|
15
|
+
* new contents. (In the common case, the new contents will have just been applied
|
|
16
|
+
* and thus has a high likelihood of being in the SQLite cache.)
|
|
17
|
+
*
|
|
18
|
+
* The postgres TRUNCATE operation is represented as a log entry with a `null` row
|
|
19
|
+
* key, which means that it is sorted before any row operations for that table.
|
|
20
|
+
*/
|
|
21
|
+
export declare const SET_OP = "s";
|
|
22
|
+
export declare const DEL_OP = "d";
|
|
23
|
+
export declare const TRUNCATE_OP = "t";
|
|
24
|
+
export declare const changeLogEntrySchema: v.Type<{
|
|
25
|
+
rowKey: Readonly<Record<string, import("../../../../../zero-cache/src/types/bigint-json.js").JSONValue>> | null;
|
|
26
|
+
stateVersion: string;
|
|
27
|
+
table: string;
|
|
28
|
+
op: "s" | "d" | "t";
|
|
29
|
+
}>;
|
|
30
|
+
export type ChangeLogEntry = v.Infer<typeof changeLogEntrySchema>;
|
|
31
|
+
export declare function initChangeLog(db: Database): void;
|
|
32
|
+
export declare function logSetOp(db: StatementRunner, version: LexiVersion, table: string, row: RowKey): void;
|
|
33
|
+
export declare function logDeleteOp(db: StatementRunner, version: LexiVersion, table: string, row: RowKey): void;
|
|
34
|
+
export declare function logTruncateOp(db: StatementRunner, version: LexiVersion, table: string): void;
|
|
35
|
+
//# sourceMappingURL=change-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-log.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/change-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAMhE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAqB,KAAK,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,WAAW,MAAM,CAAC;AAoB/B,eAAO,MAAM,oBAAoB;;;;;EAU5B,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,QAEzC;AAED,wBAAgB,QAAQ,CACtB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,QAGZ;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,QAGZ;AAqBD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,QAgBd"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as v from '../../../../../shared/src/valita.js';
|
|
2
|
+
import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
|
|
3
|
+
import { jsonObjectSchema, parse, stringify, } from '../../../../../zero-cache/src/types/bigint-json.js';
|
|
4
|
+
import { normalizedKeyOrder } from '../../../../../zero-cache/src/types/row-key.js';
|
|
5
|
+
/**
|
|
6
|
+
* The Change Log tracks the last operation (set or delete) for each row in the
|
|
7
|
+
* data base, ordered by state version; in other words, a cross-table
|
|
8
|
+
* index of row changes ordered by version. This facilitates a minimal "diff"
|
|
9
|
+
* of row changes needed to advance a pipeline from one state version to another.
|
|
10
|
+
*
|
|
11
|
+
* The Change Log stores identifiers only, i.e. it does not store contents.
|
|
12
|
+
* A database snapshot at the previous version can be used to query a row's
|
|
13
|
+
* old contents, if any, and the current snapshot can be used to query a row's
|
|
14
|
+
* new contents. (In the common case, the new contents will have just been applied
|
|
15
|
+
* and thus has a high likelihood of being in the SQLite cache.)
|
|
16
|
+
*
|
|
17
|
+
* The postgres TRUNCATE operation is represented as a log entry with a `null` row
|
|
18
|
+
* key, which means that it is sorted before any row operations for that table.
|
|
19
|
+
*/
|
|
20
|
+
export const SET_OP = 's';
|
|
21
|
+
export const DEL_OP = 'd';
|
|
22
|
+
export const TRUNCATE_OP = 't';
|
|
23
|
+
const CREATE_CHANGELOG_SCHEMA =
|
|
24
|
+
// stateVersion : a.k.a. row version
|
|
25
|
+
// table : The table associated with the change
|
|
26
|
+
// rowKey : JSON row key for a row change, or NULL for a table TRUNCATE.
|
|
27
|
+
// Note that SQLite will sort rows such that TRUNCATE operations appear
|
|
28
|
+
// before row operations (as desired), as NULL appears before non-NULL values.
|
|
29
|
+
// op : 't' for table truncation, 's' for set (insert/update), and 'd' for delete
|
|
30
|
+
`
|
|
31
|
+
CREATE TABLE "_zero.ChangeLog" (
|
|
32
|
+
"stateVersion" TEXT NOT NULL,
|
|
33
|
+
"table" TEXT NOT NULL,
|
|
34
|
+
"rowKey" TEXT,
|
|
35
|
+
"op" TEXT NOT NULL,
|
|
36
|
+
PRIMARY KEY("stateVersion", "table", "rowKey"),
|
|
37
|
+
UNIQUE("table", "rowKey")
|
|
38
|
+
)
|
|
39
|
+
`;
|
|
40
|
+
export const changeLogEntrySchema = v
|
|
41
|
+
.object({
|
|
42
|
+
stateVersion: v.string(),
|
|
43
|
+
table: v.string(),
|
|
44
|
+
rowKey: v.string().nullable(),
|
|
45
|
+
op: v.union(v.literal(SET_OP), v.literal(DEL_OP), v.literal(TRUNCATE_OP)),
|
|
46
|
+
})
|
|
47
|
+
.map(val => ({
|
|
48
|
+
...val,
|
|
49
|
+
rowKey: val.rowKey ? v.parse(parse(val.rowKey), jsonObjectSchema) : null,
|
|
50
|
+
}));
|
|
51
|
+
export function initChangeLog(db) {
|
|
52
|
+
db.exec(CREATE_CHANGELOG_SCHEMA);
|
|
53
|
+
}
|
|
54
|
+
export function logSetOp(db, version, table, row) {
|
|
55
|
+
logRowOp(db, version, table, row, SET_OP);
|
|
56
|
+
}
|
|
57
|
+
export function logDeleteOp(db, version, table, row) {
|
|
58
|
+
logRowOp(db, version, table, row, DEL_OP);
|
|
59
|
+
}
|
|
60
|
+
function logRowOp(db, version, table, row, op) {
|
|
61
|
+
const rowKey = stringify(normalizedKeyOrder(row));
|
|
62
|
+
db.run(`
|
|
63
|
+
INSERT INTO "_zero.ChangeLog" (stateVersion, "table", rowKey, op)
|
|
64
|
+
VALUES (@version, @table, JSON(@rowKey), @op)
|
|
65
|
+
ON CONFLICT ("table", rowKey) DO UPDATE
|
|
66
|
+
SET stateVersion = @version, op = @op
|
|
67
|
+
`, { version, table, rowKey, op });
|
|
68
|
+
}
|
|
69
|
+
export function logTruncateOp(db, version, table) {
|
|
70
|
+
db.run(`
|
|
71
|
+
DELETE FROM "_zero.ChangeLog" WHERE "table" = ?
|
|
72
|
+
`, table);
|
|
73
|
+
db.run(`
|
|
74
|
+
INSERT INTO "_zero.ChangeLog" (stateVersion, "table", op)
|
|
75
|
+
VALUES (@version, @table, @op)
|
|
76
|
+
`, { version, table, op: TRUNCATE_OP });
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=change-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-log.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/change-log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,SAAS,GACV,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAC,kBAAkB,EAAc,MAAM,iCAAiC,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,MAAM,uBAAuB;AAC3B,oCAAoC;AACpC,sDAAsD;AACtD,8EAA8E;AAC9E,sFAAsF;AACtF,6FAA6F;AAC7F,2FAA2F;AAC3F;;;;;;;;;GASC,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1E,CAAC;KACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,GAAG,GAAG;IACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;CACzE,CAAC,CAAC,CAAC;AAIN,MAAM,UAAU,aAAa,CAAC,EAAY;IACxC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,EAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,GAAW;IAEX,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,EAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,GAAW;IAEX,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CACf,EAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,GAAW,EACX,EAAU;IAEV,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,EAAE,CAAC,GAAG,CACJ;;;;;KAKC,EACD,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAC,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,EAAmB,EACnB,OAAoB,EACpB,KAAa;IAEb,EAAE,CAAC,GAAG,CACJ;;KAEC,EACD,KAAK,CACN,CAAC;IAEF,EAAE,CAAC,GAAG,CACJ;;;KAGC,EACD,EAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAC,CAClC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replication metadata, used for incremental view maintenance and catchup.
|
|
3
|
+
*
|
|
4
|
+
* These tables are created atomically in {@link setupReplicationTables}
|
|
5
|
+
* after the logical replication handoff when initial data synchronization has completed.
|
|
6
|
+
*/
|
|
7
|
+
import * as v from '../../../../../shared/src/valita.js';
|
|
8
|
+
import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
|
|
9
|
+
import { Database } from '../../../../../zqlite/src/db.js';
|
|
10
|
+
export declare const ZERO_VERSION_COLUMN_NAME = "_0_version";
|
|
11
|
+
declare const versionsSchema: v.ObjectType<{
|
|
12
|
+
stateVersion: v.Type<string>;
|
|
13
|
+
nextStateVersion: v.Type<string>;
|
|
14
|
+
}, undefined>;
|
|
15
|
+
export type ReplicationVersions = v.Infer<typeof versionsSchema>;
|
|
16
|
+
export declare function initReplicationState(db: Database, publications: string[], watermark: string): void;
|
|
17
|
+
export declare function getSubscriptionState(db: StatementRunner): {
|
|
18
|
+
publications: string[];
|
|
19
|
+
replicaVersion: string;
|
|
20
|
+
watermark: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function updateReplicationWatermark(db: StatementRunner, watermark: string): void;
|
|
23
|
+
export declare function getReplicationVersions(db: StatementRunner): ReplicationVersions;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=replication-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-state.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,wBAAwB,eAAe,CAAC;AA4CrD,QAAA,MAAM,cAAc;;;aAGlB,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,QAelB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe;;;;EAUvD;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,MAAM,QAelB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,eAAe,GAClB,mBAAmB,CAKrB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replication metadata, used for incremental view maintenance and catchup.
|
|
3
|
+
*
|
|
4
|
+
* These tables are created atomically in {@link setupReplicationTables}
|
|
5
|
+
* after the logical replication handoff when initial data synchronization has completed.
|
|
6
|
+
*/
|
|
7
|
+
import * as v from '../../../../../shared/src/valita.js';
|
|
8
|
+
import { StatementRunner } from '../../../../../zero-cache/src/db/statements.js';
|
|
9
|
+
import { Database } from '../../../../../zqlite/src/db.js';
|
|
10
|
+
export const ZERO_VERSION_COLUMN_NAME = '_0_version';
|
|
11
|
+
const CREATE_REPLICATION_STATE_SCHEMA =
|
|
12
|
+
// replicaVersion : A value identifying the version at which the initial sync happened, i.e.
|
|
13
|
+
// at which all rows were copied and initialized with `_0_version: "00"`. This
|
|
14
|
+
// value is used to distinguish data from other replicas (e.g. if a replica is
|
|
15
|
+
// reset or if there are ever multiple replicas). Data from replicas with
|
|
16
|
+
// different versions are incompatible, as their "00" version will correspond
|
|
17
|
+
// to different snapshots of the upstream database.
|
|
18
|
+
// publications : JSON stringified array of publication names
|
|
19
|
+
// lock : Auto-magic column for enforcing single-row semantics.
|
|
20
|
+
`
|
|
21
|
+
CREATE TABLE "_zero.ReplicationConfig" (
|
|
22
|
+
replicaVersion TEXT NOT NULL,
|
|
23
|
+
publications TEXT NOT NULL,
|
|
24
|
+
lock INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
|
|
25
|
+
);
|
|
26
|
+
` +
|
|
27
|
+
// watermark : Lexicographically sortable watermark denoting the point from which replication
|
|
28
|
+
// should continue. For a Postgres upstream, for example, this is the
|
|
29
|
+
// LexiVersion-encoded LSN. This is also used as the state version for rows
|
|
30
|
+
// modified in the **next** transaction.
|
|
31
|
+
// stateVersion : The value of the _0_version column for the newest rows in the database.
|
|
32
|
+
`
|
|
33
|
+
CREATE TABLE "_zero.ReplicationState" (
|
|
34
|
+
watermark TEXT NOT NULL,
|
|
35
|
+
stateVersion TEXT NOT NULL,
|
|
36
|
+
lock INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
|
|
37
|
+
);
|
|
38
|
+
`;
|
|
39
|
+
const stringArray = v.array(v.string());
|
|
40
|
+
const subscriptionStateSchema = v
|
|
41
|
+
.object({
|
|
42
|
+
replicaVersion: v.string(),
|
|
43
|
+
publications: v.string(),
|
|
44
|
+
watermark: v.string(),
|
|
45
|
+
})
|
|
46
|
+
.map(s => ({
|
|
47
|
+
...s,
|
|
48
|
+
publications: v.parse(JSON.parse(s.publications), stringArray),
|
|
49
|
+
}));
|
|
50
|
+
const versionsSchema = v.object({
|
|
51
|
+
stateVersion: v.string(),
|
|
52
|
+
nextStateVersion: v.string(),
|
|
53
|
+
});
|
|
54
|
+
export function initReplicationState(db, publications, watermark) {
|
|
55
|
+
db.exec(CREATE_REPLICATION_STATE_SCHEMA);
|
|
56
|
+
db.prepare(`
|
|
57
|
+
INSERT INTO "_zero.ReplicationConfig"
|
|
58
|
+
(replicaVersion, publications) VALUES (?, ?)
|
|
59
|
+
`).run(watermark, JSON.stringify(publications.sort()));
|
|
60
|
+
db.prepare(`
|
|
61
|
+
INSERT INTO "_zero.ReplicationState"
|
|
62
|
+
(watermark, stateVersion) VALUES (?,'00')
|
|
63
|
+
`).run(watermark);
|
|
64
|
+
}
|
|
65
|
+
export function getSubscriptionState(db) {
|
|
66
|
+
const result = db.get(`
|
|
67
|
+
SELECT c.replicaVersion, c.publications, s.watermark
|
|
68
|
+
FROM "_zero.ReplicationConfig" as c
|
|
69
|
+
JOIN "_zero.ReplicationState" as s
|
|
70
|
+
ON c.lock = s.lock
|
|
71
|
+
`);
|
|
72
|
+
return v.parse(result, subscriptionStateSchema);
|
|
73
|
+
}
|
|
74
|
+
export function updateReplicationWatermark(db, watermark) {
|
|
75
|
+
// The previous `watermark` needs to be set as the next `stateVersion`.
|
|
76
|
+
// Rather than explicitly looking that up with an additional statement, use an
|
|
77
|
+
// UPSERT for which the INSERT fails so that the value of `watermark`
|
|
78
|
+
// from the original row can be used to set the new `stateVersion`.
|
|
79
|
+
db.run(`
|
|
80
|
+
INSERT INTO "_zero.ReplicationState"
|
|
81
|
+
(lock, watermark, stateVersion) VALUES (1,'','')
|
|
82
|
+
ON CONFLICT (lock)
|
|
83
|
+
DO UPDATE SET watermark=?, stateVersion=watermark
|
|
84
|
+
`, watermark);
|
|
85
|
+
}
|
|
86
|
+
export function getReplicationVersions(db) {
|
|
87
|
+
const result = db.get(`SELECT stateVersion, watermark as nextStateVersion FROM "_zero.ReplicationState"`);
|
|
88
|
+
return v.parse(result, versionsSchema);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=replication-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-state.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAErD,MAAM,+BAA+B;AACnC,8FAA8F;AAC9F,iGAAiG;AACjG,iGAAiG;AACjG,4FAA4F;AAC5F,gGAAgG;AAChG,sEAAsE;AACtE,iEAAiE;AACjE,2EAA2E;AAC3E;;;;;;GAMC;IACD,oGAAoG;IACpG,wFAAwF;IACxF,8FAA8F;IAC9F,2DAA2D;IAC3D,6FAA6F;IAC7F;;;;;;GAMC,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAExC,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC;KACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,GAAG,CAAC;IACJ,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;CAC/D,CAAC,CAAC,CAAC;AAEN,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7B,CAAC,CAAC;AAIH,MAAM,UAAU,oBAAoB,CAClC,EAAY,EACZ,YAAsB,EACtB,SAAiB;IAEjB,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACzC,EAAE,CAAC,OAAO,CACR;;;KAGC,CACF,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,EAAE,CAAC,OAAO,CACR;;;KAGC,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAmB;IACtD,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CACnB;;;;;KAKC,CACF,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,EAAmB,EACnB,SAAiB;IAEjB,uEAAuE;IACvE,8EAA8E;IAC9E,qEAAqE;IACrE,mEAAmE;IACnE,EAAE,CAAC,GAAG,CACJ;;;;;KAKC,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,EAAmB;IAEnB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CACnB,kFAAkF,CACnF,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { Service } from './service.js';
|
|
3
|
+
/**
|
|
4
|
+
* Manages the creation and lifecycle of objects that implement
|
|
5
|
+
* {@link Service}.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ServiceRunner<S extends Service> {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(lc: LogContext, factory: (id: string) => S, isValid?: (existing: S) => boolean);
|
|
10
|
+
/**
|
|
11
|
+
* Creates and runs the Service with the given `id`, returning
|
|
12
|
+
* an existing one if it is still running a valid.
|
|
13
|
+
*/
|
|
14
|
+
getService(id: string): S;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Runs the specified services, exiting on SIGTERM, or logging an error and
|
|
18
|
+
* exiting the process if any of them fail.
|
|
19
|
+
*/
|
|
20
|
+
export declare function runOrExit(lc: LogContext, ...services: Service[]): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,OAAO;;gBAOxC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,EAC1B,OAAO,GAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAoB;IAOhD;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;CAqB1B;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,UAAU,EACd,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { LogContext } from '@rocicorp/logger';
|
|
2
|
+
/**
|
|
3
|
+
* Manages the creation and lifecycle of objects that implement
|
|
4
|
+
* {@link Service}.
|
|
5
|
+
*/
|
|
6
|
+
export class ServiceRunner {
|
|
7
|
+
#lc;
|
|
8
|
+
#instances = new Map();
|
|
9
|
+
#create;
|
|
10
|
+
#isValid;
|
|
11
|
+
constructor(lc, factory, isValid = () => true) {
|
|
12
|
+
this.#lc = lc;
|
|
13
|
+
this.#create = factory;
|
|
14
|
+
this.#isValid = isValid;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates and runs the Service with the given `id`, returning
|
|
18
|
+
* an existing one if it is still running a valid.
|
|
19
|
+
*/
|
|
20
|
+
getService(id) {
|
|
21
|
+
const existing = this.#instances.get(id);
|
|
22
|
+
if (existing && this.#isValid(existing)) {
|
|
23
|
+
return existing;
|
|
24
|
+
}
|
|
25
|
+
const service = this.#create(id);
|
|
26
|
+
this.#instances.set(id, service);
|
|
27
|
+
void service
|
|
28
|
+
.run()
|
|
29
|
+
.catch(e => {
|
|
30
|
+
this.#lc.error?.(`Error running ${service.constructor?.name} ${service.id}`, e);
|
|
31
|
+
this.#lc.info?.(e.toString());
|
|
32
|
+
})
|
|
33
|
+
.finally(() => {
|
|
34
|
+
this.#instances.delete(id);
|
|
35
|
+
});
|
|
36
|
+
return service;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Runs the specified services, exiting on SIGTERM, or logging an error and
|
|
41
|
+
* exiting the process if any of them fail.
|
|
42
|
+
*/
|
|
43
|
+
export async function runOrExit(lc, ...services) {
|
|
44
|
+
for (const signal of ['SIGINT', 'SIGQUIT', 'SIGTERM']) {
|
|
45
|
+
process.once(signal, () => {
|
|
46
|
+
for (const svc of services) {
|
|
47
|
+
lc.info?.(`exiting ${svc.constructor.name} (${svc.id}) for ${signal}`);
|
|
48
|
+
void svc.stop();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
// Exit if any of the services stop.
|
|
54
|
+
const svc = await Promise.race(services.map(svc => svc.run().then(() => svc)));
|
|
55
|
+
lc.info?.(`exiting because ${svc.constructor.name} (${svc.id}) stopped`);
|
|
56
|
+
process.exit(0);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
lc.error?.(`exiting on error`, e);
|
|
60
|
+
process.exit(-1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../zero-cache/src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C;;;GAGG;AACH,MAAM,OAAO,aAAa;IACf,GAAG,CAAa;IAChB,UAAU,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,OAAO,CAAoB;IAC3B,QAAQ,CAA2B;IAE5C,YACE,EAAc,EACd,OAA0B,EAC1B,UAAoC,GAAG,EAAE,CAAC,IAAI;QAE9C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,EAAU;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjC,KAAK,OAAO;aACT,GAAG,EAAE;aACL,KAAK,CAAC,CAAC,CAAC,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CACd,iBAAiB,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,EAC1D,CAAC,CACF,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAc,EACd,GAAG,QAAmB;IAEtB,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;gBACvE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAC/C,CAAC;QACF,EAAE,CAAC,IAAI,EAAE,CAAC,mBAAmB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,EAAE,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import { sleepWithAbort } from '../../../shared/src/sleep.js';
|
|
3
|
+
export type RetryConfig = {
|
|
4
|
+
initialRetryDelay?: number;
|
|
5
|
+
maxRetryDelay?: number;
|
|
6
|
+
};
|
|
7
|
+
export interface Cancelable {
|
|
8
|
+
cancel(): void;
|
|
9
|
+
}
|
|
10
|
+
export type UnregisterFn = () => void;
|
|
11
|
+
/**
|
|
12
|
+
* Facilitates lifecycle control with exponential backoff.
|
|
13
|
+
*/
|
|
14
|
+
export declare class RunningState {
|
|
15
|
+
#private;
|
|
16
|
+
constructor(serviceName: string, retryConfig?: RetryConfig, sleeper?: typeof sleepWithAbort);
|
|
17
|
+
/**
|
|
18
|
+
* Returns `true` until {@link stop()} has been called.
|
|
19
|
+
*
|
|
20
|
+
* This is usually called as part of the service's main loop
|
|
21
|
+
* conditional to determine if the next iteration should execute.
|
|
22
|
+
*/
|
|
23
|
+
shouldRun(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Registers a Cancelable object to be invoked when {@link stop()} is called.
|
|
26
|
+
* Returns a method to unregister the object.
|
|
27
|
+
*/
|
|
28
|
+
cancelOnStop(c: Cancelable): UnregisterFn;
|
|
29
|
+
/**
|
|
30
|
+
* Called to stop the service. After this is called, {@link shouldRun()}
|
|
31
|
+
* will return `false` and the {@link stopped()} Promise will be resolved.
|
|
32
|
+
*/
|
|
33
|
+
stop(lc: LogContext, err?: unknown): void;
|
|
34
|
+
/**
|
|
35
|
+
* Returns a Promise that resolves when {@link stop()} is called.
|
|
36
|
+
* This is used internally to cut off a {@link backoff()} delay, but
|
|
37
|
+
* can also be used explicitly in a `Promise.race(...)` call to stop
|
|
38
|
+
* stop waiting for work.
|
|
39
|
+
*/
|
|
40
|
+
stopped(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Call in response to an error or unexpected termination in the main
|
|
43
|
+
* loop of the service. The returned Promise will resolve after an
|
|
44
|
+
* exponential delay, or once {@link stop()} is called.
|
|
45
|
+
*
|
|
46
|
+
* If the supplied `err` is an `AbortError`, the service will shut down.
|
|
47
|
+
*/
|
|
48
|
+
backoff(lc: LogContext, err?: unknown): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* When using {@link backoff()}, this method should be called when the
|
|
51
|
+
* implementation receives a healthy signal (e.g. a successful
|
|
52
|
+
* response). This resets the delay used in {@link backoff()}.
|
|
53
|
+
*/
|
|
54
|
+
resetBackoff(): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=running-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"running-state.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/services/running-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAKnD,MAAM,MAAM,WAAW,GAAG;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC;;GAEG;AACH,qBAAa,YAAY;;gBAWrB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,wBAAiB;IAsB1B;;;;;OAKG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY;IAMzC;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;IAWzC;;;;;OAKG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB;;;;;;OAMG;IACG,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D;;;;OAIG;IACH,YAAY;CAGb"}
|