@rocicorp/zero 0.25.0-canary.2 → 0.25.0-canary.4
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.js +27 -38
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/ast-to-zql/src/bin.js.map +1 -1
- package/out/chunk-3KJ5OEIB.js +495 -0
- package/out/chunk-3KJ5OEIB.js.map +7 -0
- package/out/{chunk-COKJ5W7V.js → chunk-HE4M4K7Q.js} +10111 -9594
- package/out/chunk-HE4M4K7Q.js.map +7 -0
- package/out/{chunk-TJFNGO7E.js → chunk-TAUDS4QP.js} +10 -7
- package/out/{chunk-TJFNGO7E.js.map → chunk-TAUDS4QP.js.map} +2 -2
- package/out/{inspector-IU2HG74I.js → inspector-GP3CBZRU.js} +1 -1
- package/out/inspector-GP3CBZRU.js.map +7 -0
- package/out/{lazy-inspector-OXIFYSSQ.js → lazy-inspector-XLKVABX2.js} +5 -4
- package/out/lazy-inspector-XLKVABX2.js.map +7 -0
- package/out/react.js +20 -25
- package/out/react.js.map +2 -2
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +3 -2
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/shared/src/error.js +5 -5
- package/out/shared/src/error.js.map +1 -1
- package/out/solid.js +9 -7
- package/out/solid.js.map +2 -2
- package/out/z2s/src/compiler.d.ts +2 -2
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/sql.d.ts +1 -1
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/zero/package.json +3 -2
- package/out/zero-cache/src/auth/load-permissions.d.ts +1 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
- package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +36 -12
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +5 -4
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +3 -3
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js +6 -7
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +16 -2
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/scripts/permissions.d.ts +1 -1
- package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
- package/out/zero-cache/src/scripts/permissions.js +2 -2
- package/out/zero-cache/src/scripts/permissions.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +7 -10
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts +2 -6
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +4 -3
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
- package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/column-metadata.js +26 -13
- package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +2 -3
- 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 +15 -15
- 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/replica-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/replica-schema.js +13 -0
- package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +16 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js +52 -0
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +15 -1
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +16 -11
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +2 -0
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +7 -8
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +33 -0
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +1 -0
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +41 -14
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +5 -4
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +81 -2
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +24 -2
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +4 -2
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.js +25 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
- 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 +30 -5
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -1
- package/out/zero-cache/src/types/error-with-level.js +8 -3
- package/out/zero-cache/src/types/error-with-level.js.map +1 -1
- package/out/zero-client/src/client/bindings.d.ts +42 -0
- package/out/zero-client/src/client/bindings.d.ts.map +1 -0
- package/out/zero-client/src/client/client-error-kind-enum.d.ts +12 -12
- package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-manager.d.ts +8 -9
- package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/context.d.ts +12 -10
- package/out/zero-client/src/client/context.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 +39 -16
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/error.d.ts +23 -11
- package/out/zero-client/src/client/error.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/html-dialog-prompt.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts +3 -2
- 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/mutation-tracker.d.ts +10 -2
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.d.ts +16 -0
- package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -0
- package/out/zero-client/src/client/options.d.ts +37 -7
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts +9 -2
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-log-context.d.ts +3 -3
- package/out/zero-client/src/client/zero-log-context.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +3 -3
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +5 -4
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +88 -18
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +14 -9
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-client/src/types/query-result.d.ts +5 -4
- package/out/zero-client/src/types/query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +1 -0
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.js +1 -0
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/application-error.d.ts +2 -8
- package/out/zero-protocol/src/application-error.d.ts.map +1 -1
- package/out/zero-protocol/src/application-error.js +3 -0
- package/out/zero-protocol/src/application-error.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +1 -0
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +3 -0
- package/out/zero-protocol/src/inspect-down.d.ts.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 +2 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-react/src/components/inspector.d.ts +1 -1
- package/out/zero-react/src/components/inspector.d.ts.map +1 -1
- package/out/zero-react/src/components/zero-inspector.d.ts +1 -1
- package/out/zero-react/src/components/zero-inspector.d.ts.map +1 -1
- package/out/zero-react/src/mod.d.ts +1 -1
- package/out/zero-react/src/mod.d.ts.map +1 -1
- package/out/zero-react/src/use-query.d.ts +7 -6
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/zero-provider.d.ts +7 -7
- package/out/zero-react/src/zero-provider.d.ts.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.d.ts +1 -3
- package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
- package/out/zero-schema/src/permissions.d.ts +1 -1
- 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.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.d.ts +2 -2
- package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js +4 -0
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/adapters/pg.d.ts +8 -3
- package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
- package/out/zero-server/src/adapters/pg.js +4 -0
- package/out/zero-server/src/adapters/pg.js.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.d.ts +8 -3
- package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.js +4 -0
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
- package/out/zero-server/src/custom.d.ts +11 -8
- package/out/zero-server/src/custom.d.ts.map +1 -1
- package/out/zero-server/src/custom.js +15 -3
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/mod.d.ts +0 -1
- package/out/zero-server/src/mod.d.ts.map +1 -1
- package/out/zero-server/src/mod.js +0 -1
- package/out/zero-server/src/mod.js.map +1 -1
- package/out/zero-server/src/pg-query-executor.d.ts +11 -0
- package/out/zero-server/src/pg-query-executor.d.ts.map +1 -0
- package/out/zero-server/src/pg-query-executor.js +17 -0
- package/out/zero-server/src/pg-query-executor.js.map +1 -0
- package/out/zero-server/src/process-mutations.d.ts +2 -1
- package/out/zero-server/src/process-mutations.d.ts.map +1 -1
- package/out/zero-server/src/process-mutations.js +1 -1
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/queries/process-queries.d.ts +4 -4
- package/out/zero-server/src/queries/process-queries.d.ts.map +1 -1
- package/out/zero-server/src/queries/process-queries.js +5 -3
- package/out/zero-server/src/queries/process-queries.js.map +1 -1
- package/out/zero-server/src/schema.d.ts +2 -2
- package/out/zero-server/src/schema.d.ts.map +1 -1
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts +6 -3
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero-server/src/zql-database.js +17 -19
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/solid-view.d.ts +1 -1
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/zero-solid/src/use-query.d.ts +4 -4
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero.d.ts +7 -7
- package/out/zero-solid/src/use-zero.d.ts.map +1 -1
- package/out/zero-types/src/server-schema.d.ts.map +1 -0
- package/out/zero-types/src/server-schema.js.map +1 -0
- package/out/zero.js +25 -11
- package/out/zql/src/builder/builder.d.ts +6 -0
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +1 -1
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.d.ts +4 -0
- package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
- package/out/zql/src/builder/debug-delegate.js +17 -0
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/ivm/view.d.ts +3 -2
- package/out/zql/src/ivm/view.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.d.ts +13 -8
- 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/planner/planner-builder.d.ts.map +1 -1
- package/out/zql/src/planner/planner-builder.js +27 -2
- package/out/zql/src/planner/planner-builder.js.map +1 -1
- package/out/zql/src/planner/planner-graph.js +1 -1
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.d.ts +1 -1
- package/out/zql/src/planner/planner-join.d.ts.map +1 -1
- package/out/zql/src/planner/planner-join.js +9 -5
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/query/chained-query.d.ts +35 -0
- package/out/zql/src/query/chained-query.d.ts.map +1 -0
- package/out/zql/src/query/chained-query.js +66 -0
- package/out/zql/src/query/chained-query.js.map +1 -0
- package/out/zql/src/query/define-query.d.ts +51 -0
- package/out/zql/src/query/define-query.d.ts.map +1 -0
- package/out/zql/src/query/define-query.js +53 -0
- package/out/zql/src/query/define-query.js.map +1 -0
- package/out/zql/src/query/named.d.ts +18 -7
- package/out/zql/src/query/named.d.ts.map +1 -1
- package/out/zql/src/query/named.js +38 -20
- package/out/zql/src/query/named.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +122 -0
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -0
- package/out/zql/src/query/query-delegate-base.js +136 -0
- package/out/zql/src/query/query-delegate-base.js.map +1 -0
- package/out/zql/src/query/query-delegate.d.ts +29 -4
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +27 -48
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +155 -175
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internals.d.ts +70 -0
- package/out/zql/src/query/query-internals.d.ts.map +1 -0
- package/out/zql/src/query/query-internals.js +21 -0
- package/out/zql/src/query/query-internals.js.map +1 -0
- package/out/zql/src/query/query.d.ts +26 -243
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/query.js +0 -1
- package/out/zql/src/query/query.js.map +1 -1
- package/out/zql/src/query/root-named-query.d.ts +33 -0
- package/out/zql/src/query/root-named-query.d.ts.map +1 -0
- package/out/zql/src/query/root-named-query.js +95 -0
- package/out/zql/src/query/root-named-query.js.map +1 -0
- package/out/zql/src/query/static-query.d.ts +5 -14
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.js +7 -17
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zqlite/src/db.d.ts +2 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +2 -0
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/query-delegate.d.ts +6 -20
- package/out/zqlite/src/query-delegate.d.ts.map +1 -1
- package/out/zqlite/src/query-delegate.js +5 -29
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +16 -0
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +3 -2
- package/out/chunk-COKJ5W7V.js.map +0 -7
- package/out/chunk-YWU2DZ23.js +0 -372
- package/out/chunk-YWU2DZ23.js.map +0 -7
- package/out/inspector-IU2HG74I.js.map +0 -7
- package/out/lazy-inspector-OXIFYSSQ.js.map +0 -7
- package/out/zero-client/src/client/on-error.d.ts +0 -15
- package/out/zero-client/src/client/on-error.d.ts.map +0 -1
- package/out/zero-schema/src/builder/relationship-builder.js +0 -24
- package/out/zero-schema/src/builder/relationship-builder.js.map +0 -1
- package/out/zero-schema/src/builder/schema-builder.js +0 -78
- package/out/zero-schema/src/builder/schema-builder.js.map +0 -1
- package/out/zero-schema/src/builder/table-builder.js +0 -128
- package/out/zero-schema/src/builder/table-builder.js.map +0 -1
- package/out/zero-schema/src/server-schema.d.ts.map +0 -1
- package/out/zero-schema/src/server-schema.js.map +0 -1
- package/out/zero-server/src/query.d.ts +0 -22
- package/out/zero-server/src/query.d.ts.map +0 -1
- package/out/zero-server/src/query.js +0 -61
- package/out/zero-server/src/query.js.map +0 -1
- /package/out/{zero-schema → zero-types}/src/server-schema.d.ts +0 -0
- /package/out/{zero-schema → zero-types}/src/server-schema.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-query.js","sourceRoot":"","sources":["../../../../../zero-cache/src/custom-queries/transform-query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-query.js","sourceRoot":"","sources":["../../../../../zero-cache/src/custom-queries/transform-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import { type LiteTypeString } from '../types/lite.ts';
|
|
3
3
|
import { type ColumnSpec, type IndexSpec, type LiteIndexSpec, type LiteTableSpec, type TableSpec } from './specs.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Determines if a PostgreSQL column is an enum type.
|
|
6
|
+
* This checks both the element type class (for arrays of enums) and the main type class.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isEnumColumn(spec: Pick<ColumnSpec, 'pgTypeClass' | 'elemPgTypeClass'>): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Determines if a PostgreSQL column is an array type.
|
|
11
|
+
* In PostgreSQL's system, array columns have a non-null elemPgTypeClass.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isArrayColumn(spec: Pick<ColumnSpec, 'elemPgTypeClass'>): boolean;
|
|
4
14
|
export declare function warnIfDataTypeSupported(lc: LogContext, liteTypeString: LiteTypeString, table: string, column: string): void;
|
|
5
15
|
export declare function mapPostgresToLiteDefault(table: string, column: string, dataType: string, defaultExpression: string | null | undefined): string | null;
|
|
6
16
|
export declare function mapPostgresToLiteColumn(table: string, column: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-to-lite.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-to-lite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"pg-to-lite.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-to-lite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,iBAAiB,CAAC,GACxD,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,GACxC,OAAO,CAET;AAaD,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,UAAU,EACd,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,QAUf;AAkBD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,iBAuB7C;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,EACxC,aAAa,CAAC,EAAE,gBAAgB,GAC/B,UAAU,CAiCZ;AAED,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,SAAS,EACZ,cAAc,CAAC,EAAE,MAAM,GACtB,aAAa,CAoBf;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CAOtE;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,mCAAmC;CACjD"}
|
|
@@ -3,6 +3,20 @@ import { liteTypeString, liteTypeToZqlValueType, upstreamDataType, } from "../ty
|
|
|
3
3
|
import { liteTableName } from "../types/names.js";
|
|
4
4
|
import * as PostgresTypeClass from "./postgres-type-class-enum.js";
|
|
5
5
|
import {} from "./specs.js";
|
|
6
|
+
/**
|
|
7
|
+
* Determines if a PostgreSQL column is an enum type.
|
|
8
|
+
* This checks both the element type class (for arrays of enums) and the main type class.
|
|
9
|
+
*/
|
|
10
|
+
export function isEnumColumn(spec) {
|
|
11
|
+
return (spec.elemPgTypeClass ?? spec.pgTypeClass) === PostgresTypeClass.Enum;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Determines if a PostgreSQL column is an array type.
|
|
15
|
+
* In PostgreSQL's system, array columns have a non-null elemPgTypeClass.
|
|
16
|
+
*/
|
|
17
|
+
export function isArrayColumn(spec) {
|
|
18
|
+
return spec.elemPgTypeClass !== null && spec.elemPgTypeClass !== undefined;
|
|
19
|
+
}
|
|
6
20
|
function zeroVersionColumnSpec(defaultVersion) {
|
|
7
21
|
return {
|
|
8
22
|
pos: Number.MAX_SAFE_INTEGER, // i.e. last
|
|
@@ -52,11 +66,11 @@ export function mapPostgresToLiteDefault(table, column, dataType, defaultExpress
|
|
|
52
66
|
return match[1];
|
|
53
67
|
}
|
|
54
68
|
export function mapPostgresToLiteColumn(table, column, ignoreDefault) {
|
|
55
|
-
const { pos, dataType,
|
|
69
|
+
const { pos, dataType, notNull, dflt, elemPgTypeClass = null } = column.spec;
|
|
56
70
|
// PostgreSQL includes [] in dataType for array types (e.g., 'int4[]',
|
|
57
71
|
// 'int4[][]'). liteTypeString() appends attributes:
|
|
58
72
|
// "varchar[]|NOT_NULL|TEXT_ARRAY", "my_enum[][]|TEXT_ENUM|TEXT_ARRAY"
|
|
59
|
-
const liteType = liteTypeString(dataType, notNull, (
|
|
73
|
+
const liteType = liteTypeString(dataType, notNull, isEnumColumn(column.spec), isArrayColumn(column.spec));
|
|
60
74
|
return {
|
|
61
75
|
pos,
|
|
62
76
|
dataType: liteType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-to-lite.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-to-lite.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAMN,MAAM,YAAY,CAAC;AAEpB,SAAS,qBAAqB,CAAC,cAAkC;IAC/D,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,gBAAgB,EAAE,YAAY;QAC1C,sBAAsB,EAAE,IAAI;QAC5B,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,GAAG;QACpD,eAAe,EAAE,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,EAAc,EACd,cAA8B,EAC9B,KAAa,EACb,MAAc;IAEd,IAAI,sBAAsB,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;QACzD,EAAE,CAAC,IAAI,EAAE,CACP,+CAA+C,gBAAgB,CAC7D,cAAc,CACf,gBAAgB;YACf,QAAQ,KAAK,MAAM,MAAM,6CAA6C,CACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,kDAAkD;AAClD,MAAM,6BAA6B,GAAG,WAAW,CAAC,CAAC,oCAAoC;AAEvF,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,oDAAoD,CAAC;AAEhF,4EAA4E;AAC5E,6EAA6E;AAC7E,+DAA+D;AAC/D,EAAE;AACF,yEAAyE;AACzE,mBAAmB;AACnB,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAElD,wBAAwB;AACxB,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,iBAA4C;IAE5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,6BAA6B,CACrC,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,6BAA6B,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC1D,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClD,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,6BAA6B,CACrC,iCAAiC,KAAK,IAAI,MAAM,KAAK,iBAAiB,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,MAAwC,EACxC,aAAgC;IAEhC,MAAM,
|
|
1
|
+
{"version":3,"file":"pg-to-lite.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-to-lite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as v from '../../../shared/src/valita.ts';
|
|
2
|
-
import type { Schema } from '../../../zero-schema/src/builder/schema-builder.ts';
|
|
3
2
|
import { type PermissionsConfig } from '../../../zero-schema/src/compiled-permissions.ts';
|
|
3
|
+
import type { Schema } from '../../../zero-types/src/schema.ts';
|
|
4
4
|
export declare const deployPermissionsOptions: {
|
|
5
5
|
schema: {
|
|
6
6
|
path: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/permissions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAG9D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDpC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,IAAI,GACjB,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,iBAAiB,CAAA;CAAC,GAAG,SAAS,CAAC,CAAC;AACzE,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,KAAK,GACnB,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,iBAAiB,CAAA;CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
2
1
|
import { existsSync } from 'node:fs';
|
|
2
|
+
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { tsImport } from 'tsx/esm/api';
|
|
5
5
|
import { logOptions } from "../../../otel/src/log-options.js";
|
|
6
|
+
import { colorConsole } from "../../../shared/src/logging.js";
|
|
6
7
|
import * as v from "../../../shared/src/valita.js";
|
|
7
8
|
import { permissionsConfigSchema, } from "../../../zero-schema/src/compiled-permissions.js";
|
|
8
9
|
import { isSchemaConfig } from "../../../zero-schema/src/schema-config.js";
|
|
9
10
|
import { appOptions, shardOptions, zeroOptions } from "../config/zero-config.js";
|
|
10
|
-
import { colorConsole } from "../../../shared/src/logging.js";
|
|
11
11
|
export const deployPermissionsOptions = {
|
|
12
12
|
schema: {
|
|
13
13
|
path: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAC,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../../zero-cache/src/scripts/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAK/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"change-streamer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAK/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAsHf"}
|
|
@@ -10,6 +10,7 @@ import { initializePostgresChangeSource } from "../services/change-source/pg/cha
|
|
|
10
10
|
import { BackupMonitor } from "../services/change-streamer/backup-monitor.js";
|
|
11
11
|
import { ChangeStreamerHttpServer } from "../services/change-streamer/change-streamer-http.js";
|
|
12
12
|
import { initializeStreamer } from "../services/change-streamer/change-streamer-service.js";
|
|
13
|
+
import { ReplicaMonitor } from "../services/change-streamer/replica-monitor.js";
|
|
13
14
|
import { AutoResetSignal } from "../services/change-streamer/schema/tables.js";
|
|
14
15
|
import { exitAfter, runUntilKilled } from "../services/life-cycle.js";
|
|
15
16
|
import { pgClient } from "../types/pg.js";
|
|
@@ -60,9 +61,8 @@ export default async function runWorker(parent, env, ...args) {
|
|
|
60
61
|
// impossible: upstream must have advanced in order for replication to be stuck.
|
|
61
62
|
assert(changeStreamer, `resetting replica did not advance replicaVersion`);
|
|
62
63
|
const { backupURL, port: metricsPort } = litestream;
|
|
63
|
-
const
|
|
64
|
-
?
|
|
65
|
-
: new BackupMonitor(lc, backupURL, `http://localhost:${metricsPort}/metrics`, changeStreamer,
|
|
64
|
+
const monitor = backupURL
|
|
65
|
+
? new BackupMonitor(lc, backupURL, `http://localhost:${metricsPort}/metrics`, changeStreamer,
|
|
66
66
|
// The time between when the zero-cache was started to when the
|
|
67
67
|
// change-streamer is ready to start serves as the initial delay for
|
|
68
68
|
// watermark cleanup (as it either includes a similar replica
|
|
@@ -70,14 +70,11 @@ export default async function runWorker(parent, env, ...args) {
|
|
|
70
70
|
// generally takes longer).
|
|
71
71
|
//
|
|
72
72
|
// Consider: Also account for permanent volumes?
|
|
73
|
-
Date.now() - parentStartMs)
|
|
74
|
-
|
|
73
|
+
Date.now() - parentStartMs)
|
|
74
|
+
: new ReplicaMonitor(lc, replica.file, changeStreamer);
|
|
75
|
+
const changeStreamerWebServer = new ChangeStreamerHttpServer(lc, config, { port }, parent, changeStreamer, monitor instanceof BackupMonitor ? monitor : null);
|
|
75
76
|
parent.send(['ready', { ready: true }]);
|
|
76
|
-
|
|
77
|
-
if (backupMonitor) {
|
|
78
|
-
services.push(backupMonitor);
|
|
79
|
-
}
|
|
80
|
-
return runUntilKilled(lc, parent, ...services);
|
|
77
|
+
return runUntilKilled(lc, parent, changeStreamer, changeStreamerWebServer, monitor);
|
|
81
78
|
}
|
|
82
79
|
// fork()
|
|
83
80
|
if (!singleProcessMode()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,4BAA4B,EAAC,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAC,8BAA8B,EAAC,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAC,aAAa,EAAC,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAC,wBAAwB,EAAC,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,wDAAwD,CAAC;AAE1F,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"change-streamer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/change-streamer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,9 @@ import type { LogContext } from '@rocicorp/logger';
|
|
|
2
2
|
import type { FastifyReply, FastifyRequest } from 'fastify';
|
|
3
3
|
import type { AnalyzeQueryResult } from '../../../zero-protocol/src/analyze-query-result.ts';
|
|
4
4
|
import type { AST } from '../../../zero-protocol/src/ast.ts';
|
|
5
|
+
import type { PermissionsConfig } from '../../../zero-schema/src/compiled-permissions.ts';
|
|
5
6
|
import type { NormalizedZeroConfig } from '../config/normalize.ts';
|
|
6
7
|
export declare function setCors(res: FastifyReply): FastifyReply<import("fastify").RouteGenericInterface, import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, unknown, import("fastify").FastifySchema, import("fastify").FastifyTypeProviderDefault, unknown>;
|
|
7
8
|
export declare function handleAnalyzeQueryRequest(lc: LogContext, config: NormalizedZeroConfig, req: FastifyRequest, res: FastifyReply): Promise<void>;
|
|
8
|
-
|
|
9
|
-
syncedRows?: boolean | undefined;
|
|
10
|
-
vendedRows?: boolean | undefined;
|
|
11
|
-
};
|
|
12
|
-
export declare function analyzeQuery(lc: LogContext, config: NormalizedZeroConfig, ast: AST, options?: AnalyzeQueryOptions): Promise<AnalyzeQueryResult>;
|
|
13
|
-
export {};
|
|
9
|
+
export declare function analyzeQuery(lc: LogContext, config: NormalizedZeroConfig, ast: AST, syncedRows?: boolean, vendedRows?: boolean, permissions?: PermissionsConfig, authData?: string): Promise<AnalyzeQueryResult>;
|
|
14
10
|
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/services/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oDAAoD,CAAC;AAC3F,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/services/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAE1D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oDAAoD,CAAC;AAC3F,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAE3D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kDAAkD,CAAC;AAMxF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAMjE,wBAAgB,OAAO,CAAC,GAAG,EAAE,YAAY,6RAMxC;AAED,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,YAAY,iBAelB;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,GAAG,EACR,UAAU,UAAO,EACjB,UAAU,UAAQ,EAClB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAkD7B"}
|
|
@@ -82,7 +82,7 @@ export async function handleAnalyzeQueryRequest(lc, config, req, res) {
|
|
|
82
82
|
const result = await analyzeQuery(lc, config, ast);
|
|
83
83
|
await res.send(result);
|
|
84
84
|
}
|
|
85
|
-
export async function analyzeQuery(lc, config, ast,
|
|
85
|
+
export async function analyzeQuery(lc, config, ast, syncedRows = true, vendedRows = false, permissions, authData) {
|
|
86
86
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
87
87
|
try {
|
|
88
88
|
const db = __addDisposableResource(env_1, new Database(lc, config.replica.file), false);
|
|
@@ -90,13 +90,14 @@ export async function analyzeQuery(lc, config, ast, options = {}) {
|
|
|
90
90
|
const tableSpecs = new Map();
|
|
91
91
|
const tables = new Map();
|
|
92
92
|
computeZqlSpecs(lc, db, tableSpecs, fullTables);
|
|
93
|
-
const { syncedRows = true, vendedRows = false } = options;
|
|
94
93
|
const result = await runAst(lc, ast, true, {
|
|
95
|
-
applyPermissions:
|
|
94
|
+
applyPermissions: permissions !== undefined,
|
|
96
95
|
syncedRows,
|
|
97
96
|
vendedRows,
|
|
97
|
+
authData,
|
|
98
98
|
db,
|
|
99
99
|
tableSpecs,
|
|
100
|
+
permissions,
|
|
100
101
|
host: {
|
|
101
102
|
debug: new Debug(),
|
|
102
103
|
getSource(tableName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../../../zero-cache/src/services/analyze.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../../../zero-cache/src/services/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* plain type names while preserving all necessary upstream type information.
|
|
10
10
|
*/
|
|
11
11
|
import type { Database } from '../../../../zqlite/src/db.ts';
|
|
12
|
-
import type { LiteTableSpec } from '../../db/specs.ts';
|
|
12
|
+
import type { ColumnSpec, LiteTableSpec } from '../../db/specs.ts';
|
|
13
13
|
/**
|
|
14
14
|
* Structured column metadata, replacing the old pipe-delimited string format.
|
|
15
15
|
*/
|
|
@@ -38,8 +38,8 @@ export declare class ColumnMetadataStore {
|
|
|
38
38
|
* Returns `undefined` if the metadata table doesn't exist yet.
|
|
39
39
|
*/
|
|
40
40
|
static getInstance(db: Database): ColumnMetadataStore | undefined;
|
|
41
|
-
insert(tableName: string, columnName: string,
|
|
42
|
-
update(tableName: string, oldColumnName: string, newColumnName: string,
|
|
41
|
+
insert(tableName: string, columnName: string, spec: ColumnSpec): void;
|
|
42
|
+
update(tableName: string, oldColumnName: string, newColumnName: string, spec: ColumnSpec): void;
|
|
43
43
|
deleteColumn(tableName: string, columnName: string): void;
|
|
44
44
|
deleteTable(tableName: string): void;
|
|
45
45
|
renameTable(oldTableName: string, newTableName: string): void;
|
|
@@ -62,4 +62,11 @@ export declare function liteTypeStringToMetadata(liteTypeString: string, charact
|
|
|
62
62
|
* This is a compatibility helper for the migration period.
|
|
63
63
|
*/
|
|
64
64
|
export declare function metadataToLiteTypeString(metadata: ColumnMetadata): string;
|
|
65
|
+
/**
|
|
66
|
+
* Converts PostgreSQL ColumnSpec to structured ColumnMetadata.
|
|
67
|
+
* Used during replication to populate the metadata table from upstream schema.
|
|
68
|
+
*
|
|
69
|
+
* Uses the same logic as liteTypeString() and mapPostgresToLiteColumn() via shared helpers.
|
|
70
|
+
*/
|
|
71
|
+
export declare function pgColumnSpecToMetadata(spec: ColumnSpec): ColumnMetadata;
|
|
65
72
|
//# sourceMappingURL=column-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-metadata.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/column-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAY,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"column-metadata.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/column-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAY,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AASjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAUD,eAAO,MAAM,4BAA4B,0UAWxC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,mBAAmB;;IAY9B,OAAO;IAqDP;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,mBAAmB,GAAG,SAAS;IAoBjE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAqBrE,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,UAAU,GACf,IAAI;IAcP,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIzD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI7D,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAkB5E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAmBxD,QAAQ,IAAI,OAAO;IAKnB;;;OAGG;IACH,0BAA0B,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;CAW1D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,cAAc,CAiBhB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAOzE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAQvE"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* This table stores that metadata separately, allowing SQLite columns to use
|
|
9
9
|
* plain type names while preserving all necessary upstream type information.
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
11
|
+
import { isArrayColumn, isEnumColumn } from "../../db/pg-to-lite.js";
|
|
12
|
+
import { upstreamDataType, nullableUpstream, isEnum as checkIsEnum, isArray as checkIsArray, liteTypeString, } from "../../types/lite.js";
|
|
12
13
|
export const CREATE_COLUMN_METADATA_TABLE = `
|
|
13
14
|
CREATE TABLE "_zero.column_metadata" (
|
|
14
15
|
table_name TEXT NOT NULL,
|
|
@@ -102,10 +103,15 @@ export class ColumnMetadataStore {
|
|
|
102
103
|
}
|
|
103
104
|
return instance;
|
|
104
105
|
}
|
|
105
|
-
insert(tableName, columnName,
|
|
106
|
+
insert(tableName, columnName, spec) {
|
|
107
|
+
const metadata = pgColumnSpecToMetadata(spec);
|
|
108
|
+
this.#insertMetadata(tableName, columnName, metadata);
|
|
109
|
+
}
|
|
110
|
+
#insertMetadata(tableName, columnName, metadata) {
|
|
106
111
|
this.#insertStmt.run(tableName, columnName, metadata.upstreamType, metadata.isNotNull ? 1 : 0, metadata.isEnum ? 1 : 0, metadata.isArray ? 1 : 0, metadata.characterMaxLength ?? null);
|
|
107
112
|
}
|
|
108
|
-
update(tableName, oldColumnName, newColumnName,
|
|
113
|
+
update(tableName, oldColumnName, newColumnName, spec) {
|
|
114
|
+
const metadata = pgColumnSpecToMetadata(spec);
|
|
109
115
|
this.#updateStmt.run(newColumnName, metadata.upstreamType, metadata.isNotNull ? 1 : 0, metadata.isEnum ? 1 : 0, metadata.isArray ? 1 : 0, metadata.characterMaxLength ?? null, tableName, oldColumnName);
|
|
110
116
|
}
|
|
111
117
|
deleteColumn(tableName, columnName) {
|
|
@@ -156,7 +162,7 @@ export class ColumnMetadataStore {
|
|
|
156
162
|
for (const table of tables) {
|
|
157
163
|
for (const [columnName, columnSpec] of Object.entries(table.columns)) {
|
|
158
164
|
const metadata = liteTypeStringToMetadata(columnSpec.dataType, columnSpec.characterMaximumLength);
|
|
159
|
-
this
|
|
165
|
+
this.#insertMetadata(table.name, columnName, metadata);
|
|
160
166
|
}
|
|
161
167
|
}
|
|
162
168
|
}
|
|
@@ -185,14 +191,21 @@ export function liteTypeStringToMetadata(liteTypeString, characterMaxLength) {
|
|
|
185
191
|
* This is a compatibility helper for the migration period.
|
|
186
192
|
*/
|
|
187
193
|
export function metadataToLiteTypeString(metadata) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
return liteTypeString(metadata.upstreamType, metadata.isNotNull, metadata.isEnum, metadata.isArray);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Converts PostgreSQL ColumnSpec to structured ColumnMetadata.
|
|
198
|
+
* Used during replication to populate the metadata table from upstream schema.
|
|
199
|
+
*
|
|
200
|
+
* Uses the same logic as liteTypeString() and mapPostgresToLiteColumn() via shared helpers.
|
|
201
|
+
*/
|
|
202
|
+
export function pgColumnSpecToMetadata(spec) {
|
|
203
|
+
return {
|
|
204
|
+
upstreamType: spec.dataType,
|
|
205
|
+
isNotNull: spec.notNull ?? false,
|
|
206
|
+
isEnum: isEnumColumn(spec),
|
|
207
|
+
isArray: isArrayColumn(spec),
|
|
208
|
+
characterMaxLength: spec.characterMaximumLength ?? null,
|
|
209
|
+
};
|
|
197
210
|
}
|
|
198
211
|
//# sourceMappingURL=column-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-metadata.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/column-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"column-metadata.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/column-metadata.ts"],"names":[],"mappings":"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"}
|
package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-reader.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/binary-reader.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY
|
|
1
|
+
{"version":3,"file":"binary-reader.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/binary-reader.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;;gBAIX,CAAC,EAAE,UAAU;IAIzB,SAAS;IAMT,SAAS;IAMT,SAAS;IAWT,UAAU;IAcV,UAAU,CAAC,MAAM,EAAE,UAAU;IAI7B,IAAI,CAAC,CAAC,EAAE,MAAM;IAMd,SAAS,CAAC,CAAC,EAAE,MAAM;IAOnB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;IAK1C,OAAO;IAaP,QAAQ;IAKR,UAAU;IAMV,UAAU;CAGX"}
|
|
@@ -3,34 +3,34 @@
|
|
|
3
3
|
const textDecoder = new TextDecoder();
|
|
4
4
|
// https://www.postgresql.org/docs/14/protocol-message-types.html
|
|
5
5
|
export class BinaryReader {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
constructor(
|
|
9
|
-
this
|
|
6
|
+
#p = 0;
|
|
7
|
+
#b;
|
|
8
|
+
constructor(b) {
|
|
9
|
+
this.#b = b;
|
|
10
10
|
}
|
|
11
11
|
readUint8() {
|
|
12
12
|
this.checkSize(1);
|
|
13
|
-
return this
|
|
13
|
+
return this.#b[this.#p++];
|
|
14
14
|
}
|
|
15
15
|
readInt16() {
|
|
16
16
|
this.checkSize(2);
|
|
17
|
-
return (this
|
|
17
|
+
return (this.#b[this.#p++] << 8) | this.#b[this.#p++];
|
|
18
18
|
}
|
|
19
19
|
readInt32() {
|
|
20
20
|
this.checkSize(4);
|
|
21
|
-
return ((this
|
|
22
|
-
(this
|
|
23
|
-
(this
|
|
24
|
-
this
|
|
21
|
+
return ((this.#b[this.#p++] << 24) |
|
|
22
|
+
(this.#b[this.#p++] << 16) |
|
|
23
|
+
(this.#b[this.#p++] << 8) |
|
|
24
|
+
this.#b[this.#p++]);
|
|
25
25
|
}
|
|
26
26
|
readString() {
|
|
27
|
-
const endIdx = this.
|
|
27
|
+
const endIdx = this.#b.indexOf(0x00, this.#p);
|
|
28
28
|
if (endIdx < 0) {
|
|
29
29
|
// TODO PgError.protocol_violation
|
|
30
30
|
throw Error('unexpected end of message');
|
|
31
31
|
}
|
|
32
|
-
const strBuf = this.
|
|
33
|
-
this
|
|
32
|
+
const strBuf = this.#b.subarray(this.#p, endIdx);
|
|
33
|
+
this.#p = endIdx + 1;
|
|
34
34
|
return this.decodeText(strBuf);
|
|
35
35
|
}
|
|
36
36
|
decodeText(strBuf) {
|
|
@@ -38,10 +38,10 @@ export class BinaryReader {
|
|
|
38
38
|
}
|
|
39
39
|
read(n) {
|
|
40
40
|
this.checkSize(n);
|
|
41
|
-
return this.
|
|
41
|
+
return this.#b.subarray(this.#p, (this.#p += n));
|
|
42
42
|
}
|
|
43
43
|
checkSize(n) {
|
|
44
|
-
if (this.
|
|
44
|
+
if (this.#b.length < this.#p + n) {
|
|
45
45
|
// TODO PgError.protocol_violation
|
|
46
46
|
throw Error('unexpected end of message');
|
|
47
47
|
}
|
package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-reader.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/binary-reader.ts"],"names":[],"mappings":"AAAA,yJAAyJ;AAEzJ,kFAAkF;AAClF,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,iEAAiE;AACjE,MAAM,OAAO,YAAY;IACvB,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"binary-reader.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/binary-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replica-schema.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/replica-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"replica-schema.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/replica-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,4BAA4B,CAAC;AAYpC,wBAAsB,WAAW,CAC/B,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,iBAgBf;AAED,eAAO,MAAM,yBAAyB,EAAE,uBA4BvC,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { SqliteError } from '@rocicorp/zero-sqlite3';
|
|
2
|
+
import { must } from "../../../../shared/src/must.js";
|
|
2
3
|
import { runSchemaMigrations, } from "../../db/migration-lite.js";
|
|
4
|
+
import { listTables } from "../../db/lite-tables.js";
|
|
3
5
|
import { AutoResetSignal } from "../change-streamer/schema/tables.js";
|
|
4
6
|
import { CREATE_RUNTIME_EVENTS_TABLE, recordEvent, } from "../replicator/schema/replication-state.js";
|
|
7
|
+
import { ColumnMetadataStore, CREATE_COLUMN_METADATA_TABLE, } from "./column-metadata.js";
|
|
5
8
|
export async function initReplica(log, debugName, dbPath, initialSync) {
|
|
6
9
|
const setupMigration = {
|
|
7
10
|
migrateSchema: (log, tx) => initialSync(log, tx),
|
|
@@ -42,5 +45,15 @@ export const schemaVersionMigrationMap = {
|
|
|
42
45
|
recordEvent(db, 'upgrade');
|
|
43
46
|
},
|
|
44
47
|
},
|
|
48
|
+
6: {
|
|
49
|
+
migrateSchema: (_, db) => {
|
|
50
|
+
db.exec(CREATE_COLUMN_METADATA_TABLE);
|
|
51
|
+
},
|
|
52
|
+
migrateData: (_, db) => {
|
|
53
|
+
const store = ColumnMetadataStore.getInstance(db);
|
|
54
|
+
const tables = listTables(db);
|
|
55
|
+
must(store).populateFromExistingTables(tables);
|
|
56
|
+
},
|
|
57
|
+
},
|
|
45
58
|
};
|
|
46
59
|
//# sourceMappingURL=replica-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replica-schema.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/replica-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"replica-schema.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-source/replica-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EACL,mBAAmB,GAGpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,qCAAqC,CAAC;AACpE,OAAO,EACL,2BAA2B,EAC3B,WAAW,GACZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAe,EACf,SAAiB,EACjB,MAAc,EACd,WAA4D;IAE5D,MAAM,cAAc,GAAc;QAChC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC;QAChD,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,mBAAmB,CACvB,GAAG,EACH,SAAS,EACT,MAAM,EACN,cAAc,EACd,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5D,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAe,EACf,SAAiB,EACjB,MAAc;IAEd,MAAM,mBAAmB,CACvB,GAAG,EACH,SAAS,EACT,MAAM;IACN,yCAAyC;IACzC;QACE,aAAa,EAAE,GAAG,EAAE;YAClB,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;QACJ,CAAC;KACF,EACD,yBAAyB,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAA4B;IAChE,oEAAoE;IACpE,CAAC,EAAE;QACD,aAAa,EAAE,GAAG,EAAE;YAClB,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAC;QAC/D,CAAC;QACD,cAAc,EAAE,CAAC;KAClB;IAED,CAAC,EAAE;QACD,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACvB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACvC,CAAC;QACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACrB,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC7B,CAAC;KACF;IAED,CAAC,EAAE;QACD,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACvB,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACxC,CAAC;QACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { Service } from '../service.ts';
|
|
3
|
+
import type { ChangeStreamerService } from './change-streamer.ts';
|
|
4
|
+
/**
|
|
5
|
+
* The single-node equivalent of the {@link BackupMonitor} polls the replica
|
|
6
|
+
* file every 30 seconds and schedules cleanup when the watermark
|
|
7
|
+
* (i.e. stateVersion) moves forward.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ReplicaMonitor implements Service {
|
|
10
|
+
#private;
|
|
11
|
+
readonly id = "replica-monitor";
|
|
12
|
+
constructor(lc: LogContext, replicaFile: string, changeStreamer: ChangeStreamerService);
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
stop(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=replica-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replica-monitor.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/replica-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAIhE;;;;GAIG;AACH,qBAAa,cAAe,YAAW,OAAO;;IAC5C,QAAQ,CAAC,EAAE,qBAAqB;gBAS9B,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,qBAAqB;IAOjC,GAAG;IAwBT,IAAI;CAIL"}
|