@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 @@
|
|
|
1
|
+
{"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAG1C,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/D,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;0BAA2C,CAAC;AAC5D,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;2BAAsB,CAAC;AACzC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAKf,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE7D,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAO9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,QAAA,MAAM,YAAY;;;aAGhB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAOlD;;GAEG;AACH,QAAA,MAAM,iBAAiB;IACrB;;;;;;;;;OASG;;;;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;;;;aAEH,CAAC;AACH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEzD,QAAA,MAAM,eAAe;;;;;;;;;;;;;aAOnB,CAAC;AACH,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AASrD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;aAQzB,CAAC;AACH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEjE,QAAA,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAgBrC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE3B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI9D,wBAAgB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAgBnD;AAED,qBAAa,UAAU;;gBAMT,MAAM,EAAE,cAAc;IASlC,IAAI,WAAW,WAEd;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,uBAET;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,eAAe,uBAElB;IAED,IAAI,cAAc,uBAEjB;IAED,IAAI,iBAAiB,uBAEpB;IAED,IAAI,UAAU,wBAEb;IAED,IAAI,SAAS,uBAEZ;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,cAEN;IAED,IAAI,SAAS,gCAEZ;IAED,IAAI,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAEhB;CACF;AAED,qBAAa,eAAe;;gBAEd,MAAM,EAAE,mBAAmB;IAMvC,IAAI,oBAAoB,8BAEvB;CACF;AAED,qBAAa,yBAAyB;;gBAExB,MAAM,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IAI/D,IAAI,QAAQ,WAEX;IAED,IAAI,GAAG,WAEN;CACF;AAED,qBAAa,SAAS;;gBAER,MAAM,EAAE,aAAa;IAIjC,IAAI,KAAK,+BAER;IAED,IAAI,iBAAiB,uBAEpB;IAED,IAAI,mBAAmB,uBAEtB;CACF;AAID,qBAAa,WAAW;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE7B,MAAM,EAAE,eAAe,GAAG,SAAS;CAKhD"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These types represent the _compiled_ config whereas `define-config` types represent the _source_ config.
|
|
3
|
+
*/
|
|
4
|
+
import fs from 'node:fs/promises';
|
|
5
|
+
import { must } from '../../../shared/src/must.js';
|
|
6
|
+
import * as v from '../../../shared/src/valita.js';
|
|
7
|
+
import { astSchema } from '../../../zero-protocol/src/mod.js';
|
|
8
|
+
const ruleSchema = v.tuple([v.literal('allow'), astSchema]);
|
|
9
|
+
const policySchema = v.array(ruleSchema);
|
|
10
|
+
const assetSchema = v.object({
|
|
11
|
+
select: policySchema.optional(),
|
|
12
|
+
insert: policySchema.optional(),
|
|
13
|
+
update: policySchema.optional(),
|
|
14
|
+
delete: policySchema.optional(),
|
|
15
|
+
});
|
|
16
|
+
const authorizationConfigSchema = v.record(v.object({
|
|
17
|
+
table: assetSchema.optional(),
|
|
18
|
+
column: v.record(assetSchema).optional(),
|
|
19
|
+
row: assetSchema.optional(),
|
|
20
|
+
cell: v.record(assetSchema).optional(),
|
|
21
|
+
}));
|
|
22
|
+
const envRefSchema = v.object({
|
|
23
|
+
tag: v.literal('env'),
|
|
24
|
+
name: v.string(),
|
|
25
|
+
});
|
|
26
|
+
const stringLiteral = v.string();
|
|
27
|
+
const numberLiteral = v.number();
|
|
28
|
+
const booleanLiteral = v.boolean();
|
|
29
|
+
const configStringValueSchema = v.union(envRefSchema, stringLiteral);
|
|
30
|
+
/**
|
|
31
|
+
* Configures the view of the upstream database replicated to this zero-cache.
|
|
32
|
+
*/
|
|
33
|
+
const shardConfigSchema = v.object({
|
|
34
|
+
/**
|
|
35
|
+
* Unique identifier for the zero-cache shard. This is used to partition
|
|
36
|
+
* shardable tables such as `zero.clients`, as well as reserve a name for
|
|
37
|
+
* the replication slot.
|
|
38
|
+
*
|
|
39
|
+
* The shard `id` value is written to the `shardID` column when updating
|
|
40
|
+
* the `lastMutationID` for clients in the `zero.clients` table.
|
|
41
|
+
*
|
|
42
|
+
* Defaults to "0".
|
|
43
|
+
*/
|
|
44
|
+
id: configStringValueSchema,
|
|
45
|
+
/**
|
|
46
|
+
* Optional (comma-separated) list of of Postgres `PUBLICATION`s that the
|
|
47
|
+
* shard subscribes to. All publication names must begin with the prefix
|
|
48
|
+
* `"zero_"`, and all tables must be in the `"public"` Postgres schema.
|
|
49
|
+
*
|
|
50
|
+
* If unspecified, zero will create and use a `"zero_public"` publication that
|
|
51
|
+
* publishes all tables in the `"public"` schema.
|
|
52
|
+
*
|
|
53
|
+
* ```sql
|
|
54
|
+
* CREATE PUBLICATION zero_public FOR TABLES IN SCHEMA public;
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* Note that once a shard has begun syncing data, this list of publications
|
|
58
|
+
* cannot be changed, and zero-cache will refuse to start if a specified
|
|
59
|
+
* value differs from what it originally synced.
|
|
60
|
+
*
|
|
61
|
+
* To use a different set of publications, a new shard should be created.
|
|
62
|
+
*/
|
|
63
|
+
publications: configStringValueSchema,
|
|
64
|
+
});
|
|
65
|
+
const logConfigSchema = v.object({
|
|
66
|
+
level: v.union(envRefSchema, v.union(v.literal('debug'), v.literal('info'), v.literal('error'))),
|
|
67
|
+
datadogLogsApiKey: configStringValueSchema.optional(),
|
|
68
|
+
datadogServiceLabel: configStringValueSchema.optional(),
|
|
69
|
+
});
|
|
70
|
+
const configValueSchema = v.union(configStringValueSchema, booleanLiteral, numberLiteral);
|
|
71
|
+
const rateLimitConfigSchema = v.object({
|
|
72
|
+
// Limits to `max` transactions per `windowMs` milliseconds.
|
|
73
|
+
// This uses a sliding window algorithm to track number of transactions in the current window.
|
|
74
|
+
mutationTransactions: v.object({
|
|
75
|
+
algorithm: v.literal('sliding-window'),
|
|
76
|
+
windowMs: v.union(envRefSchema, numberLiteral),
|
|
77
|
+
max: v.union(envRefSchema, numberLiteral),
|
|
78
|
+
}),
|
|
79
|
+
});
|
|
80
|
+
const zeroConfigSchemaSansAuthorization = v.object({
|
|
81
|
+
upstreamUri: configStringValueSchema,
|
|
82
|
+
cvrDbUri: configStringValueSchema,
|
|
83
|
+
changeDbUri: configStringValueSchema,
|
|
84
|
+
taskId: configStringValueSchema.optional(),
|
|
85
|
+
replicaDbFile: configStringValueSchema,
|
|
86
|
+
storageDbTmpDir: configStringValueSchema.optional(),
|
|
87
|
+
numSyncWorkers: v.union(envRefSchema, numberLiteral).optional(),
|
|
88
|
+
changeStreamerUri: configStringValueSchema.optional(),
|
|
89
|
+
litestream: v.union(envRefSchema, booleanLiteral).optional(),
|
|
90
|
+
jwtSecret: configStringValueSchema.optional(),
|
|
91
|
+
log: logConfigSchema,
|
|
92
|
+
shard: shardConfigSchema.optional(),
|
|
93
|
+
rateLimit: rateLimitConfigSchema.optional(),
|
|
94
|
+
});
|
|
95
|
+
export const zeroConfigSchema = zeroConfigSchemaSansAuthorization.extend({
|
|
96
|
+
authorization: authorizationConfigSchema.optional(),
|
|
97
|
+
});
|
|
98
|
+
let loadedConfig;
|
|
99
|
+
export function getZeroConfig() {
|
|
100
|
+
if (loadedConfig) {
|
|
101
|
+
return loadedConfig;
|
|
102
|
+
}
|
|
103
|
+
const zeroConfigPath = process.env['ZERO_CONFIG_PATH'];
|
|
104
|
+
if (!zeroConfigPath) {
|
|
105
|
+
// TODO: Use a specific error type and report it to the user in a nicer way.
|
|
106
|
+
return Promise.reject(new Error('ZERO_CONFIG_PATH is not set'));
|
|
107
|
+
}
|
|
108
|
+
loadedConfig = fs
|
|
109
|
+
.readFile(zeroConfigPath, 'utf-8')
|
|
110
|
+
.then(rawContent => new ZeroConfig(v.parse(JSON.parse(rawContent), zeroConfigSchema)));
|
|
111
|
+
return loadedConfig;
|
|
112
|
+
}
|
|
113
|
+
export class ZeroConfig {
|
|
114
|
+
#config;
|
|
115
|
+
#log;
|
|
116
|
+
#shard;
|
|
117
|
+
#rateLimit;
|
|
118
|
+
constructor(config) {
|
|
119
|
+
this.#config = config;
|
|
120
|
+
this.#log = new LogConfig(config.log);
|
|
121
|
+
this.#shard = new ShardConfig(config.shard);
|
|
122
|
+
if (config.rateLimit) {
|
|
123
|
+
this.#rateLimit = new RateLimitConfig(config.rateLimit);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
get upstreamUri() {
|
|
127
|
+
return mustResolveValue(this.#config.upstreamUri);
|
|
128
|
+
}
|
|
129
|
+
get cvrDbUri() {
|
|
130
|
+
return mustResolveValue(this.#config.cvrDbUri);
|
|
131
|
+
}
|
|
132
|
+
get changeDbUri() {
|
|
133
|
+
return mustResolveValue(this.#config.changeDbUri);
|
|
134
|
+
}
|
|
135
|
+
get taskId() {
|
|
136
|
+
return resolveValue(this.#config.taskId);
|
|
137
|
+
}
|
|
138
|
+
get replicaDbFile() {
|
|
139
|
+
return mustResolveValue(this.#config.replicaDbFile);
|
|
140
|
+
}
|
|
141
|
+
get storageDbTmpDir() {
|
|
142
|
+
return resolveValue(this.#config.storageDbTmpDir);
|
|
143
|
+
}
|
|
144
|
+
get numSyncWorkers() {
|
|
145
|
+
return resolveValue(this.#config.numSyncWorkers);
|
|
146
|
+
}
|
|
147
|
+
get changeStreamerUri() {
|
|
148
|
+
return resolveValue(this.#config.changeStreamerUri);
|
|
149
|
+
}
|
|
150
|
+
get litestream() {
|
|
151
|
+
return resolveValue(this.#config.litestream);
|
|
152
|
+
}
|
|
153
|
+
get jwtSecret() {
|
|
154
|
+
return resolveValue(this.#config.jwtSecret);
|
|
155
|
+
}
|
|
156
|
+
get shard() {
|
|
157
|
+
return this.#shard;
|
|
158
|
+
}
|
|
159
|
+
get log() {
|
|
160
|
+
return this.#log;
|
|
161
|
+
}
|
|
162
|
+
get rateLimit() {
|
|
163
|
+
return this.#rateLimit;
|
|
164
|
+
}
|
|
165
|
+
get authorization() {
|
|
166
|
+
return this.#config.authorization;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
export class RateLimitConfig {
|
|
170
|
+
#mutationTransactions;
|
|
171
|
+
constructor(config) {
|
|
172
|
+
this.#mutationTransactions = new MutationTransactionLimits(config.mutationTransactions);
|
|
173
|
+
}
|
|
174
|
+
get mutationTransactions() {
|
|
175
|
+
return this.#mutationTransactions;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
export class MutationTransactionLimits {
|
|
179
|
+
#config;
|
|
180
|
+
constructor(config) {
|
|
181
|
+
this.#config = config;
|
|
182
|
+
}
|
|
183
|
+
get windowMs() {
|
|
184
|
+
return mustResolveValue(this.#config.windowMs);
|
|
185
|
+
}
|
|
186
|
+
get max() {
|
|
187
|
+
return mustResolveValue(this.#config.max);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
export class LogConfig {
|
|
191
|
+
#config;
|
|
192
|
+
constructor(config) {
|
|
193
|
+
this.#config = config;
|
|
194
|
+
}
|
|
195
|
+
get level() {
|
|
196
|
+
return mustResolveValue(this.#config.level);
|
|
197
|
+
}
|
|
198
|
+
get datadogLogsApiKey() {
|
|
199
|
+
return resolveValue(this.#config.datadogLogsApiKey);
|
|
200
|
+
}
|
|
201
|
+
get datadogServiceLabel() {
|
|
202
|
+
return resolveValue(this.#config.datadogServiceLabel);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const DEFAULT_SHARD_ID = '0';
|
|
206
|
+
export class ShardConfig {
|
|
207
|
+
id;
|
|
208
|
+
publications;
|
|
209
|
+
constructor(config) {
|
|
210
|
+
this.id = resolveValue(config?.id) ?? DEFAULT_SHARD_ID;
|
|
211
|
+
const p = resolveValue(config?.publications);
|
|
212
|
+
this.publications = p ? p.split(',') : [];
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function resolveValue(value) {
|
|
216
|
+
if (value === undefined) {
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
if (typeof value === 'object' && value.tag === 'env') {
|
|
220
|
+
return process.env[value.name];
|
|
221
|
+
}
|
|
222
|
+
return value;
|
|
223
|
+
}
|
|
224
|
+
function mustResolveValue(value) {
|
|
225
|
+
return must(resolveValue(value));
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=zero-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-config.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Database } from '../../../zqlite/src/db.js';
|
|
2
|
+
import type { IndexSpec, TableSpec } from '../types/specs.js';
|
|
3
|
+
export declare function listTables(db: Database): TableSpec[];
|
|
4
|
+
export declare function listIndices(db: Database): IndexSpec[];
|
|
5
|
+
//# sourceMappingURL=lite-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lite-tables.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/lite-tables.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAW5D,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,EAAE,CA4DpD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,EAAE,CAsCrD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { assert } from '../../../shared/src/asserts.js';
|
|
2
|
+
export function listTables(db) {
|
|
3
|
+
const columns = db
|
|
4
|
+
.prepare(`
|
|
5
|
+
SELECT
|
|
6
|
+
m.name as "table",
|
|
7
|
+
p.name as name,
|
|
8
|
+
p.type as type,
|
|
9
|
+
p."notnull" as "notNull",
|
|
10
|
+
p.dflt_value as "dflt",
|
|
11
|
+
p.pk as keyPos
|
|
12
|
+
FROM sqlite_master as m
|
|
13
|
+
LEFT JOIN pragma_table_info(m.name) as p
|
|
14
|
+
WHERE m.type = 'table'
|
|
15
|
+
`)
|
|
16
|
+
.all();
|
|
17
|
+
const tables = [];
|
|
18
|
+
let table;
|
|
19
|
+
columns.forEach(col => {
|
|
20
|
+
if (col.table !== table?.name) {
|
|
21
|
+
// New table
|
|
22
|
+
table = {
|
|
23
|
+
schema: '',
|
|
24
|
+
name: col.table,
|
|
25
|
+
columns: {},
|
|
26
|
+
primaryKey: [],
|
|
27
|
+
};
|
|
28
|
+
tables.push(table);
|
|
29
|
+
}
|
|
30
|
+
table.columns[col.name] = {
|
|
31
|
+
pos: Object.keys(table.columns).length + 1,
|
|
32
|
+
dataType: col.type,
|
|
33
|
+
characterMaximumLength: null,
|
|
34
|
+
notNull: col.notNull !== 0,
|
|
35
|
+
dflt: col.dflt,
|
|
36
|
+
};
|
|
37
|
+
if (col.keyPos) {
|
|
38
|
+
while (table.primaryKey.length < col.keyPos) {
|
|
39
|
+
table.primaryKey.push('');
|
|
40
|
+
}
|
|
41
|
+
table.primaryKey[col.keyPos - 1] = col.name;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
// Sanity check that the primary keys are filled in.
|
|
45
|
+
Object.values(tables).forEach(table => {
|
|
46
|
+
assert(table.primaryKey.indexOf('') < 0, `Invalid primary key for ${JSON.stringify(table)}`);
|
|
47
|
+
});
|
|
48
|
+
return tables;
|
|
49
|
+
}
|
|
50
|
+
export function listIndices(db) {
|
|
51
|
+
const indices = db
|
|
52
|
+
.prepare(`SELECT name as indexName, tbl_name as tableName FROM sqlite_master WHERE type = 'index' AND tbl_name NOT LIKE '_zero.%'`)
|
|
53
|
+
.all();
|
|
54
|
+
const ret = [];
|
|
55
|
+
for (const indexDef of indices) {
|
|
56
|
+
const uniqueAndOrigin = db
|
|
57
|
+
.prepare(`SELECT "unique", origin FROM pragma_index_list(?) WHERE name = ?`)
|
|
58
|
+
.get(indexDef.tableName, indexDef.indexName);
|
|
59
|
+
if (uniqueAndOrigin.origin === 'pk') {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const columns = db
|
|
63
|
+
.prepare(`SELECT name FROM pragma_index_info(?) ORDER BY seqno ASC`)
|
|
64
|
+
.all(indexDef.indexName);
|
|
65
|
+
ret.push({
|
|
66
|
+
schemaName: '',
|
|
67
|
+
tableName: indexDef.tableName,
|
|
68
|
+
name: indexDef.indexName,
|
|
69
|
+
columns: columns.map(col => col.name),
|
|
70
|
+
unique: uniqueAndOrigin.unique !== 0,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return ret;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=lite-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lite-tables.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/lite-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import * as v from '../../../shared/src/valita.js';
|
|
3
|
+
import type { Database as Db } from '../../../zqlite/src/db.js';
|
|
4
|
+
/**
|
|
5
|
+
* A PreMigrationFn executes logic outside of a database transaction, and is
|
|
6
|
+
* suitable for potentially long running polling operations.
|
|
7
|
+
*/
|
|
8
|
+
type PreMigrationFn = (log: LogContext, db: Db) => Promise<void> | void;
|
|
9
|
+
type MigrationFn = (log: LogContext, tx: Db) => Promise<void> | void;
|
|
10
|
+
/**
|
|
11
|
+
* Encapsulates the logic for upgrading to a new schema. After the
|
|
12
|
+
* Migration code successfully completes, {@link runSchemaMigrations}
|
|
13
|
+
* will update the schema version and commit the transaction.
|
|
14
|
+
*/
|
|
15
|
+
export type Migration = {
|
|
16
|
+
pre?: PreMigrationFn;
|
|
17
|
+
run: MigrationFn;
|
|
18
|
+
} | {
|
|
19
|
+
minSafeRollbackVersion: number;
|
|
20
|
+
};
|
|
21
|
+
/** Mapping from schema version to their respective migrations. */
|
|
22
|
+
export type VersionMigrationMap = {
|
|
23
|
+
[destinationVersion: number]: Migration;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Ensures that the schema is compatible with the current code, updating and
|
|
27
|
+
* migrating the schema if necessary.
|
|
28
|
+
*/
|
|
29
|
+
export declare function runSchemaMigrations(log: LogContext, debugName: string, dbPath: string, versionMigrationMap: VersionMigrationMap): Promise<void>;
|
|
30
|
+
export declare const schemaVersions: v.ObjectType<{
|
|
31
|
+
version: v.Type<number>;
|
|
32
|
+
maxVersion: v.Type<number>;
|
|
33
|
+
minSafeRollbackVersion: v.Type<number>;
|
|
34
|
+
}, undefined>;
|
|
35
|
+
export type SchemaVersions = v.Infer<typeof schemaVersions>;
|
|
36
|
+
export declare function getSchemaVersions(db: Db): SchemaVersions;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=migration-lite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-lite.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/migration-lite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC1C,OAAO,KAAK,EAAC,QAAQ,IAAI,EAAE,EAAC,MAAM,kBAAkB,CAAC;AAGrD;;;GAGG;AACH,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAExE,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB;IAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAC,GAExC;IAAC,sBAAsB,EAAE,MAAM,CAAA;CAAC,CAAC;AAErC,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,mBAAmB,GACvC,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAaD,eAAO,MAAM,cAAc;;;;aAIzB,CAAC;AAGH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAG5D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,CAmBxD"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { assert } from '../../../shared/src/asserts.js';
|
|
2
|
+
import { randInt } from '../../../shared/src/rand.js';
|
|
3
|
+
import * as v from '../../../shared/src/valita.js';
|
|
4
|
+
import { Database } from '../../../zqlite/src/db.js';
|
|
5
|
+
/**
|
|
6
|
+
* Ensures that the schema is compatible with the current code, updating and
|
|
7
|
+
* migrating the schema if necessary.
|
|
8
|
+
*/
|
|
9
|
+
export async function runSchemaMigrations(log, debugName, dbPath, versionMigrationMap) {
|
|
10
|
+
log = log.withContext('initSchema', randInt(0, Number.MAX_SAFE_INTEGER).toString(36));
|
|
11
|
+
const db = new Database(log, dbPath);
|
|
12
|
+
db.pragma('foreign_keys = OFF');
|
|
13
|
+
try {
|
|
14
|
+
const versionMigrations = sorted(versionMigrationMap);
|
|
15
|
+
if (versionMigrations.length === 0) {
|
|
16
|
+
log.info?.(`No versions/migrations to manage.`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const codeSchemaVersion = versionMigrations[versionMigrations.length - 1][0];
|
|
20
|
+
log.info?.(`Checking schema for compatibility with ${debugName} at schema v${codeSchemaVersion}`);
|
|
21
|
+
let meta = await runTransaction(log, db, tx => {
|
|
22
|
+
const meta = getSchemaVersions(tx);
|
|
23
|
+
if (codeSchemaVersion < meta.minSafeRollbackVersion) {
|
|
24
|
+
throw new Error(`Cannot run ${debugName} at schema v${codeSchemaVersion} because rollback limit is v${meta.minSafeRollbackVersion}`);
|
|
25
|
+
}
|
|
26
|
+
if (meta.version > codeSchemaVersion) {
|
|
27
|
+
log.info?.(`Schema is at v${meta.version}. Resetting to v${codeSchemaVersion}`);
|
|
28
|
+
return setSchemaVersion(tx, meta, codeSchemaVersion);
|
|
29
|
+
}
|
|
30
|
+
return meta;
|
|
31
|
+
});
|
|
32
|
+
if (meta.version < codeSchemaVersion) {
|
|
33
|
+
for (const [dest, migration] of versionMigrations) {
|
|
34
|
+
if (meta.version < dest) {
|
|
35
|
+
log.info?.(`Migrating schema from v${meta.version} to v${dest}`);
|
|
36
|
+
void log.flush(); // Flush logs before each migration to help debug crash-y migrations.
|
|
37
|
+
db.pragma('synchronous = OFF'); // For schema migrations we'll wait for the disk flush after the migration.
|
|
38
|
+
// Run the optional PreMigration step before starting the transaction.
|
|
39
|
+
if ('pre' in migration) {
|
|
40
|
+
await migration.pre(log, db);
|
|
41
|
+
}
|
|
42
|
+
meta = await runTransaction(log, db, async (tx) => {
|
|
43
|
+
// Fetch meta from within the transaction to make the migration atomic.
|
|
44
|
+
let meta = getSchemaVersions(tx);
|
|
45
|
+
if (meta.version < dest) {
|
|
46
|
+
meta = await migrateSchemaVersion(log, tx, meta, dest, migration);
|
|
47
|
+
assert(meta.version === dest);
|
|
48
|
+
}
|
|
49
|
+
return meta;
|
|
50
|
+
});
|
|
51
|
+
db.pragma('synchronous = NORMAL');
|
|
52
|
+
db.exec('VACUUM');
|
|
53
|
+
log.info?.('VACUUM completed');
|
|
54
|
+
db.exec('ANALYZE main');
|
|
55
|
+
log.info?.('ANALYZE completed');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
assert(meta.version === codeSchemaVersion);
|
|
60
|
+
log.info?.(`Running ${debugName} at schema v${codeSchemaVersion}`);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
log.error?.('Error in ensureSchemaMigrated', e);
|
|
64
|
+
throw e;
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
db.close();
|
|
68
|
+
void log.flush(); // Flush the logs but do not block server progress on it.
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function sorted(versionMigrationMap) {
|
|
72
|
+
const versionMigrations = [];
|
|
73
|
+
for (const [v, m] of Object.entries(versionMigrationMap)) {
|
|
74
|
+
versionMigrations.push([Number(v), m]);
|
|
75
|
+
}
|
|
76
|
+
return versionMigrations.sort(([a], [b]) => a - b);
|
|
77
|
+
}
|
|
78
|
+
// Exposed for tests.
|
|
79
|
+
export const schemaVersions = v.object({
|
|
80
|
+
version: v.number(),
|
|
81
|
+
maxVersion: v.number(),
|
|
82
|
+
minSafeRollbackVersion: v.number(),
|
|
83
|
+
});
|
|
84
|
+
// Exposed for tests
|
|
85
|
+
export function getSchemaVersions(db) {
|
|
86
|
+
// Note: The `lock` column transparently ensures that at most one row exists.
|
|
87
|
+
db.prepare(`
|
|
88
|
+
CREATE TABLE IF NOT EXISTS "_zero.SchemaVersions" (
|
|
89
|
+
version INTEGER NOT NULL,
|
|
90
|
+
maxVersion INTEGER NOT NULL,
|
|
91
|
+
minSafeRollbackVersion INTEGER NOT NULL,
|
|
92
|
+
|
|
93
|
+
lock INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
|
|
94
|
+
);
|
|
95
|
+
`).run();
|
|
96
|
+
const result = db
|
|
97
|
+
.prepare('SELECT version, maxVersion, minSafeRollbackVersion FROM "_zero.SchemaVersions"')
|
|
98
|
+
.get();
|
|
99
|
+
return result ?? { version: 0, maxVersion: 0, minSafeRollbackVersion: 0 };
|
|
100
|
+
}
|
|
101
|
+
function setSchemaVersion(db, prev, newVersion) {
|
|
102
|
+
assert(newVersion > 0);
|
|
103
|
+
const meta = {
|
|
104
|
+
...prev,
|
|
105
|
+
version: newVersion,
|
|
106
|
+
maxVersion: Math.max(newVersion, prev.maxVersion),
|
|
107
|
+
};
|
|
108
|
+
db.prepare(`
|
|
109
|
+
INSERT INTO "_zero.SchemaVersions" (version, maxVersion, minSafeRollbackVersion, lock)
|
|
110
|
+
VALUES (@version, @maxVersion, @minSafeRollbackVersion, 1)
|
|
111
|
+
ON CONFLICT (lock) DO UPDATE
|
|
112
|
+
SET version=EXCLUDED.version,
|
|
113
|
+
maxVersion=EXCLUDED.maxVersion,
|
|
114
|
+
minSafeRollbackVersion=EXCLUDED.minSafeRollbackVersion
|
|
115
|
+
`).run(meta);
|
|
116
|
+
return meta;
|
|
117
|
+
}
|
|
118
|
+
async function migrateSchemaVersion(log, tx, meta, destinationVersion, migration) {
|
|
119
|
+
if ('run' in migration) {
|
|
120
|
+
await migration.run(log, tx);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
meta = ensureRollbackLimit(migration.minSafeRollbackVersion, log, meta);
|
|
124
|
+
}
|
|
125
|
+
return setSchemaVersion(tx, meta, destinationVersion);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Bumps the rollback limit [[toAtLeast]] the specified version.
|
|
129
|
+
* Leaves the rollback limit unchanged if it is equal or greater.
|
|
130
|
+
*/
|
|
131
|
+
function ensureRollbackLimit(toAtLeast, log, meta) {
|
|
132
|
+
// Sanity check to maintain the invariant that running code is never
|
|
133
|
+
// earlier than the rollback limit.
|
|
134
|
+
assert(toAtLeast <= meta.version + 1);
|
|
135
|
+
if (meta.minSafeRollbackVersion >= toAtLeast) {
|
|
136
|
+
// The rollback limit must never move backwards.
|
|
137
|
+
log.debug?.(`rollback limit is already at ${meta.minSafeRollbackVersion}, don't need to bump to ${toAtLeast}`);
|
|
138
|
+
return meta;
|
|
139
|
+
}
|
|
140
|
+
log.info?.(`bumping rollback limit from ${meta.minSafeRollbackVersion} to ${toAtLeast}`);
|
|
141
|
+
return {
|
|
142
|
+
...meta,
|
|
143
|
+
minSafeRollbackVersion: toAtLeast,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// Note: We use a custom transaction wrapper (instead of db.begin(...)) in order
|
|
147
|
+
// to support async operations within the transaction.
|
|
148
|
+
async function runTransaction(log, db, tx) {
|
|
149
|
+
db.prepare('BEGIN EXCLUSIVE').run();
|
|
150
|
+
try {
|
|
151
|
+
const result = await tx(db);
|
|
152
|
+
db.prepare('COMMIT').run();
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
db.prepare('ROLLBACK').run();
|
|
157
|
+
log.error?.('Aborted transaction due to error', e);
|
|
158
|
+
throw e;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=migration-lite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-lite.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/migration-lite.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAyB1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAe,EACf,SAAiB,EACjB,MAAc,EACd,mBAAwC;IAExC,GAAG,GAAG,GAAG,CAAC,WAAW,CACnB,YAAY,EACZ,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CACjD,CAAC;IACF,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACtD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,EAAE,CAAC,mCAAmC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,MAAM,iBAAiB,GACrB,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,GAAG,CAAC,IAAI,EAAE,CACR,0CAA0C,SAAS,eAAe,iBAAiB,EAAE,CACtF,CAAC;QAEF,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;YAC5C,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,eAAe,iBAAiB,+BAA+B,IAAI,CAAC,sBAAsB,EAAE,CACpH,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBACrC,GAAG,CAAC,IAAI,EAAE,CACR,iBAAiB,IAAI,CAAC,OAAO,mBAAmB,iBAAiB,EAAE,CACpE,CAAC;gBACF,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBAClD,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;oBACxB,GAAG,CAAC,IAAI,EAAE,CAAC,0BAA0B,IAAI,CAAC,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;oBACjE,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,qEAAqE;oBAEvF,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,2EAA2E;oBAE3G,sEAAsE;oBACtE,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;wBACvB,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC/B,CAAC;oBAED,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;wBAC9C,uEAAuE;wBACvE,IAAI,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;wBACjC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;4BACxB,IAAI,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;4BAClE,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;wBAChC,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;oBAClC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClB,GAAG,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC;oBAC/B,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACxB,GAAG,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC;QAC3C,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,SAAS,eAAe,iBAAiB,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,EAAE,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,yDAAyD;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CACb,mBAAwC;IAExC,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzD,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE;CACnC,CAAC,CAAC;AAKH,oBAAoB;AACpB,MAAM,UAAU,iBAAiB,CAAC,EAAM;IACtC,6EAA6E;IAC7E,EAAE,CAAC,OAAO,CACR;;;;;;;;GAQD,CACA,CAAC,GAAG,EAAE,CAAC;IACR,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN,gFAAgF,CACjF;SACA,GAAG,EAAoB,CAAC;IAC3B,OAAO,MAAM,IAAI,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CACvB,EAAM,EACN,IAAoB,EACpB,UAAkB;IAElB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG;QACX,GAAG,IAAI;QACP,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;KAClD,CAAC;IAEF,EAAE,CAAC,OAAO,CACR;;;;;;;GAOD,CACA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEZ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAe,EACf,EAAM,EACN,IAAoB,EACpB,kBAA0B,EAC1B,SAAoB;IAEpB,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACvB,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,sBAAsB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,GAAe,EACf,IAAoB;IAEpB,oEAAoE;IACpE,mCAAmC;IACnC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS,EAAE,CAAC;QAC7C,gDAAgD;QAChD,GAAG,CAAC,KAAK,EAAE,CACT,gCAAgC,IAAI,CAAC,sBAAsB,2BAA2B,SAAS,EAAE,CAClG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,GAAG,CAAC,IAAI,EAAE,CACR,+BAA+B,IAAI,CAAC,sBAAsB,OAAO,SAAS,EAAE,CAC7E,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,sBAAsB,EAAE,SAAS;KAClC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,sDAAsD;AACtD,KAAK,UAAU,cAAc,CAC3B,GAAe,EACf,EAAM,EACN,EAA8B;IAE9B,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,EAAE,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type postgres from 'postgres';
|
|
3
|
+
import * as v from '../../../shared/src/valita.js';
|
|
4
|
+
/**
|
|
5
|
+
* A PreMigrationFn executes logic outside of a database transaction, and is
|
|
6
|
+
* suitable for potentially long running polling operations.
|
|
7
|
+
*/
|
|
8
|
+
type PreMigrationFn = (log: LogContext, db: postgres.Sql) => Promise<void>;
|
|
9
|
+
type MigrationFn = (log: LogContext, tx: postgres.TransactionSql) => Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Encapsulates the logic for upgrading to a new schema. After the
|
|
12
|
+
* Migration code successfully completes, {@link runSchemaMigrations}
|
|
13
|
+
* will update the schema version and commit the transaction.
|
|
14
|
+
*/
|
|
15
|
+
export type Migration = {
|
|
16
|
+
pre?: PreMigrationFn;
|
|
17
|
+
run: MigrationFn;
|
|
18
|
+
} | {
|
|
19
|
+
minSafeRollbackVersion: number;
|
|
20
|
+
};
|
|
21
|
+
/** Mapping from schema version to their respective migrations. */
|
|
22
|
+
export type VersionMigrationMap = {
|
|
23
|
+
[destinationVersion: number]: Migration;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Ensures that the schema is compatible with the current code, updating and
|
|
27
|
+
* migrating the schema if necessary.
|
|
28
|
+
*/
|
|
29
|
+
export declare function runSchemaMigrations(log: LogContext, debugName: string, schemaName: string, db: postgres.Sql, versionMigrationMap: VersionMigrationMap): Promise<void>;
|
|
30
|
+
export declare const schemaVersions: v.ObjectType<{
|
|
31
|
+
version: v.Type<number>;
|
|
32
|
+
maxVersion: v.Type<number>;
|
|
33
|
+
minSafeRollbackVersion: v.Type<number>;
|
|
34
|
+
}, undefined>;
|
|
35
|
+
export type SchemaVersions = v.Infer<typeof schemaVersions>;
|
|
36
|
+
export declare function getSchemaVersions(sql: postgres.Sql, schemaName: string): Promise<SchemaVersions>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/migration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C;;;GAGG;AACH,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E,KAAK,WAAW,GAAG,CACjB,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,QAAQ,CAAC,cAAc,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB;IAAC,GAAG,CAAC,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAC,GAExC;IAAC,sBAAsB,EAAE,MAAM,CAAA;CAAC,CAAC;AAErC,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,QAAQ,CAAC,GAAG,EAChB,mBAAmB,EAAE,mBAAmB,GACvC,OAAO,CAAC,IAAI,CAAC,CAyEf;AAaD,eAAO,MAAM,cAAc;;;;aAIzB,CAAC;AAGH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAG5D,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAsBzB"}
|