@wildo-ai/saas-backend-lib 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
- package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
- package/dist/esm/__tests__/setup.d.ts.map +1 -1
- package/dist/esm/__tests__/test-container.d.ts.map +1 -1
- package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
- package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
- package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
- package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
- package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
- package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +210 -0
- package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
- package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
- package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
- package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +220 -25
- package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +191 -26
- package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
- package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
- package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
- package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +106 -0
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +266 -20
- package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
- package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +34 -3
- package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
- package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
- package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
- package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +571 -45
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
- package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
- package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
- package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
- package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
- package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
- package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
- package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
- package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +475 -0
- package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
- package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
- package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
- package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
- package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
- package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
- package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
- package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
- package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +70 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +98 -2
- package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
- package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
- package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
- package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +21 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +109 -2
- package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
- package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
- package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +310 -29
- package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
- package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
- package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
- package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
- package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
- package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
- package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
- package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
- package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
- package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
- package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +350 -10
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +562 -10
- package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
- package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
- package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
- package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
- package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +52 -0
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
- package/dist/esm/compliance/index.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
- package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
- package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
- package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
- package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
- package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.d.ts +145 -49
- package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
- package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
- package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
- package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
- package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
- package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
- package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
- package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration-loader.backend.service.js +71 -76
- package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
- package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
- package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
- package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +37 -0
- package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js +69 -1
- package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
- package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
- package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
- package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
- package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
- package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
- package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
- package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
- package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
- package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
- package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
- package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
- package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
- package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
- package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
- package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
- package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
- package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
- package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
- package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
- package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
- package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
- package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
- package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
- package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +306 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +379 -0
- package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
- package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js +235 -0
- package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
- package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
- package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
- package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
- package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
- package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/document-extraction.backend.service.js +181 -100
- package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +413 -7
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +684 -45
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +84 -5
- package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
- package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
- package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
- package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
- package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
- package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
- package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
- package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
- package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
- package/dist/esm/files/controllers/file.controller.js +21 -13
- package/dist/esm/files/controllers/file.controller.js.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
- package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +260 -36
- package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
- package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
- package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
- package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
- package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
- package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
- package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
- package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-scanning.backend.service.js +202 -17
- package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-text-extraction.backend.service.js +175 -13
- package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
- package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
- package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
- package/dist/esm/files/services/files.backend.service.d.ts +68 -0
- package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
- package/dist/esm/files/services/files.backend.service.js +177 -5
- package/dist/esm/files/services/files.backend.service.js.map +1 -1
- package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
- package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
- package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.d.ts +52 -11
- package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
- package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
- package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
- package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
- package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
- package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
- package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
- package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
- package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
- package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
- package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
- package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
- package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
- package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
- package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
- package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
- package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
- package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
- package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
- package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
- package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
- package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +179 -8
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +436 -34
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
- package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
- package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
- package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
- package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +132 -6
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +467 -49
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +50 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +270 -20
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
- package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
- package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js +371 -0
- package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
- package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
- package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
- package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +17 -4
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
- package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
- package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
- package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
- package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
- package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
- package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
- package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
- package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
- package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
- package/dist/esm/index.d.ts +11 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +31 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts +10 -0
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +126 -10
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +20 -3
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +22 -3
- package/dist/esm/inject/models/service-types.js.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
- package/dist/esm/mcp/controllers/mcp.controller.js +70 -3
- package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
- package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
- package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
- package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
- package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
- package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
- package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
- package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
- package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
- package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
- package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.d.ts +24 -0
- package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
- package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
- package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
- package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
- package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +313 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +389 -0
- package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
- package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
- package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
- package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
- package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.d.ts +102 -5
- package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/email/services/email.backend.service.js +222 -70
- package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
- package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
- package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
- package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
- package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
- package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
- package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
- package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
- package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
- package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
- package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
- package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
- package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
- package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
- package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
- package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
- package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
- package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
- package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
- package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
- package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
- package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
- package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
- package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-consumer.backend.service.js +1 -4
- package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
- package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-executor.backend.service.js +1 -4
- package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
- package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
- package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
- package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
- package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
- package/dist/esm/queue/queue.backend.service.d.ts +3 -3
- package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/queue.backend.service.js +26 -4
- package/dist/esm/queue/queue.backend.service.js.map +1 -1
- package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
- package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
- package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
- package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
- package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
- package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
- package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
- package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
- package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
- package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
- package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
- package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
- package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
- package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
- package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.d.ts +9 -0
- package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
- package/dist/esm/requests/service/websocket.service.js +81 -9
- package/dist/esm/requests/service/websocket.service.js.map +1 -1
- package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
- package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
- package/dist/esm/resources/models/index.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
- package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
- package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
- package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
- package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
- package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
- package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
- package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
- package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts +83 -5
- package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/services/resources-registry.backend.service.js +121 -6
- package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
- package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
- package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
- package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
- package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
- package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
- package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
- package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +191 -1
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
- package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/start-application.backend.service.js +287 -89
- package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
- package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
- package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
- package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
- package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
- package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +113 -4
- package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
- package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
- package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
- package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
- package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +30 -0
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
- package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
- package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
- package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
- package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
- package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
- package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +197 -0
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +384 -53
- package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
- package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +260 -27
- package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +70 -4
- package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
- package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
- package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
- package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
- package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
- package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +339 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
- package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
- package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
- package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
- package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
- package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
- package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
- package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
- package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
- package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
- package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
- package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
- package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
- package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
- package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
- package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +37 -124
- package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
- package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +133 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js +137 -0
- package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +134 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +152 -5
- package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +146 -8
- package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js +328 -29
- package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
- package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +299 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +953 -0
- package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +99 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
- package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
- package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +210 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +423 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
- package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +282 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +125 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +123 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
- package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +214 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +430 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
- package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +98 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
- package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
- package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
- package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
- package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
- package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
- package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
- package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
- package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
- package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
- package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
- package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
- package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
- package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
- package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
- package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
- package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
- package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
- package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
- package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
- package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
- package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
- package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
- package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
- package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
- package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +11 -9
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
- package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
- package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
- package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
- package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
- package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
- package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
- package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
|
@@ -12,31 +12,20 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import 'reflect-metadata';
|
|
14
14
|
import { injectable, inject, optional } from 'inversify';
|
|
15
|
-
import { CoreWebSocketEvent, CoreResourceType, MilestoneType, MilestoneRewardType, ProgressionScope,
|
|
15
|
+
import { CoreWebSocketEvent, CoreResourceType, MilestoneType, MilestoneRewardType, ProgressionScope, ResourcePrimaryScope, GuidanceFlowScope, OnboardingStatus, } from '@wildo-ai/saas-models';
|
|
16
16
|
import { describeCaughtError } from '../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
17
17
|
import { SAAS_SERVICE_TYPES } from '../../inject/models/service-types.js';
|
|
18
18
|
import { requireScopeFeaturesForeignKeyField } from '../../features/services/scope-feature-ledger-relationship.backend.utils.js';
|
|
19
|
-
|
|
20
|
-
* Internal-only operation context for repository calls that bypass contextual
|
|
21
|
-
* filtering and enrichment. Used by system-level evaluators that operate
|
|
22
|
-
* outside the normal request pipeline.
|
|
23
|
-
*/
|
|
24
|
-
function internalOpCtx(resourceType, op) {
|
|
25
|
-
return { operation: { resourceIdentifier: resourceType, operationIdentifier: op } };
|
|
26
|
-
}
|
|
27
|
-
function buildProgressionStateScopeFilter(resourceType, scopeId) {
|
|
28
|
-
switch (resourceType) {
|
|
29
|
-
case CoreResourceType.USER_PROGRESSION_STATE:
|
|
30
|
-
return { userId: scopeId };
|
|
31
|
-
case CoreResourceType.ORGANIZATION_PROGRESSION_STATE:
|
|
32
|
-
return { organizationId: scopeId };
|
|
33
|
-
default:
|
|
34
|
-
throw new Error(`Unsupported progression state resource type: ${resourceType}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
19
|
+
import { buildProgressionStateScopeFilter, internalOpCtx } from './progression-state-store.backend.service.js';
|
|
37
20
|
/**
|
|
38
21
|
* Milestone Evaluator Backend Service
|
|
39
22
|
*
|
|
23
|
+
* Scope resolution, the load-or-create and the scope filter moved to
|
|
24
|
+
* `ProgressionStateStoreBackendService` on 2026-09-08 (#414), when value moments became a SECOND
|
|
25
|
+
* evaluator over the same row. Nothing about them changed — they are shared rather than copied,
|
|
26
|
+
* because two implementations of a load-or-create whose duplicate-key catch is a deliberate
|
|
27
|
+
* concurrency decision is exactly how the two drift.
|
|
28
|
+
*
|
|
40
29
|
* Pipeline integration entry point for milestone evaluation.
|
|
41
30
|
* Called fire-and-forget after guidance trigger evaluation in the operation pipeline.
|
|
42
31
|
*
|
|
@@ -53,16 +42,18 @@ let MilestoneEvaluatorBackendService = class MilestoneEvaluatorBackendService {
|
|
|
53
42
|
repositoriesRegistry;
|
|
54
43
|
resourcesRegistry;
|
|
55
44
|
conditionRegistry;
|
|
45
|
+
progressionStateStore;
|
|
56
46
|
featureResolution;
|
|
57
47
|
lifecycleEvaluator;
|
|
58
48
|
logDebug;
|
|
59
|
-
constructor(logger, milestoneRegistry, webSocketService, repositoriesRegistry, resourcesRegistry, conditionRegistry, featureResolution, lifecycleEvaluator) {
|
|
49
|
+
constructor(logger, milestoneRegistry, webSocketService, repositoriesRegistry, resourcesRegistry, conditionRegistry, progressionStateStore, featureResolution, lifecycleEvaluator) {
|
|
60
50
|
this.logger = logger;
|
|
61
51
|
this.milestoneRegistry = milestoneRegistry;
|
|
62
52
|
this.webSocketService = webSocketService;
|
|
63
53
|
this.repositoriesRegistry = repositoriesRegistry;
|
|
64
54
|
this.resourcesRegistry = resourcesRegistry;
|
|
65
55
|
this.conditionRegistry = conditionRegistry;
|
|
56
|
+
this.progressionStateStore = progressionStateStore;
|
|
66
57
|
this.featureResolution = featureResolution;
|
|
67
58
|
this.lifecycleEvaluator = lifecycleEvaluator;
|
|
68
59
|
this.logDebug = this.logger.debugByType('MilestoneEvaluator');
|
|
@@ -115,13 +106,13 @@ let MilestoneEvaluatorBackendService = class MilestoneEvaluatorBackendService {
|
|
|
115
106
|
// Scope Group Evaluation
|
|
116
107
|
// =====================================================
|
|
117
108
|
async evaluateScopeGroup(scope, scopeMilestones, triggerKey, userId, organizationId) {
|
|
118
|
-
const { resourceType: stateResourceType, scopeId } = this.resolveScopeTarget(scope, userId, organizationId);
|
|
109
|
+
const { resourceType: stateResourceType, scopeId } = this.progressionStateStore.resolveScopeTarget(scope, userId, organizationId);
|
|
119
110
|
if (!scopeId) {
|
|
120
111
|
this.logDebug('Skipping scope — no ID available', { scope });
|
|
121
112
|
return;
|
|
122
113
|
}
|
|
123
114
|
// Ensure state document exists (auto-create on first access)
|
|
124
|
-
await this.
|
|
115
|
+
await this.progressionStateStore.loadOrCreate(stateResourceType, scopeId);
|
|
125
116
|
const stateScopeFilter = buildProgressionStateScopeFilter(stateResourceType, scopeId);
|
|
126
117
|
// Atomic increment of operation count — returns document with correct count even under concurrency
|
|
127
118
|
const stateAfterIncrement = await this.repositoriesRegistry.atomicGuardedMutation(stateResourceType, stateScopeFilter, { increment: { [`operationCounts.${triggerKey}`]: 1 } });
|
|
@@ -217,28 +208,6 @@ let MilestoneEvaluatorBackendService = class MilestoneEvaluatorBackendService {
|
|
|
217
208
|
}
|
|
218
209
|
}
|
|
219
210
|
// =====================================================
|
|
220
|
-
// Scope Resolution
|
|
221
|
-
// =====================================================
|
|
222
|
-
/**
|
|
223
|
-
* Resolve scope to resource type + scope entity ID.
|
|
224
|
-
*
|
|
225
|
-
* Either id may be absent: an execution with no user principal has no USER
|
|
226
|
-
* scope, and one outside any organization has no ORGANIZATION scope. The
|
|
227
|
-
* caller treats an absent `scopeId` as "this scope does not apply", which is
|
|
228
|
-
* why every downstream helper takes the RESOLVED id instead of the pair —
|
|
229
|
-
* routing by scope and then re-deriving which id belongs to it is what let an
|
|
230
|
-
* inapplicable scope reach the store in the first place.
|
|
231
|
-
*/
|
|
232
|
-
resolveScopeTarget(scope, userId, organizationId) {
|
|
233
|
-
const resourceType = PROGRESSION_SCOPE_TO_RESOURCE[scope];
|
|
234
|
-
switch (scope) {
|
|
235
|
-
case ProgressionScope.USER:
|
|
236
|
-
return { resourceType, scopeId: userId };
|
|
237
|
-
case ProgressionScope.ORGANIZATION:
|
|
238
|
-
return { resourceType, scopeId: organizationId };
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
// =====================================================
|
|
242
211
|
// Condition Evaluation
|
|
243
212
|
// =====================================================
|
|
244
213
|
evaluateCondition(milestone, count, state) {
|
|
@@ -265,47 +234,6 @@ let MilestoneEvaluatorBackendService = class MilestoneEvaluatorBackendService {
|
|
|
265
234
|
return milestone.dependencies.every(dep => !!state.milestonesAchieved[dep]);
|
|
266
235
|
}
|
|
267
236
|
// =====================================================
|
|
268
|
-
// State Persistence
|
|
269
|
-
// =====================================================
|
|
270
|
-
async loadOrCreateProgressionState(resourceType, scopeId) {
|
|
271
|
-
try {
|
|
272
|
-
const repository = this.repositoriesRegistry.getRepository(resourceType);
|
|
273
|
-
if (!repository) {
|
|
274
|
-
this.logDebug('No repository found for progression state', { resourceType });
|
|
275
|
-
return this.createDefaultProgressionState(resourceType, scopeId);
|
|
276
|
-
}
|
|
277
|
-
const scopeFilter = buildProgressionStateScopeFilter(resourceType, scopeId);
|
|
278
|
-
const existing = await repository.read(internalOpCtx(resourceType, 'read'), scopeFilter, { excludeContextualFilter: true });
|
|
279
|
-
if (existing) {
|
|
280
|
-
return existing;
|
|
281
|
-
}
|
|
282
|
-
// Auto-create on first access (handle concurrent create race)
|
|
283
|
-
this.logDebug('Creating new progression state', { resourceType, scopeId });
|
|
284
|
-
const defaultState = this.createDefaultProgressionState(resourceType, scopeId);
|
|
285
|
-
try {
|
|
286
|
-
await repository.create(internalOpCtx(resourceType, 'create'), defaultState, { excludeContextualFilter: true, excludeContextEnrichment: true });
|
|
287
|
-
}
|
|
288
|
-
catch {
|
|
289
|
-
// Duplicate key from concurrent create — re-read
|
|
290
|
-
const raceWinner = await repository.read(internalOpCtx(resourceType, 'read'), scopeFilter, { excludeContextualFilter: true });
|
|
291
|
-
if (raceWinner)
|
|
292
|
-
return raceWinner;
|
|
293
|
-
}
|
|
294
|
-
return defaultState;
|
|
295
|
-
}
|
|
296
|
-
catch (error) {
|
|
297
|
-
this.logDebug('Failed to load progression state, using default', {
|
|
298
|
-
resourceType,
|
|
299
|
-
scopeId,
|
|
300
|
-
error: describeCaughtError(error),
|
|
301
|
-
});
|
|
302
|
-
return this.createDefaultProgressionState(resourceType, scopeId);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
createDefaultProgressionState(resourceType, scopeId) {
|
|
306
|
-
return GuidanceStateUtils.createScopedProgressionState(buildProgressionStateScopeFilter(resourceType, scopeId));
|
|
307
|
-
}
|
|
308
|
-
// =====================================================
|
|
309
237
|
// Reward Dispatch
|
|
310
238
|
// =====================================================
|
|
311
239
|
/**
|
|
@@ -522,10 +450,11 @@ MilestoneEvaluatorBackendService = __decorate([
|
|
|
522
450
|
__param(3, inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService)),
|
|
523
451
|
__param(4, inject(SAAS_SERVICE_TYPES.ResourceRegistryService)),
|
|
524
452
|
__param(5, inject(SAAS_SERVICE_TYPES.MilestoneConditionRegistry)),
|
|
525
|
-
__param(6, inject(SAAS_SERVICE_TYPES.
|
|
526
|
-
__param(7, inject(SAAS_SERVICE_TYPES.
|
|
527
|
-
__param(
|
|
528
|
-
|
|
453
|
+
__param(6, inject(SAAS_SERVICE_TYPES.ProgressionStateStore)),
|
|
454
|
+
__param(7, inject(SAAS_SERVICE_TYPES.FeatureResolutionService)),
|
|
455
|
+
__param(8, inject(SAAS_SERVICE_TYPES.LifecycleEvaluator)),
|
|
456
|
+
__param(8, optional()),
|
|
457
|
+
__metadata("design:paramtypes", [Function, Function, Function, Function, Function, Function, Function, Function, Function])
|
|
529
458
|
], MilestoneEvaluatorBackendService);
|
|
530
459
|
export { MilestoneEvaluatorBackendService };
|
|
531
460
|
//# sourceMappingURL=milestone-evaluator.backend.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-evaluator.backend.service.js","sourceRoot":"","sources":["../../../../../src/guidance/services/milestone-evaluator.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject, optional } from 'inversify';\nimport {\n CoreWebSocketEvent,\n CoreResourceType,\n MilestoneType,\n MilestoneRewardType,\n ProgressionScope,\n PROGRESSION_SCOPE_TO_RESOURCE,\n ResourcePrimaryScope,\n GuidanceFlowScope,\n OnboardingStatus,\n GuidanceStateUtils,\n} from '@wildo-ai/saas-models';\nimport type {\n MilestoneDefinition,\n ProgressionState,\n ScopeFeaturesWithOverrides,\n WS_MilestoneAchievedPayload,\n WS_ProgressionUpdatedPayload,\n} from '@wildo-ai/saas-models';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { MilestoneDefinitionRegistryBackendService } from './milestone-definition-registry.backend.service';\nimport type { WebSocketService, WebSocketMessage } from '~wildo-backend-lib/requests/service/websocket.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { LifecycleEvaluatorBackendService } from './lifecycle-evaluator.backend.service';\nimport type { MilestoneConditionRegistryBackendService } from './milestone-condition-registry.backend.service';\nimport type { FeatureResolutionBackendService } from '~wildo-backend-lib/features/services/feature-resolution.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { requireScopeFeaturesForeignKeyField } from '~wildo-backend-lib/features/services/scope-feature-ledger-relationship.backend.utils';\n\n/**\n * Internal-only operation context for repository calls that bypass contextual\n * filtering and enrichment. Used by system-level evaluators that operate\n * outside the normal request pipeline.\n */\nfunction internalOpCtx(resourceType: CoreResourceType, op: string): { operation: { resourceIdentifier: CoreResourceType; operationIdentifier: string } } {\n return { operation: { resourceIdentifier: resourceType, operationIdentifier: op } };\n}\n\nfunction buildProgressionStateScopeFilter(\n resourceType: CoreResourceType,\n scopeId: string,\n): { userId: string } | { organizationId: string } {\n switch (resourceType) {\n case CoreResourceType.USER_PROGRESSION_STATE:\n return { userId: scopeId };\n case CoreResourceType.ORGANIZATION_PROGRESSION_STATE:\n return { organizationId: scopeId };\n default:\n throw new Error(`Unsupported progression state resource type: ${resourceType}`);\n }\n}\n\n/**\n * Milestone Evaluator Backend Service\n *\n * Pipeline integration entry point for milestone evaluation.\n * Called fire-and-forget after guidance trigger evaluation in the operation pipeline.\n *\n * For each matching milestone:\n * 1. Resolve scope → load progression state from correct resource\n * 2. Increment operation counts\n * 3. Evaluate condition (FIRST_TIME, COUNT_THRESHOLD, CUSTOM_CONDITION)\n * 4. If achieved: update state, dispatch reward via WS\n */\n@injectable()\nexport class MilestoneEvaluatorBackendService {\n\n private 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.MilestoneDefinitionRegistry) private readonly milestoneRegistry: MilestoneDefinitionRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.WebSocketService) private readonly webSocketService: WebSocketService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService) private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.ResourceRegistryService) private readonly resourcesRegistry: ResourcesRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.MilestoneConditionRegistry) private readonly conditionRegistry: MilestoneConditionRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.FeatureResolutionService) private readonly featureResolution: FeatureResolutionBackendService,\n @inject(SAAS_SERVICE_TYPES.LifecycleEvaluator) @optional() private readonly lifecycleEvaluator?: LifecycleEvaluatorBackendService,\n ) {\n this.logDebug = this.logger.debugByType('MilestoneEvaluator');\n this.logger.setDebugTypeLogging('MilestoneEvaluator', false);\n }\n\n /**\n * Pipeline integration entry point.\n * Called fire-and-forget after guidance trigger evaluation.\n */\n public async evaluateForOperation(params: {\n resourceType: string;\n operationIdentifier: string;\n /**\n * Absent when the execution carried no user principal (machine, internal,\n * cron, public). USER-scoped milestone groups are skipped for those; an\n * ORGANIZATION-scoped group still evaluates on its own id.\n */\n userId?: string;\n organizationId?: string;\n }): Promise<void> {\n try {\n const matchingMilestones = this.milestoneRegistry.getMatchingMilestones(\n params.resourceType, params.operationIdentifier\n );\n if (matchingMilestones.length === 0) return;\n\n const triggerKey = `${params.resourceType}:${params.operationIdentifier}`;\n\n this.logDebug('Evaluating milestones for operation', {\n triggerKey,\n matchCount: matchingMilestones.length,\n milestoneRefs: matchingMilestones.map(m => m.identifier),\n });\n\n // Group milestones by scope — each scope has its own progression state document\n const byScope = new Map<ProgressionScope, MilestoneDefinition[]>();\n for (const milestone of matchingMilestones) {\n const scope = milestone.scope ?? ProgressionScope.USER;\n const group = byScope.get(scope) ?? [];\n group.push(milestone);\n byScope.set(scope, group);\n }\n\n // Evaluate each scope group independently — per-scope try/catch so one scope failure doesn't skip others\n for (const [scope, scopeMilestones] of byScope) {\n try {\n await this.evaluateScopeGroup(\n scope, scopeMilestones, triggerKey,\n params.userId, params.organizationId\n );\n } catch (err: unknown) {\n this.logger.warn(`Milestone evaluation failed for scope ${scope}`, {\n error: describeCaughtError(err),\n });\n }\n }\n } catch (error) {\n this.logger.warn('Milestone evaluation failed (non-blocking)', {\n error: describeCaughtError(error),\n resourceType: params.resourceType,\n operationIdentifier: params.operationIdentifier,\n });\n }\n }\n\n // =====================================================\n // Scope Group Evaluation\n // =====================================================\n\n private async evaluateScopeGroup(\n scope: ProgressionScope,\n scopeMilestones: MilestoneDefinition[],\n triggerKey: string,\n userId: string | undefined,\n organizationId: string | undefined,\n ): Promise<void> {\n const { resourceType: stateResourceType, scopeId } = this.resolveScopeTarget(\n scope, userId, organizationId\n );\n\n if (!scopeId) {\n this.logDebug('Skipping scope — no ID available', { scope });\n return;\n }\n\n // Ensure state document exists (auto-create on first access)\n await this.loadOrCreateProgressionState(stateResourceType, scopeId);\n const stateScopeFilter = buildProgressionStateScopeFilter(stateResourceType, scopeId);\n\n // Atomic increment of operation count — returns document with correct count even under concurrency\n const stateAfterIncrement = await this.repositoriesRegistry.atomicGuardedMutation<ProgressionState>(\n stateResourceType,\n stateScopeFilter,\n { increment: { [`operationCounts.${triggerKey}`]: 1 } },\n );\n\n if (!stateAfterIncrement) {\n this.logDebug('Failed to atomically increment operation count', { stateResourceType, scopeId });\n return;\n }\n\n let state = stateAfterIncrement;\n const currentCount = state.operationCounts[triggerKey] ?? 1;\n\n // Evaluate each matching milestone in this scope\n const achievedMilestones: MilestoneDefinition[] = [];\n for (const milestone of scopeMilestones) {\n // Skip already achieved\n if (state.milestonesAchieved[milestone.identifier]) continue;\n // Skip if dependencies not met\n if (!this.areDependenciesMet(milestone, state)) continue;\n\n const achieved = this.evaluateCondition(milestone, currentCount, state);\n if (achieved) {\n if (milestone.reward.type === MilestoneRewardType.FEATURE_UNLOCK) {\n await this.unlockFeature(milestone.reward.featureRef!, scope, scopeId);\n }\n\n // Atomic conditional achievement: only set if not already achieved (prevents double-achievement under concurrency)\n const updated = await this.repositoriesRegistry.atomicGuardedMutation<ProgressionState>(\n stateResourceType,\n {\n ...stateScopeFilter,\n [`milestonesAchieved.${milestone.identifier}`]: { $exists: false },\n },\n {\n increment: {\n totalPoints: milestone.points ?? 0,\n [`categoriesProgress.${milestone.category}.completedCount`]: 1,\n [`categoriesProgress.${milestone.category}.totalPoints`]: milestone.points ?? 0,\n },\n set: {\n [`milestonesAchieved.${milestone.identifier}`]: {\n achievedAt: new Date(),\n count: currentCount,\n },\n },\n },\n );\n\n if (updated) {\n state = updated;\n achievedMilestones.push(milestone);\n\n this.logDebug('Milestone achieved', {\n milestoneRef: milestone.identifier,\n scope,\n count: currentCount,\n totalPoints: state.totalPoints,\n });\n } else {\n this.logDebug('Milestone already achieved by concurrent request, skipping', {\n milestoneRef: milestone.identifier,\n });\n }\n }\n }\n\n // Dispatch rewards for newly achieved milestones\n for (const milestone of achievedMilestones) {\n await this.dispatchReward(\n milestone, scope, scopeId, state.totalPoints\n );\n }\n\n // Broadcast the incremented counts so the frontend can advance in-progress\n // milestone bars live — even when NO milestone was achieved this operation.\n // The evaluation is fire-and-forget (runs after the operation response), so\n // the client cannot re-read counts race-free on its own; this pushes the\n // authoritative post-increment `state`.\n await this.dispatchProgressUpdate(scope, scopeId, state);\n\n // Notify lifecycle evaluator of achieved milestones (sequential to avoid racing on same lifecycle document)\n if (this.lifecycleEvaluator && achievedMilestones.length > 0) {\n for (const milestone of achievedMilestones) {\n try {\n /**\n * The IDENTITY PAIR, deliberately — not this group's `scopeId`. Lifecycle evaluates every\n * scope the EXECUTION applies to, so an organization-scoped milestone still advances the\n * achieving user's lifecycle. Narrowing this to `scopeId` would silently drop that half.\n * Either id may be absent; the lifecycle evaluator resolves applicable scopes from what\n * it is given.\n */\n await this.lifecycleEvaluator.onMilestoneAchieved({\n milestoneIdentifier: milestone.identifier,\n milestoneLifecycleTransition: milestone.lifecycleTransition,\n userId,\n organizationId,\n });\n } catch (err: unknown) {\n this.logger.warn('Lifecycle milestone notification failed', {\n milestoneRef: milestone.identifier,\n error: describeCaughtError(err),\n });\n }\n }\n }\n }\n\n // =====================================================\n // Scope Resolution\n // =====================================================\n\n /**\n * Resolve scope to resource type + scope entity ID.\n *\n * Either id may be absent: an execution with no user principal has no USER\n * scope, and one outside any organization has no ORGANIZATION scope. The\n * caller treats an absent `scopeId` as \"this scope does not apply\", which is\n * why every downstream helper takes the RESOLVED id instead of the pair —\n * routing by scope and then re-deriving which id belongs to it is what let an\n * inapplicable scope reach the store in the first place.\n */\n private resolveScopeTarget(\n scope: ProgressionScope, userId: string | undefined, organizationId: string | undefined,\n ): { resourceType: CoreResourceType; scopeId: string | undefined } {\n const resourceType = PROGRESSION_SCOPE_TO_RESOURCE[scope];\n switch (scope) {\n case ProgressionScope.USER:\n return { resourceType, scopeId: userId };\n case ProgressionScope.ORGANIZATION:\n return { resourceType, scopeId: organizationId };\n }\n }\n\n // =====================================================\n // Condition Evaluation\n // =====================================================\n\n private evaluateCondition(milestone: MilestoneDefinition, count: number, state: ProgressionState): boolean {\n switch (milestone.type) {\n case MilestoneType.FIRST_TIME:\n return true;\n case MilestoneType.COUNT_THRESHOLD:\n return count >= (milestone.threshold ?? 1);\n case MilestoneType.CUSTOM_CONDITION:\n if (!milestone.conditionRef) {\n this.logger.warn('CUSTOM_CONDITION milestone missing conditionRef', { milestoneRef: milestone.identifier });\n return false;\n }\n return this.conditionRegistry.evaluateCondition(milestone.conditionRef, {\n count,\n operationCounts: state.operationCounts,\n milestonesAchieved: state.milestonesAchieved,\n });\n }\n }\n\n private areDependenciesMet(milestone: MilestoneDefinition, state: ProgressionState): boolean {\n if (!milestone.dependencies?.length) return true;\n return milestone.dependencies.every(dep => !!state.milestonesAchieved[dep]);\n }\n\n // =====================================================\n // State Persistence\n // =====================================================\n\n private async loadOrCreateProgressionState(\n resourceType: CoreResourceType,\n scopeId: string,\n ): Promise<ProgressionState> {\n try {\n const repository = this.repositoriesRegistry.getRepository(resourceType);\n if (!repository) {\n this.logDebug('No repository found for progression state', { resourceType });\n return this.createDefaultProgressionState(resourceType, scopeId);\n }\n\n const scopeFilter = buildProgressionStateScopeFilter(resourceType, scopeId);\n\n const existing = await repository.read<ProgressionState>(\n internalOpCtx(resourceType, 'read') as any,\n scopeFilter,\n { excludeContextualFilter: true },\n );\n\n if (existing) {\n return existing;\n }\n\n // Auto-create on first access (handle concurrent create race)\n this.logDebug('Creating new progression state', { resourceType, scopeId });\n const defaultState = this.createDefaultProgressionState(resourceType, scopeId);\n try {\n await repository.create(\n internalOpCtx(resourceType, 'create') as any,\n defaultState,\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n } catch {\n // Duplicate key from concurrent create — re-read\n const raceWinner = await repository.read<ProgressionState>(\n internalOpCtx(resourceType, 'read') as any,\n scopeFilter,\n { excludeContextualFilter: true },\n );\n if (raceWinner) return raceWinner;\n }\n return defaultState;\n } catch (error) {\n this.logDebug('Failed to load progression state, using default', {\n resourceType,\n scopeId,\n error: describeCaughtError(error),\n });\n return this.createDefaultProgressionState(resourceType, scopeId);\n }\n }\n\n private createDefaultProgressionState(resourceType: CoreResourceType, scopeId: string): ProgressionState {\n return GuidanceStateUtils.createScopedProgressionState(buildProgressionStateScopeFilter(resourceType, scopeId));\n }\n\n // =====================================================\n // Reward Dispatch\n // =====================================================\n\n /**\n * Push a PROGRESSION_UPDATED WS event carrying the scope's post-increment\n * `operationCounts` + `totalPoints`. Same scope-aware channel routing as\n * {@link dispatchReward}. Fired on every milestone-triggering operation (the\n * evaluator already early-returns for operations with no matching milestone),\n * so it is not chatty.\n */\n private async dispatchProgressUpdate(\n scope: ProgressionScope,\n scopeId: string,\n state: ProgressionState,\n ): Promise<void> {\n const wsPayload: WS_ProgressionUpdatedPayload = {\n scope,\n operationCounts: state.operationCounts,\n totalPoints: state.totalPoints,\n updatedAt: new Date(),\n };\n\n const wsMessage: WebSocketMessage = {\n type: CoreWebSocketEvent.PROGRESSION_UPDATED,\n payload: wsPayload,\n timestamp: new Date(),\n };\n\n try {\n switch (scope) {\n case ProgressionScope.USER:\n await this.webSocketService.sendToUser(scopeId, wsMessage);\n break;\n case ProgressionScope.ORGANIZATION:\n await this.webSocketService.sendToOrganization(scopeId, wsMessage);\n break;\n }\n } catch (error) {\n this.logger.warn('Failed to dispatch progression update', {\n scope,\n error: describeCaughtError(error),\n });\n }\n }\n\n private async dispatchReward(\n milestone: MilestoneDefinition,\n scope: ProgressionScope,\n scopeId: string,\n totalPoints: number,\n ): Promise<void> {\n // Push MILESTONE_ACHIEVED WS event — scope-aware channel routing\n const wsPayload: WS_MilestoneAchievedPayload = {\n milestoneRef: milestone.identifier,\n category: milestone.category,\n points: milestone.points,\n scope,\n reward: milestone.reward,\n lifecycleTransition: milestone.lifecycleTransition,\n achievedAt: new Date(),\n totalPoints,\n };\n\n const wsMessage: WebSocketMessage = {\n type: CoreWebSocketEvent.MILESTONE_ACHIEVED,\n payload: wsPayload,\n timestamp: new Date(),\n };\n\n try {\n // Route WS event to the correct channel based on scope. `scopeId` is the id\n // the scope resolved to, so no per-branch presence check is possible here —\n // an absent id already ended the evaluation before any reward was granted.\n switch (scope) {\n case ProgressionScope.USER:\n await this.webSocketService.sendToUser(scopeId, wsMessage);\n break;\n case ProgressionScope.ORGANIZATION:\n await this.webSocketService.sendToOrganization(scopeId, wsMessage);\n break;\n }\n\n this.logDebug('Dispatched MILESTONE_ACHIEVED event', {\n milestoneRef: milestone.identifier,\n scope,\n rewardType: milestone.reward.type,\n });\n } catch (error) {\n this.logger.warn('Failed to dispatch milestone reward', {\n milestoneRef: milestone.identifier,\n error: describeCaughtError(error),\n });\n }\n\n switch (milestone.reward.type) {\n case MilestoneRewardType.FEATURE_UNLOCK:\n break;\n case MilestoneRewardType.GUIDANCE_FLOW:\n await this.activateGuidanceFlow(\n milestone.reward.guidanceFlowRef!,\n scopeId,\n this.progressionScopeToGuidanceScope(scope),\n );\n break;\n case MilestoneRewardType.CELEBRATION:\n break;\n }\n }\n\n /**\n * Write feature override to scope-matched features resource.\n */\n private async unlockFeature(\n featureRef: string,\n scope: ProgressionScope,\n scopeId: string,\n ): Promise<void> {\n const featureResourceType = this.getFeatureResourceType(scope);\n\n const repository = this.repositoriesRegistry.getRepository(featureResourceType);\n if (!repository) {\n throw new Error(`No repository registered for ${featureResourceType}`);\n }\n\n try {\n const scopeType = this.getFeatureScopeType(scope);\n const foreignKeyField = requireScopeFeaturesForeignKeyField(this.resourcesRegistry, scopeType);\n const scopeFilter = { [foreignKeyField]: scopeId };\n const existingDocument = await repository.read<ScopeFeaturesWithOverrides & { _id: string }>(\n internalOpCtx(featureResourceType, 'read') as never,\n scopeFilter,\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n\n const manualOverrides = this.buildUnlockedManualOverrides(\n existingDocument?.manualOverrides,\n featureRef,\n );\n\n this.logDebug('Unlocking feature via milestone reward', {\n featureRef,\n scope,\n featureResourceType,\n hasExistingDocument: Boolean(existingDocument),\n foreignKeyField,\n });\n\n if (existingDocument?._id) {\n await repository.update(\n internalOpCtx(featureResourceType, 'update') as never,\n existingDocument._id,\n { manualOverrides },\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n } else {\n await repository.upsertByFilter(\n internalOpCtx(featureResourceType, 'create') as never,\n scopeFilter,\n // Milestone rewards own only admin-style overrides. Billing sync may\n // concurrently materialize or update `features` / `limits`.\n {\n ...scopeFilter,\n manualOverrides,\n },\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n }\n\n try {\n await this.featureResolution.invalidateCache(\n scopeType,\n scopeId,\n );\n } catch (error) {\n this.logger.warn('Failed to invalidate feature cache after milestone reward', {\n featureRef,\n scope,\n error: describeCaughtError(error),\n });\n }\n } catch (error) {\n this.logger.warn('Failed to unlock feature via milestone reward', {\n featureRef,\n scope,\n error: describeCaughtError(error),\n });\n throw error;\n }\n }\n\n private getFeatureResourceType(scope: ProgressionScope): CoreResourceType {\n switch (scope) {\n case ProgressionScope.USER: return CoreResourceType.USER_FEATURES;\n case ProgressionScope.ORGANIZATION: return CoreResourceType.ORGANIZATION_FEATURES;\n }\n }\n\n private getFeatureScopeType(scope: ProgressionScope): ResourcePrimaryScope {\n switch (scope) {\n case ProgressionScope.USER:\n return ResourcePrimaryScope.USER_SELF;\n case ProgressionScope.ORGANIZATION:\n return ResourcePrimaryScope.ORGANIZATIONS;\n }\n }\n\n private buildUnlockedManualOverrides(\n existingOverrides: ScopeFeaturesWithOverrides['manualOverrides'] | undefined,\n featureRef: string,\n ): ScopeFeaturesWithOverrides['manualOverrides'] {\n const addedFeatures = new Set(existingOverrides?.addedFeatures ?? []);\n addedFeatures.add(featureRef);\n\n const removedFeatures = (existingOverrides?.removedFeatures ?? []).filter(ref => ref !== featureRef);\n\n return {\n addedFeatures: [...addedFeatures],\n removedFeatures,\n limitOverrides: { ...(existingOverrides?.limitOverrides ?? {}) },\n };\n }\n\n private progressionScopeToGuidanceScope(scope: ProgressionScope): GuidanceFlowScope {\n switch (scope) {\n case ProgressionScope.USER: return GuidanceFlowScope.USER;\n case ProgressionScope.ORGANIZATION: return GuidanceFlowScope.ORGANIZATION;\n }\n }\n\n /**\n * Push GUIDANCE_STATE_CHANGED to activate the referenced guidance flow.\n */\n private async activateGuidanceFlow(\n guidanceFlowRef: string,\n scopeId: string,\n scope?: GuidanceFlowScope,\n ): Promise<void> {\n try {\n const message: WebSocketMessage = {\n type: CoreWebSocketEvent.GUIDANCE_STATE_CHANGED,\n payload: {\n flowRef: guidanceFlowRef,\n status: OnboardingStatus.IN_PROGRESS,\n triggerSource: 'backend' as const,\n scope: scope ?? GuidanceFlowScope.USER,\n },\n timestamp: new Date(),\n };\n\n switch (scope ?? GuidanceFlowScope.USER) {\n case GuidanceFlowScope.USER:\n await this.webSocketService.sendToUser(scopeId, message);\n break;\n case GuidanceFlowScope.ORGANIZATION:\n await this.webSocketService.sendToOrganization(scopeId, message);\n break;\n }\n\n this.logDebug('Activated guidance flow via milestone reward', {\n guidanceFlowRef,\n });\n } catch (error) {\n this.logger.warn('Failed to activate guidance flow via milestone reward', {\n guidanceFlowRef,\n error: describeCaughtError(error),\n });\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"milestone-evaluator.backend.service.js","sourceRoot":"","sources":["../../../../src/guidance/services/milestone-evaluator.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject, optional } from 'inversify';\nimport {\n CoreWebSocketEvent,\n CoreResourceType,\n MilestoneType,\n MilestoneRewardType,\n ProgressionScope,\n PROGRESSION_SCOPE_TO_RESOURCE,\n ResourcePrimaryScope,\n GuidanceFlowScope,\n OnboardingStatus,\n GuidanceStateUtils,\n} from '@wildo-ai/saas-models';\nimport type {\n MilestoneDefinition,\n ProgressionState,\n ScopeFeaturesWithOverrides,\n WS_MilestoneAchievedPayload,\n WS_ProgressionUpdatedPayload,\n} from '@wildo-ai/saas-models';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { MilestoneDefinitionRegistryBackendService } from './milestone-definition-registry.backend.service';\nimport type { WebSocketService, WebSocketMessage } from '~wildo-backend-lib/requests/service/websocket.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { LifecycleEvaluatorBackendService } from './lifecycle-evaluator.backend.service';\nimport type { MilestoneConditionRegistryBackendService } from './milestone-condition-registry.backend.service';\nimport type { FeatureResolutionBackendService } from '~wildo-backend-lib/features/services/feature-resolution.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { requireScopeFeaturesForeignKeyField } from '~wildo-backend-lib/features/services/scope-feature-ledger-relationship.backend.utils';\nimport { buildProgressionStateScopeFilter, internalOpCtx } from './progression-state-store.backend.service';\nimport type { ProgressionStateStoreBackendService } from './progression-state-store.backend.service';\n\n/**\n * Milestone Evaluator Backend Service\n *\n * Scope resolution, the load-or-create and the scope filter moved to\n * `ProgressionStateStoreBackendService` on 2026-09-08 (#414), when value moments became a SECOND\n * evaluator over the same row. Nothing about them changed — they are shared rather than copied,\n * because two implementations of a load-or-create whose duplicate-key catch is a deliberate\n * concurrency decision is exactly how the two drift.\n *\n * Pipeline integration entry point for milestone evaluation.\n * Called fire-and-forget after guidance trigger evaluation in the operation pipeline.\n *\n * For each matching milestone:\n * 1. Resolve scope → load progression state from correct resource\n * 2. Increment operation counts\n * 3. Evaluate condition (FIRST_TIME, COUNT_THRESHOLD, CUSTOM_CONDITION)\n * 4. If achieved: update state, dispatch reward via WS\n */\n@injectable()\nexport class MilestoneEvaluatorBackendService {\n\n private 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.MilestoneDefinitionRegistry) private readonly milestoneRegistry: MilestoneDefinitionRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.WebSocketService) private readonly webSocketService: WebSocketService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService) private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.ResourceRegistryService) private readonly resourcesRegistry: ResourcesRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.MilestoneConditionRegistry) private readonly conditionRegistry: MilestoneConditionRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.ProgressionStateStore) private readonly progressionStateStore: ProgressionStateStoreBackendService,\n @inject(SAAS_SERVICE_TYPES.FeatureResolutionService) private readonly featureResolution: FeatureResolutionBackendService,\n @inject(SAAS_SERVICE_TYPES.LifecycleEvaluator) @optional() private readonly lifecycleEvaluator?: LifecycleEvaluatorBackendService,\n ) {\n this.logDebug = this.logger.debugByType('MilestoneEvaluator');\n this.logger.setDebugTypeLogging('MilestoneEvaluator', false);\n }\n\n /**\n * Pipeline integration entry point.\n * Called fire-and-forget after guidance trigger evaluation.\n */\n public async evaluateForOperation(params: {\n resourceType: string;\n operationIdentifier: string;\n /**\n * Absent when the execution carried no user principal (machine, internal,\n * cron, public). USER-scoped milestone groups are skipped for those; an\n * ORGANIZATION-scoped group still evaluates on its own id.\n */\n userId?: string;\n organizationId?: string;\n }): Promise<void> {\n try {\n const matchingMilestones = this.milestoneRegistry.getMatchingMilestones(\n params.resourceType, params.operationIdentifier\n );\n if (matchingMilestones.length === 0) return;\n\n const triggerKey = `${params.resourceType}:${params.operationIdentifier}`;\n\n this.logDebug('Evaluating milestones for operation', {\n triggerKey,\n matchCount: matchingMilestones.length,\n milestoneRefs: matchingMilestones.map(m => m.identifier),\n });\n\n // Group milestones by scope — each scope has its own progression state document\n const byScope = new Map<ProgressionScope, MilestoneDefinition[]>();\n for (const milestone of matchingMilestones) {\n const scope = milestone.scope ?? ProgressionScope.USER;\n const group = byScope.get(scope) ?? [];\n group.push(milestone);\n byScope.set(scope, group);\n }\n\n // Evaluate each scope group independently — per-scope try/catch so one scope failure doesn't skip others\n for (const [scope, scopeMilestones] of byScope) {\n try {\n await this.evaluateScopeGroup(\n scope, scopeMilestones, triggerKey,\n params.userId, params.organizationId\n );\n } catch (err: unknown) {\n this.logger.warn(`Milestone evaluation failed for scope ${scope}`, {\n error: describeCaughtError(err),\n });\n }\n }\n } catch (error) {\n this.logger.warn('Milestone evaluation failed (non-blocking)', {\n error: describeCaughtError(error),\n resourceType: params.resourceType,\n operationIdentifier: params.operationIdentifier,\n });\n }\n }\n\n // =====================================================\n // Scope Group Evaluation\n // =====================================================\n\n private async evaluateScopeGroup(\n scope: ProgressionScope,\n scopeMilestones: MilestoneDefinition[],\n triggerKey: string,\n userId: string | undefined,\n organizationId: string | undefined,\n ): Promise<void> {\n const { resourceType: stateResourceType, scopeId } = this.progressionStateStore.resolveScopeTarget(\n scope, userId, organizationId\n );\n\n if (!scopeId) {\n this.logDebug('Skipping scope — no ID available', { scope });\n return;\n }\n\n // Ensure state document exists (auto-create on first access)\n await this.progressionStateStore.loadOrCreate(stateResourceType, scopeId);\n const stateScopeFilter = buildProgressionStateScopeFilter(stateResourceType, scopeId);\n\n // Atomic increment of operation count — returns document with correct count even under concurrency\n const stateAfterIncrement = await this.repositoriesRegistry.atomicGuardedMutation<ProgressionState>(\n stateResourceType,\n stateScopeFilter,\n { increment: { [`operationCounts.${triggerKey}`]: 1 } },\n );\n\n if (!stateAfterIncrement) {\n this.logDebug('Failed to atomically increment operation count', { stateResourceType, scopeId });\n return;\n }\n\n let state = stateAfterIncrement;\n const currentCount = state.operationCounts[triggerKey] ?? 1;\n\n // Evaluate each matching milestone in this scope\n const achievedMilestones: MilestoneDefinition[] = [];\n for (const milestone of scopeMilestones) {\n // Skip already achieved\n if (state.milestonesAchieved[milestone.identifier]) continue;\n // Skip if dependencies not met\n if (!this.areDependenciesMet(milestone, state)) continue;\n\n const achieved = this.evaluateCondition(milestone, currentCount, state);\n if (achieved) {\n if (milestone.reward.type === MilestoneRewardType.FEATURE_UNLOCK) {\n await this.unlockFeature(milestone.reward.featureRef!, scope, scopeId);\n }\n\n // Atomic conditional achievement: only set if not already achieved (prevents double-achievement under concurrency)\n const updated = await this.repositoriesRegistry.atomicGuardedMutation<ProgressionState>(\n stateResourceType,\n {\n ...stateScopeFilter,\n [`milestonesAchieved.${milestone.identifier}`]: { $exists: false },\n },\n {\n increment: {\n totalPoints: milestone.points ?? 0,\n [`categoriesProgress.${milestone.category}.completedCount`]: 1,\n [`categoriesProgress.${milestone.category}.totalPoints`]: milestone.points ?? 0,\n },\n set: {\n [`milestonesAchieved.${milestone.identifier}`]: {\n achievedAt: new Date(),\n count: currentCount,\n },\n },\n },\n );\n\n if (updated) {\n state = updated;\n achievedMilestones.push(milestone);\n\n this.logDebug('Milestone achieved', {\n milestoneRef: milestone.identifier,\n scope,\n count: currentCount,\n totalPoints: state.totalPoints,\n });\n } else {\n this.logDebug('Milestone already achieved by concurrent request, skipping', {\n milestoneRef: milestone.identifier,\n });\n }\n }\n }\n\n // Dispatch rewards for newly achieved milestones\n for (const milestone of achievedMilestones) {\n await this.dispatchReward(\n milestone, scope, scopeId, state.totalPoints\n );\n }\n\n // Broadcast the incremented counts so the frontend can advance in-progress\n // milestone bars live — even when NO milestone was achieved this operation.\n // The evaluation is fire-and-forget (runs after the operation response), so\n // the client cannot re-read counts race-free on its own; this pushes the\n // authoritative post-increment `state`.\n await this.dispatchProgressUpdate(scope, scopeId, state);\n\n // Notify lifecycle evaluator of achieved milestones (sequential to avoid racing on same lifecycle document)\n if (this.lifecycleEvaluator && achievedMilestones.length > 0) {\n for (const milestone of achievedMilestones) {\n try {\n /**\n * The IDENTITY PAIR, deliberately — not this group's `scopeId`. Lifecycle evaluates every\n * scope the EXECUTION applies to, so an organization-scoped milestone still advances the\n * achieving user's lifecycle. Narrowing this to `scopeId` would silently drop that half.\n * Either id may be absent; the lifecycle evaluator resolves applicable scopes from what\n * it is given.\n */\n await this.lifecycleEvaluator.onMilestoneAchieved({\n milestoneIdentifier: milestone.identifier,\n milestoneLifecycleTransition: milestone.lifecycleTransition,\n userId,\n organizationId,\n });\n } catch (err: unknown) {\n this.logger.warn('Lifecycle milestone notification failed', {\n milestoneRef: milestone.identifier,\n error: describeCaughtError(err),\n });\n }\n }\n }\n }\n\n // =====================================================\n // Condition Evaluation\n // =====================================================\n\n private evaluateCondition(milestone: MilestoneDefinition, count: number, state: ProgressionState): boolean {\n switch (milestone.type) {\n case MilestoneType.FIRST_TIME:\n return true;\n case MilestoneType.COUNT_THRESHOLD:\n return count >= (milestone.threshold ?? 1);\n case MilestoneType.CUSTOM_CONDITION:\n if (!milestone.conditionRef) {\n this.logger.warn('CUSTOM_CONDITION milestone missing conditionRef', { milestoneRef: milestone.identifier });\n return false;\n }\n return this.conditionRegistry.evaluateCondition(milestone.conditionRef, {\n count,\n operationCounts: state.operationCounts,\n milestonesAchieved: state.milestonesAchieved,\n });\n }\n }\n\n private areDependenciesMet(milestone: MilestoneDefinition, state: ProgressionState): boolean {\n if (!milestone.dependencies?.length) return true;\n return milestone.dependencies.every(dep => !!state.milestonesAchieved[dep]);\n }\n\n // =====================================================\n // Reward Dispatch\n // =====================================================\n\n /**\n * Push a PROGRESSION_UPDATED WS event carrying the scope's post-increment\n * `operationCounts` + `totalPoints`. Same scope-aware channel routing as\n * {@link dispatchReward}. Fired on every milestone-triggering operation (the\n * evaluator already early-returns for operations with no matching milestone),\n * so it is not chatty.\n */\n private async dispatchProgressUpdate(\n scope: ProgressionScope,\n scopeId: string,\n state: ProgressionState,\n ): Promise<void> {\n const wsPayload: WS_ProgressionUpdatedPayload = {\n scope,\n operationCounts: state.operationCounts,\n totalPoints: state.totalPoints,\n updatedAt: new Date(),\n };\n\n const wsMessage: WebSocketMessage = {\n type: CoreWebSocketEvent.PROGRESSION_UPDATED,\n payload: wsPayload,\n timestamp: new Date(),\n };\n\n try {\n switch (scope) {\n case ProgressionScope.USER:\n await this.webSocketService.sendToUser(scopeId, wsMessage);\n break;\n case ProgressionScope.ORGANIZATION:\n await this.webSocketService.sendToOrganization(scopeId, wsMessage);\n break;\n }\n } catch (error) {\n this.logger.warn('Failed to dispatch progression update', {\n scope,\n error: describeCaughtError(error),\n });\n }\n }\n\n private async dispatchReward(\n milestone: MilestoneDefinition,\n scope: ProgressionScope,\n scopeId: string,\n totalPoints: number,\n ): Promise<void> {\n // Push MILESTONE_ACHIEVED WS event — scope-aware channel routing\n const wsPayload: WS_MilestoneAchievedPayload = {\n milestoneRef: milestone.identifier,\n category: milestone.category,\n points: milestone.points,\n scope,\n reward: milestone.reward,\n lifecycleTransition: milestone.lifecycleTransition,\n achievedAt: new Date(),\n totalPoints,\n };\n\n const wsMessage: WebSocketMessage = {\n type: CoreWebSocketEvent.MILESTONE_ACHIEVED,\n payload: wsPayload,\n timestamp: new Date(),\n };\n\n try {\n // Route WS event to the correct channel based on scope. `scopeId` is the id\n // the scope resolved to, so no per-branch presence check is possible here —\n // an absent id already ended the evaluation before any reward was granted.\n switch (scope) {\n case ProgressionScope.USER:\n await this.webSocketService.sendToUser(scopeId, wsMessage);\n break;\n case ProgressionScope.ORGANIZATION:\n await this.webSocketService.sendToOrganization(scopeId, wsMessage);\n break;\n }\n\n this.logDebug('Dispatched MILESTONE_ACHIEVED event', {\n milestoneRef: milestone.identifier,\n scope,\n rewardType: milestone.reward.type,\n });\n } catch (error) {\n this.logger.warn('Failed to dispatch milestone reward', {\n milestoneRef: milestone.identifier,\n error: describeCaughtError(error),\n });\n }\n\n switch (milestone.reward.type) {\n case MilestoneRewardType.FEATURE_UNLOCK:\n break;\n case MilestoneRewardType.GUIDANCE_FLOW:\n await this.activateGuidanceFlow(\n milestone.reward.guidanceFlowRef!,\n scopeId,\n this.progressionScopeToGuidanceScope(scope),\n );\n break;\n case MilestoneRewardType.CELEBRATION:\n break;\n }\n }\n\n /**\n * Write feature override to scope-matched features resource.\n */\n private async unlockFeature(\n featureRef: string,\n scope: ProgressionScope,\n scopeId: string,\n ): Promise<void> {\n const featureResourceType = this.getFeatureResourceType(scope);\n\n const repository = this.repositoriesRegistry.getRepository(featureResourceType);\n if (!repository) {\n throw new Error(`No repository registered for ${featureResourceType}`);\n }\n\n try {\n const scopeType = this.getFeatureScopeType(scope);\n const foreignKeyField = requireScopeFeaturesForeignKeyField(this.resourcesRegistry, scopeType);\n const scopeFilter = { [foreignKeyField]: scopeId };\n const existingDocument = await repository.read<ScopeFeaturesWithOverrides & { _id: string }>(\n internalOpCtx(featureResourceType, 'read') as never,\n scopeFilter,\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n\n const manualOverrides = this.buildUnlockedManualOverrides(\n existingDocument?.manualOverrides,\n featureRef,\n );\n\n this.logDebug('Unlocking feature via milestone reward', {\n featureRef,\n scope,\n featureResourceType,\n hasExistingDocument: Boolean(existingDocument),\n foreignKeyField,\n });\n\n if (existingDocument?._id) {\n await repository.update(\n internalOpCtx(featureResourceType, 'update') as never,\n existingDocument._id,\n { manualOverrides },\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n } else {\n await repository.upsertByFilter(\n internalOpCtx(featureResourceType, 'create') as never,\n scopeFilter,\n // Milestone rewards own only admin-style overrides. Billing sync may\n // concurrently materialize or update `features` / `limits`.\n {\n ...scopeFilter,\n manualOverrides,\n },\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n }\n\n try {\n await this.featureResolution.invalidateCache(\n scopeType,\n scopeId,\n );\n } catch (error) {\n this.logger.warn('Failed to invalidate feature cache after milestone reward', {\n featureRef,\n scope,\n error: describeCaughtError(error),\n });\n }\n } catch (error) {\n this.logger.warn('Failed to unlock feature via milestone reward', {\n featureRef,\n scope,\n error: describeCaughtError(error),\n });\n throw error;\n }\n }\n\n private getFeatureResourceType(scope: ProgressionScope): CoreResourceType {\n switch (scope) {\n case ProgressionScope.USER: return CoreResourceType.USER_FEATURES;\n case ProgressionScope.ORGANIZATION: return CoreResourceType.ORGANIZATION_FEATURES;\n }\n }\n\n private getFeatureScopeType(scope: ProgressionScope): ResourcePrimaryScope {\n switch (scope) {\n case ProgressionScope.USER:\n return ResourcePrimaryScope.USER_SELF;\n case ProgressionScope.ORGANIZATION:\n return ResourcePrimaryScope.ORGANIZATIONS;\n }\n }\n\n private buildUnlockedManualOverrides(\n existingOverrides: ScopeFeaturesWithOverrides['manualOverrides'] | undefined,\n featureRef: string,\n ): ScopeFeaturesWithOverrides['manualOverrides'] {\n const addedFeatures = new Set(existingOverrides?.addedFeatures ?? []);\n addedFeatures.add(featureRef);\n\n const removedFeatures = (existingOverrides?.removedFeatures ?? []).filter(ref => ref !== featureRef);\n\n return {\n addedFeatures: [...addedFeatures],\n removedFeatures,\n limitOverrides: { ...(existingOverrides?.limitOverrides ?? {}) },\n };\n }\n\n private progressionScopeToGuidanceScope(scope: ProgressionScope): GuidanceFlowScope {\n switch (scope) {\n case ProgressionScope.USER: return GuidanceFlowScope.USER;\n case ProgressionScope.ORGANIZATION: return GuidanceFlowScope.ORGANIZATION;\n }\n }\n\n /**\n * Push GUIDANCE_STATE_CHANGED to activate the referenced guidance flow.\n */\n private async activateGuidanceFlow(\n guidanceFlowRef: string,\n scopeId: string,\n scope?: GuidanceFlowScope,\n ): Promise<void> {\n try {\n const message: WebSocketMessage = {\n type: CoreWebSocketEvent.GUIDANCE_STATE_CHANGED,\n payload: {\n flowRef: guidanceFlowRef,\n status: OnboardingStatus.IN_PROGRESS,\n triggerSource: 'backend' as const,\n scope: scope ?? GuidanceFlowScope.USER,\n },\n timestamp: new Date(),\n };\n\n switch (scope ?? GuidanceFlowScope.USER) {\n case GuidanceFlowScope.USER:\n await this.webSocketService.sendToUser(scopeId, message);\n break;\n case GuidanceFlowScope.ORGANIZATION:\n await this.webSocketService.sendToOrganization(scopeId, message);\n break;\n }\n\n this.logDebug('Activated guidance flow via milestone reward', {\n guidanceFlowRef,\n });\n } catch (error) {\n this.logger.warn('Failed to activate guidance flow via milestone reward', {\n guidanceFlowRef,\n error: describeCaughtError(error),\n });\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one way to reach a scope's progression-state row.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* `MilestoneEvaluatorBackendService` owned the scope resolution, the load-or-create and the scope
|
|
7
|
+
* filter as private methods, and they worked. Then #414 needed the same three things for value
|
|
8
|
+
* moments — a second evaluator over the SAME row — and the choice was between copying them and
|
|
9
|
+
* naming them.
|
|
10
|
+
*
|
|
11
|
+
* Copying is the defect shape `.claude/rules/invariant-call-site-enumeration.md` records fifteen
|
|
12
|
+
* times: two mechanisms for one invariant, free to drift, with the drift invisible until something
|
|
13
|
+
* behaves differently for one caller. The load-or-create in particular carries a concurrency
|
|
14
|
+
* decision that is not obvious and would not survive being re-derived — a duplicate-key from a
|
|
15
|
+
* concurrent create is CAUGHT and the row re-read, because two operations in the same instant both
|
|
16
|
+
* legitimately find no row.
|
|
17
|
+
*
|
|
18
|
+
* So: one service, injected by both evaluators. Nothing here is new behaviour; every line was moved.
|
|
19
|
+
*
|
|
20
|
+
* ## What it deliberately does NOT own
|
|
21
|
+
*
|
|
22
|
+
* The atomic mutations. `atomicGuardedMutation` is called by the evaluators directly, because the
|
|
23
|
+
* GUARD is the evaluator's own semantics — a milestone guards on `milestonesAchieved.<id>` not
|
|
24
|
+
* existing, a value moment on its own key — and a store that took a guard as a parameter would be a
|
|
25
|
+
* pass-through pretending to be a boundary.
|
|
26
|
+
*/
|
|
27
|
+
import 'reflect-metadata';
|
|
28
|
+
import { CoreResourceType, ProgressionScope } from '@wildo-ai/saas-models';
|
|
29
|
+
import type { ProgressionState } from '@wildo-ai/saas-models';
|
|
30
|
+
import type { LoggerService } from '../../monitoring/logger/services/logger.service';
|
|
31
|
+
import type { RepositoriesRegistryHandlerBackendService } from '../../base-classes/services/repositories/repositories-registry-handler.backend.service';
|
|
32
|
+
/**
|
|
33
|
+
* The filter that selects one scope's row. Exported because both evaluators build their atomic
|
|
34
|
+
* guards by spreading it — the guard is theirs, the scope selection is not.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildProgressionStateScopeFilter(resourceType: CoreResourceType, scopeId: string): {
|
|
37
|
+
userId: string;
|
|
38
|
+
} | {
|
|
39
|
+
organizationId: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Internal-only operation context for repository calls that bypass contextual filtering and
|
|
43
|
+
* enrichment. Used by system-level evaluators that operate outside the normal request pipeline.
|
|
44
|
+
*/
|
|
45
|
+
export declare function internalOpCtx(resourceType: CoreResourceType, op: string): {
|
|
46
|
+
operation: {
|
|
47
|
+
resourceIdentifier: CoreResourceType;
|
|
48
|
+
operationIdentifier: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare class ProgressionStateStoreBackendService {
|
|
52
|
+
private readonly logger;
|
|
53
|
+
private readonly repositoriesRegistry;
|
|
54
|
+
constructor(logger: LoggerService, repositoriesRegistry: RepositoriesRegistryHandlerBackendService);
|
|
55
|
+
private logDebug;
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a scope to its resource type and the id of the entity being measured.
|
|
58
|
+
*
|
|
59
|
+
* Either id may be absent: an execution with no user principal has no USER scope, and one outside
|
|
60
|
+
* any organization has no ORGANIZATION scope. Callers treat an absent `scopeId` as "this scope
|
|
61
|
+
* does not apply" — which is why every downstream helper takes the RESOLVED id rather than the
|
|
62
|
+
* pair. Routing by scope and then re-deriving which id belongs to it is what let an inapplicable
|
|
63
|
+
* scope reach the store in the first place.
|
|
64
|
+
*/
|
|
65
|
+
resolveScopeTarget(scope: ProgressionScope, userId: string | undefined, organizationId: string | undefined): {
|
|
66
|
+
resourceType: CoreResourceType;
|
|
67
|
+
scopeId: string | undefined;
|
|
68
|
+
};
|
|
69
|
+
/** The scope filter for a resolved target. */
|
|
70
|
+
scopeFilter(resourceType: CoreResourceType, scopeId: string): {
|
|
71
|
+
userId: string;
|
|
72
|
+
} | {
|
|
73
|
+
organizationId: string;
|
|
74
|
+
};
|
|
75
|
+
createDefaultProgressionState(resourceType: CoreResourceType, scopeId: string): ProgressionState;
|
|
76
|
+
/**
|
|
77
|
+
* Read the scope's row, creating it on first access.
|
|
78
|
+
*
|
|
79
|
+
* Never throws: every failure path returns the DEFAULT state. Both callers are fire-and-forget
|
|
80
|
+
* evaluators running after the operation's response has been decided, so an unavailable repository
|
|
81
|
+
* must degrade to "this scope has achieved nothing yet" rather than surface as an error on a
|
|
82
|
+
* request that already succeeded.
|
|
83
|
+
*/
|
|
84
|
+
loadOrCreate(resourceType: CoreResourceType, scopeId: string): Promise<ProgressionState>;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=progression-state-store.backend.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progression-state-store.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/guidance/services/progression-state-store.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,qGAAqG,CAAC;AAErK;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CASjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE;QAAE,kBAAkB,EAAE,gBAAgB,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAE9J;AAED,qBACa,mCAAmC;IAET,OAAO,CAAC,QAAQ,CAAC,MAAM;IACK,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADhD,MAAM,EAAE,aAAa,EACO,oBAAoB,EAAE,yCAAyC;IAKjJ,OAAO,CAAC,QAAQ;IAIhB;;;;;;;;OAQG;IACI,kBAAkB,CACvB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC;QAAE,YAAY,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;IAUlE,8CAA8C;IACvC,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;IAI7G,6BAA6B,CAAC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAIvG;;;;;;;OAOG;IACU,YAAY,CAAC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmDtG"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one way to reach a scope's progression-state row.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* `MilestoneEvaluatorBackendService` owned the scope resolution, the load-or-create and the scope
|
|
7
|
+
* filter as private methods, and they worked. Then #414 needed the same three things for value
|
|
8
|
+
* moments — a second evaluator over the SAME row — and the choice was between copying them and
|
|
9
|
+
* naming them.
|
|
10
|
+
*
|
|
11
|
+
* Copying is the defect shape `.claude/rules/invariant-call-site-enumeration.md` records fifteen
|
|
12
|
+
* times: two mechanisms for one invariant, free to drift, with the drift invisible until something
|
|
13
|
+
* behaves differently for one caller. The load-or-create in particular carries a concurrency
|
|
14
|
+
* decision that is not obvious and would not survive being re-derived — a duplicate-key from a
|
|
15
|
+
* concurrent create is CAUGHT and the row re-read, because two operations in the same instant both
|
|
16
|
+
* legitimately find no row.
|
|
17
|
+
*
|
|
18
|
+
* So: one service, injected by both evaluators. Nothing here is new behaviour; every line was moved.
|
|
19
|
+
*
|
|
20
|
+
* ## What it deliberately does NOT own
|
|
21
|
+
*
|
|
22
|
+
* The atomic mutations. `atomicGuardedMutation` is called by the evaluators directly, because the
|
|
23
|
+
* GUARD is the evaluator's own semantics — a milestone guards on `milestonesAchieved.<id>` not
|
|
24
|
+
* existing, a value moment on its own key — and a store that took a guard as a parameter would be a
|
|
25
|
+
* pass-through pretending to be a boundary.
|
|
26
|
+
*/
|
|
27
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
28
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
29
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
30
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
31
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
32
|
+
};
|
|
33
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
34
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
35
|
+
};
|
|
36
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
37
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
38
|
+
};
|
|
39
|
+
import 'reflect-metadata';
|
|
40
|
+
import { injectable, inject } from 'inversify';
|
|
41
|
+
import { CoreResourceType, GuidanceStateUtils, PROGRESSION_SCOPE_TO_RESOURCE, ProgressionScope, } from '@wildo-ai/saas-models';
|
|
42
|
+
import { describeCaughtError } from '../../errors/utils/error-log-level-classification.backend.utils.js';
|
|
43
|
+
import { SAAS_SERVICE_TYPES } from '../../inject/models/service-types.js';
|
|
44
|
+
/**
|
|
45
|
+
* The filter that selects one scope's row. Exported because both evaluators build their atomic
|
|
46
|
+
* guards by spreading it — the guard is theirs, the scope selection is not.
|
|
47
|
+
*/
|
|
48
|
+
export function buildProgressionStateScopeFilter(resourceType, scopeId) {
|
|
49
|
+
switch (resourceType) {
|
|
50
|
+
case CoreResourceType.USER_PROGRESSION_STATE:
|
|
51
|
+
return { userId: scopeId };
|
|
52
|
+
case CoreResourceType.ORGANIZATION_PROGRESSION_STATE:
|
|
53
|
+
return { organizationId: scopeId };
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`Unsupported progression state resource type: ${resourceType}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Internal-only operation context for repository calls that bypass contextual filtering and
|
|
60
|
+
* enrichment. Used by system-level evaluators that operate outside the normal request pipeline.
|
|
61
|
+
*/
|
|
62
|
+
export function internalOpCtx(resourceType, op) {
|
|
63
|
+
return { operation: { resourceIdentifier: resourceType, operationIdentifier: op } };
|
|
64
|
+
}
|
|
65
|
+
let ProgressionStateStoreBackendService = class ProgressionStateStoreBackendService {
|
|
66
|
+
logger;
|
|
67
|
+
repositoriesRegistry;
|
|
68
|
+
constructor(logger, repositoriesRegistry) {
|
|
69
|
+
this.logger = logger;
|
|
70
|
+
this.repositoriesRegistry = repositoriesRegistry;
|
|
71
|
+
this.logger.setDebugTypeLogging('ProgressionStateStore', false);
|
|
72
|
+
}
|
|
73
|
+
logDebug(message, context) {
|
|
74
|
+
this.logger.debugByType('ProgressionStateStore')(message, context);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resolve a scope to its resource type and the id of the entity being measured.
|
|
78
|
+
*
|
|
79
|
+
* Either id may be absent: an execution with no user principal has no USER scope, and one outside
|
|
80
|
+
* any organization has no ORGANIZATION scope. Callers treat an absent `scopeId` as "this scope
|
|
81
|
+
* does not apply" — which is why every downstream helper takes the RESOLVED id rather than the
|
|
82
|
+
* pair. Routing by scope and then re-deriving which id belongs to it is what let an inapplicable
|
|
83
|
+
* scope reach the store in the first place.
|
|
84
|
+
*/
|
|
85
|
+
resolveScopeTarget(scope, userId, organizationId) {
|
|
86
|
+
const resourceType = PROGRESSION_SCOPE_TO_RESOURCE[scope];
|
|
87
|
+
switch (scope) {
|
|
88
|
+
case ProgressionScope.USER:
|
|
89
|
+
return { resourceType, scopeId: userId };
|
|
90
|
+
case ProgressionScope.ORGANIZATION:
|
|
91
|
+
return { resourceType, scopeId: organizationId };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** The scope filter for a resolved target. */
|
|
95
|
+
scopeFilter(resourceType, scopeId) {
|
|
96
|
+
return buildProgressionStateScopeFilter(resourceType, scopeId);
|
|
97
|
+
}
|
|
98
|
+
createDefaultProgressionState(resourceType, scopeId) {
|
|
99
|
+
return GuidanceStateUtils.createScopedProgressionState(buildProgressionStateScopeFilter(resourceType, scopeId));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Read the scope's row, creating it on first access.
|
|
103
|
+
*
|
|
104
|
+
* Never throws: every failure path returns the DEFAULT state. Both callers are fire-and-forget
|
|
105
|
+
* evaluators running after the operation's response has been decided, so an unavailable repository
|
|
106
|
+
* must degrade to "this scope has achieved nothing yet" rather than surface as an error on a
|
|
107
|
+
* request that already succeeded.
|
|
108
|
+
*/
|
|
109
|
+
async loadOrCreate(resourceType, scopeId) {
|
|
110
|
+
try {
|
|
111
|
+
const repository = this.repositoriesRegistry.getRepository(resourceType);
|
|
112
|
+
if (!repository) {
|
|
113
|
+
this.logDebug('No repository found for progression state', { resourceType });
|
|
114
|
+
return this.createDefaultProgressionState(resourceType, scopeId);
|
|
115
|
+
}
|
|
116
|
+
const scopeFilter = buildProgressionStateScopeFilter(resourceType, scopeId);
|
|
117
|
+
const existing = await repository.read(internalOpCtx(resourceType, 'read'), scopeFilter, { excludeContextualFilter: true });
|
|
118
|
+
if (existing) {
|
|
119
|
+
return existing;
|
|
120
|
+
}
|
|
121
|
+
this.logDebug('Creating new progression state', { resourceType, scopeId });
|
|
122
|
+
const defaultState = this.createDefaultProgressionState(resourceType, scopeId);
|
|
123
|
+
try {
|
|
124
|
+
await repository.create(internalOpCtx(resourceType, 'create'), defaultState, { excludeContextualFilter: true, excludeContextEnrichment: true });
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
/*
|
|
128
|
+
* A duplicate key from a CONCURRENT create, not a failure. Two operations in the same
|
|
129
|
+
* instant both legitimately find no row and both try to seed one; the loser re-reads the
|
|
130
|
+
* winner's. Swallowing this is the reason the row can be self-healing at all.
|
|
131
|
+
*/
|
|
132
|
+
const raceWinner = await repository.read(internalOpCtx(resourceType, 'read'), scopeFilter, { excludeContextualFilter: true });
|
|
133
|
+
if (raceWinner)
|
|
134
|
+
return raceWinner;
|
|
135
|
+
}
|
|
136
|
+
return defaultState;
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
this.logDebug('Failed to load progression state, using default', {
|
|
140
|
+
resourceType,
|
|
141
|
+
scopeId,
|
|
142
|
+
error: describeCaughtError(error),
|
|
143
|
+
});
|
|
144
|
+
return this.createDefaultProgressionState(resourceType, scopeId);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
ProgressionStateStoreBackendService = __decorate([
|
|
149
|
+
injectable(),
|
|
150
|
+
__param(0, inject(SAAS_SERVICE_TYPES.Logger)),
|
|
151
|
+
__param(1, inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService)),
|
|
152
|
+
__metadata("design:paramtypes", [Function, Function])
|
|
153
|
+
], ProgressionStateStoreBackendService);
|
|
154
|
+
export { ProgressionStateStoreBackendService };
|
|
155
|
+
//# sourceMappingURL=progression-state-store.backend.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progression-state-store.backend.service.js","sourceRoot":"","sources":["../../../../src/guidance/services/progression-state-store.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The one way to reach a scope's progression-state row.\n *\n * ## Why this exists\n *\n * `MilestoneEvaluatorBackendService` owned the scope resolution, the load-or-create and the scope\n * filter as private methods, and they worked. Then #414 needed the same three things for value\n * moments — a second evaluator over the SAME row — and the choice was between copying them and\n * naming them.\n *\n * Copying is the defect shape `.claude/rules/invariant-call-site-enumeration.md` records fifteen\n * times: two mechanisms for one invariant, free to drift, with the drift invisible until something\n * behaves differently for one caller. The load-or-create in particular carries a concurrency\n * decision that is not obvious and would not survive being re-derived — a duplicate-key from a\n * concurrent create is CAUGHT and the row re-read, because two operations in the same instant both\n * legitimately find no row.\n *\n * So: one service, injected by both evaluators. Nothing here is new behaviour; every line was moved.\n *\n * ## What it deliberately does NOT own\n *\n * The atomic mutations. `atomicGuardedMutation` is called by the evaluators directly, because the\n * GUARD is the evaluator's own semantics — a milestone guards on `milestonesAchieved.<id>` not\n * existing, a value moment on its own key — and a store that took a guard as a parameter would be a\n * pass-through pretending to be a boundary.\n */\n\nimport 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport {\n CoreResourceType,\n GuidanceStateUtils,\n PROGRESSION_SCOPE_TO_RESOURCE,\n ProgressionScope,\n} from '@wildo-ai/saas-models';\nimport type { ProgressionState } from '@wildo-ai/saas-models';\n\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\n\n/**\n * The filter that selects one scope's row. Exported because both evaluators build their atomic\n * guards by spreading it — the guard is theirs, the scope selection is not.\n */\nexport function buildProgressionStateScopeFilter(\n resourceType: CoreResourceType,\n scopeId: string,\n): { userId: string } | { organizationId: string } {\n switch (resourceType) {\n case CoreResourceType.USER_PROGRESSION_STATE:\n return { userId: scopeId };\n case CoreResourceType.ORGANIZATION_PROGRESSION_STATE:\n return { organizationId: scopeId };\n default:\n throw new Error(`Unsupported progression state resource type: ${resourceType}`);\n }\n}\n\n/**\n * Internal-only operation context for repository calls that bypass contextual filtering and\n * enrichment. Used by system-level evaluators that operate outside the normal request pipeline.\n */\nexport function internalOpCtx(resourceType: CoreResourceType, op: string): { operation: { resourceIdentifier: CoreResourceType; operationIdentifier: string } } {\n return { operation: { resourceIdentifier: resourceType, operationIdentifier: op } };\n}\n\n@injectable()\nexport class ProgressionStateStoreBackendService {\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.RepositoriesRegistryHandlerService) private readonly repositoriesRegistry: RepositoriesRegistryHandlerBackendService,\n ) {\n this.logger.setDebugTypeLogging('ProgressionStateStore', false);\n }\n\n private logDebug(message: string, context?: Record<string, unknown>): void {\n this.logger.debugByType('ProgressionStateStore')(message, context);\n }\n\n /**\n * Resolve a scope to its resource type and the id of the entity being measured.\n *\n * Either id may be absent: an execution with no user principal has no USER scope, and one outside\n * any organization has no ORGANIZATION scope. Callers treat an absent `scopeId` as \"this scope\n * does not apply\" — which is why every downstream helper takes the RESOLVED id rather than the\n * pair. Routing by scope and then re-deriving which id belongs to it is what let an inapplicable\n * scope reach the store in the first place.\n */\n public resolveScopeTarget(\n scope: ProgressionScope,\n userId: string | undefined,\n organizationId: string | undefined,\n ): { resourceType: CoreResourceType; scopeId: string | undefined } {\n const resourceType = PROGRESSION_SCOPE_TO_RESOURCE[scope];\n switch (scope) {\n case ProgressionScope.USER:\n return { resourceType, scopeId: userId };\n case ProgressionScope.ORGANIZATION:\n return { resourceType, scopeId: organizationId };\n }\n }\n\n /** The scope filter for a resolved target. */\n public scopeFilter(resourceType: CoreResourceType, scopeId: string): { userId: string } | { organizationId: string } {\n return buildProgressionStateScopeFilter(resourceType, scopeId);\n }\n\n public createDefaultProgressionState(resourceType: CoreResourceType, scopeId: string): ProgressionState {\n return GuidanceStateUtils.createScopedProgressionState(buildProgressionStateScopeFilter(resourceType, scopeId));\n }\n\n /**\n * Read the scope's row, creating it on first access.\n *\n * Never throws: every failure path returns the DEFAULT state. Both callers are fire-and-forget\n * evaluators running after the operation's response has been decided, so an unavailable repository\n * must degrade to \"this scope has achieved nothing yet\" rather than surface as an error on a\n * request that already succeeded.\n */\n public async loadOrCreate(resourceType: CoreResourceType, scopeId: string): Promise<ProgressionState> {\n try {\n const repository = this.repositoriesRegistry.getRepository(resourceType);\n if (!repository) {\n this.logDebug('No repository found for progression state', { resourceType });\n return this.createDefaultProgressionState(resourceType, scopeId);\n }\n\n const scopeFilter = buildProgressionStateScopeFilter(resourceType, scopeId);\n\n const existing = await repository.read<ProgressionState>(\n internalOpCtx(resourceType, 'read') as never,\n scopeFilter,\n { excludeContextualFilter: true },\n );\n\n if (existing) {\n return existing;\n }\n\n this.logDebug('Creating new progression state', { resourceType, scopeId });\n const defaultState = this.createDefaultProgressionState(resourceType, scopeId);\n try {\n await repository.create(\n internalOpCtx(resourceType, 'create') as never,\n defaultState,\n { excludeContextualFilter: true, excludeContextEnrichment: true },\n );\n } catch {\n /*\n * A duplicate key from a CONCURRENT create, not a failure. Two operations in the same\n * instant both legitimately find no row and both try to seed one; the loser re-reads the\n * winner's. Swallowing this is the reason the row can be self-healing at all.\n */\n const raceWinner = await repository.read<ProgressionState>(\n internalOpCtx(resourceType, 'read') as never,\n scopeFilter,\n { excludeContextualFilter: true },\n );\n if (raceWinner) return raceWinner;\n }\n return defaultState;\n } catch (error) {\n this.logDebug('Failed to load progression state, using default', {\n resourceType,\n scopeId,\n error: describeCaughtError(error),\n });\n return this.createDefaultProgressionState(resourceType, scopeId);\n }\n }\n}\n"]}
|
package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoped-state-read-custom-implementations.backend.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"scoped-state-read-custom-implementations.backend.d.ts","sourceRoot":"","sources":["../../../../src/guidance/services/scoped-state-read-custom-implementations.backend.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,4GAA4G,CAAC;AAuQpH,eAAO,MAAM,oCAAoC,EAAE,0CAA0C,EAE5F,CAAC"}
|