@lssm/lib.contracts 0.0.0-canary-20251120192244 → 0.0.0-canary-20251206181705
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/README.md +3 -1
- 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 +3 -4
- 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 +2 -2
- package/dist/capabilities.js +1 -2
- package/dist/client/index.d.ts +2 -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 +2 -4
- 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/client/react/index.d.ts +2 -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 +16 -0
- package/dist/experiments/spec-resolver.js +0 -0
- 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/index.d.ts +7 -4
- package/dist/index.js +1 -1
- 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 +3 -4
- 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 +3 -4
- 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 +21 -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/schema/dist/entity/defineEntity.js +1 -0
- package/dist/schema/dist/entity/index.js +1 -0
- package/dist/schema/dist/entity/types.js +1 -0
- package/dist/schema/dist/index.js +1 -1
- package/dist/schema-to-markdown.d.ts +54 -0
- package/dist/schema-to-markdown.js +10 -0
- 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/all.d.ts +3 -3
- package/dist/types.d.ts +4 -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 +31 -25
- 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.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
|
@@ -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};
|
|
@@ -6,5 +6,4 @@ declare const openBankingTransactionsReadCapability: CapabilitySpec;
|
|
|
6
6
|
declare const openBankingBalancesReadCapability: CapabilitySpec;
|
|
7
7
|
declare function registerOpenBankingCapabilities(registry: CapabilityRegistry): CapabilityRegistry;
|
|
8
8
|
//#endregion
|
|
9
|
-
export { openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, registerOpenBankingCapabilities };
|
|
10
|
-
//# sourceMappingURL=openbanking.d.ts.map
|
|
9
|
+
export { openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, registerOpenBankingCapabilities };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{StabilityEnum as e}from"../ownership.js";const t=[`platform.finance`],n=[`open-banking`,`finance`],r={meta:{key:`openbanking.accounts.read`,version:1,kind:`integration`,title:`Open Banking Accounts (Read)`,description:`Provides read-only access to linked bank accounts, including account summaries and metadata.`,domain:`finance`,owners:[...t],tags:[...n],stability:e.Experimental},provides:[{surface:`operation`,name:`openbanking.accounts.list`,version:1,description:`List bank accounts linked to a Powens open banking connection.`},{surface:`operation`,name:`openbanking.accounts.get`,version:1,description:`Retrieve the canonical bank account record for a specific account.`},{surface:`operation`,name:`openbanking.accounts.sync`,version:1,description:`Trigger a refresh of bank account metadata from the open banking provider.`}]},i={meta:{key:`openbanking.transactions.read`,version:1,kind:`integration`,title:`Open Banking Transactions (Read)`,description:`Enables retrieval of transaction history for linked bank accounts via open banking providers.`,domain:`finance`,owners:[...t],tags:[...n,`transactions`],stability:e.Experimental},provides:[{surface:`operation`,name:`openbanking.transactions.list`,version:1,description:`List transactions for a given bank account with optional date filtering.`},{surface:`operation`,name:`openbanking.transactions.sync`,version:1,description:`Synchronise transactions from the open banking provider into the canonical ledger.`}]},a={meta:{key:`openbanking.balances.read`,version:1,kind:`integration`,title:`Open Banking Balances (Read)`,description:`Allows querying of current and available balances for linked bank accounts via open banking providers.`,domain:`finance`,owners:[...t],tags:[...n,`balances`],stability:e.Experimental},provides:[{surface:`operation`,name:`openbanking.balances.get`,version:1,description:`Retrieve the latest known balances for a specified bank account.`},{surface:`operation`,name:`openbanking.balances.refresh`,version:1,description:`Force a balance refresh from the open banking provider.`}]};function o(e){return e.register(r).register(i).register(a)}export{r as openBankingAccountsReadCapability,a as openBankingBalancesReadCapability,i as openBankingTransactionsReadCapability,o as registerOpenBankingCapabilities};
|
|
2
|
-
//# sourceMappingURL=openbanking.js.map
|
|
1
|
+
import{StabilityEnum as e}from"../ownership.js";const t=[`platform.finance`],n=[`open-banking`,`finance`],r={meta:{key:`openbanking.accounts.read`,version:1,kind:`integration`,title:`Open Banking Accounts (Read)`,description:`Provides read-only access to linked bank accounts, including account summaries and metadata.`,domain:`finance`,owners:[...t],tags:[...n],stability:e.Experimental},provides:[{surface:`operation`,name:`openbanking.accounts.list`,version:1,description:`List bank accounts linked to a Powens open banking connection.`},{surface:`operation`,name:`openbanking.accounts.get`,version:1,description:`Retrieve the canonical bank account record for a specific account.`},{surface:`operation`,name:`openbanking.accounts.sync`,version:1,description:`Trigger a refresh of bank account metadata from the open banking provider.`}]},i={meta:{key:`openbanking.transactions.read`,version:1,kind:`integration`,title:`Open Banking Transactions (Read)`,description:`Enables retrieval of transaction history for linked bank accounts via open banking providers.`,domain:`finance`,owners:[...t],tags:[...n,`transactions`],stability:e.Experimental},provides:[{surface:`operation`,name:`openbanking.transactions.list`,version:1,description:`List transactions for a given bank account with optional date filtering.`},{surface:`operation`,name:`openbanking.transactions.sync`,version:1,description:`Synchronise transactions from the open banking provider into the canonical ledger.`}]},a={meta:{key:`openbanking.balances.read`,version:1,kind:`integration`,title:`Open Banking Balances (Read)`,description:`Allows querying of current and available balances for linked bank accounts via open banking providers.`,domain:`finance`,owners:[...t],tags:[...n,`balances`],stability:e.Experimental},provides:[{surface:`operation`,name:`openbanking.balances.get`,version:1,description:`Retrieve the latest known balances for a specified bank account.`},{surface:`operation`,name:`openbanking.balances.refresh`,version:1,description:`Force a balance refresh from the open banking provider.`}]};function o(e){return e.register(r).register(i).register(a)}export{r as openBankingAccountsReadCapability,a as openBankingBalancesReadCapability,i as openBankingTransactionsReadCapability,o as registerOpenBankingCapabilities};
|
package/dist/capabilities.d.ts
CHANGED
|
@@ -40,6 +40,6 @@ declare class CapabilityRegistry {
|
|
|
40
40
|
satisfies(requirement: CapabilityRequirement, additional?: CapabilityRef[] | undefined): boolean;
|
|
41
41
|
}
|
|
42
42
|
declare function capabilityKey(spec: CapabilitySpec): string;
|
|
43
|
+
declare function defineCapability(spec: CapabilitySpec): CapabilitySpec;
|
|
43
44
|
//#endregion
|
|
44
|
-
export { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey };
|
|
45
|
-
//# sourceMappingURL=capabilities.d.ts.map
|
|
45
|
+
export { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey, defineCapability };
|
package/dist/capabilities.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
const e=(e,t)=>`${e}.v${t}`;var t=class{items=new Map;register(t){let n=e(t.meta.key,t.meta.version);if(this.items.has(n))throw Error(`Duplicate capability ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e(t,n));let r,i=-1/0;for(let e of this.items.values())e.meta.key===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}satisfies(e,t){if(e.optional||t?.some(t=>n(t,e)))return!0;let r=e.version?this.get(e.key,e.version):this.get(e.key);return!(!r||e.kind&&r.meta.kind!==e.kind||e.version!=null&&r.meta.version!==e.version)}};function n(e,t){return!(e.key!==t.key||t.version!=null&&e.version!==t.version)}function r(t){return e(t.meta.key,t.meta.version)}export{t as CapabilityRegistry,r as capabilityKey};
|
|
2
|
-
//# sourceMappingURL=capabilities.js.map
|
|
1
|
+
const e=(e,t)=>`${e}.v${t}`;var t=class{items=new Map;register(t){let n=e(t.meta.key,t.meta.version);if(this.items.has(n))throw Error(`Duplicate capability ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(t,n){if(n!=null)return this.items.get(e(t,n));let r,i=-1/0;for(let e of this.items.values())e.meta.key===t&&e.meta.version>i&&(i=e.meta.version,r=e);return r}satisfies(e,t){if(e.optional||t?.some(t=>n(t,e)))return!0;let r=e.version?this.get(e.key,e.version):this.get(e.key);return!(!r||e.kind&&r.meta.kind!==e.kind||e.version!=null&&r.meta.version!==e.version)}};function n(e,t){return!(e.key!==t.key||t.version!=null&&e.version!==t.version)}function r(t){return e(t.meta.key,t.meta.version)}function i(e){return e}export{t as CapabilityRegistry,r as capabilityKey,i as defineCapability};
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createEngineWithDefaults, createFeatureModule, registerFeature, renderFeaturePresentation } from "./react/feature-render.js";
|
|
2
2
|
import { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, createFormRenderer } from "./react/form-render.js";
|
|
3
3
|
import { ShadcnDriver, shadcnDriver } from "./react/drivers/shadcn.js";
|
|
4
4
|
import { RnReusablesDriver, rnReusablesDriver } from "./react/drivers/rn-reusables.js";
|
|
5
5
|
import "./react/index.js";
|
|
6
|
-
export {
|
|
6
|
+
export { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, RnReusablesDriver, ShadcnDriver, createEngineWithDefaults, createFeatureModule, createFormRenderer, registerFeature, renderFeaturePresentation, rnReusablesDriver, shadcnDriver };
|
|
@@ -19,5 +19,4 @@ import { DriverSlots } from "../form-render.js";
|
|
|
19
19
|
declare function rnReusablesDriver(slots: DriverSlots): DriverSlots;
|
|
20
20
|
type RnReusablesDriver = ReturnType<typeof rnReusablesDriver>;
|
|
21
21
|
//#endregion
|
|
22
|
-
export { RnReusablesDriver, rnReusablesDriver };
|
|
23
|
-
//# sourceMappingURL=rn-reusables.d.ts.map
|
|
22
|
+
export { RnReusablesDriver, rnReusablesDriver };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){return e}export{e as rnReusablesDriver};
|
|
2
|
-
//# sourceMappingURL=rn-reusables.js.map
|
|
1
|
+
function e(e){return e}export{e as rnReusablesDriver};
|
|
@@ -9,5 +9,4 @@ import { DriverSlots } from "../form-render.js";
|
|
|
9
9
|
declare function shadcnDriver(slots: DriverSlots): DriverSlots;
|
|
10
10
|
type ShadcnDriver = ReturnType<typeof shadcnDriver>;
|
|
11
11
|
//#endregion
|
|
12
|
-
export { ShadcnDriver, shadcnDriver };
|
|
13
|
-
//# sourceMappingURL=shadcn.d.ts.map
|
|
12
|
+
export { ShadcnDriver, shadcnDriver };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){return e}export{e as shadcnDriver};
|
|
2
|
-
//# sourceMappingURL=shadcn.js.map
|
|
1
|
+
function e(e){return e}export{e as shadcnDriver};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { PresentationDescriptorV2, PresentationTarget, TransformEngine } from "../../presentations.v2.js";
|
|
1
|
+
import { ComponentMap, PresentationDescriptorV2, PresentationTarget, TransformEngine } from "../../presentations.v2.js";
|
|
2
2
|
import { FeatureModuleSpec, FeatureRegistry } from "../../features.js";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { BlockConfig } from "@blocknote/core";
|
|
5
5
|
|
|
6
6
|
//#region src/client/react/feature-render.d.ts
|
|
7
|
-
type ComponentMap = Record<string, React.ComponentType<any>>;
|
|
8
7
|
declare function createEngineWithDefaults(): TransformEngine;
|
|
9
8
|
declare function renderFeaturePresentation(engine: TransformEngine, target: PresentationTarget, desc: PresentationDescriptorV2, options?: {
|
|
10
9
|
componentMap?: ComponentMap;
|
|
@@ -17,5 +16,4 @@ declare function renderFeaturePresentation(engine: TransformEngine, target: Pres
|
|
|
17
16
|
declare function createFeatureModule(meta: FeatureModuleSpec['meta'], refs: Partial<Pick<FeatureModuleSpec, 'operations' | 'events' | 'presentations' | 'presentationsTargets'>>): FeatureModuleSpec;
|
|
18
17
|
declare function registerFeature(registry: FeatureRegistry, feature: FeatureModuleSpec): FeatureRegistry;
|
|
19
18
|
//#endregion
|
|
20
|
-
export {
|
|
21
|
-
//# sourceMappingURL=feature-render.d.ts.map
|
|
19
|
+
export { createEngineWithDefaults, createFeatureModule, registerFeature, renderFeaturePresentation };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{createDefaultTransformEngine as e,registerBasicValidation as t,registerDefaultReactRenderer as n}from"../../presentations.v2.js";import r from"react";function i(){return t(n(e()))}async function a(e,t,n,i){if(t===`react`){let t=await e.render(`react`,n);if(t.kind===`react_component`){let e=(i?.componentMap??{})[t.componentKey];if(!e)return null;let n={...t.props??{},...i?.reactProps??{}};return r.createElement(e,n)}return t.kind===`blocknotejs`?i?.renderBlockNote?i.renderBlockNote(t.docJson,t.blockConfig):r.createElement(`div`,{},`[BlockNote renderer not configured]`):null}return t===`markdown`||t===`application/json`||t===`application/xml`?e.render(t,n):null}function o(e,t){return{meta:e,...t}}function s(e,t){return e.register(t),e}export{i as createEngineWithDefaults,o as createFeatureModule,s as registerFeature,a as renderFeaturePresentation};
|
|
2
|
-
//# sourceMappingURL=feature-render.js.map
|
|
1
|
+
import{createDefaultTransformEngine as e,registerBasicValidation as t,registerDefaultReactRenderer as n}from"../../presentations.v2.js";import r from"react";function i(){return t(n(e()))}async function a(e,t,n,i){if(t===`react`){let t=await e.render(`react`,n);if(t.kind===`react_component`){let e=(i?.componentMap??{})[t.componentKey];if(!e)return null;let n={...t.props??{},...i?.reactProps??{}};return r.createElement(e,n)}return t.kind===`blocknotejs`?i?.renderBlockNote?i.renderBlockNote(t.docJson,t.blockConfig):r.createElement(`div`,{},`[BlockNote renderer not configured]`):null}return t===`markdown`||t===`application/json`||t===`application/xml`?e.render(t,n):null}function o(e,t){return{meta:e,...t}}function s(e,t){return e.register(t),e}export{i as createEngineWithDefaults,o as createFeatureModule,s as registerFeature,a as renderFeaturePresentation};
|
|
@@ -88,5 +88,4 @@ declare function createFormRenderer<M extends AnySchemaModel = AnySchemaModel>(b
|
|
|
88
88
|
render: (spec: FormSpec<M>, options?: RenderOptions<FormValuesFor<M>>) => react_jsx_runtime0.JSX.Element;
|
|
89
89
|
};
|
|
90
90
|
//#endregion
|
|
91
|
-
export { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, createFormRenderer };
|
|
92
|
-
//# sourceMappingURL=form-render.d.ts.map
|
|
91
|
+
export { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, createFormRenderer };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{buildZodWithRelations as e,evalPredicate as t}from"../../forms.js";import n,{useEffect as r,useMemo as i,useState as a}from"react";import{Controller as o,useFieldArray as s,useForm as c}from"react-hook-form";import{zodResolver as l}from"@hookform/resolvers/zod";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";function p(e){if(e)return Array.isArray(e)?{kind:`static`,options:e}:e}function m(e,t){if(!t)return;let n=t.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function h(e,t){if(!t||t.length===0)return`[]`;try{return JSON.stringify(t.map(t=>m(e,t)))}catch{return`[]`}}function g(e,t,n){let[o,s]=a([]);return r(()=>{let r=!0;return(async()=>{if(!t)return s([]);if(t.kind===`static`)return s([...t.options??[]]);let i=n?.[t.resolverKey];if(!i)return s([]);let a=await i(e,t.args);r&&s([...a??[]])})(),()=>{r=!1}},[i(()=>t?t.kind===`static`?JSON.stringify(t.options??[]):h(e,t.deps):`nil`,[t,e]),t&&t.resolverKey]),o}function _(e,t,n){if(!t)return e??``;let r=typeof n==`number`?`${t.replace(/^\$index$/,String(n))}`:t;return e?`${e}${typeof n==`number`?`.${n}`:``}.${r}`.replace(/\.+/g,`.`):r}function v(r){let a=r,{driver:m}=a;function h(r){let{spec:a,options:h,merged:v}=r,y=i(()=>e(a),[a]),b=c({...v.formOptions,resolver:l(y),defaultValues:h?.defaultValues}),x=b.watch(),S=(e,r,i)=>{let a=m.Field,s=m.FieldLabel,c=m.FieldDescription,l=m.FieldError,h=_(r,e.name,i),y=t(x,e.visibleWhen),w=t(x,e.enabledWhen),T=!!b.getFieldState(h)?.invalid;if(!y)return null;let E=h?.replace(/\./g,`-`),D={"data-invalid":T,hidden:!y,disabled:!w},O=e.labelI18n?d(s,{htmlFor:E,children:e.labelI18n}):null,k=e.descriptionI18n?d(c,{children:e.descriptionI18n}):null;if(e.kind===`group`){let t=e.fields.map((e,t)=>d(n.Fragment,{children:S(e,h,i)},`${h}-${t}`));return f(a,{...D,children:[O,t,k]})}return e.kind===`array`?C(e,r):d(o,{name:h,control:b.control,render:({field:t,fieldState:n})=>{let r=n.error?[n.error]:[],i=n.invalid||void 0;if(e.kind===`text`){let o=m.Input;return f(a,{...D,children:[O,d(o,{id:E,"aria-invalid":i,placeholder:e.placeholderI18n,autoComplete:e.autoComplete,inputMode:e.inputMode,maxLength:e.maxLength,minLength:e.minLength,disabled:!w,...t,...e.uiProps,keyboard:e.keyboard,autoComplete:e.keyboard?.autoComplete??e.autoComplete}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`textarea`){let o=m.Textarea;return f(a,{...D,children:[O,d(o,{id:E,"aria-invalid":i,placeholder:e.placeholderI18n,rows:e.rows,maxLength:e.maxLength,disabled:!w,...t,...e.uiProps,keyboard:e.keyboard,autoComplete:e.keyboard?.autoComplete??e.autoComplete}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`select`){let o=m.Select,s=g(x,p(e.options),v.resolvers);return f(a,{...D,children:[O,d(o,{id:E,name:h,"aria-invalid":i,disabled:!w,value:t.value,onChange:e=>t.onChange(e),options:s,...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`checkbox`){let i=m.Checkbox;return f(a,{...D,children:[O,d(i,{id:E,name:h,disabled:!w,checked:!!t.value,onCheckedChange:e=>t.onChange(e),...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`radio`){let i=m.RadioGroup,o=g(x,p(e.options),v.resolvers);return f(a,{...D,children:[O,d(i,{id:E,name:h,disabled:!w,value:t.value,onValueChange:e=>t.onChange(e),options:o,...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`switch`){let i=m.Switch;return f(a,{...D,children:[O,d(i,{id:E,name:h,disabled:!w,checked:!!t.value,onCheckedChange:e=>t.onChange(e),...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}return d(u,{})}},h)},C=(e,t)=>{let n=_(t,e.name),{fields:r,append:i,remove:a}=s({control:b.control,name:n}),o=e.max==null||r.length<e.max,c=t=>(e.min==null?r.length>0:r.length>e.min)&&t>=0,l=m.Button,u=m.FieldLabel;return f(`div`,{children:[e.labelI18n?d(u,{children:e.labelI18n}):null,r.map((t,r)=>f(`div`,{children:[S(e.of,n,r),c(r)?d(l,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>a(r),children:`Remove`}):null]},t.id??r)),o?d(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>i({}),children:`Add`}):null]},n)},w=async e=>{let t=a.actions?.[0]?.key??`submit`;if(v.onSubmitOverride)return v.onSubmitOverride(e,t)},T=m.Button;return f(`form`,{onSubmit:b.handleSubmit(w),children:[(a.fields||[]).map((e,t)=>d(n.Fragment,{children:S(e)},t)),a.actions&&a.actions.length?d(`div`,{children:a.actions.map(e=>d(T,{type:`submit`,children:e.labelI18n},e.key))}):null]})}return{render:(e,t)=>d(h,{spec:e,options:t,merged:{...a,...t?.overrides??{}}})}}export{v as createFormRenderer};
|
|
2
|
-
//# sourceMappingURL=form-render.js.map
|
|
1
|
+
import{buildZodWithRelations as e,evalPredicate as t}from"../../forms.js";import n,{useEffect as r,useMemo as i,useState as a}from"react";import{Controller as o,useFieldArray as s,useForm as c}from"react-hook-form";import{zodResolver as l}from"@hookform/resolvers/zod";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";function p(e){if(e)return Array.isArray(e)?{kind:`static`,options:e}:e}function m(e,t){if(!t)return;let n=t.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function h(e,t){if(!t||t.length===0)return`[]`;try{return JSON.stringify(t.map(t=>m(e,t)))}catch{return`[]`}}function g(e,t,n){let[o,s]=a([]);return r(()=>{let r=!0;return(async()=>{if(!t)return s([]);if(t.kind===`static`)return s([...t.options??[]]);let i=n?.[t.resolverKey];if(!i)return s([]);let a=await i(e,t.args);r&&s([...a??[]])})(),()=>{r=!1}},[i(()=>t?t.kind===`static`?JSON.stringify(t.options??[]):h(e,t.deps):`nil`,[t,e]),t&&t.resolverKey]),o}function _(e,t,n){if(!t)return e??``;let r=typeof n==`number`?`${t.replace(/^\$index$/,String(n))}`:t;return e?`${e}${typeof n==`number`?`.${n}`:``}.${r}`.replace(/\.+/g,`.`):r}function v(r){let a=r,{driver:m}=a;function h(r){let{spec:a,options:h,merged:v}=r,y=i(()=>e(a),[a]),b=c({...v.formOptions,resolver:l(y),defaultValues:h?.defaultValues}),x=b.watch(),S=(e,r,i)=>{let a=m.Field,s=m.FieldLabel,c=m.FieldDescription,l=m.FieldError,h=_(r,e.name,i),y=t(x,e.visibleWhen),w=t(x,e.enabledWhen),T=!!b.getFieldState(h)?.invalid;if(!y)return null;let E=h?.replace(/\./g,`-`),D={"data-invalid":T,hidden:!y,disabled:!w},O=e.labelI18n?d(s,{htmlFor:E,children:e.labelI18n}):null,k=e.descriptionI18n?d(c,{children:e.descriptionI18n}):null;if(e.kind===`group`){let t=e.fields.map((e,t)=>d(n.Fragment,{children:S(e,h,i)},`${h}-${t}`));return f(a,{...D,children:[O,t,k]})}return e.kind===`array`?C(e,r):d(o,{name:h,control:b.control,render:({field:t,fieldState:n})=>{let r=n.error?[n.error]:[],i=n.invalid||void 0;if(e.kind===`text`){let o=m.Input;return f(a,{...D,children:[O,d(o,{id:E,"aria-invalid":i,placeholder:e.placeholderI18n,autoComplete:e.autoComplete,inputMode:e.inputMode,maxLength:e.maxLength,minLength:e.minLength,disabled:!w,...t,...e.uiProps,keyboard:e.keyboard,autoComplete:e.keyboard?.autoComplete??e.autoComplete}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`textarea`){let o=m.Textarea;return f(a,{...D,children:[O,d(o,{id:E,"aria-invalid":i,placeholder:e.placeholderI18n,rows:e.rows,maxLength:e.maxLength,disabled:!w,...t,...e.uiProps,keyboard:e.keyboard,autoComplete:e.keyboard?.autoComplete??e.autoComplete}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`select`){let o=m.Select,s=g(x,p(e.options),v.resolvers);return f(a,{...D,children:[O,d(o,{id:E,name:h,"aria-invalid":i,disabled:!w,value:t.value,onChange:e=>t.onChange(e),options:s,...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`checkbox`){let i=m.Checkbox;return f(a,{...D,children:[O,d(i,{id:E,name:h,disabled:!w,checked:!!t.value,onCheckedChange:e=>t.onChange(e),...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`radio`){let i=m.RadioGroup,o=g(x,p(e.options),v.resolvers);return f(a,{...D,children:[O,d(i,{id:E,name:h,disabled:!w,value:t.value,onValueChange:e=>t.onChange(e),options:o,...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}if(e.kind===`switch`){let i=m.Switch;return f(a,{...D,children:[O,d(i,{id:E,name:h,disabled:!w,checked:!!t.value,onCheckedChange:e=>t.onChange(e),...e.uiProps}),k,n.invalid?d(l,{errors:r}):null]})}return d(u,{})}},h)},C=(e,t)=>{let n=_(t,e.name),{fields:r,append:i,remove:a}=s({control:b.control,name:n}),o=e.max==null||r.length<e.max,c=t=>(e.min==null?r.length>0:r.length>e.min)&&t>=0,l=m.Button,u=m.FieldLabel;return f(`div`,{children:[e.labelI18n?d(u,{children:e.labelI18n}):null,r.map((t,r)=>f(`div`,{children:[S(e.of,n,r),c(r)?d(l,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>a(r),children:`Remove`}):null]},t.id??r)),o?d(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>i({}),children:`Add`}):null]},n)},w=async e=>{let t=a.actions?.[0]?.key??`submit`;if(v.onSubmitOverride)return v.onSubmitOverride(e,t)},T=m.Button;return f(`form`,{onSubmit:b.handleSubmit(w),children:[(a.fields||[]).map((e,t)=>d(n.Fragment,{children:S(e)},t)),a.actions&&a.actions.length?d(`div`,{children:a.actions.map(e=>d(T,{type:`submit`,children:e.labelI18n},e.key))}):null]})}return{render:(e,t)=>d(h,{spec:e,options:t,merged:{...a,...t?.overrides??{}}})}}export{v as createFormRenderer};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createEngineWithDefaults, createFeatureModule, registerFeature, renderFeaturePresentation } from "./feature-render.js";
|
|
2
2
|
import { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, createFormRenderer } from "./form-render.js";
|
|
3
3
|
import { ShadcnDriver, shadcnDriver } from "./drivers/shadcn.js";
|
|
4
4
|
import { RnReusablesDriver, rnReusablesDriver } from "./drivers/rn-reusables.js";
|
|
5
|
-
export {
|
|
5
|
+
export { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, RnReusablesDriver, ShadcnDriver, createEngineWithDefaults, createFeatureModule, createFormRenderer, registerFeature, renderFeaturePresentation, rnReusablesDriver, shadcnDriver };
|
|
@@ -12,5 +12,4 @@ declare function hydrateResourceIfNeeded(resources: ResourceRegistry | undefined
|
|
|
12
12
|
returns: ReturnsDecl;
|
|
13
13
|
}): Promise<unknown>;
|
|
14
14
|
//#endregion
|
|
15
|
-
export { ReturnsDecl, hydrateResourceIfNeeded, parseReturns };
|
|
16
|
-
//# sourceMappingURL=contracts-adapter-hydration.d.ts.map
|
|
15
|
+
export { ReturnsDecl, hydrateResourceIfNeeded, parseReturns };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){if(!e)return{isList:!1,inner:`JSON`};let t=String(e).trim();return t.startsWith(`[`)&&t.endsWith(`]`)?{isList:!0,inner:t.slice(1,-1).trim()}:{isList:!1,inner:t}}async function t(e,t,n){if(!e||!n.template)return t;let r=n.varName??`id`,i=async t=>{if(t&&t[r]!==void 0){let i=String(t[r]),a=n.template.replace(`{id}`,i),o=e.match(a);if(o){let e=await o.tmpl.resolve(o.params,{});try{return JSON.parse(String(e.data||`null`))}catch{return e.data}}}return t};return n.returns.isList&&Array.isArray(t)?await Promise.all(t.map(e=>i(e))):await i(t)}export{t as hydrateResourceIfNeeded,e as parseReturns};
|
|
2
|
-
//# sourceMappingURL=contracts-adapter-hydration.js.map
|
|
1
|
+
function e(e){if(!e)return{isList:!1,inner:`JSON`};let t=String(e).trim();return t.startsWith(`[`)&&t.endsWith(`]`)?{isList:!0,inner:t.slice(1,-1).trim()}:{isList:!1,inner:t}}async function t(e,t,n){if(!e||!n.template)return t;let r=n.varName??`id`,i=async t=>{if(t&&t[r]!==void 0){let i=String(t[r]),a=n.template.replace(`{id}`,i),o=e.match(a);if(o){let e=await o.tmpl.resolve(o.params,{});try{return JSON.parse(String(e.data||`null`))}catch{return e.data}}}return t};return n.returns.isList&&Array.isArray(t)?await Promise.all(t.map(e=>i(e))):await i(t)}export{t as hydrateResourceIfNeeded,e as parseReturns};
|
|
@@ -7,5 +7,4 @@ declare function createInputTypeBuilder<T extends SchemaTypes>(builder: PothosSc
|
|
|
7
7
|
buildInputFieldArgs: (model: AnySchemaModel | null) => null;
|
|
8
8
|
};
|
|
9
9
|
//#endregion
|
|
10
|
-
export { createInputTypeBuilder, isSchemaModel };
|
|
11
|
-
//# sourceMappingURL=contracts-adapter-input.d.ts.map
|
|
10
|
+
export { createInputTypeBuilder, isSchemaModel };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){return typeof e?.getPothosInput==`function`&&typeof e?.getZod==`function`}function t(e){return typeof e?.getPothos==`function`}function n(e){return typeof e?.getEnumValues==`function`&&typeof e?.getPothos==`function`}function r(e){return e===`Boolean_unsecure`?`Boolean`:e===`ID_unsecure`?`ID`:e===`String_unsecure`?`String`:e===`Int_unsecure`?`Int`:e===`Float_unsecure`?`Float`:e}function i(i){let a=new Map,o=new Set;function s(t){let r=Object.entries(t.config.fields);for(let[,t]of r)if(e(t.type))s(t.type);else if(n(t.type)){let e=t.type,n=e.getName?.()??e.getPothos().name;o.has(n)||(i.enumType(n,{values:e.getEnumValues()}),o.add(n))}}function c(n){let o=String(n.config?.name??`Input`),l=a.get(o);if(l)return l;s(n);let u=i.inputType(n.getPothosInput(),{fields:i=>{let a=Object.entries(n.config.fields),o={};for(let[n,s]of a)if(e(s.type)){let e=c(s.type),t=s.isArray?[e]:e;o[n]=i.field({type:t,required:!s.isOptional})}else if(t(s.type)){let e=r(String(s.type.getPothos().name)),t=s.isArray?[e]:e;o[n]=i.field({type:t,required:!s.isOptional})}else{let e=s.isArray?[`JSON`]:`JSON`;o[n]=i.field({type:e,required:!s.isOptional})}return o}});return a.set(o,u),u}function l(e){return!e||!e.config?.fields||Object.keys(e.config.fields).length===0?null:c(e)}return{buildInputFieldArgs:l}}export{i as createInputTypeBuilder,e as isSchemaModel};
|
|
2
|
-
//# sourceMappingURL=contracts-adapter-input.js.map
|
|
1
|
+
function e(e){return typeof e?.getPothosInput==`function`&&typeof e?.getZod==`function`}function t(e){return typeof e?.getPothos==`function`}function n(e){return typeof e?.getEnumValues==`function`&&typeof e?.getPothos==`function`}function r(e){return e===`Boolean_unsecure`?`Boolean`:e===`ID_unsecure`?`ID`:e===`String_unsecure`?`String`:e===`Int_unsecure`?`Int`:e===`Float_unsecure`?`Float`:e}function i(i){let a=new Map,o=new Set;function s(t){let r=Object.entries(t.config.fields);for(let[,t]of r)if(e(t.type))s(t.type);else if(n(t.type)){let e=t.type,n=e.getName?.()??e.getPothos().name;o.has(n)||(i.enumType(n,{values:e.getEnumValues()}),o.add(n))}}function c(n){let o=String(n.config?.name??`Input`),l=a.get(o);if(l)return l;s(n);let u=i.inputType(n.getPothosInput(),{fields:i=>{let a=Object.entries(n.config.fields),o={};for(let[n,s]of a)if(e(s.type)){let e=c(s.type),t=s.isArray?[e]:e;o[n]=i.field({type:t,required:!s.isOptional})}else if(t(s.type)){let e=r(String(s.type.getPothos().name)),t=s.isArray?[e]:e;o[n]=i.field({type:t,required:!s.isOptional})}else{let e=s.isArray?[`JSON`]:`JSON`;o[n]=i.field({type:e,required:!s.isOptional})}return o}});return a.set(o,u),u}function l(e){return!e||!e.config?.fields||Object.keys(e.config.fields).length===0?null:c(e)}return{buildInputFieldArgs:l}}export{i as createInputTypeBuilder,e as isSchemaModel};
|
|
@@ -36,5 +36,4 @@ declare class DataViewQueryGenerator {
|
|
|
36
36
|
validateParams(params: DataViewQueryParams): string[];
|
|
37
37
|
}
|
|
38
38
|
//#endregion
|
|
39
|
-
export { DataViewQuery, DataViewQueryGenerator, DataViewQueryParams };
|
|
40
|
-
//# sourceMappingURL=query-generator.d.ts.map
|
|
39
|
+
export { DataViewQuery, DataViewQueryGenerator, DataViewQueryParams };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
var e=class{constructor(e){this.spec=e}generate(e){let{primary:t}=this.spec.source,n=e.pagination?.page??1,r=e.pagination?.pageSize??20,i=(n-1)*r,a=r,o={skip:i,take:a,...e.filters};return e.search&&(o.search=e.search),e.sort&&(o.orderBy={[e.sort.field]:e.sort.direction}),{operationName:t.name,input:o,meta:{pagination:{page:n,pageSize:r,skip:i,take:a},sorting:e.sort}}}validateParams(e){let t=[];if(e.filters&&this.spec.view.filters)for(let n of Object.keys(e.filters))this.spec.view.filters.find(e=>e.key===n)||t.push(`Unknown filter key: ${n}`);if(e.sort){let n=this.spec.view.fields.find(t=>t.key===e.sort.field);n?n.sortable===!1&&t.push(`Field is not sortable: ${e.sort.field}`):t.push(`Unknown sort field: ${e.sort.field}`)}return t}};export{e as DataViewQueryGenerator};
|
|
2
|
-
//# sourceMappingURL=query-generator.js.map
|
|
1
|
+
var e=class{constructor(e){this.spec=e}generate(e){let{primary:t}=this.spec.source,n=e.pagination?.page??1,r=e.pagination?.pageSize??20,i=(n-1)*r,a=r,o={skip:i,take:a,...e.filters};return e.search&&(o.search=e.search),e.sort&&(o.orderBy={[e.sort.field]:e.sort.direction}),{operationName:t.name,input:o,meta:{pagination:{page:n,pageSize:r,skip:i,take:a},sorting:e.sort}}}validateParams(e){let t=[];if(e.filters&&this.spec.view.filters)for(let n of Object.keys(e.filters))this.spec.view.filters.find(e=>e.key===n)||t.push(`Unknown filter key: ${n}`);if(e.sort){let n=this.spec.view.fields.find(t=>t.key===e.sort.field);n?n.sortable===!1&&t.push(`Field is not sortable: ${e.sort.field}`):t.push(`Unknown sort field: ${e.sort.field}`)}return t}};export{e as DataViewQueryGenerator};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
var e=class{cache=new Map;subscriptions=new Map;constructor(e){this.config=e}register(e){this.config.registry.register(e)}getSpec(e,t){return this.config.registry.get(e,t)}async executeQuery(e,t){if(!this.getSpec(e))throw Error(`DataView spec not found: ${e}`);return{data:[],total:0,loading:!1}}invalidate(e){this.cache.delete(e),this.notifySubscribers(e)}subscribe(e,t){return this.subscriptions.has(e)||this.subscriptions.set(e,new Set),this.subscriptions.get(e).add(t),()=>{this.subscriptions.get(e)?.delete(t)}}notifySubscribers(e){this.subscriptions.get(e)?.forEach(e=>e())}};export{e as DataViewRuntime};
|
|
2
|
-
//# sourceMappingURL=runtime.js.map
|
|
1
|
+
var e=class{cache=new Map;subscriptions=new Map;constructor(e){this.config=e}register(e){this.config.registry.register(e)}getSpec(e,t){return this.config.registry.get(e,t)}async executeQuery(e,t){if(!this.getSpec(e))throw Error(`DataView spec not found: ${e}`);return{data:[],total:0,loading:!1}}invalidate(e){this.cache.delete(e),this.notifySubscribers(e)}subscribe(e,t){return this.subscriptions.has(e)||this.subscriptions.set(e,new Set),this.subscriptions.get(e).add(t),()=>{this.subscriptions.get(e)?.delete(t)}}notifySubscribers(e){this.subscriptions.get(e)?.forEach(e=>e())}};export{e as DataViewRuntime};
|
package/dist/data-views.d.ts
CHANGED
|
@@ -128,5 +128,4 @@ declare class DataViewRegistry {
|
|
|
128
128
|
}
|
|
129
129
|
declare function dataViewKey(spec: DataViewSpec): string;
|
|
130
130
|
//#endregion
|
|
131
|
-
export { DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, dataViewKey };
|
|
132
|
-
//# sourceMappingURL=data-views.d.ts.map
|
|
131
|
+
export { DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, dataViewKey };
|
package/dist/data-views.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){return`${e.meta.name}.v${e.meta.version}`}var t=class{items=new Map;register(t){let n=e(t);if(this.items.has(n))throw Error(`Duplicate data view ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let t of this.items.values())t.meta.name===e&&t.meta.version>r&&(r=t.meta.version,n=t);return n}};function n(t){return e(t)}export{t as DataViewRegistry,n as dataViewKey};
|
|
2
|
-
//# sourceMappingURL=data-views.js.map
|
|
1
|
+
function e(e){return`${e.meta.name}.v${e.meta.version}`}var t=class{items=new Map;register(t){let n=e(t);if(this.items.has(n))throw Error(`Duplicate data view ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let t of this.items.values())t.meta.name===e&&t.meta.version>r&&(r=t.meta.version,n=t);return n}};function n(t){return e(t)}export{t as DataViewRegistry,n as dataViewKey};
|
package/dist/events.d.ts
CHANGED
|
@@ -41,5 +41,4 @@ type EventKey = `${string}.v${number}`;
|
|
|
41
41
|
/** Build a stable string key for an event name/version pair. */
|
|
42
42
|
declare const eventKey: (name: string, version: number) => EventKey;
|
|
43
43
|
//#endregion
|
|
44
|
-
export { EventEnvelope, EventKey, EventSpec, defineEvent, eventKey };
|
|
45
|
-
//# sourceMappingURL=events.d.ts.map
|
|
44
|
+
export { EventEnvelope, EventKey, EventSpec, defineEvent, eventKey };
|
package/dist/events.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"./schema/dist/index.js";function e(e){return e}const t=(e,t)=>`${e}.v${t}`;export{e as defineEvent,t as eventKey};
|
|
2
|
-
//# sourceMappingURL=events.js.map
|
|
1
|
+
import"./schema/dist/index.js";function e(e){return e}const t=(e,t)=>`${e}.v${t}`;export{e as defineEvent,t as eventKey};
|
|
@@ -34,5 +34,4 @@ declare class ExperimentEvaluator {
|
|
|
34
34
|
private matchesRule;
|
|
35
35
|
}
|
|
36
36
|
//#endregion
|
|
37
|
-
export { ExperimentContext, ExperimentEvaluation, ExperimentEvaluator, ExperimentEvaluatorConfig };
|
|
38
|
-
//# sourceMappingURL=evaluator.d.ts.map
|
|
37
|
+
export { ExperimentContext, ExperimentEvaluation, ExperimentEvaluator, ExperimentEvaluatorConfig };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{createHash as e}from"node:crypto";var t=class{registry;policyChecker;expressionEvaluator;constructor(e){this.registry=e.registry,this.policyChecker=e.policyChecker,this.expressionEvaluator=e.expressionEvaluator}async chooseVariant(e){let t=this.registry.get(e.experiment,e.version);if(!t)return null;let n=t.variants.find(e=>e.id===t.controlVariant);if(!n)throw Error(`Experiment ${t.meta.name} missing control variant ${t.controlVariant}`);switch(t.allocation.type){case`random`:return{variant:this.pickByWeight(t,this.randomSeed(e,t.allocation.salt)),reason:`random`};case`sticky`:return{variant:this.pickByWeight(t,this.stickySeed(e,t.allocation.attribute,t.allocation.salt)),reason:`sticky`};case`targeted`:{let r=await this.evaluateTargeting(t,e,t.allocation.rules);return r?{variant:r,reason:`targeted`}:t.allocation.fallback===`random`?{variant:this.pickByWeight(t,this.randomSeed(e)),reason:`random`}:{variant:n,reason:`control`}}default:return{variant:n,reason:`control`}}}pickByWeight(e,t){let n=e.variants,r=t*n.reduce((e,t)=>e+(t.weight??1),0),i=0;for(let e of n)if(i+=e.weight??1,r<=i)return e;return n[n.length-1]}randomSeed(e,t=``){let n=e.sessionId??e.userId??e.organizationId??`${Date.now()}-${Math.random()}`;return this.hashToUnitInterval(n+t)}stickySeed(e,t,n=``){let r=e[t];return r?this.hashToUnitInterval(`${r}-${n}`):this.randomSeed(e,n)}hashToUnitInterval(t){let n=e(`sha256`).update(t).digest(`hex`).slice(0,15);return parseInt(n,16)%1e6/1e6}async evaluateTargeting(e,t,n){for(let r of n){if(!await this.matchesRule(r,t))continue;let n=e.variants.find(e=>e.id===r.variantId);if(n&&!(typeof r.percentage==`number`&&this.randomSeed(t,`rule-${r.variantId}`)>r.percentage))return n}return null}async matchesRule(e,t){if(e.policy&&this.policyChecker&&!await this.policyChecker(e.policy,t))return!1;if(e.expression){if(this.expressionEvaluator)return!!this.expressionEvaluator(e.expression,t);try{return!!Function(`context`,`return (${e.expression});`)(t)}catch{return!1}}return!0}};export{t as ExperimentEvaluator};
|
|
2
|
-
//# sourceMappingURL=evaluator.js.map
|
|
1
|
+
import{createHash as e}from"node:crypto";var t=class{registry;policyChecker;expressionEvaluator;constructor(e){this.registry=e.registry,this.policyChecker=e.policyChecker,this.expressionEvaluator=e.expressionEvaluator}async chooseVariant(e){let t=this.registry.get(e.experiment,e.version);if(!t)return null;let n=t.variants.find(e=>e.id===t.controlVariant);if(!n)throw Error(`Experiment ${t.meta.name} missing control variant ${t.controlVariant}`);switch(t.allocation.type){case`random`:return{variant:this.pickByWeight(t,this.randomSeed(e,t.allocation.salt)),reason:`random`};case`sticky`:return{variant:this.pickByWeight(t,this.stickySeed(e,t.allocation.attribute,t.allocation.salt)),reason:`sticky`};case`targeted`:{let r=await this.evaluateTargeting(t,e,t.allocation.rules);return r?{variant:r,reason:`targeted`}:t.allocation.fallback===`random`?{variant:this.pickByWeight(t,this.randomSeed(e)),reason:`random`}:{variant:n,reason:`control`}}default:return{variant:n,reason:`control`}}}pickByWeight(e,t){let n=e.variants,r=t*n.reduce((e,t)=>e+(t.weight??1),0),i=0;for(let e of n)if(i+=e.weight??1,r<=i)return e;return n[n.length-1]}randomSeed(e,t=``){let n=e.sessionId??e.userId??e.organizationId??`${Date.now()}-${Math.random()}`;return this.hashToUnitInterval(n+t)}stickySeed(e,t,n=``){let r=e[t];return r?this.hashToUnitInterval(`${r}-${n}`):this.randomSeed(e,n)}hashToUnitInterval(t){let n=e(`sha256`).update(t).digest(`hex`).slice(0,15);return parseInt(n,16)%1e6/1e6}async evaluateTargeting(e,t,n){for(let r of n){if(!await this.matchesRule(r,t))continue;let n=e.variants.find(e=>e.id===r.variantId);if(n&&!(typeof r.percentage==`number`&&this.randomSeed(t,`rule-${r.variantId}`)>r.percentage))return n}return null}async matchesRule(e,t){if(e.policy&&this.policyChecker&&!await this.policyChecker(e.policy,t))return!1;if(e.expression){if(this.expressionEvaluator)return!!this.expressionEvaluator(e.expression,t);try{return!!Function(`context`,`return (${e.expression});`)(t)}catch{return!1}}return!0}};export{t as ExperimentEvaluator};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ResourceRefDescriptor } from "../resources.js";
|
|
2
|
+
import { ContractSpec, OpKind } from "../spec.js";
|
|
3
|
+
import { HandlerCtx } from "../types.js";
|
|
4
|
+
import { AnySchemaModel } from "@lssm/lib.schema";
|
|
5
|
+
|
|
6
|
+
//#region src/experiments/spec-resolver.d.ts
|
|
7
|
+
type RuntimeContract = ContractSpec<AnySchemaModel, AnySchemaModel | ResourceRefDescriptor<boolean>>;
|
|
8
|
+
interface SpecVariantResolver {
|
|
9
|
+
resolve(operation: {
|
|
10
|
+
name: string;
|
|
11
|
+
version: number;
|
|
12
|
+
kind: OpKind;
|
|
13
|
+
}, ctx: HandlerCtx): Promise<RuntimeContract | undefined> | RuntimeContract | undefined;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { RuntimeContract, SpecVariantResolver };
|
|
File without changes
|
|
@@ -86,5 +86,4 @@ declare class ExperimentRegistry {
|
|
|
86
86
|
}
|
|
87
87
|
declare function makeExperimentKey(meta: ExperimentMeta): string;
|
|
88
88
|
//#endregion
|
|
89
|
-
export { AllocationStrategy, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, MetricAggregation, SuccessMetric, TargetingRule, makeExperimentKey };
|
|
90
|
-
//# sourceMappingURL=spec.d.ts.map
|
|
89
|
+
export { AllocationStrategy, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, MetricAggregation, SuccessMetric, TargetingRule, makeExperimentKey };
|
package/dist/experiments/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 experiment ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let t of this.items.values())t.meta.name===e&&t.meta.version>r&&(r=t.meta.version,n=t);return n}};function n(t){return e(t)}export{t as ExperimentRegistry,n as makeExperimentKey};
|
|
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 experiment ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let t of this.items.values())t.meta.name===e&&t.meta.version>r&&(r=t.meta.version,n=t);return n}};function n(t){return e(t)}export{t as ExperimentRegistry,n as makeExperimentKey};
|
package/dist/features.d.ts
CHANGED
|
@@ -84,5 +84,4 @@ declare function installFeature(feature: FeatureModuleSpec, deps: {
|
|
|
84
84
|
/** Ensure declared target requirements exist on the provided descriptors. */
|
|
85
85
|
declare function validateFeatureTargetsV2(feature: FeatureModuleSpec, descriptors: PresentationDescriptorV2[]): boolean;
|
|
86
86
|
//#endregion
|
|
87
|
-
export { EventRef, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, OpRef, PresentationRef, installFeature, validateFeatureTargetsV2 };
|
|
88
|
-
//# sourceMappingURL=features.d.ts.map
|
|
87
|
+
export { EventRef, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, OpRef, PresentationRef, installFeature, validateFeatureTargetsV2 };
|
package/dist/features.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){return e.meta.key}var t=class{items=new Map;register(t){let n=e(t);if(this.items.has(n))throw Error(`Duplicate feature ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e){return this.items.get(e)}};function n(e,t){if(t.ops&&e.operations){for(let n of e.operations)if(!t.ops.getSpec(n.name,n.version))throw Error(`installFeature: operation not found ${n.name}.v${n.version}`)}if(t.presentations&&e.presentations){for(let n of e.presentations)if(!t.presentations.get(n.name,n.version))throw Error(`installFeature: presentation not found ${n.name}.v${n.version}`)}if(e.presentationsTargets&&t.descriptorsV2)for(let n of e.presentationsTargets){let e=t.descriptorsV2.find(e=>e.meta.name===n.name&&e.meta.version===n.version);if(!e)throw Error(`installFeature: V2 descriptor not found ${n.name}.v${n.version}`);for(let t of n.targets)if(!e.targets.includes(t))throw Error(`installFeature: descriptor ${n.name}.v${n.version} missing target ${t}`)}if(e.opToPresentation&&e.opToPresentation.length>0)for(let n of e.opToPresentation){if(t.ops&&!t.ops.getSpec(n.op.name,n.op.version))throw Error(`installFeature: linked op not found ${n.op.name}.v${n.op.version}`);if(t.presentations&&!t.presentations.get(n.pres.name,n.pres.version))throw Error(`installFeature: linked presentation not found ${n.pres.name}.v${n.pres.version}`)}if(t.capabilities&&e.capabilities?.provides){for(let n of e.capabilities.provides)if(!t.capabilities.get(n.key,n.version))throw Error(`installFeature: capability not registered ${n.key}.v${n.version}`)}if(e.capabilities?.requires?.length){if(!t.capabilities)throw Error(`installFeature: capability registry required to validate capability requirements for ${e.meta.key}`);let n=e.capabilities.provides??[];for(let r of e.capabilities.requires)if(!t.capabilities.satisfies(r,n))throw Error(`installFeature: capability requirement not satisfied ${r.key}${r.version?`.v${r.version}`:``}`)}return t.features.register(e),t.features}function r(e,t){if(!e.presentationsTargets||e.presentationsTargets.length===0)return!0;for(let n of e.presentationsTargets){let e=t.find(e=>e.meta.name===n.name&&e.meta.version===n.version);if(!e)throw Error(`V2 descriptor not found ${n.name}.v${n.version}`);for(let t of n.targets)if(!e.targets.includes(t))throw Error(`Descriptor ${n.name}.v${n.version} missing target ${t}`)}return!0}export{t as FeatureRegistry,n as installFeature,r as validateFeatureTargetsV2};
|
|
2
|
-
//# sourceMappingURL=features.js.map
|
|
1
|
+
function e(e){return e.meta.key}var t=class{items=new Map;register(t){let n=e(t);if(this.items.has(n))throw Error(`Duplicate feature ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e){return this.items.get(e)}};function n(e,t){if(t.ops&&e.operations){for(let n of e.operations)if(!t.ops.getSpec(n.name,n.version))throw Error(`installFeature: operation not found ${n.name}.v${n.version}`)}if(t.presentations&&e.presentations){for(let n of e.presentations)if(!t.presentations.get(n.name,n.version))throw Error(`installFeature: presentation not found ${n.name}.v${n.version}`)}if(e.presentationsTargets&&t.descriptorsV2)for(let n of e.presentationsTargets){let e=t.descriptorsV2.find(e=>e.meta.name===n.name&&e.meta.version===n.version);if(!e)throw Error(`installFeature: V2 descriptor not found ${n.name}.v${n.version}`);for(let t of n.targets)if(!e.targets.includes(t))throw Error(`installFeature: descriptor ${n.name}.v${n.version} missing target ${t}`)}if(e.opToPresentation&&e.opToPresentation.length>0)for(let n of e.opToPresentation){if(t.ops&&!t.ops.getSpec(n.op.name,n.op.version))throw Error(`installFeature: linked op not found ${n.op.name}.v${n.op.version}`);if(t.presentations&&!t.presentations.get(n.pres.name,n.pres.version))throw Error(`installFeature: linked presentation not found ${n.pres.name}.v${n.pres.version}`)}if(t.capabilities&&e.capabilities?.provides){for(let n of e.capabilities.provides)if(!t.capabilities.get(n.key,n.version))throw Error(`installFeature: capability not registered ${n.key}.v${n.version}`)}if(e.capabilities?.requires?.length){if(!t.capabilities)throw Error(`installFeature: capability registry required to validate capability requirements for ${e.meta.key}`);let n=e.capabilities.provides??[];for(let r of e.capabilities.requires)if(!t.capabilities.satisfies(r,n))throw Error(`installFeature: capability requirement not satisfied ${r.key}${r.version?`.v${r.version}`:``}`)}return t.features.register(e),t.features}function r(e,t){if(!e.presentationsTargets||e.presentationsTargets.length===0)return!0;for(let n of e.presentationsTargets){let e=t.find(e=>e.meta.name===n.name&&e.meta.version===n.version);if(!e)throw Error(`V2 descriptor not found ${n.name}.v${n.version}`);for(let t of n.targets)if(!e.targets.includes(t))throw Error(`Descriptor ${n.name}.v${n.version} missing target ${t}`)}return!0}export{t as FeatureRegistry,n as installFeature,r as validateFeatureTargetsV2};
|
package/dist/forms.d.ts
CHANGED
|
@@ -255,5 +255,4 @@ declare function defineFormSpec<M extends AnySchemaModel, F extends readonly Any
|
|
|
255
255
|
}[];
|
|
256
256
|
}): FormSpec<M>;
|
|
257
257
|
//#endregion
|
|
258
|
-
export { ArrayFieldSpec, BaseFieldSpec, CheckboxFieldSpec, ConstraintDecl, ConstraintHandler, EnhanceFields, FieldSpec, FormAction, FormOption, FormRegistry, FormSpec, FormValuesFor, GroupFieldSpec, OptionsSource, Predicate, PredicateOp, RadioFieldSpec, SelectFieldSpec, SwitchFieldSpec, TextFieldSpec, TextareaFieldSpec, TypedOptionsSource, TypedPredicate, TypedWhenClause, WhenClause, buildZodWithRelations, defineFormSpec, evalPredicate };
|
|
259
|
-
//# sourceMappingURL=forms.d.ts.map
|
|
258
|
+
export { ArrayFieldSpec, BaseFieldSpec, CheckboxFieldSpec, ConstraintDecl, ConstraintHandler, EnhanceFields, FieldSpec, FormAction, FormOption, FormRegistry, FormSpec, FormValuesFor, GroupFieldSpec, OptionsSource, Predicate, PredicateOp, RadioFieldSpec, SelectFieldSpec, SwitchFieldSpec, TextFieldSpec, TextareaFieldSpec, TypedOptionsSource, TypedPredicate, TypedWhenClause, WhenClause, buildZodWithRelations, defineFormSpec, evalPredicate };
|
package/dist/forms.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
function e(e){return`${e.key}.v${e.version}`}var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate form ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let[t,i]of this.items.entries())t.startsWith(`${e}.v`)&&i.meta.version>r&&(r=i.meta.version,n=i);return n}};function n(e,t){if(!t)return;let n=t.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function r(e,t){if(!t)return!0;if(t.not)return!r(e,t.not);if(t.all&&t.all.length)return t.all.every(t=>r(e,t));if(t.any&&t.any.length)return t.any.some(t=>r(e,t));if(t.when){let{path:r,op:i=`truthy`,value:a}=t.when,o=n(e,r);switch(i){case`equals`:return o===a;case`notEquals`:return o!==a;case`in`:return Array.isArray(a)&&a.includes(o);case`notIn`:return Array.isArray(a)&&!a.includes(o);case`gt`:return Number(o)>Number(a);case`gte`:return Number(o)>=Number(a);case`lt`:return Number(o)<Number(a);case`lte`:return Number(o)<=Number(a);case`empty`:return o==null||(Array.isArray(o)?o.length===0:String(o).length===0);case`lengthGt`:return(Array.isArray(o)||typeof o==`string`)&&o.length>Number(a??0);case`lengthGte`:return(Array.isArray(o)||typeof o==`string`)&&o.length>=Number(a??0);case`lengthLt`:return(Array.isArray(o)||typeof o==`string`)&&o.length<Number(a??0);case`lengthLte`:return(Array.isArray(o)||typeof o==`string`)&&o.length<=Number(a??0);case`truthy`:default:return!!o}}return!0}function i(e,t){return e.model.getZod().superRefine((i,a)=>{let o=(e,t)=>{let s=e.name?t?`${t}.${e.name}`:e.name:t??``;if(e.requiredWhen&&r(i,e.requiredWhen)){let e=n(i,s);(e==null||typeof e==`string`&&e.trim().length===0||Array.isArray(e)&&e.length===0)&&a.addIssue({code:`custom`,path:s.split(`.`),message:`required`})}if(e.kind===`array`){let t=n(i,s);e.min!=null&&Array.isArray(t)&&t.length<e.min&&a.addIssue({code:`custom`,path:s.split(`.`),message:`min:${e.min}`}),e.max!=null&&Array.isArray(t)&&t.length>e.max&&a.addIssue({code:`custom`,path:s.split(`.`),message:`max:${e.max}`}),o(e.of,s)}else if(e.kind===`group`)for(let t of e.fields)o(t,s)};for(let t of e.fields)o(t);if(e.constraints&&t)for(let n of e.constraints){let e=t[n.key];if(!e)continue;let r=e(i,n.paths,n.args);r.ok||a.addIssue({code:`custom`,path:(r.path??n.paths[0]??``).split(`.`).filter(Boolean),message:r.message??n.messageI18n})}})}function a(e){return e}export{t as FormRegistry,i as buildZodWithRelations,a as defineFormSpec,r as evalPredicate};
|
|
2
|
-
//# sourceMappingURL=forms.js.map
|
|
1
|
+
function e(e){return`${e.key}.v${e.version}`}var t=class{items=new Map;register(t){let n=e(t.meta);if(this.items.has(n))throw Error(`Duplicate form ${n}`);return this.items.set(n,t),this}list(){return[...this.items.values()]}get(e,t){if(t!=null)return this.items.get(`${e}.v${t}`);let n,r=-1/0;for(let[t,i]of this.items.entries())t.startsWith(`${e}.v`)&&i.meta.version>r&&(r=i.meta.version,n=i);return n}};function n(e,t){if(!t)return;let n=t.replace(/\[(\d+)\]/g,`.$1`).split(`.`).filter(Boolean),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function r(e,t){if(!t)return!0;if(t.not)return!r(e,t.not);if(t.all&&t.all.length)return t.all.every(t=>r(e,t));if(t.any&&t.any.length)return t.any.some(t=>r(e,t));if(t.when){let{path:r,op:i=`truthy`,value:a}=t.when,o=n(e,r);switch(i){case`equals`:return o===a;case`notEquals`:return o!==a;case`in`:return Array.isArray(a)&&a.includes(o);case`notIn`:return Array.isArray(a)&&!a.includes(o);case`gt`:return Number(o)>Number(a);case`gte`:return Number(o)>=Number(a);case`lt`:return Number(o)<Number(a);case`lte`:return Number(o)<=Number(a);case`empty`:return o==null||(Array.isArray(o)?o.length===0:String(o).length===0);case`lengthGt`:return(Array.isArray(o)||typeof o==`string`)&&o.length>Number(a??0);case`lengthGte`:return(Array.isArray(o)||typeof o==`string`)&&o.length>=Number(a??0);case`lengthLt`:return(Array.isArray(o)||typeof o==`string`)&&o.length<Number(a??0);case`lengthLte`:return(Array.isArray(o)||typeof o==`string`)&&o.length<=Number(a??0);case`truthy`:default:return!!o}}return!0}function i(e,t){return e.model.getZod().superRefine((i,a)=>{let o=(e,t)=>{let s=e.name?t?`${t}.${e.name}`:e.name:t??``;if(e.requiredWhen&&r(i,e.requiredWhen)){let e=n(i,s);(e==null||typeof e==`string`&&e.trim().length===0||Array.isArray(e)&&e.length===0)&&a.addIssue({code:`custom`,path:s.split(`.`),message:`required`})}if(e.kind===`array`){let t=n(i,s);e.min!=null&&Array.isArray(t)&&t.length<e.min&&a.addIssue({code:`custom`,path:s.split(`.`),message:`min:${e.min}`}),e.max!=null&&Array.isArray(t)&&t.length>e.max&&a.addIssue({code:`custom`,path:s.split(`.`),message:`max:${e.max}`}),o(e.of,s)}else if(e.kind===`group`)for(let t of e.fields)o(t,s)};for(let t of e.fields)o(t);if(e.constraints&&t)for(let n of e.constraints){let e=t[n.key];if(!e)continue;let r=e(i,n.paths,n.args);r.ok||a.addIssue({code:`custom`,path:(r.path??n.paths[0]??``).split(`.`).filter(Boolean),message:r.message??n.messageI18n})}})}function a(e){return e}export{t as FormRegistry,i as buildZodWithRelations,a as defineFormSpec,r as evalPredicate};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"@pothos/plugin-federation";import{printSubgraphSchema as e}from"@apollo/subgraph";function t(t){return e(t)}export{t};
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import"@pothos/plugin-federation";import{printSubgraphSchema as e}from"@apollo/subgraph";function t(t){return e(t)}export{t};
|
package/dist/index.d.ts
CHANGED
|
@@ -7,9 +7,9 @@ import { AnyContractSpec, ContractSpec, EmitDecl, EmitDeclInline, EmitDeclRef, O
|
|
|
7
7
|
import { TelemetryAnomalyAction, TelemetryAnomalyDetectionConfig, TelemetryAnomalyThreshold, TelemetryConfig, TelemetryEventDef, TelemetryMeta, TelemetryPrivacyLevel, TelemetryPropertyDef, TelemetryProviderConfig, TelemetryRegistry, TelemetryRetentionConfig, TelemetrySamplingConfig, TelemetrySpec, makeTelemetryKey } from "./telemetry/spec.js";
|
|
8
8
|
import { TelemetryAnomalyEvent, TelemetryAnomalyMonitor, TelemetryAnomalyMonitorOptions } from "./telemetry/anomaly.js";
|
|
9
9
|
import { RuntimeTelemetryProvider, TelemetryDispatch, TelemetryEventContext, TelemetryTracker, TelemetryTrackerOptions } from "./telemetry/tracker.js";
|
|
10
|
-
import { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey } from "./capabilities.js";
|
|
10
|
+
import { CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, capabilityKey, defineCapability } from "./capabilities.js";
|
|
11
11
|
import { DataPresentation, MarkdownPresentation, PresentationContent, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRegistry, PresentationSpec, WebComponentPresentation, jsonSchemaForPresentation } from "./presentations.js";
|
|
12
|
-
import { PresentationDescriptorV2, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationTarget, PresentationV2Meta, PresentationValidator, ReactRenderDescriptor, RenderContext, TransformEngine, createDefaultTransformEngine, registerBasicValidation, registerDefaultReactRenderer } from "./presentations.v2.js";
|
|
12
|
+
import { ComponentMap, PresentationDescriptorV2, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationTarget, PresentationV2Meta, PresentationValidator, ReactRenderDescriptor, RenderContext, TransformEngine, createDefaultTransformEngine, registerBasicValidation, registerDefaultReactRenderer, registerReactToMarkdownRenderer } from "./presentations.v2.js";
|
|
13
13
|
import { AllocationStrategy, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, MetricAggregation, SuccessMetric, TargetingRule, makeExperimentKey } from "./experiments/spec.js";
|
|
14
14
|
import { EventRef, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, OpRef, PresentationRef, installFeature, validateFeatureTargetsV2 } from "./features.js";
|
|
15
15
|
import { DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, dataViewKey } from "./data-views.js";
|
|
@@ -25,10 +25,11 @@ import { BlueprintTranslationCatalog, Locale, MessageKey, PlatformTranslationCat
|
|
|
25
25
|
import { AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppIntegrationSlot, AppRouteConfig, AppThemeBinding, FeatureFlagState, SpecPointer, TelemetryBinding, TenantAppConfig, TenantAppConfigMeta, TenantRouteOverride, TenantSpecOverride, TranslationCatalogPointer, makeAppBlueprintKey } from "./app-config/spec.js";
|
|
26
26
|
import { AppComposition, AppCompositionDeps, ComposeOptions, MissingReference, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, composeAppConfig, resolveAppConfig } from "./app-config/runtime.js";
|
|
27
27
|
import { ParsedSecretUri, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, normalizeSecretPayload, parseSecretUri } from "./integrations/secrets/provider.js";
|
|
28
|
+
import { RuntimeContract, SpecVariantResolver } from "./experiments/spec-resolver.js";
|
|
28
29
|
import { Actor, Channel, EventPublisher, FieldLevelDecision, HandlerCtx, PolicyDecider, PolicyDeciderInput, PolicyDecision, RateLimiter, TranslationResolver } from "./types.js";
|
|
29
30
|
import { EventParam, HandlerFor, RuntimeSpecOutput, SpecInput, SpecOutput, ZodSpecInput, installOp, makeEmit, op } from "./install.js";
|
|
30
31
|
import { OperationKey, SpecRegistry, opKey } from "./registry.js";
|
|
31
|
-
import {
|
|
32
|
+
import { createEngineWithDefaults, createFeatureModule, registerFeature, renderFeaturePresentation } from "./client/react/feature-render.js";
|
|
32
33
|
import { ArrayFieldSpec, BaseFieldSpec, CheckboxFieldSpec, ConstraintDecl, ConstraintHandler, EnhanceFields, FieldSpec, FormAction, FormOption, FormRegistry, FormSpec, FormValuesFor, GroupFieldSpec, OptionsSource, Predicate, PredicateOp, RadioFieldSpec, SelectFieldSpec, SwitchFieldSpec, TextFieldSpec, TextareaFieldSpec, TypedOptionsSource, TypedPredicate, TypedWhenClause, WhenClause, buildZodWithRelations, defineFormSpec, evalPredicate } from "./forms.js";
|
|
33
34
|
import { ComputationMap, CreateRendererOptions, DriverSlots, RenderOptions, ResolverMap, createFormRenderer } from "./client/react/form-render.js";
|
|
34
35
|
import { ShadcnDriver, shadcnDriver } from "./client/react/drivers/shadcn.js";
|
|
@@ -126,4 +127,6 @@ import { InMemoryStateStore } from "./workflow/adapters/memory-store.js";
|
|
|
126
127
|
import { PrismaStateStore } from "./workflow/adapters/db-adapter.js";
|
|
127
128
|
import { FileStateStoreOptions, createFileStateStore } from "./workflow/adapters/file-adapter.js";
|
|
128
129
|
import "./workflow/index.js";
|
|
129
|
-
export { AccountBalanceRecord, Action, ActionExecutionResult, Actor, AllocationStrategy, AnyContractSpec, AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppComposition, AppCompositionDeps, AppIntegrationBinding, AppIntegrationSlot, AppKnowledgeBinding, AppRouteConfig, AppThemeBinding, ArrayFieldSpec, Assertion, AssertionResult, AttributeMatcher, BankAccountRecord, BankTransactionRecord, BaseFieldSpec, BehaviorSignal, BehaviorSignalEnvelope, BehaviorSignalProvider, BlueprintTranslationCatalog, BlueprintUpdater, CalendarAttendee, CalendarEvent, CalendarEventInput, CalendarEventUpdateInput, CalendarListEventsQuery, CalendarListEventsResult, CalendarProvider, CalendarReminder, CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, CapturePaymentInput, Channel, CheckboxFieldSpec, CompensationStep, CompensationStrategy, CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, ComponentMap, ComponentVariantDefinition, ComponentVariantSpec, ComposeOptions, ComputationMap, ConnectionStatus, ConsentDefinition, ConstraintDecl, ConstraintHandler, ContractSpec, CoverageRequirement, CreateCustomerInput, CreateIntegrationConnection, CreateKnowledgeSource, CreatePaymentIntentInput, CreateRendererOptions, DataMigrationStep, DataPresentation, DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, DecisionContext, DeleteIntegrationConnection, DeleteKnowledgeSource, DeleteObjectInput, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, DriverSlots, ElevenLabsVoiceProvider, ElevenLabsVoiceProviderOptions, EmailAddress, EmailAttachment, EmailInboundProvider, EmailMessage, EmailMessagesSinceQuery, EmailOutboundMessage, EmailOutboundProvider, EmailOutboundResult, EmailThread, EmailThreadListQuery, EmbeddingDocument, EmbeddingProvider, EmbeddingResult, EmbeddingVector, EmitDecl, EmitDeclInline, EmitDeclRef, EnhanceFields, EnvSecretProvider, ErrorSignal, ErrorSignalEnvelope, ErrorSignalProvider, EventEnvelope, EventKey, EventParam, EventPublisher, EventRef, EventSpec, ExecutionStatus, ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions, ExpectErrorAssertion, ExpectEventsAssertion, ExpectOutputAssertion, ExpectedEvent, ExperimentContext, ExperimentEvaluation, ExperimentEvaluator, ExperimentEvaluatorConfig, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, ExpressionContext, FeatureFlagState, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, FieldLevelDecision, FieldPolicyRule, FieldSpec, FileStateStoreOptions, Fixture, FormAction, FormOption, FormRef, FormRegistry, FormSpec, FormValuesFor, GcpSecretManagerProvider, GetObjectResult, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, GmailInboundProvider, GmailInboundProviderOptions, GmailOutboundProvider, GmailOutboundProviderOptions, GoogleCalendarProvider, GoogleCalendarProviderOptions, GoogleCloudStorageProvider, GoogleCloudStorageProviderOptions, GroupFieldSpec, GuardCondition, GuardConditionKind, GuardContext, GuardEvaluator, HandlerCtx, HandlerFor, InMemoryStateStore, IntegrationByokSetup, IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationConnection, IntegrationConnectionHealth, IntegrationConnectionMeta, IntegrationContext, IntegrationHealthCheck, IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions, IntegrationInvocationStatus, IntegrationMeta, IntegrationOwnershipMode, IntegrationProviderFactory, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, IntegrationUsageMetrics, KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, LLMChatOptions, LLMContentPart, LLMMessage, LLMProvider, LLMResponse, LLMRole, LLMStreamChunk, LLMTextPart, LLMTokenUsage, LLMToolCallPart, LLMToolDefinition, LLMToolResultPart, ListIntegrationConnections, ListInvoicesQuery, ListKnowledgeSources, ListObjectsQuery, ListObjectsResult, ListTransactionsQuery, Locale, MarkdownPresentation, MessageKey, MetricAggregation, MigrationCheck, MigrationExecutor, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, MissingReference, MistralEmbeddingProvider, MistralEmbeddingProviderOptions, MistralLLMProvider, MistralLLMProviderOptions, Money, OPAAdapterOptions, OPAClient, OPAEvaluationResult, OPAPolicyAdapter, OPENBANKING_PII_FIELDS, OPENBANKING_TELEMETRY_EVENTS, ObjectStorageProvider, OpKind, OpRef, OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccount, OpenBankingGetAccountDetailsParams, OpenBankingGetBalances, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingGuardResult, OpenBankingListAccounts, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactions, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingRefreshBalances, OpenBankingSyncAccounts, OpenBankingSyncTransactions, OpenBankingTelemetryEvent, OpenBankingTransaction, OperationExecutor, OperationExecutorContext, OperationKey, OperationTargetRef, OptionsSource, Owner, OwnerShipMeta, Owners, OwnersEnum, PIIPolicy, ParsedSecretUri, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, PlatformTranslationCatalog, PolicyCondition, PolicyDecider, PolicyDeciderInput, PolicyDecision, PolicyEffect, PolicyEngine, PolicyMeta, PolicyOPAConfig, PolicyRef, PolicyRegistry, PolicyRule, PolicySpec, PostmarkEmailProvider, PostmarkEmailProviderOptions, PowensAccount, PowensAccountListResponse, PowensBalance, PowensClient, PowensClientError, PowensClientOptions, PowensConnectionStatusResponse, PowensEnvironment, PowensOpenBankingProvider, PowensOpenBankingProviderOptions, PowensTransaction, PowensTransactionListResponse, Predicate, PredicateOp, PresentationContent, PresentationDescriptorV2, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRef, PresentationRegistry, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationSpec, PresentationTarget, PresentationV2Meta, PresentationValidator, PrismaStateStore, PromptArg, PromptContentPart, PromptMeta, PromptPolicy, PromptRegistry, PromptSpec, PromptStability, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, ProposalSink, ProposalTarget, PutObjectInput, QdrantVectorProvider, QdrantVectorProviderOptions, RadioFieldSpec, RateLimitDefinition, RateLimiter, ReactRenderDescriptor, RefundPaymentInput, RegenerationContext, RegenerationRule, RegenerationTrigger, RegeneratorOptions, RegeneratorService, RegeneratorSignal, RelationshipDefinition, RelationshipMatcher, RenderContext, RenderOptions, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, ResolverMap, ResourceContext, ResourceMatcher, ResourceMeta, ResourceRefDescriptor, ResourceRegistry, ResourceTemplateSpec, RestOptions, RetryPolicy, RnReusablesDriver, RunMigrationsAction, RunTestsAction, RuntimeSpecOutput, RuntimeTelemetryProvider, SLA, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput, ScenarioRunResult, SchemaMigrationStep, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretProviderManager, SecretProviderManagerOptions, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, SelectFieldSpec, SendSmsInput, ShadcnDriver, SignalAdapters, SignedUrlOptions, SmsDeliveryStatus, SmsMessage, SmsProvider, SpecChangeProposal, SpecInput, SpecOutput, SpecPointer, SpecRegistry, Stability, StabilityEnum, StateStore, Step, StepAction, StepExecution, StepType, StorageObjectBody, StorageObjectMetadata, StripePaymentsProvider, StripePaymentsProviderOptions, SubjectContext, SubjectMatcher, SubjectRelationship, SuccessMetric, SwitchFieldSpec, Tag, Tags, TagsEnum, TargetingRule, TelemetryAnomalyAction, TelemetryAnomalyDetectionConfig, TelemetryAnomalyEvent, TelemetryAnomalyMonitor, TelemetryAnomalyMonitorOptions, TelemetryAnomalyThreshold, TelemetryBinding, TelemetryConfig, TelemetryDispatch, TelemetryEventContext, TelemetryEventDef, TelemetryMeta, TelemetryPrivacyLevel, TelemetryPropertyDef, TelemetryProviderConfig, TelemetryRegistry, TelemetryRetentionConfig, TelemetrySamplingConfig, TelemetrySignal, TelemetrySignalEnvelope, TelemetrySignalProvider, TelemetrySpec, TelemetryTracker, TelemetryTrackerOptions, TelemetryTrigger, TenantAppConfig, TenantAppConfigMeta, TenantConfigUpdater, TenantRouteOverride, TenantSpecOverride, TenantTranslationOverride, TestExecutor, TestIntegrationConnection, TestRegistry, TestRunResult, TestRunner, TestRunnerConfig, TestScenario, TestSpec, TestSpecMeta, TestSpecRef, TestTarget, TextFieldSpec, TextareaFieldSpec, ThemeMeta, ThemeOverride, ThemeRef, ThemeRegistry, ThemeScope, ThemeSpec, ThemeToken, ThemeTokens, TokenCountResult, TransformEngine, Transition, TranslationCatalogMeta, TranslationCatalogPointer, TranslationEntry, TranslationResolver, TriggerKnowledgeSourceSync, TriggerRegenerationAction, TwilioSmsProvider, TwilioSmsProviderOptions, TypedOptionsSource, TypedPredicate, TypedWhenClause, UpdateBlueprintAction, UpdateIntegrationConnection, UpdateKnowledgeSource, UpdateTenantConfigAction, ValidateWorkflowSpecOptions, ValidationMigrationStep, VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest, Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult, WebComponentPresentation, WhenClause, WorkflowDefinition, WorkflowMeta, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRegistry, WorkflowRunner, WorkflowRunnerConfig, WorkflowSpec, WorkflowState, WorkflowStateFilters, WorkflowStatus, WorkflowTargetRef, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, ZodSpecInput, assertPrimaryOpenBankingReady, assertWorkflowSpecValid, behaviorToEnvelope, buildOPAInput, buildZodWithRelations, capabilityKey, composeAppConfig, connectionStatusLabel, createDefaultTransformEngine, createEngineWithDefaults, createFeatureModule, createFetchHandler, createFileStateStore, createFormRenderer, createMcpServer, dataViewKey, defaultGqlField, defaultMcpTool, defaultRestPath, defineCommand, defineEvent, defineFormSpec, definePrompt, defineQuery, defineResourceTemplate, elevenLabsIntegrationSpec, elysiaPlugin, emailThreadsKnowledgeSpace, ensureConnectionReady, ensurePrimaryOpenBankingIntegration, errorToEnvelope, evalPredicate, evaluateExpression, eventKey, exportContractsToGraphQLSchema, expressRouter, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, installFeature, installOp, integrationContracts, isEmitDeclRef, isResourceRef, jsonSchemaForPresentation, jsonSchemaForSpec, knowledgeContracts, makeAppBlueprintKey, makeEmit, makeExperimentKey, makeIntegrationSpecKey, makeKnowledgeSpaceKey, makeNextAppHandler, makeNextPagesHandler, makePolicyKey, makeTelemetryKey, makeTestKey, makeThemeRef, mistralIntegrationSpec, normalizeSecretPayload, op, opKey, openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, parseSecretUri, postmarkIntegrationSpec, powensIntegrationSpec, productCanonKnowledgeSpace, qdrantIntegrationSpec, redactOpenBankingTelemetryPayload, registerBasicValidation, registerContractsOnBuilder, registerDefaultReactRenderer, registerElevenLabsIntegration, registerEmailThreadsKnowledgeSpace, registerFeature, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerIntegrationContracts, registerKnowledgeContracts, registerMistralIntegration, registerOpenBankingCapabilities, registerOpenBankingContracts, registerPostmarkIntegration, registerPowensIntegration, registerProductCanonKnowledgeSpace, registerQdrantIntegration, registerStripeIntegration, registerSupportFaqKnowledgeSpace, registerTwilioSmsIntegration, registerUploadedDocsKnowledgeSpace, renderFeaturePresentation, resolveAppConfig, resourceRef, rnReusablesDriver, shadcnDriver, stripeIntegrationSpec, supportFaqKnowledgeSpace, telemetryToEnvelope, toV2FromV1, twilioSmsIntegrationSpec, uploadedDocsKnowledgeSpace, validateFeatureTargetsV2, validateWorkflowSpec };
|
|
130
|
+
import { SchemaMarkdownOptions, schemaToMarkdown, schemaToMarkdownDetail, schemaToMarkdownList, schemaToMarkdownSummary, schemaToMarkdownTable } from "./schema-to-markdown.js";
|
|
131
|
+
import { defineSchemaModel } from "@lssm/lib.schema";
|
|
132
|
+
export { AccountBalanceRecord, Action, ActionExecutionResult, Actor, AllocationStrategy, AnyContractSpec, AppBlueprintMeta, AppBlueprintRegistry, AppBlueprintSpec, AppComposition, AppCompositionDeps, AppIntegrationBinding, AppIntegrationSlot, AppKnowledgeBinding, AppRouteConfig, AppThemeBinding, ArrayFieldSpec, Assertion, AssertionResult, AttributeMatcher, BankAccountRecord, BankTransactionRecord, BaseFieldSpec, BehaviorSignal, BehaviorSignalEnvelope, BehaviorSignalProvider, BlueprintTranslationCatalog, BlueprintUpdater, CalendarAttendee, CalendarEvent, CalendarEventInput, CalendarEventUpdateInput, CalendarListEventsQuery, CalendarListEventsResult, CalendarProvider, CalendarReminder, CapabilityKind, CapabilityMeta, CapabilityRef, CapabilityRegistry, CapabilityRequirement, CapabilitySpec, CapabilitySurface, CapabilitySurfaceRef, CapturePaymentInput, Channel, CheckboxFieldSpec, CompensationStep, CompensationStrategy, CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, ComponentMap, ComponentVariantDefinition, ComponentVariantSpec, ComposeOptions, ComputationMap, ConnectionStatus, ConsentDefinition, ConstraintDecl, ConstraintHandler, ContractSpec, CoverageRequirement, CreateCustomerInput, CreateIntegrationConnection, CreateKnowledgeSource, CreatePaymentIntentInput, CreateRendererOptions, DataMigrationStep, DataPresentation, DataViewAction, DataViewBaseConfig, DataViewConfig, DataViewDetailConfig, DataViewField, DataViewFieldFormat, DataViewFilter, DataViewGridConfig, DataViewKind, DataViewListConfig, DataViewMeta, DataViewRegistry, DataViewSections, DataViewSource, DataViewSpec, DataViewStates, DataViewTableColumn, DataViewTableConfig, DecisionContext, DeleteIntegrationConnection, DeleteKnowledgeSource, DeleteObjectInput, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, DriverSlots, ElevenLabsVoiceProvider, ElevenLabsVoiceProviderOptions, EmailAddress, EmailAttachment, EmailInboundProvider, EmailMessage, EmailMessagesSinceQuery, EmailOutboundMessage, EmailOutboundProvider, EmailOutboundResult, EmailThread, EmailThreadListQuery, EmbeddingDocument, EmbeddingProvider, EmbeddingResult, EmbeddingVector, EmitDecl, EmitDeclInline, EmitDeclRef, EnhanceFields, EnvSecretProvider, ErrorSignal, ErrorSignalEnvelope, ErrorSignalProvider, EventEnvelope, EventKey, EventParam, EventPublisher, EventRef, EventSpec, ExecutionStatus, ExecutorProposalSink, ExecutorResultPayload, ExecutorSinkLogger, ExecutorSinkOptions, ExpectErrorAssertion, ExpectEventsAssertion, ExpectOutputAssertion, ExpectedEvent, ExperimentContext, ExperimentEvaluation, ExperimentEvaluator, ExperimentEvaluatorConfig, ExperimentMeta, ExperimentOverride, ExperimentOverrideType, ExperimentRef, ExperimentRegistry, ExperimentSpec, ExperimentVariant, ExpressionContext, FeatureFlagState, FeatureModuleMeta, FeatureModuleSpec, FeatureRef, FeatureRegistry, FieldLevelDecision, FieldPolicyRule, FieldSpec, FileStateStoreOptions, Fixture, FormAction, FormOption, FormRef, FormRegistry, FormSpec, FormValuesFor, GcpSecretManagerProvider, GetObjectResult, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, GmailInboundProvider, GmailInboundProviderOptions, GmailOutboundProvider, GmailOutboundProviderOptions, GoogleCalendarProvider, GoogleCalendarProviderOptions, GoogleCloudStorageProvider, GoogleCloudStorageProviderOptions, GroupFieldSpec, GuardCondition, GuardConditionKind, GuardContext, GuardEvaluator, HandlerCtx, HandlerFor, InMemoryStateStore, IntegrationByokSetup, IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationCapabilityMapping, IntegrationCategory, IntegrationConfigSchema, IntegrationConnection, IntegrationConnectionHealth, IntegrationConnectionMeta, IntegrationContext, IntegrationHealthCheck, IntegrationHealthCheckExecutor, IntegrationHealthCheckResult, IntegrationHealthService, IntegrationHealthServiceOptions, IntegrationInvocationStatus, IntegrationMeta, IntegrationOwnershipMode, IntegrationProviderFactory, IntegrationSecretSchema, IntegrationSpec, IntegrationSpecRegistry, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, IntegrationUsageMetrics, KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSourceConfig, KnowledgeSourceMeta, KnowledgeSourceType, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, LLMChatOptions, LLMContentPart, LLMMessage, LLMProvider, LLMResponse, LLMRole, LLMStreamChunk, LLMTextPart, LLMTokenUsage, LLMToolCallPart, LLMToolDefinition, LLMToolResultPart, ListIntegrationConnections, ListInvoicesQuery, ListKnowledgeSources, ListObjectsQuery, ListObjectsResult, ListTransactionsQuery, Locale, MarkdownPresentation, MessageKey, MetricAggregation, MigrationCheck, MigrationExecutor, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, MissingReference, MistralEmbeddingProvider, MistralEmbeddingProviderOptions, MistralLLMProvider, MistralLLMProviderOptions, Money, OPAAdapterOptions, OPAClient, OPAEvaluationResult, OPAPolicyAdapter, OPENBANKING_PII_FIELDS, OPENBANKING_TELEMETRY_EVENTS, ObjectStorageProvider, OpKind, OpRef, OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccount, OpenBankingGetAccountDetailsParams, OpenBankingGetBalances, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingGuardResult, OpenBankingListAccounts, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactions, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingRefreshBalances, OpenBankingSyncAccounts, OpenBankingSyncTransactions, OpenBankingTelemetryEvent, OpenBankingTransaction, OperationExecutor, OperationExecutorContext, OperationKey, OperationTargetRef, OptionsSource, Owner, OwnerShipMeta, Owners, OwnersEnum, PIIPolicy, ParsedSecretUri, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, PlatformTranslationCatalog, PolicyCondition, PolicyDecider, PolicyDeciderInput, PolicyDecision, PolicyEffect, PolicyEngine, PolicyMeta, PolicyOPAConfig, PolicyRef, PolicyRegistry, PolicyRule, PolicySpec, PostmarkEmailProvider, PostmarkEmailProviderOptions, PowensAccount, PowensAccountListResponse, PowensBalance, PowensClient, PowensClientError, PowensClientOptions, PowensConnectionStatusResponse, PowensEnvironment, PowensOpenBankingProvider, PowensOpenBankingProviderOptions, PowensTransaction, PowensTransactionListResponse, Predicate, PredicateOp, PresentationContent, PresentationDescriptorV2, PresentationKind, PresentationMeta, PresentationPolicy, PresentationRef, PresentationRegistry, PresentationRenderer, PresentationSource, PresentationSourceBlocknotejs, PresentationSourceComponentReact, PresentationSpec, PresentationTarget, PresentationV2Meta, PresentationValidator, PrismaStateStore, PromptArg, PromptContentPart, PromptMeta, PromptPolicy, PromptRegistry, PromptSpec, PromptStability, ProposalAction, ProposalBlocker, ProposalConfidence, ProposalExecutionResult, ProposalExecutor, ProposalExecutorDeps, ProposalExecutorOptions, ProposalSink, ProposalTarget, PutObjectInput, QdrantVectorProvider, QdrantVectorProviderOptions, RadioFieldSpec, RateLimitDefinition, RateLimiter, ReactRenderDescriptor, RefundPaymentInput, RegenerationContext, RegenerationRule, RegenerationTrigger, RegeneratorOptions, RegeneratorService, RegeneratorSignal, RelationshipDefinition, RelationshipMatcher, RenderContext, RenderOptions, ResolveAppConfigDeps, ResolvedAppConfig, ResolvedIntegration, ResolvedKnowledge, ResolvedTranslation, ResolverMap, ResourceContext, ResourceMatcher, ResourceMeta, ResourceRefDescriptor, ResourceRegistry, ResourceTemplateSpec, RestOptions, RetryPolicy, RnReusablesDriver, RunMigrationsAction, RunTestsAction, RuntimeContract, RuntimeSpecOutput, RuntimeTelemetryProvider, SLA, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput, ScenarioRunResult, SchemaMarkdownOptions, SchemaMigrationStep, SecretFetchOptions, SecretPayloadEncoding, SecretProvider, SecretProviderError, SecretProviderManager, SecretProviderManagerOptions, SecretReference, SecretRotationResult, SecretValue, SecretWritePayload, SelectFieldSpec, SendSmsInput, ShadcnDriver, SignalAdapters, SignedUrlOptions, SmsDeliveryStatus, SmsMessage, SmsProvider, SpecChangeProposal, SpecInput, SpecOutput, SpecPointer, SpecRegistry, SpecVariantResolver, Stability, StabilityEnum, StateStore, Step, StepAction, StepExecution, StepType, StorageObjectBody, StorageObjectMetadata, StripePaymentsProvider, StripePaymentsProviderOptions, SubjectContext, SubjectMatcher, SubjectRelationship, SuccessMetric, SwitchFieldSpec, Tag, Tags, TagsEnum, TargetingRule, TelemetryAnomalyAction, TelemetryAnomalyDetectionConfig, TelemetryAnomalyEvent, TelemetryAnomalyMonitor, TelemetryAnomalyMonitorOptions, TelemetryAnomalyThreshold, TelemetryBinding, TelemetryConfig, TelemetryDispatch, TelemetryEventContext, TelemetryEventDef, TelemetryMeta, TelemetryPrivacyLevel, TelemetryPropertyDef, TelemetryProviderConfig, TelemetryRegistry, TelemetryRetentionConfig, TelemetrySamplingConfig, TelemetrySignal, TelemetrySignalEnvelope, TelemetrySignalProvider, TelemetrySpec, TelemetryTracker, TelemetryTrackerOptions, TelemetryTrigger, TenantAppConfig, TenantAppConfigMeta, TenantConfigUpdater, TenantRouteOverride, TenantSpecOverride, TenantTranslationOverride, TestExecutor, TestIntegrationConnection, TestRegistry, TestRunResult, TestRunner, TestRunnerConfig, TestScenario, TestSpec, TestSpecMeta, TestSpecRef, TestTarget, TextFieldSpec, TextareaFieldSpec, ThemeMeta, ThemeOverride, ThemeRef, ThemeRegistry, ThemeScope, ThemeSpec, ThemeToken, ThemeTokens, TokenCountResult, TransformEngine, Transition, TranslationCatalogMeta, TranslationCatalogPointer, TranslationEntry, TranslationResolver, TriggerKnowledgeSourceSync, TriggerRegenerationAction, TwilioSmsProvider, TwilioSmsProviderOptions, TypedOptionsSource, TypedPredicate, TypedWhenClause, UpdateBlueprintAction, UpdateIntegrationConnection, UpdateKnowledgeSource, UpdateTenantConfigAction, ValidateWorkflowSpecOptions, ValidationMigrationStep, VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest, Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult, WebComponentPresentation, WhenClause, WorkflowDefinition, WorkflowMeta, WorkflowPreFlightError, WorkflowPreFlightIssue, WorkflowPreFlightIssueSeverity, WorkflowPreFlightIssueType, WorkflowPreFlightResult, WorkflowRegistry, WorkflowRunner, WorkflowRunnerConfig, WorkflowSpec, WorkflowState, WorkflowStateFilters, WorkflowStatus, WorkflowTargetRef, WorkflowValidationError, WorkflowValidationIssue, WorkflowValidationLevel, ZodSpecInput, assertPrimaryOpenBankingReady, assertWorkflowSpecValid, behaviorToEnvelope, buildOPAInput, buildZodWithRelations, capabilityKey, composeAppConfig, connectionStatusLabel, createDefaultTransformEngine, createEngineWithDefaults, createFeatureModule, createFetchHandler, createFileStateStore, createFormRenderer, createMcpServer, dataViewKey, defaultGqlField, defaultMcpTool, defaultRestPath, defineCapability, defineCommand, defineEvent, defineFormSpec, definePrompt, defineQuery, defineResourceTemplate, defineSchemaModel, elevenLabsIntegrationSpec, elysiaPlugin, emailThreadsKnowledgeSpace, ensureConnectionReady, ensurePrimaryOpenBankingIntegration, errorToEnvelope, evalPredicate, evaluateExpression, eventKey, exportContractsToGraphQLSchema, expressRouter, financialDocsKnowledgeSpace, financialOverviewKnowledgeSpace, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, installFeature, installOp, integrationContracts, isEmitDeclRef, isResourceRef, jsonSchemaForPresentation, jsonSchemaForSpec, knowledgeContracts, makeAppBlueprintKey, makeEmit, makeExperimentKey, makeIntegrationSpecKey, makeKnowledgeSpaceKey, makeNextAppHandler, makeNextPagesHandler, makePolicyKey, makeTelemetryKey, makeTestKey, makeThemeRef, mistralIntegrationSpec, normalizeSecretPayload, op, opKey, openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, parseSecretUri, postmarkIntegrationSpec, powensIntegrationSpec, productCanonKnowledgeSpace, qdrantIntegrationSpec, redactOpenBankingTelemetryPayload, registerBasicValidation, registerContractsOnBuilder, registerDefaultReactRenderer, registerElevenLabsIntegration, registerEmailThreadsKnowledgeSpace, registerFeature, registerFinancialDocsKnowledgeSpace, registerFinancialOverviewKnowledgeSpace, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerIntegrationContracts, registerKnowledgeContracts, registerMistralIntegration, registerOpenBankingCapabilities, registerOpenBankingContracts, registerPostmarkIntegration, registerPowensIntegration, registerProductCanonKnowledgeSpace, registerQdrantIntegration, registerReactToMarkdownRenderer, registerStripeIntegration, registerSupportFaqKnowledgeSpace, registerTwilioSmsIntegration, registerUploadedDocsKnowledgeSpace, renderFeaturePresentation, resolveAppConfig, resourceRef, rnReusablesDriver, schemaToMarkdown, schemaToMarkdownDetail, schemaToMarkdownList, schemaToMarkdownSummary, schemaToMarkdownTable, shadcnDriver, stripeIntegrationSpec, supportFaqKnowledgeSpace, telemetryToEnvelope, toV2FromV1, twilioSmsIntegrationSpec, uploadedDocsKnowledgeSpace, validateFeatureTargetsV2, validateWorkflowSpec };
|