@rocicorp/zero 0.2.2024101101 → 0.3.2024102300
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/react.js +92 -39
- package/out/react.js.map +2 -2
- package/out/replicache/src/async-iterable-to-array.js +8 -0
- package/out/replicache/src/async-iterable-to-array.js.map +1 -0
- package/out/replicache/src/bg-interval.js +38 -0
- package/out/replicache/src/bg-interval.js.map +1 -0
- package/out/replicache/src/binary-search.js +31 -0
- package/out/replicache/src/binary-search.js.map +1 -0
- package/out/replicache/src/broadcast-channel.js +29 -0
- package/out/replicache/src/broadcast-channel.js.map +1 -0
- package/out/replicache/src/btree/diff.js +6 -0
- package/out/replicache/src/btree/diff.js.map +1 -0
- package/out/replicache/src/btree/node.js +392 -0
- package/out/replicache/src/btree/node.js.map +1 -0
- package/out/replicache/src/btree/read.js +227 -0
- package/out/replicache/src/btree/read.js.map +1 -0
- package/out/replicache/src/btree/splice.js +79 -0
- package/out/replicache/src/btree/splice.js.map +1 -0
- package/out/replicache/src/btree/write.js +154 -0
- package/out/replicache/src/btree/write.js.map +1 -0
- package/out/replicache/src/call-default-fetch.js +37 -0
- package/out/replicache/src/call-default-fetch.js.map +1 -0
- package/out/replicache/src/config.js +13 -0
- package/out/replicache/src/config.js.map +1 -0
- package/out/replicache/src/connection-loop-delegates.js +30 -0
- package/out/replicache/src/connection-loop-delegates.js.map +1 -0
- package/out/replicache/src/connection-loop.js +268 -0
- package/out/replicache/src/connection-loop.js.map +1 -0
- package/out/replicache/src/cookies.js +41 -0
- package/out/replicache/src/cookies.js.map +1 -0
- package/out/replicache/src/dag/chunk.js +60 -0
- package/out/replicache/src/dag/chunk.js.map +1 -0
- package/out/replicache/src/dag/gc.js +126 -0
- package/out/replicache/src/dag/gc.js.map +1 -0
- package/out/replicache/src/dag/key-type-enum.js +6 -0
- package/out/replicache/src/dag/key-type-enum.js.map +1 -0
- package/out/replicache/src/dag/key.js +54 -0
- package/out/replicache/src/dag/key.js.map +1 -0
- package/out/replicache/src/dag/lazy-store.js +532 -0
- package/out/replicache/src/dag/lazy-store.js.map +1 -0
- package/out/replicache/src/dag/store-impl.js +175 -0
- package/out/replicache/src/dag/store-impl.js.map +1 -0
- package/out/replicache/src/dag/store.js +22 -0
- package/out/replicache/src/dag/store.js.map +1 -0
- package/out/replicache/src/dag/visitor.js +22 -0
- package/out/replicache/src/dag/visitor.js.map +1 -0
- package/out/replicache/src/db/commit.js +443 -0
- package/out/replicache/src/db/commit.js.map +1 -0
- package/out/replicache/src/db/index-operation-enum.js +4 -0
- package/out/replicache/src/db/index-operation-enum.js.map +1 -0
- package/out/replicache/src/db/index.js +170 -0
- package/out/replicache/src/db/index.js.map +1 -0
- package/out/replicache/src/db/meta-type-enum.js +7 -0
- package/out/replicache/src/db/meta-type-enum.js.map +1 -0
- package/out/replicache/src/db/read.js +59 -0
- package/out/replicache/src/db/read.js.map +1 -0
- package/out/replicache/src/db/rebase.js +56 -0
- package/out/replicache/src/db/rebase.js.map +1 -0
- package/out/replicache/src/db/scan.js +2 -0
- package/out/replicache/src/db/scan.js.map +1 -0
- package/out/replicache/src/db/write.js +260 -0
- package/out/replicache/src/db/write.js.map +1 -0
- package/out/replicache/src/error-responses.js +30 -0
- package/out/replicache/src/error-responses.js.map +1 -0
- package/out/replicache/src/filter-async-iterable.js +15 -0
- package/out/replicache/src/filter-async-iterable.js.map +1 -0
- package/out/replicache/src/format-version-enum.js +9 -0
- package/out/replicache/src/format-version-enum.js.map +1 -0
- package/out/replicache/src/format-version.js +8 -0
- package/out/replicache/src/format-version.js.map +1 -0
- package/out/replicache/src/frozen-json.js +151 -0
- package/out/replicache/src/frozen-json.js.map +1 -0
- package/out/replicache/src/get-default-puller.js +74 -0
- package/out/replicache/src/get-default-puller.js.map +1 -0
- package/out/replicache/src/get-default-pusher.js +36 -0
- package/out/replicache/src/get-default-pusher.js.map +1 -0
- package/out/replicache/src/hash.js +73 -0
- package/out/replicache/src/hash.js.map +1 -0
- package/out/replicache/src/http-request-info.js +7 -0
- package/out/replicache/src/http-request-info.js.map +1 -0
- package/out/replicache/src/impl.js +2 -0
- package/out/replicache/src/impl.js.map +1 -0
- package/out/replicache/src/index-defs.js +28 -0
- package/out/replicache/src/index-defs.js.map +1 -0
- package/out/replicache/src/invoke-kind-enum.js +4 -0
- package/out/replicache/src/invoke-kind-enum.js.map +1 -0
- package/out/replicache/src/iterable-union.js +5 -0
- package/out/replicache/src/iterable-union.js.map +1 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js +93 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
- package/out/replicache/src/kv/idb-store.js +179 -0
- package/out/replicache/src/kv/idb-store.js.map +1 -0
- package/out/replicache/src/kv/mem-store.js +61 -0
- package/out/replicache/src/kv/mem-store.js.map +1 -0
- package/out/replicache/src/kv/read-impl.js +23 -0
- package/out/replicache/src/kv/read-impl.js.map +1 -0
- package/out/replicache/src/kv/store.js +2 -0
- package/out/replicache/src/kv/store.js.map +1 -0
- package/out/replicache/src/kv/write-impl-base.js +48 -0
- package/out/replicache/src/kv/write-impl-base.js.map +1 -0
- package/out/replicache/src/kv/write-impl.js +25 -0
- package/out/replicache/src/kv/write-impl.js.map +1 -0
- package/out/replicache/src/lazy.js +10 -0
- package/out/replicache/src/lazy.js.map +1 -0
- package/out/replicache/src/log-options.js +13 -0
- package/out/replicache/src/log-options.js.map +1 -0
- package/out/replicache/src/merge-async-iterables.js +61 -0
- package/out/replicache/src/merge-async-iterables.js.map +1 -0
- package/out/replicache/src/mod.js +14 -0
- package/out/replicache/src/mod.js.map +1 -0
- package/out/replicache/src/mutation-recovery.js +439 -0
- package/out/replicache/src/mutation-recovery.js.map +1 -0
- package/out/replicache/src/new-client-channel.js +77 -0
- package/out/replicache/src/new-client-channel.js.map +1 -0
- package/out/replicache/src/on-persist-channel.js +33 -0
- package/out/replicache/src/on-persist-channel.js.map +1 -0
- package/out/replicache/src/patch-operation.js +37 -0
- package/out/replicache/src/patch-operation.js.map +1 -0
- package/out/replicache/src/pending-mutations.js +18 -0
- package/out/replicache/src/pending-mutations.js.map +1 -0
- package/out/replicache/src/persist/client-gc.js +38 -0
- package/out/replicache/src/persist/client-gc.js.map +1 -0
- package/out/replicache/src/persist/client-group-gc.js +38 -0
- package/out/replicache/src/persist/client-group-gc.js.map +1 -0
- package/out/replicache/src/persist/client-groups.js +180 -0
- package/out/replicache/src/persist/client-groups.js.map +1 -0
- package/out/replicache/src/persist/clients.js +390 -0
- package/out/replicache/src/persist/clients.js.map +1 -0
- package/out/replicache/src/persist/collect-idb-databases.js +174 -0
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js +25 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js +35 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
- package/out/replicache/src/persist/heartbeat.js +37 -0
- package/out/replicache/src/persist/heartbeat.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js +18 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store.js +90 -0
- package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
- package/out/replicache/src/persist/make-client-id.js +13 -0
- package/out/replicache/src/persist/make-client-id.js.map +1 -0
- package/out/replicache/src/persist/persist.js +132 -0
- package/out/replicache/src/persist/persist.js.map +1 -0
- package/out/replicache/src/persist/refresh.js +147 -0
- package/out/replicache/src/persist/refresh.js.map +1 -0
- package/out/replicache/src/process-scheduler.js +93 -0
- package/out/replicache/src/process-scheduler.js.map +1 -0
- package/out/replicache/src/puller.js +2 -0
- package/out/replicache/src/puller.js.map +1 -0
- package/out/replicache/src/pusher.js +32 -0
- package/out/replicache/src/pusher.js.map +1 -0
- package/out/replicache/src/replicache-impl.js +1007 -0
- package/out/replicache/src/replicache-impl.js.map +1 -0
- package/out/replicache/src/replicache-options.js +2 -0
- package/out/replicache/src/replicache-options.js.map +1 -0
- package/out/replicache/src/replicache.js +387 -0
- package/out/replicache/src/replicache.js.map +1 -0
- package/out/replicache/src/request-idle.js +15 -0
- package/out/replicache/src/request-idle.js.map +1 -0
- package/out/replicache/src/scan-iterator.js +202 -0
- package/out/replicache/src/scan-iterator.js.map +1 -0
- package/out/replicache/src/scan-options.js +45 -0
- package/out/replicache/src/scan-options.js.map +1 -0
- package/out/replicache/src/set-interval-with-signal.js +7 -0
- package/out/replicache/src/set-interval-with-signal.js.map +1 -0
- package/out/replicache/src/size-of-value.js +77 -0
- package/out/replicache/src/size-of-value.js.map +1 -0
- package/out/replicache/src/subscriptions.js +357 -0
- package/out/replicache/src/subscriptions.js.map +1 -0
- package/out/replicache/src/sync/diff.js +75 -0
- package/out/replicache/src/sync/diff.js.map +1 -0
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +5 -0
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
- package/out/replicache/src/sync/ids.js +4 -0
- package/out/replicache/src/sync/ids.js.map +1 -0
- package/out/replicache/src/sync/patch.js +41 -0
- package/out/replicache/src/sync/patch.js.map +1 -0
- package/out/replicache/src/sync/pull-error.js +16 -0
- package/out/replicache/src/sync/pull-error.js.map +1 -0
- package/out/replicache/src/sync/pull.js +375 -0
- package/out/replicache/src/sync/pull.js.map +1 -0
- package/out/replicache/src/sync/push.js +141 -0
- package/out/replicache/src/sync/push.js.map +1 -0
- package/out/replicache/src/sync/request-id.js +31 -0
- package/out/replicache/src/sync/request-id.js.map +1 -0
- package/out/replicache/src/sync/sync-head-name.js +2 -0
- package/out/replicache/src/sync/sync-head-name.js.map +1 -0
- package/out/replicache/src/test-license-key.js +3 -0
- package/out/replicache/src/test-license-key.js.map +1 -0
- package/out/replicache/src/to-error.js +7 -0
- package/out/replicache/src/to-error.js.map +1 -0
- package/out/replicache/src/transaction-closed-error.js +17 -0
- package/out/replicache/src/transaction-closed-error.js.map +1 -0
- package/out/replicache/src/transactions.js +144 -0
- package/out/replicache/src/transactions.js.map +1 -0
- package/out/replicache/src/types.js +2 -0
- package/out/replicache/src/types.js.map +1 -0
- package/out/replicache/src/version.js +5 -0
- package/out/replicache/src/version.js.map +1 -0
- package/out/replicache/src/with-transactions.js +28 -0
- package/out/replicache/src/with-transactions.js.map +1 -0
- package/out/shared/src/browser-env.js +14 -0
- package/out/shared/src/browser-env.js.map +1 -0
- package/out/shared/src/document-visible.js +76 -0
- package/out/shared/src/document-visible.js.map +1 -0
- package/out/shared/src/immutable.js +2 -0
- package/out/shared/src/immutable.js.map +1 -0
- package/out/shared/src/iterables.d.ts +2 -2
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +40 -0
- package/out/shared/src/iterables.js.map +1 -0
- package/out/shared/src/navigator.js +3 -0
- package/out/shared/src/navigator.js.map +1 -0
- package/out/shared/src/random-uint64.js +8 -0
- package/out/shared/src/random-uint64.js.map +1 -0
- package/out/shared/src/random-values.d.ts +1 -0
- package/out/shared/src/random-values.d.ts.map +1 -1
- package/out/shared/src/random-values.js +22 -0
- package/out/shared/src/random-values.js.map +1 -0
- package/out/shared/src/set-utils.d.ts +1 -1
- package/out/shared/src/set-utils.d.ts.map +1 -1
- package/out/shared/src/set-utils.js +6 -4
- package/out/shared/src/set-utils.js.map +1 -1
- package/out/shared/src/sorted-entries.d.ts +2 -0
- package/out/shared/src/sorted-entries.d.ts.map +1 -0
- package/out/shared/src/sorted-entries.js +6 -0
- package/out/shared/src/sorted-entries.js.map +1 -0
- package/out/shared/src/types.js +2 -0
- package/out/shared/src/types.js.map +1 -0
- package/out/shared/src/valita.d.ts +1 -1
- package/out/shared/src/valita.d.ts.map +1 -1
- package/out/shared/src/valita.js.map +1 -1
- package/out/shared/src/writable.d.ts +4 -0
- package/out/shared/src/writable.d.ts.map +1 -0
- package/out/shared/src/writable.js +2 -0
- package/out/shared/src/writable.js.map +1 -0
- package/out/zero/src/config.d.ts +2 -0
- package/out/zero/src/config.d.ts.map +1 -0
- package/out/zero/src/config.js +2 -0
- package/out/zero/src/config.js.map +1 -0
- package/out/zero-cache/src/config/config-query.d.ts +18 -0
- package/out/zero-cache/src/config/config-query.d.ts.map +1 -0
- package/out/zero-cache/src/config/config-query.js +19 -0
- package/out/zero-cache/src/config/config-query.js.map +1 -0
- package/out/zero-cache/src/config/define-config.d.ts +43 -0
- package/out/zero-cache/src/config/define-config.d.ts.map +1 -0
- package/out/zero-cache/src/config/define-config.js +120 -0
- package/out/zero-cache/src/config/define-config.js.map +1 -0
- package/out/zero-cache/src/config/refs.d.ts +3 -0
- package/out/zero-cache/src/config/refs.d.ts.map +1 -0
- package/out/zero-cache/src/config/refs.js +14 -0
- package/out/zero-cache/src/config/refs.js.map +1 -0
- package/out/zero-cache/src/config/zero-config.d.ts +126 -686
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +43 -161
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/create.d.ts +8 -0
- package/out/zero-cache/src/db/create.d.ts.map +1 -0
- package/out/zero-cache/src/db/create.js +39 -0
- package/out/zero-cache/src/db/create.js.map +1 -0
- package/out/zero-cache/src/db/lite-tables.d.ts +3 -3
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +29 -20
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/{migration-lite.d.ts → old-migration-lite.d.ts} +1 -1
- package/out/zero-cache/src/db/old-migration-lite.d.ts.map +1 -0
- package/out/zero-cache/src/db/{migration-lite.js → old-migration-lite.js} +1 -1
- package/out/zero-cache/src/db/old-migration-lite.js.map +1 -0
- package/out/zero-cache/src/db/{migration.d.ts → old-migration.d.ts} +1 -1
- package/out/zero-cache/src/db/old-migration.d.ts.map +1 -0
- package/out/zero-cache/src/db/{migration.js → old-migration.js} +1 -1
- package/out/zero-cache/src/db/old-migration.js.map +1 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts +11 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -0
- package/out/zero-cache/src/{services/change-streamer/pg/schema/lite.js → db/pg-to-lite.js} +27 -15
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -0
- package/out/zero-cache/src/db/specs.d.ts +73 -0
- package/out/zero-cache/src/db/specs.d.ts.map +1 -0
- package/out/zero-cache/src/db/specs.js +30 -0
- package/out/zero-cache/src/db/specs.js.map +1 -0
- package/out/zero-cache/src/db/statements.d.ts +1 -1
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/server/life-cycle.js +9 -5
- package/out/zero-cache/src/server/life-cycle.js.map +1 -1
- package/out/zero-cache/src/server/main.js +2 -2
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +2 -1
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +1 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +455 -13
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js +16 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +311 -86
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +7 -51
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +239 -59
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +263 -183
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +4 -4
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js +14 -19
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +2 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js +51 -6
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +325 -26
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.js +84 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js +5 -2
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +17 -19
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +18 -9
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +120 -16
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +20 -3
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +44 -12
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -2
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +21 -18
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +5 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +49 -8
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +31 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +53 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +11 -5
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +17 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +2 -2
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +11 -11
- package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -2
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +12 -4
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +59 -49
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +2 -3
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +50 -10
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +7 -1
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +14 -1
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +3 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +19 -1
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts +2 -1
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +20 -9
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +1 -1
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/context.js +99 -0
- package/out/zero-client/src/client/context.js.map +1 -0
- package/out/zero-client/src/client/crud.d.ts +8 -10
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.js +181 -0
- package/out/zero-client/src/client/crud.js.map +1 -0
- package/out/zero-client/src/client/enable-analytics.js +21 -0
- package/out/zero-client/src/client/enable-analytics.js.map +1 -0
- package/out/zero-client/src/client/http-string.js +14 -0
- package/out/zero-client/src/client/http-string.js.map +1 -0
- package/out/zero-client/src/client/keys.d.ts +3 -2
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.js +32 -0
- package/out/zero-client/src/client/keys.js.map +1 -0
- package/out/zero-client/src/client/log-options.js +57 -0
- package/out/zero-client/src/client/log-options.js.map +1 -0
- package/out/zero-client/src/client/metrics.js +268 -0
- package/out/zero-client/src/client/metrics.js.map +1 -0
- package/out/zero-client/src/client/normalized-schema.d.ts +17 -0
- package/out/zero-client/src/client/normalized-schema.d.ts.map +1 -0
- package/out/zero-client/src/client/normalized-schema.js +31 -0
- package/out/zero-client/src/client/normalized-schema.js.map +1 -0
- package/out/zero-client/src/client/options.js +2 -0
- package/out/zero-client/src/client/options.js.map +1 -0
- package/out/zero-client/src/client/query-manager.d.ts +18 -3
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.js +149 -0
- package/out/zero-client/src/client/query-manager.js.map +1 -0
- package/out/zero-client/src/client/reload-error-handler.js +23 -0
- package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
- package/out/zero-client/src/client/replicache-types.js +2 -0
- package/out/zero-client/src/client/replicache-types.js.map +1 -0
- package/out/zero-client/src/client/server-error.js +22 -0
- package/out/zero-client/src/client/server-error.js.map +1 -0
- package/out/zero-client/src/client/server-option.js +37 -0
- package/out/zero-client/src/client/server-option.js.map +1 -0
- package/out/zero-client/src/client/version.js +5 -0
- package/out/zero-client/src/client/version.js.map +1 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts +3 -3
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js +240 -0
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
- package/out/zero-client/src/client/zero.d.ts +3 -2
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +1212 -0
- package/out/zero-client/src/client/zero.js.map +1 -0
- package/out/zero-client/src/mod.js +4 -0
- package/out/zero-client/src/mod.js.map +1 -0
- package/out/zero-client/src/util/nanoid.js +34 -0
- package/out/zero-client/src/util/nanoid.js.map +1 -0
- package/out/zero-client/src/util/socket.js +4 -0
- package/out/zero-client/src/util/socket.js.map +1 -0
- package/out/zero-protocol/src/ast.d.ts +87 -1
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +53 -0
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts +6 -6
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/clients-patch.d.ts +1 -1
- package/out/zero-protocol/src/connect.d.ts +15 -8
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js +21 -0
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/data.d.ts +36 -0
- package/out/zero-protocol/src/data.d.ts.map +1 -0
- package/out/zero-protocol/src/data.js +4 -0
- package/out/zero-protocol/src/data.js.map +1 -0
- package/out/zero-protocol/src/delete-clients.d.ts +4 -4
- package/out/zero-protocol/src/delete-clients.d.ts.map +1 -1
- package/out/zero-protocol/src/down.d.ts +18 -16
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/down.js +2 -1
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/mod.d.ts +1 -2
- package/out/zero-protocol/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/mod.js +2 -2
- package/out/zero-protocol/src/mod.js.map +1 -1
- package/out/zero-protocol/src/ping.d.ts +1 -1
- package/out/zero-protocol/src/ping.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.d.ts +26 -26
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +8 -5
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.d.ts +1 -1
- package/out/zero-protocol/src/pong.d.ts.map +1 -1
- package/out/zero-protocol/src/primary-key.d.ts +2 -3
- package/out/zero-protocol/src/primary-key.d.ts.map +1 -1
- package/out/zero-protocol/src/primary-key.js +1 -3
- package/out/zero-protocol/src/primary-key.js.map +1 -1
- package/out/zero-protocol/src/pull.d.ts +4 -4
- package/out/zero-protocol/src/pull.d.ts.map +1 -1
- package/out/zero-protocol/src/push.d.ts +105 -98
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +17 -13
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts +4 -4
- package/out/zero-protocol/src/row-patch.d.ts +38 -0
- package/out/zero-protocol/src/row-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/{entities-patch.js → row-patch.js} +10 -11
- package/out/zero-protocol/src/row-patch.js.map +1 -0
- package/out/zero-protocol/src/up.d.ts +28 -27
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/warm.d.ts +10 -0
- package/out/zero-protocol/src/warm.d.ts.map +1 -0
- package/out/zero-protocol/src/warm.js +6 -0
- package/out/zero-protocol/src/warm.js.map +1 -0
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero.js +499 -208
- package/out/zero.js.map +4 -4
- package/out/zql/src/zql/builder/builder.d.ts +3 -3
- package/out/zql/src/zql/builder/builder.d.ts.map +1 -1
- package/out/zql/src/zql/builder/builder.js +1 -1
- package/out/zql/src/zql/builder/builder.js.map +1 -1
- package/out/zql/src/zql/builder/filter.d.ts +2 -2
- package/out/zql/src/zql/builder/filter.d.ts.map +1 -1
- package/out/zql/src/zql/builder/filter.js.map +1 -1
- package/out/zql/src/zql/ivm/array-view.d.ts +1 -1
- package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/array-view.js +232 -0
- package/out/zql/src/zql/ivm/array-view.js.map +1 -0
- package/out/zql/src/zql/ivm/change.d.ts +2 -1
- package/out/zql/src/zql/ivm/change.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.d.ts +2 -33
- package/out/zql/src/zql/ivm/data.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.js.map +1 -1
- package/out/zql/src/zql/ivm/filter.d.ts +2 -1
- package/out/zql/src/zql/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/filter.js.map +1 -1
- package/out/zql/src/zql/ivm/join.d.ts +1 -1
- package/out/zql/src/zql/ivm/join.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/join.js +68 -24
- package/out/zql/src/zql/ivm/join.js.map +1 -1
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.d.ts +8 -6
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.js +2 -0
- package/out/zql/src/zql/ivm/memory-source.js.map +1 -1
- package/out/zql/src/zql/ivm/memory-storage.js +33 -0
- package/out/zql/src/zql/ivm/memory-storage.js.map +1 -0
- package/out/zql/src/zql/ivm/operator.d.ts +2 -1
- package/out/zql/src/zql/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.d.ts +3 -3
- package/out/zql/src/zql/ivm/schema.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.js.map +1 -1
- package/out/zql/src/zql/ivm/skip.d.ts +2 -1
- package/out/zql/src/zql/ivm/skip.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/skip.js.map +1 -1
- package/out/zql/src/zql/ivm/source.d.ts +2 -2
- package/out/zql/src/zql/ivm/source.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/take.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/take.js.map +1 -1
- package/out/zql/src/zql/query/normalize-table-schema.d.ts +48 -0
- package/out/zql/src/zql/query/normalize-table-schema.d.ts.map +1 -0
- package/out/zql/src/zql/query/normalize-table-schema.js +116 -0
- package/out/zql/src/zql/query/normalize-table-schema.js.map +1 -0
- package/out/zql/src/zql/query/query-impl.d.ts +6 -5
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/zql/query/query-impl.js +263 -0
- package/out/zql/src/zql/query/query-impl.js.map +1 -0
- package/out/zql/src/zql/query/query.d.ts +1 -1
- package/out/zql/src/zql/query/query.d.ts.map +1 -1
- package/out/zql/src/zql/query/query.js +3 -0
- package/out/zql/src/zql/query/query.js.map +1 -0
- package/out/zql/src/zql/query/schema.d.ts +13 -4
- package/out/zql/src/zql/query/schema.d.ts.map +1 -1
- package/out/zql/src/zql/query/schema.js +7 -0
- package/out/zql/src/zql/query/schema.js.map +1 -0
- package/out/zql/src/zql/query/typed-view.js +2 -0
- package/out/zql/src/zql/query/typed-view.js.map +1 -0
- package/out/zqlite/src/db.d.ts +1 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +1 -1
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +2 -2
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +10 -8
- package/deps/sqlite3/sqlite3.c +0 -260574
- package/deps/sqlite3/sqlite3.h +0 -13572
- package/deps/sqlite3/sqlite3ext.h +0 -719
- package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration-lite.js.map +0 -1
- package/out/zero-cache/src/db/migration.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +0 -29
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +0 -1
- package/out/zero-cache/src/types/specs.d.ts +0 -29
- package/out/zero-cache/src/types/specs.d.ts.map +0 -1
- package/out/zero-cache/src/types/specs.js +0 -2
- package/out/zero-cache/src/types/specs.js.map +0 -1
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts +0 -5
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts.map +0 -1
- package/out/zero-protocol/src/entities-patch.d.ts +0 -66
- package/out/zero-protocol/src/entities-patch.d.ts.map +0 -1
- package/out/zero-protocol/src/entities-patch.js.map +0 -1
- package/out/zql/src/zql/ast/ast.d.ts +0 -84
- package/out/zql/src/zql/ast/ast.d.ts.map +0 -1
- package/out/zql/src/zql/ast/ast.js +0 -54
- package/out/zql/src/zql/ast/ast.js.map +0 -1
- package/tool/install-sqlite3.js +0 -37
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* There are two types of drains:
|
|
3
|
+
* 1. Elective drains happen when a view-syncer is about to process
|
|
4
|
+
* a replication event and drains instead because {@link shouldDrain()}
|
|
5
|
+
* returned true. In this case, it exits its processing loop and
|
|
6
|
+
* calls {@link drainNextIn()} immediately.
|
|
7
|
+
* 2. Force drains are performed by the Syncer, which picks a random
|
|
8
|
+
* view-syncer and calls {@link stop()}.
|
|
9
|
+
*
|
|
10
|
+
* In the case of a forced drain, the view-syncer may be queued up
|
|
11
|
+
* behind a large amount of CPU-consuming events, and thus it may take
|
|
12
|
+
* a long time before it actually stops. Elective drains are preferred because
|
|
13
|
+
* they are less subject to that variance. However, elective drains only happen
|
|
14
|
+
* if there is a task to be processed, so forced drains are still necessary
|
|
15
|
+
* for draining servers with no work / tasks.
|
|
16
|
+
*
|
|
17
|
+
* The Syncer kicks off the drain process by calling {@link drainNextIn drainNextIn(0)},
|
|
18
|
+
* which sets off a short {@link forceDrainTimeout} but starts returning `true` for
|
|
19
|
+
* {@link shouldDrain()} for elective drains. In the latter case, the drained
|
|
20
|
+
* view-syncer immediately exiting its processing loop and calls
|
|
21
|
+
* {@link drainNextIn drainNextIn(myHydrationTime)} to reset the timeout
|
|
22
|
+
* for the next elective or forced drain.
|
|
23
|
+
*/
|
|
24
|
+
export declare class DrainCoordinator {
|
|
25
|
+
#private;
|
|
26
|
+
shouldDrain(): boolean | 0;
|
|
27
|
+
drainNextIn(interval: number): void;
|
|
28
|
+
get forceDrainTimeout(): Promise<void>;
|
|
29
|
+
get nextDrainTime(): number;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=drain-coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drain-coordinator.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/drain-coordinator.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,gBAAgB;;IAK3B,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAgB5B,IAAI,iBAAiB,kBAEpB;IAGD,IAAI,aAAa,WAEhB;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { resolver } from '@rocicorp/resolver';
|
|
2
|
+
import { assert } from '../../../../shared/src/asserts.js';
|
|
3
|
+
/**
|
|
4
|
+
* There are two types of drains:
|
|
5
|
+
* 1. Elective drains happen when a view-syncer is about to process
|
|
6
|
+
* a replication event and drains instead because {@link shouldDrain()}
|
|
7
|
+
* returned true. In this case, it exits its processing loop and
|
|
8
|
+
* calls {@link drainNextIn()} immediately.
|
|
9
|
+
* 2. Force drains are performed by the Syncer, which picks a random
|
|
10
|
+
* view-syncer and calls {@link stop()}.
|
|
11
|
+
*
|
|
12
|
+
* In the case of a forced drain, the view-syncer may be queued up
|
|
13
|
+
* behind a large amount of CPU-consuming events, and thus it may take
|
|
14
|
+
* a long time before it actually stops. Elective drains are preferred because
|
|
15
|
+
* they are less subject to that variance. However, elective drains only happen
|
|
16
|
+
* if there is a task to be processed, so forced drains are still necessary
|
|
17
|
+
* for draining servers with no work / tasks.
|
|
18
|
+
*
|
|
19
|
+
* The Syncer kicks off the drain process by calling {@link drainNextIn drainNextIn(0)},
|
|
20
|
+
* which sets off a short {@link forceDrainTimeout} but starts returning `true` for
|
|
21
|
+
* {@link shouldDrain()} for elective drains. In the latter case, the drained
|
|
22
|
+
* view-syncer immediately exiting its processing loop and calls
|
|
23
|
+
* {@link drainNextIn drainNextIn(myHydrationTime)} to reset the timeout
|
|
24
|
+
* for the next elective or forced drain.
|
|
25
|
+
*/
|
|
26
|
+
export class DrainCoordinator {
|
|
27
|
+
#nextDrainTime = 0;
|
|
28
|
+
#timeout = resolver();
|
|
29
|
+
#timeoutID;
|
|
30
|
+
shouldDrain() {
|
|
31
|
+
return this.#nextDrainTime && this.#nextDrainTime <= Date.now();
|
|
32
|
+
}
|
|
33
|
+
drainNextIn(interval) {
|
|
34
|
+
const now = Date.now();
|
|
35
|
+
assert(this.#nextDrainTime <= now, `drainNextIn() should only be called if shouldDrain()`);
|
|
36
|
+
this.#nextDrainTime = now + interval;
|
|
37
|
+
// Push the forceDrainTimeout forward.
|
|
38
|
+
clearTimeout(this.#timeoutID);
|
|
39
|
+
this.#timeoutID = setTimeout(() => {
|
|
40
|
+
this.#timeout.resolve();
|
|
41
|
+
this.#timeout = resolver();
|
|
42
|
+
}, interval + FORCE_DRAIN_PADDING);
|
|
43
|
+
}
|
|
44
|
+
get forceDrainTimeout() {
|
|
45
|
+
return this.#timeout.promise;
|
|
46
|
+
}
|
|
47
|
+
// Exposed for testing.
|
|
48
|
+
get nextDrainTime() {
|
|
49
|
+
return this.#nextDrainTime;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const FORCE_DRAIN_PADDING = 2;
|
|
53
|
+
//# sourceMappingURL=drain-coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drain-coordinator.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/drain-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,gBAAgB;IAC3B,cAAc,GAAG,CAAC,CAAC;IACnB,QAAQ,GAAG,QAAQ,EAAE,CAAC;IACtB,UAAU,CAA6B;IAEvC,WAAW;QACT,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,CACJ,IAAI,CAAC,cAAc,IAAI,GAAG,EAC1B,sDAAsD,CACvD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,QAAQ,CAAC;QAErC,sCAAsC;QACtC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;QAC7B,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,uBAAuB;IACvB,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { AST } from '../../../../
|
|
3
|
-
import type { Row } from '../../../../
|
|
2
|
+
import type { AST } from '../../../../zero-protocol/src/ast.js';
|
|
3
|
+
import type { Row } from '../../../../zero-protocol/src/data.js';
|
|
4
|
+
import type { LiteTableSpec } from '../../db/specs.js';
|
|
4
5
|
import type { RowKey } from '../../types/row-key.js';
|
|
5
6
|
import type { SchemaVersions } from '../../types/schema-versions.js';
|
|
6
|
-
import type { TableSpec } from '../../types/specs.js';
|
|
7
7
|
import type { ClientGroupStorage } from './database-storage.js';
|
|
8
8
|
import { Snapshotter } from './snapshotter.js';
|
|
9
9
|
export type RowAdd = {
|
|
@@ -29,8 +29,8 @@ export type RowEdit = {
|
|
|
29
29
|
};
|
|
30
30
|
export type RowChange = RowAdd | RowRemove | RowEdit;
|
|
31
31
|
/** Normalized TableSpec filters out columns with unsupported data types. */
|
|
32
|
-
export type NormalizedTableSpec =
|
|
33
|
-
export declare function normalize(tableSpec:
|
|
32
|
+
export type NormalizedTableSpec = LiteTableSpec;
|
|
33
|
+
export declare function normalize(tableSpec: LiteTableSpec): NormalizedTableSpec;
|
|
34
34
|
/**
|
|
35
35
|
* Manages the state of IVM pipelines for a given ViewSyncer (i.e. client group).
|
|
36
36
|
*/
|
|
@@ -61,6 +61,12 @@ export declare class PipelineDriver {
|
|
|
61
61
|
*/
|
|
62
62
|
currentSchemaVersions(): SchemaVersions;
|
|
63
63
|
advanceWithoutDiff(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Clears the current pipelines and TableSources, returning the PipelineDriver
|
|
66
|
+
* to its initial state. This should be called in response to a schema change,
|
|
67
|
+
* as TableSources need to be recomputed.
|
|
68
|
+
*/
|
|
69
|
+
reset(): void;
|
|
64
70
|
/**
|
|
65
71
|
* Clears storage used for the pipelines. Call this when the
|
|
66
72
|
* PipelineDriver will no longer be used.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-driver.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"pipeline-driver.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,sCAAsC,CAAC;AAC9D,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,uCAAuC,CAAC;AAS/D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAKrD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAoB,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAEhD,wBAAgB,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG,mBAAmB,CAkBvE;AAOD;;GAEG;AACH,qBAAa,cAAc;;gBAWvB,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,kBAAkB;IAO7B;;;;;OAKG;IACH,IAAI;IASJ;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;OAIG;IACH,qBAAqB,IAAI,cAAc;IAKvC,kBAAkB,IAAI,MAAM;IAQ5B;;;;OAIG;IACH,KAAK;IAgBL;;;OAGG;IACH,OAAO;IAKP,6DAA6D;IAC7D,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC;IAI3B,oBAAoB,IAAI,MAAM;IAQ9B;;;;;;;;OAQG;IACF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;IA8BxD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM;IAQxB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAMlD;;;;;;OAMG;IACH,OAAO,IAAI;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC9B;CAiGF"}
|
|
@@ -77,6 +77,23 @@ export class PipelineDriver {
|
|
|
77
77
|
}
|
|
78
78
|
return version;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Clears the current pipelines and TableSources, returning the PipelineDriver
|
|
82
|
+
* to its initial state. This should be called in response to a schema change,
|
|
83
|
+
* as TableSources need to be recomputed.
|
|
84
|
+
*/
|
|
85
|
+
reset() {
|
|
86
|
+
const tableSpecs = this.#tableSpecs;
|
|
87
|
+
assert(tableSpecs);
|
|
88
|
+
for (const { input } of this.#pipelines.values()) {
|
|
89
|
+
input.destroy();
|
|
90
|
+
}
|
|
91
|
+
this.#pipelines.clear();
|
|
92
|
+
this.#tables.clear();
|
|
93
|
+
tableSpecs.clear();
|
|
94
|
+
const { db } = this.#snapshotter.current();
|
|
95
|
+
listTables(db.db).forEach(spec => tableSpecs.set(spec.name, normalize(spec)));
|
|
96
|
+
}
|
|
80
97
|
/**
|
|
81
98
|
* Clears storage used for the pipelines. Call this when the
|
|
82
99
|
* PipelineDriver will no longer be used.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-driver.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-driver.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EAEf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EAGf,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,SAAS,QAAQ,CAAC;AAI/B,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAUF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,UAEpE;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAoBF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,UAM9D;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAwBF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,UAM9D;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AA0BF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,UAU9D;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE;QAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;CACjD,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAMtD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAO9D;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,SAAS,GACnB,OAAO,CAUT;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,UAiBrD;AAmCD,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,QAAQ,CAAC,cAAc,iBAI5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { stringCompare } from '../../../../../shared/src/string-compare.js';
|
|
2
|
-
import { normalizedKeyOrder } from '../../../types/row-key.js';
|
|
3
2
|
import { stringify, } from '../../../types/bigint-json.js';
|
|
3
|
+
import { normalizedKeyOrder } from '../../../types/row-key.js';
|
|
4
4
|
import { versionFromString, versionString, } from './types.js';
|
|
5
5
|
export const PG_SCHEMA = 'cvr';
|
|
6
6
|
const CREATE_CVR_SCHEMA = `CREATE SCHEMA IF NOT EXISTS cvr;`;
|
|
@@ -8,7 +8,7 @@ const CREATE_CVR_INSTANCES_TABLE = `
|
|
|
8
8
|
CREATE TABLE cvr.instances (
|
|
9
9
|
"clientGroupID" TEXT PRIMARY KEY,
|
|
10
10
|
version TEXT NOT NULL, -- Sortable representation of CVRVersion, e.g. "5nbqa2w:09"
|
|
11
|
-
"lastActive" TIMESTAMPTZ NOT NULL
|
|
11
|
+
"lastActive" TIMESTAMPTZ NOT NULL -- For garbage collection
|
|
12
12
|
);
|
|
13
13
|
`;
|
|
14
14
|
export function compareInstancesRows(a, b) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runSchemaMigrations, } from '../../../db/migration.js';
|
|
1
|
+
import { runSchemaMigrations, } from '../../../db/old-migration.js';
|
|
2
2
|
import { PG_SCHEMA, setupCVRTables } from './cvr.js';
|
|
3
3
|
export async function initViewSyncerSchema(log, db) {
|
|
4
4
|
const schemaVersionMigrationMap = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-migrations.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/pg-migrations.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAEpB,MAAM,
|
|
1
|
+
{"version":3,"file":"pg-migrations.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/pg-migrations.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAe,EACf,EAAgB;IAEhB,MAAM,yBAAyB,GAAwB;QACrD,CAAC,EAAE,EAAC,sBAAsB,EAAE,CAAC,EAAC,EAAE,mDAAmD;QACnF,CAAC,EAAE;YACD,GAAG,EAAE,cAAc;SACpB;KACF,CAAC;IAEF,MAAM,mBAAmB,CACvB,GAAG,EACH,aAAa,EACb,SAAS,EACT,EAAE,EACF,yBAAyB,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -78,7 +78,7 @@ export declare const clientRecordSchema: v.ObjectType<Omit<{
|
|
|
78
78
|
/** The client ID, of which there can be multiple for a client group view. */
|
|
79
79
|
id: v.Type<string>;
|
|
80
80
|
/** The client's desired query IDs. Patch information is stored in the QueryRecord. */
|
|
81
|
-
desiredQueryIDs: v.ArrayType<
|
|
81
|
+
desiredQueryIDs: v.ArrayType<v.Type<string>>;
|
|
82
82
|
}, undefined>;
|
|
83
83
|
export type ClientRecord = v.Infer<typeof clientRecordSchema>;
|
|
84
84
|
export declare const baseQueryRecordSchema: v.ObjectType<{
|
|
@@ -99,7 +99,7 @@ export declare const baseQueryRecordSchema: v.ObjectType<{
|
|
|
99
99
|
field: string;
|
|
100
100
|
};
|
|
101
101
|
}[]>;
|
|
102
|
-
related: v.Optional<readonly import("../../../../../
|
|
102
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
103
103
|
limit: v.Optional<number>;
|
|
104
104
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
105
105
|
start: v.Optional<{
|
|
@@ -168,7 +168,7 @@ export declare const internalQueryRecordSchema: v.ObjectType<Omit<{
|
|
|
168
168
|
field: string;
|
|
169
169
|
};
|
|
170
170
|
}[]>;
|
|
171
|
-
related: v.Optional<readonly import("../../../../../
|
|
171
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
172
172
|
limit: v.Optional<number>;
|
|
173
173
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
174
174
|
start: v.Optional<{
|
|
@@ -234,7 +234,7 @@ export declare const clientQueryRecordSchema: v.ObjectType<Omit<{
|
|
|
234
234
|
field: string;
|
|
235
235
|
};
|
|
236
236
|
}[]>;
|
|
237
|
-
related: v.Optional<readonly import("../../../../../
|
|
237
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
238
238
|
limit: v.Optional<number>;
|
|
239
239
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
240
240
|
start: v.Optional<{
|
|
@@ -308,7 +308,7 @@ export declare const queryRecordSchema: v.UnionType<[v.ObjectType<Omit<{
|
|
|
308
308
|
field: string;
|
|
309
309
|
};
|
|
310
310
|
}[]>;
|
|
311
|
-
related: v.Optional<readonly import("../../../../../
|
|
311
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
312
312
|
limit: v.Optional<number>;
|
|
313
313
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
314
314
|
start: v.Optional<{
|
|
@@ -380,7 +380,7 @@ export declare const queryRecordSchema: v.UnionType<[v.ObjectType<Omit<{
|
|
|
380
380
|
field: string;
|
|
381
381
|
};
|
|
382
382
|
}[]>;
|
|
383
|
-
related: v.Optional<readonly import("../../../../../
|
|
383
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
384
384
|
limit: v.Optional<number>;
|
|
385
385
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
386
386
|
start: v.Optional<{
|
|
@@ -498,7 +498,7 @@ export declare const metaRecordSchema: v.UnionType<[v.ObjectType<{
|
|
|
498
498
|
/** The client ID, of which there can be multiple for a client group view. */
|
|
499
499
|
id: v.Type<string>;
|
|
500
500
|
/** The client's desired query IDs. Patch information is stored in the QueryRecord. */
|
|
501
|
-
desiredQueryIDs: v.ArrayType<
|
|
501
|
+
desiredQueryIDs: v.ArrayType<v.Type<string>>;
|
|
502
502
|
}, undefined>, v.UnionType<[v.ObjectType<Omit<{
|
|
503
503
|
/** The client-specified ID used to identify this query. Typically a hash. */
|
|
504
504
|
id: v.Type<string>;
|
|
@@ -517,7 +517,7 @@ export declare const metaRecordSchema: v.UnionType<[v.ObjectType<{
|
|
|
517
517
|
field: string;
|
|
518
518
|
};
|
|
519
519
|
}[]>;
|
|
520
|
-
related: v.Optional<readonly import("../../../../../
|
|
520
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
521
521
|
limit: v.Optional<number>;
|
|
522
522
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
523
523
|
start: v.Optional<{
|
|
@@ -589,7 +589,7 @@ export declare const metaRecordSchema: v.UnionType<[v.ObjectType<{
|
|
|
589
589
|
field: string;
|
|
590
590
|
};
|
|
591
591
|
}[]>;
|
|
592
|
-
related: v.Optional<readonly import("../../../../../
|
|
592
|
+
related: v.Optional<readonly import("../../../../../zero-protocol/src/ast.js").CorrelatedSubQuery[]>;
|
|
593
593
|
limit: v.Optional<number>;
|
|
594
594
|
orderBy: v.Optional<readonly (readonly [string, "asc" | "desc"])[]>;
|
|
595
595
|
start: v.Optional<{
|
|
@@ -743,7 +743,7 @@ export type RowPatch = v.Infer<typeof rowPatchSchema>;
|
|
|
743
743
|
export declare const queryPatchSchema: v.ObjectType<Omit<{
|
|
744
744
|
type: v.UnionType<[v.Type<"client">, v.Type<"row">, v.Type<"query">]>;
|
|
745
745
|
op: v.UnionType<[v.Type<"put">, v.Type<"del">]>;
|
|
746
|
-
}, "type" | "
|
|
746
|
+
}, "type" | "id" | "clientID"> & {
|
|
747
747
|
type: v.Type<"query">;
|
|
748
748
|
id: v.Type<string>;
|
|
749
749
|
clientID: v.Optional<string>;
|
|
@@ -772,7 +772,7 @@ export declare const metadataPatchSchema: v.UnionType<[v.ObjectType<Omit<{
|
|
|
772
772
|
}, undefined>, v.ObjectType<Omit<{
|
|
773
773
|
type: v.UnionType<[v.Type<"client">, v.Type<"row">, v.Type<"query">]>;
|
|
774
774
|
op: v.UnionType<[v.Type<"put">, v.Type<"del">]>;
|
|
775
|
-
}, "type" | "
|
|
775
|
+
}, "type" | "id" | "clientID"> & {
|
|
776
776
|
type: v.Type<"query">;
|
|
777
777
|
id: v.Type<string>;
|
|
778
778
|
clientID: v.Optional<string>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as v from '../../../../../shared/src/valita.js';
|
|
2
|
-
import { astSchema } from '../../../../../zero-protocol/src/
|
|
3
|
-
import { versionFromLexi, versionToLexi } from '../../../types/lexi-version.js';
|
|
2
|
+
import { astSchema } from '../../../../../zero-protocol/src/ast.js';
|
|
4
3
|
import { jsonValueSchema } from '../../../types/bigint-json.js';
|
|
4
|
+
import { versionFromLexi, versionToLexi } from '../../../types/lexi-version.js';
|
|
5
5
|
export const cvrVersionSchema = v.object({
|
|
6
6
|
/**
|
|
7
7
|
* The database `stateVersion` with which the rows in the CVR are consistent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { LiteTableSpec } from '../../db/specs.js';
|
|
2
3
|
import { StatementRunner } from '../../db/statements.js';
|
|
3
4
|
import { type JSONValue } from '../../types/bigint-json.js';
|
|
4
5
|
import { type RowValue } from '../../types/row-key.js';
|
|
5
6
|
import { type SchemaVersions } from '../../types/schema-versions.js';
|
|
6
|
-
import type { TableSpec } from '../../types/specs.js';
|
|
7
7
|
/**
|
|
8
8
|
* A `Snapshotter` manages the progression of database snapshots for a
|
|
9
9
|
* ViewSyncer.
|
|
@@ -112,7 +112,7 @@ export declare class Snapshotter {
|
|
|
112
112
|
* on `prev` before each iteration, and (2) rollback to the save point after
|
|
113
113
|
* the iteration.
|
|
114
114
|
*/
|
|
115
|
-
advance(tables: Map<string,
|
|
115
|
+
advance(tables: Map<string, LiteTableSpec>): SnapshotDiff;
|
|
116
116
|
advanceWithoutDiff(): {
|
|
117
117
|
prev: Snapshot;
|
|
118
118
|
curr: Snapshot;
|
|
@@ -157,6 +157,14 @@ export interface SnapshotDiff extends Iterable<Change> {
|
|
|
157
157
|
*/
|
|
158
158
|
readonly changes: number;
|
|
159
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Thrown during an iteration of a {@link SnapshotDiff} when a schema
|
|
162
|
+
* change is encountered.
|
|
163
|
+
*/
|
|
164
|
+
export declare class SchemaChangeError extends Error {
|
|
165
|
+
readonly name = "SchemaChangeError";
|
|
166
|
+
constructor(table: string);
|
|
167
|
+
}
|
|
160
168
|
declare class Snapshot {
|
|
161
169
|
static create(lc: LogContext, dbFile: string): Snapshot;
|
|
162
170
|
readonly db: StatementRunner;
|
|
@@ -168,8 +176,8 @@ declare class Snapshot {
|
|
|
168
176
|
changes: IterableIterator<unknown>;
|
|
169
177
|
cleanup: () => void;
|
|
170
178
|
};
|
|
171
|
-
getRow(table:
|
|
172
|
-
getRows(table:
|
|
179
|
+
getRow(table: LiteTableSpec, rowKey: JSONValue): any;
|
|
180
|
+
getRows(table: LiteTableSpec): {
|
|
173
181
|
rows: IterableIterator<unknown>;
|
|
174
182
|
cleanup: () => void;
|
|
175
183
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAmB,KAAK,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAM5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAmB,KAAK,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAYnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,WAAW;;gBAMV,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAK1C;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAOZ,WAAW,IAAI,OAAO;IAItB,+EAA+E;IAC/E,OAAO,IAAI,QAAQ;IAKnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,YAAY;IAKzD,kBAAkB;;;;IAUlB;;;OAGG;IACH,OAAO;CAKR;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CAC/C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,uBAAuB;gBAExB,KAAK,EAAE,MAAM;CAG1B;AAQD,cAAM,QAAQ;IACZ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAc5C,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;gBAGtC,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,cAAc;IAOhC,eAAe,CAAC,WAAW,EAAE,MAAM;IAQnC,YAAY,CAAC,WAAW,EAAE,MAAM;;;;IAUhC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;IAkB9C,OAAO,CAAC,KAAK,EAAE,aAAa;;;;IAY5B,WAAW,IAAI,QAAQ;CAOxB;AAmMD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,GAAG,EAAE,MAAM;CAGxB"}
|
|
@@ -8,7 +8,7 @@ import { StatementRunner } from '../../db/statements.js';
|
|
|
8
8
|
import { jsonObjectSchema } from '../../types/bigint-json.js';
|
|
9
9
|
import { normalizedKeyOrder, } from '../../types/row-key.js';
|
|
10
10
|
import {} from '../../types/schema-versions.js';
|
|
11
|
-
import { changeLogEntrySchema as schema, SET_OP, TRUNCATE_OP, } from '../replicator/schema/change-log.js';
|
|
11
|
+
import { RESET_OP, changeLogEntrySchema as schema, SET_OP, TRUNCATE_OP, } from '../replicator/schema/change-log.js';
|
|
12
12
|
import { getReplicationVersions, ZERO_VERSION_COLUMN_NAME as ROW_VERSION, } from '../replicator/schema/replication-state.js';
|
|
13
13
|
/**
|
|
14
14
|
* A `Snapshotter` manages the progression of database snapshots for a
|
|
@@ -157,6 +157,16 @@ export class Snapshotter {
|
|
|
157
157
|
this.#lc.debug?.('closed database connections');
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Thrown during an iteration of a {@link SnapshotDiff} when a schema
|
|
162
|
+
* change is encountered.
|
|
163
|
+
*/
|
|
164
|
+
export class SchemaChangeError extends Error {
|
|
165
|
+
name = 'SchemaChangeError';
|
|
166
|
+
constructor(table) {
|
|
167
|
+
super(`schema for table ${table} has changed`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
160
170
|
function getSchemaVersions(db) {
|
|
161
171
|
return db.get('SELECT minSupportedVersion, maxSupportedVersion FROM "zero.schemaVersions"');
|
|
162
172
|
}
|
|
@@ -238,62 +248,62 @@ class Diff {
|
|
|
238
248
|
const { changes, cleanup: done } = this.curr.changesSince(this.prev.version);
|
|
239
249
|
const truncates = new TruncateTracker(this.prev);
|
|
240
250
|
const cleanup = () => {
|
|
241
|
-
|
|
242
|
-
|
|
251
|
+
try {
|
|
252
|
+
// Allow open iterators to clean up their state.
|
|
253
|
+
truncates.iterReturn(undefined);
|
|
254
|
+
changes.return?.(undefined);
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
done();
|
|
258
|
+
truncates.done();
|
|
259
|
+
}
|
|
243
260
|
};
|
|
244
261
|
return {
|
|
245
262
|
next: () => {
|
|
246
|
-
for (;;) {
|
|
247
|
-
// Exhaust the TRUNCATE iteration before continuing the Change sequence.
|
|
248
|
-
const truncatedRow = truncates.next();
|
|
249
|
-
if (truncatedRow) {
|
|
250
|
-
return truncatedRow;
|
|
251
|
-
}
|
|
252
|
-
const { value, done } = changes.next();
|
|
253
|
-
if (done) {
|
|
254
|
-
cleanup();
|
|
255
|
-
return { value, done: true };
|
|
256
|
-
}
|
|
257
|
-
const { table, rowKey, op, stateVersion } = v.parse(value, schema);
|
|
258
|
-
const tableSpec = must(this.tables.get(table));
|
|
259
|
-
if (op === TRUNCATE_OP) {
|
|
260
|
-
truncates.startTruncate(tableSpec);
|
|
261
|
-
continue; // loop around to pull rows from the TruncateTracker.
|
|
262
|
-
}
|
|
263
|
-
assert(rowKey !== null);
|
|
264
|
-
const prevValue = truncates.getRowIfNotTruncated(tableSpec, rowKey) ?? null;
|
|
265
|
-
const nextValue = op === SET_OP ? this.curr.getRow(tableSpec, rowKey) : null;
|
|
266
|
-
// Sanity check detects if the diff is being accessed after the Snapshots have advanced.
|
|
267
|
-
this.checkThatDiffIsValid(stateVersion, op, prevValue, nextValue);
|
|
268
|
-
if (prevValue === null && nextValue === null) {
|
|
269
|
-
// Filter out no-op changes (e.g. a delete of a row that does not exist in prev).
|
|
270
|
-
// TODO: Consider doing this for deep-equal values.
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
return { value: { table, prevValue, nextValue } };
|
|
274
|
-
}
|
|
275
|
-
},
|
|
276
|
-
return: (value) => {
|
|
277
263
|
try {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
264
|
+
for (;;) {
|
|
265
|
+
// Exhaust the TRUNCATE iteration before continuing the Change sequence.
|
|
266
|
+
const truncatedRow = truncates.next();
|
|
267
|
+
if (truncatedRow) {
|
|
268
|
+
return truncatedRow;
|
|
269
|
+
}
|
|
270
|
+
const { value, done } = changes.next();
|
|
271
|
+
if (done) {
|
|
272
|
+
cleanup();
|
|
273
|
+
return { value, done: true };
|
|
274
|
+
}
|
|
275
|
+
const { table, rowKey, op, stateVersion } = v.parse(value, schema);
|
|
276
|
+
if (op === RESET_OP) {
|
|
277
|
+
// The current map of `TableSpec`s may not have the correct or complete information.
|
|
278
|
+
throw new SchemaChangeError(table);
|
|
279
|
+
}
|
|
280
|
+
const tableSpec = must(this.tables.get(table));
|
|
281
|
+
if (op === TRUNCATE_OP) {
|
|
282
|
+
truncates.startTruncate(tableSpec);
|
|
283
|
+
continue; // loop around to pull rows from the TruncateTracker.
|
|
284
|
+
}
|
|
285
|
+
assert(rowKey !== null);
|
|
286
|
+
const prevValue = truncates.getRowIfNotTruncated(tableSpec, rowKey) ?? null;
|
|
287
|
+
const nextValue = op === SET_OP ? this.curr.getRow(tableSpec, rowKey) : null;
|
|
288
|
+
// Sanity check detects if the diff is being accessed after the Snapshots have advanced.
|
|
289
|
+
this.checkThatDiffIsValid(stateVersion, op, prevValue, nextValue);
|
|
290
|
+
if (prevValue === null && nextValue === null) {
|
|
291
|
+
// Filter out no-op changes (e.g. a delete of a row that does not exist in prev).
|
|
292
|
+
// TODO: Consider doing this for deep-equal values.
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
return { value: { table, prevValue, nextValue } };
|
|
296
|
+
}
|
|
282
297
|
}
|
|
283
|
-
|
|
298
|
+
catch (e) {
|
|
299
|
+
// This control flow path is not covered by the return() method (i.e. `break`).
|
|
284
300
|
cleanup();
|
|
301
|
+
throw e;
|
|
285
302
|
}
|
|
286
303
|
},
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
truncates.iterThrow(err);
|
|
291
|
-
changes.throw?.(err);
|
|
292
|
-
return { value: undefined, done: true };
|
|
293
|
-
}
|
|
294
|
-
finally {
|
|
295
|
-
cleanup();
|
|
296
|
-
}
|
|
304
|
+
return: (value) => {
|
|
305
|
+
cleanup();
|
|
306
|
+
return { value, done: true };
|
|
297
307
|
},
|
|
298
308
|
};
|
|
299
309
|
}
|