@lssm/lib.contracts 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229
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/LICENSE +21 -0
- package/dist/app-config/app-config.feature.d.ts +2 -1
- package/dist/app-config/app-config.feature.d.ts.map +1 -0
- package/dist/app-config/app-config.feature.js +2 -1
- package/dist/app-config/app-config.feature.js.map +1 -0
- package/dist/app-config/branding.d.ts +2 -1
- package/dist/app-config/branding.d.ts.map +1 -0
- package/dist/app-config/contracts.d.ts +52 -51
- package/dist/app-config/contracts.d.ts.map +1 -0
- package/dist/app-config/contracts.js +56 -57
- package/dist/app-config/contracts.js.map +1 -0
- package/dist/app-config/docs/app-config.docblock.d.ts +2 -1
- package/dist/app-config/docs/app-config.docblock.d.ts.map +1 -0
- package/dist/app-config/docs/app-config.docblock.js +2 -1
- package/dist/app-config/docs/app-config.docblock.js.map +1 -0
- package/dist/app-config/events.d.ts +29 -28
- package/dist/app-config/events.d.ts.map +1 -0
- package/dist/app-config/events.js +33 -34
- package/dist/app-config/events.js.map +1 -0
- package/dist/app-config/lifecycle-contracts.d.ts +82 -81
- package/dist/app-config/lifecycle-contracts.d.ts.map +1 -0
- package/dist/app-config/lifecycle-contracts.js +68 -69
- package/dist/app-config/lifecycle-contracts.js.map +1 -0
- package/dist/app-config/lifecycle.d.ts +2 -1
- package/dist/app-config/lifecycle.d.ts.map +1 -0
- package/dist/app-config/runtime.d.ts +2 -1
- package/dist/app-config/runtime.d.ts.map +1 -0
- package/dist/app-config/runtime.js +2 -1
- package/dist/app-config/runtime.js.map +1 -0
- package/dist/app-config/spec.d.ts +2 -1
- package/dist/app-config/spec.d.ts.map +1 -0
- package/dist/app-config/spec.js +2 -1
- package/dist/app-config/spec.js.map +1 -0
- package/dist/app-config/validation.d.ts +2 -1
- package/dist/app-config/validation.d.ts.map +1 -0
- package/dist/app-config/validation.js +2 -1
- package/dist/app-config/validation.js.map +1 -0
- package/dist/capabilities/docs/capabilities.docblock.d.ts +2 -1
- package/dist/capabilities/docs/capabilities.docblock.d.ts.map +1 -0
- package/dist/capabilities/docs/capabilities.docblock.js +2 -1
- package/dist/capabilities/docs/capabilities.docblock.js.map +1 -0
- package/dist/capabilities/openbanking.d.ts +2 -1
- package/dist/capabilities/openbanking.d.ts.map +1 -0
- package/dist/capabilities/openbanking.js +2 -1
- package/dist/capabilities/openbanking.js.map +1 -0
- package/dist/capabilities.d.ts +2 -1
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +2 -1
- package/dist/capabilities.js.map +1 -0
- package/dist/client/react/drivers/rn-reusables.d.ts +2 -1
- package/dist/client/react/drivers/rn-reusables.d.ts.map +1 -0
- package/dist/client/react/drivers/rn-reusables.js +2 -1
- package/dist/client/react/drivers/rn-reusables.js.map +1 -0
- package/dist/client/react/drivers/shadcn.d.ts +2 -1
- package/dist/client/react/drivers/shadcn.d.ts.map +1 -0
- package/dist/client/react/drivers/shadcn.js +2 -1
- package/dist/client/react/drivers/shadcn.js.map +1 -0
- package/dist/client/react/feature-render.d.ts +2 -1
- package/dist/client/react/feature-render.d.ts.map +1 -0
- package/dist/client/react/feature-render.js +2 -1
- package/dist/client/react/feature-render.js.map +1 -0
- package/dist/client/react/form-render.d.ts +8 -7
- package/dist/client/react/form-render.d.ts.map +1 -0
- package/dist/client/react/form-render.js +17 -16
- package/dist/client/react/form-render.js.map +1 -0
- package/dist/contract-registry/schemas.d.ts +2 -1
- package/dist/contract-registry/schemas.d.ts.map +1 -0
- package/dist/contract-registry/schemas.js +2 -1
- package/dist/contract-registry/schemas.js.map +1 -0
- package/dist/contract-registry/types.d.ts +2 -1
- package/dist/contract-registry/types.d.ts.map +1 -0
- package/dist/contracts-adapter-hydration.d.ts +2 -1
- package/dist/contracts-adapter-hydration.d.ts.map +1 -0
- package/dist/contracts-adapter-hydration.js +2 -1
- package/dist/contracts-adapter-hydration.js.map +1 -0
- package/dist/contracts-adapter-input.d.ts +2 -1
- package/dist/contracts-adapter-input.d.ts.map +1 -0
- package/dist/contracts-adapter-input.js +2 -1
- package/dist/contracts-adapter-input.js.map +1 -0
- package/dist/data-views/docs/data-views.docblock.d.ts +2 -1
- package/dist/data-views/docs/data-views.docblock.d.ts.map +1 -0
- package/dist/data-views/docs/data-views.docblock.js +2 -1
- package/dist/data-views/docs/data-views.docblock.js.map +1 -0
- package/dist/data-views/query-generator.d.ts +2 -1
- package/dist/data-views/query-generator.d.ts.map +1 -0
- package/dist/data-views/query-generator.js +2 -1
- package/dist/data-views/query-generator.js.map +1 -0
- package/dist/data-views/runtime.d.ts +2 -1
- package/dist/data-views/runtime.d.ts.map +1 -0
- package/dist/data-views/runtime.js +2 -1
- package/dist/data-views/runtime.js.map +1 -0
- package/dist/data-views.d.ts +2 -1
- package/dist/data-views.d.ts.map +1 -0
- package/dist/data-views.js +2 -1
- package/dist/data-views.js.map +1 -0
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts +2 -1
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts.map +1 -0
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/docs/index.js +0 -6
- package/dist/docs/meta.docs.d.ts +2 -1
- package/dist/docs/meta.docs.d.ts.map +1 -0
- package/dist/docs/meta.docs.js +5 -1
- package/dist/docs/meta.docs.js.map +1 -0
- package/dist/docs/presentations.d.ts +2 -1
- package/dist/docs/presentations.d.ts.map +1 -0
- package/dist/docs/presentations.js +2 -1
- package/dist/docs/presentations.js.map +1 -0
- package/dist/docs/registry.d.ts +2 -1
- package/dist/docs/registry.d.ts.map +1 -0
- package/dist/docs/registry.js +2 -1
- package/dist/docs/registry.js.map +1 -0
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts +2 -1
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts.map +1 -0
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/README.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/README.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/README.docblock.js +2 -1
- package/dist/docs/tech/contracts/README.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/create-subscription.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/create-subscription.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/create-subscription.docblock.js +2 -1
- package/dist/docs/tech/contracts/create-subscription.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +2 -1
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/migrations.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/migrations.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/migrations.docblock.js +2 -1
- package/dist/docs/tech/contracts/migrations.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/openapi-export.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/openapi-export.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +2 -1
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/overlays.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/overlays.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/overlays.docblock.js +2 -1
- package/dist/docs/tech/contracts/overlays.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/tests.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/tests.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/tests.docblock.js +2 -1
- package/dist/docs/tech/contracts/tests.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/themes.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/themes.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/themes.docblock.js +2 -1
- package/dist/docs/tech/contracts/themes.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +2 -1
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js.map +1 -0
- package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts +2 -1
- package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts.map +1 -0
- package/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/docs/tech/llm/llm-integration.docblock.d.ts +2 -1
- package/dist/docs/tech/llm/llm-integration.docblock.d.ts.map +1 -0
- package/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/docs/tech/mcp-endpoints.docblock.d.ts +2 -1
- package/dist/docs/tech/mcp-endpoints.docblock.d.ts.map +1 -0
- package/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/docs/tech/presentation-runtime.docblock.d.ts +2 -1
- package/dist/docs/tech/presentation-runtime.docblock.d.ts.map +1 -0
- package/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/docs/tech/schema/README.docblock.d.ts +2 -1
- package/dist/docs/tech/schema/README.docblock.d.ts.map +1 -0
- package/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/docs/tech/studio/learning-events.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/learning-events.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/docs/tech/studio/learning-journeys.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/learning-journeys.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/docs/tech/studio/project-access-teams.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/project-access-teams.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/docs/tech/studio/project-routing.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/project-routing.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/docs/tech/studio/team-invitations.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/team-invitations.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/docs/tech/studio/workspace-ops.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/workspace-ops.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/docs/tech/studio/workspaces.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/workspaces.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/docs/tech/telemetry-ingest.docblock.d.ts +2 -1
- package/dist/docs/tech/telemetry-ingest.docblock.d.ts.map +1 -0
- package/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/docs/tech/templates/runtime.docblock.d.ts +2 -1
- package/dist/docs/tech/templates/runtime.docblock.d.ts.map +1 -0
- package/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/docs/tech/vscode-extension.docblock.d.ts +2 -1
- package/dist/docs/tech/vscode-extension.docblock.d.ts.map +1 -0
- package/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/docs/tech/workflows/overview.docblock.d.ts +2 -1
- package/dist/docs/tech/workflows/overview.docblock.d.ts.map +1 -0
- package/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/docs/tech-contracts.docs.d.ts +2 -1
- package/dist/docs/tech-contracts.docs.d.ts.map +1 -0
- package/dist/docs/tech-contracts.docs.js +5 -1
- package/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/docs/types.d.ts +2 -1
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/events.d.ts +2 -1
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -1
- package/dist/events.js.map +1 -0
- package/dist/experiments/docs/experiments.docblock.d.ts +2 -1
- package/dist/experiments/docs/experiments.docblock.d.ts.map +1 -0
- package/dist/experiments/docs/experiments.docblock.js +2 -1
- package/dist/experiments/docs/experiments.docblock.js.map +1 -0
- package/dist/experiments/evaluator.d.ts +2 -1
- package/dist/experiments/evaluator.d.ts.map +1 -0
- package/dist/experiments/evaluator.js +2 -1
- package/dist/experiments/evaluator.js.map +1 -0
- package/dist/experiments/spec-resolver.d.ts +2 -1
- package/dist/experiments/spec-resolver.d.ts.map +1 -0
- package/dist/experiments/spec.d.ts +2 -1
- package/dist/experiments/spec.d.ts.map +1 -0
- package/dist/experiments/spec.js +2 -1
- package/dist/experiments/spec.js.map +1 -0
- package/dist/features.d.ts +2 -1
- package/dist/features.d.ts.map +1 -0
- package/dist/features.js +2 -1
- package/dist/features.js.map +1 -0
- package/dist/forms/docs/forms.docblock.d.ts +2 -1
- package/dist/forms/docs/forms.docblock.d.ts.map +1 -0
- package/dist/forms/docs/forms.docblock.js +2 -1
- package/dist/forms/docs/forms.docblock.js.map +1 -0
- package/dist/forms.d.ts +2 -1
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +2 -1
- package/dist/forms.js.map +1 -0
- package/dist/index.js +2 -3
- package/dist/install.d.ts +2 -1
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +2 -1
- package/dist/install.js.map +1 -0
- package/dist/integrations/binding.d.ts +2 -1
- package/dist/integrations/binding.d.ts.map +1 -0
- package/dist/integrations/connection.d.ts +2 -1
- package/dist/integrations/connection.d.ts.map +1 -0
- package/dist/integrations/contracts.d.ts +104 -103
- package/dist/integrations/contracts.d.ts.map +1 -0
- package/dist/integrations/contracts.js +65 -66
- package/dist/integrations/contracts.js.map +1 -0
- package/dist/integrations/docs/integrations.docblock.d.ts +2 -1
- package/dist/integrations/docs/integrations.docblock.d.ts.map +1 -0
- package/dist/integrations/docs/integrations.docblock.js +2 -1
- package/dist/integrations/docs/integrations.docblock.js.map +1 -0
- package/dist/integrations/health.d.ts +2 -1
- package/dist/integrations/health.d.ts.map +1 -0
- package/dist/integrations/health.js +2 -1
- package/dist/integrations/health.js.map +1 -0
- package/dist/integrations/openbanking/contracts/accounts.d.ts +68 -67
- package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/integrations/openbanking/contracts/balances.d.ts +2 -1
- package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/integrations/openbanking/contracts/index.d.ts +2 -1
- package/dist/integrations/openbanking/contracts/index.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/index.js +2 -1
- package/dist/integrations/openbanking/contracts/index.js.map +1 -0
- package/dist/integrations/openbanking/contracts/transactions.d.ts +50 -49
- package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/integrations/openbanking/guards.d.ts +2 -1
- package/dist/integrations/openbanking/guards.d.ts.map +1 -0
- package/dist/integrations/openbanking/guards.js +2 -1
- package/dist/integrations/openbanking/guards.js.map +1 -0
- package/dist/integrations/openbanking/models.d.ts +2 -1
- package/dist/integrations/openbanking/models.d.ts.map +1 -0
- package/dist/integrations/openbanking/models.js +60 -61
- package/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/integrations/openbanking/openbanking.feature.d.ts +2 -1
- package/dist/integrations/openbanking/openbanking.feature.d.ts.map +1 -0
- package/dist/integrations/openbanking/openbanking.feature.js +2 -1
- package/dist/integrations/openbanking/openbanking.feature.js.map +1 -0
- package/dist/integrations/openbanking/telemetry.d.ts +2 -1
- package/dist/integrations/openbanking/telemetry.d.ts.map +1 -0
- package/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/integrations/providers/calendar.d.ts +2 -1
- package/dist/integrations/providers/calendar.d.ts.map +1 -0
- package/dist/integrations/providers/elevenlabs.d.ts +2 -1
- package/dist/integrations/providers/elevenlabs.d.ts.map +1 -0
- package/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/integrations/providers/email.d.ts +2 -1
- package/dist/integrations/providers/email.d.ts.map +1 -0
- package/dist/integrations/providers/embedding.d.ts +2 -1
- package/dist/integrations/providers/embedding.d.ts.map +1 -0
- package/dist/integrations/providers/gcs-storage.d.ts +2 -1
- package/dist/integrations/providers/gcs-storage.d.ts.map +1 -0
- package/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/integrations/providers/gmail.d.ts +2 -1
- package/dist/integrations/providers/gmail.d.ts.map +1 -0
- package/dist/integrations/providers/gmail.js +2 -1
- package/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/integrations/providers/google-calendar.d.ts +2 -1
- package/dist/integrations/providers/google-calendar.d.ts.map +1 -0
- package/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +2 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +1 -0
- package/dist/integrations/providers/impls/elevenlabs-voice.js +2 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -0
- package/dist/integrations/providers/impls/gcs-storage.d.ts +2 -1
- package/dist/integrations/providers/impls/gcs-storage.d.ts.map +1 -0
- package/dist/integrations/providers/impls/gcs-storage.js +2 -1
- package/dist/integrations/providers/impls/gcs-storage.js.map +1 -0
- package/dist/integrations/providers/impls/gmail-inbound.d.ts +2 -1
- package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +1 -0
- package/dist/integrations/providers/impls/gmail-inbound.js +2 -1
- package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -0
- package/dist/integrations/providers/impls/gmail-outbound.d.ts +2 -1
- package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -0
- package/dist/integrations/providers/impls/gmail-outbound.js +2 -1
- package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -0
- package/dist/integrations/providers/impls/google-calendar.d.ts +2 -1
- package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -0
- package/dist/integrations/providers/impls/google-calendar.js +2 -1
- package/dist/integrations/providers/impls/google-calendar.js.map +1 -0
- package/dist/integrations/providers/impls/mistral-embedding.d.ts +2 -1
- package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +1 -0
- package/dist/integrations/providers/impls/mistral-embedding.js +2 -1
- package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -0
- package/dist/integrations/providers/impls/mistral-llm.d.ts +2 -1
- package/dist/integrations/providers/impls/mistral-llm.d.ts.map +1 -0
- package/dist/integrations/providers/impls/mistral-llm.js +2 -1
- package/dist/integrations/providers/impls/mistral-llm.js.map +1 -0
- package/dist/integrations/providers/impls/postmark-email.d.ts +2 -1
- package/dist/integrations/providers/impls/postmark-email.d.ts.map +1 -0
- package/dist/integrations/providers/impls/postmark-email.js +2 -1
- package/dist/integrations/providers/impls/postmark-email.js.map +1 -0
- package/dist/integrations/providers/impls/powens-client.d.ts +2 -1
- package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -0
- package/dist/integrations/providers/impls/powens-client.js +2 -1
- package/dist/integrations/providers/impls/powens-client.js.map +1 -0
- package/dist/integrations/providers/impls/powens-openbanking.d.ts +2 -1
- package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -0
- package/dist/integrations/providers/impls/powens-openbanking.js +2 -1
- package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -0
- package/dist/integrations/providers/impls/provider-factory.d.ts +2 -1
- package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -0
- package/dist/integrations/providers/impls/provider-factory.js +2 -1
- package/dist/integrations/providers/impls/provider-factory.js.map +1 -0
- package/dist/integrations/providers/impls/qdrant-vector.d.ts +2 -1
- package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -0
- package/dist/integrations/providers/impls/qdrant-vector.js +2 -1
- package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -0
- package/dist/integrations/providers/impls/stripe-payments.d.ts +2 -1
- package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -0
- package/dist/integrations/providers/impls/stripe-payments.js +2 -1
- package/dist/integrations/providers/impls/stripe-payments.js.map +1 -0
- package/dist/integrations/providers/impls/twilio-sms.d.ts +2 -1
- package/dist/integrations/providers/impls/twilio-sms.d.ts.map +1 -0
- package/dist/integrations/providers/impls/twilio-sms.js +2 -1
- package/dist/integrations/providers/impls/twilio-sms.js.map +1 -0
- package/dist/integrations/providers/llm.d.ts +2 -1
- package/dist/integrations/providers/llm.d.ts.map +1 -0
- package/dist/integrations/providers/mistral.d.ts +2 -1
- package/dist/integrations/providers/mistral.d.ts.map +1 -0
- package/dist/integrations/providers/mistral.js +2 -1
- package/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/integrations/providers/openbanking.d.ts +2 -1
- package/dist/integrations/providers/openbanking.d.ts.map +1 -0
- package/dist/integrations/providers/payments.d.ts +2 -1
- package/dist/integrations/providers/payments.d.ts.map +1 -0
- package/dist/integrations/providers/postmark.d.ts +2 -1
- package/dist/integrations/providers/postmark.d.ts.map +1 -0
- package/dist/integrations/providers/postmark.js +2 -1
- package/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/integrations/providers/powens.d.ts +2 -1
- package/dist/integrations/providers/powens.d.ts.map +1 -0
- package/dist/integrations/providers/powens.js +2 -1
- package/dist/integrations/providers/powens.js.map +1 -0
- package/dist/integrations/providers/qdrant.d.ts +2 -1
- package/dist/integrations/providers/qdrant.d.ts.map +1 -0
- package/dist/integrations/providers/qdrant.js +2 -1
- package/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/integrations/providers/registry.d.ts +2 -1
- package/dist/integrations/providers/registry.d.ts.map +1 -0
- package/dist/integrations/providers/registry.js +2 -1
- package/dist/integrations/providers/registry.js.map +1 -0
- package/dist/integrations/providers/sms.d.ts +2 -1
- package/dist/integrations/providers/sms.d.ts.map +1 -0
- package/dist/integrations/providers/storage.d.ts +2 -1
- package/dist/integrations/providers/storage.d.ts.map +1 -0
- package/dist/integrations/providers/stripe.d.ts +2 -1
- package/dist/integrations/providers/stripe.d.ts.map +1 -0
- package/dist/integrations/providers/stripe.js +2 -1
- package/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/integrations/providers/twilio-sms.d.ts +2 -1
- package/dist/integrations/providers/twilio-sms.d.ts.map +1 -0
- package/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/integrations/providers/vector-store.d.ts +2 -1
- package/dist/integrations/providers/vector-store.d.ts.map +1 -0
- package/dist/integrations/providers/voice.d.ts +2 -1
- package/dist/integrations/providers/voice.d.ts.map +1 -0
- package/dist/integrations/runtime.d.ts +2 -1
- package/dist/integrations/runtime.d.ts.map +1 -0
- package/dist/integrations/runtime.js +2 -1
- package/dist/integrations/runtime.js.map +1 -0
- package/dist/integrations/secrets/aws-secret-manager.d.ts +2 -1
- package/dist/integrations/secrets/aws-secret-manager.d.ts.map +1 -0
- package/dist/integrations/secrets/aws-secret-manager.js +2 -1
- package/dist/integrations/secrets/aws-secret-manager.js.map +1 -0
- package/dist/integrations/secrets/env-secret-provider.d.ts +2 -1
- package/dist/integrations/secrets/env-secret-provider.d.ts.map +1 -0
- package/dist/integrations/secrets/env-secret-provider.js +2 -1
- package/dist/integrations/secrets/env-secret-provider.js.map +1 -0
- package/dist/integrations/secrets/gcp-secret-manager.d.ts +2 -1
- package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -0
- package/dist/integrations/secrets/gcp-secret-manager.js +2 -1
- package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -0
- package/dist/integrations/secrets/manager.d.ts +2 -1
- package/dist/integrations/secrets/manager.d.ts.map +1 -0
- package/dist/integrations/secrets/manager.js +2 -1
- package/dist/integrations/secrets/manager.js.map +1 -0
- package/dist/integrations/secrets/provider.d.ts +2 -1
- package/dist/integrations/secrets/provider.d.ts.map +1 -0
- package/dist/integrations/secrets/provider.js +2 -1
- package/dist/integrations/secrets/provider.js.map +1 -0
- package/dist/integrations/secrets/scaleway-secret-manager.d.ts +2 -1
- package/dist/integrations/secrets/scaleway-secret-manager.d.ts.map +1 -0
- package/dist/integrations/secrets/scaleway-secret-manager.js +2 -1
- package/dist/integrations/secrets/scaleway-secret-manager.js.map +1 -0
- package/dist/integrations/spec.d.ts +2 -1
- package/dist/integrations/spec.d.ts.map +1 -0
- package/dist/integrations/spec.js +2 -1
- package/dist/integrations/spec.js.map +1 -0
- package/dist/jobs/define-job.d.ts +2 -1
- package/dist/jobs/define-job.d.ts.map +1 -0
- package/dist/jobs/define-job.js +2 -1
- package/dist/jobs/define-job.js.map +1 -0
- package/dist/jobs/gcp-cloud-tasks.d.ts +2 -1
- package/dist/jobs/gcp-cloud-tasks.d.ts.map +1 -0
- package/dist/jobs/gcp-cloud-tasks.js +2 -1
- package/dist/jobs/gcp-cloud-tasks.js.map +1 -0
- package/dist/jobs/gcp-pubsub.d.ts +2 -1
- package/dist/jobs/gcp-pubsub.d.ts.map +1 -0
- package/dist/jobs/gcp-pubsub.js +2 -1
- package/dist/jobs/gcp-pubsub.js.map +1 -0
- package/dist/jobs/handlers/gmail-sync-handler.d.ts +2 -1
- package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +1 -0
- package/dist/jobs/handlers/gmail-sync-handler.js +2 -1
- package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -0
- package/dist/jobs/handlers/index.d.ts +2 -1
- package/dist/jobs/handlers/index.d.ts.map +1 -0
- package/dist/jobs/handlers/index.js +2 -1
- package/dist/jobs/handlers/index.js.map +1 -0
- package/dist/jobs/handlers/ping-handler.d.ts +2 -1
- package/dist/jobs/handlers/ping-handler.d.ts.map +1 -0
- package/dist/jobs/handlers/ping-handler.js +2 -1
- package/dist/jobs/handlers/ping-handler.js.map +1 -0
- package/dist/jobs/handlers/storage-document-handler.d.ts +2 -1
- package/dist/jobs/handlers/storage-document-handler.d.ts.map +1 -0
- package/dist/jobs/handlers/storage-document-handler.js +2 -1
- package/dist/jobs/handlers/storage-document-handler.js.map +1 -0
- package/dist/jobs/memory-queue.d.ts +2 -1
- package/dist/jobs/memory-queue.d.ts.map +1 -0
- package/dist/jobs/memory-queue.js +2 -1
- package/dist/jobs/memory-queue.js.map +1 -0
- package/dist/jobs/queue.d.ts +2 -1
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +2 -1
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/scaleway-sqs-queue.d.ts +2 -1
- package/dist/jobs/scaleway-sqs-queue.d.ts.map +1 -0
- package/dist/jobs/scaleway-sqs-queue.js +2 -1
- package/dist/jobs/scaleway-sqs-queue.js.map +1 -0
- package/dist/jsonschema.d.ts +5 -4
- package/dist/jsonschema.d.ts.map +1 -0
- package/dist/jsonschema.js +2 -1
- package/dist/jsonschema.js.map +1 -0
- package/dist/knowledge/binding.d.ts +2 -1
- package/dist/knowledge/binding.d.ts.map +1 -0
- package/dist/knowledge/contracts.d.ts +68 -67
- package/dist/knowledge/contracts.d.ts.map +1 -0
- package/dist/knowledge/contracts.js +44 -45
- package/dist/knowledge/contracts.js.map +1 -0
- package/dist/knowledge/docs/knowledge.docblock.d.ts +2 -1
- package/dist/knowledge/docs/knowledge.docblock.d.ts.map +1 -0
- package/dist/knowledge/docs/knowledge.docblock.js +2 -1
- package/dist/knowledge/docs/knowledge.docblock.js.map +1 -0
- package/dist/knowledge/ingestion/document-processor.d.ts +2 -1
- package/dist/knowledge/ingestion/document-processor.d.ts.map +1 -0
- package/dist/knowledge/ingestion/document-processor.js +2 -1
- package/dist/knowledge/ingestion/document-processor.js.map +1 -0
- package/dist/knowledge/ingestion/embedding-service.d.ts +2 -1
- package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -0
- package/dist/knowledge/ingestion/embedding-service.js +2 -1
- package/dist/knowledge/ingestion/embedding-service.js.map +1 -0
- package/dist/knowledge/ingestion/gmail-adapter.d.ts +2 -1
- package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -0
- package/dist/knowledge/ingestion/gmail-adapter.js +2 -1
- package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -0
- package/dist/knowledge/ingestion/storage-adapter.d.ts +2 -1
- package/dist/knowledge/ingestion/storage-adapter.d.ts.map +1 -0
- package/dist/knowledge/ingestion/storage-adapter.js +2 -1
- package/dist/knowledge/ingestion/storage-adapter.js.map +1 -0
- package/dist/knowledge/ingestion/vector-indexer.d.ts +2 -1
- package/dist/knowledge/ingestion/vector-indexer.d.ts.map +1 -0
- package/dist/knowledge/ingestion/vector-indexer.js +2 -1
- package/dist/knowledge/ingestion/vector-indexer.js.map +1 -0
- package/dist/knowledge/query/service.d.ts +2 -1
- package/dist/knowledge/query/service.d.ts.map +1 -0
- package/dist/knowledge/query/service.js +2 -1
- package/dist/knowledge/query/service.js.map +1 -0
- package/dist/knowledge/runtime.d.ts +2 -1
- package/dist/knowledge/runtime.d.ts.map +1 -0
- package/dist/knowledge/runtime.js +2 -1
- package/dist/knowledge/runtime.js.map +1 -0
- package/dist/knowledge/source.d.ts +2 -1
- package/dist/knowledge/source.d.ts.map +1 -0
- package/dist/knowledge/spaces/email-threads.d.ts +2 -1
- package/dist/knowledge/spaces/email-threads.d.ts.map +1 -0
- package/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/knowledge/spaces/financial-docs.d.ts +2 -1
- package/dist/knowledge/spaces/financial-docs.d.ts.map +1 -0
- package/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/knowledge/spaces/financial-overview.d.ts +2 -1
- package/dist/knowledge/spaces/financial-overview.d.ts.map +1 -0
- package/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/knowledge/spaces/product-canon.d.ts +2 -1
- package/dist/knowledge/spaces/product-canon.d.ts.map +1 -0
- package/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/knowledge/spaces/support-faq.d.ts +2 -1
- package/dist/knowledge/spaces/support-faq.d.ts.map +1 -0
- package/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/knowledge/spaces/uploaded-docs.d.ts +2 -1
- package/dist/knowledge/spaces/uploaded-docs.d.ts.map +1 -0
- package/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/knowledge/spec.d.ts +2 -1
- package/dist/knowledge/spec.d.ts.map +1 -0
- package/dist/knowledge/spec.js +2 -1
- package/dist/knowledge/spec.js.map +1 -0
- package/dist/llm/exporters.d.ts +2 -1
- package/dist/llm/exporters.d.ts.map +1 -0
- package/dist/llm/exporters.js +2 -1
- package/dist/llm/exporters.js.map +1 -0
- package/dist/llm/prompts.d.ts +2 -1
- package/dist/llm/prompts.d.ts.map +1 -0
- package/dist/llm/prompts.js +2 -1
- package/dist/llm/prompts.js.map +1 -0
- package/dist/llm/types.d.ts +2 -1
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/markdown.d.ts +2 -1
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +2 -1
- package/dist/markdown.js.map +1 -0
- package/dist/migrations.d.ts +2 -1
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +2 -1
- package/dist/migrations.js.map +1 -0
- package/dist/onboarding-base.d.ts +31 -30
- package/dist/onboarding-base.d.ts.map +1 -0
- package/dist/onboarding-base.js +22 -23
- package/dist/onboarding-base.js.map +1 -0
- package/dist/openapi.d.ts +2 -1
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +2 -1
- package/dist/openapi.js.map +1 -0
- package/dist/openbanking/docs/openbanking.docblock.d.ts +2 -1
- package/dist/openbanking/docs/openbanking.docblock.d.ts.map +1 -0
- package/dist/openbanking/docs/openbanking.docblock.js +2 -1
- package/dist/openbanking/docs/openbanking.docblock.js.map +1 -0
- package/dist/ownership.d.ts +6 -7
- package/dist/ownership.d.ts.map +1 -0
- package/dist/ownership.js +6 -6
- package/dist/ownership.js.map +1 -0
- package/dist/policy/docs/policy.docblock.d.ts +2 -1
- package/dist/policy/docs/policy.docblock.d.ts.map +1 -0
- package/dist/policy/docs/policy.docblock.js +2 -1
- package/dist/policy/docs/policy.docblock.js.map +1 -0
- package/dist/policy/engine.d.ts +2 -1
- package/dist/policy/engine.d.ts.map +1 -0
- package/dist/policy/engine.js +2 -1
- package/dist/policy/engine.js.map +1 -0
- package/dist/policy/opa-adapter.d.ts +2 -1
- package/dist/policy/opa-adapter.d.ts.map +1 -0
- package/dist/policy/opa-adapter.js +2 -1
- package/dist/policy/opa-adapter.js.map +1 -0
- package/dist/policy/spec.d.ts +2 -1
- package/dist/policy/spec.d.ts.map +1 -0
- package/dist/policy/spec.js +2 -1
- package/dist/policy/spec.js.map +1 -0
- package/dist/presentations/docs/presentations-conventions.docblock.d.ts +2 -1
- package/dist/presentations/docs/presentations-conventions.docblock.d.ts.map +1 -0
- package/dist/presentations/docs/presentations-conventions.docblock.js +2 -1
- package/dist/presentations/docs/presentations-conventions.docblock.js.map +1 -0
- package/dist/presentations.backcompat.d.ts +2 -1
- package/dist/presentations.backcompat.d.ts.map +1 -0
- package/dist/presentations.backcompat.js +2 -1
- package/dist/presentations.backcompat.js.map +1 -0
- package/dist/presentations.d.ts +5 -4
- package/dist/presentations.d.ts.map +1 -0
- package/dist/presentations.js +2 -1
- package/dist/presentations.js.map +1 -0
- package/dist/presentations.v2.d.ts +2 -1
- package/dist/presentations.v2.d.ts.map +1 -0
- package/dist/presentations.v2.js +2 -1
- package/dist/presentations.v2.js.map +1 -0
- package/dist/prompt.d.ts +2 -1
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +2 -1
- package/dist/prompt.js.map +1 -0
- package/dist/promptRegistry.d.ts +2 -1
- package/dist/promptRegistry.d.ts.map +1 -0
- package/dist/promptRegistry.js +2 -1
- package/dist/promptRegistry.js.map +1 -0
- package/dist/regenerator/adapters.d.ts +2 -1
- package/dist/regenerator/adapters.d.ts.map +1 -0
- package/dist/regenerator/docs/regenerator.docblock.d.ts +2 -1
- package/dist/regenerator/docs/regenerator.docblock.d.ts.map +1 -0
- package/dist/regenerator/docs/regenerator.docblock.js +2 -1
- package/dist/regenerator/docs/regenerator.docblock.js.map +1 -0
- package/dist/regenerator/executor.d.ts +2 -1
- package/dist/regenerator/executor.d.ts.map +1 -0
- package/dist/regenerator/executor.js +2 -1
- package/dist/regenerator/executor.js.map +1 -0
- package/dist/regenerator/service.d.ts +2 -1
- package/dist/regenerator/service.d.ts.map +1 -0
- package/dist/regenerator/service.js +2 -1
- package/dist/regenerator/service.js.map +1 -0
- package/dist/regenerator/sinks.d.ts +2 -1
- package/dist/regenerator/sinks.d.ts.map +1 -0
- package/dist/regenerator/sinks.js +2 -1
- package/dist/regenerator/sinks.js.map +1 -0
- package/dist/regenerator/types.d.ts +2 -1
- package/dist/regenerator/types.d.ts.map +1 -0
- package/dist/regenerator/utils.d.ts +2 -1
- package/dist/regenerator/utils.d.ts.map +1 -0
- package/dist/regenerator/utils.js +2 -1
- package/dist/regenerator/utils.js.map +1 -0
- package/dist/registry.d.ts +2 -1
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +2 -1
- package/dist/registry.js.map +1 -0
- package/dist/resources.d.ts +2 -1
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +2 -1
- package/dist/resources.js.map +1 -0
- package/dist/schema/dist/index.js +4684 -6
- package/dist/schema/dist/index.js.map +1 -0
- package/dist/schema-to-markdown.d.ts +2 -1
- package/dist/schema-to-markdown.d.ts.map +1 -0
- package/dist/schema-to-markdown.js +2 -1
- package/dist/schema-to-markdown.js.map +1 -0
- package/dist/server/graphql-pothos.d.ts +2 -1
- package/dist/server/graphql-pothos.d.ts.map +1 -0
- package/dist/server/graphql-pothos.js +2 -1
- package/dist/server/graphql-pothos.js.map +1 -0
- package/dist/server/mcp/createMcpServer.d.ts +2 -1
- package/dist/server/mcp/createMcpServer.d.ts.map +1 -0
- package/dist/server/mcp/createMcpServer.js +2 -1
- package/dist/server/mcp/createMcpServer.js.map +1 -0
- package/dist/server/mcp/mcpTypes.d.ts +2 -1
- package/dist/server/mcp/mcpTypes.d.ts.map +1 -0
- package/dist/server/mcp/registerPresentations.d.ts +2 -1
- package/dist/server/mcp/registerPresentations.d.ts.map +1 -0
- package/dist/server/mcp/registerPresentations.js +2 -1
- package/dist/server/mcp/registerPresentations.js.map +1 -0
- package/dist/server/mcp/registerPrompts.d.ts +2 -1
- package/dist/server/mcp/registerPrompts.d.ts.map +1 -0
- package/dist/server/mcp/registerPrompts.js +2 -1
- package/dist/server/mcp/registerPrompts.js.map +1 -0
- package/dist/server/mcp/registerResources.d.ts +2 -1
- package/dist/server/mcp/registerResources.d.ts.map +1 -0
- package/dist/server/mcp/registerResources.js +2 -1
- package/dist/server/mcp/registerResources.js.map +1 -0
- package/dist/server/mcp/registerTools.d.ts +2 -1
- package/dist/server/mcp/registerTools.d.ts.map +1 -0
- package/dist/server/mcp/registerTools.js +2 -1
- package/dist/server/mcp/registerTools.js.map +1 -0
- package/dist/server/rest-elysia.d.ts +2 -1
- package/dist/server/rest-elysia.d.ts.map +1 -0
- package/dist/server/rest-elysia.js +2 -1
- package/dist/server/rest-elysia.js.map +1 -0
- package/dist/server/rest-express.d.ts +2 -1
- package/dist/server/rest-express.d.ts.map +1 -0
- package/dist/server/rest-express.js +2 -1
- package/dist/server/rest-express.js.map +1 -0
- package/dist/server/rest-generic.d.ts +2 -1
- package/dist/server/rest-generic.d.ts.map +1 -0
- package/dist/server/rest-generic.js +2 -1
- package/dist/server/rest-generic.js.map +1 -0
- package/dist/server/rest-next-app.d.ts +2 -1
- package/dist/server/rest-next-app.d.ts.map +1 -0
- package/dist/server/rest-next-app.js +2 -1
- package/dist/server/rest-next-app.js.map +1 -0
- package/dist/server/rest-next-mcp.d.ts +2 -1
- package/dist/server/rest-next-mcp.d.ts.map +1 -0
- package/dist/server/rest-next-mcp.js +2 -1
- package/dist/server/rest-next-mcp.js.map +1 -0
- package/dist/server/rest-next-pages.d.ts +2 -1
- package/dist/server/rest-next-pages.d.ts.map +1 -0
- package/dist/server/rest-next-pages.js +2 -1
- package/dist/server/rest-next-pages.js.map +1 -0
- package/dist/spec.d.ts +2 -1
- package/dist/spec.d.ts.map +1 -0
- package/dist/spec.js +2 -1
- package/dist/spec.js.map +1 -0
- package/dist/telemetry/anomaly.d.ts +2 -1
- package/dist/telemetry/anomaly.d.ts.map +1 -0
- package/dist/telemetry/anomaly.js +2 -1
- package/dist/telemetry/anomaly.js.map +1 -0
- package/dist/telemetry/docs/telemetry.docblock.d.ts +2 -1
- package/dist/telemetry/docs/telemetry.docblock.d.ts.map +1 -0
- package/dist/telemetry/docs/telemetry.docblock.js +2 -1
- package/dist/telemetry/docs/telemetry.docblock.js.map +1 -0
- package/dist/telemetry/spec.d.ts +2 -1
- package/dist/telemetry/spec.d.ts.map +1 -0
- package/dist/telemetry/spec.js +2 -1
- package/dist/telemetry/spec.js.map +1 -0
- package/dist/telemetry/tracker.d.ts +2 -1
- package/dist/telemetry/tracker.d.ts.map +1 -0
- package/dist/telemetry/tracker.js +2 -1
- package/dist/telemetry/tracker.js.map +1 -0
- package/dist/tests/runner.d.ts +2 -1
- package/dist/tests/runner.d.ts.map +1 -0
- package/dist/tests/runner.js +2 -1
- package/dist/tests/runner.js.map +1 -0
- package/dist/tests/spec.d.ts +2 -1
- package/dist/tests/spec.d.ts.map +1 -0
- package/dist/tests/spec.js +2 -1
- package/dist/tests/spec.js.map +1 -0
- package/dist/themes.d.ts +2 -1
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +2 -1
- package/dist/themes.js.map +1 -0
- package/dist/translations/catalog.d.ts +2 -1
- package/dist/translations/catalog.d.ts.map +1 -0
- package/dist/translations/tenant.d.ts +2 -1
- package/dist/translations/tenant.d.ts.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -0
- package/dist/workflow/adapters/db-adapter.d.ts +21 -8
- package/dist/workflow/adapters/db-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/db-adapter.js +5 -4
- package/dist/workflow/adapters/db-adapter.js.map +1 -0
- package/dist/workflow/adapters/file-adapter.d.ts +2 -1
- package/dist/workflow/adapters/file-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/file-adapter.js +2 -1
- package/dist/workflow/adapters/file-adapter.js.map +1 -0
- package/dist/workflow/adapters/memory-store.d.ts +2 -1
- package/dist/workflow/adapters/memory-store.d.ts.map +1 -0
- package/dist/workflow/adapters/memory-store.js +2 -1
- package/dist/workflow/adapters/memory-store.js.map +1 -0
- package/dist/workflow/expression.d.ts +2 -1
- package/dist/workflow/expression.d.ts.map +1 -0
- package/dist/workflow/expression.js +2 -1
- package/dist/workflow/expression.js.map +1 -0
- package/dist/workflow/runner.d.ts +2 -1
- package/dist/workflow/runner.d.ts.map +1 -0
- package/dist/workflow/runner.js +2 -1
- package/dist/workflow/runner.js.map +1 -0
- package/dist/workflow/sla-monitor.d.ts +2 -1
- package/dist/workflow/sla-monitor.d.ts.map +1 -0
- package/dist/workflow/sla-monitor.js +2 -1
- package/dist/workflow/sla-monitor.js.map +1 -0
- package/dist/workflow/spec.d.ts +2 -1
- package/dist/workflow/spec.d.ts.map +1 -0
- package/dist/workflow/spec.js +2 -1
- package/dist/workflow/spec.js.map +1 -0
- package/dist/workflow/state.d.ts +2 -1
- package/dist/workflow/state.d.ts.map +1 -0
- package/dist/workflow/validation.d.ts +2 -1
- package/dist/workflow/validation.d.ts.map +1 -0
- package/dist/workflow/validation.js +2 -1
- package/dist/workflow/validation.js.map +1 -0
- package/package.json +12 -17
- package/dist/docs/PUBLISHING.docblock.d.ts +0 -6
- package/dist/docs/PUBLISHING.docblock.js +0 -17
- package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -17
- package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -17
- package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -17
- package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -17
- package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -17
- package/dist/schema/dist/EnumType.js +0 -2
- package/dist/schema/dist/FieldType.js +0 -49
- package/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/schema/dist/SchemaModel.js +0 -39
- package/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/schema/dist/entity/index.js +0 -2
- package/dist/schema/dist/entity/types.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.d.ts","names":[],"sources":["../../../src/integrations/providers/llm.ts"],"sourcesContent":[],"mappings":";KAAY,OAAA;AAAA,UAEK,WAAA,CAFE;EAEF,IAAA,EAAA,MAAA;EAKA,IAAA,EAAA,MAAA;AAOjB;AAMY,UAbK,eAAA,CAaS;EAAG,IAAA,EAAA,WAAA;EAAc,EAAA,EAAA,MAAA;EAAkB,IAAA,EAAA,MAAA;EAAiB,SAAA,EAAA,MAAA;AAE9E;AACQ,UATS,iBAAA,CAST;EACG,IAAA,EAAA,aAAA;EAGE,UAAA,EAAA,MAAA;EAAM,MAAA,EAAA,MAAA;AAGnB;AAMiB,KAhBL,cAAA,GAAiB,WAgBC,GAhBa,eAgBb,GAhB+B,iBAgB/B;AAMb,UApBA,UAAA,CAoBc;EAOrB,IAAA,EA1BF,OA0BE;EAEG,OAAA,EA3BF,cA2BE,EAAA;EAEF,IAAA,CAAA,EAAA,MAAA;EAAW,UAAA,CAAA,EAAA,MAAA;EAGL,QAAA,CAAA,EA7BJ,MA6Be,CAAA,MAAA,EAAA,MACjB,CAAA;AAMX;AAGa,UApCI,iBAAA,CAoCJ;EAKD,IAAA,EAAA,MAAA;EAKC,WAAA,CAAA,EAAA,MAAA;EAIA,WAAA,EAAA,OAAA;;AAIc,UAhDV,aAAA,CAgDU;EAGV,YAAA,EAAA,MAAgB;EAIhB,gBAAW,EAAA,MAAA;EACX,WAAA,EAAA,MAAA;;AAAiD,UAlDjD,cAAA,CAkDiD;EAAR,KAAA,CAAA,EAAA,MAAA;EAE5C,WAAA,CAAA,EAAA,MAAA;EACA,IAAA,CAAA,EAAA,MAAA;EACK,eAAA,CAAA,EAAA,MAAA;EAAd,aAAA,CAAA,EAAA,MAAA,EAAA;EACmB,cAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAAuB,KAAA,CAAA,EAhDrC,iBAgDqC,EAAA;EAAR,MAAA,CAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EA9CjC,MA8CiC,CAAA,MAAA,EAAA,MAAA,CAAA;;WA5CnC;;UAGM,WAAA;WACN;UACD;;;;KAKE,cAAA;;SAGC;;;;QAKD;;;;SAKC;;;SAIA;;;YAIG;;UAGC,gBAAA;;;UAIA,WAAA;iBACA,wBAAwB,iBAAiB,QAAQ;mBAEpD,wBACA,iBACT,cAAc;wBACK,eAAe,QAAQ"}
|
|
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
|
|
|
4
4
|
declare const mistralIntegrationSpec: IntegrationSpec;
|
|
5
5
|
declare function registerMistralIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { mistralIntegrationSpec, registerMistralIntegration };
|
|
7
|
+
export { mistralIntegrationSpec, registerMistralIntegration };
|
|
8
|
+
//# sourceMappingURL=mistral.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mistral.d.ts","names":[],"sources":["../../../src/integrations/providers/mistral.ts"],"sourcesContent":[],"mappings":";;;cAGa,wBAAwB;iBAyErB,0BAAA,WACJ,0BACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mistral.js","names":["mistralIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/mistral.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const mistralIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'ai-llm.mistral',\n version: 1,\n category: 'ai-llm',\n displayName: 'Mistral AI',\n title: 'Mistral Large Language Model',\n description:\n 'Mistral integration providing chat completions and embedding generation.',\n domain: 'ai',\n owners: ['platform.ai'],\n tags: ['ai', 'llm', 'embeddings'],\n stability: StabilityEnum.Experimental,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [\n { key: 'ai.chat', version: 1 },\n { key: 'ai.embeddings', version: 1 },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n model: {\n type: 'string',\n description:\n 'Default chat completion model (e.g., mistral-large-latest).',\n },\n embeddingModel: {\n type: 'string',\n description: 'Embedding model identifier.',\n },\n },\n },\n example: {\n model: 'mistral-large-latest',\n embeddingModel: 'mistral-embed',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['apiKey'],\n properties: {\n apiKey: {\n type: 'string',\n description:\n 'Mistral API key with access to chat and embeddings endpoints.',\n },\n },\n },\n example: {\n apiKey: 'mistral-***',\n },\n },\n healthCheck: {\n method: 'custom',\n timeoutMs: 5000,\n },\n docsUrl: 'https://docs.mistral.ai/platform/endpoints',\n constraints: {\n rateLimit: {\n rpm: 600,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Generate an API key within the Mistral console and ensure the selected models are enabled for the account.',\n },\n};\n\nexport function registerMistralIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(mistralIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,yBAA0C;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,cAAc;EACvB,MAAM;GAAC;GAAM;GAAO;GAAa;EACjC,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EACZ,UAAU,CACR;EAAE,KAAK;EAAW,SAAS;EAAG,EAC9B;EAAE,KAAK;EAAiB,SAAS;EAAG,CACrC,EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,OAAO;KACL,MAAM;KACN,aACE;KACH;IACD,gBAAgB;KACd,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,OAAO;GACP,gBAAgB;GACjB;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,SAAS;GACpB,YAAY,EACV,QAAQ;IACN,MAAM;IACN,aACE;IACH,EACF;GACF;EACD,SAAS,EACP,QAAQ,eACT;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW,EACT,KAAK,KACN,EACF;CACD,WAAW,EACT,mBACE,8GACH;CACF;AAED,SAAgB,2BACd,UACyB;AACzB,QAAO,SAAS,SAAS,uBAAuB"}
|
|
@@ -125,4 +125,5 @@ interface OpenBankingProvider {
|
|
|
125
125
|
getConnectionStatus(params: OpenBankingGetConnectionStatusParams): Promise<OpenBankingConnectionStatus>;
|
|
126
126
|
}
|
|
127
127
|
//#endregion
|
|
128
|
-
export { OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccountDetailsParams, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingTransaction };
|
|
128
|
+
export { OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccountDetailsParams, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingTransaction };
|
|
129
|
+
//# sourceMappingURL=openbanking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openbanking.d.ts","names":[],"sources":["../../../src/integrations/providers/openbanking.ts"],"sourcesContent":[],"mappings":";KAAY,2BAAA;AAAA,UAMK,yBAAA,CANsB;EAMtB,EAAA,EAAA,MAAA;EAqBA,UAAA,EAAA,MAAA;EAUA,QAAA,EAAA,MAAA;EAwBL,YAAA,EAAA,MAAA;EAQK,MAAA,CAAA,EAAA,MAAA;EAWA,WAAA,EAAA,MAAA;EAUA,aAAA,EAAA,MAAA;EAUA,eAAA,EAAA,MAAA;EAMA,kBAAA,CAAA,EAAA,MAAA;EAOA,WAAA,EAAA,MAAA;EAWA,IAAA,CAAA,EAAA,MAAA;EAMA,GAAA,CAAA,EAAA,MAAA;EAOA,QAAA,EAAA,MAAA;EAKA,mBAAA,CAAA,EAAmB,MAAA;EAExB,SAAA,CAAA,EA3HE,2BA2HF;EACC,MAAA,CAAA,EAAA,QAAA,GAAA,UAAA,GAAA,QAAA,GAAA,WAAA;EAAR,YAAA,CAAA,EAAA,MAAA;EAEO,QAAA,CAAA,EA3HC,MA2HD,CAAA,MAAA,EAAA,OAAA,CAAA;;AACP,UAzHY,yBAAA,SAAkC,yBAyH9C,CAAA;EAEO,WAAA,CAAA,EAAA,MAAA;EACC,QAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EAAA,MAAA;EAEO,gBAAA,CAAA,EAAA,MAAA;EACC,cAAA,CAAA,EAAA,MAAA;EAAR,WAAA,CAAA,EAAA,MAAA;EAEO,YAAA,CAAA,EA1HK,MA0HL,CAAA,MAAA,EAAA,OAAA,CAAA;;AACP,UAxHY,sBAAA,CAwHZ;EAAO,EAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;aAnGC;;KAGD,sBAAA;UAQK,yBAAA;;;;QAIT;;;;aAIK;;UAGI,2BAAA;;;;;;;YAOL;;UAGK,6BAAA;;;;;;;;;UAUA,6BAAA;YACL;;;;UAKK,kCAAA;;;;;;UAOA,iCAAA;;;;;;;;;;UAWA,iCAAA;gBACD;;;;UAKC,4BAAA;;;;iBAIA;;UAGA,oCAAA;;;;UAKA,mBAAA;uBAEL,gCACP,QAAQ;4BAED,qCACP,QAAQ;2BAED,oCACP,QAAQ;sBAED,+BACP,QAAQ;8BAED,uCACP,QAAQ"}
|
|
@@ -106,4 +106,5 @@ interface PaymentsProvider {
|
|
|
106
106
|
listTransactions(query?: ListTransactionsQuery): Promise<PaymentTransaction[]>;
|
|
107
107
|
}
|
|
108
108
|
//#endregion
|
|
109
|
-
export { CapturePaymentInput, CreateCustomerInput, CreatePaymentIntentInput, ListInvoicesQuery, ListTransactionsQuery, Money, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, RefundPaymentInput };
|
|
109
|
+
export { CapturePaymentInput, CreateCustomerInput, CreatePaymentIntentInput, ListInvoicesQuery, ListTransactionsQuery, Money, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, RefundPaymentInput };
|
|
110
|
+
//# sourceMappingURL=payments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments.d.ts","names":[],"sources":["../../../src/integrations/providers/payments.ts"],"sourcesContent":[],"mappings":";UAAiB,KAAA;EAAA;EAML,MAAA,EAAA,MAAA;EAQK,QAAA,EAAA,MAAA;;AAKH,KAbF,mBAAA,GAaE,yBAAA,GAAA,uBAAA,GAAA,iBAAA,GAAA,YAAA,GAAA,WAAA,GAAA,UAAA;AACA,UANG,eAAA,CAMH;EAAI,EAAA,EAAA,MAAA;EAGD,KAAA,CAAA,EAAA,MAAA;EAOA,IAAA,CAAA,EAAA,MAAA;EAEP,QAAA,CAAA,EAdG,MAcH,CAAA,MAAA,EAAA,MAAA,CAAA;EACA,SAAA,CAAA,EAdI,IAcJ;EAIG,SAAA,CAAA,EAjBC,IAiBD;;AAEC,UAhBG,mBAAA,CAgBH;EAAI,KAAA,CAAA,EAAA,MAAA;EAGD,IAAA,CAAA,EAAA,MAAA;EAWA,WAAA,CAAA,EAAA,MAAA;EAMA,QAAA,CAAA,EAhCJ,MAgCiB,CAAA,MAAA,EAAA,MAAA,CAAA;;AAMjB,UAnCI,aAAA,CAmCJ;EACC,EAAA,EAAA,MAAA;EAAI,MAAA,EAlCR,KAkCQ;EAGD,MAAA,EApCP,mBAoCyB;EAOlB,UAAA,CAAA,EAAA,MAAc;EAIlB,YAAA,CAAA,EAAA,MAAA;EACE,WAAA,CAAA,EAAA,MAAA;EAEH,QAAA,CAAA,EA9CC,MA8CD,CAAA,MAAA,EAAA,MAAA,CAAA;EAEC,SAAA,CAAA,EA/CC,IA+CD;EACC,SAAA,CAAA,EA/CA,IA+CA;;AACI,UA7CD,wBAAA,CA6CC;EAGD,MAAA,EA/CP,KA+CO;EAOA,UAAA,CAAA,EAAA,MAAA;EAGP,kBAAA,CAAA,EAAA,WAAA,GAAA,QAAA;EAIG,aAAA,CAAA,EAAA,WAAA,GAAA,QAAA;EACA,WAAA,CAAA,EAAA,MAAA;EAAM,QAAA,CAAA,EAzDN,MAyDM,CAAA,MAAA,EAAA,MAAA,CAAA;EAGF,mBAAA,CAAA,EAAA,MAAqB;EAOrB,SAAA,CAAA,EAAA,MAAA;;AACqC,UA/DrC,mBAAA,CA+DqC;EAAR,MAAA,CAAA,EA9DnC,KA8DmC;EACH,YAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EA7DtB,MA6DsB,CAAA,MAAA,EAAA,MAAA,CAAA;;AAC6B,UA3D/C,aAAA,CA2D+C;EAAR,EAAA,EAAA,MAAA;EAG5C,eAAA,EAAA,MAAA;EACC,MAAA,EA5DH,KA4DG;EAAR,MAAA,EAAA,SAAA,GAAA,WAAA,GAAA,QAAA,GAAA,UAAA;EACmD,MAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EA1DnC,MA0DmC,CAAA,MAAA,EAAA,MAAA,CAAA;EACzB,SAAA,CAAA,EA1DT,IA0DS;;AAAqB,UAvD3B,kBAAA,CAuD2B;EACrB,eAAA,EAAA,MAAA;EAA4B,MAAA,CAAA,EAtDxC,KAsDwC;EAAR,MAAA,CAAA,EAAA,MAAA;EAE/B,QAAA,CAAA,EAtDC,MAsDD,CAAA,MAAA,EAAA,MAAA,CAAA;;AACP,UApDY,cAAA,CAoDZ;EAAO,EAAA,EAAA,MAAA;;;aAhDC;eACE;;YAEH;;aAEC;cACC;cACA;;UAGG,iBAAA;;WAEN;;;;UAKM,kBAAA;;;UAGP;;;;aAIG;aACA;;UAGI,qBAAA;;;;;;UAOA,gBAAA;wBACO,sBAAsB,QAAQ;mCACnB,QAAQ;6BACd,2BAA2B,QAAQ;kDAGpD,sBACP,QAAQ;gDACmC,QAAQ;uBACjC,qBAAqB,QAAQ;uBAC7B,oBAAoB,QAAQ;2BAEvC,wBACP,QAAQ"}
|
|
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
|
|
|
4
4
|
declare const postmarkIntegrationSpec: IntegrationSpec;
|
|
5
5
|
declare function registerPostmarkIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { postmarkIntegrationSpec, registerPostmarkIntegration };
|
|
7
|
+
export { postmarkIntegrationSpec, registerPostmarkIntegration };
|
|
8
|
+
//# sourceMappingURL=postmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postmark.d.ts","names":[],"sources":["../../../src/integrations/providers/postmark.ts"],"sourcesContent":[],"mappings":";;;cAGa,yBAAyB;iBA2EtB,2BAAA,WACJ,0BACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postmark.js","names":["postmarkIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/postmark.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const postmarkIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'email.postmark',\n version: 1,\n category: 'email',\n displayName: 'Postmark',\n title: 'Postmark Transactional Email',\n description: 'Postmark integration for transactional email delivery.',\n domain: 'communications',\n owners: ['platform.messaging'],\n tags: ['email', 'transactional'],\n stability: StabilityEnum.Stable,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [{ key: 'email.transactional', version: 1 }],\n requires: [\n {\n key: 'platform.webhooks',\n optional: true,\n reason: 'Optional for inbound bounce handling',\n },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n messageStream: {\n type: 'string',\n description:\n 'Optional message stream identifier (e.g., transactional).',\n },\n fromEmail: {\n type: 'string',\n description: 'Default From address used for outbound messages.',\n },\n },\n },\n example: {\n messageStream: 'outbound',\n fromEmail: 'notifications@example.com',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['serverToken'],\n properties: {\n serverToken: {\n type: 'string',\n description: 'Server token for the Postmark account.',\n },\n },\n },\n example: {\n serverToken: 'server-***',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 3000,\n },\n docsUrl: 'https://postmarkapp.com/developer',\n constraints: {\n rateLimit: {\n rpm: 500,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Create a Postmark server token with outbound send permissions and configure allowed from addresses.',\n },\n};\n\nexport function registerPostmarkIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(postmarkIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,0BAA2C;CACtD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,SAAS,gBAAgB;EAChC,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACZ,UAAU,CAAC;GAAE,KAAK;GAAuB,SAAS;GAAG,CAAC;EACtD,UAAU,CACR;GACE,KAAK;GACL,UAAU;GACV,QAAQ;GACT,CACF;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,eAAe;KACb,MAAM;KACN,aACE;KACH;IACD,WAAW;KACT,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,eAAe;GACf,WAAW;GACZ;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,cAAc;GACzB,YAAY,EACV,aAAa;IACX,MAAM;IACN,aAAa;IACd,EACF;GACF;EACD,SAAS,EACP,aAAa,cACd;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW,EACT,KAAK,KACN,EACF;CACD,WAAW,EACT,mBACE,uGACH;CACF;AAED,SAAgB,4BACd,UACyB;AACzB,QAAO,SAAS,SAAS,wBAAwB"}
|
|
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
|
|
|
4
4
|
declare const powensIntegrationSpec: IntegrationSpec;
|
|
5
5
|
declare function registerPowensIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { powensIntegrationSpec, registerPowensIntegration };
|
|
7
|
+
export { powensIntegrationSpec, registerPowensIntegration };
|
|
8
|
+
//# sourceMappingURL=powens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powens.d.ts","names":[],"sources":["../../../src/integrations/providers/powens.ts"],"sourcesContent":[],"mappings":";;;cAIa,uBAAuB;AAAvB,iBA6GG,yBAAA,CA7GoB,QA2GnC,EAGW,uBAHX,CAAA,EAIE,uBAJF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powens.js","names":["powensIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/powens.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec } from '../spec';\nimport type { IntegrationSpecRegistry } from '../spec';\n\nexport const powensIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'openbanking.powens',\n version: 1,\n category: 'open-banking',\n displayName: 'Powens Open Banking',\n title: 'Powens Open Banking (Read)',\n description:\n 'Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.',\n domain: 'finance',\n owners: ['platform.finance'],\n tags: ['open-banking', 'powens', 'finance'],\n stability: StabilityEnum.Experimental,\n },\n supportedModes: ['byok'],\n capabilities: {\n provides: [\n { key: 'openbanking.accounts.read', version: 1 },\n { key: 'openbanking.transactions.read', version: 1 },\n { key: 'openbanking.balances.read', version: 1 },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n required: ['environment'],\n properties: {\n environment: {\n type: 'string',\n enum: ['sandbox', 'production'],\n description:\n 'Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints.',\n },\n baseUrl: {\n type: 'string',\n description:\n 'Optional override for the Powens API base URL. Defaults to Powens environment defaults.',\n },\n region: {\n type: 'string',\n description:\n 'Optional Powens region identifier when targeting a specific data residency cluster.',\n },\n pollingIntervalMs: {\n type: 'number',\n description:\n 'Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard).',\n },\n },\n },\n example: {\n environment: 'sandbox',\n baseUrl: 'https://api-sandbox.powens.com/v2',\n region: 'eu-west-1',\n pollingIntervalMs: 300000,\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['clientId', 'clientSecret'],\n properties: {\n clientId: {\n type: 'string',\n description:\n 'Powens OAuth client identifier obtained from the Powens Console (BYOK project).',\n },\n clientSecret: {\n type: 'string',\n description:\n 'Powens OAuth client secret used to exchange for access tokens.',\n },\n apiKey: {\n type: 'string',\n description:\n 'Optional Powens API key (if the tenant project exposes a dedicated API token).',\n },\n webhookSecret: {\n type: 'string',\n description:\n 'Optional webhook signing secret used to verify Powens webhook payloads.',\n },\n },\n },\n example: {\n clientId: 'powens-client-id',\n clientSecret: 'powens-client-secret',\n apiKey: 'powens-api-key',\n webhookSecret: 'powens-webhook-secret',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 8000,\n },\n docsUrl: 'https://docs.powens.com/',\n constraints: {\n rateLimit: {\n rph: 10000,\n rpm: 600,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.',\n requiredScopes: ['accounts:read', 'transactions:read', 'balances:read'],\n },\n};\n\nexport function registerPowensIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(powensIntegrationSpec);\n}\n"],"mappings":";;;AAIA,MAAaA,wBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,mBAAmB;EAC5B,MAAM;GAAC;GAAgB;GAAU;GAAU;EAC3C,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,OAAO;CACxB,cAAc,EACZ,UAAU;EACR;GAAE,KAAK;GAA6B,SAAS;GAAG;EAChD;GAAE,KAAK;GAAiC,SAAS;GAAG;EACpD;GAAE,KAAK;GAA6B,SAAS;GAAG;EACjD,EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,cAAc;GACzB,YAAY;IACV,aAAa;KACX,MAAM;KACN,MAAM,CAAC,WAAW,aAAa;KAC/B,aACE;KACH;IACD,SAAS;KACP,MAAM;KACN,aACE;KACH;IACD,QAAQ;KACN,MAAM;KACN,aACE;KACH;IACD,mBAAmB;KACjB,MAAM;KACN,aACE;KACH;IACF;GACF;EACD,SAAS;GACP,aAAa;GACb,SAAS;GACT,QAAQ;GACR,mBAAmB;GACpB;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,YAAY,eAAe;GACtC,YAAY;IACV,UAAU;KACR,MAAM;KACN,aACE;KACH;IACD,cAAc;KACZ,MAAM;KACN,aACE;KACH;IACD,QAAQ;KACN,MAAM;KACN,aACE;KACH;IACD,eAAe;KACb,MAAM;KACN,aACE;KACH;IACF;GACF;EACD,SAAS;GACP,UAAU;GACV,cAAc;GACd,QAAQ;GACR,eAAe;GAChB;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW;EACT,KAAK;EACL,KAAK;EACN,EACF;CACD,WAAW;EACT,mBACE;EACF,gBAAgB;GAAC;GAAiB;GAAqB;GAAgB;EACxE;CACF;AAED,SAAgB,0BACd,UACyB;AACzB,QAAO,SAAS,SAAS,sBAAsB"}
|
|
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
|
|
|
4
4
|
declare const qdrantIntegrationSpec: IntegrationSpec;
|
|
5
5
|
declare function registerQdrantIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { qdrantIntegrationSpec, registerQdrantIntegration };
|
|
7
|
+
export { qdrantIntegrationSpec, registerQdrantIntegration };
|
|
8
|
+
//# sourceMappingURL=qdrant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant.d.ts","names":[],"sources":["../../../src/integrations/providers/qdrant.ts"],"sourcesContent":[],"mappings":";;;cAGa,uBAAuB;iBAgFpB,yBAAA,WACJ,0BACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant.js","names":["qdrantIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/qdrant.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const qdrantIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'vectordb.qdrant',\n version: 1,\n category: 'vector-db',\n displayName: 'Qdrant',\n title: 'Qdrant Vector Database',\n description: 'Qdrant integration for vector search and embeddings storage.',\n domain: 'ai',\n owners: ['platform.ai'],\n tags: ['vector-db', 'search'],\n stability: StabilityEnum.Experimental,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [\n { key: 'vector-db.search', version: 1 },\n { key: 'vector-db.storage', version: 1 },\n ],\n requires: [\n {\n key: 'ai.embeddings',\n optional: true,\n reason:\n 'Required if vectors are generated via hosted embedding services',\n },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n apiUrl: {\n type: 'string',\n description:\n 'Base URL for the Qdrant instance (e.g., https://qdrant.example.com).',\n },\n collectionPrefix: {\n type: 'string',\n description:\n 'Prefix applied to all collection names for this tenant.',\n },\n },\n },\n example: {\n apiUrl: 'https://qdrant.example.com',\n collectionPrefix: 'tenant_',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n properties: {\n apiKey: {\n type: 'string',\n description: 'API key or token when authentication is enabled.',\n },\n },\n },\n example: {\n apiKey: 'qdrant-api-key',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 4000,\n },\n docsUrl: 'https://qdrant.tech/documentation/quick-start/',\n constraints: {\n quotas: {\n collections: 100,\n pointsPerCollection: 1_000_000,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Provide the HTTPS endpoint of your Qdrant cluster and generate an API key with read/write access to the collections that will be managed.',\n },\n};\n\nexport function registerQdrantIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(qdrantIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,wBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,cAAc;EACvB,MAAM,CAAC,aAAa,SAAS;EAC7B,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACZ,UAAU,CACR;GAAE,KAAK;GAAoB,SAAS;GAAG,EACvC;GAAE,KAAK;GAAqB,SAAS;GAAG,CACzC;EACD,UAAU,CACR;GACE,KAAK;GACL,UAAU;GACV,QACE;GACH,CACF;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,QAAQ;KACN,MAAM;KACN,aACE;KACH;IACD,kBAAkB;KAChB,MAAM;KACN,aACE;KACH;IACF;GACF;EACD,SAAS;GACP,QAAQ;GACR,kBAAkB;GACnB;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY,EACV,QAAQ;IACN,MAAM;IACN,aAAa;IACd,EACF;GACF;EACD,SAAS,EACP,QAAQ,kBACT;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,QAAQ;EACN,aAAa;EACb,qBAAqB;EACtB,EACF;CACD,WAAW,EACT,mBACE,6IACH;CACF;AAED,SAAgB,0BACd,UACyB;AACzB,QAAO,SAAS,SAAS,sBAAsB"}
|
|
@@ -8,4 +8,5 @@ import { IntegrationSpecRegistry } from "../spec.js";
|
|
|
8
8
|
*/
|
|
9
9
|
declare function createDefaultIntegrationSpecRegistry(): IntegrationSpecRegistry;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { createDefaultIntegrationSpecRegistry };
|
|
11
|
+
export { createDefaultIntegrationSpecRegistry };
|
|
12
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","names":[],"sources":["../../../src/integrations/providers/registry.ts"],"sourcesContent":[],"mappings":";;;;;;AAiBA;;iBAAgB,oCAAA,CAAA,GAAwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","names":[],"sources":["../../../src/integrations/providers/registry.ts"],"sourcesContent":["import { IntegrationSpecRegistry } from '../spec';\n\nimport { registerStripeIntegration } from './stripe';\nimport { registerPostmarkIntegration } from './postmark';\nimport { registerQdrantIntegration } from './qdrant';\nimport { registerMistralIntegration } from './mistral';\nimport { registerElevenLabsIntegration } from './elevenlabs';\nimport { registerGmailIntegration } from './gmail';\nimport { registerGoogleCalendarIntegration } from './google-calendar';\nimport { registerTwilioSmsIntegration } from './twilio-sms';\nimport { registerGcsStorageIntegration } from './gcs-storage';\nimport { registerPowensIntegration } from './powens';\n\n/**\n * Creates a registry containing all IntegrationSpec providers shipped by\n * `@lssm/lib.contracts`.\n */\nexport function createDefaultIntegrationSpecRegistry(): IntegrationSpecRegistry {\n const registry = new IntegrationSpecRegistry();\n\n registerStripeIntegration(registry);\n registerPostmarkIntegration(registry);\n registerQdrantIntegration(registry);\n registerMistralIntegration(registry);\n registerElevenLabsIntegration(registry);\n registerGmailIntegration(registry);\n registerGoogleCalendarIntegration(registry);\n registerTwilioSmsIntegration(registry);\n registerGcsStorageIntegration(registry);\n registerPowensIntegration(registry);\n\n return registry;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,SAAgB,uCAAgE;CAC9E,MAAM,WAAW,IAAI,yBAAyB;AAE9C,2BAA0B,SAAS;AACnC,6BAA4B,SAAS;AACrC,2BAA0B,SAAS;AACnC,4BAA2B,SAAS;AACpC,+BAA8B,SAAS;AACvC,0BAAyB,SAAS;AAClC,mCAAkC,SAAS;AAC3C,8BAA6B,SAAS;AACtC,+BAA8B,SAAS;AACvC,2BAA0B,SAAS;AAEnC,QAAO"}
|
|
@@ -31,4 +31,5 @@ interface SmsProvider {
|
|
|
31
31
|
getDeliveryStatus(messageId: string): Promise<SmsDeliveryStatus>;
|
|
32
32
|
}
|
|
33
33
|
//#endregion
|
|
34
|
-
export { SendSmsInput, SmsDeliveryStatus, SmsMessage, SmsProvider };
|
|
34
|
+
export { SendSmsInput, SmsDeliveryStatus, SmsMessage, SmsProvider };
|
|
35
|
+
//# sourceMappingURL=sms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sms.d.ts","names":[],"sources":["../../../src/integrations/providers/sms.ts"],"sourcesContent":[],"mappings":";UAAiB,UAAA;EAAA,EAAA,EAAA,MAAA;EAsBA,EAAA,EAAA,MAAA;EAOA,IAAA,EAAA,MAAA;EAOA,IAAA,EAAA,MAAA;EACA,MAAA,EAAA,QAAA,GAAA,SAAA,GAAA,MAAA,GAAA,WAAA,GAAA,aAAA,GAAA,QAAA;EAAuB,iBAAA,CAAA,EAAA,MAAA;EAAR,OAAA,CAAA,EAAA,MAAA;EACgB,KAAA,CAAA,EAAA,MAAA;EAAR,aAAA,CAAA,EAAA,MAAA;EAAO,MAAA,CAAA,EAtBpC,IAsBoC;gBArB/B;;;;UAKC,YAAA;;;;aAIJ;;UAGI,iBAAA;UACP;;;aAGG;;UAGI,WAAA;iBACA,eAAe,QAAQ;wCACA,QAAQ"}
|
|
@@ -57,4 +57,5 @@ interface ObjectStorageProvider {
|
|
|
57
57
|
listObjects(query: ListObjectsQuery): Promise<ListObjectsResult>;
|
|
58
58
|
}
|
|
59
59
|
//#endregion
|
|
60
|
-
export { DeleteObjectInput, GetObjectResult, ListObjectsQuery, ListObjectsResult, ObjectStorageProvider, PutObjectInput, SignedUrlOptions, StorageObjectBody, StorageObjectMetadata };
|
|
60
|
+
export { DeleteObjectInput, GetObjectResult, ListObjectsQuery, ListObjectsResult, ObjectStorageProvider, PutObjectInput, SignedUrlOptions, StorageObjectBody, StorageObjectMetadata };
|
|
61
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","names":[],"sources":["../../../src/integrations/providers/storage.ts"],"sourcesContent":[],"mappings":";UAAiB,qBAAA;EAAA,MAAA,EAAA,MAAA;EAWL,GAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,MAAA;EAC8B,WAAA,CAAA,EAAA,MAAA;EAAd,IAAA,CAAA,EAAA,MAAA;EAAa,QAAA,CAAA,EAAA,MAAA;EAE7B,YAAA,CAAA,EARK,IAQU;EAEV,QAAA,CAAA,EATJ,MASkB,CAAA,MAAA,EAAA,MAAA,CAAA;;AAGV,KATT,iBAAA,GASS;EAER,IAAA,EAVD,UAUC;EAAM,MAAA,CAAA,EAAA,KAAA;AAInB,CAAA,GAAiB;EAKA,IAAA,CAAA,EAAA,KAAA;EAQA,MAAA,EA1BW,aA0BK,CA1BS,UA0BT,CAAA;AAOjC,CAAA;AAKiB,KApCL,eAAA,GAAkB,qBAoCQ,GApCgB,iBAoChB;AACnB,UAnCF,cAAA,CAmCE;EAAyB,MAAA,EAAA,MAAA;EAAR,GAAA,EAAA,MAAA;EACjB,IAAA,EAjCX,UAiCW,GAjCE,WAiCF;EAA4B,WAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EA/B1B,MA+B0B,CAAA,MAAA,EAAA,MAAA,CAAA;EACjB,UAAA,CAAA,EAAA,OAAA;;AAET,UA9BI,iBAAA,CA8BJ;EAC0B,MAAA,EAAA,MAAA;EAAlC,GAAA,EAAA,MAAA;;AAC2C,UA3B/B,gBAAA,CA2B+B;EAAR,MAAA,EAAA,MAAA;EAAO,GAAA,EAAA,MAAA;;;;;UAnB9B,gBAAA;;;;;;UAOA,iBAAA;WACN;;;UAIM,qBAAA;mBACE,iBAAiB,QAAQ;mBACzB,oBAAoB,QAAQ;sBACzB,oBAAoB;6BAE7B,mBACR;;eAAkC;;qBAClB,mBAAmB,QAAQ"}
|
|
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
|
|
|
4
4
|
declare const stripeIntegrationSpec: IntegrationSpec;
|
|
5
5
|
declare function registerStripeIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerStripeIntegration, stripeIntegrationSpec };
|
|
7
|
+
export { registerStripeIntegration, stripeIntegrationSpec };
|
|
8
|
+
//# sourceMappingURL=stripe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.d.ts","names":[],"sources":["../../../src/integrations/providers/stripe.ts"],"sourcesContent":[],"mappings":";;;cAIa,uBAAuB;AAAvB,iBAkFG,yBAAA,CAlFoB,QAgFnC,EAGW,uBAHX,CAAA,EAIE,uBAJF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.js","names":["stripeIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/stripe.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec } from '../spec';\nimport type { IntegrationSpecRegistry } from '../spec';\n\nexport const stripeIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'payments.stripe',\n version: 1,\n category: 'payments',\n displayName: 'Stripe',\n title: 'Stripe Payments',\n description:\n 'Stripe integration for payment processing, charges, and payouts.',\n domain: 'payments',\n owners: ['platform.payments'],\n tags: ['payments', 'psp'],\n stability: StabilityEnum.Stable,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [{ key: 'payments.psp', version: 1 }],\n requires: [\n {\n key: 'platform.webhooks',\n optional: true,\n reason: 'Recommended for reliable event ingestion',\n },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n accountId: {\n type: 'string',\n description: 'Connected account ID when using Stripe Connect (BYOK).',\n },\n region: {\n type: 'string',\n description: 'Optional Stripe region or data residency hint.',\n },\n },\n },\n example: {\n accountId: 'acct_123',\n region: 'us-east-1',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['apiKey', 'webhookSecret'],\n properties: {\n apiKey: {\n type: 'string',\n description: 'Stripe secret API key (sk_live_... or sk_test_...).',\n },\n webhookSecret: {\n type: 'string',\n description: 'Signing secret for webhook verification.',\n },\n },\n },\n example: {\n apiKey: 'sk_live_***',\n webhookSecret: 'whsec_***',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 5000,\n },\n docsUrl: 'https://stripe.com/docs/api',\n constraints: {\n rateLimit: {\n rpm: 1000,\n rph: 20000,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Create a restricted Stripe API key with write access to Charges and provide a webhook signing secret.',\n requiredScopes: ['charges:write', 'customers:read'],\n },\n};\n\nexport function registerStripeIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(stripeIntegrationSpec);\n}\n"],"mappings":";;;AAIA,MAAaA,wBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,oBAAoB;EAC7B,MAAM,CAAC,YAAY,MAAM;EACzB,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACZ,UAAU,CAAC;GAAE,KAAK;GAAgB,SAAS;GAAG,CAAC;EAC/C,UAAU,CACR;GACE,KAAK;GACL,UAAU;GACV,QAAQ;GACT,CACF;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,WAAW;KACT,MAAM;KACN,aAAa;KACd;IACD,QAAQ;KACN,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,WAAW;GACX,QAAQ;GACT;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,UAAU,gBAAgB;GACrC,YAAY;IACV,QAAQ;KACN,MAAM;KACN,aAAa;KACd;IACD,eAAe;KACb,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,QAAQ;GACR,eAAe;GAChB;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW;EACT,KAAK;EACL,KAAK;EACN,EACF;CACD,WAAW;EACT,mBACE;EACF,gBAAgB,CAAC,iBAAiB,iBAAiB;EACpD;CACF;AAED,SAAgB,0BACd,UACyB;AACzB,QAAO,SAAS,SAAS,sBAAsB"}
|
|
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
|
|
|
4
4
|
declare const twilioSmsIntegrationSpec: IntegrationSpec;
|
|
5
5
|
declare function registerTwilioSmsIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };
|
|
7
|
+
export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };
|
|
8
|
+
//# sourceMappingURL=twilio-sms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twilio-sms.d.ts","names":[],"sources":["../../../src/integrations/providers/twilio-sms.ts"],"sourcesContent":[],"mappings":";;;cAGa,0BAA0B;iBAoEvB,4BAAA,WACJ,0BACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twilio-sms.js","names":["twilioSmsIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/twilio-sms.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const twilioSmsIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'sms.twilio',\n version: 1,\n category: 'sms',\n displayName: 'Twilio SMS',\n title: 'Twilio Messaging',\n description:\n 'Twilio SMS integration for transactional and notification messaging.',\n domain: 'communications',\n owners: ['platform.messaging'],\n tags: ['sms', 'messaging'],\n stability: StabilityEnum.Stable,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [{ key: 'sms.outbound', version: 1 }],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n fromNumber: {\n type: 'string',\n description: 'Default Twilio phone number used as sender.',\n },\n },\n },\n example: {\n fromNumber: '+15551234567',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['accountSid', 'authToken'],\n properties: {\n accountSid: {\n type: 'string',\n description: 'Twilio Account SID.',\n },\n authToken: {\n type: 'string',\n description: 'Twilio Auth Token.',\n },\n },\n },\n example: {\n accountSid: 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',\n authToken: 'auth-token',\n },\n },\n healthCheck: {\n method: 'custom',\n timeoutMs: 3000,\n },\n docsUrl: 'https://www.twilio.com/docs/sms/api',\n constraints: {\n rateLimit: {\n rpm: 200,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Provide a Twilio account SID, auth token, and verify the outbound sending numbers used by the integration.',\n },\n};\n\nexport function registerTwilioSmsIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(twilioSmsIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,2BAA4C;CACvD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,OAAO,YAAY;EAC1B,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EACZ,UAAU,CAAC;EAAE,KAAK;EAAgB,SAAS;EAAG,CAAC,EAChD;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY,EACV,YAAY;IACV,MAAM;IACN,aAAa;IACd,EACF;GACF;EACD,SAAS,EACP,YAAY,gBACb;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,cAAc,YAAY;GACrC,YAAY;IACV,YAAY;KACV,MAAM;KACN,aAAa;KACd;IACD,WAAW;KACT,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,YAAY;GACZ,WAAW;GACZ;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW,EACT,KAAK,KACN,EACF;CACD,WAAW,EACT,mBACE,8GACH;CACF;AAED,SAAgB,6BACd,UACyB;AACzB,QAAO,SAAS,SAAS,yBAAyB"}
|
|
@@ -40,4 +40,5 @@ interface VectorStoreProvider {
|
|
|
40
40
|
delete(request: VectorDeleteRequest): Promise<void>;
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|
|
43
|
-
export { VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest };
|
|
43
|
+
export { VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest };
|
|
44
|
+
//# sourceMappingURL=vector-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-store.d.ts","names":[],"sources":["../../../src/integrations/providers/vector-store.ts"],"sourcesContent":[],"mappings":";;;UAEiB,cAAA;;EAAA,MAAA,EAEP,eAFqB;EAErB,OAAA,CAAA,EACE,MADF,CAAA,MAAA,EAAA,OAAA,CAAA;EACE,SAAA,CAAA,EAAA,MAAA;EAEE,SAAA,CAAA,EAAA,IAAA;;AAGG,UAAA,mBAAA,CAAmB;EAMnB,UAAA,EAAA,MAAA;EAMA,SAAA,EAVJ,cAUqB,EAAA;EAUjB,WAAA,CAAA,EAAA,OAAkB;AAQnC;AACkB,UAzBD,mBAAA,CAyBC;EAAsB,UAAA,EAAA,MAAA;EACxB,GAAA,EAAA,MAAA,EAAA;EAA4B,SAAA,CAAA,EAAA,MAAA;;AAC1B,UArBD,iBAAA,CAqBC;EAAsB,UAAA,EAAA,MAAA;EAAO,MAAA,EAnBrC,eAmBqC;;;WAhBpC;;;;UAKM,kBAAA;;;YAGL;WACD;;;UAIM,mBAAA;kBACC,sBAAsB;gBACxB,oBAAoB,QAAQ;kBAC1B,sBAAsB"}
|
|
@@ -31,4 +31,5 @@ interface VoiceProvider {
|
|
|
31
31
|
synthesize(input: VoiceSynthesisInput): Promise<VoiceSynthesisResult>;
|
|
32
32
|
}
|
|
33
33
|
//#endregion
|
|
34
|
-
export { Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult };
|
|
34
|
+
export { Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult };
|
|
35
|
+
//# sourceMappingURL=voice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.d.ts","names":[],"sources":["../../../src/integrations/providers/voice.ts"],"sourcesContent":[],"mappings":";UAAiB,KAAA;EAAA,EAAA,EAAA,MAAK;EAUL,IAAA,EAAA,MAAA;EAYA,WAAA,CAAA,EAAA,MAAA;EAQA,QAAA,CAAA,EAAA,MAAa;EACN,MAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,SAAA;EAAR,UAAA,CAAA,EAAA,MAAA;EACI,QAAA,CAAA,EAzBP,MAyBO,CAAA,MAAA,EAAA,MAAA,CAAA;;AAAsB,UAtBzB,mBAAA,CAsByB;EAAO,IAAA,EAAA,MAAA;;;;;;;;aAbpC;;UAGI,oBAAA;SACR;;;;;;UAOQ,aAAA;gBACD,QAAQ;oBACJ,sBAAsB,QAAQ"}
|
|
@@ -96,4 +96,5 @@ declare class IntegrationCallGuard {
|
|
|
96
96
|
declare function ensureConnectionReady(integration: ResolvedIntegration): void;
|
|
97
97
|
declare function connectionStatusLabel(status: ConnectionStatus): string;
|
|
98
98
|
//#endregion
|
|
99
|
-
export { IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, connectionStatusLabel, ensureConnectionReady };
|
|
99
|
+
export { IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, connectionStatusLabel, ensureConnectionReady };
|
|
100
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","names":[],"sources":["../../src/integrations/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;UASiB,wBAAA;;EAAA,gBAAA,EAAA,MAAA;EAMA,aAAA,EAAA,MAAA;AAgBjB;AAIY,UApBK,yBAAA,CAoBsB;EAEtB,QAAA,EAAA,MAAA;EAKT,KAAA,EAAA,MAAA;EACM,WAAA,CAAA,EAAA,MAAA;EACI,MAAA,CAAA,EAAA,MAAA;EAET,cAAA,EAAA,MAAA;EACE,kBAAA,EAAA,MAAA;EAAM,YAAA,EAAA,MAAA;EAGA,MAAA,EAAA,SAAA,GAAA,OAAsB;EAWtB,UAAA,CAAA,EAAA,MAAA;EAOA,SAAA,CAAA,EAAA,MAAA;EAER,YAAA,CAAA,EAAA,MAAA;EACC,UAAA,EA5CI,IA4CJ;EAIS,QAAA,CAAA,EA/CN,MA+CM,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA,CAAA;;AAKF,UAjDA,2BAAA,CAiD2B;EAC9B,MAAA,CAAA,KAAA,EAjDE,yBAiDF,CAAA,EAjD8B,OAiD9B,CAAA,IAAA,CAAA,GAAA,IAAA;;AAKA,KAnDF,2BAAA,GAmDE,SAAA,GAAA,OAAA;AAAI,UAjDD,kBAAA,CAiDC;EAML,QAAA,EAAA,MAAA;EASwB,KAAA,EAAA,MAAA;EACxB,WAAA,CAAA,EAAA,MAAA;EAyBO,MAAA,CAAA,EAAA,MAAA;EAEF,IAAA,EAvFV,eAuFU;EACH,UAAA,EAvFD,qBAuFC;EACE,cAAA,EAvFC,cAuFD;EAAR,eAAA,EAAA,MAAA;EAC0B,KAAA,EAtF1B,wBAsF0B;EAAtB,MAAA,CAAA,EArFF,MAqFE,CAAA,MAAA,EAAA,OAAA,CAAA;;AAAD,UAlFK,sBAAA,CAkFL;EAkPI,QAAA,EAAA,MAAA;EASA,KAAA,EAAA,MAAA;;;;;;;;UAlUC,oBAAA;;;;;;UAOA;;SAER;UACC;;;;mBAIS;;;;UAKF,2BAAA;cACH;;;;0BAIY;cACZ;;cAMD,oBAAA;;;;;;;;8BASwB,0BACxB;0FAyBO,0CAEF,gCACH,2BACN,QAAQ,KACZ,QAAQ,sBAAsB;;;;;;;;;iBAkPnB,qBAAA,cAAmC;iBASnC,qBAAA,SAA8B"}
|
|
@@ -183,4 +183,5 @@ function connectionStatusLabel(status) {
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
//#endregion
|
|
186
|
-
export { IntegrationCallGuard, connectionStatusLabel, ensureConnectionReady };
|
|
186
|
+
export { IntegrationCallGuard, connectionStatusLabel, ensureConnectionReady };
|
|
187
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","names":["secretProvider: SecretProvider"],"sources":["../../src/integrations/runtime.ts"],"sourcesContent":["import { performance } from 'node:perf_hooks';\nimport type {\n ResolvedAppConfig,\n ResolvedIntegration,\n} from '../app-config/runtime';\nimport type { ConnectionStatus, IntegrationConnection } from './connection';\nimport type { IntegrationSpec } from './spec';\nimport type { SecretProvider, SecretValue } from './secrets/provider';\n\nexport interface IntegrationTraceMetadata {\n blueprintName: string;\n blueprintVersion: number;\n configVersion: number;\n}\n\nexport interface IntegrationTelemetryEvent {\n tenantId: string;\n appId: string;\n environment?: string;\n slotId?: string;\n integrationKey: string;\n integrationVersion: number;\n connectionId: string;\n status: 'success' | 'error';\n durationMs?: number;\n errorCode?: string;\n errorMessage?: string;\n occurredAt: Date;\n metadata?: Record<string, string | number | boolean>;\n}\n\nexport interface IntegrationTelemetryEmitter {\n record(event: IntegrationTelemetryEvent): Promise<void> | void;\n}\n\nexport type IntegrationInvocationStatus = 'success' | 'error';\n\nexport interface IntegrationContext {\n tenantId: string;\n appId: string;\n environment?: string;\n slotId?: string;\n spec: IntegrationSpec;\n connection: IntegrationConnection;\n secretProvider: SecretProvider;\n secretReference: string;\n trace: IntegrationTraceMetadata;\n config?: Record<string, unknown>;\n}\n\nexport interface IntegrationCallContext {\n tenantId: string;\n appId: string;\n environment?: string;\n blueprintName: string;\n blueprintVersion: number;\n configVersion: number;\n slotId: string;\n operation: string;\n}\n\nexport interface IntegrationCallError {\n code: string;\n message: string;\n retryable: boolean;\n cause?: unknown;\n}\n\nexport interface IntegrationCallResult<T> {\n success: boolean;\n data?: T;\n error?: IntegrationCallError;\n metadata: {\n latencyMs: number;\n connectionId: string;\n ownershipMode: IntegrationConnection['ownershipMode'];\n attempts: number;\n };\n}\n\nexport interface IntegrationCallGuardOptions {\n telemetry?: IntegrationTelemetryEmitter;\n maxAttempts?: number;\n backoffMs?: number;\n shouldRetry?: (error: unknown, attempt: number) => boolean;\n sleep?: (ms: number) => Promise<void>;\n now?: () => Date;\n}\n\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_BACKOFF_MS = 250;\n\nexport class IntegrationCallGuard {\n private readonly telemetry?: IntegrationTelemetryEmitter;\n private readonly maxAttempts: number;\n private readonly backoffMs: number;\n private readonly shouldRetry: (error: unknown, attempt: number) => boolean;\n private readonly sleep: (ms: number) => Promise<void>;\n private readonly now: () => Date;\n\n constructor(\n private readonly secretProvider: SecretProvider,\n options: IntegrationCallGuardOptions = {}\n ) {\n this.telemetry = options.telemetry;\n this.maxAttempts = Math.max(1, options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n this.backoffMs = options.backoffMs ?? DEFAULT_BACKOFF_MS;\n this.shouldRetry =\n options.shouldRetry ??\n ((error: unknown) =>\n typeof error === 'object' &&\n error !== null &&\n 'retryable' in error &&\n Boolean((error as { retryable?: unknown }).retryable));\n this.sleep =\n options.sleep ??\n ((ms: number) =>\n ms <= 0\n ? Promise.resolve()\n : new Promise((resolve) => setTimeout(resolve, ms)));\n this.now = options.now ?? (() => new Date());\n }\n\n async executeWithGuards<T>(\n slotId: string,\n operation: string,\n input: unknown,\n resolvedConfig: ResolvedAppConfig,\n executor: (\n connection: IntegrationConnection,\n secrets: Record<string, string>\n ) => Promise<T>\n ): Promise<IntegrationCallResult<T>> {\n const integration = this.findIntegration(slotId, resolvedConfig);\n if (!integration) {\n return this.failure(\n {\n tenantId: resolvedConfig.tenantId,\n appId: resolvedConfig.appId,\n environment: resolvedConfig.environment,\n blueprintName: resolvedConfig.blueprintName,\n blueprintVersion: resolvedConfig.blueprintVersion,\n configVersion: resolvedConfig.configVersion,\n slotId,\n operation,\n },\n undefined,\n {\n code: 'SLOT_NOT_BOUND',\n message: `Integration slot \"${slotId}\" is not bound for tenant \"${resolvedConfig.tenantId}\".`,\n retryable: false,\n },\n 0\n );\n }\n\n const status = integration.connection.status;\n if (status === 'disconnected' || status === 'error') {\n return this.failure(\n this.makeContext(slotId, operation, resolvedConfig),\n integration,\n {\n code: 'CONNECTION_NOT_READY',\n message: `Integration connection \"${integration.connection.meta.label}\" is in status \"${status}\".`,\n retryable: false,\n },\n 0\n );\n }\n\n const secrets = await this.fetchSecrets(integration.connection);\n\n let attempt = 0;\n const started = performance.now();\n while (attempt < this.maxAttempts) {\n attempt += 1;\n try {\n const data = await executor(integration.connection, secrets);\n const duration = performance.now() - started;\n this.emitTelemetry(\n this.makeContext(slotId, operation, resolvedConfig),\n integration,\n 'success',\n duration\n );\n return {\n success: true,\n data,\n metadata: {\n latencyMs: duration,\n connectionId: integration.connection.meta.id,\n ownershipMode: integration.connection.ownershipMode,\n attempts: attempt,\n },\n };\n } catch (error) {\n const duration = performance.now() - started;\n this.emitTelemetry(\n this.makeContext(slotId, operation, resolvedConfig),\n integration,\n 'error',\n duration,\n this.errorCodeFor(error),\n error instanceof Error ? error.message : String(error)\n );\n const retryable = this.shouldRetry(error, attempt);\n if (!retryable || attempt >= this.maxAttempts) {\n return {\n success: false,\n error: {\n code: this.errorCodeFor(error),\n message: error instanceof Error ? error.message : String(error),\n retryable,\n cause: error,\n },\n metadata: {\n latencyMs: duration,\n connectionId: integration.connection.meta.id,\n ownershipMode: integration.connection.ownershipMode,\n attempts: attempt,\n },\n };\n }\n await this.sleep(this.backoffMs);\n }\n }\n\n // Should never reach here due to loop logic.\n return {\n success: false,\n error: {\n code: 'UNKNOWN_ERROR',\n message: 'Integration call failed after retries.',\n retryable: false,\n },\n metadata: {\n latencyMs: performance.now() - started,\n connectionId: integration.connection.meta.id,\n ownershipMode: integration.connection.ownershipMode,\n attempts: this.maxAttempts,\n },\n };\n }\n\n private findIntegration(\n slotId: string,\n config: ResolvedAppConfig\n ): ResolvedIntegration | undefined {\n return config.integrations.find(\n (integration) => integration.slot.slotId === slotId\n );\n }\n\n private async fetchSecrets(\n connection: IntegrationConnection\n ): Promise<Record<string, string>> {\n if (!this.secretProvider.canHandle(connection.secretRef)) {\n throw new Error(\n `Secret provider \"${this.secretProvider.id}\" cannot handle reference \"${connection.secretRef}\".`\n );\n }\n const secret = await this.secretProvider.getSecret(connection.secretRef);\n return this.parseSecret(secret);\n }\n\n private parseSecret(secret: SecretValue): Record<string, string> {\n const text = new TextDecoder().decode(secret.data);\n try {\n const parsed = JSON.parse(text);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n const entries = Object.entries(parsed).filter(\n ([, value]) =>\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n );\n return Object.fromEntries(\n entries.map(([key, value]) => [key, String(value)])\n );\n }\n } catch {\n // Fall through to raw secret.\n }\n return { secret: text };\n }\n\n private emitTelemetry(\n context: IntegrationCallContext,\n integration: ResolvedIntegration | undefined,\n status: 'success' | 'error',\n durationMs: number,\n errorCode?: string,\n errorMessage?: string\n ) {\n if (!this.telemetry || !integration) return;\n this.telemetry.record({\n tenantId: context.tenantId,\n appId: context.appId,\n environment: context.environment,\n slotId: context.slotId,\n integrationKey: integration.connection.meta.integrationKey,\n integrationVersion: integration.connection.meta.integrationVersion,\n connectionId: integration.connection.meta.id,\n status,\n durationMs,\n errorCode,\n errorMessage,\n occurredAt: this.now(),\n metadata: {\n blueprint: `${context.blueprintName}.v${context.blueprintVersion}`,\n configVersion: context.configVersion,\n operation: context.operation,\n },\n });\n }\n\n private failure<T>(\n context: IntegrationCallContext,\n integration: ResolvedIntegration | undefined,\n error: IntegrationCallError,\n attempts: number\n ): IntegrationCallResult<T> {\n if (integration) {\n this.emitTelemetry(\n context,\n integration,\n 'error',\n 0,\n error.code,\n error.message\n );\n }\n return {\n success: false,\n error,\n metadata: {\n latencyMs: 0,\n connectionId: integration?.connection.meta.id ?? 'unknown',\n ownershipMode: integration?.connection.ownershipMode ?? 'managed',\n attempts,\n },\n };\n }\n\n private makeContext(\n slotId: string,\n operation: string,\n config: ResolvedAppConfig\n ): IntegrationCallContext {\n return {\n tenantId: config.tenantId,\n appId: config.appId,\n environment: config.environment,\n blueprintName: config.blueprintName,\n blueprintVersion: config.blueprintVersion,\n configVersion: config.configVersion,\n slotId,\n operation,\n };\n }\n\n private errorCodeFor(error: unknown): string {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n typeof (error as { code?: unknown }).code === 'string'\n ) {\n return (error as { code: string }).code;\n }\n return 'PROVIDER_ERROR';\n }\n}\n\nexport function ensureConnectionReady(integration: ResolvedIntegration): void {\n const status = integration.connection.status;\n if (status === 'disconnected' || status === 'error') {\n throw new Error(\n `Integration connection \"${integration.connection.meta.label}\" is in status \"${status}\".`\n );\n }\n}\n\nexport function connectionStatusLabel(status: ConnectionStatus): string {\n switch (status) {\n case 'connected':\n return 'connected';\n case 'disconnected':\n return 'disconnected';\n case 'error':\n return 'error';\n case 'unknown':\n default:\n return 'unknown';\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-secret-manager.d.ts","names":[],"sources":["../../../src/integrations/secrets/aws-secret-manager.ts"],"sourcesContent":[],"mappings":";;;;KAwBK,uBAAA,GAA0B,KAAK;KAE/B,6BAAA,GAAgC,6BAC5B;AALW,UAQV,gCAAA,CAN0B;EAE/B,MAAA,CAAA,EAAA,MAAA;EAIK,MAAA,CAAA,EAEC,uBAFD;EAeG,YAAA,CAAA,EAZI,6BAYsB;;AAchB,cAdV,yBAAA,YAAqC,cAc3B,CAAA;EAcR,SAAA,EAAA,GAAA,qBAAA;EACD,iBAAA,cAAA;EACD,iBAAA,cAAA;EAAR,iBAAA,YAAA;EAsCU,iBAAA,eAAA;EACF,WAAA,CAAA,OAAA,CAAA,EA7DU,gCA6DV;EACA,SAAA,CAAA,SAAA,EAxDU,eAwDV,CAAA,EAAA,OAAA;EAAR,SAAA,CAAA,SAAA,EA1CU,eA0CV,EAAA,OAAA,CAAA,EAzCS,kBAyCT,CAAA,EAxCA,OAwCA,CAxCQ,WAwCR,CAAA;EA4EU,SAAA,CAAA,SAAA,EA9EA,eA8EA,EAAA,OAAA,EA7EF,kBA6EE,CAAA,EA5EV,OA4EU,CA5EF,oBA4EE,CAAA;EACF,YAAA,CAAA,SAAA,EADE,eACF,EAAA,OAAA,EAAA,kBAAA,CAAA,EACR,OADQ,CACA,oBADA,CAAA;EACA,YAAA,CAAA,SAAA,EAImB,eAJnB,CAAA,EAIqC,OAJrC,CAAA,IAAA,CAAA;EAAR,QAAA,SAAA;EAI2B,QAAA,cAAA;EAAkB,QAAA,aAAA;EAxJA,QAAA,oBAAA;EAAc,QAAA,cAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-secret-manager.js","names":["code: SecretProviderError['code']"],"sources":["../../../src/integrations/secrets/aws-secret-manager.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\n\nimport {\n CreateSecretCommand,\n DeleteSecretCommand,\n GetSecretValueCommand,\n PutSecretValueCommand,\n SecretsManagerClient,\n} from '@aws-sdk/client-secrets-manager';\n\nimport {\n normalizeSecretPayload,\n parseSecretUri,\n SecretProviderError,\n} from './provider';\nimport type {\n SecretFetchOptions,\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ntype AwsSecretsManagerClient = Pick<SecretsManagerClient, 'send'>;\n\ntype AwsSecretsManagerClientConfig = ConstructorParameters<\n typeof SecretsManagerClient\n>[0];\n\ninterface AwsSecretsManagerProviderOptions {\n region?: string;\n client?: AwsSecretsManagerClient;\n clientConfig?: AwsSecretsManagerClientConfig;\n}\n\ninterface AwsSecretLocation {\n region: string;\n secretId: string;\n version?: string;\n stage?: string;\n}\n\nconst DEFAULT_DELETE_RECOVERY_DAYS = 7;\n\nexport class AwsSecretsManagerProvider implements SecretProvider {\n readonly id = 'aws-secrets-manager';\n\n private readonly explicitRegion?: string;\n private readonly injectedClient?: AwsSecretsManagerClient;\n private readonly clientConfig?: AwsSecretsManagerClientConfig;\n private readonly clientsByRegion = new Map<string, AwsSecretsManagerClient>();\n\n constructor(options: AwsSecretsManagerProviderOptions = {}) {\n this.explicitRegion = options.region;\n this.injectedClient = options.client;\n this.clientConfig = options.clientConfig;\n }\n\n canHandle(reference: SecretReference): boolean {\n try {\n const parsed = parseSecretUri(reference);\n return (\n parsed.provider === 'aws' &&\n (parsed.path === 'secretsmanager' ||\n parsed.path.startsWith('secretsmanager/'))\n );\n } catch {\n return false;\n }\n }\n\n async getSecret(\n reference: SecretReference,\n options?: SecretFetchOptions\n ): Promise<SecretValue> {\n const location = this.parseReference(reference);\n const client = this.getClient(location.region);\n\n const requestedVersion =\n options?.version ?? location.stage ?? location.version;\n const input = {\n SecretId: location.secretId,\n ...this.buildVersionSelector(requestedVersion),\n };\n\n try {\n const result = await client.send(new GetSecretValueCommand(input));\n const data = extractAwsSecretBytes(result, reference, this.id);\n return {\n data,\n version:\n typeof result.VersionId === 'string' && result.VersionId\n ? result.VersionId\n : requestedVersion,\n metadata: {\n region: location.region,\n secretId: location.secretId,\n ...(requestedVersion ? { requestedVersion } : {}),\n },\n retrievedAt: new Date(),\n };\n } catch (error) {\n throw toAwsSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'getSecret',\n });\n }\n }\n\n async setSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n const location = this.parseReference(reference);\n const client = this.getClient(location.region);\n const bytes = normalizeSecretPayload(payload);\n\n try {\n const result = await client.send(\n new PutSecretValueCommand({\n SecretId: location.secretId,\n SecretBinary: bytes,\n })\n );\n\n const versionId =\n typeof result.VersionId === 'string' && result.VersionId\n ? result.VersionId\n : 'latest';\n\n return {\n reference: this.buildReference(location.region, location.secretId, {\n version: versionId,\n }),\n version: versionId,\n };\n } catch (error) {\n if (!isAwsNotFound(error)) {\n throw toAwsSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'putSecretValue',\n });\n }\n\n // Secret doesn't exist yet: create it when reference is name-like.\n if (looksLikeAwsArn(location.secretId)) {\n throw new SecretProviderError({\n message: `Secret not found: ${location.secretId}`,\n provider: this.id,\n reference,\n code: 'NOT_FOUND',\n cause: error,\n });\n }\n\n try {\n const created = await client.send(\n new CreateSecretCommand({\n Name: location.secretId,\n SecretBinary: bytes,\n })\n );\n\n const versionId =\n typeof created.VersionId === 'string' && created.VersionId\n ? created.VersionId\n : 'latest';\n\n return {\n reference: this.buildReference(location.region, location.secretId, {\n version: versionId,\n }),\n version: versionId,\n };\n } catch (creationError) {\n throw toAwsSecretProviderError({\n error: creationError,\n provider: this.id,\n reference,\n operation: 'createSecret',\n });\n }\n }\n }\n\n async rotateSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.setSecret(reference, payload);\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n const location = this.parseReference(reference);\n const client = this.getClient(location.region);\n\n try {\n await client.send(\n new DeleteSecretCommand({\n SecretId: location.secretId,\n RecoveryWindowInDays: DEFAULT_DELETE_RECOVERY_DAYS,\n })\n );\n } catch (error) {\n throw toAwsSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'deleteSecret',\n });\n }\n }\n\n private getClient(region: string): AwsSecretsManagerClient {\n if (this.injectedClient) {\n return this.injectedClient;\n }\n\n const cached = this.clientsByRegion.get(region);\n if (cached) {\n return cached;\n }\n\n const client = new SecretsManagerClient({\n ...(this.clientConfig ?? {}),\n region,\n });\n\n this.clientsByRegion.set(region, client);\n return client;\n }\n\n private parseReference(reference: SecretReference): AwsSecretLocation {\n const parsed = parseSecretUri(reference);\n if (parsed.provider !== 'aws') {\n throw new SecretProviderError({\n message: `Unsupported secret provider: ${parsed.provider}`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const segments = parsed.path.split('/').filter(Boolean);\n if (segments.length < 3 || segments[0] !== 'secretsmanager') {\n throw new SecretProviderError({\n message:\n 'Expected secret reference format aws://secretsmanager/{region}/{secretIdOrArn}[?version=...]',\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const regionCandidate = segments[1];\n const region = this.resolveRegion(regionCandidate);\n\n const secretId = segments.slice(2).join('/');\n if (!secretId) {\n throw new SecretProviderError({\n message: `Unable to resolve secret id from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n return {\n region,\n secretId,\n version: parsed.extras?.version,\n stage: parsed.extras?.stage,\n };\n }\n\n private resolveRegion(regionCandidate?: string): string {\n const region =\n regionCandidate ??\n this.explicitRegion ??\n process.env.AWS_REGION ??\n process.env.AWS_DEFAULT_REGION;\n\n if (!region) {\n throw new SecretProviderError({\n message:\n 'AWS region must be provided either in reference (aws://secretsmanager/{region}/...) or via AWS_REGION/AWS_DEFAULT_REGION.',\n provider: this.id,\n reference: 'aws://secretsmanager//',\n code: 'INVALID',\n });\n }\n\n return region;\n }\n\n private buildVersionSelector(\n version?: string\n ): { VersionStage?: string; VersionId?: string } | Record<string, never> {\n if (!version) return {};\n\n if (version === 'latest' || version === 'current') {\n return { VersionStage: 'AWSCURRENT' };\n }\n\n if (version.startsWith('AWS')) {\n return { VersionStage: version };\n }\n\n return { VersionId: version };\n }\n\n private buildReference(\n region: string,\n secretId: string,\n extras?: Record<string, string>\n ): string {\n const base = `aws://secretsmanager/${region}/${secretId}`;\n const query = extras\n ? Object.entries(extras)\n .filter(([, value]) => Boolean(value))\n .map(\n ([key, value]) =>\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n )\n .join('&')\n : '';\n\n return query ? `${base}?${query}` : base;\n }\n}\n\nfunction extractAwsSecretBytes(\n result: unknown,\n reference: SecretReference,\n provider: string\n): Uint8Array {\n if (!result || typeof result !== 'object') {\n throw new SecretProviderError({\n message: 'Invalid AWS Secrets Manager response',\n provider,\n reference,\n code: 'UNKNOWN',\n cause: result,\n });\n }\n\n const record = result as {\n SecretBinary?: unknown;\n SecretString?: unknown;\n };\n\n if (record.SecretBinary instanceof Uint8Array) {\n return record.SecretBinary;\n }\n\n if (typeof record.SecretBinary === 'string') {\n // Some runtimes may coerce binary payload to base64 string.\n return Buffer.from(record.SecretBinary, 'base64');\n }\n\n if (typeof record.SecretString === 'string') {\n return Buffer.from(record.SecretString, 'utf-8');\n }\n\n throw new SecretProviderError({\n message: 'AWS secret value is empty',\n provider,\n reference,\n code: 'NOT_FOUND',\n cause: result,\n });\n}\n\nfunction looksLikeAwsArn(secretId: string): boolean {\n return secretId.startsWith('arn:aws:secretsmanager:');\n}\n\nfunction isAwsNotFound(error: unknown): boolean {\n if (!error || typeof error !== 'object') return false;\n const err = error as {\n name?: unknown;\n $metadata?: { httpStatusCode?: unknown };\n };\n if (typeof err.$metadata?.httpStatusCode === 'number') {\n return err.$metadata.httpStatusCode === 404;\n }\n return err.name === 'ResourceNotFoundException';\n}\n\nfunction toAwsSecretProviderError(params: {\n error: unknown;\n provider: string;\n reference: SecretReference;\n operation: string;\n}): SecretProviderError {\n const { error, provider, reference, operation } = params;\n\n if (error instanceof SecretProviderError) {\n return error;\n }\n\n const httpStatusCode =\n typeof error === 'object' &&\n error !== null &&\n '$metadata' in error &&\n typeof (error as { $metadata?: unknown }).$metadata === 'object' &&\n (error as { $metadata?: { httpStatusCode?: unknown } }).$metadata\n ?.httpStatusCode;\n\n const code: SecretProviderError['code'] =\n httpStatusCode === 404\n ? 'NOT_FOUND'\n : httpStatusCode === 401 || httpStatusCode === 403\n ? 'FORBIDDEN'\n : httpStatusCode === 400\n ? 'INVALID'\n : 'UNKNOWN';\n\n const message =\n error instanceof Error\n ? error.message\n : `Unknown error during ${operation}`;\n\n return new SecretProviderError({\n message,\n provider,\n reference,\n code,\n cause: error,\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-secret-provider.d.ts","names":[],"sources":["../../../src/integrations/secrets/env-secret-provider.ts"],"sourcesContent":[],"mappings":";;;UASU,wBAAA;;AAFU;AAgBpB;;;EAc6B,OAAA,CAAA,EAtBjB,MAsBiB,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;AAwCd,cAtDF,iBAAA,YAA6B,cAsD3B,CAAA;EACD,SAAA,EAAA,GAAA,KAAA;EACD,iBAAA,OAAA;EAAR,WAAA,CAAA,OAAA,CAAA,EAnDkB,wBAmDlB;EAI2B,SAAA,CAAA,SAAA,EAnDT,eAmDS,CAAA,EAAA,OAAA;EAAkB,SAAA,CAAA,SAAA,EA9CrB,eA8CqB,CAAA,EA9CH,OA8CG,CA9CK,WA8CL,CAAA;EA5DR,SAAA,CAAA,SAAA,EA+C3B,eA/C2B,EAAA,QAAA,EAgD5B,kBAhD4B,CAAA,EAiDrC,OAjDqC,CAiD7B,oBAjD6B,CAAA;EAAc,YAAA,CAAA,SAAA,EAsDzC,eAtDyC,EAAA,QAAA,EAuD1C,kBAvD0C,CAAA,EAwDnD,OAxDmD,CAwD3C,oBAxD2C,CAAA;0BA4DxB,kBAAkB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-secret-provider.js","names":[],"sources":["../../../src/integrations/secrets/env-secret-provider.ts"],"sourcesContent":["import { parseSecretUri, SecretProviderError } from './provider';\nimport type {\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ninterface EnvSecretProviderOptions {\n /**\n * Optional map to alias secret references to environment variable names.\n * Useful when referencing secrets from other providers (e.g. gcp://...)\n * while still allowing local overrides.\n */\n aliases?: Record<string, string>;\n}\n\n/**\n * Environment-variable backed secret provider. Read-only by design.\n * Allows overriding other secret providers by deriving environment variable\n * names from secret references (or by using explicit aliases).\n */\nexport class EnvSecretProvider implements SecretProvider {\n readonly id = 'env';\n\n private readonly aliases: Record<string, string>;\n\n constructor(options: EnvSecretProviderOptions = {}) {\n this.aliases = options.aliases ?? {};\n }\n\n canHandle(reference: SecretReference): boolean {\n const envKey = this.resolveEnvKey(reference);\n return envKey !== undefined && process.env[envKey] !== undefined;\n }\n\n async getSecret(reference: SecretReference): Promise<SecretValue> {\n const envKey = this.resolveEnvKey(reference);\n if (!envKey) {\n throw new SecretProviderError({\n message: `Unable to resolve environment variable for reference \"${reference}\".`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const value = process.env[envKey];\n if (value === undefined) {\n throw new SecretProviderError({\n message: `Environment variable \"${envKey}\" not found for reference \"${reference}\".`,\n provider: this.id,\n reference,\n code: 'NOT_FOUND',\n });\n }\n\n return {\n data: Buffer.from(value, 'utf-8'),\n version: 'current',\n metadata: {\n source: 'env',\n envKey,\n },\n retrievedAt: new Date(),\n };\n }\n\n async setSecret(\n reference: SecretReference,\n _payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n throw this.forbiddenError('setSecret', reference);\n }\n\n async rotateSecret(\n reference: SecretReference,\n _payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n throw this.forbiddenError('rotateSecret', reference);\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n throw this.forbiddenError('deleteSecret', reference);\n }\n\n private resolveEnvKey(reference: SecretReference): string | undefined {\n if (!reference) {\n return undefined;\n }\n\n if (this.aliases[reference]) {\n return this.aliases[reference];\n }\n\n if (!reference.includes('://')) {\n return reference;\n }\n\n try {\n const parsed = parseSecretUri(reference);\n if (parsed.provider === 'env') {\n return parsed.path;\n }\n\n if (parsed.extras?.env) {\n return parsed.extras.env;\n }\n\n return this.deriveEnvKey(parsed.path);\n } catch {\n return reference;\n }\n }\n\n private deriveEnvKey(path: string): string | undefined {\n if (!path) return undefined;\n return path\n .split(/[\\/:\\-\\.]/)\n .filter(Boolean)\n .map((segment) =>\n segment\n .replace(/[^a-zA-Z0-9]/g, '_')\n .replace(/_{2,}/g, '_')\n .toUpperCase()\n )\n .join('_');\n }\n\n private forbiddenError(\n operation: string,\n reference: SecretReference\n ): SecretProviderError {\n return new SecretProviderError({\n message: `EnvSecretProvider is read-only. \"${operation}\" is not allowed for ${reference}.`,\n provider: this.id,\n reference,\n code: 'FORBIDDEN',\n });\n }\n}\n"],"mappings":";;;;;;;;AAuBA,IAAa,oBAAb,MAAyD;CACvD,AAAS,KAAK;CAEd,AAAiB;CAEjB,YAAY,UAAoC,EAAE,EAAE;AAClD,OAAK,UAAU,QAAQ,WAAW,EAAE;;CAGtC,UAAU,WAAqC;EAC7C,MAAM,SAAS,KAAK,cAAc,UAAU;AAC5C,SAAO,WAAW,UAAa,QAAQ,IAAI,YAAY;;CAGzD,MAAM,UAAU,WAAkD;EAChE,MAAM,SAAS,KAAK,cAAc,UAAU;AAC5C,MAAI,CAAC,OACH,OAAM,IAAI,oBAAoB;GAC5B,SAAS,yDAAyD,UAAU;GAC5E,UAAU,KAAK;GACf;GACA,MAAM;GACP,CAAC;EAGJ,MAAM,QAAQ,QAAQ,IAAI;AAC1B,MAAI,UAAU,OACZ,OAAM,IAAI,oBAAoB;GAC5B,SAAS,yBAAyB,OAAO,6BAA6B,UAAU;GAChF,UAAU,KAAK;GACf;GACA,MAAM;GACP,CAAC;AAGJ,SAAO;GACL,MAAM,OAAO,KAAK,OAAO,QAAQ;GACjC,SAAS;GACT,UAAU;IACR,QAAQ;IACR;IACD;GACD,6BAAa,IAAI,MAAM;GACxB;;CAGH,MAAM,UACJ,WACA,UAC+B;AAC/B,QAAM,KAAK,eAAe,aAAa,UAAU;;CAGnD,MAAM,aACJ,WACA,UAC+B;AAC/B,QAAM,KAAK,eAAe,gBAAgB,UAAU;;CAGtD,MAAM,aAAa,WAA2C;AAC5D,QAAM,KAAK,eAAe,gBAAgB,UAAU;;CAGtD,AAAQ,cAAc,WAAgD;AACpE,MAAI,CAAC,UACH;AAGF,MAAI,KAAK,QAAQ,WACf,QAAO,KAAK,QAAQ;AAGtB,MAAI,CAAC,UAAU,SAAS,MAAM,CAC5B,QAAO;AAGT,MAAI;GACF,MAAM,SAAS,eAAe,UAAU;AACxC,OAAI,OAAO,aAAa,MACtB,QAAO,OAAO;AAGhB,OAAI,OAAO,QAAQ,IACjB,QAAO,OAAO,OAAO;AAGvB,UAAO,KAAK,aAAa,OAAO,KAAK;UAC/B;AACN,UAAO;;;CAIX,AAAQ,aAAa,MAAkC;AACrD,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,KACJ,MAAM,YAAY,CAClB,OAAO,QAAQ,CACf,KAAK,YACJ,QACG,QAAQ,iBAAiB,IAAI,CAC7B,QAAQ,UAAU,IAAI,CACtB,aAAa,CACjB,CACA,KAAK,IAAI;;CAGd,AAAQ,eACN,WACA,WACqB;AACrB,SAAO,IAAI,oBAAoB;GAC7B,SAAS,oCAAoC,UAAU,uBAAuB,UAAU;GACxF,UAAU,KAAK;GACf;GACA,MAAM;GACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcp-secret-manager.d.ts","names":[],"sources":["../../../src/integrations/secrets/gcp-secret-manager.ts"],"sourcesContent":[],"mappings":";;;;;KAmBK,mBAAA,GAAsB;UAEjB,+BAAA;EAFL,SAAA,CAAA,EAAA,MAAA;EAEK,MAAA,CAAA,EAEC,mBAFD;EAEC,aAAA,CAAA,EACO,qBADP,CAAA,OACoC,0BADpC,CAAA,CAAA,CAAA,CAAA;EACoC,kBAAA,CAAA,EACxB,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,aAAA,CAAc,EAAA,CAAG,YADb;;AACxB,cAaV,wBAAA,YAAoC,cAbW,CAAA;EAAY,SAAA,EAAA,GAAA,oBAAA;EAa3D,iBAAA,MAAA;EAMU,iBAAA,iBAAA;EAQA,iBAAA,WAAA;EAUR,WAAA,CAAA,OAAA,CAAA,EAlBQ,+BAkBR;EAEG,SAAA,CAAA,SAAA,EAZK,eAYL,CAAA,EAAA,OAAA;EACL,SAAA,CAAA,SAAA,EAHE,eAGF,EAAA,OAyCE,CAzCF,EAAA;IAAR,OAAA,CAAA,EAAA,MAAA;EAyCU,CAAA,EAAA,WAAA,CAAA,EA1CG,WA0CH,CAAA,EAzCV,OAyCU,CAzCF,WAyCE,CAAA;EACF,SAAA,CAAA,SAAA,EADE,eACF,EAAA,OAAA,EAAA,kBAAA,CAAA,EACR,OADQ,CACA,oBADA,CAAA;EACA,YAAA,CAAA,SAAA,EAsCE,eAtCF,EAAA,OAAA,EAuCA,kBAvCA,CAAA,EAwCR,OAxCQ,CAwCA,oBAxCA,CAAA;EAAR,YAAA,CAAA,SAAA,EA4C2B,eA5C3B,CAAA,EA4C6C,OA5C7C,CAAA,IAAA,CAAA;EAsCU,QAAA,cAAA;EACF,QAAA,UAAA;EACA,QAAA,gBAAA;EAAR,QAAA,kBAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcp-secret-manager.js","names":["DEFAULT_REPLICATION: protos.google.cloud.secretmanager.v1.IReplication"],"sources":["../../../src/integrations/secrets/gcp-secret-manager.ts"],"sourcesContent":["import {\n protos,\n SecretManagerServiceClient,\n} from '@google-cloud/secret-manager';\nimport type { CallOptions } from 'google-gax';\n\nimport {\n normalizeSecretPayload,\n parseSecretUri,\n SecretProviderError,\n} from './provider';\nimport type {\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ntype SecretManagerClient = SecretManagerServiceClient;\n\ninterface GcpSecretManagerProviderOptions {\n projectId?: string;\n client?: SecretManagerClient;\n clientOptions?: ConstructorParameters<typeof SecretManagerServiceClient>[0];\n defaultReplication?: protos.google.cloud.secretmanager.v1.IReplication;\n}\n\ninterface GcpSecretLocation {\n projectId: string;\n secretId: string;\n version?: string;\n}\n\nconst DEFAULT_REPLICATION: protos.google.cloud.secretmanager.v1.IReplication = {\n automatic: {},\n};\n\nexport class GcpSecretManagerProvider implements SecretProvider {\n readonly id = 'gcp-secret-manager';\n private readonly client: SecretManagerClient;\n private readonly explicitProjectId?: string;\n private readonly replication: protos.google.cloud.secretmanager.v1.IReplication;\n\n constructor(options: GcpSecretManagerProviderOptions = {}) {\n this.client =\n options.client ??\n new SecretManagerServiceClient(options.clientOptions ?? {});\n this.explicitProjectId = options.projectId;\n this.replication = options.defaultReplication ?? DEFAULT_REPLICATION;\n }\n\n canHandle(reference: SecretReference): boolean {\n try {\n const parsed = parseSecretUri(reference);\n return parsed.provider === 'gcp';\n } catch {\n return false;\n }\n }\n\n async getSecret(\n reference: SecretReference,\n options?: { version?: string },\n callOptions?: CallOptions\n ): Promise<SecretValue> {\n const location = this.parseReference(reference);\n const secretVersionName = this.buildVersionName(location, options?.version);\n try {\n const response = await this.client.accessSecretVersion(\n {\n name: secretVersionName,\n },\n callOptions ?? {}\n );\n const [result] = response;\n const payload = result.payload;\n if (!payload?.data) {\n throw new SecretProviderError({\n message: `Secret payload empty for ${secretVersionName}`,\n provider: this.id,\n reference,\n code: 'UNKNOWN',\n });\n }\n\n const version = extractVersionFromName(result.name ?? secretVersionName);\n return {\n data: payload.data as Uint8Array,\n version,\n metadata: payload.dataCrc32c\n ? { crc32c: payload.dataCrc32c.toString() }\n : undefined,\n retrievedAt: new Date(),\n };\n } catch (error) {\n throw toSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'access',\n });\n }\n }\n\n async setSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n const location = this.parseReference(reference);\n const { secretName } = this.buildNames(location);\n const data = normalizeSecretPayload(payload);\n await this.ensureSecretExists(location, payload);\n\n try {\n const response = await this.client.addSecretVersion({\n parent: secretName,\n payload: {\n data,\n },\n });\n if (!response) {\n throw new SecretProviderError({\n message: `No version returned when adding secret version for ${secretName}`,\n provider: this.id,\n reference,\n code: 'UNKNOWN',\n });\n }\n const [version] = response;\n const versionName = version?.name ?? `${secretName}/versions/latest`;\n return {\n reference: `gcp://${versionName}`,\n version: extractVersionFromName(versionName) ?? 'latest',\n };\n } catch (error) {\n throw toSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'addSecretVersion',\n });\n }\n }\n\n async rotateSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.setSecret(reference, payload);\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n const location = this.parseReference(reference);\n const { secretName } = this.buildNames(location);\n try {\n await this.client.deleteSecret({\n name: secretName,\n });\n } catch (error) {\n throw toSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'delete',\n });\n }\n }\n\n private parseReference(reference: SecretReference): GcpSecretLocation {\n const parsed = parseSecretUri(reference);\n if (parsed.provider !== 'gcp') {\n throw new SecretProviderError({\n message: `Unsupported secret provider: ${parsed.provider}`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const segments = parsed.path.split('/').filter(Boolean);\n if (segments.length < 4 || segments[0] !== 'projects') {\n throw new SecretProviderError({\n message: `Expected secret reference format gcp://projects/{project}/secrets/{secret}[(/versions/{version})] but received \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const projectIdCandidate = segments[1] ?? this.explicitProjectId;\n if (!projectIdCandidate) {\n throw new SecretProviderError({\n message: `Unable to resolve project or secret from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const indexOfSecrets = segments.indexOf('secrets');\n if (indexOfSecrets === -1 || indexOfSecrets + 1 >= segments.length) {\n throw new SecretProviderError({\n message: `Unable to resolve project or secret from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const resolvedProjectId = projectIdCandidate;\n const secretIdCandidate = segments[indexOfSecrets + 1];\n if (!secretIdCandidate) {\n throw new SecretProviderError({\n message: `Unable to resolve secret ID from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n const secretId = secretIdCandidate;\n const indexOfVersions = segments.indexOf('versions');\n const version =\n parsed.extras?.version ??\n (indexOfVersions !== -1 && indexOfVersions + 1 < segments.length\n ? segments[indexOfVersions + 1]\n : undefined);\n\n return {\n projectId: resolvedProjectId,\n secretId,\n version,\n };\n }\n\n private buildNames(location: GcpSecretLocation): {\n secretName: string;\n projectParent: string;\n } {\n const projectId = location.projectId ?? this.explicitProjectId;\n if (!projectId) {\n throw new SecretProviderError({\n message:\n 'Project ID must be provided either in reference or provider configuration',\n provider: this.id,\n reference: `gcp://projects//secrets/${location.secretId}`,\n code: 'INVALID',\n });\n }\n\n const projectParent = `projects/${projectId}`;\n const secretName = `${projectParent}/secrets/${location.secretId}`;\n return {\n projectParent,\n secretName,\n };\n }\n\n private buildVersionName(\n location: GcpSecretLocation,\n explicitVersion?: string\n ): string {\n const { secretName } = this.buildNames(location);\n const version = explicitVersion ?? location.version ?? 'latest';\n return `${secretName}/versions/${version}`;\n }\n\n private async ensureSecretExists(\n location: GcpSecretLocation,\n payload: SecretWritePayload\n ): Promise<void> {\n const { secretName, projectParent } = this.buildNames(location);\n try {\n await this.client.getSecret({ name: secretName });\n } catch (error) {\n const providerError = toSecretProviderError({\n error,\n provider: this.id,\n reference: `gcp://${secretName}`,\n operation: 'getSecret',\n suppressThrow: true,\n });\n if (!providerError || providerError.code !== 'NOT_FOUND') {\n if (providerError) {\n throw providerError;\n }\n throw error;\n }\n try {\n await this.client.createSecret({\n parent: projectParent,\n secretId: location.secretId,\n secret: {\n replication: this.replication,\n labels: payload.labels,\n },\n });\n } catch (creationError) {\n const creationProviderError = toSecretProviderError({\n error: creationError,\n provider: this.id,\n reference: `gcp://${secretName}`,\n operation: 'createSecret',\n });\n throw creationProviderError;\n }\n }\n }\n}\n\nfunction extractVersionFromName(name: string): string | undefined {\n const segments = name.split('/').filter(Boolean);\n const index = segments.indexOf('versions');\n if (index === -1 || index + 1 >= segments.length) {\n return undefined;\n }\n return segments[index + 1];\n}\n\nfunction toSecretProviderError(params: {\n error: unknown;\n provider: string;\n reference: SecretReference;\n operation: string;\n suppressThrow?: boolean;\n}): SecretProviderError {\n const { error, provider, reference, operation, suppressThrow } = params;\n if (error instanceof SecretProviderError) {\n return error;\n }\n\n const code = deriveErrorCode(error);\n const message =\n error instanceof Error\n ? error.message\n : `Unknown error during ${operation}`;\n\n const providerError = new SecretProviderError({\n message,\n provider,\n reference,\n code,\n cause: error,\n });\n\n if (suppressThrow) {\n return providerError;\n }\n\n throw providerError;\n}\n\nfunction deriveErrorCode(error: unknown): SecretProviderError['code'] {\n if (typeof error !== 'object' || error === null) {\n return 'UNKNOWN';\n }\n\n const errorAny = error as { code?: number | string };\n const code = errorAny.code;\n if (code === 5 || code === 'NOT_FOUND') return 'NOT_FOUND';\n if (code === 6 || code === 'ALREADY_EXISTS') return 'INVALID';\n if (code === 7 || code === 'PERMISSION_DENIED' || code === 403) {\n return 'FORBIDDEN';\n }\n if (code === 3 || code === 'INVALID_ARGUMENT') return 'INVALID';\n return 'UNKNOWN';\n}\n"],"mappings":"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"}
|
|
@@ -44,4 +44,5 @@ declare class SecretProviderManager implements SecretProvider {
|
|
|
44
44
|
}
|
|
45
45
|
type SecretFetchOptions = Parameters<SecretProvider['getSecret']>[1];
|
|
46
46
|
//#endregion
|
|
47
|
-
export { SecretProviderManager, SecretProviderManagerOptions };
|
|
47
|
+
export { SecretProviderManager, SecretProviderManagerOptions };
|
|
48
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","names":[],"sources":["../../../src/integrations/secrets/manager.ts"],"sourcesContent":[],"mappings":";;;UAeU,eAAA;;AARU;AAepB;EAmBa,QAAA,CAAA,EAAA,MAAA;;AAaQ,UAhCJ,4BAAA,CAgCI;EAAyB;;;EAuBhC,EAAA,CAAA,EAAA,MAAA;EACD;;;;EA2BA,SAAA,CAAA,EAAA;IAAR,QAAA,EA1EqB,cA0ErB;IAOU,QAAA,CAAA,EAAA,MAAA;EACF,CAAA,EAAA;;;;;;;AA0EZ;;cAlJY,qBAAA,YAAiC;;;;wBAKvB;qBAQF,0BAAyB;uBAevB;uBAOR,2BACD,qBACT,QAAQ;uBAyBE,0BACF,qBACR,QAAQ;0BAOE,0BACF,qBACR,QAAQ;0BAMmB,kBAAkB;;;;KAgF7C,kBAAA,GAAqB,WAAW"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","names":["errors: SecretProviderError[]"],"sources":["../../../src/integrations/secrets/manager.ts"],"sourcesContent":["import { SecretProviderError } from './provider';\nimport type {\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ninterface ProviderRegistration {\n readonly provider: SecretProvider;\n readonly priority: number;\n readonly order: number;\n}\n\ninterface RegisterOptions {\n /**\n * Larger priority values are attempted first. Defaults to 0.\n */\n priority?: number;\n}\n\nexport interface SecretProviderManagerOptions {\n /**\n * Override manager identifier. Defaults to \"secret-provider-manager\".\n */\n id?: string;\n /**\n * Providers to pre-register. They are registered in array order with\n * descending priority (first entry wins ties).\n */\n providers?: { provider: SecretProvider; priority?: number }[];\n}\n\n/**\n * Composite secret provider that delegates to registered providers.\n * Providers are attempted in order of descending priority, respecting the\n * registration order for ties. This enables privileged overrides (e.g.\n * environment variables) while still supporting durable backends like GCP\n * Secret Manager.\n */\nexport class SecretProviderManager implements SecretProvider {\n readonly id: string;\n private readonly providers: ProviderRegistration[] = [];\n private registrationCounter = 0;\n\n constructor(options: SecretProviderManagerOptions = {}) {\n this.id = options.id ?? 'secret-provider-manager';\n const initialProviders = options.providers ?? [];\n for (const entry of initialProviders) {\n this.register(entry.provider, { priority: entry.priority });\n }\n }\n\n register(provider: SecretProvider, options: RegisterOptions = {}): this {\n this.providers.push({\n provider,\n priority: options.priority ?? 0,\n order: this.registrationCounter++,\n });\n this.providers.sort((a, b) => {\n if (a.priority !== b.priority) {\n return b.priority - a.priority;\n }\n return a.order - b.order;\n });\n return this;\n }\n\n canHandle(reference: SecretReference): boolean {\n return this.providers.some(({ provider }) =>\n safeCanHandle(provider, reference)\n );\n }\n\n async getSecret(\n reference: SecretReference,\n options?: SecretFetchOptions\n ): Promise<SecretValue> {\n const errors: SecretProviderError[] = [];\n\n for (const { provider } of this.providers) {\n if (!safeCanHandle(provider, reference)) {\n continue;\n }\n try {\n return await provider.getSecret(reference, options);\n } catch (error) {\n if (error instanceof SecretProviderError) {\n errors.push(error);\n if (error.code !== 'NOT_FOUND') {\n break;\n }\n continue;\n }\n throw error;\n }\n }\n\n throw this.composeError('getSecret', reference, errors, options?.version);\n }\n\n async setSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.delegateToFirst('setSecret', reference, (provider) =>\n provider.setSecret(reference, payload)\n );\n }\n\n async rotateSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.delegateToFirst('rotateSecret', reference, (provider) =>\n provider.rotateSecret(reference, payload)\n );\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n await this.delegateToFirst('deleteSecret', reference, (provider) =>\n provider.deleteSecret(reference)\n );\n }\n\n private async delegateToFirst<T>(\n operation: 'setSecret' | 'rotateSecret' | 'deleteSecret',\n reference: SecretReference,\n invoker: (provider: SecretProvider) => Promise<T>\n ): Promise<T> {\n const errors: SecretProviderError[] = [];\n\n for (const { provider } of this.providers) {\n if (!safeCanHandle(provider, reference)) {\n continue;\n }\n try {\n return await invoker(provider);\n } catch (error) {\n if (error instanceof SecretProviderError) {\n errors.push(error);\n continue;\n }\n throw error;\n }\n }\n\n throw this.composeError(operation, reference, errors);\n }\n\n private composeError(\n operation: string,\n reference: SecretReference,\n errors: SecretProviderError[],\n version?: string\n ): SecretProviderError {\n if (errors.length === 1) {\n const [singleError] = errors;\n if (singleError) {\n return singleError;\n }\n }\n\n const messageParts = [\n `No registered secret provider could ${operation}`,\n `reference \"${reference}\"`,\n ];\n if (version) {\n messageParts.push(`(version: ${version})`);\n }\n if (errors.length > 1) {\n messageParts.push(\n `Attempts: ${errors\n .map((error) => `${error.provider}:${error.code}`)\n .join(', ')}`\n );\n }\n\n return new SecretProviderError({\n message: messageParts.join(' '),\n provider: this.id,\n reference,\n code: errors.length > 0 ? errors[errors.length - 1]!.code : 'UNKNOWN',\n cause: errors,\n });\n }\n}\n\nfunction safeCanHandle(\n provider: SecretProvider,\n reference: SecretReference\n): boolean {\n try {\n return provider.canHandle(reference);\n } catch {\n return false;\n }\n}\n\ntype SecretFetchOptions = Parameters<SecretProvider['getSecret']>[1];\n"],"mappings":";;;;;;;;;;AAyCA,IAAa,wBAAb,MAA6D;CAC3D,AAAS;CACT,AAAiB,YAAoC,EAAE;CACvD,AAAQ,sBAAsB;CAE9B,YAAY,UAAwC,EAAE,EAAE;AACtD,OAAK,KAAK,QAAQ,MAAM;EACxB,MAAM,mBAAmB,QAAQ,aAAa,EAAE;AAChD,OAAK,MAAM,SAAS,iBAClB,MAAK,SAAS,MAAM,UAAU,EAAE,UAAU,MAAM,UAAU,CAAC;;CAI/D,SAAS,UAA0B,UAA2B,EAAE,EAAQ;AACtE,OAAK,UAAU,KAAK;GAClB;GACA,UAAU,QAAQ,YAAY;GAC9B,OAAO,KAAK;GACb,CAAC;AACF,OAAK,UAAU,MAAM,GAAG,MAAM;AAC5B,OAAI,EAAE,aAAa,EAAE,SACnB,QAAO,EAAE,WAAW,EAAE;AAExB,UAAO,EAAE,QAAQ,EAAE;IACnB;AACF,SAAO;;CAGT,UAAU,WAAqC;AAC7C,SAAO,KAAK,UAAU,MAAM,EAAE,eAC5B,cAAc,UAAU,UAAU,CACnC;;CAGH,MAAM,UACJ,WACA,SACsB;EACtB,MAAMA,SAAgC,EAAE;AAExC,OAAK,MAAM,EAAE,cAAc,KAAK,WAAW;AACzC,OAAI,CAAC,cAAc,UAAU,UAAU,CACrC;AAEF,OAAI;AACF,WAAO,MAAM,SAAS,UAAU,WAAW,QAAQ;YAC5C,OAAO;AACd,QAAI,iBAAiB,qBAAqB;AACxC,YAAO,KAAK,MAAM;AAClB,SAAI,MAAM,SAAS,YACjB;AAEF;;AAEF,UAAM;;;AAIV,QAAM,KAAK,aAAa,aAAa,WAAW,QAAQ,SAAS,QAAQ;;CAG3E,MAAM,UACJ,WACA,SAC+B;AAC/B,SAAO,KAAK,gBAAgB,aAAa,YAAY,aACnD,SAAS,UAAU,WAAW,QAAQ,CACvC;;CAGH,MAAM,aACJ,WACA,SAC+B;AAC/B,SAAO,KAAK,gBAAgB,gBAAgB,YAAY,aACtD,SAAS,aAAa,WAAW,QAAQ,CAC1C;;CAGH,MAAM,aAAa,WAA2C;AAC5D,QAAM,KAAK,gBAAgB,gBAAgB,YAAY,aACrD,SAAS,aAAa,UAAU,CACjC;;CAGH,MAAc,gBACZ,WACA,WACA,SACY;EACZ,MAAMA,SAAgC,EAAE;AAExC,OAAK,MAAM,EAAE,cAAc,KAAK,WAAW;AACzC,OAAI,CAAC,cAAc,UAAU,UAAU,CACrC;AAEF,OAAI;AACF,WAAO,MAAM,QAAQ,SAAS;YACvB,OAAO;AACd,QAAI,iBAAiB,qBAAqB;AACxC,YAAO,KAAK,MAAM;AAClB;;AAEF,UAAM;;;AAIV,QAAM,KAAK,aAAa,WAAW,WAAW,OAAO;;CAGvD,AAAQ,aACN,WACA,WACA,QACA,SACqB;AACrB,MAAI,OAAO,WAAW,GAAG;GACvB,MAAM,CAAC,eAAe;AACtB,OAAI,YACF,QAAO;;EAIX,MAAM,eAAe,CACnB,uCAAuC,aACvC,cAAc,UAAU,GACzB;AACD,MAAI,QACF,cAAa,KAAK,aAAa,QAAQ,GAAG;AAE5C,MAAI,OAAO,SAAS,EAClB,cAAa,KACX,aAAa,OACV,KAAK,UAAU,GAAG,MAAM,SAAS,GAAG,MAAM,OAAO,CACjD,KAAK,KAAK,GACd;AAGH,SAAO,IAAI,oBAAoB;GAC7B,SAAS,aAAa,KAAK,IAAI;GAC/B,UAAU,KAAK;GACf;GACA,MAAM,OAAO,SAAS,IAAI,OAAO,OAAO,SAAS,GAAI,OAAO;GAC5D,OAAO;GACR,CAAC;;;AAIN,SAAS,cACP,UACA,WACS;AACT,KAAI;AACF,SAAO,SAAS,UAAU,UAAU;SAC9B;AACN,SAAO"}
|