@wildo-ai/saas-backend-lib 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts +14 -3
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +138 -24
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +48 -4
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +102 -30
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +96 -32
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -0
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +298 -23
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +71 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +85 -5
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +21 -0
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +146 -4
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts +3 -26
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +533 -43
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +54 -13
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +263 -13
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +376 -58
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +264 -7
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +414 -5
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +16 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +65 -6
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +45 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -46
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
- package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
- package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts +43 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
- package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
- package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
- package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
- package/dist/esm/databases/services/redis.service.d.ts +27 -0
- package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/redis.service.js +29 -0
- package/dist/esm/databases/services/redis.service.js.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
- package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.js +134 -8
- package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
- package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts +41 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +60 -19
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.js +7 -1
- package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
- package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +306 -7
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +539 -45
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts +24 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js +83 -11
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +76 -13
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
- package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
- package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
- package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +214 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
- package/dist/esm/files/services/files.backend.service.d.ts +87 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +252 -19
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
- package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.js +12 -0
- package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +200 -44
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
- package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
- package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +107 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +519 -56
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
- package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +151 -41
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +308 -143
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/index.d.ts +15 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +45 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +82 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +20 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +21 -3
- package/dist/esm/inject/models/service-types.js.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.js +32 -4
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.js +235 -11
- package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts +64 -2
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +152 -6
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
- package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
- package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +108 -13
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +432 -101
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
- package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +54 -7
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +18 -8
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +20 -18
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js +1 -4
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js +1 -4
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts +3 -3
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js +26 -4
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/requests/service/websocket.service.d.ts +9 -0
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +88 -15
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
- package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
- package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
- package/dist/esm/resources/services/resource-id.backend.service.js +3 -3
- package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +91 -7
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
- package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts +47 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.js +343 -77
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +3 -23
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
- package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +9 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +77 -2
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +41 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +87 -4
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts +117 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +175 -14
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -3
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +83 -20
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
- package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
- package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +17 -9
- package/dist/esm/.builder.pid +0 -9
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Main service for sending SMS messages. Orchestrates:
|
|
5
5
|
* - Provider resolution via ExternalProvidersRegistryBackendService
|
|
6
|
-
* -
|
|
6
|
+
* - The provider's own `SMS_PROVIDER` runtime contract, read from the registry, which supplies the
|
|
7
|
+
* endpoint and the request/response projection
|
|
7
8
|
* - Raw HTTP execution (Basic Auth for Twilio)
|
|
8
|
-
* - Response parsing via SMSFeature
|
|
9
9
|
*
|
|
10
10
|
* Mirrors the pattern of EmailBackendService for consistency.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/notifications/sms/services/sms.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAEnH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AACpH,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;
|
|
1
|
+
{"version":3,"file":"sms.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/notifications/sms/services/sms.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAEnH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AACpH,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AAa1J,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA6CD,qBACa,iBAAiB;IAIS,OAAO,CAAC,QAAQ,CAAC,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,YAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IACd,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IANzG,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAG3B,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B,EAC3C,aAAa,EAAE,uBAAuB,EACtB,yBAAyB,EAAE,uCAAuC;IAKlJ;;;;;;OAMG;IACU,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6ClF;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0F1B;;;OAGG;YACW,sBAAsB;CAqDrC"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Main service for sending SMS messages. Orchestrates:
|
|
5
5
|
* - Provider resolution via ExternalProvidersRegistryBackendService
|
|
6
|
-
* -
|
|
6
|
+
* - The provider's own `SMS_PROVIDER` runtime contract, read from the registry, which supplies the
|
|
7
|
+
* endpoint and the request/response projection
|
|
7
8
|
* - Raw HTTP execution (Basic Auth for Twilio)
|
|
8
|
-
* - Response parsing via SMSFeature
|
|
9
9
|
*
|
|
10
10
|
* Mirrors the pattern of EmailBackendService for consistency.
|
|
11
11
|
*/
|
|
@@ -25,7 +25,7 @@ import { injectable, inject } from 'inversify';
|
|
|
25
25
|
import { SAAS_SERVICE_TYPES } from '../../../inject/models/service-types.js';
|
|
26
26
|
import { describeCaughtError, projectCaughtErrorLogFields } from '../../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
27
27
|
import { EngineCapability, ErrorType, WildoHeaderKeys } from '@wildo-ai/saas-models';
|
|
28
|
-
import { ExternalProvider_ExchangeProtocol_Kind, } from '@wildo-ai/external-connectors-models';
|
|
28
|
+
import { ExternalProvider_ExchangeProtocol_Kind, ProviderProtocolRuntimeKind, } from '@wildo-ai/external-connectors-models';
|
|
29
29
|
function parseSMSCredentials(secretValue) {
|
|
30
30
|
try {
|
|
31
31
|
const parsed = JSON.parse(secretValue);
|
|
@@ -142,7 +142,7 @@ let SMSBackendService = class SMSBackendService {
|
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
const smsContract = this.externalProvidersRegistry.getProviderRuntimeContract(providerId, ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER);
|
|
145
|
-
if (smsContract?.kind !==
|
|
145
|
+
if (smsContract?.kind !== ProviderProtocolRuntimeKind.SMS) {
|
|
146
146
|
throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
|
|
147
147
|
context: {
|
|
148
148
|
message: `No SMS_PROVIDER runtime contract found for provider: ${providerId}`,
|
|
@@ -151,7 +151,7 @@ let SMSBackendService = class SMSBackendService {
|
|
|
151
151
|
},
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
|
-
// The framework currently ships a single `kind:
|
|
154
|
+
// The framework currently ships a single `kind: ProviderProtocolRuntimeKind.SMS` runtime
|
|
155
155
|
// contract (Twilio). The execute-request path below assumes the
|
|
156
156
|
// Twilio REST API shape (`/Accounts/{AccountSid}/Messages.json`,
|
|
157
157
|
// Basic Auth, form-encoded body). When a second SMS adapter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms.backend.service.js","sourceRoot":"","sources":["../../../../../../src/notifications/sms/services/sms.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SMS Backend Service\n *\n * Main service for sending SMS messages. Orchestrates:\n * - Provider resolution via ExternalProvidersRegistryBackendService\n * - Request transformation via SMSFeature\n * - Raw HTTP execution (Basic Auth for Twilio)\n * - Response parsing via SMSFeature\n *\n * Mirrors the pattern of EmailBackendService for consistency.\n */\n\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { describeCaughtError, projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport type { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport { EngineCapability, ErrorType, WildoHeaderKeys } from '@wildo-ai/saas-models';\nimport {\n ExternalProvider_ExchangeProtocol_Kind,\n type StandardSMS_SendRequest,\n type StandardSMS_SendResponse,\n} from '@wildo-ai/external-connectors-models';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TYPES\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface SMSSendResult {\n success: boolean;\n messageId?: string;\n providerId?: string;\n error?: string;\n}\n\ninterface SMSProviderConfig {\n providerId: string;\n accountSid: string;\n authToken: string;\n endpoint: string;\n fromNumber?: string;\n}\n\nfunction parseSMSCredentials(secretValue: string): { accountSid: string; authToken: string } | null {\n try {\n const parsed = JSON.parse(secretValue) as {\n accountSid?: unknown;\n authToken?: unknown;\n };\n if (\n typeof parsed.accountSid === 'string'\n && parsed.accountSid.length > 0\n && typeof parsed.authToken === 'string'\n && parsed.authToken.length > 0\n ) {\n return {\n accountSid: parsed.accountSid,\n authToken: parsed.authToken,\n };\n }\n } catch {\n // Fallback below handles non-JSON encodings.\n }\n\n const [accountSid, authToken] = secretValue.includes('|')\n ? secretValue.split('|', 2)\n : secretValue.split(':', 2);\n if (accountSid && authToken) {\n return { accountSid, authToken };\n }\n\n return null;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SERVICE\n// ─────────────────────────────────────────────────────────────────────────────\n\n@injectable()\nexport class SMSBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly configService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService) private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n ) {\n this.logDebug = this.logger.debugByType('SMSBackendService');\n }\n\n /**\n * Send an SMS message.\n *\n * @param to - Recipient phone number in E.164 format\n * @param body - Message body\n * @param from - Optional sender phone number (uses provider default if not set)\n */\n public async send(to: string, body: string, from?: string): Promise<SMSSendResult> {\n const startTime = Date.now();\n\n try {\n // 1. Resolve SMS provider\n const providerConfig = this.resolveSMSProvider();\n\n // 2. Build standard request\n const request: StandardSMS_SendRequest = {\n to,\n body,\n from: from ?? providerConfig.fromNumber,\n };\n\n // 3. Execute via provider\n const response = await this.executeProviderRequest(providerConfig, request);\n\n const durationMs = Date.now() - startTime;\n this.logDebug('SMS sent successfully', {\n to,\n providerId: providerConfig.providerId,\n messageId: response.messageId,\n durationMs,\n });\n\n return {\n success: true,\n messageId: response.messageId,\n providerId: providerConfig.providerId,\n };\n } catch (error) {\n const durationMs = Date.now() - startTime;\n this.logger.error('Failed to send SMS', {\n to,\n ...projectCaughtErrorLogFields(error),\n durationMs,\n });\n\n return {\n success: false,\n error: describeCaughtError(error),\n };\n }\n }\n\n /**\n * Resolve the SMS provider for the SMS capability.\n * Mirrors EmailBackendService.resolveEmailProvider() pattern.\n */\n private resolveSMSProvider(): SMSProviderConfig {\n const providerId = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(EngineCapability.SMS);\n\n if (!providerId) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: 'No SMS provider configured for capability: SMS', capability: EngineCapability.SMS } }\n );\n }\n\n if (!this.externalProvidersRegistry.isProviderEnabled(providerId, ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER)) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `SMS provider is disabled by external provider configuration: ${providerId}`, providerId } },\n );\n }\n\n const secretRef = this.externalProvidersRegistry.getConfiguredProviderSecretRef(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n );\n const encodedCredentials = secretRef\n ? this.externalProvidersRegistry.getProviderSecret(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n secretRef,\n )\n : undefined;\n const parsedCredentials = encodedCredentials\n ? parseSMSCredentials(encodedCredentials)\n : null;\n\n if (!parsedCredentials) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n context: {\n message: `No env-provided credentials configured for SMS provider: ${providerId}`,\n providerId,\n capability: EngineCapability.SMS,\n secretRef,\n },\n }\n );\n }\n\n const smsContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n );\n if (smsContract?.kind !== 'sms') {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n context: {\n message: `No SMS_PROVIDER runtime contract found for provider: ${providerId}`,\n providerId,\n capability: EngineCapability.SMS,\n },\n }\n );\n }\n // The framework currently ships a single `kind: 'sms'` runtime\n // contract (Twilio). The execute-request path below assumes the\n // Twilio REST API shape (`/Accounts/{AccountSid}/Messages.json`,\n // Basic Auth, form-encoded body). When a second SMS adapter\n // arrives, factor the provider-specific request shape into the\n // contract via `sdkFactory` / `buildSendPayload` (mirror of the\n // email surface) — do NOT reintroduce a `provider === '<ref>'`\n // literal at this consumer site.\n const appConfig = this.configService.config as Record<string, unknown>;\n // Get optional from number from provider config\n const providersConfig = appConfig?.providerConfigurations as Record<string, Record<string, {\n fromNumber?: string;\n }> | undefined> | undefined;\n const providerConf = providersConfig?.[providerId]?.[ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER];\n\n return {\n providerId,\n accountSid: parsedCredentials.accountSid,\n authToken: parsedCredentials.authToken,\n endpoint: smsContract.baseUrl,\n fromNumber: providerConf?.fromNumber,\n };\n }\n\n /**\n * Execute the SMS send request via provider.\n * Uses raw fetch() with Basic Auth for Twilio's REST API (form-encoded).\n */\n private async executeProviderRequest(\n providerConfig: SMSProviderConfig,\n request: StandardSMS_SendRequest\n ): Promise<StandardSMS_SendResponse> {\n // Build the URL (Twilio uses /Accounts/{AccountSid}/Messages.json)\n const url = `${providerConfig.endpoint}/Accounts/${providerConfig.accountSid}/Messages.json`;\n\n // Build Basic Auth header\n const basicAuth = Buffer.from(`${providerConfig.accountSid}:${providerConfig.authToken}`).toString('base64');\n\n // Build form-encoded body from transformer output\n const formBody = new URLSearchParams({\n To: request.to,\n Body: request.body,\n ...(request.from ? { From: request.from } : {}),\n }).toString();\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n [WildoHeaderKeys.CONTENT_TYPE]: 'application/x-www-form-urlencoded',\n [WildoHeaderKeys.AUTHORIZATION]: `Basic ${basicAuth}`,\n },\n body: formBody,\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n throw this.errorBuilder.buildError(\n ErrorType.EXTERNAL_SERVICE,\n undefined,\n {\n context: {\n message: `SMS provider returned error: ${response.status}`,\n providerId: providerConfig.providerId,\n statusCode: response.status,\n errorBody,\n }\n }\n );\n }\n\n const responseData = await response.json() as Record<string, unknown>;\n const hasProviderError = responseData.error_code !== undefined && responseData.error_code !== null;\n\n return {\n success: !hasProviderError,\n messageId: String(responseData.sid ?? responseData.messageId ?? `${providerConfig.providerId}-${Date.now()}`),\n status: hasProviderError\n ? 'failed'\n : typeof responseData.status === 'string' ? responseData.status as StandardSMS_SendResponse['status'] : undefined,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"sms.backend.service.js","sourceRoot":"","sources":["../../../../../../src/notifications/sms/services/sms.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SMS Backend Service\n *\n * Main service for sending SMS messages. Orchestrates:\n * - Provider resolution via ExternalProvidersRegistryBackendService\n * - The provider's own `SMS_PROVIDER` runtime contract, read from the registry, which supplies the\n * endpoint and the request/response projection\n * - Raw HTTP execution (Basic Auth for Twilio)\n *\n * Mirrors the pattern of EmailBackendService for consistency.\n */\n\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { describeCaughtError, projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport type { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport { EngineCapability, ErrorType, WildoHeaderKeys } from '@wildo-ai/saas-models';\nimport {\n ExternalProvider_ExchangeProtocol_Kind,\n type StandardSMS_SendRequest,\n type StandardSMS_SendResponse,\n ProviderProtocolRuntimeKind,\n} from '@wildo-ai/external-connectors-models';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TYPES\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface SMSSendResult {\n success: boolean;\n messageId?: string;\n providerId?: string;\n error?: string;\n}\n\ninterface SMSProviderConfig {\n providerId: string;\n accountSid: string;\n authToken: string;\n endpoint: string;\n fromNumber?: string;\n}\n\nfunction parseSMSCredentials(secretValue: string): { accountSid: string; authToken: string } | null {\n try {\n const parsed = JSON.parse(secretValue) as {\n accountSid?: unknown;\n authToken?: unknown;\n };\n if (\n typeof parsed.accountSid === 'string'\n && parsed.accountSid.length > 0\n && typeof parsed.authToken === 'string'\n && parsed.authToken.length > 0\n ) {\n return {\n accountSid: parsed.accountSid,\n authToken: parsed.authToken,\n };\n }\n } catch {\n // Fallback below handles non-JSON encodings.\n }\n\n const [accountSid, authToken] = secretValue.includes('|')\n ? secretValue.split('|', 2)\n : secretValue.split(':', 2);\n if (accountSid && authToken) {\n return { accountSid, authToken };\n }\n\n return null;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SERVICE\n// ─────────────────────────────────────────────────────────────────────────────\n\n@injectable()\nexport class SMSBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly configService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService) private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n ) {\n this.logDebug = this.logger.debugByType('SMSBackendService');\n }\n\n /**\n * Send an SMS message.\n *\n * @param to - Recipient phone number in E.164 format\n * @param body - Message body\n * @param from - Optional sender phone number (uses provider default if not set)\n */\n public async send(to: string, body: string, from?: string): Promise<SMSSendResult> {\n const startTime = Date.now();\n\n try {\n // 1. Resolve SMS provider\n const providerConfig = this.resolveSMSProvider();\n\n // 2. Build standard request\n const request: StandardSMS_SendRequest = {\n to,\n body,\n from: from ?? providerConfig.fromNumber,\n };\n\n // 3. Execute via provider\n const response = await this.executeProviderRequest(providerConfig, request);\n\n const durationMs = Date.now() - startTime;\n this.logDebug('SMS sent successfully', {\n to,\n providerId: providerConfig.providerId,\n messageId: response.messageId,\n durationMs,\n });\n\n return {\n success: true,\n messageId: response.messageId,\n providerId: providerConfig.providerId,\n };\n } catch (error) {\n const durationMs = Date.now() - startTime;\n this.logger.error('Failed to send SMS', {\n to,\n ...projectCaughtErrorLogFields(error),\n durationMs,\n });\n\n return {\n success: false,\n error: describeCaughtError(error),\n };\n }\n }\n\n /**\n * Resolve the SMS provider for the SMS capability.\n * Mirrors EmailBackendService.resolveEmailProvider() pattern.\n */\n private resolveSMSProvider(): SMSProviderConfig {\n const providerId = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(EngineCapability.SMS);\n\n if (!providerId) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: 'No SMS provider configured for capability: SMS', capability: EngineCapability.SMS } }\n );\n }\n\n if (!this.externalProvidersRegistry.isProviderEnabled(providerId, ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER)) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `SMS provider is disabled by external provider configuration: ${providerId}`, providerId } },\n );\n }\n\n const secretRef = this.externalProvidersRegistry.getConfiguredProviderSecretRef(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n );\n const encodedCredentials = secretRef\n ? this.externalProvidersRegistry.getProviderSecret(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n secretRef,\n )\n : undefined;\n const parsedCredentials = encodedCredentials\n ? parseSMSCredentials(encodedCredentials)\n : null;\n\n if (!parsedCredentials) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n context: {\n message: `No env-provided credentials configured for SMS provider: ${providerId}`,\n providerId,\n capability: EngineCapability.SMS,\n secretRef,\n },\n }\n );\n }\n\n const smsContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n );\n if (smsContract?.kind !== ProviderProtocolRuntimeKind.SMS) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n context: {\n message: `No SMS_PROVIDER runtime contract found for provider: ${providerId}`,\n providerId,\n capability: EngineCapability.SMS,\n },\n }\n );\n }\n // The framework currently ships a single `kind: ProviderProtocolRuntimeKind.SMS` runtime\n // contract (Twilio). The execute-request path below assumes the\n // Twilio REST API shape (`/Accounts/{AccountSid}/Messages.json`,\n // Basic Auth, form-encoded body). When a second SMS adapter\n // arrives, factor the provider-specific request shape into the\n // contract via `sdkFactory` / `buildSendPayload` (mirror of the\n // email surface) — do NOT reintroduce a `provider === '<ref>'`\n // literal at this consumer site.\n const appConfig = this.configService.config as Record<string, unknown>;\n // Get optional from number from provider config\n const providersConfig = appConfig?.providerConfigurations as Record<string, Record<string, {\n fromNumber?: string;\n }> | undefined> | undefined;\n const providerConf = providersConfig?.[providerId]?.[ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER];\n\n return {\n providerId,\n accountSid: parsedCredentials.accountSid,\n authToken: parsedCredentials.authToken,\n endpoint: smsContract.baseUrl,\n fromNumber: providerConf?.fromNumber,\n };\n }\n\n /**\n * Execute the SMS send request via provider.\n * Uses raw fetch() with Basic Auth for Twilio's REST API (form-encoded).\n */\n private async executeProviderRequest(\n providerConfig: SMSProviderConfig,\n request: StandardSMS_SendRequest\n ): Promise<StandardSMS_SendResponse> {\n // Build the URL (Twilio uses /Accounts/{AccountSid}/Messages.json)\n const url = `${providerConfig.endpoint}/Accounts/${providerConfig.accountSid}/Messages.json`;\n\n // Build Basic Auth header\n const basicAuth = Buffer.from(`${providerConfig.accountSid}:${providerConfig.authToken}`).toString('base64');\n\n // Build form-encoded body from transformer output\n const formBody = new URLSearchParams({\n To: request.to,\n Body: request.body,\n ...(request.from ? { From: request.from } : {}),\n }).toString();\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n [WildoHeaderKeys.CONTENT_TYPE]: 'application/x-www-form-urlencoded',\n [WildoHeaderKeys.AUTHORIZATION]: `Basic ${basicAuth}`,\n },\n body: formBody,\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n throw this.errorBuilder.buildError(\n ErrorType.EXTERNAL_SERVICE,\n undefined,\n {\n context: {\n message: `SMS provider returned error: ${response.status}`,\n providerId: providerConfig.providerId,\n statusCode: response.status,\n errorBody,\n }\n }\n );\n }\n\n const responseData = await response.json() as Record<string, unknown>;\n const hasProviderError = responseData.error_code !== undefined && responseData.error_code !== null;\n\n return {\n success: !hasProviderError,\n messageId: String(responseData.sid ?? responseData.messageId ?? `${providerConfig.providerId}-${Date.now()}`),\n status: hasProviderError\n ? 'failed'\n : typeof responseData.status === 'string' ? responseData.status as StandardSMS_SendResponse['status'] : undefined,\n };\n }\n}\n"]}
|
package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* then iterates each provider's endpoints, and registers:
|
|
7
7
|
* POST /webhooks/{providerRef}/{endpointKey}
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* One provider declares the protocol today, and it declares one endpoint:
|
|
10
|
+
* POST /webhooks/stripe/billing
|
|
11
|
+
*
|
|
12
|
+
* A second provider registers here the moment it declares `WEBHOOK_ORIGINATOR` with its own
|
|
13
|
+
* `endpoints`; no edit to this controller is needed.
|
|
12
14
|
*
|
|
13
15
|
* This replaces manual per-provider webhook controllers (like BillingWebhookControllerBackendService).
|
|
14
16
|
*
|
|
@@ -22,6 +24,36 @@ import type { BackendProviderRegistryBackendService } from '../../../external-pr
|
|
|
22
24
|
import type { ExternalProvidersRegistryBackendService } from '../../../external-providers/services/external-providers-registry.backend.service';
|
|
23
25
|
import { AbstractControllerBackendService } from '../../../base-classes/services/controllers/abstract-controller.backend.service';
|
|
24
26
|
import type { WebhookHandlerBackendService } from '../../../notifications/webhooks/services/webhook-handler.backend.service';
|
|
27
|
+
/**
|
|
28
|
+
* Why a declared webhook endpoint did NOT get an Express route.
|
|
29
|
+
*
|
|
30
|
+
* A closed vocabulary rather than a free string: each member names a DIFFERENT
|
|
31
|
+
* missing registration, with a different remedy, and an operator reading the
|
|
32
|
+
* startup log has to be able to tell them apart. The two are independent — an
|
|
33
|
+
* endpoint can be missing either, or both.
|
|
34
|
+
*/
|
|
35
|
+
export declare enum WebhookRouteWithholdingReason {
|
|
36
|
+
/**
|
|
37
|
+
* No {@link WebhookCapabilityHandler} is registered for the endpoint's
|
|
38
|
+
* `capability`. The route would reach `handleWebhookRequest`, complete
|
|
39
|
+
* signature verification and idempotency claiming, then fail at dispatch.
|
|
40
|
+
*/
|
|
41
|
+
NO_CAPABILITY_HANDLER = "NO_CAPABILITY_HANDLER",
|
|
42
|
+
/**
|
|
43
|
+
* No `WebhookCapabilityAdapter` is registered for `providerRef:endpointKey`
|
|
44
|
+
* on {@link WebhookHandlerBackendService}. The route would fail at the very
|
|
45
|
+
* top of `processWebhook`, before signature verification.
|
|
46
|
+
*/
|
|
47
|
+
NO_ENDPOINT_ADAPTER = "NO_ENDPOINT_ADAPTER"
|
|
48
|
+
}
|
|
49
|
+
/** One declared endpoint whose route was deliberately not mounted, and why. */
|
|
50
|
+
export interface WebhookRouteWithholding {
|
|
51
|
+
providerRef: string;
|
|
52
|
+
endpointKey: string;
|
|
53
|
+
capability: string;
|
|
54
|
+
routePath: string;
|
|
55
|
+
reasons: WebhookRouteWithholdingReason[];
|
|
56
|
+
}
|
|
25
57
|
export declare class WebhookAutoControllerBackendService extends AbstractControllerBackendService {
|
|
26
58
|
private readonly backendProviderRegistry;
|
|
27
59
|
private readonly externalProvidersRegistry;
|
|
@@ -34,7 +66,21 @@ export declare class WebhookAutoControllerBackendService extends AbstractControl
|
|
|
34
66
|
* setupRoutes() reads from this cache (sync) to register routes.
|
|
35
67
|
*/
|
|
36
68
|
private loadedEndpoints;
|
|
37
|
-
/**
|
|
69
|
+
/** Route paths recorded only after Express accepted their registration. */
|
|
70
|
+
private registeredRoutePaths;
|
|
71
|
+
/**
|
|
72
|
+
* Declared endpoints whose route was WITHHELD because the capability could
|
|
73
|
+
* not be dispatched. Kept so the decision is inspectable after startup rather
|
|
74
|
+
* than only visible in a log line that has already scrolled past.
|
|
75
|
+
*/
|
|
76
|
+
private withheldRoutes;
|
|
77
|
+
/**
|
|
78
|
+
* Set once {@link registerWebhookRoutes} has run. The mount decision is taken
|
|
79
|
+
* ONCE, from the registration state at that instant, so anything registered
|
|
80
|
+
* afterwards cannot change which routes exist — see
|
|
81
|
+
* {@link registerCapabilityHandler}, which refuses to let that be silent.
|
|
82
|
+
*/
|
|
83
|
+
private routesRegistered;
|
|
38
84
|
constructor(logger: LoggerService, errorBuilder: ErrorBuilderBackendService, errorHandler: ErrorHandlerService, backendProviderRegistry: BackendProviderRegistryBackendService, externalProvidersRegistry: ExternalProvidersRegistryBackendService);
|
|
39
85
|
/**
|
|
40
86
|
* Initialize with required dependencies, pre-load endpoint configs, AND
|
|
@@ -69,6 +115,16 @@ export declare class WebhookAutoControllerBackendService extends AbstractControl
|
|
|
69
115
|
/**
|
|
70
116
|
* Register a capability handler for dispatching processed events.
|
|
71
117
|
* Called at startup by capability modules (e.g., billing module).
|
|
118
|
+
*
|
|
119
|
+
* MUST be called before {@link initialize}. `start-application` satisfies this
|
|
120
|
+
* ordering today — step 4.5 initializes capability modules (which register
|
|
121
|
+
* here) and step 4.6 initializes this controller — and the guard below exists
|
|
122
|
+
* so a future step inserted the other way round is LOUD instead of silent.
|
|
123
|
+
*
|
|
124
|
+
* The failure it catches is genuinely confusing without it: a late-registered
|
|
125
|
+
* handler works perfectly at request time (the map is read per request), but
|
|
126
|
+
* the route it would serve was already withheld at mount time, so the endpoint
|
|
127
|
+
* answers 404 while a handler for it demonstrably exists.
|
|
72
128
|
*/
|
|
73
129
|
registerCapabilityHandler(handler: WebhookCapabilityHandler): void;
|
|
74
130
|
/**
|
|
@@ -76,6 +132,13 @@ export declare class WebhookAutoControllerBackendService extends AbstractControl
|
|
|
76
132
|
* registered. Provider configuration, signature material, endpoint payloads,
|
|
77
133
|
* and handler metadata are intentionally absent.
|
|
78
134
|
*/
|
|
135
|
+
getRegisteredWebhookRoutePaths(): ReadonlyArray<string>;
|
|
136
|
+
/**
|
|
137
|
+
* Return the declared endpoints whose route was deliberately NOT mounted,
|
|
138
|
+
* with the reason. Carries no provider configuration or signature material —
|
|
139
|
+
* only the route identity and which registration was missing.
|
|
140
|
+
*/
|
|
141
|
+
getWithheldWebhookRoutes(): ReadonlyArray<WebhookRouteWithholding>;
|
|
79
142
|
/**
|
|
80
143
|
* Required by `AbstractControllerBackendService`, which invokes this hook
|
|
81
144
|
* synchronously from its constructor (`super(...)`). This controller
|
|
@@ -87,13 +150,62 @@ export declare class WebhookAutoControllerBackendService extends AbstractControl
|
|
|
87
150
|
*/
|
|
88
151
|
protected setupRoutes(): void;
|
|
89
152
|
/**
|
|
90
|
-
* Register one Express route per pre-loaded provider webhook endpoint
|
|
153
|
+
* Register one Express route per pre-loaded provider webhook endpoint —
|
|
154
|
+
* EXCEPT those whose capability cannot actually be dispatched.
|
|
155
|
+
*
|
|
91
156
|
* Invoked from `initialize()` after `webhookHandler` and `loadedEndpoints`
|
|
92
157
|
* have been populated. Idempotent-safe against an empty cache; guards on the
|
|
93
158
|
* handler so a mis-sequenced call fails visibly rather than registering dead
|
|
94
159
|
* routes.
|
|
160
|
+
*
|
|
161
|
+
* ── Why an undispatchable endpoint is WITHHELD rather than mounted ────────
|
|
162
|
+
*
|
|
163
|
+
* A declared endpoint needs two registrations that this controller does not
|
|
164
|
+
* own and cannot create: a `WebhookCapabilityAdapter` (verify + parse, on
|
|
165
|
+
* `WebhookHandlerBackendService`) and a `WebhookCapabilityHandler` (dispatch,
|
|
166
|
+
* here). Both are supplied by the capability module — for `billing`, inside
|
|
167
|
+
* `start-application.initializeBillingServices`, which is deliberately
|
|
168
|
+
* NON-FATAL: if it throws part-way, or if `billing.enabled` is false while the
|
|
169
|
+
* provider is still enabled for `WEBHOOK_ORIGINATOR`, the application boots
|
|
170
|
+
* with the provider's endpoint declared and neither registration present.
|
|
171
|
+
*
|
|
172
|
+
* Mounting a route in that state produces a 500 on every inbound delivery
|
|
173
|
+
* (`No webhook adapter registered for ...`, or `No capability handler for ...`
|
|
174
|
+
* below), and a 500 is precisely the answer that tells a vendor to RETRY — an
|
|
175
|
+
* instruction that can never be satisfied, because no retry supplies a missing
|
|
176
|
+
* startup registration. The endpoint therefore absorbs the vendor's full retry
|
|
177
|
+
* schedule and eventually gets disabled on the vendor's side, while the only
|
|
178
|
+
* local signal is a repeating error log.
|
|
179
|
+
*
|
|
180
|
+
* Not mounting says the true thing instead: this endpoint does not exist. The
|
|
181
|
+
* vendor gets a 404 rather than a retry instruction, and the operator gets one
|
|
182
|
+
* loud, remedy-naming error at startup — the moment the misconfiguration was
|
|
183
|
+
* actually introduced.
|
|
184
|
+
*
|
|
185
|
+
* REJECTED — refusing at BOOT (throwing from here). It is the shape the rest of
|
|
186
|
+
* the registry uses, and it is wrong at this site for three reasons. (1) It
|
|
187
|
+
* would not even be loud: `start-application.initializeWebhookAutoController`
|
|
188
|
+
* wraps `initialize()` in a non-fatal catch that downgrades a throw to a warn,
|
|
189
|
+
* so the net effect would be a quieter log AND the loss of every OTHER
|
|
190
|
+
* provider's working route. (2) It inverts a decision the engine already took
|
|
191
|
+
* explicitly — billing initialization failure is documented as survivable
|
|
192
|
+
* ("the app can still run without billing"); a failed optional subsystem must
|
|
193
|
+
* not become a refusal to start. (3) `billing.enabled: false` beside a
|
|
194
|
+
* registered Stripe provider is a COHERENT configuration, and refusing to boot
|
|
195
|
+
* over it would be a false alarm. The check is per-endpoint, so a capability
|
|
196
|
+
* that is wired keeps its route regardless of a sibling that is not.
|
|
95
197
|
*/
|
|
96
198
|
private registerWebhookRoutes;
|
|
199
|
+
/**
|
|
200
|
+
* Decide whether a declared endpoint can actually be served, and if not, say
|
|
201
|
+
* which registration is missing.
|
|
202
|
+
*
|
|
203
|
+
* Returns `null` when the route is dispatchable. Both prerequisites are
|
|
204
|
+
* evaluated (rather than short-circuiting on the first) so an operator gets
|
|
205
|
+
* the WHOLE remedy in one log line instead of fixing one registration and
|
|
206
|
+
* meeting the next on the following restart.
|
|
207
|
+
*/
|
|
208
|
+
private assessRouteDispatchability;
|
|
97
209
|
private handleWebhookRequest;
|
|
98
210
|
}
|
|
99
211
|
//# sourceMappingURL=webhook-auto-controller.backend.service.d.ts.map
|
package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-auto-controller.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/notifications/webhooks/controllers/webhook-auto-controller.backend.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"webhook-auto-controller.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/notifications/webhooks/controllers/webhook-auto-controller.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sCAAsC,CAAC;AAI9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AACtJ,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AAC1J,OAAO,EAAE,gCAAgC,EAAE,MAAM,0FAA0F,CAAC;AAC5I,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oFAAoF,CAAC;AAEvI;;;;;;;GAOG;AACH,oBAAY,6BAA6B;IACvC;;;;OAIG;IACH,qBAAqB,0BAA0B;IAC/C;;;;OAIG;IACH,mBAAmB,wBAAwB;CAC5C;AAED,+EAA+E;AAC/E,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,6BAA6B,EAAE,CAAC;CAC1C;AAED,qBACa,mCAAoC,SAAQ,gCAAgC;IAoC1B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAnCzG,uEAAuE;IACvE,OAAO,CAAC,kBAAkB,CAA+C;IAEzE,OAAO,CAAC,cAAc,CAA6C;IAEnE;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAsC;IAE7D,2EAA2E;IAC3E,OAAO,CAAC,oBAAoB,CAAgB;IAE5C;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAiC;IAEvD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAS;gBAGI,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B,EACxC,YAAY,EAAE,mBAAmB,EACL,uBAAuB,EAAE,qCAAqC,EAC5D,yBAAyB,EAAE,uCAAuC;IASlJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,UAAU,CACrB,cAAc,EAAE,4BAA4B,GAC3C,OAAO,CAAC,IAAI,CAAC;IAuDhB;;;;;;;;;;;;;OAaG;IACH,yBAAyB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAoBlE;;;;OAIG;IACI,8BAA8B,IAAI,aAAa,CAAC,MAAM,CAAC;IAI9D;;;;OAIG;IACI,wBAAwB,IAAI,aAAa,CAAC,uBAAuB,CAAC;IAQzE;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,OAAO,CAAC,qBAAqB;IA8D7B;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;YAwBpB,oBAAoB;CAqFnC"}
|
package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* then iterates each provider's endpoints, and registers:
|
|
7
7
|
* POST /webhooks/{providerRef}/{endpointKey}
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* One provider declares the protocol today, and it declares one endpoint:
|
|
10
|
+
* POST /webhooks/stripe/billing
|
|
11
|
+
*
|
|
12
|
+
* A second provider registers here the moment it declares `WEBHOOK_ORIGINATOR` with its own
|
|
13
|
+
* `endpoints`; no edit to this controller is needed.
|
|
12
14
|
*
|
|
13
15
|
* This replaces manual per-provider webhook controllers (like BillingWebhookControllerBackendService).
|
|
14
16
|
*
|
|
@@ -31,6 +33,29 @@ import express from 'express';
|
|
|
31
33
|
import { ExternalProvider_ExchangeProtocol_Kind, } from '@wildo-ai/external-connectors-models';
|
|
32
34
|
import { SAAS_SERVICE_TYPES } from '../../../inject/models/service-types.js';
|
|
33
35
|
import { AbstractControllerBackendService } from '../../../base-classes/services/controllers/abstract-controller.backend.service.js';
|
|
36
|
+
/**
|
|
37
|
+
* Why a declared webhook endpoint did NOT get an Express route.
|
|
38
|
+
*
|
|
39
|
+
* A closed vocabulary rather than a free string: each member names a DIFFERENT
|
|
40
|
+
* missing registration, with a different remedy, and an operator reading the
|
|
41
|
+
* startup log has to be able to tell them apart. The two are independent — an
|
|
42
|
+
* endpoint can be missing either, or both.
|
|
43
|
+
*/
|
|
44
|
+
export var WebhookRouteWithholdingReason;
|
|
45
|
+
(function (WebhookRouteWithholdingReason) {
|
|
46
|
+
/**
|
|
47
|
+
* No {@link WebhookCapabilityHandler} is registered for the endpoint's
|
|
48
|
+
* `capability`. The route would reach `handleWebhookRequest`, complete
|
|
49
|
+
* signature verification and idempotency claiming, then fail at dispatch.
|
|
50
|
+
*/
|
|
51
|
+
WebhookRouteWithholdingReason["NO_CAPABILITY_HANDLER"] = "NO_CAPABILITY_HANDLER";
|
|
52
|
+
/**
|
|
53
|
+
* No `WebhookCapabilityAdapter` is registered for `providerRef:endpointKey`
|
|
54
|
+
* on {@link WebhookHandlerBackendService}. The route would fail at the very
|
|
55
|
+
* top of `processWebhook`, before signature verification.
|
|
56
|
+
*/
|
|
57
|
+
WebhookRouteWithholdingReason["NO_ENDPOINT_ADAPTER"] = "NO_ENDPOINT_ADAPTER";
|
|
58
|
+
})(WebhookRouteWithholdingReason || (WebhookRouteWithholdingReason = {}));
|
|
34
59
|
let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendService extends AbstractControllerBackendService {
|
|
35
60
|
backendProviderRegistry;
|
|
36
61
|
externalProvidersRegistry;
|
|
@@ -43,7 +68,21 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
43
68
|
* setupRoutes() reads from this cache (sync) to register routes.
|
|
44
69
|
*/
|
|
45
70
|
loadedEndpoints = new Map();
|
|
46
|
-
/**
|
|
71
|
+
/** Route paths recorded only after Express accepted their registration. */
|
|
72
|
+
registeredRoutePaths = [];
|
|
73
|
+
/**
|
|
74
|
+
* Declared endpoints whose route was WITHHELD because the capability could
|
|
75
|
+
* not be dispatched. Kept so the decision is inspectable after startup rather
|
|
76
|
+
* than only visible in a log line that has already scrolled past.
|
|
77
|
+
*/
|
|
78
|
+
withheldRoutes = [];
|
|
79
|
+
/**
|
|
80
|
+
* Set once {@link registerWebhookRoutes} has run. The mount decision is taken
|
|
81
|
+
* ONCE, from the registration state at that instant, so anything registered
|
|
82
|
+
* afterwards cannot change which routes exist — see
|
|
83
|
+
* {@link registerCapabilityHandler}, which refuses to let that be silent.
|
|
84
|
+
*/
|
|
85
|
+
routesRegistered = false;
|
|
47
86
|
constructor(logger, errorBuilder, errorHandler, backendProviderRegistry, externalProvidersRegistry) {
|
|
48
87
|
super(logger, errorBuilder, errorHandler, 'WebhookAutoController');
|
|
49
88
|
this.backendProviderRegistry = backendProviderRegistry;
|
|
@@ -126,9 +165,29 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
126
165
|
/**
|
|
127
166
|
* Register a capability handler for dispatching processed events.
|
|
128
167
|
* Called at startup by capability modules (e.g., billing module).
|
|
168
|
+
*
|
|
169
|
+
* MUST be called before {@link initialize}. `start-application` satisfies this
|
|
170
|
+
* ordering today — step 4.5 initializes capability modules (which register
|
|
171
|
+
* here) and step 4.6 initializes this controller — and the guard below exists
|
|
172
|
+
* so a future step inserted the other way round is LOUD instead of silent.
|
|
173
|
+
*
|
|
174
|
+
* The failure it catches is genuinely confusing without it: a late-registered
|
|
175
|
+
* handler works perfectly at request time (the map is read per request), but
|
|
176
|
+
* the route it would serve was already withheld at mount time, so the endpoint
|
|
177
|
+
* answers 404 while a handler for it demonstrably exists.
|
|
129
178
|
*/
|
|
130
179
|
registerCapabilityHandler(handler) {
|
|
131
180
|
this.capabilityHandlers.set(handler.capability, handler);
|
|
181
|
+
if (this.routesRegistered) {
|
|
182
|
+
this.logger.error(`WebhookAutoController: capability handler for '${handler.capability}' was registered AFTER webhook routes were mounted. `
|
|
183
|
+
+ 'Route mounting is decided once, from the registrations present at that moment, so this handler cannot bring back any route '
|
|
184
|
+
+ 'that was withheld for a missing handler — those endpoints will keep answering 404. '
|
|
185
|
+
+ 'Register capability handlers before WebhookAutoControllerBackendService.initialize() runs.', {
|
|
186
|
+
capability: handler.capability,
|
|
187
|
+
withheldRoutes: this.withheldRoutes.map((withholding) => withholding.routePath),
|
|
188
|
+
});
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
132
191
|
this.logDebug(`Registered webhook capability handler for ${handler.capability}`);
|
|
133
192
|
}
|
|
134
193
|
/**
|
|
@@ -136,6 +195,17 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
136
195
|
* registered. Provider configuration, signature material, endpoint payloads,
|
|
137
196
|
* and handler metadata are intentionally absent.
|
|
138
197
|
*/
|
|
198
|
+
getRegisteredWebhookRoutePaths() {
|
|
199
|
+
return [...this.registeredRoutePaths];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Return the declared endpoints whose route was deliberately NOT mounted,
|
|
203
|
+
* with the reason. Carries no provider configuration or signature material —
|
|
204
|
+
* only the route identity and which registration was missing.
|
|
205
|
+
*/
|
|
206
|
+
getWithheldWebhookRoutes() {
|
|
207
|
+
return this.withheldRoutes.map((withholding) => ({ ...withholding, reasons: [...withholding.reasons] }));
|
|
208
|
+
}
|
|
139
209
|
// ════════════════════════════════════════════════════════════
|
|
140
210
|
// Routes
|
|
141
211
|
// ════════════════════════════════════════════════════════════
|
|
@@ -152,13 +222,53 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
152
222
|
// No-op by design — see JSDoc above and `registerWebhookRoutes()`.
|
|
153
223
|
}
|
|
154
224
|
/**
|
|
155
|
-
* Register one Express route per pre-loaded provider webhook endpoint
|
|
225
|
+
* Register one Express route per pre-loaded provider webhook endpoint —
|
|
226
|
+
* EXCEPT those whose capability cannot actually be dispatched.
|
|
227
|
+
*
|
|
156
228
|
* Invoked from `initialize()` after `webhookHandler` and `loadedEndpoints`
|
|
157
229
|
* have been populated. Idempotent-safe against an empty cache; guards on the
|
|
158
230
|
* handler so a mis-sequenced call fails visibly rather than registering dead
|
|
159
231
|
* routes.
|
|
232
|
+
*
|
|
233
|
+
* ── Why an undispatchable endpoint is WITHHELD rather than mounted ────────
|
|
234
|
+
*
|
|
235
|
+
* A declared endpoint needs two registrations that this controller does not
|
|
236
|
+
* own and cannot create: a `WebhookCapabilityAdapter` (verify + parse, on
|
|
237
|
+
* `WebhookHandlerBackendService`) and a `WebhookCapabilityHandler` (dispatch,
|
|
238
|
+
* here). Both are supplied by the capability module — for `billing`, inside
|
|
239
|
+
* `start-application.initializeBillingServices`, which is deliberately
|
|
240
|
+
* NON-FATAL: if it throws part-way, or if `billing.enabled` is false while the
|
|
241
|
+
* provider is still enabled for `WEBHOOK_ORIGINATOR`, the application boots
|
|
242
|
+
* with the provider's endpoint declared and neither registration present.
|
|
243
|
+
*
|
|
244
|
+
* Mounting a route in that state produces a 500 on every inbound delivery
|
|
245
|
+
* (`No webhook adapter registered for ...`, or `No capability handler for ...`
|
|
246
|
+
* below), and a 500 is precisely the answer that tells a vendor to RETRY — an
|
|
247
|
+
* instruction that can never be satisfied, because no retry supplies a missing
|
|
248
|
+
* startup registration. The endpoint therefore absorbs the vendor's full retry
|
|
249
|
+
* schedule and eventually gets disabled on the vendor's side, while the only
|
|
250
|
+
* local signal is a repeating error log.
|
|
251
|
+
*
|
|
252
|
+
* Not mounting says the true thing instead: this endpoint does not exist. The
|
|
253
|
+
* vendor gets a 404 rather than a retry instruction, and the operator gets one
|
|
254
|
+
* loud, remedy-naming error at startup — the moment the misconfiguration was
|
|
255
|
+
* actually introduced.
|
|
256
|
+
*
|
|
257
|
+
* REJECTED — refusing at BOOT (throwing from here). It is the shape the rest of
|
|
258
|
+
* the registry uses, and it is wrong at this site for three reasons. (1) It
|
|
259
|
+
* would not even be loud: `start-application.initializeWebhookAutoController`
|
|
260
|
+
* wraps `initialize()` in a non-fatal catch that downgrades a throw to a warn,
|
|
261
|
+
* so the net effect would be a quieter log AND the loss of every OTHER
|
|
262
|
+
* provider's working route. (2) It inverts a decision the engine already took
|
|
263
|
+
* explicitly — billing initialization failure is documented as survivable
|
|
264
|
+
* ("the app can still run without billing"); a failed optional subsystem must
|
|
265
|
+
* not become a refusal to start. (3) `billing.enabled: false` beside a
|
|
266
|
+
* registered Stripe provider is a COHERENT configuration, and refusing to boot
|
|
267
|
+
* over it would be a false alarm. The check is per-endpoint, so a capability
|
|
268
|
+
* that is wired keeps its route regardless of a sibling that is not.
|
|
160
269
|
*/
|
|
161
270
|
registerWebhookRoutes() {
|
|
271
|
+
this.routesRegistered = true;
|
|
162
272
|
if (!this.webhookHandler) {
|
|
163
273
|
this.logger.warn('WebhookAutoController: initialize() ran without a webhook handler — no routes registered');
|
|
164
274
|
return;
|
|
@@ -170,6 +280,24 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
170
280
|
for (const [providerRef, endpoints] of this.loadedEndpoints) {
|
|
171
281
|
for (const endpoint of endpoints) {
|
|
172
282
|
const routePath = `/webhooks/${providerRef}/${endpoint.key}`;
|
|
283
|
+
const withholding = this.assessRouteDispatchability(providerRef, endpoint, routePath);
|
|
284
|
+
if (withholding) {
|
|
285
|
+
this.withheldRoutes.push(withholding);
|
|
286
|
+
this.logger.error(`WebhookAutoController: NOT registering POST ${routePath} — the endpoint is declared but cannot be dispatched `
|
|
287
|
+
+ `(${withholding.reasons.join(', ')}). A route mounted in this state can only ever answer 500, which instructs the `
|
|
288
|
+
+ 'vendor to retry an inbound event that no retry can make processable. Withholding the route so the vendor gets a '
|
|
289
|
+
+ '404 instead. Remedy: register the capability module that owns '
|
|
290
|
+
+ `'${endpoint.capability}' before WebhookAutoControllerBackendService.initialize() runs (for billing, check whether `
|
|
291
|
+
+ 'billing initialization was skipped or failed non-fatally earlier in startup), or disable the WEBHOOK_ORIGINATOR '
|
|
292
|
+
+ `protocol for provider '${providerRef}'.`, {
|
|
293
|
+
providerRef,
|
|
294
|
+
endpointKey: endpoint.key,
|
|
295
|
+
capability: endpoint.capability,
|
|
296
|
+
routePath,
|
|
297
|
+
reasons: withholding.reasons,
|
|
298
|
+
});
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
173
301
|
this.router.post(routePath,
|
|
174
302
|
// Defense-in-depth for a future streaming mount. If this controller is
|
|
175
303
|
// ever assigned the RAW_REQUEST_STREAM mount phase, this express.raw()
|
|
@@ -183,10 +311,33 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
183
311
|
express.raw({ type: 'application/json' }), this.asyncHandler(async (req, res, _next) => {
|
|
184
312
|
await this.handleWebhookRequest(providerRef, endpoint, req, res);
|
|
185
313
|
}));
|
|
314
|
+
this.registeredRoutePaths.push(routePath);
|
|
186
315
|
this.logger.info(`Webhook endpoint registered: POST ${routePath}`);
|
|
187
316
|
}
|
|
188
317
|
}
|
|
189
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Decide whether a declared endpoint can actually be served, and if not, say
|
|
321
|
+
* which registration is missing.
|
|
322
|
+
*
|
|
323
|
+
* Returns `null` when the route is dispatchable. Both prerequisites are
|
|
324
|
+
* evaluated (rather than short-circuiting on the first) so an operator gets
|
|
325
|
+
* the WHOLE remedy in one log line instead of fixing one registration and
|
|
326
|
+
* meeting the next on the following restart.
|
|
327
|
+
*/
|
|
328
|
+
assessRouteDispatchability(providerRef, endpoint, routePath) {
|
|
329
|
+
const reasons = [];
|
|
330
|
+
if (!this.capabilityHandlers.has(endpoint.capability)) {
|
|
331
|
+
reasons.push(WebhookRouteWithholdingReason.NO_CAPABILITY_HANDLER);
|
|
332
|
+
}
|
|
333
|
+
if (!this.webhookHandler?.hasAdapter(providerRef, endpoint.key)) {
|
|
334
|
+
reasons.push(WebhookRouteWithholdingReason.NO_ENDPOINT_ADAPTER);
|
|
335
|
+
}
|
|
336
|
+
if (reasons.length === 0) {
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
return { providerRef, endpointKey: endpoint.key, capability: endpoint.capability, routePath, reasons };
|
|
340
|
+
}
|
|
190
341
|
// ════════════════════════════════════════════════════════════
|
|
191
342
|
// Handler
|
|
192
343
|
// ════════════════════════════════════════════════════════════
|
|
@@ -228,7 +379,14 @@ let WebhookAutoControllerBackendService = class WebhookAutoControllerBackendServ
|
|
|
228
379
|
res.status(200).json({ received: true });
|
|
229
380
|
return;
|
|
230
381
|
}
|
|
231
|
-
// Dispatch to capability handler
|
|
382
|
+
// Dispatch to capability handler.
|
|
383
|
+
//
|
|
384
|
+
// Defence in depth only: `registerWebhookRoutes` refuses to MOUNT a route
|
|
385
|
+
// whose capability has no handler, so this branch is unreachable while that
|
|
386
|
+
// gate holds — reaching it means the handler map was mutated after mounting
|
|
387
|
+
// (which `registerCapabilityHandler` refuses to do silently). The throw is
|
|
388
|
+
// kept rather than removed because the alternative — dispatching to
|
|
389
|
+
// `undefined` — would 500 anyway, with no explanation.
|
|
232
390
|
const handler = this.capabilityHandlers.get(endpoint.capability);
|
|
233
391
|
if (handler) {
|
|
234
392
|
await handler.handleEvent(result.executionContext, result.parsedEvent);
|