@rocicorp/zero 1.12.0-canary.0 → 1.12.0-canary.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.154.0/helpers/esm}/usingCtx.js +2 -2
- package/out/analyze-query/src/analyze-cli.d.ts.map +1 -1
- package/out/analyze-query/src/analyze-cli.js +4 -2
- package/out/analyze-query/src/analyze-cli.js.map +1 -1
- package/out/analyze-query/src/bin-transform.js +4 -3
- package/out/analyze-query/src/bin-transform.js.map +1 -1
- package/out/analyze-query/src/zql-chain.d.ts +23 -0
- package/out/analyze-query/src/zql-chain.d.ts.map +1 -0
- package/out/analyze-query/src/zql-chain.js +162 -0
- package/out/analyze-query/src/zql-chain.js.map +1 -0
- package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
- package/out/ast-to-zql/src/bin.js +4 -3
- package/out/ast-to-zql/src/bin.js.map +1 -1
- package/out/ast-to-zql/src/format.js.map +1 -1
- package/out/datadog/src/datadog-log-sink.js +5 -4
- package/out/datadog/src/datadog-log-sink.js.map +1 -1
- package/out/otel/src/log-options.js.map +1 -1
- package/out/replicache/src/btree/node.d.ts +0 -2
- package/out/replicache/src/btree/node.d.ts.map +1 -1
- package/out/replicache/src/btree/node.js +14 -12
- package/out/replicache/src/btree/node.js.map +1 -1
- package/out/replicache/src/btree/read.js +4 -2
- package/out/replicache/src/btree/read.js.map +1 -1
- package/out/replicache/src/btree/splice.js.map +1 -1
- package/out/replicache/src/btree/write.js +9 -5
- package/out/replicache/src/btree/write.js.map +1 -1
- package/out/replicache/src/config.js +1 -2
- package/out/replicache/src/connection-loop.d.ts.map +1 -1
- package/out/replicache/src/connection-loop.js +1 -1
- package/out/replicache/src/connection-loop.js.map +1 -1
- package/out/replicache/src/dag/chunk.js +1 -1
- package/out/replicache/src/dag/gc.js.map +1 -1
- package/out/replicache/src/dag/lazy-store.js +8 -7
- package/out/replicache/src/dag/lazy-store.js.map +1 -1
- package/out/replicache/src/dag/store-impl.js +1 -1
- package/out/replicache/src/dag/store-impl.js.map +1 -1
- package/out/replicache/src/dag/visitor.js.map +1 -1
- package/out/replicache/src/db/commit.d.ts +0 -1
- package/out/replicache/src/db/commit.d.ts.map +1 -1
- package/out/replicache/src/db/commit.js +5 -3
- package/out/replicache/src/db/commit.js.map +1 -1
- package/out/replicache/src/db/read.js +1 -1
- package/out/replicache/src/db/read.js.map +1 -1
- package/out/replicache/src/db/rebase.js.map +1 -1
- package/out/replicache/src/db/write.d.ts +0 -2
- package/out/replicache/src/db/write.d.ts.map +1 -1
- package/out/replicache/src/db/write.js +5 -2
- package/out/replicache/src/db/write.js.map +1 -1
- package/out/replicache/src/deleted-clients.d.ts +0 -2
- package/out/replicache/src/deleted-clients.d.ts.map +1 -1
- package/out/replicache/src/deleted-clients.js +5 -3
- package/out/replicache/src/deleted-clients.js.map +1 -1
- package/out/replicache/src/expo-sqlite.js +1 -2
- package/out/replicache/src/frozen-json.d.ts +0 -1
- package/out/replicache/src/frozen-json.d.ts.map +1 -1
- package/out/replicache/src/frozen-json.js +1 -1
- package/out/replicache/src/frozen-json.js.map +1 -1
- package/out/replicache/src/get-default-puller.js +1 -1
- package/out/replicache/src/hash.js +1 -1
- package/out/replicache/src/hash.js.map +1 -1
- package/out/replicache/src/impl.js +1 -2
- package/out/replicache/src/index-defs.d.ts +0 -2
- package/out/replicache/src/index-defs.d.ts.map +1 -1
- package/out/replicache/src/index-defs.js +5 -3
- package/out/replicache/src/index-defs.js.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts +0 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/idb-store.js +2 -2
- package/out/replicache/src/kv/idb-store.js.map +1 -1
- package/out/replicache/src/kv/mem-fallback-store.js +1 -1
- package/out/replicache/src/kv/mem-fallback-store.js.map +1 -1
- package/out/replicache/src/kv/mem-store.js.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/op-sqlite/types.js.map +1 -1
- package/out/replicache/src/kv/read-impl.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +8 -4
- package/out/replicache/src/kv/sqlite-store.js.map +1 -1
- package/out/replicache/src/kv/throw-if-closed.d.ts +0 -3
- package/out/replicache/src/kv/throw-if-closed.d.ts.map +1 -1
- package/out/replicache/src/kv/throw-if-closed.js.map +1 -1
- package/out/replicache/src/kv/write-impl-base.js +4 -1
- package/out/replicache/src/kv/write-impl-base.js.map +1 -1
- package/out/replicache/src/kv/write-impl.js.map +1 -1
- package/out/replicache/src/log-options.js +2 -1
- package/out/replicache/src/log-options.js.map +1 -1
- package/out/replicache/src/make-idb-name.js +1 -1
- package/out/replicache/src/new-client-channel.js +9 -7
- package/out/replicache/src/new-client-channel.js.map +1 -1
- package/out/replicache/src/on-persist-channel.js +1 -1
- package/out/replicache/src/on-persist-channel.js.map +1 -1
- package/out/replicache/src/op-sqlite.js +1 -2
- package/out/replicache/src/pending-mutations.js +2 -1
- package/out/replicache/src/pending-mutations.js.map +1 -1
- package/out/replicache/src/persist/client-gc.js +2 -2
- package/out/replicache/src/persist/client-gc.js.map +1 -1
- package/out/replicache/src/persist/client-group-gc.d.ts +0 -7
- package/out/replicache/src/persist/client-group-gc.d.ts.map +1 -1
- package/out/replicache/src/persist/client-group-gc.js +1 -1
- package/out/replicache/src/persist/client-group-gc.js.map +1 -1
- package/out/replicache/src/persist/client-groups.js +1 -1
- package/out/replicache/src/persist/client-groups.js.map +1 -1
- package/out/replicache/src/persist/clients.js +1 -1
- package/out/replicache/src/persist/clients.js.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.js +5 -4
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -1
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -1
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -1
- package/out/replicache/src/persist/heartbeat.js +2 -2
- package/out/replicache/src/persist/heartbeat.js.map +1 -1
- package/out/replicache/src/persist/idb-databases-store.js +1 -1
- package/out/replicache/src/persist/idb-databases-store.js.map +1 -1
- package/out/replicache/src/persist/make-client-id.js +1 -1
- package/out/replicache/src/persist/make-client-id.js.map +1 -1
- package/out/replicache/src/persist/persist.js +3 -2
- package/out/replicache/src/persist/persist.js.map +1 -1
- package/out/replicache/src/persist/refresh.js +8 -5
- package/out/replicache/src/persist/refresh.js.map +1 -1
- package/out/replicache/src/process-scheduler.js +1 -1
- package/out/replicache/src/process-scheduler.js.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts +2 -7
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js +21 -18
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/replicache/src/scan-iterator.js.map +1 -1
- package/out/replicache/src/scan-options.js +7 -6
- package/out/replicache/src/scan-options.js.map +1 -1
- package/out/replicache/src/sqlite.js +1 -2
- package/out/replicache/src/subscriptions.js +1 -1
- package/out/replicache/src/subscriptions.js.map +1 -1
- package/out/replicache/src/sync/diff.js +3 -1
- package/out/replicache/src/sync/diff.js.map +1 -1
- package/out/replicache/src/sync/ids.js.map +1 -1
- package/out/replicache/src/sync/patch.d.ts +0 -5
- package/out/replicache/src/sync/patch.d.ts.map +1 -1
- package/out/replicache/src/sync/patch.js +2 -4
- package/out/replicache/src/sync/patch.js.map +1 -1
- package/out/replicache/src/sync/pull.d.ts +0 -1
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.js +3 -1
- package/out/replicache/src/sync/pull.js.map +1 -1
- package/out/replicache/src/sync/push.d.ts +2 -1
- package/out/replicache/src/sync/push.d.ts.map +1 -1
- package/out/replicache/src/sync/push.js.map +1 -1
- package/out/replicache/src/sync/request-id.js +1 -1
- package/out/replicache/src/sync/request-id.js.map +1 -1
- package/out/replicache/src/transactions.js +1 -1
- package/out/replicache/src/transactions.js.map +1 -1
- package/out/replicache/src/types.d.ts +2 -1
- package/out/replicache/src/types.d.ts.map +1 -1
- package/out/shared/src/arrays.js +4 -1
- package/out/shared/src/arrays.js.map +1 -1
- package/out/shared/src/asserts.d.ts +0 -5
- package/out/shared/src/asserts.d.ts.map +1 -1
- package/out/shared/src/asserts.js.map +1 -1
- package/out/shared/src/bigint-json.d.ts +9 -0
- package/out/shared/src/bigint-json.d.ts.map +1 -1
- package/out/shared/src/bigint-json.js +27 -2
- package/out/shared/src/bigint-json.js.map +1 -1
- package/out/shared/src/broadcast-channel.js +1 -1
- package/out/shared/src/browser-env.d.ts +0 -17
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/browser-env.js.map +1 -1
- package/out/shared/src/btree-set.js +11 -8
- package/out/shared/src/btree-set.js.map +1 -1
- package/out/shared/src/cache.js.map +1 -1
- package/out/shared/src/config.js +1 -1
- package/out/shared/src/custom-key-map.js.map +1 -1
- package/out/shared/src/custom-key-set.js.map +1 -1
- package/out/shared/src/deep-clone.d.ts +0 -1
- package/out/shared/src/deep-clone.d.ts.map +1 -1
- package/out/shared/src/deep-clone.js.map +1 -1
- package/out/shared/src/document-visible.js +1 -1
- package/out/shared/src/document-visible.js.map +1 -1
- package/out/shared/src/dotenv.js.map +1 -1
- package/out/shared/src/error.js +1 -1
- package/out/shared/src/error.js.map +1 -1
- package/out/shared/src/expand.d.ts +0 -3
- package/out/shared/src/expand.d.ts.map +1 -1
- package/out/shared/src/hash.js +2 -2
- package/out/shared/src/hash.js.map +1 -1
- package/out/shared/src/immutable.d.ts +1 -1
- package/out/shared/src/immutable.d.ts.map +1 -1
- package/out/shared/src/iterables.d.ts +0 -1
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js.map +1 -1
- package/out/shared/src/json-schema.js.map +1 -1
- package/out/shared/src/json.js.map +1 -1
- package/out/shared/src/logging-test-utils.js.map +1 -1
- package/out/shared/src/logging.js +1 -1
- package/out/shared/src/logging.js.map +1 -1
- package/out/shared/src/navigator.js +1 -1
- package/out/shared/src/options-types.d.ts +1 -1
- package/out/shared/src/options-types.d.ts.map +1 -1
- package/out/shared/src/options.d.ts +2 -3
- package/out/shared/src/options.d.ts.map +1 -1
- package/out/shared/src/options.js +8 -11
- package/out/shared/src/options.js.map +1 -1
- package/out/shared/src/promise-race.js +1 -1
- package/out/shared/src/promise-race.js.map +1 -1
- package/out/shared/src/queue.js +1 -1
- package/out/shared/src/queue.js.map +1 -1
- package/out/shared/src/record-proxy.js.map +1 -1
- package/out/shared/src/resolved-promises.d.ts +0 -4
- package/out/shared/src/resolved-promises.d.ts.map +1 -1
- package/out/shared/src/resolved-promises.js +0 -1
- package/out/shared/src/resolved-promises.js.map +1 -1
- package/out/shared/src/resolver.d.ts +9 -0
- package/out/shared/src/resolver.d.ts.map +1 -0
- package/out/shared/src/resolver.js +6 -0
- package/out/shared/src/resolver.js.map +1 -0
- package/out/shared/src/ring-buffer.js.map +1 -1
- package/out/shared/src/size-of-value.js +7 -10
- package/out/shared/src/size-of-value.js.map +1 -1
- package/out/shared/src/sleep.js +1 -1
- package/out/shared/src/sleep.js.map +1 -1
- package/out/shared/src/sorted-entries.js.map +1 -1
- package/out/shared/src/tdigest-schema.js.map +1 -1
- package/out/shared/src/tdigest.d.ts +0 -1
- package/out/shared/src/tdigest.d.ts.map +1 -1
- package/out/shared/src/tdigest.js.map +1 -1
- package/out/shared/src/valita.js +1 -1
- package/out/shared/src/valita.js.map +1 -1
- package/out/z2s/src/compiler.js +5 -7
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/sql.d.ts +1 -5
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +1 -1
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/package.js +210 -189
- package/out/zero/package.js.map +1 -1
- package/out/zero/src/adapters/drizzle.js +1 -2
- package/out/zero/src/adapters/kysely.js +1 -2
- package/out/zero/src/adapters/pg.js +1 -2
- package/out/zero/src/adapters/postgresjs.js +1 -2
- package/out/zero/src/adapters/prisma.js +1 -2
- package/out/zero/src/analyze.js +1 -2
- package/out/zero/src/change-protocol/v0.js +1 -2
- package/out/zero/src/expo-sqlite.js +1 -2
- package/out/zero/src/op-sqlite.js +1 -2
- package/out/zero/src/react-native.js.map +1 -1
- package/out/zero/src/sqlite.js +1 -2
- package/out/zero/src/zero-cache-dev.js +11 -10
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero/src/zero-out.js +2 -1
- package/out/zero/src/zero-out.js.map +1 -1
- package/out/zero-cache/src/auth/auth.js +1 -1
- package/out/zero-cache/src/auth/auth.js.map +1 -1
- package/out/zero-cache/src/auth/jwt.js +4 -1
- package/out/zero-cache/src/auth/jwt.js.map +1 -1
- package/out/zero-cache/src/auth/load-permissions.js +1 -1
- package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +3 -2
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +15 -19
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/network.js +1 -1
- package/out/zero-cache/src/config/network.js.map +1 -1
- package/out/zero-cache/src/config/server-context.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +19 -11
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +47 -10
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +1 -1
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/index-predicate.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts +2 -2
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +1 -1
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.js +5 -3
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/pg-copy-binary.js +4 -3
- package/out/zero-cache/src/db/pg-copy-binary.js.map +1 -1
- package/out/zero-cache/src/db/pg-copy.js +0 -1
- package/out/zero-cache/src/db/pg-copy.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/db/pg-type-parser.js.map +1 -1
- package/out/zero-cache/src/db/run-transaction.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +3 -4
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.js +1 -1
- package/out/zero-cache/src/db/specs.js.map +1 -1
- package/out/zero-cache/src/db/sqlite-corruption.js.map +1 -1
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/db/statements.js +9 -2
- package/out/zero-cache/src/db/statements.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.js +6 -4
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
- package/out/zero-cache/src/db/warmup.js.map +1 -1
- package/out/zero-cache/src/observability/events.js +1 -1
- package/out/zero-cache/src/observability/events.js.map +1 -1
- package/out/zero-cache/src/observability/log-throttle.js.map +1 -1
- package/out/zero-cache/src/observability/metrics.js.map +1 -1
- package/out/zero-cache/src/scripts/decommission.js +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js +5 -3
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
- package/out/zero-cache/src/scripts/permissions.js.map +1 -1
- package/out/zero-cache/src/server/anonymous-otel-start.js +2 -1
- package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +49 -16
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/logging.js +1 -1
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/main.js +2 -2
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
- package/out/zero-cache/src/server/otel-start.js.map +1 -1
- package/out/zero-cache/src/server/reaper.js +2 -2
- package/out/zero-cache/src/server/reaper.js.map +1 -1
- package/out/zero-cache/src/server/replicator.js +1 -1
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +4 -3
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/runner/runtime.js +2 -1
- package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts +9 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js +29 -2
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/shadow-syncer.js +1 -1
- package/out/zero-cache/src/server/shadow-syncer.js.map +1 -1
- package/out/zero-cache/src/server/slot-keeper.js.map +1 -1
- package/out/zero-cache/src/server/syncer-assigner.js.map +1 -1
- package/out/zero-cache/src/server/syncer.js +10 -5
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.js +1 -1
- package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/worker-urls.js.map +1 -1
- package/out/zero-cache/src/services/analyze.js +2 -2
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js +3 -3
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js +1 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/init-cleanup.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.js +4 -4
- package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +4 -4
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js +52 -27
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +70 -15
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js +2 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/fork-request.js +54 -0
- package/out/zero-cache/src/services/change-source/pg/fork-request.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +9 -7
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +5 -4
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/lsn.d.ts +0 -2
- package/out/zero-cache/src/services/change-source/pg/lsn.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/lsn.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js +2 -2
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js +9 -3
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +0 -12
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +6 -4
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +13 -12
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/replica-stage-enum.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +10 -7
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.js +1 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts +3 -0
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js +2 -1
- package/out/zero-cache/src/services/change-source/protocol/current/status.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current.js +1 -1
- package/out/zero-cache/src/services/change-source/protocol/mod.js +1 -2
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.js +1 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +6 -6
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js +56 -21
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.js +2 -2
- package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js +2 -3
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.js +3 -3
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +8 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +85 -59
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.js +1 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.js +11 -10
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js +81 -12
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js +4 -4
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.js +2 -2
- package/out/zero-cache/src/services/change-streamer/replica-poller.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.js +12 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js +42 -0
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-message.js +1 -2
- package/out/zero-cache/src/services/change-streamer/snapshot-message.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js +2 -2
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js +2 -2
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js +4 -6
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js +3 -5
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +4 -4
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscribe.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +8 -7
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js +0 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js.map +1 -1
- package/out/zero-cache/src/services/heapz.js +2 -1
- package/out/zero-cache/src/services/heapz.js.map +1 -1
- package/out/zero-cache/src/services/http-service.d.ts +2 -2
- package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/http-service.js +6 -4
- package/out/zero-cache/src/services/http-service.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +3 -3
- package/out/zero-cache/src/services/life-cycle.js.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +4 -2
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +4 -4
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +2 -2
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +1 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.js.map +1 -1
- package/out/zero-cache/src/services/litestream/metrics.js.map +1 -1
- package/out/zero-cache/src/services/litestream/restore-progress.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +3 -4
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +61 -17
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/plannerz.d.ts +4 -12
- package/out/zero-cache/src/services/plannerz.d.ts.map +1 -1
- package/out/zero-cache/src/services/plannerz.js +6 -7
- package/out/zero-cache/src/services/plannerz.js.map +1 -1
- package/out/zero-cache/src/services/profz.js +5 -3
- package/out/zero-cache/src/services/profz.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-cookies.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-db.js +4 -3
- package/out/zero-cache/src/services/replicator/change-log-db.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/drain-handler.js +1 -1
- package/out/zero-cache/src/services/replicator/drain-handler.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +4 -4
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js +4 -3
- package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.js +2 -2
- package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts +2 -11
- package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/report-schema.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/backfilling.js +2 -2
- package/out/zero-cache/src/services/replicator/schema/backfilling.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +19 -17
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +31 -15
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.d.ts +0 -7
- package/out/zero-cache/src/services/replicator/schema/column-metadata.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.js +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +10 -7
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/table-metadata.js.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.js +2 -2
- package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker.js +3 -3
- package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +1 -1
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/running-state.js +1 -1
- package/out/zero-cache/src/services/running-state.js.map +1 -1
- package/out/zero-cache/src/services/shadow-sync/shadow-sync-service.js.map +1 -1
- package/out/zero-cache/src/services/statz.d.ts.map +1 -1
- package/out/zero-cache/src/services/statz.js +5 -4
- package/out/zero-cache/src/services/statz.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js +2 -2
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/batch-pacer.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +71 -24
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +46 -6
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js +2 -2
- package/out/zero-cache/src/services/view-syncer/cvr-purger.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +12 -7
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +12 -4
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.js +1 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +2 -2
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js +2 -2
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +6 -4
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +13 -10
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/plan-warnings.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/push-cost.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/push-cutoff.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-shape.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.js +1 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +2 -2
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -16
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js +7 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +12 -8
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +52 -28
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/error-with-level.js.map +1 -1
- package/out/zero-cache/src/types/lexi-version.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +0 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +1 -1
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg-data-type.js +1 -1
- package/out/zero-cache/src/types/pg-data-type.js.map +1 -1
- package/out/zero-cache/src/types/pg-types.d.ts +0 -40
- package/out/zero-cache/src/types/pg-types.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg-types.js.map +1 -1
- package/out/zero-cache/src/types/pg.js +6 -4
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts +0 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts.map +1 -1
- package/out/zero-cache/src/types/poke-chunk.js +1 -1
- package/out/zero-cache/src/types/poke-chunk.js.map +1 -1
- package/out/zero-cache/src/types/processes.js +1 -1
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/profiler.js +1 -1
- package/out/zero-cache/src/types/profiler.js.map +1 -1
- package/out/zero-cache/src/types/row-key.d.ts +0 -5
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
- package/out/zero-cache/src/types/row-key.js.map +1 -1
- package/out/zero-cache/src/types/sql.js.map +1 -1
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js +11 -10
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/strings.js.map +1 -1
- package/out/zero-cache/src/types/subscription.js +1 -1
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/types/timeout.js +1 -1
- package/out/zero-cache/src/types/websocket-handoff.d.ts +4 -7
- package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
- package/out/zero-cache/src/types/websocket-handoff.js +16 -2
- package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
- package/out/zero-cache/src/types/ws.d.ts +2 -1
- package/out/zero-cache/src/types/ws.d.ts.map +1 -1
- package/out/zero-cache/src/types/ws.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +1 -2
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +5 -3
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/mutator.js +1 -1
- package/out/zero-cache/src/workers/mutator.js.map +1 -1
- package/out/zero-cache/src/workers/rehome.d.ts +15 -0
- package/out/zero-cache/src/workers/rehome.d.ts.map +1 -0
- package/out/zero-cache/src/workers/rehome.js +36 -0
- package/out/zero-cache/src/workers/rehome.js.map +1 -0
- package/out/zero-cache/src/workers/replicator.js +5 -4
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +9 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +30 -5
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.js +2 -2
- package/out/zero-client/src/client/active-clients-manager.js.map +1 -1
- package/out/zero-client/src/client/bindings.js +11 -11
- package/out/zero-client/src/client/connection-manager.js +1 -1
- package/out/zero-client/src/client/connection-manager.js.map +1 -1
- package/out/zero-client/src/client/connection.js +1 -1
- package/out/zero-client/src/client/connection.js.map +1 -1
- package/out/zero-client/src/client/context.js.map +1 -1
- package/out/zero-client/src/client/crud-impl.js +1 -1
- package/out/zero-client/src/client/crud-impl.js.map +1 -1
- package/out/zero-client/src/client/crud.d.ts +2 -8
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +0 -2
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/custom.js.map +1 -1
- package/out/zero-client/src/client/delete-clients-manager.js.map +1 -1
- package/out/zero-client/src/client/enable-analytics.d.ts +0 -1
- package/out/zero-client/src/client/enable-analytics.d.ts.map +1 -1
- package/out/zero-client/src/client/enable-analytics.js +1 -0
- package/out/zero-client/src/client/enable-analytics.js.map +1 -1
- package/out/zero-client/src/client/error.d.ts +4 -5
- package/out/zero-client/src/client/error.d.ts.map +1 -1
- package/out/zero-client/src/client/error.js.map +1 -1
- package/out/zero-client/src/client/inspector/client-group.js.map +1 -1
- package/out/zero-client/src/client/inspector/client.js.map +1 -1
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js +1 -1
- package/out/zero-client/src/client/inspector/html-dialog-prompt.js.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.js.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
- package/out/zero-client/src/client/inspector/query.js.map +1 -1
- package/out/zero-client/src/client/ivm-branch.js +1 -3
- package/out/zero-client/src/client/ivm-branch.js.map +1 -1
- package/out/zero-client/src/client/keys.d.ts +0 -1
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.js +6 -3
- package/out/zero-client/src/client/keys.js.map +1 -1
- package/out/zero-client/src/client/log-options.js.map +1 -1
- package/out/zero-client/src/client/make-replicache-mutators.js +5 -3
- package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -1
- package/out/zero-client/src/client/metrics.js +3 -5
- package/out/zero-client/src/client/metrics.js.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.js +1 -1
- package/out/zero-client/src/client/mutation-tracker.js.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
- package/out/zero-client/src/client/options.d.ts +0 -4
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/options.js.map +1 -1
- package/out/zero-client/src/client/query-manager.js +2 -2
- package/out/zero-client/src/client/query-manager.js.map +1 -1
- package/out/zero-client/src/client/reload-error-handler.js +4 -3
- package/out/zero-client/src/client/reload-error-handler.js.map +1 -1
- package/out/zero-client/src/client/replicache-types.d.ts +3 -2
- package/out/zero-client/src/client/replicache-types.d.ts.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +1 -2
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -1
- package/out/zero-client/src/client/zero-rep.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +1 -5
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +20 -12
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-client/src/mod.js +23 -23
- package/out/zero-client/src/types/client-state.d.ts +0 -6
- package/out/zero-client/src/types/client-state.d.ts.map +1 -1
- package/out/zero-client/src/util/nanoid.js.map +1 -1
- package/out/zero-permissions/src/permissions.d.ts +1 -12
- package/out/zero-permissions/src/permissions.d.ts.map +1 -1
- package/out/zero-permissions/src/permissions.js +3 -3
- package/out/zero-permissions/src/permissions.js.map +1 -1
- package/out/zero-pg/src/mod.js +9 -9
- package/out/zero-protocol/src/analyze-query-result.js +1 -1
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/application-error.js.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +0 -4
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +21 -11
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts +0 -20
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
- package/out/zero-protocol/src/client-schema.d.ts +2 -5
- package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
- package/out/zero-protocol/src/client-schema.js.map +1 -1
- package/out/zero-protocol/src/close-connection.d.ts +0 -8
- package/out/zero-protocol/src/close-connection.d.ts.map +1 -1
- package/out/zero-protocol/src/close-connection.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts +0 -12
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +3 -17
- package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/custom-queries.js.map +1 -1
- package/out/zero-protocol/src/data.d.ts +0 -1
- package/out/zero-protocol/src/data.d.ts.map +1 -1
- package/out/zero-protocol/src/data.js +3 -1
- package/out/zero-protocol/src/data.js.map +1 -1
- package/out/zero-protocol/src/delete-clients.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +2 -2
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +82 -84
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/inspect-up.d.ts +0 -28
- package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.js.map +1 -1
- package/out/zero-protocol/src/mutate-server.d.ts +0 -21
- package/out/zero-protocol/src/mutate-server.d.ts.map +1 -1
- package/out/zero-protocol/src/mutate-server.js.map +1 -1
- package/out/zero-protocol/src/mutation-id.js.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.d.ts +0 -1
- package/out/zero-protocol/src/mutation-type-enum.d.ts.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
- package/out/zero-protocol/src/mutation.d.ts +2 -4
- package/out/zero-protocol/src/mutation.d.ts.map +1 -1
- package/out/zero-protocol/src/mutation.js.map +1 -1
- package/out/zero-protocol/src/mutations-patch.d.ts +0 -33
- package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/mutations-patch.js.map +1 -1
- package/out/zero-protocol/src/ping.d.ts +0 -2
- package/out/zero-protocol/src/ping.d.ts.map +1 -1
- package/out/zero-protocol/src/ping.js.map +1 -1
- package/out/zero-protocol/src/poke.d.ts +3 -2
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +1 -1
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.d.ts +0 -2
- package/out/zero-protocol/src/pong.d.ts.map +1 -1
- package/out/zero-protocol/src/pong.js.map +1 -1
- package/out/zero-protocol/src/primary-key.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +1 -0
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/pull.d.ts +2 -7
- package/out/zero-protocol/src/pull.d.ts.map +1 -1
- package/out/zero-protocol/src/pull.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +1 -3
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts +0 -16
- package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/queries-patch.js +1 -1
- package/out/zero-protocol/src/queries-patch.js.map +1 -1
- package/out/zero-protocol/src/query-hash-visitor.js.map +1 -1
- package/out/zero-protocol/src/query-hash.js +2 -2
- package/out/zero-protocol/src/query-server.d.ts +2 -41
- package/out/zero-protocol/src/query-server.d.ts.map +1 -1
- package/out/zero-protocol/src/query-server.js.map +1 -1
- package/out/zero-protocol/src/row-patch.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +60 -60
- package/out/zero-protocol/src/up.js +1 -1
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-protocol/src/update-auth.js.map +1 -1
- package/out/zero-protocol/src/version.d.ts +0 -1
- package/out/zero-protocol/src/version.d.ts.map +1 -1
- package/out/zero-protocol/src/version.js.map +1 -1
- package/out/zero-react/src/bindings.js +11 -11
- package/out/zero-react/src/mod.js +5 -5
- package/out/zero-react/src/use-query.js +2 -2
- package/out/zero-react/src/use-query.js.map +1 -1
- package/out/zero-react/src/zero-provider.d.ts +1 -1
- package/out/zero-react/src/zero-provider.d.ts.map +1 -1
- package/out/zero-react/src/zero-provider.js +2 -1
- package/out/zero-react/src/zero-provider.js.map +1 -1
- package/out/zero-react/src/zero.js +23 -23
- package/out/zero-schema/src/builder/relationship-builder.d.ts +0 -2
- package/out/zero-schema/src/builder/relationship-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.js +3 -2
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +1 -1
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-schema/src/compiled-permissions.js.map +1 -1
- package/out/zero-schema/src/name-mapper.js +7 -5
- package/out/zero-schema/src/name-mapper.js.map +1 -1
- package/out/zero-schema/src/schema-config.d.ts +0 -1
- package/out/zero-schema/src/schema-config.d.ts.map +1 -1
- package/out/zero-schema/src/schema-config.js +1 -1
- package/out/zero-schema/src/schema-config.js.map +1 -1
- package/out/zero-schema/src/table-schema.d.ts +3 -11
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/adapters/kysely.js.map +1 -1
- package/out/zero-server/src/adapters/pg.js.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
- package/out/zero-server/src/adapters/prisma.js.map +1 -1
- package/out/zero-server/src/closable-db-transaction.js.map +1 -1
- package/out/zero-server/src/custom.js +1 -1
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/mod.js +8 -8
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/push-processor.js.map +1 -1
- package/out/zero-server/src/queries/process-queries.d.ts +2 -4
- package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
- package/out/zero-server/src/queries/process-queries.js +2 -1
- package/out/zero-server/src/queries/process-queries.js.map +1 -1
- package/out/zero-server/src/schema.js +7 -7
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/bindings.js +11 -11
- package/out/zero-solid/src/mod.js +5 -5
- package/out/zero-solid/src/solid-view.d.ts +0 -2
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/zero-solid/src/solid-view.js +1 -1
- package/out/zero-solid/src/solid-view.js.map +1 -1
- package/out/zero-solid/src/use-connection-state.js +2 -1
- package/out/zero-solid/src/use-connection-state.js.map +1 -1
- package/out/zero-solid/src/use-query.js.map +1 -1
- package/out/zero-solid/src/use-zero-online.js +2 -1
- package/out/zero-solid/src/use-zero-online.js.map +1 -1
- package/out/zero-solid/src/use-zero.js +3 -2
- package/out/zero-solid/src/use-zero.js.map +1 -1
- package/out/zero-solid/src/zero.js +23 -23
- package/out/zero-types/src/name-mapper.d.ts +2 -1
- package/out/zero-types/src/name-mapper.d.ts.map +1 -1
- package/out/zero-types/src/name-mapper.js.map +1 -1
- package/out/zero-types/src/schema-value.d.ts +3 -2
- package/out/zero-types/src/schema-value.d.ts.map +1 -1
- package/out/zero-types/src/schema.d.ts +1 -1
- package/out/zero-types/src/schema.d.ts.map +1 -1
- package/out/zql/src/builder/builder.d.ts +1 -11
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +15 -13
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/correlated-predicate-pushdown.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/builder/filter.d.ts +0 -1
- package/out/zql/src/builder/filter.d.ts.map +1 -1
- package/out/zql/src/builder/filter.js.map +1 -1
- package/out/zql/src/builder/like.js +0 -1
- package/out/zql/src/builder/like.js.map +1 -1
- package/out/zql/src/error.d.ts +0 -5
- package/out/zql/src/error.d.ts.map +1 -1
- package/out/zql/src/error.js.map +1 -1
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/cap.d.ts +1 -1
- package/out/zql/src/ivm/cap.d.ts.map +1 -1
- package/out/zql/src/ivm/cap.js +12 -4
- package/out/zql/src/ivm/cap.js.map +1 -1
- package/out/zql/src/ivm/constraint.d.ts +0 -7
- package/out/zql/src/ivm/constraint.d.ts.map +1 -1
- package/out/zql/src/ivm/constraint.js +1 -1
- package/out/zql/src/ivm/constraint.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts +15 -2
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +15 -1
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/deferred-input.js.map +1 -1
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +32 -22
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/fan-in.js.map +1 -1
- package/out/zql/src/ivm/fan-out.js.map +1 -1
- package/out/zql/src/ivm/filter-operators.d.ts +5 -0
- package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-operators.js +1 -1
- package/out/zql/src/ivm/filter-operators.js.map +1 -1
- package/out/zql/src/ivm/filter-push.js.map +1 -1
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/flipped-join.js +1 -3
- package/out/zql/src/ivm/flipped-join.js.map +1 -1
- package/out/zql/src/ivm/join-index-tap.js.map +1 -1
- package/out/zql/src/ivm/join-index.js.map +1 -1
- package/out/zql/src/ivm/join-utils.js +11 -13
- package/out/zql/src/ivm/join-utils.js.map +1 -1
- package/out/zql/src/ivm/join.d.ts.map +1 -1
- package/out/zql/src/ivm/join.js +6 -3
- package/out/zql/src/ivm/join.js.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +1 -2
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +27 -23
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/memory-storage.js.map +1 -1
- package/out/zql/src/ivm/operator.d.ts +6 -0
- package/out/zql/src/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/ivm/operator.js +2 -2
- package/out/zql/src/ivm/operator.js.map +1 -1
- package/out/zql/src/ivm/push-accumulated.js +0 -1
- package/out/zql/src/ivm/push-accumulated.js.map +1 -1
- package/out/zql/src/ivm/skip-yields.js.map +1 -1
- package/out/zql/src/ivm/skip.js.map +1 -1
- package/out/zql/src/ivm/stream.d.ts +0 -1
- package/out/zql/src/ivm/stream.d.ts.map +1 -1
- package/out/zql/src/ivm/stream.js.map +1 -1
- package/out/zql/src/ivm/take-gate.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +7 -8
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts +0 -1
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/ivm/union-fan-out.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.d.ts +5 -35
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zql/src/mutate/crud.d.ts +1 -3
- package/out/zql/src/mutate/crud.d.ts.map +1 -1
- package/out/zql/src/mutate/crud.js +2 -1
- package/out/zql/src/mutate/crud.js.map +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator-registry.js.map +1 -1
- package/out/zql/src/mutate/mutator.d.ts +1 -1
- package/out/zql/src/mutate/mutator.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator.js.map +1 -1
- package/out/zql/src/planner/planner-builder.js +1 -1
- package/out/zql/src/planner/planner-builder.js.map +1 -1
- package/out/zql/src/planner/planner-connection.js.map +1 -1
- package/out/zql/src/planner/planner-debug.d.ts +10 -9
- package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
- package/out/zql/src/planner/planner-debug.js.map +1 -1
- package/out/zql/src/planner/planner-fan-in.js.map +1 -1
- package/out/zql/src/planner/planner-fan-out.js.map +1 -1
- package/out/zql/src/planner/planner-filter.js.map +1 -1
- package/out/zql/src/planner/planner-graph.js +1 -5
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.js +1 -1
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/planner/planner-node.d.ts +0 -1
- package/out/zql/src/planner/planner-node.d.ts.map +1 -1
- package/out/zql/src/planner/planner-node.js.map +1 -1
- package/out/zql/src/planner/planner-source.js.map +1 -1
- package/out/zql/src/planner/planner-terminus.js.map +1 -1
- package/out/zql/src/planner/planner-warnings.d.ts +3 -3
- package/out/zql/src/planner/planner-warnings.d.ts.map +1 -1
- package/out/zql/src/planner/planner-warnings.js.map +1 -1
- package/out/zql/src/query/create-builder.js +2 -1
- package/out/zql/src/query/create-builder.js.map +1 -1
- package/out/zql/src/query/expression.d.ts +0 -22
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js +1 -1
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/measure-push-operator.js.map +1 -1
- package/out/zql/src/query/named.js +2 -1
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +0 -7
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
- package/out/zql/src/query/query-delegate-base.js +1 -1
- package/out/zql/src/query/query-delegate-base.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +1 -4
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +3 -2
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internals.d.ts +0 -3
- package/out/zql/src/query/query-internals.d.ts.map +1 -1
- package/out/zql/src/query/query-internals.js.map +1 -1
- package/out/zql/src/query/query-registry.d.ts +5 -5
- package/out/zql/src/query/query-registry.d.ts.map +1 -1
- package/out/zql/src/query/query-registry.js +1 -1
- package/out/zql/src/query/query-registry.js.map +1 -1
- package/out/zql/src/query/query-transitions.js +1 -1
- package/out/zql/src/query/query-transitions.js.map +1 -1
- package/out/zql/src/query/query.d.ts +2 -13
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.d.ts +1 -19
- package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.js +2 -1
- package/out/zql/src/query/runnable-query-impl.js.map +1 -1
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zql/src/query/ttl.d.ts +2 -3
- package/out/zql/src/query/ttl.d.ts.map +1 -1
- package/out/zql/src/query/ttl.js +8 -8
- package/out/zql/src/query/ttl.js.map +1 -1
- package/out/zql/src/query/validate-input.js.map +1 -1
- package/out/zqlite/src/database-storage.js +195 -26
- package/out/zqlite/src/database-storage.js.map +1 -1
- package/out/zqlite/src/db.d.ts +47 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +121 -21
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/explain-queries.js.map +1 -1
- package/out/zqlite/src/fetch-sql.d.ts +27 -0
- package/out/zqlite/src/fetch-sql.d.ts.map +1 -0
- package/out/zqlite/src/fetch-sql.js +112 -0
- package/out/zqlite/src/fetch-sql.js.map +1 -0
- package/out/zqlite/src/index-usage.js.map +1 -1
- package/out/zqlite/src/internal/sql-inline.js.map +1 -1
- package/out/zqlite/src/internal/sql.js.map +1 -1
- package/out/zqlite/src/internal/statement-cache.d.ts +7 -0
- package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -1
- package/out/zqlite/src/internal/statement-cache.js +11 -4
- package/out/zqlite/src/internal/statement-cache.js.map +1 -1
- package/out/zqlite/src/mod.js +5 -5
- package/out/zqlite/src/pending-delta.js.map +1 -1
- package/out/zqlite/src/query-builder.d.ts +11 -3
- package/out/zqlite/src/query-builder.d.ts.map +1 -1
- package/out/zqlite/src/query-builder.js +22 -7
- package/out/zqlite/src/query-builder.js.map +1 -1
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/resolve-scalar-subqueries.js +2 -5
- package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.js +3 -2
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +20 -3
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +74 -40
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +39 -39
- package/out/analyze-query/src/bin-analyze.d.ts +0 -2
- package/out/analyze-query/src/bin-analyze.d.ts.map +0 -1
- package/out/analyze-query/src/bin-analyze.js +0 -283
- package/out/analyze-query/src/bin-analyze.js.map +0 -1
- package/out/otel/src/maybe-time.d.ts +0 -3
- package/out/otel/src/maybe-time.d.ts.map +0 -1
- package/out/otel/src/maybe-time.js +0 -15
- package/out/otel/src/maybe-time.js.map +0 -1
- package/out/shared/src/cache.d.ts +0 -22
- package/out/shared/src/cache.d.ts.map +0 -1
- package/out/shared/src/custom-key-map.d.ts +0 -26
- package/out/shared/src/custom-key-map.d.ts.map +0 -1
- package/out/shared/src/custom-key-set.d.ts +0 -25
- package/out/shared/src/custom-key-set.d.ts.map +0 -1
- package/out/shared/src/logging-test-utils.d.ts +0 -12
- package/out/shared/src/logging-test-utils.d.ts.map +0 -1
- package/out/shared/src/sorted-entries.d.ts +0 -2
- package/out/shared/src/sorted-entries.d.ts.map +0 -1
- package/out/zero/src/analyze-query.d.ts +0 -3
- package/out/zero/src/analyze-query.d.ts.map +0 -1
- package/out/zero/src/analyze-query.js +0 -3
- package/out/zero/src/server/change-streamer.d.ts +0 -2
- package/out/zero/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero/src/server/main.d.ts +0 -2
- package/out/zero/src/server/main.d.ts.map +0 -1
- package/out/zero/src/server/reaper.d.ts +0 -2
- package/out/zero/src/server/reaper.d.ts.map +0 -1
- package/out/zero/src/server/replicator.d.ts +0 -2
- package/out/zero/src/server/replicator.d.ts.map +0 -1
- package/out/zero/src/server/syncer.d.ts +0 -2
- package/out/zero/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/auth/jwt.d.ts +0 -12
- package/out/zero-cache/src/auth/jwt.d.ts.map +0 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts +0 -17
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +0 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +0 -28
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +0 -1
- package/out/zero-cache/src/config/server-context.d.ts +0 -16
- package/out/zero-cache/src/config/server-context.d.ts.map +0 -1
- package/out/zero-cache/src/custom/fetch.d.ts +0 -38
- package/out/zero-cache/src/custom/fetch.d.ts.map +0 -1
- package/out/zero-cache/src/custom/metrics.d.ts +0 -31
- package/out/zero-cache/src/custom/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +0 -68
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +0 -1
- package/out/zero-cache/src/db/create.d.ts +0 -12
- package/out/zero-cache/src/db/create.d.ts.map +0 -1
- package/out/zero-cache/src/db/delete-lite-db.d.ts +0 -2
- package/out/zero-cache/src/db/delete-lite-db.d.ts.map +0 -1
- package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
- package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration-lite.d.ts +0 -78
- package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration.d.ts +0 -80
- package/out/zero-cache/src/db/migration.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy-binary.d.ts +0 -101
- package/out/zero-cache/src/db/pg-copy-binary.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy.d.ts +0 -30
- package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-type-parser.d.ts +0 -15
- package/out/zero-cache/src/db/pg-type-parser.d.ts.map +0 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +0 -205
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +0 -1
- package/out/zero-cache/src/db/warmup.d.ts +0 -4
- package/out/zero-cache/src/db/warmup.d.ts.map +0 -1
- package/out/zero-cache/src/observability/events.d.ts +0 -15
- package/out/zero-cache/src/observability/events.d.ts.map +0 -1
- package/out/zero-cache/src/observability/log-throttle.d.ts +0 -44
- package/out/zero-cache/src/observability/log-throttle.d.ts.map +0 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts +0 -21
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/change-streamer.d.ts +0 -3
- package/out/zero-cache/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +0 -71
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +0 -1
- package/out/zero-cache/src/server/main.d.ts +0 -3
- package/out/zero-cache/src/server/main.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-diag-logger.d.ts +0 -16
- package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-start.d.ts +0 -3
- package/out/zero-cache/src/server/otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/priority-op.d.ts +0 -8
- package/out/zero-cache/src/server/priority-op.d.ts.map +0 -1
- package/out/zero-cache/src/server/reaper.d.ts +0 -3
- package/out/zero-cache/src/server/reaper.d.ts.map +0 -1
- package/out/zero-cache/src/server/replicator.d.ts +0 -10
- package/out/zero-cache/src/server/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/server/slot-keeper.d.ts +0 -26
- package/out/zero-cache/src/server/slot-keeper.d.ts.map +0 -1
- package/out/zero-cache/src/server/syncer.d.ts +0 -3
- package/out/zero-cache/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/services/analyze.d.ts +0 -9
- package/out/zero-cache/src/services/analyze.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/change-source.d.ts +0 -32
- package/out/zero-cache/src/services/change-source/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +0 -57
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts +0 -55
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts +0 -24
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts +0 -115
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +0 -25
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +0 -36
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts +0 -65
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +0 -115
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -155
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +0 -17
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts +0 -28
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts +0 -76
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +0 -169
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts +0 -16
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts +0 -15
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +0 -127
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +0 -9
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts +0 -68
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts +0 -72
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts +0 -50
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +0 -14
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +0 -18
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts +0 -98
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts +0 -158
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts +0 -19
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -78
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -139
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -586
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts +0 -24
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +0 -49
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts +0 -53
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts +0 -88
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts +0 -243
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +0 -152
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +0 -11
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts +0 -92
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +0 -36
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +0 -22
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +0 -99
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +0 -83
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts +0 -121
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +0 -73
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +0 -62
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +0 -114
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +0 -276
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts +0 -485
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +0 -194
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +0 -52
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +0 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +0 -57
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +0 -77
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -78
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/metrics.d.ts +0 -31
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts +0 -24
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -40
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +0 -63
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts +0 -368
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +0 -56
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts +0 -37
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts +0 -82
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +0 -25
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -9
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts +0 -71
- package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +0 -86
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +0 -55
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +0 -132
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts +0 -120
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +0 -111
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +0 -1
- package/out/zero-cache/src/services/run-ast.d.ts +0 -39
- package/out/zero-cache/src/services/run-ast.d.ts.map +0 -1
- package/out/zero-cache/src/services/runner.d.ts +0 -19
- package/out/zero-cache/src/services/runner.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts +0 -26
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts +0 -79
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +0 -79
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts +0 -5
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts +0 -184
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +0 -22
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +0 -128
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -294
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts +0 -81
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +0 -45
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts +0 -53
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +0 -34
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -296
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts +0 -7
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts +0 -132
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts +0 -55
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts +0 -28
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts +0 -25
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts +0 -89
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +0 -90
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +0 -86
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +0 -5
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +0 -563
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts +0 -95
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +0 -412
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts +0 -2
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts +0 -10
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +0 -133
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-patch.d.ts +0 -21
- package/out/zero-cache/src/types/pg-patch.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-versions.d.ts +0 -3
- package/out/zero-cache/src/types/pg-versions.d.ts.map +0 -1
- package/out/zero-cache/src/workers/replicator.d.ts +0 -57
- package/out/zero-cache/src/workers/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +0 -14
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer.d.ts +0 -67
- package/out/zero-cache/src/workers/syncer.d.ts.map +0 -1
- package/out/zero-events/src/index.d.ts +0 -27
- package/out/zero-events/src/index.d.ts.map +0 -1
- package/out/zero-events/src/json.d.ts +0 -20
- package/out/zero-events/src/json.d.ts.map +0 -1
- package/out/zero-events/src/status.d.ts +0 -144
- package/out/zero-events/src/status.d.ts.map +0 -1
- package/out/zqlite/src/database-storage.d.ts +0 -24
- package/out/zqlite/src/database-storage.d.ts.map +0 -1
- package/out/zqlite/src/explain-queries.d.ts +0 -4
- package/out/zqlite/src/explain-queries.d.ts.map +0 -1
- package/out/zqlite/src/internal/sql-inline.d.ts +0 -13
- package/out/zqlite/src/internal/sql-inline.d.ts.map +0 -1
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts +0 -72
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts +0 -17
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts +0 -121
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +0 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import "../../replicache/src/get-default-puller.js";
|
|
2
|
-
import "../../replicache/src/storage-failure.js";
|
|
3
|
-
import "../../replicache/src/kv/idb-store.js";
|
|
4
|
-
import "../../replicache/src/make-idb-name.js";
|
|
5
|
-
import "../../replicache/src/persist/collect-idb-databases.js";
|
|
6
|
-
import "../../replicache/src/transaction-closed-error.js";
|
|
7
|
-
import "../../zero-permissions/src/permissions.js";
|
|
8
|
-
import "../../zero-protocol/src/application-error.js";
|
|
9
|
-
import "../../zero-protocol/src/custom-queries.js";
|
|
10
|
-
import "../../zero-schema/src/builder/relationship-builder.js";
|
|
11
|
-
import "../../zero-schema/src/builder/table-builder.js";
|
|
12
|
-
import "../../zero-schema/src/builder/schema-builder.js";
|
|
13
|
-
import "../../zql/src/query/validate-input.js";
|
|
14
|
-
import "../../zql/src/mutate/mutator.js";
|
|
15
|
-
import "../../zql/src/mutate/mutator-registry.js";
|
|
16
|
-
import "../../zql/src/query/create-builder.js";
|
|
17
|
-
import "../../zql/src/query/escape-like.js";
|
|
18
|
-
import "../../zql/src/query/named.js";
|
|
19
|
-
import "../../zql/src/query/query-registry.js";
|
|
20
|
-
import "../../zero-client/src/client/connection-status-enum.js";
|
|
21
|
-
import "../../zero-client/src/client/update-needed-reason-type-enum.js";
|
|
22
|
-
import "../../zero-client/src/client/zero.js";
|
|
1
|
+
import { getDefaultPuller } from "../../replicache/src/get-default-puller.js";
|
|
2
|
+
import { StorageFailureError } from "../../replicache/src/storage-failure.js";
|
|
3
|
+
import { IDBNotFoundError } from "../../replicache/src/kv/idb-store.js";
|
|
4
|
+
import { makeIDBName } from "../../replicache/src/make-idb-name.js";
|
|
5
|
+
import { dropAllDatabases, dropDatabase } from "../../replicache/src/persist/collect-idb-databases.js";
|
|
6
|
+
import { TransactionClosedError } from "../../replicache/src/transaction-closed-error.js";
|
|
7
|
+
import { ANYONE_CAN, ANYONE_CAN_DO_ANYTHING, NOBODY_CAN, definePermissions } from "../../zero-permissions/src/permissions.js";
|
|
8
|
+
import { ApplicationError } from "../../zero-protocol/src/application-error.js";
|
|
9
|
+
import { transformRequestMessageSchema, transformResponseMessageSchema } from "../../zero-protocol/src/custom-queries.js";
|
|
10
|
+
import { relationships } from "../../zero-schema/src/builder/relationship-builder.js";
|
|
11
|
+
import { boolean, enumeration, json, number, string, table } from "../../zero-schema/src/builder/table-builder.js";
|
|
12
|
+
import { createSchema } from "../../zero-schema/src/builder/schema-builder.js";
|
|
13
|
+
import { InputValidationError } from "../../zql/src/query/validate-input.js";
|
|
14
|
+
import { defineMutator, defineMutatorWithType, isMutator, isMutatorDefinition } from "../../zql/src/mutate/mutator.js";
|
|
15
|
+
import { defineMutators, defineMutatorsWithType, getMutator, isMutatorRegistry, mustGetMutator } from "../../zql/src/mutate/mutator-registry.js";
|
|
16
|
+
import { createBuilder } from "../../zql/src/query/create-builder.js";
|
|
17
|
+
import { escapeLike } from "../../zql/src/query/escape-like.js";
|
|
18
|
+
import { syncedQuery, syncedQueryWithContext, withValidation } from "../../zql/src/query/named.js";
|
|
19
|
+
import { defineQueries, defineQueriesWithType, defineQuery, defineQueryWithType, getQuery, isQuery, isQueryDefinition, isQueryRegistry, mustGetQuery } from "../../zql/src/query/query-registry.js";
|
|
20
|
+
import { connection_status_enum_exports } from "../../zero-client/src/client/connection-status-enum.js";
|
|
21
|
+
import { update_needed_reason_type_enum_exports } from "../../zero-client/src/client/update-needed-reason-type-enum.js";
|
|
22
|
+
import { Zero } from "../../zero-client/src/client/zero.js";
|
|
23
23
|
import "../../zero-client/src/mod.js";
|
|
24
|
-
export {};
|
|
24
|
+
export { ANYONE_CAN, ANYONE_CAN_DO_ANYTHING, ApplicationError, connection_status_enum_exports as ConnectionStatus, IDBNotFoundError, InputValidationError, NOBODY_CAN, StorageFailureError, TransactionClosedError, update_needed_reason_type_enum_exports as UpdateNeededReasonType, Zero, boolean, createBuilder, createSchema, defineMutator, defineMutatorWithType, defineMutators, defineMutatorsWithType, definePermissions, defineQueries, defineQueriesWithType, defineQuery, defineQueryWithType, dropAllDatabases, dropDatabase, enumeration, escapeLike, getDefaultPuller, getMutator, getQuery, isMutator, isMutatorDefinition, isMutatorRegistry, isQuery, isQueryDefinition, isQueryRegistry, json, makeIDBName, mustGetMutator, mustGetQuery, number, relationships, string, syncedQuery, syncedQueryWithContext, table, transformRequestMessageSchema, transformResponseMessageSchema, withValidation };
|
|
@@ -17,8 +17,6 @@ type OneConnection<TSourceField, TDestField, TDest extends TableSchema> = {
|
|
|
17
17
|
readonly destSchema: TDest['name'];
|
|
18
18
|
readonly cardinality: 'one';
|
|
19
19
|
};
|
|
20
|
-
type Prev = [-1, 0, 1, 2, 3, 4, 5, 6];
|
|
21
|
-
export type PreviousSchema<TSource extends TableSchema, K extends number, TDests extends TableSchema[]> = K extends 0 ? TSource : TDests[Prev[K]];
|
|
22
20
|
export type Relationships = {
|
|
23
21
|
name: string;
|
|
24
22
|
relationships: Record<string, Relationship>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-builder.d.ts","sourceRoot":"","sources":["../../../../../zero-schema/src/builder/relationship-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAEhE,KAAK,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,WAAW,IAAI;IACrE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;CACrD,CAAC;AAEF,KAAK,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,WAAW,IAAI;IACzE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,WAAW,IAAI;IACxE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"relationship-builder.d.ts","sourceRoot":"","sources":["../../../../../zero-schema/src/builder/relationship-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAEhE,KAAK,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,WAAW,IAAI;IACrE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;CACrD,CAAC;AAEF,KAAK,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,WAAW,IAAI;IACzE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,SAAS,WAAW,IAAI;IACxE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C,CAAC;AAGF,KAAK,aAAa,CAAC,OAAO,SAAS,WAAW,IAAI;IAEhD,CAAC,KAAK,SAAS,WAAW,EACxB,GAAG,EAAE,UAAU,CACb,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN,GACA;QACD,cAAc,CACZ,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN;KACF,CAAC;IAGF,CAAC,SAAS,SAAS,WAAW,EAAE,KAAK,SAAS,WAAW,EACvD,QAAQ,EAAE,UAAU,CAClB,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAChD,SAAS,CACV,EACD,SAAS,EAAE,UAAU,CACnB,SAAS,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAChD,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN,GACA;QACD,cAAc,CACZ,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAChD,SAAS,CACV;QACD,cAAc,CACZ,SAAS,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAChD,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN;KACF,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,CAAC,OAAO,SAAS,WAAW,IAAI;IAE/C,CAAC,KAAK,SAAS,WAAW,EACxB,GAAG,EAAE,UAAU,CACb,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN,GACA;QACD,aAAa,CACX,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN;KACF,CAAC;IAGF,CAAC,aAAa,SAAS,WAAW,EAAE,KAAK,SAAS,WAAW,EAC3D,QAAQ,EAAE,UAAU,CAClB,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EACpD,aAAa,CACd,EACD,SAAS,EAAE,UAAU,CACnB,SAAS,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EACpD,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN,GACA;QACD,aAAa,CACX,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC9C,SAAS,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EACpD,aAAa,CACd;QACD,aAAa,CACX,SAAS,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EACpD,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE,EAC5C,KAAK,CACN;KACF,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,OAAO,SAAS,WAAW,EAC3B,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAEnD,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACvC,EAAE,EAAE,CAAC,QAAQ,EAAE;IACb,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC5B,KAAK,cAAc,GACnB;IAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,aAAa,EAAE,cAAc,CAAA;CAAC,CAUxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-builder.js","names":[],"sources":["../../../../../zero-schema/src/builder/relationship-builder.ts"],"sourcesContent":["/* oxlint-disable @typescript-eslint/no-explicit-any */\nimport {mapValues} from '../../../shared/src/objects.ts';\nimport type {Relationship, TableSchema} from '../table-schema.ts';\nimport type {TableBuilderWithColumns} from './table-builder.ts';\n\ntype ConnectArg<TSourceField, TDestField, TDest extends TableSchema> = {\n readonly sourceField: TSourceField;\n readonly destField: TDestField;\n readonly destSchema: TableBuilderWithColumns<TDest>;\n};\n\ntype ManyConnection<TSourceField, TDestField, TDest extends TableSchema> = {\n readonly sourceField: TSourceField;\n readonly destField: TDestField;\n readonly destSchema: TDest['name'];\n readonly cardinality: 'many';\n};\n\ntype OneConnection<TSourceField, TDestField, TDest extends TableSchema> = {\n readonly sourceField: TSourceField;\n readonly destField: TDestField;\n readonly destSchema: TDest['name'];\n readonly cardinality: 'one';\n};\n\
|
|
1
|
+
{"version":3,"file":"relationship-builder.js","names":[],"sources":["../../../../../zero-schema/src/builder/relationship-builder.ts"],"sourcesContent":["/* oxlint-disable @typescript-eslint/no-explicit-any */\nimport {mapValues} from '../../../shared/src/objects.ts';\nimport type {Relationship, TableSchema} from '../table-schema.ts';\nimport type {TableBuilderWithColumns} from './table-builder.ts';\n\ntype ConnectArg<TSourceField, TDestField, TDest extends TableSchema> = {\n readonly sourceField: TSourceField;\n readonly destField: TDestField;\n readonly destSchema: TableBuilderWithColumns<TDest>;\n};\n\ntype ManyConnection<TSourceField, TDestField, TDest extends TableSchema> = {\n readonly sourceField: TSourceField;\n readonly destField: TDestField;\n readonly destSchema: TDest['name'];\n readonly cardinality: 'many';\n};\n\ntype OneConnection<TSourceField, TDestField, TDest extends TableSchema> = {\n readonly sourceField: TSourceField;\n readonly destField: TDestField;\n readonly destSchema: TDest['name'];\n readonly cardinality: 'one';\n};\n\nexport type Relationships = {\n name: string; // table name\n relationships: Record<string, Relationship>; // relationships for that table\n};\n\n// Overloaded types for better inference\ntype ManyConnector<TSource extends TableSchema> = {\n // Single direct relationship\n <TDest extends TableSchema>(\n arg: ConnectArg<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ): [\n ManyConnection<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ];\n\n // Junction relationship (two hops)\n <TJunction extends TableSchema, TDest extends TableSchema>(\n firstHop: ConnectArg<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TJunction['columns'] & string)[],\n TJunction\n >,\n secondHop: ConnectArg<\n readonly (keyof TJunction['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ): [\n ManyConnection<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TJunction['columns'] & string)[],\n TJunction\n >,\n ManyConnection<\n readonly (keyof TJunction['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ];\n};\n\ntype OneConnector<TSource extends TableSchema> = {\n // Single direct relationship\n <TDest extends TableSchema>(\n arg: ConnectArg<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ): [\n OneConnection<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ];\n\n // Two-hop relationship (e.g., invoice_line -> invoice -> customer)\n <TIntermediate extends TableSchema, TDest extends TableSchema>(\n firstHop: ConnectArg<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TIntermediate['columns'] & string)[],\n TIntermediate\n >,\n secondHop: ConnectArg<\n readonly (keyof TIntermediate['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ): [\n OneConnection<\n readonly (keyof TSource['columns'] & string)[],\n readonly (keyof TIntermediate['columns'] & string)[],\n TIntermediate\n >,\n OneConnection<\n readonly (keyof TIntermediate['columns'] & string)[],\n readonly (keyof TDest['columns'] & string)[],\n TDest\n >,\n ];\n};\n\nexport function relationships<\n TSource extends TableSchema,\n TRelationships extends Record<string, Relationship>,\n>(\n table: TableBuilderWithColumns<TSource>,\n cb: (connects: {\n many: ManyConnector<TSource>;\n one: OneConnector<TSource>;\n }) => TRelationships,\n): {name: TSource['name']; relationships: TRelationships} {\n const relationships = mapValues(\n cb({many, one} as any),\n relationship => relationship,\n );\n\n return {\n name: table.schema.name,\n relationships: relationships as TRelationships,\n };\n}\n\nfunction many(\n ...args: readonly ConnectArg<any, any, TableSchema>[]\n): ManyConnection<any, any, any>[] {\n return args.map(arg => ({\n sourceField: arg.sourceField,\n destField: arg.destField,\n destSchema: arg.destSchema.schema.name,\n cardinality: 'many',\n }));\n}\n\nfunction one(\n ...args: readonly ConnectArg<any, any, TableSchema>[]\n): OneConnection<any, any, any>[] {\n return args.map(arg => ({\n sourceField: arg.sourceField,\n destField: arg.destField,\n destSchema: arg.destSchema.schema.name,\n cardinality: 'one',\n }));\n}\n"],"mappings":";;AAmHA,SAAgB,cAId,OACA,IAIwD;CACxD,MAAM,gBAAgB,UACpB,GAAG;EAAC;EAAM;CAAG,CAAQ,IACrB,iBAAgB,YAClB;CAEA,OAAO;EACL,MAAM,MAAM,OAAO;EACJ;CACjB;AACF;AAEA,SAAS,KACP,GAAG,MAC8B;CACjC,OAAO,KAAK,KAAI,SAAQ;EACtB,aAAa,IAAI;EACjB,WAAW,IAAI;EACf,YAAY,IAAI,WAAW,OAAO;EAClC,aAAa;CACf,EAAE;AACJ;AAEA,SAAS,IACP,GAAG,MAC6B;CAChC,OAAO,KAAK,KAAI,SAAQ;EACtB,aAAa,IAAI;EACjB,WAAW,IAAI;EACf,YAAY,IAAI,WAAW,OAAO;EAClC,aAAa;CACf,EAAE;AACJ"}
|
|
@@ -45,10 +45,11 @@ function checkRelationship(relationships, tableName, tables) {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
function clientSchemaFrom(schema) {
|
|
48
|
-
const
|
|
48
|
+
const client = { tables: mapEntries(schema.tables, (name, { serverName, columns, primaryKey }) => [serverName ?? name, {
|
|
49
49
|
columns: mapEntries(columns, (name, { serverName, type }) => [serverName ?? name, { type }]),
|
|
50
50
|
primaryKey: primaryKey.map((k) => columns[k].serverName ?? k)
|
|
51
|
-
}]) }
|
|
51
|
+
}]) };
|
|
52
|
+
const clientSchema = normalizeClientSchema(client);
|
|
52
53
|
return {
|
|
53
54
|
clientSchema,
|
|
54
55
|
hash: h64(JSON.stringify(clientSchema)).toString(36)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder.js","names":[],"sources":["../../../../../zero-schema/src/builder/schema-builder.ts"],"sourcesContent":["/* oxlint-disable @typescript-eslint/no-explicit-any */\nimport {h64} from '../../../shared/src/hash.ts';\nimport {assignProperty, mapEntries} from '../../../shared/src/objects.ts';\nimport {\n normalizeClientSchema,\n type ClientSchema,\n} from '../../../zero-protocol/src/client-schema.ts';\nimport type {\n Relationship,\n Schema,\n TableSchema,\n} from '../../../zero-types/src/schema.ts';\nimport type {Relationships} from './relationship-builder.ts';\nimport {type TableBuilderWithColumns} from './table-builder.ts';\n\n/**\n * Note: the keys of the `tables` and `relationships` parameters do not matter.\n * You can assign them to any value you like. E.g.,\n *\n * ```ts\n * createSchema({rsdfgafg: table('users')...}, {sdfd: relationships(users, ...)})\n * ```\n */\nexport function createSchema<\n const TTables extends readonly TableBuilderWithColumns<TableSchema>[],\n const TRelationships extends readonly Relationships[],\n const TEnableLegacyQueries extends boolean | undefined,\n const TEnableLegacyMutators extends boolean | undefined,\n>(options: {\n readonly tables: TTables;\n readonly relationships?: TRelationships | undefined;\n /** @see Schema.enableLegacyQueries */\n readonly enableLegacyQueries?: TEnableLegacyQueries | undefined;\n /** @see Schema.enableLegacyMutators */\n readonly enableLegacyMutators?: TEnableLegacyMutators | undefined;\n}): {\n tables: {\n readonly [K in TTables[number]['schema']['name']]: Extract<\n TTables[number]['schema'],\n {name: K}\n >;\n };\n relationships: {\n readonly [K in TRelationships[number]['name']]: Extract<\n TRelationships[number],\n {name: K}\n >['relationships'];\n };\n enableLegacyQueries: TEnableLegacyQueries;\n enableLegacyMutators: TEnableLegacyMutators;\n} {\n const retTables: Record<string, TableSchema> = {};\n const retRelationships: Record<string, Record<string, Relationship>> = {};\n const serverNames = new Set<string>();\n\n options.tables.forEach(table => {\n const {serverName = table.schema.name} = table.schema;\n if (serverNames.has(serverName)) {\n throw new Error(`Multiple tables reference the name \"${serverName}\"`);\n }\n serverNames.add(serverName);\n if (Object.hasOwn(retTables, table.schema.name)) {\n throw new Error(\n `Table \"${table.schema.name}\" is defined more than once in the schema`,\n );\n }\n assignProperty(retTables, table.schema.name, table.build());\n });\n options.relationships?.forEach(relationships => {\n if (Object.hasOwn(retRelationships, relationships.name)) {\n throw new Error(\n `Relationships for table \"${relationships.name}\" are defined more than once in the schema`,\n );\n }\n assignProperty(\n retRelationships,\n relationships.name,\n relationships.relationships,\n );\n checkRelationship(\n relationships.relationships,\n relationships.name,\n retTables,\n );\n });\n\n return {\n tables: retTables,\n relationships: retRelationships,\n enableLegacyQueries: options.enableLegacyQueries,\n enableLegacyMutators: options.enableLegacyMutators,\n } as any;\n}\n\nfunction checkRelationship(\n relationships: Record<string, Relationship>,\n tableName: string,\n tables: Record<string, TableSchema>,\n) {\n // TS should be able to check this for us but something is preventing it from happening.\n Object.entries(relationships).forEach(([name, rel]) => {\n let source = tables[tableName];\n if (Object.hasOwn(source.columns, name)) {\n throw new Error(\n `Relationship \"${tableName}\".\"${name}\" cannot have the same name as the column \"${name}\" on the the table \"${source.name}\"`,\n );\n }\n rel.forEach(connection => {\n if (!Object.hasOwn(tables, connection.destSchema)) {\n throw new Error(\n `For relationship \"${tableName}\".\"${name}\", destination table \"${connection.destSchema}\" is missing in the schema`,\n );\n }\n if (!Object.hasOwn(source.columns, connection.sourceField[0])) {\n throw new Error(\n `For relationship \"${tableName}\".\"${name}\", the source field \"${connection.sourceField[0]}\" is missing in the table schema \"${source.name}\"`,\n );\n }\n source = tables[connection.destSchema];\n });\n });\n}\n\nexport function clientSchemaFrom(schema: Schema): {\n clientSchema: ClientSchema;\n hash: string;\n} {\n const client = {\n tables: mapEntries(\n schema.tables,\n (name, {serverName, columns, primaryKey}) => [\n serverName ?? name,\n {\n columns: mapEntries(columns, (name, {serverName, type}) => [\n serverName ?? name,\n {type},\n ]),\n primaryKey: primaryKey.map(k => columns[k].serverName ?? k),\n },\n ],\n ),\n } satisfies ClientSchema;\n const clientSchema = normalizeClientSchema(client);\n const hash = h64(JSON.stringify(clientSchema)).toString(36);\n return {clientSchema, hash};\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,SAAgB,aAKd,SAsBA;CACA,MAAM,YAAyC,CAAC;CAChD,MAAM,mBAAiE,CAAC;CACxE,MAAM,8BAAc,IAAI,IAAY;CAEpC,QAAQ,OAAO,SAAQ,UAAS;EAC9B,MAAM,EAAC,aAAa,MAAM,OAAO,SAAQ,MAAM;EAC/C,IAAI,YAAY,IAAI,UAAU,GAC5B,MAAM,IAAI,MAAM,uCAAuC,WAAW,EAAE;EAEtE,YAAY,IAAI,UAAU;EAC1B,IAAI,OAAO,OAAO,WAAW,MAAM,OAAO,IAAI,GAC5C,MAAM,IAAI,MACR,UAAU,MAAM,OAAO,KAAK,0CAC9B;EAEF,eAAe,WAAW,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;CAC5D,CAAC;CACD,QAAQ,eAAe,SAAQ,kBAAiB;EAC9C,IAAI,OAAO,OAAO,kBAAkB,cAAc,IAAI,GACpD,MAAM,IAAI,MACR,4BAA4B,cAAc,KAAK,2CACjD;EAEF,eACE,kBACA,cAAc,MACd,cAAc,aAChB;EACA,kBACE,cAAc,eACd,cAAc,MACd,SACF;CACF,CAAC;CAED,OAAO;EACL,QAAQ;EACR,eAAe;EACf,qBAAqB,QAAQ;EAC7B,sBAAsB,QAAQ;CAChC;AACF;AAEA,SAAS,kBACP,eACA,WACA,QACA;CAEA,OAAO,QAAQ,aAAa,
|
|
1
|
+
{"version":3,"file":"schema-builder.js","names":[],"sources":["../../../../../zero-schema/src/builder/schema-builder.ts"],"sourcesContent":["/* oxlint-disable @typescript-eslint/no-explicit-any */\nimport {h64} from '../../../shared/src/hash.ts';\nimport {assignProperty, mapEntries} from '../../../shared/src/objects.ts';\nimport {\n normalizeClientSchema,\n type ClientSchema,\n} from '../../../zero-protocol/src/client-schema.ts';\nimport type {\n Relationship,\n Schema,\n TableSchema,\n} from '../../../zero-types/src/schema.ts';\nimport type {Relationships} from './relationship-builder.ts';\nimport {type TableBuilderWithColumns} from './table-builder.ts';\n\n/**\n * Note: the keys of the `tables` and `relationships` parameters do not matter.\n * You can assign them to any value you like. E.g.,\n *\n * ```ts\n * createSchema({rsdfgafg: table('users')...}, {sdfd: relationships(users, ...)})\n * ```\n */\nexport function createSchema<\n const TTables extends readonly TableBuilderWithColumns<TableSchema>[],\n const TRelationships extends readonly Relationships[],\n const TEnableLegacyQueries extends boolean | undefined,\n const TEnableLegacyMutators extends boolean | undefined,\n>(options: {\n readonly tables: TTables;\n readonly relationships?: TRelationships | undefined;\n /** @see Schema.enableLegacyQueries */\n readonly enableLegacyQueries?: TEnableLegacyQueries | undefined;\n /** @see Schema.enableLegacyMutators */\n readonly enableLegacyMutators?: TEnableLegacyMutators | undefined;\n}): {\n tables: {\n readonly [K in TTables[number]['schema']['name']]: Extract<\n TTables[number]['schema'],\n {name: K}\n >;\n };\n relationships: {\n readonly [K in TRelationships[number]['name']]: Extract<\n TRelationships[number],\n {name: K}\n >['relationships'];\n };\n enableLegacyQueries: TEnableLegacyQueries;\n enableLegacyMutators: TEnableLegacyMutators;\n} {\n const retTables: Record<string, TableSchema> = {};\n const retRelationships: Record<string, Record<string, Relationship>> = {};\n const serverNames = new Set<string>();\n\n options.tables.forEach(table => {\n const {serverName = table.schema.name} = table.schema;\n if (serverNames.has(serverName)) {\n throw new Error(`Multiple tables reference the name \"${serverName}\"`);\n }\n serverNames.add(serverName);\n if (Object.hasOwn(retTables, table.schema.name)) {\n throw new Error(\n `Table \"${table.schema.name}\" is defined more than once in the schema`,\n );\n }\n assignProperty(retTables, table.schema.name, table.build());\n });\n options.relationships?.forEach(relationships => {\n if (Object.hasOwn(retRelationships, relationships.name)) {\n throw new Error(\n `Relationships for table \"${relationships.name}\" are defined more than once in the schema`,\n );\n }\n assignProperty(\n retRelationships,\n relationships.name,\n relationships.relationships,\n );\n checkRelationship(\n relationships.relationships,\n relationships.name,\n retTables,\n );\n });\n\n return {\n tables: retTables,\n relationships: retRelationships,\n enableLegacyQueries: options.enableLegacyQueries,\n enableLegacyMutators: options.enableLegacyMutators,\n } as any;\n}\n\nfunction checkRelationship(\n relationships: Record<string, Relationship>,\n tableName: string,\n tables: Record<string, TableSchema>,\n) {\n // TS should be able to check this for us but something is preventing it from happening.\n Object.entries(relationships).forEach(([name, rel]) => {\n let source = tables[tableName];\n if (Object.hasOwn(source.columns, name)) {\n throw new Error(\n `Relationship \"${tableName}\".\"${name}\" cannot have the same name as the column \"${name}\" on the the table \"${source.name}\"`,\n );\n }\n rel.forEach(connection => {\n if (!Object.hasOwn(tables, connection.destSchema)) {\n throw new Error(\n `For relationship \"${tableName}\".\"${name}\", destination table \"${connection.destSchema}\" is missing in the schema`,\n );\n }\n if (!Object.hasOwn(source.columns, connection.sourceField[0])) {\n throw new Error(\n `For relationship \"${tableName}\".\"${name}\", the source field \"${connection.sourceField[0]}\" is missing in the table schema \"${source.name}\"`,\n );\n }\n source = tables[connection.destSchema];\n });\n });\n}\n\nexport function clientSchemaFrom(schema: Schema): {\n clientSchema: ClientSchema;\n hash: string;\n} {\n const client = {\n tables: mapEntries(\n schema.tables,\n (name, {serverName, columns, primaryKey}) => [\n serverName ?? name,\n {\n columns: mapEntries(columns, (name, {serverName, type}) => [\n serverName ?? name,\n {type},\n ]),\n primaryKey: primaryKey.map(k => columns[k].serverName ?? k),\n },\n ],\n ),\n } satisfies ClientSchema;\n const clientSchema = normalizeClientSchema(client);\n const hash = h64(JSON.stringify(clientSchema)).toString(36);\n return {clientSchema, hash};\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,SAAgB,aAKd,SAsBA;CACA,MAAM,YAAyC,CAAC;CAChD,MAAM,mBAAiE,CAAC;CACxE,MAAM,8BAAc,IAAI,IAAY;CAEpC,QAAQ,OAAO,SAAQ,UAAS;EAC9B,MAAM,EAAC,aAAa,MAAM,OAAO,SAAQ,MAAM;EAC/C,IAAI,YAAY,IAAI,UAAU,GAC5B,MAAM,IAAI,MAAM,uCAAuC,WAAW,EAAE;EAEtE,YAAY,IAAI,UAAU;EAC1B,IAAI,OAAO,OAAO,WAAW,MAAM,OAAO,IAAI,GAC5C,MAAM,IAAI,MACR,UAAU,MAAM,OAAO,KAAK,0CAC9B;EAEF,eAAe,WAAW,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;CAC5D,CAAC;CACD,QAAQ,eAAe,SAAQ,kBAAiB;EAC9C,IAAI,OAAO,OAAO,kBAAkB,cAAc,IAAI,GACpD,MAAM,IAAI,MACR,4BAA4B,cAAc,KAAK,2CACjD;EAEF,eACE,kBACA,cAAc,MACd,cAAc,aAChB;EACA,kBACE,cAAc,eACd,cAAc,MACd,SACF;CACF,CAAC;CAED,OAAO;EACL,QAAQ;EACR,eAAe;EACf,qBAAqB,QAAQ;EAC7B,sBAAsB,QAAQ;CAChC;AACF;AAEA,SAAS,kBACP,eACA,WACA,QACA;CAEA,OAAO,QAAQ,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,SAAS;EACrD,IAAI,SAAS,OAAO;EACpB,IAAI,OAAO,OAAO,OAAO,SAAS,IAAI,GACpC,MAAM,IAAI,MACR,iBAAiB,UAAU,KAAK,KAAK,6CAA6C,KAAK,sBAAsB,OAAO,KAAK,EAC3H;EAEF,IAAI,SAAQ,eAAc;GACxB,IAAI,CAAC,OAAO,OAAO,QAAQ,WAAW,UAAU,GAC9C,MAAM,IAAI,MACR,qBAAqB,UAAU,KAAK,KAAK,wBAAwB,WAAW,WAAW,2BACzF;GAEF,IAAI,CAAC,OAAO,OAAO,OAAO,SAAS,WAAW,YAAY,EAAE,GAC1D,MAAM,IAAI,MACR,qBAAqB,UAAU,KAAK,KAAK,uBAAuB,WAAW,YAAY,GAAG,oCAAoC,OAAO,KAAK,EAC5I;GAEF,SAAS,OAAO,WAAW;EAC7B,CAAC;CACH,CAAC;AACH;AAEA,SAAgB,iBAAiB,QAG/B;CACA,MAAM,SAAS,EACb,QAAQ,WACN,OAAO,SACN,MAAM,EAAC,YAAY,SAAS,iBAAgB,CAC3C,cAAc,MACd;EACE,SAAS,WAAW,UAAU,MAAM,EAAC,YAAY,WAAU,CACzD,cAAc,MACd,EAAC,KAAI,CACP,CAAC;EACD,YAAY,WAAW,KAAI,MAAK,QAAQ,EAAE,CAAC,cAAc,CAAC;CAC5D,CACF,CACF,EACF;CACA,MAAM,eAAe,sBAAsB,MAAM;CAEjD,OAAO;EAAC;EAAc,MADT,IAAI,KAAK,UAAU,YAAY,CAAC,CAAC,CAAC,SAAS,EAClC;CAAI;AAC5B"}
|
|
@@ -38,7 +38,7 @@ export declare const column: {
|
|
|
38
38
|
json: typeof json;
|
|
39
39
|
enumeration: typeof enumeration;
|
|
40
40
|
};
|
|
41
|
-
|
|
41
|
+
declare class TableBuilder<TShape extends TableSchema> {
|
|
42
42
|
#private;
|
|
43
43
|
constructor(schema: TShape);
|
|
44
44
|
from<ServerName extends string>(serverName: ServerName): TableBuilder<TShape>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-builder.d.ts","sourceRoot":"","sources":["../../../../../zero-schema/src/builder/table-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAGjE,wBAAgB,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK;;;gBAI1B,UAAU;GAEtC;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;;;gBAIb,CAAC;GAEnC;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;;;gBAIb,CAAC;GAEnC;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;;;gBAIhB,CAAC;GAEnC;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;;;gBAIjC,CAAC;GAEnC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM;;;gBAIT,CAAC;GAEnC;AAED,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"table-builder.d.ts","sourceRoot":"","sources":["../../../../../zero-schema/src/builder/table-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAGjE,wBAAgB,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK;;;gBAI1B,UAAU;GAEtC;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;;;gBAIb,CAAC;GAEnC;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;;;gBAIb,CAAC;GAEnC;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;;;gBAIhB,CAAC;GAEnC;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;;;gBAIjC,CAAC;GAEnC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM;;;gBAIT,CAAC;GAEnC;AAED,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF,cAAM,YAAY,CAAC,MAAM,SAAS,WAAW;;IAE3C,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,IAAI,CAAC,UAAU,SAAS,MAAM,EAAE,UAAU,EAAE,UAAU,wBAUrD;IAED,OAAO,CAAC,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,EACvE,OAAO,EAAE,QAAQ,GAChB,uBAAuB,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,OAAO,EAAE;aAAE,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SAAC,CAAC;QACxD,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;KAClC,CAAC,CAMD;CACF;AAED,qBAAa,uBAAuB,CAAC,MAAM,SAAS,WAAW;;IAG7D,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,UAAU,CAAC,WAAW,SAAS,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EACxD,GAAG,aAAa,EAAE,WAAW;;OAM9B;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,KAAK,CAAC,eAAe,SAAS;QAC5B,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM;QAChC,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,EAAE;KACxC,EAED,GAAG,WAAW,EAAE,eAAe,GAC9B,uBAAuB,CACxB,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG;QAC3B,UAAU,EAAE;YACV,GAAG,CAAC,MAAM,SAAS;gBACjB,UAAU,EAAE,MAAM,SAAS,SAAS,SAAS,UAAU,EAAE,CAAC;aAC3D,GACG,SAAS,GACT,EAAE,CAAC;YACP,eAAe;SAChB,CAAC;KACH,CACF,CAKA;IAED,IAAI,MAAM,WAET;IAED,KAAK,WAoBJ;CACF;AAED,cAAM,aAAa,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,CAAC;;IAEjD,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,IAAI,CAAC,UAAU,SAAS,MAAM,EAAE,UAAU,EAAE,UAAU;oBACL,MAAM;OAItD;IAED,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAC,CAAC,CAKrE;IAED,IAAI,MAAM,WAET;CACF;AAED,YAAY,EAAC,aAAa,EAAC,CAAC"}
|
|
@@ -126,6 +126,6 @@ var ColumnBuilder = class ColumnBuilder {
|
|
|
126
126
|
}
|
|
127
127
|
};
|
|
128
128
|
//#endregion
|
|
129
|
-
export { boolean, enumeration, json, number, string, table };
|
|
129
|
+
export { TableBuilderWithColumns, boolean, enumeration, json, number, string, table };
|
|
130
130
|
|
|
131
131
|
//# sourceMappingURL=table-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-builder.js","names":[
|
|
1
|
+
{"version":3,"file":"table-builder.js","names":[],"sources":["../../../../../zero-schema/src/builder/table-builder.ts"],"sourcesContent":["import type {ReadonlyJSONValue} from '../../../shared/src/json.ts';\nimport {mapValues} from '../../../shared/src/objects.ts';\nimport type {PrimaryKey} from '../../../zero-protocol/src/primary-key.ts';\nimport type {SchemaValue, TableSchema} from '../table-schema.ts';\n\n/* oxlint-disable @typescript-eslint/no-explicit-any */\nexport function table<TName extends string>(name: TName) {\n return new TableBuilder({\n name,\n columns: {},\n primaryKey: [] as any as PrimaryKey,\n });\n}\n\nexport function string<T extends string = string>() {\n return new ColumnBuilder({\n type: 'string',\n optional: false,\n customType: null as unknown as T,\n });\n}\n\nexport function number<T extends number = number>() {\n return new ColumnBuilder({\n type: 'number',\n optional: false,\n customType: null as unknown as T,\n });\n}\n\nexport function boolean<T extends boolean = boolean>() {\n return new ColumnBuilder({\n type: 'boolean',\n optional: false,\n customType: null as unknown as T,\n });\n}\n\nexport function json<T extends ReadonlyJSONValue = ReadonlyJSONValue>() {\n return new ColumnBuilder({\n type: 'json',\n optional: false,\n customType: null as unknown as T,\n });\n}\n\nexport function enumeration<T extends string>() {\n return new ColumnBuilder({\n type: 'string',\n optional: false,\n customType: null as unknown as T,\n });\n}\n\nexport const column = {\n string,\n number,\n boolean,\n json,\n enumeration,\n};\n\nclass TableBuilder<TShape extends TableSchema> {\n readonly #schema: TShape;\n constructor(schema: TShape) {\n this.#schema = schema;\n }\n\n from<ServerName extends string>(serverName: ServerName) {\n return new TableBuilder<TShape>({\n ...this.#schema,\n // Strip the \"public.\" schema if specified, as tables in the upstream\n // \"public\" schema are created without the schema prefix on the replica.\n // See liteTableName() in zero-cache/src/types/names.ts\n serverName: serverName.startsWith('public.')\n ? serverName.substring('public.'.length)\n : serverName,\n });\n }\n\n columns<const TColumns extends Record<string, ColumnBuilder<SchemaValue>>>(\n columns: TColumns,\n ): TableBuilderWithColumns<{\n name: TShape['name'];\n columns: {[K in keyof TColumns]: TColumns[K]['schema']};\n primaryKey: TShape['primaryKey'];\n }> {\n const columnSchemas = mapValues(columns, column => column.schema);\n return new TableBuilderWithColumns({\n ...this.#schema,\n columns: columnSchemas,\n }) as any;\n }\n}\n\nexport class TableBuilderWithColumns<TShape extends TableSchema> {\n readonly #schema: TShape;\n\n constructor(schema: TShape) {\n this.#schema = schema;\n }\n\n primaryKey<TPKColNames extends (keyof TShape['columns'])[]>(\n ...pkColumnNames: TPKColNames\n ) {\n return new TableBuilderWithColumns({\n ...this.#schema,\n primaryKey: pkColumnNames,\n });\n }\n\n /**\n * Declares that `columnNames` together are unique — mirroring a unique index\n * that already exists upstream. Call once per index.\n *\n * Zero neither creates nor enforces the constraint; declaring it tells the\n * type checker what the server already knows from the replica, which is what\n * lets a `{scalar: true}` subquery pinned on these columns typecheck.\n *\n * The return type is spelled out so the column names stay literal — spreading\n * the accumulated keys widens them to `PrimaryKey`, which loses exactly the\n * information the check needs.\n */\n unique<\n const TUniqueColNames extends [\n keyof TShape['columns'] & string,\n ...(keyof TShape['columns'] & string)[],\n ],\n >(\n ...columnNames: TUniqueColNames\n ): TableBuilderWithColumns<\n Omit<TShape, 'uniqueKeys'> & {\n uniqueKeys: [\n ...(TShape extends {\n uniqueKeys: infer TExisting extends readonly PrimaryKey[];\n }\n ? TExisting\n : []),\n TUniqueColNames,\n ];\n }\n > {\n return new TableBuilderWithColumns({\n ...this.#schema,\n uniqueKeys: [...(this.#schema.uniqueKeys ?? []), columnNames],\n }) as any;\n }\n\n get schema() {\n return this.#schema;\n }\n\n build() {\n // We can probably get the type system to throw an error if primaryKey is not called\n // before passing the schema to createSchema\n // Till then --\n if (this.#schema.primaryKey.length === 0) {\n throw new Error(`Table \"${this.#schema.name}\" is missing a primary key`);\n }\n const names = new Set<string>();\n for (const [col, {serverName}] of Object.entries(this.#schema.columns)) {\n const name = serverName ?? col;\n if (names.has(name)) {\n throw new Error(\n `Table \"${\n this.#schema.name\n }\" has multiple columns referencing \"${name}\"`,\n );\n }\n names.add(name);\n }\n return this.#schema;\n }\n}\n\nclass ColumnBuilder<TShape extends SchemaValue<any>> {\n readonly #schema: TShape;\n constructor(schema: TShape) {\n this.#schema = schema;\n }\n\n from<ServerName extends string>(serverName: ServerName) {\n return new ColumnBuilder<TShape & {serverName: string}>({\n ...this.#schema,\n serverName,\n });\n }\n\n optional(): ColumnBuilder<Omit<TShape, 'optional'> & {optional: true}> {\n return new ColumnBuilder({\n ...this.#schema,\n optional: true,\n });\n }\n\n get schema() {\n return this.#schema;\n }\n}\n\nexport type {ColumnBuilder};\n"],"mappings":";;AAMA,SAAgB,MAA4B,MAAa;CACvD,OAAO,IAAI,aAAa;EACtB;EACA,SAAS,CAAC;EACV,YAAY,CAAC;CACf,CAAC;AACH;AAEA,SAAgB,SAAoC;CAClD,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,UAAU;EACV,YAAY;CACd,CAAC;AACH;AAEA,SAAgB,SAAoC;CAClD,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,UAAU;EACV,YAAY;CACd,CAAC;AACH;AAEA,SAAgB,UAAuC;CACrD,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,UAAU;EACV,YAAY;CACd,CAAC;AACH;AAEA,SAAgB,OAAwD;CACtE,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,UAAU;EACV,YAAY;CACd,CAAC;AACH;AAEA,SAAgB,cAAgC;CAC9C,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,UAAU;EACV,YAAY;CACd,CAAC;AACH;AAUA,IAAM,eAAN,MAAM,aAAyC;CAC7C;CACA,YAAY,QAAgB;EAC1B,KAAK,UAAU;CACjB;CAEA,KAAgC,YAAwB;EACtD,OAAO,IAAI,aAAqB;GAC9B,GAAG,KAAK;GAIR,YAAY,WAAW,WAAW,SAAS,IACvC,WAAW,UAAU,CAAgB,IACrC;EACN,CAAC;CACH;CAEA,QACE,SAKC;EACD,MAAM,gBAAgB,UAAU,UAAS,WAAU,OAAO,MAAM;EAChE,OAAO,IAAI,wBAAwB;GACjC,GAAG,KAAK;GACR,SAAS;EACX,CAAC;CACH;AACF;AAEA,IAAa,0BAAb,MAAa,wBAAoD;CAC/D;CAEA,YAAY,QAAgB;EAC1B,KAAK,UAAU;CACjB;CAEA,WACE,GAAG,eACH;EACA,OAAO,IAAI,wBAAwB;GACjC,GAAG,KAAK;GACR,YAAY;EACd,CAAC;CACH;;;;;;;;;;;;;CAcA,OAME,GAAG,aAYH;EACA,OAAO,IAAI,wBAAwB;GACjC,GAAG,KAAK;GACR,YAAY,CAAC,GAAI,KAAK,QAAQ,cAAc,CAAC,GAAI,WAAW;EAC9D,CAAC;CACH;CAEA,IAAI,SAAS;EACX,OAAO,KAAK;CACd;CAEA,QAAQ;EAIN,IAAI,KAAK,QAAQ,WAAW,WAAW,GACrC,MAAM,IAAI,MAAM,UAAU,KAAK,QAAQ,KAAK,2BAA2B;EAEzE,MAAM,wBAAQ,IAAI,IAAY;EAC9B,KAAK,MAAM,CAAC,KAAK,EAAC,iBAAgB,OAAO,QAAQ,KAAK,QAAQ,OAAO,GAAG;GACtE,MAAM,OAAO,cAAc;GAC3B,IAAI,MAAM,IAAI,IAAI,GAChB,MAAM,IAAI,MACR,UACE,KAAK,QAAQ,KACd,sCAAsC,KAAK,EAC9C;GAEF,MAAM,IAAI,IAAI;EAChB;EACA,OAAO,KAAK;CACd;AACF;AAEA,IAAM,gBAAN,MAAM,cAA+C;CACnD;CACA,YAAY,QAAgB;EAC1B,KAAK,UAAU;CACjB;CAEA,KAAgC,YAAwB;EACtD,OAAO,IAAI,cAA6C;GACtD,GAAG,KAAK;GACR;EACF,CAAC;CACH;CAEA,WAAuE;EACrE,OAAO,IAAI,cAAc;GACvB,GAAG,KAAK;GACR,UAAU;EACZ,CAAC;CACH;CAEA,IAAI,SAAS;EACX,OAAO,KAAK;CACd;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-permissions.js","names":[],"sources":["../../../../zero-schema/src/compiled-permissions.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {conditionSchema} from '../../zero-protocol/src/ast.ts';\n\nconst ruleSchema = v.tuple([v.literal('allow'), conditionSchema]);\nexport type Rule = v.Infer<typeof ruleSchema>;\nconst policySchema = v.array(ruleSchema);\nexport type Policy = v.Infer<typeof policySchema>;\n\nconst assetSchema = v.object({\n select: policySchema.optional(),\n insert: policySchema.optional(),\n update: v\n .object({\n preMutation: policySchema.optional(),\n postMutation: policySchema.optional(),\n })\n .optional(),\n delete: policySchema.optional(),\n});\n\nexport type AssetPermissions = v.Infer<typeof assetSchema>;\n\nconst tablePermissionsSchema = v.record(\n v.object({\n row: assetSchema.optional(),\n cell: v.record(assetSchema).optional(),\n }),\n);\n\nexport const permissionsConfigSchema = v.object({\n tables: tablePermissionsSchema.optional(),\n});\n\nexport type TablePermissions = v.Infer<typeof tablePermissionsSchema>;\nexport type PermissionsConfig = v.Infer<typeof permissionsConfigSchema>;\n"],"mappings":";;;AAGA,IAAM,
|
|
1
|
+
{"version":3,"file":"compiled-permissions.js","names":["v"],"sources":["../../../../zero-schema/src/compiled-permissions.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {conditionSchema} from '../../zero-protocol/src/ast.ts';\n\nconst ruleSchema = v.tuple([v.literal('allow'), conditionSchema]);\nexport type Rule = v.Infer<typeof ruleSchema>;\nconst policySchema = v.array(ruleSchema);\nexport type Policy = v.Infer<typeof policySchema>;\n\nconst assetSchema = v.object({\n select: policySchema.optional(),\n insert: policySchema.optional(),\n update: v\n .object({\n preMutation: policySchema.optional(),\n postMutation: policySchema.optional(),\n })\n .optional(),\n delete: policySchema.optional(),\n});\n\nexport type AssetPermissions = v.Infer<typeof assetSchema>;\n\nconst tablePermissionsSchema = v.record(\n v.object({\n row: assetSchema.optional(),\n cell: v.record(assetSchema).optional(),\n }),\n);\n\nexport const permissionsConfigSchema = v.object({\n tables: tablePermissionsSchema.optional(),\n});\n\nexport type TablePermissions = v.Infer<typeof tablePermissionsSchema>;\nexport type PermissionsConfig = v.Infer<typeof permissionsConfigSchema>;\n"],"mappings":";;;AAGA,IAAM,aAAaA,eAAE,MAAM,CAACA,eAAE,QAAQ,OAAO,GAAG,eAAe,CAAC;AAEhE,IAAM,eAAeA,eAAE,MAAM,UAAU;AAGvC,IAAM,cAAcA,eAAE,OAAO;CAC3B,QAAQ,aAAa,SAAS;CAC9B,QAAQ,aAAa,SAAS;CAC9B,QAAQA,eACL,OAAO;EACN,aAAa,aAAa,SAAS;EACnC,cAAc,aAAa,SAAS;CACtC,CAAC,CAAC,CACD,SAAS;CACZ,QAAQ,aAAa,SAAS;AAChC,CAAC;AAID,IAAM,yBAAyBA,eAAE,OAC/BA,eAAE,OAAO;CACP,KAAK,YAAY,SAAS;CAC1B,MAAMA,eAAE,OAAO,WAAW,CAAC,CAAC,SAAS;AACvC,CAAC,CACH;AAEA,IAAa,0BAA0BA,eAAE,OAAO,EAC9C,QAAQ,uBAAuB,SAAS,EAC1C,CAAC"}
|
|
@@ -7,7 +7,7 @@ function serverToClient(tables) {
|
|
|
7
7
|
return createMapperFrom("server", tables);
|
|
8
8
|
}
|
|
9
9
|
function createMapperFrom(src, tables) {
|
|
10
|
-
|
|
10
|
+
const mapping = new Map(Object.entries(tables).map(([tableName, { serverName: serverTableName, columns }]) => {
|
|
11
11
|
let allColumnsSame = true;
|
|
12
12
|
const names = {};
|
|
13
13
|
for (const [name, { serverName }] of Object.entries(columns)) {
|
|
@@ -20,7 +20,8 @@ function createMapperFrom(src, tables) {
|
|
|
20
20
|
columns: names,
|
|
21
21
|
allColumnsSame
|
|
22
22
|
}];
|
|
23
|
-
}))
|
|
23
|
+
}));
|
|
24
|
+
return new NameMapper(mapping);
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Returns an "identity" NameMapper that simply serves the purpose
|
|
@@ -28,13 +29,14 @@ function createMapperFrom(src, tables) {
|
|
|
28
29
|
* specified `tablesToColumns` map.
|
|
29
30
|
*/
|
|
30
31
|
function validator(tablesToColumns) {
|
|
31
|
-
|
|
32
|
+
const identity = new Map(Array.from(tablesToColumns.entries(), ([tableName, columns]) => [tableName, {
|
|
32
33
|
tableName,
|
|
33
34
|
columns: Object.fromEntries(columns.map((c) => [c, c])),
|
|
34
35
|
allColumnsSame: true
|
|
35
|
-
}]))
|
|
36
|
+
}]));
|
|
37
|
+
return new NameMapper(identity);
|
|
36
38
|
}
|
|
37
39
|
//#endregion
|
|
38
|
-
export { clientToServer, serverToClient, validator };
|
|
40
|
+
export { NameMapper, clientToServer, serverToClient, validator };
|
|
39
41
|
|
|
40
42
|
//# sourceMappingURL=name-mapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-mapper.js","names":[],"sources":["../../../../zero-schema/src/name-mapper.ts"],"sourcesContent":["import {NameMapper} from '../../zero-types/src/name-mapper.ts';\nimport type {TableSchema} from './table-schema.ts';\n\nexport {NameMapper};\n\nexport function clientToServer(\n tables: Record<string, TableSchema>,\n): NameMapper {\n return createMapperFrom('client', tables);\n}\n\nexport function serverToClient(\n tables: Record<string, TableSchema>,\n): NameMapper {\n return createMapperFrom('server', tables);\n}\n\nfunction createMapperFrom(\n src: 'client' | 'server',\n tables: Record<string, TableSchema>,\n): NameMapper {\n const mapping = new Map(\n Object.entries(tables).map(\n ([tableName, {serverName: serverTableName, columns}]) => {\n let allColumnsSame = true;\n const names: Record<string, string> = {};\n for (const [name, {serverName}] of Object.entries(columns)) {\n if (serverName && serverName !== name) {\n allColumnsSame = false;\n }\n if (src === 'client') {\n names[name] = serverName ?? name;\n } else {\n names[serverName ?? name] = name;\n }\n }\n return [\n src === 'client' ? tableName : (serverTableName ?? tableName),\n {\n tableName:\n src === 'client' ? (serverTableName ?? tableName) : tableName,\n columns: names,\n allColumnsSame,\n },\n ];\n },\n ),\n );\n return new NameMapper(mapping);\n}\n\n/**\n * Returns an \"identity\" NameMapper that simply serves the purpose\n * of validating that all table and column names conform to the\n * specified `tablesToColumns` map.\n */\nexport function validator(tablesToColumns: Map<string, string[]>): NameMapper {\n const identity = new Map(\n Array.from(tablesToColumns.entries(), ([tableName, columns]) => [\n tableName,\n {\n tableName,\n columns: Object.fromEntries(columns.map(c => [c, c])),\n allColumnsSame: true,\n },\n ]),\n );\n return new NameMapper(identity);\n}\n"],"mappings":";;AAKA,SAAgB,eACd,QACY;CACZ,OAAO,iBAAiB,UAAU,MAAM;AAC1C;AAEA,SAAgB,eACd,QACY;CACZ,OAAO,iBAAiB,UAAU,MAAM;AAC1C;AAEA,SAAS,iBACP,KACA,QACY;
|
|
1
|
+
{"version":3,"file":"name-mapper.js","names":[],"sources":["../../../../zero-schema/src/name-mapper.ts"],"sourcesContent":["import {NameMapper} from '../../zero-types/src/name-mapper.ts';\nimport type {TableSchema} from './table-schema.ts';\n\nexport {NameMapper};\n\nexport function clientToServer(\n tables: Record<string, TableSchema>,\n): NameMapper {\n return createMapperFrom('client', tables);\n}\n\nexport function serverToClient(\n tables: Record<string, TableSchema>,\n): NameMapper {\n return createMapperFrom('server', tables);\n}\n\nfunction createMapperFrom(\n src: 'client' | 'server',\n tables: Record<string, TableSchema>,\n): NameMapper {\n const mapping = new Map(\n Object.entries(tables).map(\n ([tableName, {serverName: serverTableName, columns}]) => {\n let allColumnsSame = true;\n const names: Record<string, string> = {};\n for (const [name, {serverName}] of Object.entries(columns)) {\n if (serverName && serverName !== name) {\n allColumnsSame = false;\n }\n if (src === 'client') {\n names[name] = serverName ?? name;\n } else {\n names[serverName ?? name] = name;\n }\n }\n return [\n src === 'client' ? tableName : (serverTableName ?? tableName),\n {\n tableName:\n src === 'client' ? (serverTableName ?? tableName) : tableName,\n columns: names,\n allColumnsSame,\n },\n ];\n },\n ),\n );\n return new NameMapper(mapping);\n}\n\n/**\n * Returns an \"identity\" NameMapper that simply serves the purpose\n * of validating that all table and column names conform to the\n * specified `tablesToColumns` map.\n */\nexport function validator(tablesToColumns: Map<string, string[]>): NameMapper {\n const identity = new Map(\n Array.from(tablesToColumns.entries(), ([tableName, columns]) => [\n tableName,\n {\n tableName,\n columns: Object.fromEntries(columns.map(c => [c, c])),\n allColumnsSame: true,\n },\n ]),\n );\n return new NameMapper(identity);\n}\n"],"mappings":";;AAKA,SAAgB,eACd,QACY;CACZ,OAAO,iBAAiB,UAAU,MAAM;AAC1C;AAEA,SAAgB,eACd,QACY;CACZ,OAAO,iBAAiB,UAAU,MAAM;AAC1C;AAEA,SAAS,iBACP,KACA,QACY;CACZ,MAAM,UAAU,IAAI,IAClB,OAAO,QAAQ,MAAM,CAAC,CAAC,KACpB,CAAC,WAAW,EAAC,YAAY,iBAAiB,eAAc;EACvD,IAAI,iBAAiB;EACrB,MAAM,QAAgC,CAAC;EACvC,KAAK,MAAM,CAAC,MAAM,EAAC,iBAAgB,OAAO,QAAQ,OAAO,GAAG;GAC1D,IAAI,cAAc,eAAe,MAC/B,iBAAiB;GAEnB,IAAI,QAAQ,UACV,MAAM,QAAQ,cAAc;QAE5B,MAAM,cAAc,QAAQ;EAEhC;EACA,OAAO,CACL,QAAQ,WAAW,YAAa,mBAAmB,WACnD;GACE,WACE,QAAQ,WAAY,mBAAmB,YAAa;GACtD,SAAS;GACT;EACF,CACF;CACF,CACF,CACF;CACA,OAAO,IAAI,WAAW,OAAO;AAC/B;;;;;;AAOA,SAAgB,UAAU,iBAAoD;CAC5E,MAAM,WAAW,IAAI,IACnB,MAAM,KAAK,gBAAgB,QAAQ,IAAI,CAAC,WAAW,aAAa,CAC9D,WACA;EACE;EACA,SAAS,OAAO,YAAY,QAAQ,KAAI,MAAK,CAAC,GAAG,CAAC,CAAC,CAAC;EACpD,gBAAgB;CAClB,CACF,CAAC,CACH;CACA,OAAO,IAAI,WAAW,QAAQ;AAChC"}
|
|
@@ -12,7 +12,6 @@ export declare const schemaValueSchema: v.ObjectType<Readonly<{
|
|
|
12
12
|
serverName: v.Optional<string>;
|
|
13
13
|
optional: v.Optional<boolean>;
|
|
14
14
|
}>, undefined>;
|
|
15
|
-
export declare const tableSchemaSchema: v.Type<TableSchema>;
|
|
16
15
|
export declare const schemaSchema: v.ObjectType<Readonly<{
|
|
17
16
|
tables: v.Type<Record<string, TableSchema>>;
|
|
18
17
|
relationships: v.Type<Record<string, Record<string, Relationship>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-config.d.ts","sourceRoot":"","sources":["../../../../zero-schema/src/schema-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAIhD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,KAAK,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AASF,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAGnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;cAI5B,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-config.d.ts","sourceRoot":"","sources":["../../../../zero-schema/src/schema-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAIhD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,KAAK,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AASF,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAGnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;cAI5B,CAAC;AASH,eAAO,MAAM,YAAY;;;;;cAKvB,CAAC;AAGH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,YAAY,CAGhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-config.js","names":[],"sources":["../../../../zero-schema/src/schema-config.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {compoundKeySchema} from '../../zero-protocol/src/ast.ts';\nimport {valueTypeSchema} from '../../zero-protocol/src/client-schema.ts';\nimport {primaryKeySchema} from '../../zero-protocol/src/primary-key.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport {type PermissionsConfig} from './compiled-permissions.ts';\nimport type {Relationship, TableSchema} from './table-schema.ts';\n\nexport type SchemaConfig = {\n schema: Schema;\n permissions: PermissionsConfig;\n};\n\nconst relationshipPart = v.readonlyObject({\n sourceField: compoundKeySchema,\n destField: compoundKeySchema,\n destSchema: v.string(),\n cardinality: v.literalUnion('one', 'many'),\n});\n\nexport const relationshipSchema: v.Type<Relationship> = v.union(\n v.readonly(v.tuple([relationshipPart])),\n v.readonly(v.tuple([relationshipPart, relationshipPart])),\n);\n\nexport const schemaValueSchema = v.readonlyObject({\n type: valueTypeSchema,\n serverName: v.string().optional(),\n optional: v.boolean().optional(),\n});\n\
|
|
1
|
+
{"version":3,"file":"schema-config.js","names":["v.readonlyObject","v","v.literalUnion","v.readonly"],"sources":["../../../../zero-schema/src/schema-config.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\nimport {compoundKeySchema} from '../../zero-protocol/src/ast.ts';\nimport {valueTypeSchema} from '../../zero-protocol/src/client-schema.ts';\nimport {primaryKeySchema} from '../../zero-protocol/src/primary-key.ts';\nimport type {Schema} from '../../zero-types/src/schema.ts';\nimport {type PermissionsConfig} from './compiled-permissions.ts';\nimport type {Relationship, TableSchema} from './table-schema.ts';\n\nexport type SchemaConfig = {\n schema: Schema;\n permissions: PermissionsConfig;\n};\n\nconst relationshipPart = v.readonlyObject({\n sourceField: compoundKeySchema,\n destField: compoundKeySchema,\n destSchema: v.string(),\n cardinality: v.literalUnion('one', 'many'),\n});\n\nexport const relationshipSchema: v.Type<Relationship> = v.union(\n v.readonly(v.tuple([relationshipPart])),\n v.readonly(v.tuple([relationshipPart, relationshipPart])),\n);\n\nexport const schemaValueSchema = v.readonlyObject({\n type: valueTypeSchema,\n serverName: v.string().optional(),\n optional: v.boolean().optional(),\n});\n\nconst tableSchemaSchema: v.Type<TableSchema> = v.readonlyObject({\n name: v.string(),\n serverName: v.string().optional(),\n columns: v.record(schemaValueSchema),\n primaryKey: primaryKeySchema,\n});\n\nexport const schemaSchema = v.readonlyObject({\n tables: v.record(tableSchemaSchema),\n relationships: v.record(v.record(relationshipSchema)),\n enableLegacyQueries: v.boolean().optional(),\n enableLegacyMutators: v.boolean().optional(),\n});\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isSchemaConfig(value: any): value is SchemaConfig {\n // oxlint-disable-next-line eqeqeq\n return value != null && 'schema' in value;\n}\n"],"mappings":";;;;;;AAaA,IAAM,mBAAmBA,eAAiB;CACxC,aAAa;CACb,WAAW;CACX,YAAYC,eAAE,OAAO;CACrB,aAAaC,aAAe,OAAO,MAAM;AAC3C,CAAC;AAED,IAAa,qBAA2CD,eAAE,MACxDE,SAAWF,eAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,GACtCE,SAAWF,eAAE,MAAM,CAAC,kBAAkB,gBAAgB,CAAC,CAAC,CAC1D;AAEA,IAAa,oBAAoBD,eAAiB;CAChD,MAAM;CACN,YAAYC,eAAE,OAAO,CAAC,CAAC,SAAS;CAChC,UAAUA,eAAE,QAAQ,CAAC,CAAC,SAAS;AACjC,CAAC;AAED,IAAM,oBAAyCD,eAAiB;CAC9D,MAAMC,eAAE,OAAO;CACf,YAAYA,eAAE,OAAO,CAAC,CAAC,SAAS;CAChC,SAASA,eAAE,OAAO,iBAAiB;CACnC,YAAY;AACd,CAAC;AAE2BD,eAAiB;CAC3C,QAAQC,eAAE,OAAO,iBAAiB;CAClC,eAAeA,eAAE,OAAOA,eAAE,OAAO,kBAAkB,CAAC;CACpD,qBAAqBA,eAAE,QAAQ,CAAC,CAAC,SAAS;CAC1C,sBAAsBA,eAAE,QAAQ,CAAC,CAAC,SAAS;AAC7C,CAAC;AAGD,SAAgB,eAAe,OAAmC;CAEhE,OAAO,SAAS,QAAQ,YAAY;AACtC"}
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
export type {
|
|
4
|
-
export type AtLeastOne<T> = readonly [T, ...T[]];
|
|
5
|
-
export declare function atLeastOne<T>(arr: readonly T[]): AtLeastOne<T>;
|
|
1
|
+
import type { SchemaValue, SchemaValueWithCustomType, ValueType } from '../../zero-types/src/schema-value.ts';
|
|
2
|
+
import type { Relationship, TableSchema } from '../../zero-types/src/schema.ts';
|
|
3
|
+
export type { Relationship, SchemaValue, SchemaValueWithCustomType, TableSchema, ValueType, };
|
|
6
4
|
export type Opaque<BaseType, BrandType = unknown> = BaseType & {
|
|
7
5
|
readonly [base]: BaseType;
|
|
8
6
|
readonly [brand]: BrandType;
|
|
9
7
|
};
|
|
10
8
|
declare const base: unique symbol;
|
|
11
9
|
declare const brand: unique symbol;
|
|
12
|
-
export type IsOpaque<T> = T extends {
|
|
13
|
-
readonly [brand]: any;
|
|
14
|
-
} ? true : false;
|
|
15
|
-
export type ExpandRecursiveSkipOpaque<T> = IsOpaque<T> extends true ? T : T extends object ? T extends infer O ? {
|
|
16
|
-
[K in keyof O]: ExpandRecursiveSkipOpaque<O[K]>;
|
|
17
|
-
} : never : T;
|
|
18
10
|
//# sourceMappingURL=table-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-schema.d.ts","sourceRoot":"","sources":["../../../../zero-schema/src/table-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"table-schema.d.ts","sourceRoot":"","sources":["../../../../zero-schema/src/table-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EACzB,SAAS,EACV,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAE9E,YAAY,EACV,YAAY,EACZ,WAAW,EACX,yBAAyB,EACzB,WAAW,EACX,SAAS,GACV,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,IAAI,QAAQ,GAAG;IAC7D,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,OAAO,CAAC,MAAM,IAAI,EAAE,OAAO,MAAM,CAAC;AAClC,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.js","names":[
|
|
1
|
+
{"version":3,"file":"drizzle.js","names":[],"sources":["../../../../../zero-server/src/adapters/drizzle.ts"],"sourcesContent":["import type {AST} from '../../../zero-protocol/src/ast.ts';\nimport type {Format} from '../../../zero-types/src/format.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport type {ServerSchema} from '../../../zero-types/src/server-schema.ts';\nimport type {\n DBConnection,\n DBTransaction,\n Row,\n} from '../../../zql/src/mutate/custom.ts';\nimport type {HumanReadable} from '../../../zql/src/query/query.ts';\nimport {executePostgresQuery} from '../pg-query-executor.ts';\nimport type {TransactionOptions} from '../transaction-options.ts';\nimport {ZQLDatabase} from '../zql-database.ts';\n\nexport type {ZQLDatabase};\n\ntype DrizzleQuery = {sql: string; params: unknown[]};\ntype DrizzlePreparedQuery = {execute(): Promise<unknown>};\n\ntype DrizzlePrepareQueryV0 = (\n query: DrizzleQuery,\n fields: undefined,\n name: undefined,\n isResponseInArrayMode: false,\n) => DrizzlePreparedQuery;\n\ntype DrizzlePrepareQueryV1 = (\n query: DrizzleQuery,\n mode: 'objects',\n name: undefined,\n mapper: undefined,\n) => DrizzlePreparedQuery;\n\ntype DrizzleSession = {\n prepareQuery: {length: number};\n};\n\ntype DrizzleTransactionLike = {\n _: {session: DrizzleSession};\n};\n\ntype DrizzleQueryResult<TResult> = PromiseLike<TResult> & {\n execute(): Promise<TResult>;\n};\n\ntype DrizzleInferSelect<TTable> = TTable extends {$inferSelect: infer TSelect}\n ? TSelect\n : Record<string, unknown>;\n\ntype DrizzleTransactionFromSchema<TSchema> = DrizzleTransactionLike & {\n query: {\n [TTable in keyof TSchema]: {\n findFirst(\n args?: unknown,\n ): DrizzleQueryResult<DrizzleInferSelect<TSchema[TTable]> | undefined>;\n };\n };\n};\n\nexport type DrizzleDatabase<\n TTransaction extends DrizzleTransactionLike = DrizzleTransactionLike,\n> = DrizzleTransactionLike & {\n transaction<T>(\n transaction: (tx: TTransaction) => Promise<T>,\n config?: DrizzleTransactionConfig | undefined,\n ): Promise<T>;\n};\n\n/**\n * Mirrors drizzle's own `PgTransactionConfig` so a real drizzle database stays\n * assignable to {@link DrizzleDatabase}. Only `isolationLevel` is passed\n * through by this adapter.\n */\ntype DrizzleTransactionConfig = {\n isolationLevel?:\n | 'read uncommitted'\n | 'read committed'\n | 'repeatable read'\n | 'serializable';\n accessMode?: 'read only' | 'read write';\n deferrable?: boolean;\n};\n\n/**\n * Helper type for the wrapped transaction used by drizzle-orm.\n *\n * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, DrizzleTransaction<typeof drizzleDb>>`.\n */\nexport type DrizzleTransaction<TDbOrSchema = Record<string, unknown>> =\n TDbOrSchema extends DrizzleDatabase<infer TTransaction>\n ? TTransaction\n : DrizzleTransactionFromSchema<TDbOrSchema>;\n\nexport class DrizzleConnection<\n TDrizzle,\n TTransaction extends DrizzleTransactionLike = DrizzleTransaction<TDrizzle>,\n> implements DBConnection<TTransaction> {\n readonly #drizzle: DrizzleDatabase<TTransaction>;\n readonly #options: TransactionOptions;\n\n constructor(\n drizzle: TDrizzle & DrizzleDatabase<TTransaction>,\n options: TransactionOptions = {},\n ) {\n this.#drizzle = drizzle;\n this.#options = options;\n }\n\n query(sql: string, params: unknown[]): Promise<Iterable<Row>> {\n return runDrizzleQuery(this.#drizzle._.session, sql, params);\n }\n\n transaction<T>(\n fn: (tx: DBTransaction<TTransaction>) => Promise<T>,\n ): Promise<T> {\n const {isolationLevel} = this.#options;\n return this.#drizzle.transaction(\n drizzleTx =>\n fn(\n new DrizzleInternalTransaction(\n drizzleTx,\n ) as DBTransaction<TTransaction>,\n ),\n isolationLevel === undefined ? undefined : {isolationLevel},\n );\n }\n}\n\nclass DrizzleInternalTransaction<\n TTransaction extends DrizzleTransactionLike,\n> implements DBTransaction<TTransaction> {\n readonly wrappedTransaction: TTransaction;\n\n constructor(drizzleTx: TTransaction) {\n this.wrappedTransaction = drizzleTx;\n }\n\n runQuery<TReturn>(\n ast: AST,\n format: Format,\n schema: Schema,\n serverSchema: ServerSchema,\n ): Promise<HumanReadable<TReturn>> {\n return executePostgresQuery<TReturn>(\n this,\n ast,\n format,\n schema,\n serverSchema,\n );\n }\n\n query(sql: string, params: unknown[]): Promise<Iterable<Row>> {\n return runDrizzleQuery(this.wrappedTransaction._.session, sql, params);\n }\n}\n\nasync function runDrizzleQuery(\n session: DrizzleSession,\n sql: string,\n params: unknown[],\n): Promise<Iterable<Row>> {\n const query = {sql, params};\n const prepared =\n session.prepareQuery.length < 7\n ? (session.prepareQuery as DrizzlePrepareQueryV1)(\n query,\n 'objects',\n undefined,\n undefined,\n )\n : (session.prepareQuery as DrizzlePrepareQueryV0)(\n query,\n undefined,\n undefined,\n false,\n );\n const result = await prepared.execute();\n return toIterableRows(result);\n}\n\nfunction isIterable(value: unknown): value is Iterable<unknown> {\n return (\n // oxlint-disable-next-line eqeqeq\n value != null &&\n typeof (value as Iterable<unknown>)[Symbol.iterator] === 'function'\n );\n}\n\nexport function toIterableRows(result: unknown): Iterable<Row> {\n if (result === null || result === undefined) {\n return [] as Row[];\n }\n if (Array.isArray(result)) {\n return result as Row[];\n }\n if (isIterable(result)) {\n return result as Iterable<Row>;\n }\n if (typeof result === 'object') {\n const rows = (result as {rows?: unknown}).rows;\n if (rows === null || rows === undefined) {\n return [] as Row[];\n }\n if (Array.isArray(rows)) {\n return rows as Row[];\n }\n if (isIterable(rows)) {\n return rows as Iterable<Row>;\n }\n }\n throw new TypeError('Drizzle query result is not iterable');\n}\n\n/**\n * Wrap a `drizzle-orm` database for Zero ZQL.\n *\n * Provides ZQL querying plus access to the underlying drizzle transaction.\n * Use {@link DrizzleTransaction} to type your server mutator transaction.\n *\n * @param schema - Zero schema.\n * @param client - Drizzle database.\n *\n * @example\n * ```ts\n * import {Pool} from 'pg';\n * import {drizzle} from 'drizzle-orm/node-postgres';\n * import {defineMutator, defineMutators} from '@rocicorp/zero';\n * import {zeroDrizzle} from '@rocicorp/zero/server/adapters/drizzle';\n * import {z} from 'zod/mini';\n *\n * const pool = new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!});\n * const drizzleDb = drizzle(pool, {schema: drizzleSchema});\n * const zql = zeroDrizzle(schema, drizzleDb);\n *\n * export const serverMutators = defineMutators({\n * user: {\n * create: defineMutator(\n * z.object({id: z.string(), name: z.string()}),\n * async ({tx, args}) => {\n * if (tx.location !== 'server') {\n * throw new Error('Server-only mutator');\n * }\n * await tx.dbTransaction.wrappedTransaction\n * .insert(drizzleSchema.user)\n * .values({id: args.id, name: args.name, status: 'active'});\n * },\n * ),\n * },\n * });\n * ```\n */\nexport function zeroDrizzle<\n TSchema extends Schema,\n TDrizzle,\n TTransaction extends DrizzleTransactionLike = DrizzleTransaction<TDrizzle>,\n>(\n schema: TSchema,\n client: TDrizzle & DrizzleDatabase<TTransaction>,\n options?: TransactionOptions,\n): ZQLDatabase<TSchema, TTransaction> {\n return new ZQLDatabase(\n new DrizzleConnection<TDrizzle, TTransaction>(client, options),\n schema,\n );\n}\n"],"mappings":";;;AA6FA,IAAa,oBAAb,MAGwC;CACtC;CACA;CAEA,YACE,SACA,UAA8B,CAAC,GAC/B;EACA,KAAK,WAAW;EAChB,KAAK,WAAW;CAClB;CAEA,MAAM,KAAa,QAA2C;EAC5D,OAAO,gBAAgB,KAAK,SAAS,EAAE,SAAS,KAAK,MAAM;CAC7D;CAEA,YACE,IACY;EACZ,MAAM,EAAC,mBAAkB,KAAK;EAC9B,OAAO,KAAK,SAAS,aACnB,cACE,GACE,IAAI,2BACF,SACF,CACF,GACF,mBAAmB,KAAA,IAAY,KAAA,IAAY,EAAC,eAAc,CAC5D;CACF;AACF;AAEA,IAAM,6BAAN,MAEyC;CACvC;CAEA,YAAY,WAAyB;EACnC,KAAK,qBAAqB;CAC5B;CAEA,SACE,KACA,QACA,QACA,cACiC;EACjC,OAAO,qBACL,MACA,KACA,QACA,QACA,YACF;CACF;CAEA,MAAM,KAAa,QAA2C;EAC5D,OAAO,gBAAgB,KAAK,mBAAmB,EAAE,SAAS,KAAK,MAAM;CACvE;AACF;AAEA,eAAe,gBACb,SACA,KACA,QACwB;CACxB,MAAM,QAAQ;EAAC;EAAK;CAAM;CAgB1B,OAAO,eAAe,OAdpB,QAAQ,aAAa,SAAS,IACzB,QAAQ,aACP,OACA,WACA,KAAA,GACA,KAAA,CACF,IACC,QAAQ,aACP,OACA,KAAA,GACA,KAAA,GACA,KACF,EAAA,CACwB,QAAQ,CACV;AAC9B;AAEA,SAAS,WAAW,OAA4C;CAC9D,OAEE,SAAS,QACT,OAAQ,MAA4B,OAAO,cAAc;AAE7D;AAEA,SAAgB,eAAe,QAAgC;CAC7D,IAAI,WAAW,QAAQ,WAAW,KAAA,GAChC,OAAO,CAAC;CAEV,IAAI,MAAM,QAAQ,MAAM,GACtB,OAAO;CAET,IAAI,WAAW,MAAM,GACnB,OAAO;CAET,IAAI,OAAO,WAAW,UAAU;EAC9B,MAAM,OAAQ,OAA4B;EAC1C,IAAI,SAAS,QAAQ,SAAS,KAAA,GAC5B,OAAO,CAAC;EAEV,IAAI,MAAM,QAAQ,IAAI,GACpB,OAAO;EAET,IAAI,WAAW,IAAI,GACjB,OAAO;CAEX;CACA,MAAM,IAAI,UAAU,sCAAsC;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,SAAgB,YAKd,QACA,QACA,SACoC;CACpC,OAAO,IAAI,YACT,IAAI,kBAA0C,QAAQ,OAAO,GAC7D,MACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely.js","names":[
|
|
1
|
+
{"version":3,"file":"kysely.js","names":[],"sources":["../../../../../zero-server/src/adapters/kysely.ts"],"sourcesContent":["import {CompiledQuery} from 'kysely';\nimport type {Kysely, Transaction as WrappedKyselyTransaction} from 'kysely';\nimport type {AST} from '../../../zero-protocol/src/ast.ts';\nimport type {Format} from '../../../zero-types/src/format.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport type {ServerSchema} from '../../../zero-types/src/server-schema.ts';\nimport type {\n DBConnection,\n DBTransaction,\n Row,\n} from '../../../zql/src/mutate/custom.ts';\nimport type {HumanReadable} from '../../../zql/src/query/query.ts';\nimport {executePostgresQuery} from '../pg-query-executor.ts';\nimport type {TransactionOptions} from '../transaction-options.ts';\nimport {ZQLDatabase} from '../zql-database.ts';\n\nexport type {ZQLDatabase};\n\nexport type KyselyDatabase<TDatabase = unknown> = Kysely<TDatabase>;\n\n/**\n * Helper type for the wrapped transaction used by Kysely.\n *\n * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, KyselyTransaction<typeof db>>`.\n */\nexport type KyselyTransaction<TDbOrSchema = KyselyDatabase> =\n TDbOrSchema extends Kysely<infer TInferredDatabase>\n ? WrappedKyselyTransaction<TInferredDatabase>\n : WrappedKyselyTransaction<TDbOrSchema>;\n\nexport class KyselyConnection<TDatabase> implements DBConnection<\n WrappedKyselyTransaction<TDatabase>\n> {\n readonly #client: Kysely<TDatabase>;\n readonly #options: TransactionOptions;\n\n constructor(client: Kysely<TDatabase>, options: TransactionOptions = {}) {\n this.#client = client;\n this.#options = options;\n }\n\n query(sql: string, params: unknown[]): Promise<Row[]> {\n return kyselyQuery(this.#client, sql, params);\n }\n\n transaction<T>(\n fn: (tx: DBTransaction<WrappedKyselyTransaction<TDatabase>>) => Promise<T>,\n ): Promise<T> {\n const {isolationLevel} = this.#options;\n const builder =\n isolationLevel === undefined\n ? this.#client.transaction()\n : this.#client.transaction().setIsolationLevel(isolationLevel);\n return builder.execute(kyselyTx =>\n fn(new KyselyInternalTransaction(kyselyTx)),\n );\n }\n}\n\nclass KyselyInternalTransaction<TDatabase> implements DBTransaction<\n WrappedKyselyTransaction<TDatabase>\n> {\n readonly wrappedTransaction: WrappedKyselyTransaction<TDatabase>;\n\n constructor(kyselyTx: WrappedKyselyTransaction<TDatabase>) {\n this.wrappedTransaction = kyselyTx;\n }\n\n runQuery<TReturn>(\n ast: AST,\n format: Format,\n schema: Schema,\n serverSchema: ServerSchema,\n ): Promise<HumanReadable<TReturn>> {\n return executePostgresQuery<TReturn>(\n this,\n ast,\n format,\n schema,\n serverSchema,\n );\n }\n\n query(sql: string, params: unknown[]): Promise<Row[]> {\n return kyselyQuery(this.wrappedTransaction, sql, params);\n }\n}\n\nasync function kyselyQuery<TDatabase>(\n executor: Kysely<TDatabase>,\n sql: string,\n params: unknown[],\n): Promise<Row[]> {\n const result = await executor.executeQuery<Row>(\n CompiledQuery.raw(sql, params),\n );\n return result.rows;\n}\n\n/**\n * Wrap a Postgres-backed Kysely client for Zero ZQL.\n *\n * Provides ZQL querying plus access to the underlying Kysely transaction.\n * Use {@link KyselyTransaction} to type your server mutator transaction.\n *\n * @param schema - Zero schema.\n * @param client - Kysely client.\n * @param options - Transaction options, e.g. `{isolationLevel: 'repeatable read'}`.\n *\n * @example\n * ```ts\n * import {Pool} from 'pg';\n * import {Kysely, PostgresDialect} from 'kysely';\n * import {defineMutator, defineMutators} from '@rocicorp/zero';\n * import {zeroKysely} from '@rocicorp/zero/server/adapters/kysely';\n * import {z} from 'zod/mini';\n *\n * interface Database {\n * user: {\n * id: string;\n * name: string | null;\n * status: 'active' | 'inactive';\n * };\n * }\n *\n * const db = new Kysely<Database>({\n * dialect: new PostgresDialect({\n * pool: new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!}),\n * }),\n * });\n * const zql = zeroKysely(schema, db);\n *\n * export const serverMutators = defineMutators({\n * user: {\n * create: defineMutator(\n * z.object({id: z.string(), name: z.string()}),\n * async ({tx, args}) => {\n * if (tx.location !== 'server') {\n * throw new Error('Server-only mutator');\n * }\n * await tx.dbTransaction.wrappedTransaction\n * .insertInto('user')\n * .values({id: args.id, name: args.name, status: 'active'})\n * .execute();\n * },\n * ),\n * },\n * });\n * ```\n */\nexport function zeroKysely<TSchema extends Schema, TDatabase>(\n schema: TSchema,\n client: Kysely<TDatabase>,\n options?: TransactionOptions,\n): ZQLDatabase<TSchema, WrappedKyselyTransaction<TDatabase>> {\n return new ZQLDatabase(new KyselyConnection(client, options), schema);\n}\n"],"mappings":";;;;AA8BA,IAAa,mBAAb,MAEE;CACA;CACA;CAEA,YAAY,QAA2B,UAA8B,CAAC,GAAG;EACvE,KAAK,UAAU;EACf,KAAK,WAAW;CAClB;CAEA,MAAM,KAAa,QAAmC;EACpD,OAAO,YAAY,KAAK,SAAS,KAAK,MAAM;CAC9C;CAEA,YACE,IACY;EACZ,MAAM,EAAC,mBAAkB,KAAK;EAK9B,QAHE,mBAAmB,KAAA,IACf,KAAK,QAAQ,YAAY,IACzB,KAAK,QAAQ,YAAY,CAAC,CAAC,kBAAkB,cAAc,EAAA,CAClD,SAAQ,aACrB,GAAG,IAAI,0BAA0B,QAAQ,CAAC,CAC5C;CACF;AACF;AAEA,IAAM,4BAAN,MAEE;CACA;CAEA,YAAY,UAA+C;EACzD,KAAK,qBAAqB;CAC5B;CAEA,SACE,KACA,QACA,QACA,cACiC;EACjC,OAAO,qBACL,MACA,KACA,QACA,QACA,YACF;CACF;CAEA,MAAM,KAAa,QAAmC;EACpD,OAAO,YAAY,KAAK,oBAAoB,KAAK,MAAM;CACzD;AACF;AAEA,eAAe,YACb,UACA,KACA,QACgB;CAIhB,QAAO,MAHc,SAAS,aAC5B,cAAc,IAAI,KAAK,MAAM,CAC/B,EAAA,CACc;AAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,SAAgB,WACd,QACA,QACA,SAC2D;CAC3D,OAAO,IAAI,YAAY,IAAI,iBAAiB,QAAQ,OAAO,GAAG,MAAM;AACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.js","names":[
|
|
1
|
+
{"version":3,"file":"pg.js","names":[],"sources":["../../../../../zero-server/src/adapters/pg.ts"],"sourcesContent":["import type {LogContext} from '@rocicorp/logger';\nimport type {Client} from 'pg';\nimport {DatabaseError, Pool, type PoolClient} from 'pg';\nimport type {AST} from '../../../zero-protocol/src/ast.ts';\nimport type {Format} from '../../../zero-types/src/format.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport type {ServerSchema} from '../../../zero-types/src/server-schema.ts';\nimport type {\n DBConnection,\n DBTransaction,\n Row,\n} from '../../../zql/src/mutate/custom.ts';\nimport type {HumanReadable} from '../../../zql/src/query/query.ts';\nimport {createLogContext} from '../logging.ts';\nimport {executePostgresQuery} from '../pg-query-executor.ts';\nimport {\n beginStatement,\n type TransactionOptions,\n} from '../transaction-options.ts';\nimport {ZQLDatabase} from '../zql-database.ts';\n\nexport type {ZQLDatabase};\n\n/**\n * Helper type for the wrapped transaction used by node-postgres.\n *\n * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, NodePgTransaction>`.\n */\nexport type NodePgTransaction = Pool | PoolClient | Client;\n\nexport class NodePgConnection implements DBConnection<NodePgTransaction> {\n readonly #pool: NodePgTransaction;\n readonly #options: TransactionOptions;\n\n constructor(pool: NodePgTransaction, options: TransactionOptions = {}) {\n this.#pool = pool;\n this.#options = options;\n }\n\n query(sql: string, params: unknown[]): Promise<Row[]> {\n return nodePgQuery(this.#pool, sql, params);\n }\n\n async transaction<TRet>(\n fn: (tx: DBTransaction<NodePgTransaction>) => Promise<TRet>,\n ): Promise<TRet> {\n const client =\n this.#pool instanceof Pool ? await this.#pool.connect() : this.#pool;\n // The pool only listens for 'error' on a client idle in the pool. If the\n // server ends the connection while the client is checked out here and no\n // query is running (an idle_in_transaction_session_timeout while the\n // mutator awaits something else, a restart, a failover), node-postgres\n // emits 'error' on the client, and with no listener the process dies.\n let connectionError: Error | undefined;\n const onError = (e: Error) => {\n connectionError ??= e;\n };\n client.on('error', onError);\n try {\n await client.query(beginStatement(this.#options.isolationLevel));\n const result = await fn(new NodePgTransactionInternal(client));\n await client.query('COMMIT');\n return result;\n } catch (error) {\n try {\n await client.query('ROLLBACK');\n } catch {\n // ignore rollback error; original error will be thrown\n }\n // After a connection error, a query only fails with \"Client has\n // encountered a connection error and is not queryable\". Throw what\n // ended the connection instead, unless the server reported an error of\n // its own to the query.\n throw connectionError && !(error instanceof DatabaseError)\n ? connectionError\n : error;\n } finally {\n client.off('error', onError);\n if (this.#pool instanceof Pool && 'release' in client) {\n client.release(connectionError);\n }\n }\n }\n}\n\nexport class NodePgTransactionInternal implements DBTransaction<NodePgTransaction> {\n readonly wrappedTransaction: NodePgTransaction;\n\n constructor(client: NodePgTransaction) {\n this.wrappedTransaction = client;\n }\n\n runQuery<TReturn>(\n ast: AST,\n format: Format,\n schema: Schema,\n serverSchema: ServerSchema,\n ): Promise<HumanReadable<TReturn>> {\n return executePostgresQuery<TReturn>(\n this,\n ast,\n format,\n schema,\n serverSchema,\n );\n }\n\n query(sql: string, params: unknown[]): Promise<Row[]> {\n return nodePgQuery(this.wrappedTransaction, sql, params);\n }\n}\n\nasync function nodePgQuery(\n client: NodePgTransaction,\n sql: string,\n params: unknown[],\n): Promise<Row[]> {\n const res = await client.query(sql, params);\n return res.rows as Row[];\n}\n\n/**\n * Wrap a `pg` Pool for Zero ZQL.\n *\n * Provides ZQL querying plus access to the underlying node-postgres client.\n * Use {@link NodePgTransaction} to type your server mutator transaction.\n *\n * @param schema - Zero schema.\n * @param pg - `pg` Pool or connection string.\n * @param lc - Where to log errors from a pool built from a connection string.\n * Defaults to `console` at level `warn`.\n *\n * @example\n * ```ts\n * import {Pool} from 'pg';\n * import {defineMutator, defineMutators} from '@rocicorp/zero';\n * import {zeroNodePg} from '@rocicorp/zero/server/adapters/pg';\n * import {z} from 'zod/mini';\n *\n * const pool = new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!});\n * const zql = zeroNodePg(schema, pool);\n *\n * export const serverMutators = defineMutators({\n * user: {\n * create: defineMutator(\n * z.object({id: z.string(), name: z.string()}),\n * async ({tx, args}) => {\n * if (tx.location !== 'server') {\n * throw new Error('Server-only mutator');\n * }\n * await tx.dbTransaction.wrappedTransaction.query(\n * 'INSERT INTO \"user\" (id, name, status) VALUES ($1, $2, $3)',\n * [args.id, args.name, 'active'],\n * );\n * },\n * ),\n * },\n * });\n * ```\n */\nexport function zeroNodePg<S extends Schema>(\n schema: S,\n pg: NodePgTransaction | string,\n lc: LogContext = createLogContext('warn'),\n options?: TransactionOptions,\n) {\n if (typeof pg === 'string') {\n const pool = new Pool({connectionString: pg});\n // node-postgres emits 'error' on the pool when the server terminates a\n // client idle in the pool (an idle_session_timeout, a restart, a\n // failover). The pool has already discarded that client and will open\n // another; with no listener the event is an uncaught exception and the\n // process dies with whatever request it was serving. Log it and carry on.\n pool.on('error', e => {\n lc.warn?.(\n 'node-postgres pool error; the client was removed from the pool',\n e,\n );\n });\n pg = pool;\n }\n return new ZQLDatabase(new NodePgConnection(pg, options), schema);\n}\n"],"mappings":";;;;;;AA8BA,IAAa,mBAAb,MAAyE;CACvE;CACA;CAEA,YAAY,MAAyB,UAA8B,CAAC,GAAG;EACrE,KAAK,QAAQ;EACb,KAAK,WAAW;CAClB;CAEA,MAAM,KAAa,QAAmC;EACpD,OAAO,YAAY,KAAK,OAAO,KAAK,MAAM;CAC5C;CAEA,MAAM,YACJ,IACe;EACf,MAAM,SACJ,KAAK,iBAAiB,OAAO,MAAM,KAAK,MAAM,QAAQ,IAAI,KAAK;EAMjE,IAAI;EACJ,MAAM,WAAW,MAAa;GAC5B,oBAAoB;EACtB;EACA,OAAO,GAAG,SAAS,OAAO;EAC1B,IAAI;GACF,MAAM,OAAO,MAAM,eAAe,KAAK,SAAS,cAAc,CAAC;GAC/D,MAAM,SAAS,MAAM,GAAG,IAAI,0BAA0B,MAAM,CAAC;GAC7D,MAAM,OAAO,MAAM,QAAQ;GAC3B,OAAO;EACT,SAAS,OAAO;GACd,IAAI;IACF,MAAM,OAAO,MAAM,UAAU;GAC/B,QAAQ,CAER;GAKA,MAAM,mBAAmB,EAAE,iBAAiB,iBACxC,kBACA;EACN,UAAU;GACR,OAAO,IAAI,SAAS,OAAO;GAC3B,IAAI,KAAK,iBAAiB,QAAQ,aAAa,QAC7C,OAAO,QAAQ,eAAe;EAElC;CACF;AACF;AAEA,IAAa,4BAAb,MAAmF;CACjF;CAEA,YAAY,QAA2B;EACrC,KAAK,qBAAqB;CAC5B;CAEA,SACE,KACA,QACA,QACA,cACiC;EACjC,OAAO,qBACL,MACA,KACA,QACA,QACA,YACF;CACF;CAEA,MAAM,KAAa,QAAmC;EACpD,OAAO,YAAY,KAAK,oBAAoB,KAAK,MAAM;CACzD;AACF;AAEA,eAAe,YACb,QACA,KACA,QACgB;CAEhB,QAAO,MADW,OAAO,MAAM,KAAK,MAAM,EAAA,CAC/B;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,SAAgB,WACd,QACA,IACA,KAAiB,iBAAiB,MAAM,GACxC,SACA;CACA,IAAI,OAAO,OAAO,UAAU;EAC1B,MAAM,OAAO,IAAI,KAAK,EAAC,kBAAkB,GAAE,CAAC;EAM5C,KAAK,GAAG,UAAS,MAAK;GACpB,GAAG,OACD,kEACA,CACF;EACF,CAAC;EACD,KAAK;CACP;CACA,OAAO,IAAI,YAAY,IAAI,iBAAiB,IAAI,OAAO,GAAG,MAAM;AAClE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresjs.js","names":[
|
|
1
|
+
{"version":3,"file":"postgresjs.js","names":[],"sources":["../../../../../zero-server/src/adapters/postgresjs.ts"],"sourcesContent":["import postgres from 'postgres';\nimport type {JSONValue} from '../../../shared/src/json.ts';\nimport type {AST} from '../../../zero-protocol/src/ast.ts';\nimport type {Format} from '../../../zero-types/src/format.ts';\nimport type {Schema} from '../../../zero-types/src/schema.ts';\nimport type {ServerSchema} from '../../../zero-types/src/server-schema.ts';\nimport type {\n DBConnection,\n DBTransaction,\n Row,\n} from '../../../zql/src/mutate/custom.ts';\nimport type {HumanReadable} from '../../../zql/src/query/query.ts';\nimport {executePostgresQuery} from '../pg-query-executor.ts';\nimport type {TransactionOptions} from '../transaction-options.ts';\nimport {ZQLDatabase} from '../zql-database.ts';\n\nexport type {ZQLDatabase};\n\n/**\n * Helper type for the wrapped transaction used by postgres.js.\n *\n * @typeParam T - The row-shape context bound to the postgres.js client.\n * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, PostgresJsTransaction>`.\n */\nexport type PostgresJsTransaction<\n T extends Record<string, unknown> = Record<string, unknown>,\n> = postgres.TransactionSql<T>;\n\nexport class PostgresJSConnection<\n T extends Record<string, unknown>,\n> implements DBConnection<PostgresJsTransaction<T>> {\n readonly #pg: postgres.Sql<T>;\n readonly #options: TransactionOptions;\n constructor(pg: postgres.Sql<T>, options: TransactionOptions = {}) {\n this.#pg = pg;\n this.#options = options;\n }\n\n query(sql: string, params: unknown[]): Promise<Row[]> {\n return postgresJsQuery(this.#pg, sql, params);\n }\n\n transaction<TRet>(\n fn: (tx: DBTransaction<PostgresJsTransaction<T>>) => Promise<TRet>,\n ): Promise<TRet> {\n const run = (pgTx: PostgresJsTransaction<T>) =>\n fn(new PostgresJsTransactionInternal(pgTx));\n const {isolationLevel} = this.#options;\n return (\n isolationLevel === undefined\n ? this.#pg.begin(run)\n : this.#pg.begin(`isolation level ${isolationLevel}`, run)\n ) as Promise<TRet>;\n }\n}\n\nexport class PostgresJsTransactionInternal<\n T extends Record<string, unknown>,\n> implements DBTransaction<PostgresJsTransaction<T>> {\n readonly wrappedTransaction: PostgresJsTransaction<T>;\n constructor(pgTx: PostgresJsTransaction<T>) {\n this.wrappedTransaction = pgTx;\n }\n\n query(sql: string, params: unknown[]): Promise<Row[]> {\n return postgresJsQuery(this.wrappedTransaction, sql, params);\n }\n\n runQuery<TReturn>(\n ast: AST,\n format: Format,\n schema: Schema,\n serverSchema: ServerSchema,\n ): Promise<HumanReadable<TReturn>> {\n return executePostgresQuery<TReturn>(\n this,\n ast,\n format,\n schema,\n serverSchema,\n );\n }\n}\n\nfunction postgresJsQuery<T extends Record<string, unknown>>(\n sql: postgres.Sql<T>,\n text: string,\n params: unknown[],\n): Promise<Row[]> {\n return sql.unsafe(text, params as JSONValue[]);\n}\n\n/**\n * Wrap a `postgres` client for Zero ZQL.\n *\n * Provides ZQL querying plus access to the underlying postgres.js transaction.\n * Use {@link PostgresJsTransaction} to type your server mutator transaction.\n *\n * @param schema - Zero schema.\n * @param pg - `postgres` client or connection string.\n *\n * @example\n * ```ts\n * import postgres from 'postgres';\n * import {defineMutator, defineMutators} from '@rocicorp/zero';\n * import {zeroPostgresJS} from '@rocicorp/zero/server/adapters/postgresjs';\n * import {z} from 'zod/mini';\n *\n * const sql = postgres(process.env.ZERO_UPSTREAM_DB!);\n * const zql = zeroPostgresJS(schema, sql);\n *\n * export const serverMutators = defineMutators({\n * user: {\n * create: defineMutator(\n * z.object({id: z.string(), name: z.string()}),\n * async ({tx, args}) => {\n * if (tx.location !== 'server') {\n * throw new Error('Server-only mutator');\n * }\n * await tx.dbTransaction.wrappedTransaction`\n * INSERT INTO \"user\" (id, name, status)\n * VALUES (${args.id}, ${args.name}, ${'active'})\n * `;\n * },\n * ),\n * },\n * });\n * ```\n */\nexport function zeroPostgresJS<\n S extends Schema,\n T extends Record<string, unknown> = Record<string, unknown>,\n>(schema: S, pg: postgres.Sql<T> | string, options?: TransactionOptions) {\n if (typeof pg === 'string') {\n pg = postgres(pg, {\n connection: {['application_name']: 'zero-server'},\n }) as postgres.Sql<T>;\n }\n return new ZQLDatabase(new PostgresJSConnection(pg, options), schema);\n}\n"],"mappings":";;;;AA4BA,IAAa,uBAAb,MAEoD;CAClD;CACA;CACA,YAAY,IAAqB,UAA8B,CAAC,GAAG;EACjE,KAAK,MAAM;EACX,KAAK,WAAW;CAClB;CAEA,MAAM,KAAa,QAAmC;EACpD,OAAO,gBAAgB,KAAK,KAAK,KAAK,MAAM;CAC9C;CAEA,YACE,IACe;EACf,MAAM,OAAO,SACX,GAAG,IAAI,8BAA8B,IAAI,CAAC;EAC5C,MAAM,EAAC,mBAAkB,KAAK;EAC9B,OACE,mBAAmB,KAAA,IACf,KAAK,IAAI,MAAM,GAAG,IAClB,KAAK,IAAI,MAAM,mBAAmB,kBAAkB,GAAG;CAE/D;AACF;AAEA,IAAa,gCAAb,MAEqD;CACnD;CACA,YAAY,MAAgC;EAC1C,KAAK,qBAAqB;CAC5B;CAEA,MAAM,KAAa,QAAmC;EACpD,OAAO,gBAAgB,KAAK,oBAAoB,KAAK,MAAM;CAC7D;CAEA,SACE,KACA,QACA,QACA,cACiC;EACjC,OAAO,qBACL,MACA,KACA,QACA,QACA,YACF;CACF;AACF;AAEA,SAAS,gBACP,KACA,MACA,QACgB;CAChB,OAAO,IAAI,OAAO,MAAM,MAAqB;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgB,eAGd,QAAW,IAA8B,SAA8B;CACvE,IAAI,OAAO,OAAO,UAChB,KAAK,SAAS,IAAI,EAChB,YAAY,GAAE,qBAAqB,cAAa,EAClD,CAAC;CAEH,OAAO,IAAI,YAAY,IAAI,qBAAqB,IAAI,OAAO,GAAG,MAAM;AACtE"}
|