@rocicorp/zero 1.10.0-canary.2 → 1.10.0-canary.21
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/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 +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/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.map +1 -1
- package/out/replicache/src/replicache-impl.js +14 -2
- 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/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 +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.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
|
}
|