@rocicorp/zero 1.6.0-canary.10 → 1.6.0-canary.12
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/_rolldown/runtime.js +1 -12
- package/out/analyze-query/src/analyze-cli.js +288 -0
- package/out/analyze-query/src/analyze-cli.js.map +1 -0
- package/out/analyze-query/src/bin-analyze.js.map +1 -0
- package/out/analyze-query/src/bin-transform.js.map +1 -0
- package/out/ast-to-zql/src/ast-to-zql.js.map +1 -0
- package/out/ast-to-zql/src/bin.js.map +1 -0
- package/out/ast-to-zql/src/format.js.map +1 -0
- package/out/datadog/src/datadog-log-sink.js.map +1 -0
- package/out/otel/src/enabled.js.map +1 -0
- package/out/otel/src/log-options.js.map +1 -0
- package/out/otel/src/maybe-time.js.map +1 -0
- package/out/otel/src/span.js.map +1 -0
- package/out/otel/src/version.js.map +1 -0
- package/out/replicache/src/async-iterable-to-array.js.map +1 -0
- package/out/replicache/src/bg-interval.js.map +1 -0
- package/out/replicache/src/btree/diff.js.map +1 -0
- package/out/replicache/src/btree/node.js.map +1 -0
- package/out/replicache/src/btree/read.js.map +1 -0
- package/out/replicache/src/btree/splice.js.map +1 -0
- package/out/replicache/src/btree/write.js.map +1 -0
- package/out/replicache/src/call-default-fetch.js.map +1 -0
- package/out/replicache/src/connection-loop-delegates.js.map +1 -0
- package/out/replicache/src/connection-loop.js.map +1 -0
- package/out/replicache/src/cookies.js.map +1 -0
- package/out/replicache/src/dag/chunk.js.map +1 -0
- package/out/replicache/src/dag/gc.js.map +1 -0
- package/out/replicache/src/dag/key.js.map +1 -0
- package/out/replicache/src/dag/lazy-store.js.map +1 -0
- package/out/replicache/src/dag/store-impl.js.map +1 -0
- package/out/replicache/src/dag/store.js.map +1 -0
- package/out/replicache/src/dag/visitor.js.map +1 -0
- package/out/replicache/src/db/commit.js.map +1 -0
- package/out/replicache/src/db/index.js.map +1 -0
- package/out/replicache/src/db/read.js.map +1 -0
- package/out/replicache/src/db/rebase.js.map +1 -0
- package/out/replicache/src/db/write.js.map +1 -0
- package/out/replicache/src/deleted-clients.js.map +1 -0
- package/out/replicache/src/error-responses.js.map +1 -0
- package/out/replicache/src/frozen-json.js.map +1 -0
- package/out/replicache/src/get-default-puller.js.map +1 -0
- package/out/replicache/src/get-default-pusher.js.map +1 -0
- package/out/replicache/src/get-kv-store-provider.js.map +1 -0
- package/out/replicache/src/hash.js.map +1 -0
- package/out/replicache/src/http-request-info.js.map +1 -0
- package/out/replicache/src/index-defs.js.map +1 -0
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
- package/out/replicache/src/kv/idb-store.js.map +1 -0
- package/out/replicache/src/kv/mem-store.js.map +1 -0
- package/out/replicache/src/kv/op-sqlite/store.js.map +1 -0
- package/out/replicache/src/kv/op-sqlite/types.js.map +1 -0
- package/out/replicache/src/kv/read-impl.js.map +1 -0
- package/out/replicache/src/kv/sqlite-store.js.map +1 -0
- package/out/replicache/src/kv/throw-if-closed.js.map +1 -0
- package/out/replicache/src/kv/write-impl-base.js.map +1 -0
- package/out/replicache/src/kv/write-impl.js.map +1 -0
- package/out/replicache/src/lazy.js.map +1 -0
- package/out/replicache/src/log-options.js.map +1 -0
- package/out/replicache/src/make-idb-name.js.map +1 -0
- package/out/replicache/src/new-client-channel.js.map +1 -0
- package/out/replicache/src/on-persist-channel.js.map +1 -0
- package/out/replicache/src/patch-operation.js.map +1 -0
- package/out/replicache/src/pending-mutations.js.map +1 -0
- package/out/replicache/src/persist/client-gc.js.map +1 -0
- package/out/replicache/src/persist/client-group-gc.js.map +1 -0
- package/out/replicache/src/persist/client-groups.js.map +1 -0
- package/out/replicache/src/persist/clients.js.map +1 -0
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
- package/out/replicache/src/persist/heartbeat.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
- package/out/replicache/src/persist/make-client-id.js.map +1 -0
- package/out/replicache/src/persist/persist.js.map +1 -0
- package/out/replicache/src/persist/refresh.js.map +1 -0
- package/out/replicache/src/process-scheduler.js.map +1 -0
- package/out/replicache/src/pusher.js.map +1 -0
- package/out/replicache/src/replicache-impl.js.map +1 -0
- package/out/replicache/src/report-error.js.map +1 -0
- package/out/replicache/src/request-idle.js.map +1 -0
- package/out/replicache/src/scan-iterator.js.map +1 -0
- package/out/replicache/src/scan-options.js.map +1 -0
- package/out/replicache/src/set-interval-with-signal.js.map +1 -0
- package/out/replicache/src/subscriptions.js.map +1 -0
- package/out/replicache/src/sync/diff.js.map +1 -0
- package/out/replicache/src/sync/ids.js.map +1 -0
- package/out/replicache/src/sync/patch.js.map +1 -0
- package/out/replicache/src/sync/pull-error.js.map +1 -0
- package/out/replicache/src/sync/pull.js.map +1 -0
- package/out/replicache/src/sync/push.js.map +1 -0
- package/out/replicache/src/sync/request-id.js.map +1 -0
- package/out/replicache/src/sync/sync-head-name.js.map +1 -0
- package/out/replicache/src/to-error.js.map +1 -0
- package/out/replicache/src/transaction-closed-error.js.map +1 -0
- package/out/replicache/src/transactions.js.map +1 -0
- package/out/replicache/src/version.js.map +1 -0
- package/out/replicache/src/with-transactions.js.map +1 -0
- package/out/shared/src/abort-error.js.map +1 -0
- package/out/shared/src/arrays.js.map +1 -0
- package/out/shared/src/asserts.js.map +1 -0
- package/out/shared/src/bigint-json.js.map +1 -0
- package/out/shared/src/binary-search.js.map +1 -0
- package/out/shared/src/broadcast-channel.js.map +1 -0
- package/out/shared/src/browser-env.js.map +1 -0
- package/out/shared/src/btree-set.js.map +1 -0
- package/out/shared/src/cache.js.map +1 -0
- package/out/shared/src/centroid.js.map +1 -0
- package/out/shared/src/config.js.map +1 -0
- package/out/shared/src/custom-key-map.js.map +1 -0
- package/out/shared/src/custom-key-set.js.map +1 -0
- package/out/shared/src/deep-clone.js.map +1 -0
- package/out/shared/src/deep-merge.js.map +1 -0
- package/out/shared/src/document-visible.js.map +1 -0
- package/out/shared/src/dotenv.js.map +1 -0
- package/out/shared/src/error.js.map +1 -0
- package/out/shared/src/has-own.js.map +1 -0
- package/out/shared/src/hash.js.map +1 -0
- package/out/shared/src/iterables.d.ts +2 -0
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +61 -0
- package/out/shared/src/iterables.js.map +1 -0
- package/out/shared/src/json-schema.js.map +1 -0
- package/out/shared/src/json.js.map +1 -0
- package/out/shared/src/logging-test-utils.js.map +1 -0
- package/out/shared/src/logging.js.map +1 -0
- package/out/shared/src/map.js.map +1 -0
- package/out/shared/src/must.js.map +1 -0
- package/out/shared/src/navigator.js.map +1 -0
- package/out/shared/src/object-traversal.js.map +1 -0
- package/out/shared/src/objects.js.map +1 -0
- package/out/shared/src/options.js.map +1 -0
- package/out/shared/src/parse-big-int.js.map +1 -0
- package/out/shared/src/promise-race.js.map +1 -0
- package/out/shared/src/queue.js.map +1 -0
- package/out/shared/src/rand.js.map +1 -0
- package/out/shared/src/random-uint64.js.map +1 -0
- package/out/shared/src/random-values.js.map +1 -0
- package/out/shared/src/record-proxy.js.map +1 -0
- package/out/shared/src/resolved-promises.js.map +1 -0
- package/out/shared/src/ring-buffer.js.map +1 -0
- package/out/shared/src/sentinels.js.map +1 -0
- package/out/shared/src/set-utils.js.map +1 -0
- package/out/shared/src/size-of-value.js.map +1 -0
- package/out/shared/src/sleep.js.map +1 -0
- package/out/shared/src/sorted-entries.js.map +1 -0
- package/out/shared/src/string-compare.js.map +1 -0
- package/out/shared/src/subscribable.js.map +1 -0
- package/out/shared/src/tdigest-schema.js.map +1 -0
- package/out/shared/src/tdigest.js.map +1 -0
- package/out/shared/src/valita.js +172 -0
- package/out/shared/src/valita.js.map +1 -0
- package/out/z2s/src/compiler.js.map +1 -0
- package/out/z2s/src/sql.js.map +1 -0
- package/out/zero/package.js +213 -0
- package/out/zero/package.js.map +1 -0
- package/out/zero/src/adapters/drizzle.js +1 -1
- package/out/zero/src/adapters/kysely.js +1 -1
- package/out/zero/src/adapters/pg.js +1 -1
- package/out/zero/src/adapters/postgresjs.js +1 -1
- package/out/zero/src/adapters/prisma.js +1 -1
- package/out/zero/src/analyze-query.js +1 -1
- package/out/zero/src/analyze.js +1 -1
- package/out/zero/src/ast-to-zql.js +1 -1
- package/out/zero/src/bindings.js +11 -11
- package/out/zero/src/change-protocol/v0.js +2 -2
- package/out/zero/src/cli.js +1 -1
- package/out/zero/src/deploy-permissions.js +1 -1
- package/out/zero/src/expo-sqlite.js +2 -2
- package/out/zero/src/op-sqlite.js +2 -2
- package/out/zero/src/pg.js +9 -9
- package/out/zero/src/react-native.js +2 -2
- package/out/zero/src/react.js +5 -5
- package/out/zero/src/server.js +8 -8
- package/out/zero/src/solid.js +5 -5
- package/out/zero/src/sqlite.js +2 -2
- package/out/zero/src/transform-query.js +1 -1
- package/out/zero/src/zero-cache-dev.js +6 -6
- package/out/zero/src/zero-out.js +5 -5
- package/out/zero/src/zero.js +22 -22
- package/out/zero/src/zqlite.js +5 -5
- package/out/zero-cache/src/auth/auth.js.map +1 -0
- package/out/zero-cache/src/auth/jwt.js.map +1 -0
- package/out/zero-cache/src/auth/load-permissions.js.map +1 -0
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -0
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -0
- package/out/zero-cache/src/config/network.js.map +1 -0
- package/out/zero-cache/src/config/normalize.js.map +1 -0
- package/out/zero-cache/src/config/server-context.js.map +1 -0
- package/out/zero-cache/src/config/zero-config.js.map +1 -0
- package/out/zero-cache/src/custom/fetch.js.map +1 -0
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -0
- package/out/zero-cache/src/db/create.js.map +1 -0
- package/out/zero-cache/src/db/delete-lite-db.js.map +1 -0
- package/out/zero-cache/src/db/lite-tables.js.map +1 -0
- package/out/zero-cache/src/db/migration-lite.js.map +1 -0
- package/out/zero-cache/src/db/migration.js.map +1 -0
- package/out/zero-cache/src/db/mode-enum.js.map +1 -0
- package/out/zero-cache/src/db/pg-copy-binary.js.map +1 -0
- package/out/zero-cache/src/db/pg-copy.js.map +1 -0
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -0
- package/out/zero-cache/src/db/pg-type-parser.js.map +1 -0
- package/out/zero-cache/src/db/run-transaction.js.map +1 -0
- package/out/zero-cache/src/db/specs.js.map +1 -0
- package/out/zero-cache/src/db/statements.js.map +1 -0
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -0
- package/out/zero-cache/src/db/warmup.js.map +1 -0
- package/out/zero-cache/src/observability/events.js.map +1 -0
- package/out/zero-cache/src/observability/metrics.js.map +1 -0
- package/out/zero-cache/src/scripts/decommission.js.map +1 -0
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -0
- package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
- package/out/zero-cache/src/scripts/permissions.js +92 -0
- package/out/zero-cache/src/scripts/permissions.js.map +1 -0
- package/out/zero-cache/src/server/anonymous-otel-start.js +306 -0
- package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -0
- package/out/zero-cache/src/server/change-streamer.js +26 -26
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -0
- package/out/zero-cache/src/server/logging.js.map +1 -0
- package/out/zero-cache/src/server/main.js +11 -11
- package/out/zero-cache/src/server/mutator.js +8 -8
- package/out/zero-cache/src/server/otel-diag-logger.js.map +1 -0
- package/out/zero-cache/src/server/otel-log-sink.js.map +1 -0
- package/out/zero-cache/src/server/otel-start.js +53 -0
- package/out/zero-cache/src/server/otel-start.js.map +1 -0
- package/out/zero-cache/src/server/priority-op.js.map +1 -0
- package/out/zero-cache/src/server/reaper.js +13 -13
- package/out/zero-cache/src/server/replicator.js +16 -16
- package/out/zero-cache/src/server/runner/main.js.map +1 -0
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -0
- package/out/zero-cache/src/server/runner/runtime.js.map +1 -0
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -0
- package/out/zero-cache/src/server/shadow-syncer.js +10 -10
- package/out/zero-cache/src/server/syncer.js +29 -29
- package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -0
- package/out/zero-cache/src/server/worker-urls.js.map +1 -0
- package/out/zero-cache/src/server/write-worker.js +1 -1
- package/out/zero-cache/src/services/analyze.js +72 -0
- package/out/zero-cache/src/services/analyze.js.map +1 -0
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -0
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +1 -0
- package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -0
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/json.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/path.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current.js +56 -0
- package/out/zero-cache/src/services/change-source/protocol/current.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -0
- package/out/zero-cache/src/services/heapz.js.map +1 -0
- package/out/zero-cache/src/services/http-service.js.map +1 -0
- package/out/zero-cache/src/services/life-cycle.js.map +1 -0
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -0
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/error.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -0
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -0
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -0
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -0
- package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -0
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -0
- package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -0
- package/out/zero-cache/src/services/replicator/reporter/report-schema.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/column-metadata.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/constants.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/table-metadata.js.map +1 -0
- package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -0
- package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -0
- package/out/zero-cache/src/services/run-ast.js.map +1 -0
- package/out/zero-cache/src/services/runner.js.map +1 -0
- package/out/zero-cache/src/services/running-state.js.map +1 -0
- package/out/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +1 -0
- package/out/zero-cache/src/services/statz.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +870 -0
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +102 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/row-set-signature.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/tracer.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -0
- package/out/zero-cache/src/types/configuration-error.js.map +1 -0
- package/out/zero-cache/src/types/error-with-level.js.map +1 -0
- package/out/zero-cache/src/types/http.js.map +1 -0
- package/out/zero-cache/src/types/lexi-version.js.map +1 -0
- package/out/zero-cache/src/types/lite.js.map +1 -0
- package/out/zero-cache/src/types/names.js.map +1 -0
- package/out/zero-cache/src/types/pg-data-type.js.map +1 -0
- package/out/zero-cache/src/types/pg-types.js.map +1 -0
- package/out/zero-cache/src/types/pg-versions.js.map +1 -0
- package/out/zero-cache/src/types/pg.js.map +1 -0
- package/out/zero-cache/src/types/processes.js.map +1 -0
- package/out/zero-cache/src/types/profiler.js.map +1 -0
- package/out/zero-cache/src/types/row-key.js.map +1 -0
- package/out/zero-cache/src/types/shards.js.map +1 -0
- package/out/zero-cache/src/types/sql.js.map +1 -0
- package/out/zero-cache/src/types/state-version.js.map +1 -0
- package/out/zero-cache/src/types/streams.js.map +1 -0
- package/out/zero-cache/src/types/strings.js.map +1 -0
- package/out/zero-cache/src/types/subscription.js.map +1 -0
- package/out/zero-cache/src/types/timeout.js.map +1 -0
- package/out/zero-cache/src/types/url-params.js.map +1 -0
- package/out/zero-cache/src/types/websocket-handoff.js.map +1 -0
- package/out/zero-cache/src/types/ws.js.map +1 -0
- package/out/zero-cache/src/workers/connect-params.js.map +1 -0
- package/out/zero-cache/src/workers/connection.js.map +1 -0
- package/out/zero-cache/src/workers/mutator.js.map +1 -0
- package/out/zero-cache/src/workers/replicator.js.map +1 -0
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -0
- package/out/zero-cache/src/workers/syncer.js.map +1 -0
- package/out/zero-client/src/client/active-clients-manager.js.map +1 -0
- package/out/zero-client/src/client/client-error-kind-enum.js.map +1 -0
- package/out/zero-client/src/client/connection-manager.js.map +1 -0
- package/out/zero-client/src/client/connection-status-enum.js +20 -0
- package/out/zero-client/src/client/connection-status-enum.js.map +1 -0
- package/out/zero-client/src/client/connection.js.map +1 -0
- package/out/zero-client/src/client/context.js.map +1 -0
- package/out/zero-client/src/client/crud-impl.js +61 -0
- package/out/zero-client/src/client/crud-impl.js.map +1 -0
- package/out/zero-client/src/client/crud.js.map +1 -0
- package/out/zero-client/src/client/custom.js.map +1 -0
- package/out/zero-client/src/client/delete-clients-manager.js.map +1 -0
- package/out/zero-client/src/client/enable-analytics.js.map +1 -0
- package/out/zero-client/src/client/error.js.map +1 -0
- package/out/zero-client/src/client/http-string.js.map +1 -0
- package/out/zero-client/src/client/inspector/client-group.js.map +1 -0
- package/out/zero-client/src/client/inspector/client.js.map +1 -0
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -0
- package/out/zero-client/src/client/inspector/inspector.js.map +1 -0
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -0
- package/out/zero-client/src/client/inspector/query.js.map +1 -0
- package/out/zero-client/src/client/ivm-branch.js.map +1 -0
- package/out/zero-client/src/client/keys.js.map +1 -0
- package/out/zero-client/src/client/log-options.js.map +1 -0
- package/out/zero-client/src/client/make-mutate-property.js.map +1 -0
- package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -0
- package/out/zero-client/src/client/metric-name-enum.js.map +1 -0
- package/out/zero-client/src/client/metrics.js.map +1 -0
- package/out/zero-client/src/client/mutation-tracker.js.map +1 -0
- package/out/zero-client/src/client/mutator-proxy.js.map +1 -0
- package/out/zero-client/src/client/options.js.map +1 -0
- package/out/zero-client/src/client/query-manager.js.map +1 -0
- package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
- package/out/zero-client/src/client/server-option.js.map +1 -0
- package/out/zero-client/src/client/update-needed-reason-type-enum.js +27 -0
- package/out/zero-client/src/client/update-needed-reason-type-enum.js.map +1 -0
- package/out/zero-client/src/client/version.js +9 -0
- package/out/zero-client/src/client/version.js.map +1 -0
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
- package/out/zero-client/src/client/zero-rep.js.map +1 -0
- package/out/zero-client/src/client/zero.js.map +1 -0
- package/out/zero-client/src/util/nanoid.js.map +1 -0
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -0
- package/out/zero-protocol/src/application-error.js.map +1 -0
- package/out/zero-protocol/src/ast.js.map +1 -0
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -0
- package/out/zero-protocol/src/client-schema.js.map +1 -0
- package/out/zero-protocol/src/close-connection.js.map +1 -0
- package/out/zero-protocol/src/connect.js.map +1 -0
- package/out/zero-protocol/src/custom-queries.js.map +1 -0
- package/out/zero-protocol/src/data.js.map +1 -0
- package/out/zero-protocol/src/delete-clients.js.map +1 -0
- package/out/zero-protocol/src/down.js.map +1 -0
- package/out/zero-protocol/src/error-kind-enum.js.map +1 -0
- package/out/zero-protocol/src/error-origin-enum.js.map +1 -0
- package/out/zero-protocol/src/error-reason-enum.js.map +1 -0
- package/out/zero-protocol/src/error.js.map +1 -0
- package/out/zero-protocol/src/inspect-down.js.map +1 -0
- package/out/zero-protocol/src/inspect-up.js.map +1 -0
- package/out/zero-protocol/src/mutate-server.js.map +1 -0
- package/out/zero-protocol/src/mutation-id.js.map +1 -0
- package/out/zero-protocol/src/mutation-type-enum.js.map +1 -0
- package/out/zero-protocol/src/mutation.js.map +1 -0
- package/out/zero-protocol/src/mutations-patch.js.map +1 -0
- package/out/zero-protocol/src/ping.js.map +1 -0
- package/out/zero-protocol/src/poke.js.map +1 -0
- package/out/zero-protocol/src/pong.js.map +1 -0
- package/out/zero-protocol/src/primary-key.js.map +1 -0
- package/out/zero-protocol/src/protocol-version.js.map +1 -0
- package/out/zero-protocol/src/pull.js.map +1 -0
- package/out/zero-protocol/src/push.js.map +1 -0
- package/out/zero-protocol/src/queries-patch.js.map +1 -0
- package/out/zero-protocol/src/query-hash.js.map +1 -0
- package/out/zero-protocol/src/query-server.js.map +1 -0
- package/out/zero-protocol/src/row-patch.js.map +1 -0
- package/out/zero-protocol/src/up.js.map +1 -0
- package/out/zero-protocol/src/update-auth.js.map +1 -0
- package/out/zero-protocol/src/version.js.map +1 -0
- package/out/zero-react/src/use-connection-state.js +17 -0
- package/out/zero-react/src/use-connection-state.js.map +1 -0
- package/out/zero-react/src/use-query.js +299 -0
- package/out/zero-react/src/use-query.js.map +1 -0
- package/out/zero-react/src/use-zero-online.js +20 -0
- package/out/zero-react/src/use-zero-online.js.map +1 -0
- package/out/zero-react/src/zero-provider.js +87 -0
- package/out/zero-react/src/zero-provider.js.map +1 -0
- package/out/zero-schema/src/builder/relationship-builder.js.map +1 -0
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -0
- package/out/zero-schema/src/builder/table-builder.js.map +1 -0
- package/out/zero-schema/src/compiled-permissions.js.map +1 -0
- package/out/zero-schema/src/name-mapper.js.map +1 -0
- package/out/zero-schema/src/permissions.js.map +1 -0
- package/out/zero-schema/src/schema-config.js.map +1 -0
- package/out/zero-server/src/adapters/drizzle.js.map +1 -0
- package/out/zero-server/src/adapters/kysely.js.map +1 -0
- package/out/zero-server/src/adapters/pg.js +83 -0
- package/out/zero-server/src/adapters/pg.js.map +1 -0
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -0
- package/out/zero-server/src/adapters/prisma.js.map +1 -0
- package/out/zero-server/src/custom.js.map +1 -0
- package/out/zero-server/src/logging.js.map +1 -0
- package/out/zero-server/src/pg-query-executor.js.map +1 -0
- package/out/zero-server/src/process-mutations.js.map +1 -0
- package/out/zero-server/src/push-processor.js.map +1 -0
- package/out/zero-server/src/queries/process-queries.js.map +1 -0
- package/out/zero-server/src/schema.js.map +1 -0
- package/out/zero-server/src/zql-database.js.map +1 -0
- package/out/zero-solid/src/solid-view.js +145 -0
- package/out/zero-solid/src/solid-view.js.map +1 -0
- package/out/zero-solid/src/use-connection-state.js +21 -0
- package/out/zero-solid/src/use-connection-state.js.map +1 -0
- package/out/zero-solid/src/use-query.js +64 -0
- package/out/zero-solid/src/use-query.js.map +1 -0
- package/out/zero-solid/src/use-zero-online.js +21 -0
- package/out/zero-solid/src/use-zero-online.js.map +1 -0
- package/out/zero-solid/src/use-zero.js +93 -0
- package/out/zero-solid/src/use-zero.js.map +1 -0
- package/out/zero-types/src/format.js.map +1 -0
- package/out/zero-types/src/name-mapper.js.map +1 -0
- package/out/zql/src/builder/builder.js.map +1 -0
- package/out/zql/src/builder/debug-delegate.js.map +1 -0
- package/out/zql/src/builder/filter.js.map +1 -0
- package/out/zql/src/builder/like.js.map +1 -0
- package/out/zql/src/error.js.map +1 -0
- package/out/zql/src/ivm/array-view.js.map +1 -0
- package/out/zql/src/ivm/cap.js.map +1 -0
- package/out/zql/src/ivm/change.js.map +1 -0
- package/out/zql/src/ivm/constraint.js.map +1 -0
- package/out/zql/src/ivm/data.js.map +1 -0
- package/out/zql/src/ivm/exists.js.map +1 -0
- package/out/zql/src/ivm/fan-in.js.map +1 -0
- package/out/zql/src/ivm/fan-out.js.map +1 -0
- package/out/zql/src/ivm/filter-operators.js.map +1 -0
- package/out/zql/src/ivm/filter-push.js.map +1 -0
- package/out/zql/src/ivm/filter.js.map +1 -0
- package/out/zql/src/ivm/flipped-join.js.map +1 -0
- package/out/zql/src/ivm/join-utils.js.map +1 -0
- package/out/zql/src/ivm/join.js.map +1 -0
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -0
- package/out/zql/src/ivm/memory-source.js.map +1 -0
- package/out/zql/src/ivm/memory-storage.js.map +1 -0
- package/out/zql/src/ivm/operator.js.map +1 -0
- package/out/zql/src/ivm/push-accumulated.js.map +1 -0
- package/out/zql/src/ivm/skip-yields.js.map +1 -0
- package/out/zql/src/ivm/skip.js.map +1 -0
- package/out/zql/src/ivm/source.js.map +1 -0
- package/out/zql/src/ivm/stream.js.map +1 -0
- package/out/zql/src/ivm/take.js.map +1 -0
- package/out/zql/src/ivm/union-fan-in.js.map +1 -0
- package/out/zql/src/ivm/union-fan-out.js.map +1 -0
- package/out/zql/src/ivm/view-apply-change.js.map +1 -0
- package/out/zql/src/mutate/crud.js.map +1 -0
- package/out/zql/src/mutate/custom.js.map +1 -0
- package/out/zql/src/mutate/mutator-registry.js.map +1 -0
- package/out/zql/src/mutate/mutator.js.map +1 -0
- package/out/zql/src/planner/planner-builder.js.map +1 -0
- package/out/zql/src/planner/planner-connection.js.map +1 -0
- package/out/zql/src/planner/planner-constraint.js.map +1 -0
- package/out/zql/src/planner/planner-debug.js.map +1 -0
- package/out/zql/src/planner/planner-fan-in.js.map +1 -0
- package/out/zql/src/planner/planner-fan-out.js.map +1 -0
- package/out/zql/src/planner/planner-graph.js.map +1 -0
- package/out/zql/src/planner/planner-join.js.map +1 -0
- package/out/zql/src/planner/planner-node.js.map +1 -0
- package/out/zql/src/planner/planner-source.js.map +1 -0
- package/out/zql/src/planner/planner-terminus.js.map +1 -0
- package/out/zql/src/query/complete-ordering.js.map +1 -0
- package/out/zql/src/query/create-builder.js.map +1 -0
- package/out/zql/src/query/error.js.map +1 -0
- package/out/zql/src/query/escape-like.js.map +1 -0
- package/out/zql/src/query/expression.js.map +1 -0
- package/out/zql/src/query/measure-push-operator.js.map +1 -0
- package/out/zql/src/query/metrics-delegate.js.map +1 -0
- package/out/zql/src/query/named.js.map +1 -0
- package/out/zql/src/query/query-delegate-base.js.map +1 -0
- package/out/zql/src/query/query-impl.js.map +1 -0
- package/out/zql/src/query/query-internals.js.map +1 -0
- package/out/zql/src/query/query-registry.js.map +1 -0
- package/out/zql/src/query/runnable-query-impl.js.map +1 -0
- package/out/zql/src/query/static-query.js.map +1 -0
- package/out/zql/src/query/ttl.js.map +1 -0
- package/out/zql/src/query/validate-input.js.map +1 -0
- package/out/zqlite/src/database-storage.js.map +1 -0
- package/out/zqlite/src/db.js.map +1 -0
- package/out/zqlite/src/explain-queries.js.map +1 -0
- package/out/zqlite/src/internal/sql-inline.js.map +1 -0
- package/out/zqlite/src/internal/sql.js.map +1 -0
- package/out/zqlite/src/internal/statement-cache.js.map +1 -0
- package/out/zqlite/src/query-builder.js.map +1 -0
- package/out/zqlite/src/query-delegate.js.map +1 -0
- package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -0
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -0
- package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -0
- package/out/zqlite/src/table-source.js.map +1 -0
- package/package.json +21 -5
- package/out/_virtual/__vite-optional-peer-dep_pg-native_pg.js +0 -13
- package/out/_virtual/__vite-optional-peer-dep_pg-native_pg.js.map +0 -1
- package/out/node_modules/.pnpm/@opentelemetry_semantic-conventions@1.41.1/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js +0 -12
- package/out/node_modules/.pnpm/@opentelemetry_semantic-conventions@1.41.1/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js.map +0 -1
- package/out/node_modules/.pnpm/pg-cloudflare@1.3.0/node_modules/pg-cloudflare/dist/empty.js +0 -11
- package/out/node_modules/.pnpm/pg-cloudflare@1.3.0/node_modules/pg-cloudflare/dist/empty.js.map +0 -1
- package/out/node_modules/.pnpm/pg-connection-string@2.12.0/node_modules/pg-connection-string/index.js +0 -130
- package/out/node_modules/.pnpm/pg-connection-string@2.12.0/node_modules/pg-connection-string/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg-int8@1.0.1/node_modules/pg-int8/index.js +0 -62
- package/out/node_modules/.pnpm/pg-int8@1.0.1/node_modules/pg-int8/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg-pool@3.13.0_pg@8.20.0/node_modules/pg-pool/index.js +0 -353
- package/out/node_modules/.pnpm/pg-pool@3.13.0_pg@8.20.0/node_modules/pg-pool/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-reader.js +0 -60
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-reader.js.map +0 -1
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-writer.js +0 -81
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/buffer-writer.js.map +0 -1
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/index.js +0 -35
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/messages.js +0 -167
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/messages.js.map +0 -1
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/parser.js +0 -288
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/parser.js.map +0 -1
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/serializer.js +0 -177
- package/out/node_modules/.pnpm/pg-protocol@1.13.0/node_modules/pg-protocol/dist/serializer.js.map +0 -1
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.js +0 -46
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/arrayParser.js +0 -16
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/arrayParser.js.map +0 -1
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/binaryParsers.js +0 -165
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/binaryParsers.js.map +0 -1
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/builtins.js +0 -81
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/builtins.js.map +0 -1
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/textParsers.js +0 -167
- package/out/node_modules/.pnpm/pg-types@2.2.0/node_modules/pg-types/lib/textParsers.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/esm/index.js +0 -19
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/esm/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/client.js +0 -508
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/client.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection-parameters.js +0 -104
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection-parameters.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection.js +0 -160
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/connection.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/cert-signatures.js +0 -97
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/cert-signatures.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/sasl.js +0 -131
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/sasl.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-legacy.js +0 -39
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-legacy.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-webcrypto.js +0 -89
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils-webcrypto.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils.js +0 -13
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/crypto/utils.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/defaults.js +0 -46
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/defaults.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/index.js +0 -71
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/client.js +0 -226
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/client.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/index.js +0 -11
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/index.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/query.js +0 -117
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/native/query.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/query.js +0 -151
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/query.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/result.js +0 -76
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/result.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/stream.js +0 -73
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/stream.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/type-overrides.js +0 -35
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/type-overrides.js.map +0 -1
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/utils.js +0 -118
- package/out/node_modules/.pnpm/pg@8.20.0/node_modules/pg/lib/utils.js.map +0 -1
- package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/helper.js +0 -147
- package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/helper.js.map +0 -1
- package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/index.js +0 -21
- package/out/node_modules/.pnpm/pgpass@1.0.5/node_modules/pgpass/lib/index.js.map +0 -1
- package/out/node_modules/.pnpm/postgres-array@2.0.0/node_modules/postgres-array/index.js +0 -84
- package/out/node_modules/.pnpm/postgres-array@2.0.0/node_modules/postgres-array/index.js.map +0 -1
- package/out/node_modules/.pnpm/postgres-bytea@1.0.1/node_modules/postgres-bytea/index.js +0 -28
- package/out/node_modules/.pnpm/postgres-bytea@1.0.1/node_modules/postgres-bytea/index.js.map +0 -1
- package/out/node_modules/.pnpm/postgres-date@1.0.7/node_modules/postgres-date/index.js +0 -65
- package/out/node_modules/.pnpm/postgres-date@1.0.7/node_modules/postgres-date/index.js.map +0 -1
- package/out/node_modules/.pnpm/postgres-interval@1.2.0/node_modules/postgres-interval/index.js +0 -107
- package/out/node_modules/.pnpm/postgres-interval@1.2.0/node_modules/postgres-interval/index.js.map +0 -1
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js +0 -696
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js.map +0 -1
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -44
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +0 -1
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js +0 -1585
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js.map +0 -1
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js +0 -329
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js.map +0 -1
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/index.js +0 -13
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/index.js.map +0 -1
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js +0 -13
- package/out/node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js.map +0 -1
- package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/dist/server.js +0 -131
- package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/dist/server.js.map +0 -1
- package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/store/dist/server.js +0 -96
- package/out/node_modules/.pnpm/solid-js@1.9.13/node_modules/solid-js/store/dist/server.js.map +0 -1
- package/out/node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js +0 -95
- package/out/node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js.map +0 -1
- package/out/node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/mutable.js +0 -18
- package/out/node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/mutable.js.map +0 -1
- package/out/packages/analyze-query/src/analyze-cli.js +0 -288
- package/out/packages/analyze-query/src/analyze-cli.js.map +0 -1
- package/out/packages/analyze-query/src/bin-analyze.js.map +0 -1
- package/out/packages/analyze-query/src/bin-transform.js.map +0 -1
- package/out/packages/ast-to-zql/src/ast-to-zql.js.map +0 -1
- package/out/packages/ast-to-zql/src/bin.js.map +0 -1
- package/out/packages/ast-to-zql/src/format.js.map +0 -1
- package/out/packages/datadog/src/datadog-log-sink.js.map +0 -1
- package/out/packages/otel/src/enabled.js.map +0 -1
- package/out/packages/otel/src/log-options.js.map +0 -1
- package/out/packages/otel/src/maybe-time.js.map +0 -1
- package/out/packages/otel/src/span.js.map +0 -1
- package/out/packages/otel/src/version.js.map +0 -1
- package/out/packages/replicache/src/async-iterable-to-array.js.map +0 -1
- package/out/packages/replicache/src/bg-interval.js.map +0 -1
- package/out/packages/replicache/src/btree/diff.js.map +0 -1
- package/out/packages/replicache/src/btree/node.js.map +0 -1
- package/out/packages/replicache/src/btree/read.js.map +0 -1
- package/out/packages/replicache/src/btree/splice.js.map +0 -1
- package/out/packages/replicache/src/btree/write.js.map +0 -1
- package/out/packages/replicache/src/call-default-fetch.js.map +0 -1
- package/out/packages/replicache/src/connection-loop-delegates.js.map +0 -1
- package/out/packages/replicache/src/connection-loop.js.map +0 -1
- package/out/packages/replicache/src/cookies.js.map +0 -1
- package/out/packages/replicache/src/dag/chunk.js.map +0 -1
- package/out/packages/replicache/src/dag/gc.js.map +0 -1
- package/out/packages/replicache/src/dag/key.js.map +0 -1
- package/out/packages/replicache/src/dag/lazy-store.js.map +0 -1
- package/out/packages/replicache/src/dag/store-impl.js.map +0 -1
- package/out/packages/replicache/src/dag/store.js.map +0 -1
- package/out/packages/replicache/src/dag/visitor.js.map +0 -1
- package/out/packages/replicache/src/db/commit.js.map +0 -1
- package/out/packages/replicache/src/db/index.js.map +0 -1
- package/out/packages/replicache/src/db/read.js.map +0 -1
- package/out/packages/replicache/src/db/rebase.js.map +0 -1
- package/out/packages/replicache/src/db/write.js.map +0 -1
- package/out/packages/replicache/src/deleted-clients.js.map +0 -1
- package/out/packages/replicache/src/error-responses.js.map +0 -1
- package/out/packages/replicache/src/frozen-json.js.map +0 -1
- package/out/packages/replicache/src/get-default-puller.js.map +0 -1
- package/out/packages/replicache/src/get-default-pusher.js.map +0 -1
- package/out/packages/replicache/src/get-kv-store-provider.js.map +0 -1
- package/out/packages/replicache/src/hash.js.map +0 -1
- package/out/packages/replicache/src/http-request-info.js.map +0 -1
- package/out/packages/replicache/src/index-defs.js.map +0 -1
- package/out/packages/replicache/src/kv/expo-sqlite/store.js.map +0 -1
- package/out/packages/replicache/src/kv/idb-store-with-mem-fallback.js.map +0 -1
- package/out/packages/replicache/src/kv/idb-store.js.map +0 -1
- package/out/packages/replicache/src/kv/mem-store.js.map +0 -1
- package/out/packages/replicache/src/kv/op-sqlite/store.js.map +0 -1
- package/out/packages/replicache/src/kv/op-sqlite/types.js.map +0 -1
- package/out/packages/replicache/src/kv/read-impl.js.map +0 -1
- package/out/packages/replicache/src/kv/sqlite-store.js.map +0 -1
- package/out/packages/replicache/src/kv/throw-if-closed.js.map +0 -1
- package/out/packages/replicache/src/kv/write-impl-base.js.map +0 -1
- package/out/packages/replicache/src/kv/write-impl.js.map +0 -1
- package/out/packages/replicache/src/lazy.js.map +0 -1
- package/out/packages/replicache/src/log-options.js.map +0 -1
- package/out/packages/replicache/src/make-idb-name.js.map +0 -1
- package/out/packages/replicache/src/new-client-channel.js.map +0 -1
- package/out/packages/replicache/src/on-persist-channel.js.map +0 -1
- package/out/packages/replicache/src/patch-operation.js.map +0 -1
- package/out/packages/replicache/src/pending-mutations.js.map +0 -1
- package/out/packages/replicache/src/persist/client-gc.js.map +0 -1
- package/out/packages/replicache/src/persist/client-group-gc.js.map +0 -1
- package/out/packages/replicache/src/persist/client-groups.js.map +0 -1
- package/out/packages/replicache/src/persist/clients.js.map +0 -1
- package/out/packages/replicache/src/persist/collect-idb-databases.js.map +0 -1
- package/out/packages/replicache/src/persist/gather-mem-only-visitor.js.map +0 -1
- package/out/packages/replicache/src/persist/gather-not-cached-visitor.js.map +0 -1
- package/out/packages/replicache/src/persist/heartbeat.js.map +0 -1
- package/out/packages/replicache/src/persist/idb-databases-store-db-name.js.map +0 -1
- package/out/packages/replicache/src/persist/idb-databases-store.js.map +0 -1
- package/out/packages/replicache/src/persist/make-client-id.js.map +0 -1
- package/out/packages/replicache/src/persist/persist.js.map +0 -1
- package/out/packages/replicache/src/persist/refresh.js.map +0 -1
- package/out/packages/replicache/src/process-scheduler.js.map +0 -1
- package/out/packages/replicache/src/pusher.js.map +0 -1
- package/out/packages/replicache/src/replicache-impl.js.map +0 -1
- package/out/packages/replicache/src/report-error.js.map +0 -1
- package/out/packages/replicache/src/request-idle.js.map +0 -1
- package/out/packages/replicache/src/scan-iterator.js.map +0 -1
- package/out/packages/replicache/src/scan-options.js.map +0 -1
- package/out/packages/replicache/src/set-interval-with-signal.js.map +0 -1
- package/out/packages/replicache/src/subscriptions.js.map +0 -1
- package/out/packages/replicache/src/sync/diff.js.map +0 -1
- package/out/packages/replicache/src/sync/ids.js.map +0 -1
- package/out/packages/replicache/src/sync/patch.js.map +0 -1
- package/out/packages/replicache/src/sync/pull-error.js.map +0 -1
- package/out/packages/replicache/src/sync/pull.js.map +0 -1
- package/out/packages/replicache/src/sync/push.js.map +0 -1
- package/out/packages/replicache/src/sync/request-id.js.map +0 -1
- package/out/packages/replicache/src/sync/sync-head-name.js.map +0 -1
- package/out/packages/replicache/src/to-error.js.map +0 -1
- package/out/packages/replicache/src/transaction-closed-error.js.map +0 -1
- package/out/packages/replicache/src/transactions.js.map +0 -1
- package/out/packages/replicache/src/version.js.map +0 -1
- package/out/packages/replicache/src/with-transactions.js.map +0 -1
- package/out/packages/shared/src/abort-error.js.map +0 -1
- package/out/packages/shared/src/arrays.js.map +0 -1
- package/out/packages/shared/src/asserts.js.map +0 -1
- package/out/packages/shared/src/bigint-json.js.map +0 -1
- package/out/packages/shared/src/binary-search.js.map +0 -1
- package/out/packages/shared/src/broadcast-channel.js.map +0 -1
- package/out/packages/shared/src/browser-env.js.map +0 -1
- package/out/packages/shared/src/btree-set.js.map +0 -1
- package/out/packages/shared/src/cache.js.map +0 -1
- package/out/packages/shared/src/centroid.js.map +0 -1
- package/out/packages/shared/src/config.js.map +0 -1
- package/out/packages/shared/src/custom-key-map.js.map +0 -1
- package/out/packages/shared/src/custom-key-set.js.map +0 -1
- package/out/packages/shared/src/deep-clone.js.map +0 -1
- package/out/packages/shared/src/deep-merge.js.map +0 -1
- package/out/packages/shared/src/document-visible.js.map +0 -1
- package/out/packages/shared/src/dotenv.js.map +0 -1
- package/out/packages/shared/src/error.js.map +0 -1
- package/out/packages/shared/src/has-own.js.map +0 -1
- package/out/packages/shared/src/hash.js.map +0 -1
- package/out/packages/shared/src/iterables.js +0 -53
- package/out/packages/shared/src/iterables.js.map +0 -1
- package/out/packages/shared/src/json-schema.js.map +0 -1
- package/out/packages/shared/src/json.js.map +0 -1
- package/out/packages/shared/src/logging-test-utils.js.map +0 -1
- package/out/packages/shared/src/logging.js.map +0 -1
- package/out/packages/shared/src/map.js.map +0 -1
- package/out/packages/shared/src/must.js.map +0 -1
- package/out/packages/shared/src/navigator.js.map +0 -1
- package/out/packages/shared/src/object-traversal.js.map +0 -1
- package/out/packages/shared/src/objects.js.map +0 -1
- package/out/packages/shared/src/options.js.map +0 -1
- package/out/packages/shared/src/parse-big-int.js.map +0 -1
- package/out/packages/shared/src/promise-race.js.map +0 -1
- package/out/packages/shared/src/queue.js.map +0 -1
- package/out/packages/shared/src/rand.js.map +0 -1
- package/out/packages/shared/src/random-uint64.js.map +0 -1
- package/out/packages/shared/src/random-values.js.map +0 -1
- package/out/packages/shared/src/record-proxy.js.map +0 -1
- package/out/packages/shared/src/resolved-promises.js.map +0 -1
- package/out/packages/shared/src/ring-buffer.js.map +0 -1
- package/out/packages/shared/src/sentinels.js.map +0 -1
- package/out/packages/shared/src/set-utils.js.map +0 -1
- package/out/packages/shared/src/size-of-value.js.map +0 -1
- package/out/packages/shared/src/sleep.js.map +0 -1
- package/out/packages/shared/src/sorted-entries.js.map +0 -1
- package/out/packages/shared/src/string-compare.js.map +0 -1
- package/out/packages/shared/src/subscribable.js.map +0 -1
- package/out/packages/shared/src/tdigest-schema.js.map +0 -1
- package/out/packages/shared/src/tdigest.js.map +0 -1
- package/out/packages/shared/src/valita.js +0 -172
- package/out/packages/shared/src/valita.js.map +0 -1
- package/out/packages/z2s/src/compiler.js.map +0 -1
- package/out/packages/z2s/src/sql.js.map +0 -1
- package/out/packages/zero/package.js +0 -205
- package/out/packages/zero/package.js.map +0 -1
- package/out/packages/zero-cache/src/auth/auth.js.map +0 -1
- package/out/packages/zero-cache/src/auth/jwt.js.map +0 -1
- package/out/packages/zero-cache/src/auth/load-permissions.js.map +0 -1
- package/out/packages/zero-cache/src/auth/read-authorizer.js.map +0 -1
- package/out/packages/zero-cache/src/auth/write-authorizer.js.map +0 -1
- package/out/packages/zero-cache/src/config/network.js.map +0 -1
- package/out/packages/zero-cache/src/config/normalize.js.map +0 -1
- package/out/packages/zero-cache/src/config/server-context.js.map +0 -1
- package/out/packages/zero-cache/src/config/zero-config.js.map +0 -1
- package/out/packages/zero-cache/src/custom/fetch.js.map +0 -1
- package/out/packages/zero-cache/src/custom-queries/transform-query.js.map +0 -1
- package/out/packages/zero-cache/src/db/create.js.map +0 -1
- package/out/packages/zero-cache/src/db/delete-lite-db.js.map +0 -1
- package/out/packages/zero-cache/src/db/lite-tables.js.map +0 -1
- package/out/packages/zero-cache/src/db/migration-lite.js.map +0 -1
- package/out/packages/zero-cache/src/db/migration.js.map +0 -1
- package/out/packages/zero-cache/src/db/mode-enum.js.map +0 -1
- package/out/packages/zero-cache/src/db/pg-copy-binary.js.map +0 -1
- package/out/packages/zero-cache/src/db/pg-copy.js.map +0 -1
- package/out/packages/zero-cache/src/db/pg-to-lite.js.map +0 -1
- package/out/packages/zero-cache/src/db/pg-type-parser.js.map +0 -1
- package/out/packages/zero-cache/src/db/run-transaction.js.map +0 -1
- package/out/packages/zero-cache/src/db/specs.js.map +0 -1
- package/out/packages/zero-cache/src/db/statements.js.map +0 -1
- package/out/packages/zero-cache/src/db/transaction-pool.js.map +0 -1
- package/out/packages/zero-cache/src/db/warmup.js.map +0 -1
- package/out/packages/zero-cache/src/observability/events.js.map +0 -1
- package/out/packages/zero-cache/src/observability/metrics.js.map +0 -1
- package/out/packages/zero-cache/src/scripts/decommission.js.map +0 -1
- package/out/packages/zero-cache/src/scripts/deploy-permissions.js.map +0 -1
- package/out/packages/zero-cache/src/scripts/permissions.js +0 -93
- package/out/packages/zero-cache/src/scripts/permissions.js.map +0 -1
- package/out/packages/zero-cache/src/server/anonymous-otel-start.js +0 -306
- package/out/packages/zero-cache/src/server/anonymous-otel-start.js.map +0 -1
- package/out/packages/zero-cache/src/server/inspector-delegate.js.map +0 -1
- package/out/packages/zero-cache/src/server/logging.js.map +0 -1
- package/out/packages/zero-cache/src/server/otel-diag-logger.js.map +0 -1
- package/out/packages/zero-cache/src/server/otel-log-sink.js.map +0 -1
- package/out/packages/zero-cache/src/server/otel-start.js +0 -53
- package/out/packages/zero-cache/src/server/otel-start.js.map +0 -1
- package/out/packages/zero-cache/src/server/priority-op.js.map +0 -1
- package/out/packages/zero-cache/src/server/runner/main.js.map +0 -1
- package/out/packages/zero-cache/src/server/runner/run-worker.js.map +0 -1
- package/out/packages/zero-cache/src/server/runner/runtime.js.map +0 -1
- package/out/packages/zero-cache/src/server/runner/zero-dispatcher.js.map +0 -1
- package/out/packages/zero-cache/src/server/worker-dispatcher.js.map +0 -1
- package/out/packages/zero-cache/src/server/worker-urls.js.map +0 -1
- package/out/packages/zero-cache/src/services/analyze.js +0 -72
- package/out/packages/zero-cache/src/services/analyze.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/common/backfill-manager.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/common/replica-schema.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/custom/change-source.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/backfill-stream.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/change-source.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/decommission.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/initial-sync.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/lsn.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/replication-slots.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/schema/ddl.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/schema/init.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/schema/published.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/schema/shard.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/pg/schema/validation.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/control.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/data.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/downstream.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/json.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/path.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/status.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current/upstream.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-source/protocol/current.js +0 -56
- package/out/packages/zero-cache/src/services/change-source/protocol/current.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/backup-monitor.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/broadcast.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/change-streamer-http.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/change-streamer-service.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/change-streamer.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/forwarder.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/replica-monitor.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/schema/init.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/schema/tables.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/snapshot.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/storer.js.map +0 -1
- package/out/packages/zero-cache/src/services/change-streamer/subscriber.js.map +0 -1
- package/out/packages/zero-cache/src/services/heapz.js.map +0 -1
- package/out/packages/zero-cache/src/services/http-service.js.map +0 -1
- package/out/packages/zero-cache/src/services/life-cycle.js.map +0 -1
- package/out/packages/zero-cache/src/services/limiter/sliding-window-limiter.js.map +0 -1
- package/out/packages/zero-cache/src/services/litestream/commands.js.map +0 -1
- package/out/packages/zero-cache/src/services/mutagen/error.js.map +0 -1
- package/out/packages/zero-cache/src/services/mutagen/mutagen.js.map +0 -1
- package/out/packages/zero-cache/src/services/mutagen/pusher.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/change-processor.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/incremental-sync.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/notifier.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/replication-status.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/replicator.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/reporter/recorder.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/reporter/report-schema.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/schema/change-log.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/schema/column-metadata.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/schema/constants.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/schema/replication-state.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/schema/table-metadata.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/write-worker-client.js.map +0 -1
- package/out/packages/zero-cache/src/services/replicator/write-worker.js.map +0 -1
- package/out/packages/zero-cache/src/services/run-ast.js.map +0 -1
- package/out/packages/zero-cache/src/services/runner.js.map +0 -1
- package/out/packages/zero-cache/src/services/running-state.js.map +0 -1
- package/out/packages/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +0 -1
- package/out/packages/zero-cache/src/services/statz.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/active-users-gauge.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/client-handler.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/client-schema.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/connection-context-manager.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/cvr-purger.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/cvr-store.js +0 -869
- package/out/packages/zero-cache/src/services/view-syncer/cvr-store.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/cvr.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/drain-coordinator.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/inspect-handler.js +0 -102
- package/out/packages/zero-cache/src/services/view-syncer/inspect-handler.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/pipeline-driver.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/row-record-cache.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/row-set-signature.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/schema/cvr.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/schema/init.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/schema/types.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/snapshotter.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/tracer.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/ttl-clock.js.map +0 -1
- package/out/packages/zero-cache/src/services/view-syncer/view-syncer.js.map +0 -1
- package/out/packages/zero-cache/src/types/configuration-error.js.map +0 -1
- package/out/packages/zero-cache/src/types/error-with-level.js.map +0 -1
- package/out/packages/zero-cache/src/types/http.js.map +0 -1
- package/out/packages/zero-cache/src/types/lexi-version.js.map +0 -1
- package/out/packages/zero-cache/src/types/lite.js.map +0 -1
- package/out/packages/zero-cache/src/types/names.js.map +0 -1
- package/out/packages/zero-cache/src/types/pg-data-type.js.map +0 -1
- package/out/packages/zero-cache/src/types/pg-types.js.map +0 -1
- package/out/packages/zero-cache/src/types/pg-versions.js.map +0 -1
- package/out/packages/zero-cache/src/types/pg.js.map +0 -1
- package/out/packages/zero-cache/src/types/processes.js.map +0 -1
- package/out/packages/zero-cache/src/types/profiler.js.map +0 -1
- package/out/packages/zero-cache/src/types/row-key.js.map +0 -1
- package/out/packages/zero-cache/src/types/shards.js.map +0 -1
- package/out/packages/zero-cache/src/types/sql.js.map +0 -1
- package/out/packages/zero-cache/src/types/state-version.js.map +0 -1
- package/out/packages/zero-cache/src/types/streams.js.map +0 -1
- package/out/packages/zero-cache/src/types/strings.js.map +0 -1
- package/out/packages/zero-cache/src/types/subscription.js.map +0 -1
- package/out/packages/zero-cache/src/types/timeout.js.map +0 -1
- package/out/packages/zero-cache/src/types/url-params.js.map +0 -1
- package/out/packages/zero-cache/src/types/websocket-handoff.js.map +0 -1
- package/out/packages/zero-cache/src/types/ws.js.map +0 -1
- package/out/packages/zero-cache/src/workers/connect-params.js.map +0 -1
- package/out/packages/zero-cache/src/workers/connection.js.map +0 -1
- package/out/packages/zero-cache/src/workers/mutator.js.map +0 -1
- package/out/packages/zero-cache/src/workers/replicator.js.map +0 -1
- package/out/packages/zero-cache/src/workers/syncer-ws-message-handler.js.map +0 -1
- package/out/packages/zero-cache/src/workers/syncer.js.map +0 -1
- package/out/packages/zero-client/src/client/active-clients-manager.js.map +0 -1
- package/out/packages/zero-client/src/client/client-error-kind-enum.js.map +0 -1
- package/out/packages/zero-client/src/client/connection-manager.js.map +0 -1
- package/out/packages/zero-client/src/client/connection-status-enum.js +0 -20
- package/out/packages/zero-client/src/client/connection-status-enum.js.map +0 -1
- package/out/packages/zero-client/src/client/connection.js.map +0 -1
- package/out/packages/zero-client/src/client/context.js.map +0 -1
- package/out/packages/zero-client/src/client/crud-impl.js +0 -61
- package/out/packages/zero-client/src/client/crud-impl.js.map +0 -1
- package/out/packages/zero-client/src/client/crud.js.map +0 -1
- package/out/packages/zero-client/src/client/custom.js.map +0 -1
- package/out/packages/zero-client/src/client/delete-clients-manager.js.map +0 -1
- package/out/packages/zero-client/src/client/enable-analytics.js.map +0 -1
- package/out/packages/zero-client/src/client/error.js.map +0 -1
- package/out/packages/zero-client/src/client/http-string.js.map +0 -1
- package/out/packages/zero-client/src/client/inspector/client-group.js.map +0 -1
- package/out/packages/zero-client/src/client/inspector/client.js.map +0 -1
- package/out/packages/zero-client/src/client/inspector/html-dialog-prompt.js.map +0 -1
- package/out/packages/zero-client/src/client/inspector/inspector.js.map +0 -1
- package/out/packages/zero-client/src/client/inspector/lazy-inspector.js.map +0 -1
- package/out/packages/zero-client/src/client/inspector/query.js.map +0 -1
- package/out/packages/zero-client/src/client/ivm-branch.js.map +0 -1
- package/out/packages/zero-client/src/client/keys.js.map +0 -1
- package/out/packages/zero-client/src/client/log-options.js.map +0 -1
- package/out/packages/zero-client/src/client/make-mutate-property.js.map +0 -1
- package/out/packages/zero-client/src/client/make-replicache-mutators.js.map +0 -1
- package/out/packages/zero-client/src/client/metric-name-enum.js.map +0 -1
- package/out/packages/zero-client/src/client/metrics.js.map +0 -1
- package/out/packages/zero-client/src/client/mutation-tracker.js.map +0 -1
- package/out/packages/zero-client/src/client/mutator-proxy.js.map +0 -1
- package/out/packages/zero-client/src/client/options.js.map +0 -1
- package/out/packages/zero-client/src/client/query-manager.js.map +0 -1
- package/out/packages/zero-client/src/client/reload-error-handler.js.map +0 -1
- package/out/packages/zero-client/src/client/server-option.js.map +0 -1
- package/out/packages/zero-client/src/client/update-needed-reason-type-enum.js +0 -27
- package/out/packages/zero-client/src/client/update-needed-reason-type-enum.js.map +0 -1
- package/out/packages/zero-client/src/client/version.js +0 -9
- package/out/packages/zero-client/src/client/version.js.map +0 -1
- package/out/packages/zero-client/src/client/zero-poke-handler.js.map +0 -1
- package/out/packages/zero-client/src/client/zero-rep.js.map +0 -1
- package/out/packages/zero-client/src/client/zero.js.map +0 -1
- package/out/packages/zero-client/src/util/nanoid.js.map +0 -1
- package/out/packages/zero-protocol/src/analyze-query-result.js.map +0 -1
- package/out/packages/zero-protocol/src/application-error.js.map +0 -1
- package/out/packages/zero-protocol/src/ast.js.map +0 -1
- package/out/packages/zero-protocol/src/change-desired-queries.js.map +0 -1
- package/out/packages/zero-protocol/src/client-schema.js.map +0 -1
- package/out/packages/zero-protocol/src/close-connection.js.map +0 -1
- package/out/packages/zero-protocol/src/connect.js.map +0 -1
- package/out/packages/zero-protocol/src/custom-queries.js.map +0 -1
- package/out/packages/zero-protocol/src/data.js.map +0 -1
- package/out/packages/zero-protocol/src/delete-clients.js.map +0 -1
- package/out/packages/zero-protocol/src/down.js.map +0 -1
- package/out/packages/zero-protocol/src/error-kind-enum.js.map +0 -1
- package/out/packages/zero-protocol/src/error-origin-enum.js.map +0 -1
- package/out/packages/zero-protocol/src/error-reason-enum.js.map +0 -1
- package/out/packages/zero-protocol/src/error.js.map +0 -1
- package/out/packages/zero-protocol/src/inspect-down.js.map +0 -1
- package/out/packages/zero-protocol/src/inspect-up.js.map +0 -1
- package/out/packages/zero-protocol/src/mutate-server.js.map +0 -1
- package/out/packages/zero-protocol/src/mutation-id.js.map +0 -1
- package/out/packages/zero-protocol/src/mutation-type-enum.js.map +0 -1
- package/out/packages/zero-protocol/src/mutation.js.map +0 -1
- package/out/packages/zero-protocol/src/mutations-patch.js.map +0 -1
- package/out/packages/zero-protocol/src/ping.js.map +0 -1
- package/out/packages/zero-protocol/src/poke.js.map +0 -1
- package/out/packages/zero-protocol/src/pong.js.map +0 -1
- package/out/packages/zero-protocol/src/primary-key.js.map +0 -1
- package/out/packages/zero-protocol/src/protocol-version.js.map +0 -1
- package/out/packages/zero-protocol/src/pull.js.map +0 -1
- package/out/packages/zero-protocol/src/push.js.map +0 -1
- package/out/packages/zero-protocol/src/queries-patch.js.map +0 -1
- package/out/packages/zero-protocol/src/query-hash.js.map +0 -1
- package/out/packages/zero-protocol/src/query-server.js.map +0 -1
- package/out/packages/zero-protocol/src/row-patch.js.map +0 -1
- package/out/packages/zero-protocol/src/up.js.map +0 -1
- package/out/packages/zero-protocol/src/update-auth.js.map +0 -1
- package/out/packages/zero-protocol/src/version.js.map +0 -1
- package/out/packages/zero-react/src/use-connection-state.js +0 -19
- package/out/packages/zero-react/src/use-connection-state.js.map +0 -1
- package/out/packages/zero-react/src/use-query.js +0 -301
- package/out/packages/zero-react/src/use-query.js.map +0 -1
- package/out/packages/zero-react/src/use-zero-online.js +0 -22
- package/out/packages/zero-react/src/use-zero-online.js.map +0 -1
- package/out/packages/zero-react/src/zero-provider.js +0 -90
- package/out/packages/zero-react/src/zero-provider.js.map +0 -1
- package/out/packages/zero-schema/src/builder/relationship-builder.js.map +0 -1
- package/out/packages/zero-schema/src/builder/schema-builder.js.map +0 -1
- package/out/packages/zero-schema/src/builder/table-builder.js.map +0 -1
- package/out/packages/zero-schema/src/compiled-permissions.js.map +0 -1
- package/out/packages/zero-schema/src/name-mapper.js.map +0 -1
- package/out/packages/zero-schema/src/permissions.js.map +0 -1
- package/out/packages/zero-schema/src/schema-config.js.map +0 -1
- package/out/packages/zero-server/src/adapters/drizzle.js.map +0 -1
- package/out/packages/zero-server/src/adapters/kysely.js.map +0 -1
- package/out/packages/zero-server/src/adapters/pg.js +0 -83
- package/out/packages/zero-server/src/adapters/pg.js.map +0 -1
- package/out/packages/zero-server/src/adapters/postgresjs.js.map +0 -1
- package/out/packages/zero-server/src/adapters/prisma.js.map +0 -1
- package/out/packages/zero-server/src/custom.js.map +0 -1
- package/out/packages/zero-server/src/logging.js.map +0 -1
- package/out/packages/zero-server/src/pg-query-executor.js.map +0 -1
- package/out/packages/zero-server/src/process-mutations.js.map +0 -1
- package/out/packages/zero-server/src/push-processor.js.map +0 -1
- package/out/packages/zero-server/src/queries/process-queries.js.map +0 -1
- package/out/packages/zero-server/src/schema.js.map +0 -1
- package/out/packages/zero-server/src/zql-database.js.map +0 -1
- package/out/packages/zero-solid/src/solid-view.js +0 -145
- package/out/packages/zero-solid/src/solid-view.js.map +0 -1
- package/out/packages/zero-solid/src/use-connection-state.js +0 -21
- package/out/packages/zero-solid/src/use-connection-state.js.map +0 -1
- package/out/packages/zero-solid/src/use-query.js +0 -64
- package/out/packages/zero-solid/src/use-query.js.map +0 -1
- package/out/packages/zero-solid/src/use-zero-online.js +0 -21
- package/out/packages/zero-solid/src/use-zero-online.js.map +0 -1
- package/out/packages/zero-solid/src/use-zero.js +0 -93
- package/out/packages/zero-solid/src/use-zero.js.map +0 -1
- package/out/packages/zero-types/src/format.js.map +0 -1
- package/out/packages/zero-types/src/name-mapper.js.map +0 -1
- package/out/packages/zql/src/builder/builder.js.map +0 -1
- package/out/packages/zql/src/builder/debug-delegate.js.map +0 -1
- package/out/packages/zql/src/builder/filter.js.map +0 -1
- package/out/packages/zql/src/builder/like.js.map +0 -1
- package/out/packages/zql/src/error.js.map +0 -1
- package/out/packages/zql/src/ivm/array-view.js.map +0 -1
- package/out/packages/zql/src/ivm/cap.js.map +0 -1
- package/out/packages/zql/src/ivm/change.js.map +0 -1
- package/out/packages/zql/src/ivm/constraint.js.map +0 -1
- package/out/packages/zql/src/ivm/data.js.map +0 -1
- package/out/packages/zql/src/ivm/exists.js.map +0 -1
- package/out/packages/zql/src/ivm/fan-in.js.map +0 -1
- package/out/packages/zql/src/ivm/fan-out.js.map +0 -1
- package/out/packages/zql/src/ivm/filter-operators.js.map +0 -1
- package/out/packages/zql/src/ivm/filter-push.js.map +0 -1
- package/out/packages/zql/src/ivm/filter.js.map +0 -1
- package/out/packages/zql/src/ivm/flipped-join.js.map +0 -1
- package/out/packages/zql/src/ivm/join-utils.js.map +0 -1
- package/out/packages/zql/src/ivm/join.js.map +0 -1
- package/out/packages/zql/src/ivm/maybe-split-and-push-edit-change.js.map +0 -1
- package/out/packages/zql/src/ivm/memory-source.js.map +0 -1
- package/out/packages/zql/src/ivm/memory-storage.js.map +0 -1
- package/out/packages/zql/src/ivm/operator.js.map +0 -1
- package/out/packages/zql/src/ivm/push-accumulated.js.map +0 -1
- package/out/packages/zql/src/ivm/skip-yields.js.map +0 -1
- package/out/packages/zql/src/ivm/skip.js.map +0 -1
- package/out/packages/zql/src/ivm/source.js.map +0 -1
- package/out/packages/zql/src/ivm/stream.js.map +0 -1
- package/out/packages/zql/src/ivm/take.js.map +0 -1
- package/out/packages/zql/src/ivm/union-fan-in.js.map +0 -1
- package/out/packages/zql/src/ivm/union-fan-out.js.map +0 -1
- package/out/packages/zql/src/ivm/view-apply-change.js.map +0 -1
- package/out/packages/zql/src/mutate/crud.js.map +0 -1
- package/out/packages/zql/src/mutate/custom.js.map +0 -1
- package/out/packages/zql/src/mutate/mutator-registry.js.map +0 -1
- package/out/packages/zql/src/mutate/mutator.js.map +0 -1
- package/out/packages/zql/src/planner/planner-builder.js.map +0 -1
- package/out/packages/zql/src/planner/planner-connection.js.map +0 -1
- package/out/packages/zql/src/planner/planner-constraint.js.map +0 -1
- package/out/packages/zql/src/planner/planner-debug.js.map +0 -1
- package/out/packages/zql/src/planner/planner-fan-in.js.map +0 -1
- package/out/packages/zql/src/planner/planner-fan-out.js.map +0 -1
- package/out/packages/zql/src/planner/planner-graph.js.map +0 -1
- package/out/packages/zql/src/planner/planner-join.js.map +0 -1
- package/out/packages/zql/src/planner/planner-node.js.map +0 -1
- package/out/packages/zql/src/planner/planner-source.js.map +0 -1
- package/out/packages/zql/src/planner/planner-terminus.js.map +0 -1
- package/out/packages/zql/src/query/complete-ordering.js.map +0 -1
- package/out/packages/zql/src/query/create-builder.js.map +0 -1
- package/out/packages/zql/src/query/error.js.map +0 -1
- package/out/packages/zql/src/query/escape-like.js.map +0 -1
- package/out/packages/zql/src/query/expression.js.map +0 -1
- package/out/packages/zql/src/query/measure-push-operator.js.map +0 -1
- package/out/packages/zql/src/query/metrics-delegate.js.map +0 -1
- package/out/packages/zql/src/query/named.js.map +0 -1
- package/out/packages/zql/src/query/query-delegate-base.js.map +0 -1
- package/out/packages/zql/src/query/query-impl.js.map +0 -1
- package/out/packages/zql/src/query/query-internals.js.map +0 -1
- package/out/packages/zql/src/query/query-registry.js.map +0 -1
- package/out/packages/zql/src/query/runnable-query-impl.js.map +0 -1
- package/out/packages/zql/src/query/static-query.js.map +0 -1
- package/out/packages/zql/src/query/ttl.js.map +0 -1
- package/out/packages/zql/src/query/validate-input.js.map +0 -1
- package/out/packages/zqlite/src/database-storage.js.map +0 -1
- package/out/packages/zqlite/src/db.js.map +0 -1
- package/out/packages/zqlite/src/explain-queries.js.map +0 -1
- package/out/packages/zqlite/src/internal/sql-inline.js.map +0 -1
- package/out/packages/zqlite/src/internal/sql.js.map +0 -1
- package/out/packages/zqlite/src/internal/statement-cache.js.map +0 -1
- package/out/packages/zqlite/src/query-builder.js.map +0 -1
- package/out/packages/zqlite/src/query-delegate.js.map +0 -1
- package/out/packages/zqlite/src/resolve-scalar-subqueries.js.map +0 -1
- package/out/packages/zqlite/src/sqlite-cost-model.js.map +0 -1
- package/out/packages/zqlite/src/sqlite-stat-fanout.js.map +0 -1
- package/out/packages/zqlite/src/table-source.js.map +0 -1
- /package/out/{packages/analyze-query → analyze-query}/src/bin-analyze.js +0 -0
- /package/out/{packages/analyze-query → analyze-query}/src/bin-transform.js +0 -0
- /package/out/{packages/ast-to-zql → ast-to-zql}/src/ast-to-zql.js +0 -0
- /package/out/{packages/ast-to-zql → ast-to-zql}/src/bin.js +0 -0
- /package/out/{packages/ast-to-zql → ast-to-zql}/src/format.js +0 -0
- /package/out/{packages/datadog → datadog}/src/datadog-log-sink.js +0 -0
- /package/out/{packages/otel → otel}/src/enabled.js +0 -0
- /package/out/{packages/otel → otel}/src/log-options.js +0 -0
- /package/out/{packages/otel → otel}/src/maybe-time.js +0 -0
- /package/out/{packages/otel → otel}/src/span.js +0 -0
- /package/out/{packages/otel → otel}/src/version.js +0 -0
- /package/out/{packages/replicache → replicache}/src/async-iterable-to-array.js +0 -0
- /package/out/{packages/replicache → replicache}/src/bg-interval.js +0 -0
- /package/out/{packages/replicache → replicache}/src/btree/diff.js +0 -0
- /package/out/{packages/replicache → replicache}/src/btree/node.js +0 -0
- /package/out/{packages/replicache → replicache}/src/btree/read.js +0 -0
- /package/out/{packages/replicache → replicache}/src/btree/splice.js +0 -0
- /package/out/{packages/replicache → replicache}/src/btree/write.js +0 -0
- /package/out/{packages/replicache → replicache}/src/call-default-fetch.js +0 -0
- /package/out/{packages/replicache → replicache}/src/config.js +0 -0
- /package/out/{packages/replicache → replicache}/src/connection-loop-delegates.js +0 -0
- /package/out/{packages/replicache → replicache}/src/connection-loop.js +0 -0
- /package/out/{packages/replicache → replicache}/src/cookies.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/chunk.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/gc.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/key.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/lazy-store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/store-impl.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/dag/visitor.js +0 -0
- /package/out/{packages/replicache → replicache}/src/db/commit.js +0 -0
- /package/out/{packages/replicache → replicache}/src/db/index.js +0 -0
- /package/out/{packages/replicache → replicache}/src/db/read.js +0 -0
- /package/out/{packages/replicache → replicache}/src/db/rebase.js +0 -0
- /package/out/{packages/replicache → replicache}/src/db/write.js +0 -0
- /package/out/{packages/replicache → replicache}/src/deleted-clients.js +0 -0
- /package/out/{packages/replicache → replicache}/src/error-responses.js +0 -0
- /package/out/{packages/replicache → replicache}/src/expo-sqlite.js +0 -0
- /package/out/{packages/replicache → replicache}/src/frozen-json.js +0 -0
- /package/out/{packages/replicache → replicache}/src/get-default-puller.js +0 -0
- /package/out/{packages/replicache → replicache}/src/get-default-pusher.js +0 -0
- /package/out/{packages/replicache → replicache}/src/get-kv-store-provider.js +0 -0
- /package/out/{packages/replicache → replicache}/src/hash.js +0 -0
- /package/out/{packages/replicache → replicache}/src/http-request-info.js +0 -0
- /package/out/{packages/replicache → replicache}/src/impl.js +0 -0
- /package/out/{packages/replicache → replicache}/src/index-defs.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/expo-sqlite/store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/idb-store-with-mem-fallback.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/idb-store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/mem-store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/op-sqlite/store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/op-sqlite/types.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/read-impl.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/sqlite-store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/throw-if-closed.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/write-impl-base.js +0 -0
- /package/out/{packages/replicache → replicache}/src/kv/write-impl.js +0 -0
- /package/out/{packages/replicache → replicache}/src/lazy.js +0 -0
- /package/out/{packages/replicache → replicache}/src/log-options.js +0 -0
- /package/out/{packages/replicache → replicache}/src/make-idb-name.js +0 -0
- /package/out/{packages/replicache → replicache}/src/mutation-recovery.js +0 -0
- /package/out/{packages/replicache → replicache}/src/new-client-channel.js +0 -0
- /package/out/{packages/replicache → replicache}/src/on-persist-channel.js +0 -0
- /package/out/{packages/replicache → replicache}/src/op-sqlite.js +0 -0
- /package/out/{packages/replicache → replicache}/src/patch-operation.js +0 -0
- /package/out/{packages/replicache → replicache}/src/pending-mutations.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/client-gc.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/client-group-gc.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/client-groups.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/clients.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/collect-idb-databases.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/gather-mem-only-visitor.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/gather-not-cached-visitor.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/heartbeat.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/idb-databases-store-db-name.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/idb-databases-store.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/make-client-id.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/persist.js +0 -0
- /package/out/{packages/replicache → replicache}/src/persist/refresh.js +0 -0
- /package/out/{packages/replicache → replicache}/src/process-scheduler.js +0 -0
- /package/out/{packages/replicache → replicache}/src/pusher.js +0 -0
- /package/out/{packages/replicache → replicache}/src/replicache-impl.js +0 -0
- /package/out/{packages/replicache → replicache}/src/report-error.js +0 -0
- /package/out/{packages/replicache → replicache}/src/request-idle.js +0 -0
- /package/out/{packages/replicache → replicache}/src/scan-iterator.js +0 -0
- /package/out/{packages/replicache → replicache}/src/scan-options.js +0 -0
- /package/out/{packages/replicache → replicache}/src/set-interval-with-signal.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sqlite.js +0 -0
- /package/out/{packages/replicache → replicache}/src/subscriptions.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/diff.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/ids.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/patch.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/pull-error.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/pull.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/push.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/request-id.js +0 -0
- /package/out/{packages/replicache → replicache}/src/sync/sync-head-name.js +0 -0
- /package/out/{packages/replicache → replicache}/src/to-error.js +0 -0
- /package/out/{packages/replicache → replicache}/src/transaction-closed-error.js +0 -0
- /package/out/{packages/replicache → replicache}/src/transactions.js +0 -0
- /package/out/{packages/replicache → replicache}/src/version.js +0 -0
- /package/out/{packages/replicache → replicache}/src/with-transactions.js +0 -0
- /package/out/{packages/shared → shared}/src/abort-error.js +0 -0
- /package/out/{packages/shared → shared}/src/arrays.js +0 -0
- /package/out/{packages/shared → shared}/src/asserts.js +0 -0
- /package/out/{packages/shared → shared}/src/bigint-json.js +0 -0
- /package/out/{packages/shared → shared}/src/binary-search.js +0 -0
- /package/out/{packages/shared → shared}/src/broadcast-channel.js +0 -0
- /package/out/{packages/shared → shared}/src/browser-env.js +0 -0
- /package/out/{packages/shared → shared}/src/btree-set.js +0 -0
- /package/out/{packages/shared → shared}/src/cache.js +0 -0
- /package/out/{packages/shared → shared}/src/centroid.js +0 -0
- /package/out/{packages/shared → shared}/src/config.js +0 -0
- /package/out/{packages/shared → shared}/src/custom-key-map.js +0 -0
- /package/out/{packages/shared → shared}/src/custom-key-set.js +0 -0
- /package/out/{packages/shared → shared}/src/deep-clone.js +0 -0
- /package/out/{packages/shared → shared}/src/deep-merge.js +0 -0
- /package/out/{packages/shared → shared}/src/document-visible.js +0 -0
- /package/out/{packages/shared → shared}/src/dotenv.js +0 -0
- /package/out/{packages/shared → shared}/src/error.js +0 -0
- /package/out/{packages/shared → shared}/src/has-own.js +0 -0
- /package/out/{packages/shared → shared}/src/hash.js +0 -0
- /package/out/{packages/shared → shared}/src/json-schema.js +0 -0
- /package/out/{packages/shared → shared}/src/json.js +0 -0
- /package/out/{packages/shared → shared}/src/logging-test-utils.js +0 -0
- /package/out/{packages/shared → shared}/src/logging.js +0 -0
- /package/out/{packages/shared → shared}/src/map.js +0 -0
- /package/out/{packages/shared → shared}/src/must.js +0 -0
- /package/out/{packages/shared → shared}/src/navigator.js +0 -0
- /package/out/{packages/shared → shared}/src/object-traversal.js +0 -0
- /package/out/{packages/shared → shared}/src/objects.js +0 -0
- /package/out/{packages/shared → shared}/src/options.js +0 -0
- /package/out/{packages/shared → shared}/src/parse-big-int.js +0 -0
- /package/out/{packages/shared → shared}/src/promise-race.js +0 -0
- /package/out/{packages/shared → shared}/src/queue.js +0 -0
- /package/out/{packages/shared → shared}/src/rand.js +0 -0
- /package/out/{packages/shared → shared}/src/random-uint64.js +0 -0
- /package/out/{packages/shared → shared}/src/random-values.js +0 -0
- /package/out/{packages/shared → shared}/src/record-proxy.js +0 -0
- /package/out/{packages/shared → shared}/src/resolved-promises.js +0 -0
- /package/out/{packages/shared → shared}/src/ring-buffer.js +0 -0
- /package/out/{packages/shared → shared}/src/sentinels.js +0 -0
- /package/out/{packages/shared → shared}/src/set-utils.js +0 -0
- /package/out/{packages/shared → shared}/src/size-of-value.js +0 -0
- /package/out/{packages/shared → shared}/src/sleep.js +0 -0
- /package/out/{packages/shared → shared}/src/sorted-entries.js +0 -0
- /package/out/{packages/shared → shared}/src/string-compare.js +0 -0
- /package/out/{packages/shared → shared}/src/subscribable.js +0 -0
- /package/out/{packages/shared → shared}/src/tdigest-schema.js +0 -0
- /package/out/{packages/shared → shared}/src/tdigest.js +0 -0
- /package/out/{packages/z2s → z2s}/src/compiler.js +0 -0
- /package/out/{packages/z2s → z2s}/src/sql.js +0 -0
- /package/out/{packages/zero → zero}/src/server/runner/main.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/auth/auth.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/auth/jwt.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/auth/load-permissions.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/auth/read-authorizer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/auth/write-authorizer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/config/network.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/config/normalize.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/config/server-context.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/config/zero-config.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/custom/fetch.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/custom-queries/transform-query.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/create.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/delete-lite-db.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/lite-tables.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/migration-lite.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/migration.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/mode-enum.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/pg-copy-binary.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/pg-copy.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/pg-to-lite.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/pg-type-parser.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/run-transaction.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/specs.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/statements.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/transaction-pool.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/db/warmup.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/observability/events.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/observability/metrics.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/scripts/decommission.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/scripts/deploy-permissions.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/inspector-delegate.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/logging.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/otel-diag-logger.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/otel-log-sink.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/priority-op.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/runner/main.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/runner/run-worker.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/runner/runtime.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/runner/zero-dispatcher.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/worker-dispatcher.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/server/worker-urls.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/common/backfill-manager.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/common/change-stream-multiplexer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/common/replica-schema.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/custom/change-source.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/backfill-metadata.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/backfill-stream.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/change-source.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/decommission.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/initial-sync.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/logical-replication/binary-reader.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/logical-replication/pgoutput-parser.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/logical-replication/stream.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/lsn.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/replication-slots.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/schema/ddl.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/schema/init.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/schema/published.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/schema/shard.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/pg/schema/validation.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/control.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/data.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/downstream.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/json.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/path.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/status.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/current/upstream.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-source/protocol/mod.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/backup-monitor.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/broadcast.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/change-streamer-http.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/change-streamer-service.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/change-streamer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/forwarder.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/replica-monitor.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/schema/init.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/schema/tables.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/snapshot.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/storer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/change-streamer/subscriber.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/heapz.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/http-service.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/life-cycle.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/limiter/sliding-window-limiter.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/litestream/commands.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/mutagen/error.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/mutagen/mutagen.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/mutagen/pusher.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/change-processor.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/incremental-sync.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/notifier.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/replication-status.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/replicator.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/reporter/recorder.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/reporter/report-schema.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/schema/change-log.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/schema/column-metadata.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/schema/constants.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/schema/replication-state.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/schema/table-metadata.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/write-worker-client.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/replicator/write-worker.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/run-ast.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/runner.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/running-state.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/shadow-sync/shadow-sync-service.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/statz.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/active-users-gauge.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/client-handler.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/client-schema.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/connection-context-manager.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/cvr-purger.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/cvr.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/drain-coordinator.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/pipeline-driver.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/row-record-cache.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/row-set-signature.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/schema/cvr.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/schema/init.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/schema/types.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/snapshotter.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/tracer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/ttl-clock.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/services/view-syncer/view-syncer.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/configuration-error.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/error-with-level.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/http.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/lexi-version.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/lite.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/names.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/pg-data-type.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/pg-types.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/pg-versions.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/pg.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/processes.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/profiler.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/row-key.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/shards.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/sql.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/state-version.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/streams.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/strings.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/subscription.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/timeout.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/url-params.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/websocket-handoff.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/types/ws.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/workers/connect-params.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/workers/connection.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/workers/mutator.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/workers/replicator.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/workers/syncer-ws-message-handler.js +0 -0
- /package/out/{packages/zero-cache → zero-cache}/src/workers/syncer.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/active-clients-manager.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/bindings.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/client-error-kind-enum.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/connection-manager.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/connection.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/context.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/crud.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/custom.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/delete-clients-manager.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/enable-analytics.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/error.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/http-string.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/inspector/client-group.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/inspector/client.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/inspector/html-dialog-prompt.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/inspector/inspector.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/inspector/lazy-inspector.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/inspector/query.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/ivm-branch.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/keys.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/log-options.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/make-mutate-property.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/make-replicache-mutators.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/metric-name-enum.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/metrics.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/mutation-tracker.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/mutator-proxy.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/options.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/query-manager.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/reload-error-handler.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/server-option.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/zero-poke-handler.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/zero-rep.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/client/zero.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/mod.js +0 -0
- /package/out/{packages/zero-client → zero-client}/src/util/nanoid.js +0 -0
- /package/out/{packages/zero-pg → zero-pg}/src/mod.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/analyze-query-result.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/application-error.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/ast.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/change-desired-queries.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/client-schema.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/close-connection.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/connect.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/custom-queries.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/data.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/delete-clients.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/down.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/error-kind-enum.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/error-origin-enum.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/error-reason-enum.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/error.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/inspect-down.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/inspect-up.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/mutate-server.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/mutation-id.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/mutation-type-enum.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/mutation.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/mutations-patch.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/ping.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/poke.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/pong.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/primary-key.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/protocol-version.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/pull.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/push.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/queries-patch.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/query-hash.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/query-server.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/row-patch.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/up.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/update-auth.js +0 -0
- /package/out/{packages/zero-protocol → zero-protocol}/src/version.js +0 -0
- /package/out/{packages/zero-react → zero-react}/src/bindings.js +0 -0
- /package/out/{packages/zero-react → zero-react}/src/mod.js +0 -0
- /package/out/{packages/zero-react → zero-react}/src/zero.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/builder/relationship-builder.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/builder/schema-builder.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/builder/table-builder.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/compiled-permissions.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/name-mapper.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/permissions.js +0 -0
- /package/out/{packages/zero-schema → zero-schema}/src/schema-config.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/adapters/drizzle.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/adapters/kysely.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/adapters/postgresjs.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/adapters/prisma.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/custom.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/logging.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/mod.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/pg-query-executor.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/process-mutations.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/push-processor.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/queries/process-queries.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/schema.js +0 -0
- /package/out/{packages/zero-server → zero-server}/src/zql-database.js +0 -0
- /package/out/{packages/zero-solid → zero-solid}/src/bindings.js +0 -0
- /package/out/{packages/zero-solid → zero-solid}/src/mod.js +0 -0
- /package/out/{packages/zero-solid → zero-solid}/src/zero.js +0 -0
- /package/out/{packages/zero-types → zero-types}/src/format.js +0 -0
- /package/out/{packages/zero-types → zero-types}/src/name-mapper.js +0 -0
- /package/out/{packages/zql → zql}/src/builder/builder.js +0 -0
- /package/out/{packages/zql → zql}/src/builder/debug-delegate.js +0 -0
- /package/out/{packages/zql → zql}/src/builder/filter.js +0 -0
- /package/out/{packages/zql → zql}/src/builder/like.js +0 -0
- /package/out/{packages/zql → zql}/src/error.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/array-view.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/cap.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/change.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/constraint.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/data.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/exists.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/fan-in.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/fan-out.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/filter-operators.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/filter-push.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/filter.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/flipped-join.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/join-utils.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/join.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/maybe-split-and-push-edit-change.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/memory-source.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/memory-storage.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/operator.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/push-accumulated.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/skip-yields.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/skip.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/source.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/stream.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/take.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/union-fan-in.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/union-fan-out.js +0 -0
- /package/out/{packages/zql → zql}/src/ivm/view-apply-change.js +0 -0
- /package/out/{packages/zql → zql}/src/mutate/crud.js +0 -0
- /package/out/{packages/zql → zql}/src/mutate/custom.js +0 -0
- /package/out/{packages/zql → zql}/src/mutate/mutator-registry.js +0 -0
- /package/out/{packages/zql → zql}/src/mutate/mutator.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-builder.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-connection.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-constraint.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-debug.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-fan-in.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-fan-out.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-graph.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-join.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-node.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-source.js +0 -0
- /package/out/{packages/zql → zql}/src/planner/planner-terminus.js +0 -0
- /package/out/{packages/zql → zql}/src/query/complete-ordering.js +0 -0
- /package/out/{packages/zql → zql}/src/query/create-builder.js +0 -0
- /package/out/{packages/zql → zql}/src/query/error.js +0 -0
- /package/out/{packages/zql → zql}/src/query/escape-like.js +0 -0
- /package/out/{packages/zql → zql}/src/query/expression.js +0 -0
- /package/out/{packages/zql → zql}/src/query/measure-push-operator.js +0 -0
- /package/out/{packages/zql → zql}/src/query/metrics-delegate.js +0 -0
- /package/out/{packages/zql → zql}/src/query/named.js +0 -0
- /package/out/{packages/zql → zql}/src/query/query-delegate-base.js +0 -0
- /package/out/{packages/zql → zql}/src/query/query-impl.js +0 -0
- /package/out/{packages/zql → zql}/src/query/query-internals.js +0 -0
- /package/out/{packages/zql → zql}/src/query/query-registry.js +0 -0
- /package/out/{packages/zql → zql}/src/query/query.js +0 -0
- /package/out/{packages/zql → zql}/src/query/runnable-query-impl.js +0 -0
- /package/out/{packages/zql → zql}/src/query/static-query.js +0 -0
- /package/out/{packages/zql → zql}/src/query/ttl.js +0 -0
- /package/out/{packages/zql → zql}/src/query/validate-input.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/database-storage.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/db.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/explain-queries.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/internal/sql-inline.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/internal/sql.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/internal/statement-cache.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/mod.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/query-builder.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/query-delegate.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/resolve-scalar-subqueries.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/sqlite-cost-model.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/sqlite-stat-fanout.js +0 -0
- /package/out/{packages/zqlite → zqlite}/src/table-source.js +0 -0
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
1
|
//#region \0rolldown/runtime.js
|
|
3
|
-
var __create = Object.create;
|
|
4
2
|
var __defProp = Object.defineProperty;
|
|
5
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __esmMin = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
10
|
-
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
11
6
|
var __exportAll = (all, no_symbols) => {
|
|
12
7
|
let target = {};
|
|
13
8
|
for (var name in all) __defProp(target, name, {
|
|
@@ -28,11 +23,5 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
28
23
|
return to;
|
|
29
24
|
};
|
|
30
25
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
31
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
32
|
-
value: mod,
|
|
33
|
-
enumerable: true
|
|
34
|
-
}) : target, mod));
|
|
35
|
-
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
|
-
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
37
26
|
//#endregion
|
|
38
|
-
export {
|
|
27
|
+
export { __exportAll, __reExport };
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { valita_exports } from "../../shared/src/valita.js";
|
|
2
|
+
import { createBuilder } from "../../zql/src/query/create-builder.js";
|
|
3
|
+
import { Zero } from "../../zero-client/src/client/zero.js";
|
|
4
|
+
import "../../shared/src/dotenv.js";
|
|
5
|
+
import { logLevel, logOptions } from "../../otel/src/log-options.js";
|
|
6
|
+
import { colorConsole } from "../../shared/src/logging.js";
|
|
7
|
+
import { parseOptions } from "../../shared/src/options.js";
|
|
8
|
+
import { ZERO_ENV_VAR_PREFIX } from "../../zero-cache/src/config/zero-config.js";
|
|
9
|
+
import { Console } from "node:console";
|
|
10
|
+
import { styleText } from "node:util";
|
|
11
|
+
import { WebSocket } from "ws";
|
|
12
|
+
//#region ../analyze-query/src/analyze-cli.ts
|
|
13
|
+
var options = {
|
|
14
|
+
zeroCacheURL: {
|
|
15
|
+
type: valita_exports.string().optional(),
|
|
16
|
+
desc: ["URL of the remote zero-cache to analyze against.", "Accepts http(s):// or ws(s):// (ws(s) is the transport actually used)."]
|
|
17
|
+
},
|
|
18
|
+
adminPassword: {
|
|
19
|
+
type: valita_exports.string().optional(),
|
|
20
|
+
desc: ["Admin password for zero-cache.", "Required when the server is configured with one; ignored in dev mode."]
|
|
21
|
+
},
|
|
22
|
+
authToken: {
|
|
23
|
+
type: valita_exports.string().optional(),
|
|
24
|
+
desc: ["Raw JWT forwarded to zero-cache.", "Used server-side to fill permission variables for the query."]
|
|
25
|
+
},
|
|
26
|
+
cookie: {
|
|
27
|
+
type: valita_exports.string().optional(),
|
|
28
|
+
desc: [
|
|
29
|
+
"Cookie header value sent on the WebSocket upgrade request,",
|
|
30
|
+
"e.g. `session=abc; foo=bar`. Use this when zero-cache is behind",
|
|
31
|
+
"a proxy that resolves auth via cookies. Merged with --headers-json",
|
|
32
|
+
"(--cookie wins on conflict)."
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
headersJson: {
|
|
36
|
+
type: valita_exports.string().optional(),
|
|
37
|
+
desc: [
|
|
38
|
+
"JSON object of arbitrary headers to send on the WebSocket upgrade",
|
|
39
|
+
"request, e.g. `{\"x-api-key\":\"...\"}`. Escape hatch for exotic auth",
|
|
40
|
+
"schemes; prefer --auth-token or --cookie when possible."
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
userId: {
|
|
44
|
+
type: valita_exports.string().optional(),
|
|
45
|
+
desc: ["Optional userID to report to zero-cache.", "Has no functional effect on analysis; defaults to \"analyze-cli\"."]
|
|
46
|
+
},
|
|
47
|
+
ast: {
|
|
48
|
+
type: valita_exports.string().optional(),
|
|
49
|
+
desc: ["JSON-encoded AST. Exactly one of --ast / --query / --query-name is required.", "The AST is sent to the server verbatim — provide it in server (post-mapping) form."]
|
|
50
|
+
},
|
|
51
|
+
query: {
|
|
52
|
+
type: valita_exports.string().optional(),
|
|
53
|
+
desc: ["ZQL query in chain form, e.g. `issue.related(\"comments\").limit(10)`.", "Evaluated against the schema you pass to runAnalyzeCLI."]
|
|
54
|
+
},
|
|
55
|
+
queryName: {
|
|
56
|
+
type: valita_exports.string().optional(),
|
|
57
|
+
desc: ["Name of a server-registered custom (named) query.", "The server resolves the name + args via its registered query handler."]
|
|
58
|
+
},
|
|
59
|
+
queryArgs: {
|
|
60
|
+
type: valita_exports.string().optional(),
|
|
61
|
+
desc: ["JSON-encoded array of arguments for --query-name. Defaults to `[]`."]
|
|
62
|
+
},
|
|
63
|
+
outputVendedRows: {
|
|
64
|
+
type: valita_exports.boolean().default(false),
|
|
65
|
+
desc: ["Include the rows read from the replica to execute the query.", "Each row appears once per read."]
|
|
66
|
+
},
|
|
67
|
+
outputSyncedRows: {
|
|
68
|
+
type: valita_exports.boolean().default(false),
|
|
69
|
+
desc: ["Include the rows that would be synced to the client."]
|
|
70
|
+
},
|
|
71
|
+
log: {
|
|
72
|
+
...logOptions,
|
|
73
|
+
level: logLevel.default("error")
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
var stderrConsole = new Console({
|
|
77
|
+
stdout: process.stderr,
|
|
78
|
+
stderr: process.stderr
|
|
79
|
+
});
|
|
80
|
+
var stderrLogSink = { log(level, context, ...args) {
|
|
81
|
+
const ctx = context ? Object.entries(context).map(([k, v]) => v === void 0 ? k : `${k}=${v}`) : [];
|
|
82
|
+
stderrConsole[level](...ctx, ...args);
|
|
83
|
+
} };
|
|
84
|
+
/**
|
|
85
|
+
* Entry point for a user's `cli.ts`. Parses argv, connects to a remote
|
|
86
|
+
* zero-cache by standing up an in-process Zero client (in-memory storage,
|
|
87
|
+
* no subscriptions), calls the inspector's `analyze-query` RPC, and
|
|
88
|
+
* renders the result. Intended to be called as:
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* import {schema} from './schema.ts';
|
|
92
|
+
* import {runAnalyzeCLI} from '@rocicorp/zero/analyze';
|
|
93
|
+
* await runAnalyzeCLI({schema});
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* Exits the process with code 1 on error.
|
|
97
|
+
*/
|
|
98
|
+
async function runAnalyzeCLI(opts) {
|
|
99
|
+
const config = parseOptions(options, {
|
|
100
|
+
argv: (opts.argv ?? process.argv.slice(2)).map((s) => s.replaceAll("\n", " ")),
|
|
101
|
+
envNamePrefix: ZERO_ENV_VAR_PREFIX,
|
|
102
|
+
description: [{
|
|
103
|
+
header: "analyze-query (remote)",
|
|
104
|
+
content: `Analyze a ZQL query against a remote zero-cache.
|
|
105
|
+
|
|
106
|
+
Connects to zero-cache's inspector protocol and reports the server-observed
|
|
107
|
+
row scans, SQLite query plans, and timings.`
|
|
108
|
+
}, {
|
|
109
|
+
header: "Examples",
|
|
110
|
+
content: ` node cli.ts --zero-cache-url=https://zero.example.com \\
|
|
111
|
+
--admin-password="$ZERO_ADMIN_PASSWORD" \\
|
|
112
|
+
--query='issue.related("comments").limit(10)'
|
|
113
|
+
|
|
114
|
+
node cli.ts --zero-cache-url=http://localhost:4848 \\
|
|
115
|
+
--ast='\\{"table": "issue", "limit": 5\\}'
|
|
116
|
+
|
|
117
|
+
node cli.ts --zero-cache-url=http://localhost:4848 \\
|
|
118
|
+
--query-name=issueList --query-args='[]'`
|
|
119
|
+
}]
|
|
120
|
+
});
|
|
121
|
+
if (!config.zeroCacheURL) {
|
|
122
|
+
colorConsole.error("--zero-cache-url is required. See --help for usage.");
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
const plan = buildQueryPlan(config);
|
|
126
|
+
const handshakeHeaders = resolveHandshakeHeaders(config);
|
|
127
|
+
if (Object.keys(handshakeHeaders).length > 0) installWebSocketHeaderShim(handshakeHeaders);
|
|
128
|
+
globalThis.TESTING ??= false;
|
|
129
|
+
const z = new Zero({
|
|
130
|
+
schema: opts.schema,
|
|
131
|
+
server: config.zeroCacheURL,
|
|
132
|
+
auth: config.authToken,
|
|
133
|
+
userID: config.userId ?? "analyze-cli",
|
|
134
|
+
kvStore: "mem",
|
|
135
|
+
logLevel: config.log.level,
|
|
136
|
+
logSink: stderrLogSink
|
|
137
|
+
});
|
|
138
|
+
let result;
|
|
139
|
+
try {
|
|
140
|
+
if (!await z.inspector.authenticate(config.adminPassword ?? "")) throw new Error("admin password rejected (or --admin-password is required)");
|
|
141
|
+
const rpcOptions = {
|
|
142
|
+
vendedRows: config.outputVendedRows,
|
|
143
|
+
syncedRows: config.outputSyncedRows
|
|
144
|
+
};
|
|
145
|
+
if (plan.kind === "ast") result = await z.inspector.analyzeServerAST(plan.ast, rpcOptions);
|
|
146
|
+
else if (plan.kind === "named") result = await z.inspector.analyzeNamedQuery(plan.name, plan.args, rpcOptions);
|
|
147
|
+
else {
|
|
148
|
+
const built = buildZqlQuery(plan.text, createBuilder(opts.schema));
|
|
149
|
+
result = await z.inspector.analyzeQuery(built, rpcOptions);
|
|
150
|
+
}
|
|
151
|
+
} catch (e) {
|
|
152
|
+
colorConsole.error(e instanceof Error ? e.message : String(e));
|
|
153
|
+
await z.close().catch(() => {});
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
renderResult(result, {
|
|
157
|
+
outputSyncedRows: config.outputSyncedRows,
|
|
158
|
+
outputVendedRows: config.outputVendedRows
|
|
159
|
+
});
|
|
160
|
+
await z.close();
|
|
161
|
+
}
|
|
162
|
+
function buildQueryPlan(config) {
|
|
163
|
+
const selectors = [
|
|
164
|
+
config.ast !== void 0 && "ast",
|
|
165
|
+
config.query !== void 0 && "query",
|
|
166
|
+
config.queryName !== void 0 && "queryName"
|
|
167
|
+
].filter(Boolean);
|
|
168
|
+
if (selectors.length === 0) {
|
|
169
|
+
colorConsole.error("Exactly one of --ast / --query / --query-name is required.");
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
if (selectors.length > 1) {
|
|
173
|
+
colorConsole.error(`Only one of --ast / --query / --query-name may be provided; got: ${selectors.join(", ")}`);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
if (config.ast !== void 0) return {
|
|
177
|
+
kind: "ast",
|
|
178
|
+
ast: JSON.parse(config.ast)
|
|
179
|
+
};
|
|
180
|
+
if (config.query !== void 0) return {
|
|
181
|
+
kind: "zql",
|
|
182
|
+
text: config.query
|
|
183
|
+
};
|
|
184
|
+
const args = config.queryArgs ? JSON.parse(config.queryArgs) : [];
|
|
185
|
+
return {
|
|
186
|
+
kind: "named",
|
|
187
|
+
name: config.queryName,
|
|
188
|
+
args
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function buildZqlQuery(queryString, builder) {
|
|
192
|
+
return new Function("builder", `return builder.${queryString};`)(builder);
|
|
193
|
+
}
|
|
194
|
+
function resolveHandshakeHeaders(config) {
|
|
195
|
+
const headers = {};
|
|
196
|
+
if (config.headersJson !== void 0) {
|
|
197
|
+
let parsed;
|
|
198
|
+
try {
|
|
199
|
+
parsed = JSON.parse(config.headersJson);
|
|
200
|
+
} catch (e) {
|
|
201
|
+
colorConsole.error(`--headers-json is not valid JSON: ${e instanceof Error ? e.message : String(e)}`);
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
205
|
+
colorConsole.error("--headers-json must be a JSON object.");
|
|
206
|
+
process.exit(1);
|
|
207
|
+
}
|
|
208
|
+
for (const [k, val] of Object.entries(parsed)) {
|
|
209
|
+
if (typeof val !== "string") {
|
|
210
|
+
colorConsole.error(`--headers-json values must be strings; got ${typeof val} for "${k}".`);
|
|
211
|
+
process.exit(1);
|
|
212
|
+
}
|
|
213
|
+
headers[k] = val;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (config.cookie !== void 0) headers.cookie = config.cookie;
|
|
217
|
+
return headers;
|
|
218
|
+
}
|
|
219
|
+
function installWebSocketHeaderShim(headers) {
|
|
220
|
+
class HeaderInjectingWebSocket extends WebSocket {
|
|
221
|
+
constructor(url, protocols) {
|
|
222
|
+
super(url, protocols, { headers });
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
globalThis.WebSocket = HeaderInjectingWebSocket;
|
|
226
|
+
}
|
|
227
|
+
function renderResult(result, opts) {
|
|
228
|
+
if (opts.outputSyncedRows) {
|
|
229
|
+
colorConsole.log(styleText(["blue", "bold"], "=== Synced Rows: ===\n"));
|
|
230
|
+
for (const [table, rows] of Object.entries(result.syncedRows ?? {})) colorConsole.log(styleText("bold", table + ":"), rows);
|
|
231
|
+
}
|
|
232
|
+
colorConsole.log(styleText(["blue", "bold"], "=== Query Stats: ===\n"));
|
|
233
|
+
colorConsole.log(styleText("bold", "total synced rows:"), result.syncedRowCount);
|
|
234
|
+
const readRowCountsByQuery = result.readRowCountsByQuery ?? {};
|
|
235
|
+
let totalRowsRead = 0;
|
|
236
|
+
for (const table of Object.keys(readRowCountsByQuery).sort()) {
|
|
237
|
+
const counts = readRowCountsByQuery[table];
|
|
238
|
+
for (const n of Object.values(counts)) totalRowsRead += n;
|
|
239
|
+
colorConsole.log(styleText("bold", `${table} vended:`), counts);
|
|
240
|
+
}
|
|
241
|
+
colorConsole.log(styleText("bold", "Rows Read (into JS):"), colorRowsConsidered(totalRowsRead));
|
|
242
|
+
const duration = result.elapsed ?? result.end - result.start;
|
|
243
|
+
colorConsole.log(styleText("bold", "time:"), colorTime(duration), "ms");
|
|
244
|
+
if (opts.outputVendedRows) {
|
|
245
|
+
colorConsole.log(styleText(["blue", "bold"], "=== JS Row Scan Values: ===\n"));
|
|
246
|
+
for (const [table, rows] of Object.entries(result.readRows ?? {})) colorConsole.log(styleText("bold", `${table}:`), rows);
|
|
247
|
+
}
|
|
248
|
+
colorConsole.log(styleText(["blue", "bold"], "\n=== Rows Scanned (by SQLite): ===\n"));
|
|
249
|
+
const dbScansByQuery = result.dbScansByQuery ?? {};
|
|
250
|
+
let totalNVisit = 0;
|
|
251
|
+
for (const [table, queries] of Object.entries(dbScansByQuery)) {
|
|
252
|
+
colorConsole.log(styleText("bold", `${table}:`), queries);
|
|
253
|
+
for (const count of Object.values(queries)) totalNVisit += count;
|
|
254
|
+
}
|
|
255
|
+
colorConsole.log(styleText("bold", "total rows scanned:"), colorRowsConsidered(totalNVisit));
|
|
256
|
+
colorConsole.log(styleText(["blue", "bold"], "\n\n=== Query Plans: ===\n"));
|
|
257
|
+
const plans = result.sqlitePlans ?? {};
|
|
258
|
+
for (const [query, plan] of Object.entries(plans)) {
|
|
259
|
+
colorConsole.log(styleText("bold", "query"), query);
|
|
260
|
+
colorConsole.log(plan.map((row, i) => colorPlanRow(row, i)).join("\n"));
|
|
261
|
+
colorConsole.log("\n");
|
|
262
|
+
}
|
|
263
|
+
if (result.warnings.length > 0) {
|
|
264
|
+
colorConsole.log(styleText(["yellow", "bold"], "=== Warnings: ===\n"));
|
|
265
|
+
for (const w of result.warnings) colorConsole.log(styleText("yellow", w));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function colorTime(duration) {
|
|
269
|
+
if (duration < 100) return styleText("green", duration.toFixed(2) + "ms");
|
|
270
|
+
else if (duration < 1e3) return styleText("yellow", duration.toFixed(2) + "ms");
|
|
271
|
+
return styleText("red", duration.toFixed(2) + "ms");
|
|
272
|
+
}
|
|
273
|
+
function colorRowsConsidered(n) {
|
|
274
|
+
if (n < 1e3) return styleText("green", n.toString());
|
|
275
|
+
else if (n < 1e4) return styleText("yellow", n.toString());
|
|
276
|
+
return styleText("red", n.toString());
|
|
277
|
+
}
|
|
278
|
+
function colorPlanRow(row, i) {
|
|
279
|
+
if (row.includes("SCAN")) {
|
|
280
|
+
if (i === 0) return styleText("yellow", row);
|
|
281
|
+
return styleText("red", row);
|
|
282
|
+
}
|
|
283
|
+
return styleText("green", row);
|
|
284
|
+
}
|
|
285
|
+
//#endregion
|
|
286
|
+
export { runAnalyzeCLI };
|
|
287
|
+
|
|
288
|
+
//# sourceMappingURL=analyze-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-cli.js","names":[],"sources":["../../../../analyze-query/src/analyze-cli.ts"],"sourcesContent":["import '../../shared/src/dotenv.ts';\n\nimport {Console} from 'node:console';\nimport {styleText} from 'node:util';\nimport type {LogSink} from '@rocicorp/logger';\nimport {WebSocket as NodeWebSocket} from 'ws';\nimport {logLevel, logOptions} from '../../otel/src/log-options.ts';\nimport {colorConsole} from '../../shared/src/logging.ts';\nimport {parseOptions} from '../../shared/src/options.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {ZERO_ENV_VAR_PREFIX} from '../../zero-cache/src/config/zero-config.ts';\nimport {Zero} from '../../zero-client/src/client/zero.ts';\nimport type {AnalyzeQueryResult} from '../../zero-protocol/src/analyze-query-result.ts';\nimport type {AST} from '../../zero-protocol/src/ast.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport {createBuilder} from '../../zql/src/query/create-builder.ts';\nimport type {AnyQuery} from '../../zql/src/query/query.ts';\nimport type {SchemaQuery} from '../../zql/src/query/schema-query.ts';\n\nexport type AnalyzeCLIOptions = {\n schema: Schema;\n /** Defaults to `process.argv.slice(2)`. */\n argv?: readonly string[] | undefined;\n};\n\nconst options = {\n zeroCacheURL: {\n type: v.string().optional(),\n desc: [\n 'URL of the remote zero-cache to analyze against.',\n 'Accepts http(s):// or ws(s):// (ws(s) is the transport actually used).',\n ],\n },\n adminPassword: {\n type: v.string().optional(),\n desc: [\n 'Admin password for zero-cache.',\n 'Required when the server is configured with one; ignored in dev mode.',\n ],\n },\n authToken: {\n type: v.string().optional(),\n desc: [\n 'Raw JWT forwarded to zero-cache.',\n 'Used server-side to fill permission variables for the query.',\n ],\n },\n cookie: {\n type: v.string().optional(),\n desc: [\n 'Cookie header value sent on the WebSocket upgrade request,',\n 'e.g. `session=abc; foo=bar`. Use this when zero-cache is behind',\n 'a proxy that resolves auth via cookies. Merged with --headers-json',\n '(--cookie wins on conflict).',\n ],\n },\n headersJson: {\n type: v.string().optional(),\n desc: [\n 'JSON object of arbitrary headers to send on the WebSocket upgrade',\n 'request, e.g. `{\"x-api-key\":\"...\"}`. Escape hatch for exotic auth',\n 'schemes; prefer --auth-token or --cookie when possible.',\n ],\n },\n userId: {\n type: v.string().optional(),\n desc: [\n 'Optional userID to report to zero-cache.',\n 'Has no functional effect on analysis; defaults to \"analyze-cli\".',\n ],\n },\n ast: {\n type: v.string().optional(),\n desc: [\n 'JSON-encoded AST. Exactly one of --ast / --query / --query-name is required.',\n 'The AST is sent to the server verbatim — provide it in server (post-mapping) form.',\n ],\n },\n query: {\n type: v.string().optional(),\n desc: [\n 'ZQL query in chain form, e.g. `issue.related(\"comments\").limit(10)`.',\n 'Evaluated against the schema you pass to runAnalyzeCLI.',\n ],\n },\n queryName: {\n type: v.string().optional(),\n desc: [\n 'Name of a server-registered custom (named) query.',\n 'The server resolves the name + args via its registered query handler.',\n ],\n },\n queryArgs: {\n type: v.string().optional(),\n desc: [\n 'JSON-encoded array of arguments for --query-name. Defaults to `[]`.',\n ],\n },\n outputVendedRows: {\n type: v.boolean().default(false),\n desc: [\n 'Include the rows read from the replica to execute the query.',\n 'Each row appears once per read.',\n ],\n },\n outputSyncedRows: {\n type: v.boolean().default(false),\n desc: ['Include the rows that would be synced to the client.'],\n },\n log: {\n ...logOptions,\n level: logLevel.default('error'),\n },\n};\n\ntype QueryPlan =\n | {kind: 'ast'; ast: AST}\n | {kind: 'zql'; text: string}\n | {kind: 'named'; name: string; args: ReadonlyArray<unknown>};\n\n// Route all Zero client log output to stderr so stdout contains only the\n// analyze result. Shell redirection (`2>/dev/null`) can then cleanly silence\n// logs without affecting output.\nconst stderrConsole = new Console({\n stdout: process.stderr,\n stderr: process.stderr,\n});\nconst stderrLogSink: LogSink = {\n log(level, context, ...args) {\n const ctx = context\n ? Object.entries(context).map(([k, v]) =>\n v === undefined ? k : `${k}=${v}`,\n )\n : [];\n stderrConsole[level](...ctx, ...args);\n },\n};\n\n/**\n * Entry point for a user's `cli.ts`. Parses argv, connects to a remote\n * zero-cache by standing up an in-process Zero client (in-memory storage,\n * no subscriptions), calls the inspector's `analyze-query` RPC, and\n * renders the result. Intended to be called as:\n *\n * ```ts\n * import {schema} from './schema.ts';\n * import {runAnalyzeCLI} from '@rocicorp/zero/analyze';\n * await runAnalyzeCLI({schema});\n * ```\n *\n * Exits the process with code 1 on error.\n */\nexport async function runAnalyzeCLI(opts: AnalyzeCLIOptions): Promise<void> {\n const argv = (opts.argv ?? process.argv.slice(2)).map(s =>\n s.replaceAll('\\n', ' '),\n );\n\n const config = parseOptions(options, {\n argv,\n envNamePrefix: ZERO_ENV_VAR_PREFIX,\n description: [\n {\n header: 'analyze-query (remote)',\n content: `Analyze a ZQL query against a remote zero-cache.\n\n Connects to zero-cache's inspector protocol and reports the server-observed\n row scans, SQLite query plans, and timings.`,\n },\n {\n header: 'Examples',\n content: ` node cli.ts --zero-cache-url=https://zero.example.com \\\\\n --admin-password=\"$ZERO_ADMIN_PASSWORD\" \\\\\n --query='issue.related(\"comments\").limit(10)'\n\n node cli.ts --zero-cache-url=http://localhost:4848 \\\\\n --ast='\\\\{\"table\": \"issue\", \"limit\": 5\\\\}'\n\n node cli.ts --zero-cache-url=http://localhost:4848 \\\\\n --query-name=issueList --query-args='[]'`,\n },\n ],\n });\n\n if (!config.zeroCacheURL) {\n colorConsole.error('--zero-cache-url is required. See --help for usage.');\n process.exit(1);\n }\n\n const plan = buildQueryPlan(config);\n\n const handshakeHeaders = resolveHandshakeHeaders(config);\n if (Object.keys(handshakeHeaders).length > 0) {\n installWebSocketHeaderShim(handshakeHeaders);\n }\n\n // zero-client and replicache reference a build-time `TESTING` global that\n // bundlers replace with a boolean literal; under node there's no replacement,\n // so provide a runtime default.\n (globalThis as {TESTING?: boolean}).TESTING ??= false;\n\n const z = new Zero({\n schema: opts.schema,\n server: config.zeroCacheURL,\n auth: config.authToken,\n userID: config.userId ?? 'analyze-cli',\n kvStore: 'mem',\n logLevel: config.log.level,\n logSink: stderrLogSink,\n });\n\n let result: AnalyzeQueryResult;\n try {\n const authOk = await z.inspector.authenticate(config.adminPassword ?? '');\n if (!authOk) {\n throw new Error(\n 'admin password rejected (or --admin-password is required)',\n );\n }\n\n const rpcOptions = {\n vendedRows: config.outputVendedRows,\n syncedRows: config.outputSyncedRows,\n };\n\n if (plan.kind === 'ast') {\n result = await z.inspector.analyzeServerAST(plan.ast, rpcOptions);\n } else if (plan.kind === 'named') {\n result = await z.inspector.analyzeNamedQuery(\n plan.name,\n plan.args as ReadonlyArray<never>,\n rpcOptions,\n );\n } else {\n const built = buildZqlQuery(plan.text, createBuilder(opts.schema));\n result = await z.inspector.analyzeQuery(built, rpcOptions);\n }\n } catch (e) {\n colorConsole.error(e instanceof Error ? e.message : String(e));\n await z.close().catch(() => {});\n process.exit(1);\n }\n\n renderResult(result, {\n outputSyncedRows: config.outputSyncedRows,\n outputVendedRows: config.outputVendedRows,\n });\n\n await z.close();\n}\n\nfunction buildQueryPlan(config: {\n ast?: string | undefined;\n query?: string | undefined;\n queryName?: string | undefined;\n queryArgs?: string | undefined;\n}): QueryPlan {\n const selectors = [\n config.ast !== undefined && 'ast',\n config.query !== undefined && 'query',\n config.queryName !== undefined && 'queryName',\n ].filter(Boolean) as string[];\n\n if (selectors.length === 0) {\n colorConsole.error(\n 'Exactly one of --ast / --query / --query-name is required.',\n );\n process.exit(1);\n }\n if (selectors.length > 1) {\n colorConsole.error(\n `Only one of --ast / --query / --query-name may be provided; got: ${selectors.join(', ')}`,\n );\n process.exit(1);\n }\n\n if (config.ast !== undefined) {\n return {kind: 'ast', ast: JSON.parse(config.ast) as AST};\n }\n if (config.query !== undefined) {\n return {kind: 'zql', text: config.query};\n }\n const args = config.queryArgs\n ? (JSON.parse(config.queryArgs) as ReadonlyArray<unknown>)\n : [];\n return {kind: 'named', name: config.queryName as string, args};\n}\n\nfunction buildZqlQuery(\n queryString: string,\n builder: SchemaQuery<Schema>,\n): AnyQuery {\n const f = new Function('builder', `return builder.${queryString};`);\n return f(builder) as AnyQuery;\n}\n\nfunction resolveHandshakeHeaders(config: {\n cookie?: string | undefined;\n headersJson?: string | undefined;\n}): Record<string, string> {\n const headers: Record<string, string> = {};\n if (config.headersJson !== undefined) {\n let parsed: unknown;\n try {\n parsed = JSON.parse(config.headersJson);\n } catch (e) {\n colorConsole.error(\n `--headers-json is not valid JSON: ${e instanceof Error ? e.message : String(e)}`,\n );\n process.exit(1);\n }\n if (\n parsed === null ||\n typeof parsed !== 'object' ||\n Array.isArray(parsed)\n ) {\n colorConsole.error('--headers-json must be a JSON object.');\n process.exit(1);\n }\n for (const [k, val] of Object.entries(parsed)) {\n if (typeof val !== 'string') {\n colorConsole.error(\n `--headers-json values must be strings; got ${typeof val} for \"${k}\".`,\n );\n process.exit(1);\n }\n headers[k] = val;\n }\n }\n if (config.cookie !== undefined) {\n headers.cookie = config.cookie;\n }\n return headers;\n}\n\nfunction installWebSocketHeaderShim(headers: Record<string, string>): void {\n class HeaderInjectingWebSocket extends NodeWebSocket {\n constructor(url: string | URL, protocols?: string | string[]) {\n super(url, protocols, {headers});\n }\n }\n (globalThis as {WebSocket?: unknown}).WebSocket = HeaderInjectingWebSocket;\n}\n\nfunction renderResult(\n result: AnalyzeQueryResult,\n opts: {outputSyncedRows: boolean; outputVendedRows: boolean},\n) {\n if (opts.outputSyncedRows) {\n colorConsole.log(styleText(['blue', 'bold'], '=== Synced Rows: ===\\n'));\n for (const [table, rows] of Object.entries(result.syncedRows ?? {})) {\n colorConsole.log(styleText('bold', table + ':'), rows);\n }\n }\n\n colorConsole.log(styleText(['blue', 'bold'], '=== Query Stats: ===\\n'));\n colorConsole.log(\n styleText('bold', 'total synced rows:'),\n result.syncedRowCount,\n );\n\n const readRowCountsByQuery = result.readRowCountsByQuery ?? {};\n let totalRowsRead = 0;\n for (const table of Object.keys(readRowCountsByQuery).sort()) {\n const counts = readRowCountsByQuery[table];\n for (const n of Object.values(counts)) {\n totalRowsRead += n;\n }\n colorConsole.log(styleText('bold', `${table} vended:`), counts);\n }\n colorConsole.log(\n styleText('bold', 'Rows Read (into JS):'),\n colorRowsConsidered(totalRowsRead),\n );\n const duration = result.elapsed ?? result.end - result.start;\n colorConsole.log(styleText('bold', 'time:'), colorTime(duration), 'ms');\n\n if (opts.outputVendedRows) {\n colorConsole.log(\n styleText(['blue', 'bold'], '=== JS Row Scan Values: ===\\n'),\n );\n for (const [table, rows] of Object.entries(result.readRows ?? {})) {\n colorConsole.log(styleText('bold', `${table}:`), rows);\n }\n }\n\n colorConsole.log(\n styleText(['blue', 'bold'], '\\n=== Rows Scanned (by SQLite): ===\\n'),\n );\n const dbScansByQuery = result.dbScansByQuery ?? {};\n let totalNVisit = 0;\n for (const [table, queries] of Object.entries(dbScansByQuery)) {\n colorConsole.log(styleText('bold', `${table}:`), queries);\n for (const count of Object.values(queries)) {\n totalNVisit += count;\n }\n }\n colorConsole.log(\n styleText('bold', 'total rows scanned:'),\n colorRowsConsidered(totalNVisit),\n );\n\n colorConsole.log(styleText(['blue', 'bold'], '\\n\\n=== Query Plans: ===\\n'));\n const plans = result.sqlitePlans ?? {};\n for (const [query, plan] of Object.entries(plans)) {\n colorConsole.log(styleText('bold', 'query'), query);\n colorConsole.log(plan.map((row, i) => colorPlanRow(row, i)).join('\\n'));\n colorConsole.log('\\n');\n }\n\n if (result.warnings.length > 0) {\n colorConsole.log(styleText(['yellow', 'bold'], '=== Warnings: ===\\n'));\n for (const w of result.warnings) {\n colorConsole.log(styleText('yellow', w));\n }\n }\n}\n\nfunction colorTime(duration: number) {\n if (duration < 100) {\n return styleText('green', duration.toFixed(2) + 'ms');\n } else if (duration < 1000) {\n return styleText('yellow', duration.toFixed(2) + 'ms');\n }\n return styleText('red', duration.toFixed(2) + 'ms');\n}\n\nfunction colorRowsConsidered(n: number) {\n if (n < 1000) {\n return styleText('green', n.toString());\n } else if (n < 10000) {\n return styleText('yellow', n.toString());\n }\n return styleText('red', n.toString());\n}\n\nfunction colorPlanRow(row: string, i: number) {\n if (row.includes('SCAN')) {\n if (i === 0) {\n return styleText('yellow', row);\n }\n return styleText('red', row);\n }\n return styleText('green', row);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin-analyze.js","names":[],"sources":["../../../../analyze-query/src/bin-analyze.ts"],"sourcesContent":["import '../../shared/src/dotenv.ts';\n\nimport fs from 'node:fs';\nimport {styleText} from 'node:util';\nimport {astToZQL} from '../../ast-to-zql/src/ast-to-zql.ts';\nimport {formatOutput} from '../../ast-to-zql/src/format.ts';\nimport {logLevel, logOptions} from '../../otel/src/log-options.ts';\nimport {colorConsole, createLogContext} from '../../shared/src/logging.ts';\nimport {must} from '../../shared/src/must.ts';\nimport {parseOptions} from '../../shared/src/options.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {\n appOptions,\n shardOptions,\n ZERO_ENV_VAR_PREFIX,\n zeroOptions,\n} from '../../zero-cache/src/config/zero-config.ts';\nimport {\n computeZqlSpecs,\n mustGetTableSpec,\n} from '../../zero-cache/src/db/lite-tables.ts';\nimport {\n deployPermissionsOptions,\n loadSchemaAndPermissions,\n} from '../../zero-cache/src/scripts/permissions.ts';\nimport {runAst} from '../../zero-cache/src/services/run-ast.ts';\nimport {pgClient} from '../../zero-cache/src/types/pg.ts';\nimport {getShardID, upstreamSchema} from '../../zero-cache/src/types/shards.ts';\nimport type {AnalyzeQueryResult} from '../../zero-protocol/src/analyze-query-result.ts';\nimport {type AST} from '../../zero-protocol/src/ast.ts';\nimport {clientSchemaFrom} from '../../zero-schema/src/builder/schema-builder.ts';\nimport {clientToServer} from '../../zero-schema/src/name-mapper.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport {\n Debug,\n runtimeDebugFlags,\n} from '../../zql/src/builder/debug-delegate.ts';\nimport type {Source} from '../../zql/src/ivm/source.ts';\nimport {QueryDelegateBase} from '../../zql/src/query/query-delegate-base.ts';\nimport {newQuery} from '../../zql/src/query/query-impl.ts';\nimport {asQueryInternals} from '../../zql/src/query/query-internals.ts';\nimport {type PullRow, type Query} from '../../zql/src/query/query.ts';\nimport {Database} from '../../zqlite/src/db.ts';\nimport {explainQueries} from '../../zqlite/src/explain-queries.ts';\nimport {TableSource} from '../../zqlite/src/table-source.ts';\n\nconst options = {\n schema: deployPermissionsOptions.schema,\n replicaFile: {\n ...zeroOptions.replica.file,\n desc: ['File path to the SQLite replica to test queries against.'],\n },\n ast: {\n type: v.string().optional(),\n desc: [\n 'AST for the query to be analyzed. Only one of ast/query/hash should be provided.',\n ],\n },\n query: {\n type: v.string().optional(),\n desc: [\n 'Query to be analyzed in the form of: table.where(...).related(...).etc. ',\n 'Only one of ast/query/hash should be provided.',\n ],\n },\n hash: {\n type: v.string().optional(),\n desc: [\n 'Hash of the query to be analyzed. This is used to look up the query in the database. ',\n 'Only one of ast/query/hash should be provided.',\n 'You should run this script from the directory containing your .env file to reduce the amount of',\n 'configuration required. The .env file should contain the connection URL to the CVR database.',\n ],\n },\n applyPermissions: {\n type: v.boolean().default(false),\n desc: [\n 'Whether to apply permissions (from your schema file) to the provided query.',\n ],\n },\n authData: {\n type: v.string().optional(),\n desc: [\n 'JSON encoded payload of the auth data.',\n 'This will be used to fill permission variables if the \"applyPermissions\" option is set',\n ],\n },\n outputVendedRows: {\n type: v.boolean().default(false),\n desc: [\n 'Whether to output the rows which were read from the replica in order to execute the analyzed query. ',\n 'If the same row is read more than once it will be logged once for each time it was read.',\n ],\n },\n outputSyncedRows: {\n type: v.boolean().default(false),\n desc: [\n 'Whether to output the rows which would be synced to the client for the analyzed query.',\n ],\n },\n cvr: {\n db: {\n type: v.string().optional(),\n desc: [\n 'Connection URL to the CVR database. If using --hash, either this or --upstream-db',\n 'must be specified.',\n ],\n },\n },\n upstream: {\n db: {\n desc: [\n `Connection URL to the \"upstream\" authoritative postgres database. If using --hash, `,\n 'either this or --cvr-db must be specified.',\n ],\n type: v.string().optional(),\n },\n type: zeroOptions.upstream.type,\n },\n app: appOptions,\n shard: shardOptions,\n log: {\n ...logOptions,\n level: logLevel.default('error'),\n },\n};\n\nconst cfg = parseOptions(options, {\n argv: process.argv.slice(2).map(s => s.replaceAll('\\n', ' ')),\n envNamePrefix: ZERO_ENV_VAR_PREFIX,\n description: [\n {\n header: 'analyze-query',\n content: `Analyze a ZQL query and show information about how it runs against a SQLite replica.\n\n analyze-query uses the same environment variables and flags as zero-cache-dev. If run from your development environment, it will pick up your ZERO_REPLICA_FILE, ZERO_SCHEMA_PATH, and other env vars automatically.\n\n If run in another environment (e.g., production) you will have to specify these flags. In particular, you must have a copy of the appropriate Zero schema file to give to the --schema-path flag.`,\n },\n {\n header: 'Examples',\n content: `# In development\n npx analyze-query --query='issue.related(\"comments\").limit(10)'\n npx analyze-query --ast='\\\\{\"table\": \"artist\",\"limit\": 10\\\\}'\n npx analyze-query --hash=1234567890\n\n # In production\n # First copy schema.ts to your production environment, then run:\n npx analyze-query \\\\\n --schema-path='./schema.ts' \\\\\n --replica-file='/path/to/replica.db' \\\\\n --query='issue.related(\"comments\").limit(10)'\n\n npx analyze-query \\\\\n --schema-path='./schema.ts' \\\\\n --replica-file='/path/to/replica.db' \\\\\n --ast='\\\\{\"table\": \"artist\",\"limit\": 10\\\\}'\n\n # cvr-db is required when using the hash option.\n # It is typically the same as your upstream db.\n npx analyze-query \\\\\n --schema-path='./schema.ts' \\\\\n --replica-file='/path/to/replica.db' \\\\\n --cvr-db='postgres://user:pass@host:port/db' \\\\\n --hash=1234567890\n `,\n },\n ],\n});\nconst config = {\n ...cfg,\n cvr: {\n ...cfg.cvr,\n db: cfg.cvr.db ?? cfg.upstream.db,\n },\n};\n\nruntimeDebugFlags.trackRowCountsVended = true;\nruntimeDebugFlags.trackRowsVended = config.outputVendedRows;\n\nconst lc = createLogContext({\n log: config.log,\n});\n\ncolorConsole.warn(\n 'DEPRECATED: `analyze-query` is deprecated. Please migrate to a project-specific analyze command built with `runAnalyzeCLI` from `@rocicorp/zero/analyze`.',\n);\n\nif (!fs.existsSync(config.replicaFile)) {\n colorConsole.error(`Replica file ${config.replicaFile} does not exist`);\n process.exit(1);\n}\nconst db = new Database(lc, config.replicaFile);\n\nconst {schema, permissions} = await loadSchemaAndPermissions(\n config.schema.path,\n);\nconst clientSchema = clientSchemaFrom(schema).clientSchema;\n\nconst sources = new Map<string, TableSource>();\nconst clientToServerMapper = clientToServer(schema.tables);\nconst debug = new Debug();\nconst tableSpecs = computeZqlSpecs(lc, db, {includeBackfillingColumns: false});\n\nclass AnalyzeQueryDelegate extends QueryDelegateBase {\n readonly debug = debug;\n readonly defaultQueryComplete = true;\n\n getSource(serverTableName: string): Source | undefined {\n let source = sources.get(serverTableName);\n if (source) {\n return source;\n }\n const tableSpec = mustGetTableSpec(tableSpecs, serverTableName);\n const {primaryKey} = tableSpec.tableSpec;\n\n source = new TableSource(\n lc,\n config.log,\n db,\n serverTableName,\n tableSpec.zqlSpec,\n primaryKey,\n );\n\n sources.set(serverTableName, source);\n return source;\n }\n}\n\nconst host = new AnalyzeQueryDelegate();\n\nlet result: AnalyzeQueryResult;\n\nif (config.ast) {\n result = await runAst(\n lc,\n clientSchema,\n JSON.parse(config.ast),\n true,\n {\n applyPermissions: config.applyPermissions,\n auth: config.authData\n ? {type: 'jwt' as const, raw: '', decoded: JSON.parse(config.authData)}\n : undefined,\n clientToServerMapper,\n permissions,\n syncedRows: config.outputSyncedRows,\n db,\n tableSpecs,\n host,\n },\n async () => {},\n );\n} else if (config.query) {\n result = await runQuery(config.query);\n} else if (config.hash) {\n result = await runHash(config.hash);\n} else {\n colorConsole.error('No query or AST or hash provided');\n process.exit(1);\n}\n\nfunction runQuery(queryString: string): Promise<AnalyzeQueryResult> {\n const z = {\n query: Object.fromEntries(\n Object.entries(schema.tables).map(([name]) => [\n name,\n newQuery(schema, name),\n ]),\n ),\n };\n\n const f = new Function('z', `return z.query.${queryString};`);\n const q: Query<string, Schema, PullRow<string, Schema>> = f(z);\n\n const ast = asQueryInternals(q).ast;\n return runAst(\n lc,\n clientSchema,\n ast,\n false,\n {\n applyPermissions: config.applyPermissions,\n auth: config.authData\n ? {type: 'jwt' as const, raw: '', decoded: JSON.parse(config.authData)}\n : undefined,\n clientToServerMapper,\n permissions,\n syncedRows: config.outputSyncedRows,\n db,\n tableSpecs,\n host,\n },\n async () => {},\n );\n}\n\nasync function runHash(hash: string) {\n const cvrDB = pgClient(\n lc,\n must(config.cvr.db, 'CVR DB must be provided when using the hash option'),\n 'analyze-query-hash-cvr',\n );\n\n const rows = await cvrDB`select \"clientAST\", \"internal\" from ${cvrDB(\n upstreamSchema(getShardID(config)) + '/cvr',\n )}.\"queries\" where \"queryHash\" = ${must(hash)} limit 1;`;\n await cvrDB.end();\n\n colorConsole.log('ZQL from Hash:');\n const ast = rows[0].clientAST as AST;\n colorConsole.log(await formatOutput(ast.table + astToZQL(ast)));\n\n return runAst(\n lc,\n clientSchema,\n ast,\n true,\n {\n applyPermissions: config.applyPermissions,\n auth: config.authData\n ? {type: 'jwt' as const, raw: '', decoded: JSON.parse(config.authData)}\n : undefined,\n clientToServerMapper,\n permissions,\n syncedRows: config.outputSyncedRows,\n db,\n tableSpecs,\n host,\n },\n async () => {},\n );\n}\n\nif (config.outputSyncedRows) {\n colorConsole.log(styleText(['blue', 'bold'], '=== Synced Rows: ===\\n'));\n for (const [table, rows] of Object.entries(result.syncedRows ?? {})) {\n colorConsole.log(styleText('bold', table + ':'), rows);\n }\n}\n\ncolorConsole.log(styleText(['blue', 'bold'], '=== Query Stats: ===\\n'));\ncolorConsole.log(\n styleText('bold', 'total synced rows:'),\n result.syncedRowCount,\n);\nshowStats();\nif (config.outputVendedRows) {\n colorConsole.log(\n styleText(['blue', 'bold'], '=== JS Row Scan Values: ===\\n'),\n );\n for (const source of sources.values()) {\n colorConsole.log(\n styleText('bold', `${source.tableSchema.name}:`),\n debug.getVendedRows()?.[source.tableSchema.name] ?? {},\n );\n }\n}\n\ncolorConsole.log(\n styleText(['blue', 'bold'], '\\n=== Rows Scanned (by SQLite): ===\\n'),\n);\nconst nvisitCounts = debug.getNVisitCounts();\nlet totalNVisit = 0;\nfor (const [table, queries] of Object.entries(nvisitCounts)) {\n colorConsole.log(styleText('bold', `${table}:`), queries);\n for (const count of Object.values(queries)) {\n totalNVisit += count;\n }\n}\ncolorConsole.log(\n styleText('bold', 'total rows scanned:'),\n colorRowsConsidered(totalNVisit),\n);\n\ncolorConsole.log(styleText(['blue', 'bold'], '\\n\\n=== Query Plans: ===\\n'));\nconst fallbackPlans = explainQueries(debug.getVendedRowCounts() ?? {}, db);\nconst capturedPlans = debug.getSQLitePlans();\nconst plans: Record<string, string[]> = {...fallbackPlans, ...capturedPlans};\nfor (const [query, plan] of Object.entries(plans)) {\n colorConsole.log(styleText('bold', 'query'), query);\n colorConsole.log(plan.map((row, i) => colorPlanRow(row, i)).join('\\n'));\n colorConsole.log('\\n');\n}\n\nfunction showStats() {\n let totalRowsConsidered = 0;\n for (const source of sources.values()) {\n const values = Object.values(\n debug.getVendedRowCounts()?.[source.tableSchema.name] ?? {},\n );\n for (const v of values) {\n totalRowsConsidered += v;\n }\n colorConsole.log(\n styleText('bold', source.tableSchema.name + ' vended:'),\n debug.getVendedRowCounts()?.[source.tableSchema.name] ?? {},\n );\n }\n\n colorConsole.log(\n styleText('bold', 'Rows Read (into JS):'),\n colorRowsConsidered(totalRowsConsidered),\n );\n colorConsole.log(\n styleText('bold', 'time:'),\n colorTime(result.end - result.start),\n 'ms',\n );\n}\n\nfunction colorTime(duration: number) {\n if (duration < 100) {\n return styleText('green', duration.toFixed(2) + 'ms');\n } else if (duration < 1000) {\n return styleText('yellow', duration.toFixed(2) + 'ms');\n }\n return styleText('red', duration.toFixed(2) + 'ms');\n}\n\nfunction colorRowsConsidered(n: number) {\n if (n < 1000) {\n return styleText('green', n.toString());\n } else if (n < 10000) {\n return styleText('yellow', n.toString());\n }\n return styleText('red', n.toString());\n}\n\nfunction colorPlanRow(row: string, i: number) {\n if (row.includes('SCAN')) {\n if (i === 0) {\n return styleText('yellow', row);\n }\n return styleText('red', row);\n }\n return styleText('green', row);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin-transform.js","names":[],"sources":["../../../../analyze-query/src/bin-transform.ts"],"sourcesContent":["import '../../shared/src/dotenv.ts';\n\nimport {consoleLogSink, LogContext} from '@rocicorp/logger';\nimport {astToZQL} from '../../ast-to-zql/src/ast-to-zql.ts';\nimport {formatOutput} from '../../ast-to-zql/src/format.ts';\nimport {must} from '../../shared/src/must.ts';\nimport {parseOptions} from '../../shared/src/options.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {transformAndHashQuery} from '../../zero-cache/src/auth/read-authorizer.ts';\nimport {\n appOptions,\n shardOptions,\n ZERO_ENV_VAR_PREFIX,\n} from '../../zero-cache/src/config/zero-config.ts';\nimport {loadSchemaAndPermissions} from '../../zero-cache/src/scripts/permissions.ts';\nimport {pgClient} from '../../zero-cache/src/types/pg.ts';\nimport {getShardID, upstreamSchema} from '../../zero-cache/src/types/shards.ts';\n\nconst options = {\n cvr: {db: v.string()},\n schema: {\n type: v.string().default('./schema.ts'),\n desc: ['Path to the schema file.'],\n },\n app: appOptions,\n shard: shardOptions,\n hash: {\n type: v.string().optional(),\n desc: ['Hash of the query to fetch the AST for.'],\n },\n};\n\nconst config = parseOptions(options, {envNamePrefix: ZERO_ENV_VAR_PREFIX});\n\nconst lc = new LogContext('debug', {}, consoleLogSink);\nconst {permissions} = await loadSchemaAndPermissions(config.schema);\n\nconst cvrDB = pgClient(lc, config.cvr.db, 'analyze-query-transform-cvr');\n\nconst rows =\n await cvrDB`select \"clientAST\", \"internal\" from ${cvrDB(upstreamSchema(getShardID(config)) + '/cvr')}.\"queries\" where \"queryHash\" = ${must(\n config.hash,\n )} limit 1;`;\n\nconst queryAst = transformAndHashQuery(\n lc,\n '',\n rows[0].clientAST,\n permissions,\n {\n type: 'jwt',\n raw: '',\n decoded: {},\n },\n rows[0].internal,\n).transformedAst;\n\n// oxlint-disable no-console\nconsole.log('\\n=== AST ===\\n');\nconsole.log(JSON.stringify(queryAst, null, 2));\nconsole.log('\\n=== ZQL ===\\n');\nconsole.log(await formatOutput(queryAst.table + astToZQL(queryAst)));\n// oxlint-enable no-console\n\nawait cvrDB.end();\n"],"mappings":";;;;;;;;;;;;;AAgCA,IAAM,SAAS,aAAa;CAb1B,KAAK,EAAC,IAAI,eAAE,OAAO,EAAC;CACpB,QAAQ;EACN,MAAM,eAAE,OAAO,EAAE,QAAQ,aAAa;EACtC,MAAM,CAAC,0BAA0B;CACnC;CACA,KAAK;CACL,OAAO;CACP,MAAM;EACJ,MAAM,eAAE,OAAO,EAAE,SAAS;EAC1B,MAAM,CAAC,yCAAyC;CAClD;AAG0B,GAAS,EAAC,eAAe,oBAAmB,CAAC;AAEzE,IAAM,KAAK,IAAI,WAAW,SAAS,CAAC,GAAG,cAAc;AACrD,IAAM,EAAC,gBAAe,MAAM,yBAAyB,OAAO,MAAM;AAElE,IAAM,QAAQ,SAAS,IAAI,OAAO,IAAI,IAAI,6BAA6B;AAEvE,IAAM,OACJ,MAAM,KAAK,uCAAuC,MAAM,eAAe,WAAW,MAAM,CAAC,IAAI,MAAM,EAAE,iCAAiC,KACpI,OAAO,IACT,EAAE;AAEJ,IAAM,WAAW,sBACf,IACA,IACA,KAAK,GAAG,WACR,aACA;CACE,MAAM;CACN,KAAK;CACL,SAAS,CAAC;AACZ,GACA,KAAK,GAAG,QACV,EAAE;AAGF,QAAQ,IAAI,iBAAiB;AAC7B,QAAQ,IAAI,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC;AAC7C,QAAQ,IAAI,iBAAiB;AAC7B,QAAQ,IAAI,MAAM,aAAa,SAAS,QAAQ,SAAS,QAAQ,CAAC,CAAC;AAGnE,MAAM,MAAM,IAAI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-to-zql.js","names":[],"sources":["../../../../ast-to-zql/src/ast-to-zql.ts"],"sourcesContent":["import {unreachable} from '../../shared/src/asserts.ts';\nimport {toSorted} from '../../shared/src/iterables.ts';\nimport {must} from '../../shared/src/must.ts';\nimport type {\n AST,\n Condition,\n Conjunction,\n CorrelatedSubquery,\n CorrelatedSubqueryCondition,\n Disjunction,\n LiteralReference,\n Ordering,\n Parameter,\n SimpleCondition,\n ValuePosition,\n} from '../../zero-protocol/src/ast.ts';\nimport {SUBQ_PREFIX} from '../../zero-protocol/src/ast.ts';\n\n/**\n * Converts an AST to the equivalent query builder code.\n * This is useful for debugging and understanding queries.\n *\n * @example\n * ```\n * const ast = query.issue.where('id', '=', 123)[astSymbol];\n * console.log(astToZQL(ast)); // outputs: .where('id', '=', 123)\n * ```\n */\nexport function astToZQL(ast: AST): string {\n let code = '';\n\n // Handle where conditions\n if (ast.where) {\n code += transformCondition(ast.where, '.where', new Set());\n }\n\n // Handle related subqueries\n if (ast.related && ast.related.length > 0) {\n for (const related of ast.related) {\n if (related.hidden) {\n const nestedRelated = related.subquery.related?.[0];\n if (nestedRelated) {\n code += transformRelated(nestedRelated);\n }\n } else {\n code += transformRelated(related);\n }\n }\n }\n\n // Handle orderBy\n if (ast.orderBy && ast.orderBy.length > 0) {\n code += transformOrder(ast.orderBy);\n }\n\n // Handle limit\n if (ast.limit !== undefined) {\n code += `.limit(${ast.limit})`;\n }\n\n // Handle start\n if (ast.start) {\n const {row, exclusive} = ast.start;\n code += `.start(${JSON.stringify(row)}${\n exclusive ? '' : ', { inclusive: true }'\n })`;\n }\n\n return code;\n}\n\ntype Args = Set<string>;\n\ntype Prefix = '.where' | 'cmp';\n\nfunction transformCondition(\n condition: Condition,\n prefix: Prefix,\n args: Args,\n): string {\n switch (condition.type) {\n case 'simple':\n return transformSimpleCondition(condition, prefix);\n case 'and':\n case 'or':\n return transformLogicalCondition(condition, prefix, args);\n case 'correlatedSubquery':\n return transformExistsCondition(condition, prefix, args);\n default:\n unreachable(condition);\n }\n}\n\nfunction transformSimpleCondition(\n condition: SimpleCondition,\n prefix: Prefix,\n): string {\n const {left, op, right} = condition;\n\n const leftCode = transformValuePosition(left);\n const rightCode = transformValuePosition(right);\n\n // Handle the shorthand form for equals\n if (op === '=') {\n return `${prefix}(${leftCode}, ${rightCode})`;\n }\n\n return `${prefix}(${leftCode}, '${op}', ${rightCode})`;\n}\n\nfunction transformLogicalCondition(\n condition: Conjunction | Disjunction,\n prefix: Prefix,\n args: Args,\n): string {\n const {type, conditions} = condition;\n\n // For single condition, no need for logical operator\n if (conditions.length === 1) {\n return transformCondition(conditions[0], prefix, args);\n }\n\n // Generate multiple where calls for top-level AND conditions\n if (type === 'and') {\n const parts = conditions.map(c => transformCondition(c, prefix, args));\n // Simply concatenate the where conditions\n if (prefix === '.where') {\n return parts.join('');\n }\n args.add('and');\n return 'and(' + parts.join(', ') + ')';\n }\n\n args = new Set<string>();\n\n // Handle nested conditions with a callback for OR conditions and nested ANDs/ORs\n const conditionsCode = conditions\n .map(c => transformCondition(c, 'cmp', args))\n .join(', ');\n\n args.add('cmp');\n args.add(type);\n const argsCode = toSorted(args).join(', ');\n\n return `.where(({${argsCode}}) => ${type}(${conditionsCode}))`;\n}\n\nfunction transformExistsCondition(\n condition: CorrelatedSubqueryCondition,\n prefix: '.where' | 'cmp',\n args: Set<string>,\n): string {\n const {related, op} = condition;\n const relationship = extractRelationshipName(related);\n\n const nextSubquery = getNextExistsSubquery(related);\n\n // Check if subquery has additional properties\n const hasSubQueryProps =\n nextSubquery.where ||\n (nextSubquery.related && nextSubquery.related.length > 0) ||\n nextSubquery.orderBy ||\n nextSubquery.limit;\n\n // Build options string for flip and scalar\n const optionParts: string[] = [];\n if (condition.flip !== undefined) {\n optionParts.push(`flip: ${condition.flip}`);\n }\n if (condition.scalar !== undefined) {\n optionParts.push(`scalar: ${condition.scalar}`);\n }\n const optionsStr =\n optionParts.length > 0 ? `, {${optionParts.join(', ')}}` : '';\n\n if (op === 'EXISTS') {\n if (!hasSubQueryProps) {\n if (prefix === '.where') {\n return `.whereExists('${relationship}'${optionsStr})`;\n }\n args.add('exists');\n return `exists('${relationship}'${optionsStr})`;\n }\n\n if (prefix === '.where') {\n return `.whereExists('${relationship}', q => q${astToZQL(nextSubquery)}${optionsStr})`;\n }\n prefix satisfies 'cmp';\n args.add('exists');\n return `exists('${relationship}', q => q${astToZQL(nextSubquery)}${optionsStr})`;\n }\n\n op satisfies 'NOT EXISTS';\n\n if (hasSubQueryProps) {\n if (prefix === '.where') {\n return `.where(({exists, not}) => not(exists('${relationship}', q => q${astToZQL(\n nextSubquery,\n )}${optionsStr})))`;\n }\n prefix satisfies 'cmp';\n args.add('not');\n args.add('exists');\n return `not(exists('${relationship}', q => q${astToZQL(nextSubquery)}${optionsStr}))`;\n }\n\n if (prefix === '.where') {\n return `.where(({exists, not}) => not(exists('${relationship}'${optionsStr})))`;\n }\n args.add('not');\n args.add('exists');\n\n return `not(exists('${relationship}'${optionsStr})))`;\n}\n\n// If the `exists` is applied against a junction edge, both hops will have the same alias and both hops will be exists conditions.\nfunction getNextExistsSubquery(related: CorrelatedSubquery): AST {\n if (\n related.subquery.where?.type === 'correlatedSubquery' &&\n related.subquery.where.related.subquery.alias?.includes(\n SUBQ_PREFIX + 'zhidden_',\n )\n ) {\n return getNextExistsSubquery(related.subquery.where.related);\n }\n\n return related.subquery;\n}\n\nfunction extractRelationshipName(related: CorrelatedSubquery): string {\n const alias = must(related.subquery.alias);\n return alias.startsWith(SUBQ_PREFIX)\n ? alias.substring(SUBQ_PREFIX.length)\n : alias;\n}\n\nfunction transformRelated(related: CorrelatedSubquery): string {\n const {alias} = related.subquery;\n if (!alias) return '';\n\n const relationship = alias;\n let code = `.related('${relationship}'`;\n\n // If the subquery has additional filters or configurations\n if (\n related.subquery.where ||\n (related.subquery.related && related.subquery.related.length > 0) ||\n related.subquery.orderBy ||\n related.subquery.limit\n ) {\n code += ', q => q' + astToZQL(related.subquery);\n }\n\n code += ')';\n return code;\n}\n\nfunction transformOrder(orderBy: Ordering): string {\n let code = '';\n for (const [field, direction] of orderBy) {\n code += `.orderBy('${field}', '${direction}')`;\n }\n return code;\n}\n\nfunction transformValuePosition(value: ValuePosition): string {\n switch (value.type) {\n case 'literal':\n return transformLiteral(value);\n case 'column':\n return `'${value.name}'`;\n case 'static':\n return transformParameter(value);\n default:\n unreachable(value);\n }\n}\n\nfunction transformLiteral(literal: LiteralReference): string {\n if (literal.value === null) {\n return 'null';\n }\n if (Array.isArray(literal.value)) {\n return JSON.stringify(literal.value);\n }\n if (typeof literal.value === 'string') {\n return `'${literal.value.replace(/'/g, \"\\\\'\")}'`;\n }\n return String(literal.value);\n}\n\nfunction transformParameter(param: Parameter): string {\n const fieldStr = Array.isArray(param.field)\n ? `[${param.field.map(f => `'${f}'`).join(', ')}]`\n : `'${param.field}'`;\n\n return `authParam(${fieldStr})`;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","names":[],"sources":["../../../../ast-to-zql/src/bin.ts"],"sourcesContent":["/* oxlint-disable no-console */\nimport {readFile} from 'node:fs/promises';\nimport process from 'node:process';\nimport {createInterface} from 'node:readline';\nimport {parseOptions} from '../../shared/src/options.ts';\nimport * as v from '../../shared/src/valita.ts';\nimport {loadSchemaAndPermissions} from '../../zero-cache/src/scripts/permissions.ts';\nimport {mapAST} from '../../zero-protocol/src/ast.ts';\nimport {serverToClient} from '../../zero-schema/src/name-mapper.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport {astToZQL} from './ast-to-zql.ts';\nimport {formatOutput} from './format.ts';\n\nconst options = {\n schema: {\n type: v.string().optional(),\n desc: [\n 'Path to the schema file. Use this to re-map the AST to client names.',\n ],\n },\n};\n\nconst config = parseOptions(options);\n\nlet schema: Schema | undefined;\nif (config.schema) {\n schema = (await loadSchemaAndPermissions(config.schema)).schema;\n}\n\nfunction isStdinPiped(): boolean {\n return !process.stdin.isTTY;\n}\n\nfunction readFromStdin(): Promise<string> {\n return new Promise(resolve => {\n let data = '';\n const rl = createInterface({\n input: process.stdin,\n output: process.stdout,\n terminal: false,\n });\n\n rl.on('line', line => {\n data += line + '\\n';\n });\n\n rl.on('close', () => {\n resolve(data);\n });\n });\n}\n\nasync function main(): Promise<void> {\n try {\n let input: string;\n\n if (isStdinPiped()) {\n input = await readFromStdin();\n } else if (process.argv.length > 2) {\n const filePath = process.argv[2];\n input = await readFile(filePath, 'utf-8');\n } else {\n console.error('Error: No input provided.');\n console.error('Usage:');\n console.error(` cat ast.json | npx ast-to-zql`);\n console.error(` npx ast-to-zql ast.json`);\n process.exit(1);\n }\n\n let ast = JSON.parse(input);\n if (schema) {\n const mapper = serverToClient(schema.tables);\n ast = mapAST(ast, mapper);\n }\n\n const zql = astToZQL(ast);\n const code = `query.${ast.table}${zql}`;\n\n console.log(await formatOutput(code));\n } catch (error) {\n console.error('Error processing input:', error);\n process.exit(1);\n }\n}\n\nawait main();\n"],"mappings":";;;;;;;;;;;AAsBA,IAAM,SAAS,aAAa,EAR1B,QAAQ;CACN,MAAM,eAAE,OAAO,EAAE,SAAS;CAC1B,MAAM,CACJ,sEACF;AACF,EAG0B,CAAO;AAEnC,IAAI;AACJ,IAAI,OAAO,QACT,UAAU,MAAM,yBAAyB,OAAO,MAAM,GAAG;AAG3D,SAAS,eAAwB;CAC/B,OAAO,CAAC,QAAQ,MAAM;AACxB;AAEA,SAAS,gBAAiC;CACxC,OAAO,IAAI,SAAQ,YAAW;EAC5B,IAAI,OAAO;EACX,MAAM,KAAK,gBAAgB;GACzB,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,UAAU;EACZ,CAAC;EAED,GAAG,GAAG,SAAQ,SAAQ;GACpB,QAAQ,OAAO;EACjB,CAAC;EAED,GAAG,GAAG,eAAe;GACnB,QAAQ,IAAI;EACd,CAAC;CACH,CAAC;AACH;AAEA,eAAe,OAAsB;CACnC,IAAI;EACF,IAAI;EAEJ,IAAI,aAAa,GACf,QAAQ,MAAM,cAAc;OACvB,IAAI,QAAQ,KAAK,SAAS,GAAG;GAClC,MAAM,WAAW,QAAQ,KAAK;GAC9B,QAAQ,MAAM,SAAS,UAAU,OAAO;EAC1C,OAAO;GACL,QAAQ,MAAM,2BAA2B;GACzC,QAAQ,MAAM,QAAQ;GACtB,QAAQ,MAAM,iCAAiC;GAC/C,QAAQ,MAAM,2BAA2B;GACzC,QAAQ,KAAK,CAAC;EAChB;EAEA,IAAI,MAAM,KAAK,MAAM,KAAK;EAC1B,IAAI,QAAQ;GACV,MAAM,SAAS,eAAe,OAAO,MAAM;GAC3C,MAAM,OAAO,KAAK,MAAM;EAC1B;EAEA,MAAM,MAAM,SAAS,GAAG;EACxB,MAAM,OAAO,SAAS,IAAI,QAAQ;EAElC,QAAQ,IAAI,MAAM,aAAa,IAAI,CAAC;CACtC,SAAS,OAAO;EACd,QAAQ,MAAM,2BAA2B,KAAK;EAC9C,QAAQ,KAAK,CAAC;CAChB;AACF;AAEA,MAAM,KAAK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","names":[],"sources":["../../../../ast-to-zql/src/format.ts"],"sourcesContent":["import {format} from 'oxfmt';\n\nexport async function formatOutput(content: string): Promise<string> {\n try {\n const result = await format('output.ts', content, {\n semi: false,\n printWidth: 80,\n });\n return result.code;\n } catch (error) {\n // oxlint-disable-next-line no-console\n console.warn('Warning: Unable to format output with oxfmt:', error);\n return content;\n }\n}\n"],"mappings":";;AAEA,eAAsB,aAAa,SAAkC;CACnE,IAAI;EAKF,QAAO,MAJc,OAAO,aAAa,SAAS;GAChD,MAAM;GACN,YAAY;EACd,CAAC,GACa;CAChB,SAAS,OAAO;EAEd,QAAQ,KAAK,gDAAgD,KAAK;EAClE,OAAO;CACT;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datadog-log-sink.js","names":["#apiKey","#source","#service","#host","#version","#interval","#baseURL","#messages","#startTimer","#timerID","#flushLock"],"sources":["../../../../datadog/src/datadog-log-sink.ts"],"sourcesContent":["import {Lock} from '@rocicorp/lock';\nimport type {Context, LogLevel, LogSink} from '@rocicorp/logger';\n\nexport interface DatadogLogSinkOptions {\n apiKey?: string | undefined;\n source?: string | undefined;\n service?: string | undefined;\n host?: string | undefined;\n version?: string | undefined;\n interval?: number | undefined;\n baseURL?: URL | undefined;\n}\n\nconst DD_BASE_URL = new URL(\n 'https://http-intake.logs.datadoghq.com/api/v2/logs',\n);\n\n// https://docs.datadoghq.com/api/latest/logs/\nexport const MAX_LOG_ENTRIES_PER_FLUSH = 1000;\nexport const FORCE_FLUSH_THRESHOLD = 250;\nconst MAX_ENTRY_BYTES = 5 * 1024 * 1024;\nconst MAX_MESSAGE_RETRIES = 2;\n\n// Conservative limit that assumes all chars are encoded as 4 UTF-8 bytes.\n// This makes the actual limit somewhere closer to 1.25 MB, which is still\n// a reasonable amount of log data to send per request.\nexport const MAX_ENTRY_CHARS = MAX_ENTRY_BYTES / 4;\n\nexport class DatadogLogSink implements LogSink {\n #messages: Message[] = [];\n readonly #apiKey: string | undefined;\n readonly #source: string | undefined;\n readonly #service: string | undefined;\n readonly #host: string | undefined;\n readonly #version: string | undefined;\n readonly #interval: number;\n readonly #baseURL: string;\n #timerID: ReturnType<typeof setTimeout> | 0 = 0;\n #flushLock = new Lock();\n\n constructor(options: DatadogLogSinkOptions) {\n const {\n apiKey,\n source,\n service,\n host,\n version,\n interval = 5_000,\n baseURL: baseUrl = DD_BASE_URL,\n } = options;\n\n this.#apiKey = apiKey;\n this.#source = source;\n this.#service = service;\n this.#host = host;\n this.#version = version;\n this.#interval = interval;\n this.#baseURL = baseUrl.toString();\n }\n\n log(level: LogLevel, context: Context | undefined, ...args: unknown[]): void {\n this.#messages.push(makeMessage(args, context, level));\n if (level === 'error' || this.#messages.length === FORCE_FLUSH_THRESHOLD) {\n // Do not await. Later calls to flush will await as needed.\n void this.flush();\n } else {\n this.#startTimer();\n }\n }\n #startTimer() {\n if (this.#timerID) {\n return;\n }\n\n this.#timerID = setTimeout(() => {\n this.#timerID = 0;\n\n void this.flush();\n }, this.#interval);\n }\n\n flush(): Promise<void> {\n return this.#flushLock.withLock(async () => {\n const {length} = this.#messages;\n if (length === 0) {\n return;\n }\n do {\n const flushTime = Date.now();\n const stringified = [];\n let totalBytes = 0;\n\n for (const m of this.#messages) {\n // As a small perf optimization, we directly mutate\n // the message rather than making a shallow copy.\n // The LOG_SINK_FLUSH_DELAY_ATTRIBUTE will be clobbered by\n // the next flush if this flush fails (which is the desired behavior).\n m.flushDelayMs = flushTime - m.date;\n\n let str = JSON.stringify(m);\n if (str.length > MAX_ENTRY_CHARS) {\n // A single message above the total payload limit will otherwise halt\n // log flushing progress. Drop and replace with a message indicating so.\n m.message = `[Dropped message of length ${str.length}]`;\n str = JSON.stringify(m);\n }\n // Calculate the totalBytes with the newline characters between messages.\n if (str.length + totalBytes + stringified.length > MAX_ENTRY_CHARS) {\n break;\n }\n totalBytes += str.length;\n stringified.push(str);\n\n if (stringified.length === MAX_LOG_ENTRIES_PER_FLUSH) {\n break;\n }\n }\n\n const body = stringified.join('\\n');\n const url = new URL(this.#baseURL);\n if (this.#apiKey !== undefined) {\n url.searchParams.set('dd-api-key', this.#apiKey);\n }\n\n if (this.#source) {\n // Both need to be set for server to treat us as the browser SDK for\n // value 'browser'.\n url.searchParams.set('ddsource', this.#source);\n url.searchParams.set('dd-evp-origin', this.#source);\n }\n\n if (this.#service) {\n url.searchParams.set('service', this.#service);\n }\n\n if (this.#host) {\n url.searchParams.set('host', this.#host);\n }\n\n if (this.#version) {\n url.searchParams.set('ddtags', `version:${this.#version}`);\n }\n\n let ok = false;\n try {\n const response = await fetch(url.toString(), {\n method: 'POST',\n body,\n keepalive: true,\n } as RequestInit);\n\n ok = response.ok;\n if (!ok) {\n // Log to console so that we might catch this in `wrangler tail`.\n // oxlint-disable-next-line no-console\n console.error(\n 'response',\n response.status,\n response.statusText,\n await response.text,\n );\n }\n } catch (e) {\n // Log to console so that we might catch this in `wrangler tail`.\n // oxlint-disable-next-line no-console\n console.error('Log flush to datadog failed', e);\n }\n\n if (ok) {\n // Remove messages that were successfully flushed.\n this.#messages.splice(0, stringified.length);\n } else {\n let numWithTooManyRetries = 0;\n for (let i = 0; i < stringified.length; i++) {\n const m = this.#messages[i];\n m.flushRetryCount = (m.flushRetryCount ?? 0) + 1;\n if (m.flushRetryCount > MAX_MESSAGE_RETRIES) {\n numWithTooManyRetries++;\n }\n }\n if (numWithTooManyRetries > 0) {\n // oxlint-disable-next-line no-console\n console.error(\n `Dropping ${numWithTooManyRetries} datadog log messages which failed to send ${\n MAX_MESSAGE_RETRIES + 1\n } times.`,\n );\n // Remove messages that have failed too many times.\n this.#messages.splice(0, numWithTooManyRetries);\n }\n }\n } while (this.#messages.length >= FORCE_FLUSH_THRESHOLD);\n // If any messages left at this point schedule another flush.\n if (this.#messages.length) {\n this.#startTimer();\n }\n });\n }\n}\n\ntype Message = Context & {\n status: LogLevel;\n date: number;\n message: unknown;\n error?: {origin: 'logger'};\n flushDelayMs?: number;\n flushRetryCount?: number;\n};\n\nfunction flattenMessage(message: unknown): unknown {\n if (Array.isArray(message) && message.length === 1) {\n return flattenMessage(message[0]);\n }\n return message;\n}\n\nfunction convertError(e: Error): {\n name: string;\n message: string;\n stack: string | undefined;\n} {\n return {\n name: e.name,\n message: e.message,\n stack: e.stack,\n };\n}\n\nfunction convertErrors(message: unknown): unknown {\n if (message instanceof Error) {\n return convertError(message);\n }\n if (message instanceof Array) {\n const convertedMessage: unknown[] = [];\n for (const item of message) {\n if (item instanceof Error) {\n convertedMessage.push(convertError(item));\n } else {\n convertedMessage.push(item);\n }\n }\n return convertedMessage;\n }\n return message;\n}\n\nconst LOG_SINK_FLUSH_RETRY_COUNT = 'flushRetryCount';\nconst LOG_SINK_FLUSH_DELAY_ATTRIBUTE = 'flushDelayMs';\n// This code assumes that no context keys will start with\n// @DATADOG_RESERVED_ (a fairly safe assumption).\nconst RESERVED_KEY_PREFIX = '@DATADOG_RESERVED_';\n// See https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes\n// Note 'msg' and 'date' are not documented.\n// We should avoid using these as context keys. We escape them here\n// because otherwise the impact on the data dog log UI is very confusing\n// (e.g. using 'msg' as a context key results, in the context value\n// replacing the log message.)\nconst RESERVED_KEYS: ReadonlyArray<string> = [\n 'host',\n 'source',\n 'status',\n 'service',\n 'version',\n 'trace_id',\n 'message',\n 'msg', // alias for message\n 'date',\n // The following are attributes reserved by the DataDogLogSink\n // itself (as opposed to DataDog), to report on its own behavior.\n LOG_SINK_FLUSH_DELAY_ATTRIBUTE,\n LOG_SINK_FLUSH_RETRY_COUNT,\n];\n\nfunction makeMessage(\n message: unknown,\n context: Context | undefined,\n logLevel: LogLevel,\n): Message {\n let safeContext = undefined;\n if (context !== undefined) {\n for (const reservedKey of RESERVED_KEYS) {\n if (Object.hasOwn(context, reservedKey)) {\n if (safeContext === undefined) {\n safeContext = {...context};\n }\n safeContext[RESERVED_KEY_PREFIX + reservedKey] =\n safeContext[reservedKey];\n delete safeContext[reservedKey];\n }\n }\n }\n const msg: Message = {\n ...(safeContext ?? context),\n date: Date.now(),\n message: convertErrors(flattenMessage(message)),\n status: logLevel,\n };\n if (logLevel === 'error') {\n msg.error = {origin: 'logger'};\n }\n return msg;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enabled.js","names":[],"sources":["../../../../otel/src/enabled.ts"],"sourcesContent":["export function otelEnabled() {\n return otelMetricsEnabled() || otelTracesEnabled() || otelLogsEnabled();\n}\n\nexport function otelMetricsEnabled() {\n return (\n process.env.OTEL_EXPORTER_OTLP_ENDPOINT ||\n process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ||\n process.env.OTEL_METRICS_EXPORTER\n );\n}\n\nexport function otelLogsEnabled() {\n return (\n process.env.OTEL_EXPORTER_OTLP_ENDPOINT ||\n process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ||\n process.env.OTEL_LOGS_EXPORTER\n );\n}\n\nexport function otelTracesEnabled() {\n return (\n process.env.OTEL_EXPORTER_OTLP_ENDPOINT ||\n process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ||\n process.env.OTEL_TRACES_EXPORTER\n );\n}\n"],"mappings":";AAAA,SAAgB,cAAc;CAC5B,OAAO,mBAAmB,KAAK,kBAAkB,KAAK,gBAAgB;AACxE;AAEA,SAAgB,qBAAqB;CACnC,OACE,QAAQ,IAAI,+BACZ,QAAQ,IAAI,uCACZ,QAAQ,IAAI;AAEhB;AAEA,SAAgB,kBAAkB;CAChC,OACE,QAAQ,IAAI,+BACZ,QAAQ,IAAI,oCACZ,QAAQ,IAAI;AAEhB;AAEA,SAAgB,oBAAoB;CAClC,OACE,QAAQ,IAAI,+BACZ,QAAQ,IAAI,sCACZ,QAAQ,IAAI;AAEhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-options.js","names":[],"sources":["../../../../otel/src/log-options.ts"],"sourcesContent":["import {type Config} from '../../shared/src/options-types.ts';\nimport * as v from '../../shared/src/valita.ts';\n\nexport const logLevel = v.literalUnion('debug', 'info', 'warn', 'error');\n\nexport const logOptions = {\n level: logLevel.default('info'),\n\n format: {\n type: v.literalUnion('text', 'json').default('text'),\n desc: [\n `Use {bold text} for developer-friendly console logging`,\n `and {bold json} for consumption by structured-logging services`,\n ],\n },\n\n slowRowThreshold: {\n type: v.number().default(2),\n desc: [\n `The number of ms a row must take to fetch from table-source before it is considered slow.`,\n ],\n },\n\n slowHydrateThreshold: {\n type: v.number().default(100),\n desc: [\n `The number of milliseconds a query hydration must take to print a slow warning.`,\n ],\n },\n\n ivmSampling: {\n type: v.number().default(5000),\n desc: [\n `How often to collect IVM metrics. 1 out of N requests will be sampled where N is this value.`,\n ],\n },\n};\n\nexport type LogConfig = Config<typeof logOptions>;\n"],"mappings":";;AAGA,IAAa,WAAW,aAAe,SAAS,QAAQ,QAAQ,OAAO;AAEvE,IAAa,aAAa;CACxB,OAAO,SAAS,QAAQ,MAAM;CAE9B,QAAQ;EACN,MAAM,aAAe,QAAQ,MAAM,EAAE,QAAQ,MAAM;EACnD,MAAM,CACJ,0DACA,gEACF;CACF;CAEA,kBAAkB;EAChB,MAAM,eAAE,OAAO,EAAE,QAAQ,CAAC;EAC1B,MAAM,CACJ,2FACF;CACF;CAEA,sBAAsB;EACpB,MAAM,eAAE,OAAO,EAAE,QAAQ,GAAG;EAC5B,MAAM,CACJ,iFACF;CACF;CAEA,aAAa;EACX,MAAM,eAAE,OAAO,EAAE,QAAQ,GAAI;EAC7B,MAAM,CACJ,8FACF;CACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybe-time.js","names":[],"sources":["../../../../otel/src/maybe-time.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\n\nexport function timeSampled<T>(\n lc: LogContext,\n numerator: number,\n denominator: number,\n cb: () => T,\n threshold: number = 0,\n prefix: () => string = () => '',\n) {\n if (denominator > 0 && numerator % denominator === 0) {\n const start = performance.now();\n const result = cb();\n const duration = performance.now() - start;\n if (duration > threshold) {\n lc.warn?.(`${prefix()} duration: ${duration}ms`);\n }\n\n return result;\n }\n return cb();\n}\n"],"mappings":";AAEA,SAAgB,YACd,IACA,WACA,aACA,IACA,YAAoB,GACpB,eAA6B,IAC7B;CACA,IAAI,cAAc,KAAK,YAAY,gBAAgB,GAAG;EACpD,MAAM,QAAQ,YAAY,IAAI;EAC9B,MAAM,SAAS,GAAG;EAClB,MAAM,WAAW,YAAY,IAAI,IAAI;EACrC,IAAI,WAAW,WACb,GAAG,OAAO,GAAG,OAAO,EAAE,aAAa,SAAS,GAAG;EAGjD,OAAO;CACT;CACA,OAAO,GAAG;AACZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"span.js","names":[],"sources":["../../../../otel/src/span.ts"],"sourcesContent":["import {\n type Attributes,\n type Span,\n type Tracer,\n context,\n} from '@opentelemetry/api';\n\nexport function startSpan<T>(\n tracer: Tracer,\n name: string,\n cb: (span: Omit<Span, 'end'>) => T,\n): T {\n return tracer.startActiveSpan(name, span => {\n try {\n return cb(span);\n } finally {\n span.end();\n }\n });\n}\n\nexport function startAsyncSpan<T>(\n tracer: Tracer,\n name: string,\n cb: (span: Omit<Span, 'end'>) => Promise<T>,\n): Promise<T> {\n return tracer.startActiveSpan(name, async span => {\n try {\n return await cb(span);\n } finally {\n span.end();\n }\n });\n}\n\nexport function manualSpan(\n tracer: Tracer,\n name: string,\n durationMs: number,\n attributes?: Attributes,\n): void {\n const startTime = Date.now() - durationMs;\n const span = tracer.startSpan(name, {startTime}, context.active());\n if (attributes) {\n span.setAttributes(attributes);\n }\n span.end(startTime + durationMs);\n}\n"],"mappings":";;AAOA,SAAgB,UACd,QACA,MACA,IACG;CACH,OAAO,OAAO,gBAAgB,OAAM,SAAQ;EAC1C,IAAI;GACF,OAAO,GAAG,IAAI;EAChB,UAAU;GACR,KAAK,IAAI;EACX;CACF,CAAC;AACH;AAEA,SAAgB,eACd,QACA,MACA,IACY;CACZ,OAAO,OAAO,gBAAgB,MAAM,OAAM,SAAQ;EAChD,IAAI;GACF,OAAO,MAAM,GAAG,IAAI;EACtB,UAAU;GACR,KAAK,IAAI;EACX;CACF,CAAC;AACH;AAEA,SAAgB,WACd,QACA,MACA,YACA,YACM;CACN,MAAM,YAAY,KAAK,IAAI,IAAI;CAC/B,MAAM,OAAO,OAAO,UAAU,MAAM,EAAC,UAAS,GAAG,QAAQ,OAAO,CAAC;CACjE,IAAI,YACF,KAAK,cAAc,UAAU;CAE/B,KAAK,IAAI,YAAY,UAAU;AACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","names":[],"sources":["../../../../otel/src/version.ts"],"sourcesContent":["export const version = '0.0.2';\n"],"mappings":";AAAA,IAAa,UAAU"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-iterable-to-array.js","names":[],"sources":["../../../../replicache/src/async-iterable-to-array.ts"],"sourcesContent":["export async function asyncIterableToArray<T>(\n it: AsyncIterable<T>,\n): Promise<T[]> {\n const arr: T[] = [];\n for await (const v of it) {\n arr.push(v);\n }\n return arr;\n}\n"],"mappings":";AAAA,eAAsB,qBACpB,IACc;CACd,MAAM,MAAW,CAAC;CAClB,WAAW,MAAM,KAAK,IACpB,IAAI,KAAK,CAAC;CAEZ,OAAO;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bg-interval.js","names":[],"sources":["../../../../replicache/src/bg-interval.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport {AbortError} from '../../shared/src/abort-error.ts';\nimport {sleep} from '../../shared/src/sleep.ts';\nimport {IDBNotFoundError} from './kv/idb-store.ts';\n\nexport function initBgIntervalProcess(\n processName: string,\n process: () => Promise<unknown>,\n delayMs: () => number,\n lc: LogContext,\n signal: AbortSignal,\n): void {\n void runBgIntervalProcess(processName, process, delayMs, lc, signal);\n}\n\nasync function runBgIntervalProcess(\n processName: string,\n process: () => Promise<unknown>,\n delayMs: () => number,\n lc: LogContext,\n signal: AbortSignal,\n): Promise<void> {\n if (signal.aborted) {\n return;\n }\n lc = lc.withContext('bgIntervalProcess', processName);\n lc.debug?.('Starting');\n while (!signal.aborted) {\n try {\n await sleep(delayMs(), signal);\n } catch (e) {\n if (!(e instanceof AbortError)) {\n throw e;\n }\n }\n if (!signal.aborted) {\n lc.debug?.('Running');\n try {\n await process();\n } catch (e) {\n if (signal.aborted) {\n lc.debug?.('Error running most likely due to close.', e);\n } else if (e instanceof IDBNotFoundError) {\n lc.info?.('IndexedDB was deleted externally.', e);\n } else {\n lc.error?.('Error running.', e);\n }\n }\n }\n }\n lc.debug?.('Stopping');\n}\n"],"mappings":";;;;AAKA,SAAgB,sBACd,aACA,SACA,SACA,IACA,QACM;CACN,qBAA0B,aAAa,SAAS,SAAS,IAAI,MAAM;AACrE;AAEA,eAAe,qBACb,aACA,SACA,SACA,IACA,QACe;CACf,IAAI,OAAO,SACT;CAEF,KAAK,GAAG,YAAY,qBAAqB,WAAW;CACpD,GAAG,QAAQ,UAAU;CACrB,OAAO,CAAC,OAAO,SAAS;EACtB,IAAI;GACF,MAAM,MAAM,QAAQ,GAAG,MAAM;EAC/B,SAAS,GAAG;GACV,IAAI,EAAE,aAAa,aACjB,MAAM;EAEV;EACA,IAAI,CAAC,OAAO,SAAS;GACnB,GAAG,QAAQ,SAAS;GACpB,IAAI;IACF,MAAM,QAAQ;GAChB,SAAS,GAAG;IACV,IAAI,OAAO,SACT,GAAG,QAAQ,2CAA2C,CAAC;SAClD,IAAI,aAAa,kBACtB,GAAG,OAAO,qCAAqC,CAAC;SAEhD,GAAG,QAAQ,kBAAkB,CAAC;GAElC;EACF;CACF;CACA,GAAG,QAAQ,UAAU;AACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","names":[],"sources":["../../../../../replicache/src/btree/diff.ts"],"sourcesContent":["import {asyncIterableToArray} from '../async-iterable-to-array.ts';\nimport type {InternalDiff} from './node.ts';\nimport type {BTreeRead} from './read.ts';\n\nexport function diff(\n oldMap: BTreeRead,\n newMap: BTreeRead,\n): Promise<InternalDiff> {\n // Return an array to ensure we do not compute the diff more than once.\n return asyncIterableToArray(newMap.diff(oldMap));\n}\n"],"mappings":";;AAIA,SAAgB,KACd,QACA,QACuB;CAEvB,OAAO,qBAAqB,OAAO,KAAK,MAAM,CAAC;AACjD"}
|