@wildo-ai/saas-backend-lib 1.0.1

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 (1747) hide show
  1. package/dist/esm/__tests__/setup.d.ts +7 -0
  2. package/dist/esm/__tests__/setup.d.ts.map +1 -0
  3. package/dist/esm/__tests__/setup.js +14 -0
  4. package/dist/esm/__tests__/setup.js.map +1 -0
  5. package/dist/esm/__tests__/test-container.d.ts +39 -0
  6. package/dist/esm/__tests__/test-container.d.ts.map +1 -0
  7. package/dist/esm/__tests__/test-container.js +94 -0
  8. package/dist/esm/__tests__/test-container.js.map +1 -0
  9. package/dist/esm/applications/models/applications.backend.schemas.d.ts +11 -0
  10. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -0
  11. package/dist/esm/applications/models/applications.backend.schemas.js +15 -0
  12. package/dist/esm/applications/models/applications.backend.schemas.js.map +1 -0
  13. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts +12 -0
  14. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -0
  15. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +30 -0
  16. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -0
  17. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts +98 -0
  18. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -0
  19. package/dist/esm/base-classes/models/repositories.backend.schemas.js +11 -0
  20. package/dist/esm/base-classes/models/repositories.backend.schemas.js.map +1 -0
  21. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +31 -0
  22. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -0
  23. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.js +52 -0
  24. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.js.map +1 -0
  25. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts +56 -0
  26. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -0
  27. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.js +52 -0
  28. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.js.map +1 -0
  29. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts +33 -0
  30. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -0
  31. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.js +125 -0
  32. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.js.map +1 -0
  33. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts +20 -0
  34. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -0
  35. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.js +45 -0
  36. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.js.map +1 -0
  37. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts +133 -0
  38. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -0
  39. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.js +280 -0
  40. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.js.map +1 -0
  41. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts +147 -0
  42. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -0
  43. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +1320 -0
  44. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -0
  45. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +107 -0
  46. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -0
  47. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +369 -0
  48. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -0
  49. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts +194 -0
  50. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -0
  51. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.js +417 -0
  52. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.js.map +1 -0
  53. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts +9 -0
  54. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -0
  55. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.js +35 -0
  56. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.js.map +1 -0
  57. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +107 -0
  58. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -0
  59. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +800 -0
  60. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -0
  61. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +181 -0
  62. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -0
  63. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +529 -0
  64. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -0
  65. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +245 -0
  66. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -0
  67. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +1509 -0
  68. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -0
  69. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts +134 -0
  70. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -0
  71. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.js +388 -0
  72. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.js.map +1 -0
  73. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts +9 -0
  74. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -0
  75. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.js +26 -0
  76. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.js.map +1 -0
  77. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +144 -0
  78. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -0
  79. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js +49 -0
  80. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -0
  81. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts +84 -0
  82. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -0
  83. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.js +156 -0
  84. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.js.map +1 -0
  85. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts +42 -0
  86. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -0
  87. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.js +94 -0
  88. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.js.map +1 -0
  89. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +593 -0
  90. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -0
  91. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +4015 -0
  92. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -0
  93. package/dist/esm/base-classes/utils/backend-type-utils.d.ts +43 -0
  94. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -0
  95. package/dist/esm/base-classes/utils/backend-type-utils.js +10 -0
  96. package/dist/esm/base-classes/utils/backend-type-utils.js.map +1 -0
  97. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts +44 -0
  98. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -0
  99. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.js +94 -0
  100. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.js.map +1 -0
  101. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts +102 -0
  102. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -0
  103. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.js +405 -0
  104. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.js.map +1 -0
  105. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts +55 -0
  106. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -0
  107. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +268 -0
  108. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -0
  109. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +83 -0
  110. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -0
  111. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +371 -0
  112. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -0
  113. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +80 -0
  114. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -0
  115. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +255 -0
  116. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -0
  117. package/dist/esm/billing/services/billing.utils.d.ts +17 -0
  118. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -0
  119. package/dist/esm/billing/services/billing.utils.js +25 -0
  120. package/dist/esm/billing/services/billing.utils.js.map +1 -0
  121. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts +50 -0
  122. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -0
  123. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +290 -0
  124. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -0
  125. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +92 -0
  126. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -0
  127. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +193 -0
  128. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -0
  129. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +66 -0
  130. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -0
  131. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +180 -0
  132. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -0
  133. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts +31 -0
  134. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -0
  135. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.js +100 -0
  136. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.js.map +1 -0
  137. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +33 -0
  138. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -0
  139. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +200 -0
  140. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -0
  141. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts +58 -0
  142. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -0
  143. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +362 -0
  144. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -0
  145. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts +19 -0
  146. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -0
  147. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.js +50 -0
  148. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.js.map +1 -0
  149. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts +21 -0
  150. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -0
  151. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.js +32 -0
  152. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.js.map +1 -0
  153. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +114 -0
  154. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -0
  155. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +569 -0
  156. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -0
  157. package/dist/esm/billing/testing/billing-test-fixtures.d.ts +109 -0
  158. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -0
  159. package/dist/esm/billing/testing/billing-test-fixtures.js +200 -0
  160. package/dist/esm/billing/testing/billing-test-fixtures.js.map +1 -0
  161. package/dist/esm/billing/testing/mock-billing-provider.d.ts +152 -0
  162. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -0
  163. package/dist/esm/billing/testing/mock-billing-provider.js +394 -0
  164. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -0
  165. package/dist/esm/charts/controllers/chart.backend.controller.d.ts +46 -0
  166. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -0
  167. package/dist/esm/charts/controllers/chart.backend.controller.js +214 -0
  168. package/dist/esm/charts/controllers/chart.backend.controller.js.map +1 -0
  169. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +55 -0
  170. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -0
  171. package/dist/esm/charts/services/chart-registry.backend.service.js +102 -0
  172. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -0
  173. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts +9 -0
  174. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -0
  175. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.js +80 -0
  176. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.js.map +1 -0
  177. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts +23 -0
  178. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -0
  179. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.js +46 -0
  180. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.js.map +1 -0
  181. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +73 -0
  182. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -0
  183. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +291 -0
  184. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -0
  185. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +447 -0
  186. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -0
  187. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +898 -0
  188. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -0
  189. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +127 -0
  190. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -0
  191. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +462 -0
  192. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -0
  193. package/dist/esm/compliance/index.d.ts +2 -0
  194. package/dist/esm/compliance/index.d.ts.map +1 -0
  195. package/dist/esm/compliance/index.js +1 -0
  196. package/dist/esm/compliance/index.js.map +1 -0
  197. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts +31 -0
  198. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -0
  199. package/dist/esm/config/custom/application-config-controller.backend.service.js +112 -0
  200. package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -0
  201. package/dist/esm/config/models/app-config-overrides.backend.definitions.d.ts +29 -0
  202. package/dist/esm/config/models/app-config-overrides.backend.definitions.d.ts.map +1 -0
  203. package/dist/esm/config/models/app-config-overrides.backend.definitions.js +143 -0
  204. package/dist/esm/config/models/app-config-overrides.backend.definitions.js.map +1 -0
  205. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts +56 -0
  206. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -0
  207. package/dist/esm/config/models/app-config-secrets.backend.schemas.js +121 -0
  208. package/dist/esm/config/models/app-config-secrets.backend.schemas.js.map +1 -0
  209. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts +35 -0
  210. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -0
  211. package/dist/esm/config/models/app-config.backend-authored.definitions.js +89 -0
  212. package/dist/esm/config/models/app-config.backend-authored.definitions.js.map +1 -0
  213. package/dist/esm/config/models/app-config.backend.schemas.d.ts +1651 -0
  214. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -0
  215. package/dist/esm/config/models/app-config.backend.schemas.js +478 -0
  216. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -0
  217. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts +74 -0
  218. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -0
  219. package/dist/esm/config/models/app-env-config.backend.schemas.js +115 -0
  220. package/dist/esm/config/models/app-env-config.backend.schemas.js.map +1 -0
  221. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts +11 -0
  222. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -0
  223. package/dist/esm/config/models/config-mutation-boundary.utils.js +50 -0
  224. package/dist/esm/config/models/config-mutation-boundary.utils.js.map +1 -0
  225. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts +48 -0
  226. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -0
  227. package/dist/esm/config/models/postgresql-env-config.backend.schemas.js +106 -0
  228. package/dist/esm/config/models/postgresql-env-config.backend.schemas.js.map +1 -0
  229. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts +12 -0
  230. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -0
  231. package/dist/esm/config/models/runtime-topology.backend.contracts.js +23 -0
  232. package/dist/esm/config/models/runtime-topology.backend.contracts.js.map +1 -0
  233. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts +39 -0
  234. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -0
  235. package/dist/esm/config/services/__tests__/mock-app-configuration.service.js +124 -0
  236. package/dist/esm/config/services/__tests__/mock-app-configuration.service.js.map +1 -0
  237. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +76 -0
  238. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -0
  239. package/dist/esm/config/services/app-configuration-loader.backend.service.js +375 -0
  240. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -0
  241. package/dist/esm/config/services/app-configuration.backend.service.d.ts +148 -0
  242. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -0
  243. package/dist/esm/config/services/app-configuration.backend.service.js +494 -0
  244. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -0
  245. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +17 -0
  246. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -0
  247. package/dist/esm/config/services/app-configuration.backend.utils.js +61 -0
  248. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -0
  249. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +70 -0
  250. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -0
  251. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +470 -0
  252. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -0
  253. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts +136 -0
  254. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -0
  255. package/dist/esm/databases/models/aggregation.backend.schemas.js +9 -0
  256. package/dist/esm/databases/models/aggregation.backend.schemas.js.map +1 -0
  257. package/dist/esm/databases/models/databases.backend.schemas.d.ts +32 -0
  258. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -0
  259. package/dist/esm/databases/models/databases.backend.schemas.js +60 -0
  260. package/dist/esm/databases/models/databases.backend.schemas.js.map +1 -0
  261. package/dist/esm/databases/models/filter.backend.schemas.d.ts +83 -0
  262. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -0
  263. package/dist/esm/databases/models/filter.backend.schemas.js +27 -0
  264. package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -0
  265. package/dist/esm/databases/models/sql.backend.schemas.d.ts +75 -0
  266. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -0
  267. package/dist/esm/databases/models/sql.backend.schemas.js +31 -0
  268. package/dist/esm/databases/models/sql.backend.schemas.js.map +1 -0
  269. package/dist/esm/databases/models/transaction.shared.schemas.d.ts +120 -0
  270. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -0
  271. package/dist/esm/databases/models/transaction.shared.schemas.js +30 -0
  272. package/dist/esm/databases/models/transaction.shared.schemas.js.map +1 -0
  273. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts +15 -0
  274. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -0
  275. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.js +60 -0
  276. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.js.map +1 -0
  277. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts +19 -0
  278. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -0
  279. package/dist/esm/databases/services/__tests__/mock-mongodb.service.js +69 -0
  280. package/dist/esm/databases/services/__tests__/mock-mongodb.service.js.map +1 -0
  281. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts +11 -0
  282. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -0
  283. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.js +315 -0
  284. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.js.map +1 -0
  285. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts +29 -0
  286. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -0
  287. package/dist/esm/databases/services/__tests__/mock-redis.service.js +65 -0
  288. package/dist/esm/databases/services/__tests__/mock-redis.service.js.map +1 -0
  289. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts +19 -0
  290. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -0
  291. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.js +44 -0
  292. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.js.map +1 -0
  293. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts +74 -0
  294. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -0
  295. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +369 -0
  296. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -0
  297. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts +110 -0
  298. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -0
  299. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.js +444 -0
  300. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.js.map +1 -0
  301. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts +38 -0
  302. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -0
  303. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.js +180 -0
  304. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.js.map +1 -0
  305. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts +42 -0
  306. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -0
  307. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.js +183 -0
  308. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.js.map +1 -0
  309. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts +48 -0
  310. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -0
  311. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.js +320 -0
  312. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.js.map +1 -0
  313. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts +47 -0
  314. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -0
  315. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.js +187 -0
  316. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.js.map +1 -0
  317. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts +47 -0
  318. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -0
  319. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.js +250 -0
  320. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.js.map +1 -0
  321. package/dist/esm/databases/services/db-utils.d.ts +56 -0
  322. package/dist/esm/databases/services/db-utils.d.ts.map +1 -0
  323. package/dist/esm/databases/services/db-utils.js +66 -0
  324. package/dist/esm/databases/services/db-utils.js.map +1 -0
  325. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts +91 -0
  326. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -0
  327. package/dist/esm/databases/services/mongo-aggregation.backend.service.js +652 -0
  328. package/dist/esm/databases/services/mongo-aggregation.backend.service.js.map +1 -0
  329. package/dist/esm/databases/services/mongodb.service.d.ts +132 -0
  330. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -0
  331. package/dist/esm/databases/services/mongodb.service.js +630 -0
  332. package/dist/esm/databases/services/mongodb.service.js.map +1 -0
  333. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts +113 -0
  334. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -0
  335. package/dist/esm/databases/services/postgresql-aggregation.backend.service.js +635 -0
  336. package/dist/esm/databases/services/postgresql-aggregation.backend.service.js.map +1 -0
  337. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts +75 -0
  338. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -0
  339. package/dist/esm/databases/services/postgresql-database.backend.service.js +255 -0
  340. package/dist/esm/databases/services/postgresql-database.backend.service.js.map +1 -0
  341. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts +116 -0
  342. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -0
  343. package/dist/esm/databases/services/postgresql-filter.backend.service.js +624 -0
  344. package/dist/esm/databases/services/postgresql-filter.backend.service.js.map +1 -0
  345. package/dist/esm/databases/services/redis.service.d.ts +143 -0
  346. package/dist/esm/databases/services/redis.service.d.ts.map +1 -0
  347. package/dist/esm/databases/services/redis.service.js +429 -0
  348. package/dist/esm/databases/services/redis.service.js.map +1 -0
  349. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts +302 -0
  350. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -0
  351. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.js +1787 -0
  352. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.js.map +1 -0
  353. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts +65 -0
  354. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -0
  355. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.js +237 -0
  356. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.js.map +1 -0
  357. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts +339 -0
  358. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -0
  359. package/dist/esm/errors/services/__tests__/mock-error-builder.service.js +209 -0
  360. package/dist/esm/errors/services/__tests__/mock-error-builder.service.js.map +1 -0
  361. package/dist/esm/errors/services/error-builder.backend.service.d.ts +95 -0
  362. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -0
  363. package/dist/esm/errors/services/error-builder.backend.service.js +334 -0
  364. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -0
  365. package/dist/esm/errors/services/error-handler.backend.service.d.ts +43 -0
  366. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -0
  367. package/dist/esm/errors/services/error-handler.backend.service.js +219 -0
  368. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -0
  369. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +23 -0
  370. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -0
  371. package/dist/esm/errors/services/rate-limit.backend.service.js +59 -0
  372. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -0
  373. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts +135 -0
  374. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -0
  375. package/dist/esm/external-providers/models/external-providers.backend.schemas.js +129 -0
  376. package/dist/esm/external-providers/models/external-providers.backend.schemas.js.map +1 -0
  377. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +18 -0
  378. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -0
  379. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +38 -0
  380. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -0
  381. package/dist/esm/external-providers/services/__tests__/mock-lazy-provider-registry.service.d.ts +20 -0
  382. package/dist/esm/external-providers/services/__tests__/mock-lazy-provider-registry.service.d.ts.map +1 -0
  383. package/dist/esm/external-providers/services/__tests__/mock-lazy-provider-registry.service.js +44 -0
  384. package/dist/esm/external-providers/services/__tests__/mock-lazy-provider-registry.service.js.map +1 -0
  385. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts +9 -0
  386. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -0
  387. package/dist/esm/external-providers/services/external-api-handler.backend.service.js +36 -0
  388. package/dist/esm/external-providers/services/external-api-handler.backend.service.js.map +1 -0
  389. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +83 -0
  390. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -0
  391. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +422 -0
  392. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -0
  393. package/dist/esm/external-providers/services/feature-bindings.backend.service.d.ts +102 -0
  394. package/dist/esm/external-providers/services/feature-bindings.backend.service.d.ts.map +1 -0
  395. package/dist/esm/external-providers/services/feature-bindings.backend.service.js +352 -0
  396. package/dist/esm/external-providers/services/feature-bindings.backend.service.js.map +1 -0
  397. package/dist/esm/external-providers/services/lazy-provider-registry.backend.service.d.ts +141 -0
  398. package/dist/esm/external-providers/services/lazy-provider-registry.backend.service.d.ts.map +1 -0
  399. package/dist/esm/external-providers/services/lazy-provider-registry.backend.service.js +391 -0
  400. package/dist/esm/external-providers/services/lazy-provider-registry.backend.service.js.map +1 -0
  401. package/dist/esm/features/controllers/features.backend.controller.d.ts +35 -0
  402. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -0
  403. package/dist/esm/features/controllers/features.backend.controller.js +179 -0
  404. package/dist/esm/features/controllers/features.backend.controller.js.map +1 -0
  405. package/dist/esm/features/services/__tests__/mock-capability-bindings.service.d.ts +8 -0
  406. package/dist/esm/features/services/__tests__/mock-capability-bindings.service.d.ts.map +1 -0
  407. package/dist/esm/features/services/__tests__/mock-capability-bindings.service.js +31 -0
  408. package/dist/esm/features/services/__tests__/mock-capability-bindings.service.js.map +1 -0
  409. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts +22 -0
  410. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -0
  411. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.js +52 -0
  412. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.js.map +1 -0
  413. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts +13 -0
  414. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -0
  415. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.js +36 -0
  416. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.js.map +1 -0
  417. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts +111 -0
  418. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -0
  419. package/dist/esm/features/services/feature-definition-registry.backend.service.js +437 -0
  420. package/dist/esm/features/services/feature-definition-registry.backend.service.js.map +1 -0
  421. package/dist/esm/features/services/feature-gate.backend.service.d.ts +110 -0
  422. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -0
  423. package/dist/esm/features/services/feature-gate.backend.service.js +414 -0
  424. package/dist/esm/features/services/feature-gate.backend.service.js.map +1 -0
  425. package/dist/esm/features/services/feature-resolution.backend.service.d.ts +163 -0
  426. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -0
  427. package/dist/esm/features/services/feature-resolution.backend.service.js +550 -0
  428. package/dist/esm/features/services/feature-resolution.backend.service.js.map +1 -0
  429. package/dist/esm/features/testing/feature-test-utils.d.ts +85 -0
  430. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -0
  431. package/dist/esm/features/testing/feature-test-utils.js +127 -0
  432. package/dist/esm/features/testing/feature-test-utils.js.map +1 -0
  433. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts +34 -0
  434. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -0
  435. package/dist/esm/files/batches/files-cleanup.batch.backend.service.js +226 -0
  436. package/dist/esm/files/batches/files-cleanup.batch.backend.service.js.map +1 -0
  437. package/dist/esm/files/constraints/file-analyzers.types.d.ts +76 -0
  438. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -0
  439. package/dist/esm/files/constraints/file-analyzers.types.js +16 -0
  440. package/dist/esm/files/constraints/file-analyzers.types.js.map +1 -0
  441. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts +38 -0
  442. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -0
  443. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.js +99 -0
  444. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.js.map +1 -0
  445. package/dist/esm/files/constraints/file-constraint.types.d.ts +77 -0
  446. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -0
  447. package/dist/esm/files/constraints/file-constraint.types.js +16 -0
  448. package/dist/esm/files/constraints/file-constraint.types.js.map +1 -0
  449. package/dist/esm/files/constraints/file-validation.backend.service.d.ts +63 -0
  450. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -0
  451. package/dist/esm/files/constraints/file-validation.backend.service.js +317 -0
  452. package/dist/esm/files/constraints/file-validation.backend.service.js.map +1 -0
  453. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts +33 -0
  454. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -0
  455. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.js +126 -0
  456. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.js.map +1 -0
  457. package/dist/esm/files/controllers/file.controller.d.ts +145 -0
  458. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -0
  459. package/dist/esm/files/controllers/file.controller.js +806 -0
  460. package/dist/esm/files/controllers/file.controller.js.map +1 -0
  461. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +85 -0
  462. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -0
  463. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +512 -0
  464. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -0
  465. package/dist/esm/files/rag/weaviate-vector-store.backend.service.d.ts +84 -0
  466. package/dist/esm/files/rag/weaviate-vector-store.backend.service.d.ts.map +1 -0
  467. package/dist/esm/files/rag/weaviate-vector-store.backend.service.js +224 -0
  468. package/dist/esm/files/rag/weaviate-vector-store.backend.service.js.map +1 -0
  469. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts +55 -0
  470. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -0
  471. package/dist/esm/files/scanning/clamav-scanner.backend.service.js +202 -0
  472. package/dist/esm/files/scanning/clamav-scanner.backend.service.js.map +1 -0
  473. package/dist/esm/files/scanning/file-scan.types.d.ts +17 -0
  474. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -0
  475. package/dist/esm/files/scanning/file-scan.types.js +7 -0
  476. package/dist/esm/files/scanning/file-scan.types.js.map +1 -0
  477. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts +73 -0
  478. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -0
  479. package/dist/esm/files/scanning/yara-scanner.backend.service.js +184 -0
  480. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -0
  481. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts +12 -0
  482. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -0
  483. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.js +41 -0
  484. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.js.map +1 -0
  485. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts +33 -0
  486. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -0
  487. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.js +71 -0
  488. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.js.map +1 -0
  489. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts +16 -0
  490. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -0
  491. package/dist/esm/files/services/__tests__/mock-file-repository.service.js +95 -0
  492. package/dist/esm/files/services/__tests__/mock-file-repository.service.js.map +1 -0
  493. package/dist/esm/files/services/file-field-detection.backend.service.d.ts +57 -0
  494. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -0
  495. package/dist/esm/files/services/file-field-detection.backend.service.js +145 -0
  496. package/dist/esm/files/services/file-field-detection.backend.service.js.map +1 -0
  497. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +103 -0
  498. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -0
  499. package/dist/esm/files/services/file-operation-handler.backend.service.js +604 -0
  500. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -0
  501. package/dist/esm/files/services/file-population.backend.service.d.ts +73 -0
  502. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -0
  503. package/dist/esm/files/services/file-population.backend.service.js +367 -0
  504. package/dist/esm/files/services/file-population.backend.service.js.map +1 -0
  505. package/dist/esm/files/services/file-rag-indexing.backend.service.d.ts +64 -0
  506. package/dist/esm/files/services/file-rag-indexing.backend.service.d.ts.map +1 -0
  507. package/dist/esm/files/services/file-rag-indexing.backend.service.js +188 -0
  508. package/dist/esm/files/services/file-rag-indexing.backend.service.js.map +1 -0
  509. package/dist/esm/files/services/file-scanning.backend.service.d.ts +97 -0
  510. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -0
  511. package/dist/esm/files/services/file-scanning.backend.service.js +323 -0
  512. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -0
  513. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +52 -0
  514. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -0
  515. package/dist/esm/files/services/file-text-extraction.backend.service.js +168 -0
  516. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -0
  517. package/dist/esm/files/services/files.backend.service.d.ts +235 -0
  518. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -0
  519. package/dist/esm/files/services/files.backend.service.js +987 -0
  520. package/dist/esm/files/services/files.backend.service.js.map +1 -0
  521. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts +50 -0
  522. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -0
  523. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.js +253 -0
  524. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.js.map +1 -0
  525. package/dist/esm/files/storage/file-storage-provider.types.d.ts +156 -0
  526. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -0
  527. package/dist/esm/files/storage/file-storage-provider.types.js +10 -0
  528. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -0
  529. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +68 -0
  530. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -0
  531. package/dist/esm/files/storage/file-storage-router.backend.service.js +168 -0
  532. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -0
  533. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +57 -0
  534. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -0
  535. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +307 -0
  536. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -0
  537. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts +41 -0
  538. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -0
  539. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +397 -0
  540. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -0
  541. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts +30 -0
  542. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -0
  543. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +251 -0
  544. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -0
  545. package/dist/esm/files/utils/file-upload.utils.d.ts +74 -0
  546. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -0
  547. package/dist/esm/files/utils/file-upload.utils.js +116 -0
  548. package/dist/esm/files/utils/file-upload.utils.js.map +1 -0
  549. package/dist/esm/files/utils/file-uploader.utils.d.ts +15 -0
  550. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -0
  551. package/dist/esm/files/utils/file-uploader.utils.js +47 -0
  552. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -0
  553. package/dist/esm/files/utils/file-validation.utils.d.ts +111 -0
  554. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -0
  555. package/dist/esm/files/utils/file-validation.utils.js +516 -0
  556. package/dist/esm/files/utils/file-validation.utils.js.map +1 -0
  557. package/dist/esm/flows-actors/agent-catalogs.backend.d.ts +222 -0
  558. package/dist/esm/flows-actors/agent-catalogs.backend.d.ts.map +1 -0
  559. package/dist/esm/flows-actors/agent-catalogs.backend.js +320 -0
  560. package/dist/esm/flows-actors/agent-catalogs.backend.js.map +1 -0
  561. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts +33 -0
  562. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -0
  563. package/dist/esm/flows-actors/controllers/flows-actors.controller.js +96 -0
  564. package/dist/esm/flows-actors/controllers/flows-actors.controller.js.map +1 -0
  565. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +225 -0
  566. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -0
  567. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +323 -0
  568. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -0
  569. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts +77 -0
  570. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -0
  571. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.js +28 -0
  572. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.js.map +1 -0
  573. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts +1 -0
  574. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -0
  575. package/dist/esm/flows-actors/models/agents.backend.definitions.js +1 -0
  576. package/dist/esm/flows-actors/models/agents.backend.definitions.js.map +1 -0
  577. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +52 -0
  578. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -0
  579. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +307 -0
  580. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -0
  581. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts +7 -0
  582. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -0
  583. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.js +8 -0
  584. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.js.map +1 -0
  585. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +30 -0
  586. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -0
  587. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js +7 -0
  588. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -0
  589. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts +72 -0
  590. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -0
  591. package/dist/esm/flows-actors/services/actors-system.backend.service.js +229 -0
  592. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -0
  593. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts +95 -0
  594. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -0
  595. package/dist/esm/flows-actors/services/agent-facets.backend.service.js +276 -0
  596. package/dist/esm/flows-actors/services/agent-facets.backend.service.js.map +1 -0
  597. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +183 -0
  598. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -0
  599. package/dist/esm/flows-actors/services/agents.backend.service.js +2095 -0
  600. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -0
  601. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts +64 -0
  602. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -0
  603. package/dist/esm/flows-actors/services/context-curation.backend.service.js +180 -0
  604. package/dist/esm/flows-actors/services/context-curation.backend.service.js.map +1 -0
  605. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +101 -0
  606. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -0
  607. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +313 -0
  608. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -0
  609. package/dist/esm/flows-actors/services/flows.backend.services.d.ts +64 -0
  610. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -0
  611. package/dist/esm/flows-actors/services/flows.backend.services.js +203 -0
  612. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -0
  613. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +91 -0
  614. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -0
  615. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +629 -0
  616. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -0
  617. package/dist/esm/flows-actors/utils/cli-runtime-operation-support.backend.utils.d.ts +15 -0
  618. package/dist/esm/flows-actors/utils/cli-runtime-operation-support.backend.utils.d.ts.map +1 -0
  619. package/dist/esm/flows-actors/utils/cli-runtime-operation-support.backend.utils.js +55 -0
  620. package/dist/esm/flows-actors/utils/cli-runtime-operation-support.backend.utils.js.map +1 -0
  621. package/dist/esm/flows-actors/utils/cli-runtime-runner.backend.utils.d.ts +22 -0
  622. package/dist/esm/flows-actors/utils/cli-runtime-runner.backend.utils.d.ts.map +1 -0
  623. package/dist/esm/flows-actors/utils/cli-runtime-runner.backend.utils.js +131 -0
  624. package/dist/esm/flows-actors/utils/cli-runtime-runner.backend.utils.js.map +1 -0
  625. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts +15 -0
  626. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -0
  627. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.js +43 -0
  628. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.js.map +1 -0
  629. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts +66 -0
  630. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -0
  631. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.js +219 -0
  632. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.js.map +1 -0
  633. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts +17 -0
  634. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -0
  635. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.js +110 -0
  636. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.js.map +1 -0
  637. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts +41 -0
  638. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -0
  639. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.js +135 -0
  640. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.js.map +1 -0
  641. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts +33 -0
  642. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -0
  643. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.js +105 -0
  644. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.js.map +1 -0
  645. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts +103 -0
  646. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -0
  647. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.js +685 -0
  648. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.js.map +1 -0
  649. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts +23 -0
  650. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -0
  651. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.js +57 -0
  652. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.js.map +1 -0
  653. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts +49 -0
  654. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -0
  655. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.js +248 -0
  656. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.js.map +1 -0
  657. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +64 -0
  658. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -0
  659. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +487 -0
  660. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -0
  661. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +55 -0
  662. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -0
  663. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +208 -0
  664. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -0
  665. package/dist/esm/i18n/services/i18n.backend.service.d.ts +43 -0
  666. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -0
  667. package/dist/esm/i18n/services/i18n.backend.service.js +83 -0
  668. package/dist/esm/i18n/services/i18n.backend.service.js.map +1 -0
  669. package/dist/esm/index.d.ts +203 -0
  670. package/dist/esm/index.d.ts.map +1 -0
  671. package/dist/esm/index.js +239 -0
  672. package/dist/esm/index.js.map +1 -0
  673. package/dist/esm/inject/models/container.d.ts +44 -0
  674. package/dist/esm/inject/models/container.d.ts.map +1 -0
  675. package/dist/esm/inject/models/container.js +489 -0
  676. package/dist/esm/inject/models/container.js.map +1 -0
  677. package/dist/esm/inject/models/service-types.d.ts +198 -0
  678. package/dist/esm/inject/models/service-types.d.ts.map +1 -0
  679. package/dist/esm/inject/models/service-types.js +226 -0
  680. package/dist/esm/inject/models/service-types.js.map +1 -0
  681. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts +34 -0
  682. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -0
  683. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +122 -0
  684. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -0
  685. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +41 -0
  686. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -0
  687. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +62 -0
  688. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -0
  689. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +18 -0
  690. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -0
  691. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js +43 -0
  692. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -0
  693. package/dist/esm/monitoring/logger/middleware/logging.middleware.d.ts +12 -0
  694. package/dist/esm/monitoring/logger/middleware/logging.middleware.d.ts.map +1 -0
  695. package/dist/esm/monitoring/logger/middleware/logging.middleware.js +25 -0
  696. package/dist/esm/monitoring/logger/middleware/logging.middleware.js.map +1 -0
  697. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +41 -0
  698. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -0
  699. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +29 -0
  700. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -0
  701. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts +22 -0
  702. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -0
  703. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.js +53 -0
  704. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.js.map +1 -0
  705. package/dist/esm/monitoring/logger/services/logger.service.d.ts +37 -0
  706. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -0
  707. package/dist/esm/monitoring/logger/services/logger.service.js +189 -0
  708. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -0
  709. package/dist/esm/monitoring/observability/middleware/metrics.middleware.d.ts +38 -0
  710. package/dist/esm/monitoring/observability/middleware/metrics.middleware.d.ts.map +1 -0
  711. package/dist/esm/monitoring/observability/middleware/metrics.middleware.js +147 -0
  712. package/dist/esm/monitoring/observability/middleware/metrics.middleware.js.map +1 -0
  713. package/dist/esm/monitoring/observability/middleware/telemetry.middleware.d.ts +26 -0
  714. package/dist/esm/monitoring/observability/middleware/telemetry.middleware.d.ts.map +1 -0
  715. package/dist/esm/monitoring/observability/middleware/telemetry.middleware.js +117 -0
  716. package/dist/esm/monitoring/observability/middleware/telemetry.middleware.js.map +1 -0
  717. package/dist/esm/monitoring/observability/middleware/tracing.middleware.d.ts +28 -0
  718. package/dist/esm/monitoring/observability/middleware/tracing.middleware.d.ts.map +1 -0
  719. package/dist/esm/monitoring/observability/middleware/tracing.middleware.js +182 -0
  720. package/dist/esm/monitoring/observability/middleware/tracing.middleware.js.map +1 -0
  721. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +86 -0
  722. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -0
  723. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js +1 -0
  724. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -0
  725. package/dist/esm/monitoring/observability/services/instrumentations/custom.instrumentations.d.ts +57 -0
  726. package/dist/esm/monitoring/observability/services/instrumentations/custom.instrumentations.d.ts.map +1 -0
  727. package/dist/esm/monitoring/observability/services/instrumentations/custom.instrumentations.js +77 -0
  728. package/dist/esm/monitoring/observability/services/instrumentations/custom.instrumentations.js.map +1 -0
  729. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +27 -0
  730. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -0
  731. package/dist/esm/monitoring/observability/services/metrics.service.js +236 -0
  732. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -0
  733. package/dist/esm/monitoring/observability/services/telemetry.service.d.ts +28 -0
  734. package/dist/esm/monitoring/observability/services/telemetry.service.d.ts.map +1 -0
  735. package/dist/esm/monitoring/observability/services/telemetry.service.js +144 -0
  736. package/dist/esm/monitoring/observability/services/telemetry.service.js.map +1 -0
  737. package/dist/esm/monitoring/observability/services/tracer.service.d.ts +24 -0
  738. package/dist/esm/monitoring/observability/services/tracer.service.d.ts.map +1 -0
  739. package/dist/esm/monitoring/observability/services/tracer.service.js +287 -0
  740. package/dist/esm/monitoring/observability/services/tracer.service.js.map +1 -0
  741. package/dist/esm/notifications/email/components/email-components.d.ts +90 -0
  742. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -0
  743. package/dist/esm/notifications/email/components/email-components.js +171 -0
  744. package/dist/esm/notifications/email/components/email-components.js.map +1 -0
  745. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +80 -0
  746. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +1 -0
  747. package/dist/esm/notifications/email/models/email-context-provider.interface.js +25 -0
  748. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +1 -0
  749. package/dist/esm/notifications/email/models/email-template-definition.d.ts +68 -0
  750. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -0
  751. package/dist/esm/notifications/email/models/email-template-definition.js +12 -0
  752. package/dist/esm/notifications/email/models/email-template-definition.js.map +1 -0
  753. package/dist/esm/notifications/email/models/email-template.actors-system.backend.definitions.d.ts +19 -0
  754. package/dist/esm/notifications/email/models/email-template.actors-system.backend.definitions.d.ts.map +1 -0
  755. package/dist/esm/notifications/email/models/email-template.actors-system.backend.definitions.js +66 -0
  756. package/dist/esm/notifications/email/models/email-template.actors-system.backend.definitions.js.map +1 -0
  757. package/dist/esm/notifications/email/models/email.backend.scheamas.d.ts +1 -0
  758. package/dist/esm/notifications/email/models/email.backend.scheamas.d.ts.map +1 -0
  759. package/dist/esm/notifications/email/models/email.backend.scheamas.js +1 -0
  760. package/dist/esm/notifications/email/models/email.backend.scheamas.js.map +1 -0
  761. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts +74 -0
  762. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -0
  763. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.js +196 -0
  764. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.js.map +1 -0
  765. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +49 -0
  766. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +1 -0
  767. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +141 -0
  768. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +1 -0
  769. package/dist/esm/notifications/email/services/email-renderer.backend.service.d.ts +74 -0
  770. package/dist/esm/notifications/email/services/email-renderer.backend.service.d.ts.map +1 -0
  771. package/dist/esm/notifications/email/services/email-renderer.backend.service.js +215 -0
  772. package/dist/esm/notifications/email/services/email-renderer.backend.service.js.map +1 -0
  773. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +37 -0
  774. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +1 -0
  775. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +121 -0
  776. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +1 -0
  777. package/dist/esm/notifications/email/services/email-template-generation.backend.service.d.ts +115 -0
  778. package/dist/esm/notifications/email/services/email-template-generation.backend.service.d.ts.map +1 -0
  779. package/dist/esm/notifications/email/services/email-template-generation.backend.service.js +634 -0
  780. package/dist/esm/notifications/email/services/email-template-generation.backend.service.js.map +1 -0
  781. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +48 -0
  782. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -0
  783. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +146 -0
  784. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -0
  785. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +58 -0
  786. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +1 -0
  787. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +223 -0
  788. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +1 -0
  789. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts +49 -0
  790. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -0
  791. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +204 -0
  792. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -0
  793. package/dist/esm/notifications/email/services/email.backend.service.d.ts +76 -0
  794. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -0
  795. package/dist/esm/notifications/email/services/email.backend.service.js +294 -0
  796. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -0
  797. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +56 -0
  798. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -0
  799. package/dist/esm/notifications/email/utils/color-conversion.utils.js +108 -0
  800. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -0
  801. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts +8 -0
  802. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -0
  803. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.js +15 -0
  804. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.js.map +1 -0
  805. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts +50 -0
  806. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -0
  807. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.js +281 -0
  808. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.js.map +1 -0
  809. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +94 -0
  810. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -0
  811. package/dist/esm/notifications/services/notification-badge.backend.service.js +292 -0
  812. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -0
  813. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +202 -0
  814. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -0
  815. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +1290 -0
  816. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -0
  817. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +50 -0
  818. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -0
  819. package/dist/esm/notifications/sms/services/sms.backend.service.js +209 -0
  820. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -0
  821. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +58 -0
  822. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -0
  823. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +184 -0
  824. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -0
  825. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts +56 -0
  826. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -0
  827. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.js +109 -0
  828. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.js.map +1 -0
  829. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +96 -0
  830. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -0
  831. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +396 -0
  832. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -0
  833. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts +39 -0
  834. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -0
  835. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.js +73 -0
  836. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.js.map +1 -0
  837. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts +22 -0
  838. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -0
  839. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.js +35 -0
  840. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.js.map +1 -0
  841. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts +10 -0
  842. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -0
  843. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +77 -0
  844. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -0
  845. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts +10 -0
  846. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -0
  847. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.js +131 -0
  848. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.js.map +1 -0
  849. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts +22 -0
  850. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -0
  851. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.js +21 -0
  852. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.js.map +1 -0
  853. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts +25 -0
  854. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -0
  855. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.js +34 -0
  856. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.js.map +1 -0
  857. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts +32 -0
  858. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -0
  859. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.js +66 -0
  860. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.js.map +1 -0
  861. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +126 -0
  862. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -0
  863. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +370 -0
  864. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -0
  865. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts +86 -0
  866. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -0
  867. package/dist/esm/queue/apps-crontabs-manager.backend.service.js +176 -0
  868. package/dist/esm/queue/apps-crontabs-manager.backend.service.js.map +1 -0
  869. package/dist/esm/queue/cron-job-sync.backend.service.d.ts +42 -0
  870. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -0
  871. package/dist/esm/queue/cron-job-sync.backend.service.js +181 -0
  872. package/dist/esm/queue/cron-job-sync.backend.service.js.map +1 -0
  873. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +84 -0
  874. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -0
  875. package/dist/esm/queue/domain-queue-consumer.backend.service.js +275 -0
  876. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -0
  877. package/dist/esm/queue/job-completion-registry.backend.service.d.ts +111 -0
  878. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -0
  879. package/dist/esm/queue/job-completion-registry.backend.service.js +237 -0
  880. package/dist/esm/queue/job-completion-registry.backend.service.js.map +1 -0
  881. package/dist/esm/queue/job-consumer.backend.service.d.ts +109 -0
  882. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -0
  883. package/dist/esm/queue/job-consumer.backend.service.js +515 -0
  884. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -0
  885. package/dist/esm/queue/job-executor.backend.service.d.ts +53 -0
  886. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -0
  887. package/dist/esm/queue/job-executor.backend.service.js +278 -0
  888. package/dist/esm/queue/job-executor.backend.service.js.map +1 -0
  889. package/dist/esm/queue/job-payload-storage.backend.service.d.ts +86 -0
  890. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -0
  891. package/dist/esm/queue/job-payload-storage.backend.service.js +250 -0
  892. package/dist/esm/queue/job-payload-storage.backend.service.js.map +1 -0
  893. package/dist/esm/queue/job-status-tracking.backend.service.d.ts +97 -0
  894. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -0
  895. package/dist/esm/queue/job-status-tracking.backend.service.js +281 -0
  896. package/dist/esm/queue/job-status-tracking.backend.service.js.map +1 -0
  897. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +71 -0
  898. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -0
  899. package/dist/esm/queue/queue-monitoring.backend.service.js +297 -0
  900. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -0
  901. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +63 -0
  902. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -0
  903. package/dist/esm/queue/queue-worker-initializer.backend.service.js +171 -0
  904. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -0
  905. package/dist/esm/queue/queue.backend.service.d.ts +108 -0
  906. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -0
  907. package/dist/esm/queue/queue.backend.service.js +419 -0
  908. package/dist/esm/queue/queue.backend.service.js.map +1 -0
  909. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts +74 -0
  910. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -0
  911. package/dist/esm/queue/scheduled-message-verifier.backend.service.js +189 -0
  912. package/dist/esm/queue/scheduled-message-verifier.backend.service.js.map +1 -0
  913. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +124 -0
  914. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -0
  915. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +250 -0
  916. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -0
  917. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts +34 -0
  918. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -0
  919. package/dist/esm/requests/models/api-routes.backend.defintions.js +42 -0
  920. package/dist/esm/requests/models/api-routes.backend.defintions.js.map +1 -0
  921. package/dist/esm/requests/models/requests.backend.schemas.d.ts +48 -0
  922. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -0
  923. package/dist/esm/requests/models/requests.backend.schemas.js +7 -0
  924. package/dist/esm/requests/models/requests.backend.schemas.js.map +1 -0
  925. package/dist/esm/requests/service/__tests__/mock-apps-shared-resources-gateway.service.d.ts +6 -0
  926. package/dist/esm/requests/service/__tests__/mock-apps-shared-resources-gateway.service.d.ts.map +1 -0
  927. package/dist/esm/requests/service/__tests__/mock-apps-shared-resources-gateway.service.js +20 -0
  928. package/dist/esm/requests/service/__tests__/mock-apps-shared-resources-gateway.service.js.map +1 -0
  929. package/dist/esm/requests/service/apps-shared-resources-gateway.backend.service.d.ts +84 -0
  930. package/dist/esm/requests/service/apps-shared-resources-gateway.backend.service.d.ts.map +1 -0
  931. package/dist/esm/requests/service/apps-shared-resources-gateway.backend.service.js +462 -0
  932. package/dist/esm/requests/service/apps-shared-resources-gateway.backend.service.js.map +1 -0
  933. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts +9 -0
  934. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -0
  935. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.js +36 -0
  936. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.js.map +1 -0
  937. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts +6 -0
  938. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -0
  939. package/dist/esm/requests/service/platform-requests.backend.utils.js +47 -0
  940. package/dist/esm/requests/service/platform-requests.backend.utils.js.map +1 -0
  941. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts +111 -0
  942. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -0
  943. package/dist/esm/requests/service/remote-client-base.backend.service.js +354 -0
  944. package/dist/esm/requests/service/remote-client-base.backend.service.js.map +1 -0
  945. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts +9 -0
  946. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -0
  947. package/dist/esm/requests/service/serverless-services-handler.backend.service.js +36 -0
  948. package/dist/esm/requests/service/serverless-services-handler.backend.service.js.map +1 -0
  949. package/dist/esm/requests/service/websocket.service.d.ts +507 -0
  950. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -0
  951. package/dist/esm/requests/service/websocket.service.js +2222 -0
  952. package/dist/esm/requests/service/websocket.service.js.map +1 -0
  953. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts +3 -0
  954. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -0
  955. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +17 -0
  956. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -0
  957. package/dist/esm/resources/models/index.d.ts +7 -0
  958. package/dist/esm/resources/models/index.d.ts.map +1 -0
  959. package/dist/esm/resources/models/index.js +7 -0
  960. package/dist/esm/resources/models/index.js.map +1 -0
  961. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts +4 -0
  962. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -0
  963. package/dist/esm/resources/models/resources-operations.backend.definitions.js +7 -0
  964. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -0
  965. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts +3 -0
  966. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -0
  967. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +19 -0
  968. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -0
  969. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +13 -0
  970. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -0
  971. package/dist/esm/resources/models/resources-types.backend.schemas.js +14 -0
  972. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -0
  973. package/dist/esm/resources/models/resources.backend.schemas.d.ts +7 -0
  974. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -0
  975. package/dist/esm/resources/models/resources.backend.schemas.js +8 -0
  976. package/dist/esm/resources/models/resources.backend.schemas.js.map +1 -0
  977. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts +121 -0
  978. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -0
  979. package/dist/esm/resources/models/virtual-fields.backend.types.js +10 -0
  980. package/dist/esm/resources/models/virtual-fields.backend.types.js.map +1 -0
  981. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts +25 -0
  982. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -0
  983. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.js +59 -0
  984. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.js.map +1 -0
  985. package/dist/esm/resources/services/resource-context.backend.service.d.ts +321 -0
  986. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -0
  987. package/dist/esm/resources/services/resource-context.backend.service.js +723 -0
  988. package/dist/esm/resources/services/resource-context.backend.service.js.map +1 -0
  989. package/dist/esm/resources/services/resource-id.backend.service.d.ts +110 -0
  990. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -0
  991. package/dist/esm/resources/services/resource-id.backend.service.js +267 -0
  992. package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -0
  993. package/dist/esm/resources/services/resource-population.backend.service.d.ts +149 -0
  994. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -0
  995. package/dist/esm/resources/services/resource-population.backend.service.js +543 -0
  996. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -0
  997. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +151 -0
  998. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -0
  999. package/dist/esm/resources/services/resources-registry.backend.service.js +867 -0
  1000. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -0
  1001. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts +72 -0
  1002. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -0
  1003. package/dist/esm/resources/services/virtual-fields.backend.service.js +254 -0
  1004. package/dist/esm/resources/services/virtual-fields.backend.service.js.map +1 -0
  1005. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +73 -0
  1006. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -0
  1007. package/dist/esm/runtime/controllers/health-controller.backend.service.js +275 -0
  1008. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -0
  1009. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +43 -0
  1010. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -0
  1011. package/dist/esm/runtime/domain-module.backend.definitions.js +70 -0
  1012. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -0
  1013. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts +253 -0
  1014. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -0
  1015. package/dist/esm/runtime/models/execution-context.backend.schemas.js +329 -0
  1016. package/dist/esm/runtime/models/execution-context.backend.schemas.js.map +1 -0
  1017. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts +45 -0
  1018. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -0
  1019. package/dist/esm/runtime/models/runtime.backend.schemas.js +73 -0
  1020. package/dist/esm/runtime/models/runtime.backend.schemas.js.map +1 -0
  1021. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts +315 -0
  1022. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -0
  1023. package/dist/esm/runtime/services/execution-context-creator.backend.service.js +1525 -0
  1024. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -0
  1025. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts +60 -0
  1026. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -0
  1027. package/dist/esm/runtime/services/execution-context-handler.backend.service.js +150 -0
  1028. package/dist/esm/runtime/services/execution-context-handler.backend.service.js.map +1 -0
  1029. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +11 -0
  1030. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -0
  1031. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js +1 -0
  1032. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -0
  1033. package/dist/esm/runtime/services/http-server.backend.service.d.ts +188 -0
  1034. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -0
  1035. package/dist/esm/runtime/services/http-server.backend.service.js +755 -0
  1036. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -0
  1037. package/dist/esm/runtime/services/start-application.backend.service.d.ts +240 -0
  1038. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -0
  1039. package/dist/esm/runtime/services/start-application.backend.service.js +977 -0
  1040. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -0
  1041. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts +10 -0
  1042. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -0
  1043. package/dist/esm/runtime/testing/execution-context-test-fixtures.js +13 -0
  1044. package/dist/esm/runtime/testing/execution-context-test-fixtures.js.map +1 -0
  1045. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts +15 -0
  1046. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -0
  1047. package/dist/esm/runtime/testing/mock-execution-context-creator.service.js +42 -0
  1048. package/dist/esm/runtime/testing/mock-execution-context-creator.service.js.map +1 -0
  1049. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts +85 -0
  1050. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -0
  1051. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.js +171 -0
  1052. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.js.map +1 -0
  1053. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +19 -0
  1054. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -0
  1055. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +59 -0
  1056. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -0
  1057. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts +31 -0
  1058. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -0
  1059. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.js +215 -0
  1060. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.js.map +1 -0
  1061. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +493 -0
  1062. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -0
  1063. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +2371 -0
  1064. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -0
  1065. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts +83 -0
  1066. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -0
  1067. package/dist/esm/security/authentications/models/auth-constants.backend.js +113 -0
  1068. package/dist/esm/security/authentications/models/auth-constants.backend.js.map +1 -0
  1069. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts +98 -0
  1070. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -0
  1071. package/dist/esm/security/authentications/models/authentications.backend.schemas.js +59 -0
  1072. package/dist/esm/security/authentications/models/authentications.backend.schemas.js.map +1 -0
  1073. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +42 -0
  1074. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -0
  1075. package/dist/esm/security/authentications/models/jwt.backend.schemas.js +98 -0
  1076. package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -0
  1077. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +163 -0
  1078. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -0
  1079. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js +12 -0
  1080. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -0
  1081. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts +102 -0
  1082. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -0
  1083. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.js +7 -0
  1084. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.js.map +1 -0
  1085. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts +88 -0
  1086. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -0
  1087. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.js +17 -0
  1088. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.js.map +1 -0
  1089. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts +27 -0
  1090. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -0
  1091. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.js +66 -0
  1092. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.js.map +1 -0
  1093. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts +30 -0
  1094. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -0
  1095. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.js +44 -0
  1096. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.js.map +1 -0
  1097. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts +19 -0
  1098. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -0
  1099. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.js +43 -0
  1100. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.js.map +1 -0
  1101. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts +37 -0
  1102. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -0
  1103. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.js +58 -0
  1104. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.js.map +1 -0
  1105. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +85 -0
  1106. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -0
  1107. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +379 -0
  1108. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -0
  1109. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +79 -0
  1110. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -0
  1111. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +205 -0
  1112. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -0
  1113. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +59 -0
  1114. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -0
  1115. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +179 -0
  1116. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -0
  1117. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +116 -0
  1118. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -0
  1119. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +436 -0
  1120. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -0
  1121. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts +67 -0
  1122. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -0
  1123. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +222 -0
  1124. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -0
  1125. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +80 -0
  1126. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -0
  1127. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +368 -0
  1128. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -0
  1129. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts +75 -0
  1130. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -0
  1131. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.js +139 -0
  1132. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.js.map +1 -0
  1133. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts +72 -0
  1134. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -0
  1135. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.js +127 -0
  1136. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.js.map +1 -0
  1137. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +57 -0
  1138. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -0
  1139. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +459 -0
  1140. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -0
  1141. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts +44 -0
  1142. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -0
  1143. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +131 -0
  1144. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -0
  1145. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts +58 -0
  1146. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -0
  1147. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.js +209 -0
  1148. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.js.map +1 -0
  1149. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts +46 -0
  1150. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -0
  1151. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.js +124 -0
  1152. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.js.map +1 -0
  1153. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +165 -0
  1154. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -0
  1155. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +816 -0
  1156. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -0
  1157. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +218 -0
  1158. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -0
  1159. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +1026 -0
  1160. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -0
  1161. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +150 -0
  1162. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -0
  1163. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +737 -0
  1164. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -0
  1165. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts +224 -0
  1166. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -0
  1167. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.js +593 -0
  1168. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.js.map +1 -0
  1169. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts +267 -0
  1170. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -0
  1171. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.js +1376 -0
  1172. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.js.map +1 -0
  1173. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts +93 -0
  1174. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -0
  1175. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.js +396 -0
  1176. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.js.map +1 -0
  1177. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts +40 -0
  1178. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -0
  1179. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.js +92 -0
  1180. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.js.map +1 -0
  1181. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +82 -0
  1182. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -0
  1183. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +325 -0
  1184. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -0
  1185. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts +66 -0
  1186. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -0
  1187. package/dist/esm/security/authentications/services/auth-session-store.backend.service.js +198 -0
  1188. package/dist/esm/security/authentications/services/auth-session-store.backend.service.js.map +1 -0
  1189. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +108 -0
  1190. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -0
  1191. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +406 -0
  1192. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -0
  1193. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +366 -0
  1194. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -0
  1195. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +2631 -0
  1196. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -0
  1197. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts +13 -0
  1198. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -0
  1199. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +53 -0
  1200. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -0
  1201. package/dist/esm/security/authentications/services/custom-impls/auth-policy.custom-impl.backend.service.d.ts +12 -0
  1202. package/dist/esm/security/authentications/services/custom-impls/auth-policy.custom-impl.backend.service.d.ts.map +1 -0
  1203. package/dist/esm/security/authentications/services/custom-impls/auth-policy.custom-impl.backend.service.js +41 -0
  1204. package/dist/esm/security/authentications/services/custom-impls/auth-policy.custom-impl.backend.service.js.map +1 -0
  1205. package/dist/esm/security/authentications/services/custom-impls/scim-provisioning-config.custom-impl.backend.service.d.ts +18 -0
  1206. package/dist/esm/security/authentications/services/custom-impls/scim-provisioning-config.custom-impl.backend.service.d.ts.map +1 -0
  1207. package/dist/esm/security/authentications/services/custom-impls/scim-provisioning-config.custom-impl.backend.service.js +140 -0
  1208. package/dist/esm/security/authentications/services/custom-impls/scim-provisioning-config.custom-impl.backend.service.js.map +1 -0
  1209. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts +16 -0
  1210. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -0
  1211. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.js +112 -0
  1212. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.js.map +1 -0
  1213. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts +16 -0
  1214. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -0
  1215. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.js +101 -0
  1216. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.js.map +1 -0
  1217. package/dist/esm/security/authentications/services/custom-impls/siem-export-config.custom-impl.backend.service.d.ts +18 -0
  1218. package/dist/esm/security/authentications/services/custom-impls/siem-export-config.custom-impl.backend.service.d.ts.map +1 -0
  1219. package/dist/esm/security/authentications/services/custom-impls/siem-export-config.custom-impl.backend.service.js +136 -0
  1220. package/dist/esm/security/authentications/services/custom-impls/siem-export-config.custom-impl.backend.service.js.map +1 -0
  1221. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +19 -0
  1222. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -0
  1223. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +154 -0
  1224. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -0
  1225. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts +26 -0
  1226. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -0
  1227. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +657 -0
  1228. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -0
  1229. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts +27 -0
  1230. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -0
  1231. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.js +60 -0
  1232. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.js.map +1 -0
  1233. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts +23 -0
  1234. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -0
  1235. package/dist/esm/security/authentications/services/utils/auth-controller.utils.js +44 -0
  1236. package/dist/esm/security/authentications/services/utils/auth-controller.utils.js.map +1 -0
  1237. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts +89 -0
  1238. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -0
  1239. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.js +192 -0
  1240. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.js.map +1 -0
  1241. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts +20 -0
  1242. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -0
  1243. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.js +55 -0
  1244. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.js.map +1 -0
  1245. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts +50 -0
  1246. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -0
  1247. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +135 -0
  1248. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -0
  1249. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts +26 -0
  1250. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -0
  1251. package/dist/esm/security/authentications/services/utils/saml-java-availability.js +59 -0
  1252. package/dist/esm/security/authentications/services/utils/saml-java-availability.js.map +1 -0
  1253. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +137 -0
  1254. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -0
  1255. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +723 -0
  1256. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -0
  1257. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +28 -0
  1258. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -0
  1259. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +156 -0
  1260. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -0
  1261. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +4 -0
  1262. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -0
  1263. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +72 -0
  1264. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -0
  1265. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts +125 -0
  1266. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -0
  1267. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.js +69 -0
  1268. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.js.map +1 -0
  1269. package/dist/esm/security/consumable-tokens/models/index.d.ts +3 -0
  1270. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -0
  1271. package/dist/esm/security/consumable-tokens/models/index.js +3 -0
  1272. package/dist/esm/security/consumable-tokens/models/index.js.map +1 -0
  1273. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts +26 -0
  1274. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -0
  1275. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.js +55 -0
  1276. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.js.map +1 -0
  1277. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +142 -0
  1278. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -0
  1279. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +446 -0
  1280. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -0
  1281. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts +46 -0
  1282. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -0
  1283. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.js +147 -0
  1284. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.js.map +1 -0
  1285. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts +75 -0
  1286. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -0
  1287. package/dist/esm/security/jwt/services/jwt.backend.service.js +368 -0
  1288. package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -0
  1289. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts +71 -0
  1290. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -0
  1291. package/dist/esm/security/scim/controllers/scim.backend.controller.js +863 -0
  1292. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -0
  1293. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +275 -0
  1294. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -0
  1295. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +139 -0
  1296. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -0
  1297. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts +35 -0
  1298. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -0
  1299. package/dist/esm/security/scim/utils/scim-filter-parser.js +232 -0
  1300. package/dist/esm/security/scim/utils/scim-filter-parser.js.map +1 -0
  1301. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts +42 -0
  1302. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -0
  1303. package/dist/esm/security/scim/utils/scim-response-formatter.js +89 -0
  1304. package/dist/esm/security/scim/utils/scim-response-formatter.js.map +1 -0
  1305. package/dist/esm/testing.d.ts +31 -0
  1306. package/dist/esm/testing.d.ts.map +1 -0
  1307. package/dist/esm/testing.js +31 -0
  1308. package/dist/esm/testing.js.map +1 -0
  1309. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts +9 -0
  1310. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -0
  1311. package/dist/esm/users/services/user-self-custom-implementations.backend.js +48 -0
  1312. package/dist/esm/users/services/user-self-custom-implementations.backend.js.map +1 -0
  1313. package/dist/tsconfig.build.tsbuildinfo +1 -0
  1314. package/package.json +163 -0
  1315. package/src/__tests__/integration/bulk-repository-write-contract.integration.test.ts +373 -0
  1316. package/src/__tests__/integration/custom-batch-job-execution.integration.test.ts +147 -0
  1317. package/src/__tests__/integration/delete-file-rollback-persistence.integration.test.ts +551 -0
  1318. package/src/__tests__/integration/file-management-nested-persistence.integration.test.ts +487 -0
  1319. package/src/__tests__/integration/file-management-postgresql-persistence.integration.test.ts +466 -0
  1320. package/src/__tests__/integration/files-cleanup-persistence.integration.test.ts +335 -0
  1321. package/src/__tests__/integration/generated-bulk-relationship-runtime.integration.test.ts +545 -0
  1322. package/src/__tests__/integration/lifecycle-delete-rollback-persistence.integration.test.ts +537 -0
  1323. package/src/__tests__/integration/postgresql-contextual-filter-enforcement.integration.test.ts +170 -0
  1324. package/src/__tests__/integration/postgresql-delete-best-effort-boundary.integration.test.ts +604 -0
  1325. package/src/__tests__/integration/prompt-compiler.integration.test.ts +723 -0
  1326. package/src/__tests__/integration/relationship-service-semantics.integration.test.ts +2086 -0
  1327. package/src/__tests__/integration/repositories-registry.integration.test.ts +296 -0
  1328. package/src/__tests__/integration/resource-factory-pipeline.integration.test.ts +556 -0
  1329. package/src/__tests__/integration/resource-services.integration.test.ts +265 -0
  1330. package/src/__tests__/integration/resources-registry.integration.test.ts +327 -0
  1331. package/src/__tests__/integration/services-registry.integration.test.ts +231 -0
  1332. package/src/__tests__/integration/update-many-runtime-guards.integration.test.ts +290 -0
  1333. package/src/__tests__/setup.ts +15 -0
  1334. package/src/__tests__/test-container.ts +120 -0
  1335. package/src/applications/models/applications.backend.schemas.ts +18 -0
  1336. package/src/base-classes/__tests__/batches-cronjobs-executor.test.ts +63 -0
  1337. package/src/base-classes/__tests__/bulk-delete-child-file-guard.test.ts +152 -0
  1338. package/src/base-classes/__tests__/bulk-nested-file-update-coordination.test.ts +171 -0
  1339. package/src/base-classes/__tests__/delete-file-coordination.test.ts +185 -0
  1340. package/src/base-classes/__tests__/postgresql-file-transaction-coordination.test.ts +424 -0
  1341. package/src/base-classes/__tests__/postgresql-repository-contextual-filter-enforcement.test.ts +88 -0
  1342. package/src/base-classes/__tests__/repository-contextual-filter-enforcement.test.ts +87 -0
  1343. package/src/base-classes/__tests__/resource-operation-helper-context-enforcement.test.ts +74 -0
  1344. package/src/base-classes/__tests__/transaction-boundaries.test.ts +153 -0
  1345. package/src/base-classes/models/manual-controllers.backend.definition.ts +56 -0
  1346. package/src/base-classes/models/repositories.backend.schemas.ts +105 -0
  1347. package/src/base-classes/services/__tests__/mock-resource-operation-helper.service.ts +61 -0
  1348. package/src/base-classes/services/batches/batches-cronjobs-custom-execution.service.ts +148 -0
  1349. package/src/base-classes/services/batches/batches-cronjobs-executor.backend.service.ts +115 -0
  1350. package/src/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.ts +58 -0
  1351. package/src/base-classes/services/controllers/__tests__/controller-request-validation.utils.test.ts +292 -0
  1352. package/src/base-classes/services/controllers/__tests__/controller-resource-file-upload-routes.test.ts +1335 -0
  1353. package/src/base-classes/services/controllers/__tests__/controller-resource.version-conflict.test.ts +372 -0
  1354. package/src/base-classes/services/controllers/abstract-controller.backend.service.ts +302 -0
  1355. package/src/base-classes/services/controllers/controller-resource.backend.service.ts +1833 -0
  1356. package/src/base-classes/services/controllers/controllers-registry-handler.backend.service.ts +494 -0
  1357. package/src/base-classes/services/controllers/validate-field-handler.backend.service.ts +613 -0
  1358. package/src/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.ts +31 -0
  1359. package/src/base-classes/services/repositories/__tests__/repository-resource.singleton-read.test.ts +50 -0
  1360. package/src/base-classes/services/repositories/postgresql-resource-repository.backend.service.ts +1207 -0
  1361. package/src/base-classes/services/repositories/repositories-registry-handler.backend.service.ts +804 -0
  1362. package/src/base-classes/services/repositories/repository-resource.backend.service.ts +2186 -0
  1363. package/src/base-classes/services/resource-operations-helper.backend.service.ts +468 -0
  1364. package/src/base-classes/services/services/__tests__/mock-services-registry-handler.service.ts +21 -0
  1365. package/src/base-classes/services/services/__tests__/services-registry-handler.notifications.test.ts +65 -0
  1366. package/src/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.ts +305 -0
  1367. package/src/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.ts +224 -0
  1368. package/src/base-classes/services/services/resource-operation-custom-implementation.factory.backend.ts +331 -0
  1369. package/src/base-classes/services/services/services-registry-handler.backend.service.ts +6288 -0
  1370. package/src/base-classes/utils/backend-type-utils.ts +64 -0
  1371. package/src/billing/services/back-office/__tests__/billing-feature-sync.backend.service.test.ts +132 -0
  1372. package/src/billing/services/back-office/__tests__/billing-state.backend.service.test.ts +245 -0
  1373. package/src/billing/services/back-office/__tests__/product-catalog-sync.backend.service.test.ts +238 -0
  1374. package/src/billing/services/back-office/abstract-billing.backend.service.ts +89 -0
  1375. package/src/billing/services/back-office/billing-feature-sync.backend.service.ts +473 -0
  1376. package/src/billing/services/back-office/billing-state.backend.service.ts +348 -0
  1377. package/src/billing/services/back-office/product-catalog-sync.backend.service.ts +415 -0
  1378. package/src/billing/services/back-office/usage-metering.backend.service.ts +326 -0
  1379. package/src/billing/services/billing.utils.ts +26 -0
  1380. package/src/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.ts +342 -0
  1381. package/src/billing/services/custom-impl/billing-custom-impl-utils.backend.ts +274 -0
  1382. package/src/billing/services/custom-impl/billing-custom-implementations.backend.ts +236 -0
  1383. package/src/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.ts +133 -0
  1384. package/src/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.ts +242 -0
  1385. package/src/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.ts +434 -0
  1386. package/src/billing/services/webhooks/billing-webhook-adapter.backend.service.ts +70 -0
  1387. package/src/billing/services/webhooks/billing-webhook-capability-handler.backend.service.ts +46 -0
  1388. package/src/billing/services/webhooks/billing-webhook-event-router.backend.service.ts +727 -0
  1389. package/src/billing/testing/billing-test-fixtures.ts +296 -0
  1390. package/src/billing/testing/mock-billing-provider.ts +548 -0
  1391. package/src/charts/controllers/__tests__/chart.backend.controller.test.ts +403 -0
  1392. package/src/charts/controllers/chart.backend.controller.ts +238 -0
  1393. package/src/charts/services/__tests__/chart-registry.backend.service.test.ts +120 -0
  1394. package/src/charts/services/chart-registry.backend.service.ts +109 -0
  1395. package/src/compliance/audit-trails/audit-logs.custom-impl.backend.service.ts +104 -0
  1396. package/src/compliance/audit-trails/services/__tests__/mock-audit-logs.service.ts +48 -0
  1397. package/src/compliance/audit-trails/services/audit-event-dispatcher.backend.service.ts +325 -0
  1398. package/src/compliance/audit-trails/services/audit-logs.backend.service.ts +1313 -0
  1399. package/src/compliance/audit-trails/services/siem-webhook-delivery.backend.service.ts +542 -0
  1400. package/src/compliance/index.ts +1 -0
  1401. package/src/config/custom/application-config-controller.backend.service.ts +119 -0
  1402. package/src/config/models/__tests__/app-config-secrets.boundaries.test.ts +56 -0
  1403. package/src/config/models/__tests__/app-config.backend-authored.definitions.test.ts +286 -0
  1404. package/src/config/models/app-config-secrets.backend.schemas.ts +154 -0
  1405. package/src/config/models/app-config.backend-authored.definitions.ts +165 -0
  1406. package/src/config/models/app-config.backend.schemas.ts +614 -0
  1407. package/src/config/models/app-env-config.backend.schemas.ts +135 -0
  1408. package/src/config/models/config-mutation-boundary.utils.ts +76 -0
  1409. package/src/config/models/postgresql-env-config.backend.schemas.ts +126 -0
  1410. package/src/config/models/runtime-topology.backend.contracts.ts +42 -0
  1411. package/src/config/services/__tests__/app-configuration-loader.backend.service.test.ts +118 -0
  1412. package/src/config/services/__tests__/app-configuration.backend.service.test.ts +40 -0
  1413. package/src/config/services/__tests__/app-configuration.backend.utils.test.ts +72 -0
  1414. package/src/config/services/__tests__/application-startup-config-validator.backend.service.test.ts +404 -0
  1415. package/src/config/services/__tests__/mock-app-configuration.service.ts +131 -0
  1416. package/src/config/services/app-configuration-loader.backend.service.ts +443 -0
  1417. package/src/config/services/app-configuration.backend.service.ts +570 -0
  1418. package/src/config/services/app-configuration.backend.utils.ts +94 -0
  1419. package/src/config/services/application-startup-config-validator.backend.service.ts +611 -0
  1420. package/src/databases/models/aggregation.backend.schemas.ts +174 -0
  1421. package/src/databases/models/databases.backend.schemas.ts +70 -0
  1422. package/src/databases/models/filter.backend.schemas.ts +101 -0
  1423. package/src/databases/models/sql.backend.schemas.ts +111 -0
  1424. package/src/databases/models/transaction.shared.schemas.ts +172 -0
  1425. package/src/databases/services/__tests__/mock-mongo-transaction-registry.service.ts +90 -0
  1426. package/src/databases/services/__tests__/mock-mongodb.service.ts +86 -0
  1427. package/src/databases/services/__tests__/mock-mongoose-model.service.ts +411 -0
  1428. package/src/databases/services/__tests__/mock-redis.service.ts +72 -0
  1429. package/src/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.ts +41 -0
  1430. package/src/databases/services/__tests__/mongo-aggregation-compiler.test.ts +918 -0
  1431. package/src/databases/services/__tests__/postgresql-filter.backend.service.test.ts +180 -0
  1432. package/src/databases/services/__tests__/sql-hybrid-transform.test.ts +73 -0
  1433. package/src/databases/services/aggregation/__tests__/aggregation-authorization.backend.service.test.ts +444 -0
  1434. package/src/databases/services/aggregation/__tests__/aggregation-query.backend.service.test.ts +150 -0
  1435. package/src/databases/services/aggregation/__tests__/computed-measure-evaluator.test.ts +525 -0
  1436. package/src/databases/services/aggregation/__tests__/field-access-validator.test.ts +458 -0
  1437. package/src/databases/services/aggregation/__tests__/time-series-densifier.test.ts +631 -0
  1438. package/src/databases/services/aggregation/__tests__/window-function-processor.test.ts +598 -0
  1439. package/src/databases/services/aggregation/aggregation-authorization.backend.service.ts +516 -0
  1440. package/src/databases/services/aggregation/aggregation-query.backend.service.ts +514 -0
  1441. package/src/databases/services/aggregation/computed-measure-evaluator.backend.service.ts +196 -0
  1442. package/src/databases/services/aggregation/field-access-validator.backend.service.ts +225 -0
  1443. package/src/databases/services/aggregation/time-series-densifier.backend.service.ts +389 -0
  1444. package/src/databases/services/aggregation/topn-processor.backend.service.ts +221 -0
  1445. package/src/databases/services/aggregation/window-function-processor.backend.service.ts +301 -0
  1446. package/src/databases/services/db-utils.ts +96 -0
  1447. package/src/databases/services/mongo-aggregation.backend.service.ts +762 -0
  1448. package/src/databases/services/mongodb.service.ts +736 -0
  1449. package/src/databases/services/postgresql-aggregation.backend.service.ts +794 -0
  1450. package/src/databases/services/postgresql-database.backend.service.ts +288 -0
  1451. package/src/databases/services/postgresql-filter.backend.service.ts +673 -0
  1452. package/src/databases/services/redis.service.ts +531 -0
  1453. package/src/databases/services/zod-to-mongoose-schema-convertor.backend.service.ts +2486 -0
  1454. package/src/databases/services/zod-to-sql-hybrid-schema.planner.ts +312 -0
  1455. package/src/errors/services/__tests__/error-builder.backend.service.test.ts +31 -0
  1456. package/src/errors/services/__tests__/error-handler.backend.service.test.ts +82 -0
  1457. package/src/errors/services/__tests__/mock-error-builder.service.ts +288 -0
  1458. package/src/errors/services/error-builder.backend.service.ts +403 -0
  1459. package/src/errors/services/error-handler.backend.service.ts +236 -0
  1460. package/src/errors/services/rate-limit.backend.service.ts +45 -0
  1461. package/src/external-providers/models/external-providers.backend.schemas.ts +243 -0
  1462. package/src/external-providers/services/__tests__/external-providers-registry.backend.service.test.ts +136 -0
  1463. package/src/external-providers/services/__tests__/feature-bindings.backend.service.test.ts +40 -0
  1464. package/src/external-providers/services/__tests__/mock-external-providers-registry.service.ts +33 -0
  1465. package/src/external-providers/services/__tests__/mock-lazy-provider-registry.service.ts +45 -0
  1466. package/src/external-providers/services/external-api-handler.backend.service.ts +19 -0
  1467. package/src/external-providers/services/external-providers-registry.backend.service.ts +534 -0
  1468. package/src/external-providers/services/feature-bindings.backend.service.ts +422 -0
  1469. package/src/external-providers/services/lazy-provider-registry.backend.service.ts +486 -0
  1470. package/src/features/__tests__/feature-builders.test.ts +152 -0
  1471. package/src/features/controllers/__tests__/features.backend.controller.test.ts +173 -0
  1472. package/src/features/controllers/features.backend.controller.ts +200 -0
  1473. package/src/features/services/__tests__/feature-definition-registry.backend.service.test.ts +152 -0
  1474. package/src/features/services/__tests__/feature-gate.test.ts +484 -0
  1475. package/src/features/services/__tests__/feature-resolution.backend.service.test.ts +203 -0
  1476. package/src/features/services/__tests__/mock-capability-bindings.service.ts +26 -0
  1477. package/src/features/services/__tests__/mock-feature-definition-registry.service.ts +56 -0
  1478. package/src/features/services/__tests__/mock-feature-resolution.service.ts +36 -0
  1479. package/src/features/services/feature-definition-registry.backend.service.ts +537 -0
  1480. package/src/features/services/feature-gate.backend.service.ts +522 -0
  1481. package/src/features/services/feature-resolution.backend.service.ts +652 -0
  1482. package/src/features/testing/feature-test-utils.ts +200 -0
  1483. package/src/files/batches/__tests__/files-cleanup.batch.backend.service.test.ts +186 -0
  1484. package/src/files/batches/files-cleanup.batch.backend.service.ts +259 -0
  1485. package/src/files/constraints/file-analyzers.types.ts +85 -0
  1486. package/src/files/constraints/file-constraint-resolver-chain.backend.service.ts +99 -0
  1487. package/src/files/constraints/file-constraint.types.ts +104 -0
  1488. package/src/files/constraints/file-validation.backend.service.ts +359 -0
  1489. package/src/files/constraints/resource-field-constraint-resolver.backend.service.ts +138 -0
  1490. package/src/files/controllers/__tests__/file.controller.behavior.test.ts +655 -0
  1491. package/src/files/controllers/file.controller.ts +1030 -0
  1492. package/src/files/handlers/__tests__/resource-file-upload-handler.backend.service.test.ts +392 -0
  1493. package/src/files/handlers/resource-file-upload-handler.backend.service.ts +605 -0
  1494. package/src/files/rag/weaviate-vector-store.backend.service.ts +271 -0
  1495. package/src/files/scanning/clamav-scanner.backend.service.ts +214 -0
  1496. package/src/files/scanning/file-scan.types.ts +17 -0
  1497. package/src/files/scanning/yara-scanner.backend.service.ts +212 -0
  1498. package/src/files/services/__tests__/file-field-detection.backend.service.test.ts +91 -0
  1499. package/src/files/services/__tests__/file-operation-handler.backend.service.test.ts +272 -0
  1500. package/src/files/services/__tests__/file-population.backend.service.test.ts +120 -0
  1501. package/src/files/services/__tests__/file-scanning.backend.service.test.ts +163 -0
  1502. package/src/files/services/__tests__/files.backend.service.test.ts +885 -0
  1503. package/src/files/services/__tests__/mock-file-field-detection.service.ts +43 -0
  1504. package/src/files/services/__tests__/mock-file-operation-handler.service.ts +113 -0
  1505. package/src/files/services/__tests__/mock-file-repository.service.ts +104 -0
  1506. package/src/files/services/file-field-detection.backend.service.ts +156 -0
  1507. package/src/files/services/file-operation-handler.backend.service.ts +861 -0
  1508. package/src/files/services/file-population.backend.service.ts +485 -0
  1509. package/src/files/services/file-rag-indexing.backend.service.ts +229 -0
  1510. package/src/files/services/file-scanning.backend.service.ts +373 -0
  1511. package/src/files/services/file-text-extraction.backend.service.ts +193 -0
  1512. package/src/files/services/files.backend.service.ts +1356 -0
  1513. package/src/files/storage/file-storage-path-resolver.backend.service.ts +289 -0
  1514. package/src/files/storage/file-storage-provider.types.ts +188 -0
  1515. package/src/files/storage/file-storage-router.backend.service.ts +172 -0
  1516. package/src/files/storage/local-directory-storage-provider.backend.service.ts +417 -0
  1517. package/src/files/storage/wildo-managed-storage-provider.backend.service.ts +530 -0
  1518. package/src/files/utils/__tests__/file-field-schema-path.backend.utils.test.ts +44 -0
  1519. package/src/files/utils/__tests__/file-uploader.utils.test.ts +57 -0
  1520. package/src/files/utils/__tests__/file-validation.utils.test.ts +559 -0
  1521. package/src/files/utils/file-field-schema-path.backend.utils.ts +385 -0
  1522. package/src/files/utils/file-upload.utils.ts +146 -0
  1523. package/src/files/utils/file-uploader.utils.ts +65 -0
  1524. package/src/files/utils/file-validation.utils.ts +753 -0
  1525. package/src/flows-actors/agent-catalogs.backend.ts +427 -0
  1526. package/src/flows-actors/controllers/flows-actors.controller.ts +91 -0
  1527. package/src/flows-actors/models/agent-catalogs.backend.definitions.ts +430 -0
  1528. package/src/flows-actors/models/agent-facets.backend.definitions.ts +120 -0
  1529. package/src/flows-actors/models/agents.backend.definitions.ts +4 -0
  1530. package/src/flows-actors/models/core-facets.backend.definitions.ts +348 -0
  1531. package/src/flows-actors/models/flows-actors.backend.definitions.ts +13 -0
  1532. package/src/flows-actors/models/flows-actors.backend.schemas.ts +44 -0
  1533. package/src/flows-actors/services/__tests__/agent-facets-catalogs.test.ts +544 -0
  1534. package/src/flows-actors/services/__tests__/agents.backend.service.cli-runtime.test.ts +234 -0
  1535. package/src/flows-actors/services/actors-system.backend.service.ts +270 -0
  1536. package/src/flows-actors/services/agent-facets.backend.service.ts +350 -0
  1537. package/src/flows-actors/services/agents.backend.service.ts +2730 -0
  1538. package/src/flows-actors/services/context-curation.backend.service.ts +203 -0
  1539. package/src/flows-actors/services/flows-actors-registry.service.ts +374 -0
  1540. package/src/flows-actors/services/flows.backend.services.ts +237 -0
  1541. package/src/flows-actors/services/prompt-compiler.backend.service.ts +734 -0
  1542. package/src/flows-actors/utils/__tests__/cli-runtime-operation-support.backend.utils.test.ts +95 -0
  1543. package/src/flows-actors/utils/cli-runtime-operation-support.backend.utils.ts +87 -0
  1544. package/src/flows-actors/utils/cli-runtime-runner.backend.utils.ts +171 -0
  1545. package/src/flows-actors/utils/flows-actors-frontend-extractor.utils.ts +63 -0
  1546. package/src/flows-actors/utils/prompt-ir-adapters.backend.utils.ts +257 -0
  1547. package/src/guidance/batches/dormancy-detection.batch.backend.service.ts +126 -0
  1548. package/src/guidance/services/__tests__/guidance-trigger-evaluator.backend.service.test.ts +49 -0
  1549. package/src/guidance/services/__tests__/lifecycle-evaluator.backend.service.test.ts +85 -0
  1550. package/src/guidance/services/__tests__/milestone-definition-registry.backend.service.test.ts +211 -0
  1551. package/src/guidance/services/__tests__/milestone-evaluator.backend.service.test.ts +561 -0
  1552. package/src/guidance/services/guidance-trigger-evaluator.backend.service.ts +151 -0
  1553. package/src/guidance/services/lifecycle-custom-implementations.backend.ts +139 -0
  1554. package/src/guidance/services/lifecycle-evaluator.backend.service.ts +908 -0
  1555. package/src/guidance/services/milestone-condition-registry.backend.service.ts +57 -0
  1556. package/src/guidance/services/milestone-definition-registry.backend.service.ts +265 -0
  1557. package/src/guidance/services/milestone-evaluator.backend.service.ts +611 -0
  1558. package/src/i18n/controllers/i18n-controller.backend.service.ts +227 -0
  1559. package/src/i18n/services/i18n.backend.service.ts +88 -0
  1560. package/src/index.ts +286 -0
  1561. package/src/inject/models/container.ts +586 -0
  1562. package/src/inject/models/service-types.ts +488 -0
  1563. package/src/monitoring/analytics/controllers/analytics.backend.controller.ts +114 -0
  1564. package/src/monitoring/analytics/services/value-moment-engine.backend.service.ts +53 -0
  1565. package/src/monitoring/analytics/services/value-moment-handler-registry.backend.service.ts +38 -0
  1566. package/src/monitoring/logger/middleware/logging.middleware.ts +40 -0
  1567. package/src/monitoring/logger/models/logger.backend.schemas.ts +56 -0
  1568. package/src/monitoring/logger/services/__tests__/mock-logger.service.ts +49 -0
  1569. package/src/monitoring/logger/services/logger.service.ts +214 -0
  1570. package/src/monitoring/observability/middleware/metrics.middleware.ts +205 -0
  1571. package/src/monitoring/observability/middleware/telemetry.middleware.ts +188 -0
  1572. package/src/monitoring/observability/middleware/tracing.middleware.ts +265 -0
  1573. package/src/monitoring/observability/models/observability.backend.schemas.ts +96 -0
  1574. package/src/monitoring/observability/services/instrumentations/custom.instrumentations.ts +132 -0
  1575. package/src/monitoring/observability/services/metrics.service.ts +266 -0
  1576. package/src/monitoring/observability/services/telemetry.service.ts +157 -0
  1577. package/src/monitoring/observability/services/tracer.service.ts +334 -0
  1578. package/src/notifications/email/components/email-components.ts +341 -0
  1579. package/src/notifications/email/models/email-context-provider.interface.ts +107 -0
  1580. package/src/notifications/email/models/email-template-definition.ts +74 -0
  1581. package/src/notifications/email/models/email-template.actors-system.backend.definitions.ts +80 -0
  1582. package/src/notifications/email/models/email.backend.scheamas.ts +0 -0
  1583. package/src/notifications/email/services/email-batch-send.batch.backend.service.ts +236 -0
  1584. package/src/notifications/email/services/email-context-provider-registry.backend.service.ts +157 -0
  1585. package/src/notifications/email/services/email-renderer.backend.service.ts +274 -0
  1586. package/src/notifications/email/services/email-template-compiler.backend.service.ts +136 -0
  1587. package/src/notifications/email/services/email-template-generation.backend.service.ts +811 -0
  1588. package/src/notifications/email/services/email-template-registry.backend.service.ts +166 -0
  1589. package/src/notifications/email/services/email-template-sandbox.backend.service.ts +255 -0
  1590. package/src/notifications/email/services/email-template-validator.backend.service.ts +229 -0
  1591. package/src/notifications/email/services/email.backend.service.ts +429 -0
  1592. package/src/notifications/email/utils/color-conversion.utils.ts +142 -0
  1593. package/src/notifications/email/utils/interpolate-email-label.utils.ts +16 -0
  1594. package/src/notifications/email/utils/zod-to-typescript.utils.ts +352 -0
  1595. package/src/notifications/services/__tests__/notifications-dispatcher.operation-semantics.test.ts +773 -0
  1596. package/src/notifications/services/__tests__/notifications-dispatcher.websocket-integration.test.ts +173 -0
  1597. package/src/notifications/services/notification-badge.backend.service.ts +412 -0
  1598. package/src/notifications/services/notifications-dispatcher.backend.service.ts +1696 -0
  1599. package/src/notifications/sms/services/sms.backend.service.ts +283 -0
  1600. package/src/notifications/webhooks/controllers/webhook-auto-controller.backend.service.ts +220 -0
  1601. package/src/notifications/webhooks/services/polymorphic-lookup.backend.service.ts +131 -0
  1602. package/src/notifications/webhooks/services/webhook-handler.backend.service.ts +481 -0
  1603. package/src/organizations/services/__tests__/org-creation-on-registration.backend.utils.test.ts +193 -0
  1604. package/src/organizations/services/__tests__/org-member-roles-validation.backend.utils.test.ts +101 -0
  1605. package/src/organizations/services/__tests__/organization-custom-implementation.backend.service.test.ts +113 -0
  1606. package/src/organizations/services/__tests__/scim-provisioning-gate.backend.utils.test.ts +94 -0
  1607. package/src/organizations/services/__tests__/user-org-type-grant.backend.utils.test.ts +164 -0
  1608. package/src/organizations/services/__tests__/user-type-revocation-on-org-leave.backend.utils.test.ts +161 -0
  1609. package/src/organizations/services/org-creation-on-registration.backend.utils.ts +119 -0
  1610. package/src/organizations/services/org-member-roles-validation.backend.utils.ts +51 -0
  1611. package/src/organizations/services/organization-custom-implementation.backend.service.ts +106 -0
  1612. package/src/organizations/services/organization-member-custom-implementation.backend.service.ts +150 -0
  1613. package/src/organizations/services/scim-provisioning-gate.backend.utils.ts +34 -0
  1614. package/src/organizations/services/user-org-type-grant.backend.utils.ts +49 -0
  1615. package/src/organizations/services/user-type-revocation-on-org-leave.backend.utils.ts +102 -0
  1616. package/src/queue/adapters/rabbitmq-adapter.backend.service.ts +494 -0
  1617. package/src/queue/apps-crontabs-manager.backend.service.ts +258 -0
  1618. package/src/queue/cron-job-sync.backend.service.ts +184 -0
  1619. package/src/queue/domain-queue-consumer.backend.service.ts +333 -0
  1620. package/src/queue/job-completion-registry.backend.service.ts +342 -0
  1621. package/src/queue/job-consumer.backend.service.ts +646 -0
  1622. package/src/queue/job-executor.backend.service.ts +315 -0
  1623. package/src/queue/job-payload-storage.backend.service.ts +297 -0
  1624. package/src/queue/job-status-tracking.backend.service.ts +376 -0
  1625. package/src/queue/queue-monitoring.backend.service.ts +333 -0
  1626. package/src/queue/queue-worker-initializer.backend.service.ts +179 -0
  1627. package/src/queue/queue.backend.service.ts +530 -0
  1628. package/src/queue/scheduled-message-verifier.backend.service.ts +228 -0
  1629. package/src/queue/worker-shutdown-manager.backend.service.ts +298 -0
  1630. package/src/requests/models/api-routes.backend.defintions.ts +45 -0
  1631. package/src/requests/models/requests.backend.schemas.ts +73 -0
  1632. package/src/requests/service/__tests__/websocket.service.auth-refresh.test.ts +361 -0
  1633. package/src/requests/service/__tests__/websocket.service.resource-room-validation.test.ts +234 -0
  1634. package/src/requests/service/__tests__/websocket.service.variant-authorization.test.ts +94 -0
  1635. package/src/requests/service/platform-mutualized-handler.backend.service.ts +19 -0
  1636. package/src/requests/service/platform-requests.backend.utils.ts +54 -0
  1637. package/src/requests/service/remote-client-base.backend.service.ts +485 -0
  1638. package/src/requests/service/serverless-services-handler.backend.service.ts +19 -0
  1639. package/src/requests/service/websocket.service.ts +2844 -0
  1640. package/src/resources/models/custom-service-implementations.backend.definition.ts +22 -0
  1641. package/src/resources/models/index.ts +7 -0
  1642. package/src/resources/models/resources-operations.backend.definitions.ts +9 -0
  1643. package/src/resources/models/resources-relationships.backend.definitions.ts +30 -0
  1644. package/src/resources/models/resources-types.backend.schemas.ts +14 -0
  1645. package/src/resources/models/resources.backend.schemas.ts +6 -0
  1646. package/src/resources/models/virtual-fields.backend.types.ts +132 -0
  1647. package/src/resources/services/__tests__/mock-resources-registry.service.ts +69 -0
  1648. package/src/resources/services/__tests__/resource-id.backend.service.test.ts +69 -0
  1649. package/src/resources/services/resource-context.backend.service.ts +1107 -0
  1650. package/src/resources/services/resource-id.backend.service.ts +280 -0
  1651. package/src/resources/services/resource-population.backend.service.ts +761 -0
  1652. package/src/resources/services/resources-registry.backend.service.ts +1126 -0
  1653. package/src/resources/services/virtual-fields.backend.service.ts +303 -0
  1654. package/src/runtime/__tests__/execution-context-creator.backend.service.test.ts +469 -0
  1655. package/src/runtime/controllers/health-controller.backend.service.ts +297 -0
  1656. package/src/runtime/domain-module.backend.definitions.test.ts +83 -0
  1657. package/src/runtime/domain-module.backend.definitions.ts +161 -0
  1658. package/src/runtime/models/execution-context.backend.schemas.ts +456 -0
  1659. package/src/runtime/models/runtime.backend.schemas.ts +82 -0
  1660. package/src/runtime/services/execution-context-creator.backend.service.ts +2102 -0
  1661. package/src/runtime/services/execution-context-handler.backend.service.ts +224 -0
  1662. package/src/runtime/services/health-readiness-contributor.backend.interface.ts +11 -0
  1663. package/src/runtime/services/http-server.backend.service.ts +870 -0
  1664. package/src/runtime/services/start-application.backend.service.ts +1109 -0
  1665. package/src/runtime/testing/execution-context-test-fixtures.ts +14 -0
  1666. package/src/runtime/testing/mock-execution-context-creator.service.ts +46 -0
  1667. package/src/runtime/utils/scan-default-exports.backend.utils.ts +247 -0
  1668. package/src/security/authentications/__tests__/auth-registration.test.ts +338 -0
  1669. package/src/security/authentications/__tests__/authentication-controller.test.ts +31 -0
  1670. package/src/security/authentications/__tests__/authentication-orchestrator.test.ts +27 -0
  1671. package/src/security/authentications/__tests__/saml-assertion-validator.test.ts +631 -0
  1672. package/src/security/authentications/__tests__/saml-authentication.test.ts +126 -0
  1673. package/src/security/authentications/__tests__/saml-integration-test-helpers.test.ts +234 -0
  1674. package/src/security/authentications/__tests__/saml-metadata.test.ts +185 -0
  1675. package/src/security/authentications/__tests__/saml-replay-guard.test.ts +99 -0
  1676. package/src/security/authentications/__tests__/saml-sso-flow.integration.test.ts +355 -0
  1677. package/src/security/authentications/__tests__/saml-test-fixtures.test.ts +433 -0
  1678. package/src/security/authentications/__tests__/saml-test-parser.test.ts +117 -0
  1679. package/src/security/authentications/__tests__/sso-connection-custom-ops.integration.test.ts +236 -0
  1680. package/src/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.ts +71 -0
  1681. package/src/security/authentications/controllers/auth-method-management-controller.backend.service.ts +205 -0
  1682. package/src/security/authentications/controllers/authentication-controller.backend.service.ts +2712 -0
  1683. package/src/security/authentications/models/auth-constants.backend.ts +141 -0
  1684. package/src/security/authentications/models/authentications.backend.schemas.ts +106 -0
  1685. package/src/security/authentications/models/jwt.backend.schemas.ts +107 -0
  1686. package/src/security/authentications/models/oauth2-connection.backend.schemas.ts +196 -0
  1687. package/src/security/authentications/models/saml-authentication.backend.schemas.ts +124 -0
  1688. package/src/security/authentications/models/sso-connection.backend.schemas.ts +104 -0
  1689. package/src/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.ts +73 -0
  1690. package/src/security/authentications/services/__tests__/mock-auth-token-issuer.service.ts +46 -0
  1691. package/src/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.ts +40 -0
  1692. package/src/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.ts +67 -0
  1693. package/src/security/authentications/services/admin-config/auth-organization-configuration.service.ts +424 -0
  1694. package/src/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.ts +244 -0
  1695. package/src/security/authentications/services/admin-config/domain-verification.backend.service.ts +215 -0
  1696. package/src/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.ts +509 -0
  1697. package/src/security/authentications/services/admin-config/oidc-discovery.backend.service.ts +250 -0
  1698. package/src/security/authentications/services/anonymous-session.backend.service.ts +442 -0
  1699. package/src/security/authentications/services/auth-credential-verifier.backend.service.ts +147 -0
  1700. package/src/security/authentications/services/auth-execution-context-factory.backend.service.ts +132 -0
  1701. package/src/security/authentications/services/auth-methods/auth-method-management.backend.service.ts +532 -0
  1702. package/src/security/authentications/services/auth-methods/auth-mfa.backend.service.ts +141 -0
  1703. package/src/security/authentications/services/auth-methods/auth-password-reset.backend.service.ts +215 -0
  1704. package/src/security/authentications/services/auth-methods/auth-phone-verification.backend.service.ts +136 -0
  1705. package/src/security/authentications/services/auth-methods/auth-registration.backend.service.ts +994 -0
  1706. package/src/security/authentications/services/auth-methods/oauth2-authentication.backend.service.ts +1210 -0
  1707. package/src/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.ts +903 -0
  1708. package/src/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.ts +791 -0
  1709. package/src/security/authentications/services/auth-methods/saml-authentication.backend.service.ts +1727 -0
  1710. package/src/security/authentications/services/auth-methods/saml-metadata.backend.service.ts +432 -0
  1711. package/src/security/authentications/services/auth-methods/saml-replay-guard.backend.service.ts +90 -0
  1712. package/src/security/authentications/services/auth-methods/webauthn.backend.service.ts +393 -0
  1713. package/src/security/authentications/services/auth-session-store.backend.service.ts +211 -0
  1714. package/src/security/authentications/services/auth-token-issuer.backend.service.ts +496 -0
  1715. package/src/security/authentications/services/authentication-orchestrator.backend.service.ts +3156 -0
  1716. package/src/security/authentications/services/custom-impls/auth-custom-implementations.backend.ts +88 -0
  1717. package/src/security/authentications/services/custom-impls/auth-policy.custom-impl.backend.service.ts +54 -0
  1718. package/src/security/authentications/services/custom-impls/scim-provisioning-config.custom-impl.backend.service.ts +167 -0
  1719. package/src/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.ts +136 -0
  1720. package/src/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.ts +123 -0
  1721. package/src/security/authentications/services/custom-impls/siem-export-config.custom-impl.backend.service.ts +161 -0
  1722. package/src/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.ts +185 -0
  1723. package/src/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.ts +792 -0
  1724. package/src/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.ts +62 -0
  1725. package/src/security/authentications/services/utils/auth-controller.utils.ts +51 -0
  1726. package/src/security/authentications/services/utils/auth-credential-ops.backend.service.ts +202 -0
  1727. package/src/security/authentications/services/utils/auth-response-helper.backend.service.ts +38 -0
  1728. package/src/security/authentications/services/utils/auth-user-lookup.backend.service.ts +128 -0
  1729. package/src/security/authentications/services/utils/saml-java-availability.ts +64 -0
  1730. package/src/security/authorizations/__tests__/authorizations.backend.service.test.ts +82 -0
  1731. package/src/security/authorizations/services/authorizations.backend.service.ts +934 -0
  1732. package/src/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.ts +168 -0
  1733. package/src/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.ts +92 -0
  1734. package/src/security/consumable-tokens/models/consumable-tokens.shared.schemas.ts +86 -0
  1735. package/src/security/consumable-tokens/models/index.ts +3 -0
  1736. package/src/security/consumable-tokens/services/__tests__/mock-consumable-token.service.ts +63 -0
  1737. package/src/security/consumable-tokens/services/consumable-token.backend.service.ts +568 -0
  1738. package/src/security/jwt/services/auth-jwt-guard.backend.service.ts +137 -0
  1739. package/src/security/jwt/services/jwt.backend.service.ts +397 -0
  1740. package/src/security/scim/__tests__/scim-filter-parser.test.ts +121 -0
  1741. package/src/security/scim/controllers/scim.backend.controller.ts +1066 -0
  1742. package/src/security/scim/models/scim-protocol.backend.schemas.ts +258 -0
  1743. package/src/security/scim/utils/scim-filter-parser.ts +289 -0
  1744. package/src/security/scim/utils/scim-response-formatter.ts +122 -0
  1745. package/src/testing.ts +30 -0
  1746. package/src/types/xmldom.d.ts +9 -0
  1747. package/src/users/services/user-self-custom-implementations.backend.ts +62 -0
@@ -0,0 +1,1727 @@
1
+ /**
2
+ * SAML Authentication Service — SSO + Single Logout
3
+ *
4
+ * Orchestrates the full SAML 2.0 authentication and logout flows:
5
+ * - `initiateLogin()` — generates AuthnRequest, creates state token, returns IdP redirect URL
6
+ * - `handleACS()` — processes SAML Response, validates assertion, provisions user, issues tokens
7
+ * - `handleIdPInitiatedSLO()` — processes IdP-initiated LogoutRequest (GET + POST)
8
+ * - `initiateSPLogout()` — builds LogoutRequest for SP-initiated SLO
9
+ * - `handleSLOResponse()` — processes IdP's LogoutResponse to SP-initiated SLO
10
+ *
11
+ * Parallels `OAuth2AuthenticationBackendService` for the OIDC flow.
12
+ * SAML is enterprise-only.
13
+ *
14
+ * Key design decisions:
15
+ * - D2: samlify SP/IdP objects created per-request from connection config (not cached)
16
+ * - D3: Request correlation via ConsumableToken with SAML_AUTH_STATE type
17
+ * - D8: wantMessageSigned hardcoded to true
18
+ * - D14: Hybrid SP-initiated + IdP-initiated connection resolution
19
+ * - D15: providerUserId = `${idpEntityId}|${nameId}`
20
+ * - TRAP 12: Uses `issueTokensForUser(entityId, false)` for JWT issuance
21
+ * - Token delivery via AUTH_CODE_EXCHANGE consumable token (never in URL query params)
22
+ * - SLO uses dual Redis mappings: forward (userId→sessionIndex) + reverse (sessionIndex→userId)
23
+ */
24
+
25
+ import 'reflect-metadata';
26
+ import { createRequire } from 'module';
27
+ import { injectable, inject, optional } from 'inversify';
28
+ import { createHash } from 'crypto';
29
+
30
+ const require = createRequire(import.meta.url);
31
+ import { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';
32
+ import { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';
33
+ import { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';
34
+ import { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';
35
+ import type { ServicesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/services/services-registry-handler.backend.service';
36
+ import { AuthUserLookupBackendService } from '~wildo-backend-lib/security/authentications/services/utils/auth-user-lookup.backend.service';
37
+ import { AuthExecutionContextFactoryBackendService } from '~wildo-backend-lib/security/authentications/services/auth-execution-context-factory.backend.service';
38
+ import { ConsumableTokenBackendService } from '~wildo-backend-lib/security/consumable-tokens/services/consumable-token.backend.service';
39
+ import { SAMLAssertionValidatorBackendService } from './saml-assertion-validator.backend.service';
40
+ import { SAMLMetadataBackendService } from './saml-metadata.backend.service';
41
+ import { DomainToOrgLookupBackendService } from '~wildo-backend-lib/security/authentications/services/admin-config/domain-to-org-lookup.backend.service';
42
+ import { EnterpriseUserProvisioningBackendService } from '~wildo-backend-lib/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service';
43
+ import { AuthControllerUtils } from '~wildo-backend-lib/security/authentications/services/utils/auth-controller.utils';
44
+ import { AuditLogsBackendService } from '~wildo-backend-lib/compliance/audit-trails/services/audit-logs.backend.service';
45
+ import { AuthTokenIssuerBackendService } from '~wildo-backend-lib/security/authentications/services/auth-token-issuer.backend.service';
46
+ import { RedisService } from '~wildo-backend-lib/databases/services/redis.service';
47
+ import type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';
48
+ import type { SAMLResolvedConnection, SAMLStateMetadata, SAMLAssertionData } from '~wildo-backend-lib/security/authentications/models/saml-authentication.backend.schemas';
49
+ import type { NormalizedUserProfile } from '~wildo-backend-lib/security/authentications/models/sso-connection.backend.schemas';
50
+ import type { SamlifyParsedResponse } from './saml-assertion-validator.backend.service';
51
+ import {
52
+ checkJavaAvailability,
53
+ isTestEnvironment,
54
+ } from '~wildo-backend-lib/security/authentications/services/utils/saml-java-availability';
55
+ import { AuthSource, SsoProtocol } from '~wildo-backend-lib/security/authentications/models/auth-constants.backend';
56
+ import {
57
+ CoreConsumableTokenTypes,
58
+ ConsumableToken_ConsumptionMode,
59
+ CoreResourceType,
60
+ CoreAuditableEventType,
61
+ ResourceOperationRiskLevel,
62
+ ErrorType,
63
+ ErrorCustomMessageReference,
64
+ isWildoBackendError,
65
+ SsoConnectionType,
66
+ AuthScopeType,
67
+ UserStatus,
68
+ } from '@wildo-ai/saas-models';
69
+ import type { SsoConnectionBase, User, UserIdentityLink } from '@wildo-ai/saas-models';
70
+ import { DurationUnit } from '@wildo-ai/zod-decorators';
71
+
72
+ /** SLO parse result from samlify's sp.parseLogoutRequest — extract shape varies by binding */
73
+ interface SAMLSlOParseResult {
74
+ extract?: {
75
+ logoutRequest?: { sessionIndex?: string; nameID?: string; id?: string };
76
+ sessionIndex?: string;
77
+ nameID?: string;
78
+ request?: { id?: string };
79
+ };
80
+ samlContent: string;
81
+ }
82
+
83
+ /** SsoConnection with scope fields for org/app polymorphic resolution */
84
+ type SsoConnectionWithScope = SsoConnectionBase & { organizationId?: string; applicationId?: string };
85
+
86
+ // ─────────────────────────────────────────────────────────────────
87
+ // Constants
88
+ // ─────────────────────────────────────────────────────────────────
89
+
90
+ const SAML_BINDINGS = {
91
+ REDIRECT: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
92
+ POST: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
93
+ } as const;
94
+
95
+ const MAX_RESPONSE_SIZE = 2 * 1024 * 1024; // 2MB (SC-20, E18)
96
+ const TRANSIENT_NAMEID_FORMAT = 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient';
97
+ const SAML_SESSION_TTL = 86400; // 24h — matches refresh token lifetime
98
+
99
+ /**
100
+ * Common alternative attribute URIs for fallback resolution (E17).
101
+ * Keys are canonical profile fields; values are ordered fallback lists.
102
+ */
103
+ const COMMON_ATTRIBUTE_ALTERNATIVES: Record<string, string[]> = {
104
+ email: [
105
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
106
+ 'http://schemas.xmlsoap.org/claims/EmailAddress',
107
+ 'urn:oid:0.9.2342.19200300.100.1.3',
108
+ 'mail', 'email', 'emailAddress',
109
+ ],
110
+ firstName: [
111
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname',
112
+ 'urn:oid:2.5.4.42',
113
+ 'givenName', 'given_name', 'firstName',
114
+ ],
115
+ lastName: [
116
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname',
117
+ 'urn:oid:2.5.4.4',
118
+ 'sn', 'surname', 'family_name', 'lastName',
119
+ ],
120
+ roles: [
121
+ 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role',
122
+ 'urn:oid:1.3.6.1.4.1.5923.1.1.1.7',
123
+ 'roles', 'Role', 'memberOf',
124
+ ],
125
+ groups: [
126
+ 'http://schemas.microsoft.com/ws/2008/06/identity/claims/groups',
127
+ 'groups', 'Group',
128
+ ],
129
+ department: [
130
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/department',
131
+ 'urn:oid:2.5.4.11',
132
+ 'department', 'ou',
133
+ ],
134
+ employeeId: [
135
+ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/employeeid',
136
+ 'urn:oid:2.16.840.1.113730.3.1.3',
137
+ 'employeeId', 'employeeNumber',
138
+ ],
139
+ };
140
+
141
+ // ─────────────────────────────────────────────────────────────────
142
+ // Internal types
143
+ // ─────────────────────────────────────────────────────────────────
144
+
145
+ interface ConnectionResolutionResult {
146
+ resolvedConnection: SAMLResolvedConnection;
147
+ stateMetadata?: SAMLStateMetadata;
148
+ scopeType: string;
149
+ scopeId: string;
150
+ }
151
+
152
+ /** Test-only: when bound, used instead of samlify parseLoginResponse (avoids XSD/Java). Production never binds. */
153
+ export interface SAMLResponseParserOverride {
154
+ parse(
155
+ connection: SAMLResolvedConnection,
156
+ samlResponse: string,
157
+ ): Promise<SamlifyParsedResponse & { validatingCertIndex: number }>;
158
+ }
159
+
160
+ // ─────────────────────────────────────────────────────────────────
161
+ // Service
162
+ // ─────────────────────────────────────────────────────────────────
163
+
164
+ @injectable()
165
+ export class SAMLAuthenticationBackendService {
166
+ private readonly logDebug: (message: string, context?: Record<string, unknown>) => void;
167
+ private samlifyInitialized = false;
168
+
169
+ constructor(
170
+ @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,
171
+ @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly appConfigService: AppConfigurationService,
172
+ @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,
173
+ @inject(SAAS_SERVICE_TYPES.ServicesRegistryHandlerService) private readonly servicesRegistryHandler: ServicesRegistryHandlerBackendService,
174
+ @inject(SAAS_SERVICE_TYPES.AuthUserLookupService) private readonly userLookup: AuthUserLookupBackendService,
175
+ @inject(SAAS_SERVICE_TYPES.AuthExecutionContextFactory) private readonly authEcFactory: AuthExecutionContextFactoryBackendService,
176
+ @inject(SAAS_SERVICE_TYPES.ConsumableTokenService) private readonly consumableTokenService: ConsumableTokenBackendService,
177
+ @inject(SAAS_SERVICE_TYPES.SAMLAssertionValidatorService) private readonly assertionValidator: SAMLAssertionValidatorBackendService,
178
+ @inject(SAAS_SERVICE_TYPES.SAMLMetadataService) private readonly metadataService: SAMLMetadataBackendService,
179
+ @inject(SAAS_SERVICE_TYPES.DomainToOrgLookupService) private readonly domainToOrgLookup: DomainToOrgLookupBackendService,
180
+ @inject(SAAS_SERVICE_TYPES.EnterpriseUserProvisioningService) private readonly enterpriseProvisioning: EnterpriseUserProvisioningBackendService,
181
+ @inject(SAAS_SERVICE_TYPES.AuditLogsService) private readonly auditLogsService: AuditLogsBackendService,
182
+ @inject(SAAS_SERVICE_TYPES.AuthTokenIssuer) private readonly tokenIssuer: AuthTokenIssuerBackendService,
183
+ @inject(SAAS_SERVICE_TYPES.RedisService) private readonly redisService: RedisService,
184
+ @inject(SAAS_SERVICE_TYPES.SAMLResponseParserOverride) @optional() private readonly samlResponseParserOverride?: SAMLResponseParserOverride,
185
+ ) {
186
+ this.logDebug = this.logger.debugByType('SAMLAuthentication');
187
+ this.logger.setDebugTypeLogging('SAMLAuthentication', false);
188
+ }
189
+
190
+ // ═══════════════════════════════════════════════════════════════
191
+ // 1. Login Initiation (SP-Initiated SSO)
192
+ // ═══════════════════════════════════════════════════════════════
193
+
194
+ /**
195
+ * Generate a SAML AuthnRequest and return the IdP redirect URL.
196
+ *
197
+ * Flow:
198
+ * 1. Load and validate the SAML connection
199
+ * 2. Validate returnUrl against open redirect (SC-26, E21)
200
+ * 3. Create samlify SP + IdP objects (D2 — per-request)
201
+ * 4. Generate AuthnRequest
202
+ * 5. Create ConsumableToken with SAMLStateMetadata (D3)
203
+ * 6. Append RelayState to redirect URL
204
+ * 7. Emit audit event
205
+ */
206
+ public async initiateLogin(
207
+ ec: ExecutionContext<any>,
208
+ connectionId: string,
209
+ returnUrl: string,
210
+ ): Promise<{ redirectUrl: string }> {
211
+ const appDomain = this._getAppDomain();
212
+
213
+ this._validateReturnUrl(returnUrl, appDomain);
214
+
215
+ const { connection, scopeType, scopeId } = await this._loadConnectionFromAnyScope(ec, connectionId);
216
+
217
+ if (connection.protocol !== SsoProtocol.SAML || !connection.saml) {
218
+ throw this._buildAuthError(
219
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
220
+ 'Connection is not configured for SAML protocol',
221
+ );
222
+ }
223
+
224
+ if (connection.saml.signRequests && !process.env.SAML_SP_PRIVATE_KEY) {
225
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
226
+ customMessageReference: ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
227
+ context: { message: 'SAML_SP_PRIVATE_KEY environment variable required when signRequests is enabled' },
228
+ });
229
+ }
230
+
231
+ const spEntityId = `https://${appDomain}/saml/sp/${scopeType}/${scopeId}`;
232
+ const acsUrl = `https://${appDomain}/auth/saml/acs`;
233
+
234
+ const saml = this._getSamlifyModule();
235
+
236
+ const sp = saml.ServiceProvider({
237
+ entityID: spEntityId,
238
+ authnRequestsSigned: connection.saml.signRequests,
239
+ wantAssertionsSigned: connection.saml.wantAssertionsSigned,
240
+ wantMessageSigned: true,
241
+ signingCert: process.env.SAML_SP_CERTIFICATE,
242
+ privateKey: connection.saml.signRequests ? process.env.SAML_SP_PRIVATE_KEY : undefined,
243
+ encPrivateKey: process.env.SAML_SP_PRIVATE_KEY,
244
+ nameIDFormat: [connection.saml.nameIdFormat],
245
+ assertionConsumerService: [{ Binding: SAML_BINDINGS.POST, Location: acsUrl }],
246
+ });
247
+
248
+ const idp = saml.IdentityProvider({
249
+ entityID: connection.saml.entityId,
250
+ singleSignOnService: [{ Binding: SAML_BINDINGS.REDIRECT, Location: connection.saml.ssoUrl }],
251
+ signingCert: connection.saml.x509Certificates[0],
252
+ nameIDFormat: [connection.saml.nameIdFormat],
253
+ });
254
+
255
+ const loginRequest = sp.createLoginRequest(idp, 'redirect');
256
+ const authnRequestId: string = loginRequest.id;
257
+ const redirectContext: string = loginRequest.context;
258
+
259
+ const stateToken = await this.consumableTokenService.createToken({
260
+ tokenType: CoreConsumableTokenTypes.SAML_AUTH_STATE,
261
+ consumptionMode: ConsumableToken_ConsumptionMode.EPHEMERAL_STATE,
262
+ expiresIn: { value: 10, unit: DurationUnit.MINUTES },
263
+ metadata: {
264
+ requestId: authnRequestId,
265
+ connectionId,
266
+ scopeType,
267
+ scopeId,
268
+ returnUrl,
269
+ initiatedAt: Date.now(),
270
+ } as unknown as Record<string, any>,
271
+ });
272
+
273
+ const separator = redirectContext.includes('?') ? '&' : '?';
274
+ const redirectUrl = `${redirectContext}${separator}RelayState=${encodeURIComponent(stateToken.token)}`;
275
+
276
+ this.logDebug('SAML login initiated', {
277
+ connectionId,
278
+ idpEntityId: connection.saml.entityId,
279
+ requestId: authnRequestId,
280
+ });
281
+
282
+ this.auditLogsService.logSAMLEvent(
283
+ CoreAuditableEventType.SAML_LOGIN_INITIATED,
284
+ ResourceOperationRiskLevel.LOW,
285
+ {
286
+ connectionId,
287
+ idpEntityId: connection.saml.entityId,
288
+ requestId: authnRequestId,
289
+ organizationId: scopeId,
290
+ authSource: AuthSource.SAML,
291
+ },
292
+ ).catch(() => { /* fire-and-forget */ });
293
+
294
+ return { redirectUrl };
295
+ }
296
+
297
+ // ═══════════════════════════════════════════════════════════════
298
+ // 2. ACS Handler (Assertion Consumer Service)
299
+ // ═══════════════════════════════════════════════════════════════
300
+
301
+ /**
302
+ * Process a SAML Response at the Assertion Consumer Service endpoint.
303
+ *
304
+ * Handles both SP-initiated (RelayState present) and IdP-initiated
305
+ * (RelayState absent) flows per D14.
306
+ *
307
+ * Flow:
308
+ * 1. Response size check (SC-20, E18)
309
+ * 2. Resolve connection (SP-initiated or IdP-initiated)
310
+ * 3. Parse SAML Response with multi-cert rotation (SC-14)
311
+ * 4. Validate assertion via SAMLAssertionValidatorService
312
+ * 5. Extract user profile via attribute mapping (E17)
313
+ * 6. Unicode normalize email domain (SC-23, E27)
314
+ * 7. Domain verification check (E11)
315
+ * 8. Derive providerUserId (D15, E29)
316
+ * 9. Provision/link user via EnterpriseUserProvisioningService (E12)
317
+ * 10. Store SessionIndex for SLO (SC-33, E13)
318
+ * 11. Issue JWT tokens via AUTH_CODE_EXCHANGE pattern
319
+ * 12. Emit audit event
320
+ * 13. Return redirect URL
321
+ */
322
+ public async handleACS(
323
+ ec: ExecutionContext<any>,
324
+ samlResponse: string,
325
+ relayState?: string,
326
+ clientContext?: { ipAddress: string; userAgent: string },
327
+ ): Promise<{ redirectUrl: string; userId: string }> {
328
+ if (samlResponse.length > MAX_RESPONSE_SIZE) {
329
+ throw this._buildAuthError(
330
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
331
+ 'SAML response exceeds maximum allowed size of 2MB',
332
+ );
333
+ }
334
+
335
+ const internalEc = await this._getInternalExecutionContext();
336
+ const appDomain = this._getAppDomain();
337
+
338
+ // ── Step 2: Resolve connection ──
339
+ const resolution = await this._resolveConnection(internalEc, samlResponse, relayState, appDomain);
340
+ const { resolvedConnection, stateMetadata, scopeType, scopeId } = resolution;
341
+
342
+ try {
343
+ // ── Step 3: Parse SAML Response (override for tests; production uses samlify) ──
344
+ const parseResultWithCertInfo = this.samlResponseParserOverride
345
+ ? await this.samlResponseParserOverride.parse(resolvedConnection, samlResponse)
346
+ : await this._parseSAMLResponseWithMultiCert(resolvedConnection, samlResponse);
347
+ const { validatingCertIndex, ...parseResult } = parseResultWithCertInfo;
348
+
349
+ // ── Step 4: Validate assertion ──
350
+ const assertionData = await this.assertionValidator.validateAssertion(
351
+ parseResult,
352
+ resolvedConnection,
353
+ resolvedConnection.spEntityId,
354
+ resolvedConnection.acsUrl,
355
+ stateMetadata,
356
+ );
357
+
358
+ // ── Step 5: Extract user profile via attribute mapping (E17) ──
359
+ const userProfile = this._extractUserProfileFromAssertion(assertionData, resolvedConnection);
360
+
361
+ // ── Step 6: Unicode normalization on email domain (SC-23, E27) ──
362
+ const emailParts = userProfile.email.split('@');
363
+ if (emailParts.length === 2) {
364
+ userProfile.email = `${emailParts[0]}@${emailParts[1].normalize('NFKC')}`;
365
+ }
366
+
367
+ // ── Step 7: Domain verification check (E11) ──
368
+ const emailDomain = userProfile.email.split('@')[1];
369
+ if (emailDomain) {
370
+ const domainCheck = await this.domainToOrgLookup.findOrgByDomain(internalEc, emailDomain);
371
+ if (!domainCheck) {
372
+ throw this.errorBuilder.buildError(ErrorType.AUTHORIZATION, undefined, {
373
+ customMessageReference: ErrorCustomMessageReference.SAML_DOMAIN_NOT_VERIFIED,
374
+ context: { message: 'Email domain is not verified for SSO', domain: emailDomain },
375
+ });
376
+ }
377
+ }
378
+
379
+ // ── Step 8: Derive providerUserId (D15, E12, E29) ──
380
+ let providerUserId = `${resolvedConnection.idpEntityId}|${assertionData.nameId}`;
381
+
382
+ if (assertionData.nameIdFormat === TRANSIENT_NAMEID_FORMAT) {
383
+ const persistentAttrUri =
384
+ resolvedConnection.attributeMapping['persistentId'] ||
385
+ resolvedConnection.attributeMapping['providerUserId'];
386
+ if (persistentAttrUri) {
387
+ const persistentValue = this._resolveAttributeValue(assertionData.attributes, persistentAttrUri);
388
+ if (persistentValue) {
389
+ providerUserId = `${resolvedConnection.idpEntityId}|${persistentValue}`;
390
+ }
391
+ }
392
+ }
393
+ userProfile.providerUserId = providerUserId;
394
+
395
+ // ── Step 9: Provision/link user (E12) ──
396
+ if (!resolvedConnection.organization) {
397
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
398
+ customMessageReference: ErrorCustomMessageReference.SAML_ORGANIZATION_REQUIRED,
399
+ context: { message: 'SAML SSO is only available for enterprise connections' },
400
+ });
401
+ }
402
+
403
+ const org = resolvedConnection.organization;
404
+
405
+ // W7.2: Block cross-org SSO when disabled
406
+ if (this.appConfigService.config.auth.crossOrgSSOAccess === false) {
407
+ const existingUser = await this.userLookup.findAnyUserByEmail(ec, userProfile.email);
408
+ if (existingUser) {
409
+ const enterpriseLinks: UserIdentityLink[] = await this.servicesRegistryHandler.list<UserIdentityLink>(
410
+ CoreResourceType.USER_IDENTITY_LINKS, ec,
411
+ { userId: existingUser._id, connectionType: 'enterprise' },
412
+ undefined, { paginated: false },
413
+ ) as UserIdentityLink[] ?? [];
414
+ const hasCrossOrgLink = enterpriseLinks.some(
415
+ (link) => link.organizationId && link.organizationId !== org.organizationId,
416
+ );
417
+ if (hasCrossOrgLink) {
418
+ this.logDebug('Cross-org SSO blocked (SAML)', { userId: existingUser._id, targetOrg: org.organizationId });
419
+ throw this.errorBuilder.buildError(ErrorType.AUTHORIZATION, undefined, {
420
+ customMessageReference: ErrorCustomMessageReference.CROSS_ORG_SSO_BLOCKED,
421
+ context: { message: 'Cross-organization SSO access is not allowed.' },
422
+ });
423
+ }
424
+ }
425
+ }
426
+
427
+ const provisionResult = await this.enterpriseProvisioning.createOrgUser(
428
+ userProfile,
429
+ resolvedConnection,
430
+ {
431
+ organizationId: org.organizationId,
432
+ autoCreateUsers: org.autoCreateUsers,
433
+ autoVerifyEmail: org.autoVerifyEmail,
434
+ defaultRole: org.defaultRole,
435
+ roleMapping: org.roleMapping,
436
+ groupMapping: org.groupMapping,
437
+ allowedDomains: org.allowedDomains || [],
438
+ },
439
+ );
440
+
441
+ const userId = provisionResult.user._id;
442
+
443
+ // ── Step 10: Store SessionIndex for SLO (SC-33, E13) ──
444
+ if (assertionData.sessionIndex) {
445
+ try {
446
+ const sessionKey = `saml:session:${userId}:${org.connectionId}`;
447
+ await this.redisService.set(
448
+ sessionKey,
449
+ { sessionIndex: assertionData.sessionIndex, nameId: assertionData.nameId },
450
+ { ttl: SAML_SESSION_TTL },
451
+ );
452
+
453
+ const reverseKey = this._sloReverseKey(org.connectionId, assertionData.sessionIndex);
454
+ await this.redisService.set(reverseKey, { userId, connectionId: org.connectionId }, { ttl: SAML_SESSION_TTL });
455
+ } catch {
456
+ this.logger.warn('Failed to store SAML session index for SLO', {
457
+ userId,
458
+ connectionId: org.connectionId,
459
+ });
460
+ }
461
+ }
462
+
463
+ // ── Step 10b: Verify user status before token issuance (W2-SEC-3) ──
464
+ const user = provisionResult.user;
465
+ if (!user || user.status !== UserStatus.ACTIVE) {
466
+ throw this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {
467
+ customMessageReference: ErrorCustomMessageReference.AUTHENTICATION_ACCOUNT_LOCKED,
468
+ context: { userStatus: user?.status ?? 'UNKNOWN', source: 'saml_acs' },
469
+ });
470
+ }
471
+
472
+ // ── Step 11: Issue JWT tokens (TRAP 12) + AUTH_CODE_EXCHANGE ──
473
+ const tokens = await this.tokenIssuer.issueTokensForUser(userId, undefined, {
474
+ lastAuthenticatedAt: Math.floor(Date.now() / 1000),
475
+ });
476
+
477
+ const exchangeToken = await this.consumableTokenService.createToken({
478
+ tokenType: CoreConsumableTokenTypes.AUTH_CODE_EXCHANGE,
479
+ consumptionMode: ConsumableToken_ConsumptionMode.SINGLE_USE,
480
+ expiresIn: { value: 5, unit: DurationUnit.MINUTES },
481
+ userId,
482
+ resourceIdentifier: CoreResourceType.USERS,
483
+ metadata: {
484
+ accessToken: tokens.accessToken,
485
+ refreshToken: tokens.refreshToken,
486
+ expiresIn: tokens.expiresIn,
487
+ providerRef: resolvedConnection.providerRef,
488
+ isNewUser: provisionResult.isNew,
489
+ },
490
+ });
491
+
492
+ // ── Step 12: Emit audit events — success ──
493
+ try {
494
+ await this.auditLogsService.logUserSSOLogin({
495
+ userId,
496
+ email: userProfile.email,
497
+ providerRef: resolvedConnection.providerRef,
498
+ connectionType: SsoConnectionType.ENTERPRISE,
499
+ authSource: AuthSource.SAML,
500
+ organizationId: org.organizationId,
501
+ ipAddress: clientContext?.ipAddress || 'unknown',
502
+ userAgent: clientContext?.userAgent || 'unknown',
503
+ sessionId: `saml:${resolvedConnection.providerRef}:${userId}`,
504
+ });
505
+ } catch { /* audit failure must not block authentication */ }
506
+
507
+ this.auditLogsService.logSAMLEvent(
508
+ CoreAuditableEventType.SAML_LOGIN_SUCCESS,
509
+ ResourceOperationRiskLevel.LOW,
510
+ {
511
+ connectionId: org.connectionId,
512
+ idpEntityId: resolvedConnection.idpEntityId,
513
+ assertionId: assertionData.assertionId,
514
+ nameId: assertionData.nameId,
515
+ sessionIndex: assertionData.sessionIndex,
516
+ userId,
517
+ organizationId: org.organizationId,
518
+ validatingCertIndex,
519
+ initiatedBy: stateMetadata ? 'sp' : 'idp',
520
+ authSource: AuthSource.SAML,
521
+ },
522
+ ).catch(() => { /* fire-and-forget */ });
523
+
524
+ this.logDebug('SAML ACS processed successfully', {
525
+ userId,
526
+ providerRef: resolvedConnection.providerRef,
527
+ isNew: provisionResult.isNew,
528
+ assertionId: assertionData.assertionId,
529
+ });
530
+
531
+ // ── Step 13: Return redirect URL ──
532
+ // Resolve the correct frontend URL from the user's type via the
533
+ // frontendServices.usersManagement reverse lookup.
534
+ const userType = user.userTypes?.[0];
535
+ const resolvedFrontendServiceName = userType
536
+ ? this.appConfigService.resolveFrontendServiceNameFromUserType(userType)
537
+ : this.appConfigService.resolveDefaultFrontendServiceName();
538
+
539
+ if (resolvedFrontendServiceName && userType) {
540
+ const userManagement = this.appConfigService.getFrontendServiceUserManagementEntry(resolvedFrontendServiceName, userType);
541
+ if (!userManagement?.auth) {
542
+ throw this.errorBuilder.buildError(ErrorType.AUTHORIZATION, undefined, {
543
+ customMessageReference: ErrorCustomMessageReference.AUTHORIZATION,
544
+ context: {
545
+ message: `Authentication is disabled for frontend service "${resolvedFrontendServiceName}" and user type "${userType}"`,
546
+ frontendServiceName: resolvedFrontendServiceName,
547
+ activeUserType: userType,
548
+ },
549
+ });
550
+ }
551
+ }
552
+
553
+ const config = this.appConfigService.config;
554
+ const frontendUrl = resolvedFrontendServiceName
555
+ ? AuthControllerUtils.lookupFrontendPublicUrl(config, resolvedFrontendServiceName)
556
+ : null;
557
+ if (!frontendUrl) {
558
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
559
+ customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
560
+ context: {
561
+ message: 'Cannot resolve a frontend publicUrl for SAML callback redirection.',
562
+ frontendServiceName: resolvedFrontendServiceName,
563
+ appDomain,
564
+ },
565
+ });
566
+ }
567
+ const searchParams = new URLSearchParams({
568
+ code: exchangeToken.token,
569
+ });
570
+ if (resolution.stateMetadata?.returnUrl) {
571
+ searchParams.set('redirect', resolution.stateMetadata.returnUrl);
572
+ }
573
+ const redirectUrl = `${frontendUrl}/auth/callback?${searchParams.toString()}`;
574
+
575
+ return { redirectUrl, userId };
576
+
577
+ } catch (error) {
578
+ if (isWildoBackendError(error)) {
579
+ this._emitFailureAudit(resolvedConnection, String(error.customMessageReference ?? 'unknown'), clientContext);
580
+ throw error;
581
+ }
582
+
583
+ this.logger.error('SAML ACS handler failed with unexpected error', {
584
+ error: error instanceof Error ? error.message : String(error),
585
+ });
586
+ this._emitFailureAudit(resolvedConnection, error instanceof Error ? error.message : 'unknown', clientContext);
587
+
588
+ throw this._buildAuthError(
589
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
590
+ 'SAML authentication failed',
591
+ );
592
+ }
593
+ }
594
+
595
+ // ═══════════════════════════════════════════════════════════════
596
+ // 3. Single Logout — IdP-Initiated (SC-34, SC-35, SC-37)
597
+ // ═══════════════════════════════════════════════════════════════
598
+
599
+ /**
600
+ * Handle an IdP-initiated SAML SLO request.
601
+ *
602
+ * Supports both HTTP-Redirect (GET) and HTTP-POST bindings.
603
+ * The IdP sends a LogoutRequest telling us to terminate a user's session.
604
+ *
605
+ * Flow:
606
+ * 1. Parse & validate the LogoutRequest via samlify (SC-34)
607
+ * 2. Extract Issuer → resolve connection
608
+ * 3. Extract SessionIndex → find active session via reverse mapping
609
+ * 4. Terminate local session (delete Redis mappings) (SC-37)
610
+ * 5. Build and return LogoutResponse
611
+ * 6. Graceful no-op if no active session (SC-35, E15)
612
+ */
613
+ public async handleIdPInitiatedSLO(
614
+ ec: ExecutionContext<any>,
615
+ binding: 'redirect' | 'post',
616
+ samlRequest: string,
617
+ relayState?: string,
618
+ ): Promise<{ logoutResponseUrl: string; binding: 'redirect' | 'post' }> {
619
+ const internalEc = await this._getInternalExecutionContext();
620
+ const appDomain = this._getAppDomain();
621
+
622
+ const issuer = this._extractIssuerFromLogoutRequest(samlRequest, binding);
623
+ if (!issuer) {
624
+ throw this._buildAuthError(
625
+ ErrorCustomMessageReference.SAML_UNKNOWN_IDP,
626
+ 'Cannot extract Issuer from SAML LogoutRequest',
627
+ );
628
+ }
629
+
630
+ const matches = await this._findConnectionsByEntityId(internalEc, issuer);
631
+ if (matches.length === 0) {
632
+ throw this._buildAuthError(
633
+ ErrorCustomMessageReference.SAML_UNKNOWN_IDP,
634
+ 'No SSO connection found for IdP entity ID in SLO request',
635
+ );
636
+ }
637
+
638
+ const { connection, scopeType, scopeId } = matches[0];
639
+ const resolvedConnection = this._buildResolvedConnection(connection, scopeType, scopeId, appDomain);
640
+
641
+ let parseResult: SAMLSlOParseResult;
642
+ try {
643
+ parseResult = await this._parseSLORequestWithMultiCert(resolvedConnection, binding, samlRequest);
644
+ } catch (error) {
645
+ this.logger.warn('SLO request signature verification failed', {
646
+ idpEntityId: resolvedConnection.idpEntityId,
647
+ error: error instanceof Error ? error.message : String(error),
648
+ });
649
+ throw this._buildAuthError(
650
+ ErrorCustomMessageReference.SAML_SIGNATURE_INVALID,
651
+ 'SAML LogoutRequest signature verification failed',
652
+ );
653
+ }
654
+
655
+ const extract = parseResult.extract;
656
+ const sessionIndex: string | undefined =
657
+ extract?.logoutRequest?.sessionIndex ?? extract?.sessionIndex;
658
+ const nameId: string | undefined =
659
+ extract?.logoutRequest?.nameID ?? extract?.nameID;
660
+ const requestId: string | undefined =
661
+ extract?.logoutRequest?.id ?? extract?.request?.id;
662
+
663
+ let terminatedUserId: string | undefined;
664
+ let sloResult: 'success' | 'no-session' = 'no-session';
665
+
666
+ if (sessionIndex) {
667
+ const sessionData = await this._findSessionByIndex(resolvedConnection.organization?.connectionId || connection._id, sessionIndex);
668
+
669
+ if (sessionData) {
670
+ terminatedUserId = sessionData.userId;
671
+ await this._terminateSAMLSession(sessionData.userId, sessionData.connectionId, sessionIndex);
672
+ sloResult = 'success';
673
+ }
674
+ }
675
+
676
+ this.logDebug('IdP-initiated SLO processed', {
677
+ idpEntityId: resolvedConnection.idpEntityId,
678
+ sessionIndex,
679
+ nameId,
680
+ result: sloResult,
681
+ userId: terminatedUserId,
682
+ });
683
+
684
+ this._emitSLOAudit(resolvedConnection, sessionIndex, 'idp-initiated', sloResult);
685
+
686
+ const responseContext = this._buildLogoutResponse(
687
+ resolvedConnection,
688
+ requestId || '',
689
+ binding,
690
+ relayState,
691
+ );
692
+
693
+ return { logoutResponseUrl: responseContext.url, binding };
694
+ }
695
+
696
+ // ═══════════════════════════════════════════════════════════════
697
+ // 4. Single Logout — SP-Initiated (SC-36, SC-37)
698
+ // ═══════════════════════════════════════════════════════════════
699
+
700
+ /**
701
+ * Initiate SP-initiated SAML SLO. Terminates the local session and
702
+ * redirects the user to the IdP's SLO URL with a LogoutRequest.
703
+ *
704
+ * The IdP will process the LogoutRequest and send a LogoutResponse
705
+ * back to our SLO endpoint. Local cleanup happens regardless (SC-37).
706
+ */
707
+ public async initiateSPLogout(
708
+ ec: ExecutionContext<any>,
709
+ userId: string,
710
+ connectionId: string,
711
+ ): Promise<{ redirectUrl: string } | null> {
712
+ const internalEc = await this._getInternalExecutionContext();
713
+ const appDomain = this._getAppDomain();
714
+
715
+ let connection: SsoConnectionBase;
716
+ let scopeType: string;
717
+ let scopeId: string;
718
+ try {
719
+ const loaded = await this._loadConnectionFromAnyScope(internalEc, connectionId);
720
+ connection = loaded.connection;
721
+ scopeType = loaded.scopeType;
722
+ scopeId = loaded.scopeId;
723
+ } catch {
724
+ this.logger.warn('SP-initiated SLO: connection not found', { connectionId });
725
+ return null;
726
+ }
727
+
728
+ if (connection.protocol !== SsoProtocol.SAML || !connection.saml) {
729
+ return null;
730
+ }
731
+
732
+ const resolvedConnection = this._buildResolvedConnection(connection, scopeType, scopeId, appDomain);
733
+
734
+ if (!resolvedConnection.sloUrl) {
735
+ this.logDebug('SP-initiated SLO: IdP does not support SLO (no sloUrl)', {
736
+ connectionId,
737
+ idpEntityId: resolvedConnection.idpEntityId,
738
+ });
739
+ await this._terminateSAMLSessionByUser(userId, connectionId);
740
+ return null;
741
+ }
742
+
743
+ const forwardKey = `saml:session:${userId}:${connectionId}`;
744
+ const forwardData = await this.redisService.get<{ sessionIndex: string; nameId: string }>(forwardKey);
745
+ const sessionIndex = forwardData?.sessionIndex;
746
+ const nameId = forwardData?.nameId;
747
+
748
+ await this._terminateSAMLSessionByUser(userId, connectionId);
749
+
750
+ const saml = this._getSamlifyModule();
751
+ const sloUrl = `https://${appDomain}/auth/saml/slo`;
752
+
753
+ const sp = saml.ServiceProvider({
754
+ entityID: resolvedConnection.spEntityId,
755
+ authnRequestsSigned: resolvedConnection.signRequests,
756
+ wantAssertionsSigned: resolvedConnection.wantAssertionsSigned,
757
+ wantMessageSigned: true,
758
+ signingCert: process.env.SAML_SP_CERTIFICATE,
759
+ privateKey: process.env.SAML_SP_PRIVATE_KEY,
760
+ nameIDFormat: [resolvedConnection.nameIdFormat],
761
+ assertionConsumerService: [{ Binding: SAML_BINDINGS.POST, Location: resolvedConnection.acsUrl }],
762
+ singleLogoutService: [
763
+ { Binding: SAML_BINDINGS.REDIRECT, Location: sloUrl },
764
+ { Binding: SAML_BINDINGS.POST, Location: sloUrl },
765
+ ],
766
+ });
767
+
768
+ const idp = saml.IdentityProvider({
769
+ entityID: resolvedConnection.idpEntityId,
770
+ singleSignOnService: [{ Binding: SAML_BINDINGS.REDIRECT, Location: resolvedConnection.ssoUrl }],
771
+ singleLogoutService: [{ Binding: SAML_BINDINGS.REDIRECT, Location: resolvedConnection.sloUrl }],
772
+ signingCert: resolvedConnection.x509Certificates[0],
773
+ nameIDFormat: [resolvedConnection.nameIdFormat],
774
+ });
775
+
776
+ const logoutRequest = sp.createLogoutRequest(
777
+ idp,
778
+ 'redirect',
779
+ { logoutNameID: nameId || userId, sessionIndex: sessionIndex || undefined },
780
+ ) as { context: string; id: string };
781
+
782
+ this.logDebug('SP-initiated SLO: LogoutRequest created', {
783
+ connectionId,
784
+ userId,
785
+ requestId: logoutRequest.id,
786
+ });
787
+
788
+ this._emitSLOAudit(resolvedConnection, sessionIndex || undefined, 'sp-initiated', 'success');
789
+
790
+ return { redirectUrl: logoutRequest.context };
791
+ }
792
+
793
+ /**
794
+ * Handle the IdP's LogoutResponse to our SP-initiated SLO request.
795
+ * At this point, local cleanup already happened in `initiateSPLogout()`.
796
+ * We just validate the response and redirect the user to the frontend.
797
+ */
798
+ public async handleSLOResponse(
799
+ ec: ExecutionContext<any>,
800
+ binding: 'redirect' | 'post',
801
+ samlResponse: string,
802
+ ): Promise<void> {
803
+ this.logDebug('SP-initiated SLO: LogoutResponse received from IdP', { binding });
804
+ }
805
+
806
+ // ═══════════════════════════════════════════════════════════════
807
+ // SLO Helpers
808
+ // ═══════════════════════════════════════════════════════════════
809
+
810
+ /**
811
+ * Parse a SAML LogoutRequest using samlify, trying each configured IdP
812
+ * certificate in sequence (mirrors ACS multi-cert rotation — SC-14).
813
+ */
814
+ private async _parseSLORequestWithMultiCert(
815
+ connection: SAMLResolvedConnection,
816
+ binding: 'redirect' | 'post',
817
+ samlRequest: string,
818
+ ): Promise<SAMLSlOParseResult> {
819
+ const saml = this._getSamlifyModule();
820
+ const appDomain = this._getAppDomain();
821
+ const sloUrl = `https://${appDomain}/auth/saml/slo`;
822
+ let lastError: unknown;
823
+
824
+ for (const cert of connection.x509Certificates) {
825
+ try {
826
+ const sp = saml.ServiceProvider({
827
+ entityID: connection.spEntityId,
828
+ authnRequestsSigned: connection.signRequests,
829
+ wantAssertionsSigned: connection.wantAssertionsSigned,
830
+ wantMessageSigned: true,
831
+ signingCert: process.env.SAML_SP_CERTIFICATE,
832
+ privateKey: process.env.SAML_SP_PRIVATE_KEY,
833
+ nameIDFormat: [connection.nameIdFormat],
834
+ assertionConsumerService: [{ Binding: SAML_BINDINGS.POST, Location: connection.acsUrl }],
835
+ singleLogoutService: [
836
+ { Binding: SAML_BINDINGS.REDIRECT, Location: sloUrl },
837
+ { Binding: SAML_BINDINGS.POST, Location: sloUrl },
838
+ ],
839
+ });
840
+
841
+ const idp = saml.IdentityProvider({
842
+ entityID: connection.idpEntityId,
843
+ singleSignOnService: [{ Binding: SAML_BINDINGS.REDIRECT, Location: connection.ssoUrl }],
844
+ singleLogoutService: connection.sloUrl
845
+ ? [{ Binding: SAML_BINDINGS.REDIRECT, Location: connection.sloUrl },
846
+ { Binding: SAML_BINDINGS.POST, Location: connection.sloUrl }]
847
+ : [],
848
+ signingCert: cert,
849
+ nameIDFormat: [connection.nameIdFormat],
850
+ });
851
+
852
+ const requestObj = binding === 'redirect'
853
+ ? { query: { SAMLRequest: samlRequest } }
854
+ : { body: { SAMLRequest: samlRequest } };
855
+
856
+ const result = await sp.parseLogoutRequest(idp, binding, requestObj);
857
+ return result as SAMLSlOParseResult;
858
+ } catch (error) {
859
+ lastError = error;
860
+ }
861
+ }
862
+
863
+ throw lastError || new Error('SLO request parsing failed');
864
+ }
865
+
866
+ /**
867
+ * Find the userId for a given SessionIndex via the reverse mapping.
868
+ */
869
+ private async _findSessionByIndex(
870
+ connectionId: string,
871
+ sessionIndex: string,
872
+ ): Promise<{ userId: string; connectionId: string } | null> {
873
+ try {
874
+ const reverseKey = this._sloReverseKey(connectionId, sessionIndex);
875
+ return await this.redisService.get<{ userId: string; connectionId: string }>(reverseKey);
876
+ } catch {
877
+ return null;
878
+ }
879
+ }
880
+
881
+ /**
882
+ * Clean up SAML session state in Redis: forward + reverse mappings.
883
+ */
884
+ private async _terminateSAMLSession(
885
+ userId: string,
886
+ connectionId: string,
887
+ sessionIndex: string,
888
+ ): Promise<void> {
889
+ try {
890
+ await this.redisService.del(`saml:session:${userId}:${connectionId}`);
891
+ await this.redisService.del(this._sloReverseKey(connectionId, sessionIndex));
892
+ } catch {
893
+ this.logger.warn('Failed to clean up SAML session state during SLO', { userId, connectionId });
894
+ }
895
+ }
896
+
897
+ /**
898
+ * Clean up forward mapping by userId (used when sessionIndex is unknown).
899
+ */
900
+ private async _terminateSAMLSessionByUser(userId: string, connectionId: string): Promise<void> {
901
+ try {
902
+ const forwardKey = `saml:session:${userId}:${connectionId}`;
903
+ const forwardData = await this.redisService.get<{ sessionIndex: string; nameId: string }>(forwardKey);
904
+ await this.redisService.del(forwardKey);
905
+ if (forwardData?.sessionIndex) {
906
+ await this.redisService.del(this._sloReverseKey(connectionId, forwardData.sessionIndex));
907
+ }
908
+ } catch {
909
+ this.logger.warn('Failed to clean up SAML session by user during SLO', { userId, connectionId });
910
+ }
911
+ }
912
+
913
+ /**
914
+ * Extract the Issuer from a LogoutRequest (either base64 or deflated+base64).
915
+ */
916
+ private _extractIssuerFromLogoutRequest(
917
+ samlRequest: string,
918
+ binding: 'redirect' | 'post',
919
+ ): string | null {
920
+ try {
921
+ let xml: string;
922
+ if (binding === 'redirect') {
923
+ const compressed = Buffer.from(samlRequest, 'base64');
924
+ const zlib = require('zlib');
925
+ xml = zlib.inflateRawSync(compressed).toString('utf-8');
926
+ } else {
927
+ xml = Buffer.from(samlRequest, 'base64').toString('utf-8');
928
+ }
929
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
930
+ const { DOMParser } = require('@xmldom/xmldom');
931
+ const doc = new DOMParser().parseFromString(xml, 'text/xml');
932
+
933
+ const requestElements = doc.getElementsByTagNameNS('*', 'LogoutRequest');
934
+ if (requestElements.length === 0) return null;
935
+
936
+ const children = requestElements.item(0).childNodes;
937
+ for (let i = 0; i < children.length; i++) {
938
+ const child = children.item(i);
939
+ if (child.localName === 'Issuer') {
940
+ return child.textContent?.trim() || null;
941
+ }
942
+ }
943
+ return null;
944
+ } catch {
945
+ return null;
946
+ }
947
+ }
948
+
949
+ /**
950
+ * Build a LogoutResponse to send back to the IdP.
951
+ */
952
+ private _buildLogoutResponse(
953
+ connection: SAMLResolvedConnection,
954
+ inResponseTo: string,
955
+ binding: 'redirect' | 'post',
956
+ relayState?: string,
957
+ ): { url: string } {
958
+ const saml = this._getSamlifyModule();
959
+ const appDomain = this._getAppDomain();
960
+ const sloUrl = `https://${appDomain}/auth/saml/slo`;
961
+
962
+ const sp = saml.ServiceProvider({
963
+ entityID: connection.spEntityId,
964
+ authnRequestsSigned: connection.signRequests,
965
+ wantAssertionsSigned: connection.wantAssertionsSigned,
966
+ wantMessageSigned: true,
967
+ signingCert: process.env.SAML_SP_CERTIFICATE,
968
+ privateKey: process.env.SAML_SP_PRIVATE_KEY,
969
+ nameIDFormat: [connection.nameIdFormat],
970
+ assertionConsumerService: [{ Binding: SAML_BINDINGS.POST, Location: connection.acsUrl }],
971
+ singleLogoutService: [
972
+ { Binding: SAML_BINDINGS.REDIRECT, Location: sloUrl },
973
+ { Binding: SAML_BINDINGS.POST, Location: sloUrl },
974
+ ],
975
+ });
976
+
977
+ const idp = saml.IdentityProvider({
978
+ entityID: connection.idpEntityId,
979
+ singleSignOnService: [{ Binding: SAML_BINDINGS.REDIRECT, Location: connection.ssoUrl }],
980
+ singleLogoutService: connection.sloUrl
981
+ ? [{ Binding: SAML_BINDINGS.REDIRECT, Location: connection.sloUrl },
982
+ { Binding: SAML_BINDINGS.POST, Location: connection.sloUrl }]
983
+ : [],
984
+ signingCert: connection.x509Certificates[0],
985
+ nameIDFormat: [connection.nameIdFormat],
986
+ });
987
+
988
+ const responseContext = sp.createLogoutResponse(
989
+ idp,
990
+ { id: inResponseTo },
991
+ binding,
992
+ relayState || '',
993
+ ) as { context: string; id: string };
994
+
995
+ return { url: responseContext.context };
996
+ }
997
+
998
+ private _sloReverseKey(connectionId: string, sessionIndex: string): string {
999
+ const hash = createHash('sha256').update(`${connectionId}:${sessionIndex}`).digest('hex');
1000
+ return `saml:slo:idx:${hash}`;
1001
+ }
1002
+
1003
+ private _emitSLOAudit(
1004
+ connection: SAMLResolvedConnection,
1005
+ sessionIndex: string | undefined,
1006
+ direction: 'idp-initiated' | 'sp-initiated',
1007
+ result: 'success' | 'no-session',
1008
+ ): void {
1009
+ const eventType = direction === 'sp-initiated'
1010
+ ? CoreAuditableEventType.SAML_SLO_INITIATED
1011
+ : CoreAuditableEventType.SAML_SLO_COMPLETED;
1012
+
1013
+ this.auditLogsService.logSAMLEvent(
1014
+ eventType,
1015
+ ResourceOperationRiskLevel.LOW,
1016
+ {
1017
+ connectionId: connection.organization?.connectionId,
1018
+ idpEntityId: connection.idpEntityId,
1019
+ sessionIndex,
1020
+ direction,
1021
+ result,
1022
+ organizationId: connection.organization?.organizationId,
1023
+ authSource: AuthSource.SAML,
1024
+ },
1025
+ ).catch(() => { /* fire-and-forget */ });
1026
+ }
1027
+
1028
+ // ═══════════════════════════════════════════════════════════════
1029
+ // Connection Resolution (D14)
1030
+ // ═══════════════════════════════════════════════════════════════
1031
+
1032
+ /**
1033
+ * Resolve the SAML connection from either the RelayState (SP-initiated)
1034
+ * or the Response Issuer (IdP-initiated).
1035
+ */
1036
+ private async _resolveConnection(
1037
+ ec: ExecutionContext<any>,
1038
+ samlResponse: string,
1039
+ relayState: string | undefined,
1040
+ appDomain: string,
1041
+ ): Promise<ConnectionResolutionResult> {
1042
+ if (relayState) {
1043
+ const spResult = await this._tryResolveConnectionSPInitiated(ec, relayState, samlResponse, appDomain);
1044
+ if (spResult) return spResult;
1045
+ }
1046
+
1047
+ return this._resolveConnectionIdPInitiated(ec, samlResponse, appDomain);
1048
+ }
1049
+
1050
+ /**
1051
+ * SP-initiated: consume the RelayState as a SAML_AUTH_STATE ConsumableToken,
1052
+ * extract state metadata, load connection by connectionId, validate Issuer match.
1053
+ *
1054
+ * Returns null if the RelayState is not a valid SAML_AUTH_STATE token
1055
+ * (falls through to IdP-initiated resolution).
1056
+ */
1057
+ private async _tryResolveConnectionSPInitiated(
1058
+ ec: ExecutionContext<any>,
1059
+ relayState: string,
1060
+ samlResponse: string,
1061
+ appDomain: string,
1062
+ ): Promise<ConnectionResolutionResult | null> {
1063
+ try {
1064
+ const consumedToken = await this.consumableTokenService.consumeToken(relayState);
1065
+
1066
+ if (consumedToken.tokenType !== CoreConsumableTokenTypes.SAML_AUTH_STATE) {
1067
+ return null;
1068
+ }
1069
+
1070
+ const stateMetadata = consumedToken.metadata as unknown as SAMLStateMetadata;
1071
+ const { connection, scopeType, scopeId } = await this._loadConnectionFromAnyScope(ec, stateMetadata.connectionId);
1072
+
1073
+ if (connection.protocol !== SsoProtocol.SAML || !connection.saml) {
1074
+ throw this._buildAuthError(
1075
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
1076
+ 'Connection resolved from state token is not SAML',
1077
+ );
1078
+ }
1079
+
1080
+ const issuer = this._extractIssuerFromResponse(samlResponse);
1081
+ if (issuer && issuer !== connection.saml.entityId) {
1082
+ this.logger.warn('SAML Response Issuer does not match connection entityId', {
1083
+ expected: connection.saml.entityId,
1084
+ received: issuer,
1085
+ });
1086
+ throw this._buildAuthError(
1087
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
1088
+ 'SAML Response Issuer does not match the expected IdP',
1089
+ );
1090
+ }
1091
+
1092
+ const resolvedConnection = this._buildResolvedConnection(connection, scopeType, scopeId, appDomain);
1093
+
1094
+ return { resolvedConnection, stateMetadata, scopeType, scopeId };
1095
+ } catch (error) {
1096
+ if (isWildoBackendError(error)) throw error;
1097
+ this.logDebug('RelayState is not a valid SAML state token, trying IdP-initiated path', {
1098
+ error: error instanceof Error ? error.message : String(error),
1099
+ });
1100
+ return null;
1101
+ }
1102
+ }
1103
+
1104
+ /**
1105
+ * IdP-initiated: parse the Issuer from the SAML Response, search for
1106
+ * a matching SsoConnection globally by `saml.entityId`.
1107
+ *
1108
+ * Enforces: one match only, `allowIdpInitiated === true`.
1109
+ */
1110
+ private async _resolveConnectionIdPInitiated(
1111
+ ec: ExecutionContext<any>,
1112
+ samlResponse: string,
1113
+ appDomain: string,
1114
+ ): Promise<ConnectionResolutionResult> {
1115
+ const issuer = this._extractIssuerFromResponse(samlResponse);
1116
+ if (!issuer) {
1117
+ throw this._buildAuthError(
1118
+ ErrorCustomMessageReference.SAML_UNKNOWN_IDP,
1119
+ 'Cannot extract Issuer from SAML Response',
1120
+ );
1121
+ }
1122
+
1123
+ const matches = await this._findConnectionsByEntityId(ec, issuer);
1124
+
1125
+ if (matches.length === 0) {
1126
+ throw this._buildAuthError(
1127
+ ErrorCustomMessageReference.SAML_UNKNOWN_IDP,
1128
+ 'No SSO connection found for IdP entity ID',
1129
+ );
1130
+ }
1131
+
1132
+ if (matches.length > 1) {
1133
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
1134
+ customMessageReference: ErrorCustomMessageReference.SAML_AMBIGUOUS_IDP,
1135
+ context: {
1136
+ message: 'Multiple SSO connections match this IdP entity ID — use SP-initiated login',
1137
+ entityId: issuer,
1138
+ matchCount: matches.length,
1139
+ },
1140
+ });
1141
+ }
1142
+
1143
+ const { connection, scopeType, scopeId } = matches[0];
1144
+
1145
+ if (!connection.saml!.allowIdpInitiated) {
1146
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
1147
+ customMessageReference: ErrorCustomMessageReference.SAML_IDP_INITIATED_NOT_ALLOWED,
1148
+ context: {
1149
+ message: 'IdP-initiated SAML login is not enabled for this connection',
1150
+ connectionId: connection._id,
1151
+ },
1152
+ });
1153
+ }
1154
+
1155
+ const resolvedConnection = this._buildResolvedConnection(connection, scopeType, scopeId, appDomain);
1156
+
1157
+ return { resolvedConnection, scopeType, scopeId };
1158
+ }
1159
+
1160
+ // ═══════════════════════════════════════════════════════════════
1161
+ // SAML Response Parsing (Multi-Cert Rotation — SC-14)
1162
+ // ═══════════════════════════════════════════════════════════════
1163
+
1164
+ /**
1165
+ * Parse the SAML Response using samlify, trying each configured IdP
1166
+ * certificate in sequence. Supports cert rotation where the signing
1167
+ * cert changes before the admin updates config.
1168
+ */
1169
+ private async _parseSAMLResponseWithMultiCert(
1170
+ connection: SAMLResolvedConnection,
1171
+ samlResponse: string,
1172
+ ): Promise<SamlifyParsedResponse & { validatingCertIndex: number }> {
1173
+ const saml = this._getSamlifyModule();
1174
+ let lastError: unknown;
1175
+
1176
+ for (let certIndex = 0; certIndex < connection.x509Certificates.length; certIndex++) {
1177
+ const cert = connection.x509Certificates[certIndex];
1178
+ try {
1179
+ const sp = saml.ServiceProvider({
1180
+ entityID: connection.spEntityId,
1181
+ authnRequestsSigned: connection.signRequests,
1182
+ wantAssertionsSigned: connection.wantAssertionsSigned,
1183
+ wantMessageSigned: true,
1184
+ signingCert: process.env.SAML_SP_CERTIFICATE,
1185
+ privateKey: connection.signRequests ? process.env.SAML_SP_PRIVATE_KEY : undefined,
1186
+ encPrivateKey: process.env.SAML_SP_PRIVATE_KEY,
1187
+ nameIDFormat: [connection.nameIdFormat],
1188
+ assertionConsumerService: [{ Binding: SAML_BINDINGS.POST, Location: connection.acsUrl }],
1189
+ });
1190
+
1191
+ const idp = saml.IdentityProvider({
1192
+ entityID: connection.idpEntityId,
1193
+ singleSignOnService: [{ Binding: SAML_BINDINGS.REDIRECT, Location: connection.ssoUrl }],
1194
+ signingCert: cert,
1195
+ nameIDFormat: [connection.nameIdFormat],
1196
+ });
1197
+
1198
+ const result = await sp.parseLoginResponse(idp, 'post', {
1199
+ body: { SAMLResponse: samlResponse },
1200
+ });
1201
+
1202
+ this.logDebug('SAML Response parsed and signature verified', {
1203
+ idpEntityId: connection.idpEntityId,
1204
+ certIndex,
1205
+ totalCerts: connection.x509Certificates.length,
1206
+ });
1207
+
1208
+ return { ...(result as SamlifyParsedResponse), validatingCertIndex: certIndex };
1209
+ } catch (error) {
1210
+ lastError = error;
1211
+ if (this._isDecryptionError(error)) {
1212
+ throw this._classifyDecryptionError(error);
1213
+ }
1214
+ }
1215
+ }
1216
+
1217
+ this.logger.error('SAML signature verification failed with all configured certificates', {
1218
+ idpEntityId: connection.idpEntityId,
1219
+ certCount: connection.x509Certificates.length,
1220
+ lastError: lastError instanceof Error ? lastError.message : String(lastError),
1221
+ });
1222
+
1223
+ throw this._buildAuthError(
1224
+ ErrorCustomMessageReference.SAML_SIGNATURE_INVALID,
1225
+ 'SAML Response signature verification failed',
1226
+ );
1227
+ }
1228
+
1229
+ // ═══════════════════════════════════════════════════════════════
1230
+ // User Profile Extraction (E17)
1231
+ // ═══════════════════════════════════════════════════════════════
1232
+
1233
+ /**
1234
+ * Extract a NormalizedUserProfile from validated SAML assertion data
1235
+ * using the connection's attribute mapping configuration.
1236
+ *
1237
+ * Resolution order per attribute (E17):
1238
+ * 1. Exact URI match from configured mapping
1239
+ * 2. Case-insensitive friendly name match
1240
+ * 3. Common alternative URIs/OIDs
1241
+ */
1242
+ private _extractUserProfileFromAssertion(
1243
+ assertionData: SAMLAssertionData,
1244
+ connection: SAMLResolvedConnection,
1245
+ ): NormalizedUserProfile {
1246
+ const attrs = assertionData.attributes;
1247
+ const mapping = connection.attributeMapping;
1248
+
1249
+ const email = this._extractMappedAttribute(attrs, mapping['email'] || mapping['Email'], 'email');
1250
+ const firstName = this._extractMappedAttribute(attrs, mapping['firstName'], 'firstName');
1251
+ const lastName = this._extractMappedAttribute(attrs, mapping['lastName'], 'lastName');
1252
+ const rolesRaw = this._extractMappedAttribute(attrs, mapping['roles'], 'roles');
1253
+ const department = this._extractMappedAttribute(attrs, mapping['department'], 'department');
1254
+ const employeeId = this._extractMappedAttribute(attrs, mapping['employeeId'], 'employeeId');
1255
+ const groupsRaw = this._extractMappedAttribute(attrs, mapping['groups'], 'groups');
1256
+
1257
+ const roles = rolesRaw ? this._parseArrayAttribute(attrs, mapping['roles'] || '', 'roles') : undefined;
1258
+ const groups = groupsRaw ? this._parseArrayAttribute(attrs, mapping['groups'] || '', 'groups') : undefined;
1259
+
1260
+ const displayName = [firstName, lastName].filter(Boolean).join(' ') || assertionData.nameId;
1261
+
1262
+ if (!email) {
1263
+ throw this._buildAuthError(
1264
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
1265
+ 'Required attribute "email" not found in SAML assertion',
1266
+ );
1267
+ }
1268
+
1269
+ return {
1270
+ providerUserId: '', // set by caller after derivation (D15, E29)
1271
+ email: email.toLowerCase(),
1272
+ emailVerified: true, // enterprise IdP is trusted for email verification
1273
+ firstName: firstName || undefined,
1274
+ lastName: lastName || undefined,
1275
+ displayName: displayName || undefined,
1276
+ roles,
1277
+ groups,
1278
+ department: department || undefined,
1279
+ employeeId: employeeId || undefined,
1280
+ rawClaims: attrs as Record<string, unknown>,
1281
+ };
1282
+ }
1283
+
1284
+ /**
1285
+ * Resolve a single attribute value from the assertion using the
1286
+ * three-tier fallback strategy (E17).
1287
+ */
1288
+ private _extractMappedAttribute(
1289
+ attributes: Record<string, string | string[]>,
1290
+ configuredUri: string | undefined,
1291
+ fieldName: string,
1292
+ ): string | undefined {
1293
+ if (!configuredUri) {
1294
+ return this._tryAlternativeAttributes(attributes, fieldName);
1295
+ }
1296
+
1297
+ // Tier 1: Exact URI match
1298
+ const exactValue = this._resolveAttributeValue(attributes, configuredUri);
1299
+ if (exactValue) {
1300
+ this.logDebug(`Attribute "${fieldName}" resolved via exact match`, { uri: configuredUri });
1301
+ return exactValue;
1302
+ }
1303
+
1304
+ // Tier 2: Case-insensitive friendly name match
1305
+ const lowerUri = configuredUri.toLowerCase();
1306
+ for (const [key, val] of Object.entries(attributes)) {
1307
+ if (key.toLowerCase() === lowerUri) {
1308
+ const resolved = Array.isArray(val) ? val[0] : val;
1309
+ if (resolved) {
1310
+ this.logDebug(`Attribute "${fieldName}" resolved via case-insensitive match`, { key });
1311
+ return resolved;
1312
+ }
1313
+ }
1314
+ }
1315
+
1316
+ // Tier 3: Common alternatives
1317
+ return this._tryAlternativeAttributes(attributes, fieldName);
1318
+ }
1319
+
1320
+ private _tryAlternativeAttributes(
1321
+ attributes: Record<string, string | string[]>,
1322
+ fieldName: string,
1323
+ ): string | undefined {
1324
+ const alternatives = COMMON_ATTRIBUTE_ALTERNATIVES[fieldName];
1325
+ if (!alternatives) return undefined;
1326
+
1327
+ for (const alt of alternatives) {
1328
+ const value = this._resolveAttributeValue(attributes, alt);
1329
+ if (value) {
1330
+ this.logDebug(`Attribute "${fieldName}" resolved via alternative`, { uri: alt });
1331
+ return value;
1332
+ }
1333
+ }
1334
+ return undefined;
1335
+ }
1336
+
1337
+ /**
1338
+ * Parse an attribute as an array (for roles, groups).
1339
+ * Handles both string[] and comma-separated string values.
1340
+ */
1341
+ private _parseArrayAttribute(
1342
+ attributes: Record<string, string | string[]>,
1343
+ configuredUri: string,
1344
+ fieldName: string,
1345
+ ): string[] | undefined {
1346
+ const raw = attributes[configuredUri];
1347
+ if (!raw) {
1348
+ const alternatives = COMMON_ATTRIBUTE_ALTERNATIVES[fieldName];
1349
+ if (alternatives) {
1350
+ for (const alt of alternatives) {
1351
+ const altRaw = attributes[alt];
1352
+ if (altRaw) {
1353
+ return Array.isArray(altRaw) ? altRaw : altRaw.split(',').map(s => s.trim());
1354
+ }
1355
+ }
1356
+ }
1357
+ return undefined;
1358
+ }
1359
+ return Array.isArray(raw) ? raw : raw.split(',').map(s => s.trim());
1360
+ }
1361
+
1362
+ private _resolveAttributeValue(
1363
+ attributes: Record<string, string | string[]>,
1364
+ uri: string,
1365
+ ): string | undefined {
1366
+ const value = attributes[uri];
1367
+ if (!value) return undefined;
1368
+ return Array.isArray(value) ? value[0] : value;
1369
+ }
1370
+
1371
+ // ═══════════════════════════════════════════════════════════════
1372
+ // Connection Loading
1373
+ // ═══════════════════════════════════════════════════════════════
1374
+
1375
+ /**
1376
+ * Load an SSO connection by ID, trying both organization and application scopes.
1377
+ * The connection's polymorphic FK field (`organizationId` / `applicationId`)
1378
+ * determines the scope context.
1379
+ */
1380
+ private async _loadConnectionFromAnyScope(
1381
+ ec: ExecutionContext<any>,
1382
+ connectionId: string,
1383
+ ): Promise<{ connection: SsoConnectionBase; scopeType: string; scopeId: string }> {
1384
+ const resourceTypes = [
1385
+ { type: CoreResourceType.ORGANIZATION_SSO_CONNECTIONS, scopeKey: 'organizationId', scopeType: AuthScopeType.ORGANIZATION },
1386
+ { type: CoreResourceType.APPLICATION_SSO_CONNECTIONS, scopeKey: 'applicationId', scopeType: AuthScopeType.APPLICATION },
1387
+ ];
1388
+
1389
+ for (const { type, scopeKey, scopeType } of resourceTypes) {
1390
+ try {
1391
+ const connection = await this.servicesRegistryHandler.read<SsoConnectionBase>(type, ec, { _id: connectionId });
1392
+ if (connection) {
1393
+ const scopeId = (connection as SsoConnectionWithScope)[scopeKey];
1394
+ if (scopeId) {
1395
+ return { connection, scopeType, scopeId };
1396
+ }
1397
+ }
1398
+ } catch (error) {
1399
+ if (isWildoBackendError(error)) {
1400
+ // Not-found errors from read() are expected — continue to next scope
1401
+ const errorRef = error.customMessageReference;
1402
+ if (errorRef && errorRef !== ErrorCustomMessageReference.NOT_FOUND) {
1403
+ throw error;
1404
+ }
1405
+ }
1406
+ }
1407
+ }
1408
+
1409
+ throw this._buildAuthError(
1410
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
1411
+ `SSO connection not found: ${connectionId}`,
1412
+ );
1413
+ }
1414
+
1415
+ /**
1416
+ * Find all SsoConnections whose `saml.entityId` matches the given issuer.
1417
+ * Searches both organization and application scopes for IdP-initiated resolution (D14).
1418
+ */
1419
+ private async _findConnectionsByEntityId(
1420
+ ec: ExecutionContext<any>,
1421
+ entityId: string,
1422
+ ): Promise<Array<{ connection: SsoConnectionBase; scopeType: string; scopeId: string }>> {
1423
+ const results: Array<{ connection: SsoConnectionBase; scopeType: string; scopeId: string }> = [];
1424
+
1425
+ const resourceTypes = [
1426
+ { type: CoreResourceType.ORGANIZATION_SSO_CONNECTIONS, scopeKey: 'organizationId', scopeType: AuthScopeType.ORGANIZATION },
1427
+ { type: CoreResourceType.APPLICATION_SSO_CONNECTIONS, scopeKey: 'applicationId', scopeType: AuthScopeType.APPLICATION },
1428
+ ];
1429
+
1430
+ for (const { type, scopeKey, scopeType } of resourceTypes) {
1431
+ try {
1432
+ const connections = await this.servicesRegistryHandler.list<SsoConnectionBase>(type, ec, {
1433
+ protocol: SsoProtocol.SAML,
1434
+ 'saml.entityId': entityId,
1435
+ enabled: true,
1436
+ } as Record<string, unknown>, undefined, { paginated: false }) as SsoConnectionBase[];
1437
+
1438
+ const connectionsList = connections ?? [];
1439
+ for (const conn of connectionsList) {
1440
+ const scopeId = (conn as SsoConnectionWithScope)[scopeKey];
1441
+ if (scopeId) {
1442
+ results.push({ connection: conn, scopeType, scopeId });
1443
+ }
1444
+ }
1445
+ } catch (error) {
1446
+ if (isWildoBackendError(error)) throw error;
1447
+ this.logger.warn('Failed to search SSO connections by entityId', {
1448
+ resourceType: type,
1449
+ error: error instanceof Error ? error.message : String(error),
1450
+ });
1451
+ }
1452
+ }
1453
+
1454
+ return results;
1455
+ }
1456
+
1457
+ // ═══════════════════════════════════════════════════════════════
1458
+ // Resolved Connection Builder
1459
+ // ═══════════════════════════════════════════════════════════════
1460
+
1461
+ private _buildResolvedConnection(
1462
+ connection: SsoConnectionBase,
1463
+ scopeType: string,
1464
+ scopeId: string,
1465
+ appDomain: string,
1466
+ ): SAMLResolvedConnection {
1467
+ const saml = connection.saml!;
1468
+
1469
+ const attributeMapping: Record<string, string> = {};
1470
+ if (saml.attributeMapping) {
1471
+ for (const [key, value] of Object.entries(saml.attributeMapping)) {
1472
+ if (typeof value === 'string') {
1473
+ attributeMapping[key] = value;
1474
+ }
1475
+ }
1476
+ }
1477
+
1478
+ return {
1479
+ source: SsoProtocol.SAML,
1480
+ connectionType: SsoConnectionType.ENTERPRISE,
1481
+ providerRef: connection.externalProviderId || connection._id,
1482
+ displayName: connection.displayName,
1483
+ organization: {
1484
+ organizationId: scopeId,
1485
+ connectionId: connection._id,
1486
+ scopeType: scopeType as AuthScopeType,
1487
+ scopeId,
1488
+ autoCreateUsers: connection.autoCreateUsers,
1489
+ autoVerifyEmail: connection.autoVerifyEmail,
1490
+ defaultRole: connection.defaultRole,
1491
+ roleMapping: connection.roleMapping,
1492
+ groupMapping: connection.groupMapping,
1493
+ allowedDomains: connection.allowedDomains,
1494
+ },
1495
+ idpEntityId: saml.entityId,
1496
+ ssoUrl: saml.ssoUrl,
1497
+ sloUrl: saml.sloUrl,
1498
+ x509Certificates: saml.x509Certificates,
1499
+ spEntityId: `https://${appDomain}/saml/sp/${scopeType}/${scopeId}`,
1500
+ acsUrl: `https://${appDomain}/auth/saml/acs`,
1501
+ nameIdFormat: saml.nameIdFormat,
1502
+ attributeMapping,
1503
+ allowIdpInitiated: saml.allowIdpInitiated,
1504
+ allowedClockDrift: saml.allowedClockDrift,
1505
+ signRequests: saml.signRequests,
1506
+ wantAssertionsSigned: saml.wantAssertionsSigned,
1507
+ };
1508
+ }
1509
+
1510
+ // ═══════════════════════════════════════════════════════════════
1511
+ // XML / Issuer Extraction
1512
+ // ═══════════════════════════════════════════════════════════════
1513
+
1514
+ /**
1515
+ * Lightweight extraction of the Response-level `<Issuer>` element
1516
+ * from a base64-encoded SAML Response. Used before full samlify
1517
+ * parsing for IdP-initiated connection resolution and SP-initiated
1518
+ * Issuer validation.
1519
+ */
1520
+ private _extractIssuerFromResponse(samlResponseBase64: string): string | null {
1521
+ try {
1522
+ const xml = Buffer.from(samlResponseBase64, 'base64').toString('utf-8');
1523
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1524
+ const { DOMParser } = require('@xmldom/xmldom');
1525
+ const doc = new DOMParser().parseFromString(xml, 'text/xml');
1526
+
1527
+ const responseElements = doc.getElementsByTagNameNS('*', 'Response');
1528
+ if (responseElements.length === 0) return null;
1529
+
1530
+ const children = responseElements.item(0).childNodes;
1531
+ for (let i = 0; i < children.length; i++) {
1532
+ const child = children.item(i);
1533
+ if (child.localName === 'Issuer') {
1534
+ return child.textContent?.trim() || null;
1535
+ }
1536
+ }
1537
+ return null;
1538
+ } catch {
1539
+ return null;
1540
+ }
1541
+ }
1542
+
1543
+ // ═══════════════════════════════════════════════════════════════
1544
+ // URL Validation (SC-26, E21)
1545
+ // ═══════════════════════════════════════════════════════════════
1546
+
1547
+ /**
1548
+ * Validate returnUrl to prevent open redirects via RelayState.
1549
+ * Must be a relative path (`/...`) or match one of the configured frontend
1550
+ * service origins.
1551
+ */
1552
+ private _validateReturnUrl(returnUrl: string, appDomain: string): void {
1553
+ if (returnUrl.startsWith('/') && !returnUrl.startsWith('//')) return;
1554
+
1555
+ try {
1556
+ const parsed = new URL(returnUrl);
1557
+ const allowedOrigins = new Set<string>([`https://${appDomain}`]);
1558
+ for (const frontendServiceName of Object.keys(this.appConfigService.config.frontendServices ?? {})) {
1559
+ const publicUrl = AuthControllerUtils.lookupFrontendPublicUrl(
1560
+ this.appConfigService.config,
1561
+ frontendServiceName,
1562
+ );
1563
+ if (!publicUrl) {
1564
+ continue;
1565
+ }
1566
+ allowedOrigins.add(new URL(publicUrl).origin);
1567
+ }
1568
+
1569
+ if (allowedOrigins.has(parsed.origin)) return;
1570
+ } catch { /* invalid URL — reject */ }
1571
+
1572
+ throw this._buildAuthError(
1573
+ ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
1574
+ 'Invalid returnUrl: must be a relative path or same-origin URL',
1575
+ );
1576
+ }
1577
+
1578
+ // ═══════════════════════════════════════════════════════════════
1579
+ // Audit Helpers
1580
+ // ═══════════════════════════════════════════════════════════════
1581
+
1582
+ private _emitFailureAudit(
1583
+ connection: SAMLResolvedConnection,
1584
+ failureReason: string,
1585
+ clientContext?: { ipAddress: string; userAgent: string },
1586
+ ): void {
1587
+ this.auditLogsService.logUserSSOLoginFailed({
1588
+ email: '',
1589
+ providerRef: connection.providerRef,
1590
+ connectionType: SsoConnectionType.ENTERPRISE,
1591
+ authSource: AuthSource.SAML,
1592
+ organizationId: connection.organization?.organizationId,
1593
+ failureReason,
1594
+ ipAddress: clientContext?.ipAddress || 'unknown',
1595
+ userAgent: clientContext?.userAgent || 'unknown',
1596
+ }).catch(() => { /* audit failure must not block error propagation */ });
1597
+
1598
+ this.auditLogsService.logSAMLEvent(
1599
+ CoreAuditableEventType.SAML_LOGIN_FAILED,
1600
+ ResourceOperationRiskLevel.MEDIUM,
1601
+ {
1602
+ connectionId: connection.organization?.connectionId,
1603
+ idpEntityId: connection.idpEntityId,
1604
+ errorReference: failureReason,
1605
+ organizationId: connection.organization?.organizationId,
1606
+ authSource: AuthSource.SAML,
1607
+ },
1608
+ ).catch(() => { /* fire-and-forget */ });
1609
+ }
1610
+
1611
+ // ═══════════════════════════════════════════════════════════════
1612
+ // Infrastructure Helpers
1613
+ // ═══════════════════════════════════════════════════════════════
1614
+
1615
+ private _getAppDomain(): string {
1616
+ const config = this.appConfigService.config;
1617
+ const domain = process.env.APP_DOMAIN || config?.auth?.passkeyConfig?.rpId;
1618
+ if (!domain) {
1619
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
1620
+ customMessageReference: ErrorCustomMessageReference.SAML_ASSERTION_INVALID,
1621
+ context: { message: 'APP_DOMAIN environment variable must be set for SAML' },
1622
+ });
1623
+ }
1624
+ return domain;
1625
+ }
1626
+
1627
+ /**
1628
+ * Pre-auth EC for SAML operations (ACS callback, SLO, SP-initiated logout).
1629
+ * Caller identity unknown at this point — uses PUBLIC_EXECUTION with APP_PUBLIC.
1630
+ * Primary intent: user lookup/provisioning from SAML assertion.
1631
+ */
1632
+ private async _getInternalExecutionContext(): Promise<ExecutionContext<any>> {
1633
+ return this.authEcFactory.createForPreAuthOperation(this.authEcFactory.getUsersReadOperationPath());
1634
+ }
1635
+
1636
+ // Returns `any` to avoid `typeof import('samlify')` which forces tsc to resolve the CJS-only samlify package during declaration emit.
1637
+ private _getSamlifyModule(): any {
1638
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1639
+ const saml = require('samlify');
1640
+ if (!this.samlifyInitialized) {
1641
+ const java = checkJavaAvailability();
1642
+ if (!java.available) {
1643
+ const msg =
1644
+ 'SAML XSD validation requires Java (JRE 8+). Install Java or set JAVA_HOME. ' +
1645
+ 'Docker: add openjdk17-jre-headless. Reason: ' + (java.reason ?? 'java not found');
1646
+ if (isTestEnvironment()) {
1647
+ this.logger.warn(`[SAML] ${msg} — tests may use mock parser (SAMLResponseParserOverride).`);
1648
+ } else {
1649
+ throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
1650
+ customMessageReference: ErrorCustomMessageReference.SAML_JAVA_REQUIRED,
1651
+ context: { message: msg },
1652
+ });
1653
+ }
1654
+ } else {
1655
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1656
+ const validator = require('@authenio/samlify-xsd-schema-validator');
1657
+ saml.setSchemaValidator(validator);
1658
+ this.logDebug('samlify XSD schema validator initialized');
1659
+ }
1660
+ this.samlifyInitialized = true;
1661
+ }
1662
+ return saml;
1663
+ }
1664
+
1665
+ private _buildAuthError(
1666
+ ref: ErrorCustomMessageReference,
1667
+ message: string,
1668
+ extra?: Record<string, unknown>,
1669
+ ): ReturnType<ErrorBuilderBackendService['buildError']> {
1670
+ return this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {
1671
+ customMessageReference: ref,
1672
+ context: { message, ...extra },
1673
+ });
1674
+ }
1675
+
1676
+ // ═══════════════════════════════════════════════════════════════
1677
+ // Encrypted Assertion Decryption Error Classification (E28, SC-31, SC-32)
1678
+ // ═══════════════════════════════════════════════════════════════
1679
+
1680
+ /**
1681
+ * Detect whether a samlify error is a decryption failure.
1682
+ * samlify throws errors with specific codes for assertion decryption failures.
1683
+ */
1684
+ private _isDecryptionError(error: unknown): boolean {
1685
+ if (!(error instanceof Error)) return false;
1686
+ const msg = error.message.toLowerCase();
1687
+ return msg.includes('decrypt') ||
1688
+ msg.includes('encryption') ||
1689
+ msg.includes('ERR_EXCEPTION_OF_ASSERTION_DECRYPTION'.toLowerCase()) ||
1690
+ msg.includes('encryptedassertion') ||
1691
+ msg.includes('pkcs') ||
1692
+ msg.includes('err_ossl');
1693
+ }
1694
+
1695
+ /**
1696
+ * Classify a decryption error into a specific error type:
1697
+ * - Key mismatch: SP private key doesn't match the encryption certificate
1698
+ * - Algorithm unsupported: IdP used an encryption algorithm we don't support
1699
+ * - Generic: other decryption failures
1700
+ */
1701
+ private _classifyDecryptionError(error: unknown): ReturnType<ErrorBuilderBackendService['buildError']> {
1702
+ const msg = error instanceof Error ? error.message : String(error);
1703
+ const msgLower = msg.toLowerCase();
1704
+
1705
+ if (msgLower.includes('key') || msgLower.includes('pkcs') || msgLower.includes('err_ossl_rsa') || msgLower.includes('padding')) {
1706
+ return this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {
1707
+ customMessageReference: ErrorCustomMessageReference.SAML_SP_KEY_MISMATCH,
1708
+ context: { message: 'SP private key does not match the encryption certificate.' },
1709
+ });
1710
+ }
1711
+
1712
+ if (msgLower.includes('algorithm') || msgLower.includes('unsupported') || msgLower.includes('err_ossl_evp')) {
1713
+ const algorithmMatch = msg.match(/algorithm[:\s]*([^\s,]+)/i);
1714
+ return this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {
1715
+ customMessageReference: ErrorCustomMessageReference.SAML_UNSUPPORTED_ENCRYPTION,
1716
+ context: {
1717
+ message: `Unsupported encryption algorithm${algorithmMatch ? `: ${algorithmMatch[1]}` : ''}`,
1718
+ },
1719
+ });
1720
+ }
1721
+
1722
+ return this.errorBuilder.buildError(ErrorType.AUTHENTICATION, undefined, {
1723
+ customMessageReference: ErrorCustomMessageReference.SAML_DECRYPTION_FAILED,
1724
+ context: { message: 'Failed to decrypt SAML assertion.' },
1725
+ });
1726
+ }
1727
+ }