@rocicorp/zero 1.12.0-canary.4 → 1.12.0-canary.5

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.
Files changed (85) hide show
  1. package/out/analyze-query/src/analyze-cli.d.ts.map +1 -1
  2. package/out/analyze-query/src/analyze-cli.js +2 -1
  3. package/out/analyze-query/src/analyze-cli.js.map +1 -1
  4. package/out/analyze-query/src/bin-transform.js +1 -1
  5. package/out/analyze-query/src/zql-chain.d.ts +23 -0
  6. package/out/analyze-query/src/zql-chain.d.ts.map +1 -0
  7. package/out/analyze-query/src/zql-chain.js +162 -0
  8. package/out/analyze-query/src/zql-chain.js.map +1 -0
  9. package/out/ast-to-zql/src/bin.js +1 -1
  10. package/out/zero/package.js +21 -22
  11. package/out/zero/package.js.map +1 -1
  12. package/out/zero-cache/src/auth/load-permissions.js +1 -1
  13. package/out/zero-cache/src/auth/write-authorizer.js +1 -1
  14. package/out/zero-cache/src/scripts/decommission.js +1 -1
  15. package/out/zero-cache/src/scripts/deploy-permissions.js +1 -1
  16. package/out/zero-cache/src/server/change-streamer.js +1 -1
  17. package/out/zero-cache/src/server/replicator.js +1 -1
  18. package/out/zero-cache/src/server/syncer.js +3 -3
  19. package/out/zero-cache/src/services/analyze.js +2 -2
  20. package/out/zero-cache/src/services/change-source/common/backfill-manager.js +1 -1
  21. package/out/zero-cache/src/services/change-source/common/replica-schema.js +1 -1
  22. package/out/zero-cache/src/services/change-source/custom/change-source.js +1 -1
  23. package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +1 -1
  24. package/out/zero-cache/src/services/change-source/pg/change-source-init.js +2 -2
  25. package/out/zero-cache/src/services/change-source/pg/change-source.js +2 -2
  26. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +4 -4
  27. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +2 -2
  28. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +1 -1
  29. package/out/zero-cache/src/services/change-source/pg/schema/init.js +1 -1
  30. package/out/zero-cache/src/services/change-source/pg/schema/published.js +1 -1
  31. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +1 -1
  32. package/out/zero-cache/src/services/change-streamer/change-log-initializer.js +1 -1
  33. package/out/zero-cache/src/services/change-streamer/replica-poller.js +1 -1
  34. package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js +2 -2
  35. package/out/zero-cache/src/services/change-streamer/storer.js +1 -1
  36. package/out/zero-cache/src/services/life-cycle.js +1 -1
  37. package/out/zero-cache/src/services/litestream/commands.js +2 -2
  38. package/out/zero-cache/src/services/plannerz.js +2 -2
  39. package/out/zero-cache/src/services/replicator/change-log-db.js +1 -1
  40. package/out/zero-cache/src/services/replicator/incremental-sync.js +3 -3
  41. package/out/zero-cache/src/services/replicator/schema/backfilling.js +1 -1
  42. package/out/zero-cache/src/services/replicator/write-worker.js +3 -3
  43. package/out/zero-cache/src/services/run-ast.js +1 -1
  44. package/out/zero-cache/src/services/statz.js +2 -2
  45. package/out/zero-cache/src/services/view-syncer/cvr-store.js +1 -1
  46. package/out/zero-cache/src/services/view-syncer/inspect-handler.js +1 -1
  47. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +5 -5
  48. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +1 -1
  49. package/out/zero-cache/src/services/view-syncer/snapshotter.js +1 -1
  50. package/out/zero-cache/src/services/view-syncer/view-syncer.js +6 -6
  51. package/out/zero-cache/src/types/profiler.js +1 -1
  52. package/out/zero-client/src/client/version.js +1 -1
  53. package/out/zql/src/ivm/cap.d.ts +1 -1
  54. package/out/zql/src/ivm/cap.d.ts.map +1 -1
  55. package/out/zql/src/ivm/cap.js +10 -0
  56. package/out/zql/src/ivm/cap.js.map +1 -1
  57. package/out/zql/src/ivm/data.d.ts +15 -1
  58. package/out/zql/src/ivm/data.d.ts.map +1 -1
  59. package/out/zql/src/ivm/data.js +15 -1
  60. package/out/zql/src/ivm/data.js.map +1 -1
  61. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  62. package/out/zql/src/ivm/exists.js +12 -4
  63. package/out/zql/src/ivm/exists.js.map +1 -1
  64. package/out/zql/src/ivm/filter-operators.d.ts +5 -0
  65. package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
  66. package/out/zql/src/ivm/filter-operators.js.map +1 -1
  67. package/out/zql/src/ivm/join.d.ts.map +1 -1
  68. package/out/zql/src/ivm/join.js +6 -3
  69. package/out/zql/src/ivm/join.js.map +1 -1
  70. package/out/zql/src/ivm/memory-source.js +1 -1
  71. package/out/zql/src/ivm/operator.d.ts +6 -0
  72. package/out/zql/src/ivm/operator.d.ts.map +1 -1
  73. package/out/zql/src/ivm/operator.js.map +1 -1
  74. package/out/zql/src/ivm/take.d.ts.map +1 -1
  75. package/out/zql/src/ivm/take.js +4 -3
  76. package/out/zql/src/ivm/take.js.map +1 -1
  77. package/out/zqlite/src/table-source.js +1 -1
  78. package/package.json +21 -22
  79. package/out/analyze-query/src/bin-analyze.d.ts +0 -2
  80. package/out/analyze-query/src/bin-analyze.d.ts.map +0 -1
  81. package/out/analyze-query/src/bin-analyze.js +0 -285
  82. package/out/analyze-query/src/bin-analyze.js.map +0 -1
  83. package/out/zero/src/analyze-query.d.ts +0 -3
  84. package/out/zero/src/analyze-query.d.ts.map +0 -1
  85. package/out/zero/src/analyze-query.js +0 -3
@@ -5,10 +5,10 @@ import { Debug } from "../../../zql/src/builder/debug-delegate.js";
5
5
  import { Database } from "../../../zqlite/src/db.js";
6
6
  import { TableSource } from "../../../zqlite/src/table-source.js";
7
7
  import { computeZqlSpecs, mustGetTableSpec } from "../db/lite-tables.js";
8
+ import _usingCtx from "../../../_virtual/_@oxc-project_runtime@0.154.0/helpers/esm/usingCtx.js";
8
9
  import { createSQLiteCostModel } from "../../../zqlite/src/sqlite-cost-model.js";
9
- import { MAX_ANALYZE_ROWS, runAst } from "./run-ast.js";
10
10
  import { explainQueries } from "../../../zqlite/src/explain-queries.js";
11
- import _usingCtx from "../../../_virtual/_@oxc-project_runtime@0.154.0/helpers/esm/usingCtx.js";
11
+ import { MAX_ANALYZE_ROWS, runAst } from "./run-ast.js";
12
12
  import { TimeSliceTimer } from "./view-syncer/view-syncer.js";
13
13
  //#region ../zero-cache/src/services/analyze.ts
14
14
  var TIME_SLICE_LAP_THRESHOLD_MS = 200;
@@ -3,8 +3,8 @@ import { AbortError } from "../../../../../shared/src/abort-error.js";
3
3
  import { must } from "../../../../../shared/src/must.js";
4
4
  import { promiseOrAbort } from "../../../../../shared/src/promise-race.js";
5
5
  import { stringify } from "../../../../../shared/src/bigint-json.js";
6
- import "../../../types/lite.js";
7
6
  import { randInt } from "../../../../../shared/src/rand.js";
7
+ import "../../../types/lite.js";
8
8
  import { stateVersionFromString, stateVersionToString } from "../../../types/state-version.js";
9
9
  import { Queue } from "../../../../../shared/src/queue.js";
10
10
  import { CustomKeyMap } from "../../../../../shared/src/custom-key-map.js";
@@ -1,8 +1,8 @@
1
+ import { isSQLiteCorruption, logSQLiteCorruptionDiagnostics } from "../../../db/sqlite-corruption.js";
1
2
  import { populateFromExistingTables } from "../../replicator/schema/column-metadata.js";
2
3
  import { listTables } from "../../../db/lite-tables.js";
3
4
  import { BACKFILLING_TABLE, populateBackfillingFromColumnMetadata } from "../../replicator/schema/backfilling.js";
4
5
  import { CREATE_RUNTIME_EVENTS_TABLE, recordEvent } from "../../replicator/schema/replication-state.js";
5
- import { isSQLiteCorruption, logSQLiteCorruptionDiagnostics } from "../../../db/sqlite-corruption.js";
6
6
  import { deleteLiteDB } from "../../../db/delete-lite-db.js";
7
7
  import { AutoResetSignal } from "../../change-streamer/schema/tables.js";
8
8
  import { runSchemaMigrations } from "../../../db/migration-lite.js";
@@ -5,8 +5,8 @@ import { changeStreamMessageSchema } from "../protocol/current/downstream.js";
5
5
  import "../protocol/current/upstream.js";
6
6
  import { Database } from "../../../../../zqlite/src/db.js";
7
7
  import { computeZqlSpecs } from "../../../db/lite-tables.js";
8
- import { createReplicationStateTables, getSubscriptionState, initReplicationState } from "../../replicator/schema/replication-state.js";
9
8
  import { StatementRunner } from "../../../db/statements.js";
9
+ import { createReplicationStateTables, getSubscriptionState, initReplicationState } from "../../replicator/schema/replication-state.js";
10
10
  import { stream } from "../../../types/streams.js";
11
11
  import { AutoResetSignal } from "../../change-streamer/schema/tables.js";
12
12
  import { ChangeProcessor } from "../../replicator/change-processor.js";
@@ -3,11 +3,11 @@ import { parse } from "../../../../../shared/src/valita.js";
3
3
  import { must } from "../../../../../shared/src/must.js";
4
4
  import { randomCharacters } from "../../../../../shared/src/random-values.js";
5
5
  import { equals } from "../../../../../shared/src/set-utils.js";
6
- import { id } from "../../../types/sql.js";
7
6
  import { connectPgClient, pgClient } from "../../../types/pg.js";
8
7
  import { toStateVersionString } from "./lsn.js";
9
8
  import { READONLY } from "../../../db/mode-enum.js";
10
9
  import { getPublicationInfo } from "./schema/published.js";
10
+ import { id } from "../../../types/sql.js";
11
11
  import { Queue } from "../../../../../shared/src/queue.js";
12
12
  import { resumePoint } from "../protocol/backfill-progress.js";
13
13
  import { SchemaIncompatibilityError } from "../common/backfill-manager.js";
@@ -4,9 +4,9 @@ import { promiseVoid } from "../../../../../shared/src/resolved-promises.js";
4
4
  import { sleep } from "../../../../../shared/src/sleep.js";
5
5
  import { must } from "../../../../../shared/src/must.js";
6
6
  import { Database } from "../../../../../zqlite/src/db.js";
7
- import { getSubscriptionStateAndContext } from "../../replicator/schema/replication-state.js";
8
- import { StatementRunner } from "../../../db/statements.js";
9
7
  import { connectPgClient } from "../../../types/pg.js";
8
+ import { StatementRunner } from "../../../db/statements.js";
9
+ import { getSubscriptionStateAndContext } from "../../replicator/schema/replication-state.js";
10
10
  import { toBigInt, toStateVersionString } from "./lsn.js";
11
11
  import "./schema/replica-stage-enum.js";
12
12
  import { dropShard, getActiveReplicas, getReplicaAtVersion, getRestoreCandidates, initRestoreReplica, internalPublicationPrefix } from "./schema/shard.js";
@@ -7,10 +7,10 @@ import { mapValues } from "../../../../../shared/src/objects.js";
7
7
  import { equals, intersection, symmetricDifferences } from "../../../../../shared/src/set-utils.js";
8
8
  import { stringify } from "../../../../../shared/src/bigint-json.js";
9
9
  import { upstreamSchema } from "../../../types/shards.js";
10
- import { UnsupportedColumnDefaultError, mapPostgresToLiteColumn } from "../../../db/pg-to-lite.js";
11
- import { getOrCreateCounter } from "../../../observability/metrics.js";
12
10
  import { isPostgresError, pgClient } from "../../../types/pg.js";
11
+ import { getOrCreateCounter } from "../../../observability/metrics.js";
13
12
  import { UnrecoverableError } from "../../running-state.js";
13
+ import { UnsupportedColumnDefaultError, mapPostgresToLiteColumn } from "../../../db/pg-to-lite.js";
14
14
  import { majorVersionFromString, majorVersionToString } from "../../../types/state-version.js";
15
15
  import { fromBigInt, toBigInt, toStateVersionString } from "./lsn.js";
16
16
  import { getPublicationInfo, warnForSkippedIndexes } from "./schema/published.js";
@@ -3,20 +3,20 @@ import { must } from "../../../../../shared/src/must.js";
3
3
  import { equals } from "../../../../../shared/src/set-utils.js";
4
4
  import { ALLOWED_APP_ID_CHARACTERS } from "../../../types/shards.js";
5
5
  import { Database } from "../../../../../zqlite/src/db.js";
6
+ import { connectPgClient } from "../../../types/pg.js";
7
+ import { getOrCreateCounter, getOrCreateHistogram } from "../../../observability/metrics.js";
6
8
  import { liteValue } from "../../../types/lite.js";
7
9
  import { liteTableName } from "../../../types/names.js";
8
10
  import { mapPostgresToLite, mapPostgresToLiteIndex } from "../../../db/pg-to-lite.js";
9
11
  import { ColumnMetadataStore } from "../../replicator/schema/column-metadata.js";
10
12
  import { listIndexes, listTables } from "../../../db/lite-tables.js";
11
- import { getOrCreateCounter, getOrCreateHistogram } from "../../../observability/metrics.js";
12
13
  import { initReplicationState } from "../../replicator/schema/replication-state.js";
13
- import { id } from "../../../types/sql.js";
14
- import { connectPgClient } from "../../../types/pg.js";
15
14
  import { CpuProfiler } from "../../../types/profiler.js";
16
15
  import { toStateVersionString } from "./lsn.js";
17
16
  import { READONLY } from "../../../db/mode-enum.js";
18
17
  import { runTx } from "../../../db/run-transaction.js";
19
18
  import { getPublicationInfo, warnForSkippedIndexes } from "./schema/published.js";
19
+ import { id } from "../../../types/sql.js";
20
20
  import "./schema/replica-stage-enum.js";
21
21
  import { dropShard, getInternalShardConfig, getReplicaState, initInitialSyncReplica, validatePublications } from "./schema/shard.js";
22
22
  import { createLiteIndexStatement, createLiteTableStatement } from "../../../db/create.js";
@@ -31,8 +31,8 @@ import { endSession } from "./logical-replication/stream.js";
31
31
  import { createReplicaAndSlot } from "./replication-slots.js";
32
32
  import { ensureShardSchema } from "./schema/init.js";
33
33
  import { platform, tmpdir } from "node:os";
34
- import { join } from "node:path";
35
34
  import { mkdtemp, rm } from "node:fs/promises";
35
+ import { join } from "node:path";
36
36
  import { Writable } from "node:stream";
37
37
  import { pipeline as pipeline$1 } from "node:stream/promises";
38
38
  //#region ../zero-cache/src/services/change-source/pg/initial-sync.ts
@@ -1,10 +1,10 @@
1
1
  import { sleep } from "../../../../../../shared/src/sleep.js";
2
2
  import { childWorker } from "../../../../types/processes.js";
3
- import { getOrCreateHistogram } from "../../../../observability/metrics.js";
4
- import { id, lit } from "../../../../types/sql.js";
5
3
  import "../../../../types/pg.js";
4
+ import { getOrCreateHistogram } from "../../../../observability/metrics.js";
6
5
  import { SLOT_KEEPER_URL } from "../../../../server/worker-urls.js";
7
6
  import { fromBigInt, toBigInt } from "../lsn.js";
7
+ import { id, lit } from "../../../../types/sql.js";
8
8
  import { Subscription } from "../../../../types/subscription.js";
9
9
  import { pipe } from "../../../../types/streams.js";
10
10
  import { AutoResetSignal } from "../../../change-streamer/schema/tables.js";
@@ -1,8 +1,8 @@
1
1
  import { assert } from "../../../../../../shared/src/asserts.js";
2
2
  import { literalUnion, valita_exports } from "../../../../../../shared/src/valita.js";
3
3
  import { upstreamSchema } from "../../../../types/shards.js";
4
- import { id } from "../../../../types/sql.js";
5
4
  import { publishedSchema, publishedSchemaQuery } from "./published.js";
5
+ import { id } from "../../../../types/sql.js";
6
6
  import { literal } from "pg-format";
7
7
  var versionSchema = literalUnion(1, 2);
8
8
  var ddlEventSchema = valita_exports.object({ context: valita_exports.object({ query: valita_exports.string() }).rest(valita_exports.string()) }).extend({
@@ -1,8 +1,8 @@
1
1
  import { assert } from "../../../../../../shared/src/asserts.js";
2
2
  import { parse, valita_exports } from "../../../../../../shared/src/valita.js";
3
3
  import { upstreamSchema } from "../../../../types/shards.js";
4
- import { id } from "../../../../types/sql.js";
5
4
  import { publishedSchema } from "./published.js";
5
+ import { id } from "../../../../types/sql.js";
6
6
  import "./replica-stage-enum.js";
7
7
  import { getMutationsTableDefinition, legacyReplicationSlot, metadataPublicationName, setupTablesAndReplication, setupTriggers } from "./shard.js";
8
8
  import { AutoResetSignal } from "../../../change-streamer/schema/tables.js";
@@ -3,10 +3,10 @@ import { parse, valita_exports } from "../../../../../../shared/src/valita.js";
3
3
  import { equals } from "../../../../../../shared/src/set-utils.js";
4
4
  import { BigIntJSON } from "../../../../../../shared/src/bigint-json.js";
5
5
  import { publishedColumnSpec, publishedIndexSpec, publishedTableSpec } from "../../../../db/specs.js";
6
+ import { getOrCreateCounter } from "../../../../observability/metrics.js";
6
7
  import { liteTableName } from "../../../../types/names.js";
7
8
  import { mapPostgresToLite, mapPostgresToLiteIndex } from "../../../../db/pg-to-lite.js";
8
9
  import { computeZqlSpecsFromLiteSpecs } from "../../../../db/lite-tables.js";
9
- import { getOrCreateCounter } from "../../../../observability/metrics.js";
10
10
  import { translatePostgresIndexPredicate } from "./index-predicate.js";
11
11
  import { literal } from "pg-format";
12
12
  //#region ../zero-cache/src/services/change-source/pg/schema/published.ts
@@ -2,8 +2,8 @@ import { assert } from "../../../../../../shared/src/asserts.js";
2
2
  import { parse, valita_exports } from "../../../../../../shared/src/valita.js";
3
3
  import { jsonObjectSchema, stringify } from "../../../../../../shared/src/bigint-json.js";
4
4
  import { appSchema, check, upstreamSchema } from "../../../../types/shards.js";
5
- import { id } from "../../../../types/sql.js";
6
5
  import { getPublicationInfo, publishedSchema } from "./published.js";
6
+ import { id } from "../../../../types/sql.js";
7
7
  import { createEventFunctionStatements, createEventTriggerStatements } from "./ddl.js";
8
8
  import { replicaStageSchema } from "./replica-stage-enum.js";
9
9
  import { validate } from "./validation.js";
@@ -4,10 +4,10 @@ import { BigIntJSON } from "../../../../shared/src/bigint-json.js";
4
4
  import { schemaChangeTags } from "../change-source/protocol/current/schema-change-tags.js";
5
5
  import { Database } from "../../../../zqlite/src/db.js";
6
6
  import { getOrCreateCounter } from "../../observability/metrics.js";
7
+ import { StatementRunner } from "../../db/statements.js";
7
8
  import { backfillRequestsFrom, foldCookies } from "../replicator/change-log-cookies.js";
8
9
  import { readBackfillRequests, readReplicaCookies } from "../replicator/schema/backfilling.js";
9
10
  import { getReplicationState } from "../replicator/schema/replication-state.js";
10
- import { StatementRunner } from "../../db/statements.js";
11
11
  import { CHANGE_LOG_STREAM_TABLE } from "../replicator/change-log-db.js";
12
12
  import { SQLITE_CHANGE_LOG_BOUNDARY_SQL } from "./sqlite-change-log-reader.js";
13
13
  //#region ../zero-cache/src/services/change-streamer/change-log-initializer.ts
@@ -1,6 +1,6 @@
1
1
  import { Database } from "../../../../zqlite/src/db.js";
2
- import { getReplicationState } from "../replicator/schema/replication-state.js";
3
2
  import { StatementRunner } from "../../db/statements.js";
3
+ import { getReplicationState } from "../replicator/schema/replication-state.js";
4
4
  import { Subscription } from "../../types/subscription.js";
5
5
  import { assert } from "console";
6
6
  import { clearInterval } from "timers";
@@ -1,9 +1,9 @@
1
1
  import { assert } from "../../../../shared/src/asserts.js";
2
2
  import { must } from "../../../../shared/src/must.js";
3
3
  import { h32 } from "../../../../shared/src/hash.js";
4
- import { readCookieRowCounts, readCookies } from "../replicator/change-log-cookies.js";
5
- import { StatementRunner } from "../../db/statements.js";
6
4
  import { isSQLiteCorruption, logSQLiteCorruptionDiagnostics } from "../../db/sqlite-corruption.js";
5
+ import { StatementRunner } from "../../db/statements.js";
6
+ import { readCookieRowCounts, readCookies } from "../replicator/change-log-cookies.js";
7
7
  import { ChangeLogRebuildRequired, changeLogFileName, changeLogWipeReason, deleteChangeLogDB, openChangeLogDBForWriting, readChangeLogHead, rebuildChangeLogDBForWriting, reconcileChangeLog } from "../replicator/change-log-db.js";
8
8
  import { extractChangeSubstring } from "./change-log-codec.js";
9
9
  import { ChangeLogStreamWriter } from "../replicator/change-log-stream-writer.js";
@@ -9,9 +9,9 @@ import { isDataChange, isSchemaChange } from "../change-source/protocol/current/
9
9
  import "../change-source/protocol/current/downstream.js";
10
10
  import { backfillRequestSchema } from "../change-source/protocol/current/upstream.js";
11
11
  import "../change-source/protocol/current.js";
12
- import { cookieOps } from "../replicator/change-log-cookies.js";
13
12
  import "../../types/pg.js";
14
13
  import { orTimeout } from "../../types/timeout.js";
14
+ import { cookieOps } from "../replicator/change-log-cookies.js";
15
15
  import { READONLY, READ_COMMITTED } from "../../db/mode-enum.js";
16
16
  import { runTx } from "../../db/run-transaction.js";
17
17
  import { Queue } from "../../../../shared/src/queue.js";
@@ -1,8 +1,8 @@
1
1
  import { AbortError } from "../../../shared/src/abort-error.js";
2
2
  import { singleProcessMode } from "../types/processes.js";
3
- import { LONG_DURATION_HISTOGRAM_BOUNDARIES_S, getOrCreateHistogram } from "../observability/metrics.js";
4
3
  import { ConfigurationError } from "../types/configuration-error.js";
5
4
  import { logLastChanceSQLiteCorruptionDiagnostics } from "../db/sqlite-corruption.js";
5
+ import { LONG_DURATION_HISTOGRAM_BOUNDARIES_S, getOrCreateHistogram } from "../observability/metrics.js";
6
6
  import { orTimeout } from "../types/timeout.js";
7
7
  import { RunningState } from "./running-state.js";
8
8
  import { resolver } from "@rocicorp/resolver";
@@ -2,9 +2,9 @@ import { parse, valita_exports } from "../../../../shared/src/valita.js";
2
2
  import { must } from "../../../../shared/src/must.js";
3
3
  import "../../config/normalize.js";
4
4
  import { Database } from "../../../../zqlite/src/db.js";
5
- import { getSubscriptionState } from "../replicator/schema/replication-state.js";
6
- import { StatementRunner } from "../../db/statements.js";
7
5
  import { isSQLiteCorruption, logSQLiteCorruptionDiagnostics } from "../../db/sqlite-corruption.js";
6
+ import { StatementRunner } from "../../db/statements.js";
7
+ import { getSubscriptionState } from "../replicator/schema/replication-state.js";
8
8
  import { deleteLiteDB } from "../../db/delete-lite-db.js";
9
9
  import { deleteChangeLogDB } from "../replicator/change-log-db.js";
10
10
  import { litestreamSocketPath } from "./litestream-controller.js";
@@ -1,9 +1,9 @@
1
1
  import { getOperatorAccess, getServerVersion } from "../config/zero-config.js";
2
2
  import { Database } from "../../../zqlite/src/db.js";
3
- import { computeZqlSpecsFromLiteSpecs, listIndexes, listTables } from "../db/lite-tables.js";
4
3
  import { decodeSampleKinds } from "../../../zqlite/src/sqlite-stat4-sample.js";
5
- import { getReplicationState } from "./replicator/schema/replication-state.js";
4
+ import { computeZqlSpecsFromLiteSpecs, listIndexes, listTables } from "../db/lite-tables.js";
6
5
  import { StatementRunner } from "../db/statements.js";
6
+ import { getReplicationState } from "./replicator/schema/replication-state.js";
7
7
  import _usingCtx from "../../../_virtual/_@oxc-project_runtime@0.154.0/helpers/esm/usingCtx.js";
8
8
  import auth from "basic-auth";
9
9
  //#region ../zero-cache/src/services/plannerz.ts
@@ -1,6 +1,6 @@
1
1
  import { Database } from "../../../../zqlite/src/db.js";
2
- import { CREATE_CHANGE_LOG_COOKIE_SCHEMA, DROP_CHANGE_LOG_COOKIE_TABLES, replaceCookies } from "./change-log-cookies.js";
3
2
  import { isSQLiteCorruption, logSQLiteCorruptionDiagnostics } from "../../db/sqlite-corruption.js";
3
+ import { CREATE_CHANGE_LOG_COOKIE_SCHEMA, DROP_CHANGE_LOG_COOKIE_TABLES, replaceCookies } from "./change-log-cookies.js";
4
4
  import { deleteLiteDB } from "../../db/delete-lite-db.js";
5
5
  import { existsSync } from "node:fs";
6
6
  /** https://www.sqlite.org/pragma.html#pragma_auto_vacuum */
@@ -1,11 +1,11 @@
1
1
  import { AbortError } from "../../../../shared/src/abort-error.js";
2
2
  import { Database } from "../../../../zqlite/src/db.js";
3
- import { mapPostgresToLiteIndex } from "../../db/pg-to-lite.js";
4
3
  import { getOrCreateCounter } from "../../observability/metrics.js";
4
+ import { RunningState } from "../running-state.js";
5
+ import { mapPostgresToLiteIndex } from "../../db/pg-to-lite.js";
6
+ import { StatementRunner } from "../../db/statements.js";
5
7
  import { readReplicaBackfills } from "./schema/backfilling.js";
6
8
  import { getSubscriptionState } from "./schema/replication-state.js";
7
- import { StatementRunner } from "../../db/statements.js";
8
- import { RunningState } from "../running-state.js";
9
9
  import { IndexingProgress } from "./replication-status.js";
10
10
  import { errorTypeToReadableName } from "../change-streamer/change-streamer.js";
11
11
  import { Notifier } from "./notifier.js";
@@ -1,7 +1,7 @@
1
1
  import { unreachable } from "../../../../../shared/src/asserts.js";
2
2
  import { BigIntJSON } from "../../../../../shared/src/bigint-json.js";
3
- import { liteTableName } from "../../../types/names.js";
4
3
  import { getOrCreateCounter } from "../../../observability/metrics.js";
4
+ import { liteTableName } from "../../../types/names.js";
5
5
  import { backfillRequestsFrom, cookieOps } from "../change-log-cookies.js";
6
6
  //#region ../zero-cache/src/services/replicator/schema/backfilling.ts
7
7
  var BACKFILLING_TABLE = "_zero.backfilling";
@@ -1,11 +1,11 @@
1
1
  import { assert } from "../../../../shared/src/asserts.js";
2
2
  import { must } from "../../../../shared/src/must.js";
3
3
  import { Database } from "../../../../zqlite/src/db.js";
4
- import { readReplicaBackfills } from "./schema/backfilling.js";
5
- import { getSubscriptionState } from "./schema/replication-state.js";
6
- import { StatementRunner } from "../../db/statements.js";
7
4
  import { isSQLiteCorruption, logSQLiteCorruptionDiagnostics, registerSQLiteCorruptionDiagnosticTarget } from "../../db/sqlite-corruption.js";
8
5
  import { createLogContext } from "../../server/logging.js";
6
+ import { StatementRunner } from "../../db/statements.js";
7
+ import { readReplicaBackfills } from "./schema/backfilling.js";
8
+ import { getSubscriptionState } from "./schema/replication-state.js";
9
9
  import { deleteLiteDB } from "../../db/delete-lite-db.js";
10
10
  import { ChangeProcessor } from "./change-processor.js";
11
11
  import { LitestreamController } from "../litestream/litestream-controller.js";
@@ -6,9 +6,9 @@ import { hashOfAST } from "../../../zero-protocol/src/query-hash.js";
6
6
  import { buildPipeline } from "../../../zql/src/builder/builder.js";
7
7
  import { astToZQL } from "../../../ast-to-zql/src/ast-to-zql.js";
8
8
  import { formatOutput } from "../../../ast-to-zql/src/format.js";
9
+ import { transformAndHashQuery } from "../auth/read-authorizer.js";
9
10
  import { computeZqlSpecs } from "../db/lite-tables.js";
10
11
  import { resolveSimpleScalarSubqueries } from "../../../zqlite/src/resolve-scalar-subqueries.js";
11
- import { transformAndHashQuery } from "../auth/read-authorizer.js";
12
12
  import { fetchScalarValue, hydrate } from "./view-syncer/pipeline-driver.js";
13
13
  //#region ../zero-cache/src/services/run-ast.ts
14
14
  /**
@@ -2,9 +2,9 @@ import { BigIntJSON } from "../../../shared/src/bigint-json.js";
2
2
  import { getShardID, upstreamSchema } from "../types/shards.js";
3
3
  import { getOperatorAccess } from "../config/zero-config.js";
4
4
  import { Database } from "../../../zqlite/src/db.js";
5
- import { getReplicationState } from "./replicator/schema/replication-state.js";
6
- import { StatementRunner } from "../db/statements.js";
7
5
  import { pgClient } from "../types/pg.js";
6
+ import { StatementRunner } from "../db/statements.js";
7
+ import { getReplicationState } from "./replicator/schema/replication-state.js";
8
8
  import { fromStateVersionString } from "./change-source/pg/lsn.js";
9
9
  import os from "os";
10
10
  import fs from "fs";
@@ -13,7 +13,6 @@ import { startAsyncSpan } from "../../../../otel/src/span.js";
13
13
  import { version } from "../../../../otel/src/version.js";
14
14
  import { getOrCreateCounter, getOrCreateLatencyHistogram } from "../../observability/metrics.js";
15
15
  import { rowIDString } from "../../types/row-key.js";
16
- import { formatSignature, parseSignature } from "./row-set-signature.js";
17
16
  import { READONLY, READ_COMMITTED } from "../../db/mode-enum.js";
18
17
  import { runTx } from "../../db/run-transaction.js";
19
18
  import { CustomKeyMap } from "../../../../shared/src/custom-key-map.js";
@@ -23,6 +22,7 @@ import { ttlClockAsNumber, ttlClockFromNumber } from "./ttl-clock.js";
23
22
  import { EMPTY_CVR_VERSION, cmpVersions, queryRecordToQueryRow, versionFromString, versionString } from "./schema/types.js";
24
23
  import "./schema/cvr.js";
25
24
  import { ProtocolErrorWithLevel } from "../../types/error-with-level.js";
25
+ import { formatSignature, parseSignature } from "./row-set-signature.js";
26
26
  import { CustomKeySet } from "../../../../shared/src/custom-key-set.js";
27
27
  import { RowRecordCache } from "./row-record-cache.js";
28
28
  import { trace } from "@opentelemetry/api";
@@ -4,9 +4,9 @@ import { must } from "../../../../shared/src/must.js";
4
4
  import { TDigest } from "../../../../shared/src/tdigest.js";
5
5
  import { getServerVersion, isAdminPasswordValid } from "../../config/zero-config.js";
6
6
  import { Database } from "../../../../zqlite/src/db.js";
7
- import { loadPermissions } from "../../auth/load-permissions.js";
8
7
  import { StatementRunner } from "../../db/statements.js";
9
8
  import _usingCtx from "../../../../_virtual/_@oxc-project_runtime@0.154.0/helpers/esm/usingCtx.js";
9
+ import { loadPermissions } from "../../auth/load-permissions.js";
10
10
  import { inspectAnalyzeQueryUpSchema, unparsedInspectUpBodySchema } from "../../../../zero-protocol/src/inspect-up.js";
11
11
  import { analyzeQuery } from "../analyze.js";
12
12
  //#region ../zero-cache/src/services/view-syncer/inspect-handler.ts
@@ -10,16 +10,16 @@ import { makeSourceChangeAdd, makeSourceChangeEdit, makeSourceChangeRemove } fro
10
10
  import { buildPipeline } from "../../../../zql/src/builder/builder.js";
11
11
  import { Debug, runtimeDebugFlags } from "../../../../zql/src/builder/debug-delegate.js";
12
12
  import { TableSource } from "../../../../zqlite/src/table-source.js";
13
+ import { randInt } from "../../../../shared/src/rand.js";
14
+ import { getOrCreateCounter, getOrCreateLatencyHistogram } from "../../observability/metrics.js";
13
15
  import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/constants.js";
14
16
  import { computeZqlSpecs, mustGetTableSpec } from "../../db/lite-tables.js";
17
+ import "../../types/row-key.js";
18
+ import { getSubscriptionState } from "../replicator/schema/replication-state.js";
19
+ import { reloadPermissionsIfChanged } from "../../auth/load-permissions.js";
15
20
  import { resolveSimpleScalarSubqueries } from "../../../../zqlite/src/resolve-scalar-subqueries.js";
16
- import { randInt } from "../../../../shared/src/rand.js";
17
21
  import { createSQLiteCostModel } from "../../../../zqlite/src/sqlite-cost-model.js";
18
- import { reloadPermissionsIfChanged } from "../../auth/load-permissions.js";
19
22
  import { LogThrottle } from "../../observability/log-throttle.js";
20
- import { getOrCreateCounter, getOrCreateLatencyHistogram } from "../../observability/metrics.js";
21
- import "../../types/row-key.js";
22
- import { getSubscriptionState } from "../replicator/schema/replication-state.js";
23
23
  import { checkClientSchema } from "./client-schema.js";
24
24
  import { planWarningMessage } from "./plan-warnings.js";
25
25
  import { PushCutoff } from "./push-cutoff.js";
@@ -2,9 +2,9 @@ import { promiseVoid } from "../../../../shared/src/resolved-promises.js";
2
2
  import { must } from "../../../../shared/src/must.js";
3
3
  import { cvrSchema } from "../../types/shards.js";
4
4
  import { startAsyncSpan } from "../../../../otel/src/span.js";
5
+ import "../../types/pg.js";
5
6
  import { getOrCreateCounter, getOrCreateLatencyHistogram } from "../../observability/metrics.js";
6
7
  import { rowIDString } from "../../types/row-key.js";
7
- import "../../types/pg.js";
8
8
  import { READONLY, READ_COMMITTED } from "../../db/mode-enum.js";
9
9
  import { runTx } from "../../db/run-transaction.js";
10
10
  import { CustomKeyMap } from "../../../../shared/src/custom-key-map.js";
@@ -5,10 +5,10 @@ import { Database } from "../../../../zqlite/src/db.js";
5
5
  import { recordIndexUsage } from "../../../../zqlite/src/index-usage.js";
6
6
  import { fromSQLiteTypes } from "../../../../zqlite/src/table-source.js";
7
7
  import "../replicator/schema/constants.js";
8
+ import { StatementRunner } from "../../db/statements.js";
8
9
  import { normalizedKeyOrder } from "../../types/row-key.js";
9
10
  import { parseChangeLogEntry } from "../replicator/schema/change-log.js";
10
11
  import { getReplicationState } from "../replicator/schema/replication-state.js";
11
- import { StatementRunner } from "../../db/statements.js";
12
12
  import { id } from "../../types/sql.js";
13
13
  //#region ../zero-cache/src/services/view-syncer/snapshotter.ts
14
14
  /**
@@ -9,23 +9,23 @@ import { ProtocolError, isProtocolError } from "../../../../zero-protocol/src/er
9
9
  import { normalizeClientSchema } from "../../../../zero-protocol/src/client-schema.js";
10
10
  import { MAX_TTL_MS, clampTTL } from "../../../../zql/src/query/ttl.js";
11
11
  import { manualSpan, startAsyncSpan, startSpan } from "../../../../otel/src/span.js";
12
- import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/constants.js";
13
12
  import { transformAndHashQuery } from "../../auth/read-authorizer.js";
14
13
  import { randInt } from "../../../../shared/src/rand.js";
15
- import { LogThrottle } from "../../observability/log-throttle.js";
16
14
  import { getOrCreateCounter, getOrCreateLatencyHistogram, getOrCreateNativeHistogram, getOrCreateUpDownCounter, getOrCreateValueHistogram } from "../../observability/metrics.js";
15
+ import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/constants.js";
17
16
  import { rowIDString } from "../../types/row-key.js";
18
17
  import "../replicator/schema/replication-state.js";
19
- import { planWarningMessage } from "./plan-warnings.js";
20
- import { shouldCutOffPush } from "./push-cutoff.js";
21
- import { queryShape } from "./query-shape.js";
22
- import { ResetPipelinesSignal } from "./snapshotter.js";
23
18
  import { Subscription } from "../../types/subscription.js";
24
19
  import { CustomKeyMap } from "../../../../shared/src/custom-key-map.js";
25
20
  import { ttlClockAsNumber, ttlClockFromNumber } from "./ttl-clock.js";
26
21
  import { EMPTY_CVR_VERSION, cmpVersions, versionFromString, versionString, versionToCookie } from "./schema/types.js";
27
22
  import { ProtocolErrorWithLevel, getLogLevel, wrapWithProtocolError } from "../../types/error-with-level.js";
28
23
  import { isAuthErrorBody } from "../../auth/auth.js";
24
+ import { LogThrottle } from "../../observability/log-throttle.js";
25
+ import { planWarningMessage } from "./plan-warnings.js";
26
+ import { shouldCutOffPush } from "./push-cutoff.js";
27
+ import { queryShape } from "./query-shape.js";
28
+ import { ResetPipelinesSignal } from "./snapshotter.js";
29
29
  import { AdvancementMetrics } from "./advancement-metrics.js";
30
30
  import { ClientHandler, startPoke } from "./client-handler.js";
31
31
  import { tracer } from "./tracer.js";
@@ -1,6 +1,6 @@
1
1
  import { tmpdir } from "node:os";
2
- import { join } from "node:path";
3
2
  import { writeFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
4
  import { Session } from "node:inspector/promises";
5
5
  //#region ../zero-cache/src/types/profiler.ts
6
6
  /**
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * The current version of Zero.
4
4
  */
5
- var version = "1.12.0-canary.4";
5
+ var version = "1.12.0-canary.5";
6
6
  //#endregion
7
7
  export { version };
8
8
 
@@ -1,5 +1,5 @@
1
1
  import { type Change } from './change.ts';
2
- import type { Node } from './data.ts';
2
+ import { type Node } from './data.ts';
3
3
  import { type FetchRequest, type Input, type InputBase, type Operator, type Output, type Storage } from './operator.ts';
4
4
  import type { SourceSchema } from './schema.ts';
5
5
  import { type Stream } from './stream.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"cap.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/cap.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,MAAM,EAAkB,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAa,IAAI,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAcnB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,GAAI,YAAW,QAAQ;;IAUlC,YACE,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,EAW5B;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9B;IAED,SAAS,IAAI,YAAY,CAExB;IAEA,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAyChD;IAsDA,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAiFrC;IAsCD,OAAO,IAAI,IAAI,CAGd;IAEA,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAI9C;CACF"}
1
+ {"version":3,"file":"cap.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/cap.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,MAAM,EAAkB,MAAM,aAAa,CAAC;AAExE,OAAO,EAA8B,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AACjE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAcnB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,GAAI,YAAW,QAAQ;;IAUlC,YACE,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,EAW5B;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9B;IAED,SAAS,IAAI,YAAY,CAExB;IAEA,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CA+ChD;IAsDA,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAiFrC;IAsCD,OAAO,IAAI,IAAI,CAGd;IAEA,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAI9C;CACF"}
@@ -2,6 +2,7 @@ import { assert } from "../../../shared/src/asserts.js";
2
2
  import { emptyArray } from "../../../shared/src/sentinels.js";
3
3
  import { throwOutput } from "./operator.js";
4
4
  import { makeAddChange } from "./change.js";
5
+ import { valueToKey } from "./data.js";
5
6
  import { constraintMatchesPartitionKey, makePartitionKeyComparator } from "./take.js";
6
7
  //#region ../zql/src/ivm/cap.ts
7
8
  /**
@@ -55,6 +56,10 @@ var Cap = class {
55
56
  return;
56
57
  }
57
58
  if (capState.size === 0) return;
59
+ if (req.countOnly) {
60
+ for (let i = 0; i < capState.size; i++) yield placeholderNode;
61
+ return;
62
+ }
58
63
  for (const pk of capState.pks) {
59
64
  const pkConstraint = deserializePKToConstraint(pk, this.#primaryKey);
60
65
  const constraint = req.constraint ? {
@@ -193,7 +198,12 @@ var Cap = class {
193
198
  if (this.#output.reconcile) yield* this.#output.reconcile(this);
194
199
  }
195
200
  };
201
+ var placeholderNode = Object.freeze({
202
+ row: Object.freeze({}),
203
+ relationships: Object.freeze({})
204
+ });
196
205
  function getCapStateKey(partitionKey, rowOrConstraint) {
206
+ if (partitionKey?.length === 1 && rowOrConstraint) return "cap:" + valueToKey(rowOrConstraint[partitionKey[0]]);
197
207
  const partitionValues = [];
198
208
  if (partitionKey && rowOrConstraint) for (const key of partitionKey) partitionValues.push(rowOrConstraint[key]);
199
209
  return JSON.stringify(["cap", ...partitionValues]);