@rocicorp/zero 1.12.0-canary.5 → 1.12.0-canary.7
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/replicache/src/btree/node.js +1 -1
- package/out/replicache/src/deleted-clients.d.ts.map +1 -1
- package/out/replicache/src/deleted-clients.js +2 -1
- package/out/replicache/src/deleted-clients.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +7 -3
- package/out/replicache/src/kv/sqlite-store.js.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js +17 -14
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/z2s/src/compiler.js +3 -3
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/zero/package.js +11 -11
- package/out/zero/package.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +9 -2
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +2 -2
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +33 -9
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js +49 -24
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +64 -7
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/fork-request.js +54 -0
- package/out/zero-cache/src/services/change-source/pg/fork-request.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js +6 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts +3 -0
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js +2 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +6 -6
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js +55 -20
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +27 -8
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js +80 -11
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js +42 -0
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js +5 -4
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +1 -2
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +19 -2
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +2 -1
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +27 -27
- package/out/zero-protocol/src/inspect-down.d.ts +81 -81
- package/out/zero-protocol/src/up.d.ts +60 -60
- package/package.json +11 -11
- package/out/shared/src/cache.d.ts +0 -22
- package/out/shared/src/cache.d.ts.map +0 -1
- package/out/shared/src/custom-key-map.d.ts +0 -26
- package/out/shared/src/custom-key-map.d.ts.map +0 -1
- package/out/shared/src/custom-key-set.d.ts +0 -25
- package/out/shared/src/custom-key-set.d.ts.map +0 -1
- package/out/shared/src/logging-test-utils.d.ts +0 -12
- package/out/shared/src/logging-test-utils.d.ts.map +0 -1
- package/out/shared/src/queue.d.ts +0 -53
- package/out/shared/src/queue.d.ts.map +0 -1
- package/out/shared/src/ring-buffer.d.ts +0 -42
- package/out/shared/src/ring-buffer.d.ts.map +0 -1
- package/out/shared/src/sorted-entries.d.ts +0 -2
- package/out/shared/src/sorted-entries.d.ts.map +0 -1
- package/out/zero/src/server/change-streamer.d.ts +0 -2
- package/out/zero/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero/src/server/main.d.ts +0 -2
- package/out/zero/src/server/main.d.ts.map +0 -1
- package/out/zero/src/server/reaper.d.ts +0 -2
- package/out/zero/src/server/reaper.d.ts.map +0 -1
- package/out/zero/src/server/replicator.d.ts +0 -2
- package/out/zero/src/server/replicator.d.ts.map +0 -1
- package/out/zero/src/server/syncer.d.ts +0 -2
- package/out/zero/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/auth/jwt.d.ts +0 -12
- package/out/zero-cache/src/auth/jwt.d.ts.map +0 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts +0 -17
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +0 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +0 -28
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +0 -1
- package/out/zero-cache/src/config/server-context.d.ts +0 -16
- package/out/zero-cache/src/config/server-context.d.ts.map +0 -1
- package/out/zero-cache/src/custom/fetch.d.ts +0 -38
- package/out/zero-cache/src/custom/fetch.d.ts.map +0 -1
- package/out/zero-cache/src/custom/metrics.d.ts +0 -31
- package/out/zero-cache/src/custom/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +0 -68
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +0 -1
- package/out/zero-cache/src/db/create.d.ts +0 -12
- package/out/zero-cache/src/db/create.d.ts.map +0 -1
- package/out/zero-cache/src/db/delete-lite-db.d.ts +0 -2
- package/out/zero-cache/src/db/delete-lite-db.d.ts.map +0 -1
- package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
- package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration-lite.d.ts +0 -78
- package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration.d.ts +0 -80
- package/out/zero-cache/src/db/migration.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy-binary.d.ts +0 -101
- package/out/zero-cache/src/db/pg-copy-binary.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy.d.ts +0 -30
- package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-type-parser.d.ts +0 -15
- package/out/zero-cache/src/db/pg-type-parser.d.ts.map +0 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +0 -205
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +0 -1
- package/out/zero-cache/src/db/warmup.d.ts +0 -4
- package/out/zero-cache/src/db/warmup.d.ts.map +0 -1
- package/out/zero-cache/src/observability/events.d.ts +0 -15
- package/out/zero-cache/src/observability/events.d.ts.map +0 -1
- package/out/zero-cache/src/observability/log-throttle.d.ts +0 -44
- package/out/zero-cache/src/observability/log-throttle.d.ts.map +0 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts +0 -21
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/change-streamer.d.ts +0 -3
- package/out/zero-cache/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +0 -71
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +0 -1
- package/out/zero-cache/src/server/main.d.ts +0 -3
- package/out/zero-cache/src/server/main.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-diag-logger.d.ts +0 -16
- package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-start.d.ts +0 -3
- package/out/zero-cache/src/server/otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/priority-op.d.ts +0 -8
- package/out/zero-cache/src/server/priority-op.d.ts.map +0 -1
- package/out/zero-cache/src/server/reaper.d.ts +0 -3
- package/out/zero-cache/src/server/reaper.d.ts.map +0 -1
- package/out/zero-cache/src/server/replicator.d.ts +0 -10
- package/out/zero-cache/src/server/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/server/slot-keeper.d.ts +0 -26
- package/out/zero-cache/src/server/slot-keeper.d.ts.map +0 -1
- package/out/zero-cache/src/server/syncer-assigner.d.ts +0 -14
- package/out/zero-cache/src/server/syncer-assigner.d.ts.map +0 -1
- package/out/zero-cache/src/server/syncer.d.ts +0 -3
- package/out/zero-cache/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/server/worker-dispatcher.d.ts +0 -17
- package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +0 -1
- package/out/zero-cache/src/services/analyze.d.ts +0 -9
- package/out/zero-cache/src/services/analyze.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/change-source.d.ts +0 -32
- package/out/zero-cache/src/services/change-source/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +0 -57
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts +0 -55
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts +0 -24
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts +0 -115
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +0 -25
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +0 -36
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts +0 -65
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +0 -115
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -155
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +0 -17
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts +0 -28
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts +0 -76
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +0 -169
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts +0 -16
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts +0 -15
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +0 -127
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +0 -9
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts +0 -68
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts +0 -72
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts +0 -50
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +0 -14
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +0 -18
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts +0 -98
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts +0 -158
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts +0 -19
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -78
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -143
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -586
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts +0 -24
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +0 -49
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts +0 -53
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts +0 -88
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts +0 -243
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +0 -152
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +0 -11
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts +0 -92
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +0 -36
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +0 -22
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +0 -99
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +0 -83
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts +0 -121
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +0 -73
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +0 -62
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +0 -114
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +0 -276
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts +0 -485
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +0 -194
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +0 -52
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +0 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +0 -57
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +0 -77
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -78
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/metrics.d.ts +0 -31
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts +0 -24
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -40
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +0 -63
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts +0 -368
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +0 -56
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts +0 -37
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts +0 -82
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +0 -25
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -9
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts +0 -71
- package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +0 -86
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +0 -55
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +0 -132
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts +0 -120
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +0 -111
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +0 -1
- package/out/zero-cache/src/services/run-ast.d.ts +0 -39
- package/out/zero-cache/src/services/run-ast.d.ts.map +0 -1
- package/out/zero-cache/src/services/runner.d.ts +0 -19
- package/out/zero-cache/src/services/runner.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts +0 -26
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts +0 -79
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +0 -97
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts +0 -18
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts +0 -184
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +0 -22
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +0 -128
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -294
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts +0 -81
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +0 -45
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts +0 -53
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +0 -34
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -296
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts +0 -7
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts +0 -132
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts +0 -55
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts +0 -28
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts +0 -25
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts +0 -89
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +0 -90
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +0 -86
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +0 -5
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +0 -563
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts +0 -95
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +0 -420
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts +0 -2
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts +0 -10
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +0 -133
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +0 -1
- package/out/zero-cache/src/types/downstream.d.ts +0 -11
- package/out/zero-cache/src/types/downstream.d.ts.map +0 -1
- package/out/zero-cache/src/types/error-with-level.d.ts +0 -9
- package/out/zero-cache/src/types/error-with-level.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-patch.d.ts +0 -21
- package/out/zero-cache/src/types/pg-patch.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-versions.d.ts +0 -3
- package/out/zero-cache/src/types/pg-versions.d.ts.map +0 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts +0 -18
- package/out/zero-cache/src/types/poke-chunk.d.ts.map +0 -1
- package/out/zero-cache/src/types/streams.d.ts +0 -115
- package/out/zero-cache/src/types/streams.d.ts.map +0 -1
- package/out/zero-cache/src/types/subscription.d.ts +0 -197
- package/out/zero-cache/src/types/subscription.d.ts.map +0 -1
- package/out/zero-cache/src/workers/connect-params.d.ts +0 -28
- package/out/zero-cache/src/workers/connect-params.d.ts.map +0 -1
- package/out/zero-cache/src/workers/connection.d.ts +0 -77
- package/out/zero-cache/src/workers/connection.d.ts.map +0 -1
- package/out/zero-cache/src/workers/replicator.d.ts +0 -57
- package/out/zero-cache/src/workers/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +0 -14
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer.d.ts +0 -67
- package/out/zero-cache/src/workers/syncer.d.ts.map +0 -1
- package/out/zero-events/src/index.d.ts +0 -27
- package/out/zero-events/src/index.d.ts.map +0 -1
- package/out/zero-events/src/json.d.ts +0 -20
- package/out/zero-events/src/json.d.ts.map +0 -1
- package/out/zero-events/src/status.d.ts +0 -144
- package/out/zero-events/src/status.d.ts.map +0 -1
- package/out/zqlite/src/database-storage.d.ts +0 -43
- package/out/zqlite/src/database-storage.d.ts.map +0 -1
- package/out/zqlite/src/explain-queries.d.ts +0 -4
- package/out/zqlite/src/explain-queries.d.ts.map +0 -1
- package/out/zqlite/src/internal/sql-inline.d.ts +0 -13
- package/out/zqlite/src/internal/sql-inline.d.ts.map +0 -1
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts +0 -72
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts +0 -17
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts +0 -121
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +0 -1
|
@@ -1,420 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import { type JSONValue } from '../../../../shared/src/bigint-json.ts';
|
|
3
|
-
import type { Row } from '../../../../zero-protocol/src/data.ts';
|
|
4
|
-
import type { PrimaryKey } from '../../../../zero-types/src/schema.ts';
|
|
5
|
-
import { type SQLiteRow } from '../../../../zqlite/src/table-source.ts';
|
|
6
|
-
import type { LiteAndZqlSpec, LiteTableSpecWithKeysAndVersion } from '../../db/specs.ts';
|
|
7
|
-
import { StatementRunner } from '../../db/statements.ts';
|
|
8
|
-
import { type RowKey } from '../../types/row-key.ts';
|
|
9
|
-
import type { AppID } from '../../types/shards.ts';
|
|
10
|
-
import type { SnapshotRowCache } from './snapshot-row-cache.ts';
|
|
11
|
-
/**
|
|
12
|
-
* A `Snapshotter` manages the progression of database snapshots for a
|
|
13
|
-
* ViewSyncer.
|
|
14
|
-
*
|
|
15
|
-
* The Replicator and ViewSyncers operate on the same SQLite file, with the
|
|
16
|
-
* Replicator being the sole writer to the database. The IVM logic in
|
|
17
|
-
* ViewSyncers, however, rely on incrementally applying changes to the DB to
|
|
18
|
-
* update the state of its pipelines.
|
|
19
|
-
*
|
|
20
|
-
* To avoid coupling the progress of the Replicator and all IVM pipelines on
|
|
21
|
-
* each other, ViewSyncers operate on ephemeral forks of the database by holding
|
|
22
|
-
* [concurrent](https://sqlite.org/src/doc/begin-concurrent/doc/begin_concurrent.md)
|
|
23
|
-
* snapshots of the database and simulating (but ultimately rolling back)
|
|
24
|
-
* mutations on these snapshots.
|
|
25
|
-
*
|
|
26
|
-
* Example:
|
|
27
|
-
* 1. ViewSyncer takes `snapshot_a` at version `t1` of the database and
|
|
28
|
-
* hydrates its pipeline(s).
|
|
29
|
-
* 2. Replicator applies a new transaction to the database and notifies
|
|
30
|
-
* subscribers.
|
|
31
|
-
* 3. ViewSyncer takes `snapshot_b` at `t2`, and queries the `ChangeLog` at
|
|
32
|
-
* that snapshot for changes since `t1`.
|
|
33
|
-
* 4. ViewSyncer applies those changes to `snapshot_a` for IVM, but does not
|
|
34
|
-
* commit them. (Recall that the Replicator is the sole writer to the db, so
|
|
35
|
-
* the ViewSyncer never commits any writes.)
|
|
36
|
-
* 5. Replicator applies the next transaction and advances the database to `t3`.
|
|
37
|
-
* 6. ViewSyncer rolls back `snapshot_a` and opens `snapshot_c` at `t3`, using
|
|
38
|
-
* `snapshot_b` to simulate changes from `t2` to `t3`.
|
|
39
|
-
*
|
|
40
|
-
* ```
|
|
41
|
-
* Replicator: t1 --------------> t2 --------------> t3 --------------->
|
|
42
|
-
* ViewSyncer: [snapshot_a] ----> [snapshot_b] ----> [snapshot_c]
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* Note that the Replicator (and ViewSyncers) do not wait on the progress of
|
|
46
|
-
* other ViewSyncers. If a ViewSyncer is busy hydrating at `t1`, the Replicator
|
|
47
|
-
* and other ViewSyncers can progress through `t2`, `t3`, etc. independently,
|
|
48
|
-
* as the busy ViewSyncer simply takes its own snapshot when it is ready.
|
|
49
|
-
*
|
|
50
|
-
* ```
|
|
51
|
-
* Replicator: t1 --------------> t2 --------------> t3 --------------->
|
|
52
|
-
* ViewSyncer1: [snapshot_a] ----> [snapshot_b] ----> [snapshot_c]
|
|
53
|
-
* ViewSyncer2: [.......... snapshot_a ..........] ----> [snapshot_b]
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* To minimize Database connections (and statement preparation, etc.), the
|
|
57
|
-
* Snapshotter reuses the connection from the previous (rolled back)
|
|
58
|
-
* snapshot when opening the new one.
|
|
59
|
-
*
|
|
60
|
-
* ```
|
|
61
|
-
* Replicator: t1 --------------> t2 --------------> t3 --------------->
|
|
62
|
-
* ViewSyncer: [snapshot_a] ----> [snapshot_b] ----> [snapshot_c]
|
|
63
|
-
* (conn_1) (conn_2) (conn_1)
|
|
64
|
-
* ```
|
|
65
|
-
*
|
|
66
|
-
* In this manner, each ViewSyncer uses two connections that continually
|
|
67
|
-
* "leapfrog" each other to replay the timeline of changes in isolation from
|
|
68
|
-
* the Replicator and other ViewSyncers.
|
|
69
|
-
*/
|
|
70
|
-
export declare class Snapshotter {
|
|
71
|
-
#private;
|
|
72
|
-
/**
|
|
73
|
-
* @param rowCache An optional worker-wide {@link SnapshotRowCache} through
|
|
74
|
-
* which the row reads performed when iterating over a
|
|
75
|
-
* {@link SnapshotDiff} are shared with the other Snapshotters
|
|
76
|
-
* (i.e. client groups) on the worker.
|
|
77
|
-
*/
|
|
78
|
-
constructor(lc: LogContext, dbFile: string, { appID }: AppID, pageCacheSizeKib?: number, rowCache?: SnapshotRowCache);
|
|
79
|
-
/**
|
|
80
|
-
* Initializes the snapshot to the current head of the database. This must be
|
|
81
|
-
* only be called once. The state of whether a Snapshotter has been initialized
|
|
82
|
-
* can be determined by calling {@link initialized()}.
|
|
83
|
-
*/
|
|
84
|
-
init(): this;
|
|
85
|
-
initialized(): boolean;
|
|
86
|
-
/** Returns the current snapshot. Asserts if {@link initialized()} is false. */
|
|
87
|
-
current(): Snapshot;
|
|
88
|
-
/**
|
|
89
|
-
* Advances to the head of the Database, returning a diff between the
|
|
90
|
-
* previously current Snapshot and a new Snapshot at head. This is called
|
|
91
|
-
* in response to a notification from a Replicator subscription. Subsequent
|
|
92
|
-
* calls to {@link current()} return the new Snapshot. Note that the Snapshotter
|
|
93
|
-
* must be initialized before advancing.
|
|
94
|
-
*
|
|
95
|
-
* The returned {@link SnapshotDiff} contains snapshots at the endpoints
|
|
96
|
-
* of the database timeline. Iterating over the diff generates a sequence
|
|
97
|
-
* of {@link Change}s between the two snapshots.
|
|
98
|
-
*
|
|
99
|
-
* Note that this sequence is not chronological; rather, the sequence is
|
|
100
|
-
* ordered by `<table, row-key>`, such that a row can appear at most once
|
|
101
|
-
* in the common case, or twice if its table is `TRUNCATE`'d and a new value
|
|
102
|
-
* is subsequently `INSERT`'ed. This results in dropping most intermediate
|
|
103
|
-
* changes to a row and bounds the amount of work needed to catch up;
|
|
104
|
-
* however, as a consequence, a consistent database state is only guaranteed
|
|
105
|
-
* when the sequence has been fully consumed.
|
|
106
|
-
*
|
|
107
|
-
* Note that Change generation relies on the state of the underlying
|
|
108
|
-
* database connections, and because the connection for the previous snapshot
|
|
109
|
-
* is reused to produce the next snapshot, the diff object is only valid
|
|
110
|
-
* until the next call to `advance()`.
|
|
111
|
-
*
|
|
112
|
-
* It is okay for the caller to apply `Change`s to the `prev` snapshot
|
|
113
|
-
* during the iteration (e.g. this is necessary for IVM); the remainder
|
|
114
|
-
* of the iteration is not affected because a given row can appear at most
|
|
115
|
-
* once in the sequence (with the exception being TRUNCATE, after which the
|
|
116
|
-
* deleted rows can be re-inserted, but this will also behave correctly if
|
|
117
|
-
* the changes are applied).
|
|
118
|
-
*
|
|
119
|
-
* Once the changes have been applied, however, a _subsequent_ iteration
|
|
120
|
-
* will not produce the correct results. In order to perform multiple
|
|
121
|
-
* change-applying iterations, the caller must (1) create a save point
|
|
122
|
-
* on `prev` before each iteration, and (2) rollback to the save point after
|
|
123
|
-
* the iteration.
|
|
124
|
-
*
|
|
125
|
-
* @param prevWrites How the caller writes to `prev` during the iteration,
|
|
126
|
-
* which determines which `prev` reads can be shared through the
|
|
127
|
-
* {@link SnapshotRowCache}. See {@link PrevWrites}.
|
|
128
|
-
*/
|
|
129
|
-
advance(syncableTables: Map<string, LiteAndZqlSpec>, allTableNames: Set<string>, observedTables?: TableFilter | undefined, prevWrites?: PrevWrites): SnapshotDiff;
|
|
130
|
-
/**
|
|
131
|
-
* The diff between the two snapshots of the last
|
|
132
|
-
* {@link advanceWithoutDiff()}, as {@link advance()} returns it.
|
|
133
|
-
*
|
|
134
|
-
* @param counts The counts of the change log entries between the two
|
|
135
|
-
* snapshots, if the caller has counted them already (see
|
|
136
|
-
* `Snapshot.countChangesSince()`). The diff then does not count
|
|
137
|
-
* them again.
|
|
138
|
-
* @param readTables If set, only the change log entries of these tables
|
|
139
|
-
* (and of the permissions table) are read, along with the
|
|
140
|
-
* table-wide ops of every table, where `observedTables` reads the
|
|
141
|
-
* entries of every table and skips those it does not have. For a
|
|
142
|
-
* caller that does not need the changes of the other tables, this
|
|
143
|
-
* saves reading and parsing their entries. This requires `counts`.
|
|
144
|
-
* If they show that there is no entry of these tables and no
|
|
145
|
-
* table-wide op, the change log is not read at all, and the
|
|
146
|
-
* diff's `changes` is 0.
|
|
147
|
-
*/
|
|
148
|
-
diff(syncableTables: Map<string, LiteAndZqlSpec>, allTableNames: Set<string>, observedTables?: TableFilter | undefined, prevWrites?: PrevWrites, counts?: ChangeLogCounts | undefined, readTables?: Iterable<string> | undefined): SnapshotDiff;
|
|
149
|
-
advanceWithoutDiff(): {
|
|
150
|
-
prev: Snapshot;
|
|
151
|
-
curr: Snapshot;
|
|
152
|
-
};
|
|
153
|
-
/**
|
|
154
|
-
* The reset of the pipelines that iterating over the changes from the
|
|
155
|
-
* previous snapshot to the current one ends in, if it does: the first of
|
|
156
|
-
* a schema change, a truncation, and a change of the permissions. It is
|
|
157
|
-
* found without iterating, so that a caller that would reset the pipelines
|
|
158
|
-
* anyway does not first process the changes that come before it.
|
|
159
|
-
*
|
|
160
|
-
* If there is none, iterating over a {@link diff()} of the two snapshots
|
|
161
|
-
* does not throw a {@link ResetPipelinesSignal}, and can be stopped at any
|
|
162
|
-
* point without missing one.
|
|
163
|
-
*
|
|
164
|
-
* @param counts The changes from the previous snapshot to the current
|
|
165
|
-
* one, from which it is known whether there is anything to look
|
|
166
|
-
* for.
|
|
167
|
-
*/
|
|
168
|
-
pendingReset(syncableTables: Map<string, LiteAndZqlSpec>, counts: ChangeLogCounts): ResetPipelinesSignal | undefined;
|
|
169
|
-
/**
|
|
170
|
-
* Releases the previous snapshot, i.e. the `prev` of the last
|
|
171
|
-
* {@link advance()} or {@link advanceWithoutDiff()}. It is only read
|
|
172
|
-
* while the diff that it is the start of is iterated over, but its read
|
|
173
|
-
* transaction otherwise stays open until the next advance, which keeps
|
|
174
|
-
* the replica from checkpointing its write-ahead log past it. A diff that
|
|
175
|
-
* starts at it can no longer be iterated over.
|
|
176
|
-
*/
|
|
177
|
-
releasePrevious(): void;
|
|
178
|
-
/**
|
|
179
|
-
* Call this to close the database connections when the Snapshotter is
|
|
180
|
-
* no longer needed.
|
|
181
|
-
*/
|
|
182
|
-
destroy(): void;
|
|
183
|
-
}
|
|
184
|
-
export type Change = {
|
|
185
|
-
readonly table: string;
|
|
186
|
-
/**
|
|
187
|
-
* If this change represents a remove the row to remove,
|
|
188
|
-
* if nextValue is not null then all rows that have a unique constraint
|
|
189
|
-
* violation with nextValue.
|
|
190
|
-
* In both cases these rows should be removed.
|
|
191
|
-
*/
|
|
192
|
-
readonly prevValues: Readonly<Row>[];
|
|
193
|
-
readonly nextValue: Readonly<Row> | null;
|
|
194
|
-
readonly rowKey: RowKey;
|
|
195
|
-
};
|
|
196
|
-
/** See `Snapshot.countChangesSince()`. */
|
|
197
|
-
/** An entry of {@link Snapshot.changesSince}, in the order of its SELECT. */
|
|
198
|
-
type RawChangeLogEntry = readonly [
|
|
199
|
-
stateVersion: string,
|
|
200
|
-
table: string,
|
|
201
|
-
rowKey: string,
|
|
202
|
-
op: string
|
|
203
|
-
];
|
|
204
|
-
/** Where an entry is in the order that the change log is read in. */
|
|
205
|
-
type ChangeLogPosition = {
|
|
206
|
-
readonly stateVersion: string;
|
|
207
|
-
readonly pos: number;
|
|
208
|
-
};
|
|
209
|
-
export type ChangeLogCounts = {
|
|
210
|
-
/** The number of entries. */
|
|
211
|
-
readonly total: number;
|
|
212
|
-
/** The number of them that are table-wide ops (a RESET or TRUNCATE). */
|
|
213
|
-
readonly tableWideOps: number;
|
|
214
|
-
/**
|
|
215
|
-
* The number of entries of each table. If {@link sampled}, these are
|
|
216
|
-
* estimates, and a table with few entries may be missing.
|
|
217
|
-
*/
|
|
218
|
-
readonly byTable: ReadonlyMap<string, number>;
|
|
219
|
-
/** Whether {@link byTable} was estimated from a sample of the entries. */
|
|
220
|
-
readonly sampled: boolean;
|
|
221
|
-
};
|
|
222
|
-
/**
|
|
223
|
-
* The most change log entries that are read to count a batch's changes by
|
|
224
|
-
* table. Reading an entry costs microseconds, and nothing else runs on the
|
|
225
|
-
* sync worker in the meantime, so the cost of counting must not grow with
|
|
226
|
-
* the number of changes that a client group has to catch up on.
|
|
227
|
-
*/
|
|
228
|
-
export declare const CHANGE_LOG_SAMPLE_SIZE = 1000;
|
|
229
|
-
export interface TableFilter {
|
|
230
|
-
has(table: string): boolean;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* How the caller of {@link Snapshotter.advance()} writes the changes of a
|
|
234
|
-
* {@link SnapshotDiff} to its `prev` snapshot while iterating over it.
|
|
235
|
-
*
|
|
236
|
-
* A `prev` read for a table with a single unique key (its primary key)
|
|
237
|
-
* cannot observe earlier changes of the iteration, since a row key appears
|
|
238
|
-
* once in the diff. A read for a table with other unique keys can, because
|
|
239
|
-
* the rows it returns may have been displaced or edited by earlier changes.
|
|
240
|
-
*
|
|
241
|
-
* * `uniform`: every caller applies every change, so such a read depends on
|
|
242
|
-
* the `<prev, curr>` versions of the diff, and is shared on that basis.
|
|
243
|
-
* * `divergent`: callers apply different subsets of the changes (e.g. the
|
|
244
|
-
* pipeline driver skips changes that no pipeline can observe), so such a
|
|
245
|
-
* read depends on the caller and is not shared.
|
|
246
|
-
* * `none`: the caller does not write to `prev` (e.g. IVM derivation is
|
|
247
|
-
* held in memory), so every read depends solely on `prev.version`.
|
|
248
|
-
*/
|
|
249
|
-
export type PrevWrites = 'uniform' | 'divergent' | 'none';
|
|
250
|
-
/**
|
|
251
|
-
* Represents the difference between two database Snapshots.
|
|
252
|
-
* Iterating over the object will produce a sequence of {@link Change}s
|
|
253
|
-
* between the two snapshots.
|
|
254
|
-
*
|
|
255
|
-
* See {@link Snapshotter.advance()} for semantics and usage.
|
|
256
|
-
*/
|
|
257
|
-
export type DiffTimingStats = {
|
|
258
|
-
changeLogReadMs: number;
|
|
259
|
-
rowReadMs: number;
|
|
260
|
-
parseMs: number;
|
|
261
|
-
totalDiffMs: number;
|
|
262
|
-
};
|
|
263
|
-
export interface SnapshotDiff extends Iterable<Change> {
|
|
264
|
-
readonly prev: {
|
|
265
|
-
readonly db: StatementRunner;
|
|
266
|
-
readonly version: string;
|
|
267
|
-
};
|
|
268
|
-
readonly curr: {
|
|
269
|
-
readonly db: StatementRunner;
|
|
270
|
-
readonly version: string;
|
|
271
|
-
};
|
|
272
|
-
/**
|
|
273
|
-
* The raw number of ChangeLog entries between the snapshots, before filtering
|
|
274
|
-
* out unobserved/non-syncable tables or no-op changes. Progress against this
|
|
275
|
-
* total must use {@link changesScanned}, rather than the number of yielded
|
|
276
|
-
* changes. Table-wide operations abort iteration and reset the pipelines.
|
|
277
|
-
*/
|
|
278
|
-
readonly changes: number;
|
|
279
|
-
/** The number of raw ChangeLog entries read so far, including skipped entries. */
|
|
280
|
-
readonly changesScanned: number;
|
|
281
|
-
/**
|
|
282
|
-
* The raw ChangeLog entries read so far, by table. Like
|
|
283
|
-
* {@link changesScanned}, this includes the entries that are not yielded,
|
|
284
|
-
* so it counts the same entries as {@link ChangeLogCounts.byTable} does.
|
|
285
|
-
*/
|
|
286
|
-
readonly changesScannedByTable: ReadonlyMap<string, number>;
|
|
287
|
-
/** The scanned entries omitted because their table is unobserved/non-syncable or the change is a no-op. */
|
|
288
|
-
readonly changesSkipped: number;
|
|
289
|
-
/**
|
|
290
|
-
* The scanned entries whose rows were looked up in the snapshots. Unlike
|
|
291
|
-
* the entries that are yielded, this includes the no-op changes, which are
|
|
292
|
-
* only known to be that from their rows.
|
|
293
|
-
*/
|
|
294
|
-
readonly changesLookedUp: number;
|
|
295
|
-
/** Timing metrics recorded during diff iteration. */
|
|
296
|
-
readonly stats?: DiffTimingStats | undefined;
|
|
297
|
-
/**
|
|
298
|
-
* Overrides the `prevWrites` passed to {@link Snapshotter.advance()}, for a
|
|
299
|
-
* caller that decides how to write to `prev` once it knows the number of
|
|
300
|
-
* {@link changes}. Must be called before the diff is iterated, except to
|
|
301
|
-
* switch to `divergent`, which can be done between any two changes: it
|
|
302
|
-
* shares only the reads that no write to `prev` can affect.
|
|
303
|
-
*/
|
|
304
|
-
setPrevWrites(prevWrites: PrevWrites): void;
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Thrown during an iteration of a {@link SnapshotDiff} when a schema
|
|
308
|
-
* change or truncate is encountered, which result in aborting the
|
|
309
|
-
* advancement and resetting / rehydrating the pipelines.
|
|
310
|
-
*/
|
|
311
|
-
export type ResetPipelinesReason = 'advancement-timeout' | 'scalar-subquery' | 'schema-change' | 'truncation' | 'permissions-change';
|
|
312
|
-
export declare class ResetPipelinesSignal extends Error {
|
|
313
|
-
readonly name = "ResetPipelinesSignal";
|
|
314
|
-
readonly reason: ResetPipelinesReason;
|
|
315
|
-
readonly breakdown?: string | undefined;
|
|
316
|
-
constructor(msg: string, reason: ResetPipelinesReason, breakdown?: string);
|
|
317
|
-
}
|
|
318
|
-
declare class Snapshot {
|
|
319
|
-
#private;
|
|
320
|
-
static create(lc: LogContext, dbFile: string, appID: string, pageCacheSizeKib: number | undefined): Snapshot;
|
|
321
|
-
readonly db: StatementRunner;
|
|
322
|
-
readonly version: string;
|
|
323
|
-
/**
|
|
324
|
-
* @param begun Whether `db` is already in a `BEGIN CONCURRENT` transaction
|
|
325
|
-
* that has not read anything.
|
|
326
|
-
*/
|
|
327
|
-
constructor(db: StatementRunner, appID: string, begun?: boolean);
|
|
328
|
-
numChangesSince(prevVersion: string): any;
|
|
329
|
-
/**
|
|
330
|
-
* Counts the change log entries after `prevVersion`. The change log keeps
|
|
331
|
-
* the latest entry of a row, so these are counts of the rows that changed,
|
|
332
|
-
* which is what a diff from `prevVersion` to this snapshot reads.
|
|
333
|
-
*
|
|
334
|
-
* The total, and the number of table-wide ops (a RESET or TRUNCATE), are
|
|
335
|
-
* exact, and are counted from the index alone. The counts by table are
|
|
336
|
-
* exact if there are at most `sampleSize` entries. Otherwise they are
|
|
337
|
-
* estimated from the newest `sampleSize` entries, so that at most that
|
|
338
|
-
* many entries are read however many there are.
|
|
339
|
-
*/
|
|
340
|
-
countChangesSince(prevVersion: string, sampleSize?: number): ChangeLogCounts;
|
|
341
|
-
/**
|
|
342
|
-
* Whether an entry of `table` was logged after `prevVersion`. This reads
|
|
343
|
-
* the table's entries in the change log, however old, so it is for tables
|
|
344
|
-
* with few rows.
|
|
345
|
-
*/
|
|
346
|
-
tableChangedSince(table: string, prevVersion: string): boolean;
|
|
347
|
-
/**
|
|
348
|
-
* Whether a table-wide RESET op (i.e. a schema change) was logged after
|
|
349
|
-
* `prevVersion`. Table specs computed at or before `prevVersion` are
|
|
350
|
-
* stale with respect to this snapshot if so.
|
|
351
|
-
*/
|
|
352
|
-
schemaChangedSince(prevVersion: string): boolean;
|
|
353
|
-
/**
|
|
354
|
-
* Whether any table-wide op (i.e. a RESET or TRUNCATE) was logged after
|
|
355
|
-
* `prevVersion`. Iterating over a diff ending at this snapshot will
|
|
356
|
-
* abort with a {@link ResetPipelinesSignal} if so.
|
|
357
|
-
*/
|
|
358
|
-
hasTableWideOpSince(prevVersion: string): boolean;
|
|
359
|
-
/**
|
|
360
|
-
* The first table-wide op (a schema change or a truncation) logged after
|
|
361
|
-
* `prevVersion`, in the order that {@link changesSince} reads the entries.
|
|
362
|
-
*/
|
|
363
|
-
firstTableWideOpSince(prevVersion: string): ChangeLogPosition & {
|
|
364
|
-
table: string;
|
|
365
|
-
op: string;
|
|
366
|
-
};
|
|
367
|
-
/**
|
|
368
|
-
* The entries of `table` logged after `prevVersion`, in the order that
|
|
369
|
-
* {@link changesSince} reads them. For a table with few rows.
|
|
370
|
-
*/
|
|
371
|
-
entriesSince(table: string, prevVersion: string): (ChangeLogPosition & {
|
|
372
|
-
rowKey: string | null;
|
|
373
|
-
op: string;
|
|
374
|
-
})[];
|
|
375
|
-
/**
|
|
376
|
-
* @param tables If set, only the entries of these tables, and the
|
|
377
|
-
* table-wide ops of every table, are read.
|
|
378
|
-
*/
|
|
379
|
-
changesSince(prevVersion: string, tables?: string | undefined): {
|
|
380
|
-
changes: IterableIterator<RawChangeLogEntry>;
|
|
381
|
-
cleanup: () => void;
|
|
382
|
-
};
|
|
383
|
-
/**
|
|
384
|
-
* Reads the row with the given `rowKey`, or `undefined` if it does not
|
|
385
|
-
* exist.
|
|
386
|
-
*
|
|
387
|
-
* @param cache An optional {@link SnapshotRowCache} through which to
|
|
388
|
-
* perform the read, along with the `tag` that identifies the
|
|
389
|
-
* version(s) of the replica that the result depends on.
|
|
390
|
-
*/
|
|
391
|
-
getRow(table: LiteTableSpecWithKeysAndVersion, rowKey: JSONValue, cache?: SnapshotRowCache, tag?: string): Readonly<Record<string, import("../../../../zqlite/src/table-source.ts").SQLiteValue>>;
|
|
392
|
-
/**
|
|
393
|
-
* Reads the rows that conflict with `row` on any of the given unique
|
|
394
|
-
* `keys` (which includes the row with the same primary key, if any).
|
|
395
|
-
*
|
|
396
|
-
* @param cache An optional {@link SnapshotRowCache} through which to
|
|
397
|
-
* perform the read, along with the `tag` that identifies the
|
|
398
|
-
* version(s) of the replica that the result depends on.
|
|
399
|
-
*/
|
|
400
|
-
getRows(table: LiteTableSpecWithKeysAndVersion, keys: PrimaryKey[], row: SQLiteRow, cache?: SnapshotRowCache, tag?: string): Readonly<Record<string, import("../../../../zqlite/src/table-source.ts").SQLiteValue>>[];
|
|
401
|
-
/**
|
|
402
|
-
* Whether the snapshot has been released, or its connection reset to a
|
|
403
|
-
* newer snapshot (i.e. via {@link release()} or {@link resetToHead()}),
|
|
404
|
-
* after which reads no longer reflect {@link version}.
|
|
405
|
-
*/
|
|
406
|
-
get reset(): boolean;
|
|
407
|
-
/**
|
|
408
|
-
* Ends the snapshot's read transaction, after which reads no longer
|
|
409
|
-
* reflect {@link version}. An open read transaction keeps SQLite from
|
|
410
|
-
* checkpointing the write-ahead log past the snapshot, so a snapshot that
|
|
411
|
-
* is no longer read should not be left open.
|
|
412
|
-
*/
|
|
413
|
-
release(): void;
|
|
414
|
-
resetToHead(): Snapshot;
|
|
415
|
-
}
|
|
416
|
-
export declare class InvalidDiffError extends Error {
|
|
417
|
-
constructor(msg: string);
|
|
418
|
-
}
|
|
419
|
-
export {};
|
|
420
|
-
//# sourceMappingURL=snapshotter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/tracer.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,qCAA0C,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as v from '../../../../shared/src/valita.ts';
|
|
2
|
-
declare const ttlClockTag: unique symbol;
|
|
3
|
-
export type TTLClock = {
|
|
4
|
-
[ttlClockTag]: true;
|
|
5
|
-
};
|
|
6
|
-
export declare const ttlClockSchema: v.Type<TTLClock>;
|
|
7
|
-
export declare function ttlClockAsNumber(ttlClock: TTLClock): number;
|
|
8
|
-
export declare function ttlClockFromNumber(ttlClock: number): TTLClock;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=ttl-clock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ttl-clock.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/ttl-clock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AAEtD,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG;IAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAC,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAoC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEhF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAE7D"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { ChangeDesiredQueriesMessage } from '../../../../zero-protocol/src/change-desired-queries.ts';
|
|
3
|
-
import type { InitConnectionMessage } from '../../../../zero-protocol/src/connect.ts';
|
|
4
|
-
import type { DeleteClientsMessage } from '../../../../zero-protocol/src/delete-clients.ts';
|
|
5
|
-
import type { UnparsedInspectUpMessage } from '../../../../zero-protocol/src/inspect-up.ts';
|
|
6
|
-
import type { UpdateAuthMessage } from '../../../../zero-protocol/src/update-auth.ts';
|
|
7
|
-
import { type Auth } from '../../auth/auth.ts';
|
|
8
|
-
import type { NormalizedZeroConfig } from '../../config/normalize.ts';
|
|
9
|
-
import type { CustomQueryTransformer } from '../../custom-queries/transform-query.ts';
|
|
10
|
-
import type { InspectorDelegate } from '../../server/inspector-delegate.ts';
|
|
11
|
-
import type { ViewSyncerDownstream } from '../../types/downstream.ts';
|
|
12
|
-
import type { LexiVersion } from '../../types/lexi-version.ts';
|
|
13
|
-
import type { PostgresDB } from '../../types/pg.ts';
|
|
14
|
-
import type { ShardID } from '../../types/shards.ts';
|
|
15
|
-
import type { Source } from '../../types/streams.ts';
|
|
16
|
-
import { Subscription } from '../../types/subscription.ts';
|
|
17
|
-
import type { ReplicaState } from '../replicator/replicator.ts';
|
|
18
|
-
import type { ActivityBasedService } from '../service.ts';
|
|
19
|
-
import type { BatchPacer } from './batch-pacer.ts';
|
|
20
|
-
import type { ConnectionContextManager, ConnectionSelector } from './connection-context-manager.ts';
|
|
21
|
-
import type { DrainCoordinator } from './drain-coordinator.ts';
|
|
22
|
-
import { type MonotonicClock } from './hydration-budget.ts';
|
|
23
|
-
import type { PipelineDriver } from './pipeline-driver.ts';
|
|
24
|
-
import { type ShouldCutOffPush } from './push-cutoff.ts';
|
|
25
|
-
import { type ClientQueryRecord, type CustomQueryRecord, type InternalQueryRecord } from './schema/types.ts';
|
|
26
|
-
import { type TTLClock } from './ttl-clock.ts';
|
|
27
|
-
export interface ViewSyncer {
|
|
28
|
-
initConnection(selector: ConnectionSelector, initConnectionMessage: InitConnectionMessage): Source<ViewSyncerDownstream>;
|
|
29
|
-
changeDesiredQueries(selector: ConnectionSelector, msg: ChangeDesiredQueriesMessage): Promise<void>;
|
|
30
|
-
deleteClients(selector: ConnectionSelector, msg: DeleteClientsMessage): Promise<string[]>;
|
|
31
|
-
inspect(selector: ConnectionSelector, msg: UnparsedInspectUpMessage): Promise<void>;
|
|
32
|
-
updateAuth(selector: ConnectionSelector, msg: UpdateAuthMessage, authRevisionChanged: boolean): Promise<void>;
|
|
33
|
-
connContextManager: ConnectionContextManager;
|
|
34
|
-
readonly queryCount: number;
|
|
35
|
-
readonly rowCount: number;
|
|
36
|
-
readonly createdAtMs: number;
|
|
37
|
-
readonly servedVersion: string | null;
|
|
38
|
-
readonly servingLagEligible: boolean;
|
|
39
|
-
pipelineHashes(): readonly PipelineHashInfo[];
|
|
40
|
-
readonly clientSchemaKey: string | undefined;
|
|
41
|
-
}
|
|
42
|
-
export type PipelineHashInfo = {
|
|
43
|
-
readonly transformationHash: string;
|
|
44
|
-
readonly internal: boolean;
|
|
45
|
-
readonly queryName: string | undefined;
|
|
46
|
-
};
|
|
47
|
-
export type SyncContext = ConnectionSelector & {
|
|
48
|
-
readonly profileID: string | null;
|
|
49
|
-
readonly baseCookie: string | null;
|
|
50
|
-
readonly protocolVersion: number;
|
|
51
|
-
readonly httpCookie: string | undefined;
|
|
52
|
-
readonly origin: string | undefined;
|
|
53
|
-
readonly userID: string | undefined;
|
|
54
|
-
readonly auth: Auth | undefined;
|
|
55
|
-
};
|
|
56
|
-
type SetTimeout = (fn: (...args: unknown[]) => void, delay?: number) => ReturnType<typeof setTimeout>;
|
|
57
|
-
/**
|
|
58
|
-
* We update the ttlClock in flush that writes to the CVR but
|
|
59
|
-
* some flushes do not write to the CVR and in those cases we
|
|
60
|
-
* use a timer to update the ttlClock every minute.
|
|
61
|
-
*/
|
|
62
|
-
export declare const TTL_CLOCK_INTERVAL = 60000;
|
|
63
|
-
/**
|
|
64
|
-
* This is some extra time we delay the TTL timer to allow for some
|
|
65
|
-
* slack in the timing of the timer. This is to allow multiple evictions
|
|
66
|
-
* to happen in a short period of time without having to wait for the
|
|
67
|
-
* next tick of the timer.
|
|
68
|
-
*/
|
|
69
|
-
export declare const TTL_TIMER_HYSTERESIS = 50;
|
|
70
|
-
export declare class ViewSyncerService implements ViewSyncer, ActivityBasedService {
|
|
71
|
-
#private;
|
|
72
|
-
readonly id: string;
|
|
73
|
-
readonly createdAtMs: number;
|
|
74
|
-
readonly connContextManager: ConnectionContextManager;
|
|
75
|
-
constructor(config: NormalizedZeroConfig, lc: LogContext, shard: ShardID, taskID: string, clientGroupID: string, cvrDb: PostgresDB, pipelineDriver: PipelineDriver, versionChanges: Subscription<ReplicaState>, drainCoordinator: DrainCoordinator, slowHydrateThreshold: number, inspectorDelegate: InspectorDelegate, connContextManager: ConnectionContextManager, customQueryTransformer: CustomQueryTransformer | undefined, runPriorityOp: <T>(lc: LogContext, description: string, op: () => Promise<T>) => Promise<T>, keepaliveMs?: number, setTimeoutFn?: SetTimeout, now?: MonotonicClock, pushCutoff?: ShouldCutOffPush, pacer?: BatchPacer);
|
|
76
|
-
readyState(): Promise<'initialized' | 'draining'>;
|
|
77
|
-
run(): Promise<void>;
|
|
78
|
-
get queryCount(): number;
|
|
79
|
-
pipelineHashes(): readonly PipelineHashInfo[];
|
|
80
|
-
get clientSchemaKey(): string | undefined;
|
|
81
|
-
get rowCount(): number;
|
|
82
|
-
get servedVersion(): LexiVersion | null;
|
|
83
|
-
get servingLagEligible(): boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Guarantees that the ViewSyncer will remain running for at least
|
|
86
|
-
* its configured `keepaliveMs`. This is called when establishing a
|
|
87
|
-
* new connection to ensure that its associated ViewSyncer isn't
|
|
88
|
-
* shutdown before it receives the connection.
|
|
89
|
-
*
|
|
90
|
-
* @return `true` if the ViewSyncer will stay alive, `false` if the
|
|
91
|
-
* ViewSyncer is shutting down.
|
|
92
|
-
*/
|
|
93
|
-
keepalive(): boolean;
|
|
94
|
-
initConnection(selector: ConnectionSelector, initConnectionMessage: InitConnectionMessage): Source<ViewSyncerDownstream>;
|
|
95
|
-
changeDesiredQueries(selector: ConnectionSelector, msg: ChangeDesiredQueriesMessage): Promise<void>;
|
|
96
|
-
updateAuth(selector: ConnectionSelector, msg: UpdateAuthMessage, authRevisionChanged: boolean): Promise<void>;
|
|
97
|
-
deleteClients(selector: ConnectionSelector, msg: DeleteClientsMessage): Promise<string[]>;
|
|
98
|
-
inspect(selector: ConnectionSelector, msg: UnparsedInspectUpMessage): Promise<void>;
|
|
99
|
-
stop(): Promise<void>;
|
|
100
|
-
/**
|
|
101
|
-
* Test helper: Manually mark initialization as complete.
|
|
102
|
-
* This should only be used in tests that don't call initConnection().
|
|
103
|
-
*/
|
|
104
|
-
markInitialized(): void;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Whether a query's TTL has elapsed. A query must be expired for all clients
|
|
108
|
-
* in order to be considered expired.
|
|
109
|
-
*
|
|
110
|
-
* Exported for testing.
|
|
111
|
-
*/
|
|
112
|
-
export declare function expired(ttlClock: TTLClock, q: InternalQueryRecord | ClientQueryRecord | CustomQueryRecord): boolean;
|
|
113
|
-
export declare class TimeSliceTimer {
|
|
114
|
-
#private;
|
|
115
|
-
/**
|
|
116
|
-
* @param yieldSlice How the timer yields the process, if not by taking
|
|
117
|
-
* turns with the rest of the worker's work (see `yieldProcess()`).
|
|
118
|
-
*/
|
|
119
|
-
constructor(lc: LogContext, yieldSlice?: () => Promise<void>);
|
|
120
|
-
start(): Promise<this>;
|
|
121
|
-
startWithoutYielding(): this;
|
|
122
|
-
yieldProcess(_msgForTesting?: string): Promise<void>;
|
|
123
|
-
elapsedLap(): number;
|
|
124
|
-
/** @returns the total elapsed time */
|
|
125
|
-
stop(): number;
|
|
126
|
-
/**
|
|
127
|
-
* @returns the elapsed time. This can be called while the Timer is running
|
|
128
|
-
* or after it has been stopped.
|
|
129
|
-
*/
|
|
130
|
-
totalElapsed(): number;
|
|
131
|
-
}
|
|
132
|
-
export {};
|
|
133
|
-
//# sourceMappingURL=view-syncer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Downstream } from '../../../zero-protocol/src/down.ts';
|
|
2
|
-
/**
|
|
3
|
-
* A logical view-syncer message and, when already available, its serialized
|
|
4
|
-
* wire representation. Keeping them together lets the connection reuse the
|
|
5
|
-
* view-syncer's serialization instead of stringifying large poke parts again.
|
|
6
|
-
*/
|
|
7
|
-
export type ViewSyncerDownstream = {
|
|
8
|
-
readonly message: Downstream;
|
|
9
|
-
readonly serialized: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=downstream.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"downstream.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/downstream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAEnE;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { LogLevel } from '@rocicorp/logger';
|
|
2
|
-
import { ProtocolError, type ErrorBody } from '../../../zero-protocol/src/error.ts';
|
|
3
|
-
export declare class ProtocolErrorWithLevel extends ProtocolError {
|
|
4
|
-
readonly logLevel: LogLevel;
|
|
5
|
-
constructor(errorBody: ErrorBody, logLevel: LogLevel, options?: ErrorOptions);
|
|
6
|
-
}
|
|
7
|
-
export declare function getLogLevel(error: unknown): LogLevel;
|
|
8
|
-
export declare function wrapWithProtocolError(error: unknown): ProtocolError;
|
|
9
|
-
//# sourceMappingURL=error-with-level.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-with-level.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/error-with-level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EAEL,aAAa,EACb,KAAK,SAAS,EACf,MAAM,qCAAqC,CAAC;AAE7C,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,YACE,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAMpD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAanE"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
/**
|
|
3
|
-
* Whether the imported postgres.js has Zero's patch
|
|
4
|
-
* (`packages/zero/patches/postgres@3.4.7.patch`), which marks itself with
|
|
5
|
-
* `Postgres.zeroPatch`. pnpm applies the patch in this repo and in the Docker
|
|
6
|
-
* image, but not when `@rocicorp/zero` is installed from npm.
|
|
7
|
-
*
|
|
8
|
-
* The patch includes the `CopyDone` fix for
|
|
9
|
-
* https://github.com/porsager/postgres/issues/499
|
|
10
|
-
* (https://github.com/porsager/postgres/pull/1016). Without it, a connection
|
|
11
|
-
* can stop responding after a COPY, on any Node version: if the last
|
|
12
|
-
* `CopyData` fills the stream's buffer, the socket is paused, and it is never
|
|
13
|
-
* resumed once the stream has ended. Node version and OS only change how often
|
|
14
|
-
* this happens. Initial sync and backfill only wait for their COPY connections
|
|
15
|
-
* to close when this returns `true`.
|
|
16
|
-
*
|
|
17
|
-
* A later version of the patch can raise the number to mark new fixes.
|
|
18
|
-
*/
|
|
19
|
-
export declare function hasPostgresPatch(): boolean;
|
|
20
|
-
export declare function warnIfPostgresUnpatched(lc: LogContext): void;
|
|
21
|
-
//# sourceMappingURL=pg-patch.d.ts.map
|