@wildo-ai/saas-backend-lib 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.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/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +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-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/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/postgresql-resource-repository.backend.service.d.ts +49 -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 +171 -18
- 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-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +20 -0
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-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 +529 -41
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +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 +38 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +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 +244 -7
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +386 -5
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +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 +31 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +142 -46
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
- package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
- package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts +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 +25 -0
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/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/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/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-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
- package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +292 -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 +533 -45
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts.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/resource-file-upload-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +39 -15
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
- package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
- package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +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 +175 -5
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
- package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +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/models/agent-catalogs.backend.definitions.d.ts +0 -13
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
- package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
- package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +28 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +204 -18
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
- package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +8 -4
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/index.d.ts +11 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +31 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +78 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +17 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +19 -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 +20 -0
- package/dist/esm/mcp/controllers/mcp.controller.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/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
- package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
- package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +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/services/sms.backend.service.d.ts +2 -2
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
- package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +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/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/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/services/webhook-handler.backend.service.d.ts +16 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js +1 -4
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js +1 -4
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts +3 -3
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js +26 -4
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/requests/service/websocket.service.d.ts +9 -0
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +32 -8
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +14 -2
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
- package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
- package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +90 -6
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts +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 +261 -77
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.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-registration.backend.service.d.ts +41 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +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/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +74 -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 +175 -19
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/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/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
- package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +11 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-to-org-lookup.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,oCAAoC,EAAE,MAAM,2GAA2G,CAAC;AACjK,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,6FAA6F,CAAC;AACzJ,OAAO,
|
|
1
|
+
{"version":3,"file":"domain-to-org-lookup.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,oCAAoC,EAAE,MAAM,2GAA2G,CAAC;AACjK,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,6FAA6F,CAAC;AACzJ,OAAO,EAGL,aAAa,EAEb,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAC5G,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iFAAiF,CAAC;AAElI;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,aAAa,CAAC;IACzB,yGAAyG;IACzG,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,SAAS,EAAE,aAAa,CAAC;IACzB,uEAAuE;IACvE,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,iCAAiC;IACjC,mBAAmB,CAAC,EAAE,WAAW,CAAC;CACnC;AAED,qBACa,+BAA+B;IAIL,OAAO,CAAC,QAAQ,CAAC,MAAM;IACO,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IANtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;gBAGlC,MAAM,EAAE,aAAa,EACS,gBAAgB,EAAE,oCAAoC,EAC5D,uBAAuB,EAAE,qCAAqC,EACzE,mBAAmB,EAAE,0BAA0B;IAMlH;;;;;;OAMG;IACU,eAAe,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA2B9G;;;OAGG;YACW,uBAAuB;IAyDrC;;OAEG;YACW,mBAAmB;IAgEjC;;;OAGG;IACI,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG;QACxD,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,WAAW,CAAC;KAC3B,GAAG,IAAI;IAYR;;;;;;;;;;;;;;;;;OAiBG;IACU,mBAAmB,CAC9B,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,EACzB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;CAuCzC"}
|
|
@@ -29,7 +29,7 @@ import { injectable, inject } from 'inversify';
|
|
|
29
29
|
import { SAAS_SERVICE_TYPES } from '../../../../inject/models/service-types.js';
|
|
30
30
|
import { LoggerService } from '../../../../monitoring/logger/services/logger.service.js';
|
|
31
31
|
import { AuthOrganizationConfigurationService } from '../../../../security/authentications/services/admin-config/auth-organization-configuration.service.js';
|
|
32
|
-
import { AuthScopeType, CoreResourceType, } from '@wildo-ai/saas-models';
|
|
32
|
+
import { DomainVerificationStatus, isDomainVerified, AuthScopeType, CoreResourceType, } from '@wildo-ai/saas-models';
|
|
33
33
|
let DomainToOrgLookupBackendService = class DomainToOrgLookupBackendService {
|
|
34
34
|
logger;
|
|
35
35
|
orgConfigService;
|
|
@@ -99,11 +99,15 @@ let DomainToOrgLookupBackendService = class DomainToOrgLookupBackendService {
|
|
|
99
99
|
const ssoConfig = await this.orgConfigService.loadSSOConfig(ec, scopeType, scopeId);
|
|
100
100
|
if (!ssoConfig)
|
|
101
101
|
continue;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
/*
|
|
103
|
+
* The CLAIMED half goes through the one derivation (#457); the `ssoEnabledDomains` half
|
|
104
|
+
* keeps its own status gate, because that list is a separate claim channel with the same
|
|
105
|
+
* requirement. Exactly equivalent to the hand-written join it replaces — `isDomainVerified`
|
|
106
|
+
* already carries the status check for its own list.
|
|
107
|
+
*/
|
|
108
|
+
const isDnsVerified = ssoConfig.domains.domainVerificationStatus?.[normalizedDomain] === DomainVerificationStatus.VERIFIED;
|
|
109
|
+
const domainMatches = isDomainVerified(ssoConfig.domains, normalizedDomain)
|
|
110
|
+
|| (isDnsVerified && ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));
|
|
107
111
|
if (!domainMatches)
|
|
108
112
|
continue;
|
|
109
113
|
this.logDebug('Domain matched via indexed query', {
|
|
@@ -131,12 +135,11 @@ let DomainToOrgLookupBackendService = class DomainToOrgLookupBackendService {
|
|
|
131
135
|
const ssoConfig = await this.orgConfigService.loadSSOConfig(ec, scopeType, scopeId);
|
|
132
136
|
if (!ssoConfig)
|
|
133
137
|
return null;
|
|
134
|
-
// H4: Only trust domains that have passed DNS verification
|
|
135
|
-
|
|
136
|
-
const isDnsVerified =
|
|
137
|
-
const domainMatches =
|
|
138
|
-
&&
|
|
139
|
-
|| ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));
|
|
138
|
+
// H4: Only trust domains that have passed DNS verification. Same shape as the indexed path
|
|
139
|
+
// above — the claimed half through the derivation, the ssoEnabled half status-gated (#457).
|
|
140
|
+
const isDnsVerified = ssoConfig.domains.domainVerificationStatus?.[normalizedDomain] === DomainVerificationStatus.VERIFIED;
|
|
141
|
+
const domainMatches = isDomainVerified(ssoConfig.domains, normalizedDomain)
|
|
142
|
+
|| (isDnsVerified && ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));
|
|
140
143
|
if (!domainMatches)
|
|
141
144
|
return null;
|
|
142
145
|
// Find the matching SSO connection for this domain from SsoConnection resources
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-to-org-lookup.backend.service.js","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,oCAAoC,EAAE,MAAM,2GAA2G,CAAC;AAEjK,OAAO,EACL,aAAa,EACb,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAoCxB,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAIY;IAC8B;IACN;IACX;IANlD,QAAQ,CAA+D;IAExF,YACsD,MAAqB,EACS,gBAAsD,EAC5D,uBAA8D,EACzE,mBAA+C;QAH5D,WAAM,GAAN,MAAM,CAAe;QACS,qBAAgB,GAAhB,gBAAgB,CAAsC;QAC5D,4BAAuB,GAAvB,uBAAuB,CAAuC;QACzE,wBAAmB,GAAnB,mBAAmB,CAA4B;QAEhH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,eAAe,CAAC,EAAyB,EAAE,MAAc;QACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAEhF,yEAAyE;QACzE,KAAK,MAAM,SAAS,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAChF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACnF,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,8EAA8E;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACvG,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACtG,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB,CACnC,EAAyB,EACzB,SAAwB,EACxB,gBAAwB;QAExB,MAAM,YAAY,GAAG,SAAS,KAAK,aAAa,CAAC,YAAY;YAC3D,CAAC,CAAC,gBAAgB,CAAC,4BAA4B;YAC/C,CAAC,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAoB,YAAY,EAAE,EAAE,EAAE;gBAC/F,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,gBAAgB;aACjC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAwB,CAAC;YAC3D,MAAM,eAAe,GAAG,WAAW,IAAI,EAAE,CAAC;YAE1C,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,SAAS,KAAK,aAAa,CAAC,YAAY;oBACtD,CAAC,CAAE,IAAgC,CAAC,cAAwB;oBAC5D,CAAC,CAAE,IAAgC,CAAC,aAAuB,CAAC;gBAC9D,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACpF,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAEzB,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,gBAAgB,CAAC,CAAC;gBAC1F,MAAM,aAAa,GAAG,kBAAkB,KAAK,UAAU,CAAC;gBACxD,MAAM,aAAa,GAAG,aAAa;uBAC9B,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC;2BAC3D,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAEvE,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAE7B,IAAI,CAAC,QAAQ,CAAC,kCAAkC,EAAE;oBAChD,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,QAAQ;iBACjF,CAAC,CAAC;gBAEH,OAAO;oBACL,SAAS;oBACT,OAAO;oBACP,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,SAAS;oBACT,eAAe,EAAE,IAAI;oBACrB,mBAAmB,EAAE,IAAI,CAAC,QAAQ;iBACnC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,0DAA0D,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,EAAyB,EACzB,SAAwB,EACxB,OAAe,EACf,gBAAwB;QAExB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,2DAA2D;QAC3D,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,kBAAkB,KAAK,UAAU,CAAC;QAExD,MAAM,aAAa,GAAG,aAAa;eAC9B,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC;mBAC3D,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEhC,gFAAgF;QAChF,IAAI,eAA8C,CAAC;QACnD,IAAI,mBAA4C,CAAC;QAEjD,MAAM,YAAY,GAAG,SAAS,KAAK,aAAa,CAAC,YAAY;YAC3D,CAAC,CAAC,gBAAgB,CAAC,4BAA4B;YAC/C,CAAC,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,WAAW,GAA4B;gBAC3C,OAAO,EAAE,IAAI;gBACb,GAAG,CAAC,SAAS,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;aACzG,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAoB,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAwB,CAAC;YACtK,MAAM,eAAe,GAAG,WAAW,IAAI,EAAE,CAAC;YAE1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxC,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACnF,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACV,eAAe,GAAG,KAAK,CAAC;gBACxB,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,kDAAkD,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE;YACvC,MAAM,EAAE,gBAAgB;YACxB,SAAS;YACT,OAAO;YACP,mBAAmB;YACnB,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU;SAC7C,CAAC,CAAC;QAEH,OAAO;YACL,SAAS;YACT,OAAO;YACP,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,SAAS;YACT,eAAe;YACf,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,MAA6B;QAMrD,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAExE,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;QACxC,OAAO;YACL,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,WAAW,EAAE,QAAQ,CAAC,kBAAkB,IAAI,aAAa;YACzD,YAAY,EAAE,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO;YAC5C,YAAY,EAAE,MAAM,CAAC,mBAAmB;SACzC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,mBAAmB,CAC9B,EAAyB,EACzB,SAAwB,EACxB,OAAe;QAEf,KAAK,EAAE,CAAC,CAAC,mGAAmG;QAC5G,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,YAAY,GAAG,SAAS,KAAK,aAAa,CAAC,YAAY;YAC3D,CAAC,CAAC,gBAAgB,CAAC,4BAA4B;YAC/C,CAAC,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;QACjD,MAAM,WAAW,GAA4B;YAC3C,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,SAAS,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;SACzG,CAAC;QAEF,IAAI,eAA8C,CAAC;QACnD,IAAI,mBAA4C,CAAC;QACjD,IAAI,CAAC;YACH,2EAA2E;YAC3E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAC7D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CACpC,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,eAAe,GAAG,KAAK,CAAC;gBACxB,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,0DAA0D,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAElC,OAAO;YACL,SAAS;YACT,OAAO;YACP,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,SAAS;YACT,eAAe;YACf,mBAAmB;SACpB,CAAC;IACJ,CAAC;CACF,CAAA;AA9PY,+BAA+B;IAD3C,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACjC,WAAA,MAAM,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,CAAA;IAC/D,WAAA,MAAM,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAA;IACzD,WAAA,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;qCAHa,aAAa;QAC2B,oCAAoC;GAL/H,+BAA+B,CA8P3C","sourcesContent":["/**\n * DomainToOrgLookupBackendService\n *\n * Provides domain-based organization lookup for SSO routing.\n * When a user enters their email, this service determines if their domain\n * is claimed by an organization with SSO configured.\n *\n * Step 14: Enterprise SSO — Domain Routing in Auth Flow\n * DI Symbol: DomainToOrgLookupService (was @optional() since Step 4, now bound)\n *\n * Used by:\n * - OAuth2AuthenticationBackendService.provisionOrLinkUser() — SSO enforcement check\n * - AuthenticationOrchestratorBackendService.identify() — domain-based SSO routing\n */\n\nimport 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AuthOrganizationConfigurationService } from '~wildo-backend-lib/security/authentications/services/admin-config/auth-organization-configuration.service';\nimport type { ServicesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/services/services-registry-handler.backend.service';\nimport {\n AuthScopeType,\n CoreResourceType,\n SsoProtocol,\n} from '@wildo-ai/saas-models';\nimport type { SsoConfigBase, SsoConnectionBase } from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { SystemAccessBackendService } from '~wildo-backend-lib/base-classes/services/services/system-access.backend.service';\n\n/**\n * Result of a domain-based scope lookup.\n * Returns an explicit scope discriminator supporting both organization and application scope.\n *\n * ⚠️ TRUST CONTRACT — `scopeId` is a DOMAIN-OWNERSHIP HINT, NEVER a security key.\n * It is the org that DNS-verified-claims the *login email's domain*, so it is attacker-influenceable\n * (the caller picks the email → the domain → the org). Safe uses: enforcement-TIGHTENING SSO gates\n * (which only ever BLOCK a login — the fail-safe direction) and display/branding. NEVER use it to\n * route data to the org, scope a resource read/query by tenant, derive membership/roles, grant\n * access, or gate features. For a per-user VERIFIED org, resolve active memberships\n * (`resolveActiveMemberOrgIds(userId)` → branded `VerifiedOrgId[]`). Routing the audit trail on this\n * value was the 2026-07-09 cross-tenant leak (see the `session-org-trust-sweep-audit` plan).\n */\nexport interface DomainOrgLookupResult {\n scopeType: AuthScopeType;\n /** Domain-ownership hint (DNS-verified). NEVER a routing/scoping/authz key — see the interface JSDoc. */\n scopeId: string;\n enforcement?: {\n requireSSO?: boolean;\n allowPasswordFallback?: boolean;\n enforceForAdmins?: boolean;\n graceLoginAttempts?: number;\n };\n ssoConfig: SsoConfigBase;\n /** The specific SSO provider that matches the domain (OIDC or SAML) */\n matchedProvider?: SsoConnectionBase;\n /** Provider type discriminant */\n matchedProviderType?: SsoProtocol;\n}\n\n@injectable()\nexport class DomainToOrgLookupBackendService {\n private readonly 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.AuthOrganizationConfigurationService) private readonly orgConfigService: AuthOrganizationConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ServicesRegistryHandlerService) private readonly servicesRegistryHandler: ServicesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.SystemAccessService) private readonly systemAccessService: SystemAccessBackendService,\n ) {\n this.logDebug = this.logger.debugByType('DomainToOrgLookup');\n this.logger.setDebugTypeLogging('DomainToOrgLookup', false);\n }\n\n /**\n * Find the scope (organization or application) that claims the given email domain for SSO.\n *\n * Uses an indexed query on `allowedDomains` for connections with explicit domain restrictions,\n * then falls back to the per-scope loop for wildcard connections (empty allowedDomains).\n * Returns scope discriminator ({ scopeType, scopeId }) instead of bare organizationId.\n */\n public async findOrgByDomain(ec: ExecutionContext<any>, domain: string): Promise<DomainOrgLookupResult | null> {\n const normalizedDomain = domain.toLowerCase();\n this.logDebug('Looking up scope by email domain', { domain: normalizedDomain });\n\n // 1. Fast path: indexed query for connections with explicit domain match\n for (const scopeType of [AuthScopeType.ORGANIZATION, AuthScopeType.APPLICATION]) {\n const result = await this._findConnectionByDomain(ec, scopeType, normalizedDomain);\n if (result) return result;\n }\n\n // 2. Fallback: iterate scopes for wildcard connections (empty allowedDomains)\n const orgIds = this.orgConfigService.getAllOrganizationIds();\n for (const orgId of orgIds) {\n const result = await this._matchDomainInScope(ec, AuthScopeType.ORGANIZATION, orgId, normalizedDomain);\n if (result) return result;\n }\n\n const appIds = this.orgConfigService.getAllApplicationIds?.() ?? [];\n for (const appId of appIds) {\n const result = await this._matchDomainInScope(ec, AuthScopeType.APPLICATION, appId, normalizedDomain);\n if (result) return result;\n }\n\n this.logDebug('No scope claims this domain', { domain: normalizedDomain });\n return null;\n }\n\n /**\n * Indexed cross-scope query: find enabled connections that explicitly list this domain\n * in allowedDomains, then verify DNS status via the SSO config for the matched scope.\n */\n private async _findConnectionByDomain(\n ec: ExecutionContext<any>,\n scopeType: AuthScopeType,\n normalizedDomain: string,\n ): Promise<DomainOrgLookupResult | null> {\n const resourceType = scopeType === AuthScopeType.ORGANIZATION\n ? CoreResourceType.ORGANIZATION_SSO_CONNECTIONS\n : CoreResourceType.APPLICATION_SSO_CONNECTIONS;\n\n try {\n const connections = await this.servicesRegistryHandler.list<SsoConnectionBase>(resourceType, ec, {\n enabled: true,\n allowedDomains: normalizedDomain,\n }, undefined, { paginated: false }) as SsoConnectionBase[];\n const connectionsList = connections ?? [];\n\n for (const conn of connectionsList) {\n const scopeId = scopeType === AuthScopeType.ORGANIZATION\n ? (conn as Record<string, unknown>).organizationId as string\n : (conn as Record<string, unknown>).applicationId as string;\n if (!scopeId) continue;\n\n const ssoConfig = await this.orgConfigService.loadSSOConfig(ec, scopeType, scopeId);\n if (!ssoConfig) continue;\n\n const verificationStatus = ssoConfig.domains.domainVerificationStatus?.[normalizedDomain];\n const isDnsVerified = verificationStatus === 'verified';\n const domainMatches = isDnsVerified\n && (ssoConfig.domains.verifiedDomains.includes(normalizedDomain)\n || ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));\n\n if (!domainMatches) continue;\n\n this.logDebug('Domain matched via indexed query', {\n domain: normalizedDomain, scopeType, scopeId, matchedProviderType: conn.protocol,\n });\n\n return {\n scopeType,\n scopeId,\n enforcement: ssoConfig.enforcement,\n ssoConfig,\n matchedProvider: conn,\n matchedProviderType: conn.protocol,\n };\n }\n } catch {\n this.logDebug('SsoConnection repository not available for indexed query', { scopeType });\n }\n\n return null;\n }\n\n /**\n * Try to match a domain against a specific scope's SSO config.\n */\n private async _matchDomainInScope(\n ec: ExecutionContext<any>,\n scopeType: AuthScopeType,\n scopeId: string,\n normalizedDomain: string,\n ): Promise<DomainOrgLookupResult | null> {\n const ssoConfig = await this.orgConfigService.loadSSOConfig(ec, scopeType, scopeId);\n if (!ssoConfig) return null;\n\n // H4: Only trust domains that have passed DNS verification\n const verificationStatus = ssoConfig.domains.domainVerificationStatus?.[normalizedDomain];\n const isDnsVerified = verificationStatus === 'verified';\n\n const domainMatches = isDnsVerified\n && (ssoConfig.domains.verifiedDomains.includes(normalizedDomain)\n || ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));\n\n if (!domainMatches) return null;\n\n // Find the matching SSO connection for this domain from SsoConnection resources\n let matchedProvider: SsoConnectionBase | undefined;\n let matchedProviderType: SsoProtocol | undefined;\n\n const resourceType = scopeType === AuthScopeType.ORGANIZATION\n ? CoreResourceType.ORGANIZATION_SSO_CONNECTIONS\n : CoreResourceType.APPLICATION_SSO_CONNECTIONS;\n\n try {\n const scopeFilter: Record<string, unknown> = {\n enabled: true,\n ...(scopeType === AuthScopeType.ORGANIZATION ? { organizationId: scopeId } : { applicationId: scopeId }),\n };\n const connections = await this.servicesRegistryHandler.list<SsoConnectionBase>(resourceType, ec, scopeFilter, undefined, { paginated: false }) as SsoConnectionBase[];\n const connectionsList = connections ?? [];\n\n const match = connectionsList.find(conn =>\n conn.allowedDomains.length === 0 || conn.allowedDomains.includes(normalizedDomain),\n );\n\n if (match) {\n matchedProvider = match;\n matchedProviderType = match.protocol;\n }\n } catch {\n this.logDebug('SsoConnection repository not available for scope', { scopeType, scopeId });\n }\n\n this.logDebug('Domain matched to scope', {\n domain: normalizedDomain,\n scopeType,\n scopeId,\n matchedProviderType,\n requireSSO: ssoConfig.enforcement.requireSSO,\n });\n\n return {\n scopeType,\n scopeId,\n enforcement: ssoConfig.enforcement,\n ssoConfig,\n matchedProvider,\n matchedProviderType,\n };\n }\n\n /**\n * Get the SSO provider info needed for the identification response.\n * Called by identify() when a domain match is found.\n */\n public getSSOProviderInfo(result: DomainOrgLookupResult): {\n displayName: string;\n providerRef: string;\n connectionId: string;\n providerType: SsoProtocol;\n } | null {\n if (!result.matchedProvider || !result.matchedProviderType) return null;\n\n const provider = result.matchedProvider;\n return {\n displayName: provider.displayName,\n providerRef: provider.externalProviderId || 'custom-oidc',\n connectionId: provider._id || result.scopeId,\n providerType: result.matchedProviderType,\n };\n }\n\n /**\n * Scope-keyed lookup — the domain-INDEPENDENT counterpart of\n * {@link findOrgByDomain}. Given a KNOWN scope (organization or application) id,\n * resolve its active SSO connection into a {@link DomainOrgLookupResult}, so a\n * surface that already knows the scope (notably the public invitation-accept\n * screen, keyed by the invitation's `organizationId`) can enrich ORG_SAML /\n * ORG_OPENID_CONNECT methods with the SAME per-connection `ssoIds`/`config` that\n * `identify()` produces — with no email→domain gate.\n *\n * System-access seam: the canonical (and only) caller is the PUBLIC, NON-consuming invitation\n * discovery endpoint under an UNAUTHENTICATED pre-auth EC. `ssoConfig` is read via\n * `readSSOConfigIfExists` — a pure READ (through the ACL-independent `readAsSystem` door) that\n * NEVER lazily creates a default config row, unlike `loadSSOConfig` (read-then-create): a public\n * GET discovery endpoint must not WRITE. The SSO CONNECTIONS are org-scoped and their plain LIST\n * door would fail-closed here, so they are listed via `listAsSystem` (the SSO-connection resource\n * opts into system LIST via `systemAccessPolicy.read = ALLOWED`). Returns `null` when the scope has\n * no SSO config or no enabled connection (→ caller drops the SSO methods, as today).\n */\n public async buildLookupForScope(\n ec: ExecutionContext<any>,\n scopeType: AuthScopeType,\n scopeId: string,\n ): Promise<DomainOrgLookupResult | null> {\n void ec; // read-only (no lazy-create) path below no longer needs the EC; retained for signature continuity.\n const ssoConfig = await this.orgConfigService.readSSOConfigIfExists(scopeType, scopeId);\n if (!ssoConfig) return null;\n\n const resourceType = scopeType === AuthScopeType.ORGANIZATION\n ? CoreResourceType.ORGANIZATION_SSO_CONNECTIONS\n : CoreResourceType.APPLICATION_SSO_CONNECTIONS;\n const scopeFilter: Record<string, unknown> = {\n enabled: true,\n ...(scopeType === AuthScopeType.ORGANIZATION ? { organizationId: scopeId } : { applicationId: scopeId }),\n };\n\n let matchedProvider: SsoConnectionBase | undefined;\n let matchedProviderType: SsoProtocol | undefined;\n try {\n // System-access LIST (no domain gate): take the scope's active connection.\n const connections = await this.systemAccessService.listAsSystem<SsoConnectionBase>(\n resourceType, scopeFilter, undefined, { paginated: false },\n ) as SsoConnectionBase[];\n const match = (connections ?? [])[0];\n if (match) {\n matchedProvider = match;\n matchedProviderType = match.protocol;\n }\n } catch {\n this.logDebug('SSO connections not readable for scope via system access', { scopeType, scopeId });\n }\n if (!matchedProvider) return null;\n\n return {\n scopeType,\n scopeId,\n enforcement: ssoConfig.enforcement,\n ssoConfig,\n matchedProvider,\n matchedProviderType,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"domain-to-org-lookup.backend.service.js","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DomainToOrgLookupBackendService\n *\n * Provides domain-based organization lookup for SSO routing.\n * When a user enters their email, this service determines if their domain\n * is claimed by an organization with SSO configured.\n *\n * Step 14: Enterprise SSO — Domain Routing in Auth Flow\n * DI Symbol: DomainToOrgLookupService (was @optional() since Step 4, now bound)\n *\n * Used by:\n * - OAuth2AuthenticationBackendService.provisionOrLinkUser() — SSO enforcement check\n * - AuthenticationOrchestratorBackendService.identify() — domain-based SSO routing\n */\n\nimport 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AuthOrganizationConfigurationService } from '~wildo-backend-lib/security/authentications/services/admin-config/auth-organization-configuration.service';\nimport type { ServicesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/services/services-registry-handler.backend.service';\nimport {\n DomainVerificationStatus,\n isDomainVerified,\n AuthScopeType,\n CoreResourceType,\n SsoProtocol,\n} from '@wildo-ai/saas-models';\nimport type { SsoConfigBase, SsoConnectionBase } from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { SystemAccessBackendService } from '~wildo-backend-lib/base-classes/services/services/system-access.backend.service';\n\n/**\n * Result of a domain-based scope lookup.\n * Returns an explicit scope discriminator supporting both organization and application scope.\n *\n * ⚠️ TRUST CONTRACT — `scopeId` is a DOMAIN-OWNERSHIP HINT, NEVER a security key.\n * It is the org that DNS-verified-claims the *login email's domain*, so it is attacker-influenceable\n * (the caller picks the email → the domain → the org). Safe uses: enforcement-TIGHTENING SSO gates\n * (which only ever BLOCK a login — the fail-safe direction) and display/branding. NEVER use it to\n * route data to the org, scope a resource read/query by tenant, derive membership/roles, grant\n * access, or gate features. For a per-user VERIFIED org, resolve active memberships\n * (`resolveActiveMemberOrgIds(userId)` → branded `VerifiedOrgId[]`). Routing the audit trail on this\n * value was the 2026-07-09 cross-tenant leak (see the `session-org-trust-sweep-audit` plan).\n */\nexport interface DomainOrgLookupResult {\n scopeType: AuthScopeType;\n /** Domain-ownership hint (DNS-verified). NEVER a routing/scoping/authz key — see the interface JSDoc. */\n scopeId: string;\n enforcement?: {\n requireSSO?: boolean;\n allowPasswordFallback?: boolean;\n graceLoginAttempts?: number;\n };\n ssoConfig: SsoConfigBase;\n /** The specific SSO provider that matches the domain (OIDC or SAML) */\n matchedProvider?: SsoConnectionBase;\n /** Provider type discriminant */\n matchedProviderType?: SsoProtocol;\n}\n\n@injectable()\nexport class DomainToOrgLookupBackendService {\n private readonly 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.AuthOrganizationConfigurationService) private readonly orgConfigService: AuthOrganizationConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ServicesRegistryHandlerService) private readonly servicesRegistryHandler: ServicesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.SystemAccessService) private readonly systemAccessService: SystemAccessBackendService,\n ) {\n this.logDebug = this.logger.debugByType('DomainToOrgLookup');\n this.logger.setDebugTypeLogging('DomainToOrgLookup', false);\n }\n\n /**\n * Find the scope (organization or application) that claims the given email domain for SSO.\n *\n * Uses an indexed query on `allowedDomains` for connections with explicit domain restrictions,\n * then falls back to the per-scope loop for wildcard connections (empty allowedDomains).\n * Returns scope discriminator ({ scopeType, scopeId }) instead of bare organizationId.\n */\n public async findOrgByDomain(ec: ExecutionContext<any>, domain: string): Promise<DomainOrgLookupResult | null> {\n const normalizedDomain = domain.toLowerCase();\n this.logDebug('Looking up scope by email domain', { domain: normalizedDomain });\n\n // 1. Fast path: indexed query for connections with explicit domain match\n for (const scopeType of [AuthScopeType.ORGANIZATION, AuthScopeType.APPLICATION]) {\n const result = await this._findConnectionByDomain(ec, scopeType, normalizedDomain);\n if (result) return result;\n }\n\n // 2. Fallback: iterate scopes for wildcard connections (empty allowedDomains)\n const orgIds = this.orgConfigService.getAllOrganizationIds();\n for (const orgId of orgIds) {\n const result = await this._matchDomainInScope(ec, AuthScopeType.ORGANIZATION, orgId, normalizedDomain);\n if (result) return result;\n }\n\n const appIds = this.orgConfigService.getAllApplicationIds?.() ?? [];\n for (const appId of appIds) {\n const result = await this._matchDomainInScope(ec, AuthScopeType.APPLICATION, appId, normalizedDomain);\n if (result) return result;\n }\n\n this.logDebug('No scope claims this domain', { domain: normalizedDomain });\n return null;\n }\n\n /**\n * Indexed cross-scope query: find enabled connections that explicitly list this domain\n * in allowedDomains, then verify DNS status via the SSO config for the matched scope.\n */\n private async _findConnectionByDomain(\n ec: ExecutionContext<any>,\n scopeType: AuthScopeType,\n normalizedDomain: string,\n ): Promise<DomainOrgLookupResult | null> {\n const resourceType = scopeType === AuthScopeType.ORGANIZATION\n ? CoreResourceType.ORGANIZATION_SSO_CONNECTIONS\n : CoreResourceType.APPLICATION_SSO_CONNECTIONS;\n\n try {\n const connections = await this.servicesRegistryHandler.list<SsoConnectionBase>(resourceType, ec, {\n enabled: true,\n allowedDomains: normalizedDomain,\n }, undefined, { paginated: false }) as SsoConnectionBase[];\n const connectionsList = connections ?? [];\n\n for (const conn of connectionsList) {\n const scopeId = scopeType === AuthScopeType.ORGANIZATION\n ? (conn as Record<string, unknown>).organizationId as string\n : (conn as Record<string, unknown>).applicationId as string;\n if (!scopeId) continue;\n\n const ssoConfig = await this.orgConfigService.loadSSOConfig(ec, scopeType, scopeId);\n if (!ssoConfig) continue;\n\n /*\n * The CLAIMED half goes through the one derivation (#457); the `ssoEnabledDomains` half\n * keeps its own status gate, because that list is a separate claim channel with the same\n * requirement. Exactly equivalent to the hand-written join it replaces — `isDomainVerified`\n * already carries the status check for its own list.\n */\n const isDnsVerified = ssoConfig.domains.domainVerificationStatus?.[normalizedDomain] === DomainVerificationStatus.VERIFIED;\n const domainMatches = isDomainVerified(ssoConfig.domains, normalizedDomain)\n || (isDnsVerified && ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));\n\n if (!domainMatches) continue;\n\n this.logDebug('Domain matched via indexed query', {\n domain: normalizedDomain, scopeType, scopeId, matchedProviderType: conn.protocol,\n });\n\n return {\n scopeType,\n scopeId,\n enforcement: ssoConfig.enforcement,\n ssoConfig,\n matchedProvider: conn,\n matchedProviderType: conn.protocol,\n };\n }\n } catch {\n this.logDebug('SsoConnection repository not available for indexed query', { scopeType });\n }\n\n return null;\n }\n\n /**\n * Try to match a domain against a specific scope's SSO config.\n */\n private async _matchDomainInScope(\n ec: ExecutionContext<any>,\n scopeType: AuthScopeType,\n scopeId: string,\n normalizedDomain: string,\n ): Promise<DomainOrgLookupResult | null> {\n const ssoConfig = await this.orgConfigService.loadSSOConfig(ec, scopeType, scopeId);\n if (!ssoConfig) return null;\n\n // H4: Only trust domains that have passed DNS verification. Same shape as the indexed path\n // above — the claimed half through the derivation, the ssoEnabled half status-gated (#457).\n const isDnsVerified = ssoConfig.domains.domainVerificationStatus?.[normalizedDomain] === DomainVerificationStatus.VERIFIED;\n\n const domainMatches = isDomainVerified(ssoConfig.domains, normalizedDomain)\n || (isDnsVerified && ssoConfig.domains.ssoEnabledDomains.includes(normalizedDomain));\n\n if (!domainMatches) return null;\n\n // Find the matching SSO connection for this domain from SsoConnection resources\n let matchedProvider: SsoConnectionBase | undefined;\n let matchedProviderType: SsoProtocol | undefined;\n\n const resourceType = scopeType === AuthScopeType.ORGANIZATION\n ? CoreResourceType.ORGANIZATION_SSO_CONNECTIONS\n : CoreResourceType.APPLICATION_SSO_CONNECTIONS;\n\n try {\n const scopeFilter: Record<string, unknown> = {\n enabled: true,\n ...(scopeType === AuthScopeType.ORGANIZATION ? { organizationId: scopeId } : { applicationId: scopeId }),\n };\n const connections = await this.servicesRegistryHandler.list<SsoConnectionBase>(resourceType, ec, scopeFilter, undefined, { paginated: false }) as SsoConnectionBase[];\n const connectionsList = connections ?? [];\n\n const match = connectionsList.find(conn =>\n conn.allowedDomains.length === 0 || conn.allowedDomains.includes(normalizedDomain),\n );\n\n if (match) {\n matchedProvider = match;\n matchedProviderType = match.protocol;\n }\n } catch {\n this.logDebug('SsoConnection repository not available for scope', { scopeType, scopeId });\n }\n\n this.logDebug('Domain matched to scope', {\n domain: normalizedDomain,\n scopeType,\n scopeId,\n matchedProviderType,\n requireSSO: ssoConfig.enforcement.requireSSO,\n });\n\n return {\n scopeType,\n scopeId,\n enforcement: ssoConfig.enforcement,\n ssoConfig,\n matchedProvider,\n matchedProviderType,\n };\n }\n\n /**\n * Get the SSO provider info needed for the identification response.\n * Called by identify() when a domain match is found.\n */\n public getSSOProviderInfo(result: DomainOrgLookupResult): {\n displayName: string;\n providerRef: string;\n connectionId: string;\n providerType: SsoProtocol;\n } | null {\n if (!result.matchedProvider || !result.matchedProviderType) return null;\n\n const provider = result.matchedProvider;\n return {\n displayName: provider.displayName,\n providerRef: provider.externalProviderId || 'custom-oidc',\n connectionId: provider._id || result.scopeId,\n providerType: result.matchedProviderType,\n };\n }\n\n /**\n * Scope-keyed lookup — the domain-INDEPENDENT counterpart of\n * {@link findOrgByDomain}. Given a KNOWN scope (organization or application) id,\n * resolve its active SSO connection into a {@link DomainOrgLookupResult}, so a\n * surface that already knows the scope (notably the public invitation-accept\n * screen, keyed by the invitation's `organizationId`) can enrich ORG_SAML /\n * ORG_OPENID_CONNECT methods with the SAME per-connection `ssoIds`/`config` that\n * `identify()` produces — with no email→domain gate.\n *\n * System-access seam: the canonical (and only) caller is the PUBLIC, NON-consuming invitation\n * discovery endpoint under an UNAUTHENTICATED pre-auth EC. `ssoConfig` is read via\n * `readSSOConfigIfExists` — a pure READ (through the ACL-independent `readAsSystem` door) that\n * NEVER lazily creates a default config row, unlike `loadSSOConfig` (read-then-create): a public\n * GET discovery endpoint must not WRITE. The SSO CONNECTIONS are org-scoped and their plain LIST\n * door would fail-closed here, so they are listed via `listAsSystem` (the SSO-connection resource\n * opts into system LIST via `systemAccessPolicy.read = ALLOWED`). Returns `null` when the scope has\n * no SSO config or no enabled connection (→ caller drops the SSO methods, as today).\n */\n public async buildLookupForScope(\n ec: ExecutionContext<any>,\n scopeType: AuthScopeType,\n scopeId: string,\n ): Promise<DomainOrgLookupResult | null> {\n void ec; // read-only (no lazy-create) path below no longer needs the EC; retained for signature continuity.\n const ssoConfig = await this.orgConfigService.readSSOConfigIfExists(scopeType, scopeId);\n if (!ssoConfig) return null;\n\n const resourceType = scopeType === AuthScopeType.ORGANIZATION\n ? CoreResourceType.ORGANIZATION_SSO_CONNECTIONS\n : CoreResourceType.APPLICATION_SSO_CONNECTIONS;\n const scopeFilter: Record<string, unknown> = {\n enabled: true,\n ...(scopeType === AuthScopeType.ORGANIZATION ? { organizationId: scopeId } : { applicationId: scopeId }),\n };\n\n let matchedProvider: SsoConnectionBase | undefined;\n let matchedProviderType: SsoProtocol | undefined;\n try {\n // System-access LIST (no domain gate): take the scope's active connection.\n const connections = await this.systemAccessService.listAsSystem<SsoConnectionBase>(\n resourceType, scopeFilter, undefined, { paginated: false },\n ) as SsoConnectionBase[];\n const match = (connections ?? [])[0];\n if (match) {\n matchedProvider = match;\n matchedProviderType = match.protocol;\n }\n } catch {\n this.logDebug('SSO connections not readable for scope via system access', { scopeType, scopeId });\n }\n if (!matchedProvider) return null;\n\n return {\n scopeType,\n scopeId,\n enforcement: ssoConfig.enforcement,\n ssoConfig,\n matchedProvider,\n matchedProviderType,\n };\n }\n}\n"]}
|
|
@@ -15,6 +15,8 @@ import 'reflect-metadata';
|
|
|
15
15
|
import { LoggerService } from '../../../../monitoring/logger/services/logger.service';
|
|
16
16
|
import { AuthOrganizationConfigurationService } from '../../../../security/authentications/services/admin-config/auth-organization-configuration.service';
|
|
17
17
|
import { AuthScopeType } from '@wildo-ai/saas-models';
|
|
18
|
+
import type { SsoConfigBase } from '@wildo-ai/saas-models';
|
|
19
|
+
import type { SystemAccessBackendService } from '../../../../base-classes/services/services/system-access.backend.service';
|
|
18
20
|
import type { ExecutionContext } from '../../../../runtime/models/execution-context.backend.schemas';
|
|
19
21
|
/** Result of a domain verification attempt */
|
|
20
22
|
export interface DomainVerificationResult {
|
|
@@ -23,14 +25,122 @@ export interface DomainVerificationResult {
|
|
|
23
25
|
verificationToken: string;
|
|
24
26
|
dnsRecordsFound: string[];
|
|
25
27
|
}
|
|
28
|
+
/** The `domains` block of an SSO config — the only part of the row these planners touch. */
|
|
29
|
+
export type SsoConfigDomains = SsoConfigBase['domains'];
|
|
30
|
+
/** The scope that already holds a domain VERIFIED, when one does. */
|
|
31
|
+
export interface DomainExclusivityConflict {
|
|
32
|
+
scopeType: AuthScopeType;
|
|
33
|
+
scopeId: string;
|
|
34
|
+
}
|
|
35
|
+
/** A minted challenge plus the `domains` block that records it. */
|
|
36
|
+
export interface DomainClaimPlan {
|
|
37
|
+
domains: SsoConfigDomains;
|
|
38
|
+
verificationToken: string;
|
|
39
|
+
dnsName: string;
|
|
40
|
+
dnsRecordValue: string;
|
|
41
|
+
}
|
|
26
42
|
export declare class DomainVerificationBackendService {
|
|
27
43
|
private readonly logger;
|
|
28
44
|
private readonly orgConfigService;
|
|
45
|
+
/**
|
|
46
|
+
* The exclusivity probe reads OTHER scopes' SSO configs, which no tenant-scoped context may do.
|
|
47
|
+
* `@optional()` so a minimal test container that binds neither still constructs; the probe
|
|
48
|
+
* itself fails CLOSED when it is absent rather than reporting "no conflict".
|
|
49
|
+
*/
|
|
50
|
+
private readonly systemAccessService?;
|
|
29
51
|
private readonly logDebug;
|
|
30
|
-
constructor(logger: LoggerService, orgConfigService: AuthOrganizationConfigurationService
|
|
52
|
+
constructor(logger: LoggerService, orgConfigService: AuthOrganizationConfigurationService,
|
|
53
|
+
/**
|
|
54
|
+
* The exclusivity probe reads OTHER scopes' SSO configs, which no tenant-scoped context may do.
|
|
55
|
+
* `@optional()` so a minimal test container that binds neither still constructs; the probe
|
|
56
|
+
* itself fails CLOSED when it is absent rather than reporting "no conflict".
|
|
57
|
+
*/
|
|
58
|
+
systemAccessService?: SystemAccessBackendService);
|
|
59
|
+
/**
|
|
60
|
+
* Mint a challenge for `domain` and return the `domains` block that records it as `pending`.
|
|
61
|
+
*
|
|
62
|
+
* Re-claiming an already-claimed domain is legal and deliberate: it mints a FRESH nonce and
|
|
63
|
+
* resets the status to `pending`. The stored nonce is `.isBackendOnly()` and is disclosed exactly
|
|
64
|
+
* once, in the claim response, so re-claiming is the only way to recover a lost record value —
|
|
65
|
+
* and it invalidates the previous one, which is the right direction.
|
|
66
|
+
*/
|
|
67
|
+
planDomainClaim(domains: SsoConfigDomains, domain: string): DomainClaimPlan;
|
|
68
|
+
/**
|
|
69
|
+
* Record the outcome of a challenge check. `verified` decides between `verified` and `failed`;
|
|
70
|
+
* there is no third answer, because a check that could not resolve DNS has already been reported
|
|
71
|
+
* as not-verified by {@link checkDomainChallenge}.
|
|
72
|
+
*/
|
|
73
|
+
planVerificationOutcome(domains: SsoConfigDomains, domain: string, verified: boolean): SsoConfigDomains;
|
|
74
|
+
/**
|
|
75
|
+
* Remove every trace of a domain from a scope: the claim, its status, its nonce — and its entry
|
|
76
|
+
* in `ssoEnabledDomains`.
|
|
77
|
+
*
|
|
78
|
+
* That last one is the half a revocation forgets. `ssoEnabledDomains` is a SECOND claim channel
|
|
79
|
+
* that the sign-in router consults with its own status gate
|
|
80
|
+
* (`domain-to-org-lookup.backend.service.ts`), so leaving the domain there while deleting the
|
|
81
|
+
* status entry produces a half-revoked domain: harmless today, and one status write away from
|
|
82
|
+
* routing again under a claim nobody believes they still hold.
|
|
83
|
+
*/
|
|
84
|
+
planDomainRevocation(domains: SsoConfigDomains, domain: string): SsoConfigDomains;
|
|
85
|
+
/** The challenge nonce a scope holds for a domain, if it has claimed one. */
|
|
86
|
+
getVerificationToken(domains: SsoConfigDomains, domain: string): string | undefined;
|
|
87
|
+
/** The DNS name the operator publishes the TXT record on. */
|
|
88
|
+
verificationDnsName(domain: string): string;
|
|
89
|
+
/**
|
|
90
|
+
* Resolve the challenge record and say whether it carries the expected nonce.
|
|
91
|
+
*
|
|
92
|
+
* Public because the operation that verifies a domain must run the check and persist the outcome
|
|
93
|
+
* as ONE resource UPDATE; a method that did both would have to write on its own.
|
|
94
|
+
*/
|
|
95
|
+
checkDomainChallenge(domain: string, expectedToken: string): Promise<{
|
|
96
|
+
verified: boolean;
|
|
97
|
+
recordsFound: string[];
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* The scope OTHER than `(scopeType, scopeId)` that already holds `domain` VERIFIED, if any.
|
|
101
|
+
*
|
|
102
|
+
* ## Why exclusivity is enforced at all
|
|
103
|
+
*
|
|
104
|
+
* `DomainToOrgLookupBackendService.findOrgByDomain` returns the FIRST scope whose config matches.
|
|
105
|
+
* Two scopes holding one domain therefore means a `@customer.com` sign-in routes to whichever the
|
|
106
|
+
* lookup reaches first — an answer that can change between processes. Nothing prevented that
|
|
107
|
+
* before, only the fact that reaching the verified state required an out-of-band database write
|
|
108
|
+
* by two different tenants. A public route makes it reachable.
|
|
109
|
+
*
|
|
110
|
+
* ## What this is NOT protecting against
|
|
111
|
+
*
|
|
112
|
+
* Worth stating precisely, because it decides how much this check is load-bearing. DNS is already
|
|
113
|
+
* the defence against TAKEOVER: only whoever controls `customer.com` can publish the nonce, so a
|
|
114
|
+
* rogue tenant's claim can never be verified. What remains is the real owner verifying the same
|
|
115
|
+
* domain under two of their own scopes — an ambiguity, not an attack. This check makes that
|
|
116
|
+
* refuse instead of silently deciding.
|
|
117
|
+
*
|
|
118
|
+
* ## Why the scan is exhaustive, and why it is not filtered
|
|
119
|
+
*
|
|
120
|
+
* It reads every SSO config row of both scope variants and joins in memory. Two cheaper options
|
|
121
|
+
* were rejected:
|
|
122
|
+
* - `getAllOrganizationIds()` enumerates a warm in-memory cache, so on a cold process it
|
|
123
|
+
* reports fewer scopes than exist. An exclusivity check built on it answers "nobody else
|
|
124
|
+
* holds it" from an incomplete population;
|
|
125
|
+
* - a repository filter on `domains.verifiedDomains` is a nested-array predicate. It works on
|
|
126
|
+
* the MongoDB adapter and is not portable to the SQL one, where the block is a JSON column —
|
|
127
|
+
* so it would return nothing rather than fail, in the direction that produces a false
|
|
128
|
+
* "available".
|
|
129
|
+
* The cost is bounded by tenant count and paid only on claim and verify, which are rare admin
|
|
130
|
+
* acts. If it ever stops being cheap, the answer is an indexed projection of the verified set,
|
|
131
|
+
* not a filter nobody can prove is portable.
|
|
132
|
+
*
|
|
133
|
+
* Returns `null` when no other scope holds it. THROWS when it cannot answer — a probe that cannot
|
|
134
|
+
* read must not be mistaken for a probe that found nothing.
|
|
135
|
+
*/
|
|
136
|
+
findConflictingScope(scopeType: AuthScopeType, scopeId: string, domain: string): Promise<DomainExclusivityConflict | null>;
|
|
31
137
|
/**
|
|
32
|
-
* Initiate domain verification: generate a token and store it in the
|
|
138
|
+
* Initiate domain verification: generate a token and store it in the scope's SSO config.
|
|
33
139
|
* Returns the token the admin must add as a DNS TXT record.
|
|
140
|
+
*
|
|
141
|
+
* Does NOT check exclusivity — see {@link findConflictingScope}, which the public operation calls
|
|
142
|
+
* before this planner's patch is persisted. A caller reaching this method directly is asserting
|
|
143
|
+
* it has already answered that question.
|
|
34
144
|
*/
|
|
35
145
|
initiateDomainVerification(ec: ExecutionContext<any>, scopeType: AuthScopeType, scopeId: string, domain: string): Promise<{
|
|
36
146
|
verificationToken: string;
|
|
@@ -39,7 +149,7 @@ export declare class DomainVerificationBackendService {
|
|
|
39
149
|
}>;
|
|
40
150
|
/**
|
|
41
151
|
* Verify domain ownership by checking DNS TXT records.
|
|
42
|
-
* Updates the domain's verification status in the
|
|
152
|
+
* Updates the domain's verification status in the scope's SSO config.
|
|
43
153
|
*/
|
|
44
154
|
verifyDomainOwnership(ec: ExecutionContext<any>, scopeType: AuthScopeType, scopeId: string, domain: string): Promise<DomainVerificationResult>;
|
|
45
155
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-verification.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/admin-config/domain-verification.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAE7F,OAAO,EAAE,oCAAoC,EAAE,MAAM,2GAA2G,CAAC;AACjK,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"domain-verification.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/admin-config/domain-verification.backend.service.ts"],"names":[],"mappings":"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"}
|