@rocicorp/zero 0.24.2025100900 → 0.24.2025101403
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/analyze-query/src/bin-analyze.d.ts.map +1 -1
- package/out/analyze-query/src/bin-analyze.js +5 -4
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/analyze-query/src/bin-transform.d.ts.map +1 -1
- package/out/analyze-query/src/bin-transform.js +3 -2
- package/out/analyze-query/src/bin-transform.js.map +1 -1
- package/out/analyze-query/src/run-ast.d.ts.map +1 -1
- package/out/analyze-query/src/run-ast.js +12 -4
- package/out/analyze-query/src/run-ast.js.map +1 -1
- package/out/ast-to-zql/src/ast-to-zql.js +1 -1
- package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
- package/out/ast-to-zql/src/bin.js +1 -1
- package/out/ast-to-zql/src/format.js +1 -1
- package/out/{chunk-2MVN6X6T.js → chunk-5OBZ7D27.js} +4546 -178
- package/out/chunk-5OBZ7D27.js.map +7 -0
- package/out/{chunk-IQYQOLDZ.js → chunk-ACPVJXLI.js} +16 -9
- package/out/chunk-ACPVJXLI.js.map +7 -0
- package/out/{chunk-X7SAVR5O.js → chunk-ECUMGQGC.js} +3 -3
- package/out/{chunk-X7SAVR5O.js.map → chunk-ECUMGQGC.js.map} +1 -1
- package/out/{chunk-SGW2EIVJ.js → chunk-EZM3XBAB.js} +1 -1
- package/out/{chunk-SGW2EIVJ.js.map → chunk-EZM3XBAB.js.map} +2 -2
- package/out/chunk-VHLCXJ6Q.js +4124 -0
- package/out/chunk-VHLCXJ6Q.js.map +7 -0
- package/out/{chunk-O7W55FT4.js → chunk-VZOYWIRW.js} +1 -1
- package/out/chunk-VZOYWIRW.js.map +7 -0
- package/out/{inspector-YIRP3TTL.js → inspector-IU2HG74I.js} +2 -2
- package/out/{lazy-inspector-A5VQLZYJ.js → lazy-inspector-NCBESZMS.js} +22 -4
- package/out/lazy-inspector-NCBESZMS.js.map +7 -0
- package/out/react-native.js +3 -73
- package/out/react-native.js.map +4 -4
- package/out/react.js +6 -6
- package/out/react.js.map +2 -2
- package/out/replicache/src/btree/read.d.ts.map +1 -1
- package/out/replicache/src/btree/write.d.ts.map +1 -1
- package/out/replicache/src/call-default-fetch.d.ts.map +1 -1
- package/out/replicache/src/dag/key-type-enum.d.ts.map +1 -1
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
- package/out/replicache/src/db/index-operation-enum.d.ts.map +1 -1
- package/out/replicache/src/db/meta-type-enum.d.ts.map +1 -1
- package/out/replicache/src/format-version-enum.d.ts.map +1 -1
- package/out/replicache/src/get-default-puller.d.ts.map +1 -1
- package/out/replicache/src/invoke-kind-enum.d.ts.map +1 -1
- package/out/replicache/src/persist/gather-not-cached-visitor.d.ts.map +1 -1
- package/out/replicache/src/process-scheduler.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/transactions.d.ts +1 -1
- package/out/replicache/src/transactions.d.ts.map +1 -1
- package/out/shared/src/bigint-json.d.ts.map +1 -1
- package/out/shared/src/bigint-json.js +1 -2
- package/out/shared/src/bigint-json.js.map +1 -1
- package/out/shared/src/btree-set.js +3 -5
- package/out/shared/src/btree-set.js.map +1 -1
- package/out/shared/src/config.d.ts.map +1 -1
- package/out/shared/src/config.js.map +1 -1
- package/out/shared/src/custom-key-map.js +1 -1
- package/out/shared/src/custom-key-set.js +1 -1
- package/out/shared/src/deep-merge.d.ts +1 -1
- package/out/shared/src/deep-merge.d.ts.map +1 -1
- package/out/shared/src/json.js +1 -1
- package/out/shared/src/logging.d.ts +1 -1
- package/out/shared/src/logging.d.ts.map +1 -1
- package/out/shared/src/logging.js +2 -2
- package/out/shared/src/logging.js.map +1 -1
- package/out/shared/src/must.js +1 -1
- package/out/shared/src/options.js +1 -1
- package/out/shared/src/size-of-value.d.ts.map +1 -0
- package/out/shared/src/valita.d.ts.map +1 -1
- package/out/shared/src/valita.js +1 -2
- package/out/shared/src/valita.js.map +1 -1
- package/out/solid.js +8 -8
- package/out/solid.js.map +2 -2
- package/out/sqlite.js +2 -2
- package/out/z2s/src/compiler.d.ts +1 -1
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +2 -2
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/zero/package.json +8 -7
- package/out/zero/src/build-schema.js +1 -1
- package/out/zero/src/change-protocol/v0.js +1 -1
- package/out/zero/src/pg.js +1 -1
- package/out/zero/src/server.js +1 -1
- package/out/zero/src/zero-cache-dev.d.ts.map +1 -1
- package/out/zero/src/zero-cache-dev.js +1 -3
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero/src/zqlite.js +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +1 -0
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/pg-copy.d.ts.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/postgres-replica-identity-enum.d.ts.map +1 -1
- package/out/zero-cache/src/db/postgres-replica-identity-enum.js +0 -1
- package/out/zero-cache/src/db/postgres-replica-identity-enum.js.map +1 -1
- package/out/zero-cache/src/db/postgres-type-class-enum.d.ts.map +1 -1
- package/out/zero-cache/src/db/postgres-type-class-enum.js +0 -1
- package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -1
- package/out/zero-cache/src/db/statements.js +2 -2
- package/out/zero-cache/src/scripts/deploy-permissions.d.ts.map +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +10 -0
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js +33 -0
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/runner/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/main.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 +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +8 -3
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +3 -3
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +0 -1
- 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.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +0 -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 +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.js +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +6 -5
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.js +0 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.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/storer.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +26 -22
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +2 -2
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +52 -36
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replication-status.js +0 -2
- package/out/zero-cache/src/services/replicator/replication-status.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts +21 -0
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -0
- package/out/zero-cache/src/services/run-ast.js +93 -0
- package/out/zero-cache/src/services/run-ast.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +10 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +95 -0
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +6 -5
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +62 -118
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +0 -2
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-client/src/client/connection-state-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.d.ts +1 -1
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts +4 -0
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts +4 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/metric-name-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/ping-result-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/update-needed-reason-type-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-log-context.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +4 -4
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +1 -1
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-events/src/index.d.ts +4 -6
- package/out/zero-events/src/index.d.ts.map +1 -1
- package/out/zero-events/src/index.js +1 -27
- package/out/zero-events/src/index.js.map +1 -1
- package/out/zero-events/src/status.d.ts +43 -111
- package/out/zero-events/src/status.d.ts.map +1 -1
- package/out/zero-events/src/status.js +2 -73
- package/out/zero-events/src/status.js.map +1 -1
- package/out/zero-events/src/util.d.ts +26 -0
- package/out/zero-events/src/util.d.ts.map +1 -0
- package/out/zero-events/src/util.js +2 -0
- package/out/zero-events/src/util.js.map +1 -0
- package/out/zero-pg/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/mod.js +1 -1
- package/out/zero-pg/src/mod.js.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +7 -0
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.js +7 -0
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +2 -1
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +1 -0
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +9 -0
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/error-kind-enum.d.ts.map +1 -1
- package/out/zero-protocol/src/error-kind-enum.js +0 -1
- package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +29 -0
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js +5 -1
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/inspect-up.d.ts +18 -6
- package/out/zero-protocol/src/inspect-up.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-up.js +6 -1
- package/out/zero-protocol/src/inspect-up.js.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.d.ts.map +1 -1
- package/out/zero-protocol/src/mutation-type-enum.js +0 -1
- package/out/zero-protocol/src/mutation-type-enum.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +4 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +1 -1
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/up.d.ts +5 -2
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-react/src/components/mark-icon.d.ts.map +1 -1
- package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/zero-provider.d.ts +2 -2
- package/out/zero-react/src/zero-provider.d.ts.map +1 -1
- package/out/zero-react-native/src/mod.d.ts +0 -1
- package/out/zero-react-native/src/mod.d.ts.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.d.ts +3 -25
- package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.js +1 -1
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +1 -1
- package/out/zero-schema/src/name-mapper.d.ts +2 -19
- package/out/zero-schema/src/name-mapper.d.ts.map +1 -1
- package/out/zero-schema/src/name-mapper.js +2 -44
- package/out/zero-schema/src/name-mapper.js.map +1 -1
- package/out/zero-schema/src/permissions.d.ts +1 -0
- package/out/zero-schema/src/permissions.d.ts.map +1 -1
- package/out/zero-schema/src/schema-config.d.ts +1 -1
- package/out/zero-schema/src/schema-config.js +2 -2
- package/out/zero-schema/src/table-schema.d.ts +3 -55
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero-schema/src/table-schema.js +0 -6
- package/out/zero-schema/src/table-schema.js.map +1 -1
- package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js +3 -1
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/custom.d.ts +1 -1
- package/out/zero-server/src/custom.d.ts.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/process-mutations.d.ts +3 -3
- package/out/zero-server/src/process-mutations.d.ts.map +1 -1
- package/out/zero-server/src/process-mutations.js +4 -4
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/query.d.ts +2 -2
- package/out/zero-server/src/query.d.ts.map +1 -1
- package/out/zero-server/src/query.js +2 -1
- package/out/zero-server/src/query.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts +1 -1
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero-server/src/zql-database.js +10 -0
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/use-query.d.ts +3 -1
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero.d.ts +4 -1
- package/out/zero-solid/src/use-zero.d.ts.map +1 -1
- package/out/zero-types/src/format.d.ts +11 -0
- package/out/zero-types/src/format.d.ts.map +1 -0
- package/out/zero-types/src/format.js +5 -0
- package/out/zero-types/src/format.js.map +1 -0
- package/out/zero-types/src/name-mapper.d.ts +19 -0
- package/out/zero-types/src/name-mapper.d.ts.map +1 -0
- package/out/zero-types/src/name-mapper.js +45 -0
- package/out/zero-types/src/name-mapper.js.map +1 -0
- package/out/zero-types/src/schema-value.d.ts +36 -0
- package/out/zero-types/src/schema-value.d.ts.map +1 -0
- package/out/zero-types/src/schema-value.js +2 -0
- package/out/zero-types/src/schema-value.js.map +1 -0
- package/out/zero-types/src/schema.d.ts +54 -0
- package/out/zero-types/src/schema.d.ts.map +1 -0
- package/out/zero-types/src/schema.js +2 -0
- package/out/zero-types/src/schema.js.map +1 -0
- package/out/zero.js +5 -6
- package/out/zql/src/builder/builder.js +2 -2
- package/out/zql/src/ivm/data.js +1 -1
- package/out/zql/src/ivm/default-format.d.ts +2 -0
- package/out/zql/src/ivm/default-format.d.ts.map +1 -0
- package/out/zql/src/ivm/default-format.js +2 -0
- package/out/zql/src/ivm/default-format.js.map +1 -0
- package/out/zql/src/ivm/flipped-join.d.ts.map +1 -1
- package/out/zql/src/ivm/flipped-join.js +16 -1
- package/out/zql/src/ivm/flipped-join.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +2 -2
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +2 -2
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/schema.d.ts +1 -1
- package/out/zql/src/ivm/schema.d.ts.map +1 -1
- package/out/zql/src/ivm/view.d.ts +3 -5
- package/out/zql/src/ivm/view.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.d.ts +2 -2
- package/out/zql/src/mutate/custom.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.js.map +1 -1
- package/out/zql/src/query/expression.d.ts +1 -1
- 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/named.d.ts +2 -3
- package/out/zql/src/query/named.d.ts.map +1 -1
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +1 -1
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +4 -10
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +14 -22
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +7 -5
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/query.js.map +1 -1
- package/out/zql/src/query/static-query.d.ts +1 -1
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.js +2 -1
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zqlite/src/db.js +7 -17
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/explain-queries.d.ts +4 -0
- package/out/zqlite/src/explain-queries.d.ts.map +1 -0
- package/out/zqlite/src/explain-queries.js +18 -0
- package/out/zqlite/src/explain-queries.js.map +1 -0
- package/out/zqlite/src/mod.d.ts +2 -1
- package/out/zqlite/src/mod.d.ts.map +1 -1
- package/out/zqlite/src/mod.js +2 -1
- package/out/zqlite/src/mod.js.map +1 -1
- package/package.json +8 -7
- package/out/chunk-2MVN6X6T.js.map +0 -7
- package/out/chunk-IQYQOLDZ.js.map +0 -7
- package/out/chunk-O7W55FT4.js.map +0 -7
- package/out/chunk-YXYKEMHQ.js +0 -8491
- package/out/chunk-YXYKEMHQ.js.map +0 -7
- package/out/lazy-inspector-A5VQLZYJ.js.map +0 -7
- package/out/replicache/src/kv/op-sqlite/store.d.ts +0 -14
- package/out/replicache/src/kv/op-sqlite/store.d.ts.map +0 -1
- package/out/replicache/src/kv/op-sqlite/types.d.ts +0 -13
- package/out/replicache/src/kv/op-sqlite/types.d.ts.map +0 -1
- package/out/replicache/src/size-of-value.d.ts.map +0 -1
- /package/out/{inspector-YIRP3TTL.js.map → inspector-IU2HG74I.js.map} +0 -0
- /package/out/{replicache → shared}/src/size-of-value.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,SAAS,EAAiB,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,kBAAkB,GAGnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAqB,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,oBAAoB,IAAI,MAAM,EAC9B,MAAM,EACN,WAAW,GACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,IAAI,WAAW,GACxC,MAAM,2CAA2C,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,OAAO,WAAW;IACb,GAAG,CAAa;IAChB,OAAO,CAAS;IAChB,MAAM,CAAS;IACxB,KAAK,CAAuB;IAC5B,KAAK,CAAuB;IAE5B,YAAY,EAAc,EAAE,MAAc,EAAE,EAAC,KAAK,EAAQ;QACxD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,qBAAqB,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,+EAA+E;IAC/E,OAAO;QACL,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,sCAAsC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,OAAO,CAAC,MAAmC;QACzC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,sCAAsC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;YACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,6BAA6B,CAAC,CAAC;IAClD,CAAC;CACF;AAwCD;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,sBAAsB,CAAC;IAEvC,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,EAAmB,EAAE,KAAa;IAC3D,OAAO,EAAE,CAAC,GAAG,CACX,yDAAyD,KAAK,kBAAkB,CACjF,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ;IACZ,MAAM,CAAC,MAAM,CAAC,EAAc,EAAE,MAAc,EAAE,KAAa;QACzD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,yDAAyD;QAC3F,MAAM,CAAC,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAExD,CAAC;QACF,sEAAsE;QACtE,2EAA2E;QAC3E,oCAAoC;QACpC,MAAM,CACJ,IAAI,KAAK,MAAM,EACf,6CAA6C,IAAI,GAAG,CACrD,CAAC;QAEF,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEQ,EAAE,CAAkB;IACpB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,cAAc,CAAiB;IAExC,YAAY,EAAmB,EAAE,KAAa;QAC5C,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,kEAAkE;QAClE,mEAAmE;QACnE,uEAAuE;QACvE,MAAM,EAAC,YAAY,EAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAE/C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,WAAmB;QACjC,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CACzB,wEAAwE,EACxE,WAAW,CACZ,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CACvC,wDAAwD,CACzD,CAAC;QACF,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAA4B,EAAE,MAAiB;QACpD,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAgB,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CACvC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CACjD,KAAK,CAAC,IAAI,CACX,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACjC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,8DAA8D;YAC9D,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAA4B;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CACvC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAClE,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;YAChC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,IAAI;IACC,iBAAiB,CAAS;IAC1B,MAAM,CAA8B;IACpC,IAAI,CAAW;IACf,IAAI,CAAW;IACf,OAAO,CAAS;IAEzB,YACE,KAAa,EACb,MAAmC,EACnC,IAAc,EACd,IAAc;QAEd,IAAI,CAAC,iBAAiB,GAAG,GAAG,KAAK,cAAc,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,MAAM,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC;gBACH,gDAAgD;gBAChD,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,CAAC;oBACH,SAAS,CAAC;wBACR,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;wBACrC,IAAI,IAAI,EAAE,CAAC;4BACT,OAAO,EAAE,CAAC;4BACV,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;wBAC7B,CAAC;wBAED,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACjE,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;4BACpB,oFAAoF;4BACpF,MAAM,IAAI,oBAAoB,CAC5B,oBAAoB,KAAK,cAAc,CACxC,CAAC;wBACJ,CAAC;wBACD,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;4BACvB,oEAAoE;4BACpE,MAAM,IAAI,oBAAoB,CAC5B,SAAS,KAAK,qBAAqB,CACpC,CAAC;wBACJ,CAAC;wBACD,MAAM,EAAC,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;wBAE1D,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;wBACxB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;wBAC5D,IAAI,SAAS,GACX,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC5B,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAClD,CAAC;wBACJ,CAAC;wBACD,wFAAwF;wBACxF,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;wBAElE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;4BAC7C,iFAAiF;4BACjF,mDAAmD;4BACnD,SAAS;wBACX,CAAC;wBAED,IACE,KAAK,KAAK,IAAI,CAAC,iBAAiB;4BAChC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,EAC/C,CAAC;4BACD,MAAM,IAAI,oBAAoB,CAC5B,4BAA4B,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE,CAClE,CAAC;wBACJ,CAAC;wBAED,yDAAyD;wBACzD,iEAAiE;wBACjE,IAAI,SAAS,EAAE,CAAC;4BACd,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACzD,CAAC;wBACD,IAAI,SAAS,EAAE,CAAC;4BACd,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACzD,CAAC;wBACD,OAAO;4BACL,KAAK,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAkB;yBAC9D,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,+EAA+E;oBAC/E,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE;gBACzB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;YAC7B,CAAC;SACF,CAAC;IACJ,CAAC;IAED,oBAAoB,CAClB,YAAoB,EACpB,EAAU,EACV,SAAmB,EACnB,SAAmB;QAEnB,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,IACE,SAAS,KAAK,IAAI;YAClB,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EACnD,CAAC;YACD,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAC3E,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,KAAK,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,YAAY,EAAE,CAAC;YAC7D,MAAM,IAAI,gBAAgB,CACxB,gDAAgD,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF"}
|
|
@@ -6,6 +6,7 @@ import type { DeleteClientsMessage } from '../../../../zero-protocol/src/delete-
|
|
|
6
6
|
import type { Downstream } from '../../../../zero-protocol/src/down.ts';
|
|
7
7
|
import type { InspectUpMessage } from '../../../../zero-protocol/src/inspect-up.ts';
|
|
8
8
|
import type { NormalizedZeroConfig } from '../../config/normalize.ts';
|
|
9
|
+
import { CustomQueryTransformer } from '../../custom-queries/transform-query.ts';
|
|
9
10
|
import { InspectorDelegate } from '../../server/inspector-delegate.ts';
|
|
10
11
|
import type { PostgresDB } from '../../types/pg.ts';
|
|
11
12
|
import type { ShardID } from '../../types/shards.ts';
|
|
@@ -52,7 +53,7 @@ export declare class ViewSyncerService implements ViewSyncer, ActivityBasedServi
|
|
|
52
53
|
#private;
|
|
53
54
|
readonly id: string;
|
|
54
55
|
userQueryURL?: string | undefined;
|
|
55
|
-
constructor(config: NormalizedZeroConfig, lc: LogContext, shard: ShardID, taskID: string, clientGroupID: string, cvrDb: PostgresDB, upstreamDb: PostgresDB | undefined, pipelineDriver: PipelineDriver, versionChanges: Subscription<ReplicaState>, drainCoordinator: DrainCoordinator, slowHydrateThreshold: number, inspectorDelegate: InspectorDelegate, keepaliveMs?: number, setTimeoutFn?: SetTimeout);
|
|
56
|
+
constructor(config: NormalizedZeroConfig, lc: LogContext, shard: ShardID, taskID: string, clientGroupID: string, cvrDb: PostgresDB, upstreamDb: PostgresDB | undefined, pipelineDriver: PipelineDriver, versionChanges: Subscription<ReplicaState>, drainCoordinator: DrainCoordinator, slowHydrateThreshold: number, inspectorDelegate: InspectorDelegate, customQueryTransformer: CustomQueryTransformer | undefined, keepaliveMs?: number, setTimeoutFn?: SetTimeout);
|
|
56
57
|
run(): Promise<void>;
|
|
57
58
|
/**
|
|
58
59
|
* Guarantees that the ViewSyncer will remain running for at least
|
|
@@ -71,12 +72,12 @@ export declare class ViewSyncerService implements ViewSyncer, ActivityBasedServi
|
|
|
71
72
|
stop(): Promise<void>;
|
|
72
73
|
}
|
|
73
74
|
export declare function pickToken(lc: LogContext, previousToken: TokenData | undefined, newToken: TokenData | undefined): TokenData | undefined;
|
|
74
|
-
export declare class
|
|
75
|
+
export declare class TimeSliceTimer {
|
|
75
76
|
#private;
|
|
76
|
-
start(): this
|
|
77
|
-
|
|
77
|
+
start(): Promise<this>;
|
|
78
|
+
startWithoutYielding(): this;
|
|
79
|
+
yieldProcess(): Promise<void>;
|
|
78
80
|
elapsedLap(): number;
|
|
79
|
-
stopLap(): void;
|
|
80
81
|
/** @returns the total elapsed time */
|
|
81
82
|
stop(): number;
|
|
82
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAerC,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,yDAAyD,CAAC;AACzG,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,0CAA0C,CAAC;AAElD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iDAAiD,CAAC;AAC1F,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,6CAA6C,CAAC;AAMrD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,18 +12,17 @@ import { randInt } from "../../../../shared/src/rand.js";
|
|
|
12
12
|
import { ErrorKind } from "../../../../zero-protocol/src/error-kind.js";
|
|
13
13
|
import { clampTTL, MAX_TTL_MS } from "../../../../zql/src/query/ttl.js";
|
|
14
14
|
import { transformAndHashQuery, } from "../../auth/read-authorizer.js";
|
|
15
|
-
import { getServerVersion, isAdminPasswordValid, } from "../../config/zero-config.js";
|
|
16
15
|
import { CustomQueryTransformer } from "../../custom-queries/transform-query.js";
|
|
17
16
|
import { getOrCreateCounter, getOrCreateHistogram, getOrCreateUpDownCounter, } from "../../observability/metrics.js";
|
|
18
17
|
import { InspectorDelegate } from "../../server/inspector-delegate.js";
|
|
19
18
|
import { ErrorForClient, getLogLevel } from "../../types/error-for-client.js";
|
|
20
19
|
import { rowIDString } from "../../types/row-key.js";
|
|
21
20
|
import { Subscription } from "../../types/subscription.js";
|
|
22
|
-
import { analyzeQuery } from "../analyze.js";
|
|
23
21
|
import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/replication-state.js";
|
|
24
22
|
import { ClientHandler, startPoke, } from "./client-handler.js";
|
|
25
23
|
import { CVRStore } from "./cvr-store.js";
|
|
26
24
|
import { CVRConfigDrivenUpdater, CVRQueryDrivenUpdater, CVRUpdater, nextEvictionTime, } from "./cvr.js";
|
|
25
|
+
import { handleInspect } from "./inspect-handler.js";
|
|
27
26
|
import { PipelineDriver } from "./pipeline-driver.js";
|
|
28
27
|
import { cmpVersions, EMPTY_CVR_VERSION, versionFromString, versionString, versionToCookie, } from "./schema/types.js";
|
|
29
28
|
import { ResetPipelinesSignal } from "./snapshotter.js";
|
|
@@ -100,6 +99,8 @@ export class ViewSyncerService {
|
|
|
100
99
|
// DEPRECATED: remove `authData` in favor of forwarding
|
|
101
100
|
// auth and cookie headers directly
|
|
102
101
|
#authData;
|
|
102
|
+
// Not sure why lint can't see that this is used?
|
|
103
|
+
// oxlint-disable-next-line no-unused-private-class-members
|
|
103
104
|
#httpCookie;
|
|
104
105
|
#expiredQueriesTimer = 0;
|
|
105
106
|
#setTimeout;
|
|
@@ -116,7 +117,7 @@ export class ViewSyncerService {
|
|
|
116
117
|
});
|
|
117
118
|
#inspectorDelegate;
|
|
118
119
|
#config;
|
|
119
|
-
constructor(config, lc, shard, taskID, clientGroupID, cvrDb, upstreamDb, pipelineDriver, versionChanges, drainCoordinator, slowHydrateThreshold, inspectorDelegate, keepaliveMs = DEFAULT_KEEPALIVE_MS, setTimeoutFn = setTimeout.bind(globalThis)) {
|
|
120
|
+
constructor(config, lc, shard, taskID, clientGroupID, cvrDb, upstreamDb, pipelineDriver, versionChanges, drainCoordinator, slowHydrateThreshold, inspectorDelegate, customQueryTransformer, keepaliveMs = DEFAULT_KEEPALIVE_MS, setTimeoutFn = setTimeout.bind(globalThis)) {
|
|
120
121
|
const { getQueries: pullConfig } = config;
|
|
121
122
|
this.#config = config;
|
|
122
123
|
this.id = clientGroupID;
|
|
@@ -129,20 +130,22 @@ export class ViewSyncerService {
|
|
|
129
130
|
this.#keepaliveMs = keepaliveMs;
|
|
130
131
|
this.#slowHydrateThreshold = slowHydrateThreshold;
|
|
131
132
|
this.#inspectorDelegate = inspectorDelegate;
|
|
133
|
+
this.#customQueryTransformer = customQueryTransformer;
|
|
132
134
|
this.#cvrStore = new CVRStore(lc, cvrDb, upstreamDb, shard, taskID, clientGroupID,
|
|
133
135
|
// On failure, cancel the #stateChanges subscription. The run()
|
|
134
136
|
// loop will then await #cvrStore.flushed() which rejects if necessary.
|
|
135
137
|
() => this.#stateChanges.cancel());
|
|
136
138
|
this.#setTimeout = setTimeoutFn;
|
|
137
|
-
if (pullConfig.url) {
|
|
138
|
-
this.#customQueryTransformer = new CustomQueryTransformer(this.#lc, {
|
|
139
|
-
url: pullConfig.url,
|
|
140
|
-
forwardCookies: pullConfig.forwardCookies,
|
|
141
|
-
}, shard);
|
|
142
|
-
}
|
|
143
139
|
// Wait for the first connection to init.
|
|
144
140
|
this.keepalive();
|
|
145
141
|
}
|
|
142
|
+
#getHeaderOptions(forwardCookie) {
|
|
143
|
+
return {
|
|
144
|
+
apiKey: this.#queryConfig.apiKey,
|
|
145
|
+
token: this.#authData?.raw,
|
|
146
|
+
cookie: forwardCookie ? this.#httpCookie : undefined,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
146
149
|
#runInLockWithCVR(fn) {
|
|
147
150
|
const rid = randomID();
|
|
148
151
|
this.#lc.debug?.('about to acquire lock for cvr ', rid);
|
|
@@ -281,7 +284,7 @@ export class ViewSyncerService {
|
|
|
281
284
|
this.#keepAliveUntil = Date.now() + this.#keepaliveMs;
|
|
282
285
|
return true;
|
|
283
286
|
}
|
|
284
|
-
//
|
|
287
|
+
// oxlint-disable-next-line no-unused-private-class-members -- False positive, used in #scheduleShutdown
|
|
285
288
|
#shutdownTimer = null;
|
|
286
289
|
#scheduleShutdown(delayMs = 0) {
|
|
287
290
|
this.#shutdownTimer ??= this.#setTimeout(() => {
|
|
@@ -659,13 +662,7 @@ export class ViewSyncerService {
|
|
|
659
662
|
const [_, byOriginalHash] = this.#pipelines.addedQueries();
|
|
660
663
|
if (this.#customQueryTransformer && customQueries.size > 0) {
|
|
661
664
|
const filteredCustomQueries = this.#filterCustomQueries(customQueries.values(), byOriginalHash, undefined);
|
|
662
|
-
const transformedCustomQueries = await this.#customQueryTransformer.transform(
|
|
663
|
-
apiKey: this.#queryConfig.apiKey,
|
|
664
|
-
token: this.#authData?.raw,
|
|
665
|
-
cookie: this.#queryConfig.forwardCookies
|
|
666
|
-
? this.#httpCookie
|
|
667
|
-
: undefined,
|
|
668
|
-
}, filteredCustomQueries, this.userQueryURL);
|
|
665
|
+
const transformedCustomQueries = await this.#customQueryTransformer.transform(this.#getHeaderOptions(this.#queryConfig.forwardCookies), filteredCustomQueries, this.userQueryURL);
|
|
669
666
|
this.#processTransformedCustomQueries(lc, transformedCustomQueries, (q) => transformedQueries.push(q), customQueries);
|
|
670
667
|
}
|
|
671
668
|
for (const q of otherQueries) {
|
|
@@ -678,18 +675,16 @@ export class ViewSyncerService {
|
|
|
678
675
|
}
|
|
679
676
|
}
|
|
680
677
|
for (const { id: queryID, transformationHash, transformedAst, } of transformedQueries) {
|
|
681
|
-
const timer = new
|
|
678
|
+
const timer = new TimeSliceTimer();
|
|
682
679
|
let count = 0;
|
|
683
680
|
await startAsyncSpan(tracer, 'vs.#hydrateUnchangedQueries.addQuery', async (span) => {
|
|
684
681
|
span.setAttribute('queryHash', queryID);
|
|
685
682
|
span.setAttribute('transformationHash', transformationHash);
|
|
686
683
|
span.setAttribute('table', transformedAst.table);
|
|
687
|
-
for (const _ of this.#pipelines.addQuery(transformationHash, queryID, transformedAst, timer.start())) {
|
|
684
|
+
for (const _ of this.#pipelines.addQuery(transformationHash, queryID, transformedAst, await timer.start())) {
|
|
688
685
|
if (++count % TIME_SLICE_CHECK_SIZE === 0) {
|
|
689
686
|
if (timer.elapsedLap() > TIME_SLICE_MS) {
|
|
690
|
-
timer.
|
|
691
|
-
await yieldProcess(this.#setTimeout);
|
|
692
|
-
timer.startLap();
|
|
687
|
+
await timer.yieldProcess();
|
|
693
688
|
}
|
|
694
689
|
}
|
|
695
690
|
}
|
|
@@ -805,11 +800,7 @@ export class ViewSyncerService {
|
|
|
805
800
|
});
|
|
806
801
|
}
|
|
807
802
|
});
|
|
808
|
-
const transformedCustomQueries = await this.#customQueryTransformer.transform(
|
|
809
|
-
apiKey: this.#queryConfig.apiKey,
|
|
810
|
-
token: this.#authData?.raw,
|
|
811
|
-
cookie: this.#httpCookie,
|
|
812
|
-
}, filteredCustomQueries, this.userQueryURL);
|
|
803
|
+
const transformedCustomQueries = await this.#customQueryTransformer.transform(this.#getHeaderOptions(true), filteredCustomQueries, this.userQueryURL);
|
|
813
804
|
erroredQueries = this.#processTransformedCustomQueries(lc, transformedCustomQueries, (q) => transformedQueries.push({
|
|
814
805
|
id: q.id,
|
|
815
806
|
origQuery: must(customQueries.get(q.id)),
|
|
@@ -912,19 +903,22 @@ export class ViewSyncerService {
|
|
|
912
903
|
}
|
|
913
904
|
}
|
|
914
905
|
let totalProcessTime = 0;
|
|
915
|
-
const timer = new
|
|
906
|
+
const timer = new TimeSliceTimer();
|
|
916
907
|
const pipelines = this.#pipelines;
|
|
917
908
|
const hydrations = this.#hydrations;
|
|
918
909
|
const hydrationTime = this.#hydrationTime;
|
|
919
|
-
//
|
|
910
|
+
// oxlint-disable-next-line @typescript-eslint/no-this-alias
|
|
920
911
|
const self = this;
|
|
912
|
+
// yield at the very beginning so that the first time slice
|
|
913
|
+
// is properly processed by the time-slice queue.
|
|
914
|
+
await yieldProcess();
|
|
921
915
|
function* generateRowChanges(slowHydrateThreshold) {
|
|
922
916
|
for (const q of addQueries) {
|
|
923
917
|
lc = lc
|
|
924
918
|
.withContext('hash', q.id)
|
|
925
919
|
.withContext('transformationHash', q.transformationHash);
|
|
926
920
|
lc.debug?.(`adding pipeline for query`, q.ast);
|
|
927
|
-
yield* pipelines.addQuery(q.transformationHash, q.id, q.ast, timer.
|
|
921
|
+
yield* pipelines.addQuery(q.transformationHash, q.id, q.ast, timer.startWithoutYielding());
|
|
928
922
|
const elapsed = timer.stop();
|
|
929
923
|
totalProcessTime += elapsed;
|
|
930
924
|
self.#addQueryMaterializationServerMetric(q.transformationHash, elapsed);
|
|
@@ -1078,9 +1072,7 @@ export class ViewSyncerService {
|
|
|
1078
1072
|
}
|
|
1079
1073
|
if (rows.size % TIME_SLICE_CHECK_SIZE === 0) {
|
|
1080
1074
|
if (timer.elapsedLap() > TIME_SLICE_MS) {
|
|
1081
|
-
timer.
|
|
1082
|
-
await yieldProcess(this.#setTimeout);
|
|
1083
|
-
timer.startLap();
|
|
1075
|
+
await timer.yieldProcess();
|
|
1084
1076
|
}
|
|
1085
1077
|
}
|
|
1086
1078
|
}
|
|
@@ -1103,7 +1095,7 @@ export class ViewSyncerService {
|
|
|
1103
1095
|
return startAsyncSpan(tracer, 'vs.#advancePipelines', async () => {
|
|
1104
1096
|
assert(this.#pipelines.initialized(), 'pipelines must be initialized (advancePipelines');
|
|
1105
1097
|
const start = performance.now();
|
|
1106
|
-
const timer = new
|
|
1098
|
+
const timer = new TimeSliceTimer();
|
|
1107
1099
|
const { version, numChanges, changes } = this.#pipelines.advance(timer);
|
|
1108
1100
|
lc = lc.withContext('newVersion', version);
|
|
1109
1101
|
// Probably need a new updater type. CVRAdvancementUpdater?
|
|
@@ -1115,7 +1107,7 @@ export class ViewSyncerService {
|
|
|
1115
1107
|
lc.debug?.(`applying ${numChanges} to advance to ${version}`);
|
|
1116
1108
|
const hashToIDs = createHashToIDs(cvr);
|
|
1117
1109
|
try {
|
|
1118
|
-
await this.#processChanges(lc, timer.start(), changes, updater, pokers, hashToIDs);
|
|
1110
|
+
await this.#processChanges(lc, await timer.start(), changes, updater, pokers, hashToIDs);
|
|
1119
1111
|
}
|
|
1120
1112
|
catch (e) {
|
|
1121
1113
|
if (e instanceof ResetPipelinesSignal) {
|
|
@@ -1138,83 +1130,10 @@ export class ViewSyncerService {
|
|
|
1138
1130
|
inspect(context, msg) {
|
|
1139
1131
|
return this.#runInLockForClient(context, msg, this.#handleInspect);
|
|
1140
1132
|
}
|
|
1141
|
-
//
|
|
1133
|
+
// oxlint-disable-next-line require-await
|
|
1142
1134
|
#handleInspect = async (lc, clientID, body, cvr) => {
|
|
1143
1135
|
const client = must(this.#clients.get(clientID));
|
|
1144
|
-
|
|
1145
|
-
// once per "worker".
|
|
1146
|
-
if (body.op !== 'authenticate' &&
|
|
1147
|
-
!this.#inspectorDelegate.isAuthenticated(this.id)) {
|
|
1148
|
-
lc.info?.('Client not authenticated to access the inspector protocol. Sending authentication challenge');
|
|
1149
|
-
client.sendInspectResponse(lc, {
|
|
1150
|
-
op: 'authenticated',
|
|
1151
|
-
id: body.id,
|
|
1152
|
-
value: false,
|
|
1153
|
-
});
|
|
1154
|
-
return;
|
|
1155
|
-
}
|
|
1156
|
-
switch (body.op) {
|
|
1157
|
-
case 'queries': {
|
|
1158
|
-
const queryRows = await this.#cvrStore.inspectQueries(lc, cvr.ttlClock, body.clientID);
|
|
1159
|
-
// Enhance query rows with server-side materialization metrics
|
|
1160
|
-
const enhancedRows = queryRows.map(row => ({
|
|
1161
|
-
...row,
|
|
1162
|
-
ast: row.ast ??
|
|
1163
|
-
this.#inspectorDelegate.getASTForQuery(row.queryID) ??
|
|
1164
|
-
null,
|
|
1165
|
-
metrics: this.#inspectorDelegate.getMetricsJSONForQuery(row.queryID),
|
|
1166
|
-
}));
|
|
1167
|
-
client.sendInspectResponse(lc, {
|
|
1168
|
-
op: 'queries',
|
|
1169
|
-
id: body.id,
|
|
1170
|
-
value: enhancedRows,
|
|
1171
|
-
});
|
|
1172
|
-
break;
|
|
1173
|
-
}
|
|
1174
|
-
case 'metrics': {
|
|
1175
|
-
client.sendInspectResponse(lc, {
|
|
1176
|
-
op: 'metrics',
|
|
1177
|
-
id: body.id,
|
|
1178
|
-
value: this.#inspectorDelegate.getMetricsJSON(),
|
|
1179
|
-
});
|
|
1180
|
-
break;
|
|
1181
|
-
}
|
|
1182
|
-
case 'version':
|
|
1183
|
-
client.sendInspectResponse(lc, {
|
|
1184
|
-
op: 'version',
|
|
1185
|
-
id: body.id,
|
|
1186
|
-
value: getServerVersion(this.#config),
|
|
1187
|
-
});
|
|
1188
|
-
break;
|
|
1189
|
-
case 'authenticate': {
|
|
1190
|
-
const password = body.value;
|
|
1191
|
-
const ok = isAdminPasswordValid(lc, this.#config, password);
|
|
1192
|
-
if (ok) {
|
|
1193
|
-
this.#inspectorDelegate.setAuthenticated(this.id);
|
|
1194
|
-
}
|
|
1195
|
-
else {
|
|
1196
|
-
this.#inspectorDelegate.clearAuthenticated(this.id);
|
|
1197
|
-
}
|
|
1198
|
-
client.sendInspectResponse(lc, {
|
|
1199
|
-
op: 'authenticated',
|
|
1200
|
-
id: body.id,
|
|
1201
|
-
value: ok,
|
|
1202
|
-
});
|
|
1203
|
-
break;
|
|
1204
|
-
}
|
|
1205
|
-
case 'analyze-query': {
|
|
1206
|
-
const ast = body.value;
|
|
1207
|
-
const result = await analyzeQuery(lc, this.#config, ast, body.options);
|
|
1208
|
-
client.sendInspectResponse(lc, {
|
|
1209
|
-
op: 'analyze-query',
|
|
1210
|
-
id: body.id,
|
|
1211
|
-
value: result,
|
|
1212
|
-
});
|
|
1213
|
-
break;
|
|
1214
|
-
}
|
|
1215
|
-
default:
|
|
1216
|
-
unreachable(body);
|
|
1217
|
-
}
|
|
1136
|
+
return handleInspect(lc, body, cvr, client, this.#inspectorDelegate, this.id, this.#cvrStore, this.#config, this.#getHeaderOptions(this.#queryConfig.forwardCookies ?? false), this.userQueryURL);
|
|
1218
1137
|
};
|
|
1219
1138
|
stop() {
|
|
1220
1139
|
this.#lc.info?.('stopping view syncer');
|
|
@@ -1256,8 +1175,22 @@ function createHashToIDs(cvr) {
|
|
|
1256
1175
|
}
|
|
1257
1176
|
return hashToIDs;
|
|
1258
1177
|
}
|
|
1259
|
-
|
|
1260
|
-
|
|
1178
|
+
// A global Lock acts as a queue to run a single IVM time slice per iteration
|
|
1179
|
+
// of the node event loop, thus bounding I/O delay to the duration of a single
|
|
1180
|
+
// time slice.
|
|
1181
|
+
//
|
|
1182
|
+
// Refresher:
|
|
1183
|
+
// https://nodejs.org/en/learn/asynchronous-work/event-loop-timers-and-nexttick#phases-overview
|
|
1184
|
+
//
|
|
1185
|
+
// Note that recursive use of setImmediate() (i.e. calling setImmediate() from
|
|
1186
|
+
// within a setImmediate() callback), results in enqueuing the latter
|
|
1187
|
+
// callback in the *next* event loop iteration, as documented in:
|
|
1188
|
+
// https://nodejs.org/api/timers.html#setimmediatecallback-args
|
|
1189
|
+
//
|
|
1190
|
+
// This effectively achieves the desired one-per-event-loop-iteration behavior.
|
|
1191
|
+
const timeSliceQueue = new Lock();
|
|
1192
|
+
function yieldProcess() {
|
|
1193
|
+
return timeSliceQueue.withLock(() => new Promise(setImmediate));
|
|
1261
1194
|
}
|
|
1262
1195
|
function contentsAndVersion(row) {
|
|
1263
1196
|
const { [ZERO_VERSION_COLUMN_NAME]: version, ...contents } = row;
|
|
@@ -1352,15 +1285,26 @@ function hasExpiredQueries(cvr) {
|
|
|
1352
1285
|
}
|
|
1353
1286
|
return false;
|
|
1354
1287
|
}
|
|
1355
|
-
export class
|
|
1288
|
+
export class TimeSliceTimer {
|
|
1356
1289
|
#total = 0;
|
|
1357
1290
|
#start = 0;
|
|
1358
|
-
start() {
|
|
1291
|
+
async start() {
|
|
1292
|
+
// yield at the very beginning so that the first time slice
|
|
1293
|
+
// is properly processed by the time-slice queue.
|
|
1294
|
+
await yieldProcess();
|
|
1295
|
+
return this.startWithoutYielding();
|
|
1296
|
+
}
|
|
1297
|
+
startWithoutYielding() {
|
|
1359
1298
|
this.#total = 0;
|
|
1360
|
-
this
|
|
1299
|
+
this.#startLap();
|
|
1361
1300
|
return this;
|
|
1362
1301
|
}
|
|
1363
|
-
|
|
1302
|
+
async yieldProcess() {
|
|
1303
|
+
this.#stopLap();
|
|
1304
|
+
await yieldProcess();
|
|
1305
|
+
this.#startLap();
|
|
1306
|
+
}
|
|
1307
|
+
#startLap() {
|
|
1364
1308
|
assert(this.#start === 0, 'already running');
|
|
1365
1309
|
this.#start = performance.now();
|
|
1366
1310
|
}
|
|
@@ -1368,14 +1312,14 @@ export class Timer {
|
|
|
1368
1312
|
assert(this.#start !== 0, 'not running');
|
|
1369
1313
|
return performance.now() - this.#start;
|
|
1370
1314
|
}
|
|
1371
|
-
stopLap() {
|
|
1315
|
+
#stopLap() {
|
|
1372
1316
|
assert(this.#start !== 0, 'not running');
|
|
1373
1317
|
this.#total += performance.now() - this.#start;
|
|
1374
1318
|
this.#start = 0;
|
|
1375
1319
|
}
|
|
1376
1320
|
/** @returns the total elapsed time */
|
|
1377
1321
|
stop() {
|
|
1378
|
-
this
|
|
1322
|
+
this.#stopLap();
|
|
1379
1323
|
return this.#total;
|
|
1380
1324
|
}
|
|
1381
1325
|
/**
|