@rocicorp/zero 1.11.0-canary.0 → 1.11.0-canary.10
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/analyze-query/src/bin-analyze.js +1 -1
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- 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/dag/gc.d.ts.map +1 -1
- package/out/replicache/src/dag/gc.js +2 -1
- package/out/replicache/src/dag/gc.js.map +1 -1
- package/out/replicache/src/dag/invalid-ref-count-error.d.ts +12 -0
- package/out/replicache/src/dag/invalid-ref-count-error.d.ts.map +1 -0
- package/out/replicache/src/dag/invalid-ref-count-error.js +19 -0
- package/out/replicache/src/dag/invalid-ref-count-error.js.map +1 -0
- package/out/replicache/src/dag/store-impl.d.ts +12 -2
- package/out/replicache/src/dag/store-impl.d.ts.map +1 -1
- package/out/replicache/src/dag/store-impl.js +22 -8
- package/out/replicache/src/dag/store-impl.js.map +1 -1
- package/out/replicache/src/db/rebase.d.ts +14 -2
- package/out/replicache/src/db/rebase.d.ts.map +1 -1
- package/out/replicache/src/db/rebase.js +27 -5
- package/out/replicache/src/db/rebase.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 +28 -5
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +15 -5
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js +25 -25
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -1
- package/out/replicache/src/kv/idb-store.d.ts +9 -0
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store.js +14 -2
- package/out/replicache/src/kv/idb-store.js.map +1 -1
- package/out/replicache/src/kv/mem-store.d.ts +1 -0
- package/out/replicache/src/kv/mem-store.d.ts.map +1 -1
- package/out/replicache/src/kv/mem-store.js +3 -0
- package/out/replicache/src/kv/mem-store.js.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.d.ts.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.js +1 -1
- package/out/replicache/src/kv/op-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts +13 -1
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +49 -4
- package/out/replicache/src/kv/sqlite-store.js.map +1 -1
- package/out/replicache/src/kv/store.d.ts +6 -0
- package/out/replicache/src/kv/store.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.d.ts +10 -5
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.js +16 -9
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -1
- package/out/replicache/src/persist/persist.d.ts.map +1 -1
- package/out/replicache/src/persist/persist.js +12 -5
- package/out/replicache/src/persist/persist.js.map +1 -1
- package/out/replicache/src/persist/refresh.js +6 -2
- package/out/replicache/src/persist/refresh.js.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts +14 -3
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js +118 -11
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +9 -0
- package/out/replicache/src/replicache-options.d.ts.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/iterables.d.ts +2 -0
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +18 -1
- package/out/shared/src/iterables.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/ring-buffer.d.ts +8 -0
- package/out/shared/src/ring-buffer.d.ts.map +1 -1
- package/out/shared/src/ring-buffer.js +22 -1
- package/out/shared/src/ring-buffer.js.map +1 -1
- package/out/zero/package.js +3 -4
- package/out/zero/package.js.map +1 -1
- package/out/zero-cache/src/config/normalize.d.ts.map +1 -1
- package/out/zero-cache/src/config/normalize.js +25 -1
- package/out/zero-cache/src/config/normalize.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +48 -2
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +171 -29
- package/out/zero-cache/src/config/zero-config.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 +25 -9
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +18 -2
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js +20 -7
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +8 -1
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/mutator.js +2 -0
- package/out/zero-cache/src/server/mutator.js.map +1 -1
- package/out/zero-cache/src/server/reaper.d.ts.map +1 -1
- package/out/zero-cache/src/server/reaper.js +2 -0
- package/out/zero-cache/src/server/reaper.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 -2
- 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/runner/zero-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js +3 -0
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +2 -0
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +3 -2
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- 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 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js +15 -3
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.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 +2 -39
- 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-resume.d.ts +156 -0
- package/out/zero-cache/src/services/change-source/pg/backfill-resume.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/backfill-resume.js +15 -0
- package/out/zero-cache/src/services/change-source/pg/backfill-resume.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts +25 -0
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js +202 -0
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +14 -16
- 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 +64 -143
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +28 -2
- 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 +44 -21
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts +16 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js +113 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +21 -15
- 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 +86 -23
- 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/index-predicate.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +68 -8
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +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 +32 -1
- 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/replica-stage-enum.d.ts +10 -0
- package/out/zero-cache/src/services/change-source/pg/schema/replica-stage-enum.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/replica-stage-enum.js +6 -0
- package/out/zero-cache/src/services/change-source/pg/schema/replica-stage-enum.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +50 -27
- 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 +100 -34
- package/out/zero-cache/src/services/change-source/pg/schema/shard.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 +58 -7
- 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 +8 -2
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.js +24 -4
- package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +19 -4
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js +28 -8
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +5 -2
- 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 +21 -14
- 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 +6 -0
- 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 +97 -63
- 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 +12 -8
- 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 +3 -3
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.js +36 -5
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +4 -4
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +3 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.js +54 -20
- package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +6 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js +27 -9
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +8 -5
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +4 -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 +42 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +17 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js +19 -3
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js +1 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +3 -1
- package/out/zero-cache/src/services/life-cycle.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 +8 -3
- 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/mutagen/mutagen.d.ts +5 -0
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +7 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +2 -1
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/profz.d.ts +7 -0
- package/out/zero-cache/src/services/profz.d.ts.map +1 -0
- package/out/zero-cache/src/services/profz.js +105 -0
- package/out/zero-cache/src/services/profz.js.map +1 -0
- package/out/zero-cache/src/services/replicator/change-log-db.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +5 -4
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.js +20 -22
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +1 -0
- 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 +58 -17
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts +35 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js +96 -6
- package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
- 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 +6 -6
- 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 +19 -14
- 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 +31 -6
- 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 +5 -4
- package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker.js +30 -5
- package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts +12 -0
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +26 -14
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/runner.d.ts.map +1 -1
- package/out/zero-cache/src/services/runner.js +1 -1
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +1 -1
- 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 +36 -31
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +45 -0
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +133 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +14 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +30 -4
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +33 -0
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/hydration-budget.js +62 -0
- package/out/zero-cache/src/services/view-syncer/hydration-budget.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +51 -0
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js +78 -0
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +2 -2
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +33 -18
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +4 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +9 -3
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +11 -1
- 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 +507 -93
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +32 -0
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +43 -4
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/profiler.d.ts +12 -0
- package/out/zero-cache/src/types/profiler.d.ts.map +1 -1
- package/out/zero-cache/src/types/profiler.js +46 -1
- package/out/zero-cache/src/types/profiler.js.map +1 -1
- package/out/zero-cache/src/types/streams.d.ts +25 -9
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js +118 -34
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/subscription.d.ts +4 -0
- package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
- package/out/zero-cache/src/types/subscription.js +71 -0
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/types/ws.d.ts.map +1 -1
- package/out/zero-cache/src/types/ws.js +23 -8
- package/out/zero-cache/src/types/ws.js.map +1 -1
- package/out/zero-cache/src/workers/connection.js +2 -2
- 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-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +21 -16
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +10 -1
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/connection-manager.d.ts +20 -0
- package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-manager.js +77 -13
- package/out/zero-client/src/client/connection-manager.js.map +1 -1
- package/out/zero-client/src/client/connection-status-enum.d.ts +2 -0
- package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-status-enum.js +3 -1
- package/out/zero-client/src/client/connection-status-enum.js.map +1 -1
- package/out/zero-client/src/client/connection.d.ts +6 -0
- package/out/zero-client/src/client/connection.d.ts.map +1 -1
- package/out/zero-client/src/client/connection.js +2 -1
- package/out/zero-client/src/client/connection.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +27 -2
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/context.js +112 -1
- package/out/zero-client/src/client/context.js.map +1 -1
- package/out/zero-client/src/client/custom.js +2 -2
- package/out/zero-client/src/client/custom.js.map +1 -1
- package/out/zero-client/src/client/error.js +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js +2 -2
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
- package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
- package/out/zero-client/src/client/ivm-branch.js +20 -3
- package/out/zero-client/src/client/ivm-branch.js.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.js +2 -1
- package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
- package/out/zero-client/src/client/options.d.ts +3 -0
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/options.js.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.js +42 -6
- package/out/zero-client/src/client/query-manager.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +1 -0
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.js +9 -6
- package/out/zero-client/src/client/zero-rep.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +18 -3
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +122 -34
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-client/src/types/query-result.d.ts +2 -0
- package/out/zero-client/src/types/query-result.d.ts.map +1 -1
- package/out/zero-events/src/status.d.ts +26 -0
- package/out/zero-events/src/status.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +5 -5
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.js +1 -1
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +4 -4
- package/out/zero-protocol/src/inspect-down.d.ts +6 -6
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- 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-react/src/use-query.d.ts +5 -4
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-query.js +86 -9
- package/out/zero-react/src/use-query.js.map +1 -1
- package/out/zero-server/src/adapters/drizzle.d.ts +2 -1
- package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js +12 -7
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/adapters/kysely.d.ts +2 -1
- package/out/zero-server/src/adapters/kysely.d.ts.map +1 -1
- package/out/zero-server/src/adapters/kysely.js +8 -2
- package/out/zero-server/src/adapters/kysely.js.map +1 -1
- package/out/zero-server/src/adapters/pg.d.ts +1 -0
- package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
- package/out/zero-server/src/adapters/pg.js +8 -2
- package/out/zero-server/src/adapters/pg.js.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.d.ts +1 -0
- package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.js +7 -1
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
- package/out/zero-server/src/adapters/prisma.d.ts +3 -2
- package/out/zero-server/src/adapters/prisma.d.ts.map +1 -1
- package/out/zero-server/src/adapters/prisma.js +8 -2
- package/out/zero-server/src/adapters/prisma.js.map +1 -1
- package/out/zero-server/src/custom.d.ts +5 -1
- package/out/zero-server/src/custom.d.ts.map +1 -1
- package/out/zero-server/src/custom.js +6 -3
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/mod.d.ts +1 -1
- package/out/zero-server/src/mod.d.ts.map +1 -1
- package/out/zero-server/src/pg-query-executor.d.ts +2 -2
- package/out/zero-server/src/pg-query-executor.d.ts.map +1 -1
- package/out/zero-server/src/pg-query-executor.js +2 -2
- package/out/zero-server/src/pg-query-executor.js.map +1 -1
- package/out/zero-server/src/schema.d.ts +2 -2
- package/out/zero-server/src/schema.d.ts.map +1 -1
- package/out/zero-server/src/schema.js +2 -2
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts +21 -1
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero-server/src/zql-database.js +33 -2
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/solid-view.d.ts +17 -0
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/zero-solid/src/solid-view.js +39 -1
- package/out/zero-solid/src/solid-view.js.map +1 -1
- package/out/zero-solid/src/use-query.js +5 -3
- package/out/zero-solid/src/use-query.js.map +1 -1
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +16 -10
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.d.ts +6 -1
- package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
- package/out/zql/src/builder/debug-delegate.js +14 -2
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/ivm/array-view.d.ts +29 -0
- package/out/zql/src/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/ivm/array-view.js +63 -12
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/cap.d.ts.map +1 -1
- package/out/zql/src/ivm/cap.js +5 -3
- package/out/zql/src/ivm/cap.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 +89 -0
- package/out/zql/src/ivm/deferred-input.js.map +1 -0
- package/out/zql/src/ivm/exists.d.ts +1 -1
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/fan-in.d.ts +2 -2
- package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-in.js +6 -5
- package/out/zql/src/ivm/fan-in.js.map +1 -1
- package/out/zql/src/ivm/fan-out.d.ts +2 -2
- package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-out.js.map +1 -1
- package/out/zql/src/ivm/filter-operators.d.ts +7 -6
- package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-operators.js +29 -12
- package/out/zql/src/ivm/filter-operators.js.map +1 -1
- package/out/zql/src/ivm/filter.d.ts +2 -2
- package/out/zql/src/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/ivm/filter.js +7 -4
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/flipped-join.js +2 -2
- package/out/zql/src/ivm/flipped-join.js.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +6 -4
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +15 -3
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +57 -23
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/operator.d.ts +40 -0
- package/out/zql/src/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/ivm/operator.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +3 -4
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js +9 -7
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js +9 -4
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zql/src/ivm/view.d.ts +15 -0
- package/out/zql/src/ivm/view.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.d.ts +24 -1
- package/out/zql/src/mutate/custom.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.js.map +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator-registry.js +2 -2
- package/out/zql/src/mutate/mutator-registry.js.map +1 -1
- package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
- package/out/zql/src/planner/planner-builder.js +14 -4
- package/out/zql/src/planner/planner-builder.js.map +1 -1
- package/out/zql/src/planner/planner-connection.d.ts +13 -0
- package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
- package/out/zql/src/planner/planner-connection.js +42 -7
- package/out/zql/src/planner/planner-connection.js.map +1 -1
- package/out/zql/src/planner/planner-debug.d.ts +1 -1
- package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
- package/out/zql/src/planner/planner-debug.js.map +1 -1
- package/out/zql/src/planner/planner-fan-out.d.ts +1 -0
- package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
- package/out/zql/src/planner/planner-fan-out.js +3 -0
- package/out/zql/src/planner/planner-fan-out.js.map +1 -1
- package/out/zql/src/planner/planner-filter.d.ts +59 -0
- package/out/zql/src/planner/planner-filter.d.ts.map +1 -0
- package/out/zql/src/planner/planner-filter.js +116 -0
- package/out/zql/src/planner/planner-filter.js.map +1 -0
- package/out/zql/src/planner/planner-graph.d.ts +2 -0
- package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
- package/out/zql/src/planner/planner-graph.js +2 -0
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.d.ts +2 -0
- package/out/zql/src/planner/planner-join.d.ts.map +1 -1
- package/out/zql/src/planner/planner-join.js +7 -0
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/planner/planner-node.d.ts +2 -1
- package/out/zql/src/planner/planner-node.d.ts.map +1 -1
- package/out/zql/src/planner/planner-node.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +9 -1
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
- package/out/zql/src/query/query-delegate-base.js +129 -33
- package/out/zql/src/query/query-delegate-base.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +50 -1
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +13 -11
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +383 -60
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-transitions.d.ts +171 -0
- package/out/zql/src/query/query-transitions.d.ts.map +1 -0
- package/out/zql/src/query/query-transitions.js +207 -0
- package/out/zql/src/query/query-transitions.js.map +1 -0
- package/out/zql/src/query/query.d.ts +11 -2
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.d.ts +1 -0
- package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.js +21 -1
- package/out/zql/src/query/runnable-query-impl.js.map +1 -1
- package/out/zql/src/query/typed-view.d.ts +1 -1
- package/out/zql/src/query/typed-view.d.ts.map +1 -1
- package/out/zqlite/src/db.d.ts +9 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +8 -2
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/query-builder.d.ts +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-cost-model.d.ts.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.js +2 -30
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +1 -0
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +20 -8
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +3 -4
|
@@ -4,14 +4,13 @@ import { AbortError } from "../../../shared/src/abort-error.js";
|
|
|
4
4
|
import { sleep, sleepWithAbort } from "../../../shared/src/sleep.js";
|
|
5
5
|
import { parse } from "../../../shared/src/valita.js";
|
|
6
6
|
import "../../../replicache/src/deleted-clients.js";
|
|
7
|
-
import { localNavigator } from "../../../shared/src/navigator.js";
|
|
8
7
|
import { getKVStoreProvider } from "../../../replicache/src/get-kv-store-provider.js";
|
|
9
8
|
import { IDBDatabasesStore } from "../../../replicache/src/persist/idb-databases-store.js";
|
|
10
9
|
import { dropDatabase } from "../../../replicache/src/persist/collect-idb-databases.js";
|
|
11
10
|
import { must } from "../../../shared/src/must.js";
|
|
12
11
|
import { clientToServer } from "../../../zero-schema/src/name-mapper.js";
|
|
13
12
|
import { h64 } from "../../../shared/src/hash.js";
|
|
14
|
-
import { getErrorMessage } from "../../../shared/src/error.js";
|
|
13
|
+
import { getErrorCauses, getErrorMessage } from "../../../shared/src/error.js";
|
|
15
14
|
import { ClientNotFound, InvalidMessage } from "../../../zero-protocol/src/error-kind-enum.js";
|
|
16
15
|
import { ProtocolError } from "../../../zero-protocol/src/error.js";
|
|
17
16
|
import "../../../zero-protocol/src/client-schema.js";
|
|
@@ -20,10 +19,11 @@ import { isMutatorRegistry, iterateMutators } from "../../../zql/src/mutate/muta
|
|
|
20
19
|
import { createRunnableBuilder } from "../../../zql/src/query/create-builder.js";
|
|
21
20
|
import "../../../zql/src/query/query.js";
|
|
22
21
|
import { addContextToQuery } from "../../../zql/src/query/query-registry.js";
|
|
23
|
-
import { Closed, Connected, Connecting, Disconnected, Error as Error$1, NeedsAuth } from "./connection-status-enum.js";
|
|
22
|
+
import { Closed, Connected, Connecting, Disconnected, Error as Error$1, Initializing, NeedsAuth } from "./connection-status-enum.js";
|
|
24
23
|
import { getDocumentVisibilityWatcher } from "../../../shared/src/document-visible.js";
|
|
25
24
|
import { ReplicacheImpl } from "../../../replicache/src/replicache-impl.js";
|
|
26
25
|
import "../../../replicache/src/impl.js";
|
|
26
|
+
import { localNavigator } from "../../../shared/src/navigator.js";
|
|
27
27
|
import { promiseRace } from "../../../shared/src/promise-race.js";
|
|
28
28
|
import { emptyFunction } from "../../../shared/src/sentinels.js";
|
|
29
29
|
import { Subscribable } from "../../../shared/src/subscribable.js";
|
|
@@ -38,7 +38,7 @@ import { isClientMetric } from "../../../zql/src/query/metrics-delegate.js";
|
|
|
38
38
|
import { nanoid } from "../util/nanoid.js";
|
|
39
39
|
import { ActiveClientsManager } from "./active-clients-manager.js";
|
|
40
40
|
import { AbruptClose, CleanClose, ClientClosed, ConnectTimeout, Hidden, Internal, InvalidMessage as InvalidMessage$1, NoSocketOrigin, PingTimeout, PullTimeout, UnexpectedBaseCookie } from "./client-error-kind-enum.js";
|
|
41
|
-
import { ClientError, NO_STATUS_TRANSITION, getBackoffParams, getErrorConnectionTransition,
|
|
41
|
+
import { ClientError, NO_STATUS_TRANSITION, getBackoffParams, getErrorConnectionTransition, isClientError, isServerError, isZeroError } from "./error.js";
|
|
42
42
|
import { ConnectionManager, throwIfConnectionError } from "./connection-manager.js";
|
|
43
43
|
import { ConnectionImpl } from "./connection.js";
|
|
44
44
|
import { IVMSourceBranch } from "./ivm-branch.js";
|
|
@@ -90,6 +90,11 @@ var DEFAULT_DISCONNECT_TIMEOUT_MS = 60 * 1e3;
|
|
|
90
90
|
* consider it timed out.
|
|
91
91
|
*/
|
|
92
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;
|
|
93
98
|
var CHECK_CONNECTIVITY_ON_ERROR_FREQUENCY = 6;
|
|
94
99
|
var DEFAULT_QUERY_CHANGE_THROTTLE_MS = 10;
|
|
95
100
|
function convertOnUpdateNeededReason(reason) {
|
|
@@ -117,7 +122,7 @@ var serverAheadReloadReason = `Server reported that client is ahead of server. T
|
|
|
117
122
|
function onClientStateNotFoundServerReason(serverErrMsg) {
|
|
118
123
|
return `Server could not find state needed to synchronize this client. ${serverErrMsg}`;
|
|
119
124
|
}
|
|
120
|
-
var ON_CLIENT_STATE_NOT_FOUND_REASON_CLIENT = "The local persistent state needed to synchronize this client has been garbage collected.";
|
|
125
|
+
var ON_CLIENT_STATE_NOT_FOUND_REASON_CLIENT = "The local persistent state needed to synchronize this client has been garbage collected or was found to be corrupt.";
|
|
121
126
|
var CLOSE_CODE_NORMAL = 1e3;
|
|
122
127
|
var Zero = class Zero {
|
|
123
128
|
version = version;
|
|
@@ -281,7 +286,7 @@ var Zero = class Zero {
|
|
|
281
286
|
})).toString(36);
|
|
282
287
|
const storageScopedUserID = userID ?? "__anonymous__";
|
|
283
288
|
const replicacheOptions = {
|
|
284
|
-
schemaVersion: `
|
|
289
|
+
schemaVersion: `53.${hash}`,
|
|
285
290
|
logLevel: logOptions.logLevel,
|
|
286
291
|
logSinks: [logOptions.logSink],
|
|
287
292
|
mutators: replicacheMutators,
|
|
@@ -296,12 +301,13 @@ var Zero = class Zero {
|
|
|
296
301
|
licenseKey: "zero-client-static-key",
|
|
297
302
|
kvStore
|
|
298
303
|
};
|
|
304
|
+
this.#visibilityWatcher = getDocumentVisibilityWatcher(getBrowserGlobal("document"), hiddenTabDisconnectDelay, this.#closeAbortController.signal);
|
|
299
305
|
this.#zeroContext = new ZeroContext(lc, this.#ivmMain, (ast, ttl, gotCallback) => {
|
|
300
306
|
if (enableLegacyQueries) return this.#queryManager.addLegacy(ast, ttl, gotCallback);
|
|
301
307
|
return emptyFunction;
|
|
302
308
|
}, (ast, customQueryID, ttl, gotCallback) => this.#queryManager.addCustom(ast, customQueryID, ttl, gotCallback), (ast, ttl) => {
|
|
303
309
|
if (enableLegacyQueries) this.#queryManager.updateLegacy(ast, ttl);
|
|
304
|
-
}, (customQueryID, ttl) => this.#queryManager.updateCustom(customQueryID, ttl), () => this.#queryManager.flushBatch(), batchViewUpdates, this.#addMetric, assertValidRunOptions);
|
|
310
|
+
}, (customQueryID, ttl) => this.#queryManager.updateCustom(customQueryID, ttl), () => this.#queryManager.flushBatch(), batchViewUpdates, this.#addMetric, assertValidRunOptions, this.#visibilityWatcher);
|
|
305
311
|
this.query = createRunnableBuilder(this.#zeroContext, schema);
|
|
306
312
|
const rep = new ReplicacheImpl(replicacheOptions, {
|
|
307
313
|
enableClientGroupForking: false,
|
|
@@ -321,7 +327,7 @@ var Zero = class Zero {
|
|
|
321
327
|
this.#activeClientsManager = makeActiveClientsManager(rep.clientGroupID, this.clientID, this.#closeAbortController.signal, (clientID, clientGroupID) => this.#deleteClientsManager.onClientsDeleted([{
|
|
322
328
|
clientGroupID,
|
|
323
329
|
clientID
|
|
324
|
-
}]));
|
|
330
|
+
}]), this.#lc);
|
|
325
331
|
const onUpdateNeededCallback = (reason) => {
|
|
326
332
|
if (onUpdateNeeded) onUpdateNeeded(reason);
|
|
327
333
|
else reloadWithReason(this.#lc, this.#reload, reason.type, updateNeededReloadReasonMessage(reason));
|
|
@@ -372,15 +378,15 @@ var Zero = class Zero {
|
|
|
372
378
|
});
|
|
373
379
|
this.#metrics.tags.push(`version:${this.version}`);
|
|
374
380
|
this.#pokeHandler = new PokeHandler(async (poke) => {
|
|
381
|
+
const socket = this.#socket;
|
|
375
382
|
await this.#rep.poke(poke);
|
|
376
|
-
this.#queryManager.markGotQueriesAuthoritative();
|
|
383
|
+
if (socket !== void 0 && this.#socket === socket) this.#queryManager.markGotQueriesAuthoritative();
|
|
377
384
|
}, (e) => this.#onPokeError(e), rep.clientID, schema, this.#lc, this.#mutationTracker);
|
|
378
|
-
this.#visibilityWatcher = getDocumentVisibilityWatcher(getBrowserGlobal("document"), hiddenTabDisconnectDelay, this.#closeAbortController.signal);
|
|
379
385
|
this.#runLoop();
|
|
380
386
|
this.#expose();
|
|
381
387
|
}
|
|
382
388
|
#enableRefresh() {
|
|
383
|
-
return this.#forceEnableRefresh || !this.#connectionManager.is("connected") && !this.#connectionManager.is("connecting");
|
|
389
|
+
return this.#forceEnableRefresh || !this.#connectionManager.is("connected") && !this.#connectionManager.is("connecting") && !this.#connectionManager.is("initializing");
|
|
384
390
|
}
|
|
385
391
|
#expose() {
|
|
386
392
|
const g = globalThis;
|
|
@@ -431,8 +437,11 @@ var Zero = class Zero {
|
|
|
431
437
|
* This function is useful when you want to populate the cache ahead of time,
|
|
432
438
|
* for example after login, to avoid a flash of loading screen on the next page.
|
|
433
439
|
*
|
|
434
|
-
* Returns an object with
|
|
435
|
-
* - `complete`: a Promise that resolves when the
|
|
440
|
+
* Returns an object with three properties:
|
|
441
|
+
* - `complete`: a Promise that resolves when the server has confirmed the
|
|
442
|
+
* data on this connection
|
|
443
|
+
* - `cached`: a Promise that resolves as soon as the store holds a
|
|
444
|
+
* server-confirmed result, from this connection or a previous one
|
|
436
445
|
* - `cleanup`: a function that can be called to cancel the preload
|
|
437
446
|
*
|
|
438
447
|
* @example
|
|
@@ -449,7 +458,9 @@ var Zero = class Zero {
|
|
|
449
458
|
* Executes a query once and returns the results.
|
|
450
459
|
*
|
|
451
460
|
* By default, runs immediately with whatever data is available locally.
|
|
452
|
-
* Use `{type: 'complete'}` to wait for fresh results from the server
|
|
461
|
+
* Use `{type: 'complete'}` to wait for fresh results from the server, or
|
|
462
|
+
* `{type: 'cached'}` to accept a result the server confirmed on a previous
|
|
463
|
+
* connection when the store holds one.
|
|
453
464
|
*
|
|
454
465
|
* @param query - The query to execute
|
|
455
466
|
* @param runOptions - Options controlling query execution
|
|
@@ -494,6 +505,16 @@ var Zero = class Zero {
|
|
|
494
505
|
return this.#rep.idbName;
|
|
495
506
|
}
|
|
496
507
|
/**
|
|
508
|
+
* The KV store backing this instance of Zero. Its `kind` is the storage
|
|
509
|
+
* currently in use: `'idb'`, `'mem'`, `'op-sqlite'`, `'expo-sqlite'`, or
|
|
510
|
+
* whatever a custom store reports. An IndexedDB store that fails to open
|
|
511
|
+
* falls back to memory, so `kind` can change from `'idb'` to `'mem'` after
|
|
512
|
+
* the first read or write.
|
|
513
|
+
*/
|
|
514
|
+
get kvStore() {
|
|
515
|
+
return this.#rep.kvStore;
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
497
518
|
* The schema version of the data understood by this application.
|
|
498
519
|
* See [[ZeroOptions.schemaVersion]].
|
|
499
520
|
*/
|
|
@@ -913,11 +934,11 @@ var Zero = class Zero {
|
|
|
913
934
|
const clientGroupID = await this.clientGroupID;
|
|
914
935
|
this.#addConnectEvent(lc, attempt, "initializing active clients");
|
|
915
936
|
const activeClientsManager = await this.#activeClientsManager;
|
|
916
|
-
if (signal.aborted) throw signal.reason;
|
|
937
|
+
if (signal.aborted) throw attempt.abortReason ?? signal.reason;
|
|
917
938
|
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));
|
|
918
939
|
if (signal.aborted) {
|
|
919
940
|
ws.close();
|
|
920
|
-
throw signal.reason;
|
|
941
|
+
throw attempt.abortReason ?? signal.reason;
|
|
921
942
|
}
|
|
922
943
|
if (this.closed) {
|
|
923
944
|
ws.close();
|
|
@@ -933,17 +954,52 @@ var Zero = class Zero {
|
|
|
933
954
|
this.#socketResolver.resolve(ws);
|
|
934
955
|
this.#addConnectEvent(lc, attempt, "waiting for the server acknowledgement");
|
|
935
956
|
lc.debug?.("Waiting for connection to be acknowledged");
|
|
957
|
+
attempt.clearTimeout?.();
|
|
958
|
+
attempt.clearTimeout = this.#armConnectTimeout(lc, attempt, "ack");
|
|
936
959
|
await attempt.connected.promise;
|
|
937
|
-
if (signal.aborted) throw signal.reason;
|
|
960
|
+
if (signal.aborted) throw attempt.abortReason ?? signal.reason;
|
|
938
961
|
this.#mutationTracker.onConnected(this.#lastMutationIDReceived);
|
|
939
962
|
this.#rep.push().catch(() => {});
|
|
940
963
|
}
|
|
964
|
+
/**
|
|
965
|
+
* Starts the deadline for one phase of a connection attempt, and returns a
|
|
966
|
+
* function that cancels it.
|
|
967
|
+
*
|
|
968
|
+
* The two phases are measured separately because they fail for unrelated
|
|
969
|
+
* reasons. `setup` covers local work — reading the cookie, the client group
|
|
970
|
+
* ID and the active clients from IDB, then preparing and opening the socket
|
|
971
|
+
* — whose duration says nothing about whether the server is reachable.
|
|
972
|
+
* `ack` covers the wait for the server's response. Running them on one
|
|
973
|
+
* budget meant a slow cold boot spent the server's time before the socket
|
|
974
|
+
* existed, and reported a healthy server as unreachable.
|
|
975
|
+
*/
|
|
976
|
+
#armConnectTimeout(lc, attempt, phase) {
|
|
977
|
+
const { signal } = attempt.controller;
|
|
978
|
+
if (signal.aborted) return () => {};
|
|
979
|
+
const timeoutID = setTimeout(() => {
|
|
980
|
+
lc.debug?.("Connection attempt timed out");
|
|
981
|
+
this.#disconnect(lc, new ClientError({
|
|
982
|
+
kind: ConnectTimeout,
|
|
983
|
+
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)}`
|
|
984
|
+
}));
|
|
985
|
+
}, CONNECT_TIMEOUT_MS);
|
|
986
|
+
const clear = () => {
|
|
987
|
+
clearTimeout(timeoutID);
|
|
988
|
+
signal.removeEventListener("abort", clear);
|
|
989
|
+
};
|
|
990
|
+
signal.addEventListener("abort", clear, { once: true });
|
|
991
|
+
return clear;
|
|
992
|
+
}
|
|
941
993
|
#addConnectEvent(lc, attempt, event) {
|
|
942
994
|
attempt.events.push([/* @__PURE__ */ new Date(), event]);
|
|
943
995
|
lc.debug?.("Connect event", event);
|
|
944
996
|
}
|
|
945
997
|
#disconnect(lc, reason, closeCode) {
|
|
946
|
-
this.#currentConnectAttempt
|
|
998
|
+
const attempt = this.#currentConnectAttempt;
|
|
999
|
+
if (attempt) {
|
|
1000
|
+
attempt.abortReason = reason;
|
|
1001
|
+
attempt.controller.abort(reason);
|
|
1002
|
+
}
|
|
947
1003
|
if (shouldReportConnectError(reason)) {
|
|
948
1004
|
this.#connectErrorCount++;
|
|
949
1005
|
this.#metrics.lastConnectError.set(getLastConnectErrorValue(reason));
|
|
@@ -970,6 +1026,7 @@ var Zero = class Zero {
|
|
|
970
1026
|
case Closed:
|
|
971
1027
|
lc.debug?.("disconnect() called while closed");
|
|
972
1028
|
return;
|
|
1029
|
+
case Initializing:
|
|
973
1030
|
case Disconnected:
|
|
974
1031
|
case Connecting:
|
|
975
1032
|
case NeedsAuth:
|
|
@@ -1113,6 +1170,26 @@ var Zero = class Zero {
|
|
|
1113
1170
|
};
|
|
1114
1171
|
const { auth } = this.#options;
|
|
1115
1172
|
this.#setAuth(auth);
|
|
1173
|
+
const { signal: closeSignal } = this.#closeAbortController;
|
|
1174
|
+
const closed = resolver();
|
|
1175
|
+
const onClose = () => closed.resolve();
|
|
1176
|
+
closeSignal.addEventListener("abort", onClose, { once: true });
|
|
1177
|
+
try {
|
|
1178
|
+
if ((await promiseRace({
|
|
1179
|
+
initialized: Promise.all([
|
|
1180
|
+
this.#rep.cookie,
|
|
1181
|
+
this.clientGroupID,
|
|
1182
|
+
this.#activeClientsManager
|
|
1183
|
+
]),
|
|
1184
|
+
closed: closed.promise
|
|
1185
|
+
})).key === "closed") {
|
|
1186
|
+
this.#lc.debug?.("Closed while initializing, not connecting");
|
|
1187
|
+
return;
|
|
1188
|
+
}
|
|
1189
|
+
} catch {} finally {
|
|
1190
|
+
closeSignal.removeEventListener("abort", onClose);
|
|
1191
|
+
}
|
|
1192
|
+
this.#connectionManager.initialized();
|
|
1116
1193
|
let backoffMs;
|
|
1117
1194
|
let additionalConnectParams;
|
|
1118
1195
|
while (this.#connectionManager.shouldContinueRunLoop()) {
|
|
@@ -1146,16 +1223,10 @@ var Zero = class Zero {
|
|
|
1146
1223
|
};
|
|
1147
1224
|
this.#currentConnectAttempt = attempt;
|
|
1148
1225
|
this.#addConnectEvent(lc, attempt, "starting the connection");
|
|
1226
|
+
attempt.clearTimeout = this.#armConnectTimeout(lc, attempt, "setup");
|
|
1149
1227
|
const canceled = resolver();
|
|
1150
|
-
const abortHandler = () => canceled.reject(attempt.controller.signal.reason);
|
|
1228
|
+
const abortHandler = () => canceled.reject(attempt.abortReason ?? attempt.controller.signal.reason);
|
|
1151
1229
|
attempt.controller.signal.addEventListener("abort", abortHandler, { once: true });
|
|
1152
|
-
const timeoutID = setTimeout(() => {
|
|
1153
|
-
lc.debug?.("Connection attempt timed out");
|
|
1154
|
-
this.#disconnect(lc, new ClientError({
|
|
1155
|
-
kind: ConnectTimeout,
|
|
1156
|
-
message: `Connection attempt timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds. Connect events: ${JSON.stringify(attempt.events)}`
|
|
1157
|
-
}));
|
|
1158
|
-
}, CONNECT_TIMEOUT_MS);
|
|
1159
1230
|
try {
|
|
1160
1231
|
try {
|
|
1161
1232
|
await Promise.race([this.#connectAttempt(lc, additionalConnectParams, attempt), canceled.promise]);
|
|
@@ -1172,7 +1243,7 @@ var Zero = class Zero {
|
|
|
1172
1243
|
ready.resolve();
|
|
1173
1244
|
additionalConnectParams = void 0;
|
|
1174
1245
|
} finally {
|
|
1175
|
-
clearTimeout(
|
|
1246
|
+
attempt.clearTimeout?.();
|
|
1176
1247
|
attempt.controller.signal.removeEventListener("abort", abortHandler);
|
|
1177
1248
|
if (this.#currentConnectAttempt === attempt) this.#currentConnectAttempt = void 0;
|
|
1178
1249
|
}
|
|
@@ -1225,27 +1296,38 @@ var Zero = class Zero {
|
|
|
1225
1296
|
})).key === "connectRequest") this.#connectionManager.resumeFromConnectRequest();
|
|
1226
1297
|
break;
|
|
1227
1298
|
case Error$1:
|
|
1228
|
-
lc.info?.(`Run loop paused in error state. Call zero.connection.connect() to resume.`, currentState.reason);
|
|
1299
|
+
lc.info?.(`Run loop paused in error state. Call zero.connection.connect() to resume.`, currentState.reason, ...getErrorCauses(currentState.reason));
|
|
1229
1300
|
if ((await promiseRace({
|
|
1230
1301
|
connectRequest: this.#connectionManager.waitForConnectRequest(),
|
|
1231
1302
|
stateChange: this.#connectionManager.waitForStateChange()
|
|
1232
1303
|
})).key === "connectRequest") this.#connectionManager.resumeFromConnectRequest();
|
|
1233
1304
|
break;
|
|
1234
1305
|
case Closed: break;
|
|
1306
|
+
case Initializing: unreachable();
|
|
1235
1307
|
default: unreachable(currentState);
|
|
1236
1308
|
}
|
|
1237
1309
|
} catch (ex) {
|
|
1238
1310
|
const isClientClosedError = isClientError(ex) && ex.kind === "ClientClosed";
|
|
1311
|
+
const transition = getErrorConnectionTransition(ex);
|
|
1239
1312
|
if (!this.#connectionManager.is("connected") && !isClientClosedError) {
|
|
1240
|
-
|
|
1313
|
+
let level;
|
|
1314
|
+
switch (transition.status) {
|
|
1315
|
+
case Error$1:
|
|
1316
|
+
level = "error";
|
|
1317
|
+
break;
|
|
1318
|
+
case Disconnected:
|
|
1319
|
+
case Closed:
|
|
1320
|
+
level = "info";
|
|
1321
|
+
break;
|
|
1322
|
+
default: level = "warn";
|
|
1323
|
+
}
|
|
1241
1324
|
const kind = isServerError(ex) ? ex.kind : "Unknown Error";
|
|
1242
|
-
lc[level]?.("Failed to connect", ex, kind, {
|
|
1325
|
+
lc[level]?.("Failed to connect", ex, ...getErrorCauses(ex), kind, {
|
|
1243
1326
|
lmid: this.#lastMutationIDReceived,
|
|
1244
1327
|
baseCookie: this.#connectCookie
|
|
1245
1328
|
});
|
|
1246
1329
|
}
|
|
1247
1330
|
lc.debug?.("Got an exception in the run loop", "state:", this.#connectionManager.state, "exception:", ex);
|
|
1248
|
-
const transition = getErrorConnectionTransition(ex);
|
|
1249
1331
|
let sleepMs = void 0;
|
|
1250
1332
|
switch (transition.status) {
|
|
1251
1333
|
case NO_STATUS_TRANSITION: {
|
|
@@ -1504,7 +1586,7 @@ async function createSocket(rep, queryManager, deleteClientsManager, socketOrigi
|
|
|
1504
1586
|
];
|
|
1505
1587
|
}
|
|
1506
1588
|
async function createConnectionURL(socketOrigin, clientID, clientGroupID, userID, baseCookie, lmid, wsid, rep, debugPerf, additionalConnectParams, lc) {
|
|
1507
|
-
const url = new URL(appendPath(socketOrigin, `/sync/
|
|
1589
|
+
const url = new URL(appendPath(socketOrigin, `/sync/v53/connect`));
|
|
1508
1590
|
const { searchParams } = url;
|
|
1509
1591
|
searchParams.set("clientID", clientID);
|
|
1510
1592
|
searchParams.set("clientGroupID", clientGroupID);
|
|
@@ -1549,8 +1631,14 @@ function addWebSocketIDToLogContext(wsid, lc) {
|
|
|
1549
1631
|
return lc.withContext("wsid", wsid);
|
|
1550
1632
|
}
|
|
1551
1633
|
function assertValidRunOptions(_options) {}
|
|
1552
|
-
async function makeActiveClientsManager(clientGroupID, clientID, signal, onDelete) {
|
|
1553
|
-
const
|
|
1634
|
+
async function makeActiveClientsManager(clientGroupID, clientID, signal, onDelete, lc) {
|
|
1635
|
+
const groupID = await clientGroupID;
|
|
1636
|
+
const start = performance.now();
|
|
1637
|
+
const manager = await ActiveClientsManager.create(groupID, clientID, signal);
|
|
1638
|
+
const elapsed = performance.now() - start;
|
|
1639
|
+
const locks = getBrowserGlobal("navigator")?.locks ? "native" : "fallback";
|
|
1640
|
+
if (elapsed > SLOW_ACTIVE_CLIENTS_THRESHOLD_MS) lc.warn?.(`Initializing active clients took ${Math.round(elapsed)}ms`, { locks });
|
|
1641
|
+
else lc.debug?.("Initialized active clients in", Math.round(elapsed), "ms", { locks });
|
|
1554
1642
|
manager.onDelete = onDelete;
|
|
1555
1643
|
return manager;
|
|
1556
1644
|
}
|