@rocicorp/zero 1.12.0-canary.0 → 1.12.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/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.154.0/helpers/esm}/usingCtx.js +2 -2
- package/out/analyze-query/src/analyze-cli.d.ts.map +1 -1
- package/out/analyze-query/src/analyze-cli.js +4 -2
- package/out/analyze-query/src/analyze-cli.js.map +1 -1
- package/out/analyze-query/src/bin-transform.js +4 -3
- package/out/analyze-query/src/bin-transform.js.map +1 -1
- package/out/analyze-query/src/zql-chain.d.ts +23 -0
- package/out/analyze-query/src/zql-chain.d.ts.map +1 -0
- package/out/analyze-query/src/zql-chain.js +162 -0
- package/out/analyze-query/src/zql-chain.js.map +1 -0
- package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
- package/out/ast-to-zql/src/bin.js +4 -3
- package/out/ast-to-zql/src/bin.js.map +1 -1
- package/out/ast-to-zql/src/format.js.map +1 -1
- package/out/datadog/src/datadog-log-sink.js +5 -4
- package/out/datadog/src/datadog-log-sink.js.map +1 -1
- package/out/otel/src/log-options.js.map +1 -1
- package/out/replicache/src/btree/node.d.ts +0 -2
- package/out/replicache/src/btree/node.d.ts.map +1 -1
- package/out/replicache/src/btree/node.js +14 -12
- package/out/replicache/src/btree/node.js.map +1 -1
- package/out/replicache/src/btree/read.js +4 -2
- package/out/replicache/src/btree/read.js.map +1 -1
- package/out/replicache/src/btree/splice.js.map +1 -1
- package/out/replicache/src/btree/write.js +9 -5
- package/out/replicache/src/btree/write.js.map +1 -1
- package/out/replicache/src/config.js +1 -2
- package/out/replicache/src/connection-loop.d.ts.map +1 -1
- package/out/replicache/src/connection-loop.js +1 -1
- package/out/replicache/src/connection-loop.js.map +1 -1
- package/out/replicache/src/dag/chunk.js +1 -1
- package/out/replicache/src/dag/gc.js.map +1 -1
- package/out/replicache/src/dag/lazy-store.js +8 -7
- package/out/replicache/src/dag/lazy-store.js.map +1 -1
- package/out/replicache/src/dag/store-impl.js +1 -1
- package/out/replicache/src/dag/store-impl.js.map +1 -1
- package/out/replicache/src/dag/visitor.js.map +1 -1
- package/out/replicache/src/db/commit.d.ts +0 -1
- package/out/replicache/src/db/commit.d.ts.map +1 -1
- package/out/replicache/src/db/commit.js +5 -3
- package/out/replicache/src/db/commit.js.map +1 -1
- package/out/replicache/src/db/read.js +1 -1
- package/out/replicache/src/db/read.js.map +1 -1
- package/out/replicache/src/db/rebase.js.map +1 -1
- package/out/replicache/src/db/write.d.ts +0 -2
- package/out/replicache/src/db/write.d.ts.map +1 -1
- package/out/replicache/src/db/write.js +5 -2
- package/out/replicache/src/db/write.js.map +1 -1
- package/out/replicache/src/deleted-clients.d.ts +0 -2
- package/out/replicache/src/deleted-clients.d.ts.map +1 -1
- package/out/replicache/src/deleted-clients.js +5 -3
- package/out/replicache/src/deleted-clients.js.map +1 -1
- package/out/replicache/src/expo-sqlite.js +1 -2
- package/out/replicache/src/frozen-json.d.ts +0 -1
- package/out/replicache/src/frozen-json.d.ts.map +1 -1
- package/out/replicache/src/frozen-json.js +1 -1
- package/out/replicache/src/frozen-json.js.map +1 -1
- package/out/replicache/src/get-default-puller.js +1 -1
- package/out/replicache/src/hash.js +1 -1
- package/out/replicache/src/hash.js.map +1 -1
- package/out/replicache/src/impl.js +1 -2
- package/out/replicache/src/index-defs.d.ts +0 -2
- package/out/replicache/src/index-defs.d.ts.map +1 -1
- package/out/replicache/src/index-defs.js +5 -3
- package/out/replicache/src/index-defs.js.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts +0 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/idb-store.js +2 -2
- package/out/replicache/src/kv/idb-store.js.map +1 -1
- package/out/replicache/src/kv/mem-fallback-store.js +1 -1
- package/out/replicache/src/kv/mem-fallback-store.js.map +1 -1
- package/out/replicache/src/kv/mem-store.js.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/op-sqlite/types.js.map +1 -1
- package/out/replicache/src/kv/read-impl.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +8 -4
- package/out/replicache/src/kv/sqlite-store.js.map +1 -1
- package/out/replicache/src/kv/throw-if-closed.d.ts +0 -3
- package/out/replicache/src/kv/throw-if-closed.d.ts.map +1 -1
- package/out/replicache/src/kv/throw-if-closed.js.map +1 -1
- package/out/replicache/src/kv/write-impl-base.js +4 -1
- package/out/replicache/src/kv/write-impl-base.js.map +1 -1
- package/out/replicache/src/kv/write-impl.js.map +1 -1
- package/out/replicache/src/log-options.js +2 -1
- package/out/replicache/src/log-options.js.map +1 -1
- package/out/replicache/src/make-idb-name.js +1 -1
- package/out/replicache/src/new-client-channel.js +9 -7
- package/out/replicache/src/new-client-channel.js.map +1 -1
- package/out/replicache/src/on-persist-channel.js +1 -1
- package/out/replicache/src/on-persist-channel.js.map +1 -1
- package/out/replicache/src/op-sqlite.js +1 -2
- package/out/replicache/src/pending-mutations.js +2 -1
- package/out/replicache/src/pending-mutations.js.map +1 -1
- package/out/replicache/src/persist/client-gc.js +2 -2
- package/out/replicache/src/persist/client-gc.js.map +1 -1
- package/out/replicache/src/persist/client-group-gc.d.ts +0 -7
- package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -1
- package/out/replicache/src/persist/client-group-gc.js +1 -1
- package/out/replicache/src/persist/client-group-gc.js.map +1 -1
- package/out/replicache/src/persist/client-groups.js +1 -1
- package/out/replicache/src/persist/client-groups.js.map +1 -1
- package/out/replicache/src/persist/clients.js +1 -1
- package/out/replicache/src/persist/clients.js.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.js +5 -4
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -1
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -1
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -1
- package/out/replicache/src/persist/heartbeat.js +2 -2
- package/out/replicache/src/persist/heartbeat.js.map +1 -1
- package/out/replicache/src/persist/idb-databases-store.js +1 -1
- package/out/replicache/src/persist/idb-databases-store.js.map +1 -1
- package/out/replicache/src/persist/make-client-id.js +1 -1
- package/out/replicache/src/persist/make-client-id.js.map +1 -1
- package/out/replicache/src/persist/persist.js +3 -2
- package/out/replicache/src/persist/persist.js.map +1 -1
- package/out/replicache/src/persist/refresh.js +8 -5
- package/out/replicache/src/persist/refresh.js.map +1 -1
- package/out/replicache/src/process-scheduler.js +1 -1
- package/out/replicache/src/process-scheduler.js.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts +2 -7
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js +21 -18
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/replicache/src/scan-iterator.js.map +1 -1
- package/out/replicache/src/scan-options.js +7 -6
- package/out/replicache/src/scan-options.js.map +1 -1
- package/out/replicache/src/sqlite.js +1 -2
- package/out/replicache/src/subscriptions.js +1 -1
- package/out/replicache/src/subscriptions.js.map +1 -1
- package/out/replicache/src/sync/diff.js +3 -1
- package/out/replicache/src/sync/diff.js.map +1 -1
- package/out/replicache/src/sync/ids.js.map +1 -1
- package/out/replicache/src/sync/patch.d.ts +0 -5
- package/out/replicache/src/sync/patch.d.ts.map +1 -1
- package/out/replicache/src/sync/patch.js +2 -4
- package/out/replicache/src/sync/patch.js.map +1 -1
- package/out/replicache/src/sync/pull.d.ts +0 -1
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.js +3 -1
- package/out/replicache/src/sync/pull.js.map +1 -1
- package/out/replicache/src/sync/push.d.ts +2 -1
- package/out/replicache/src/sync/push.d.ts.map +1 -1
- package/out/replicache/src/sync/push.js.map +1 -1
- package/out/replicache/src/sync/request-id.js +1 -1
- package/out/replicache/src/sync/request-id.js.map +1 -1
- package/out/replicache/src/transactions.js +1 -1
- package/out/replicache/src/transactions.js.map +1 -1
- package/out/replicache/src/types.d.ts +2 -1
- package/out/replicache/src/types.d.ts.map +1 -1
- package/out/shared/src/arrays.js +4 -1
- package/out/shared/src/arrays.js.map +1 -1
- package/out/shared/src/asserts.d.ts +0 -5
- package/out/shared/src/asserts.d.ts.map +1 -1
- package/out/shared/src/asserts.js.map +1 -1
- package/out/shared/src/bigint-json.d.ts +9 -0
- package/out/shared/src/bigint-json.d.ts.map +1 -1
- package/out/shared/src/bigint-json.js +27 -2
- package/out/shared/src/bigint-json.js.map +1 -1
- package/out/shared/src/broadcast-channel.js +1 -1
- package/out/shared/src/browser-env.d.ts +0 -17
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/browser-env.js.map +1 -1
- package/out/shared/src/btree-set.js +11 -8
- package/out/shared/src/btree-set.js.map +1 -1
- package/out/shared/src/cache.js.map +1 -1
- package/out/shared/src/config.js +1 -1
- package/out/shared/src/custom-key-map.js.map +1 -1
- package/out/shared/src/custom-key-set.js.map +1 -1
- package/out/shared/src/deep-clone.d.ts +0 -1
- package/out/shared/src/deep-clone.d.ts.map +1 -1
- package/out/shared/src/deep-clone.js.map +1 -1
- package/out/shared/src/document-visible.js +1 -1
- package/out/shared/src/document-visible.js.map +1 -1
- package/out/shared/src/dotenv.js.map +1 -1
- package/out/shared/src/error.js +1 -1
- package/out/shared/src/error.js.map +1 -1
- package/out/shared/src/expand.d.ts +0 -3
- package/out/shared/src/expand.d.ts.map +1 -1
- package/out/shared/src/hash.js +2 -2
- package/out/shared/src/hash.js.map +1 -1
- package/out/shared/src/immutable.d.ts +1 -1
- package/out/shared/src/immutable.d.ts.map +1 -1
- package/out/shared/src/iterables.d.ts +0 -1
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js.map +1 -1
- package/out/shared/src/json-schema.js.map +1 -1
- package/out/shared/src/json.js.map +1 -1
- package/out/shared/src/logging-test-utils.js.map +1 -1
- package/out/shared/src/logging.js +1 -1
- package/out/shared/src/logging.js.map +1 -1
- package/out/shared/src/navigator.js +1 -1
- package/out/shared/src/options-types.d.ts +1 -1
- package/out/shared/src/options-types.d.ts.map +1 -1
- package/out/shared/src/options.d.ts +2 -3
- package/out/shared/src/options.d.ts.map +1 -1
- package/out/shared/src/options.js +8 -11
- package/out/shared/src/options.js.map +1 -1
- package/out/shared/src/promise-race.js +1 -1
- package/out/shared/src/promise-race.js.map +1 -1
- package/out/shared/src/queue.js +1 -1
- package/out/shared/src/queue.js.map +1 -1
- package/out/shared/src/record-proxy.js.map +1 -1
- package/out/shared/src/resolved-promises.d.ts +0 -4
- package/out/shared/src/resolved-promises.d.ts.map +1 -1
- package/out/shared/src/resolved-promises.js +0 -1
- package/out/shared/src/resolved-promises.js.map +1 -1
- package/out/shared/src/resolver.d.ts +9 -0
- package/out/shared/src/resolver.d.ts.map +1 -0
- package/out/shared/src/resolver.js +6 -0
- package/out/shared/src/resolver.js.map +1 -0
- package/out/shared/src/ring-buffer.js.map +1 -1
- package/out/shared/src/size-of-value.js +7 -10
- package/out/shared/src/size-of-value.js.map +1 -1
- package/out/shared/src/sleep.js +1 -1
- package/out/shared/src/sleep.js.map +1 -1
- package/out/shared/src/sorted-entries.js.map +1 -1
- package/out/shared/src/tdigest-schema.js.map +1 -1
- package/out/shared/src/tdigest.d.ts +0 -1
- package/out/shared/src/tdigest.d.ts.map +1 -1
- package/out/shared/src/tdigest.js.map +1 -1
- package/out/shared/src/valita.js +1 -1
- package/out/shared/src/valita.js.map +1 -1
- package/out/z2s/src/compiler.js +5 -7
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/sql.d.ts +1 -5
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +1 -1
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/package.js +210 -189
- package/out/zero/package.js.map +1 -1
- package/out/zero/src/adapters/drizzle.js +1 -2
- package/out/zero/src/adapters/kysely.js +1 -2
- package/out/zero/src/adapters/pg.js +1 -2
- package/out/zero/src/adapters/postgresjs.js +1 -2
- package/out/zero/src/adapters/prisma.js +1 -2
- package/out/zero/src/analyze.js +1 -2
- package/out/zero/src/change-protocol/v0.js +1 -2
- package/out/zero/src/expo-sqlite.js +1 -2
- package/out/zero/src/op-sqlite.js +1 -2
- package/out/zero/src/react-native.js.map +1 -1
- package/out/zero/src/sqlite.js +1 -2
- package/out/zero/src/zero-cache-dev.js +11 -10
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero/src/zero-out.js +2 -1
- package/out/zero/src/zero-out.js.map +1 -1
- package/out/zero-cache/src/auth/auth.js +1 -1
- package/out/zero-cache/src/auth/auth.js.map +1 -1
- package/out/zero-cache/src/auth/jwt.js +4 -1
- package/out/zero-cache/src/auth/jwt.js.map +1 -1
- package/out/zero-cache/src/auth/load-permissions.js +1 -1
- package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +3 -2
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +15 -19
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/network.js +1 -1
- package/out/zero-cache/src/config/network.js.map +1 -1
- package/out/zero-cache/src/config/server-context.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +19 -11
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +47 -10
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +1 -1
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/index-predicate.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts +2 -2
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +1 -1
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.js +5 -3
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/pg-copy-binary.js +4 -3
- package/out/zero-cache/src/db/pg-copy-binary.js.map +1 -1
- package/out/zero-cache/src/db/pg-copy.js +0 -1
- package/out/zero-cache/src/db/pg-copy.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
- package/out/zero-cache/src/db/run-transaction.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +3 -4
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.js +1 -1
- package/out/zero-cache/src/db/specs.js.map +1 -1
- package/out/zero-cache/src/db/sqlite-corruption.js.map +1 -1
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/db/statements.js +9 -2
- package/out/zero-cache/src/db/statements.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.js +6 -4
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
- package/out/zero-cache/src/db/warmup.js.map +1 -1
- package/out/zero-cache/src/observability/events.js +1 -1
- package/out/zero-cache/src/observability/events.js.map +1 -1
- package/out/zero-cache/src/observability/log-throttle.js.map +1 -1
- package/out/zero-cache/src/observability/metrics.js.map +1 -1
- package/out/zero-cache/src/scripts/decommission.js +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js +5 -3
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
- package/out/zero-cache/src/scripts/permissions.js.map +1 -1
- package/out/zero-cache/src/server/anonymous-otel-start.js +2 -1
- package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +49 -16
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/logging.js +1 -1
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/main.js +2 -2
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
- package/out/zero-cache/src/server/otel-start.js.map +1 -1
- package/out/zero-cache/src/server/reaper.js +2 -2
- package/out/zero-cache/src/server/reaper.js.map +1 -1
- package/out/zero-cache/src/server/replicator.js +1 -1
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +4 -3
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/runner/runtime.js +2 -1
- package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts +9 -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 +29 -2
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/shadow-syncer.js +1 -1
- package/out/zero-cache/src/server/shadow-syncer.js.map +1 -1
- package/out/zero-cache/src/server/slot-keeper.js.map +1 -1
- package/out/zero-cache/src/server/syncer-assigner.js.map +1 -1
- package/out/zero-cache/src/server/syncer.js +10 -5
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.js +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/worker-urls.js.map +1 -1
- package/out/zero-cache/src/services/analyze.js +2 -2
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js +3 -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/change-stream-multiplexer.js +1 -1
- 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/init-cleanup.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.js +4 -4
- package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +4 -4
- 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-init.js +52 -27
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +70 -15
- 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.js +2 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/fork-request.js +54 -0
- package/out/zero-cache/src/services/change-source/pg/fork-request.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +9 -7
- 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/binary-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +5 -4
- 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/lsn.d.ts +0 -2
- package/out/zero-cache/src/services/change-source/pg/lsn.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js +2 -2
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js +9 -3
- 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 +0 -12
- 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 +6 -4
- 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 +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 +13 -12
- 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.js +1 -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/published.js +2 -2
- 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/replica-stage-enum.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +10 -7
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.js +1 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts +3 -0
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js +2 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current.js +1 -1
- package/out/zero-cache/src/services/change-source/protocol/mod.js +1 -2
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.js +1 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +6 -6
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js +56 -21
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.js +2 -2
- package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js +2 -3
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.js +3 -3
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +8 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +85 -59
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.js +1 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.js +11 -10
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js +81 -12
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js +4 -4
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.js +2 -2
- package/out/zero-cache/src/services/change-streamer/replica-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.js +12 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js +42 -0
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-message.js +1 -2
- package/out/zero-cache/src/services/change-streamer/snapshot-message.js.map +1 -1
- 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.js +2 -2
- 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.js +2 -2
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js +4 -6
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js +3 -5
- 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.js +4 -4
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscribe.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +8 -7
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js +0 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js.map +1 -1
- package/out/zero-cache/src/services/heapz.js +2 -1
- package/out/zero-cache/src/services/heapz.js.map +1 -1
- package/out/zero-cache/src/services/http-service.d.ts +2 -2
- package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/http-service.js +6 -4
- package/out/zero-cache/src/services/http-service.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +3 -3
- package/out/zero-cache/src/services/life-cycle.js.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +4 -2
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +4 -4
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +2 -2
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +1 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.js.map +1 -1
- package/out/zero-cache/src/services/litestream/metrics.js.map +1 -1
- package/out/zero-cache/src/services/litestream/restore-progress.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +3 -4
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +61 -17
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/plannerz.d.ts +4 -12
- package/out/zero-cache/src/services/plannerz.d.ts.map +1 -1
- package/out/zero-cache/src/services/plannerz.js +6 -7
- package/out/zero-cache/src/services/plannerz.js.map +1 -1
- package/out/zero-cache/src/services/profz.js +5 -3
- package/out/zero-cache/src/services/profz.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-cookies.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-db.js +4 -3
- 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.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/drain-handler.js +1 -1
- package/out/zero-cache/src/services/replicator/drain-handler.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +4 -4
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js +4 -3
- 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/reporter/recorder.js +2 -2
- package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts +2 -11
- package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/report-schema.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/backfilling.js +2 -2
- package/out/zero-cache/src/services/replicator/schema/backfilling.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +19 -17
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +31 -15
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.d.ts +0 -7
- package/out/zero-cache/src/services/replicator/schema/column-metadata.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.js +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +10 -7
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/table-metadata.js.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.js +2 -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 +3 -3
- package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +1 -1
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/running-state.js +1 -1
- package/out/zero-cache/src/services/running-state.js.map +1 -1
- package/out/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +1 -1
- package/out/zero-cache/src/services/statz.d.ts.map +1 -1
- package/out/zero-cache/src/services/statz.js +5 -4
- package/out/zero-cache/src/services/statz.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +2 -2
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/batch-pacer.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +71 -24
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +46 -6
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js +2 -2
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +12 -7
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +12 -4
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.js +1 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +2 -2
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js +2 -2
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +6 -4
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +13 -10
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/plan-warnings.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/push-cost.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/push-cutoff.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-shape.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.js +1 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +2 -2
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -16
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js +7 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +12 -8
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +52 -28
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/error-with-level.js.map +1 -1
- package/out/zero-cache/src/types/lexi-version.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +0 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +1 -1
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg-data-type.js +1 -1
- package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
- package/out/zero-cache/src/types/pg-types.d.ts +0 -40
- package/out/zero-cache/src/types/pg-types.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg-types.js.map +1 -1
- package/out/zero-cache/src/types/pg.js +6 -4
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts +0 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts.map +1 -1
- package/out/zero-cache/src/types/poke-chunk.js +1 -1
- package/out/zero-cache/src/types/poke-chunk.js.map +1 -1
- package/out/zero-cache/src/types/processes.js +1 -1
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/profiler.js +1 -1
- package/out/zero-cache/src/types/profiler.js.map +1 -1
- package/out/zero-cache/src/types/row-key.d.ts +0 -5
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
- package/out/zero-cache/src/types/row-key.js.map +1 -1
- package/out/zero-cache/src/types/sql.js.map +1 -1
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js +11 -10
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/strings.js.map +1 -1
- package/out/zero-cache/src/types/subscription.js +1 -1
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/types/timeout.js +1 -1
- package/out/zero-cache/src/types/websocket-handoff.d.ts +4 -7
- package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
- package/out/zero-cache/src/types/websocket-handoff.js +16 -2
- package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
- package/out/zero-cache/src/types/ws.d.ts +2 -1
- package/out/zero-cache/src/types/ws.d.ts.map +1 -1
- package/out/zero-cache/src/types/ws.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +1 -2
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +5 -3
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/mutator.js +1 -1
- package/out/zero-cache/src/workers/mutator.js.map +1 -1
- package/out/zero-cache/src/workers/rehome.d.ts +15 -0
- package/out/zero-cache/src/workers/rehome.d.ts.map +1 -0
- package/out/zero-cache/src/workers/rehome.js +36 -0
- package/out/zero-cache/src/workers/rehome.js.map +1 -0
- package/out/zero-cache/src/workers/replicator.js +5 -4
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +9 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +30 -5
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.js +2 -2
- package/out/zero-client/src/client/active-clients-manager.js.map +1 -1
- package/out/zero-client/src/client/bindings.js +11 -11
- package/out/zero-client/src/client/connection-manager.js +1 -1
- package/out/zero-client/src/client/connection-manager.js.map +1 -1
- package/out/zero-client/src/client/connection.js +1 -1
- package/out/zero-client/src/client/connection.js.map +1 -1
- package/out/zero-client/src/client/context.js.map +1 -1
- package/out/zero-client/src/client/crud-impl.js +1 -1
- package/out/zero-client/src/client/crud-impl.js.map +1 -1
- package/out/zero-client/src/client/crud.d.ts +2 -8
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +0 -2
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/custom.js.map +1 -1
- package/out/zero-client/src/client/delete-clients-manager.js.map +1 -1
- package/out/zero-client/src/client/enable-analytics.d.ts +0 -1
- package/out/zero-client/src/client/enable-analytics.d.ts.map +1 -1
- package/out/zero-client/src/client/enable-analytics.js +1 -0
- package/out/zero-client/src/client/enable-analytics.js.map +1 -1
- package/out/zero-client/src/client/error.d.ts +4 -5
- package/out/zero-client/src/client/error.d.ts.map +1 -1
- package/out/zero-client/src/client/error.js.map +1 -1
- package/out/zero-client/src/client/inspector/client-group.js.map +1 -1
- package/out/zero-client/src/client/inspector/client.js.map +1 -1
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js +1 -1
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.js.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
- package/out/zero-client/src/client/inspector/query.js.map +1 -1
- package/out/zero-client/src/client/ivm-branch.js +1 -3
- package/out/zero-client/src/client/ivm-branch.js.map +1 -1
- package/out/zero-client/src/client/keys.d.ts +0 -1
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.js +6 -3
- package/out/zero-client/src/client/keys.js.map +1 -1
- package/out/zero-client/src/client/log-options.js.map +1 -1
- package/out/zero-client/src/client/make-replicache-mutators.js +5 -3
- package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -1
- package/out/zero-client/src/client/metrics.js +3 -5
- package/out/zero-client/src/client/metrics.js.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.js +1 -1
- package/out/zero-client/src/client/mutation-tracker.js.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
- package/out/zero-client/src/client/options.d.ts +0 -4
- 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.js +2 -2
- package/out/zero-client/src/client/query-manager.js.map +1 -1
- package/out/zero-client/src/client/reload-error-handler.js +4 -3
- package/out/zero-client/src/client/reload-error-handler.js.map +1 -1
- package/out/zero-client/src/client/replicache-types.d.ts +3 -2
- package/out/zero-client/src/client/replicache-types.d.ts.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +1 -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 +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -1
- package/out/zero-client/src/client/zero-rep.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +1 -5
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +20 -12
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-client/src/mod.js +23 -23
- package/out/zero-client/src/types/client-state.d.ts +0 -6
- package/out/zero-client/src/types/client-state.d.ts.map +1 -1
- package/out/zero-client/src/util/nanoid.js.map +1 -1
- package/out/zero-permissions/src/permissions.d.ts +1 -12
- package/out/zero-permissions/src/permissions.d.ts.map +1 -1
- package/out/zero-permissions/src/permissions.js +3 -3
- package/out/zero-permissions/src/permissions.js.map +1 -1
- package/out/zero-pg/src/mod.js +9 -9
- 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/application-error.js.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +0 -4
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +21 -11
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts +0 -20
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
- package/out/zero-protocol/src/client-schema.d.ts +2 -5
- package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
- package/out/zero-protocol/src/client-schema.js.map +1 -1
- package/out/zero-protocol/src/close-connection.d.ts +0 -8
- package/out/zero-protocol/src/close-connection.d.ts.map +1 -1
- package/out/zero-protocol/src/close-connection.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts +0 -12
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +3 -17
- package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/custom-queries.js.map +1 -1
- package/out/zero-protocol/src/data.d.ts +0 -1
- package/out/zero-protocol/src/data.d.ts.map +1 -1
- package/out/zero-protocol/src/data.js +3 -1
- package/out/zero-protocol/src/data.js.map +1 -1
- package/out/zero-protocol/src/delete-clients.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +2 -2
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +82 -84
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/inspect-up.d.ts +0 -28
- package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.js.map +1 -1
- package/out/zero-protocol/src/mutate-server.d.ts +0 -21
- package/out/zero-protocol/src/mutate-server.d.ts.map +1 -1
- package/out/zero-protocol/src/mutate-server.js.map +1 -1
- package/out/zero-protocol/src/mutation-id.js.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.d.ts +0 -1
- package/out/zero-protocol/src/mutation-type-enum.d.ts.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
- package/out/zero-protocol/src/mutation.d.ts +2 -4
- package/out/zero-protocol/src/mutation.d.ts.map +1 -1
- package/out/zero-protocol/src/mutation.js.map +1 -1
- package/out/zero-protocol/src/mutations-patch.d.ts +0 -33
- package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/mutations-patch.js.map +1 -1
- package/out/zero-protocol/src/ping.d.ts +0 -2
- package/out/zero-protocol/src/ping.d.ts.map +1 -1
- package/out/zero-protocol/src/ping.js.map +1 -1
- package/out/zero-protocol/src/poke.d.ts +3 -2
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +1 -1
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.d.ts +0 -2
- package/out/zero-protocol/src/pong.d.ts.map +1 -1
- package/out/zero-protocol/src/pong.js.map +1 -1
- package/out/zero-protocol/src/primary-key.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +1 -0
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/pull.d.ts +2 -7
- package/out/zero-protocol/src/pull.d.ts.map +1 -1
- package/out/zero-protocol/src/pull.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +1 -3
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts +0 -16
- package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/queries-patch.js +1 -1
- package/out/zero-protocol/src/queries-patch.js.map +1 -1
- package/out/zero-protocol/src/query-hash-visitor.js.map +1 -1
- package/out/zero-protocol/src/query-hash.js +2 -2
- package/out/zero-protocol/src/query-server.d.ts +2 -41
- package/out/zero-protocol/src/query-server.d.ts.map +1 -1
- package/out/zero-protocol/src/query-server.js.map +1 -1
- package/out/zero-protocol/src/row-patch.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +60 -60
- package/out/zero-protocol/src/up.js +1 -1
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-protocol/src/update-auth.js.map +1 -1
- package/out/zero-protocol/src/version.d.ts +0 -1
- package/out/zero-protocol/src/version.d.ts.map +1 -1
- package/out/zero-protocol/src/version.js.map +1 -1
- package/out/zero-react/src/bindings.js +11 -11
- package/out/zero-react/src/mod.js +5 -5
- package/out/zero-react/src/use-query.js +2 -2
- package/out/zero-react/src/use-query.js.map +1 -1
- package/out/zero-react/src/zero-provider.d.ts +1 -1
- package/out/zero-react/src/zero-provider.d.ts.map +1 -1
- package/out/zero-react/src/zero-provider.js +2 -1
- package/out/zero-react/src/zero-provider.js.map +1 -1
- package/out/zero-react/src/zero.js +23 -23
- package/out/zero-schema/src/builder/relationship-builder.d.ts +0 -2
- package/out/zero-schema/src/builder/relationship-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.js +3 -2
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +1 -1
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-schema/src/compiled-permissions.js.map +1 -1
- package/out/zero-schema/src/name-mapper.js +7 -5
- package/out/zero-schema/src/name-mapper.js.map +1 -1
- package/out/zero-schema/src/schema-config.d.ts +0 -1
- package/out/zero-schema/src/schema-config.d.ts.map +1 -1
- package/out/zero-schema/src/schema-config.js +1 -1
- package/out/zero-schema/src/schema-config.js.map +1 -1
- package/out/zero-schema/src/table-schema.d.ts +3 -11
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/adapters/kysely.js.map +1 -1
- package/out/zero-server/src/adapters/pg.js.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
- package/out/zero-server/src/adapters/prisma.js.map +1 -1
- package/out/zero-server/src/closable-db-transaction.js.map +1 -1
- package/out/zero-server/src/custom.js +1 -1
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/mod.js +8 -8
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/push-processor.js.map +1 -1
- package/out/zero-server/src/queries/process-queries.d.ts +2 -4
- package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
- package/out/zero-server/src/queries/process-queries.js +2 -1
- package/out/zero-server/src/queries/process-queries.js.map +1 -1
- package/out/zero-server/src/schema.js +7 -7
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/bindings.js +11 -11
- package/out/zero-solid/src/mod.js +5 -5
- package/out/zero-solid/src/solid-view.d.ts +0 -2
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/zero-solid/src/solid-view.js +1 -1
- package/out/zero-solid/src/solid-view.js.map +1 -1
- package/out/zero-solid/src/use-connection-state.js +2 -1
- package/out/zero-solid/src/use-connection-state.js.map +1 -1
- package/out/zero-solid/src/use-query.js.map +1 -1
- package/out/zero-solid/src/use-zero-online.js +2 -1
- package/out/zero-solid/src/use-zero-online.js.map +1 -1
- package/out/zero-solid/src/use-zero.js +3 -2
- package/out/zero-solid/src/use-zero.js.map +1 -1
- package/out/zero-solid/src/zero.js +23 -23
- package/out/zero-types/src/name-mapper.d.ts +2 -1
- package/out/zero-types/src/name-mapper.d.ts.map +1 -1
- package/out/zero-types/src/name-mapper.js.map +1 -1
- package/out/zero-types/src/schema-value.d.ts +3 -2
- package/out/zero-types/src/schema-value.d.ts.map +1 -1
- package/out/zero-types/src/schema.d.ts +1 -1
- package/out/zero-types/src/schema.d.ts.map +1 -1
- package/out/zql/src/builder/builder.d.ts +1 -11
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +15 -13
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/correlated-predicate-pushdown.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/builder/filter.d.ts +0 -1
- package/out/zql/src/builder/filter.d.ts.map +1 -1
- package/out/zql/src/builder/filter.js.map +1 -1
- package/out/zql/src/builder/like.js +0 -1
- package/out/zql/src/builder/like.js.map +1 -1
- package/out/zql/src/error.d.ts +0 -5
- package/out/zql/src/error.d.ts.map +1 -1
- package/out/zql/src/error.js.map +1 -1
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/cap.d.ts +1 -1
- package/out/zql/src/ivm/cap.d.ts.map +1 -1
- package/out/zql/src/ivm/cap.js +12 -4
- package/out/zql/src/ivm/cap.js.map +1 -1
- package/out/zql/src/ivm/constraint.d.ts +0 -7
- package/out/zql/src/ivm/constraint.d.ts.map +1 -1
- package/out/zql/src/ivm/constraint.js +1 -1
- package/out/zql/src/ivm/constraint.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts +15 -2
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +15 -1
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/deferred-input.js.map +1 -1
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +32 -22
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/fan-in.js.map +1 -1
- package/out/zql/src/ivm/fan-out.js.map +1 -1
- package/out/zql/src/ivm/filter-operators.d.ts +5 -0
- package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-operators.js +1 -1
- package/out/zql/src/ivm/filter-operators.js.map +1 -1
- package/out/zql/src/ivm/filter-push.js.map +1 -1
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/flipped-join.js +1 -3
- package/out/zql/src/ivm/flipped-join.js.map +1 -1
- package/out/zql/src/ivm/join-index-tap.js.map +1 -1
- package/out/zql/src/ivm/join-index.js.map +1 -1
- package/out/zql/src/ivm/join-utils.js +11 -13
- package/out/zql/src/ivm/join-utils.js.map +1 -1
- package/out/zql/src/ivm/join.d.ts.map +1 -1
- package/out/zql/src/ivm/join.js +6 -3
- package/out/zql/src/ivm/join.js.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +1 -2
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +27 -23
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/memory-storage.js.map +1 -1
- package/out/zql/src/ivm/operator.d.ts +6 -0
- package/out/zql/src/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/ivm/operator.js +2 -2
- package/out/zql/src/ivm/operator.js.map +1 -1
- package/out/zql/src/ivm/push-accumulated.js +0 -1
- package/out/zql/src/ivm/push-accumulated.js.map +1 -1
- package/out/zql/src/ivm/skip-yields.js.map +1 -1
- package/out/zql/src/ivm/skip.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.map +1 -1
- package/out/zql/src/ivm/take-gate.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +7 -8
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts +0 -1
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/ivm/union-fan-out.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.d.ts +5 -35
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zql/src/mutate/crud.d.ts +1 -3
- package/out/zql/src/mutate/crud.d.ts.map +1 -1
- package/out/zql/src/mutate/crud.js +2 -1
- package/out/zql/src/mutate/crud.js.map +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator-registry.js.map +1 -1
- package/out/zql/src/mutate/mutator.d.ts +1 -1
- package/out/zql/src/mutate/mutator.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator.js.map +1 -1
- package/out/zql/src/planner/planner-builder.js +1 -1
- package/out/zql/src/planner/planner-builder.js.map +1 -1
- package/out/zql/src/planner/planner-connection.js.map +1 -1
- package/out/zql/src/planner/planner-debug.d.ts +10 -9
- 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-in.js.map +1 -1
- package/out/zql/src/planner/planner-fan-out.js.map +1 -1
- package/out/zql/src/planner/planner-filter.js.map +1 -1
- package/out/zql/src/planner/planner-graph.js +1 -5
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.js +1 -1
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/planner/planner-node.d.ts +0 -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/planner/planner-source.js.map +1 -1
- package/out/zql/src/planner/planner-terminus.js.map +1 -1
- package/out/zql/src/planner/planner-warnings.d.ts +3 -3
- package/out/zql/src/planner/planner-warnings.d.ts.map +1 -1
- package/out/zql/src/planner/planner-warnings.js.map +1 -1
- package/out/zql/src/query/create-builder.js +2 -1
- package/out/zql/src/query/create-builder.js.map +1 -1
- package/out/zql/src/query/expression.d.ts +0 -22
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js +1 -1
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/measure-push-operator.js.map +1 -1
- package/out/zql/src/query/named.js +2 -1
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +0 -7
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
- package/out/zql/src/query/query-delegate-base.js +1 -1
- package/out/zql/src/query/query-delegate-base.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +1 -4
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +3 -2
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internals.d.ts +0 -3
- package/out/zql/src/query/query-internals.d.ts.map +1 -1
- package/out/zql/src/query/query-internals.js.map +1 -1
- package/out/zql/src/query/query-registry.d.ts +5 -5
- package/out/zql/src/query/query-registry.d.ts.map +1 -1
- package/out/zql/src/query/query-registry.js +1 -1
- package/out/zql/src/query/query-registry.js.map +1 -1
- package/out/zql/src/query/query-transitions.js +1 -1
- package/out/zql/src/query/query-transitions.js.map +1 -1
- package/out/zql/src/query/query.d.ts +2 -13
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.d.ts +1 -19
- package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.js +2 -1
- package/out/zql/src/query/runnable-query-impl.js.map +1 -1
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zql/src/query/ttl.d.ts +2 -3
- package/out/zql/src/query/ttl.d.ts.map +1 -1
- package/out/zql/src/query/ttl.js +8 -8
- package/out/zql/src/query/ttl.js.map +1 -1
- package/out/zql/src/query/validate-input.js.map +1 -1
- package/out/zqlite/src/database-storage.js +195 -26
- package/out/zqlite/src/database-storage.js.map +1 -1
- package/out/zqlite/src/db.d.ts +47 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +121 -21
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/explain-queries.js.map +1 -1
- package/out/zqlite/src/fetch-sql.d.ts +27 -0
- package/out/zqlite/src/fetch-sql.d.ts.map +1 -0
- package/out/zqlite/src/fetch-sql.js +112 -0
- package/out/zqlite/src/fetch-sql.js.map +1 -0
- package/out/zqlite/src/index-usage.js.map +1 -1
- package/out/zqlite/src/internal/sql-inline.js.map +1 -1
- package/out/zqlite/src/internal/sql.js.map +1 -1
- package/out/zqlite/src/internal/statement-cache.d.ts +7 -0
- package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -1
- package/out/zqlite/src/internal/statement-cache.js +11 -4
- package/out/zqlite/src/internal/statement-cache.js.map +1 -1
- package/out/zqlite/src/mod.js +5 -5
- package/out/zqlite/src/pending-delta.js.map +1 -1
- package/out/zqlite/src/query-builder.d.ts +11 -3
- package/out/zqlite/src/query-builder.d.ts.map +1 -1
- package/out/zqlite/src/query-builder.js +22 -7
- package/out/zqlite/src/query-builder.js.map +1 -1
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/resolve-scalar-subqueries.js +2 -5
- package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.js +3 -2
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +20 -3
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +74 -40
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +39 -39
- package/out/analyze-query/src/bin-analyze.d.ts +0 -2
- package/out/analyze-query/src/bin-analyze.d.ts.map +0 -1
- package/out/analyze-query/src/bin-analyze.js +0 -283
- package/out/analyze-query/src/bin-analyze.js.map +0 -1
- package/out/otel/src/maybe-time.d.ts +0 -3
- package/out/otel/src/maybe-time.d.ts.map +0 -1
- package/out/otel/src/maybe-time.js +0 -15
- package/out/otel/src/maybe-time.js.map +0 -1
- package/out/shared/src/cache.d.ts +0 -22
- package/out/shared/src/cache.d.ts.map +0 -1
- package/out/shared/src/custom-key-map.d.ts +0 -26
- package/out/shared/src/custom-key-map.d.ts.map +0 -1
- package/out/shared/src/custom-key-set.d.ts +0 -25
- package/out/shared/src/custom-key-set.d.ts.map +0 -1
- package/out/shared/src/logging-test-utils.d.ts +0 -12
- package/out/shared/src/logging-test-utils.d.ts.map +0 -1
- package/out/shared/src/sorted-entries.d.ts +0 -2
- package/out/shared/src/sorted-entries.d.ts.map +0 -1
- package/out/zero/src/analyze-query.d.ts +0 -3
- package/out/zero/src/analyze-query.d.ts.map +0 -1
- package/out/zero/src/analyze-query.js +0 -3
- package/out/zero/src/server/change-streamer.d.ts +0 -2
- package/out/zero/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero/src/server/main.d.ts +0 -2
- package/out/zero/src/server/main.d.ts.map +0 -1
- package/out/zero/src/server/reaper.d.ts +0 -2
- package/out/zero/src/server/reaper.d.ts.map +0 -1
- package/out/zero/src/server/replicator.d.ts +0 -2
- package/out/zero/src/server/replicator.d.ts.map +0 -1
- package/out/zero/src/server/syncer.d.ts +0 -2
- package/out/zero/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/auth/jwt.d.ts +0 -12
- package/out/zero-cache/src/auth/jwt.d.ts.map +0 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts +0 -17
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +0 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +0 -28
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +0 -1
- package/out/zero-cache/src/config/server-context.d.ts +0 -16
- package/out/zero-cache/src/config/server-context.d.ts.map +0 -1
- package/out/zero-cache/src/custom/fetch.d.ts +0 -38
- package/out/zero-cache/src/custom/fetch.d.ts.map +0 -1
- package/out/zero-cache/src/custom/metrics.d.ts +0 -31
- package/out/zero-cache/src/custom/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +0 -68
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +0 -1
- package/out/zero-cache/src/db/create.d.ts +0 -12
- package/out/zero-cache/src/db/create.d.ts.map +0 -1
- package/out/zero-cache/src/db/delete-lite-db.d.ts +0 -2
- package/out/zero-cache/src/db/delete-lite-db.d.ts.map +0 -1
- package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
- package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration-lite.d.ts +0 -78
- package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration.d.ts +0 -80
- package/out/zero-cache/src/db/migration.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy-binary.d.ts +0 -101
- package/out/zero-cache/src/db/pg-copy-binary.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy.d.ts +0 -30
- package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-type-parser.d.ts +0 -15
- package/out/zero-cache/src/db/pg-type-parser.d.ts.map +0 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +0 -205
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +0 -1
- package/out/zero-cache/src/db/warmup.d.ts +0 -4
- package/out/zero-cache/src/db/warmup.d.ts.map +0 -1
- package/out/zero-cache/src/observability/events.d.ts +0 -15
- package/out/zero-cache/src/observability/events.d.ts.map +0 -1
- package/out/zero-cache/src/observability/log-throttle.d.ts +0 -44
- package/out/zero-cache/src/observability/log-throttle.d.ts.map +0 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts +0 -21
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/change-streamer.d.ts +0 -3
- package/out/zero-cache/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +0 -71
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +0 -1
- package/out/zero-cache/src/server/main.d.ts +0 -3
- package/out/zero-cache/src/server/main.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-diag-logger.d.ts +0 -16
- package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-start.d.ts +0 -3
- package/out/zero-cache/src/server/otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/priority-op.d.ts +0 -8
- package/out/zero-cache/src/server/priority-op.d.ts.map +0 -1
- package/out/zero-cache/src/server/reaper.d.ts +0 -3
- package/out/zero-cache/src/server/reaper.d.ts.map +0 -1
- package/out/zero-cache/src/server/replicator.d.ts +0 -10
- package/out/zero-cache/src/server/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/server/slot-keeper.d.ts +0 -26
- package/out/zero-cache/src/server/slot-keeper.d.ts.map +0 -1
- package/out/zero-cache/src/server/syncer.d.ts +0 -3
- package/out/zero-cache/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/services/analyze.d.ts +0 -9
- package/out/zero-cache/src/services/analyze.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/change-source.d.ts +0 -32
- package/out/zero-cache/src/services/change-source/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +0 -57
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts +0 -55
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts +0 -24
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts +0 -115
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +0 -25
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +0 -36
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts +0 -65
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +0 -115
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -155
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +0 -17
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts +0 -28
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts +0 -76
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +0 -169
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts +0 -16
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts +0 -15
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +0 -127
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +0 -9
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts +0 -68
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts +0 -72
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts +0 -50
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +0 -14
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +0 -18
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts +0 -98
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts +0 -158
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts +0 -19
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -78
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -139
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -586
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts +0 -24
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +0 -49
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts +0 -53
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts +0 -88
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts +0 -243
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +0 -152
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +0 -11
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts +0 -92
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +0 -36
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +0 -22
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +0 -99
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +0 -83
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts +0 -121
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +0 -73
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +0 -62
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +0 -114
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +0 -276
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts +0 -485
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +0 -194
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +0 -52
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +0 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +0 -57
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +0 -77
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -78
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/metrics.d.ts +0 -31
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts +0 -24
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -40
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +0 -63
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts +0 -368
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +0 -56
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts +0 -37
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts +0 -82
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +0 -25
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -9
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts +0 -71
- package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +0 -86
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +0 -55
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +0 -132
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts +0 -120
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +0 -111
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +0 -1
- package/out/zero-cache/src/services/run-ast.d.ts +0 -39
- package/out/zero-cache/src/services/run-ast.d.ts.map +0 -1
- package/out/zero-cache/src/services/runner.d.ts +0 -19
- package/out/zero-cache/src/services/runner.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts +0 -26
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts +0 -79
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +0 -79
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts +0 -5
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts +0 -184
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +0 -22
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +0 -128
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -294
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts +0 -81
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +0 -45
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts +0 -53
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +0 -34
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -296
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts +0 -7
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts +0 -132
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts +0 -55
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts +0 -28
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts +0 -25
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts +0 -89
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +0 -90
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +0 -86
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +0 -5
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +0 -563
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts +0 -95
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +0 -412
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts +0 -2
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts +0 -10
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +0 -133
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-patch.d.ts +0 -21
- package/out/zero-cache/src/types/pg-patch.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-versions.d.ts +0 -3
- package/out/zero-cache/src/types/pg-versions.d.ts.map +0 -1
- package/out/zero-cache/src/workers/replicator.d.ts +0 -57
- package/out/zero-cache/src/workers/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +0 -14
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer.d.ts +0 -67
- package/out/zero-cache/src/workers/syncer.d.ts.map +0 -1
- package/out/zero-events/src/index.d.ts +0 -27
- package/out/zero-events/src/index.d.ts.map +0 -1
- package/out/zero-events/src/json.d.ts +0 -20
- package/out/zero-events/src/json.d.ts.map +0 -1
- package/out/zero-events/src/status.d.ts +0 -144
- package/out/zero-events/src/status.d.ts.map +0 -1
- package/out/zqlite/src/database-storage.d.ts +0 -24
- package/out/zqlite/src/database-storage.d.ts.map +0 -1
- package/out/zqlite/src/explain-queries.d.ts +0 -4
- package/out/zqlite/src/explain-queries.d.ts.map +0 -1
- package/out/zqlite/src/internal/sql-inline.d.ts +0 -13
- package/out/zqlite/src/internal/sql-inline.d.ts.map +0 -1
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts +0 -72
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts +0 -17
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts +0 -121
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../replicache/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAC,cAAc,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;CACb,CAAC;AACF,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IACvE,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;;;;;;EAMvB;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,CACb,EAAE,EAAE,gBAAgB,EAGpB,IAAI,CAAC,EAAE,GAAG,KACP,aAAa,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,CACR,EAAE,EAAE,gBAAgB,EACpB,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,iBAAiB,CAAC,KAC9B,aAAa,IAChB,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,GAAG,GAClE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,GACjC,KAAK,CAAC,CAAC;;EAER;AAEH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI;IAChD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../replicache/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAC,cAAc,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;CACb,CAAC;AACF,MAAM,MAAM,IAAI,GAAG;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IACvE,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;;;;;;EAMvB;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,CACb,EAAE,EAAE,gBAAgB,EAGpB,IAAI,CAAC,EAAE,GAAG,KACP,aAAa,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,CACR,EAAE,EAAE,gBAAgB,EACpB,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,iBAAiB,CAAC,KAC9B,aAAa,IAChB,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,GAAG,GAClE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,GACjC,KAAK,CAAC,CAAC;;EAER;AAEH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI;IAChD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,mBAAmB,KAAK,YAAY,CAAC,CAAC,CAAC,KAC/C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;GAEd;AAEH,MAAM,MAAM,kBAAkB,GAC1B;IAKE,IAAI,EAAE,gBAAgB,CAAC;CACxB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CACtD,CAAC"}
|
package/out/shared/src/arrays.js
CHANGED
|
@@ -20,7 +20,10 @@ function last(arr) {
|
|
|
20
20
|
var newArray = () => [];
|
|
21
21
|
function groupBy(arr, keyFn) {
|
|
22
22
|
const groups = /* @__PURE__ */ new Map();
|
|
23
|
-
for (const el of arr)
|
|
23
|
+
for (const el of arr) {
|
|
24
|
+
const key = keyFn(el);
|
|
25
|
+
getOrInsertComputed(groups, key, newArray).push(el);
|
|
26
|
+
}
|
|
24
27
|
return groups;
|
|
25
28
|
}
|
|
26
29
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.js","names":[],"sources":["../../../../shared/src/arrays.ts"],"sourcesContent":["import {assert} from './asserts.ts';\nimport {getOrInsertComputed} from './map.ts';\n\n/**\n * Returns `arr` as is if none of the elements are `undefined`.\n * Otherwise returns a new array with only defined elements in `arr`.\n */\nexport function defined<T>(arr: (T | undefined)[]): T[] {\n // avoid an array copy if possible\n let i = arr.findIndex(x => x === undefined);\n if (i < 0) {\n return arr as T[];\n }\n const defined: T[] = arr.slice(0, i) as T[];\n for (i++; i < arr.length; i++) {\n const x = arr[i];\n if (x !== undefined) {\n defined.push(x);\n }\n }\n return defined;\n}\n\nexport function areEqual<T>(arr1: readonly T[], arr2: readonly T[]): boolean {\n return arr1.length === arr2.length && arr1.every((e, i) => e === arr2[i]);\n}\n\nexport function zip<T1, T2>(a1: readonly T1[], a2: readonly T2[]): [T1, T2][] {\n assert(a1.length === a2.length, 'zip: arrays must have equal length');\n const result: [T1, T2][] = [];\n for (let i = 0; i < a1.length; i++) {\n result.push([a1[i], a2[i]]);\n }\n return result;\n}\n\nexport function last<T>(arr: T[]): T | undefined {\n return arr.at(-1);\n}\n\n/**\n * Creates an empty array. Pass this to `getOrInsertComputed` instead of an\n * inline `() => []` so that a hit does not allocate a closure.\n */\nexport const newArray = <T>(): T[] => [];\n\nexport function groupBy<T, K>(\n arr: readonly T[],\n keyFn: (el: T) => K,\n): Map<K, T[]> {\n const groups = new Map<K, T[]>();\n for (const el of arr) {\n const key = keyFn(el);\n getOrInsertComputed(groups, key, newArray).push(el);\n }\n return groups;\n}\n"],"mappings":";;;AAuBA,SAAgB,SAAY,MAAoB,MAA6B;CAC3E,OAAO,KAAK,WAAW,KAAK,UAAU,KAAK,OAAO,GAAG,MAAM,MAAM,KAAK,EAAE;AAC1E;AAEA,SAAgB,IAAY,IAAmB,IAA+B;CAC5E,OAAO,GAAG,WAAW,GAAG,QAAQ,oCAAoC;CACpE,MAAM,SAAqB,CAAC;CAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,KAC7B,OAAO,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;CAE5B,OAAO;AACT;AAEA,SAAgB,KAAQ,KAAyB;CAC/C,OAAO,IAAI,GAAG,EAAE;AAClB;;;;;AAMA,IAAa,iBAAyB,CAAC;AAEvC,SAAgB,QACd,KACA,OACa;CACb,MAAM,yBAAS,IAAI,IAAY;CAC/B,KAAK,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"arrays.js","names":[],"sources":["../../../../shared/src/arrays.ts"],"sourcesContent":["import {assert} from './asserts.ts';\nimport {getOrInsertComputed} from './map.ts';\n\n/**\n * Returns `arr` as is if none of the elements are `undefined`.\n * Otherwise returns a new array with only defined elements in `arr`.\n */\nexport function defined<T>(arr: (T | undefined)[]): T[] {\n // avoid an array copy if possible\n let i = arr.findIndex(x => x === undefined);\n if (i < 0) {\n return arr as T[];\n }\n const defined: T[] = arr.slice(0, i) as T[];\n for (i++; i < arr.length; i++) {\n const x = arr[i];\n if (x !== undefined) {\n defined.push(x);\n }\n }\n return defined;\n}\n\nexport function areEqual<T>(arr1: readonly T[], arr2: readonly T[]): boolean {\n return arr1.length === arr2.length && arr1.every((e, i) => e === arr2[i]);\n}\n\nexport function zip<T1, T2>(a1: readonly T1[], a2: readonly T2[]): [T1, T2][] {\n assert(a1.length === a2.length, 'zip: arrays must have equal length');\n const result: [T1, T2][] = [];\n for (let i = 0; i < a1.length; i++) {\n result.push([a1[i], a2[i]]);\n }\n return result;\n}\n\nexport function last<T>(arr: T[]): T | undefined {\n return arr.at(-1);\n}\n\n/**\n * Creates an empty array. Pass this to `getOrInsertComputed` instead of an\n * inline `() => []` so that a hit does not allocate a closure.\n */\nexport const newArray = <T>(): T[] => [];\n\nexport function groupBy<T, K>(\n arr: readonly T[],\n keyFn: (el: T) => K,\n): Map<K, T[]> {\n const groups = new Map<K, T[]>();\n for (const el of arr) {\n const key = keyFn(el);\n getOrInsertComputed(groups, key, newArray).push(el);\n }\n return groups;\n}\n"],"mappings":";;;AAuBA,SAAgB,SAAY,MAAoB,MAA6B;CAC3E,OAAO,KAAK,WAAW,KAAK,UAAU,KAAK,OAAO,GAAG,MAAM,MAAM,KAAK,EAAE;AAC1E;AAEA,SAAgB,IAAY,IAAmB,IAA+B;CAC5E,OAAO,GAAG,WAAW,GAAG,QAAQ,oCAAoC;CACpE,MAAM,SAAqB,CAAC;CAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,KAC7B,OAAO,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;CAE5B,OAAO;AACT;AAEA,SAAgB,KAAQ,KAAyB;CAC/C,OAAO,IAAI,GAAG,EAAE;AAClB;;;;;AAMA,IAAa,iBAAyB,CAAC;AAEvC,SAAgB,QACd,KACA,OACa;CACb,MAAM,yBAAS,IAAI,IAAY;CAC/B,KAAK,MAAM,MAAM,KAAK;EACpB,MAAM,MAAM,MAAM,EAAE;EACpB,oBAAoB,QAAQ,KAAK,QAAQ,CAAC,CAAC,KAAK,EAAE;CACpD;CACA,OAAO;AACT"}
|
|
@@ -4,14 +4,9 @@ export declare function assertNumber(v: unknown): asserts v is number;
|
|
|
4
4
|
export declare function assertBoolean(v: unknown): asserts v is boolean;
|
|
5
5
|
export declare function assertObject(v: unknown): asserts v is Record<string, unknown>;
|
|
6
6
|
export declare function assertArray(v: unknown): asserts v is unknown[];
|
|
7
|
-
export declare function invalidType(v: unknown, t: string): string;
|
|
8
7
|
export declare function throwInvalidType(v: unknown, t: string): never;
|
|
9
8
|
export declare function assertNotNull<T>(v: T | null): asserts v is T;
|
|
10
|
-
export declare function assertUndefined<T>(v: T | undefined, msg?: string): asserts v is T;
|
|
11
9
|
export declare function assertNotUndefined<T>(v: T | undefined, msg?: string): asserts v is T;
|
|
12
|
-
export declare function assertInstanceof<T>(v: unknown, t: new (...args: unknown[]) => T): asserts v is T;
|
|
13
|
-
export declare function assertUint8Array(v: unknown): asserts v is Uint8Array;
|
|
14
10
|
export declare function unreachable(): never;
|
|
15
11
|
export declare function unreachable(v: never): never;
|
|
16
|
-
export declare function notImplemented(): never;
|
|
17
12
|
//# sourceMappingURL=asserts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../../../shared/src/asserts.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAI1E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAE9D;AAQD,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,EAAE,CAI9D;
|
|
1
|
+
{"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../../../shared/src/asserts.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAI1E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAE9D;AAQD,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,EAAE,CAI9D;AAYD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAE7D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,CAAC,EAAE,CAAC,GAAG,SAAS,EAChB,GAAG,SAAiC,GACnC,OAAO,CAAC,CAAC,IAAI,CAAC,CAIhB;AAED,wBAAgB,WAAW,IAAI,KAAK,CAAC;AACrC,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asserts.js","names":[],"sources":["../../../../shared/src/asserts.ts"],"sourcesContent":["export function assert(b: unknown, msg: string | (() => string)): asserts b {\n if (!b) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\n\nexport function assertString(v: unknown): asserts v is string {\n assertType(v, 'string');\n}\n\nexport function assertNumber(v: unknown): asserts v is number {\n assertType(v, 'number');\n}\n\nexport function assertBoolean(v: unknown): asserts v is boolean {\n assertType(v, 'boolean');\n}\n\nfunction assertType(v: unknown, t: string) {\n if (typeof v !== t) {\n throwInvalidType(v, t);\n }\n}\n\nexport function assertObject(v: unknown): asserts v is Record<string, unknown> {\n if (v === null) {\n throwInvalidType(v, 'object');\n }\n assertType(v, 'object');\n}\n\nexport function assertArray(v: unknown): asserts v is unknown[] {\n if (!Array.isArray(v)) {\n throwInvalidType(v, 'array');\n }\n}\n\
|
|
1
|
+
{"version":3,"file":"asserts.js","names":[],"sources":["../../../../shared/src/asserts.ts"],"sourcesContent":["export function assert(b: unknown, msg: string | (() => string)): asserts b {\n if (!b) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\n\nexport function assertString(v: unknown): asserts v is string {\n assertType(v, 'string');\n}\n\nexport function assertNumber(v: unknown): asserts v is number {\n assertType(v, 'number');\n}\n\nexport function assertBoolean(v: unknown): asserts v is boolean {\n assertType(v, 'boolean');\n}\n\nfunction assertType(v: unknown, t: string) {\n if (typeof v !== t) {\n throwInvalidType(v, t);\n }\n}\n\nexport function assertObject(v: unknown): asserts v is Record<string, unknown> {\n if (v === null) {\n throwInvalidType(v, 'object');\n }\n assertType(v, 'object');\n}\n\nexport function assertArray(v: unknown): asserts v is unknown[] {\n if (!Array.isArray(v)) {\n throwInvalidType(v, 'array');\n }\n}\n\nfunction invalidType(v: unknown, t: string): string {\n let s = 'Invalid type: ';\n if (v === null || v === undefined) {\n s += v;\n } else {\n s += `${typeof v} \\`${v}\\``;\n }\n return s + `, expected ${t}`;\n}\n\nexport function throwInvalidType(v: unknown, t: string): never {\n throw new Error(invalidType(v, t));\n}\n\nexport function assertNotNull<T>(v: T | null): asserts v is T {\n if (v === null) {\n throw new Error('Expected non-null value');\n }\n}\n\nexport function assertNotUndefined<T>(\n v: T | undefined,\n msg = 'Expected non undefined value',\n): asserts v is T {\n if (v === undefined) {\n throw new Error(msg);\n }\n}\n\nexport function unreachable(): never;\nexport function unreachable(v: never): never;\nexport function unreachable(_?: never): never {\n throw new Error('Unreachable');\n}\n"],"mappings":";AAAA,SAAgB,OAAO,GAAY,KAAyC;CAC1E,IAAI,CAAC,GACH,MAAM,IAAI,MAAM,OAAO,QAAQ,WAAW,MAAM,IAAI,CAAC;AAEzD;AAEA,SAAgB,aAAa,GAAiC;CAC5D,WAAW,GAAG,QAAQ;AACxB;AAEA,SAAgB,aAAa,GAAiC;CAC5D,WAAW,GAAG,QAAQ;AACxB;AAEA,SAAgB,cAAc,GAAkC;CAC9D,WAAW,GAAG,SAAS;AACzB;AAEA,SAAS,WAAW,GAAY,GAAW;CACzC,IAAI,OAAO,MAAM,GACf,iBAAiB,GAAG,CAAC;AAEzB;AAEA,SAAgB,aAAa,GAAkD;CAC7E,IAAI,MAAM,MACR,iBAAiB,GAAG,QAAQ;CAE9B,WAAW,GAAG,QAAQ;AACxB;AAEA,SAAgB,YAAY,GAAoC;CAC9D,IAAI,CAAC,MAAM,QAAQ,CAAC,GAClB,iBAAiB,GAAG,OAAO;AAE/B;AAEA,SAAS,YAAY,GAAY,GAAmB;CAClD,IAAI,IAAI;CACR,IAAI,MAAM,QAAQ,MAAM,KAAA,GACtB,KAAK;MAEL,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE;CAE1B,OAAO,IAAI,cAAc;AAC3B;AAEA,SAAgB,iBAAiB,GAAY,GAAkB;CAC7D,MAAM,IAAI,MAAM,YAAY,GAAG,CAAC,CAAC;AACnC;AAEA,SAAgB,cAAiB,GAA6B;CAC5D,IAAI,MAAM,MACR,MAAM,IAAI,MAAM,yBAAyB;AAE7C;AAEA,SAAgB,mBACd,GACA,MAAM,gCACU;CAChB,IAAI,MAAM,KAAA,GACR,MAAM,IAAI,MAAM,GAAG;AAEvB;AAIA,SAAgB,YAAY,GAAkB;CAC5C,MAAM,IAAI,MAAM,aAAa;AAC/B"}
|
|
@@ -5,6 +5,15 @@ export type JSONObject = {
|
|
|
5
5
|
};
|
|
6
6
|
export declare const jsonValueSchema: v.Type<JSONValue>;
|
|
7
7
|
export declare const jsonObjectSchema: v.Type<Readonly<Record<string, JSONValue>>>;
|
|
8
|
+
/**
|
|
9
|
+
* Whether `str` has a run of 16 or more digits. Every such run covers one of
|
|
10
|
+
* every 16 consecutive indices, so only every 16th char needs to be checked and
|
|
11
|
+
* a digit there is expanded to its full run. This is several times faster than
|
|
12
|
+
* `/\d{16}/`, which restarts at every digit of a shorter run.
|
|
13
|
+
*
|
|
14
|
+
* A run inside a JSON string also matches; that merely takes the slow path.
|
|
15
|
+
*/
|
|
16
|
+
export declare function hasUnsafeIntegerDigits(str: string): boolean;
|
|
8
17
|
/**
|
|
9
18
|
* Parses JSON strings that may contain arbitrarily large integers. Integers
|
|
10
19
|
* larger than {@link Number.MAX_SAFE_INTEGER} are deserialized as a `bigint`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint-json.d.ts","sourceRoot":"","sources":["../../../../shared/src/bigint-json.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAYjC,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,SAAS,EAAE,GACpB,UAAU,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG;IAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAAC,CAAC;AAE1E,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAY5C,CAAC;AAEH,eAAO,MAAM,gBAAgB,6CAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"bigint-json.d.ts","sourceRoot":"","sources":["../../../../shared/src/bigint-json.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAYjC,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,SAAS,EAAE,GACpB,UAAU,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG;IAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAAC,CAAC;AAE1E,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAY5C,CAAC;AAEH,eAAO,MAAM,gBAAgB,6CAAwC,CAAC;AAUtE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAsB3D;AAED;;;GAGG;AACH,wBAAgB,KAAK,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,GAC3C,SAAS,CAIX;AAOD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EACL,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAC1C,IAAI,EACR,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,UAGzB;AAED,eAAO,MAAM,UAAU;;;CAGb,CAAC"}
|
|
@@ -17,12 +17,37 @@ var jsonValueSchema = valita_exports.lazy(() => {
|
|
|
17
17
|
return valita_exports.union(valita_exports.null(), valita_exports.string(), valita_exports.number(), valita_exports.bigint(), valita_exports.boolean(), readonly(valita_exports.array(jsonValueSchema)), jsonObjectSchema);
|
|
18
18
|
});
|
|
19
19
|
var jsonObjectSchema = readonly(valita_exports.record(jsonValueSchema));
|
|
20
|
+
var UNSAFE_INTEGER_DIGITS = 16;
|
|
21
|
+
function isDigit(c) {
|
|
22
|
+
return c >= 48 && c <= 57;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Whether `str` has a run of 16 or more digits. Every such run covers one of
|
|
26
|
+
* every 16 consecutive indices, so only every 16th char needs to be checked and
|
|
27
|
+
* a digit there is expanded to its full run. This is several times faster than
|
|
28
|
+
* `/\d{16}/`, which restarts at every digit of a shorter run.
|
|
29
|
+
*
|
|
30
|
+
* A run inside a JSON string also matches; that merely takes the slow path.
|
|
31
|
+
*/
|
|
32
|
+
function hasUnsafeIntegerDigits(str) {
|
|
33
|
+
const n = str.length;
|
|
34
|
+
for (let i = 15; i < n; i += UNSAFE_INTEGER_DIGITS) {
|
|
35
|
+
if (!isDigit(str.charCodeAt(i))) continue;
|
|
36
|
+
let start = i;
|
|
37
|
+
while (start > 0 && isDigit(str.charCodeAt(start - 1))) start--;
|
|
38
|
+
let end = i + 1;
|
|
39
|
+
while (end < n && isDigit(str.charCodeAt(end))) end++;
|
|
40
|
+
if (end - start >= UNSAFE_INTEGER_DIGITS) return true;
|
|
41
|
+
i = end - 1;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
20
45
|
/**
|
|
21
46
|
* Parses JSON strings that may contain arbitrarily large integers. Integers
|
|
22
47
|
* larger than {@link Number.MAX_SAFE_INTEGER} are deserialized as a `bigint`.
|
|
23
48
|
*/
|
|
24
49
|
function parse$1(str, reviver) {
|
|
25
|
-
return parse(str, reviver, numberParser);
|
|
50
|
+
return hasUnsafeIntegerDigits(str) ? parse(str, reviver, numberParser) : JSON.parse(str, reviver);
|
|
26
51
|
}
|
|
27
52
|
function customSerializer(_, v, type) {
|
|
28
53
|
if (type === "bigint") return v.toString();
|
|
@@ -43,6 +68,6 @@ var BigIntJSON = {
|
|
|
43
68
|
stringify: stringify$1
|
|
44
69
|
};
|
|
45
70
|
//#endregion
|
|
46
|
-
export { BigIntJSON, jsonObjectSchema, jsonValueSchema, parse$1 as parse, stringify$1 as stringify };
|
|
71
|
+
export { BigIntJSON, hasUnsafeIntegerDigits, jsonObjectSchema, jsonValueSchema, parse$1 as parse, stringify$1 as stringify };
|
|
47
72
|
|
|
48
73
|
//# sourceMappingURL=bigint-json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint-json.js","names":[],"sources":["../../../../shared/src/bigint-json.ts"],"sourcesContent":["/**\n * Background for using `json-custom-numbers`:\n *\n * https://neon.tech/blog/parsing-json-from-postgres-in-js\n */\nimport {\n parse as customParse,\n stringify as customStringify,\n} from 'json-custom-numbers';\nimport * as v from './valita.ts';\n\nfunction numberParser(_: unknown, v: string) {\n const n = +v;\n if (n >= Number.MIN_SAFE_INTEGER && n <= Number.MAX_SAFE_INTEGER) return n;\n if (v.includes('.') || v.includes('e') || v.includes('E')) {\n return n;\n }\n return BigInt(v);\n}\n\n// Variant of postgres.JSONValue adapted to include bigints\nexport type JSONValue =\n | null\n | string\n | number\n | bigint\n | boolean\n | readonly JSONValue[]\n | JSONObject;\n\nexport type JSONObject = {readonly [prop: string]: JSONValue | undefined};\n\nexport const jsonValueSchema: v.Type<JSONValue> = v.lazy(() => {\n const jsonObjectSchema = v.readonly(v.record(jsonValueSchema));\n\n return v.union(\n v.null(),\n v.string(),\n v.number(),\n v.bigint(),\n v.boolean(),\n v.readonly(v.array(jsonValueSchema)),\n jsonObjectSchema,\n );\n});\n\nexport const jsonObjectSchema = v.readonly(v.record(jsonValueSchema));\n\n/**\n * Parses JSON strings that may contain arbitrarily large integers. Integers\n * larger than {@link Number.MAX_SAFE_INTEGER} are deserialized as a `bigint`.\n */\nexport function parse(\n str: string,\n reviver?: (k: string, v: unknown) => unknown,\n): JSONValue {\n return customParse(str, reviver, numberParser);\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction customSerializer(_: string, v: any, type: string) {\n if (type === 'bigint') return v.toString();\n}\n\n/**\n * Stringifies objects to JSON, supporting objects containing bigint values.\n * Note that the resulting JSON string may not be deserializable by\n * all environments, but it is supported by Postgres. The string should be\n * deserialized with the corresponding {@link parse} method that will represent\n * large numbers as bigints. From there it is up to the application to suitably\n * handle bigints passed to downstream logic.\n */\nexport function stringify(\n obj: unknown,\n replacer?:\n | (string | number)[]\n | ((key: string, value: unknown) => unknown)\n | null,\n indent?: string | number,\n) {\n return customStringify(obj, replacer, indent, customSerializer);\n}\n\nexport const BigIntJSON = {\n parse,\n stringify,\n} as const;\n"],"mappings":";;;;;;;;AAWA,SAAS,aAAa,GAAY,GAAW;CAC3C,MAAM,IAAI,CAAC;CACX,IAAI,KAAK,OAAO,oBAAoB,KAAK,OAAO,kBAAkB,OAAO;CACzE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,GACtD,OAAO;CAET,OAAO,OAAO,CAAC;AACjB;AAcA,IAAa,
|
|
1
|
+
{"version":3,"file":"bigint-json.js","names":["v","v.readonly","parse","customParse","stringify","customStringify"],"sources":["../../../../shared/src/bigint-json.ts"],"sourcesContent":["/**\n * Background for using `json-custom-numbers`:\n *\n * https://neon.tech/blog/parsing-json-from-postgres-in-js\n */\nimport {\n parse as customParse,\n stringify as customStringify,\n} from 'json-custom-numbers';\nimport * as v from './valita.ts';\n\nfunction numberParser(_: unknown, v: string) {\n const n = +v;\n if (n >= Number.MIN_SAFE_INTEGER && n <= Number.MAX_SAFE_INTEGER) return n;\n if (v.includes('.') || v.includes('e') || v.includes('E')) {\n return n;\n }\n return BigInt(v);\n}\n\n// Variant of postgres.JSONValue adapted to include bigints\nexport type JSONValue =\n | null\n | string\n | number\n | bigint\n | boolean\n | readonly JSONValue[]\n | JSONObject;\n\nexport type JSONObject = {readonly [prop: string]: JSONValue | undefined};\n\nexport const jsonValueSchema: v.Type<JSONValue> = v.lazy(() => {\n const jsonObjectSchema = v.readonly(v.record(jsonValueSchema));\n\n return v.union(\n v.null(),\n v.string(),\n v.number(),\n v.bigint(),\n v.boolean(),\n v.readonly(v.array(jsonValueSchema)),\n jsonObjectSchema,\n );\n});\n\nexport const jsonObjectSchema = v.readonly(v.record(jsonValueSchema));\n\n// Integers of up to 15 digits are safe, so only a run of 16 or more digits can\n// be an integer that needs the (much slower) custom number parsing.\nconst UNSAFE_INTEGER_DIGITS = 16;\n\nfunction isDigit(c: number): boolean {\n return c >= 48 && c <= 57;\n}\n\n/**\n * Whether `str` has a run of 16 or more digits. Every such run covers one of\n * every 16 consecutive indices, so only every 16th char needs to be checked and\n * a digit there is expanded to its full run. This is several times faster than\n * `/\\d{16}/`, which restarts at every digit of a shorter run.\n *\n * A run inside a JSON string also matches; that merely takes the slow path.\n */\nexport function hasUnsafeIntegerDigits(str: string): boolean {\n const n = str.length;\n for (let i = UNSAFE_INTEGER_DIGITS - 1; i < n; i += UNSAFE_INTEGER_DIGITS) {\n if (!isDigit(str.charCodeAt(i))) {\n continue;\n }\n let start = i;\n while (start > 0 && isDigit(str.charCodeAt(start - 1))) {\n start--;\n }\n let end = i + 1;\n while (end < n && isDigit(str.charCodeAt(end))) {\n end++;\n }\n if (end - start >= UNSAFE_INTEGER_DIGITS) {\n return true;\n }\n // The next run starts after `end`, and covers one of every 16 indices from\n // there on.\n i = end - 1;\n }\n return false;\n}\n\n/**\n * Parses JSON strings that may contain arbitrarily large integers. Integers\n * larger than {@link Number.MAX_SAFE_INTEGER} are deserialized as a `bigint`.\n */\nexport function parse(\n str: string,\n reviver?: (k: string, v: unknown) => unknown,\n): JSONValue {\n return hasUnsafeIntegerDigits(str)\n ? customParse(str, reviver, numberParser)\n : JSON.parse(str, reviver);\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction customSerializer(_: string, v: any, type: string) {\n if (type === 'bigint') return v.toString();\n}\n\n/**\n * Stringifies objects to JSON, supporting objects containing bigint values.\n * Note that the resulting JSON string may not be deserializable by\n * all environments, but it is supported by Postgres. The string should be\n * deserialized with the corresponding {@link parse} method that will represent\n * large numbers as bigints. From there it is up to the application to suitably\n * handle bigints passed to downstream logic.\n */\nexport function stringify(\n obj: unknown,\n replacer?:\n | (string | number)[]\n | ((key: string, value: unknown) => unknown)\n | null,\n indent?: string | number,\n) {\n return customStringify(obj, replacer, indent, customSerializer);\n}\n\nexport const BigIntJSON = {\n parse,\n stringify,\n} as const;\n"],"mappings":";;;;;;;;AAWA,SAAS,aAAa,GAAY,GAAW;CAC3C,MAAM,IAAI,CAAC;CACX,IAAI,KAAK,OAAO,oBAAoB,KAAK,OAAO,kBAAkB,OAAO;CACzE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,GACtD,OAAO;CAET,OAAO,OAAO,CAAC;AACjB;AAcA,IAAa,kBAAqCA,eAAE,WAAW;CAC7D,MAAM,mBAAmBC,SAAWD,eAAE,OAAO,eAAe,CAAC;CAE7D,OAAOA,eAAE,MACPA,eAAE,KAAK,GACPA,eAAE,OAAO,GACTA,eAAE,OAAO,GACTA,eAAE,OAAO,GACTA,eAAE,QAAQ,GACVC,SAAWD,eAAE,MAAM,eAAe,CAAC,GACnC,gBACF;AACF,CAAC;AAED,IAAa,mBAAmBC,SAAWD,eAAE,OAAO,eAAe,CAAC;AAIpE,IAAM,wBAAwB;AAE9B,SAAS,QAAQ,GAAoB;CACnC,OAAO,KAAK,MAAM,KAAK;AACzB;;;;;;;;;AAUA,SAAgB,uBAAuB,KAAsB;CAC3D,MAAM,IAAI,IAAI;CACd,KAAK,IAAI,IAAI,IAA2B,IAAI,GAAG,KAAK,uBAAuB;EACzE,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,GAC5B;EAEF,IAAI,QAAQ;EACZ,OAAO,QAAQ,KAAK,QAAQ,IAAI,WAAW,QAAQ,CAAC,CAAC,GACnD;EAEF,IAAI,MAAM,IAAI;EACd,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,GAAG,CAAC,GAC3C;EAEF,IAAI,MAAM,SAAS,uBACjB,OAAO;EAIT,IAAI,MAAM;CACZ;CACA,OAAO;AACT;;;;;AAMA,SAAgBE,QACd,KACA,SACW;CACX,OAAO,uBAAuB,GAAG,IAC7BC,MAAY,KAAK,SAAS,YAAY,IACtC,KAAK,MAAM,KAAK,OAAO;AAC7B;AAGA,SAAS,iBAAiB,GAAW,GAAQ,MAAc;CACzD,IAAI,SAAS,UAAU,OAAO,EAAE,SAAS;AAC3C;;;;;;;;;AAUA,SAAgBC,YACd,KACA,UAIA,QACA;CACA,OAAOC,UAAgB,KAAK,UAAU,QAAQ,gBAAgB;AAChE;AAEA,IAAa,aAAa;CACxB,OAAA;CACA,WAAA;AACF"}
|
|
@@ -2,23 +2,6 @@ type GlobalThis = typeof globalThis;
|
|
|
2
2
|
export declare function overrideBrowserGlobal<T extends keyof GlobalThis>(name: T, value: GlobalThis[T]): void;
|
|
3
3
|
export declare function clearBrowserOverrides(): void;
|
|
4
4
|
export declare function getBrowserGlobal<T extends keyof GlobalThis>(name: T): GlobalThis[T] | undefined;
|
|
5
|
-
/**
|
|
6
|
-
* Returns the global method with the given name, bound to the global object.
|
|
7
|
-
* This is important because some methods (e.g. `requestAnimationFrame`) are not
|
|
8
|
-
* bound to the global object by default.
|
|
9
|
-
*
|
|
10
|
-
* If you end up using {@link getBrowserGlobal} instead in a case like this:
|
|
11
|
-
*
|
|
12
|
-
* ```js
|
|
13
|
-
* this.#raf = getBrowserGlobal('requestAnimationFrame') ?? rafFallback;
|
|
14
|
-
* ...
|
|
15
|
-
* this.#raf(() => ...);
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* You will end up with `Uncaught TypeError: Illegal invocation` because `this`
|
|
19
|
-
* is not bound to the global object
|
|
20
|
-
*/
|
|
21
|
-
export declare function getBrowserGlobalMethod<T extends keyof GlobalThis>(name: T): GlobalThis[T] | undefined;
|
|
22
5
|
export declare function mustGetBrowserGlobal<T extends keyof GlobalThis>(name: T): GlobalThis[T];
|
|
23
6
|
export {};
|
|
24
7
|
//# sourceMappingURL=browser-env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-env.d.ts","sourceRoot":"","sources":["../../../../shared/src/browser-env.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,OAAO,UAAU,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,UAAU,EAC9D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAGrB;AAED,wBAAgB,qBAAqB,SAEpC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,UAAU,EACzD,IAAI,EAAE,CAAC,GACN,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAK3B;AAED
|
|
1
|
+
{"version":3,"file":"browser-env.d.ts","sourceRoot":"","sources":["../../../../shared/src/browser-env.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,OAAO,UAAU,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,UAAU,EAC9D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAGrB;AAED,wBAAgB,qBAAqB,SAEpC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,UAAU,EACzD,IAAI,EAAE,CAAC,GACN,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAK3B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,UAAU,EAC7D,IAAI,EAAE,CAAC,GACN,UAAU,CAAC,CAAC,CAAC,CAQf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-env.js","names":[],"sources":["../../../../shared/src/browser-env.ts"],"sourcesContent":["// Helpers for some objects from the browser environment. These are wrapped in\n// functions because Replicache runs in environments that do not have these\n// objects (such as Web Workers, Deno etc).\n\ntype GlobalThis = typeof globalThis;\n\nconst overrides = new Map<keyof GlobalThis, GlobalThis[keyof GlobalThis]>();\n\nexport function overrideBrowserGlobal<T extends keyof GlobalThis>(\n name: T,\n value: GlobalThis[T],\n) {\n overrides.set(name, value);\n}\n\nexport function clearBrowserOverrides() {\n overrides.clear();\n}\n\nexport function getBrowserGlobal<T extends keyof GlobalThis>(\n name: T,\n): GlobalThis[T] | undefined {\n if (overrides.has(name)) {\n return overrides.get(name);\n }\n return globalThis[name];\n}\n\
|
|
1
|
+
{"version":3,"file":"browser-env.js","names":[],"sources":["../../../../shared/src/browser-env.ts"],"sourcesContent":["// Helpers for some objects from the browser environment. These are wrapped in\n// functions because Replicache runs in environments that do not have these\n// objects (such as Web Workers, Deno etc).\n\ntype GlobalThis = typeof globalThis;\n\nconst overrides = new Map<keyof GlobalThis, GlobalThis[keyof GlobalThis]>();\n\nexport function overrideBrowserGlobal<T extends keyof GlobalThis>(\n name: T,\n value: GlobalThis[T],\n) {\n overrides.set(name, value);\n}\n\nexport function clearBrowserOverrides() {\n overrides.clear();\n}\n\nexport function getBrowserGlobal<T extends keyof GlobalThis>(\n name: T,\n): GlobalThis[T] | undefined {\n if (overrides.has(name)) {\n return overrides.get(name);\n }\n return globalThis[name];\n}\n\nexport function mustGetBrowserGlobal<T extends keyof GlobalThis>(\n name: T,\n): GlobalThis[T] {\n const r = getBrowserGlobal(name);\n if (r === undefined) {\n throw new Error(\n `Unsupported JavaScript environment: Could not find ${name}.`,\n );\n }\n return r;\n}\n"],"mappings":";AAMA,IAAM,4BAAY,IAAI,IAAoD;AAa1E,SAAgB,iBACd,MAC2B;CAC3B,IAAI,UAAU,IAAI,IAAI,GACpB,OAAO,UAAU,IAAI,IAAI;CAE3B,OAAO,WAAW;AACpB;AAEA,SAAgB,qBACd,MACe;CACf,MAAM,IAAI,iBAAiB,IAAI;CAC/B,IAAI,MAAM,KAAA,GACR,MAAM,IAAI,MACR,sDAAsD,KAAK,EAC7D;CAEF,OAAO;AACT"}
|
|
@@ -175,8 +175,8 @@ var BTreeReverseIterator = class {
|
|
|
175
175
|
done: false,
|
|
176
176
|
value: this.#leaf.keys[this.#i]
|
|
177
177
|
};
|
|
178
|
-
let level;
|
|
179
|
-
for (
|
|
178
|
+
let level = -1;
|
|
179
|
+
for (;;) {
|
|
180
180
|
if (++level >= this.#nodeQueue.length) return {
|
|
181
181
|
done: true,
|
|
182
182
|
value: void 0
|
|
@@ -305,7 +305,8 @@ var BNode = class BNode {
|
|
|
305
305
|
}
|
|
306
306
|
splitOffRightSide() {
|
|
307
307
|
const half = this.keys.length >> 1;
|
|
308
|
-
|
|
308
|
+
const keys = this.keys.splice(half);
|
|
309
|
+
return new BNode(keys);
|
|
309
310
|
}
|
|
310
311
|
delete(key, tree) {
|
|
311
312
|
const cmp = tree.comparator;
|
|
@@ -433,12 +434,14 @@ var BNodeInternal = class BNodeInternal extends BNode {
|
|
|
433
434
|
keys[i] = children[i].maxKey();
|
|
434
435
|
return result;
|
|
435
436
|
} finally {
|
|
436
|
-
const half =
|
|
437
|
+
const half = 16;
|
|
437
438
|
if (iLow > 0) iLow--;
|
|
438
|
-
for (i = iHigh; i >= iLow; i--) if (children[i].keys.length <= half)
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
439
|
+
for (i = iHigh; i >= iLow; i--) if (children[i].keys.length <= half) {
|
|
440
|
+
if (children[i].keys.length !== 0) this.tryMerge(i, MAX_NODE_SIZE);
|
|
441
|
+
else {
|
|
442
|
+
keys.splice(i, 1);
|
|
443
|
+
children.splice(i, 1);
|
|
444
|
+
}
|
|
442
445
|
}
|
|
443
446
|
}
|
|
444
447
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btree-set.js","names":["#root","#delete","#maxKey","#nodeQueue","#nodeIndex","#leaf","#i"],"sources":["../../../../shared/src/btree-set.ts"],"sourcesContent":["import {assert} from './asserts.ts';\n\nconst MAX_NODE_SIZE = 32;\n\ntype Comparator<K> = (a: K, b: K) => number;\n\nexport class BTreeSet<K> {\n #root: BNode<K> = emptyLeaf as BNode<K>;\n size: number = 0;\n\n readonly comparator: Comparator<K>;\n\n constructor(comparator: Comparator<K>, entries?: IterableIterator<K>) {\n this.comparator = comparator;\n if (entries) {\n for (const key of entries) {\n this.add(key);\n }\n }\n }\n\n /** Releases the tree so that its size is 0. */\n clear() {\n this.#root = emptyLeaf as BNode<K>;\n this.size = 0;\n }\n\n clone() {\n this.#root.isShared = true;\n const ret = new BTreeSet<K>(this.comparator);\n ret.#root = this.#root;\n ret.size = this.size;\n return ret;\n }\n\n get(key: K): K | undefined {\n return this.#root.get(key, this);\n }\n\n add(key: K): this {\n if (this.#root.isShared) this.#root = this.#root.clone();\n const result = this.#root.set(key, this);\n if (result === null) return this;\n // Root node has split, so create a new root node.\n this.#root = new BNodeInternal<K>([this.#root, result]);\n return this;\n }\n\n /**\n * Returns true if the key exists in the B+ tree, false if not.\n * Use get() for best performance; use has() if you need to\n * distinguish between \"undefined value\" and \"key not present\".\n * @param key Key to detect\n * @description Computational complexity: O(log size)\n */\n has(key: K): boolean {\n return this.#root.has(key, this);\n }\n\n /**\n * Removes a single key-value pair from the B+ tree.\n * @param key Key to find\n * @returns true if a pair was found and removed, false otherwise.\n * @description Computational complexity: O(log size)\n */\n delete(key: K): boolean {\n return this.#delete(key);\n }\n\n #delete(key: K): boolean {\n let root = this.#root;\n if (root.isShared) {\n this.#root = root = root.clone();\n }\n try {\n return root.delete(key, this);\n } finally {\n let isShared;\n while (root.keys.length <= 1 && root.isInternal()) {\n isShared ||= root.isShared;\n this.#root = root =\n root.keys.length === 0 ? emptyLeaf : root.children[0];\n }\n // If any ancestor of the new root was shared, the new root must also be shared\n if (isShared) {\n root.isShared = true;\n }\n }\n }\n\n keys(): IterableIterator<K> {\n return valuesFrom(this.#root, this.comparator, undefined, true);\n }\n\n values(): IterableIterator<K> {\n return valuesFrom(this.#root, this.comparator, undefined, true);\n }\n\n valuesFrom(lowestKey?: K, inclusive: boolean = true): IterableIterator<K> {\n return valuesFrom(this.#root, this.comparator, lowestKey, inclusive);\n }\n\n valuesReversed(): IterableIterator<K> {\n return valuesFromReversed(\n this.#maxKey(),\n this.#root,\n this.comparator,\n undefined,\n true,\n );\n }\n\n valuesFromReversed(\n highestKey?: K,\n inclusive: boolean = true,\n ): IterableIterator<K> {\n return valuesFromReversed(\n this.#maxKey(),\n this.#root,\n this.comparator,\n highestKey,\n inclusive,\n );\n }\n\n /** Gets the highest key in the tree. Complexity: O(1) */\n #maxKey(): K | undefined {\n return this.#root.maxKey();\n }\n\n [Symbol.iterator](): IterableIterator<K> {\n return this.keys();\n }\n\n /**\n * Builds a BTreeSet from a pre-sorted iterable in O(N) by constructing\n * the tree bottom-up. The caller must ensure entries are sorted by\n * `comparator`; violating this produces an invalid tree.\n */\n static fromSorted<K>(\n comparator: Comparator<K>,\n sortedEntries: Iterable<K>,\n ): BTreeSet<K> {\n const tree = new BTreeSet<K>(comparator);\n\n // Stream through entries, flushing a leaf node each time we fill MAX_NODE_SIZE keys.\n const leaves: BNode<K>[] = [];\n let currentKeys: K[] = [];\n let size = 0;\n\n for (const key of sortedEntries) {\n currentKeys.push(key);\n if (currentKeys.length === MAX_NODE_SIZE) {\n leaves.push(new BNode<K>(currentKeys));\n currentKeys = [];\n }\n size++;\n }\n\n if (currentKeys.length > 0) {\n leaves.push(new BNode<K>(currentKeys));\n }\n\n if (leaves.length === 0) return tree;\n\n tree.size = size;\n\n if (leaves.length === 1) {\n tree.#root = leaves[0];\n return tree;\n }\n\n // Build internal nodes bottom-up until a single root remains.\n let currentLevel: BNode<K>[] = leaves;\n while (currentLevel.length > 1) {\n const nextLevel: BNodeInternal<K>[] = [];\n for (let i = 0; i < currentLevel.length; i += MAX_NODE_SIZE) {\n nextLevel.push(\n new BNodeInternal<K>(currentLevel.slice(i, i + MAX_NODE_SIZE)),\n );\n }\n currentLevel = nextLevel;\n }\n\n tree.#root = currentLevel[0];\n return tree;\n }\n}\n\nclass BTreeForwardIterator<K> implements IterableIterator<K> {\n readonly #nodeQueue: BNode<K>[][];\n readonly #nodeIndex: number[];\n #leaf: BNode<K>;\n #i: number;\n\n constructor(\n nodeQueue: BNode<K>[][],\n nodeIndex: number[],\n leaf: BNode<K>,\n startI: number,\n ) {\n this.#nodeQueue = nodeQueue;\n this.#nodeIndex = nodeIndex;\n this.#leaf = leaf;\n this.#i = startI;\n }\n\n next(): IteratorResult<K> {\n for (;;) {\n if (++this.#i < this.#leaf.keys.length) {\n return {done: false, value: this.#leaf.keys[this.#i]};\n }\n\n let level = -1;\n for (;;) {\n if (++level >= this.#nodeQueue.length) {\n return {done: true, value: undefined as unknown as K};\n }\n if (++this.#nodeIndex[level] < this.#nodeQueue[level].length) {\n break;\n }\n }\n for (; level > 0; level--) {\n this.#nodeQueue[level - 1] = (\n this.#nodeQueue[level][this.#nodeIndex[level]] as BNodeInternal<K>\n ).children;\n this.#nodeIndex[level - 1] = 0;\n }\n this.#leaf = this.#nodeQueue[0][this.#nodeIndex[0]];\n this.#i = -1;\n }\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\nclass BTreeReverseIterator<K> implements IterableIterator<K> {\n readonly #nodeQueue: BNode<K>[][];\n readonly #nodeIndex: number[];\n #leaf: BNode<K>;\n #i: number;\n\n constructor(\n nodeQueue: BNode<K>[][],\n nodeIndex: number[],\n leaf: BNode<K>,\n startI: number,\n ) {\n this.#nodeQueue = nodeQueue;\n this.#nodeIndex = nodeIndex;\n this.#leaf = leaf;\n this.#i = startI;\n }\n\n next(): IteratorResult<K> {\n for (;;) {\n if (--this.#i >= 0) {\n return {done: false, value: this.#leaf.keys[this.#i]};\n }\n\n let level;\n // Advance to the next leaf node\n for (level = -1; ;) {\n if (++level >= this.#nodeQueue.length) {\n return {done: true, value: undefined as unknown as K};\n }\n if (--this.#nodeIndex[level] >= 0) {\n break;\n }\n }\n for (; level > 0; level--) {\n this.#nodeQueue[level - 1] = (\n this.#nodeQueue[level][this.#nodeIndex[level]] as BNodeInternal<K>\n ).children;\n this.#nodeIndex[level - 1] = this.#nodeQueue[level - 1].length - 1;\n }\n this.#leaf = this.#nodeQueue[0][this.#nodeIndex[0]];\n this.#i = this.#leaf.keys.length;\n }\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\nfunction valuesFrom<K>(\n root: BNode<K>,\n comparator: Comparator<K>,\n lowestKey: K | undefined,\n inclusive: boolean,\n): IterableIterator<K> {\n const info = findPath(lowestKey, root, comparator);\n if (info === undefined) {\n return iterator<K>(() => ({done: true, value: undefined}));\n }\n\n let [nodeQueue, nodeIndex, leaf] = info;\n let i =\n lowestKey === undefined\n ? -1\n : indexOf(lowestKey, leaf.keys, 0, comparator) - 1;\n\n if (\n !inclusive &&\n lowestKey !== undefined &&\n // +1 because we did -1 above.\n i + 1 < leaf.keys.length &&\n comparator(leaf.keys[i + 1], lowestKey) === 0\n ) {\n i++;\n }\n\n return new BTreeForwardIterator(nodeQueue, nodeIndex, leaf, i);\n}\n\nfunction valuesFromReversed<K>(\n maxKey: K | undefined,\n root: BNode<K>,\n comparator: Comparator<K>,\n highestKey: K | undefined,\n inclusive: boolean,\n): IterableIterator<K> {\n if (highestKey === undefined) {\n highestKey = maxKey;\n if (highestKey === undefined) {\n return iterator<K>(() => ({done: true, value: undefined}));\n } // collection is empty\n }\n let [nodeQueue, nodeIndex, leaf] =\n findPath(highestKey, root, comparator) ||\n findPath(maxKey, root, comparator)!;\n assert(\n !nodeQueue[0] || leaf === nodeQueue[0][nodeIndex[0]],\n 'BTreeSet: leaf node mismatch in iteration',\n );\n let i = indexOf(highestKey, leaf.keys, 0, comparator);\n if (\n inclusive &&\n i < leaf.keys.length &&\n comparator(leaf.keys[i], highestKey) <= 0\n ) {\n i++;\n }\n\n return new BTreeReverseIterator(nodeQueue, nodeIndex, leaf, i);\n}\n\nfunction findPath<K>(\n key: K | undefined,\n root: BNode<K>,\n comparator: Comparator<K>,\n): [nodeQueue: BNode<K>[][], nodeIndex: number[], leaf: BNode<K>] | undefined {\n let nextNode = root;\n const nodeQueue: BNode<K>[][] = [];\n const nodeIndex: number[] = [];\n\n if (nextNode.isInternal()) {\n for (let d = 0; nextNode.isInternal(); d++) {\n nodeQueue[d] = nextNode.children;\n nodeIndex[d] =\n key === undefined ? 0 : indexOf(key, nextNode.keys, 0, comparator);\n if (nodeIndex[d] >= nodeQueue[d].length) return; // first key > maxKey()\n nextNode = nodeQueue[d][nodeIndex[d]];\n }\n nodeQueue.reverse();\n nodeIndex.reverse();\n }\n return [nodeQueue, nodeIndex, nextNode];\n}\n\nfunction iterator<T>(next: () => IteratorResult<T>): IterableIterator<T> {\n return {\n next,\n [Symbol.iterator]() {\n return this;\n },\n };\n}\n\n/** Leaf node / base class. **************************************************/\nclass BNode<K> {\n // If this is an internal node, _keys[i] is the highest key in children[i].\n keys: K[];\n // True if this node might be within multiple `BTree`s (or have multiple parents).\n // If so, it must be cloned before being mutated to avoid changing an unrelated tree.\n // This is transitive: if it's true, children are also shared even if `isShared!=true`\n // in those children. (Certain operations will propagate isShared=true to children.)\n isShared: true | undefined;\n\n constructor(keys: K[]) {\n this.keys = keys;\n this.isShared = undefined;\n }\n\n isInternal(): this is BNodeInternal<K> {\n return false;\n }\n\n maxKey() {\n // oxlint-disable-next-line typescript/no-non-null-assertion\n return this.keys.at(-1)!;\n }\n\n minKey(): K | undefined {\n return this.keys[0];\n }\n\n clone(): BNode<K> {\n return new BNode<K>(this.keys.slice(0));\n }\n\n get(key: K, tree: BTreeSet<K>): K | undefined {\n const i = indexOf(key, this.keys, -1, tree.comparator);\n return i < 0 ? undefined : this.keys[i];\n }\n\n has(key: K, tree: BTreeSet<K>): boolean {\n const i = indexOf(key, this.keys, -1, tree.comparator);\n return i >= 0 && i < this.keys.length;\n }\n\n set(key: K, tree: BTreeSet<K>): null | BNode<K> {\n let i = indexOf(key, this.keys, -1, tree.comparator);\n if (i < 0) {\n // key does not exist yet\n i = ~i;\n tree.size++;\n\n if (this.keys.length < MAX_NODE_SIZE) {\n this.keys.splice(i, 0, key);\n return null;\n }\n // This leaf node is full and must split\n const newRightSibling = this.splitOffRightSide();\n // oxlint-disable-next-line @typescript-eslint/no-this-alias\n let target: BNode<K> = this;\n if (i > this.keys.length) {\n i -= this.keys.length;\n target = newRightSibling;\n }\n // target.#insertInLeaf(i, key);\n target.keys.splice(i, 0, key);\n\n return newRightSibling;\n }\n\n // usually this is a no-op, but some users may wish to edit the key\n this.keys[i] = key;\n return null;\n }\n\n takeFromRight(rhs: BNode<K>) {\n this.keys.push(rhs.keys.shift()!);\n }\n\n takeFromLeft(lhs: BNode<K>) {\n this.keys.unshift(lhs.keys.pop()!);\n }\n\n splitOffRightSide(): BNode<K> {\n const half = this.keys.length >> 1;\n const keys = this.keys.splice(half);\n return new BNode<K>(keys);\n }\n\n delete(key: K, tree: BTreeSet<K>): boolean {\n const cmp = tree.comparator;\n const iLow = indexOf(key, this.keys, -1, cmp);\n const iHigh = iLow + 1;\n\n if (iLow < 0) {\n return false;\n }\n\n const {keys} = this;\n for (let i = iLow; i < iHigh; i++) {\n const key = keys[i];\n\n if (key !== keys[i] || this.isShared === true) {\n throw new Error('BTree illegally changed or cloned in delete');\n }\n\n this.keys.splice(i, 1);\n tree.size--;\n return true;\n }\n\n return false;\n }\n\n mergeSibling(rhs: BNode<K>, _: number) {\n this.keys.push(...rhs.keys);\n }\n}\n\n/** Internal node (non-leaf node) ********************************************/\nclass BNodeInternal<K> extends BNode<K> {\n // Note: conventionally B+ trees have one fewer key than the number of\n // children, but I find it easier to keep the array lengths equal: each\n // keys[i] caches the value of children[i].maxKey().\n children: BNode<K>[];\n\n /**\n * This does not mark `children` as shared, so it is the responsibility of the caller\n * to ensure children are either marked shared, or aren't included in another tree.\n */\n constructor(children: BNode<K>[], keys?: K[]) {\n if (!keys) {\n keys = [];\n for (let i = 0; i < children.length; i++) {\n keys[i] = children[i].maxKey();\n }\n }\n super(keys);\n this.children = children;\n }\n\n isInternal(): this is BNodeInternal<K> {\n return true;\n }\n\n clone(): BNode<K> {\n const children = this.children.slice(0);\n for (let i = 0; i < children.length; i++) {\n children[i].isShared = true;\n }\n return new BNodeInternal<K>(children, this.keys.slice(0));\n }\n\n minKey() {\n return this.children[0].minKey();\n }\n\n get(key: K, tree: BTreeSet<K>): K | undefined {\n const i = indexOf(key, this.keys, 0, tree.comparator);\n const {children} = this;\n return i < children.length ? children[i].get(key, tree) : undefined;\n }\n\n has(key: K, tree: BTreeSet<K>): boolean {\n const i = indexOf(key, this.keys, 0, tree.comparator);\n const {children} = this;\n return i < children.length ? children[i].has(key, tree) : false;\n }\n\n set(key: K, tree: BTreeSet<K>): null | BNode<K> {\n const c = this.children;\n const cmp = tree.comparator;\n let i = Math.min(indexOf(key, this.keys, 0, cmp), c.length - 1);\n let child = c[i];\n\n if (child.isShared) {\n c[i] = child = child.clone();\n }\n if (child.keys.length >= MAX_NODE_SIZE) {\n // child is full; inserting anything else will cause a split.\n // Shifting an item to the left or right sibling may avoid a split.\n // We can do a shift if the adjacent node is not full and if the\n // current key can still be placed in the same node after the shift.\n let other: BNode<K>;\n if (\n i > 0 &&\n (other = c[i - 1]).keys.length < MAX_NODE_SIZE &&\n cmp(child.keys[0], key) < 0\n ) {\n if (other.isShared) {\n c[i - 1] = other = other.clone();\n }\n other.takeFromRight(child);\n this.keys[i - 1] = other.maxKey();\n } else if (\n (other = c[i + 1]) !== undefined &&\n other.keys.length < MAX_NODE_SIZE &&\n cmp(child.maxKey(), key) < 0\n ) {\n if (other.isShared) c[i + 1] = other = other.clone();\n other.takeFromLeft(child);\n this.keys[i] = c[i].maxKey();\n }\n }\n\n const result = child.set(key, tree);\n this.keys[i] = child.maxKey();\n if (result === null) return null;\n\n // The child has split and `result` is a new right child... does it fit?\n if (this.keys.length < MAX_NODE_SIZE) {\n // yes\n this.insert(i + 1, result);\n return null;\n }\n // no, we must split also\n const newRightSibling = this.splitOffRightSide();\n // oxlint-disable-next-line @typescript-eslint/no-this-alias\n let target: BNodeInternal<K> = this;\n if (cmp(result.maxKey(), this.maxKey()) > 0) {\n target = newRightSibling;\n i -= this.keys.length;\n }\n target.insert(i + 1, result);\n return newRightSibling;\n }\n\n /**\n * Inserts `child` at index `i`.\n * This does not mark `child` as shared, so it is the responsibility of the caller\n * to ensure that either child is marked shared, or it is not included in another tree.\n */\n insert(i: number, child: BNode<K>) {\n this.children.splice(i, 0, child);\n this.keys.splice(i, 0, child.maxKey());\n }\n\n /**\n * Split this node.\n * Modifies this to remove the second half of the items, returning a separate node containing them.\n */\n splitOffRightSide() {\n const half = this.children.length >> 1;\n return new BNodeInternal<K>(\n this.children.splice(half),\n this.keys.splice(half),\n );\n }\n\n takeFromRight(rhs: BNode<K>) {\n this.keys.push(rhs.keys.shift()!);\n this.children.push((rhs as BNodeInternal<K>).children.shift()!);\n }\n\n takeFromLeft(lhs: BNode<K>) {\n this.keys.unshift(lhs.keys.pop()!);\n this.children.unshift((lhs as BNodeInternal<K>).children.pop()!);\n }\n\n delete(key: K, tree: BTreeSet<K>): boolean {\n const cmp = tree.comparator;\n const {keys} = this;\n const {children} = this;\n let iLow = indexOf(key, this.keys, 0, cmp);\n let i = iLow;\n const iHigh = Math.min(iLow, keys.length - 1);\n if (i <= iHigh) {\n try {\n if (children[i].isShared) {\n children[i] = children[i].clone();\n }\n const result = children[i].delete(key, tree);\n // Note: if children[i] is empty then keys[i]=undefined.\n // This is an invalid state, but it is fixed below.\n keys[i] = children[i].maxKey();\n return result;\n } finally {\n // Deletions may have occurred, so look for opportunities to merge nodes.\n const half = MAX_NODE_SIZE >> 1;\n if (iLow > 0) iLow--;\n for (i = iHigh; i >= iLow; i--) {\n if (children[i].keys.length <= half) {\n if (children[i].keys.length !== 0) {\n this.tryMerge(i, MAX_NODE_SIZE);\n } else {\n // child is empty! delete it!\n keys.splice(i, 1);\n children.splice(i, 1);\n }\n }\n }\n }\n }\n return false;\n }\n\n /** Merges child i with child i+1 if their combined size is not too large */\n tryMerge(i: number, maxSize: number): boolean {\n const {children} = this;\n if (i >= 0 && i + 1 < children.length) {\n if (children[i].keys.length + children[i + 1].keys.length <= maxSize) {\n if (\n children[i].isShared\n ) // cloned already UNLESS i is outside scan range\n {\n children[i] = children[i].clone();\n }\n children[i].mergeSibling(children[i + 1], maxSize);\n children.splice(i + 1, 1);\n this.keys.splice(i + 1, 1);\n this.keys[i] = children[i].maxKey();\n return true;\n }\n }\n return false;\n }\n\n /**\n * Move children from `rhs` into this.\n * `rhs` must be part of this tree, and be removed from it after this call\n * (otherwise isShared for its children could be incorrect).\n */\n mergeSibling(rhs: BNode<K>, maxNodeSize: number) {\n // assert !this.isShared;\n const oldLength = this.keys.length;\n this.keys.push(...rhs.keys);\n const rhsChildren = (rhs as unknown as BNodeInternal<K>).children;\n this.children.push(...rhsChildren);\n\n if (rhs.isShared && !this.isShared) {\n // All children of a shared node are implicitly shared, and since their new\n // parent is not shared, they must now be explicitly marked as shared.\n for (let i = 0; i < rhsChildren.length; i++) {\n rhsChildren[i].isShared = true;\n }\n }\n\n // If our children are themselves almost empty due to a mass-delete,\n // they may need to be merged too (but only the oldLength-1 and its\n // right sibling should need this).\n this.tryMerge(oldLength - 1, maxNodeSize);\n }\n}\n\n// If key not found, returns i^failXor where i is the insertion index.\n// Callers that don't care whether there was a match will set failXor=0.\nfunction indexOf<K>(\n key: K,\n keys: K[],\n failXor: number,\n comparator: Comparator<K>,\n): number {\n let lo = 0;\n let hi = keys.length;\n let mid = hi >> 1;\n while (lo < hi) {\n const c = comparator(keys[mid], key);\n if (c < 0) {\n lo = mid + 1;\n } else if (c > 0) {\n // key < keys[mid]\n hi = mid;\n } else if (c === 0) {\n return mid;\n } else {\n // c is NaN or otherwise invalid\n if (key === key) {\n // at least the search key is not NaN\n return keys.length;\n }\n throw new Error('NaN was used as a key');\n }\n mid = (lo + hi) >> 1;\n }\n return mid ^ failXor;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nconst emptyLeaf = new BNode<any>([]);\nemptyLeaf.isShared = true;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"btree-set.js","names":[],"sources":["../../../../shared/src/btree-set.ts"],"sourcesContent":["import {assert} from './asserts.ts';\n\nconst MAX_NODE_SIZE = 32;\n\ntype Comparator<K> = (a: K, b: K) => number;\n\nexport class BTreeSet<K> {\n #root: BNode<K> = emptyLeaf as BNode<K>;\n size: number = 0;\n\n readonly comparator: Comparator<K>;\n\n constructor(comparator: Comparator<K>, entries?: IterableIterator<K>) {\n this.comparator = comparator;\n if (entries) {\n for (const key of entries) {\n this.add(key);\n }\n }\n }\n\n /** Releases the tree so that its size is 0. */\n clear() {\n this.#root = emptyLeaf as BNode<K>;\n this.size = 0;\n }\n\n clone() {\n this.#root.isShared = true;\n const ret = new BTreeSet<K>(this.comparator);\n ret.#root = this.#root;\n ret.size = this.size;\n return ret;\n }\n\n get(key: K): K | undefined {\n return this.#root.get(key, this);\n }\n\n add(key: K): this {\n if (this.#root.isShared) this.#root = this.#root.clone();\n const result = this.#root.set(key, this);\n if (result === null) return this;\n // Root node has split, so create a new root node.\n this.#root = new BNodeInternal<K>([this.#root, result]);\n return this;\n }\n\n /**\n * Returns true if the key exists in the B+ tree, false if not.\n * Use get() for best performance; use has() if you need to\n * distinguish between \"undefined value\" and \"key not present\".\n * @param key Key to detect\n * @description Computational complexity: O(log size)\n */\n has(key: K): boolean {\n return this.#root.has(key, this);\n }\n\n /**\n * Removes a single key-value pair from the B+ tree.\n * @param key Key to find\n * @returns true if a pair was found and removed, false otherwise.\n * @description Computational complexity: O(log size)\n */\n delete(key: K): boolean {\n return this.#delete(key);\n }\n\n #delete(key: K): boolean {\n let root = this.#root;\n if (root.isShared) {\n this.#root = root = root.clone();\n }\n try {\n return root.delete(key, this);\n } finally {\n let isShared;\n while (root.keys.length <= 1 && root.isInternal()) {\n isShared ||= root.isShared;\n this.#root = root =\n root.keys.length === 0 ? emptyLeaf : root.children[0];\n }\n // If any ancestor of the new root was shared, the new root must also be shared\n if (isShared) {\n root.isShared = true;\n }\n }\n }\n\n keys(): IterableIterator<K> {\n return valuesFrom(this.#root, this.comparator, undefined, true);\n }\n\n values(): IterableIterator<K> {\n return valuesFrom(this.#root, this.comparator, undefined, true);\n }\n\n valuesFrom(lowestKey?: K, inclusive: boolean = true): IterableIterator<K> {\n return valuesFrom(this.#root, this.comparator, lowestKey, inclusive);\n }\n\n valuesReversed(): IterableIterator<K> {\n return valuesFromReversed(\n this.#maxKey(),\n this.#root,\n this.comparator,\n undefined,\n true,\n );\n }\n\n valuesFromReversed(\n highestKey?: K,\n inclusive: boolean = true,\n ): IterableIterator<K> {\n return valuesFromReversed(\n this.#maxKey(),\n this.#root,\n this.comparator,\n highestKey,\n inclusive,\n );\n }\n\n /** Gets the highest key in the tree. Complexity: O(1) */\n #maxKey(): K | undefined {\n return this.#root.maxKey();\n }\n\n [Symbol.iterator](): IterableIterator<K> {\n return this.keys();\n }\n\n /**\n * Builds a BTreeSet from a pre-sorted iterable in O(N) by constructing\n * the tree bottom-up. The caller must ensure entries are sorted by\n * `comparator`; violating this produces an invalid tree.\n */\n static fromSorted<K>(\n comparator: Comparator<K>,\n sortedEntries: Iterable<K>,\n ): BTreeSet<K> {\n const tree = new BTreeSet<K>(comparator);\n\n // Stream through entries, flushing a leaf node each time we fill MAX_NODE_SIZE keys.\n const leaves: BNode<K>[] = [];\n let currentKeys: K[] = [];\n let size = 0;\n\n for (const key of sortedEntries) {\n currentKeys.push(key);\n if (currentKeys.length === MAX_NODE_SIZE) {\n leaves.push(new BNode<K>(currentKeys));\n currentKeys = [];\n }\n size++;\n }\n\n if (currentKeys.length > 0) {\n leaves.push(new BNode<K>(currentKeys));\n }\n\n if (leaves.length === 0) return tree;\n\n tree.size = size;\n\n if (leaves.length === 1) {\n tree.#root = leaves[0];\n return tree;\n }\n\n // Build internal nodes bottom-up until a single root remains.\n let currentLevel: BNode<K>[] = leaves;\n while (currentLevel.length > 1) {\n const nextLevel: BNodeInternal<K>[] = [];\n for (let i = 0; i < currentLevel.length; i += MAX_NODE_SIZE) {\n nextLevel.push(\n new BNodeInternal<K>(currentLevel.slice(i, i + MAX_NODE_SIZE)),\n );\n }\n currentLevel = nextLevel;\n }\n\n tree.#root = currentLevel[0];\n return tree;\n }\n}\n\nclass BTreeForwardIterator<K> implements IterableIterator<K> {\n readonly #nodeQueue: BNode<K>[][];\n readonly #nodeIndex: number[];\n #leaf: BNode<K>;\n #i: number;\n\n constructor(\n nodeQueue: BNode<K>[][],\n nodeIndex: number[],\n leaf: BNode<K>,\n startI: number,\n ) {\n this.#nodeQueue = nodeQueue;\n this.#nodeIndex = nodeIndex;\n this.#leaf = leaf;\n this.#i = startI;\n }\n\n next(): IteratorResult<K> {\n for (;;) {\n if (++this.#i < this.#leaf.keys.length) {\n return {done: false, value: this.#leaf.keys[this.#i]};\n }\n\n let level = -1;\n for (;;) {\n if (++level >= this.#nodeQueue.length) {\n return {done: true, value: undefined as unknown as K};\n }\n if (++this.#nodeIndex[level] < this.#nodeQueue[level].length) {\n break;\n }\n }\n for (; level > 0; level--) {\n this.#nodeQueue[level - 1] = (\n this.#nodeQueue[level][this.#nodeIndex[level]] as BNodeInternal<K>\n ).children;\n this.#nodeIndex[level - 1] = 0;\n }\n this.#leaf = this.#nodeQueue[0][this.#nodeIndex[0]];\n this.#i = -1;\n }\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\nclass BTreeReverseIterator<K> implements IterableIterator<K> {\n readonly #nodeQueue: BNode<K>[][];\n readonly #nodeIndex: number[];\n #leaf: BNode<K>;\n #i: number;\n\n constructor(\n nodeQueue: BNode<K>[][],\n nodeIndex: number[],\n leaf: BNode<K>,\n startI: number,\n ) {\n this.#nodeQueue = nodeQueue;\n this.#nodeIndex = nodeIndex;\n this.#leaf = leaf;\n this.#i = startI;\n }\n\n next(): IteratorResult<K> {\n for (;;) {\n if (--this.#i >= 0) {\n return {done: false, value: this.#leaf.keys[this.#i]};\n }\n\n let level;\n // Advance to the next leaf node\n for (level = -1; ;) {\n if (++level >= this.#nodeQueue.length) {\n return {done: true, value: undefined as unknown as K};\n }\n if (--this.#nodeIndex[level] >= 0) {\n break;\n }\n }\n for (; level > 0; level--) {\n this.#nodeQueue[level - 1] = (\n this.#nodeQueue[level][this.#nodeIndex[level]] as BNodeInternal<K>\n ).children;\n this.#nodeIndex[level - 1] = this.#nodeQueue[level - 1].length - 1;\n }\n this.#leaf = this.#nodeQueue[0][this.#nodeIndex[0]];\n this.#i = this.#leaf.keys.length;\n }\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\nfunction valuesFrom<K>(\n root: BNode<K>,\n comparator: Comparator<K>,\n lowestKey: K | undefined,\n inclusive: boolean,\n): IterableIterator<K> {\n const info = findPath(lowestKey, root, comparator);\n if (info === undefined) {\n return iterator<K>(() => ({done: true, value: undefined}));\n }\n\n let [nodeQueue, nodeIndex, leaf] = info;\n let i =\n lowestKey === undefined\n ? -1\n : indexOf(lowestKey, leaf.keys, 0, comparator) - 1;\n\n if (\n !inclusive &&\n lowestKey !== undefined &&\n // +1 because we did -1 above.\n i + 1 < leaf.keys.length &&\n comparator(leaf.keys[i + 1], lowestKey) === 0\n ) {\n i++;\n }\n\n return new BTreeForwardIterator(nodeQueue, nodeIndex, leaf, i);\n}\n\nfunction valuesFromReversed<K>(\n maxKey: K | undefined,\n root: BNode<K>,\n comparator: Comparator<K>,\n highestKey: K | undefined,\n inclusive: boolean,\n): IterableIterator<K> {\n if (highestKey === undefined) {\n highestKey = maxKey;\n if (highestKey === undefined) {\n return iterator<K>(() => ({done: true, value: undefined}));\n } // collection is empty\n }\n let [nodeQueue, nodeIndex, leaf] =\n findPath(highestKey, root, comparator) ||\n findPath(maxKey, root, comparator)!;\n assert(\n !nodeQueue[0] || leaf === nodeQueue[0][nodeIndex[0]],\n 'BTreeSet: leaf node mismatch in iteration',\n );\n let i = indexOf(highestKey, leaf.keys, 0, comparator);\n if (\n inclusive &&\n i < leaf.keys.length &&\n comparator(leaf.keys[i], highestKey) <= 0\n ) {\n i++;\n }\n\n return new BTreeReverseIterator(nodeQueue, nodeIndex, leaf, i);\n}\n\nfunction findPath<K>(\n key: K | undefined,\n root: BNode<K>,\n comparator: Comparator<K>,\n): [nodeQueue: BNode<K>[][], nodeIndex: number[], leaf: BNode<K>] | undefined {\n let nextNode = root;\n const nodeQueue: BNode<K>[][] = [];\n const nodeIndex: number[] = [];\n\n if (nextNode.isInternal()) {\n for (let d = 0; nextNode.isInternal(); d++) {\n nodeQueue[d] = nextNode.children;\n nodeIndex[d] =\n key === undefined ? 0 : indexOf(key, nextNode.keys, 0, comparator);\n if (nodeIndex[d] >= nodeQueue[d].length) return; // first key > maxKey()\n nextNode = nodeQueue[d][nodeIndex[d]];\n }\n nodeQueue.reverse();\n nodeIndex.reverse();\n }\n return [nodeQueue, nodeIndex, nextNode];\n}\n\nfunction iterator<T>(next: () => IteratorResult<T>): IterableIterator<T> {\n return {\n next,\n [Symbol.iterator]() {\n return this;\n },\n };\n}\n\n/** Leaf node / base class. **************************************************/\nclass BNode<K> {\n // If this is an internal node, _keys[i] is the highest key in children[i].\n keys: K[];\n // True if this node might be within multiple `BTree`s (or have multiple parents).\n // If so, it must be cloned before being mutated to avoid changing an unrelated tree.\n // This is transitive: if it's true, children are also shared even if `isShared!=true`\n // in those children. (Certain operations will propagate isShared=true to children.)\n isShared: true | undefined;\n\n constructor(keys: K[]) {\n this.keys = keys;\n this.isShared = undefined;\n }\n\n isInternal(): this is BNodeInternal<K> {\n return false;\n }\n\n maxKey() {\n // oxlint-disable-next-line typescript/no-non-null-assertion\n return this.keys.at(-1)!;\n }\n\n minKey(): K | undefined {\n return this.keys[0];\n }\n\n clone(): BNode<K> {\n return new BNode<K>(this.keys.slice(0));\n }\n\n get(key: K, tree: BTreeSet<K>): K | undefined {\n const i = indexOf(key, this.keys, -1, tree.comparator);\n return i < 0 ? undefined : this.keys[i];\n }\n\n has(key: K, tree: BTreeSet<K>): boolean {\n const i = indexOf(key, this.keys, -1, tree.comparator);\n return i >= 0 && i < this.keys.length;\n }\n\n set(key: K, tree: BTreeSet<K>): null | BNode<K> {\n let i = indexOf(key, this.keys, -1, tree.comparator);\n if (i < 0) {\n // key does not exist yet\n i = ~i;\n tree.size++;\n\n if (this.keys.length < MAX_NODE_SIZE) {\n this.keys.splice(i, 0, key);\n return null;\n }\n // This leaf node is full and must split\n const newRightSibling = this.splitOffRightSide();\n // oxlint-disable-next-line @typescript-eslint/no-this-alias\n let target: BNode<K> = this;\n if (i > this.keys.length) {\n i -= this.keys.length;\n target = newRightSibling;\n }\n // target.#insertInLeaf(i, key);\n target.keys.splice(i, 0, key);\n\n return newRightSibling;\n }\n\n // usually this is a no-op, but some users may wish to edit the key\n this.keys[i] = key;\n return null;\n }\n\n takeFromRight(rhs: BNode<K>) {\n this.keys.push(rhs.keys.shift()!);\n }\n\n takeFromLeft(lhs: BNode<K>) {\n this.keys.unshift(lhs.keys.pop()!);\n }\n\n splitOffRightSide(): BNode<K> {\n const half = this.keys.length >> 1;\n const keys = this.keys.splice(half);\n return new BNode<K>(keys);\n }\n\n delete(key: K, tree: BTreeSet<K>): boolean {\n const cmp = tree.comparator;\n const iLow = indexOf(key, this.keys, -1, cmp);\n const iHigh = iLow + 1;\n\n if (iLow < 0) {\n return false;\n }\n\n const {keys} = this;\n for (let i = iLow; i < iHigh; i++) {\n const key = keys[i];\n\n if (key !== keys[i] || this.isShared === true) {\n throw new Error('BTree illegally changed or cloned in delete');\n }\n\n this.keys.splice(i, 1);\n tree.size--;\n return true;\n }\n\n return false;\n }\n\n mergeSibling(rhs: BNode<K>, _: number) {\n this.keys.push(...rhs.keys);\n }\n}\n\n/** Internal node (non-leaf node) ********************************************/\nclass BNodeInternal<K> extends BNode<K> {\n // Note: conventionally B+ trees have one fewer key than the number of\n // children, but I find it easier to keep the array lengths equal: each\n // keys[i] caches the value of children[i].maxKey().\n children: BNode<K>[];\n\n /**\n * This does not mark `children` as shared, so it is the responsibility of the caller\n * to ensure children are either marked shared, or aren't included in another tree.\n */\n constructor(children: BNode<K>[], keys?: K[]) {\n if (!keys) {\n keys = [];\n for (let i = 0; i < children.length; i++) {\n keys[i] = children[i].maxKey();\n }\n }\n super(keys);\n this.children = children;\n }\n\n isInternal(): this is BNodeInternal<K> {\n return true;\n }\n\n clone(): BNode<K> {\n const children = this.children.slice(0);\n for (let i = 0; i < children.length; i++) {\n children[i].isShared = true;\n }\n return new BNodeInternal<K>(children, this.keys.slice(0));\n }\n\n minKey() {\n return this.children[0].minKey();\n }\n\n get(key: K, tree: BTreeSet<K>): K | undefined {\n const i = indexOf(key, this.keys, 0, tree.comparator);\n const {children} = this;\n return i < children.length ? children[i].get(key, tree) : undefined;\n }\n\n has(key: K, tree: BTreeSet<K>): boolean {\n const i = indexOf(key, this.keys, 0, tree.comparator);\n const {children} = this;\n return i < children.length ? children[i].has(key, tree) : false;\n }\n\n set(key: K, tree: BTreeSet<K>): null | BNode<K> {\n const c = this.children;\n const cmp = tree.comparator;\n let i = Math.min(indexOf(key, this.keys, 0, cmp), c.length - 1);\n let child = c[i];\n\n if (child.isShared) {\n c[i] = child = child.clone();\n }\n if (child.keys.length >= MAX_NODE_SIZE) {\n // child is full; inserting anything else will cause a split.\n // Shifting an item to the left or right sibling may avoid a split.\n // We can do a shift if the adjacent node is not full and if the\n // current key can still be placed in the same node after the shift.\n let other: BNode<K>;\n if (\n i > 0 &&\n (other = c[i - 1]).keys.length < MAX_NODE_SIZE &&\n cmp(child.keys[0], key) < 0\n ) {\n if (other.isShared) {\n c[i - 1] = other = other.clone();\n }\n other.takeFromRight(child);\n this.keys[i - 1] = other.maxKey();\n } else if (\n (other = c[i + 1]) !== undefined &&\n other.keys.length < MAX_NODE_SIZE &&\n cmp(child.maxKey(), key) < 0\n ) {\n if (other.isShared) c[i + 1] = other = other.clone();\n other.takeFromLeft(child);\n this.keys[i] = c[i].maxKey();\n }\n }\n\n const result = child.set(key, tree);\n this.keys[i] = child.maxKey();\n if (result === null) return null;\n\n // The child has split and `result` is a new right child... does it fit?\n if (this.keys.length < MAX_NODE_SIZE) {\n // yes\n this.insert(i + 1, result);\n return null;\n }\n // no, we must split also\n const newRightSibling = this.splitOffRightSide();\n // oxlint-disable-next-line @typescript-eslint/no-this-alias\n let target: BNodeInternal<K> = this;\n if (cmp(result.maxKey(), this.maxKey()) > 0) {\n target = newRightSibling;\n i -= this.keys.length;\n }\n target.insert(i + 1, result);\n return newRightSibling;\n }\n\n /**\n * Inserts `child` at index `i`.\n * This does not mark `child` as shared, so it is the responsibility of the caller\n * to ensure that either child is marked shared, or it is not included in another tree.\n */\n insert(i: number, child: BNode<K>) {\n this.children.splice(i, 0, child);\n this.keys.splice(i, 0, child.maxKey());\n }\n\n /**\n * Split this node.\n * Modifies this to remove the second half of the items, returning a separate node containing them.\n */\n splitOffRightSide() {\n const half = this.children.length >> 1;\n return new BNodeInternal<K>(\n this.children.splice(half),\n this.keys.splice(half),\n );\n }\n\n takeFromRight(rhs: BNode<K>) {\n this.keys.push(rhs.keys.shift()!);\n this.children.push((rhs as BNodeInternal<K>).children.shift()!);\n }\n\n takeFromLeft(lhs: BNode<K>) {\n this.keys.unshift(lhs.keys.pop()!);\n this.children.unshift((lhs as BNodeInternal<K>).children.pop()!);\n }\n\n delete(key: K, tree: BTreeSet<K>): boolean {\n const cmp = tree.comparator;\n const {keys} = this;\n const {children} = this;\n let iLow = indexOf(key, this.keys, 0, cmp);\n let i = iLow;\n const iHigh = Math.min(iLow, keys.length - 1);\n if (i <= iHigh) {\n try {\n if (children[i].isShared) {\n children[i] = children[i].clone();\n }\n const result = children[i].delete(key, tree);\n // Note: if children[i] is empty then keys[i]=undefined.\n // This is an invalid state, but it is fixed below.\n keys[i] = children[i].maxKey();\n return result;\n } finally {\n // Deletions may have occurred, so look for opportunities to merge nodes.\n const half = MAX_NODE_SIZE >> 1;\n if (iLow > 0) iLow--;\n for (i = iHigh; i >= iLow; i--) {\n if (children[i].keys.length <= half) {\n if (children[i].keys.length !== 0) {\n this.tryMerge(i, MAX_NODE_SIZE);\n } else {\n // child is empty! delete it!\n keys.splice(i, 1);\n children.splice(i, 1);\n }\n }\n }\n }\n }\n return false;\n }\n\n /** Merges child i with child i+1 if their combined size is not too large */\n tryMerge(i: number, maxSize: number): boolean {\n const {children} = this;\n if (i >= 0 && i + 1 < children.length) {\n if (children[i].keys.length + children[i + 1].keys.length <= maxSize) {\n if (\n children[i].isShared\n ) // cloned already UNLESS i is outside scan range\n {\n children[i] = children[i].clone();\n }\n children[i].mergeSibling(children[i + 1], maxSize);\n children.splice(i + 1, 1);\n this.keys.splice(i + 1, 1);\n this.keys[i] = children[i].maxKey();\n return true;\n }\n }\n return false;\n }\n\n /**\n * Move children from `rhs` into this.\n * `rhs` must be part of this tree, and be removed from it after this call\n * (otherwise isShared for its children could be incorrect).\n */\n mergeSibling(rhs: BNode<K>, maxNodeSize: number) {\n // assert !this.isShared;\n const oldLength = this.keys.length;\n this.keys.push(...rhs.keys);\n const rhsChildren = (rhs as unknown as BNodeInternal<K>).children;\n this.children.push(...rhsChildren);\n\n if (rhs.isShared && !this.isShared) {\n // All children of a shared node are implicitly shared, and since their new\n // parent is not shared, they must now be explicitly marked as shared.\n for (let i = 0; i < rhsChildren.length; i++) {\n rhsChildren[i].isShared = true;\n }\n }\n\n // If our children are themselves almost empty due to a mass-delete,\n // they may need to be merged too (but only the oldLength-1 and its\n // right sibling should need this).\n this.tryMerge(oldLength - 1, maxNodeSize);\n }\n}\n\n// If key not found, returns i^failXor where i is the insertion index.\n// Callers that don't care whether there was a match will set failXor=0.\nfunction indexOf<K>(\n key: K,\n keys: K[],\n failXor: number,\n comparator: Comparator<K>,\n): number {\n let lo = 0;\n let hi = keys.length;\n let mid = hi >> 1;\n while (lo < hi) {\n const c = comparator(keys[mid], key);\n if (c < 0) {\n lo = mid + 1;\n } else if (c > 0) {\n // key < keys[mid]\n hi = mid;\n } else if (c === 0) {\n return mid;\n } else {\n // c is NaN or otherwise invalid\n if (key === key) {\n // at least the search key is not NaN\n return keys.length;\n }\n throw new Error('NaN was used as a key');\n }\n mid = (lo + hi) >> 1;\n }\n return mid ^ failXor;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nconst emptyLeaf = new BNode<any>([]);\nemptyLeaf.isShared = true;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","names":[
|
|
1
|
+
{"version":3,"file":"cache.js","names":[],"sources":["../../../../shared/src/cache.ts"],"sourcesContent":["/**\n * Stores values with an expiration time at time of insertion.\n * Does not update the expiration time on retrieval.\n * Values are automatically removed from the cache after the TTL expires.\n * The cache is cleaned up periodically based on the TTL so it does\n * not grow indefinitely. The cleanup interval is started lazily on the\n * first `set()` and is `unref`ed (where supported) so it never keeps\n * the process alive.\n *\n * Call `destroy()` to stop the cleanup interval and release the cached\n * values. `destroy()` is idempotent, and a destroyed cache is inert:\n * `get()` always misses, `set()` is a no-op, and the cleanup interval\n * is never restarted.\n */\nexport class TimedCache<T> {\n readonly #cache: Map<string, {value: T; expiresAt: number}>;\n readonly #ttlMs: number;\n #intervalHandle: ReturnType<typeof setInterval> | undefined;\n #destroyed = false;\n\n constructor(ttlMs: number) {\n this.#cache = new Map();\n this.#ttlMs = ttlMs;\n }\n\n set(key: string, value: T): void {\n if (this.#destroyed) {\n return;\n }\n if (this.#intervalHandle === undefined) {\n this.#intervalHandle = setInterval(\n () => this.#removeExpired(),\n this.#ttlMs * 2,\n );\n // In browsers setInterval returns a number, which has no unref.\n this.#intervalHandle.unref?.();\n }\n this.#cache.set(key, {value, expiresAt: Date.now() + this.#ttlMs});\n }\n\n get(key: string): T | undefined {\n const entry = this.#cache.get(key);\n if (entry === undefined || entry.expiresAt < Date.now()) {\n this.#cache.delete(key);\n return undefined;\n }\n return entry.value;\n }\n\n #removeExpired(): void {\n const now = Date.now();\n for (const [key, entry] of this.#cache.entries()) {\n if (entry.expiresAt < now) {\n this.#cache.delete(key);\n }\n }\n }\n\n destroy(): void {\n this.#destroyed = true;\n if (this.#intervalHandle !== undefined) {\n clearInterval(this.#intervalHandle);\n this.#intervalHandle = undefined;\n }\n this.#cache.clear();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAcA,IAAa,aAAb,MAA2B;CACzB;CACA;CACA;CACA,aAAa;CAEb,YAAY,OAAe;EACzB,KAAK,yBAAS,IAAI,IAAI;EACtB,KAAK,SAAS;CAChB;CAEA,IAAI,KAAa,OAAgB;EAC/B,IAAI,KAAK,YACP;EAEF,IAAI,KAAK,oBAAoB,KAAA,GAAW;GACtC,KAAK,kBAAkB,kBACf,KAAK,eAAe,GAC1B,KAAK,SAAS,CAChB;GAEA,KAAK,gBAAgB,QAAQ;EAC/B;EACA,KAAK,OAAO,IAAI,KAAK;GAAC;GAAO,WAAW,KAAK,IAAI,IAAI,KAAK;EAAM,CAAC;CACnE;CAEA,IAAI,KAA4B;EAC9B,MAAM,QAAQ,KAAK,OAAO,IAAI,GAAG;EACjC,IAAI,UAAU,KAAA,KAAa,MAAM,YAAY,KAAK,IAAI,GAAG;GACvD,KAAK,OAAO,OAAO,GAAG;GACtB;EACF;EACA,OAAO,MAAM;CACf;CAEA,iBAAuB;EACrB,MAAM,MAAM,KAAK,IAAI;EACrB,KAAK,MAAM,CAAC,KAAK,UAAU,KAAK,OAAO,QAAQ,GAC7C,IAAI,MAAM,YAAY,KACpB,KAAK,OAAO,OAAO,GAAG;CAG5B;CAEA,UAAgB;EACd,KAAK,aAAa;EAClB,IAAI,KAAK,oBAAoB,KAAA,GAAW;GACtC,cAAc,KAAK,eAAe;GAClC,KAAK,kBAAkB,KAAA;EACzB;EACA,KAAK,OAAO,MAAM;CACpB;AACF"}
|
package/out/shared/src/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-key-map.js","names":[
|
|
1
|
+
{"version":3,"file":"custom-key-map.js","names":[],"sources":["../../../../shared/src/custom-key-map.ts"],"sourcesContent":["type Primitive = undefined | null | boolean | string | number | symbol | bigint;\n\n/**\n * A {@link Map} that uses a custom key transformation function to convert keys\n * to a primitive type that can be used as a {@link Map} key.\n *\n * This allows for using objects as keys in a {@link Map} without worrying about\n * reference equality.\n */\nexport class CustomKeyMap<K, V> {\n readonly [Symbol.toStringTag] = 'CustomKeyMap';\n readonly #toKey: (key: K) => Primitive;\n readonly #map = new Map<Primitive, readonly [K, V]>();\n\n constructor(\n toKey: (key: K) => Primitive,\n iterable?: Iterable<readonly [K, V]> | null,\n ) {\n this.#toKey = toKey;\n if (iterable) {\n for (const [key, value] of iterable ?? []) {\n this.#map.set(toKey(key), [key, value]);\n }\n }\n }\n\n clear(): void {\n this.#map.clear();\n }\n\n delete(key: K): boolean {\n return this.#map.delete(this.#toKey(key));\n }\n\n forEach(\n callbackfn: (value: V, key: K, map: CustomKeyMap<K, V>) => void,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n thisArg?: any,\n ): void {\n for (const [key, value] of this.#map.values()) {\n callbackfn.call(thisArg, value, key, this);\n }\n }\n\n get(key: K): V | undefined {\n return this.#map.get(this.#toKey(key))?.[1];\n }\n\n has(key: K): boolean {\n return this.#map.has(this.#toKey(key));\n }\n\n set(key: K, value: V): this {\n this.#map.set(this.#toKey(key), [key, value]);\n return this;\n }\n\n get size(): number {\n return this.#map.size;\n }\n\n *entries(): MapIterator<[K, V]> {\n for (const entry of this.#map.values()) {\n yield entry.slice(0, 2) as [K, V];\n }\n }\n\n *keys(): MapIterator<K> {\n for (const entry of this.#map.values()) {\n yield entry[0];\n }\n }\n\n *values(): MapIterator<V> {\n for (const entry of this.#map.values()) {\n yield entry[1];\n }\n }\n\n [Symbol.iterator](): MapIterator<[K, V]> {\n return this.entries();\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAa,eAAb,MAAgC;CAC9B,CAAU,OAAO,eAAe;CAChC;CACA,uBAAgB,IAAI,IAAgC;CAEpD,YACE,OACA,UACA;EACA,KAAK,SAAS;EACd,IAAI,UACF,KAAK,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GACtC,KAAK,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC;CAG5C;CAEA,QAAc;EACZ,KAAK,KAAK,MAAM;CAClB;CAEA,OAAO,KAAiB;EACtB,OAAO,KAAK,KAAK,OAAO,KAAK,OAAO,GAAG,CAAC;CAC1C;CAEA,QACE,YAEA,SACM;EACN,KAAK,MAAM,CAAC,KAAK,UAAU,KAAK,KAAK,OAAO,GAC1C,WAAW,KAAK,SAAS,OAAO,KAAK,IAAI;CAE7C;CAEA,IAAI,KAAuB;EACzB,OAAO,KAAK,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC,CAAC,GAAG;CAC3C;CAEA,IAAI,KAAiB;EACnB,OAAO,KAAK,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC;CACvC;CAEA,IAAI,KAAQ,OAAgB;EAC1B,KAAK,KAAK,IAAI,KAAK,OAAO,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC;EAC5C,OAAO;CACT;CAEA,IAAI,OAAe;EACjB,OAAO,KAAK,KAAK;CACnB;CAEA,CAAC,UAA+B;EAC9B,KAAK,MAAM,SAAS,KAAK,KAAK,OAAO,GACnC,MAAM,MAAM,MAAM,GAAG,CAAC;CAE1B;CAEA,CAAC,OAAuB;EACtB,KAAK,MAAM,SAAS,KAAK,KAAK,OAAO,GACnC,MAAM,MAAM;CAEhB;CAEA,CAAC,SAAyB;EACxB,KAAK,MAAM,SAAS,KAAK,KAAK,OAAO,GACnC,MAAM,MAAM;CAEhB;CAEA,CAAC,OAAO,YAAiC;EACvC,OAAO,KAAK,QAAQ;CACtB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-key-set.js","names":[
|
|
1
|
+
{"version":3,"file":"custom-key-set.js","names":[],"sources":["../../../../shared/src/custom-key-set.ts"],"sourcesContent":["type Primitive = undefined | null | boolean | string | number | symbol | bigint;\n\n/**\n * A {@link Set} that uses a custom value transformation function to convert values\n * to a primitive type that can be used as a {@link Set} value.\n *\n * This allows for using objects as values in a {@link Set} without worrying about\n * reference equality.\n */\n\nexport class CustomKeySet<V> {\n readonly [Symbol.toStringTag] = 'CustomKeySet';\n readonly #toKey: (value: V) => Primitive;\n readonly #map = new Map<Primitive, V>();\n\n constructor(toKey: (value: V) => Primitive, iterable?: Iterable<V> | null) {\n this.#toKey = toKey;\n if (iterable) {\n for (const value of iterable ?? []) {\n this.#map.set(toKey(value), value);\n }\n }\n }\n\n add(value: V): this {\n this.#map.set(this.#toKey(value), value);\n return this;\n }\n\n clear(): void {\n this.#map.clear();\n }\n\n delete(value: V): boolean {\n return this.#map.delete(this.#toKey(value));\n }\n\n forEach(\n callbackfn: (value: V, value2: V, set: CustomKeySet<V>) => void,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n thisArg?: any,\n ): void {\n this.#map.forEach(value => {\n callbackfn.call(thisArg, value, value, this);\n });\n }\n\n has(value: V): boolean {\n return this.#map.has(this.#toKey(value));\n }\n\n get size(): number {\n return this.#map.size;\n }\n\n *entries(): IterableIterator<[V, V]> {\n for (const value of this.#map.values()) {\n yield [value, value];\n }\n }\n\n keys(): IterableIterator<V> {\n return this.#map.values();\n }\n\n values(): IterableIterator<V> {\n return this.#map.values();\n }\n\n [Symbol.iterator](): IterableIterator<V> {\n return this.#map.values();\n }\n}\n"],"mappings":";;;;;;;;AAUA,IAAa,eAAb,MAA6B;CAC3B,CAAU,OAAO,eAAe;CAChC;CACA,uBAAgB,IAAI,IAAkB;CAEtC,YAAY,OAAgC,UAA+B;EACzE,KAAK,SAAS;EACd,IAAI,UACF,KAAK,MAAM,SAAS,YAAY,CAAC,GAC/B,KAAK,KAAK,IAAI,MAAM,KAAK,GAAG,KAAK;CAGvC;CAEA,IAAI,OAAgB;EAClB,KAAK,KAAK,IAAI,KAAK,OAAO,KAAK,GAAG,KAAK;EACvC,OAAO;CACT;CAEA,QAAc;EACZ,KAAK,KAAK,MAAM;CAClB;CAEA,OAAO,OAAmB;EACxB,OAAO,KAAK,KAAK,OAAO,KAAK,OAAO,KAAK,CAAC;CAC5C;CAEA,QACE,YAEA,SACM;EACN,KAAK,KAAK,SAAQ,UAAS;GACzB,WAAW,KAAK,SAAS,OAAO,OAAO,IAAI;EAC7C,CAAC;CACH;CAEA,IAAI,OAAmB;EACrB,OAAO,KAAK,KAAK,IAAI,KAAK,OAAO,KAAK,CAAC;CACzC;CAEA,IAAI,OAAe;EACjB,OAAO,KAAK,KAAK;CACnB;CAEA,CAAC,UAAoC;EACnC,KAAK,MAAM,SAAS,KAAK,KAAK,OAAO,GACnC,MAAM,CAAC,OAAO,KAAK;CAEvB;CAEA,OAA4B;EAC1B,OAAO,KAAK,KAAK,OAAO;CAC1B;CAEA,SAA8B;EAC5B,OAAO,KAAK,KAAK,OAAO;CAC1B;CAEA,CAAC,OAAO,YAAiC;EACvC,OAAO,KAAK,KAAK,OAAO;CAC1B;AACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { JSONValue, ReadonlyJSONValue } from './json.ts';
|
|
2
2
|
export declare function deepClone(value: ReadonlyJSONValue): JSONValue;
|
|
3
|
-
export declare function internalDeepClone(value: ReadonlyJSONValue, seen: Array<ReadonlyJSONValue>): JSONValue;
|
|
4
3
|
//# sourceMappingURL=deep-clone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-clone.d.ts","sourceRoot":"","sources":["../../../../shared/src/deep-clone.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAE5D,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAG7D
|
|
1
|
+
{"version":3,"file":"deep-clone.d.ts","sourceRoot":"","sources":["../../../../shared/src/deep-clone.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAE5D,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAG7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-clone.js","names":[],"sources":["../../../../shared/src/deep-clone.ts"],"sourcesContent":["import {hasOwn} from './has-own.ts';\nimport type {JSONValue, ReadonlyJSONValue} from './json.ts';\n\nexport function deepClone(value: ReadonlyJSONValue): JSONValue {\n const seen: Array<ReadonlyJSONValue> = [];\n return internalDeepClone(value, seen);\n}\n\
|
|
1
|
+
{"version":3,"file":"deep-clone.js","names":[],"sources":["../../../../shared/src/deep-clone.ts"],"sourcesContent":["import {hasOwn} from './has-own.ts';\nimport type {JSONValue, ReadonlyJSONValue} from './json.ts';\n\nexport function deepClone(value: ReadonlyJSONValue): JSONValue {\n const seen: Array<ReadonlyJSONValue> = [];\n return internalDeepClone(value, seen);\n}\n\nfunction internalDeepClone(\n value: ReadonlyJSONValue,\n seen: Array<ReadonlyJSONValue>,\n): JSONValue {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'string':\n case 'undefined':\n return value;\n case 'object': {\n if (value === null) {\n return null;\n }\n if (seen.includes(value)) {\n throw new Error('Cyclic object');\n }\n seen.push(value);\n if (Array.isArray(value)) {\n const rv = value.map(v => internalDeepClone(v, seen));\n seen.pop();\n return rv;\n }\n\n const obj: JSONValue = {};\n\n for (const k in value) {\n if (hasOwn(value, k)) {\n const v = (value as Record<string, ReadonlyJSONValue>)[k];\n if (v !== undefined) {\n obj[k] = internalDeepClone(v, seen);\n }\n }\n }\n seen.pop();\n return obj;\n }\n\n default:\n throw new Error(`Invalid type: ${typeof value}`);\n }\n}\n"],"mappings":";;AAGA,SAAgB,UAAU,OAAqC;CAE7D,OAAO,kBAAkB,OAAO,CAAA,CAAI;AACtC;AAEA,SAAS,kBACP,OACA,MACW;CACX,QAAQ,OAAO,OAAf;EACE,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,aACH,OAAO;EACT,KAAK,UAAU;GACb,IAAI,UAAU,MACZ,OAAO;GAET,IAAI,KAAK,SAAS,KAAK,GACrB,MAAM,IAAI,MAAM,eAAe;GAEjC,KAAK,KAAK,KAAK;GACf,IAAI,MAAM,QAAQ,KAAK,GAAG;IACxB,MAAM,KAAK,MAAM,KAAI,MAAK,kBAAkB,GAAG,IAAI,CAAC;IACpD,KAAK,IAAI;IACT,OAAO;GACT;GAEA,MAAM,MAAiB,CAAC;GAExB,KAAK,MAAM,KAAK,OACd,IAAI,OAAO,OAAO,CAAC,GAAG;IACpB,MAAM,IAAK,MAA4C;IACvD,IAAI,MAAM,KAAA,GACR,IAAI,KAAK,kBAAkB,GAAG,IAAI;GAEtC;GAEF,KAAK,IAAI;GACT,OAAO;EACT;EAEA,SACE,MAAM,IAAI,MAAM,iBAAiB,OAAO,OAAO;CACnD;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolver } from "
|
|
1
|
+
import { resolver } from "./resolver.js";
|
|
2
2
|
//#region ../shared/src/document-visible.ts
|
|
3
3
|
function getDocumentVisibilityWatcher(doc, hiddenIntervalMS, signal) {
|
|
4
4
|
return doc ? new DocumentVisibilityWatcherImpl(doc, hiddenIntervalMS, signal) : new DocumentVisibilityWatcherNoDoc();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-visible.js","names":[
|
|
1
|
+
{"version":3,"file":"document-visible.js","names":[],"sources":["../../../../shared/src/document-visible.ts"],"sourcesContent":["import {resolver} from './resolver.ts';\n\ntype PartialDocument = Pick<\n Document,\n 'visibilityState' | 'addEventListener' | 'removeEventListener'\n>;\n\nexport function getDocumentVisibilityWatcher(\n doc: PartialDocument | undefined,\n hiddenIntervalMS: number,\n signal: AbortSignal,\n): DocumentVisibilityWatcher {\n return doc\n ? new DocumentVisibilityWatcherImpl(doc, hiddenIntervalMS, signal)\n : new DocumentVisibilityWatcherNoDoc();\n}\n\nexport interface DocumentVisibilityWatcher {\n readonly visibilityState: DocumentVisibilityState;\n waitForVisible(): Promise<unknown>;\n waitForHidden(): Promise<unknown>;\n}\n\nclass DocumentVisibilityWatcherImpl implements DocumentVisibilityWatcher {\n readonly #doc: PartialDocument;\n readonly #hiddenIntervalMS: number;\n #timeoutID: ReturnType<typeof setTimeout> | 0 = 0;\n\n // This trails doc.visibilityState by hiddenIntervalMS when being hidden. This\n // is because we want to wait for the tab to be hidden for a while before\n // considering as hidden.\n visibilityState: DocumentVisibilityState;\n\n readonly #promises = new Set<{\n resolve: () => void;\n state: DocumentVisibilityState;\n }>();\n\n constructor(\n doc: PartialDocument,\n hiddenIntervalMS: number,\n signal: AbortSignal,\n ) {\n this.#doc = doc;\n this.#hiddenIntervalMS = hiddenIntervalMS;\n this.visibilityState = doc.visibilityState;\n // Safari got support for abort signal in addEventListener in version\n // 15 (Released 2021-09-20)\n this.#doc.addEventListener('visibilitychange', this.#onVisibilityChange, {\n signal,\n });\n }\n\n #onVisibilityChange = () => {\n if (this.#doc.visibilityState === 'visible') {\n clearTimeout(this.#timeoutID);\n this.#setVisibilityState('visible');\n } else {\n this.#timeoutID = setTimeout(() => {\n this.#setVisibilityState('hidden');\n }, this.#hiddenIntervalMS);\n }\n };\n\n #setVisibilityState(visibilityState: DocumentVisibilityState) {\n if (visibilityState === this.visibilityState) {\n return;\n }\n this.visibilityState = visibilityState;\n for (const entry of this.#promises) {\n const {resolve, state} = entry;\n if (state === visibilityState) {\n resolve();\n this.#promises.delete(entry);\n }\n }\n }\n\n waitForVisible(): Promise<unknown> {\n return this.#waitFor('visible');\n }\n\n waitForHidden(): Promise<unknown> {\n return this.#waitFor('hidden');\n }\n\n #waitFor(state: DocumentVisibilityState): Promise<unknown> {\n if (this.visibilityState === state) {\n return Promise.resolve();\n }\n\n const {promise, resolve} = resolver();\n this.#promises.add({resolve, state});\n return promise;\n }\n}\n\nconst resolvedPromise = Promise.resolve();\nconst promiseThatNeverResolves = new Promise(() => undefined);\n\nclass DocumentVisibilityWatcherNoDoc implements DocumentVisibilityWatcher {\n readonly visibilityState: DocumentVisibilityState = 'visible';\n waitForVisible(): Promise<unknown> {\n return resolvedPromise;\n }\n\n waitForHidden(): Promise<unknown> {\n return promiseThatNeverResolves;\n }\n}\n"],"mappings":";;AAOA,SAAgB,6BACd,KACA,kBACA,QAC2B;CAC3B,OAAO,MACH,IAAI,8BAA8B,KAAK,kBAAkB,MAAM,IAC/D,IAAI,+BAA+B;AACzC;AAQA,IAAM,gCAAN,MAAyE;CACvE;CACA;CACA,aAAgD;CAKhD;CAEA,4BAAqB,IAAI,IAGtB;CAEH,YACE,KACA,kBACA,QACA;EACA,KAAK,OAAO;EACZ,KAAK,oBAAoB;EACzB,KAAK,kBAAkB,IAAI;EAG3B,KAAK,KAAK,iBAAiB,oBAAoB,KAAK,qBAAqB,EACvE,OACF,CAAC;CACH;CAEA,4BAA4B;EAC1B,IAAI,KAAK,KAAK,oBAAoB,WAAW;GAC3C,aAAa,KAAK,UAAU;GAC5B,KAAK,oBAAoB,SAAS;EACpC,OACE,KAAK,aAAa,iBAAiB;GACjC,KAAK,oBAAoB,QAAQ;EACnC,GAAG,KAAK,iBAAiB;CAE7B;CAEA,oBAAoB,iBAA0C;EAC5D,IAAI,oBAAoB,KAAK,iBAC3B;EAEF,KAAK,kBAAkB;EACvB,KAAK,MAAM,SAAS,KAAK,WAAW;GAClC,MAAM,EAAC,SAAS,UAAS;GACzB,IAAI,UAAU,iBAAiB;IAC7B,QAAQ;IACR,KAAK,UAAU,OAAO,KAAK;GAC7B;EACF;CACF;CAEA,iBAAmC;EACjC,OAAO,KAAK,SAAS,SAAS;CAChC;CAEA,gBAAkC;EAChC,OAAO,KAAK,SAAS,QAAQ;CAC/B;CAEA,SAAS,OAAkD;EACzD,IAAI,KAAK,oBAAoB,OAC3B,OAAO,QAAQ,QAAQ;EAGzB,MAAM,EAAC,SAAS,YAAW,SAAS;EACpC,KAAK,UAAU,IAAI;GAAC;GAAS;EAAK,CAAC;EACnC,OAAO;CACT;AACF;AAEA,IAAM,kBAAkB,QAAQ,QAAQ;AACxC,IAAM,2BAA2B,IAAI,cAAc,KAAA,CAAS;AAE5D,IAAM,iCAAN,MAA0E;CACxE,kBAAoD;CACpD,iBAAmC;EACjC,OAAO;CACT;CAEA,gBAAkC;EAChC,OAAO;CACT;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotenv.js","names":[],"sources":["../../../../shared/src/dotenv.ts"],"sourcesContent":["import {config as dotenvxConfig} from '@dotenvx/dotenvx';\n\n// Import env vars from .env file if present but don't whine if not present.\n// Also no free marketing for dotenvx.\ndotenvxConfig({\n ignore: ['MISSING_ENV_FILE'],\n quiet: true,\n});\n"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"dotenv.js","names":["dotenvxConfig"],"sources":["../../../../shared/src/dotenv.ts"],"sourcesContent":["import {config as dotenvxConfig} from '@dotenvx/dotenvx';\n\n// Import env vars from .env file if present but don't whine if not present.\n// Also no free marketing for dotenvx.\ndotenvxConfig({\n ignore: ['MISSING_ENV_FILE'],\n quiet: true,\n});\n"],"mappings":";;AAIAA,OAAc;CACZ,QAAQ,CAAC,kBAAkB;CAC3B,OAAO;AACT,CAAC"}
|
package/out/shared/src/error.js
CHANGED
|
@@ -41,7 +41,7 @@ function getErrorMessageInternal(error, seen) {
|
|
|
41
41
|
*/
|
|
42
42
|
function getErrorCauses(error) {
|
|
43
43
|
const causes = [];
|
|
44
|
-
const seen = new Set([error]);
|
|
44
|
+
const seen = /* @__PURE__ */ new Set([error]);
|
|
45
45
|
let current = error;
|
|
46
46
|
for (;;) {
|
|
47
47
|
const cause = readCause(current);
|