@cosmicdrift/kumiko-framework 0.368.0 → 0.370.0
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/AGENTS.md +14 -1
- package/agents/examples/apex-surface-auth.md +2 -1
- package/agents/examples/app-config.md +98 -0
- package/agents/examples/auth-mfa.md +72 -0
- package/agents/examples/compose-stacks.md +188 -0
- package/agents/examples/env-composition.md +268 -0
- package/agents/examples/host-routing.md +181 -0
- package/agents/examples/legal-pages.md +52 -3
- package/agents/examples/managed-config.md +1 -0
- package/agents/examples/managed-pages.md +1 -0
- package/agents/examples/prod-boot-options.md +180 -0
- package/agents/examples/relations.md +4 -0
- package/agents/examples/secrets-demo.md +4 -2
- package/agents/examples/security-baseline.md +20 -17
- package/agents/examples.md +6 -1
- package/agents/features.md +17 -5
- package/dist/api/anonymous-cookie.d.ts +1 -1
- package/dist/api/anonymous-live-entities.d.ts +1 -1
- package/dist/api/auth-middleware.d.ts +2 -2
- package/dist/api/auth-routes.d.ts +7 -7
- package/dist/api/extra-route.d.ts +2 -2
- package/dist/api/index.d.ts +37 -37
- package/dist/api/jwt.d.ts +1 -1
- package/dist/api/observability-middleware.d.ts +1 -1
- package/dist/api/readiness.d.ts +1 -1
- package/dist/api/redis-sse-broker.d.ts +2 -2
- package/dist/api/request-context.d.ts +1 -1
- package/dist/api/request-id-middleware.d.ts +3 -3
- package/dist/api/route-registrars.d.ts +4 -4
- package/dist/api/routes.d.ts +1 -1
- package/dist/api/server.d.ts +16 -16
- package/dist/api/sse-broker.d.ts +1 -1
- package/dist/api/sse-route.d.ts +1 -1
- package/dist/api/websocket-route.d.ts +3 -3
- package/dist/auth/index.d.ts +2 -2
- package/dist/compliance/duration-spec.d.ts +2 -2
- package/dist/compliance/index.d.ts +6 -6
- package/dist/compliance/profiles.d.ts +1 -1
- package/dist/config/index.d.ts +44 -0
- package/dist/config/index.js +61 -0
- package/dist/crypto/blind-index.d.ts +1 -1
- package/dist/crypto/event-pii.d.ts +1 -1
- package/dist/crypto/in-memory-kms-adapter.d.ts +1 -1
- package/dist/crypto/index.d.ts +11 -11
- package/dist/crypto/is-self-pii-field.d.ts +1 -1
- package/dist/crypto/kms-wiring.d.ts +2 -2
- package/dist/crypto/owner-transition-rekey.d.ts +1 -1
- package/dist/crypto/pg-kms-adapter.d.ts +1 -1
- package/dist/crypto/pii-field-encryption.d.ts +4 -4
- package/dist/crypto/request-kms-cache.d.ts +1 -1
- package/dist/crypto/subject-resolver.d.ts +3 -3
- package/dist/db/apply-entity-event.d.ts +4 -4
- package/dist/db/assert-exists-in.d.ts +4 -4
- package/dist/db/blind-index-cleanup.d.ts +2 -2
- package/dist/db/collect-table-metas.d.ts +2 -2
- package/dist/db/compound-types.d.ts +1 -1
- package/dist/db/config-seed.d.ts +5 -5
- package/dist/db/connection.d.ts +1 -6
- package/dist/db/connection.js +15 -4
- package/dist/db/dialect.d.ts +1 -1
- package/dist/db/eagerload.d.ts +3 -3
- package/dist/db/entity-field-encryption.d.ts +3 -3
- package/dist/db/entity-field-encryption.js +3 -1
- package/dist/db/entity-table-from-registry.d.ts +3 -3
- package/dist/db/entity-table-meta.d.ts +3 -3
- package/dist/db/event-store-executor-context.d.ts +9 -9
- package/dist/db/event-store-executor-read.d.ts +2 -2
- package/dist/db/event-store-executor-write.d.ts +2 -2
- package/dist/db/event-store-executor.d.ts +8 -8
- package/dist/db/feature-table-sources.d.ts +1 -1
- package/dist/db/index.d.ts +39 -39
- package/dist/db/located-timestamp.d.ts +1 -1
- package/dist/db/lock-guard.d.ts +2 -2
- package/dist/db/migrate-generator.d.ts +2 -2
- package/dist/db/migrate-runner.d.ts +1 -1
- package/dist/db/money.d.ts +1 -1
- package/dist/db/parent-ref-clause.d.ts +4 -4
- package/dist/db/projection-registry-binding.d.ts +1 -1
- package/dist/db/queries/advisory-lock.d.ts +1 -1
- package/dist/db/queries/backfill-pii.d.ts +2 -2
- package/dist/db/queries/ddl.d.ts +1 -1
- package/dist/db/queries/entity-read.d.ts +1 -1
- package/dist/db/queries/es-ops.d.ts +1 -1
- package/dist/db/queries/event-consumer.d.ts +2 -2
- package/dist/db/queries/event-store-admin.d.ts +1 -1
- package/dist/db/queries/event-store-transfer.d.ts +1 -1
- package/dist/db/queries/event-store.d.ts +1 -1
- package/dist/db/queries/pii-backfill-state.d.ts +1 -1
- package/dist/db/queries/projection-rebuild.d.ts +1 -1
- package/dist/db/queries/raw-sql.d.ts +1 -1
- package/dist/db/queries/seed-context.d.ts +2 -2
- package/dist/db/queries/shadow-swap.d.ts +3 -3
- package/dist/db/queries/table-ops.d.ts +1 -1
- package/dist/db/queries/test-stack.d.ts +2 -2
- package/dist/db/query.d.ts +3 -3
- package/dist/db/rebuild-marker.d.ts +1 -1
- package/dist/db/reference-data.d.ts +3 -3
- package/dist/db/render-ddl.d.ts +1 -1
- package/dist/db/replay-migration-sql.d.ts +1 -1
- package/dist/db/retired-framework-tables.d.ts +1 -1
- package/dist/db/schema-inspection.d.ts +1 -1
- package/dist/db/table-builder.d.ts +4 -4
- package/dist/db/table-push.d.ts +3 -3
- package/dist/db/tenant-db-runner.d.ts +2 -2
- package/dist/db/tenant-db.d.ts +7 -9
- package/dist/db/tenant-db.js +2 -12
- package/dist/derivatives/derivatives-context.d.ts +3 -3
- package/dist/derivatives/field-variants.d.ts +1 -1
- package/dist/derivatives/index.d.ts +6 -6
- package/dist/engine/access.d.ts +1 -1
- package/dist/engine/active-membership.d.ts +2 -2
- package/dist/engine/boot-validator/access-declarations.d.ts +1 -1
- package/dist/engine/boot-validator/access-roles.d.ts +1 -1
- package/dist/engine/boot-validator/action-wiring.d.ts +1 -1
- package/dist/engine/boot-validator/api-ext.d.ts +1 -1
- package/dist/engine/boot-validator/boot-check.d.ts +1 -1
- package/dist/engine/boot-validator/card-meta-overflow.d.ts +1 -1
- package/dist/engine/boot-validator/config-deps.d.ts +1 -1
- package/dist/engine/boot-validator/detail-screens.d.ts +2 -2
- package/dist/engine/boot-validator/entity-handler.d.ts +1 -1
- package/dist/engine/boot-validator/entity-list-screens.d.ts +1 -1
- package/dist/engine/boot-validator/gdpr-storage.d.ts +1 -1
- package/dist/engine/boot-validator/global-tenancy.d.ts +1 -1
- package/dist/engine/boot-validator/handler-field-references.d.ts +1 -1
- package/dist/engine/boot-validator/i18n-keys.d.ts +1 -1
- package/dist/engine/boot-validator/index.d.ts +7 -7
- package/dist/engine/boot-validator/nav.d.ts +1 -1
- package/dist/engine/boot-validator/ownership.d.ts +2 -2
- package/dist/engine/boot-validator/parent-ref.d.ts +1 -1
- package/dist/engine/boot-validator/pii-retention.d.ts +2 -2
- package/dist/engine/boot-validator/projection-list-screens.d.ts +1 -1
- package/dist/engine/boot-validator/query-output-columns.d.ts +1 -1
- package/dist/engine/boot-validator/query-refs.d.ts +1 -1
- package/dist/engine/boot-validator/record-owned.d.ts +1 -1
- package/dist/engine/boot-validator/screens.d.ts +2 -2
- package/dist/engine/boot-validator/screens.js +29 -0
- package/dist/engine/boot-validator/security-baseline.d.ts +1 -1
- package/dist/engine/boot-validator/selector-owner-panels.d.ts +1 -1
- package/dist/engine/boot-validator/transfer-graph.d.ts +2 -2
- package/dist/engine/boot-validator/url-prefill-fields.d.ts +1 -1
- package/dist/engine/boot-validator/workspaces.d.ts +1 -1
- package/dist/engine/boot-validator.d.ts +1 -1
- package/dist/engine/bridge-stub.d.ts +1 -1
- package/dist/engine/build-app-schema.d.ts +2 -2
- package/dist/engine/build-config-feature-schema.d.ts +5 -5
- package/dist/engine/build-config-feature-schema.js +197 -65
- package/dist/engine/build-target.d.ts +2 -2
- package/dist/engine/changeset-changes.d.ts +1 -1
- package/dist/engine/codemod/index.d.ts +2 -2
- package/dist/engine/config-helpers.d.ts +1 -1
- package/dist/engine/constants.d.ts +1 -1
- package/dist/engine/create-app.d.ts +2 -2
- package/dist/engine/cross-tenant.d.ts +2 -2
- package/dist/engine/dedupe-features.d.ts +1 -1
- package/dist/engine/define-feature.d.ts +1 -1
- package/dist/engine/define-feature.js +2 -2
- package/dist/engine/define-handler.d.ts +4 -4
- package/dist/engine/define-step.d.ts +1 -1
- package/dist/engine/define-workflow.d.ts +2 -2
- package/dist/engine/effective-features.d.ts +1 -1
- package/dist/engine/embedded-derived.d.ts +1 -1
- package/dist/engine/entity-handlers.d.ts +6 -5
- package/dist/engine/entity-handlers.js +6 -3
- package/dist/engine/event-def.d.ts +15 -0
- package/dist/engine/event-def.js +123 -0
- package/dist/engine/event-helpers.d.ts +1 -1
- package/dist/engine/extension-names.d.ts +8 -8
- package/dist/engine/extension-selector-plugins.d.ts +4 -1
- package/dist/engine/extension-selector-plugins.js +14 -0
- package/dist/engine/extensions/escape-hatch-usage.d.ts +1 -1
- package/dist/engine/extensions/storage-provider.d.ts +1 -1
- package/dist/engine/extensions/tenant-data.d.ts +3 -3
- package/dist/engine/extensions/tenant-resource.d.ts +2 -2
- package/dist/engine/extensions/user-data.d.ts +2 -2
- package/dist/engine/factories.d.ts +1 -1
- package/dist/engine/feature-ast/extractors/ai-steps.d.ts +2 -2
- package/dist/engine/feature-ast/extractors/events.d.ts +2 -2
- package/dist/engine/feature-ast/extractors/handlers.d.ts +4 -4
- package/dist/engine/feature-ast/extractors/hooks.d.ts +5 -5
- package/dist/engine/feature-ast/extractors/index.d.ts +14 -14
- package/dist/engine/feature-ast/extractors/jobs-routes.d.ts +3 -3
- package/dist/engine/feature-ast/extractors/projections-screens.d.ts +3 -3
- package/dist/engine/feature-ast/extractors/round1.d.ts +2 -2
- package/dist/engine/feature-ast/extractors/round2.d.ts +2 -2
- package/dist/engine/feature-ast/extractors/round3.d.ts +4 -4
- package/dist/engine/feature-ast/extractors/round5.d.ts +2 -2
- package/dist/engine/feature-ast/extractors/round6.d.ts +2 -2
- package/dist/engine/feature-ast/extractors/shared.d.ts +2 -2
- package/dist/engine/feature-ast/index.d.ts +16 -16
- package/dist/engine/feature-ast/parse.d.ts +2 -2
- package/dist/engine/feature-ast/patch.d.ts +1 -1
- package/dist/engine/feature-ast/patcher.d.ts +15 -15
- package/dist/engine/feature-ast/pattern-change-schema.d.ts +10 -10
- package/dist/engine/feature-ast/patterns.d.ts +15 -15
- package/dist/engine/feature-ast/render.d.ts +1 -1
- package/dist/engine/feature-builder-state.d.ts +5 -5
- package/dist/engine/feature-config-events-jobs.d.ts +5 -3
- package/dist/engine/feature-config-events-jobs.js +9 -130
- package/dist/engine/feature-entity-handlers.d.ts +4 -4
- package/dist/engine/feature-entity-handlers.js +11 -5
- package/dist/engine/feature-manifest.d.ts +1 -1
- package/dist/engine/feature-ui-extensions.d.ts +7 -7
- package/dist/engine/feature-ui-extensions.js +2 -2
- package/dist/engine/field-access.d.ts +1 -1
- package/dist/engine/field-helpers.d.ts +1 -1
- package/dist/engine/handler-helpers.d.ts +1 -1
- package/dist/engine/index.d.ts +89 -88
- package/dist/engine/index.js +1 -0
- package/dist/engine/instruction-fields.d.ts +1 -1
- package/dist/engine/object-form.d.ts +1 -1
- package/dist/engine/object-form.js +5 -6
- package/dist/engine/ownership.d.ts +3 -3
- package/dist/engine/pattern-library/index.d.ts +2 -2
- package/dist/engine/pattern-library/library.d.ts +2 -2
- package/dist/engine/pattern-library/mixed-schemas.d.ts +1 -1
- package/dist/engine/pattern-library/opaque-schemas.d.ts +1 -1
- package/dist/engine/pattern-library/shared-fields.d.ts +1 -1
- package/dist/engine/pattern-library/static-schemas.d.ts +1 -1
- package/dist/engine/pattern-library/types.d.ts +1 -1
- package/dist/engine/personal-data-fields.d.ts +2 -2
- package/dist/engine/pipeline.d.ts +2 -2
- package/dist/engine/project-app-schema-for-roles.d.ts +1 -1
- package/dist/engine/projection-helpers.d.ts +4 -4
- package/dist/engine/read-claim.d.ts +1 -1
- package/dist/engine/registry-facade.d.ts +2 -2
- package/dist/engine/registry-ingest.d.ts +2 -2
- package/dist/engine/registry-state.d.ts +2 -2
- package/dist/engine/registry-validate.d.ts +3 -3
- package/dist/engine/registry.d.ts +1 -1
- package/dist/engine/resolve-config-or-param.d.ts +2 -2
- package/dist/engine/role-assignment.d.ts +1 -1
- package/dist/engine/run-in.d.ts +1 -1
- package/dist/engine/run-pipeline.d.ts +3 -3
- package/dist/engine/schema-builder.d.ts +1 -1
- package/dist/engine/screen-filter-ops.d.ts +1 -1
- package/dist/engine/screen-helpers.d.ts +2 -2
- package/dist/engine/soft-delete-cleanup.d.ts +2 -2
- package/dist/engine/steps/_event-match.d.ts +1 -1
- package/dist/engine/steps/_no-return-guard.d.ts +1 -1
- package/dist/engine/steps/_read-source.d.ts +4 -4
- package/dist/engine/steps/_resolver-utils.d.ts +1 -1
- package/dist/engine/steps/aggregate-append-event.d.ts +1 -1
- package/dist/engine/steps/aggregate-create.d.ts +2 -2
- package/dist/engine/steps/aggregate-update.d.ts +3 -3
- package/dist/engine/steps/branch.d.ts +1 -1
- package/dist/engine/steps/call-feature.d.ts +2 -2
- package/dist/engine/steps/compute.d.ts +1 -1
- package/dist/engine/steps/for-each.d.ts +1 -1
- package/dist/engine/steps/mail-send.d.ts +1 -1
- package/dist/engine/steps/read-find-many.d.ts +2 -2
- package/dist/engine/steps/read-find-one.d.ts +2 -2
- package/dist/engine/steps/retry.d.ts +1 -1
- package/dist/engine/steps/return.d.ts +2 -2
- package/dist/engine/steps/unsafe-projection-delete.d.ts +2 -2
- package/dist/engine/steps/unsafe-projection-upsert.d.ts +1 -1
- package/dist/engine/steps/wait-for-event.d.ts +1 -1
- package/dist/engine/steps/wait.d.ts +1 -1
- package/dist/engine/steps/webhook-send.d.ts +1 -1
- package/dist/engine/strip-disabled-features-from-app-schema.d.ts +4 -4
- package/dist/engine/system-user.d.ts +2 -2
- package/dist/engine/template-variables.d.ts +1 -1
- package/dist/engine/tier-resolver-extension.d.ts +4 -4
- package/dist/engine/transfer-adjacency.d.ts +1 -1
- package/dist/engine/types/index.d.ts +6 -6
- package/dist/engine/validate-projection-allowlist.d.ts +1 -1
- package/dist/engine/validation.d.ts +1 -1
- package/dist/entrypoint/index.d.ts +12 -12
- package/dist/env/dry-run.d.ts +14 -1
- package/dist/env/dry-run.js +50 -0
- package/dist/env/index.d.ts +54 -16
- package/dist/env/index.js +60 -6
- package/dist/errors/classes.d.ts +3 -3
- package/dist/errors/docs-url.d.ts +1 -1
- package/dist/errors/index.d.ts +18 -18
- package/dist/errors/member-resolution.d.ts +1 -1
- package/dist/errors/serialize.d.ts +2 -2
- package/dist/errors/subject-erased.d.ts +1 -1
- package/dist/errors/to-kumiko-error.d.ts +1 -1
- package/dist/errors/write-error-info.d.ts +1 -1
- package/dist/errors/zod-bridge.d.ts +1 -1
- package/dist/es-ops/context.d.ts +4 -4
- package/dist/es-ops/index.d.ts +4 -4
- package/dist/es-ops/operations-schema.d.ts +1 -1
- package/dist/es-ops/runner.d.ts +3 -3
- package/dist/es-ops/runner.js +9 -1
- package/dist/es-ops/types.d.ts +2 -2
- package/dist/event-store/admin-api.d.ts +3 -3
- package/dist/event-store/archive.d.ts +2 -2
- package/dist/event-store/event-store.d.ts +2 -2
- package/dist/event-store/events-schema.d.ts +1 -1
- package/dist/event-store/index.d.ts +15 -15
- package/dist/event-store/provenance-append.d.ts +3 -3
- package/dist/event-store/rebuild-dead-letter.d.ts +2 -2
- package/dist/event-store/row-to-stored-event.d.ts +2 -2
- package/dist/event-store/snapshot.d.ts +2 -2
- package/dist/event-store/tenant-db-append.d.ts +2 -2
- package/dist/event-store/transfer.d.ts +3 -3
- package/dist/event-store/upcaster-dead-letter.d.ts +2 -2
- package/dist/event-store/upcaster.d.ts +3 -3
- package/dist/files/assert-file-refs-belong-to-tenant.d.ts +2 -2
- package/dist/files/bind-pending-file-refs.d.ts +3 -3
- package/dist/files/create-file-ref-from-bytes.d.ts +4 -4
- package/dist/files/create-file-ref.d.ts +3 -3
- package/dist/files/dispose-removed-file-refs.d.ts +2 -2
- package/dist/files/feature.d.ts +3 -3
- package/dist/files/file-handle.d.ts +1 -1
- package/dist/files/file-ref-entity.d.ts +1 -1
- package/dist/files/file-ref-table.d.ts +1 -1
- package/dist/files/file-routes.d.ts +5 -5
- package/dist/files/in-memory-provider.d.ts +1 -1
- package/dist/files/index.d.ts +20 -20
- package/dist/files/load-save-file-refs.d.ts +2 -2
- package/dist/files/local-provider.d.ts +1 -1
- package/dist/files/provider-resolver.d.ts +5 -5
- package/dist/files/purge-expired-file-ref-bytes.d.ts +2 -2
- package/dist/files/record-read-check.d.ts +1 -1
- package/dist/files/record-write-check.d.ts +3 -3
- package/dist/files/storage-tracking.d.ts +2 -2
- package/dist/files/types.d.ts +1 -1
- package/dist/files/zip-stream.d.ts +1 -1
- package/dist/i18n/index.d.ts +4 -4
- package/dist/i18n/mail-registry.d.ts +1 -1
- package/dist/i18n/required-surface-keys.d.ts +1 -1
- package/dist/i18n/settings-hub-keys.d.ts +1 -1
- package/dist/i18n/settings-hub-keys.js +1 -2
- package/dist/internal/stack-support.d.ts +12 -12
- package/dist/internal/testing.d.ts +4 -4
- package/dist/jobs/index.d.ts +2 -2
- package/dist/jobs/job-runner.d.ts +1 -1
- package/dist/jobs/max-per-tenant.d.ts +1 -1
- package/dist/lifecycle/index.d.ts +2 -2
- package/dist/lifecycle/lifecycle.d.ts +1 -1
- package/dist/lifecycle/signal-handlers.d.ts +1 -1
- package/dist/logging/index.d.ts +4 -4
- package/dist/logging/pino-logger.d.ts +1 -1
- package/dist/logging/utils.d.ts +1 -1
- package/dist/migrations/index.d.ts +4 -4
- package/dist/migrations/kumiko-drift.d.ts +1 -1
- package/dist/migrations/pending-rebuilds.d.ts +5 -5
- package/dist/migrations/pii-event-backfill.d.ts +4 -4
- package/dist/migrations/projection-table-index.d.ts +1 -1
- package/dist/observability/console-provider.d.ts +1 -1
- package/dist/observability/context.d.ts +1 -1
- package/dist/observability/escape-hatch-report.d.ts +3 -3
- package/dist/observability/fallback.d.ts +1 -1
- package/dist/observability/index.d.ts +16 -16
- package/dist/observability/metric-validator.d.ts +1 -1
- package/dist/observability/metrics-handle.d.ts +1 -1
- package/dist/observability/metrics-wiring.d.ts +2 -2
- package/dist/observability/noop-provider.d.ts +1 -1
- package/dist/observability/prometheus-meter.d.ts +1 -1
- package/dist/observability/recording-meter.d.ts +1 -1
- package/dist/observability/recording-tracer.d.ts +1 -1
- package/dist/observability/redis-wrapper.d.ts +1 -1
- package/dist/observability/sensitive-filter.d.ts +1 -1
- package/dist/observability/standard-metrics.d.ts +1 -1
- package/dist/pipeline/active-membership.d.ts +4 -4
- package/dist/pipeline/append-event-core.d.ts +3 -3
- package/dist/pipeline/auth-claims-resolver.d.ts +2 -2
- package/dist/pipeline/cascade-handler.d.ts +3 -3
- package/dist/pipeline/dispatch-batch.d.ts +2 -2
- package/dist/pipeline/dispatch-query.d.ts +4 -4
- package/dist/pipeline/dispatch-shared.d.ts +17 -17
- package/dist/pipeline/dispatch-stream.d.ts +2 -2
- package/dist/pipeline/dispatch-write.d.ts +4 -4
- package/dist/pipeline/dispatcher-utils.d.ts +2 -2
- package/dist/pipeline/dispatcher.d.ts +12 -12
- package/dist/pipeline/event-consumer-state.d.ts +1 -1
- package/dist/pipeline/event-dispatcher-admin.d.ts +1 -1
- package/dist/pipeline/event-dispatcher-delivery.d.ts +7 -7
- package/dist/pipeline/event-dispatcher.d.ts +7 -7
- package/dist/pipeline/event-retention.d.ts +1 -1
- package/dist/pipeline/handler-access-error.d.ts +2 -2
- package/dist/pipeline/index.d.ts +42 -42
- package/dist/pipeline/irreversible-operation-gate.d.ts +1 -1
- package/dist/pipeline/lifecycle-pipeline.d.ts +2 -2
- package/dist/pipeline/member-read-only-transaction.d.ts +2 -2
- package/dist/pipeline/member-reader.d.ts +5 -5
- package/dist/pipeline/msp-rebuild.d.ts +4 -4
- package/dist/pipeline/multi-stream-apply-context.d.ts +3 -3
- package/dist/pipeline/notify-scope.d.ts +3 -3
- package/dist/pipeline/pending-gap-ranges.d.ts +2 -2
- package/dist/pipeline/pre-handler-gates.d.ts +3 -3
- package/dist/pipeline/pre-transaction-reservations.d.ts +4 -4
- package/dist/pipeline/projection-rebuild.d.ts +3 -3
- package/dist/pipeline/projection-state.d.ts +1 -1
- package/dist/pipeline/projections-runner.d.ts +3 -3
- package/dist/pipeline/projections-runner.js +3 -4
- package/dist/pipeline/system-hooks.d.ts +4 -4
- package/dist/pipeline/system-identity-switch.d.ts +3 -3
- package/dist/pipeline/tenant-timezone-cache.d.ts +1 -1
- package/dist/pipeline/write-origin.d.ts +3 -3
- package/dist/pipeline/write-result-masking.d.ts +2 -2
- package/dist/random/index.d.ts +2 -2
- package/dist/rate-limit/bucket.d.ts +1 -1
- package/dist/rate-limit/index.d.ts +3 -3
- package/dist/rate-limit/middleware.d.ts +3 -3
- package/dist/redis/cache-sync-bus.d.ts +2 -2
- package/dist/redis/cache-sync-topics.d.ts +1 -1
- package/dist/redis/index.d.ts +8 -8
- package/dist/redis/pubsub-signal.d.ts +1 -1
- package/dist/schema-cli.d.ts +1 -1
- package/dist/schema-cli.js +9 -1
- package/dist/search/derive-search-adapter-config.d.ts +2 -2
- package/dist/search/in-memory-adapter.d.ts +1 -1
- package/dist/search/index.d.ts +6 -6
- package/dist/search/meilisearch-adapter.d.ts +2 -2
- package/dist/search/purge-subject.d.ts +4 -4
- package/dist/search/reindex-entity.d.ts +3 -3
- package/dist/secrets/dek-cache.d.ts +1 -1
- package/dist/secrets/env-master-key-provider.d.ts +1 -1
- package/dist/secrets/env-master-key-provider.js +26 -11
- package/dist/secrets/envelope-cipher.d.ts +2 -2
- package/dist/secrets/envelope.d.ts +1 -1
- package/dist/secrets/index.d.ts +9 -9
- package/dist/secrets/rotation.d.ts +1 -1
- package/dist/secrets/stored-envelope.d.ts +1 -1
- package/dist/seeding/entity-seed.d.ts +1 -1
- package/dist/seeding/index.d.ts +3 -3
- package/dist/seeding/seed-users.d.ts +1 -1
- package/dist/time/index.d.ts +6 -6
- package/dist/ui-types/app-schema.d.ts +5 -5
- package/dist/ui-types/index.d.ts +23 -23
- package/dist/upgrade-cli.js +18 -6
- package/dist/utils/index.d.ts +9 -9
- package/package.json +19 -66
- package/presets/biome-app.json +80 -0
- package/presets/tsconfig.app.json +19 -0
- package/src/changes.json +84 -2
- package/src/scripts/codemod/README.md +18 -0
- package/src/scripts/codemod/codemod-support.ts +1 -1
- package/src/scripts/codemod/db-factory.ts +1 -1
- package/src/scripts/codemod/feature-factory.ts +1 -1
- package/src/scripts/codemod/import-extensions.ts +118 -0
- package/src/scripts/codemod/migrate-cross-tenant.ts +2 -2
- package/src/scripts/codemod/migrate-db-raw.ts +1 -1
- package/src/scripts/codemod/migrate-open-to-all.ts +1 -1
- package/src/scripts/codemod/object-form.ts +1 -1
- package/src/scripts/codemod/s3-imports.ts +1 -1
- package/src/scripts/codemod/tenant-db-options.ts +1 -1
- package/src/scripts/codemod/testing-move.ts +2 -2
- package/dist/db/bun-db-deprecated.d.ts +0 -10
- package/dist/db/bun-db-deprecated.js +0 -5
- package/dist/stack/index.d.ts +0 -10
- package/dist/stack/index.js +0 -11
- package/dist/testing/e2e-generator.d.ts +0 -5
- package/dist/testing/e2e-generator.js +0 -5
- package/dist/testing/handler-context.d.ts +0 -5
- package/dist/testing/handler-context.js +0 -5
- package/dist/testing/index.d.ts +0 -10
- package/dist/testing/index.js +0 -10
- package/dist/testing/real-providers.d.ts +0 -5
- package/dist/testing/real-providers.js +0 -5
package/dist/db/tenant-db.js
CHANGED
|
@@ -311,18 +311,8 @@ export async function runInOwnTransaction(tenantDb, fn) {
|
|
|
311
311
|
}
|
|
312
312
|
return rebind(fn);
|
|
313
313
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
function isCreateTenantDbOptions(value) {
|
|
317
|
-
return (typeof value === "object" &&
|
|
318
|
-
value !== null &&
|
|
319
|
-
Object.hasOwn(value, "tenantId") &&
|
|
320
|
-
Object.hasOwn(value, "db"));
|
|
321
|
-
}
|
|
322
|
-
export function createTenantDb(dbOrOptions, tenantId, mode, tracer, meter, signal, grants) {
|
|
323
|
-
if (isCreateTenantDbOptions(dbOrOptions))
|
|
324
|
-
return buildTenantDb(dbOrOptions);
|
|
325
|
-
return buildTenantDb({ db: dbOrOptions, tenantId, mode, tracer, meter, signal, grants });
|
|
314
|
+
export function createTenantDb(options) {
|
|
315
|
+
return buildTenantDb(options);
|
|
326
316
|
}
|
|
327
317
|
// Untyped JS callers or an `as` cast can still hand in undefined; a scoped handle
|
|
328
318
|
// without a tenant would bind `tenant_id = NULL` instead of failing loudly.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DerivativeRendererPlugin, DerivativesContext } from "@cosmicdrift/kumiko-types/derivatives-types";
|
|
2
|
-
import { type AnyDb } from "../db/query.
|
|
3
|
-
import type { Registry, TenantId } from "../engine/types/index.
|
|
4
|
-
import type { FileContext } from "../files/file-handle.
|
|
2
|
+
import { type AnyDb } from "../db/query.ts";
|
|
3
|
+
import type { Registry, TenantId } from "../engine/types/index.ts";
|
|
4
|
+
import type { FileContext } from "../files/file-handle.ts";
|
|
5
5
|
export type DerivativesContextDeps = {
|
|
6
6
|
readonly files: FileContext;
|
|
7
7
|
readonly registry: Registry;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { VariantSpec } from "@cosmicdrift/kumiko-types/derivatives-types";
|
|
2
|
-
import type { Registry } from "../engine/types/index.
|
|
2
|
+
import type { Registry } from "../engine/types/index.ts";
|
|
3
3
|
export declare function resolveFieldVariant(registry: Registry, entityType: string | null, fieldName: string | null, name: string): VariantSpec | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export type { StoredFileStore } from "./delete-stored-file.
|
|
2
|
-
export { deleteFileRefBytes, deleteStoredFileAndDerivatives, listDerivativeKeys, } from "./delete-stored-file.
|
|
3
|
-
export type { DerivativesContextDeps } from "./derivatives-context.
|
|
4
|
-
export { createDerivativesContext, resolveRenderer } from "./derivatives-context.
|
|
5
|
-
export { resolveFieldVariant } from "./field-variants.
|
|
6
|
-
export { canonicalJson, derivativeListPrefix, isDerivativeKeyOf, parseDerivativeKey, specHash, VARIANT_NAME_PATTERN, variantSuffix, } from "./variant-key.
|
|
1
|
+
export type { StoredFileStore } from "./delete-stored-file.ts";
|
|
2
|
+
export { deleteFileRefBytes, deleteStoredFileAndDerivatives, listDerivativeKeys, } from "./delete-stored-file.ts";
|
|
3
|
+
export type { DerivativesContextDeps } from "./derivatives-context.ts";
|
|
4
|
+
export { createDerivativesContext, resolveRenderer } from "./derivatives-context.ts";
|
|
5
|
+
export { resolveFieldVariant } from "./field-variants.ts";
|
|
6
|
+
export { canonicalJson, derivativeListPrefix, isDerivativeKeyOf, parseDerivativeKey, specHash, VARIANT_NAME_PATTERN, variantSuffix, } from "./variant-key.ts";
|
package/dist/engine/access.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { AccessRule, SessionUser } from "./types/index.
|
|
1
|
+
import type { AccessRule, SessionUser } from "./types/index.ts";
|
|
2
2
|
export declare function hasAccess(user: Pick<SessionUser, "roles">, access: AccessRule | undefined): boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DbConnection } from "../db/connection.
|
|
2
|
-
import type { TenantId } from "./types/identifiers.
|
|
1
|
+
import type { DbConnection } from "../db/connection.ts";
|
|
2
|
+
import type { TenantId } from "./types/identifiers.ts";
|
|
3
3
|
export type PrincipalStatus = "active" | "blocked" | "unknown";
|
|
4
4
|
export type PrincipalProfile = {
|
|
5
5
|
readonly globalRoles: readonly string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateAccessDeclarations(feature: FeatureDefinition): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function warnOnUniqueAccessRoles(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateActionWiring(feature: FeatureDefinition): void;
|
|
3
3
|
export declare function validateFieldWiring(feature: FeatureDefinition): void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateApiExposureMatching(feature: FeatureDefinition, allExposedApis: ReadonlyMap<string, string>, featureMap: ReadonlyMap<string, FeatureDefinition>): void;
|
|
3
3
|
export declare function validateExtensionUsages(feature: FeatureDefinition, extensionProviders: ReadonlyMap<string, string>): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateFeatureBootChecks(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function warnOnToggleableDependencies(features: readonly FeatureDefinition[], featureMap: ReadonlyMap<string, FeatureDefinition>): void;
|
|
3
3
|
export declare function validateConfigKeyBounds(feature: FeatureDefinition): void;
|
|
4
4
|
export declare function validateConfigKeyComputed(feature: FeatureDefinition): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
2
|
-
import type { ScreenDefinition } from "../types/screen.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
|
+
import type { ScreenDefinition } from "../types/screen.ts";
|
|
3
3
|
export declare function collectDetailForScreens(features: readonly FeatureDefinition[], featureMap: ReadonlyMap<string, FeatureDefinition>): Map<string, {
|
|
4
4
|
readonly featureName: string;
|
|
5
5
|
readonly screen: ScreenDefinition;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FeatureDefinition, QueryHandlerDef } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition, QueryHandlerDef } from "../types/index.ts";
|
|
2
2
|
export declare const FILE_FIELD_TYPES: Set<string>;
|
|
3
3
|
export declare const PII_DIRECT_NAME_HINTS: ReadonlySet<string>;
|
|
4
4
|
export declare const PII_USER_OWNED_NAME_HINTS: ReadonlySet<string>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
/** Operator lists default searchable; low-cardinality audit trails stay opt-out. */
|
|
3
3
|
export declare const SEARCHABLE_FALSE_WHITELIST: Set<string>;
|
|
4
4
|
export declare const LIST_ROW_META_COLUMN_NAMES: Set<string>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateGdprStoragePersistence(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateGlobalTenancyEntities(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateHandlerFieldReferences(feature: FeatureDefinition, featureMap: ReadonlyMap<string, FeatureDefinition>): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateI18nSurfaceKeys(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { EnvelopeCipher } from "../../secrets/envelope-cipher.
|
|
2
|
-
import type { FeatureDefinition } from "../types/index.
|
|
3
|
-
export { type CardMetaOverflow, collectCardMetaOverflow } from "./card-meta-overflow.
|
|
4
|
-
export { validateAppCustomScreenWriteQns } from "./custom-screen-write-qns.
|
|
5
|
-
export { collectWriteHandlerQns } from "./nav.
|
|
6
|
-
export { SECURITY_BASELINE_FEATURE_NAMES } from "./security-baseline.
|
|
7
|
-
export { MAX_TRANSFER_DEPTH } from "./transfer-graph.
|
|
1
|
+
import type { EnvelopeCipher } from "../../secrets/envelope-cipher.ts";
|
|
2
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
3
|
+
export { type CardMetaOverflow, collectCardMetaOverflow } from "./card-meta-overflow.ts";
|
|
4
|
+
export { validateAppCustomScreenWriteQns } from "./custom-screen-write-qns.ts";
|
|
5
|
+
export { collectWriteHandlerQns } from "./nav.ts";
|
|
6
|
+
export { SECURITY_BASELINE_FEATURE_NAMES } from "./security-baseline.ts";
|
|
7
|
+
export { MAX_TRANSFER_DEPTH } from "./transfer-graph.ts";
|
|
8
8
|
export type ValidateBootOptions = {
|
|
9
9
|
/** Warn when an access role is used by exactly one handler/config-key/
|
|
10
10
|
* field across the whole boot scan — often a typo, but also the normal
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FeatureDefinition, NavDefinition, WorkspaceDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition, NavDefinition, WorkspaceDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function collectWriteHandlerQns(features: readonly FeatureDefinition[]): Set<string>;
|
|
3
3
|
export declare function collectNavQns(features: readonly FeatureDefinition[]): Map<string, NavDefinition & {
|
|
4
4
|
readonly featureName: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type OwnershipMap, type WhereRule } from "../ownership.
|
|
2
|
-
import type { ClaimKeyDefinition, FeatureDefinition } from "../types/index.
|
|
1
|
+
import { type OwnershipMap, type WhereRule } from "../ownership.ts";
|
|
2
|
+
import type { ClaimKeyDefinition, FeatureDefinition } from "../types/index.ts";
|
|
3
3
|
export type WhereRuleProbe = {
|
|
4
4
|
readonly table: unknown;
|
|
5
5
|
readonly tableName: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { EntityDefinition, FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { EntityDefinition, FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function findEntity(featureMap: ReadonlyMap<string, FeatureDefinition>, entityName: string): EntityDefinition | undefined;
|
|
3
3
|
export declare function validateParentRefs(feature: FeatureDefinition, featureMap: ReadonlyMap<string, FeatureDefinition>): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EntityDefinition } from "../types/fields.
|
|
2
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { EntityDefinition } from "../types/fields.ts";
|
|
2
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
3
3
|
export declare function entityHasAnonymizableSubjectField(fields: EntityDefinition["fields"]): boolean;
|
|
4
4
|
export declare function validatePiiAndRetention(feature: FeatureDefinition): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FeatureDefinition, type QueryHandlerDef } from "../types/index.
|
|
1
|
+
import { type FeatureDefinition, type QueryHandlerDef } from "../types/index.ts";
|
|
2
2
|
export declare function buildQueryHandlerMap(features: readonly FeatureDefinition[]): ReadonlyMap<string, QueryHandlerDef>;
|
|
3
3
|
export declare function validateProjectionListScreens(features: readonly FeatureDefinition[]): void;
|
|
4
4
|
export declare function validateRelatedListSectionQueries(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateQueryOutputColumns(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FeatureDefinition, QueryHandlerDef } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition, QueryHandlerDef } from "../types/index.ts";
|
|
2
2
|
export declare function checkQueryRef(queryHandlers: ReadonlyMap<string, QueryHandlerDef>, query: string, buildPrefix: () => string): void;
|
|
3
3
|
export declare function validateQueryRefs(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateRecordOwnedSubjects(feature: FeatureDefinition): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IconKey } from "@cosmicdrift/kumiko-types/nav-icon";
|
|
2
|
-
import type { ConfigKeyDefinition, FeatureDefinition } from "../types/index.
|
|
3
|
-
import type { ActionFormScreenDefinition, DashboardCustomPanel, DashboardScreenPanel, RelatedListToolbarAction, RowAction, RowFieldExtractor, ScreenDefinition, SecretMintScreenDefinition, ToolbarAction } from "../types/screen.
|
|
2
|
+
import type { ConfigKeyDefinition, FeatureDefinition } from "../types/index.ts";
|
|
3
|
+
import type { ActionFormScreenDefinition, DashboardCustomPanel, DashboardScreenPanel, RelatedListToolbarAction, RowAction, RowFieldExtractor, ScreenDefinition, SecretMintScreenDefinition, ToolbarAction } from "../types/screen.ts";
|
|
4
4
|
export declare function rowFieldExtractorKeys(params: RowFieldExtractor): readonly string[];
|
|
5
5
|
export declare function readsNavigateParamsAsFormPrefill(target: ScreenDefinition, explicitEntityId: string | undefined, sourceScreenEntity: string | undefined): boolean;
|
|
6
6
|
export declare function validateActionHasIcon(featureName: string, screenId: string, screenType: "projectionDetail" | "entityEdit" | "entityList" | "projectionList", context: string, action: {
|
|
@@ -551,6 +551,25 @@ function validateOptionsQueryFieldRefs(where, fieldName, payload, siblingFieldNa
|
|
|
551
551
|
function isWriteOnlyField(fdef) {
|
|
552
552
|
return fdef?.writeOnly === true; // @cast-boundary schema-walk
|
|
553
553
|
}
|
|
554
|
+
// A secret on a configEdit form keeps its value out of the client like an encrypted
|
|
555
|
+
// config key does, and the secrets store only exists per tenant.
|
|
556
|
+
function validateConfigEditSecretField(featureName, screen, fieldName, secretQn, featureMap) {
|
|
557
|
+
const where = `[Feature ${featureName}] Screen "${screen.id}" (configEdit) field "${fieldName}"`;
|
|
558
|
+
if (screen.configKeys[fieldName] !== undefined) {
|
|
559
|
+
throw new Error(`${where} is mapped in both configKeys and secretKeys — keep one.`);
|
|
560
|
+
}
|
|
561
|
+
if (screen.scope !== "tenant") {
|
|
562
|
+
throw new Error(`${where} maps secret "${secretQn}" on a ${screen.scope}-scope screen — secrets are tenant-scoped.`);
|
|
563
|
+
}
|
|
564
|
+
const fdef = screen.fields[fieldName];
|
|
565
|
+
if (fdef?.type !== "text" || !isWriteOnlyField(fdef)) {
|
|
566
|
+
throw new Error(`${where} maps secret "${secretQn}" but is no writeOnly text field — a stored secret never goes back to the client.`);
|
|
567
|
+
}
|
|
568
|
+
const declared = [...featureMap.values()].some((feature) => Object.values(feature.secretKeys ?? {}).some((def) => def.qualifiedName === secretQn));
|
|
569
|
+
if (!declared) {
|
|
570
|
+
throw new Error(`${where} → secret "${secretQn}" is not declared via r.secret() in any feature.`);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
554
573
|
// Inline forms have no stored value to hide or keep: writeOnly there would
|
|
555
574
|
// render a "set / keep" affordance with nothing behind it.
|
|
556
575
|
function rejectWriteOnlyFormField(featureName, screenId, context, fieldName, fdef) {
|
|
@@ -1477,9 +1496,19 @@ export function validateScreens(feature, featureMap, allWriteHandlerQns, allScre
|
|
|
1477
1496
|
}
|
|
1478
1497
|
}
|
|
1479
1498
|
validateWizardLayout(feature.name, screenId, "configEdit", screen.layout, featureMap);
|
|
1499
|
+
for (const fname of Object.keys(screen.secretKeys ?? {})) {
|
|
1500
|
+
if (!fieldNames.has(fname)) {
|
|
1501
|
+
throw new Error(`[Feature ${feature.name}] Screen "${screenId}" (configEdit) secretKeys names unknown field "${fname}".`);
|
|
1502
|
+
}
|
|
1503
|
+
}
|
|
1480
1504
|
// configKeys: jeder fieldName muss einen Mapping-Eintrag haben,
|
|
1481
1505
|
// jeder qualifizierte Key muss in der Registry existieren.
|
|
1482
1506
|
for (const fname of fieldNames) {
|
|
1507
|
+
const secretQn = screen.secretKeys?.[fname];
|
|
1508
|
+
if (secretQn !== undefined) {
|
|
1509
|
+
validateConfigEditSecretField(feature.name, screen, fname, secretQn, featureMap);
|
|
1510
|
+
continue;
|
|
1511
|
+
}
|
|
1483
1512
|
const qualified = screen.configKeys[fname];
|
|
1484
1513
|
if (qualified === undefined) {
|
|
1485
1514
|
throw new Error(`[Feature ${feature.name}] Screen "${screenId}" (configEdit) field "${fname}" has ` +
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare const SECURITY_BASELINE_FEATURE_NAMES: readonly ["sessions", "crypto-shredding", "rate-limiting", "audit"];
|
|
3
3
|
export declare function warnOnMissingSecurityBaseline(features: readonly FeatureDefinition[], nodeEnv?: string | undefined): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function validateExtensionSelectorPanels(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MAX_TRANSFER_DEPTH } from "../transfer-adjacency.
|
|
2
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import { MAX_TRANSFER_DEPTH } from "../transfer-adjacency.ts";
|
|
2
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
3
3
|
export { MAX_TRANSFER_DEPTH };
|
|
4
4
|
export declare function validateTransferGraph(feature: FeatureDefinition, featureMap: ReadonlyMap<string, FeatureDefinition>): void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FeatureDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function collectUrlPrefillFieldsByScreenQn(features: readonly FeatureDefinition[]): Map<string, Set<string>>;
|
|
3
3
|
export declare function validateSubmitPrefilledHiddenFields(features: readonly FeatureDefinition[]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FeatureDefinition, NavDefinition, WorkspaceDefinition } from "../types/index.
|
|
1
|
+
import type { FeatureDefinition, NavDefinition, WorkspaceDefinition } from "../types/index.ts";
|
|
2
2
|
export declare function collectWorkspaceQns(features: readonly FeatureDefinition[]): Map<string, WorkspaceDefinition & {
|
|
3
3
|
readonly featureName: string;
|
|
4
4
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { type CardMetaOverflow, collectCardMetaOverflow, collectWriteHandlerQns, MAX_TRANSFER_DEPTH, SECURITY_BASELINE_FEATURE_NAMES, type ValidateBootOptions, validateAppCustomScreenWriteQns, validateBoot, } from "./boot-validator/index.
|
|
1
|
+
export { type CardMetaOverflow, collectCardMetaOverflow, collectWriteHandlerQns, MAX_TRANSFER_DEPTH, SECURITY_BASELINE_FEATURE_NAMES, type ValidateBootOptions, validateAppCustomScreenWriteQns, validateBoot, } from "./boot-validator/index.ts";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HandlerContext, SessionUser } from "./types/index.
|
|
1
|
+
import type { HandlerContext, SessionUser } from "./types/index.ts";
|
|
2
2
|
export declare function bridgeStub(opts?: {
|
|
3
3
|
readonly user?: SessionUser;
|
|
4
4
|
}): Pick<HandlerContext, "query" | "queryAs" | "write" | "writeAs" | "appendEvent" | "unsafeAppendEvent" | "tryAppendEvent" | "fetchForWriting" | "loadAggregate" | "archiveStream" | "restoreStream" | "isStreamArchived" | "snapshotAggregate" | "loadAggregateWithSnapshot" | "queryProjection" | "resolveAuthClaims" | "resolveActiveMembership" | "queryAsMember" | "hasFeature" | "metrics" | "metricsFor" | "tracer" | "tz" | "locale" | "user">;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AppSchema } from "../ui-types/index.
|
|
2
|
-
import type { Registry } from "./types/feature.
|
|
1
|
+
import type { AppSchema } from "../ui-types/index.ts";
|
|
2
|
+
import type { Registry } from "./types/feature.ts";
|
|
3
3
|
export type BuildAppSchemaOptions = {
|
|
4
4
|
/** Dev-server authoring hints (Settings-Hub placement). Default off — only
|
|
5
5
|
* `createKumikoServer` opts in; prod boot + unit tests stay silent. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { WorkspaceSchema } from "../ui-types/index.
|
|
2
|
-
import type { TranslationKeys } from "./types/config.
|
|
3
|
-
import type { Registry } from "./types/feature.
|
|
4
|
-
import type { NavDefinition } from "./types/nav.
|
|
5
|
-
import type { ScreenDefinition } from "./types/screen.
|
|
1
|
+
import type { WorkspaceSchema } from "../ui-types/index.ts";
|
|
2
|
+
import type { TranslationKeys } from "./types/config.ts";
|
|
3
|
+
import type { Registry } from "./types/feature.ts";
|
|
4
|
+
import type { NavDefinition } from "./types/nav.ts";
|
|
5
|
+
import type { ScreenDefinition } from "./types/screen.ts";
|
|
6
6
|
export declare const SETTINGS_HUB_FEATURE = "config";
|
|
7
7
|
export declare const SETTINGS_HUB_WORKSPACE = "settings";
|
|
8
8
|
export type ConfigFeatureSchema = {
|