@lssm/lib.contracts 1.11.0 → 1.11.1
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/dist/app-config/branding.d.ts +1 -2
- package/dist/app-config/contracts.d.ts +51 -52
- package/dist/app-config/contracts.js +1 -2
- package/dist/app-config/events.d.ts +28 -29
- package/dist/app-config/events.js +1 -2
- package/dist/app-config/lifecycle-contracts.d.ts +81 -82
- package/dist/app-config/lifecycle-contracts.js +1 -2
- package/dist/app-config/lifecycle.d.ts +1 -2
- package/dist/app-config/runtime.d.ts +1 -2
- package/dist/app-config/runtime.js +1 -2
- package/dist/app-config/spec.d.ts +1 -2
- package/dist/app-config/spec.js +1 -2
- package/dist/app-config/validation.d.ts +1 -2
- package/dist/app-config/validation.js +1 -2
- package/dist/capabilities/openbanking.d.ts +1 -2
- package/dist/capabilities/openbanking.js +1 -2
- package/dist/capabilities.d.ts +1 -2
- package/dist/capabilities.js +1 -2
- package/dist/client/react/drivers/rn-reusables.d.ts +1 -2
- package/dist/client/react/drivers/rn-reusables.js +1 -2
- package/dist/client/react/drivers/shadcn.d.ts +1 -2
- package/dist/client/react/drivers/shadcn.js +1 -2
- package/dist/client/react/feature-render.d.ts +1 -2
- package/dist/client/react/feature-render.js +1 -2
- package/dist/client/react/form-render.d.ts +1 -2
- package/dist/client/react/form-render.js +1 -2
- package/dist/contracts-adapter-hydration.d.ts +1 -2
- package/dist/contracts-adapter-hydration.js +1 -2
- package/dist/contracts-adapter-input.d.ts +1 -2
- package/dist/contracts-adapter-input.js +1 -2
- package/dist/data-views/query-generator.d.ts +1 -2
- package/dist/data-views/query-generator.js +1 -2
- package/dist/data-views/runtime.d.ts +1 -2
- package/dist/data-views/runtime.js +1 -2
- package/dist/data-views.d.ts +1 -2
- package/dist/data-views.js +1 -2
- package/dist/events.d.ts +1 -2
- package/dist/events.js +1 -2
- package/dist/experiments/evaluator.d.ts +1 -2
- package/dist/experiments/evaluator.js +1 -2
- package/dist/experiments/spec-resolver.d.ts +1 -2
- package/dist/experiments/spec.d.ts +1 -2
- package/dist/experiments/spec.js +1 -2
- package/dist/features.d.ts +1 -2
- package/dist/features.js +1 -2
- package/dist/forms.d.ts +1 -2
- package/dist/forms.js +1 -2
- package/dist/graphql-federation/dist/index.js +1 -2
- package/dist/install.d.ts +1 -2
- package/dist/install.js +1 -2
- package/dist/integrations/binding.d.ts +1 -2
- package/dist/integrations/connection.d.ts +1 -2
- package/dist/integrations/contracts.d.ts +103 -104
- package/dist/integrations/contracts.js +1 -2
- package/dist/integrations/health.d.ts +1 -2
- package/dist/integrations/health.js +1 -2
- package/dist/integrations/openbanking/contracts/accounts.d.ts +67 -68
- package/dist/integrations/openbanking/contracts/accounts.js +1 -2
- package/dist/integrations/openbanking/contracts/balances.d.ts +35 -36
- package/dist/integrations/openbanking/contracts/balances.js +1 -2
- package/dist/integrations/openbanking/contracts/index.d.ts +1 -2
- package/dist/integrations/openbanking/contracts/index.js +1 -2
- package/dist/integrations/openbanking/contracts/transactions.d.ts +49 -50
- package/dist/integrations/openbanking/contracts/transactions.js +1 -2
- package/dist/integrations/openbanking/guards.d.ts +1 -2
- package/dist/integrations/openbanking/guards.js +1 -2
- package/dist/integrations/openbanking/models.d.ts +56 -57
- package/dist/integrations/openbanking/models.js +1 -2
- package/dist/integrations/openbanking/telemetry.d.ts +1 -2
- package/dist/integrations/openbanking/telemetry.js +1 -2
- package/dist/integrations/providers/calendar.d.ts +1 -2
- package/dist/integrations/providers/elevenlabs.d.ts +1 -2
- package/dist/integrations/providers/elevenlabs.js +1 -2
- package/dist/integrations/providers/email.d.ts +1 -2
- package/dist/integrations/providers/embedding.d.ts +1 -2
- package/dist/integrations/providers/gcs-storage.d.ts +1 -2
- package/dist/integrations/providers/gcs-storage.js +1 -2
- package/dist/integrations/providers/gmail.d.ts +1 -2
- package/dist/integrations/providers/gmail.js +1 -2
- package/dist/integrations/providers/google-calendar.d.ts +1 -2
- package/dist/integrations/providers/google-calendar.js +1 -2
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +1 -2
- package/dist/integrations/providers/impls/elevenlabs-voice.js +1 -2
- package/dist/integrations/providers/impls/gcs-storage.d.ts +1 -2
- package/dist/integrations/providers/impls/gcs-storage.js +1 -2
- package/dist/integrations/providers/impls/gmail-inbound.d.ts +1 -2
- package/dist/integrations/providers/impls/gmail-inbound.js +1 -2
- package/dist/integrations/providers/impls/gmail-outbound.d.ts +1 -2
- package/dist/integrations/providers/impls/gmail-outbound.js +1 -2
- package/dist/integrations/providers/impls/google-calendar.d.ts +1 -2
- package/dist/integrations/providers/impls/google-calendar.js +1 -2
- package/dist/integrations/providers/impls/mistral-embedding.d.ts +1 -2
- package/dist/integrations/providers/impls/mistral-embedding.js +1 -2
- package/dist/integrations/providers/impls/mistral-llm.d.ts +1 -2
- package/dist/integrations/providers/impls/mistral-llm.js +1 -2
- package/dist/integrations/providers/impls/postmark-email.d.ts +1 -2
- package/dist/integrations/providers/impls/postmark-email.js +1 -2
- package/dist/integrations/providers/impls/powens-client.d.ts +1 -2
- package/dist/integrations/providers/impls/powens-client.js +1 -2
- package/dist/integrations/providers/impls/powens-openbanking.d.ts +1 -2
- package/dist/integrations/providers/impls/powens-openbanking.js +1 -2
- package/dist/integrations/providers/impls/provider-factory.d.ts +1 -2
- package/dist/integrations/providers/impls/provider-factory.js +1 -2
- package/dist/integrations/providers/impls/qdrant-vector.d.ts +1 -2
- package/dist/integrations/providers/impls/qdrant-vector.js +1 -2
- package/dist/integrations/providers/impls/stripe-payments.d.ts +1 -2
- package/dist/integrations/providers/impls/stripe-payments.js +1 -2
- package/dist/integrations/providers/impls/twilio-sms.d.ts +1 -2
- package/dist/integrations/providers/impls/twilio-sms.js +1 -2
- package/dist/integrations/providers/llm.d.ts +1 -2
- package/dist/integrations/providers/mistral.d.ts +1 -2
- package/dist/integrations/providers/mistral.js +1 -2
- package/dist/integrations/providers/openbanking.d.ts +1 -2
- package/dist/integrations/providers/payments.d.ts +1 -2
- package/dist/integrations/providers/postmark.d.ts +1 -2
- package/dist/integrations/providers/postmark.js +1 -2
- package/dist/integrations/providers/powens.d.ts +1 -2
- package/dist/integrations/providers/powens.js +1 -2
- package/dist/integrations/providers/qdrant.d.ts +1 -2
- package/dist/integrations/providers/qdrant.js +1 -2
- package/dist/integrations/providers/sms.d.ts +1 -2
- package/dist/integrations/providers/storage.d.ts +1 -2
- package/dist/integrations/providers/stripe.d.ts +1 -2
- package/dist/integrations/providers/stripe.js +1 -2
- package/dist/integrations/providers/twilio-sms.d.ts +1 -2
- package/dist/integrations/providers/twilio-sms.js +1 -2
- package/dist/integrations/providers/vector-store.d.ts +1 -2
- package/dist/integrations/providers/voice.d.ts +1 -2
- package/dist/integrations/runtime.d.ts +1 -2
- package/dist/integrations/runtime.js +1 -2
- package/dist/integrations/secrets/env-secret-provider.d.ts +1 -2
- package/dist/integrations/secrets/env-secret-provider.js +1 -2
- package/dist/integrations/secrets/gcp-secret-manager.d.ts +1 -2
- package/dist/integrations/secrets/gcp-secret-manager.js +1 -2
- package/dist/integrations/secrets/manager.d.ts +1 -2
- package/dist/integrations/secrets/manager.js +1 -2
- package/dist/integrations/secrets/provider.d.ts +1 -2
- package/dist/integrations/secrets/provider.js +1 -2
- package/dist/integrations/spec.d.ts +1 -2
- package/dist/integrations/spec.js +1 -2
- package/dist/jobs/gcp-cloud-tasks.d.ts +1 -2
- package/dist/jobs/gcp-cloud-tasks.js +1 -2
- package/dist/jobs/gcp-pubsub.d.ts +1 -2
- package/dist/jobs/gcp-pubsub.js +1 -2
- package/dist/jobs/handlers/gmail-sync-handler.d.ts +1 -2
- package/dist/jobs/handlers/gmail-sync-handler.js +1 -2
- package/dist/jobs/handlers/storage-document-handler.d.ts +1 -2
- package/dist/jobs/handlers/storage-document-handler.js +1 -2
- package/dist/jobs/memory-queue.d.ts +1 -2
- package/dist/jobs/memory-queue.js +1 -2
- package/dist/jobs/queue.d.ts +1 -2
- package/dist/jsonschema.d.ts +1 -2
- package/dist/jsonschema.js +1 -2
- package/dist/knowledge/binding.d.ts +1 -2
- package/dist/knowledge/contracts.d.ts +67 -68
- package/dist/knowledge/contracts.js +1 -2
- package/dist/knowledge/ingestion/document-processor.d.ts +1 -2
- package/dist/knowledge/ingestion/document-processor.js +1 -2
- package/dist/knowledge/ingestion/embedding-service.d.ts +1 -2
- package/dist/knowledge/ingestion/embedding-service.js +1 -2
- package/dist/knowledge/ingestion/gmail-adapter.d.ts +1 -2
- package/dist/knowledge/ingestion/gmail-adapter.js +1 -2
- package/dist/knowledge/ingestion/storage-adapter.d.ts +1 -2
- package/dist/knowledge/ingestion/storage-adapter.js +1 -2
- package/dist/knowledge/ingestion/vector-indexer.d.ts +1 -2
- package/dist/knowledge/ingestion/vector-indexer.js +1 -2
- package/dist/knowledge/query/service.d.ts +1 -2
- package/dist/knowledge/query/service.js +1 -2
- package/dist/knowledge/runtime.d.ts +1 -2
- package/dist/knowledge/runtime.js +1 -2
- package/dist/knowledge/source.d.ts +1 -2
- package/dist/knowledge/spaces/email-threads.d.ts +1 -2
- package/dist/knowledge/spaces/email-threads.js +1 -2
- package/dist/knowledge/spaces/financial-docs.d.ts +1 -2
- package/dist/knowledge/spaces/financial-docs.js +1 -2
- package/dist/knowledge/spaces/financial-overview.d.ts +1 -2
- package/dist/knowledge/spaces/financial-overview.js +1 -2
- package/dist/knowledge/spaces/product-canon.d.ts +1 -2
- package/dist/knowledge/spaces/product-canon.js +1 -2
- package/dist/knowledge/spaces/support-faq.d.ts +1 -2
- package/dist/knowledge/spaces/support-faq.js +1 -2
- package/dist/knowledge/spaces/uploaded-docs.d.ts +1 -2
- package/dist/knowledge/spaces/uploaded-docs.js +1 -2
- package/dist/knowledge/spec.d.ts +1 -2
- package/dist/knowledge/spec.js +1 -2
- package/dist/markdown.d.ts +1 -2
- package/dist/markdown.js +1 -2
- package/dist/migrations.d.ts +1 -2
- package/dist/migrations.js +1 -2
- package/dist/onboarding-base.d.ts +30 -31
- package/dist/onboarding-base.js +1 -2
- package/dist/ownership.d.ts +1 -2
- package/dist/ownership.js +1 -2
- package/dist/policy/engine.d.ts +1 -2
- package/dist/policy/engine.js +1 -2
- package/dist/policy/opa-adapter.d.ts +1 -2
- package/dist/policy/opa-adapter.js +1 -2
- package/dist/policy/spec.d.ts +1 -2
- package/dist/policy/spec.js +1 -2
- package/dist/presentations.backcompat.d.ts +1 -2
- package/dist/presentations.backcompat.js +1 -2
- package/dist/presentations.d.ts +1 -2
- package/dist/presentations.js +1 -2
- package/dist/presentations.v2.d.ts +1 -2
- package/dist/presentations.v2.js +1 -2
- package/dist/prompt.d.ts +1 -2
- package/dist/prompt.js +1 -2
- package/dist/promptRegistry.d.ts +1 -2
- package/dist/promptRegistry.js +1 -2
- package/dist/regenerator/adapters.d.ts +1 -2
- package/dist/regenerator/executor.d.ts +1 -2
- package/dist/regenerator/executor.js +1 -2
- package/dist/regenerator/service.d.ts +1 -2
- package/dist/regenerator/service.js +1 -2
- package/dist/regenerator/sinks.d.ts +1 -2
- package/dist/regenerator/sinks.js +1 -2
- package/dist/regenerator/types.d.ts +1 -2
- package/dist/regenerator/utils.d.ts +1 -2
- package/dist/regenerator/utils.js +1 -2
- package/dist/registry.d.ts +1 -2
- package/dist/registry.js +1 -2
- package/dist/resources.d.ts +1 -2
- package/dist/resources.js +1 -2
- package/dist/schema/dist/FieldType.js +1 -2
- package/dist/schema/dist/ScalarTypeEnum.js +1 -2
- package/dist/schema/dist/SchemaModel.js +1 -2
- package/dist/server/graphql-pothos.d.ts +1 -2
- package/dist/server/graphql-pothos.js +1 -2
- package/dist/server/graphql-schema-export.d.ts +1 -2
- package/dist/server/graphql-schema-export.js +1 -2
- package/dist/server/provider-mcp.d.ts +1 -2
- package/dist/server/provider-mcp.js +1 -2
- package/dist/server/rest-elysia.d.ts +1 -2
- package/dist/server/rest-elysia.js +1 -2
- package/dist/server/rest-express.d.ts +1 -2
- package/dist/server/rest-express.js +1 -2
- package/dist/server/rest-generic.d.ts +1 -2
- package/dist/server/rest-generic.js +1 -2
- package/dist/server/rest-next-app.d.ts +1 -2
- package/dist/server/rest-next-app.js +1 -2
- package/dist/server/rest-next-mcp.d.ts +1 -2
- package/dist/server/rest-next-mcp.js +1 -2
- package/dist/server/rest-next-pages.d.ts +1 -2
- package/dist/server/rest-next-pages.js +1 -2
- package/dist/spec.d.ts +1 -2
- package/dist/spec.js +1 -2
- package/dist/telemetry/anomaly.d.ts +1 -2
- package/dist/telemetry/anomaly.js +1 -2
- package/dist/telemetry/spec.d.ts +1 -2
- package/dist/telemetry/spec.js +1 -2
- package/dist/telemetry/tracker.d.ts +1 -2
- package/dist/telemetry/tracker.js +1 -2
- package/dist/tests/runner.d.ts +1 -2
- package/dist/tests/runner.js +1 -2
- package/dist/tests/spec.d.ts +1 -2
- package/dist/tests/spec.js +1 -2
- package/dist/themes.d.ts +1 -2
- package/dist/themes.js +1 -2
- package/dist/translations/catalog.d.ts +1 -2
- package/dist/translations/tenant.d.ts +1 -2
- package/dist/types.d.ts +1 -2
- package/dist/workflow/adapters/db-adapter.d.ts +1 -2
- package/dist/workflow/adapters/db-adapter.js +1 -2
- package/dist/workflow/adapters/file-adapter.d.ts +1 -2
- package/dist/workflow/adapters/file-adapter.js +1 -2
- package/dist/workflow/adapters/memory-store.d.ts +1 -2
- package/dist/workflow/adapters/memory-store.js +1 -2
- package/dist/workflow/expression.d.ts +1 -2
- package/dist/workflow/expression.js +1 -2
- package/dist/workflow/runner.d.ts +1 -2
- package/dist/workflow/runner.js +1 -2
- package/dist/workflow/sla-monitor.d.ts +1 -2
- package/dist/workflow/sla-monitor.js +1 -2
- package/dist/workflow/spec.d.ts +1 -2
- package/dist/workflow/spec.js +1 -2
- package/dist/workflow/state.d.ts +1 -2
- package/dist/workflow/validation.d.ts +1 -2
- package/dist/workflow/validation.js +1 -2
- package/package.json +6 -6
- package/dist/app-config/branding.d.ts.map +0 -1
- package/dist/app-config/contracts.d.ts.map +0 -1
- package/dist/app-config/contracts.js.map +0 -1
- package/dist/app-config/events.d.ts.map +0 -1
- package/dist/app-config/events.js.map +0 -1
- package/dist/app-config/lifecycle-contracts.d.ts.map +0 -1
- package/dist/app-config/lifecycle-contracts.js.map +0 -1
- package/dist/app-config/lifecycle.d.ts.map +0 -1
- package/dist/app-config/runtime.d.ts.map +0 -1
- package/dist/app-config/runtime.js.map +0 -1
- package/dist/app-config/spec.d.ts.map +0 -1
- package/dist/app-config/spec.js.map +0 -1
- package/dist/app-config/validation.d.ts.map +0 -1
- package/dist/app-config/validation.js.map +0 -1
- package/dist/capabilities/openbanking.d.ts.map +0 -1
- package/dist/capabilities/openbanking.js.map +0 -1
- package/dist/capabilities.d.ts.map +0 -1
- package/dist/capabilities.js.map +0 -1
- package/dist/client/react/drivers/rn-reusables.d.ts.map +0 -1
- package/dist/client/react/drivers/rn-reusables.js.map +0 -1
- package/dist/client/react/drivers/shadcn.d.ts.map +0 -1
- package/dist/client/react/drivers/shadcn.js.map +0 -1
- package/dist/client/react/feature-render.d.ts.map +0 -1
- package/dist/client/react/feature-render.js.map +0 -1
- package/dist/client/react/form-render.d.ts.map +0 -1
- package/dist/client/react/form-render.js.map +0 -1
- package/dist/contracts-adapter-hydration.d.ts.map +0 -1
- package/dist/contracts-adapter-hydration.js.map +0 -1
- package/dist/contracts-adapter-input.d.ts.map +0 -1
- package/dist/contracts-adapter-input.js.map +0 -1
- package/dist/data-views/query-generator.d.ts.map +0 -1
- package/dist/data-views/query-generator.js.map +0 -1
- package/dist/data-views/runtime.d.ts.map +0 -1
- package/dist/data-views/runtime.js.map +0 -1
- package/dist/data-views.d.ts.map +0 -1
- package/dist/data-views.js.map +0 -1
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js.map +0 -1
- package/dist/experiments/evaluator.d.ts.map +0 -1
- package/dist/experiments/evaluator.js.map +0 -1
- package/dist/experiments/spec-resolver.d.ts.map +0 -1
- package/dist/experiments/spec.d.ts.map +0 -1
- package/dist/experiments/spec.js.map +0 -1
- package/dist/features.d.ts.map +0 -1
- package/dist/features.js.map +0 -1
- package/dist/forms.d.ts.map +0 -1
- package/dist/forms.js.map +0 -1
- package/dist/graphql-federation/dist/index.js.map +0 -1
- package/dist/install.d.ts.map +0 -1
- package/dist/install.js.map +0 -1
- package/dist/integrations/binding.d.ts.map +0 -1
- package/dist/integrations/connection.d.ts.map +0 -1
- package/dist/integrations/contracts.d.ts.map +0 -1
- package/dist/integrations/contracts.js.map +0 -1
- package/dist/integrations/health.d.ts.map +0 -1
- package/dist/integrations/health.js.map +0 -1
- package/dist/integrations/openbanking/contracts/accounts.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/accounts.js.map +0 -1
- package/dist/integrations/openbanking/contracts/balances.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/balances.js.map +0 -1
- package/dist/integrations/openbanking/contracts/index.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/index.js.map +0 -1
- package/dist/integrations/openbanking/contracts/transactions.d.ts.map +0 -1
- package/dist/integrations/openbanking/contracts/transactions.js.map +0 -1
- package/dist/integrations/openbanking/guards.d.ts.map +0 -1
- package/dist/integrations/openbanking/guards.js.map +0 -1
- package/dist/integrations/openbanking/models.d.ts.map +0 -1
- package/dist/integrations/openbanking/models.js.map +0 -1
- package/dist/integrations/openbanking/telemetry.d.ts.map +0 -1
- package/dist/integrations/openbanking/telemetry.js.map +0 -1
- package/dist/integrations/providers/calendar.d.ts.map +0 -1
- package/dist/integrations/providers/elevenlabs.d.ts.map +0 -1
- package/dist/integrations/providers/elevenlabs.js.map +0 -1
- package/dist/integrations/providers/email.d.ts.map +0 -1
- package/dist/integrations/providers/embedding.d.ts.map +0 -1
- package/dist/integrations/providers/gcs-storage.d.ts.map +0 -1
- package/dist/integrations/providers/gcs-storage.js.map +0 -1
- package/dist/integrations/providers/gmail.d.ts.map +0 -1
- package/dist/integrations/providers/gmail.js.map +0 -1
- package/dist/integrations/providers/google-calendar.d.ts.map +0 -1
- package/dist/integrations/providers/google-calendar.js.map +0 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +0 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.js.map +0 -1
- package/dist/integrations/providers/impls/gcs-storage.d.ts.map +0 -1
- package/dist/integrations/providers/impls/gcs-storage.js.map +0 -1
- package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +0 -1
- package/dist/integrations/providers/impls/gmail-inbound.js.map +0 -1
- package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +0 -1
- package/dist/integrations/providers/impls/gmail-outbound.js.map +0 -1
- package/dist/integrations/providers/impls/google-calendar.d.ts.map +0 -1
- package/dist/integrations/providers/impls/google-calendar.js.map +0 -1
- package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +0 -1
- package/dist/integrations/providers/impls/mistral-embedding.js.map +0 -1
- package/dist/integrations/providers/impls/mistral-llm.d.ts.map +0 -1
- package/dist/integrations/providers/impls/mistral-llm.js.map +0 -1
- package/dist/integrations/providers/impls/postmark-email.d.ts.map +0 -1
- package/dist/integrations/providers/impls/postmark-email.js.map +0 -1
- package/dist/integrations/providers/impls/powens-client.d.ts.map +0 -1
- package/dist/integrations/providers/impls/powens-client.js.map +0 -1
- package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +0 -1
- package/dist/integrations/providers/impls/powens-openbanking.js.map +0 -1
- package/dist/integrations/providers/impls/provider-factory.d.ts.map +0 -1
- package/dist/integrations/providers/impls/provider-factory.js.map +0 -1
- package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +0 -1
- package/dist/integrations/providers/impls/qdrant-vector.js.map +0 -1
- package/dist/integrations/providers/impls/stripe-payments.d.ts.map +0 -1
- package/dist/integrations/providers/impls/stripe-payments.js.map +0 -1
- package/dist/integrations/providers/impls/twilio-sms.d.ts.map +0 -1
- package/dist/integrations/providers/impls/twilio-sms.js.map +0 -1
- package/dist/integrations/providers/llm.d.ts.map +0 -1
- package/dist/integrations/providers/mistral.d.ts.map +0 -1
- package/dist/integrations/providers/mistral.js.map +0 -1
- package/dist/integrations/providers/openbanking.d.ts.map +0 -1
- package/dist/integrations/providers/payments.d.ts.map +0 -1
- package/dist/integrations/providers/postmark.d.ts.map +0 -1
- package/dist/integrations/providers/postmark.js.map +0 -1
- package/dist/integrations/providers/powens.d.ts.map +0 -1
- package/dist/integrations/providers/powens.js.map +0 -1
- package/dist/integrations/providers/qdrant.d.ts.map +0 -1
- package/dist/integrations/providers/qdrant.js.map +0 -1
- package/dist/integrations/providers/sms.d.ts.map +0 -1
- package/dist/integrations/providers/storage.d.ts.map +0 -1
- package/dist/integrations/providers/stripe.d.ts.map +0 -1
- package/dist/integrations/providers/stripe.js.map +0 -1
- package/dist/integrations/providers/twilio-sms.d.ts.map +0 -1
- package/dist/integrations/providers/twilio-sms.js.map +0 -1
- package/dist/integrations/providers/vector-store.d.ts.map +0 -1
- package/dist/integrations/providers/voice.d.ts.map +0 -1
- package/dist/integrations/runtime.d.ts.map +0 -1
- package/dist/integrations/runtime.js.map +0 -1
- package/dist/integrations/secrets/env-secret-provider.d.ts.map +0 -1
- package/dist/integrations/secrets/env-secret-provider.js.map +0 -1
- package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +0 -1
- package/dist/integrations/secrets/gcp-secret-manager.js.map +0 -1
- package/dist/integrations/secrets/manager.d.ts.map +0 -1
- package/dist/integrations/secrets/manager.js.map +0 -1
- package/dist/integrations/secrets/provider.d.ts.map +0 -1
- package/dist/integrations/secrets/provider.js.map +0 -1
- package/dist/integrations/spec.d.ts.map +0 -1
- package/dist/integrations/spec.js.map +0 -1
- package/dist/jobs/gcp-cloud-tasks.d.ts.map +0 -1
- package/dist/jobs/gcp-cloud-tasks.js.map +0 -1
- package/dist/jobs/gcp-pubsub.d.ts.map +0 -1
- package/dist/jobs/gcp-pubsub.js.map +0 -1
- package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +0 -1
- package/dist/jobs/handlers/gmail-sync-handler.js.map +0 -1
- package/dist/jobs/handlers/storage-document-handler.d.ts.map +0 -1
- package/dist/jobs/handlers/storage-document-handler.js.map +0 -1
- package/dist/jobs/memory-queue.d.ts.map +0 -1
- package/dist/jobs/memory-queue.js.map +0 -1
- package/dist/jobs/queue.d.ts.map +0 -1
- package/dist/jsonschema.d.ts.map +0 -1
- package/dist/jsonschema.js.map +0 -1
- package/dist/knowledge/binding.d.ts.map +0 -1
- package/dist/knowledge/contracts.d.ts.map +0 -1
- package/dist/knowledge/contracts.js.map +0 -1
- package/dist/knowledge/ingestion/document-processor.d.ts.map +0 -1
- package/dist/knowledge/ingestion/document-processor.js.map +0 -1
- package/dist/knowledge/ingestion/embedding-service.d.ts.map +0 -1
- package/dist/knowledge/ingestion/embedding-service.js.map +0 -1
- package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +0 -1
- package/dist/knowledge/ingestion/gmail-adapter.js.map +0 -1
- package/dist/knowledge/ingestion/storage-adapter.d.ts.map +0 -1
- package/dist/knowledge/ingestion/storage-adapter.js.map +0 -1
- package/dist/knowledge/ingestion/vector-indexer.d.ts.map +0 -1
- package/dist/knowledge/ingestion/vector-indexer.js.map +0 -1
- package/dist/knowledge/query/service.d.ts.map +0 -1
- package/dist/knowledge/query/service.js.map +0 -1
- package/dist/knowledge/runtime.d.ts.map +0 -1
- package/dist/knowledge/runtime.js.map +0 -1
- package/dist/knowledge/source.d.ts.map +0 -1
- package/dist/knowledge/spaces/email-threads.d.ts.map +0 -1
- package/dist/knowledge/spaces/email-threads.js.map +0 -1
- package/dist/knowledge/spaces/financial-docs.d.ts.map +0 -1
- package/dist/knowledge/spaces/financial-docs.js.map +0 -1
- package/dist/knowledge/spaces/financial-overview.d.ts.map +0 -1
- package/dist/knowledge/spaces/financial-overview.js.map +0 -1
- package/dist/knowledge/spaces/product-canon.d.ts.map +0 -1
- package/dist/knowledge/spaces/product-canon.js.map +0 -1
- package/dist/knowledge/spaces/support-faq.d.ts.map +0 -1
- package/dist/knowledge/spaces/support-faq.js.map +0 -1
- package/dist/knowledge/spaces/uploaded-docs.d.ts.map +0 -1
- package/dist/knowledge/spaces/uploaded-docs.js.map +0 -1
- package/dist/knowledge/spec.d.ts.map +0 -1
- package/dist/knowledge/spec.js.map +0 -1
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/migrations.d.ts.map +0 -1
- package/dist/migrations.js.map +0 -1
- package/dist/onboarding-base.d.ts.map +0 -1
- package/dist/onboarding-base.js.map +0 -1
- package/dist/ownership.d.ts.map +0 -1
- package/dist/ownership.js.map +0 -1
- package/dist/policy/engine.d.ts.map +0 -1
- package/dist/policy/engine.js.map +0 -1
- package/dist/policy/opa-adapter.d.ts.map +0 -1
- package/dist/policy/opa-adapter.js.map +0 -1
- package/dist/policy/spec.d.ts.map +0 -1
- package/dist/policy/spec.js.map +0 -1
- package/dist/presentations.backcompat.d.ts.map +0 -1
- package/dist/presentations.backcompat.js.map +0 -1
- package/dist/presentations.d.ts.map +0 -1
- package/dist/presentations.js.map +0 -1
- package/dist/presentations.v2.d.ts.map +0 -1
- package/dist/presentations.v2.js.map +0 -1
- package/dist/prompt.d.ts.map +0 -1
- package/dist/prompt.js.map +0 -1
- package/dist/promptRegistry.d.ts.map +0 -1
- package/dist/promptRegistry.js.map +0 -1
- package/dist/regenerator/adapters.d.ts.map +0 -1
- package/dist/regenerator/executor.d.ts.map +0 -1
- package/dist/regenerator/executor.js.map +0 -1
- package/dist/regenerator/service.d.ts.map +0 -1
- package/dist/regenerator/service.js.map +0 -1
- package/dist/regenerator/sinks.d.ts.map +0 -1
- package/dist/regenerator/sinks.js.map +0 -1
- package/dist/regenerator/types.d.ts.map +0 -1
- package/dist/regenerator/utils.d.ts.map +0 -1
- package/dist/regenerator/utils.js.map +0 -1
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js.map +0 -1
- package/dist/resources.d.ts.map +0 -1
- package/dist/resources.js.map +0 -1
- package/dist/schema/dist/FieldType.js.map +0 -1
- package/dist/schema/dist/ScalarTypeEnum.js.map +0 -1
- package/dist/schema/dist/SchemaModel.js.map +0 -1
- package/dist/server/graphql-pothos.d.ts.map +0 -1
- package/dist/server/graphql-pothos.js.map +0 -1
- package/dist/server/graphql-schema-export.d.ts.map +0 -1
- package/dist/server/graphql-schema-export.js.map +0 -1
- package/dist/server/provider-mcp.d.ts.map +0 -1
- package/dist/server/provider-mcp.js.map +0 -1
- package/dist/server/rest-elysia.d.ts.map +0 -1
- package/dist/server/rest-elysia.js.map +0 -1
- package/dist/server/rest-express.d.ts.map +0 -1
- package/dist/server/rest-express.js.map +0 -1
- package/dist/server/rest-generic.d.ts.map +0 -1
- package/dist/server/rest-generic.js.map +0 -1
- package/dist/server/rest-next-app.d.ts.map +0 -1
- package/dist/server/rest-next-app.js.map +0 -1
- package/dist/server/rest-next-mcp.d.ts.map +0 -1
- package/dist/server/rest-next-mcp.js.map +0 -1
- package/dist/server/rest-next-pages.d.ts.map +0 -1
- package/dist/server/rest-next-pages.js.map +0 -1
- package/dist/spec.d.ts.map +0 -1
- package/dist/spec.js.map +0 -1
- package/dist/telemetry/anomaly.d.ts.map +0 -1
- package/dist/telemetry/anomaly.js.map +0 -1
- package/dist/telemetry/spec.d.ts.map +0 -1
- package/dist/telemetry/spec.js.map +0 -1
- package/dist/telemetry/tracker.d.ts.map +0 -1
- package/dist/telemetry/tracker.js.map +0 -1
- package/dist/tests/runner.d.ts.map +0 -1
- package/dist/tests/runner.js.map +0 -1
- package/dist/tests/spec.d.ts.map +0 -1
- package/dist/tests/spec.js.map +0 -1
- package/dist/themes.d.ts.map +0 -1
- package/dist/themes.js.map +0 -1
- package/dist/translations/catalog.d.ts.map +0 -1
- package/dist/translations/tenant.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/workflow/adapters/db-adapter.d.ts.map +0 -1
- package/dist/workflow/adapters/db-adapter.js.map +0 -1
- package/dist/workflow/adapters/file-adapter.d.ts.map +0 -1
- package/dist/workflow/adapters/file-adapter.js.map +0 -1
- package/dist/workflow/adapters/memory-store.d.ts.map +0 -1
- package/dist/workflow/adapters/memory-store.js.map +0 -1
- package/dist/workflow/expression.d.ts.map +0 -1
- package/dist/workflow/expression.js.map +0 -1
- package/dist/workflow/runner.d.ts.map +0 -1
- package/dist/workflow/runner.js.map +0 -1
- package/dist/workflow/sla-monitor.d.ts.map +0 -1
- package/dist/workflow/sla-monitor.js.map +0 -1
- package/dist/workflow/spec.d.ts.map +0 -1
- package/dist/workflow/spec.js.map +0 -1
- package/dist/workflow/state.d.ts.map +0 -1
- package/dist/workflow/validation.d.ts.map +0 -1
- package/dist/workflow/validation.js.map +0 -1
|
@@ -2,80 +2,80 @@ import { EventSpec } from "../events.js";
|
|
|
2
2
|
import { ContractSpec } from "../spec.js";
|
|
3
3
|
import { SpecRegistry } from "../registry.js";
|
|
4
4
|
import "../index.js";
|
|
5
|
-
import * as
|
|
5
|
+
import * as _lssm_lib_schema102 from "@lssm/lib.schema";
|
|
6
6
|
import { SchemaModel } from "@lssm/lib.schema";
|
|
7
7
|
|
|
8
8
|
//#region src/app-config/lifecycle-contracts.d.ts
|
|
9
9
|
declare const CreateTenantConfigDraftCommand: ContractSpec<SchemaModel<{
|
|
10
10
|
tenantId: {
|
|
11
|
-
type:
|
|
11
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
12
12
|
isOptional: false;
|
|
13
13
|
};
|
|
14
14
|
appId: {
|
|
15
|
-
type:
|
|
15
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
16
16
|
isOptional: false;
|
|
17
17
|
};
|
|
18
18
|
blueprintName: {
|
|
19
|
-
type:
|
|
19
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
20
20
|
isOptional: false;
|
|
21
21
|
};
|
|
22
22
|
blueprintVersion: {
|
|
23
|
-
type:
|
|
23
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
24
24
|
isOptional: false;
|
|
25
25
|
};
|
|
26
26
|
environment: {
|
|
27
|
-
type:
|
|
27
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
28
28
|
isOptional: true;
|
|
29
29
|
};
|
|
30
30
|
fromVersion: {
|
|
31
|
-
type:
|
|
31
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
32
32
|
isOptional: true;
|
|
33
33
|
};
|
|
34
34
|
createdBy: {
|
|
35
|
-
type:
|
|
35
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
36
36
|
isOptional: false;
|
|
37
37
|
};
|
|
38
38
|
}>, SchemaModel<{
|
|
39
39
|
version: {
|
|
40
|
-
type:
|
|
40
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
41
41
|
isOptional: false;
|
|
42
42
|
};
|
|
43
43
|
status: {
|
|
44
|
-
type:
|
|
44
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
45
45
|
isOptional: false;
|
|
46
46
|
};
|
|
47
47
|
createdAt: {
|
|
48
|
-
type:
|
|
48
|
+
type: _lssm_lib_schema102.FieldType<Date, string>;
|
|
49
49
|
isOptional: false;
|
|
50
50
|
};
|
|
51
51
|
}>, {
|
|
52
52
|
ref: EventSpec<SchemaModel<{
|
|
53
53
|
tenantId: {
|
|
54
|
-
type:
|
|
54
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
55
55
|
isOptional: false;
|
|
56
56
|
};
|
|
57
57
|
appId: {
|
|
58
|
-
type:
|
|
58
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
59
59
|
isOptional: false;
|
|
60
60
|
};
|
|
61
61
|
version: {
|
|
62
|
-
type:
|
|
62
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
63
63
|
isOptional: false;
|
|
64
64
|
};
|
|
65
65
|
blueprintName: {
|
|
66
|
-
type:
|
|
66
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
67
67
|
isOptional: false;
|
|
68
68
|
};
|
|
69
69
|
blueprintVersion: {
|
|
70
|
-
type:
|
|
70
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
71
71
|
isOptional: false;
|
|
72
72
|
};
|
|
73
73
|
createdBy: {
|
|
74
|
-
type:
|
|
74
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
75
75
|
isOptional: false;
|
|
76
76
|
};
|
|
77
77
|
clonedFrom: {
|
|
78
|
-
type:
|
|
78
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
79
79
|
isOptional: true;
|
|
80
80
|
};
|
|
81
81
|
}>>;
|
|
@@ -83,55 +83,55 @@ declare const CreateTenantConfigDraftCommand: ContractSpec<SchemaModel<{
|
|
|
83
83
|
}[]>;
|
|
84
84
|
declare const PromoteTenantConfigToPreviewCommand: ContractSpec<SchemaModel<{
|
|
85
85
|
tenantId: {
|
|
86
|
-
type:
|
|
86
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
87
87
|
isOptional: false;
|
|
88
88
|
};
|
|
89
89
|
appId: {
|
|
90
|
-
type:
|
|
90
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
91
91
|
isOptional: false;
|
|
92
92
|
};
|
|
93
93
|
version: {
|
|
94
|
-
type:
|
|
94
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
95
95
|
isOptional: false;
|
|
96
96
|
};
|
|
97
97
|
promotedBy: {
|
|
98
|
-
type:
|
|
98
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
99
99
|
isOptional: false;
|
|
100
100
|
};
|
|
101
101
|
}>, SchemaModel<{
|
|
102
102
|
version: {
|
|
103
|
-
type:
|
|
103
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
104
104
|
isOptional: false;
|
|
105
105
|
};
|
|
106
106
|
status: {
|
|
107
|
-
type:
|
|
107
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
108
108
|
isOptional: false;
|
|
109
109
|
};
|
|
110
110
|
warnings: {
|
|
111
|
-
type:
|
|
111
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
112
112
|
isOptional: true;
|
|
113
113
|
isArray: true;
|
|
114
114
|
};
|
|
115
115
|
}>, {
|
|
116
116
|
ref: EventSpec<SchemaModel<{
|
|
117
117
|
tenantId: {
|
|
118
|
-
type:
|
|
118
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
119
119
|
isOptional: false;
|
|
120
120
|
};
|
|
121
121
|
appId: {
|
|
122
|
-
type:
|
|
122
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
123
123
|
isOptional: false;
|
|
124
124
|
};
|
|
125
125
|
version: {
|
|
126
|
-
type:
|
|
126
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
127
127
|
isOptional: false;
|
|
128
128
|
};
|
|
129
129
|
promotedBy: {
|
|
130
|
-
type:
|
|
130
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
131
131
|
isOptional: false;
|
|
132
132
|
};
|
|
133
133
|
warnings: {
|
|
134
|
-
type:
|
|
134
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
135
135
|
isOptional: true;
|
|
136
136
|
isArray: true;
|
|
137
137
|
};
|
|
@@ -140,74 +140,74 @@ declare const PromoteTenantConfigToPreviewCommand: ContractSpec<SchemaModel<{
|
|
|
140
140
|
}[]>;
|
|
141
141
|
declare const PublishTenantConfigCommand: ContractSpec<SchemaModel<{
|
|
142
142
|
tenantId: {
|
|
143
|
-
type:
|
|
143
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
144
144
|
isOptional: false;
|
|
145
145
|
};
|
|
146
146
|
appId: {
|
|
147
|
-
type:
|
|
147
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
148
148
|
isOptional: false;
|
|
149
149
|
};
|
|
150
150
|
version: {
|
|
151
|
-
type:
|
|
151
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
152
152
|
isOptional: false;
|
|
153
153
|
};
|
|
154
154
|
environment: {
|
|
155
|
-
type:
|
|
155
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
156
156
|
isOptional: true;
|
|
157
157
|
};
|
|
158
158
|
publishedBy: {
|
|
159
|
-
type:
|
|
159
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
160
160
|
isOptional: false;
|
|
161
161
|
};
|
|
162
162
|
changeSummary: {
|
|
163
|
-
type:
|
|
163
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
164
164
|
isOptional: true;
|
|
165
165
|
};
|
|
166
166
|
}>, SchemaModel<{
|
|
167
167
|
version: {
|
|
168
|
-
type:
|
|
168
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
169
169
|
isOptional: false;
|
|
170
170
|
};
|
|
171
171
|
status: {
|
|
172
|
-
type:
|
|
172
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
173
173
|
isOptional: false;
|
|
174
174
|
};
|
|
175
175
|
previousVersion: {
|
|
176
|
-
type:
|
|
176
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
177
177
|
isOptional: true;
|
|
178
178
|
};
|
|
179
179
|
publishedAt: {
|
|
180
|
-
type:
|
|
180
|
+
type: _lssm_lib_schema102.FieldType<Date, string>;
|
|
181
181
|
isOptional: false;
|
|
182
182
|
};
|
|
183
183
|
}>, {
|
|
184
184
|
ref: EventSpec<SchemaModel<{
|
|
185
185
|
tenantId: {
|
|
186
|
-
type:
|
|
186
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
187
187
|
isOptional: false;
|
|
188
188
|
};
|
|
189
189
|
appId: {
|
|
190
|
-
type:
|
|
190
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
191
191
|
isOptional: false;
|
|
192
192
|
};
|
|
193
193
|
version: {
|
|
194
|
-
type:
|
|
194
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
195
195
|
isOptional: false;
|
|
196
196
|
};
|
|
197
197
|
previousVersion: {
|
|
198
|
-
type:
|
|
198
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
199
199
|
isOptional: true;
|
|
200
200
|
};
|
|
201
201
|
publishedBy: {
|
|
202
|
-
type:
|
|
202
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
203
203
|
isOptional: false;
|
|
204
204
|
};
|
|
205
205
|
changeSummary: {
|
|
206
|
-
type:
|
|
206
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
207
207
|
isOptional: true;
|
|
208
208
|
};
|
|
209
209
|
changedSections: {
|
|
210
|
-
type:
|
|
210
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
211
211
|
isOptional: true;
|
|
212
212
|
isArray: true;
|
|
213
213
|
};
|
|
@@ -216,70 +216,70 @@ declare const PublishTenantConfigCommand: ContractSpec<SchemaModel<{
|
|
|
216
216
|
}[]>;
|
|
217
217
|
declare const RollbackTenantConfigCommand: ContractSpec<SchemaModel<{
|
|
218
218
|
tenantId: {
|
|
219
|
-
type:
|
|
219
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
220
220
|
isOptional: false;
|
|
221
221
|
};
|
|
222
222
|
appId: {
|
|
223
|
-
type:
|
|
223
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
224
224
|
isOptional: false;
|
|
225
225
|
};
|
|
226
226
|
toVersion: {
|
|
227
|
-
type:
|
|
227
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
228
228
|
isOptional: false;
|
|
229
229
|
};
|
|
230
230
|
environment: {
|
|
231
|
-
type:
|
|
231
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
232
232
|
isOptional: true;
|
|
233
233
|
};
|
|
234
234
|
rolledBackBy: {
|
|
235
|
-
type:
|
|
235
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
236
236
|
isOptional: false;
|
|
237
237
|
};
|
|
238
238
|
reason: {
|
|
239
|
-
type:
|
|
239
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
240
240
|
isOptional: false;
|
|
241
241
|
};
|
|
242
242
|
}>, SchemaModel<{
|
|
243
243
|
newVersion: {
|
|
244
|
-
type:
|
|
244
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
245
245
|
isOptional: false;
|
|
246
246
|
};
|
|
247
247
|
status: {
|
|
248
|
-
type:
|
|
248
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
249
249
|
isOptional: false;
|
|
250
250
|
};
|
|
251
251
|
rolledBackFrom: {
|
|
252
|
-
type:
|
|
252
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
253
253
|
isOptional: false;
|
|
254
254
|
};
|
|
255
255
|
}>, {
|
|
256
256
|
ref: EventSpec<SchemaModel<{
|
|
257
257
|
tenantId: {
|
|
258
|
-
type:
|
|
258
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
259
259
|
isOptional: false;
|
|
260
260
|
};
|
|
261
261
|
appId: {
|
|
262
|
-
type:
|
|
262
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
263
263
|
isOptional: false;
|
|
264
264
|
};
|
|
265
265
|
newVersion: {
|
|
266
|
-
type:
|
|
266
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
267
267
|
isOptional: false;
|
|
268
268
|
};
|
|
269
269
|
rolledBackFrom: {
|
|
270
|
-
type:
|
|
270
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
271
271
|
isOptional: false;
|
|
272
272
|
};
|
|
273
273
|
rolledBackTo: {
|
|
274
|
-
type:
|
|
274
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
275
275
|
isOptional: false;
|
|
276
276
|
};
|
|
277
277
|
rolledBackBy: {
|
|
278
|
-
type:
|
|
278
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
279
279
|
isOptional: false;
|
|
280
280
|
};
|
|
281
281
|
reason: {
|
|
282
|
-
type:
|
|
282
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
283
283
|
isOptional: false;
|
|
284
284
|
};
|
|
285
285
|
}>>;
|
|
@@ -287,22 +287,22 @@ declare const RollbackTenantConfigCommand: ContractSpec<SchemaModel<{
|
|
|
287
287
|
}[]>;
|
|
288
288
|
declare const ListTenantConfigVersionsQuery: ContractSpec<SchemaModel<{
|
|
289
289
|
tenantId: {
|
|
290
|
-
type:
|
|
290
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
291
291
|
isOptional: false;
|
|
292
292
|
};
|
|
293
293
|
appId: {
|
|
294
|
-
type:
|
|
294
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
295
295
|
isOptional: false;
|
|
296
296
|
};
|
|
297
297
|
}>, SchemaModel<{
|
|
298
298
|
versions: {
|
|
299
299
|
type: SchemaModel<{
|
|
300
300
|
meta: {
|
|
301
|
-
type:
|
|
301
|
+
type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
302
302
|
isOptional: false;
|
|
303
303
|
};
|
|
304
304
|
config: {
|
|
305
|
-
type:
|
|
305
|
+
type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
306
306
|
isOptional: false;
|
|
307
307
|
};
|
|
308
308
|
}>;
|
|
@@ -312,35 +312,35 @@ declare const ListTenantConfigVersionsQuery: ContractSpec<SchemaModel<{
|
|
|
312
312
|
transitions: {
|
|
313
313
|
type: SchemaModel<{
|
|
314
314
|
tenantId: {
|
|
315
|
-
type:
|
|
315
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
316
316
|
isOptional: false;
|
|
317
317
|
};
|
|
318
318
|
appId: {
|
|
319
|
-
type:
|
|
319
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
320
320
|
isOptional: false;
|
|
321
321
|
};
|
|
322
322
|
fromStatus: {
|
|
323
|
-
type:
|
|
323
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
324
324
|
isOptional: false;
|
|
325
325
|
};
|
|
326
326
|
toStatus: {
|
|
327
|
-
type:
|
|
327
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
328
328
|
isOptional: false;
|
|
329
329
|
};
|
|
330
330
|
version: {
|
|
331
|
-
type:
|
|
331
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
332
332
|
isOptional: false;
|
|
333
333
|
};
|
|
334
334
|
timestamp: {
|
|
335
|
-
type:
|
|
335
|
+
type: _lssm_lib_schema102.FieldType<Date, string>;
|
|
336
336
|
isOptional: false;
|
|
337
337
|
};
|
|
338
338
|
actor: {
|
|
339
|
-
type:
|
|
339
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
340
340
|
isOptional: false;
|
|
341
341
|
};
|
|
342
342
|
reason: {
|
|
343
|
-
type:
|
|
343
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
344
344
|
isOptional: true;
|
|
345
345
|
};
|
|
346
346
|
}>;
|
|
@@ -350,26 +350,26 @@ declare const ListTenantConfigVersionsQuery: ContractSpec<SchemaModel<{
|
|
|
350
350
|
}>, undefined>;
|
|
351
351
|
declare const GetTenantConfigVersionQuery: ContractSpec<SchemaModel<{
|
|
352
352
|
tenantId: {
|
|
353
|
-
type:
|
|
353
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
354
354
|
isOptional: false;
|
|
355
355
|
};
|
|
356
356
|
appId: {
|
|
357
|
-
type:
|
|
357
|
+
type: _lssm_lib_schema102.FieldType<string, string>;
|
|
358
358
|
isOptional: false;
|
|
359
359
|
};
|
|
360
360
|
version: {
|
|
361
|
-
type:
|
|
361
|
+
type: _lssm_lib_schema102.FieldType<number, number>;
|
|
362
362
|
isOptional: false;
|
|
363
363
|
};
|
|
364
364
|
}>, SchemaModel<{
|
|
365
365
|
version: {
|
|
366
366
|
type: SchemaModel<{
|
|
367
367
|
meta: {
|
|
368
|
-
type:
|
|
368
|
+
type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
369
369
|
isOptional: false;
|
|
370
370
|
};
|
|
371
371
|
config: {
|
|
372
|
-
type:
|
|
372
|
+
type: _lssm_lib_schema102.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
373
373
|
isOptional: false;
|
|
374
374
|
};
|
|
375
375
|
}>;
|
|
@@ -379,5 +379,4 @@ declare const GetTenantConfigVersionQuery: ContractSpec<SchemaModel<{
|
|
|
379
379
|
declare const lifecycleContracts: Record<string, ContractSpec<any, any>>;
|
|
380
380
|
declare function registerAppConfigLifecycleContracts(registry: SpecRegistry): SpecRegistry;
|
|
381
381
|
//#endregion
|
|
382
|
-
export { CreateTenantConfigDraftCommand, GetTenantConfigVersionQuery, ListTenantConfigVersionsQuery, PromoteTenantConfigToPreviewCommand, PublishTenantConfigCommand, RollbackTenantConfigCommand, lifecycleContracts, registerAppConfigLifecycleContracts };
|
|
383
|
-
//# sourceMappingURL=lifecycle-contracts.d.ts.map
|
|
382
|
+
export { CreateTenantConfigDraftCommand, GetTenantConfigVersionQuery, ListTenantConfigVersionsQuery, PromoteTenantConfigToPreviewCommand, PublishTenantConfigCommand, RollbackTenantConfigCommand, lifecycleContracts, registerAppConfigLifecycleContracts };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../spec.js";import{OwnersEnum as i,StabilityEnum as a,TagsEnum as o}from"../ownership.js";import{ConfigDraftCreatedEvent as s,ConfigPromotedToPreviewEvent as c,ConfigPublishedEvent as l,ConfigRolledBackEvent as u}from"./events.js";const d={auth:`admin`,policies:[{name:`platform.app-config.manage`,version:1}]},f={auth:`admin`,policies:[{name:`platform.app-config.read`,version:1}]},p=new t({name:`ConfigVersionRecord`,fields:{meta:{type:e.JSONObject(),isOptional:!1},config:{type:e.JSONObject(),isOptional:!1}}}),m=new t({name:`ConfigTransitionRecord`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},fromStatus:{type:e.String_unsecure(),isOptional:!1},toStatus:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1},actor:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0}}}),h=new t({name:`CreateTenantConfigDraftInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},blueprintName:{type:e.String_unsecure(),isOptional:!1},blueprintVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},fromVersion:{type:e.Int_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1}}}),g=new t({name:`CreateTenantConfigDraftOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),_=n({meta:{name:`appConfig.lifecycle.createDraft`,version:1,description:`Creates a new draft tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Allow operators to start editing a new tenant config version.`,context:`Invoked by the Studio or automation when starting a new configuration run.`},io:{input:h,output:g},policy:d,sideEffects:{emits:[{ref:s,when:`after successful draft creation`}]}}),v=new t({name:`PromoteTenantConfigPreviewInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},promotedBy:{type:e.String_unsecure(),isOptional:!1}}}),y=new t({name:`PromoteTenantConfigPreviewOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},warnings:{type:e.String_unsecure(),isOptional:!0,isArray:!0}}}),b=n({meta:{name:`appConfig.lifecycle.promoteToPreview`,version:1,description:`Promotes a draft tenant config to preview/testing state.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Enable validation and testing of draft configurations.`,context:`Called when a draft passes initial checks and should be exposed to preview environments.`},io:{input:v,output:y},policy:d,sideEffects:{emits:[{ref:c,when:`after promotion to preview`}]}}),x=new t({name:`PublishTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},publishedBy:{type:e.String_unsecure(),isOptional:!1},changeSummary:{type:e.String_unsecure(),isOptional:!0}}}),S=new t({name:`PublishTenantConfigOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},previousVersion:{type:e.Int_unsecure(),isOptional:!0},publishedAt:{type:e.DateTime(),isOptional:!1}}}),C=n({meta:{name:`appConfig.lifecycle.publish`,version:1,description:`Publishes a preview tenant config to production.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Promote tested configurations to production safely.`,context:`Triggered after validation passes and change management approvals are complete.`},io:{input:x,output:S},policy:d,sideEffects:{emits:[{ref:l,when:`after publish succeeds`}]}}),w=new t({name:`RollbackTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},toVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},rolledBackBy:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!1}}}),T=new t({name:`RollbackTenantConfigOutput`,fields:{newVersion:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},rolledBackFrom:{type:e.Int_unsecure(),isOptional:!1}}}),E=n({meta:{name:`appConfig.lifecycle.rollback`,version:1,description:`Rolls back to a previously published tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Provide rapid recovery when new configs regress production.`,context:`Called manually or automatically when monitoring detects regression and a rollback is required.`},io:{input:w,output:T},policy:d,sideEffects:{emits:[{ref:u,when:`after rollback completes`}]}}),D=new t({name:`ListTenantConfigVersionsInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1}}}),O=new t({name:`ListTenantConfigVersionsOutput`,fields:{versions:{type:p,isOptional:!1,isArray:!0},transitions:{type:m,isOptional:!0,isArray:!0}}}),k=r({meta:{name:`appConfig.lifecycle.listVersions`,version:1,description:`Lists all versions of a tenant configuration.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Support lifecycle views and change audit tooling.`,context:`Used by the Studio to render history timelines and by automation for change tracking.`},io:{input:D,output:O},policy:f}),A=new t({name:`GetTenantConfigVersionInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1}}}),j=new t({name:`GetTenantConfigVersionOutput`,fields:{version:{type:p,isOptional:!1}}}),M=r({meta:{name:`appConfig.lifecycle.getVersion`,version:1,description:`Fetches a single tenant config version by id.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Allow detail drill-down for lifecycle entries.`,context:`Used by automation to fetch config payloads for comparison or export.`},io:{input:A,output:j},policy:f}),N={CreateTenantConfigDraftCommand:_,PromoteTenantConfigToPreviewCommand:b,PublishTenantConfigCommand:C,RollbackTenantConfigCommand:E,ListTenantConfigVersionsQuery:k,GetTenantConfigVersionQuery:M};function P(e){return e.register(_).register(b).register(C).register(E).register(k).register(M)}export{_ as CreateTenantConfigDraftCommand,M as GetTenantConfigVersionQuery,k as ListTenantConfigVersionsQuery,b as PromoteTenantConfigToPreviewCommand,C as PublishTenantConfigCommand,E as RollbackTenantConfigCommand,N as lifecycleContracts,P as registerAppConfigLifecycleContracts};
|
|
2
|
-
//# sourceMappingURL=lifecycle-contracts.js.map
|
|
1
|
+
import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../spec.js";import{OwnersEnum as i,StabilityEnum as a,TagsEnum as o}from"../ownership.js";import{ConfigDraftCreatedEvent as s,ConfigPromotedToPreviewEvent as c,ConfigPublishedEvent as l,ConfigRolledBackEvent as u}from"./events.js";const d={auth:`admin`,policies:[{name:`platform.app-config.manage`,version:1}]},f={auth:`admin`,policies:[{name:`platform.app-config.read`,version:1}]},p=new t({name:`ConfigVersionRecord`,fields:{meta:{type:e.JSONObject(),isOptional:!1},config:{type:e.JSONObject(),isOptional:!1}}}),m=new t({name:`ConfigTransitionRecord`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},fromStatus:{type:e.String_unsecure(),isOptional:!1},toStatus:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1},actor:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0}}}),h=new t({name:`CreateTenantConfigDraftInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},blueprintName:{type:e.String_unsecure(),isOptional:!1},blueprintVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},fromVersion:{type:e.Int_unsecure(),isOptional:!0},createdBy:{type:e.String_unsecure(),isOptional:!1}}}),g=new t({name:`CreateTenantConfigDraftOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),_=n({meta:{name:`appConfig.lifecycle.createDraft`,version:1,description:`Creates a new draft tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Allow operators to start editing a new tenant config version.`,context:`Invoked by the Studio or automation when starting a new configuration run.`},io:{input:h,output:g},policy:d,sideEffects:{emits:[{ref:s,when:`after successful draft creation`}]}}),v=new t({name:`PromoteTenantConfigPreviewInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},promotedBy:{type:e.String_unsecure(),isOptional:!1}}}),y=new t({name:`PromoteTenantConfigPreviewOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},warnings:{type:e.String_unsecure(),isOptional:!0,isArray:!0}}}),b=n({meta:{name:`appConfig.lifecycle.promoteToPreview`,version:1,description:`Promotes a draft tenant config to preview/testing state.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Enable validation and testing of draft configurations.`,context:`Called when a draft passes initial checks and should be exposed to preview environments.`},io:{input:v,output:y},policy:d,sideEffects:{emits:[{ref:c,when:`after promotion to preview`}]}}),x=new t({name:`PublishTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},publishedBy:{type:e.String_unsecure(),isOptional:!1},changeSummary:{type:e.String_unsecure(),isOptional:!0}}}),S=new t({name:`PublishTenantConfigOutput`,fields:{version:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},previousVersion:{type:e.Int_unsecure(),isOptional:!0},publishedAt:{type:e.DateTime(),isOptional:!1}}}),C=n({meta:{name:`appConfig.lifecycle.publish`,version:1,description:`Publishes a preview tenant config to production.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Promote tested configurations to production safely.`,context:`Triggered after validation passes and change management approvals are complete.`},io:{input:x,output:S},policy:d,sideEffects:{emits:[{ref:l,when:`after publish succeeds`}]}}),w=new t({name:`RollbackTenantConfigInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},toVersion:{type:e.Int_unsecure(),isOptional:!1},environment:{type:e.String_unsecure(),isOptional:!0},rolledBackBy:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!1}}}),T=new t({name:`RollbackTenantConfigOutput`,fields:{newVersion:{type:e.Int_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},rolledBackFrom:{type:e.Int_unsecure(),isOptional:!1}}}),E=n({meta:{name:`appConfig.lifecycle.rollback`,version:1,description:`Rolls back to a previously published tenant config version.`,owners:[i.PlatformSigil],tags:[o.Hygiene,`app-config`],stability:a.Experimental,goal:`Provide rapid recovery when new configs regress production.`,context:`Called manually or automatically when monitoring detects regression and a rollback is required.`},io:{input:w,output:T},policy:d,sideEffects:{emits:[{ref:u,when:`after rollback completes`}]}}),D=new t({name:`ListTenantConfigVersionsInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1}}}),O=new t({name:`ListTenantConfigVersionsOutput`,fields:{versions:{type:p,isOptional:!1,isArray:!0},transitions:{type:m,isOptional:!0,isArray:!0}}}),k=r({meta:{name:`appConfig.lifecycle.listVersions`,version:1,description:`Lists all versions of a tenant configuration.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Support lifecycle views and change audit tooling.`,context:`Used by the Studio to render history timelines and by automation for change tracking.`},io:{input:D,output:O},policy:f}),A=new t({name:`GetTenantConfigVersionInput`,fields:{tenantId:{type:e.ID(),isOptional:!1},appId:{type:e.ID(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1}}}),j=new t({name:`GetTenantConfigVersionOutput`,fields:{version:{type:p,isOptional:!1}}}),M=r({meta:{name:`appConfig.lifecycle.getVersion`,version:1,description:`Fetches a single tenant config version by id.`,owners:[i.PlatformSigil],tags:[`app-config`,o.Hygiene],stability:a.Experimental,goal:`Allow detail drill-down for lifecycle entries.`,context:`Used by automation to fetch config payloads for comparison or export.`},io:{input:A,output:j},policy:f}),N={CreateTenantConfigDraftCommand:_,PromoteTenantConfigToPreviewCommand:b,PublishTenantConfigCommand:C,RollbackTenantConfigCommand:E,ListTenantConfigVersionsQuery:k,GetTenantConfigVersionQuery:M};function P(e){return e.register(_).register(b).register(C).register(E).register(k).register(M)}export{_ as CreateTenantConfigDraftCommand,M as GetTenantConfigVersionQuery,k as ListTenantConfigVersionsQuery,b as PromoteTenantConfigToPreviewCommand,C as PublishTenantConfigCommand,E as RollbackTenantConfigCommand,N as lifecycleContracts,P as registerAppConfigLifecycleContracts};
|
|
@@ -24,5 +24,4 @@ interface ConfigVersionHistory {
|
|
|
24
24
|
currentPublished?: number;
|
|
25
25
|
}
|
|
26
26
|
//#endregion
|
|
27
|
-
export { ConfigStatus, ConfigTransition, ConfigVersionHistory, TenantAppConfigVersion };
|
|
28
|
-
//# sourceMappingURL=lifecycle.d.ts.map
|
|
27
|
+
export { ConfigStatus, ConfigTransition, ConfigVersionHistory, TenantAppConfigVersion };
|
|
@@ -111,5 +111,4 @@ interface ComposeOptions {
|
|
|
111
111
|
declare function resolveAppConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, deps?: ResolveAppConfigDeps): ResolvedAppConfig;
|
|
112
112
|
declare function composeAppConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, deps: AppCompositionDeps, options?: ComposeOptions): AppComposition;
|
|
113
113
|
//#endregion
|
|
114
|
-
export { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig };
|
|
115
|
-
//# sourceMappingURL=runtime.d.ts.map
|
|
114
|
+
export { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e,t,m={}){let g=n(e.capabilities,t.capabilities),_=r(e.features,t.features),v=i(e.dataViews??{},t.dataViewOverrides),y=i(e.workflows??{},t.workflowOverrides),b=a(e.policies??[],t.additionalPolicies??[]),x=o(e.theme,t.themeOverride),S=s(e.telemetry,t.telemetryOverride),C=c(e.experiments,t.experiments),w=d(e.featureFlags??[],t.featureFlags??[]),T=f(e.routes??[],t.routeOverrides??[]),{resolved:E}=p(e.integrationSlots,t.integrations,m.integrationConnections,m.integrationSpecs),D=h(t.knowledge,m.knowledgeSpaces,m.knowledgeSources),O=l(e.branding,t),k=u(e.translationCatalog,t.locales,t.translationOverrides);return{appId:e.meta.appId,tenantId:t.meta.tenantId,environment:t.meta.environment,blueprintName:e.meta.name,blueprintVersion:e.meta.version,configVersion:t.meta.version,capabilities:g,features:_,dataViews:v,workflows:y,policies:b,theme:x,telemetry:S,experiments:C,featureFlags:w,routes:T,integrations:E,knowledge:D,translation:k,branding:O,notes:t.notes??e.notes}}function t(t,n,r,i={}){let a=e(t,n,r),o=[],s=p(t.integrationSlots,n.integrations,r.integrationConnections,r.integrationSpecs);a.integrations=s.resolved,o.push(...s.missing),o.push(...g(n.knowledge??[],r.knowledgeSpaces,r.knowledgeSources));let c=_(a.capabilities.enabled,r.capabilities,o),l=v(a.features.include,r.features,o),u=y(a.dataViews,r.dataViews,`dataView`,o),d=y(a.workflows,r.workflows,`workflow`,o),f=b(a.policies,r.policies,o),{theme:m,fallbacks:h,themeMissing:w}=x(a.theme,r.themes);o.push(...w);let{telemetry:T,telemetryMissing:E}=S(a.telemetry,r.telemetry);o.push(...E);let D=C(a.experiments,r.experiments,o);if(i.strict&&o.length>0){let e=o.map(e=>`${e.type}:${e.identifier}`).join(`, `);throw Error(`composeAppConfig: missing references -> ${e}`)}return{resolved:a,capabilities:c,features:l,dataViews:u,workflows:d,policies:f,theme:m,themeFallbacks:h,telemetry:T,experiments:D,integrations:a.integrations,knowledge:a.knowledge,missing:o}}function n(e,t){let n=k([...e?.enabled??[],...t?.enable??[]],w),r=k([...e?.disabled??[],...t?.disable??[]],w),i=new Set(r.map(w));return{enabled:n.filter(e=>!i.has(w(e))),disabled:r}}function r(e,t){let n=k([...e?.include??[],...t?.include??[]],T),r=k([...e?.exclude??[],...t?.exclude??[]],T),i=new Set(r.map(T));return{include:n.filter(e=>!i.has(T(e))),exclude:r}}function i(e,t){let n={...e};if(!t)return n;for(let e of t)e&&(e.pointer?n[e.slot]=e.pointer:delete n[e.slot]);return n}function a(e,t){return k([...e,...t],D)}function o(e,t){if(!e&&!t)return;let n=t?.primary??e?.primary;if(n)return{primary:n,fallbacks:t?.fallbacks??e?.fallbacks??[]}}function s(e,t){if(!e&&!t)return;let n={spec:e?.spec,disabledEvents:e?.disabledEvents?[...e.disabledEvents]:void 0,samplingOverrides:e?.samplingOverrides?{...e.samplingOverrides}:void 0};if(t?.spec!==void 0&&(n.spec=t.spec??void 0),t?.disabledEvents&&(n.disabledEvents=A([...n.disabledEvents??[],...t.disabledEvents])),t?.samplingOverrides&&(n.samplingOverrides={...n.samplingOverrides??{},...t.samplingOverrides}),!(!n.spec&&!n.disabledEvents?.length))return n}function c(e,t){let n=e?.active??[],r=e?.paused??[],i=t?.active,a=t?.paused,o=i&&i.length>0?i:n,s=a&&a.length>0?a:r,c=k(o,O),l=k(s,O),u=new Set(c.map(O));return l=l.filter(e=>!u.has(O(e))),{catalog:k([...n,...r,...i??[],...a??[]],O),active:c,paused:l}}function l(e,t){let n=t.branding,r=t.meta,i=`app.localhost`,a=n?.customDomain??(n?.subdomain?`${n.subdomain}.${i}`:`${r.tenantId}.${i}`),o=[];t.locales?.defaultLocale&&o.push(t.locales.defaultLocale),n?.appName&&o.push(`default`,`en`);let s;if(n?.appName){for(let e of o){let t=n.appName[e];if(t){s=t;break}}if(!s){let[,e]=Object.entries(n.appName)[0]??[];typeof e==`string`&&(s=e)}}s||=e?.appNameKey??r.appId;let c=new Map,l=e=>{if(e)for(let t of e)t?.type&&`url`in t&&t.url&&c.set(t.type,t.url)};l(e?.assets),l(n?.assets);let u={logo:c.get(`logo`),logoDark:c.get(`logo-dark`),favicon:c.get(`favicon`),ogImage:c.get(`og-image`)},d={primary:n?.colors?.primary??e?.colorTokens?.primary??`#1f2937`,secondary:n?.colors?.secondary??e?.colorTokens?.secondary??`#4b5563`};return{appName:s,assets:u,colors:d,domain:a}}function u(e,t,n){let r=t?.defaultLocale??`en`;return{defaultLocale:r,supportedLocales:A([r,...t?.enabledLocales??[]]),blueprintCatalog:e,tenantOverrides:n?.entries??[]}}function d(e,t){let n=new Map;for(let t of e)n.set(t.key,{...t});for(let e of t)n.set(e.key,{...e});return[...n.values()]}function f(e,t){let n=new Map;for(let t of e)n.set(t.path,{...t});for(let e of t){let t=n.get(e.path)??{path:e.path};e.label!==void 0&&(e.label===null?delete t.label:t.label=e.label),e.dataView!==void 0&&(e.dataView===null?delete t.dataView:t.dataView=e.dataView),e.workflow!==void 0&&(e.workflow===null?delete t.workflow:t.workflow=e.workflow),e.guard!==void 0&&(e.guard===null?delete t.guard:t.guard=e.guard),e.featureFlag!==void 0&&(e.featureFlag===null?delete t.featureFlag:t.featureFlag=e.featureFlag),e.experiment!==void 0&&(e.experiment===null?delete t.experiment:t.experiment=e.experiment),n.set(t.path,t)}return[...n.values()]}function p(e,t,n,r){let i=[],a=[],o=new Set,s=e=>{let t=`${e.type}:${e.identifier}`;o.has(t)||(o.add(t),a.push(e))},c=e??[],l=new Map;for(let e of c)l.set(e.slotId,e);let u=new Map;for(let e of t??[]){if(!l.get(e.slotId)){s({type:`integrationSlot`,identifier:`slot:${e.slotId}`});continue}let t=u.get(e.slotId);t?t.push(e):u.set(e.slotId,[e])}for(let e of c){let t=u.get(e.slotId)??[];e.required&&t.length===0&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}if(!n||!r)return{resolved:i,missing:a};let d=new Map;for(let e of n)d.set(e.meta.id,e);for(let e of c){let t=u.get(e.slotId)??[];if(t.length===0)continue;let n=[...t].sort((e,t)=>{let n=e.priority??2**53-1,r=t.priority??2**53-1;return n===r?0:n<r?-1:1}),a=!1;for(let t of n){let n=d.get(t.connectionId);if(!n){s({type:`integrationConnection`,identifier:`connection:${t.connectionId}`});continue}let o=r.get(n.meta.integrationKey,n.meta.integrationVersion);if(!o){s({type:`integrationSpec`,identifier:`spec:${n.meta.integrationKey}.v${n.meta.integrationVersion}`});continue}if(o.meta.category!==e.requiredCategory){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.category`});continue}if(!o.supportedModes.includes(n.ownershipMode)){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.mode:${n.ownershipMode}`});continue}if(e.allowedModes&&e.allowedModes.length>0&&!e.allowedModes.includes(n.ownershipMode)){s({type:`integrationConnection`,identifier:`connection:${n.meta.id}:mode`});continue}if(e.requiredCapabilities&&!e.requiredCapabilities.every(e=>m(o,e))){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.capabilities`});continue}i.push({slot:e,binding:t,connection:n,spec:o}),a=!0;break}!a&&e.required&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}return{resolved:i,missing:a}}function m(e,t){return e.capabilities.provides.some(e=>e.key===t.key?t.version==null?!0:e.version===t.version:!1)}function h(e,t,n){if(!e?.length||!t)return[];let r=n??[];return e.map(e=>{let n=t.get(e.spaceKey,e.spaceVersion);return n?{binding:e,space:n,sources:r.filter(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)}:null}).filter(e=>e!==null)}function g(e,t,n){if(!e.length||!t)return[];let r=[],i=n??[];for(let a of e){if(!t.get(a.spaceKey,a.spaceVersion)){r.push({type:`knowledgeSpace`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey});continue}n&&i.filter(e=>e.meta.spaceKey===a.spaceKey?a.spaceVersion==null?!0:e.meta.spaceVersion===a.spaceVersion:!1).length===0&&r.push({type:`knowledgeSource`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey})}return r}function _(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`capability`,identifier:w(t)});return[]}let r=[];for(let i of e){let e=t.get(i.key,i.version);if(!e){n.push({type:`capability`,identifier:w(i)});continue}r.push(e)}return r}function v(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`feature`,identifier:t.key});return[]}let r=[];for(let i of e){let e=t.get(i.key);if(!e){n.push({type:`feature`,identifier:i.key});continue}r.push(e)}return r}function y(e,t,n,r){if(!t){if(Object.keys(e).length>0)for(let[t,i]of Object.entries(e))r.push({type:n,identifier:`${t} -> ${E(i)}`});return{}}let i={};for(let[a,o]of Object.entries(e)){let e=t.get(o.name,o.version);if(!e){r.push({type:n,identifier:`${a} -> ${E(o)}`});continue}i[a]=e}return i}function b(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`policy`,identifier:D(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`policy`,identifier:D(i)});continue}r.push(e)}return r}function x(e,t){let n=[];if(!e)return{theme:void 0,fallbacks:[],themeMissing:n};if(!t){n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});for(let t of e.fallbacks??[])n.push({type:`theme`,identifier:`${t.name}.v${t.version}`});return{theme:void 0,fallbacks:[],themeMissing:n}}let r=t.get(e.primary.name,e.primary.version);r||n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});let i=[];for(let r of e.fallbacks??[]){let e=t.get(r.name,r.version);if(!e){n.push({type:`theme`,identifier:`${r.name}.v${r.version}`});continue}i.push(e)}return{theme:r??void 0,fallbacks:i,themeMissing:n}}function S(e,t){let n=[];if(!e?.spec)return{telemetry:void 0,telemetryMissing:n};if(!t)return n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:void 0,telemetryMissing:n};let r=t.get(e.spec.name,e.spec.version);return r||n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:r??void 0,telemetryMissing:n}}function C(e,t,n){let r=e=>{if(e.length===0)return[];if(!t){for(let t of e)n.push({type:`experiment`,identifier:O(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`experiment`,identifier:O(i)});continue}r.push(e)}return r};return{active:r(e.active),paused:r(e.paused)}}function w(e){return`${e.key}${e.version?`.v${e.version}`:``}`}function T(e){return e.key}function E(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function D(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function O(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function k(e,t){let n=new Map;for(let r of e)n.set(t(r),r);return[...n.values()]}function A(e){return[...new Set(e)]}export{t as composeAppConfig,e as resolveAppConfig};
|
|
2
|
-
//# sourceMappingURL=runtime.js.map
|
|
1
|
+
function e(e,t,m={}){let g=n(e.capabilities,t.capabilities),_=r(e.features,t.features),v=i(e.dataViews??{},t.dataViewOverrides),y=i(e.workflows??{},t.workflowOverrides),b=a(e.policies??[],t.additionalPolicies??[]),x=o(e.theme,t.themeOverride),S=s(e.telemetry,t.telemetryOverride),C=c(e.experiments,t.experiments),w=d(e.featureFlags??[],t.featureFlags??[]),T=f(e.routes??[],t.routeOverrides??[]),{resolved:E}=p(e.integrationSlots,t.integrations,m.integrationConnections,m.integrationSpecs),D=h(t.knowledge,m.knowledgeSpaces,m.knowledgeSources),O=l(e.branding,t),k=u(e.translationCatalog,t.locales,t.translationOverrides);return{appId:e.meta.appId,tenantId:t.meta.tenantId,environment:t.meta.environment,blueprintName:e.meta.name,blueprintVersion:e.meta.version,configVersion:t.meta.version,capabilities:g,features:_,dataViews:v,workflows:y,policies:b,theme:x,telemetry:S,experiments:C,featureFlags:w,routes:T,integrations:E,knowledge:D,translation:k,branding:O,notes:t.notes??e.notes}}function t(t,n,r,i={}){let a=e(t,n,r),o=[],s=p(t.integrationSlots,n.integrations,r.integrationConnections,r.integrationSpecs);a.integrations=s.resolved,o.push(...s.missing),o.push(...g(n.knowledge??[],r.knowledgeSpaces,r.knowledgeSources));let c=_(a.capabilities.enabled,r.capabilities,o),l=v(a.features.include,r.features,o),u=y(a.dataViews,r.dataViews,`dataView`,o),d=y(a.workflows,r.workflows,`workflow`,o),f=b(a.policies,r.policies,o),{theme:m,fallbacks:h,themeMissing:w}=x(a.theme,r.themes);o.push(...w);let{telemetry:T,telemetryMissing:E}=S(a.telemetry,r.telemetry);o.push(...E);let D=C(a.experiments,r.experiments,o);if(i.strict&&o.length>0){let e=o.map(e=>`${e.type}:${e.identifier}`).join(`, `);throw Error(`composeAppConfig: missing references -> ${e}`)}return{resolved:a,capabilities:c,features:l,dataViews:u,workflows:d,policies:f,theme:m,themeFallbacks:h,telemetry:T,experiments:D,integrations:a.integrations,knowledge:a.knowledge,missing:o}}function n(e,t){let n=k([...e?.enabled??[],...t?.enable??[]],w),r=k([...e?.disabled??[],...t?.disable??[]],w),i=new Set(r.map(w));return{enabled:n.filter(e=>!i.has(w(e))),disabled:r}}function r(e,t){let n=k([...e?.include??[],...t?.include??[]],T),r=k([...e?.exclude??[],...t?.exclude??[]],T),i=new Set(r.map(T));return{include:n.filter(e=>!i.has(T(e))),exclude:r}}function i(e,t){let n={...e};if(!t)return n;for(let e of t)e&&(e.pointer?n[e.slot]=e.pointer:delete n[e.slot]);return n}function a(e,t){return k([...e,...t],D)}function o(e,t){if(!e&&!t)return;let n=t?.primary??e?.primary;if(n)return{primary:n,fallbacks:t?.fallbacks??e?.fallbacks??[]}}function s(e,t){if(!e&&!t)return;let n={spec:e?.spec,disabledEvents:e?.disabledEvents?[...e.disabledEvents]:void 0,samplingOverrides:e?.samplingOverrides?{...e.samplingOverrides}:void 0};if(t?.spec!==void 0&&(n.spec=t.spec??void 0),t?.disabledEvents&&(n.disabledEvents=A([...n.disabledEvents??[],...t.disabledEvents])),t?.samplingOverrides&&(n.samplingOverrides={...n.samplingOverrides??{},...t.samplingOverrides}),!(!n.spec&&!n.disabledEvents?.length))return n}function c(e,t){let n=e?.active??[],r=e?.paused??[],i=t?.active,a=t?.paused,o=i&&i.length>0?i:n,s=a&&a.length>0?a:r,c=k(o,O),l=k(s,O),u=new Set(c.map(O));return l=l.filter(e=>!u.has(O(e))),{catalog:k([...n,...r,...i??[],...a??[]],O),active:c,paused:l}}function l(e,t){let n=t.branding,r=t.meta,i=`app.localhost`,a=n?.customDomain??(n?.subdomain?`${n.subdomain}.${i}`:`${r.tenantId}.${i}`),o=[];t.locales?.defaultLocale&&o.push(t.locales.defaultLocale),n?.appName&&o.push(`default`,`en`);let s;if(n?.appName){for(let e of o){let t=n.appName[e];if(t){s=t;break}}if(!s){let[,e]=Object.entries(n.appName)[0]??[];typeof e==`string`&&(s=e)}}s||=e?.appNameKey??r.appId;let c=new Map,l=e=>{if(e)for(let t of e)t?.type&&`url`in t&&t.url&&c.set(t.type,t.url)};l(e?.assets),l(n?.assets);let u={logo:c.get(`logo`),logoDark:c.get(`logo-dark`),favicon:c.get(`favicon`),ogImage:c.get(`og-image`)},d={primary:n?.colors?.primary??e?.colorTokens?.primary??`#1f2937`,secondary:n?.colors?.secondary??e?.colorTokens?.secondary??`#4b5563`};return{appName:s,assets:u,colors:d,domain:a}}function u(e,t,n){let r=t?.defaultLocale??`en`;return{defaultLocale:r,supportedLocales:A([r,...t?.enabledLocales??[]]),blueprintCatalog:e,tenantOverrides:n?.entries??[]}}function d(e,t){let n=new Map;for(let t of e)n.set(t.key,{...t});for(let e of t)n.set(e.key,{...e});return[...n.values()]}function f(e,t){let n=new Map;for(let t of e)n.set(t.path,{...t});for(let e of t){let t=n.get(e.path)??{path:e.path};e.label!==void 0&&(e.label===null?delete t.label:t.label=e.label),e.dataView!==void 0&&(e.dataView===null?delete t.dataView:t.dataView=e.dataView),e.workflow!==void 0&&(e.workflow===null?delete t.workflow:t.workflow=e.workflow),e.guard!==void 0&&(e.guard===null?delete t.guard:t.guard=e.guard),e.featureFlag!==void 0&&(e.featureFlag===null?delete t.featureFlag:t.featureFlag=e.featureFlag),e.experiment!==void 0&&(e.experiment===null?delete t.experiment:t.experiment=e.experiment),n.set(t.path,t)}return[...n.values()]}function p(e,t,n,r){let i=[],a=[],o=new Set,s=e=>{let t=`${e.type}:${e.identifier}`;o.has(t)||(o.add(t),a.push(e))},c=e??[],l=new Map;for(let e of c)l.set(e.slotId,e);let u=new Map;for(let e of t??[]){if(!l.get(e.slotId)){s({type:`integrationSlot`,identifier:`slot:${e.slotId}`});continue}let t=u.get(e.slotId);t?t.push(e):u.set(e.slotId,[e])}for(let e of c){let t=u.get(e.slotId)??[];e.required&&t.length===0&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}if(!n||!r)return{resolved:i,missing:a};let d=new Map;for(let e of n)d.set(e.meta.id,e);for(let e of c){let t=u.get(e.slotId)??[];if(t.length===0)continue;let n=[...t].sort((e,t)=>{let n=e.priority??2**53-1,r=t.priority??2**53-1;return n===r?0:n<r?-1:1}),a=!1;for(let t of n){let n=d.get(t.connectionId);if(!n){s({type:`integrationConnection`,identifier:`connection:${t.connectionId}`});continue}let o=r.get(n.meta.integrationKey,n.meta.integrationVersion);if(!o){s({type:`integrationSpec`,identifier:`spec:${n.meta.integrationKey}.v${n.meta.integrationVersion}`});continue}if(o.meta.category!==e.requiredCategory){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.category`});continue}if(!o.supportedModes.includes(n.ownershipMode)){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.mode:${n.ownershipMode}`});continue}if(e.allowedModes&&e.allowedModes.length>0&&!e.allowedModes.includes(n.ownershipMode)){s({type:`integrationConnection`,identifier:`connection:${n.meta.id}:mode`});continue}if(e.requiredCapabilities&&!e.requiredCapabilities.every(e=>m(o,e))){s({type:`integrationSpec`,identifier:`spec:${o.meta.key}.capabilities`});continue}i.push({slot:e,binding:t,connection:n,spec:o}),a=!0;break}!a&&e.required&&s({type:`integrationSlot`,identifier:`slot:${e.slotId}`})}return{resolved:i,missing:a}}function m(e,t){return e.capabilities.provides.some(e=>e.key===t.key?t.version==null?!0:e.version===t.version:!1)}function h(e,t,n){if(!e?.length||!t)return[];let r=n??[];return e.map(e=>{let n=t.get(e.spaceKey,e.spaceVersion);return n?{binding:e,space:n,sources:r.filter(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)}:null}).filter(e=>e!==null)}function g(e,t,n){if(!e.length||!t)return[];let r=[],i=n??[];for(let a of e){if(!t.get(a.spaceKey,a.spaceVersion)){r.push({type:`knowledgeSpace`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey});continue}n&&i.filter(e=>e.meta.spaceKey===a.spaceKey?a.spaceVersion==null?!0:e.meta.spaceVersion===a.spaceVersion:!1).length===0&&r.push({type:`knowledgeSource`,identifier:a.spaceVersion?`${a.spaceKey}@${a.spaceVersion}`:a.spaceKey})}return r}function _(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`capability`,identifier:w(t)});return[]}let r=[];for(let i of e){let e=t.get(i.key,i.version);if(!e){n.push({type:`capability`,identifier:w(i)});continue}r.push(e)}return r}function v(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`feature`,identifier:t.key});return[]}let r=[];for(let i of e){let e=t.get(i.key);if(!e){n.push({type:`feature`,identifier:i.key});continue}r.push(e)}return r}function y(e,t,n,r){if(!t){if(Object.keys(e).length>0)for(let[t,i]of Object.entries(e))r.push({type:n,identifier:`${t} -> ${E(i)}`});return{}}let i={};for(let[a,o]of Object.entries(e)){let e=t.get(o.name,o.version);if(!e){r.push({type:n,identifier:`${a} -> ${E(o)}`});continue}i[a]=e}return i}function b(e,t,n){if(!t){if(e.length>0)for(let t of e)n.push({type:`policy`,identifier:D(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`policy`,identifier:D(i)});continue}r.push(e)}return r}function x(e,t){let n=[];if(!e)return{theme:void 0,fallbacks:[],themeMissing:n};if(!t){n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});for(let t of e.fallbacks??[])n.push({type:`theme`,identifier:`${t.name}.v${t.version}`});return{theme:void 0,fallbacks:[],themeMissing:n}}let r=t.get(e.primary.name,e.primary.version);r||n.push({type:`theme`,identifier:`${e.primary.name}.v${e.primary.version}`});let i=[];for(let r of e.fallbacks??[]){let e=t.get(r.name,r.version);if(!e){n.push({type:`theme`,identifier:`${r.name}.v${r.version}`});continue}i.push(e)}return{theme:r??void 0,fallbacks:i,themeMissing:n}}function S(e,t){let n=[];if(!e?.spec)return{telemetry:void 0,telemetryMissing:n};if(!t)return n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:void 0,telemetryMissing:n};let r=t.get(e.spec.name,e.spec.version);return r||n.push({type:`telemetry`,identifier:E(e.spec)}),{telemetry:r??void 0,telemetryMissing:n}}function C(e,t,n){let r=e=>{if(e.length===0)return[];if(!t){for(let t of e)n.push({type:`experiment`,identifier:O(t)});return[]}let r=[];for(let i of e){let e=t.get(i.name,i.version);if(!e){n.push({type:`experiment`,identifier:O(i)});continue}r.push(e)}return r};return{active:r(e.active),paused:r(e.paused)}}function w(e){return`${e.key}${e.version?`.v${e.version}`:``}`}function T(e){return e.key}function E(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function D(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function O(e){return`${e.name}${e.version?`.v${e.version}`:``}`}function k(e,t){let n=new Map;for(let r of e)n.set(t(r),r);return[...n.values()]}function A(e){return[...new Set(e)]}export{t as composeAppConfig,e as resolveAppConfig};
|
|
@@ -172,5 +172,4 @@ interface TenantAppConfig {
|
|
|
172
172
|
notes?: string;
|
|
173
173
|
}
|
|
174
174
|
//#endregion
|
|
175
|
-
export { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey };
|
|
176
|
-
//# sourceMappingURL=spec.d.ts.map
|
|
175
|
+
export { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey };
|
package/dist/app-config/spec.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
const e=e=>`${e.name}.v${e.version}`;var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate AppBlueprint ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e({name:t,version:n}));let r,i=-1/0;for(let e of this.items.values())e.meta.name===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}};function n(t){return e(t)}export{t as AppBlueprintRegistry,n as makeAppBlueprintKey};
|
|
2
|
-
//# sourceMappingURL=spec.js.map
|
|
1
|
+
const e=e=>`${e.name}.v${e.version}`;var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate AppBlueprint ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e({name:t,version:n}));let r,i=-1/0;for(let e of this.items.values())e.meta.name===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}};function n(t){return e(t)}export{t as AppBlueprintRegistry,n as makeAppBlueprintKey};
|
|
@@ -44,5 +44,4 @@ declare function validateBlueprint(blueprint: AppBlueprintSpec, context?: Valida
|
|
|
44
44
|
declare function validateTenantConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, context?: ValidationContext): ValidationResult;
|
|
45
45
|
declare function validateResolvedConfig(blueprint: AppBlueprintSpec, resolved: ResolvedAppConfig, context?: ValidationContext): ValidationResult;
|
|
46
46
|
//#endregion
|
|
47
|
-
export { ValidationContext, ValidationIssue, ValidationResult, ValidationSeverity, validateBlueprint, validateConfig, validateResolvedConfig, validateTenantConfig };
|
|
48
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
47
|
+
export { ValidationContext, ValidationIssue, ValidationResult, ValidationSeverity, validateBlueprint, validateConfig, validateResolvedConfig, validateTenantConfig };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
var e=class{blueprintRules=[];tenantRules=[];resolvedRules=[];register(e){return e.scope===`blueprint`?this.blueprintRules.push(e):e.scope===`tenant`?this.tenantRules.push(e):this.resolvedRules.push(e),this}validateBlueprint(e,t){return w(this.blueprintRules.flatMap(n=>n.validate(e,t)))}validateTenant(e,t,n){return w(this.tenantRules.flatMap(r=>r.validate(e,t,n)))}validateResolved(e,t,n){return w(this.resolvedRules.flatMap(r=>r.validate(e,t,n)))}};const t=/^(?!:\/\/)([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[A-Za-z]{2,}$/,n=/^https:\/\//i,r={logo:[`png`,`svg`,`webp`],"logo-dark":[`png`,`svg`,`webp`],favicon:[`ico`,`png`,`svg`],"og-image":[`png`,`jpg`,`jpeg`,`webp`]},i={};let a;function o(){return a||=p(),a}function s(e,t,n=i){let r=o();return f(d(r.validateBlueprint(e,n)),d(r.validateTenant(e,t,n)))}function c(e,t=i){return d(o().validateBlueprint(e,t))}function l(e,t,n=i){return d(o().validateTenant(e,t,n))}function u(e,t,n=i){return d(o().validateResolved(e,t,n))}function d(e){let t=e.filter(e=>e.severity===`error`),n=e.filter(e=>e.severity===`warning`),r=e.filter(e=>e.severity===`info`);return{valid:t.length===0,errors:t,warnings:n,info:r}}function f(...e){let t=e.flatMap(e=>e.errors),n=e.flatMap(e=>e.warnings),r=e.flatMap(e=>e.info);return{valid:t.length===0,errors:t,warnings:n,info:r}}function p(){return new e().register(m).register(h).register(g).register(_).register(v).register(y).register(b).register(x).register(S)}const m={scope:`blueprint`,name:`integration.duplicate-slots`,category:`integration`,validate(e){let t=[],n=new Set;for(let r of e.integrationSlots??[])n.has(r.slotId)?t.push(C({code:`DUPLICATE_SLOT`,severity:`error`,path:`integrationSlots.${r.slotId}`,message:`Duplicate integration slot id "${r.slotId}".`})):n.add(r.slotId),r.allowedModes&&r.allowedModes.length===0&&t.push(C({code:`EMPTY_ALLOWED_MODES`,severity:`warning`,path:`integrationSlots.${r.slotId}.allowedModes`,message:`allowedModes is empty; the slot will accept any supported mode.`}));return e.branding&&!e.branding.appNameKey.trim()&&t.push(C({code:`MISSING_APP_NAME_KEY`,severity:`warning`,path:`branding.appNameKey`,message:`branding.appNameKey should reference a translation catalog key.`})),t}},h={scope:`blueprint`,name:`capability.registry-check`,category:`capability`,validate(e,t){let n=[],r=t.capabilities;return r&&(e.capabilities?.enabled??[]).forEach((e,t)=>{r.get(e.key,e.version)||n.push(C({code:`MISSING_CAPABILITY`,severity:`error`,path:`capabilities.enabled[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),n}},g={scope:`tenant`,name:`capability.required-enabled`,category:`capability`,validate(e,t,n){let r=[],i=n.capabilities,a=new Set((e.capabilities?.enabled??[]).map(T)),o=t.capabilities?.disable??[];return o.forEach((e,t)=>{a.has(T(e))&&r.push(C({code:`DISABLED_REQUIRED_CAPABILITY`,severity:`error`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is required by the blueprint and cannot be disabled.`}))}),i&&((t.capabilities?.enable??[]).forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_ENABLE`,severity:`error`,path:`capabilities.enable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),o.forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_DISABLE`,severity:`warning`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))})),r}},_={scope:`tenant`,name:`integration.slot-binding`,category:`integration`,validate(e,t,n){let r=[],i=new Map((e.integrationSlots??[]).map(e=>[e.slotId,e])),a=t.integrations??[],o=n.tenantConnections?.reduce((e,t)=>e.set(t.meta.id,t),new Map)??new Map,s=new Set;a.forEach(e=>{let a=`integrations.${e.slotId}`,c=i.get(e.slotId);if(!c){r.push(C({code:`UNKNOWN_SLOT_BINDING`,severity:`error`,path:a,message:`Integration slot "${e.slotId}" is not defined in the blueprint.`}));return}let l=!0,u=o.get(e.connectionId);if(!u){r.push(C({code:`MISSING_INTEGRATION_CONNECTION`,severity:`error`,path:a,message:`Integration connection "${e.connectionId}" was not found for tenant "${t.meta.tenantId}".`})),l=!1;return}u.meta.tenantId!==t.meta.tenantId&&(r.push(C({code:`FOREIGN_CONNECTION`,severity:`error`,path:a,message:`Connection "${e.connectionId}" belongs to tenant "${u.meta.tenantId}", not "${t.meta.tenantId}".`})),l=!1),c.allowedModes&&c.allowedModes.length>0&&(c.allowedModes.includes(u.ownershipMode)||(r.push(C({code:`MODE_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" only allows modes [${c.allowedModes.join(`, `)}] but connection is "${u.ownershipMode}".`})),l=!1)),u.status===`disconnected`||u.status===`error`?(r.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:a,message:`Connection "${u.meta.label}" is in status "${u.status}".`})),l=!1):u.status===`unknown`&&r.push(C({code:`CONNECTION_STATUS_UNKNOWN`,severity:`warning`,path:a,message:`Connection "${u.meta.label}" has unknown health status.`}));let d=D(n.integrationSpecs,u);if(!d){r.push(C({code:`INTEGRATION_SPEC_NOT_FOUND`,severity:`warning`,path:a,message:`Integration spec "${u.meta.integrationKey}@${u.meta.integrationVersion}" is not registered.`})),l=!1;return}d.meta.category!==c.requiredCategory&&(r.push(C({code:`CATEGORY_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" requires category "${c.requiredCategory}" but connection provides "${d.meta.category}".`})),l=!1),d.supportedModes.includes(u.ownershipMode)||(r.push(C({code:`UNSUPPORTED_OWNERSHIP_MODE`,severity:`error`,path:a,message:`Integration spec "${d.meta.key}" does not support ownership mode "${u.ownershipMode}".`})),l=!1);for(let e of c.requiredCapabilities??[])E(d,e)||(r.push(C({code:`CAPABILITY_NOT_PROVIDED`,severity:`error`,path:a,message:`Integration "${d.meta.key}" does not provide required capability "${e.key}@${e.version}".`})),l=!1);l&&s.add(c.slotId)});for(let e of i.values())e.required&&!s.has(e.slotId)&&r.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Required integration slot "${e.slotId}" is not bound.`}));return r}},v={scope:`tenant`,name:`knowledge.bindings`,category:`knowledge`,validate(e,t,n){let r=[],i=n.knowledgeSpaces;if(!i)return r;let a=n.knowledgeSources??[];return(t.knowledge??[]).forEach((e,n)=>{let o=`knowledge[${n}]`,s=i.get(e.spaceKey,e.spaceVersion);if(!s){r.push(C({code:`UNKNOWN_KNOWLEDGE_SPACE`,severity:`error`,path:`${o}.spaceKey`,message:`Knowledge space "${e.spaceKey}" is not registered.`}));return}a.some(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)||r.push(C({code:`MISSING_KNOWLEDGE_SOURCES`,severity:`error`,path:o,message:`Knowledge space "${e.spaceKey}" has no configured sources for tenant "${t.meta.tenantId}".`})),(s.meta.category===`external`||s.meta.category===`ephemeral`)&&r.push(C({code:`LOW_TRUST_KNOWLEDGE`,severity:`warning`,path:o,message:`Knowledge space "${e.spaceKey}" has category "${s.meta.category}". Avoid using it for irreversible or policy decisions.`}))}),r}},y={scope:`tenant`,name:`branding.constraints`,category:`branding`,validate(e,i,a){let o=[],s=i.branding;if(!s)return o;let c=s.customDomain?.trim();if(c){t.test(c)||o.push(C({code:`INVALID_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is not a valid hostname.`}));let e=(a.existingConfigs??[]).find(e=>{if(e.meta.id===i.meta.id)return!1;let t=e.branding?.customDomain?.trim();return t?t.toLowerCase()===c.toLowerCase():!1});e&&o.push(C({code:`DUPLICATE_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is already used by tenant "${e.meta.tenantId}".`}))}return(s.assets??[]).forEach((e,t)=>{let i=`branding.assets[${t}]`;n.test(e.url)||o.push(C({code:`INSECURE_ASSET_URL`,severity:`error`,path:`${i}.url`,message:`Branding asset "${e.type}" must use an HTTPS URL.`}));let a=r[e.type]??r.logo,s=O(e.url);s&&a&&!a.includes(s)&&o.push(C({code:`UNEXPECTED_ASSET_TYPE`,severity:`warning`,path:`${i}.url`,message:`Asset "${e.type}" should use one of: ${(a??[]).join(`, `)}. Detected "${s}".`}))}),o}},b={scope:`tenant`,name:`translation.consistency`,category:`translation`,validate(e,t,n){let r=[],i=e.translationCatalog,a=k(n.translationCatalogs),o=i?a.blueprint.find(e=>e.meta.name===i.name&&e.meta.version===i.version):void 0;i&&!o&&r.push(C({code:`MISSING_BLUEPRINT_CATALOG`,severity:`error`,path:`translationCatalog`,message:`Blueprint translation catalog "${i.name}@${i.version}" is not loaded in context.`}));let s=new Set;e.branding?.appNameKey&&(s.add(e.branding.appNameKey),o&&!A(o.entries,e.branding.appNameKey,o.defaultLocale)&&r.push(C({code:`MISSING_TRANSLATION_KEY`,severity:`error`,path:`branding.appNameKey`,message:`Translation key "${e.branding.appNameKey}" is missing for locale "${o.defaultLocale}".`})));let c=t.locales;if(c){let{defaultLocale:e,enabledLocales:t}=c;if(t.includes(e)||r.push(C({code:`LOCALE_NOT_ENABLED`,severity:`warning`,path:`locales.enabledLocales`,message:`enabledLocales does not include defaultLocale "${e}".`})),o){let n=new Set(o.supportedLocales);for(let i of[e,...t])n.has(i)||r.push(C({code:`UNSUPPORTED_LOCALE`,severity:`error`,path:`locales.enabledLocales`,message:`Locale "${i}" is not supported by blueprint catalog "${o.meta.name}".`}))}}let l=new Set;for(let e of a.blueprint)for(let t of e.entries)l.add(t.key);for(let e of a.platform)for(let t of e.entries)l.add(t.key);return(t.translationOverrides?.entries??[]).forEach((e,n)=>{let i=`translationOverrides.entries[${n}]`;l.has(e.key)||r.push(C({code:`UNKNOWN_TRANSLATION_KEY`,severity:`error`,path:i,message:`Override references unknown key "${e.key}".`})),o&&(new Set([...o.supportedLocales,...t.locales?.enabledLocales??[],t.locales?.defaultLocale??o.defaultLocale]).has(e.locale)||r.push(C({code:`UNSUPPORTED_LOCALE_OVERRIDE`,severity:`error`,path:i,message:`Locale "${e.locale}" is not enabled for tenant overrides.`})))}),r}},x={scope:`resolved`,name:`integration.required-slots`,category:`integration`,validate(e,t){let n=[],r=(e.integrationSlots??[]).filter(e=>e.required);for(let e of r)t.integrations.some(t=>t.slot.slotId===e.slotId)||n.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Resolved config is missing integration slot "${e.slotId}".`}));for(let e of t.integrations)(e.connection.status===`disconnected`||e.connection.status===`error`)&&n.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:`integrations.${e.slot.slotId}`,message:`Resolved integration "${e.slot.slotId}" uses a connection in status "${e.connection.status}".`}));return n}},S={scope:`resolved`,name:`translation.default-locale`,category:`translation`,validate(e,t){let n=[],r=t.translation;return r&&!r.supportedLocales.includes(r.defaultLocale)&&n.push(C({code:`DEFAULT_LOCALE_NOT_SUPPORTED`,severity:`warning`,path:`translation.defaultLocale`,message:`supportedLocales should include defaultLocale for consistent fallback behaviour.`})),n}};function C(e){return e}function w(e){let t=new Map;for(let n of e){let e=`${n.code}|${n.path}|${n.severity}`;t.has(e)||t.set(e,n)}return[...t.values()]}function T(e){return`${e.key}@${e.version}`}function E(e,t){return e.capabilities.provides.some(e=>e.key===t.key&&e.version===t.version)}function D(e,t){if(e)return e.get(t.meta.integrationKey,t.meta.integrationVersion)}function O(e){let[t]=e.split(`?`);if(!t)return;let n=t.lastIndexOf(`.`);if(n!==-1)return t.slice(n+1).toLowerCase()}function k(e){return e?{platform:e.platform?Array.isArray(e.platform)?e.platform:[e.platform]:[],blueprint:e.blueprint?Array.isArray(e.blueprint)?e.blueprint:[e.blueprint]:[]}:{platform:[],blueprint:[]}}function A(e,t,n){return e.some(e=>e.key===t&&e.locale===n)}export{c as validateBlueprint,s as validateConfig,u as validateResolvedConfig,l as validateTenantConfig};
|
|
2
|
-
//# sourceMappingURL=validation.js.map
|
|
1
|
+
var e=class{blueprintRules=[];tenantRules=[];resolvedRules=[];register(e){return e.scope===`blueprint`?this.blueprintRules.push(e):e.scope===`tenant`?this.tenantRules.push(e):this.resolvedRules.push(e),this}validateBlueprint(e,t){return w(this.blueprintRules.flatMap(n=>n.validate(e,t)))}validateTenant(e,t,n){return w(this.tenantRules.flatMap(r=>r.validate(e,t,n)))}validateResolved(e,t,n){return w(this.resolvedRules.flatMap(r=>r.validate(e,t,n)))}};const t=/^(?!:\/\/)([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[A-Za-z]{2,}$/,n=/^https:\/\//i,r={logo:[`png`,`svg`,`webp`],"logo-dark":[`png`,`svg`,`webp`],favicon:[`ico`,`png`,`svg`],"og-image":[`png`,`jpg`,`jpeg`,`webp`]},i={};let a;function o(){return a||=p(),a}function s(e,t,n=i){let r=o();return f(d(r.validateBlueprint(e,n)),d(r.validateTenant(e,t,n)))}function c(e,t=i){return d(o().validateBlueprint(e,t))}function l(e,t,n=i){return d(o().validateTenant(e,t,n))}function u(e,t,n=i){return d(o().validateResolved(e,t,n))}function d(e){let t=e.filter(e=>e.severity===`error`),n=e.filter(e=>e.severity===`warning`),r=e.filter(e=>e.severity===`info`);return{valid:t.length===0,errors:t,warnings:n,info:r}}function f(...e){let t=e.flatMap(e=>e.errors),n=e.flatMap(e=>e.warnings),r=e.flatMap(e=>e.info);return{valid:t.length===0,errors:t,warnings:n,info:r}}function p(){return new e().register(m).register(h).register(g).register(_).register(v).register(y).register(b).register(x).register(S)}const m={scope:`blueprint`,name:`integration.duplicate-slots`,category:`integration`,validate(e){let t=[],n=new Set;for(let r of e.integrationSlots??[])n.has(r.slotId)?t.push(C({code:`DUPLICATE_SLOT`,severity:`error`,path:`integrationSlots.${r.slotId}`,message:`Duplicate integration slot id "${r.slotId}".`})):n.add(r.slotId),r.allowedModes&&r.allowedModes.length===0&&t.push(C({code:`EMPTY_ALLOWED_MODES`,severity:`warning`,path:`integrationSlots.${r.slotId}.allowedModes`,message:`allowedModes is empty; the slot will accept any supported mode.`}));return e.branding&&!e.branding.appNameKey.trim()&&t.push(C({code:`MISSING_APP_NAME_KEY`,severity:`warning`,path:`branding.appNameKey`,message:`branding.appNameKey should reference a translation catalog key.`})),t}},h={scope:`blueprint`,name:`capability.registry-check`,category:`capability`,validate(e,t){let n=[],r=t.capabilities;return r&&(e.capabilities?.enabled??[]).forEach((e,t)=>{r.get(e.key,e.version)||n.push(C({code:`MISSING_CAPABILITY`,severity:`error`,path:`capabilities.enabled[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),n}},g={scope:`tenant`,name:`capability.required-enabled`,category:`capability`,validate(e,t,n){let r=[],i=n.capabilities,a=new Set((e.capabilities?.enabled??[]).map(T)),o=t.capabilities?.disable??[];return o.forEach((e,t)=>{a.has(T(e))&&r.push(C({code:`DISABLED_REQUIRED_CAPABILITY`,severity:`error`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is required by the blueprint and cannot be disabled.`}))}),i&&((t.capabilities?.enable??[]).forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_ENABLE`,severity:`error`,path:`capabilities.enable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))}),o.forEach((e,t)=>{i.get(e.key,e.version)||r.push(C({code:`UNKNOWN_CAPABILITY_DISABLE`,severity:`warning`,path:`capabilities.disable[${t}]`,message:`Capability "${e.key}@${e.version}" is not registered.`}))})),r}},_={scope:`tenant`,name:`integration.slot-binding`,category:`integration`,validate(e,t,n){let r=[],i=new Map((e.integrationSlots??[]).map(e=>[e.slotId,e])),a=t.integrations??[],o=n.tenantConnections?.reduce((e,t)=>e.set(t.meta.id,t),new Map)??new Map,s=new Set;a.forEach(e=>{let a=`integrations.${e.slotId}`,c=i.get(e.slotId);if(!c){r.push(C({code:`UNKNOWN_SLOT_BINDING`,severity:`error`,path:a,message:`Integration slot "${e.slotId}" is not defined in the blueprint.`}));return}let l=!0,u=o.get(e.connectionId);if(!u){r.push(C({code:`MISSING_INTEGRATION_CONNECTION`,severity:`error`,path:a,message:`Integration connection "${e.connectionId}" was not found for tenant "${t.meta.tenantId}".`})),l=!1;return}u.meta.tenantId!==t.meta.tenantId&&(r.push(C({code:`FOREIGN_CONNECTION`,severity:`error`,path:a,message:`Connection "${e.connectionId}" belongs to tenant "${u.meta.tenantId}", not "${t.meta.tenantId}".`})),l=!1),c.allowedModes&&c.allowedModes.length>0&&(c.allowedModes.includes(u.ownershipMode)||(r.push(C({code:`MODE_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" only allows modes [${c.allowedModes.join(`, `)}] but connection is "${u.ownershipMode}".`})),l=!1)),u.status===`disconnected`||u.status===`error`?(r.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:a,message:`Connection "${u.meta.label}" is in status "${u.status}".`})),l=!1):u.status===`unknown`&&r.push(C({code:`CONNECTION_STATUS_UNKNOWN`,severity:`warning`,path:a,message:`Connection "${u.meta.label}" has unknown health status.`}));let d=D(n.integrationSpecs,u);if(!d){r.push(C({code:`INTEGRATION_SPEC_NOT_FOUND`,severity:`warning`,path:a,message:`Integration spec "${u.meta.integrationKey}@${u.meta.integrationVersion}" is not registered.`})),l=!1;return}d.meta.category!==c.requiredCategory&&(r.push(C({code:`CATEGORY_MISMATCH`,severity:`error`,path:a,message:`Slot "${c.slotId}" requires category "${c.requiredCategory}" but connection provides "${d.meta.category}".`})),l=!1),d.supportedModes.includes(u.ownershipMode)||(r.push(C({code:`UNSUPPORTED_OWNERSHIP_MODE`,severity:`error`,path:a,message:`Integration spec "${d.meta.key}" does not support ownership mode "${u.ownershipMode}".`})),l=!1);for(let e of c.requiredCapabilities??[])E(d,e)||(r.push(C({code:`CAPABILITY_NOT_PROVIDED`,severity:`error`,path:a,message:`Integration "${d.meta.key}" does not provide required capability "${e.key}@${e.version}".`})),l=!1);l&&s.add(c.slotId)});for(let e of i.values())e.required&&!s.has(e.slotId)&&r.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Required integration slot "${e.slotId}" is not bound.`}));return r}},v={scope:`tenant`,name:`knowledge.bindings`,category:`knowledge`,validate(e,t,n){let r=[],i=n.knowledgeSpaces;if(!i)return r;let a=n.knowledgeSources??[];return(t.knowledge??[]).forEach((e,n)=>{let o=`knowledge[${n}]`,s=i.get(e.spaceKey,e.spaceVersion);if(!s){r.push(C({code:`UNKNOWN_KNOWLEDGE_SPACE`,severity:`error`,path:`${o}.spaceKey`,message:`Knowledge space "${e.spaceKey}" is not registered.`}));return}a.some(t=>t.meta.spaceKey===e.spaceKey?e.spaceVersion==null?!0:t.meta.spaceVersion===e.spaceVersion:!1)||r.push(C({code:`MISSING_KNOWLEDGE_SOURCES`,severity:`error`,path:o,message:`Knowledge space "${e.spaceKey}" has no configured sources for tenant "${t.meta.tenantId}".`})),(s.meta.category===`external`||s.meta.category===`ephemeral`)&&r.push(C({code:`LOW_TRUST_KNOWLEDGE`,severity:`warning`,path:o,message:`Knowledge space "${e.spaceKey}" has category "${s.meta.category}". Avoid using it for irreversible or policy decisions.`}))}),r}},y={scope:`tenant`,name:`branding.constraints`,category:`branding`,validate(e,i,a){let o=[],s=i.branding;if(!s)return o;let c=s.customDomain?.trim();if(c){t.test(c)||o.push(C({code:`INVALID_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is not a valid hostname.`}));let e=(a.existingConfigs??[]).find(e=>{if(e.meta.id===i.meta.id)return!1;let t=e.branding?.customDomain?.trim();return t?t.toLowerCase()===c.toLowerCase():!1});e&&o.push(C({code:`DUPLICATE_DOMAIN`,severity:`error`,path:`branding.customDomain`,message:`Custom domain "${c}" is already used by tenant "${e.meta.tenantId}".`}))}return(s.assets??[]).forEach((e,t)=>{let i=`branding.assets[${t}]`;n.test(e.url)||o.push(C({code:`INSECURE_ASSET_URL`,severity:`error`,path:`${i}.url`,message:`Branding asset "${e.type}" must use an HTTPS URL.`}));let a=r[e.type]??r.logo,s=O(e.url);s&&a&&!a.includes(s)&&o.push(C({code:`UNEXPECTED_ASSET_TYPE`,severity:`warning`,path:`${i}.url`,message:`Asset "${e.type}" should use one of: ${(a??[]).join(`, `)}. Detected "${s}".`}))}),o}},b={scope:`tenant`,name:`translation.consistency`,category:`translation`,validate(e,t,n){let r=[],i=e.translationCatalog,a=k(n.translationCatalogs),o=i?a.blueprint.find(e=>e.meta.name===i.name&&e.meta.version===i.version):void 0;i&&!o&&r.push(C({code:`MISSING_BLUEPRINT_CATALOG`,severity:`error`,path:`translationCatalog`,message:`Blueprint translation catalog "${i.name}@${i.version}" is not loaded in context.`}));let s=new Set;e.branding?.appNameKey&&(s.add(e.branding.appNameKey),o&&!A(o.entries,e.branding.appNameKey,o.defaultLocale)&&r.push(C({code:`MISSING_TRANSLATION_KEY`,severity:`error`,path:`branding.appNameKey`,message:`Translation key "${e.branding.appNameKey}" is missing for locale "${o.defaultLocale}".`})));let c=t.locales;if(c){let{defaultLocale:e,enabledLocales:t}=c;if(t.includes(e)||r.push(C({code:`LOCALE_NOT_ENABLED`,severity:`warning`,path:`locales.enabledLocales`,message:`enabledLocales does not include defaultLocale "${e}".`})),o){let n=new Set(o.supportedLocales);for(let i of[e,...t])n.has(i)||r.push(C({code:`UNSUPPORTED_LOCALE`,severity:`error`,path:`locales.enabledLocales`,message:`Locale "${i}" is not supported by blueprint catalog "${o.meta.name}".`}))}}let l=new Set;for(let e of a.blueprint)for(let t of e.entries)l.add(t.key);for(let e of a.platform)for(let t of e.entries)l.add(t.key);return(t.translationOverrides?.entries??[]).forEach((e,n)=>{let i=`translationOverrides.entries[${n}]`;l.has(e.key)||r.push(C({code:`UNKNOWN_TRANSLATION_KEY`,severity:`error`,path:i,message:`Override references unknown key "${e.key}".`})),o&&(new Set([...o.supportedLocales,...t.locales?.enabledLocales??[],t.locales?.defaultLocale??o.defaultLocale]).has(e.locale)||r.push(C({code:`UNSUPPORTED_LOCALE_OVERRIDE`,severity:`error`,path:i,message:`Locale "${e.locale}" is not enabled for tenant overrides.`})))}),r}},x={scope:`resolved`,name:`integration.required-slots`,category:`integration`,validate(e,t){let n=[],r=(e.integrationSlots??[]).filter(e=>e.required);for(let e of r)t.integrations.some(t=>t.slot.slotId===e.slotId)||n.push(C({code:`MISSING_REQUIRED_SLOT`,severity:`error`,path:`integrations.${e.slotId}`,message:`Resolved config is missing integration slot "${e.slotId}".`}));for(let e of t.integrations)(e.connection.status===`disconnected`||e.connection.status===`error`)&&n.push(C({code:`CONNECTION_NOT_READY`,severity:`error`,path:`integrations.${e.slot.slotId}`,message:`Resolved integration "${e.slot.slotId}" uses a connection in status "${e.connection.status}".`}));return n}},S={scope:`resolved`,name:`translation.default-locale`,category:`translation`,validate(e,t){let n=[],r=t.translation;return r&&!r.supportedLocales.includes(r.defaultLocale)&&n.push(C({code:`DEFAULT_LOCALE_NOT_SUPPORTED`,severity:`warning`,path:`translation.defaultLocale`,message:`supportedLocales should include defaultLocale for consistent fallback behaviour.`})),n}};function C(e){return e}function w(e){let t=new Map;for(let n of e){let e=`${n.code}|${n.path}|${n.severity}`;t.has(e)||t.set(e,n)}return[...t.values()]}function T(e){return`${e.key}@${e.version}`}function E(e,t){return e.capabilities.provides.some(e=>e.key===t.key&&e.version===t.version)}function D(e,t){if(e)return e.get(t.meta.integrationKey,t.meta.integrationVersion)}function O(e){let[t]=e.split(`?`);if(!t)return;let n=t.lastIndexOf(`.`);if(n!==-1)return t.slice(n+1).toLowerCase()}function k(e){return e?{platform:e.platform?Array.isArray(e.platform)?e.platform:[e.platform]:[],blueprint:e.blueprint?Array.isArray(e.blueprint)?e.blueprint:[e.blueprint]:[]}:{platform:[],blueprint:[]}}function A(e,t,n){return e.some(e=>e.key===t&&e.locale===n)}export{c as validateBlueprint,s as validateConfig,u as validateResolvedConfig,l as validateTenantConfig};
|