@wildo-ai/saas-backend-lib 1.1.2 → 1.1.4
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/__tests__/fixture-deep-partial.d.ts.map +1 -1
- package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
- package/dist/esm/__tests__/setup.d.ts.map +1 -1
- package/dist/esm/__tests__/test-container.d.ts.map +1 -1
- package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
- package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
- 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/models/repositories.backend.schemas.d.ts.map +1 -1
- package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
- package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.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 +210 -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/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
- 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 +27 -6
- 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.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.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 +220 -25
- 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-query.backend.d.ts.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 +191 -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 +47 -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 +96 -29
- 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-row-projection.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
- 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/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
- 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 +9 -1
- 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.map +1 -1
- 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/postgresql-resource-repository.backend.service.d.ts +106 -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 +266 -20
- 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.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
- 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 +34 -3
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.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-custom-implementation-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
- 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-server-injected-fields.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.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 +571 -45
- 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/base-classes/utils/backend-type-utils.d.ts.map +1 -1
- package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.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/abstract-billing.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
- 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 +475 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
- 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/billing.utils.d.ts.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 +48 -7
- 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 +70 -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 +98 -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/credit-pool.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.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 +21 -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 +109 -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-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
- 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 +310 -29
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/billing-test-fixtures.d.ts.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/charts/controllers/chart.backend.controller.d.ts.map +1 -1
- package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
- package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
- package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.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/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -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 +340 -62
- 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 +350 -10
- 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 +562 -10
- 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 +6 -2
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
- 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 +57 -1
- 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 +52 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/index.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.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/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +145 -49
- 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/app-env-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
- package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
- package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.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/models/runtime-topology.backend.contracts.d.ts.map +1 -1
- package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.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 +71 -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 +33 -0
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
- 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 +37 -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 +69 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
- package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
- package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.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-query.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
- package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.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/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
- package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.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 +129 -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/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
- 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 +52 -17
- 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/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.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 +306 -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 +379 -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 +235 -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 +81 -34
- 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 +181 -100
- 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-api-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +413 -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 +684 -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 +15 -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 +84 -5
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
- package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
- package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
- package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
- package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
- package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js +21 -13
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
- 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 +260 -36
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
- package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
- package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
- package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
- package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/files/services/file-population.backend.service.d.ts.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 +202 -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 +175 -13
- 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 +53 -2
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
- package/dist/esm/files/services/files.backend.service.d.ts +68 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +177 -5
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.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-path-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +52 -11
- 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/file-storage-router.backend.service.d.ts +21 -3
- package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
- package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
- 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/storage-credential-provider.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.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-upload.utils.d.ts.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.map +1 -1
- package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.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/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
- 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/batches/a2a-push-delivery.batch.backend.service.d.ts.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-dialect.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.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-push-delivery-log.repository.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.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 +196 -40
- 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/controllers/flows-actors.controller.d.ts.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/agent-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.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.definitions.d.ts.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 +179 -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 +436 -34
- 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/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
- 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/agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +132 -6
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +467 -49
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +50 -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 +270 -20
- 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 +371 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +17 -4
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.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/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
- package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.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/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
- 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/i18n/services/i18n.backend.service.d.ts.map +1 -1
- package/dist/esm/index.d.ts +11 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +31 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts +10 -0
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +126 -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 +22 -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 +70 -3
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -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 +107 -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.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
- package/dist/esm/meta-workflow-runtime.exports.d.ts.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/__tests__/mock-logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +24 -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/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +313 -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 +389 -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/otel-preload.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.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/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
- package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
- package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -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-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 +102 -5
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +222 -70
- 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/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.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 +99 -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 +422 -66
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
- 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 +46 -1
- 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.map +1 -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 +16 -6
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.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 +12 -12
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.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-member-invitation-sweep.batch.backend.service.d.ts.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.d.ts.map +1 -1
- 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/authority-change-audit.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.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-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.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-member-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
- package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
- package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
- package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.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/apps-crontabs-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/cron-job-sync.backend.service.d.ts.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-completion-registry.backend.service.d.ts.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/job-payload-storage.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-status-tracking.backend.service.d.ts.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/scheduled-message-verifier.backend.service.d.ts.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/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
- package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
- package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.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/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
- package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
- package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
- package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
- package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.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 +81 -9
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/backend-resource-registry.exports.d.ts.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/index.d.ts.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/models/resources.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
- package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
- package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
- package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +83 -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 +121 -6
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.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/models/execution-context.backend.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
- package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.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.map +1 -1
- package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.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 +191 -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 +19 -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 +287 -89
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
- package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
- package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.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/auth-method-management-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
- 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 +113 -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/auth-constants.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.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/federated-auth-transport.backend.definitions.d.ts +37 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
- package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +30 -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/models/saml-authentication.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.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/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +197 -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 +384 -53
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -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 +68 -1
- 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-password-reset.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.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 +97 -0
- 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 +260 -27
- 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 +14 -0
- 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 +70 -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/saml-assertion-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.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-session-store.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -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 +49 -17
- 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/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.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 +339 -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/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.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/oidc-user-claims.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.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-response-helper.backend.service.d.ts.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/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.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/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.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/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
- package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.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/junction-scope-resolution.backend.d.ts.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/organization-unit-narrowing-enforcement.backend.d.ts.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 +37 -124
- 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.map +1 -1
- package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
- 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 +133 -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 +137 -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 +134 -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 +152 -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 +146 -8
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +328 -29
- 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 +299 -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 +953 -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 +99 -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 +210 -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 +423 -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 +282 -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 +125 -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 +123 -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 +214 -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 +430 -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 +98 -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/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
- 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.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -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 +26 -16
- 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/auth-jwt-guard.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
- package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.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/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
- 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/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
- package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
- package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.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/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
- 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/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +11 -9
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -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-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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.backend.service.js","sourceRoot":"","sources":["../../../../../../src/notifications/email/services/email.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Email Backend Service\n *\n * Main service for sending emails. Orchestrates:\n * - File-based template resolution via EmailTemplateRegistryBackendService\n * - Context building\n * - React Email rendering (subject fn + body fn → HTML/text)\n * - Provider resolution and HTTP execution\n */\n\nimport { injectable, inject } from 'inversify';\nimport { render } from '@react-email/render';\nimport { randomUUID } from 'node:crypto';\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 } 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 {\n getConfiguredFallbackLanguage,\n getConfiguredPrimaryLanguage,\n} from '~wildo-backend-lib/config/services/app-configuration.backend.utils';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport type { EmailContextProviderRegistryBackendService } from './email-context-provider-registry.backend.service';\nimport type { EmailTemplateRegistryBackendService } from './email-template-registry.backend.service';\nimport { buildEmailBrandTokensFromConfig, type EmailBrandTokens } from '~wildo-backend-lib/notifications/email/utils/color-conversion.utils';\nimport {\n EmailTemplateContext,\n EmailTemplateType_ToEngineCapability,\n EmailTemplateType,\n EngineCapability,\n ErrorCustomMessageReference,\n ErrorType,\n isWildoBackendError,\n WildoHeaderKeys,\n} from '@wildo-ai/saas-models';\nimport type {\n StandardEmail_SendRequest,\n StandardEmail_SendResponse,\n} from '@wildo-ai/external-connectors-models';\nimport {\n EmailProviderPayloadEncoding,\n EmailProviderSubmissionClassification,\n ExternalProvider_ExchangeProtocol_Kind,\n StandardEmail_SendRequestSchema,\n StandardEmail_SendResponseSchema,\n} from '@wildo-ai/external-connectors-models';\nimport type {\n EmailProviderSendRequest,\n EmailProviderSendResponseInput,\n} from '@wildo-ai/external-connectors-private/backend';\nimport { AvailableLanguage } from '@wildo-ai/presets-components-models';\nimport {\n EMAIL_PROVIDER_TRANSPORT_TIMEOUT_MS,\n} from '~wildo-backend-lib/notifications/email/models/email-transport.backend.definitions';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// UTILITIES\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction validateEmailAddresses(emails: string[]): string[] {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emails.filter(email => !emailRegex.test(email.trim()));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TYPES\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface EmailSendRequest {\n /**\n * Stable identity of one logical provider submission. A caller that can\n * retry across process/job boundaries must persist and reuse this value.\n * Ephemeral callers may omit it and let the service allocate one.\n */\n submissionId?: string;\n /** Template reference (e.g., \"system.welcome_email\") */\n templateRef: string;\n /** Locale for template selection */\n locale: AvailableLanguage;\n /** Email type for provider routing */\n type: EmailTemplateType;\n /** Primary recipient email(s) */\n to: string | string[];\n /** CC recipients (optional) */\n cc?: string[];\n /** BCC recipients (optional) */\n bcc?: string[];\n /** Reply-to address (optional) */\n replyTo?: string;\n /** From address (optional - uses provider default if not specified) */\n from?: string;\n /** Context for template rendering */\n context: EmailTemplateContext;\n /** File IDs for attachments (optional) */\n attachmentFileIds?: string[];\n /** Organization ID for org-scoped templates (optional) */\n organizationId?: string;\n}\n\nexport enum EmailSubmissionOutcome {\n NOT_SUBMITTED = 'not_submitted',\n PROVIDER_ACCEPTED = 'provider_accepted',\n PROVIDER_REJECTED = 'provider_rejected',\n ACCEPTANCE_UNKNOWN = 'acceptance_unknown',\n}\n\nexport interface EmailSendResult {\n success: boolean;\n /**\n * Whether an at-least-once caller should retry. An acceptance-unknown retry\n * can duplicate an externally visible email; provider-native idempotency is\n * only an optional risk reduction.\n */\n retryable: boolean;\n submissionId: string;\n outcome: EmailSubmissionOutcome;\n /** All honest provider receipts. Empty means no receipt was returned. */\n providerMessageIds: string[];\n /** Provider confirmed that this logical submission was already accepted. */\n deduplicated?: boolean;\n rejectedRecipients?: Array<{ email: string; reason?: string }>;\n providerId?: string;\n error?: string;\n templateRef: string;\n recipientCount: number;\n}\n\n/**\n * Fields common to every resolved email provider regardless of delivery\n * mode. `from*` come from the app's `providerConfigurations` override, not\n * the runtime contract.\n */\ninterface EmailProviderConfig_Base {\n providerId: string;\n fromAddress?: string;\n fromName?: string;\n}\n\n/**\n * Network delivery — the resolved shape for every real provider (Resend,\n * SendGrid, …). Carries the composed endpoint, auth material, and the\n * provider-specific request builder/parser used by\n * `executeProviderRequest`'s `fetch` path.\n */\ninterface EmailProviderConfig_Network extends EmailProviderConfig_Base {\n delivery: 'network';\n apiKey: string;\n endpoint: string;\n authHeaderName: string;\n authPrefix?: string;\n authScheme?: 'api-key' | 'bearer' | 'basic';\n basicUsername?: string;\n domain?: string;\n /**\n * Wire encoding the provider expects for its request body. Every network\n * provider declares this on its runtime contract; there is no fallback\n * encoding at the consumer boundary.\n */\n payloadEncoding: EmailProviderPayloadEncoding;\n /**\n * Whether the provider expects the API key to be embedded in the JSON\n * payload body (Mailchimp's `key` field). Sourced from the provider\n * module's `runtimeContract.embedsApiKeyInBody`. Defaults to `false`.\n */\n embedsApiKeyInBody: boolean;\n /**\n * Per-provider send-payload builder. Sourced from the provider\n * module's `runtimeContract.buildSendRequest`. Receives the\n * normalized `StandardEmail_SendRequest` plus the optional\n * `configuredDomain` (Mailgun's `{domain}` token).\n */\n buildSendRequest: (\n input: { request: StandardEmail_SendRequest; configuredDomain?: string },\n ) => EmailProviderSendRequest;\n parseSendResponse: (\n input: EmailProviderSendResponseInput,\n ) => StandardEmail_SendResponse;\n}\n\n/**\n * Log delivery — the resolved shape for the dev `preview` provider. Carries\n * NO endpoint / apiKey / payload builder because it never opens a socket;\n * `executeProviderRequest` renders + logs the email without fabricating a\n * provider receipt. Discriminated from network on `delivery` so consumers branch\n * on the contract, never on the provider ref.\n */\ninterface EmailProviderConfig_Log extends EmailProviderConfig_Base {\n delivery: 'log';\n}\n\ntype EmailProviderConfig = EmailProviderConfig_Network | EmailProviderConfig_Log;\n\ntype EmailProviderExecutionResult =\n | {\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED;\n response: StandardEmail_SendResponse;\n receiptParseError?: string;\n /**\n * The adapter explicitly classified the submission as accepted but\n * violated another response-contract invariant. Acceptance remains the\n * no-replay authority while the violation stays observable.\n */\n adapterContractViolation?: string;\n }\n | {\n outcome:\n | EmailSubmissionOutcome.PROVIDER_REJECTED\n | EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN;\n error: string;\n retryable: boolean;\n };\n\ninterface EmailAddress {\n email: string;\n name?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SERVICE\n// ─────────────────────────────────────────────────────────────────────────────\n\n@injectable()\nexport class EmailBackendService {\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.EmailTemplateRegistry) private readonly templateRegistry: EmailTemplateRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.EmailContextProviderRegistry) private readonly contextProviderRegistry: EmailContextProviderRegistryBackendService,\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('EmailBackendService');\n this.logger.setDebugTypeLogging('EmailBackendService', false);\n }\n\n /**\n * Send an email using a file-based template definition.\n */\n async send(request: EmailSendRequest): Promise<EmailSendResult> {\n const startTime = Date.now();\n const submissionId = request.submissionId ?? randomUUID();\n let providerTransportStarted = false;\n this.logger.info('Sending email', {\n templateRef: request.templateRef,\n submissionId,\n locale: request.locale,\n recipientCount: Array.isArray(request.to) ? request.to.length : 1,\n });\n\n try {\n // 0. Validate email addresses\n const recipients = Array.isArray(request.to) ? request.to : [request.to];\n const allEmails = [\n ...recipients,\n ...(request.cc || []),\n ...(request.bcc || []),\n ...(request.replyTo ? [request.replyTo] : []),\n ];\n\n const invalidEmails = validateEmailAddresses(allEmails);\n if (invalidEmails.length > 0) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.EMAIL_INVALID_ADDRESS_FORMAT,\n context: {\n // diagnostic (log-only)\n invalidEmails,\n },\n },\n );\n }\n\n // 1. Resolve template + labels from file-based registry\n const defaultLocale = this.getDefaultLocale();\n const resolved = this.templateRegistry.resolve(\n request.templateRef,\n request.locale,\n defaultLocale,\n this.getFallbackLocale(),\n );\n\n // 2. Get design tokens\n const brandTokens = this.getDesignTokens();\n\n // 3. Build additional context from providers\n const additionalContext = await this.contextProviderRegistry.buildAdditionalContext(\n {\n templateRef: request.templateRef,\n locale: request.locale,\n baseContext: request.context,\n },\n this.createProviderUtils(),\n );\n\n // 4. Build full context\n const fullContext: EmailTemplateContext = {\n currentObject: request.context.currentObject,\n objectContext: request.context.objectContext,\n userContext: request.context.userContext,\n additionalContext: {\n ...(request.context.additionalContext as Record<string, unknown> || {}),\n ...additionalContext,\n },\n };\n\n // 5. Render subject and body from definition functions\n const templateProps = { context: fullContext, brand: brandTokens, labels: resolved.labels };\n const subject = resolved.definition.subject(templateProps);\n const bodyElement = resolved.definition.body(templateProps);\n\n const bodyHtml = await render(bodyElement, { pretty: true });\n const bodyText = await render(bodyElement, { plainText: true });\n\n // 6. Resolve provider\n const emailType = resolved.definition.type ?? request.type;\n const engineCapability = EmailTemplateType_ToEngineCapability[emailType];\n const providerConfig = this.resolveEmailProvider(engineCapability);\n\n // 7. Build email request\n const emailRequest = this.buildEmailRequest(\n request,\n submissionId,\n { subject, bodyHtml, bodyText },\n providerConfig,\n recipients,\n );\n\n const providerRequest = providerConfig.delivery === 'network'\n ? providerConfig.buildSendRequest({\n request: emailRequest,\n configuredDomain: providerConfig.domain,\n })\n : undefined;\n\n // 8. Execute send via provider\n const execution = await this.executeProviderRequest(\n providerConfig,\n emailRequest,\n providerRequest,\n () => {\n providerTransportStarted = true;\n },\n );\n const durationMs = Date.now() - startTime;\n\n if (execution.outcome !== EmailSubmissionOutcome.PROVIDER_ACCEPTED) {\n this.logger.warn('Email provider did not confirm acceptance', {\n templateRef: request.templateRef,\n submissionId,\n outcome: execution.outcome,\n providerId: providerConfig.providerId,\n error: execution.error,\n durationMs,\n });\n return {\n success: false,\n retryable: execution.retryable,\n submissionId,\n outcome: execution.outcome,\n providerMessageIds: [],\n providerId: providerConfig.providerId,\n error: execution.error,\n templateRef: request.templateRef,\n recipientCount: recipients.length,\n };\n }\n\n const providerMessageIds = execution.response.providerMessageIds;\n this.logger.info('Email submission accepted', {\n templateRef: request.templateRef,\n submissionId,\n providerMessageIds,\n deduplicated: execution.response.deduplicated,\n providerReceiptMissing: providerMessageIds.length === 0,\n receiptParseError: execution.receiptParseError,\n adapterContractViolation: execution.adapterContractViolation,\n providerId: providerConfig.providerId,\n durationMs,\n });\n\n return {\n success: execution.response.success,\n retryable: false,\n submissionId,\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED,\n providerMessageIds,\n deduplicated: execution.response.deduplicated,\n rejectedRecipients: execution.response.rejectedRecipients,\n providerId: providerConfig.providerId,\n error: execution.adapterContractViolation\n ?? (execution.response.success\n ? undefined\n : this.describeRejectedRecipients(\n execution.response.rejectedRecipients,\n )),\n templateRef: request.templateRef,\n recipientCount: recipients.length,\n };\n } catch (err) {\n const error = err as Error;\n const durationMs = Date.now() - startTime;\n\n this.logger.error('Email send failed', {\n templateRef: request.templateRef,\n errorMessage: error.message,\n durationMs,\n });\n\n if (isWildoBackendError(err) && (err.type === ErrorType.CONFIGURATION || err.type === ErrorType.VALIDATION)) {\n throw err;\n }\n\n return {\n success: false,\n retryable: true,\n submissionId,\n outcome: providerTransportStarted\n ? EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN\n : EmailSubmissionOutcome.NOT_SUBMITTED,\n providerMessageIds: [],\n error: error.message,\n templateRef: request.templateRef,\n recipientCount: Array.isArray(request.to) ? request.to.length : 1,\n };\n }\n }\n\n /**\n * Send email to multiple recipients individually (different context per recipient).\n */\n async sendToMultiple(requests: EmailSendRequest[]): Promise<EmailSendResult[]> {\n const results: EmailSendResult[] = [];\n for (const request of requests) {\n const result = await this.send(request);\n results.push(result);\n }\n return results;\n }\n\n private getDefaultLocale(): AvailableLanguage {\n return getConfiguredPrimaryLanguage(this.configService.config);\n }\n\n private getFallbackLocale(): AvailableLanguage {\n return getConfiguredFallbackLanguage(this.configService.config);\n }\n\n private getDesignTokens(): EmailBrandTokens {\n try {\n return buildEmailBrandTokensFromConfig(this.configService.config.email?.brandTokens);\n } catch (err) {\n this.logger.warn('Failed to extract design tokens, using defaults', {\n errorMessage: (err as Error).message,\n });\n return buildEmailBrandTokensFromConfig(undefined);\n }\n }\n\n private resolveEmailProvider(capability: EngineCapability): EmailProviderConfig {\n const providerId = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(capability);\n\n if (!providerId) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `No email provider configured for capability: ${capability}`, capability } },\n );\n }\n\n if (!this.externalProvidersRegistry.isProviderEnabled(providerId, ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER)) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `Email provider is disabled by external provider configuration: ${providerId}`, providerId, capability } },\n );\n }\n\n const emailContract = this.externalProvidersRegistry.getProviderConfiguration(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,\n )?.runtimeContract;\n if (emailContract?.kind !== 'email') {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `No EMAIL_PROVIDER runtime contract found for provider: ${providerId}`, providerId, capability } },\n );\n }\n\n const appConfig = this.configService.config as Record<string, unknown>;\n const providersConfig = appConfig?.providerConfigurations as Record<string, Record<string, {\n fromAddress?: string;\n fromName?: string;\n domain?: string;\n }> | undefined> | undefined;\n const providerConfig = providersConfig?.[providerId]?.[ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER];\n\n // Non-sending delivery (the dev `preview` provider): no endpoint, no\n // API key. Branch on the CONTRACT field — never the provider ref — so\n // this stays a first-class provider and passes the\n // no-provider-ref-branches guard; `executeProviderRequest` renders +\n // logs instead of opening a socket. Resolved BEFORE the API-key\n // requirement below so a log provider doesn't need a secret at all.\n if (emailContract.delivery === 'log') {\n return {\n providerId,\n delivery: 'log',\n fromAddress: providerConfig?.fromAddress,\n fromName: providerConfig?.fromName,\n };\n }\n\n // Network delivery — a live provider API key is required.\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,\n );\n if (!apiKey) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `No env-provided API key configured for provider: ${providerId}`, providerId, capability } },\n );\n }\n\n // Resolve the path-token domain (Mailgun) from the contract's declared\n // `sendEndpointPathTokens`. The branch is contract-driven, not ref-keyed:\n // any provider that declares the `'domain'` token gets the same treatment.\n const requiresDomainToken = emailContract.sendEndpointPathTokens?.includes('domain') === true;\n const configuredDomain = requiresDomainToken\n ? providerConfig?.domain ?? process.env[`${providerId.toUpperCase()}_DOMAIN`]\n : providerConfig?.domain;\n if (requiresDomainToken && !configuredDomain) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `Email provider '${providerId}' declares a {domain} send-endpoint token but no domain is configured.`, providerId } },\n );\n }\n\n return {\n providerId,\n delivery: 'network',\n apiKey,\n endpoint: this.composeEmailSendEndpoint(emailContract.baseUrl, emailContract.sendEndpointPath, configuredDomain),\n authHeaderName: emailContract.apiKey.headerName,\n authPrefix: emailContract.apiKey.prefix,\n authScheme: emailContract.apiKey.scheme,\n basicUsername: emailContract.apiKey.basicUsername,\n fromAddress: providerConfig?.fromAddress,\n fromName: providerConfig?.fromName,\n domain: configuredDomain,\n payloadEncoding: emailContract.payloadEncoding,\n embedsApiKeyInBody: emailContract.embedsApiKeyInBody === true,\n buildSendRequest: emailContract.buildSendRequest,\n parseSendResponse: emailContract.parseSendResponse,\n };\n }\n\n private buildEmailRequest(\n request: EmailSendRequest,\n submissionId: string,\n rendered: { subject: string; bodyHtml: string; bodyText: string },\n providerConfig: EmailProviderConfig,\n recipients: string[],\n ): StandardEmail_SendRequest {\n const toAddresses: EmailAddress[] = recipients.map(email => ({ email }));\n\n // From-address precedence: per-send override → per-provider config\n // (`providerConfigurations.<provider>.EMAIL_PROVIDER.fromAddress`) → the\n // app's global `email.from`. The latter is REQUIRED by\n // `AppConfiguration_Email_Schema`, so it is the normal source; the literal\n // fallback is a defensive last resort that should be unreachable once\n // config is initialized. Previously `email.from` was silently ignored —\n // the send fell back to the literal, producing an unverified/invalid\n // sender that providers reject.\n const configuredFrom = this.configService.config.email?.from;\n const from: EmailAddress = {\n email: request.from || providerConfig.fromAddress || configuredFrom || 'noreply@example.com',\n name: providerConfig.fromName,\n };\n\n return StandardEmail_SendRequestSchema.parse({\n submissionId,\n from,\n to: toAddresses,\n cc: request.cc?.map(email => ({ email })),\n bcc: request.bcc?.map(email => ({ email })),\n replyTo: request.replyTo ? { email: request.replyTo } : undefined,\n subject: rendered.subject,\n html: rendered.bodyHtml,\n text: rendered.bodyText,\n });\n }\n\n private async executeProviderRequest(\n providerConfig: EmailProviderConfig,\n request: StandardEmail_SendRequest,\n providerRequest?: EmailProviderSendRequest,\n onTransportStart?: () => void,\n ): Promise<EmailProviderExecutionResult> {\n // Log delivery (dev `preview` provider): the template is already\n // rendered — surface it in the logs (subject, recipients, body preview)\n // without inventing a provider receipt. No network I/O. Narrowing on the\n // contract-derived `delivery` field also gates the network-only fields\n // (`endpoint`, `buildSendRequest`, …) accessed below.\n if (providerConfig.delivery === 'log') {\n const recipients = request.to.map(recipient => recipient.email);\n this.logger.info('[email-preview] Email logged instead of sent (log-delivery provider)', {\n providerId: providerConfig.providerId,\n submissionId: request.submissionId,\n from: request.from?.email,\n to: recipients,\n cc: request.cc?.map(recipient => recipient.email),\n bcc: request.bcc?.map(recipient => recipient.email),\n subject: request.subject,\n textPreview: request.text?.slice(0, 2000),\n });\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED,\n response: {\n success: true,\n classification: EmailProviderSubmissionClassification.ACCEPTED,\n providerMessageIds: [],\n },\n };\n }\n\n // Build the provider projection before transport so adapter failures are\n // distinguishable from acceptance-unknown network failures.\n if (!providerRequest) {\n throw new Error('Network email submission is missing its provider request');\n }\n const headers = {\n ...this.buildProviderEmailHeaders(providerConfig),\n ...providerRequest.transportHeaders,\n };\n const body = this.serializeProviderEmailPayload(\n providerConfig,\n providerRequest.payload,\n );\n\n const abortController = new AbortController();\n const timeoutHandle = setTimeout(\n () => abortController.abort(\n new Error(\n `Email provider request exceeded ${EMAIL_PROVIDER_TRANSPORT_TIMEOUT_MS}ms`,\n ),\n ),\n EMAIL_PROVIDER_TRANSPORT_TIMEOUT_MS,\n );\n let response: Response;\n try {\n onTransportStart?.();\n response = await fetch(providerConfig.endpoint, {\n method: 'POST',\n headers,\n body,\n signal: abortController.signal,\n });\n } catch (error) {\n clearTimeout(timeoutHandle);\n // Once fetch starts, a transport exception gives no trustworthy evidence\n // about whether the provider received the bytes. At-least-once recovery\n // retries this outcome and accepts the possibility of a duplicate.\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: describeCaughtError(error),\n retryable: true,\n };\n }\n\n try {\n let responseText = '';\n let responseReadError: string | undefined;\n try {\n responseText = await this.readResponseTextWithAbort(\n response,\n abortController.signal,\n );\n } catch (error) {\n // Keep the deadline active through response-body consumption so a\n // provider that returns headers but stalls its body cannot retain this\n // request indefinitely.\n responseReadError = describeCaughtError(error);\n } finally {\n clearTimeout(timeoutHandle);\n }\n\n const parserInput: EmailProviderSendResponseInput = {\n status: response.status,\n headers: this.responseHeadersToRecord(response.headers),\n body: this.bestEffortParseResponseBody(responseText),\n };\n\n let parsedResponse: StandardEmail_SendResponse | undefined;\n let parserFailure: string | undefined;\n let acceptedContractViolation: string | undefined;\n try {\n const providerParsedResponse = providerConfig.parseSendResponse(parserInput);\n const validatedResponse = StandardEmail_SendResponseSchema.safeParse(\n providerParsedResponse,\n );\n if (validatedResponse.success) {\n parsedResponse = validatedResponse.data;\n } else {\n parserFailure = `Provider response parser violated StandardEmail_SendResponse: ${validatedResponse.error.message}`;\n this.logger.error(\n 'Email provider response adapter contract violation',\n {\n providerId: providerConfig.providerId,\n submissionId: request.submissionId,\n httpStatus: response.status,\n validationError: validatedResponse.error.message,\n },\n );\n if (\n typeof providerParsedResponse === 'object'\n && providerParsedResponse !== null\n && providerParsedResponse.classification === EmailProviderSubmissionClassification.ACCEPTED\n ) {\n /**\n * `classification` is the adapter's provider-aware submission\n * authority. Once it explicitly says ACCEPTED, a malformed\n * receipt, retry hint, or convenience field must remain an\n * observable contract defect without authorizing a duplicate\n * at-least-once replay.\n */\n acceptedContractViolation = parserFailure;\n parsedResponse = {\n success: false,\n classification:\n EmailProviderSubmissionClassification.ACCEPTED,\n providerMessageIds: [],\n };\n }\n }\n } catch (error) {\n parserFailure = describeCaughtError(error);\n }\n\n if (parsedResponse) {\n if (\n parsedResponse.classification === EmailProviderSubmissionClassification.ACCEPTANCE_UNKNOWN\n ) {\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: parsedResponse.providerError\n ?? this.buildProviderHttpError(\n response.status,\n responseText,\n responseReadError,\n ),\n retryable: parsedResponse.retryable ?? true,\n };\n }\n\n if (\n parsedResponse.classification === EmailProviderSubmissionClassification.REJECTED\n ) {\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_REJECTED,\n error: parsedResponse.providerError\n ?? this.describeRejectedRecipients(\n parsedResponse.rejectedRecipients,\n ),\n retryable: parsedResponse.retryable\n ?? this.isRetryableDefiniteRejectionStatus(response.status),\n };\n }\n\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED,\n response: parsedResponse,\n receiptParseError: responseReadError,\n adapterContractViolation: acceptedContractViolation,\n };\n }\n\n if (response.ok) {\n // HTTP 2xx alone is not universal acceptance evidence. Postmark and\n // Mailchimp, for example, can encode semantic rejection inside a 2xx\n // body. If the provider-owned classifier failed or violated its schema,\n // the only honest state is ambiguous acceptance.\n const classificationError = responseReadError\n ?? parserFailure\n ?? 'Provider response adapter returned no valid classification';\n this.logger.error(\n 'Email provider 2xx response could not be classified',\n {\n providerId: providerConfig.providerId,\n submissionId: request.submissionId,\n httpStatus: response.status,\n classificationError,\n },\n );\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: classificationError,\n retryable: true,\n };\n }\n\n const providerHttpError = this.buildProviderHttpError(\n response.status,\n responseText,\n responseReadError,\n );\n const genericError = parserFailure\n ? `${providerHttpError}; provider response parser failed: ${parserFailure}`\n : providerHttpError;\n if (\n response.status === 408\n || response.status === 409\n || response.status >= 500\n ) {\n // A timeout, conflict, or 5xx may be emitted after an upstream accepted\n // the request. Provider adapters can override this only when their body\n // contract provides stronger evidence.\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: genericError,\n retryable: true,\n };\n }\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_REJECTED,\n error: genericError,\n retryable: this.isRetryableDefiniteRejectionStatus(response.status),\n };\n } catch (error) {\n clearTimeout(timeoutHandle);\n // Fetch already resolved, so even a local post-response bug cannot prove\n // that the provider did not accept the bytes. At-least-once recovery\n // retries and may duplicate the externally visible message.\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: describeCaughtError(error),\n retryable: true,\n };\n }\n }\n\n private bestEffortParseResponseBody(responseText: string): unknown {\n if (responseText.trim().length === 0) return undefined;\n try {\n return JSON.parse(responseText) as unknown;\n } catch {\n return responseText;\n }\n }\n\n private buildProviderHttpError(\n status: number,\n responseText: string,\n responseFailure?: string,\n ): string {\n const responseDetail = responseFailure\n ? `response unavailable (${responseFailure})`\n : responseText.substring(0, 500);\n return `Email provider returned HTTP ${status}: ${responseDetail}`;\n }\n\n private isRetryableDefiniteRejectionStatus(status: number): boolean {\n return status === 425 || status === 429;\n }\n\n /**\n * Fetch implementations normally abort response-body reads with the request\n * signal, but mocks, polyfills, and some stream failures do not. Race the\n * body promise explicitly so the transport deadline covers both receipt\n * headers and body consumption and can never outlive the durable lease.\n */\n private async readResponseTextWithAbort(\n response: Response,\n signal: AbortSignal,\n ): Promise<string> {\n if (signal.aborted) {\n throw this.abortReasonToError(signal.reason);\n }\n\n let abortListener: (() => void) | undefined;\n const aborted = new Promise<never>((_resolve, reject) => {\n abortListener = () => reject(this.abortReasonToError(signal.reason));\n signal.addEventListener('abort', abortListener, { once: true });\n });\n\n try {\n return await Promise.race([response.text(), aborted]);\n } finally {\n if (abortListener) {\n signal.removeEventListener('abort', abortListener);\n }\n }\n }\n\n private abortReasonToError(reason: unknown): Error {\n return reason instanceof Error\n ? reason\n : new Error(\n typeof reason === 'string'\n ? reason\n : 'Email provider request was aborted',\n );\n }\n\n private describeRejectedRecipients(rejectedRecipients?: Array<{ email: string; reason?: string }>): string {\n if (!rejectedRecipients?.length) {\n return 'Email provider response explicitly rejected the submission';\n }\n return `Email provider rejected recipient(s): ${rejectedRecipients\n .map(({ email, reason }) => reason ? `${email} (${reason})` : email)\n .join(', ')}`;\n }\n\n private responseHeadersToRecord(headers: Headers): Record<string, string> {\n const result: Record<string, string> = {};\n headers.forEach((value, key) => {\n result[key.toLowerCase()] = value;\n });\n return result;\n }\n\n /**\n * Compose the send-endpoint URL from the provider's runtime contract.\n * Substitutes the `{domain}` token (used by Mailgun) when present —\n * any provider that declares `sendEndpointPathTokens: ['domain']` gets\n * the same treatment.\n */\n private composeEmailSendEndpoint(\n baseUrl: string,\n sendEndpointPath: string,\n configuredDomain?: string,\n ): string {\n const path = sendEndpointPath.replace('{domain}', configuredDomain ?? '');\n return `${baseUrl}${path}`;\n }\n\n private buildProviderEmailHeaders(providerConfig: EmailProviderConfig_Network): Record<string, string> {\n const contentHeaders = providerConfig.payloadEncoding === EmailProviderPayloadEncoding.JSON\n ? { [WildoHeaderKeys.CONTENT_TYPE]: 'application/json' }\n : {};\n\n if (providerConfig.authScheme === 'basic') {\n const username = providerConfig.basicUsername ?? 'api';\n return {\n ...contentHeaders,\n [providerConfig.authHeaderName]: `Basic ${Buffer.from(`${username}:${providerConfig.apiKey}`).toString('base64')}`,\n };\n }\n\n const credential = providerConfig.authScheme === 'bearer'\n ? `Bearer ${providerConfig.apiKey}`\n : `${providerConfig.authPrefix ?? ''}${providerConfig.apiKey}`;\n\n return {\n ...contentHeaders,\n [providerConfig.authHeaderName]: credential,\n };\n }\n\n /**\n * Serialize the provider-specific payload into the wire encoding the\n * provider expects. Every branch is driven by the provider module's\n * runtime contract (`payloadEncoding`, `embedsApiKeyInBody`) — no\n * `providerId === '<literal>'` branches.\n */\n private serializeProviderEmailPayload(\n providerConfig: EmailProviderConfig_Network,\n payload: unknown,\n ): BodyInit {\n if (\n providerConfig.payloadEncoding === EmailProviderPayloadEncoding.MULTIPART_FORM_DATA\n ) {\n if (!(payload instanceof FormData)) {\n throw new Error(\n `Email provider '${providerConfig.providerId}' declared multipart-form-data but its request builder did not return FormData`,\n );\n }\n // The provider gateway owns multipart field names and binary parts.\n // Passing the FormData through also lets fetch generate the boundary;\n // buildProviderEmailHeaders intentionally omits Content-Type here.\n return payload;\n }\n\n return JSON.stringify(\n providerConfig.embedsApiKeyInBody\n ? { ...(payload as Record<string, unknown>), key: providerConfig.apiKey }\n : payload,\n );\n }\n\n // Per-provider payload building lives in the provider module's\n // `runtimeContract.buildSendRequest` (one of the six EMAIL_PROVIDER\n // backend modules). The email service no longer branches on provider id.\n\n private createProviderUtils() {\n return {\n getRepository: <T>(resourceType: string): T => {\n throw new Error(`getRepository('${resourceType}') is not available in the email context provider. Inject repository data via additionalContext instead.`);\n },\n logger: {\n debug: (message: string, meta?: Record<string, unknown>) =>\n this.logger.debug(message, meta),\n info: (message: string, meta?: Record<string, unknown>) =>\n this.logger.info(message, meta),\n warn: (message: string, meta?: Record<string, unknown>) =>\n this.logger.warn(message, meta),\n error: (message: string, meta?: Record<string, unknown>) =>\n this.logger.error(message, meta),\n },\n errorBuilder: {\n buildError: (type: string, message: string, details?: Record<string, unknown>) => {\n const err = new Error(message);\n (err as Error & { type: string; details: unknown }).type = type;\n (err as Error & { type: string; details: unknown }).details = details;\n return err;\n },\n },\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"email.backend.service.js","sourceRoot":"","sources":["../../../../../src/notifications/email/services/email.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Email Backend Service\n *\n * Main service for sending emails. Orchestrates:\n * - File-based template resolution via EmailTemplateRegistryBackendService\n * - Context building\n * - React Email rendering (subject fn + body fn → HTML/text)\n * - Provider resolution and HTTP execution\n *\n * ## A sent email leaves LOG LINES and nothing else — by decision (#412, 2026-09-08)\n *\n * There is no persisted record of a sent email anywhere in the framework: no core resource, no\n * delivery log, no per-tenant history. **\"Did this customer receive it?\" is answered with the email\n * provider's own tooling, never with Wildo.** Say that to anyone who asks for it here, rather than\n * treating the absence as a gap to be filled.\n *\n * It reads as an oversight because the sibling subsystem does the opposite: outbound M2M webhooks\n * carry a persisted per-tenant delivery log (`ORGANIZATION_M2M_WEBHOOK_DELIVERY_LOG` and its\n * application twin). The asymmetry is deliberate and the reason is not the table — it is that a\n * persisted email record is a new per-user personal-data store carrying retention policy, privacy\n * classification, subject-export and erasure obligations FOR MESSAGE CONTENT. A metadata-only\n * variant (recipient, template, timestamp, provider id; no body) was on the table and declined too,\n * because it carries the same set of obligations over a smaller payload.\n *\n * Reopening this is legitimate, and it starts with the obligations rather than with the schema.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport { render } from '@react-email/render';\nimport { randomUUID } from 'node:crypto';\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 } 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 {\n getConfiguredFallbackLanguage,\n getConfiguredPrimaryLanguage,\n} from '~wildo-backend-lib/config/services/app-configuration.backend.utils';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport type { FilesBackendService } from '~wildo-backend-lib/files/services/files.backend.service';\nimport type { EmailTemplateRegistryBackendService } from './email-template-registry.backend.service';\nimport { buildEmailBrandTokensFromConfig, type EmailBrandTokens } from '~wildo-backend-lib/notifications/email/utils/color-conversion.utils';\nimport {\n EmailTemplateContext,\n EmailTemplateType_ToEngineCapability,\n EmailTemplateType,\n EngineCapability,\n ErrorCustomMessageReference,\n ErrorType,\n isWildoBackendError,\n WildoHeaderKeys,\n} from '@wildo-ai/saas-models';\nimport type {\n StandardEmail_Attachment,\n StandardEmail_SendRequest,\n StandardEmail_SendResponse,\n} from '@wildo-ai/external-connectors-models';\nimport {\n EmailProviderPayloadEncoding,\n EmailProviderSubmissionClassification,\n ExternalProvider_ExchangeProtocol_Kind,\n StandardEmail_SendRequestSchema,\n StandardEmail_SendResponseSchema,\n ProviderProtocolRuntimeKind,\n} from '@wildo-ai/external-connectors-models';\nimport type {\n EmailProviderSendRequest,\n EmailProviderSendResponseInput,\n EmailProviderPublishedEnvelope,\n} from '@wildo-ai/external-connectors-private/backend';\nimport { AvailableLanguage } from '@wildo-ai/presets-components-models';\nimport {\n EMAIL_PROVIDER_TRANSPORT_TIMEOUT_MS,\n} from '~wildo-backend-lib/notifications/email/models/email-transport.backend.definitions';\nimport { readResponseTextWithinDeadline } from '~wildo-backend-lib/security/outbound/outbound-request-deadline.backend.utils';\nimport { withEngineOwnedHeaders } from '~wildo-backend-lib/security/outbound/outbound-request-headers.backend.utils';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// UTILITIES\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction validateEmailAddresses(emails: string[]): string[] {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emails.filter(email => !emailRegex.test(email.trim()));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// TYPES\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Total size ceiling for the attachments of ONE email, applied after the bytes are resolved (#429).\n *\n * 10 MB, deliberately below every provider ceiling this framework talks to, so an over-size send is\n * refused HERE — naming the files and the measured total — instead of at a vendor whose rejection an\n * application cannot act on. Base64 also inflates the wire payload by roughly a third, so a limit set\n * AT a provider's number would still fail there.\n *\n * ## That claim is now CHECKED, and it used to be three numbers from memory\n *\n * This paragraph named \"SendGrid 30 MB, Mailgun 25 MB, SES 40 MB\" with no source — and this framework\n * ships no SES provider, so one of the three was about a vendor nothing here talks to. Each shipped\n * email provider now DECLARES its vendor's published envelope beside a mandatory `source`\n * (`BackendProviderModule.emailEnvelope`), and `email-provider-envelope-ceiling.test.ts` asserts this\n * constant is strictly below every declared ceiling.\n *\n * So the sentence above is an invariant rather than a recollection: adding a provider whose vendor\n * publishes a tighter envelope than 10 MB fails a test here, instead of failing at that vendor on a\n * customer's send.\n *\n * A constant rather than a config key, until an application needs a different number: a configurable\n * limit that nothing reads is the exact defect this issue closed, and adding the reader is the\n * cheaper half of that change.\n */\nexport const OUTBOUND_ATTACHMENT_TOTAL_BYTES_LIMIT = 10 * 1024 * 1024;\n\n/**\n * The attachment ceiling for one resolved provider: the tighter of the engine default and the\n * vendor's own published envelope.\n *\n * ## Why this is not simply the engine default\n *\n * The default's whole purpose is that an over-size send is refused HERE rather than at a vendor\n * whose rejection an application cannot act on — and that only holds while the number is genuinely\n * under every vendor's ceiling. It was not. `OUTBOUND_ATTACHMENT_TOTAL_BYTES_LIMIT` is 10 MB and\n * **Brevo publishes 4 MB**, so an application on Brevo could pass the engine's check and be refused\n * by the vendor: precisely the outcome the constant exists to prevent, for as long as the constant\n * was calibrated against three vendors named from memory in a comment.\n *\n * Lowering the flat number to Brevo's would have punished every other provider for one vendor's\n * envelope, so the ceiling is per-provider and the default is the FLOOR under providers that\n * publish nothing.\n *\n * ## Both published ceilings are considered\n *\n * A vendor may document a whole-message ceiling, an attachment ceiling, both, or neither, and the\n * two are independent facts rather than derivations of each other — Postmark publishes a 50 MB\n * payload and no attachment ceiling; Resend publishes a 40 MB attachment ceiling and no message\n * ceiling. Taking the minimum of whatever is declared is the only reading that is correct for all\n * four shapes.\n *\n * A message ceiling is a ceiling on MORE than the attachments (headers and body count against it),\n * so using it as an attachment ceiling is deliberately conservative rather than exact — which is\n * the right direction for a refusal that exists to avoid a vendor round trip.\n */\nexport function resolveOutboundAttachmentCeiling(envelope: EmailProviderPublishedEnvelope | undefined): number {\n const declared = [envelope?.maxMessageSizeMB, envelope?.maxAttachmentSizeMB]\n .filter((value): value is number => typeof value === 'number' && value > 0)\n .map((megabytes) => megabytes * 1024 * 1024);\n // An absent envelope, or one publishing no ceiling at all, keeps the engine default. That is the\n // honest answer rather than \"unlimited\": the default exists precisely for the provider whose\n // vendor says nothing.\n return Math.min(OUTBOUND_ATTACHMENT_TOTAL_BYTES_LIMIT, ...declared);\n}\n\n\nexport interface EmailSendRequest {\n /**\n * Stable identity of one logical provider submission. A caller that can\n * retry across process/job boundaries must persist and reuse this value.\n * Ephemeral callers may omit it and let the service allocate one.\n */\n submissionId?: string;\n /** Template reference (e.g., \"system.welcome_email\") */\n templateRef: string;\n /** Locale for template selection */\n locale: AvailableLanguage;\n /** Email type for provider routing */\n type: EmailTemplateType;\n /** Primary recipient email(s) */\n to: string | string[];\n /** CC recipients (optional) */\n cc?: string[];\n /** BCC recipients (optional) */\n bcc?: string[];\n /** Reply-to address (optional) */\n replyTo?: string;\n /** From address (optional - uses provider default if not specified) */\n from?: string;\n /** Context for template rendering */\n context: EmailTemplateContext;\n /** File IDs for attachments (optional) */\n attachmentFileIds?: string[];\n /** Organization ID for org-scoped templates (optional) */\n organizationId?: string;\n}\n\nexport enum EmailSubmissionOutcome {\n NOT_SUBMITTED = 'not_submitted',\n PROVIDER_ACCEPTED = 'provider_accepted',\n PROVIDER_REJECTED = 'provider_rejected',\n ACCEPTANCE_UNKNOWN = 'acceptance_unknown',\n}\n\nexport interface EmailSendResult {\n success: boolean;\n /**\n * Whether an at-least-once caller should retry. An acceptance-unknown retry\n * can duplicate an externally visible email; provider-native idempotency is\n * only an optional risk reduction.\n */\n retryable: boolean;\n submissionId: string;\n outcome: EmailSubmissionOutcome;\n /** All honest provider receipts. Empty means no receipt was returned. */\n providerMessageIds: string[];\n /** Provider confirmed that this logical submission was already accepted. */\n deduplicated?: boolean;\n rejectedRecipients?: Array<{ email: string; reason?: string }>;\n providerId?: string;\n error?: string;\n templateRef: string;\n recipientCount: number;\n}\n\n/**\n * Fields common to every resolved email provider regardless of delivery\n * mode. `from*` come from the app's `providerConfigurations` override, not\n * the runtime contract.\n */\ninterface EmailProviderConfig_Base {\n providerId: string;\n fromAddress?: string;\n fromName?: string;\n /**\n * The attachment ceiling that applies to THIS provider, in bytes.\n *\n * The engine default (`OUTBOUND_ATTACHMENT_TOTAL_BYTES_LIMIT`) unless the resolved vendor publishes\n * a tighter envelope, in which case the vendor's is used — see `resolveOutboundAttachmentCeiling`.\n */\n outboundAttachmentCeilingBytes: number;\n}\n\n/**\n * Network delivery — the resolved shape for every real provider (Resend,\n * SendGrid, …). Carries the composed endpoint, auth material, and the\n * provider-specific request builder/parser used by\n * `executeProviderRequest`'s `fetch` path.\n */\ninterface EmailProviderConfig_Network extends EmailProviderConfig_Base {\n delivery: 'network';\n apiKey: string;\n endpoint: string;\n authHeaderName: string;\n authPrefix?: string;\n authScheme?: 'api-key' | 'bearer' | 'basic';\n basicUsername?: string;\n domain?: string;\n /**\n * Wire encoding the provider expects for its request body. Every network\n * provider declares this on its runtime contract; there is no fallback\n * encoding at the consumer boundary.\n */\n payloadEncoding: EmailProviderPayloadEncoding;\n /**\n * Whether the provider expects the API key to be embedded in the JSON\n * payload body (Mailchimp's `key` field). Sourced from the provider\n * module's `runtimeContract.embedsApiKeyInBody`. Defaults to `false`.\n */\n embedsApiKeyInBody: boolean;\n /**\n * Per-provider send-payload builder. Sourced from the provider\n * module's `runtimeContract.buildSendRequest`. Receives the\n * normalized `StandardEmail_SendRequest` plus the optional\n * `configuredDomain` (Mailgun's `{domain}` token).\n */\n buildSendRequest: (\n input: { request: StandardEmail_SendRequest; configuredDomain?: string },\n ) => EmailProviderSendRequest;\n parseSendResponse: (\n input: EmailProviderSendResponseInput,\n ) => StandardEmail_SendResponse;\n}\n\n/**\n * Log delivery — the resolved shape for the dev `preview` provider. Carries\n * NO endpoint / apiKey / payload builder because it never opens a socket;\n * `executeProviderRequest` renders + logs the email without fabricating a\n * provider receipt. Discriminated from network on `delivery` so consumers branch\n * on the contract, never on the provider ref.\n */\ninterface EmailProviderConfig_Log extends EmailProviderConfig_Base {\n delivery: 'log';\n}\n\ntype EmailProviderConfig = EmailProviderConfig_Network | EmailProviderConfig_Log;\n\ntype EmailProviderExecutionResult =\n | {\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED;\n response: StandardEmail_SendResponse;\n receiptParseError?: string;\n /**\n * The adapter explicitly classified the submission as accepted but\n * violated another response-contract invariant. Acceptance remains the\n * no-replay authority while the violation stays observable.\n */\n adapterContractViolation?: string;\n }\n | {\n outcome:\n | EmailSubmissionOutcome.PROVIDER_REJECTED\n | EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN;\n error: string;\n retryable: boolean;\n };\n\ninterface EmailAddress {\n email: string;\n name?: string;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// SERVICE\n// ─────────────────────────────────────────────────────────────────────────────\n\n@injectable()\nexport class EmailBackendService {\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.EmailTemplateRegistry) private readonly templateRegistry: EmailTemplateRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly configService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService) private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n /*\n * Attachments (#429). Injected `@optional()` because a deployment that never attaches a file\n * should not fail to construct its email service, and because the resolution is reached only\n * when a caller supplies `attachmentFileIds` — an absent binding then refuses that one send\n * with a named error rather than silently dropping the attachment, which is the defect this\n * closes.\n */\n @inject(SAAS_SERVICE_TYPES.FilesBackendService) @optional() private readonly filesService: FilesBackendService | undefined,\n ) {\n this.logDebug = this.logger.debugByType('EmailBackendService');\n this.logger.setDebugTypeLogging('EmailBackendService', false);\n }\n\n /**\n * Send an email using a file-based template definition.\n */\n async send(request: EmailSendRequest): Promise<EmailSendResult> {\n const startTime = Date.now();\n const submissionId = request.submissionId ?? randomUUID();\n let providerTransportStarted = false;\n this.logger.info('Sending email', {\n templateRef: request.templateRef,\n submissionId,\n locale: request.locale,\n recipientCount: Array.isArray(request.to) ? request.to.length : 1,\n });\n\n try {\n // 0. Validate email addresses\n const recipients = Array.isArray(request.to) ? request.to : [request.to];\n const allEmails = [\n ...recipients,\n ...(request.cc || []),\n ...(request.bcc || []),\n ...(request.replyTo ? [request.replyTo] : []),\n ];\n\n const invalidEmails = validateEmailAddresses(allEmails);\n if (invalidEmails.length > 0) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.EMAIL_INVALID_ADDRESS_FORMAT,\n context: {\n // diagnostic (log-only)\n invalidEmails,\n },\n },\n );\n }\n\n // 1. Resolve template + labels from file-based registry\n const defaultLocale = this.getDefaultLocale();\n const resolved = this.templateRegistry.resolve(\n request.templateRef,\n request.locale,\n defaultLocale,\n this.getFallbackLocale(),\n );\n\n // 2. Get design tokens\n const brandTokens = this.getDesignTokens();\n\n // 3. Build full context\n const fullContext: EmailTemplateContext = {\n currentObject: request.context.currentObject,\n objectContext: request.context.objectContext,\n userContext: request.context.userContext,\n additionalContext: {\n ...(request.context.additionalContext as Record<string, unknown> || {}),\n },\n };\n\n // 5. Render subject and body from definition functions\n const templateProps = { context: fullContext, brand: brandTokens, labels: resolved.labels };\n const subject = resolved.definition.subject(templateProps);\n const bodyElement = resolved.definition.body(templateProps);\n\n const bodyHtml = await render(bodyElement, { pretty: true });\n const bodyText = await render(bodyElement, { plainText: true });\n\n // 6. Resolve provider\n const emailType = resolved.definition.type ?? request.type;\n const engineCapability = EmailTemplateType_ToEngineCapability[emailType];\n const providerConfig = this.resolveEmailProvider(engineCapability);\n\n // 6b. Resolve caller-supplied attachments to bytes (#429). Before the request is built,\n // because a file that cannot be served must refuse the send rather than produce an email\n // that silently lacks what the caller attached.\n const attachments = await this.resolveAttachments(request, providerConfig.outboundAttachmentCeilingBytes);\n\n // 7. Build email request\n const emailRequest = this.buildEmailRequest(\n request,\n submissionId,\n { subject, bodyHtml, bodyText },\n providerConfig,\n recipients,\n attachments,\n );\n\n const providerRequest = providerConfig.delivery === 'network'\n ? providerConfig.buildSendRequest({\n request: emailRequest,\n configuredDomain: providerConfig.domain,\n })\n : undefined;\n\n // 8. Execute send via provider\n const execution = await this.executeProviderRequest(\n providerConfig,\n emailRequest,\n providerRequest,\n () => {\n providerTransportStarted = true;\n },\n );\n const durationMs = Date.now() - startTime;\n\n if (execution.outcome !== EmailSubmissionOutcome.PROVIDER_ACCEPTED) {\n this.logger.warn('Email provider did not confirm acceptance', {\n templateRef: request.templateRef,\n submissionId,\n outcome: execution.outcome,\n providerId: providerConfig.providerId,\n error: execution.error,\n durationMs,\n });\n return {\n success: false,\n retryable: execution.retryable,\n submissionId,\n outcome: execution.outcome,\n providerMessageIds: [],\n providerId: providerConfig.providerId,\n error: execution.error,\n templateRef: request.templateRef,\n recipientCount: recipients.length,\n };\n }\n\n const providerMessageIds = execution.response.providerMessageIds;\n this.logger.info('Email submission accepted', {\n templateRef: request.templateRef,\n submissionId,\n providerMessageIds,\n deduplicated: execution.response.deduplicated,\n providerReceiptMissing: providerMessageIds.length === 0,\n receiptParseError: execution.receiptParseError,\n adapterContractViolation: execution.adapterContractViolation,\n providerId: providerConfig.providerId,\n durationMs,\n });\n\n return {\n success: execution.response.success,\n retryable: false,\n submissionId,\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED,\n providerMessageIds,\n deduplicated: execution.response.deduplicated,\n rejectedRecipients: execution.response.rejectedRecipients,\n providerId: providerConfig.providerId,\n error: execution.adapterContractViolation\n ?? (execution.response.success\n ? undefined\n : this.describeRejectedRecipients(\n execution.response.rejectedRecipients,\n )),\n templateRef: request.templateRef,\n recipientCount: recipients.length,\n };\n } catch (err) {\n const error = err as Error;\n const durationMs = Date.now() - startTime;\n\n this.logger.error('Email send failed', {\n templateRef: request.templateRef,\n errorMessage: error.message,\n durationMs,\n });\n\n if (isWildoBackendError(err) && (err.type === ErrorType.CONFIGURATION || err.type === ErrorType.VALIDATION)) {\n throw err;\n }\n\n return {\n success: false,\n retryable: true,\n submissionId,\n outcome: providerTransportStarted\n ? EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN\n : EmailSubmissionOutcome.NOT_SUBMITTED,\n providerMessageIds: [],\n error: error.message,\n templateRef: request.templateRef,\n recipientCount: Array.isArray(request.to) ? request.to.length : 1,\n };\n }\n }\n\n /**\n * Send email to multiple recipients individually (different context per recipient).\n */\n async sendToMultiple(requests: EmailSendRequest[]): Promise<EmailSendResult[]> {\n const results: EmailSendResult[] = [];\n for (const request of requests) {\n const result = await this.send(request);\n results.push(result);\n }\n return results;\n }\n\n private getDefaultLocale(): AvailableLanguage {\n return getConfiguredPrimaryLanguage(this.configService.config);\n }\n\n private getFallbackLocale(): AvailableLanguage {\n return getConfiguredFallbackLanguage(this.configService.config);\n }\n\n private getDesignTokens(): EmailBrandTokens {\n try {\n return buildEmailBrandTokensFromConfig(this.configService.config.email?.brandTokens);\n } catch (err) {\n this.logger.warn('Failed to extract design tokens, using defaults', {\n errorMessage: (err as Error).message,\n });\n return buildEmailBrandTokensFromConfig(undefined);\n }\n }\n\n private resolveEmailProvider(capability: EngineCapability): EmailProviderConfig {\n const providerId = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(capability);\n\n if (!providerId) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `No email provider configured for capability: ${capability}`, capability } },\n );\n }\n\n if (!this.externalProvidersRegistry.isProviderEnabled(providerId, ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER)) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `Email provider is disabled by external provider configuration: ${providerId}`, providerId, capability } },\n );\n }\n\n const emailContract = this.externalProvidersRegistry.getProviderConfiguration(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,\n )?.runtimeContract;\n if (emailContract?.kind !== ProviderProtocolRuntimeKind.EMAIL) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `No EMAIL_PROVIDER runtime contract found for provider: ${providerId}`, providerId, capability } },\n );\n }\n\n const appConfig = this.configService.config as Record<string, unknown>;\n const providersConfig = appConfig?.providerConfigurations as Record<string, Record<string, {\n fromAddress?: string;\n fromName?: string;\n domain?: string;\n }> | undefined> | undefined;\n const providerConfig = providersConfig?.[providerId]?.[ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER];\n\n // Non-sending delivery (the dev `preview` provider): no endpoint, no\n // API key. Branch on the CONTRACT field — never the provider ref — so\n // this stays a first-class provider and passes the\n // no-provider-ref-branches guard; `executeProviderRequest` renders +\n // logs instead of opening a socket. Resolved BEFORE the API-key\n // requirement below so a log provider doesn't need a secret at all.\n if (emailContract.delivery === 'log') {\n return {\n providerId,\n // Per-provider, because the engine default is NOT below every vendor's envelope — Brevo\n // publishes 4 MB against the default's 10 MB. See `resolveOutboundAttachmentCeiling`.\n outboundAttachmentCeilingBytes: resolveOutboundAttachmentCeiling(emailContract.publishedEnvelope),\n delivery: 'log',\n fromAddress: providerConfig?.fromAddress,\n fromName: providerConfig?.fromName,\n };\n }\n\n // Network delivery — a live provider API key is required.\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(\n providerId,\n ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,\n );\n if (!apiKey) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `No env-provided API key configured for provider: ${providerId}`, providerId, capability } },\n );\n }\n\n // Resolve the path-token domain (Mailgun) from the contract's declared\n // `sendEndpointPathTokens`. The branch is contract-driven, not ref-keyed:\n // any provider that declares the `'domain'` token gets the same treatment.\n const requiresDomainToken = emailContract.sendEndpointPathTokens?.includes('domain') === true;\n const configuredDomain = requiresDomainToken\n ? providerConfig?.domain ?? process.env[`${providerId.toUpperCase()}_DOMAIN`]\n : providerConfig?.domain;\n if (requiresDomainToken && !configuredDomain) {\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n { context: { message: `Email provider '${providerId}' declares a {domain} send-endpoint token but no domain is configured.`, providerId } },\n );\n }\n\n return {\n providerId,\n // Per-provider, because the engine default is NOT below every vendor's envelope — Brevo\n // publishes 4 MB against the default's 10 MB. See `resolveOutboundAttachmentCeiling`.\n outboundAttachmentCeilingBytes: resolveOutboundAttachmentCeiling(emailContract.publishedEnvelope),\n delivery: 'network',\n apiKey,\n endpoint: this.composeEmailSendEndpoint(emailContract.baseUrl, emailContract.sendEndpointPath, configuredDomain),\n authHeaderName: emailContract.apiKey.headerName,\n authPrefix: emailContract.apiKey.prefix,\n authScheme: emailContract.apiKey.scheme,\n basicUsername: emailContract.apiKey.basicUsername,\n fromAddress: providerConfig?.fromAddress,\n fromName: providerConfig?.fromName,\n domain: configuredDomain,\n payloadEncoding: emailContract.payloadEncoding,\n embedsApiKeyInBody: emailContract.embedsApiKeyInBody === true,\n buildSendRequest: emailContract.buildSendRequest,\n parseSendResponse: emailContract.parseSendResponse,\n };\n }\n\n /**\n * Resolve `attachmentFileIds` to the vendor-neutral `attachments` array several provider adapters\n * already map (#429).\n *\n * Until this existed the field was declared and read by nothing, so a caller supplying an\n * attachment got a successful send and an attachment-less email. Every refusal below therefore\n * THROWS: a silent drop is the defect, and error handling that drops quietly is the same defect.\n *\n * ## The size cap is the framework's, not a provider's\n *\n * {@link OUTBOUND_ATTACHMENT_TOTAL_BYTES_LIMIT} is deliberately below every provider limit this\n * framework talks to, so the refusal happens HERE — with the file ids and the measured total in\n * the error — rather than at a vendor that answers with a rejected submission and a message the\n * application cannot act on. It is a named constant rather than a config key on purpose: an\n * authored limit nothing read is precisely the class of defect this issue came from, and a\n * config surface can be added the day an application needs a different number.\n *\n * ## What is NOT checked here, and why\n *\n * The file TYPE. A file reaching this point has already passed upload-time validation and, where\n * the field opts into scanning, the scanner — and the status gate inside\n * `readFilesForOutboundAttachment` admits only what the download route would serve, which\n * excludes INFECTED. Re-deciding admissible types at send time would be a second policy that can\n * disagree with the first.\n */\n private async resolveAttachments(request: EmailSendRequest, ceilingBytes: number): Promise<StandardEmail_Attachment[]> {\n const fileIds = request.attachmentFileIds ?? [];\n if (fileIds.length === 0) {\n return [];\n }\n\n if (!this.filesService) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'Email attachments were requested but the files service is not bound',\n attachmentCount: fileIds.length,\n },\n });\n }\n\n const resolved = await this.filesService.readFilesForOutboundAttachment(fileIds, {\n applicationId: this.configService.applicationId ?? undefined,\n // The tenancy confinement. An organization-scoped send reaches only that organization's\n // files; a send without one reaches only application-scoped files.\n ...(request.organizationId ? { organizationId: request.organizationId } : {}),\n });\n\n const totalBytes = resolved.reduce((total, file) => total + file.bytes.byteLength, 0);\n if (totalBytes > ceilingBytes) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n message: 'Email attachments exceed the outbound total-size limit',\n totalBytes,\n limitBytes: ceilingBytes,\n // Both numbers, because \"which limit refused me\" is the first question an application asks\n // and the answer differs by provider: the engine default, or a tighter vendor envelope.\n engineDefaultLimitBytes: OUTBOUND_ATTACHMENT_TOTAL_BYTES_LIMIT,\n fileIds: resolved.map((file) => file.fileId),\n },\n });\n }\n\n return resolved.map((file) => ({\n filename: file.filename,\n content: file.bytes.toString('base64'),\n contentType: file.mimeType,\n }));\n }\n\n private buildEmailRequest(\n request: EmailSendRequest,\n submissionId: string,\n rendered: { subject: string; bodyHtml: string; bodyText: string },\n providerConfig: EmailProviderConfig,\n recipients: string[],\n attachments: StandardEmail_Attachment[],\n ): StandardEmail_SendRequest {\n const toAddresses: EmailAddress[] = recipients.map(email => ({ email }));\n\n // From-address precedence: per-send override → per-provider config\n // (`providerConfigurations.<provider>.EMAIL_PROVIDER.fromAddress`) → the\n // app's global `email.from`. The latter is REQUIRED by\n // `AppConfiguration_Email_Schema`, so it is the normal source; the literal\n // fallback is a defensive last resort that should be unreachable once\n // config is initialized. Previously `email.from` was silently ignored —\n // the send fell back to the literal, producing an unverified/invalid\n // sender that providers reject.\n const configuredFrom = this.configService.config.email?.from;\n const from: EmailAddress = {\n email: request.from || providerConfig.fromAddress || configuredFrom || 'noreply@example.com',\n name: providerConfig.fromName,\n };\n\n return StandardEmail_SendRequestSchema.parse({\n submissionId,\n from,\n to: toAddresses,\n cc: request.cc?.map(email => ({ email })),\n bcc: request.bcc?.map(email => ({ email })),\n replyTo: request.replyTo ? { email: request.replyTo } : undefined,\n subject: rendered.subject,\n html: rendered.bodyHtml,\n text: rendered.bodyText,\n // Omitted rather than sent empty: the field is optional on the vendor-neutral contract and\n // several adapters branch on its presence.\n ...(attachments.length > 0 ? { attachments } : {}),\n });\n }\n\n private async executeProviderRequest(\n providerConfig: EmailProviderConfig,\n request: StandardEmail_SendRequest,\n providerRequest?: EmailProviderSendRequest,\n onTransportStart?: () => void,\n ): Promise<EmailProviderExecutionResult> {\n // Log delivery (dev `preview` provider): the template is already\n // rendered — surface it in the logs (subject, recipients, body preview)\n // without inventing a provider receipt. No network I/O. Narrowing on the\n // contract-derived `delivery` field also gates the network-only fields\n // (`endpoint`, `buildSendRequest`, …) accessed below.\n if (providerConfig.delivery === 'log') {\n const recipients = request.to.map(recipient => recipient.email);\n this.logger.info('[email-preview] Email logged instead of sent (log-delivery provider)', {\n providerId: providerConfig.providerId,\n submissionId: request.submissionId,\n from: request.from?.email,\n to: recipients,\n cc: request.cc?.map(recipient => recipient.email),\n bcc: request.bcc?.map(recipient => recipient.email),\n subject: request.subject,\n textPreview: request.text?.slice(0, 2000),\n /*\n * DERIVED FACTS ABOUT THE HTML, never the HTML itself (#522).\n *\n * This provider is how a developer sees a local send, and it surfaced a TEXT preview only —\n * so anything that exists only in the HTML was invisible here. A brand logo is an `<img>`,\n * which is a fair part of why ninety-five templates rendered none without anyone noticing.\n *\n * The body is not logged. That is the same rule the attachment line below already follows —\n * names, never the bytes — and a full HTML email in a log line would be both unreadable and\n * a place for personal data to accumulate. `imageCount` is the smallest fact that tells the\n * two cases apart, which is all the dev loop needs: 0 where a logo did not resolve, 1 where\n * it did.\n *\n * Writing the rendered HTML to a FILE a developer can open is the better surface and is a\n * real decision — where it lives, who removes it, and which environments produce it — so it\n * is recorded rather than invented inside a provider branch.\n */\n htmlBytes: request.html === undefined ? undefined : Buffer.byteLength(request.html, 'utf8'),\n imageCount: request.html === undefined ? undefined : (request.html.match(/<img\\b/gi) ?? []).length,\n // Names only, never the bytes (#429). The log-delivery provider is how a developer sees a\n // local send, so an attachment that resolved has to be visible here — otherwise the dev\n // loop looks identical whether the resolution worked or silently produced nothing, which\n // is the failure this whole path exists to remove.\n attachments: request.attachments?.map((attachment) => ({\n filename: attachment.filename,\n contentType: attachment.contentType,\n bytes: Buffer.from(attachment.content, 'base64').byteLength,\n })),\n });\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED,\n response: {\n success: true,\n classification: EmailProviderSubmissionClassification.ACCEPTED,\n providerMessageIds: [],\n },\n };\n }\n\n // Build the provider projection before transport so adapter failures are\n // distinguishable from acceptance-unknown network failures.\n if (!providerRequest) {\n throw new Error('Network email submission is missing its provider request');\n }\n /*\n * The engine's credential is authoritative, and the provider's headers cannot reach it.\n *\n * This merge previously spread `transportHeaders` LAST, which is the strongest form of the\n * defect corrected across the outbound arms on 2026-09-09: an identical spelling let a provider\n * REPLACE the engine's `Authorization` outright, and a differing one produced two object keys\n * that `fetch` combines into `authorization: <provider>, <engine>` — a request that\n * authenticates with neither. Neither outcome is one a provider function should be able to\n * cause; it never receives a credential in the first place.\n *\n * Nothing legitimate is lost: the shipped providers contribute `Accept` (Postmark) and\n * `Idempotency-Key` (Resend), and both still reach the wire untouched.\n */\n const headers = withEngineOwnedHeaders(\n providerRequest.transportHeaders,\n this.buildProviderEmailHeaders(providerConfig),\n );\n const body = this.serializeProviderEmailPayload(\n providerConfig,\n providerRequest.payload,\n );\n\n const abortController = new AbortController();\n const timeoutHandle = setTimeout(\n () => abortController.abort(\n new Error(\n `Email provider request exceeded ${EMAIL_PROVIDER_TRANSPORT_TIMEOUT_MS}ms`,\n ),\n ),\n EMAIL_PROVIDER_TRANSPORT_TIMEOUT_MS,\n );\n let response: Response;\n try {\n onTransportStart?.();\n response = await fetch(providerConfig.endpoint, {\n method: 'POST',\n headers,\n body,\n signal: abortController.signal,\n });\n } catch (error) {\n clearTimeout(timeoutHandle);\n // Once fetch starts, a transport exception gives no trustworthy evidence\n // about whether the provider received the bytes. At-least-once recovery\n // retries this outcome and accepts the possibility of a duplicate.\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: describeCaughtError(error),\n retryable: true,\n };\n }\n\n try {\n let responseText = '';\n let responseReadError: string | undefined;\n try {\n responseText = await this.readResponseTextWithAbort(\n response,\n abortController.signal,\n );\n } catch (error) {\n // Keep the deadline active through response-body consumption so a\n // provider that returns headers but stalls its body cannot retain this\n // request indefinitely.\n responseReadError = describeCaughtError(error);\n } finally {\n clearTimeout(timeoutHandle);\n }\n\n const parserInput: EmailProviderSendResponseInput = {\n status: response.status,\n headers: this.responseHeadersToRecord(response.headers),\n body: this.bestEffortParseResponseBody(responseText),\n };\n\n let parsedResponse: StandardEmail_SendResponse | undefined;\n let parserFailure: string | undefined;\n let acceptedContractViolation: string | undefined;\n try {\n const providerParsedResponse = providerConfig.parseSendResponse(parserInput);\n const validatedResponse = StandardEmail_SendResponseSchema.safeParse(\n providerParsedResponse,\n );\n if (validatedResponse.success) {\n parsedResponse = validatedResponse.data;\n } else {\n parserFailure = `Provider response parser violated StandardEmail_SendResponse: ${validatedResponse.error.message}`;\n this.logger.error(\n 'Email provider response adapter contract violation',\n {\n providerId: providerConfig.providerId,\n submissionId: request.submissionId,\n httpStatus: response.status,\n validationError: validatedResponse.error.message,\n },\n );\n if (\n typeof providerParsedResponse === 'object'\n && providerParsedResponse !== null\n && providerParsedResponse.classification === EmailProviderSubmissionClassification.ACCEPTED\n ) {\n /**\n * `classification` is the adapter's provider-aware submission\n * authority. Once it explicitly says ACCEPTED, a malformed\n * receipt, retry hint, or convenience field must remain an\n * observable contract defect without authorizing a duplicate\n * at-least-once replay.\n */\n acceptedContractViolation = parserFailure;\n parsedResponse = {\n success: false,\n classification:\n EmailProviderSubmissionClassification.ACCEPTED,\n providerMessageIds: [],\n };\n }\n }\n } catch (error) {\n parserFailure = describeCaughtError(error);\n }\n\n if (parsedResponse) {\n if (\n parsedResponse.classification === EmailProviderSubmissionClassification.ACCEPTANCE_UNKNOWN\n ) {\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: parsedResponse.providerError\n ?? this.buildProviderHttpError(\n response.status,\n responseText,\n responseReadError,\n ),\n retryable: parsedResponse.retryable ?? true,\n };\n }\n\n if (\n parsedResponse.classification === EmailProviderSubmissionClassification.REJECTED\n ) {\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_REJECTED,\n error: parsedResponse.providerError\n ?? this.describeRejectedRecipients(\n parsedResponse.rejectedRecipients,\n ),\n retryable: parsedResponse.retryable\n ?? this.isRetryableDefiniteRejectionStatus(response.status),\n };\n }\n\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_ACCEPTED,\n response: parsedResponse,\n receiptParseError: responseReadError,\n adapterContractViolation: acceptedContractViolation,\n };\n }\n\n if (response.ok) {\n // HTTP 2xx alone is not universal acceptance evidence. Postmark and\n // Mailchimp, for example, can encode semantic rejection inside a 2xx\n // body. If the provider-owned classifier failed or violated its schema,\n // the only honest state is ambiguous acceptance.\n const classificationError = responseReadError\n ?? parserFailure\n ?? 'Provider response adapter returned no valid classification';\n this.logger.error(\n 'Email provider 2xx response could not be classified',\n {\n providerId: providerConfig.providerId,\n submissionId: request.submissionId,\n httpStatus: response.status,\n classificationError,\n },\n );\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: classificationError,\n retryable: true,\n };\n }\n\n const providerHttpError = this.buildProviderHttpError(\n response.status,\n responseText,\n responseReadError,\n );\n const genericError = parserFailure\n ? `${providerHttpError}; provider response parser failed: ${parserFailure}`\n : providerHttpError;\n if (\n response.status === 408\n || response.status === 409\n || response.status >= 500\n ) {\n // A timeout, conflict, or 5xx may be emitted after an upstream accepted\n // the request. Provider adapters can override this only when their body\n // contract provides stronger evidence.\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: genericError,\n retryable: true,\n };\n }\n return {\n outcome: EmailSubmissionOutcome.PROVIDER_REJECTED,\n error: genericError,\n retryable: this.isRetryableDefiniteRejectionStatus(response.status),\n };\n } catch (error) {\n clearTimeout(timeoutHandle);\n // Fetch already resolved, so even a local post-response bug cannot prove\n // that the provider did not accept the bytes. At-least-once recovery\n // retries and may duplicate the externally visible message.\n return {\n outcome: EmailSubmissionOutcome.ACCEPTANCE_UNKNOWN,\n error: describeCaughtError(error),\n retryable: true,\n };\n }\n }\n\n private bestEffortParseResponseBody(responseText: string): unknown {\n if (responseText.trim().length === 0) return undefined;\n try {\n return JSON.parse(responseText) as unknown;\n } catch {\n return responseText;\n }\n }\n\n private buildProviderHttpError(\n status: number,\n responseText: string,\n responseFailure?: string,\n ): string {\n const responseDetail = responseFailure\n ? `response unavailable (${responseFailure})`\n : responseText.substring(0, 500);\n return `Email provider returned HTTP ${status}: ${responseDetail}`;\n }\n\n private isRetryableDefiniteRejectionStatus(status: number): boolean {\n return status === 425 || status === 429;\n }\n\n /**\n * Fetch implementations normally abort response-body reads with the request\n * signal, but mocks, polyfills, and some stream failures do not. Race the\n * body promise explicitly so the transport deadline covers both receipt\n * headers and body consumption and can never outlive the durable lease.\n */\n private async readResponseTextWithAbort(\n response: Response,\n signal: AbortSignal,\n ): Promise<string> {\n // The race itself is shared with every other substitutable outbound transport, so the property\n // has one implementation rather than one per subsystem.\n return readResponseTextWithinDeadline(response, signal);\n }\n\n private describeRejectedRecipients(rejectedRecipients?: Array<{ email: string; reason?: string }>): string {\n if (!rejectedRecipients?.length) {\n return 'Email provider response explicitly rejected the submission';\n }\n return `Email provider rejected recipient(s): ${rejectedRecipients\n .map(({ email, reason }) => reason ? `${email} (${reason})` : email)\n .join(', ')}`;\n }\n\n private responseHeadersToRecord(headers: Headers): Record<string, string> {\n const result: Record<string, string> = {};\n headers.forEach((value, key) => {\n result[key.toLowerCase()] = value;\n });\n return result;\n }\n\n /**\n * Compose the send-endpoint URL from the provider's runtime contract.\n * Substitutes the `{domain}` token (used by Mailgun) when present —\n * any provider that declares `sendEndpointPathTokens: ['domain']` gets\n * the same treatment.\n */\n private composeEmailSendEndpoint(\n baseUrl: string,\n sendEndpointPath: string,\n configuredDomain?: string,\n ): string {\n const path = sendEndpointPath.replace('{domain}', configuredDomain ?? '');\n return `${baseUrl}${path}`;\n }\n\n private buildProviderEmailHeaders(providerConfig: EmailProviderConfig_Network): Record<string, string> {\n const contentHeaders = providerConfig.payloadEncoding === EmailProviderPayloadEncoding.JSON\n ? { [WildoHeaderKeys.CONTENT_TYPE]: 'application/json' }\n : {};\n\n if (providerConfig.authScheme === 'basic') {\n const username = providerConfig.basicUsername ?? 'api';\n return {\n ...contentHeaders,\n [providerConfig.authHeaderName]: `Basic ${Buffer.from(`${username}:${providerConfig.apiKey}`).toString('base64')}`,\n };\n }\n\n const credential = providerConfig.authScheme === 'bearer'\n ? `Bearer ${providerConfig.apiKey}`\n : `${providerConfig.authPrefix ?? ''}${providerConfig.apiKey}`;\n\n return {\n ...contentHeaders,\n [providerConfig.authHeaderName]: credential,\n };\n }\n\n /**\n * Serialize the provider-specific payload into the wire encoding the\n * provider expects. Every branch is driven by the provider module's\n * runtime contract (`payloadEncoding`, `embedsApiKeyInBody`) — no\n * `providerId === '<literal>'` branches.\n */\n private serializeProviderEmailPayload(\n providerConfig: EmailProviderConfig_Network,\n payload: unknown,\n ): BodyInit {\n if (\n providerConfig.payloadEncoding === EmailProviderPayloadEncoding.MULTIPART_FORM_DATA\n ) {\n if (!(payload instanceof FormData)) {\n throw new Error(\n `Email provider '${providerConfig.providerId}' declared multipart-form-data but its request builder did not return FormData`,\n );\n }\n // The provider gateway owns multipart field names and binary parts.\n // Passing the FormData through also lets fetch generate the boundary;\n // buildProviderEmailHeaders intentionally omits Content-Type here.\n return payload;\n }\n\n return JSON.stringify(\n providerConfig.embedsApiKeyInBody\n ? { ...(payload as Record<string, unknown>), key: providerConfig.apiKey }\n : payload,\n );\n }\n\n // Per-provider payload building lives in the provider module's\n // `runtimeContract.buildSendRequest` (one of the six EMAIL_PROVIDER\n // backend modules). The email service no longer branches on provider id.\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-conversion.utils.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"color-conversion.utils.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/utils/color-conversion.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA4BrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBhD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,gBAezC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,CAAC,EAAE;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CAGrB,GACA,gBAAgB,CAYlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-conversion.utils.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"color-conversion.utils.js","sourceRoot":"","sources":["../../../../../src/notifications/email/utils/color-conversion.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAS,MAAM,QAAQ,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,mDAAmD;YACnD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACjF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,GAAU;oBACnB,IAAI,EAAE,OAAO;oBACb,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvB,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACxB,CAAC;gBACF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;YACvC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,iBAAiB;QACjB,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,SAAS,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,yDAAyD;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,cAAc;IACd,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;IACR,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,SAAS,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAsBD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqB;IAC3D,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,SAAS;IAC5B,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,UAAU,EAAE,SAAS;IACrB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,gBAAgB,EAAE,SAAS;IAC3B,YAAY,EAAE,QAAQ;IACtB,UAAU,EAAE,8BAA8B;IAC1C,iBAAiB,EAAE,8BAA8B;CAClD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,WAMC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,GAAG,2BAA2B,EAAE,CAAC;IAE5D,OAAO;QACL,GAAG,2BAA2B;QAC9B,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,WAAW,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI;YAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,iBAAiB,EAAE,WAAW,CAAC,UAAU;SAC1C,CAAC;KACH,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Color Conversion Utilities\n * \n * Utilities for converting colors between formats for email compatibility.\n * Email clients don't support OKLCH, so we need to convert to Hex.\n */\n\nimport { oklch, formatHex, Oklch } from 'culori';\n\n/**\n * Convert an OKLCH color string to Hex\n * \n * @param oklchColor - OKLCH color string (e.g., \"oklch(0.7 0.15 180)\")\n * @returns Hex color string (e.g., \"#4fa3a3\")\n */\nexport function oklchToHex(oklchColor: string): string {\n try {\n // Parse the OKLCH color\n const parsed = oklch(oklchColor);\n \n if (!parsed) {\n // If parsing fails, try to extract values manually\n const match = oklchColor.match(/oklch\\(\\s*([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\s*\\)/i);\n if (match) {\n const color: Oklch = {\n mode: 'oklch',\n l: parseFloat(match[1]),\n c: parseFloat(match[2]),\n h: parseFloat(match[3]),\n };\n return formatHex(color) || '#000000';\n }\n return '#000000';\n }\n \n // Convert to Hex\n const hex = formatHex(parsed);\n return hex || '#000000';\n } catch {\n // Silently return fallback - color conversion failures are non-critical\n // Caller can log if needed, but we return a safe default\n return '#000000';\n }\n}\n\n/**\n * Check if a color string is in OKLCH format\n */\nexport function isOklchColor(color: string): boolean {\n return color.toLowerCase().startsWith('oklch(');\n}\n\n/**\n * Convert any color to hex format\n * Handles OKLCH, rgb, hsl, and passes through hex\n */\nexport function toHexColor(color: string): string {\n if (!color) return '#000000';\n \n // Already hex\n if (color.startsWith('#')) {\n return color;\n }\n \n // OKLCH\n if (isOklchColor(color)) {\n return oklchToHex(color);\n }\n \n // Try culori for other formats\n try {\n const hex = formatHex(color);\n return hex || '#000000';\n } catch {\n return '#000000';\n }\n}\n\n/**\n * Email Brand Tokens structure (hex colors)\n */\nexport interface EmailBrandTokens {\n primaryColor: string;\n primaryForeground: string;\n secondaryColor: string;\n backgroundColor: string;\n foregroundColor: string;\n mutedColor: string;\n mutedForeground: string;\n borderColor: string;\n successColor: string;\n warningColor: string;\n destructiveColor: string;\n borderRadius: string;\n fontFamily: string;\n headingFontFamily?: string;\n}\n\n/**\n * Default email design tokens (fallback values)\n */\nexport const DEFAULT_EMAIL_DESIGN_TOKENS: EmailBrandTokens = {\n primaryColor: '#0066cc',\n primaryForeground: '#ffffff',\n secondaryColor: '#6c757d',\n backgroundColor: '#ffffff',\n foregroundColor: '#1a1a1a',\n mutedColor: '#f5f5f5',\n mutedForeground: '#6c757d',\n borderColor: '#e5e5e5',\n successColor: '#22c55e',\n warningColor: '#f59e0b',\n destructiveColor: '#ef4444',\n borderRadius: '0.5rem',\n fontFamily: 'Arial, Helvetica, sans-serif',\n headingFontFamily: 'Arial, Helvetica, sans-serif',\n};\n\n/**\n * Build full `EmailBrandTokens` from the simplified `email.brandTokens` config.\n * Merges provided values with `DEFAULT_EMAIL_DESIGN_TOKENS`.\n */\nexport function buildEmailBrandTokensFromConfig(\n brandTokens?: {\n primaryColor?: string;\n secondaryColor?: string;\n fontFamily?: string;\n // No `logoUrl`: it never had a destination here — `EmailBrandTokens` has no logo field — and the\n // logo is scope-resolved into `primaryScopeContext.logoUrl` instead. See the email config schema.\n },\n): EmailBrandTokens {\n if (!brandTokens) return { ...DEFAULT_EMAIL_DESIGN_TOKENS };\n\n return {\n ...DEFAULT_EMAIL_DESIGN_TOKENS,\n ...(brandTokens.primaryColor && { primaryColor: toHexColor(brandTokens.primaryColor) }),\n ...(brandTokens.secondaryColor && { secondaryColor: toHexColor(brandTokens.secondaryColor) }),\n ...(brandTokens.fontFamily && {\n fontFamily: brandTokens.fontFamily,\n headingFontFamily: brandTokens.fontFamily,\n }),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolate-email-label.utils.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"interpolate-email-label.utils.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/utils/interpolate-email-label.utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GACzD,MAAM,CAER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-to-typescript.utils.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"zod-to-typescript.utils.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/email/utils/zod-to-typescript.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAoPD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAChF,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAkBR"}
|