@wildo-ai/saas-backend-lib 1.1.3 → 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.
Files changed (1056) hide show
  1. package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
  2. package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/test-container.d.ts.map +1 -1
  5. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
  7. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  8. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  9. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  11. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  12. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  13. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  15. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -1
  19. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +12 -1
  21. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  23. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  24. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  26. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  27. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  29. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  30. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  31. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  36. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +13 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +17 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +57 -0
  61. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +95 -2
  63. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  66. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  68. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +14 -3
  70. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  74. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  75. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  76. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  77. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  78. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  80. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  81. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  83. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  86. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  88. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  92. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  95. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +44 -6
  96. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -1
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -1
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -1
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -1
  105. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -1
  106. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -1
  107. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  108. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  109. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +1 -1
  110. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -1
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +5 -4
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -1
  113. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  114. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  115. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  116. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  121. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -1
  122. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -1
  123. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  124. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  125. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  127. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  128. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +32 -0
  129. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  130. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +32 -1
  131. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  133. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  135. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  137. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  139. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +9 -6
  140. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  141. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +9 -6
  142. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  143. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -1
  144. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -1
  145. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  146. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  148. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +50 -3
  149. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  150. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  151. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  152. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  153. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  154. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  155. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  156. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  157. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  158. package/dist/esm/companion-exports.d.ts.map +1 -1
  159. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  160. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  161. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  162. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  164. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  166. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +107 -4
  168. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +176 -5
  170. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  172. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  174. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  177. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -1
  179. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  180. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +21 -0
  181. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  182. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  183. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  185. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  186. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  187. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/compliance/index.d.ts.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  190. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  191. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  194. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  196. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  197. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  198. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  200. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  201. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.d.ts +4 -4
  203. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  204. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  205. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  207. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  208. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  209. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  210. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  211. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  212. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  213. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  214. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  215. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  216. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration-loader.backend.service.js +3 -0
  218. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  219. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  220. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  221. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  222. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  223. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +12 -0
  224. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  225. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +28 -0
  226. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  227. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  228. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  229. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  230. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  231. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  232. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  233. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  234. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  235. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  236. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  237. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  238. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  239. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  240. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  241. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  243. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  244. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  245. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  246. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  247. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  248. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  249. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  250. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  251. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  252. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  253. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  254. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  255. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  256. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  257. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  258. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  259. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  260. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  261. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  262. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  264. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  265. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  266. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  267. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  268. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  269. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  270. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  271. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  272. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  273. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  274. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  275. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  276. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  277. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  278. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  279. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  280. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  281. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  282. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  283. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  284. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  285. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  286. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  287. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  288. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  289. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  290. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  291. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  292. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  293. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  294. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  295. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  296. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  297. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  298. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  299. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  300. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  301. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  302. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  303. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  304. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  305. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  306. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  307. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  308. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  309. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  310. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  311. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  313. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  314. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  316. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  317. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  318. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +102 -52
  319. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -1
  320. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +117 -71
  321. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -1
  322. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -1
  323. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -1
  324. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -1
  325. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +26 -7
  326. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -1
  327. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -1
  328. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -1
  329. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  330. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  331. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -1
  332. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -1
  333. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  334. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  335. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  336. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  337. package/dist/esm/external-providers/services/document-extraction.backend.service.js +179 -98
  338. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  339. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  340. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  341. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  342. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +121 -0
  343. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  344. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +151 -0
  345. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  346. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  347. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  348. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +60 -4
  349. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  350. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  351. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  352. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  353. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  354. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  355. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  356. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  357. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  358. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  359. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  360. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  361. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  363. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  364. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  365. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  366. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  367. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  368. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  369. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  370. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  371. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  372. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  373. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +221 -21
  374. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  375. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  376. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  377. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  378. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  379. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  380. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  381. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  382. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  383. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  384. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  385. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  386. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  387. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  388. package/dist/esm/files/services/file-scanning.backend.service.js +5 -0
  389. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  390. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  391. package/dist/esm/files/services/file-text-extraction.backend.service.js +8 -5
  392. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  393. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  394. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  395. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  396. package/dist/esm/files/services/files.backend.service.js +3 -1
  397. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  398. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  399. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -1
  400. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -1
  401. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  402. package/dist/esm/files/storage/file-storage-provider.types.d.ts +36 -1
  403. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  404. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  405. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  406. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  407. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  408. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  409. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  410. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  411. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  412. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  413. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  414. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  415. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  416. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  417. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  418. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  419. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  420. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  421. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  422. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  423. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  424. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  425. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  426. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  427. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  428. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  429. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  430. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -1
  431. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -1
  432. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  433. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  437. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  439. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  440. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  442. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  444. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  445. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  446. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  447. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  448. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  450. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  451. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  452. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  453. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  455. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  457. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  458. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  459. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  461. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  462. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  464. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +107 -16
  465. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  466. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +118 -18
  467. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  468. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  470. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -1
  471. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -1
  472. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  473. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  474. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  475. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  476. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  477. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +104 -5
  478. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  479. package/dist/esm/flows-actors/services/agents.backend.service.js +263 -31
  480. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  481. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  482. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +46 -1
  483. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  484. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +193 -6
  485. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  486. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  487. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  488. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  489. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  490. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  491. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  492. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +3 -0
  494. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -1
  495. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  496. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  497. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  498. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  499. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  500. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  502. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  503. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  504. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  505. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  506. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +9 -0
  507. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  508. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  509. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  510. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  511. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  512. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  514. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  516. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  517. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  518. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  519. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  520. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  522. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  523. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  524. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  525. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  526. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  527. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  528. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  529. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  530. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  531. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  532. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -1
  533. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -1
  534. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  535. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  536. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  537. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  538. package/dist/esm/index.d.ts +0 -1
  539. package/dist/esm/index.d.ts.map +1 -1
  540. package/dist/esm/index.js +0 -1
  541. package/dist/esm/index.js.map +1 -1
  542. package/dist/esm/inject/models/container.d.ts +10 -0
  543. package/dist/esm/inject/models/container.d.ts.map +1 -1
  544. package/dist/esm/inject/models/container.js +49 -1
  545. package/dist/esm/inject/models/container.js.map +1 -1
  546. package/dist/esm/inject/models/service-types.d.ts +3 -0
  547. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  548. package/dist/esm/inject/models/service-types.js +3 -0
  549. package/dist/esm/inject/models/service-types.js.map +1 -1
  550. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  551. package/dist/esm/mcp/controllers/mcp.controller.js +50 -3
  552. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  553. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  555. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  556. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  557. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  558. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  559. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  560. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  561. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  562. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  563. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  564. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  565. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -1
  566. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -1
  567. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  568. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  569. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  570. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  571. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  572. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  573. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  574. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  575. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  576. package/dist/esm/monitoring/logger/services/logger.service.js +3 -3
  577. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  578. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -1
  579. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -1
  580. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  581. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +10 -6
  582. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -1
  583. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +10 -6
  584. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -1
  585. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  586. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  587. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  588. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  589. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  590. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  591. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  592. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  593. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  594. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  595. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  596. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  597. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  599. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  600. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  601. package/dist/esm/notifications/email/services/email.backend.service.d.ts +47 -6
  602. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  603. package/dist/esm/notifications/email/services/email.backend.service.js +86 -36
  604. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  605. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  606. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  607. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  608. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  609. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  610. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  611. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  612. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  613. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  614. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  615. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  616. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  617. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  618. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  619. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  620. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  621. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  622. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  623. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  624. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  625. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  626. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  627. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  628. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  629. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  630. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  631. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  632. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  633. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  634. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  635. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  636. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  637. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  638. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  639. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  640. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  641. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  642. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  644. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  645. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  646. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  647. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  648. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  649. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  650. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  651. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  652. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  653. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  655. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  656. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  657. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  658. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  659. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  660. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  661. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  662. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -1
  663. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -1
  664. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -1
  665. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -1
  666. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -1
  667. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -1
  668. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -1
  669. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -1
  670. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  671. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  672. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  673. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  674. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  675. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  676. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  677. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  678. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  679. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  680. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  681. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  682. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  683. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  684. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  685. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  686. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  687. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  688. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  689. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  690. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  691. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  692. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  693. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  694. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  695. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  696. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  697. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  698. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  699. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  700. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  701. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  702. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  703. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  704. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  705. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  706. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  707. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  708. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  709. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  710. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  711. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  712. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  713. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  714. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  715. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  716. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  717. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  718. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  719. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  720. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  721. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  722. package/dist/esm/requests/service/websocket.service.js +49 -1
  723. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  724. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  725. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  726. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +2 -0
  727. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  728. package/dist/esm/resources/models/index.d.ts.map +1 -1
  729. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  730. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  731. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  732. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  733. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  734. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  735. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  736. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  737. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  738. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  739. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  740. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  741. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  742. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  743. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  744. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +23 -0
  745. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  746. package/dist/esm/resources/services/resources-registry.backend.service.js +31 -0
  747. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  748. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  749. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  750. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  751. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  752. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  753. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  754. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  755. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  756. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  757. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  758. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  759. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  760. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  761. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  762. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  763. package/dist/esm/runtime/services/http-server.backend.service.js +10 -0
  764. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  765. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  766. package/dist/esm/runtime/services/start-application.backend.service.js +26 -12
  767. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  768. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  769. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  770. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  771. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  772. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  773. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  774. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  775. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  776. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  777. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  778. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  780. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  782. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +84 -0
  784. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  787. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  788. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  792. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  793. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  794. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  795. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  796. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  798. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  799. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  801. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  803. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  804. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  805. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  807. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  808. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  811. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  814. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  815. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  816. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  817. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  820. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  821. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +9 -2
  822. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  823. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +9 -2
  824. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  825. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  826. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  827. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  829. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  830. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  833. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  834. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  835. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  836. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +218 -26
  837. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  838. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  839. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  840. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +36 -0
  841. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  842. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  843. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  844. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  845. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  846. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  847. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  848. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  849. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  850. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  851. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  852. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  853. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  854. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  855. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  856. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  857. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  859. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
  860. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +57 -1
  861. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
  862. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  863. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  864. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  865. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  866. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  867. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  868. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  869. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  870. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  871. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  872. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  873. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  874. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  875. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  876. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  877. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  878. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  879. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  880. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  881. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  882. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  883. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  884. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  885. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  886. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  887. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  888. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  889. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  890. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  891. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  892. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  893. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  894. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  895. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  896. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  897. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  898. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  899. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  900. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  901. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  902. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  903. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  904. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  905. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  906. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  907. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  908. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  909. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  910. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  911. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -1
  913. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -1
  914. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  915. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  916. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  917. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  918. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  919. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  920. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +20 -181
  921. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  922. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  924. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  925. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  926. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +40 -0
  927. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -1
  928. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +43 -1
  929. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -1
  930. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +27 -17
  931. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  932. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +27 -17
  933. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  934. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +72 -0
  935. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  936. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +153 -10
  937. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  938. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  939. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  940. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -1
  941. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -1
  942. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +139 -1
  943. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -1
  944. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +474 -33
  945. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -1
  946. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +40 -0
  947. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -1
  948. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -1
  949. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -1
  950. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -1
  951. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +19 -0
  952. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -1
  953. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +38 -0
  954. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -1
  955. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  956. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -1
  957. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -1
  958. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +17 -1
  959. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -1
  960. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +14 -0
  961. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -1
  962. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +16 -0
  963. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -1
  964. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -1
  965. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +1 -1
  966. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -1
  967. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +19 -0
  968. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -1
  969. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +45 -2
  970. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -1
  971. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  972. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -1
  973. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +37 -1
  974. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -1
  975. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -1
  976. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -1
  977. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -1
  978. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -1
  979. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -1
  980. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  981. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  982. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  983. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  984. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  985. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  986. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  987. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  988. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  989. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  990. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  991. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  992. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  994. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  995. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  996. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  997. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  999. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1000. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1001. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1002. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1003. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1004. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1005. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1006. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1007. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1008. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1009. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1010. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1011. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1012. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1013. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1014. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1015. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1017. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1019. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1020. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1021. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1022. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1023. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -1
  1024. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -1
  1025. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1026. package/dist/esm/testing.d.ts.map +1 -1
  1027. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1028. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1029. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1030. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -1
  1031. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -1
  1032. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1033. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1034. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1035. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1036. package/package.json +9 -9
  1037. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1038. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1039. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1040. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1041. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -0
  1042. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -0
  1043. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -0
  1044. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -0
  1045. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -0
  1046. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -0
  1047. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -0
  1048. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -0
  1049. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -0
  1050. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -0
  1051. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -0
  1052. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -0
  1053. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -0
  1054. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -0
  1055. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -0
  1056. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -0
@@ -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';\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"]}
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"]}
@@ -1 +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"}
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"}
@@ -1 +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"]}
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"]}
@@ -1 +1 @@
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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-controller.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/i18n/controllers/i18n-controller.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gCAAgC,EAAE,MAAM,0FAA0F,CAAC;AAC5I,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAa3F;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,qBACa,4BAA6B,SAAQ,gCAAgC;IAEhF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAGZ,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B,EACxC,YAAY,EAAE,mBAAmB,EACzC,WAAW,EAAE,kBAAkB;IAMzE;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B;;;;;;;;;;;OAWG;YACW,SAAS;IAmJvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,wEAAwE;IACxE,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAazB"}
1
+ {"version":3,"file":"i18n-controller.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/i18n/controllers/i18n-controller.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gCAAgC,EAAE,MAAM,0FAA0F,CAAC;AAC5I,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAa3F;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,qBACa,4BAA6B,SAAQ,gCAAgC;IAEhF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAGZ,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B,EACxC,YAAY,EAAE,mBAAmB,EACzC,WAAW,EAAE,kBAAkB;IAMzE;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B;;;;;;;;;;;OAWG;YACW,SAAS;IAmJvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,wEAAwE;IACxE,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAazB"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-controller.backend.service.js","sourceRoot":"","sources":["../../../../../src/i18n/controllers/i18n-controller.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { Request, Response, NextFunction } from 'express';\nimport { AbstractControllerBackendService } from '~wildo-backend-lib/base-classes/services/controllers/abstract-controller.backend.service';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { ErrorHandlerService } from '~wildo-backend-lib/errors/services/error-handler.backend.service';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { I18nBackendService } from '~wildo-backend-lib/i18n/services/i18n.backend.service';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { z } from 'zod';\nimport {\n I18nLabelsRequestDtoSchema,\n I18nLabelsResponseDto,\n MANUAL_CONTROLLER_ROUTES_URLS,\n ManualControllerRouteKey,\n ErrorType,\n ErrorCustomMessageReference\n} from '@wildo-ai/saas-models';\nimport { AvailableLanguage, isBackendOnlyI18nSection, omitBackendOnlyI18nSections } from '@wildo-ai/presets-components-models';\n\n/**\n * I18n Controller Backend Service\n *\n * Provides HTTP endpoints for serving internationalization labels\n * to frontend applications. Transforms backend labels to frontend-ready\n * i18n configuration using I18nBackendService.\n *\n * Endpoints:\n * - GET /i18n/labels?language=<lang>[&sections=<sections>][&keys=<keys>]\n * Requires `language` query parameter (EN, FR, etc.)\n * Optional `sections` — comma-separated top-level section names to include\n * Optional `keys` — comma-separated dot-path keys for sub-section granularity\n * (e.g. `components.low_level_button,resources.todos`)\n * When both are provided, results are deep-merged.\n *\n * This endpoint is the ONLY path by which a label bundle reaches a client. `I18nBackendService.getLabels`\n * has exactly two callers: this one, and `auth-response-helper.backend.service.ts`, which resolves auth\n * response messages and SMS bodies in-process and sends no tree anywhere. So the backend-only exclusion\n * enforced in `getLabels` below is the whole enforcement surface for `BACKEND_ONLY_I18N_SECTIONS` —\n * there is no second endpoint, prefetch or embed to keep in step with it.\n */\n\n@injectable()\nexport class I18nControllerBackendService extends AbstractControllerBackendService {\n\n private readonly i18nService: I18nBackendService;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorHandlerService) errorHandler: ErrorHandlerService,\n @inject(SAAS_SERVICE_TYPES.I18nService) i18nService: I18nBackendService\n ) {\n super(logger, errorBuilder, errorHandler, 'I18nController');\n this.i18nService = i18nService;\n }\n\n /**\n * Setup routes for i18n endpoints\n */\n protected setupRoutes(): void {\n this.router.get(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.I18N_GET_LABELS], this.asyncHandler(this.getLabels.bind(this)));\n this.logRouteRegistration('GET', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.I18N_GET_LABELS], 'Get i18n labels (supports sections + keys filtering)');\n }\n\n /**\n * Get i18n labels for specified language.\n *\n * Query parameters:\n * - `language` — required, the language code (EN, FR, etc.)\n * - `sections` — optional, comma-separated top-level sections\n * - `keys` — optional, comma-separated dot-path keys (e.g. `components.low_level_button`)\n *\n * Sections listed in `BACKEND_ONLY_I18N_SECTIONS` are never served: an unfiltered request omits\n * them, and a request that names one — through `sections` or through the first segment of a `keys`\n * dot-path — is refused with `VALIDATION` rather than answered with an empty tree.\n */\n private async getLabels(req: Request, res: Response): Promise<void> {\n try {\n // Parse and validate query parameters\n const querySchema = z.object({\n language: z.enum(AvailableLanguage),\n sections: z.string().optional(),\n keys: z.string().optional()\n });\n\n const query = querySchema.parse(req.query);\n\n const sections = query.sections ? query.sections.split(',').map(s => s.trim()).filter(s => s.length > 0) : undefined;\n const keys = query.keys ? query.keys.split(',').map(s => s.trim()).filter(s => s.length > 0) : undefined;\n\n const requestDto = I18nLabelsRequestDtoSchema.parse({\n language: query.language,\n sections,\n keys\n });\n\n this.logDebug('Processing i18n labels request', {\n language: requestDto.language,\n sections: requestDto.sections || 'all',\n keys: requestDto.keys || 'none',\n });\n\n const allLabels = this.i18nService.getLabels(requestDto.language);\n\n /*\n * A caller that NAMES a backend-only section is refused, not quietly served an empty result.\n * The two answers are not equivalent: a silent drop is indistinguishable from a section that\n * exists and happens to be empty, so an application author would go hunting for a missing label\n * instead of learning that the section is not theirs to have. Refusing states the boundary at\n * the moment it is crossed.\n *\n * `keys` is checked on its FIRST dot-path segment because that segment IS the section:\n * `backend_sms.otpVerificationCode` reaches the same subtree the `sections` filter would have\n * handed over. That second door is the one easy to miss — key filtering walks the label tree\n * directly (below) and never consults the `sections` list, so a guard placed only on `sections`\n * leaves the dot-path route wide open.\n */\n const explicitlyRequestedBackendOnlySections = [\n ...(requestDto.sections ?? []),\n ...(requestDto.keys ?? []).map((keyPath) => keyPath.split('.')[0]),\n ].filter((section) => isBackendOnlyI18nSection(section));\n\n if (explicitlyRequestedBackendOnlySections.length > 0) {\n const refusal = this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n reason: 'backend_only_i18n_sections_are_not_client_visible',\n requestedBackendOnlySections: Array.from(new Set(explicitlyRequestedBackendOnlySections)),\n }\n }\n );\n return this.jsonError(res, refusal);\n }\n\n /*\n * The single point at which the label tree enters the response path, and therefore the single\n * point at which the backend-only exclusion is applied. Every branch below reads THIS tree and\n * never `allLabels`, so the invariant holds by construction rather than by each filter\n * remembering it — including any filter added later.\n *\n * This is a SEPARATE invariant from the refusal above, not a redundant second copy of it. The\n * refusal answers \"may a caller ask for this?\"; the exclusion answers \"what does 'everything'\n * mean?\" — and only the exclusion governs the unfiltered request, which is what `GET\n * /i18n/labels?language=EN` is and what returned the whole tree, backend-only sections included,\n * before this change.\n */\n const clientVisibleLabels = omitBackendOnlyI18nSections<any>(allLabels);\n\n let filteredLabels: Record<string, any> = clientVisibleLabels;\n\n if (requestDto.sections && requestDto.sections.length > 0) {\n filteredLabels = {};\n for (const section of requestDto.sections) {\n if (clientVisibleLabels[section]) {\n filteredLabels[section] = clientVisibleLabels[section];\n }\n }\n }\n\n if (requestDto.keys && requestDto.keys.length > 0) {\n const keyFiltered: Record<string, any> = {};\n for (const keyPath of requestDto.keys) {\n const value = this.getNestedValue(clientVisibleLabels, keyPath);\n if (value !== undefined) {\n this.setNestedValue(keyFiltered, keyPath, value);\n }\n }\n filteredLabels = requestDto.sections ? this.deepMergeLabels(filteredLabels, keyFiltered) : keyFiltered;\n }\n\n // Create response DTO\n const responseDto: I18nLabelsResponseDto = {\n language: requestDto.language,\n labels: filteredLabels,\n generatedAt: new Date().toISOString()\n };\n\n this.logDebug('I18n labels generated successfully', {\n language: responseDto.language,\n labelSections: Object.keys(responseDto.labels).length,\n totalLabelKeys: this.countTotalLabels(responseDto.labels)\n });\n\n this.jsonSuccess(res, responseDto);\n\n } catch (error) {\n this.logger.error('Failed to process i18n labels request', {\n error: describeCaughtError(error),\n query: req.query\n });\n\n if (error instanceof z.ZodError) {\n const validationError = this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: { validationErrors: error.issues }\n }\n );\n return this.jsonError(res, validationError);\n }\n\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n // Native Error: prefer the stack (more diagnostic value on an INTERNAL\n // error's context than the bare message). Anything else: describeCaughtError\n // resolves a WildoError_Backend properly instead of collapsing to '[object Object]'.\n error: error instanceof Error ? (error.stack || error.message) : describeCaughtError(error),\n endpoint: 'getLabels'\n }\n }\n );\n }\n }\n\n /**\n * Walk a dot-path (e.g. `components.low_level_button`) and return the sub-tree.\n * Returns `undefined` when any segment is missing.\n */\n private getNestedValue(obj: Record<string, any>, dotPath: string): any {\n let current: any = obj;\n for (const segment of dotPath.split('.')) {\n if (current == null || typeof current !== 'object') return undefined;\n current = current[segment];\n }\n return current;\n }\n\n /**\n * Set a value at a dot-path, creating intermediate objects as needed.\n * Preserves the original nesting structure in the output.\n */\n private setNestedValue(obj: Record<string, any>, dotPath: string, value: any): void {\n const segments = dotPath.split('.');\n let current = obj;\n for (let i = 0; i < segments.length - 1; i++) {\n const seg = segments[i];\n if (!(seg in current) || typeof current[seg] !== 'object') {\n current[seg] = {};\n }\n current = current[seg];\n }\n current[segments[segments.length - 1]] = value;\n }\n\n /** Recursively merge `source` into `target`, returning a new object. */\n private deepMergeLabels(target: Record<string, any>, source: Record<string, any>): Record<string, any> {\n const result: Record<string, any> = { ...target };\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object' && source[key] !== null &&\n typeof result[key] === 'object' && result[key] !== null\n ) {\n result[key] = this.deepMergeLabels(result[key], source[key]);\n } else {\n result[key] = source[key];\n }\n }\n return result;\n }\n\n /**\n * Helper method to count total number of labels recursively\n */\n private countTotalLabels(labels: any, depth: number = 0): number {\n if (depth > 10) return 0; // Prevent infinite recursion\n\n let count = 0;\n for (const value of Object.values(labels)) {\n if (typeof value === 'string') {\n count++;\n } else if (typeof value === 'object' && value !== null) {\n count += this.countTotalLabels(value, depth + 1);\n }\n }\n return count;\n }\n}\n"]}
1
+ {"version":3,"file":"i18n-controller.backend.service.js","sourceRoot":"","sources":["../../../../src/i18n/controllers/i18n-controller.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { Request, Response, NextFunction } from 'express';\nimport { AbstractControllerBackendService } from '~wildo-backend-lib/base-classes/services/controllers/abstract-controller.backend.service';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { ErrorHandlerService } from '~wildo-backend-lib/errors/services/error-handler.backend.service';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { I18nBackendService } from '~wildo-backend-lib/i18n/services/i18n.backend.service';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { z } from 'zod';\nimport {\n I18nLabelsRequestDtoSchema,\n I18nLabelsResponseDto,\n MANUAL_CONTROLLER_ROUTES_URLS,\n ManualControllerRouteKey,\n ErrorType,\n ErrorCustomMessageReference\n} from '@wildo-ai/saas-models';\nimport { AvailableLanguage, isBackendOnlyI18nSection, omitBackendOnlyI18nSections } from '@wildo-ai/presets-components-models';\n\n/**\n * I18n Controller Backend Service\n *\n * Provides HTTP endpoints for serving internationalization labels\n * to frontend applications. Transforms backend labels to frontend-ready\n * i18n configuration using I18nBackendService.\n *\n * Endpoints:\n * - GET /i18n/labels?language=<lang>[&sections=<sections>][&keys=<keys>]\n * Requires `language` query parameter (EN, FR, etc.)\n * Optional `sections` — comma-separated top-level section names to include\n * Optional `keys` — comma-separated dot-path keys for sub-section granularity\n * (e.g. `components.low_level_button,resources.todos`)\n * When both are provided, results are deep-merged.\n *\n * This endpoint is the ONLY path by which a label bundle reaches a client. `I18nBackendService.getLabels`\n * has exactly two callers: this one, and `auth-response-helper.backend.service.ts`, which resolves auth\n * response messages and SMS bodies in-process and sends no tree anywhere. So the backend-only exclusion\n * enforced in `getLabels` below is the whole enforcement surface for `BACKEND_ONLY_I18N_SECTIONS` —\n * there is no second endpoint, prefetch or embed to keep in step with it.\n */\n\n@injectable()\nexport class I18nControllerBackendService extends AbstractControllerBackendService {\n\n private readonly i18nService: I18nBackendService;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorHandlerService) errorHandler: ErrorHandlerService,\n @inject(SAAS_SERVICE_TYPES.I18nService) i18nService: I18nBackendService\n ) {\n super(logger, errorBuilder, errorHandler, 'I18nController');\n this.i18nService = i18nService;\n }\n\n /**\n * Setup routes for i18n endpoints\n */\n protected setupRoutes(): void {\n this.router.get(MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.I18N_GET_LABELS], this.asyncHandler(this.getLabels.bind(this)));\n this.logRouteRegistration('GET', MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.I18N_GET_LABELS], 'Get i18n labels (supports sections + keys filtering)');\n }\n\n /**\n * Get i18n labels for specified language.\n *\n * Query parameters:\n * - `language` — required, the language code (EN, FR, etc.)\n * - `sections` — optional, comma-separated top-level sections\n * - `keys` — optional, comma-separated dot-path keys (e.g. `components.low_level_button`)\n *\n * Sections listed in `BACKEND_ONLY_I18N_SECTIONS` are never served: an unfiltered request omits\n * them, and a request that names one — through `sections` or through the first segment of a `keys`\n * dot-path — is refused with `VALIDATION` rather than answered with an empty tree.\n */\n private async getLabels(req: Request, res: Response): Promise<void> {\n try {\n // Parse and validate query parameters\n const querySchema = z.object({\n language: z.enum(AvailableLanguage),\n sections: z.string().optional(),\n keys: z.string().optional()\n });\n\n const query = querySchema.parse(req.query);\n\n const sections = query.sections ? query.sections.split(',').map(s => s.trim()).filter(s => s.length > 0) : undefined;\n const keys = query.keys ? query.keys.split(',').map(s => s.trim()).filter(s => s.length > 0) : undefined;\n\n const requestDto = I18nLabelsRequestDtoSchema.parse({\n language: query.language,\n sections,\n keys\n });\n\n this.logDebug('Processing i18n labels request', {\n language: requestDto.language,\n sections: requestDto.sections || 'all',\n keys: requestDto.keys || 'none',\n });\n\n const allLabels = this.i18nService.getLabels(requestDto.language);\n\n /*\n * A caller that NAMES a backend-only section is refused, not quietly served an empty result.\n * The two answers are not equivalent: a silent drop is indistinguishable from a section that\n * exists and happens to be empty, so an application author would go hunting for a missing label\n * instead of learning that the section is not theirs to have. Refusing states the boundary at\n * the moment it is crossed.\n *\n * `keys` is checked on its FIRST dot-path segment because that segment IS the section:\n * `backend_sms.otpVerificationCode` reaches the same subtree the `sections` filter would have\n * handed over. That second door is the one easy to miss — key filtering walks the label tree\n * directly (below) and never consults the `sections` list, so a guard placed only on `sections`\n * leaves the dot-path route wide open.\n */\n const explicitlyRequestedBackendOnlySections = [\n ...(requestDto.sections ?? []),\n ...(requestDto.keys ?? []).map((keyPath) => keyPath.split('.')[0]),\n ].filter((section) => isBackendOnlyI18nSection(section));\n\n if (explicitlyRequestedBackendOnlySections.length > 0) {\n const refusal = this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n reason: 'backend_only_i18n_sections_are_not_client_visible',\n requestedBackendOnlySections: Array.from(new Set(explicitlyRequestedBackendOnlySections)),\n }\n }\n );\n return this.jsonError(res, refusal);\n }\n\n /*\n * The single point at which the label tree enters the response path, and therefore the single\n * point at which the backend-only exclusion is applied. Every branch below reads THIS tree and\n * never `allLabels`, so the invariant holds by construction rather than by each filter\n * remembering it — including any filter added later.\n *\n * This is a SEPARATE invariant from the refusal above, not a redundant second copy of it. The\n * refusal answers \"may a caller ask for this?\"; the exclusion answers \"what does 'everything'\n * mean?\" — and only the exclusion governs the unfiltered request, which is what `GET\n * /i18n/labels?language=EN` is and what returned the whole tree, backend-only sections included,\n * before this change.\n */\n const clientVisibleLabels = omitBackendOnlyI18nSections<any>(allLabels);\n\n let filteredLabels: Record<string, any> = clientVisibleLabels;\n\n if (requestDto.sections && requestDto.sections.length > 0) {\n filteredLabels = {};\n for (const section of requestDto.sections) {\n if (clientVisibleLabels[section]) {\n filteredLabels[section] = clientVisibleLabels[section];\n }\n }\n }\n\n if (requestDto.keys && requestDto.keys.length > 0) {\n const keyFiltered: Record<string, any> = {};\n for (const keyPath of requestDto.keys) {\n const value = this.getNestedValue(clientVisibleLabels, keyPath);\n if (value !== undefined) {\n this.setNestedValue(keyFiltered, keyPath, value);\n }\n }\n filteredLabels = requestDto.sections ? this.deepMergeLabels(filteredLabels, keyFiltered) : keyFiltered;\n }\n\n // Create response DTO\n const responseDto: I18nLabelsResponseDto = {\n language: requestDto.language,\n labels: filteredLabels,\n generatedAt: new Date().toISOString()\n };\n\n this.logDebug('I18n labels generated successfully', {\n language: responseDto.language,\n labelSections: Object.keys(responseDto.labels).length,\n totalLabelKeys: this.countTotalLabels(responseDto.labels)\n });\n\n this.jsonSuccess(res, responseDto);\n\n } catch (error) {\n this.logger.error('Failed to process i18n labels request', {\n error: describeCaughtError(error),\n query: req.query\n });\n\n if (error instanceof z.ZodError) {\n const validationError = this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: { validationErrors: error.issues }\n }\n );\n return this.jsonError(res, validationError);\n }\n\n throw this.errorBuilder.buildError(\n ErrorType.INTERNAL,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.INTERNAL,\n context: {\n // Native Error: prefer the stack (more diagnostic value on an INTERNAL\n // error's context than the bare message). Anything else: describeCaughtError\n // resolves a WildoError_Backend properly instead of collapsing to '[object Object]'.\n error: error instanceof Error ? (error.stack || error.message) : describeCaughtError(error),\n endpoint: 'getLabels'\n }\n }\n );\n }\n }\n\n /**\n * Walk a dot-path (e.g. `components.low_level_button`) and return the sub-tree.\n * Returns `undefined` when any segment is missing.\n */\n private getNestedValue(obj: Record<string, any>, dotPath: string): any {\n let current: any = obj;\n for (const segment of dotPath.split('.')) {\n if (current == null || typeof current !== 'object') return undefined;\n current = current[segment];\n }\n return current;\n }\n\n /**\n * Set a value at a dot-path, creating intermediate objects as needed.\n * Preserves the original nesting structure in the output.\n */\n private setNestedValue(obj: Record<string, any>, dotPath: string, value: any): void {\n const segments = dotPath.split('.');\n let current = obj;\n for (let i = 0; i < segments.length - 1; i++) {\n const seg = segments[i];\n if (!(seg in current) || typeof current[seg] !== 'object') {\n current[seg] = {};\n }\n current = current[seg];\n }\n current[segments[segments.length - 1]] = value;\n }\n\n /** Recursively merge `source` into `target`, returning a new object. */\n private deepMergeLabels(target: Record<string, any>, source: Record<string, any>): Record<string, any> {\n const result: Record<string, any> = { ...target };\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object' && source[key] !== null &&\n typeof result[key] === 'object' && result[key] !== null\n ) {\n result[key] = this.deepMergeLabels(result[key], source[key]);\n } else {\n result[key] = source[key];\n }\n }\n return result;\n }\n\n /**\n * Helper method to count total number of labels recursively\n */\n private countTotalLabels(labels: any, depth: number = 0): number {\n if (depth > 10) return 0; // Prevent infinite recursion\n\n let count = 0;\n for (const value of Object.values(labels)) {\n if (typeof value === 'string') {\n count++;\n } else if (typeof value === 'object' && value !== null) {\n count += this.countTotalLabels(value, depth + 1);\n }\n }\n return count;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/i18n/services/i18n.backend.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAG/G,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;AAE/E;;;;;;;;;GASG;AACH,qBACa,kBAAkB;IAOQ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAE1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IARnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAE1F,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAwD;gBAGhB,MAAM,EAAE,aAAa,EAExD,gBAAgB,EAAE,uBAAuB;IAM5D;;;;;OAKG;IACI,UAAU,CACf,YAAY,CAAC,EAAE,eAAe,EAC9B,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3C,IAAI;IA2BP;;;OAGG;IACI,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,YAAY;IAKpD,cAAc,IAAI,OAAO;IAIhC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;CAUzB"}
1
+ {"version":3,"file":"i18n.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/i18n/services/i18n.backend.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAG/G,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;AAE/E;;;;;;;;;GASG;AACH,qBACa,kBAAkB;IAOQ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAE1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IARnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAE1F,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAwD;gBAGhB,MAAM,EAAE,aAAa,EAExD,gBAAgB,EAAE,uBAAuB;IAM5D;;;;;OAKG;IACI,UAAU,CACf,YAAY,CAAC,EAAE,eAAe,EAC9B,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3C,IAAI;IA2BP;;;OAGG;IACI,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,YAAY;IAKpD,cAAc,IAAI,OAAO;IAIhC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;CAUzB"}
@@ -178,7 +178,6 @@ export * from './external-providers/services/embeddings.backend.service';
178
178
  export * from './rag/services/rag-retrieval.backend.service';
179
179
  export * from './rag/models/rag-retrieval.backend.types';
180
180
  export * from './external-providers/services/frontend-bootstrap.backend.service';
181
- export * from './external-providers/services/flow-actor-design.backend.service';
182
181
  export * from './external-providers/operations/provider-operation-executor.backend.service';
183
182
  export * from './external-providers/operations/provider-operation-request.backend';
184
183
  export * from './external-providers/operations/provider-rest-call-client.backend';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -248,7 +248,6 @@ export * from './rag/services/rag-retrieval.backend.service.js';
248
248
  export * from './rag/models/rag-retrieval.backend.types.js';
249
249
  // External Services — Phase 0 type contracts (impl wired in Phase 6)
250
250
  export * from './external-providers/services/frontend-bootstrap.backend.service.js';
251
- export * from './external-providers/services/flow-actor-design.backend.service.js';
252
251
  // S3a (#331): the runner's completed half — the loader with its measured require-cache semantics,
253
252
  // the durable KV/blob stores a polling trigger needs to keep a cursor across ticks, and the
254
253
  // schedule that drives them.