@rocicorp/zero 1.10.0-canary.2 → 1.10.0-canary.20
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/read.d.ts +12 -1
- package/out/replicache/src/btree/read.d.ts.map +1 -1
- package/out/replicache/src/btree/read.js +24 -12
- package/out/replicache/src/btree/read.js.map +1 -1
- package/out/replicache/src/db/write.js.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.js +27 -4
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts +11 -0
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +43 -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 +10 -0
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/replicache/src/transactions.d.ts.map +1 -1
- package/out/replicache/src/transactions.js +1 -1
- package/out/replicache/src/transactions.js.map +1 -1
- package/out/shared/src/error.d.ts +11 -0
- package/out/shared/src/error.d.ts.map +1 -1
- package/out/shared/src/error.js +35 -1
- package/out/shared/src/error.js.map +1 -1
- package/out/shared/src/hash.d.ts.map +1 -1
- package/out/shared/src/hash.js +105 -10
- package/out/shared/src/hash.js.map +1 -1
- package/out/shared/src/map.d.ts +7 -2
- package/out/shared/src/map.d.ts.map +1 -1
- package/out/shared/src/map.js.map +1 -1
- package/out/shared/src/promise-race.d.ts +14 -0
- package/out/shared/src/promise-race.d.ts.map +1 -1
- package/out/shared/src/promise-race.js +32 -1
- package/out/shared/src/promise-race.js.map +1 -1
- package/out/zero/package.js +2 -3
- package/out/zero/package.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +8 -1
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/normalize.d.ts +5 -0
- package/out/zero-cache/src/config/normalize.d.ts.map +1 -1
- package/out/zero-cache/src/config/normalize.js +16 -3
- package/out/zero-cache/src/config/normalize.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +36 -7
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +121 -46
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/create.d.ts.map +1 -1
- package/out/zero-cache/src/db/create.js +4 -1
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/index-predicate.d.ts +4 -0
- package/out/zero-cache/src/db/index-predicate.d.ts.map +1 -0
- package/out/zero-cache/src/db/index-predicate.js +46 -0
- package/out/zero-cache/src/db/index-predicate.js.map +1 -0
- package/out/zero-cache/src/db/lite-tables.d.ts +10 -2
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +8 -3
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +5 -3
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +41 -0
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.js +30 -3
- package/out/zero-cache/src/db/specs.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +5 -15
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.js +39 -73
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +27 -15
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +4 -4
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/server/replicator.js +8 -4
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +1 -1
- package/out/zero-cache/src/server/worker-urls.d.ts +0 -1
- package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -1
- package/out/zero-cache/src/server/worker-urls.js +1 -2
- package/out/zero-cache/src/server/worker-urls.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +1 -0
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +12 -2
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js +14 -3
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.js +10 -41
- package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +3 -2
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +42 -16
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +34 -2
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +47 -19
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js +20 -11
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +58 -80
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +20 -0
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +43 -3
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +24 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js +35 -5
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +1513 -229
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts +19 -0
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +581 -0
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +15 -6
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +137 -20
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js +82 -13
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +128 -21
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +2 -0
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +3 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +1 -4
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +11 -18
- 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.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js +8 -3
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.js +4 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +34 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.js +67 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +2 -4
- 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 +8 -2
- 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-service.d.ts +34 -13
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +165 -36
- 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.d.ts +4 -9
- 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.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.js +12 -3
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js +11 -5
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +11 -0
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/shard-sampling.js +19 -0
- package/out/zero-cache/src/services/change-streamer/shard-sampling.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +11 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js +38 -5
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +25 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js +95 -12
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +83 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js +417 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +73 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js +157 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js +8 -3
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +63 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +217 -49
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +8 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +10 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts +29 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js +154 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js.map +1 -0
- package/out/zero-cache/src/services/http-service.d.ts +1 -0
- package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/http-service.js +7 -3
- package/out/zero-cache/src/services/http-service.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +16 -7
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/litestream/config-v5.yml +15 -1
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +131 -0
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +1 -0
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +70 -0
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +1 -0
- package/out/zero-cache/src/services/litestream/litestream-controller.js +101 -0
- package/out/zero-cache/src/services/litestream/litestream-controller.js.map +1 -0
- package/out/zero-cache/src/services/litestream/metrics.d.ts +1 -0
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/metrics.js +4 -1
- package/out/zero-cache/src/services/litestream/metrics.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 +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts +10 -0
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-db.js +15 -1
- package/out/zero-cache/src/services/replicator/change-log-db.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +18 -21
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +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 +2 -6
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.js +2 -2
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +3 -2
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js +8 -6
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +27 -2
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.js +3 -2
- package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker.js +24 -5
- package/out/zero-cache/src/services/replicator/write-worker.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 +25 -17
- 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.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +14 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -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 +6 -2
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/downstream.d.ts +11 -0
- package/out/zero-cache/src/types/downstream.d.ts.map +1 -0
- package/out/zero-cache/src/types/pg.d.ts +15 -2
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +21 -8
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts +18 -0
- package/out/zero-cache/src/types/poke-chunk.d.ts.map +1 -0
- package/out/zero-cache/src/types/poke-chunk.js +57 -0
- package/out/zero-cache/src/types/poke-chunk.js.map +1 -0
- package/out/zero-cache/src/types/processes.js +1 -4
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/streams.d.ts +4 -9
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/subscription.d.ts +2 -11
- package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
- package/out/zero-cache/src/types/subscription.js +4 -25
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +22 -4
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +112 -14
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +1 -0
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +4 -2
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-manager.js +46 -0
- package/out/zero-client/src/client/connection-manager.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +15 -0
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/context.js +44 -0
- package/out/zero-client/src/client/context.js.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js +19 -12
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
- package/out/zero-client/src/client/ivm-branch.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +7 -2
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js +52 -2
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.js +2 -1
- package/out/zero-client/src/client/zero-rep.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +98 -25
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +1 -1
- package/out/zero-protocol/src/down.d.ts +1 -1
- package/out/zero-protocol/src/error.d.ts +4 -4
- package/out/zero-protocol/src/inspect-down.js +1 -1
- package/out/zero-protocol/src/mutate-server.d.ts +2 -2
- package/out/zero-protocol/src/poke.d.ts +89 -7
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +16 -8
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +12 -7
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +1 -1
- package/out/zero-protocol/src/query-server.d.ts +2 -2
- package/out/zql/src/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/ivm/array-view.js +5 -3
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +8 -3
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/deferred-input.d.ts +44 -0
- package/out/zql/src/ivm/deferred-input.d.ts.map +1 -0
- package/out/zql/src/ivm/deferred-input.js +88 -0
- package/out/zql/src/ivm/deferred-input.js.map +1 -0
- package/out/zql/src/ivm/memory-source.d.ts +10 -2
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +19 -16
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/stream.d.ts +0 -1
- package/out/zql/src/ivm/stream.d.ts.map +1 -1
- package/out/zql/src/ivm/stream.js +1 -7
- package/out/zql/src/ivm/stream.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js +11 -2
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js +6 -1
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +6 -0
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
- package/out/zql/src/query/query-delegate-base.js +73 -10
- package/out/zql/src/query/query-delegate-base.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +22 -0
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zqlite/src/query-builder.d.ts.map +1 -1
- package/out/zqlite/src/query-builder.js +2 -1
- package/out/zqlite/src/query-builder.js.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.js +1 -0
- package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +3 -2
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +2 -3
- package/out/zero-cache/src/server/backup-watermark-poller.js +0 -31
- package/out/zero-cache/src/server/backup-watermark-poller.js.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.d.ts +0 -57
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.js +0 -137
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.js.map +0 -1
|
@@ -11,7 +11,7 @@ import { dropDatabase } from "../../../replicache/src/persist/collect-idb-databa
|
|
|
11
11
|
import { must } from "../../../shared/src/must.js";
|
|
12
12
|
import { clientToServer } from "../../../zero-schema/src/name-mapper.js";
|
|
13
13
|
import { h64 } from "../../../shared/src/hash.js";
|
|
14
|
-
import { getErrorMessage } from "../../../shared/src/error.js";
|
|
14
|
+
import { getErrorCauses, getErrorMessage } from "../../../shared/src/error.js";
|
|
15
15
|
import { ClientNotFound, InvalidMessage } from "../../../zero-protocol/src/error-kind-enum.js";
|
|
16
16
|
import { ProtocolError } from "../../../zero-protocol/src/error.js";
|
|
17
17
|
import "../../../zero-protocol/src/client-schema.js";
|
|
@@ -31,6 +31,7 @@ import { encodeSecProtocols } from "../../../zero-protocol/src/connect.js";
|
|
|
31
31
|
import { CRUD, Custom } from "../../../zero-protocol/src/mutation-type-enum.js";
|
|
32
32
|
import { mapCRUD } from "../../../zero-protocol/src/mutation.js";
|
|
33
33
|
import { nullableVersionSchema } from "../../../zero-protocol/src/version.js";
|
|
34
|
+
import "../../../zero-protocol/src/poke.js";
|
|
34
35
|
import { downstreamSchema } from "../../../zero-protocol/src/down.js";
|
|
35
36
|
import "../../../zero-protocol/src/protocol-version.js";
|
|
36
37
|
import { isClientMetric } from "../../../zql/src/query/metrics-delegate.js";
|
|
@@ -89,6 +90,11 @@ var DEFAULT_DISCONNECT_TIMEOUT_MS = 60 * 1e3;
|
|
|
89
90
|
* consider it timed out.
|
|
90
91
|
*/
|
|
91
92
|
var CONNECT_TIMEOUT_MS = 1e4;
|
|
93
|
+
/**
|
|
94
|
+
* Setting up active-client tracking blocks the first connect attempt. Above
|
|
95
|
+
* this, say so.
|
|
96
|
+
*/
|
|
97
|
+
var SLOW_ACTIVE_CLIENTS_THRESHOLD_MS = 50;
|
|
92
98
|
var CHECK_CONNECTIVITY_ON_ERROR_FREQUENCY = 6;
|
|
93
99
|
var DEFAULT_QUERY_CHANGE_THROTTLE_MS = 10;
|
|
94
100
|
function convertOnUpdateNeededReason(reason) {
|
|
@@ -280,7 +286,7 @@ var Zero = class Zero {
|
|
|
280
286
|
})).toString(36);
|
|
281
287
|
const storageScopedUserID = userID ?? "__anonymous__";
|
|
282
288
|
const replicacheOptions = {
|
|
283
|
-
schemaVersion: `
|
|
289
|
+
schemaVersion: `52.${hash}`,
|
|
284
290
|
logLevel: logOptions.logLevel,
|
|
285
291
|
logSinks: [logOptions.logSink],
|
|
286
292
|
mutators: replicacheMutators,
|
|
@@ -301,6 +307,7 @@ var Zero = class Zero {
|
|
|
301
307
|
}, (ast, customQueryID, ttl, gotCallback) => this.#queryManager.addCustom(ast, customQueryID, ttl, gotCallback), (ast, ttl) => {
|
|
302
308
|
if (enableLegacyQueries) this.#queryManager.updateLegacy(ast, ttl);
|
|
303
309
|
}, (customQueryID, ttl) => this.#queryManager.updateCustom(customQueryID, ttl), () => this.#queryManager.flushBatch(), batchViewUpdates, this.#addMetric, assertValidRunOptions);
|
|
310
|
+
this.#zeroContext.deferPipelines();
|
|
304
311
|
this.query = createRunnableBuilder(this.#zeroContext, schema);
|
|
305
312
|
const rep = new ReplicacheImpl(replicacheOptions, {
|
|
306
313
|
enableClientGroupForking: false,
|
|
@@ -320,7 +327,7 @@ var Zero = class Zero {
|
|
|
320
327
|
this.#activeClientsManager = makeActiveClientsManager(rep.clientGroupID, this.clientID, this.#closeAbortController.signal, (clientID, clientGroupID) => this.#deleteClientsManager.onClientsDeleted([{
|
|
321
328
|
clientGroupID,
|
|
322
329
|
clientID
|
|
323
|
-
}]));
|
|
330
|
+
}]), this.#lc);
|
|
324
331
|
const onUpdateNeededCallback = (reason) => {
|
|
325
332
|
if (onUpdateNeeded) onUpdateNeeded(reason);
|
|
326
333
|
else reloadWithReason(this.#lc, this.#reload, reason.type, updateNeededReloadReasonMessage(reason));
|
|
@@ -641,13 +648,36 @@ var Zero = class Zero {
|
|
|
641
648
|
}
|
|
642
649
|
#onMessage = (e) => {
|
|
643
650
|
const lc = this.#lc;
|
|
644
|
-
|
|
651
|
+
const { data } = e;
|
|
652
|
+
lc.debug?.("received message", data instanceof ArrayBuffer ? {
|
|
653
|
+
type: "binary",
|
|
654
|
+
byteLength: data.byteLength
|
|
655
|
+
} : data);
|
|
645
656
|
if (this.closed) {
|
|
646
657
|
lc.debug?.("ignoring message because already closed");
|
|
647
658
|
return;
|
|
648
659
|
}
|
|
649
660
|
let downMessage;
|
|
650
|
-
|
|
661
|
+
if (data instanceof ArrayBuffer) {
|
|
662
|
+
this.#messageCount++;
|
|
663
|
+
const message = new Uint8Array(data);
|
|
664
|
+
if (message[0] !== 0) {
|
|
665
|
+
this.#disconnect(lc, new ClientError({
|
|
666
|
+
kind: InvalidMessage$1,
|
|
667
|
+
message: `Unknown binary message type: ${String(message[0])}`
|
|
668
|
+
}));
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
this.#handlePokeChunk(message.subarray(1));
|
|
672
|
+
return;
|
|
673
|
+
}
|
|
674
|
+
if (typeof data !== "string") {
|
|
675
|
+
this.#disconnect(lc, new ClientError({
|
|
676
|
+
kind: InvalidMessage$1,
|
|
677
|
+
message: "Invalid binary message received from server"
|
|
678
|
+
}));
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
651
681
|
try {
|
|
652
682
|
downMessage = parse(JSON.parse(data), downstreamSchema, "passthrough");
|
|
653
683
|
} catch (e) {
|
|
@@ -889,11 +919,11 @@ var Zero = class Zero {
|
|
|
889
919
|
const clientGroupID = await this.clientGroupID;
|
|
890
920
|
this.#addConnectEvent(lc, attempt, "initializing active clients");
|
|
891
921
|
const activeClientsManager = await this.#activeClientsManager;
|
|
892
|
-
if (signal.aborted) throw signal.reason;
|
|
922
|
+
if (signal.aborted) throw attempt.abortReason ?? signal.reason;
|
|
893
923
|
const [ws, initConnectionQueries, deletedClients] = await createSocket(this.#rep, this.#queryManager, this.#deleteClientsManager, socketOrigin, connectCookie, this.clientID, clientGroupID, this.#clientSchema, this.userID, fromReplicacheAuthToken(this.#rep.auth), this.#lastMutationIDReceived, wsid, this.#options.logLevel === "debug", lc, this.#options.mutateURL, this.#options.mutateHeaders, this.#options.queryURL ?? this.#options.getQueriesURL, this.#options.queryHeaders, additionalConnectParams, activeClientsManager, this.#options.maxHeaderLength, (event) => this.#addConnectEvent(lc, attempt, event));
|
|
894
924
|
if (signal.aborted) {
|
|
895
925
|
ws.close();
|
|
896
|
-
throw signal.reason;
|
|
926
|
+
throw attempt.abortReason ?? signal.reason;
|
|
897
927
|
}
|
|
898
928
|
if (this.closed) {
|
|
899
929
|
ws.close();
|
|
@@ -909,17 +939,52 @@ var Zero = class Zero {
|
|
|
909
939
|
this.#socketResolver.resolve(ws);
|
|
910
940
|
this.#addConnectEvent(lc, attempt, "waiting for the server acknowledgement");
|
|
911
941
|
lc.debug?.("Waiting for connection to be acknowledged");
|
|
942
|
+
attempt.clearTimeout?.();
|
|
943
|
+
attempt.clearTimeout = this.#armConnectTimeout(lc, attempt, "ack");
|
|
912
944
|
await attempt.connected.promise;
|
|
913
|
-
if (signal.aborted) throw signal.reason;
|
|
945
|
+
if (signal.aborted) throw attempt.abortReason ?? signal.reason;
|
|
914
946
|
this.#mutationTracker.onConnected(this.#lastMutationIDReceived);
|
|
915
947
|
this.#rep.push().catch(() => {});
|
|
916
948
|
}
|
|
949
|
+
/**
|
|
950
|
+
* Starts the deadline for one phase of a connection attempt, and returns a
|
|
951
|
+
* function that cancels it.
|
|
952
|
+
*
|
|
953
|
+
* The two phases are measured separately because they fail for unrelated
|
|
954
|
+
* reasons. `setup` covers local work — reading the cookie, the client group
|
|
955
|
+
* ID and the active clients from IDB, then preparing and opening the socket
|
|
956
|
+
* — whose duration says nothing about whether the server is reachable.
|
|
957
|
+
* `ack` covers the wait for the server's response. Running them on one
|
|
958
|
+
* budget meant a slow cold boot spent the server's time before the socket
|
|
959
|
+
* existed, and reported a healthy server as unreachable.
|
|
960
|
+
*/
|
|
961
|
+
#armConnectTimeout(lc, attempt, phase) {
|
|
962
|
+
const { signal } = attempt.controller;
|
|
963
|
+
if (signal.aborted) return () => {};
|
|
964
|
+
const timeoutID = setTimeout(() => {
|
|
965
|
+
lc.debug?.("Connection attempt timed out");
|
|
966
|
+
this.#disconnect(lc, new ClientError({
|
|
967
|
+
kind: ConnectTimeout,
|
|
968
|
+
message: (phase === "setup" ? `Connection setup timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds. ` : `Server did not acknowledge the connection within ${CONNECT_TIMEOUT_MS / 1e3} seconds. `) + `Connect events: ${JSON.stringify(attempt.events)}`
|
|
969
|
+
}));
|
|
970
|
+
}, CONNECT_TIMEOUT_MS);
|
|
971
|
+
const clear = () => {
|
|
972
|
+
clearTimeout(timeoutID);
|
|
973
|
+
signal.removeEventListener("abort", clear);
|
|
974
|
+
};
|
|
975
|
+
signal.addEventListener("abort", clear, { once: true });
|
|
976
|
+
return clear;
|
|
977
|
+
}
|
|
917
978
|
#addConnectEvent(lc, attempt, event) {
|
|
918
979
|
attempt.events.push([/* @__PURE__ */ new Date(), event]);
|
|
919
980
|
lc.debug?.("Connect event", event);
|
|
920
981
|
}
|
|
921
982
|
#disconnect(lc, reason, closeCode) {
|
|
922
|
-
this.#currentConnectAttempt
|
|
983
|
+
const attempt = this.#currentConnectAttempt;
|
|
984
|
+
if (attempt) {
|
|
985
|
+
attempt.abortReason = reason;
|
|
986
|
+
attempt.controller.abort(reason);
|
|
987
|
+
}
|
|
923
988
|
if (shouldReportConnectError(reason)) {
|
|
924
989
|
this.#connectErrorCount++;
|
|
925
990
|
this.#metrics.lastConnectError.set(getLastConnectErrorValue(reason));
|
|
@@ -993,9 +1058,15 @@ var Zero = class Zero {
|
|
|
993
1058
|
const lastMutationIDChangeForSelf = this.#pokeHandler.handlePokePart(pokeMessage[1]);
|
|
994
1059
|
if (lastMutationIDChangeForSelf !== void 0) this.#lastMutationIDReceived = lastMutationIDChangeForSelf;
|
|
995
1060
|
}
|
|
1061
|
+
#handlePokeChunk(chunk) {
|
|
1062
|
+
this.#abortPingTimeout();
|
|
1063
|
+
this.#pokeHandler.handlePokeChunk(chunk);
|
|
1064
|
+
}
|
|
996
1065
|
#handlePokeEnd(_lc, pokeMessage) {
|
|
997
1066
|
this.#abortPingTimeout();
|
|
998
|
-
this.#pokeHandler.handlePokeEnd(pokeMessage[1]);
|
|
1067
|
+
const result = this.#pokeHandler.handlePokeEnd(pokeMessage[1]);
|
|
1068
|
+
if (result?.hasRows) resetBackoff();
|
|
1069
|
+
if (result?.lastMutationIDChangeForSelf !== void 0) this.#lastMutationIDReceived = result.lastMutationIDChangeForSelf;
|
|
999
1070
|
}
|
|
1000
1071
|
#onPokeError(error) {
|
|
1001
1072
|
const lc = this.#lc;
|
|
@@ -1116,16 +1187,10 @@ var Zero = class Zero {
|
|
|
1116
1187
|
};
|
|
1117
1188
|
this.#currentConnectAttempt = attempt;
|
|
1118
1189
|
this.#addConnectEvent(lc, attempt, "starting the connection");
|
|
1190
|
+
attempt.clearTimeout = this.#armConnectTimeout(lc, attempt, "setup");
|
|
1119
1191
|
const canceled = resolver();
|
|
1120
|
-
const abortHandler = () => canceled.reject(attempt.controller.signal.reason);
|
|
1192
|
+
const abortHandler = () => canceled.reject(attempt.abortReason ?? attempt.controller.signal.reason);
|
|
1121
1193
|
attempt.controller.signal.addEventListener("abort", abortHandler, { once: true });
|
|
1122
|
-
const timeoutID = setTimeout(() => {
|
|
1123
|
-
lc.debug?.("Connection attempt timed out");
|
|
1124
|
-
this.#disconnect(lc, new ClientError({
|
|
1125
|
-
kind: ConnectTimeout,
|
|
1126
|
-
message: `Connection attempt timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds. Connect events: ${JSON.stringify(attempt.events)}`
|
|
1127
|
-
}));
|
|
1128
|
-
}, CONNECT_TIMEOUT_MS);
|
|
1129
1194
|
try {
|
|
1130
1195
|
try {
|
|
1131
1196
|
await Promise.race([this.#connectAttempt(lc, additionalConnectParams, attempt), canceled.promise]);
|
|
@@ -1142,7 +1207,7 @@ var Zero = class Zero {
|
|
|
1142
1207
|
ready.resolve();
|
|
1143
1208
|
additionalConnectParams = void 0;
|
|
1144
1209
|
} finally {
|
|
1145
|
-
clearTimeout(
|
|
1210
|
+
attempt.clearTimeout?.();
|
|
1146
1211
|
attempt.controller.signal.removeEventListener("abort", abortHandler);
|
|
1147
1212
|
if (this.#currentConnectAttempt === attempt) this.#currentConnectAttempt = void 0;
|
|
1148
1213
|
}
|
|
@@ -1195,7 +1260,7 @@ var Zero = class Zero {
|
|
|
1195
1260
|
})).key === "connectRequest") this.#connectionManager.resumeFromConnectRequest();
|
|
1196
1261
|
break;
|
|
1197
1262
|
case Error$1:
|
|
1198
|
-
lc.info?.(`Run loop paused in error state. Call zero.connection.connect() to resume.`, currentState.reason);
|
|
1263
|
+
lc.info?.(`Run loop paused in error state. Call zero.connection.connect() to resume.`, currentState.reason, ...getErrorCauses(currentState.reason));
|
|
1199
1264
|
if ((await promiseRace({
|
|
1200
1265
|
connectRequest: this.#connectionManager.waitForConnectRequest(),
|
|
1201
1266
|
stateChange: this.#connectionManager.waitForStateChange()
|
|
@@ -1209,7 +1274,7 @@ var Zero = class Zero {
|
|
|
1209
1274
|
if (!this.#connectionManager.is("connected") && !isClientClosedError) {
|
|
1210
1275
|
const level = isAuthError(ex) ? "warn" : "error";
|
|
1211
1276
|
const kind = isServerError(ex) ? ex.kind : "Unknown Error";
|
|
1212
|
-
lc[level]?.("Failed to connect", ex, kind, {
|
|
1277
|
+
lc[level]?.("Failed to connect", ex, ...getErrorCauses(ex), kind, {
|
|
1213
1278
|
lmid: this.#lastMutationIDReceived,
|
|
1214
1279
|
baseCookie: this.#connectCookie
|
|
1215
1280
|
});
|
|
@@ -1465,14 +1530,16 @@ async function createSocket(rep, queryManager, deleteClientsManager, socketOrigi
|
|
|
1465
1530
|
queriesPatch = void 0;
|
|
1466
1531
|
} else deletedClients = void 0;
|
|
1467
1532
|
onEvent?.("creating the WebSocket");
|
|
1533
|
+
const socket = new WS(url.toString(), secProtocol);
|
|
1534
|
+
socket.binaryType = "arraybuffer";
|
|
1468
1535
|
return [
|
|
1469
|
-
|
|
1536
|
+
socket,
|
|
1470
1537
|
queriesPatch,
|
|
1471
1538
|
skipEmptyDeletedClients(deletedClients)
|
|
1472
1539
|
];
|
|
1473
1540
|
}
|
|
1474
1541
|
async function createConnectionURL(socketOrigin, clientID, clientGroupID, userID, baseCookie, lmid, wsid, rep, debugPerf, additionalConnectParams, lc) {
|
|
1475
|
-
const url = new URL(appendPath(socketOrigin, `/sync/
|
|
1542
|
+
const url = new URL(appendPath(socketOrigin, `/sync/v52/connect`));
|
|
1476
1543
|
const { searchParams } = url;
|
|
1477
1544
|
searchParams.set("clientID", clientID);
|
|
1478
1545
|
searchParams.set("clientGroupID", clientGroupID);
|
|
@@ -1517,8 +1584,14 @@ function addWebSocketIDToLogContext(wsid, lc) {
|
|
|
1517
1584
|
return lc.withContext("wsid", wsid);
|
|
1518
1585
|
}
|
|
1519
1586
|
function assertValidRunOptions(_options) {}
|
|
1520
|
-
async function makeActiveClientsManager(clientGroupID, clientID, signal, onDelete) {
|
|
1521
|
-
const
|
|
1587
|
+
async function makeActiveClientsManager(clientGroupID, clientID, signal, onDelete, lc) {
|
|
1588
|
+
const groupID = await clientGroupID;
|
|
1589
|
+
const start = performance.now();
|
|
1590
|
+
const manager = await ActiveClientsManager.create(groupID, clientID, signal);
|
|
1591
|
+
const elapsed = performance.now() - start;
|
|
1592
|
+
const locks = getBrowserGlobal("navigator")?.locks ? "native" : "fallback";
|
|
1593
|
+
if (elapsed > SLOW_ACTIVE_CLIENTS_THRESHOLD_MS) lc.warn?.(`Initializing active clients took ${Math.round(elapsed)}ms`, { locks });
|
|
1594
|
+
else lc.debug?.("Initialized active clients in", Math.round(elapsed), "ms", { locks });
|
|
1522
1595
|
manager.onDelete = onDelete;
|
|
1523
1596
|
return manager;
|
|
1524
1597
|
}
|