@wildo-ai/saas-backend-lib 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1358) hide show
  1. package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
  2. package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/test-container.d.ts.map +1 -1
  5. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
  7. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  8. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
  9. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  11. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  12. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  13. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  15. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  19. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  20. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  21. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  22. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  23. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  24. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  25. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +210 -0
  26. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  27. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  28. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  30. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  31. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
  36. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  37. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  39. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  40. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  44. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +220 -25
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +191 -26
  54. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
  56. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
  58. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  60. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  61. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  62. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  63. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  66. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  68. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  70. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
  74. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  76. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  77. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +106 -0
  78. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +266 -20
  80. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  81. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
  83. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  84. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  86. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +34 -3
  88. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  89. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  92. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  93. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  94. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  95. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  96. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  99. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  102. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  103. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  104. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  105. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  106. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  107. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  108. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  109. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  110. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  111. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  112. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  113. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  114. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  115. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  116. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  117. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  118. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +571 -45
  119. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  120. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  121. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  122. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  123. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  124. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  125. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  127. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  128. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  129. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  130. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  131. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  132. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  133. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  134. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  135. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  136. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  137. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  138. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  139. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  140. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  141. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  142. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +475 -0
  143. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  144. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  145. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  146. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  147. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  148. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  149. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  150. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  151. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  152. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  153. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  154. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  155. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  156. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  157. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  158. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  159. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  160. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  161. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  162. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  163. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  164. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  165. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  166. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
  167. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  168. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +70 -1
  169. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  170. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +98 -2
  171. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  172. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  173. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  174. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  175. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  176. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  177. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  178. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  179. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  180. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  181. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  182. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  183. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  184. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +21 -1
  185. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  186. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +109 -2
  187. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  188. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  189. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  190. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  191. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  192. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  193. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  194. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  195. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  196. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +310 -29
  197. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  198. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  199. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  200. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  201. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  202. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  203. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  204. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  205. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  206. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  207. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  208. package/dist/esm/companion-exports.d.ts.map +1 -1
  209. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  210. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  211. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  212. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  213. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  214. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  215. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  216. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
  217. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  218. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
  219. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  220. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +350 -10
  221. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  222. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +562 -10
  223. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  224. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  225. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  226. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  227. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
  228. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  229. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
  230. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  231. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  232. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  233. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
  234. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  235. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  236. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  237. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  238. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  239. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  240. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +52 -0
  241. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  242. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  243. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  244. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  245. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  246. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  247. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  248. package/dist/esm/compliance/index.d.ts.map +1 -1
  249. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  250. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  251. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  252. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  253. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  254. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  255. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  256. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  257. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  258. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  259. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  260. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  261. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  262. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  264. package/dist/esm/config/models/app-config.backend.schemas.d.ts +145 -49
  265. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  266. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  267. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  268. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  269. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  270. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  271. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  272. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  273. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  274. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  276. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  277. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  278. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  279. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  280. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  281. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  282. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  283. package/dist/esm/config/services/app-configuration-loader.backend.service.js +71 -76
  284. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  285. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  286. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  287. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  288. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
  289. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  290. package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
  291. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  292. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +37 -0
  293. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  294. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +69 -1
  295. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  296. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  297. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  298. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  299. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  300. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  301. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  302. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  303. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  304. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  305. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  306. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  307. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  308. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  309. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  310. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  312. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  313. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  314. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  315. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  316. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  317. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  318. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  319. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  320. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  321. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  322. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  323. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  324. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  325. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  326. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  327. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  328. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  329. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  330. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  331. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  332. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  333. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  334. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  335. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  336. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  337. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  338. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  339. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  340. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  341. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  342. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  343. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  344. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  345. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  346. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  347. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  348. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  349. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  350. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  351. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  352. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  353. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  354. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  355. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  356. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  357. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  358. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  359. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  360. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  361. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  362. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  363. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  364. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  365. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  366. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  367. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  368. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  369. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  370. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  371. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  372. package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
  373. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  374. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  375. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  376. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  377. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  378. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  379. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  380. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  381. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  382. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  383. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  384. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  385. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  386. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  387. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  388. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  389. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  390. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  391. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
  392. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  393. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
  394. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  395. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  396. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  397. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  398. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  399. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  400. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  401. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +306 -0
  402. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  403. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +379 -0
  404. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  405. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  406. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  407. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  408. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  409. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  410. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  411. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +235 -0
  412. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  413. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  414. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  415. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  416. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  417. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  418. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  419. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  420. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  421. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  422. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  423. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  424. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  425. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  426. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  427. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  428. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  429. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  430. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  431. package/dist/esm/external-providers/services/document-extraction.backend.service.js +181 -100
  432. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  433. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  434. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  435. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  436. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  437. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +413 -7
  438. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  439. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +684 -45
  440. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  441. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  442. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  443. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +84 -5
  444. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  445. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  446. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  447. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  448. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  449. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  450. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  451. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  452. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  453. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  454. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  455. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  456. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  457. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  458. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  459. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  460. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  461. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  462. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  463. package/dist/esm/files/controllers/file.controller.js +21 -13
  464. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  465. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  466. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  467. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  468. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  469. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +260 -36
  470. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  471. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  472. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  473. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  474. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  475. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  476. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  477. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  478. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  479. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  480. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  481. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  482. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  483. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  484. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  485. package/dist/esm/files/services/file-scanning.backend.service.js +202 -17
  486. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  487. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  488. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  489. package/dist/esm/files/services/file-text-extraction.backend.service.js +175 -13
  490. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  491. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
  492. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  493. package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
  494. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  495. package/dist/esm/files/services/files.backend.service.d.ts +68 -0
  496. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  497. package/dist/esm/files/services/files.backend.service.js +177 -5
  498. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  499. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  500. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  501. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  502. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  503. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  504. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  505. package/dist/esm/files/storage/file-storage-provider.types.d.ts +52 -11
  506. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  507. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  508. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  509. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  510. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  511. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  512. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  513. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  514. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  515. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  516. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  517. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  518. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  519. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  520. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  521. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  522. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  523. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  524. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  525. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  526. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  527. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  528. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  529. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  530. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  531. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  532. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  533. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  534. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  535. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  536. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  537. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  538. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  539. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  540. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  541. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  542. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  543. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  544. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  545. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  546. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  547. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  548. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  549. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  550. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  551. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  552. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  553. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  555. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  556. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  557. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  558. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  559. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  560. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  561. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  562. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
  563. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  564. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  565. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  566. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  567. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  568. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  569. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  570. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  571. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  572. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  573. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  574. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  575. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  576. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  577. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  578. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  579. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  580. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  581. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  582. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  583. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  584. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  585. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  586. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  587. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  588. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  589. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  590. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +179 -8
  591. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  592. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +436 -34
  593. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  594. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  595. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  596. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  597. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  598. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  599. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  600. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  601. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  602. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  603. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  604. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  605. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  606. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  607. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +132 -6
  608. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  609. package/dist/esm/flows-actors/services/agents.backend.service.js +467 -49
  610. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  611. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  612. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +50 -1
  613. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  614. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +270 -20
  615. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  616. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  617. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  618. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  619. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  620. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  621. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  622. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  623. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  624. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  625. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  626. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  627. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  628. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +371 -0
  629. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  630. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  631. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  632. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  633. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  634. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  635. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  636. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  637. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  638. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  639. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  640. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  641. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  642. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +17 -4
  644. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  645. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  646. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  647. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  648. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  649. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  650. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  651. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  652. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  653. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  655. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  656. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  657. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  658. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  659. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  660. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  661. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  662. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  663. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  664. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  665. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  666. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  668. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  669. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  670. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  671. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  672. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  673. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  674. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  675. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  676. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  677. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  678. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  679. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  680. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  681. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  682. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  683. package/dist/esm/index.d.ts +11 -5
  684. package/dist/esm/index.d.ts.map +1 -1
  685. package/dist/esm/index.js +31 -5
  686. package/dist/esm/index.js.map +1 -1
  687. package/dist/esm/inject/models/container.d.ts +10 -0
  688. package/dist/esm/inject/models/container.d.ts.map +1 -1
  689. package/dist/esm/inject/models/container.js +126 -10
  690. package/dist/esm/inject/models/container.js.map +1 -1
  691. package/dist/esm/inject/models/service-types.d.ts +20 -3
  692. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  693. package/dist/esm/inject/models/service-types.js +22 -3
  694. package/dist/esm/inject/models/service-types.js.map +1 -1
  695. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  696. package/dist/esm/mcp/controllers/mcp.controller.js +70 -3
  697. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  698. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  699. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  700. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  701. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
  702. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  703. package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
  704. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  705. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  706. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
  707. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  708. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  709. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  710. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  711. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  712. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  713. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  714. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  715. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  716. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  717. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  718. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  719. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  720. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  721. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  722. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  723. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  724. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  725. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  726. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  727. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  728. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  729. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  730. package/dist/esm/monitoring/logger/services/logger.service.d.ts +24 -0
  731. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  732. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  733. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  734. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  735. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  736. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  737. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  738. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  739. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +313 -0
  740. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  741. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +389 -0
  742. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  743. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  744. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  745. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  746. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  747. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  748. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  749. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  750. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  751. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  752. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  753. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  754. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  755. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  756. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  757. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  758. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  759. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  760. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  761. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  762. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  763. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  764. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  765. package/dist/esm/notifications/email/services/email.backend.service.d.ts +102 -5
  766. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  767. package/dist/esm/notifications/email/services/email.backend.service.js +222 -70
  768. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  769. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  770. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  771. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  772. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  773. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  774. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  775. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  776. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  777. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  778. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
  779. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  780. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
  781. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  782. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  783. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  784. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  785. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  786. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  787. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  788. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  789. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  790. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  791. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  792. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  793. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  794. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  795. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  796. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
  797. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  798. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  799. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  800. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
  801. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  802. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  803. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  804. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  805. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  806. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  807. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
  808. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  809. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  810. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  811. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  812. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  813. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  814. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  815. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  816. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  817. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  818. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  819. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  820. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  821. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  822. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  823. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  825. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  826. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  827. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  828. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  829. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  830. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  831. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  832. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  833. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  834. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  836. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  837. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  838. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  839. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  840. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  841. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  842. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  843. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  844. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  845. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  846. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  847. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  848. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  849. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  850. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  851. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  852. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  853. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  854. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  855. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  856. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  857. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  858. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  859. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  860. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  861. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  862. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  863. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  864. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  865. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  866. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  867. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  868. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  869. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  870. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  871. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  872. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  873. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  874. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  875. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  876. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  877. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  878. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  879. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  880. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  881. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  882. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  883. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  884. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  885. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  886. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  887. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  888. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  889. package/dist/esm/queue/queue.backend.service.js +26 -4
  890. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  891. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  892. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  893. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  894. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  895. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  896. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  897. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  898. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  899. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  900. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  901. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  902. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  903. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  904. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  905. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  906. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  907. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  908. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  909. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  910. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  911. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  913. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  914. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  915. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  916. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  917. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  918. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  919. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  920. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  921. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  922. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  924. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  925. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  926. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  927. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  928. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  929. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  930. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  931. package/dist/esm/requests/service/websocket.service.js +81 -9
  932. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  933. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  934. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  935. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  936. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  937. package/dist/esm/resources/models/index.d.ts.map +1 -1
  938. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  939. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  940. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  941. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  942. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  943. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  944. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  945. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  946. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  947. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  948. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  949. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  950. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  951. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  952. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  953. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  954. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  955. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  956. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  957. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +83 -5
  958. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  959. package/dist/esm/resources/services/resources-registry.backend.service.js +121 -6
  960. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  961. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  962. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  963. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  964. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  965. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  966. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  967. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  968. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  969. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  970. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  971. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  972. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  973. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  974. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  975. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  976. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  977. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  978. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  979. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  980. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  981. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  982. package/dist/esm/runtime/services/http-server.backend.service.js +191 -1
  983. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  984. package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
  985. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  986. package/dist/esm/runtime/services/start-application.backend.service.js +287 -89
  987. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  988. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  989. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  990. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  991. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  992. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  994. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  995. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  996. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  997. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  999. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  1000. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  1001. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  1002. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  1003. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  1004. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  1005. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  1006. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  1007. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +113 -4
  1008. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  1009. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  1010. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  1011. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  1012. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  1013. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  1014. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  1015. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  1017. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  1018. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  1019. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  1020. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  1021. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  1022. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  1023. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  1024. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  1025. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  1026. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +30 -0
  1027. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  1028. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  1029. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  1030. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  1031. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  1032. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  1033. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  1034. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  1035. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  1036. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  1037. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  1038. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  1039. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  1040. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  1041. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  1042. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  1043. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  1044. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  1045. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  1046. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  1047. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  1048. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  1049. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  1050. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  1051. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  1052. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  1053. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  1054. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  1055. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  1056. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  1057. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +197 -0
  1058. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  1059. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +384 -53
  1060. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  1061. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  1062. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  1063. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  1064. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
  1065. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  1066. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  1067. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  1068. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  1069. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  1070. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  1071. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  1072. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  1073. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  1074. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  1075. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +260 -27
  1076. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  1077. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  1078. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  1079. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +70 -4
  1080. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  1081. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  1082. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  1083. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  1084. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  1085. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  1086. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  1087. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  1088. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  1089. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  1090. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
  1091. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  1092. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
  1093. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  1094. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  1095. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  1096. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  1097. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  1098. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  1099. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  1100. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  1101. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  1102. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  1103. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  1104. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  1105. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  1106. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  1107. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  1108. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  1109. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +339 -0
  1110. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  1111. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  1112. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  1113. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  1114. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  1115. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  1116. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  1117. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  1118. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  1119. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  1120. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  1121. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  1122. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  1123. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  1124. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  1125. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  1126. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  1127. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  1128. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  1129. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  1130. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  1131. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  1132. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  1133. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  1134. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  1135. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  1136. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  1137. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  1138. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  1139. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  1140. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  1141. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  1142. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  1143. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  1144. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  1145. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  1146. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  1147. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  1148. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  1149. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  1150. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  1151. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  1152. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  1153. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  1154. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  1155. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  1156. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  1157. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  1158. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  1159. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  1160. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  1161. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  1162. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  1163. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  1164. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  1165. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  1166. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  1167. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  1168. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  1169. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  1170. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  1171. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  1172. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  1173. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  1174. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  1175. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  1176. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  1177. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  1178. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  1179. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  1180. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  1181. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  1182. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  1183. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  1184. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  1185. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +37 -124
  1186. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  1187. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  1188. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  1189. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  1190. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  1191. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  1192. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  1193. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +133 -0
  1194. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  1195. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +137 -0
  1196. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  1197. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +134 -1
  1198. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  1199. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +152 -5
  1200. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  1201. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +146 -8
  1202. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  1203. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +328 -29
  1204. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  1205. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  1206. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  1207. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  1208. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  1209. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  1210. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  1211. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  1212. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  1213. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +299 -0
  1214. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  1215. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +953 -0
  1216. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  1217. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +99 -0
  1218. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  1219. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  1220. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  1221. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  1222. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  1223. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  1224. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  1225. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +210 -0
  1226. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  1227. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +423 -0
  1228. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  1229. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  1230. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  1231. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  1232. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  1233. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  1234. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  1235. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +282 -0
  1236. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  1237. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +125 -0
  1238. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  1239. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +123 -0
  1240. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  1241. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  1242. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  1243. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  1244. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  1245. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +214 -0
  1246. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  1247. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +430 -0
  1248. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  1249. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  1250. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  1251. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  1252. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  1253. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +98 -0
  1254. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  1255. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  1256. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  1257. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  1258. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  1259. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  1260. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  1261. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  1262. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  1263. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  1264. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  1265. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  1266. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  1267. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  1268. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  1269. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  1270. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  1271. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  1272. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  1273. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  1274. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  1275. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
  1276. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  1277. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
  1278. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  1279. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  1280. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  1281. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  1282. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  1283. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  1284. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  1285. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  1286. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  1287. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  1288. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1289. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1290. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  1291. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1292. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  1293. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1294. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  1295. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1296. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  1297. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1298. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1299. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1300. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1301. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1302. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1303. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1304. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1305. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1306. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1307. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  1308. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1309. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  1310. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1311. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  1312. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1313. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1314. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1315. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1316. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1317. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  1318. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1319. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  1320. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1321. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  1322. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  1323. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  1324. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  1325. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1326. package/dist/esm/testing.d.ts.map +1 -1
  1327. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1328. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1329. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1330. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  1331. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  1332. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  1333. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  1334. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1335. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1336. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1337. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1338. package/package.json +11 -9
  1339. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1340. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1341. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1342. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1343. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  1344. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  1345. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  1346. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  1347. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  1348. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  1349. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  1350. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  1351. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  1352. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  1353. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  1354. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  1355. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  1356. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  1357. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  1358. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sso-connection.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../../../src/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SSO Connection Custom Implementations\n *\n * Implements READ, CREATE, UPDATE, DELETE, TEST_CONNECTION, DISCOVER_ENDPOINTS\n * on SSO connection polymorphic variants (ORG + APP).\n *\n * Patterns:\n * READ → (no custom impl) — oidc.clientSecret masking is framework-driven\n * via `.isWriteOnlySecret()` on the schema\n * CREATE → PREFIX_CORE_OPERATIONS — generates connectionId via crypto.randomUUID()\n * UPDATE → PREFIX_CORE_OPERATIONS — re-injects the stored oidc.clientSecret when\n * the client round-trips the `••••••••` mask (nested\n * field: whole-subdocument `$set` would otherwise drop it)\n * DELETE → PREFIX_CORE_OPERATIONS — orphan validation (warns if users would lose their only auth method)\n * TEST_CONNECTION → REPLACE_CORE_OPERATIONS — SAML → validate config (certs, URLs, SP metadata), OIDC → explicit unsupported result\n * DISCOVER_ENDPOINTS→ REPLACE_CORE_OPERATIONS — SAML → fetch + parse IdP metadata URL, OIDC → explicit unsupported result\n *\n * SAML helpers (cert validation, URL reachability, samlify init) are module-level\n * functions because the factory pattern does not support DI injection of arbitrary\n * services. Certificate validation uses Node.js crypto.X509Certificate directly.\n */\n\nimport crypto from 'node:crypto';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n ResourceOperationVariantType,\n SsoConnection_Operations,\n SsoConnectionDiscoverySource,\n SsoConnectionTestOverallStatus,\n SsoConnection_TestConnectionRequestDto,\n SsoConnection_DiscoverEndpointsRequestDto,\n ErrorType,\n ErrorCustomMessageReference,\n isWildoBackendError,\n AuthScopeType,\n SsoProtocol,\n WRITE_ONLY_SECRET_MASK,\n} from '@wildo-ai/saas-models';\nimport { WildoHeaderKeys } from '@wildo-ai/saas-models';\nimport type { UserIdentityLink, UserCredentials } from '@wildo-ai/saas-models';\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { ServicesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/services/services-registry-handler.backend.service';\nimport { describeCaughtError, projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\n\n// ── SSO connection polymorphic variant types ──────────────────────────\n\nconst AUTH_SSO_CONNECTION_VARIANT_TYPES = [\n CoreResourceType.ORGANIZATION_SSO_CONNECTIONS,\n CoreResourceType.APPLICATION_SSO_CONNECTIONS,\n] as const;\n\n// ── SAML Test / Discovery helpers ────────────────────────────────\n\nconst SAML_BINDINGS = {\n REDIRECT: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',\n POST: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',\n} as const;\n\nconst MAX_METADATA_SIZE = 2 * 1024 * 1024; // 2MB\n\nconst SHA1_RSA_OID = Buffer.from('06092a864886f70d010105', 'hex');\nconst ECDSA_SHA1_OID = Buffer.from('06072a8648ce3d0401', 'hex');\n\nconst SIG_ALG_OIDS: Array<{ oid: Buffer; name: string }> = [\n { oid: SHA1_RSA_OID, name: 'sha1WithRSAEncryption' },\n { oid: ECDSA_SHA1_OID, name: 'ecdsa-with-SHA1' },\n { oid: Buffer.from('06092a864886f70d01010b', 'hex'), name: 'sha256WithRSAEncryption' },\n { oid: Buffer.from('06082a8648ce3d040302', 'hex'), name: 'ecdsa-with-SHA256' },\n { oid: Buffer.from('06092a864886f70d01010c', 'hex'), name: 'sha384WithRSAEncryption' },\n { oid: Buffer.from('06082a8648ce3d040303', 'hex'), name: 'ecdsa-with-SHA384' },\n { oid: Buffer.from('06092a864886f70d01010d', 'hex'), name: 'sha512WithRSAEncryption' },\n { oid: Buffer.from('06082a8648ce3d040304', 'hex'), name: 'ecdsa-with-SHA512' },\n];\n\nfunction normalizePem(certPem: string): string {\n const trimmed = certPem.trim();\n if (trimmed.startsWith('-----BEGIN CERTIFICATE-----')) return trimmed;\n const cleanBase64 = trimmed.replace(/\\s/g, '');\n const lines: string[] = [];\n for (let i = 0; i < cleanBase64.length; i += 64) {\n lines.push(cleanBase64.substring(i, i + 64));\n }\n return `-----BEGIN CERTIFICATE-----\\n${lines.join('\\n')}\\n-----END CERTIFICATE-----`;\n}\n\nfunction getCertSignatureAlgorithm(der: Buffer): string {\n for (const { oid, name } of SIG_ALG_OIDS) {\n if (der.includes(oid)) return name;\n }\n return 'unknown';\n}\n\nfunction isSha1Algorithm(algorithm: string): boolean {\n const lower = algorithm.toLowerCase();\n return lower.includes('sha1') || lower.includes('sha-1');\n}\n\ninterface CertificateTestResult {\n index: number;\n valid: boolean;\n expiresAt: string;\n daysRemaining: number;\n algorithm: string;\n fingerprint: string;\n warnings: string[];\n}\n\nfunction validateCertificate(certPem: string, index: number): CertificateTestResult {\n try {\n const normalized = normalizePem(certPem);\n const x509 = new crypto.X509Certificate(normalized);\n const expiresAt = new Date(x509.validTo);\n const now = new Date();\n const daysRemaining = Math.floor((expiresAt.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));\n const isValid = now >= new Date(x509.validFrom) && now <= expiresAt;\n const algorithm = getCertSignatureAlgorithm(x509.raw);\n const fingerprint = x509.fingerprint256;\n const warnings: string[] = [];\n\n if (!isValid) {\n warnings.push(daysRemaining < 0 ? 'Certificate is expired' : 'Certificate is not yet valid');\n } else if (daysRemaining <= 30) {\n warnings.push(`Expires in ${daysRemaining} days`);\n }\n if (isSha1Algorithm(algorithm)) {\n warnings.push('Uses SHA-1 signature algorithm (insecure)');\n }\n\n return { index, valid: isValid, expiresAt: expiresAt.toISOString(), daysRemaining, algorithm, fingerprint, warnings };\n } catch (error) {\n return {\n index,\n valid: false,\n expiresAt: '',\n daysRemaining: -1,\n algorithm: 'unknown',\n fingerprint: '',\n warnings: [`Certificate parsing failed: ${describeCaughtError(error)}`],\n };\n }\n}\n\nasync function checkUrlReachability(url: string, timeoutMs: number = 5000): Promise<{ reachable: boolean; statusCode?: number; error?: string }> {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n signal: AbortSignal.timeout(timeoutMs),\n redirect: 'follow',\n });\n return { reachable: true, statusCode: response.status };\n } catch {\n try {\n const response = await fetch(url, {\n method: 'GET',\n signal: AbortSignal.timeout(timeoutMs),\n redirect: 'follow',\n });\n return { reachable: true, statusCode: response.status };\n } catch (getError) {\n return {\n reachable: false,\n error: describeCaughtError(getError),\n };\n }\n }\n}\n\nlet _samlifyInitialized = false;\n// Returns `any` to avoid `typeof import('samlify')` which forces tsc to resolve the CJS-only samlify package during declaration emit.\nfunction getSamlifyModule(): any {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const saml = require('samlify');\n if (!_samlifyInitialized) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const validator = require('@authenio/samlify-xsd-schema-validator');\n saml.setSchemaValidator(validator);\n _samlifyInitialized = true;\n }\n return saml;\n}\n\nfunction generateAndValidateSPMetadata(connection: Record<string, any>): { valid: boolean; error?: string } {\n try {\n const appDomain = process.env.APP_DOMAIN;\n const spCert = process.env.SAML_SP_CERTIFICATE;\n if (!appDomain) return { valid: false, error: 'APP_DOMAIN environment variable is not set' };\n if (!spCert) return { valid: false, error: 'SAML_SP_CERTIFICATE environment variable is not set' };\n\n const scopeType = connection.organizationId ? AuthScopeType.ORGANIZATION : AuthScopeType.APPLICATION;\n const scopeId = connection.organizationId || connection.applicationId;\n const entityID = `https://${appDomain}/saml/sp/${scopeType}/${scopeId}`;\n const acsUrl = `https://${appDomain}/auth/saml/acs`;\n\n const saml = getSamlifyModule();\n const sp = saml.ServiceProvider({\n entityID,\n authnRequestsSigned: true,\n wantAssertionsSigned: true,\n wantMessageSigned: true,\n signingCert: spCert,\n assertionConsumerService: [\n { Binding: SAML_BINDINGS.POST, Location: acsUrl },\n ],\n });\n\n const metadata = sp.getMetadata();\n if (typeof metadata === 'string' && metadata.includes('<EntityDescriptor')) {\n return { valid: true };\n }\n return { valid: false, error: 'Generated SP metadata is missing EntityDescriptor element' };\n } catch (error) {\n return { valid: false, error: `SP metadata generation failed: ${describeCaughtError(error)}` };\n }\n}\n\nasync function testSamlConnection(connection: Record<string, any>): Promise<Record<string, any>> {\n const samlConfig = connection.saml;\n const errors: string[] = [];\n const warnings: string[] = [];\n\n // 1. Validate IdP entity ID\n const entityIdConfigured = !!(samlConfig?.entityId);\n if (!entityIdConfigured) {\n errors.push('IdP Entity ID is not configured');\n }\n\n // 2. SSO URL reachability\n let ssoUrlReachable = false;\n let ssoUrlStatus: number | undefined;\n if (samlConfig?.ssoUrl) {\n const result = await checkUrlReachability(samlConfig.ssoUrl, 5000);\n ssoUrlReachable = result.reachable;\n ssoUrlStatus = result.statusCode;\n if (!result.reachable) errors.push(`SSO URL is not reachable: ${result.error}`);\n } else {\n errors.push('SSO URL is not configured');\n }\n\n // 3. Certificate validation (E8, E9, SC-1)\n const certificates: CertificateTestResult[] = [];\n const certs: string[] = samlConfig?.x509Certificates ?? [];\n for (let i = 0; i < certs.length; i++) {\n const certResult = validateCertificate(certs[i], i);\n certificates.push(certResult);\n if (!certResult.valid) {\n errors.push(`Certificate ${i}: ${certResult.warnings.join(', ')}`);\n } else if (certResult.warnings.length > 0) {\n warnings.push(...certResult.warnings.map((w: string) => `Certificate ${i}: ${w}`));\n }\n }\n if (certs.length === 0) {\n errors.push('No X.509 certificates configured');\n }\n\n // 4. SLO URL reachability (if configured)\n let sloUrlReachable: boolean | undefined;\n let sloUrlStatus: number | undefined;\n if (samlConfig?.sloUrl) {\n const result = await checkUrlReachability(samlConfig.sloUrl, 5000);\n sloUrlReachable = result.reachable;\n sloUrlStatus = result.statusCode;\n if (!result.reachable) warnings.push(`SLO URL is not reachable: ${result.error}`);\n }\n\n // 5. SP metadata generation + validation\n const spMetadata = generateAndValidateSPMetadata(connection);\n if (!spMetadata.valid) {\n warnings.push(`SP metadata: ${spMetadata.error}`);\n }\n\n // 6. Overall status\n let overallStatus = SsoConnectionTestOverallStatus.PASS;\n if (errors.length > 0) overallStatus = SsoConnectionTestOverallStatus.FAIL;\n else if (warnings.length > 0) overallStatus = SsoConnectionTestOverallStatus.WARNING;\n\n return {\n entityIdConfigured,\n ssoUrlReachable,\n ssoUrlStatus,\n certificates,\n sloUrlReachable,\n sloUrlStatus,\n spMetadataValid: spMetadata.valid,\n overallStatus,\n errors,\n warnings,\n };\n}\n\nfunction normalizeCertificates(certs: unknown): string[] {\n if (!certs) return [];\n if (typeof certs === 'string') {\n return splitPemToCertificates(certs);\n }\n if (Array.isArray(certs)) {\n return certs.flat().filter((c): c is string => typeof c === 'string' && c.length > 0);\n }\n return [];\n}\n\n/** Split multi-cert PEM string into array of individual cert PEMs. */\nfunction splitPemToCertificates(pem: string): string[] {\n const trimmed = pem.trim();\n if (!trimmed) return [];\n const regex = /-----BEGIN CERTIFICATE-----[\\s\\S]*?-----END CERTIFICATE-----/g;\n const matches = trimmed.match(regex);\n if (!matches || matches.length === 0) return [trimmed];\n return matches.map((m) => m.trim()).filter(Boolean);\n}\n\nfunction extractServiceUrl(\n meta: Record<string, any>,\n method: 'getSingleSignOnService' | 'getSingleLogoutService',\n): string | null {\n const getter = meta[method];\n if (typeof getter !== 'function') return null;\n\n for (const binding of [SAML_BINDINGS.REDIRECT, SAML_BINDINGS.POST]) {\n try {\n const result = getter.call(meta, binding);\n if (typeof result === 'string' && result) return result;\n if (result && typeof result === 'object' && 'Location' in result) {\n return (result as { Location: string }).Location;\n }\n } catch {\n // Binding not available\n }\n }\n return null;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// READ — no custom impl\n// ════════════════════════════════════════════════════════════════════\n//\n// `oidc.clientSecret` carries `.isWriteOnlySecret()` (see\n// `sso-connection.shared.schemas.ts`). The framework masks it to `••••••••` at the\n// client-serialization boundary (`serializeOperationResultForResponse`) for every\n// client read (READ/CREATE/UPDATE responses) and strips the round-tripped mask from\n// write payloads centrally. The former READ postfix masking factory was redundant AND\n// masked the wrong tier: it ran at the service dispatch (before the client boundary),\n// so the internal `servicesRegistryHandler.read` used by the OAuth2 token exchange\n// received the mask too and could not authenticate at the IdP token endpoint. Removing\n// it restores the token exchange's real-value read; the decorator keeps the client\n// boundary redacted.\n\n// ════════════════════════════════════════════════════════════════════\n// CREATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * SSO connection CREATE prefix — mints `connectionId` and normalizes the authored SAML\n * `x509CertificatePem` into the stored `x509Certificates` array.\n *\n * Registered on `INTERNAL_CALL`, matching the resource configuration. All three write\n * variants (CREATE / UPDATE / DELETE) were authored against `REPOSITORY_ONLY` and were\n * unreachable in both directions: `getServiceOperationPathDefault` — behind every\n * `*AsSystem` call — skips a REPOSITORY_ONLY-only op, and `doOperation` throws on that\n * variant, so the service tier where custom implementations execute was never entered.\n * Nothing else in the codebase mints `connectionId`, so a connection written past the\n * service tier had none at all.\n *\n * This mirrors the READ default, which had already been moved to `INTERNAL_CALL` for the\n * same resolver reason; the writes were simply left behind. `INTERNAL_CALL` adds no HTTP\n * surface — only API_CALL variants register routes.\n */\nexport function createSsoConnectionCreateFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: CoreResourceOperation.CREATE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, _executionContext, _operationPath, _utils) => {\n const result = { ...input, connectionId: crypto.randomUUID() };\n // Transform x509CertificatePem → x509Certificates for SAML\n if (result?.saml && typeof result.saml === 'object' && 'x509CertificatePem' in result.saml) {\n const pem = (result.saml as Record<string, unknown>).x509CertificatePem;\n if (typeof pem === 'string' && pem.trim()) {\n const certs = normalizeCertificates(pem);\n if (certs.length > 0) {\n result.saml = { ...result.saml, x509Certificates: certs } as typeof result.saml;\n }\n }\n delete (result.saml as Record<string, unknown>).x509CertificatePem;\n }\n return result;\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// UPDATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSsoConnectionUpdateFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: CoreResourceOperation.UPDATE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, _executionContext, _operationPath, utils) => {\n let result = input;\n // Write-only-secret preservation for the NESTED oidc.clientSecret.\n //\n // The field is `.isWriteOnlySecret()`, so a client that renders the masked\n // read value and saves round-trips `••••••••` (or omits it). The repository\n // UPDATE is a whole-subdocument `$set` with NO deep merge — writing the\n // incoming `oidc` object would replace the stored one and drop the real\n // secret. The framework's central sentinel-strip only rescues TOP-LEVEL\n // write-only secrets (it deletes the key and relies on `$set` omitting it),\n // which does not help a nested field. So re-inject the stored secret here,\n // BEFORE the central strip runs, whenever the incoming value is the mask,\n // empty, or absent. A genuinely rotated secret (any other value) is left\n // untouched.\n if (input?.oidc && typeof input.oidc === 'object') {\n const incoming = (input.oidc as Record<string, unknown>).clientSecret;\n if (incoming === undefined || incoming === '' || incoming === WRITE_ONLY_SECRET_MASK) {\n const stored = (utils.currentObject as any)?.oidc?.clientSecret;\n if (typeof stored === 'string' && stored.length > 0) {\n result = { ...input, oidc: { ...input.oidc, clientSecret: stored } };\n }\n }\n }\n // Transform x509CertificatePem → x509Certificates for SAML\n if (result?.saml && typeof result.saml === 'object' && 'x509CertificatePem' in result.saml) {\n const pem = (result.saml as Record<string, unknown>).x509CertificatePem;\n if (typeof pem === 'string' && pem.trim()) {\n const certs = normalizeCertificates(pem);\n if (certs.length > 0) {\n result = { ...result, saml: { ...result.saml, x509Certificates: certs } } as typeof result;\n }\n }\n const { x509CertificatePem: _, ...samlWithoutPem } = result.saml as Record<string, unknown>;\n result = { ...result, saml: samlWithoutPem } as typeof result;\n }\n return result;\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// DELETE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Count users who would be left without any auth method if this SSO connection\n * is removed. Uses batch queries instead of per-user loads.\n */\nasync function countOrphanedUsersForConnectionRemoval(\n connectionId: string,\n servicesRegistry: ServicesRegistryHandlerBackendService,\n ec: ExecutionContext<any>,\n): Promise<{ affectedUserCount: number; orphanedUserCount: number }> {\n const userResult = await _countOrphanedEntities<UserIdentityLink, UserCredentials>(\n connectionId, servicesRegistry, ec,\n CoreResourceType.USER_IDENTITY_LINKS,\n CoreResourceType.USER_CREDENTIALS,\n link => link.userId,\n cred => cred.userId,\n 'userId',\n );\n\n return {\n affectedUserCount: userResult.affected,\n orphanedUserCount: userResult.orphaned,\n };\n}\n\nasync function _countOrphanedEntities<TLink, TCred>(\n connectionId: string,\n servicesRegistry: ServicesRegistryHandlerBackendService,\n ec: ExecutionContext<any>,\n identityLinkResourceType: string,\n credentialResourceType: string,\n getEntityId: (link: TLink) => string,\n getCredEntityId: (cred: TCred) => string,\n entityIdField: string,\n): Promise<{ affected: number; orphaned: number }> {\n const affectedLinksList = await servicesRegistry.list<TLink>(\n identityLinkResourceType as any, ec, { connectionId },\n undefined, { paginated: false },\n ) as TLink[];\n\n if (affectedLinksList.length === 0) {\n return { affected: 0, orphaned: 0 };\n }\n\n const affectedEntityIds = [...new Set(affectedLinksList.map(getEntityId))];\n\n const credsList = await servicesRegistry.list<TCred>(\n credentialResourceType as any, ec, { [entityIdField]: { $in: affectedEntityIds } },\n undefined, { paginated: false },\n ) as TCred[];\n\n const entitiesWithCredentialFallback = new Set<string>();\n for (const cred of credsList) {\n const c = cred as any;\n if (c.passwordHash || (c.passkeyCredentials?.length ?? 0) > 0) {\n entitiesWithCredentialFallback.add(getCredEntityId(cred));\n }\n }\n\n const entitiesNeedingLinkCheck = affectedEntityIds.filter(id => !entitiesWithCredentialFallback.has(id));\n if (entitiesNeedingLinkCheck.length === 0) {\n return { affected: affectedEntityIds.length, orphaned: 0 };\n }\n\n const otherLinksList = await servicesRegistry.list<TLink>(\n identityLinkResourceType as any, ec, {\n [entityIdField]: { $in: entitiesNeedingLinkCheck },\n connectionId: { $ne: connectionId },\n },\n undefined, { paginated: false },\n ) as TLink[];\n const entitiesWithOtherLinks = new Set(otherLinksList.map(getEntityId));\n\n const orphanedCount = entitiesNeedingLinkCheck.filter(id => !entitiesWithOtherLinks.has(id)).length;\n return { affected: affectedEntityIds.length, orphaned: orphanedCount };\n}\n\n/**\n * SSO connection DELETE guards.\n *\n * Registered on `INTERNAL_CALL` — see the note on the CREATE factory for why the write\n * variants moved off `REPOSITORY_ONLY`.\n *\n * ⚠️ Reachable does NOT mean universal. The `onParentDelete` cascade (organization or\n * application deleted) still bypasses this prefix: it calls `childRepository.delete(...)`\n * directly after a `supportsOperation` check that matches on `operationIdentifier` +\n * `isOperationDefault` and ignores `variantType` entirely. That is intentional — the whole\n * owning scope is going away, so the \"last remaining connection\" and \"connection in use\"\n * guards below would be wrong there. These guards protect the targeted single-connection\n * delete, which now runs through the service tier.\n */\nexport function createSsoConnectionDeleteFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: CoreResourceOperation.DELETE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const currentObject = utils.currentObject;\n const connectionId = currentObject?.connectionId || currentObject?._id;\n\n if (!connectionId) {\n return input;\n }\n\n const force = (input as Record<string, unknown>)?.force === true;\n\n try {\n const { affectedUserCount, orphanedUserCount } = await countOrphanedUsersForConnectionRemoval(\n connectionId,\n utils.servicesRegistry,\n executionContext,\n );\n\n if (orphanedUserCount > 0 && !force) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n warning: true,\n affectedUserCount,\n orphanedUserCount,\n message: `${orphanedUserCount} account(s) will lose their only authentication method. Re-submit with force: true to proceed.`,\n requiresForce: true,\n },\n });\n }\n\n if (force && orphanedUserCount > 0) {\n utils.logger.warn('SSO connection removal forced — accounts will be orphaned', {\n connectionId,\n orphanedUserCount,\n totalAffected: affectedUserCount,\n });\n }\n } catch (error) {\n if (isWildoBackendError(error)) throw error;\n utils.logger.warn('SSO connection orphan check failed (non-fatal)', {\n connectionId,\n ...projectCaughtErrorLogFields(error),\n });\n }\n\n return input;\n },\n\n postfixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const connectionId = utils.currentObject?.connectionId || utils.currentObject?._id;\n if (!connectionId) return input;\n\n try {\n const deletedIds = await utils.servicesRegistry.deleteMany(CoreResourceType.USER_IDENTITY_LINKS, executionContext, { connectionId });\n\n if (deletedIds.length > 0) {\n utils.logger.info('AUTH-13: Cleaned up orphaned identity links after SSO connection deletion', {\n connectionId,\n deletedLinkCount: deletedIds.length,\n });\n }\n } catch (error) {\n utils.logger.warn('AUTH-13: Identity link cleanup failed (non-fatal) — orphaned links remain in DB', {\n connectionId,\n ...projectCaughtErrorLogFields(error),\n });\n }\n\n return input;\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// TEST_CONNECTION — REPLACE_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSsoConnectionTestConnectionFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: SsoConnection_Operations.TEST_CONNECTION,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: SsoConnection_TestConnectionRequestDto,\n handlers: {\n replaceCoreOperations: async (_id, _input, _executionContext, _operationPath, utils) => {\n const currentObject = utils.currentObject;\n\n if (currentObject?.protocol === SsoProtocol.SAML) {\n return {\n protocol: SsoProtocol.SAML,\n supported: true,\n ...await testSamlConnection(currentObject),\n };\n }\n\n return {\n protocol: SsoProtocol.OIDC,\n supported: false,\n message: 'OIDC connection testing is not implemented; no provider handshake was attempted.',\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// DISCOVER_ENDPOINTS — REPLACE_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSsoConnectionDiscoverEndpointsFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: SsoConnection_Operations.DISCOVER_ENDPOINTS,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: SsoConnection_DiscoverEndpointsRequestDto,\n handlers: {\n replaceCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const typedInput = input as { issuerUrl?: string; metadataUrl?: string } | undefined;\n\n // The request DTO enforces at least one source before this handler.\n // When both are supplied, SAML metadata remains the explicit priority.\n if (typedInput?.metadataUrl) {\n return {\n protocol: SsoProtocol.SAML,\n supported: true,\n ...await discoverSamlEndpoints(typedInput.metadataUrl, executionContext, utils),\n };\n }\n\n return {\n protocol: SsoProtocol.OIDC,\n supported: false,\n message: 'OIDC endpoint discovery is not implemented; issuer metadata was not fetched.',\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ── SAML metadata discovery ──────────────────────────────────────────\n\nasync function discoverSamlEndpoints(\n metadataUrl: string,\n executionContext: ExecutionContext<any>,\n utils: {\n errorBuilder: ErrorBuilderBackendService;\n samlMetadataService?: { parseIdPMetadata(metadataXml: string): unknown };\n },\n): Promise<Record<string, any>> {\n // Fetch metadata XML\n let metadataXml: string;\n try {\n const response = await fetch(metadataUrl, {\n method: 'GET',\n signal: AbortSignal.timeout(10_000),\n redirect: 'follow',\n });\n\n if (!response.ok) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Metadata URL returned HTTP ${response.status}` },\n });\n }\n\n const contentType = response.headers.get(WildoHeaderKeys.CONTENT_TYPE) || '';\n metadataXml = await response.text();\n\n if (metadataXml.length > MAX_METADATA_SIZE) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Metadata response exceeds ${MAX_METADATA_SIZE / (1024 * 1024)}MB limit` },\n });\n }\n\n // Validate XML content (Content-Type header or content sniff)\n const looksLikeXml = contentType.includes('xml')\n || metadataXml.trimStart().startsWith('<?xml')\n || metadataXml.trimStart().startsWith('<');\n if (!looksLikeXml) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: 'URL did not return XML metadata' },\n });\n }\n } catch (error) {\n if (isWildoBackendError(error)) throw error;\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Could not reach metadata URL: ${describeCaughtError(error)}` },\n });\n }\n\n // Parse metadata — requires SAMLMetadataBackendService via utils (production always provides it).\n // No samlify fallback: samlify needs Java for XSD validation; when utils lacks samlMetadataService,\n // fail fast with a clear error instead of attempting Java-dependent parsing.\n if (!utils.samlMetadataService) {\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: {\n message: 'SAML metadata parsing requires SAMLMetadataService. Ensure the service is registered and passed to DISCOVER_ENDPOINTS utils.',\n },\n });\n }\n\n try {\n const parsed = utils.samlMetadataService.parseIdPMetadata(metadataXml) as {\n entityId: string;\n ssoUrl: string;\n sloUrl?: string;\n x509Certificates: string[];\n nameIdFormat?: string;\n };\n return {\n entityId: parsed.entityId,\n ssoUrl: parsed.ssoUrl,\n sloUrl: parsed.sloUrl,\n x509Certificates: parsed.x509Certificates,\n nameIdFormat: parsed.nameIdFormat,\n source: SsoConnectionDiscoverySource.SAML_METADATA,\n };\n } catch (error) {\n if (isWildoBackendError(error)) throw error;\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Invalid SAML metadata XML: ${describeCaughtError(error)}` },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"sso-connection.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../../src/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SSO Connection Custom Implementations\n *\n * Implements READ, CREATE, UPDATE, DELETE, TEST_CONNECTION, DISCOVER_ENDPOINTS\n * on SSO connection polymorphic variants (ORG + APP).\n *\n * Patterns:\n * READ → (no custom impl) — oidc.clientSecret masking is framework-driven\n * via `.isWriteOnlySecret()` on the schema\n * CREATE → PREFIX_CORE_OPERATIONS — generates connectionId via crypto.randomUUID()\n * UPDATE → PREFIX_CORE_OPERATIONS — re-injects the stored oidc.clientSecret when\n * the client round-trips the `••••••••` mask (nested\n * field: whole-subdocument `$set` would otherwise drop it)\n * DELETE → PREFIX_CORE_OPERATIONS — orphan validation (warns if users would lose their only auth method)\n * TEST_CONNECTION → REPLACE_CORE_OPERATIONS — SAML → validate config (certs, URLs, SP metadata), OIDC → explicit unsupported result\n * DISCOVER_ENDPOINTS→ REPLACE_CORE_OPERATIONS — SAML → fetch + parse IdP metadata URL, OIDC → explicit unsupported result\n *\n * SAML helpers (cert validation, URL reachability, samlify init) are module-level\n * functions because the factory pattern does not support DI injection of arbitrary\n * services. Certificate validation uses Node.js crypto.X509Certificate directly.\n */\n\nimport crypto from 'node:crypto';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n ResourceOperationVariantType,\n SsoConnection_Operations,\n SsoConnectionDiscoverySource,\n SsoConnectionTestOverallStatus,\n SsoConnection_TestConnectionRequestDto,\n SsoConnection_DiscoverEndpointsRequestDto,\n ErrorType,\n ErrorCustomMessageReference,\n isWildoBackendError,\n AuthScopeType,\n SsoProtocol,\n WRITE_ONLY_SECRET_MASK,\n} from '@wildo-ai/saas-models';\nimport { WildoHeaderKeys } from '@wildo-ai/saas-models';\nimport type { UserIdentityLink, UserCredentials } from '@wildo-ai/saas-models';\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { ServicesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/services/services-registry-handler.backend.service';\nimport { describeCaughtError, projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\n\n// ── SSO connection polymorphic variant types ──────────────────────────\n\nconst AUTH_SSO_CONNECTION_VARIANT_TYPES = [\n CoreResourceType.ORGANIZATION_SSO_CONNECTIONS,\n CoreResourceType.APPLICATION_SSO_CONNECTIONS,\n] as const;\n\n// ── SAML Test / Discovery helpers ────────────────────────────────\n\nconst SAML_BINDINGS = {\n REDIRECT: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',\n POST: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',\n} as const;\n\nconst MAX_METADATA_SIZE = 2 * 1024 * 1024; // 2MB\n\n/**\n * Hard deadline for fetching an IdP's SAML metadata document.\n *\n * An administrator is watching: this runs while they configure an enterprise connection and press\n * save, so an unresponsive metadata host must produce an error they can act on rather than a form\n * that never returns. 10s — the document is XML capped by {@link MAX_METADATA_SIZE}, served by a\n * host the administrator has just typed, and erring generous here spends their whole wait on what\n * is most often a typo.\n */\nconst SAML_METADATA_FETCH_TIMEOUT_MS = 10_000;\n\nconst SHA1_RSA_OID = Buffer.from('06092a864886f70d010105', 'hex');\nconst ECDSA_SHA1_OID = Buffer.from('06072a8648ce3d0401', 'hex');\n\nconst SIG_ALG_OIDS: Array<{ oid: Buffer; name: string }> = [\n { oid: SHA1_RSA_OID, name: 'sha1WithRSAEncryption' },\n { oid: ECDSA_SHA1_OID, name: 'ecdsa-with-SHA1' },\n { oid: Buffer.from('06092a864886f70d01010b', 'hex'), name: 'sha256WithRSAEncryption' },\n { oid: Buffer.from('06082a8648ce3d040302', 'hex'), name: 'ecdsa-with-SHA256' },\n { oid: Buffer.from('06092a864886f70d01010c', 'hex'), name: 'sha384WithRSAEncryption' },\n { oid: Buffer.from('06082a8648ce3d040303', 'hex'), name: 'ecdsa-with-SHA384' },\n { oid: Buffer.from('06092a864886f70d01010d', 'hex'), name: 'sha512WithRSAEncryption' },\n { oid: Buffer.from('06082a8648ce3d040304', 'hex'), name: 'ecdsa-with-SHA512' },\n];\n\nfunction normalizePem(certPem: string): string {\n const trimmed = certPem.trim();\n if (trimmed.startsWith('-----BEGIN CERTIFICATE-----')) return trimmed;\n const cleanBase64 = trimmed.replace(/\\s/g, '');\n const lines: string[] = [];\n for (let i = 0; i < cleanBase64.length; i += 64) {\n lines.push(cleanBase64.substring(i, i + 64));\n }\n return `-----BEGIN CERTIFICATE-----\\n${lines.join('\\n')}\\n-----END CERTIFICATE-----`;\n}\n\nfunction getCertSignatureAlgorithm(der: Buffer): string {\n for (const { oid, name } of SIG_ALG_OIDS) {\n if (der.includes(oid)) return name;\n }\n return 'unknown';\n}\n\nfunction isSha1Algorithm(algorithm: string): boolean {\n const lower = algorithm.toLowerCase();\n return lower.includes('sha1') || lower.includes('sha-1');\n}\n\ninterface CertificateTestResult {\n index: number;\n valid: boolean;\n expiresAt: string;\n daysRemaining: number;\n algorithm: string;\n fingerprint: string;\n warnings: string[];\n}\n\nfunction validateCertificate(certPem: string, index: number): CertificateTestResult {\n try {\n const normalized = normalizePem(certPem);\n const x509 = new crypto.X509Certificate(normalized);\n const expiresAt = new Date(x509.validTo);\n const now = new Date();\n const daysRemaining = Math.floor((expiresAt.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));\n const isValid = now >= new Date(x509.validFrom) && now <= expiresAt;\n const algorithm = getCertSignatureAlgorithm(x509.raw);\n const fingerprint = x509.fingerprint256;\n const warnings: string[] = [];\n\n if (!isValid) {\n warnings.push(daysRemaining < 0 ? 'Certificate is expired' : 'Certificate is not yet valid');\n } else if (daysRemaining <= 30) {\n warnings.push(`Expires in ${daysRemaining} days`);\n }\n if (isSha1Algorithm(algorithm)) {\n warnings.push('Uses SHA-1 signature algorithm (insecure)');\n }\n\n return { index, valid: isValid, expiresAt: expiresAt.toISOString(), daysRemaining, algorithm, fingerprint, warnings };\n } catch (error) {\n return {\n index,\n valid: false,\n expiresAt: '',\n daysRemaining: -1,\n algorithm: 'unknown',\n fingerprint: '',\n warnings: [`Certificate parsing failed: ${describeCaughtError(error)}`],\n };\n }\n}\n\nasync function checkUrlReachability(url: string, timeoutMs: number = 5000): Promise<{ reachable: boolean; statusCode?: number; error?: string }> {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n signal: AbortSignal.timeout(timeoutMs),\n redirect: 'follow',\n });\n return { reachable: true, statusCode: response.status };\n } catch {\n try {\n const response = await fetch(url, {\n method: 'GET',\n signal: AbortSignal.timeout(timeoutMs),\n redirect: 'follow',\n });\n return { reachable: true, statusCode: response.status };\n } catch (getError) {\n return {\n reachable: false,\n error: describeCaughtError(getError),\n };\n }\n }\n}\n\nlet _samlifyInitialized = false;\n// Returns `any` to avoid `typeof import('samlify')` which forces tsc to resolve the CJS-only samlify package during declaration emit.\nfunction getSamlifyModule(): any {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const saml = require('samlify');\n if (!_samlifyInitialized) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const validator = require('@authenio/samlify-xsd-schema-validator');\n saml.setSchemaValidator(validator);\n _samlifyInitialized = true;\n }\n return saml;\n}\n\nfunction generateAndValidateSPMetadata(connection: Record<string, any>): { valid: boolean; error?: string } {\n try {\n const appDomain = process.env.APP_DOMAIN;\n const spCert = process.env.SAML_SP_CERTIFICATE;\n if (!appDomain) return { valid: false, error: 'APP_DOMAIN environment variable is not set' };\n if (!spCert) return { valid: false, error: 'SAML_SP_CERTIFICATE environment variable is not set' };\n\n const scopeType = connection.organizationId ? AuthScopeType.ORGANIZATION : AuthScopeType.APPLICATION;\n const scopeId = connection.organizationId || connection.applicationId;\n const entityID = `https://${appDomain}/saml/sp/${scopeType}/${scopeId}`;\n const acsUrl = `https://${appDomain}/auth/saml/acs`;\n\n const saml = getSamlifyModule();\n const sp = saml.ServiceProvider({\n entityID,\n authnRequestsSigned: true,\n wantAssertionsSigned: true,\n wantMessageSigned: true,\n signingCert: spCert,\n assertionConsumerService: [\n { Binding: SAML_BINDINGS.POST, Location: acsUrl },\n ],\n });\n\n const metadata = sp.getMetadata();\n if (typeof metadata === 'string' && metadata.includes('<EntityDescriptor')) {\n return { valid: true };\n }\n return { valid: false, error: 'Generated SP metadata is missing EntityDescriptor element' };\n } catch (error) {\n return { valid: false, error: `SP metadata generation failed: ${describeCaughtError(error)}` };\n }\n}\n\nasync function testSamlConnection(connection: Record<string, any>): Promise<Record<string, any>> {\n const samlConfig = connection.saml;\n const errors: string[] = [];\n const warnings: string[] = [];\n\n // 1. Validate IdP entity ID\n const entityIdConfigured = !!(samlConfig?.entityId);\n if (!entityIdConfigured) {\n errors.push('IdP Entity ID is not configured');\n }\n\n // 2. SSO URL reachability\n let ssoUrlReachable = false;\n let ssoUrlStatus: number | undefined;\n if (samlConfig?.ssoUrl) {\n const result = await checkUrlReachability(samlConfig.ssoUrl, 5000);\n ssoUrlReachable = result.reachable;\n ssoUrlStatus = result.statusCode;\n if (!result.reachable) errors.push(`SSO URL is not reachable: ${result.error}`);\n } else {\n errors.push('SSO URL is not configured');\n }\n\n // 3. Certificate validation (E8, E9, SC-1)\n const certificates: CertificateTestResult[] = [];\n const certs: string[] = samlConfig?.x509Certificates ?? [];\n for (let i = 0; i < certs.length; i++) {\n const certResult = validateCertificate(certs[i], i);\n certificates.push(certResult);\n if (!certResult.valid) {\n errors.push(`Certificate ${i}: ${certResult.warnings.join(', ')}`);\n } else if (certResult.warnings.length > 0) {\n warnings.push(...certResult.warnings.map((w: string) => `Certificate ${i}: ${w}`));\n }\n }\n if (certs.length === 0) {\n errors.push('No X.509 certificates configured');\n }\n\n // 4. SLO URL reachability (if configured)\n let sloUrlReachable: boolean | undefined;\n let sloUrlStatus: number | undefined;\n if (samlConfig?.sloUrl) {\n const result = await checkUrlReachability(samlConfig.sloUrl, 5000);\n sloUrlReachable = result.reachable;\n sloUrlStatus = result.statusCode;\n if (!result.reachable) warnings.push(`SLO URL is not reachable: ${result.error}`);\n }\n\n // 5. SP metadata generation + validation\n const spMetadata = generateAndValidateSPMetadata(connection);\n if (!spMetadata.valid) {\n warnings.push(`SP metadata: ${spMetadata.error}`);\n }\n\n // 6. Overall status\n let overallStatus = SsoConnectionTestOverallStatus.PASS;\n if (errors.length > 0) overallStatus = SsoConnectionTestOverallStatus.FAIL;\n else if (warnings.length > 0) overallStatus = SsoConnectionTestOverallStatus.WARNING;\n\n return {\n entityIdConfigured,\n ssoUrlReachable,\n ssoUrlStatus,\n certificates,\n sloUrlReachable,\n sloUrlStatus,\n spMetadataValid: spMetadata.valid,\n overallStatus,\n errors,\n warnings,\n };\n}\n\nfunction normalizeCertificates(certs: unknown): string[] {\n if (!certs) return [];\n if (typeof certs === 'string') {\n return splitPemToCertificates(certs);\n }\n if (Array.isArray(certs)) {\n return certs.flat().filter((c): c is string => typeof c === 'string' && c.length > 0);\n }\n return [];\n}\n\n/** Split multi-cert PEM string into array of individual cert PEMs. */\nfunction splitPemToCertificates(pem: string): string[] {\n const trimmed = pem.trim();\n if (!trimmed) return [];\n const regex = /-----BEGIN CERTIFICATE-----[\\s\\S]*?-----END CERTIFICATE-----/g;\n const matches = trimmed.match(regex);\n if (!matches || matches.length === 0) return [trimmed];\n return matches.map((m) => m.trim()).filter(Boolean);\n}\n\nfunction extractServiceUrl(\n meta: Record<string, any>,\n method: 'getSingleSignOnService' | 'getSingleLogoutService',\n): string | null {\n const getter = meta[method];\n if (typeof getter !== 'function') return null;\n\n for (const binding of [SAML_BINDINGS.REDIRECT, SAML_BINDINGS.POST]) {\n try {\n const result = getter.call(meta, binding);\n if (typeof result === 'string' && result) return result;\n if (result && typeof result === 'object' && 'Location' in result) {\n return (result as { Location: string }).Location;\n }\n } catch {\n // Binding not available\n }\n }\n return null;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// READ — no custom impl\n// ════════════════════════════════════════════════════════════════════\n//\n// `oidc.clientSecret` carries `.isWriteOnlySecret()` (see\n// `sso-connection.shared.schemas.ts`). The framework masks it to `••••••••` at the\n// client-serialization boundary (`serializeOperationResultForResponse`) for every\n// client read (READ/CREATE/UPDATE responses) and strips the round-tripped mask from\n// write payloads centrally. The former READ postfix masking factory was redundant AND\n// masked the wrong tier: it ran at the service dispatch (before the client boundary),\n// so the internal `servicesRegistryHandler.read` used by the OAuth2 token exchange\n// received the mask too and could not authenticate at the IdP token endpoint. Removing\n// it restores the token exchange's real-value read; the decorator keeps the client\n// boundary redacted.\n\n// ════════════════════════════════════════════════════════════════════\n// CREATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * SSO connection CREATE prefix — mints `connectionId` and normalizes the authored SAML\n * `x509CertificatePem` into the stored `x509Certificates` array.\n *\n * Registered on `INTERNAL_CALL`, matching the resource configuration. All three write\n * variants (CREATE / UPDATE / DELETE) were authored against `REPOSITORY_ONLY` and were\n * unreachable in both directions: `getServiceOperationPathDefault` — behind every\n * `*AsSystem` call — skips a REPOSITORY_ONLY-only op, and `doOperation` throws on that\n * variant, so the service tier where custom implementations execute was never entered.\n * Nothing else in the codebase mints `connectionId`, so a connection written past the\n * service tier had none at all.\n *\n * This mirrors the READ default, which had already been moved to `INTERNAL_CALL` for the\n * same resolver reason; the writes were simply left behind. `INTERNAL_CALL` adds no HTTP\n * surface — only API_CALL variants register routes.\n */\nexport function createSsoConnectionCreateFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: CoreResourceOperation.CREATE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, _executionContext, _operationPath, _utils) => {\n const result = { ...input, connectionId: crypto.randomUUID() };\n // Transform x509CertificatePem → x509Certificates for SAML\n if (result?.saml && typeof result.saml === 'object' && 'x509CertificatePem' in result.saml) {\n const pem = (result.saml as Record<string, unknown>).x509CertificatePem;\n if (typeof pem === 'string' && pem.trim()) {\n const certs = normalizeCertificates(pem);\n if (certs.length > 0) {\n result.saml = { ...result.saml, x509Certificates: certs } as typeof result.saml;\n }\n }\n delete (result.saml as Record<string, unknown>).x509CertificatePem;\n }\n return result;\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// UPDATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSsoConnectionUpdateFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: CoreResourceOperation.UPDATE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, _executionContext, _operationPath, utils) => {\n let result = input;\n // Write-only-secret preservation for the NESTED oidc.clientSecret.\n //\n // The field is `.isWriteOnlySecret()`, so a client that renders the masked\n // read value and saves round-trips `••••••••` (or omits it). The repository\n // UPDATE is a whole-subdocument `$set` with NO deep merge — writing the\n // incoming `oidc` object would replace the stored one and drop the real\n // secret. The framework's central sentinel-strip only rescues TOP-LEVEL\n // write-only secrets (it deletes the key and relies on `$set` omitting it),\n // which does not help a nested field. So re-inject the stored secret here,\n // BEFORE the central strip runs, whenever the incoming value is the mask,\n // empty, or absent. A genuinely rotated secret (any other value) is left\n // untouched.\n if (input?.oidc && typeof input.oidc === 'object') {\n const incoming = (input.oidc as Record<string, unknown>).clientSecret;\n if (incoming === undefined || incoming === '' || incoming === WRITE_ONLY_SECRET_MASK) {\n const stored = (utils.currentObject as any)?.oidc?.clientSecret;\n if (typeof stored === 'string' && stored.length > 0) {\n result = { ...input, oidc: { ...input.oidc, clientSecret: stored } };\n }\n }\n }\n // Transform x509CertificatePem → x509Certificates for SAML\n if (result?.saml && typeof result.saml === 'object' && 'x509CertificatePem' in result.saml) {\n const pem = (result.saml as Record<string, unknown>).x509CertificatePem;\n if (typeof pem === 'string' && pem.trim()) {\n const certs = normalizeCertificates(pem);\n if (certs.length > 0) {\n result = { ...result, saml: { ...result.saml, x509Certificates: certs } } as typeof result;\n }\n }\n const { x509CertificatePem: _, ...samlWithoutPem } = result.saml as Record<string, unknown>;\n result = { ...result, saml: samlWithoutPem } as typeof result;\n }\n return result;\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// DELETE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Count users who would be left without any auth method if this SSO connection\n * is removed. Uses batch queries instead of per-user loads.\n */\nasync function countOrphanedUsersForConnectionRemoval(\n connectionId: string,\n servicesRegistry: ServicesRegistryHandlerBackendService,\n ec: ExecutionContext<any>,\n): Promise<{ affectedUserCount: number; orphanedUserCount: number }> {\n const userResult = await _countOrphanedEntities<UserIdentityLink, UserCredentials>(\n connectionId, servicesRegistry, ec,\n CoreResourceType.USER_IDENTITY_LINKS,\n CoreResourceType.USER_CREDENTIALS,\n link => link.userId,\n cred => cred.userId,\n 'userId',\n );\n\n return {\n affectedUserCount: userResult.affected,\n orphanedUserCount: userResult.orphaned,\n };\n}\n\nasync function _countOrphanedEntities<TLink, TCred>(\n connectionId: string,\n servicesRegistry: ServicesRegistryHandlerBackendService,\n ec: ExecutionContext<any>,\n identityLinkResourceType: string,\n credentialResourceType: string,\n getEntityId: (link: TLink) => string,\n getCredEntityId: (cred: TCred) => string,\n entityIdField: string,\n): Promise<{ affected: number; orphaned: number }> {\n const affectedLinksList = await servicesRegistry.list<TLink>(\n identityLinkResourceType as any, ec, { connectionId },\n undefined, { paginated: false },\n ) as TLink[];\n\n if (affectedLinksList.length === 0) {\n return { affected: 0, orphaned: 0 };\n }\n\n const affectedEntityIds = [...new Set(affectedLinksList.map(getEntityId))];\n\n const credsList = await servicesRegistry.list<TCred>(\n credentialResourceType as any, ec, { [entityIdField]: { $in: affectedEntityIds } },\n undefined, { paginated: false },\n ) as TCred[];\n\n const entitiesWithCredentialFallback = new Set<string>();\n for (const cred of credsList) {\n const c = cred as any;\n if (c.passwordHash || (c.passkeyCredentials?.length ?? 0) > 0) {\n entitiesWithCredentialFallback.add(getCredEntityId(cred));\n }\n }\n\n const entitiesNeedingLinkCheck = affectedEntityIds.filter(id => !entitiesWithCredentialFallback.has(id));\n if (entitiesNeedingLinkCheck.length === 0) {\n return { affected: affectedEntityIds.length, orphaned: 0 };\n }\n\n const otherLinksList = await servicesRegistry.list<TLink>(\n identityLinkResourceType as any, ec, {\n [entityIdField]: { $in: entitiesNeedingLinkCheck },\n connectionId: { $ne: connectionId },\n },\n undefined, { paginated: false },\n ) as TLink[];\n const entitiesWithOtherLinks = new Set(otherLinksList.map(getEntityId));\n\n const orphanedCount = entitiesNeedingLinkCheck.filter(id => !entitiesWithOtherLinks.has(id)).length;\n return { affected: affectedEntityIds.length, orphaned: orphanedCount };\n}\n\n/**\n * SSO connection DELETE guards.\n *\n * Registered on `INTERNAL_CALL` — see the note on the CREATE factory for why the write\n * variants moved off `REPOSITORY_ONLY`.\n *\n * ⚠️ Reachable does NOT mean universal. The `onParentDelete` cascade (organization or\n * application deleted) still bypasses this prefix: it calls `childRepository.delete(...)`\n * directly after a `supportsOperation` check that matches on `operationIdentifier` +\n * `isOperationDefault` and ignores `variantType` entirely. That is intentional — the whole\n * owning scope is going away, so the \"last remaining connection\" and \"connection in use\"\n * guards below would be wrong there. These guards protect the targeted single-connection\n * delete, which now runs through the service tier.\n */\nexport function createSsoConnectionDeleteFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: CoreResourceOperation.DELETE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const currentObject = utils.currentObject;\n const connectionId = currentObject?.connectionId || currentObject?._id;\n\n if (!connectionId) {\n return input;\n }\n\n const force = (input as Record<string, unknown>)?.force === true;\n\n try {\n const { affectedUserCount, orphanedUserCount } = await countOrphanedUsersForConnectionRemoval(\n connectionId,\n utils.servicesRegistry,\n executionContext,\n );\n\n if (orphanedUserCount > 0 && !force) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n warning: true,\n affectedUserCount,\n orphanedUserCount,\n message: `${orphanedUserCount} account(s) will lose their only authentication method. Re-submit with force: true to proceed.`,\n requiresForce: true,\n },\n });\n }\n\n if (force && orphanedUserCount > 0) {\n utils.logger.warn('SSO connection removal forced — accounts will be orphaned', {\n connectionId,\n orphanedUserCount,\n totalAffected: affectedUserCount,\n });\n }\n } catch (error) {\n if (isWildoBackendError(error)) throw error;\n utils.logger.warn('SSO connection orphan check failed (non-fatal)', {\n connectionId,\n ...projectCaughtErrorLogFields(error),\n });\n }\n\n return input;\n },\n\n postfixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const connectionId = utils.currentObject?.connectionId || utils.currentObject?._id;\n if (!connectionId) return input;\n\n try {\n const deletedIds = await utils.servicesRegistry.deleteMany(CoreResourceType.USER_IDENTITY_LINKS, executionContext, { connectionId });\n\n if (deletedIds.length > 0) {\n utils.logger.info('AUTH-13: Cleaned up orphaned identity links after SSO connection deletion', {\n connectionId,\n deletedLinkCount: deletedIds.length,\n });\n }\n } catch (error) {\n utils.logger.warn('AUTH-13: Identity link cleanup failed (non-fatal) — orphaned links remain in DB', {\n connectionId,\n ...projectCaughtErrorLogFields(error),\n });\n }\n\n return input;\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// TEST_CONNECTION — REPLACE_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSsoConnectionTestConnectionFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: SsoConnection_Operations.TEST_CONNECTION,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: SsoConnection_TestConnectionRequestDto,\n handlers: {\n replaceCoreOperations: async (_id, _input, _executionContext, _operationPath, utils) => {\n const currentObject = utils.currentObject;\n\n if (currentObject?.protocol === SsoProtocol.SAML) {\n return {\n protocol: SsoProtocol.SAML,\n supported: true,\n ...await testSamlConnection(currentObject),\n };\n }\n\n return {\n protocol: SsoProtocol.OIDC,\n supported: false,\n message: 'OIDC connection testing is not implemented; no provider handshake was attempted.',\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// DISCOVER_ENDPOINTS — REPLACE_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSsoConnectionDiscoverEndpointsFactories(): ResourceCustomServiceImplementationFactory[] {\n return AUTH_SSO_CONNECTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: SsoConnection_Operations.DISCOVER_ENDPOINTS,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: SsoConnection_DiscoverEndpointsRequestDto,\n handlers: {\n replaceCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const typedInput = input as { issuerUrl?: string; metadataUrl?: string } | undefined;\n\n // The request DTO enforces at least one source before this handler.\n // When both are supplied, SAML metadata remains the explicit priority.\n if (typedInput?.metadataUrl) {\n return {\n protocol: SsoProtocol.SAML,\n supported: true,\n ...await discoverSamlEndpoints(typedInput.metadataUrl, executionContext, utils),\n };\n }\n\n return {\n protocol: SsoProtocol.OIDC,\n supported: false,\n message: 'OIDC endpoint discovery is not implemented; issuer metadata was not fetched.',\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ── SAML metadata discovery ──────────────────────────────────────────\n\nasync function discoverSamlEndpoints(\n metadataUrl: string,\n executionContext: ExecutionContext<any>,\n utils: {\n errorBuilder: ErrorBuilderBackendService;\n samlMetadataService?: { parseIdPMetadata(metadataXml: string): unknown };\n },\n): Promise<Record<string, any>> {\n // Fetch metadata XML\n let metadataXml: string;\n try {\n const response = await fetch(metadataUrl, {\n method: 'GET',\n signal: AbortSignal.timeout(SAML_METADATA_FETCH_TIMEOUT_MS),\n redirect: 'follow',\n });\n\n if (!response.ok) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Metadata URL returned HTTP ${response.status}` },\n });\n }\n\n const contentType = response.headers.get(WildoHeaderKeys.CONTENT_TYPE) || '';\n metadataXml = await response.text();\n\n if (metadataXml.length > MAX_METADATA_SIZE) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Metadata response exceeds ${MAX_METADATA_SIZE / (1024 * 1024)}MB limit` },\n });\n }\n\n // Validate XML content (Content-Type header or content sniff)\n const looksLikeXml = contentType.includes('xml')\n || metadataXml.trimStart().startsWith('<?xml')\n || metadataXml.trimStart().startsWith('<');\n if (!looksLikeXml) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: 'URL did not return XML metadata' },\n });\n }\n } catch (error) {\n if (isWildoBackendError(error)) throw error;\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Could not reach metadata URL: ${describeCaughtError(error)}` },\n });\n }\n\n // Parse metadata — requires SAMLMetadataBackendService via utils (production always provides it).\n // No samlify fallback: samlify needs Java for XSD validation; when utils lacks samlMetadataService,\n // fail fast with a clear error instead of attempting Java-dependent parsing.\n if (!utils.samlMetadataService) {\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: {\n message: 'SAML metadata parsing requires SAMLMetadataService. Ensure the service is registered and passed to DISCOVER_ENDPOINTS utils.',\n },\n });\n }\n\n try {\n const parsed = utils.samlMetadataService.parseIdPMetadata(metadataXml) as {\n entityId: string;\n ssoUrl: string;\n sloUrl?: string;\n x509Certificates: string[];\n nameIdFormat?: string;\n };\n return {\n entityId: parsed.entityId,\n ssoUrl: parsed.ssoUrl,\n sloUrl: parsed.sloUrl,\n x509Certificates: parsed.x509Certificates,\n nameIdFormat: parsed.nameIdFormat,\n source: SsoConnectionDiscoverySource.SAML_METADATA,\n };\n } catch (error) {\n if (isWildoBackendError(error)) throw error;\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.SAML_METADATA_PARSE_ERROR,\n context: { message: `Invalid SAML metadata XML: ${describeCaughtError(error)}` },\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"email-verification-initiator.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/security/authentications/services/email-verification-initiator.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,kBAAkB,CAAC;AAa1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,yFAAyF,CAAC;AACxI,OAAO,EAAE,mBAAmB,EAAE,MAAM,uEAAuE,CAAC;AAI5G,yFAAyF;AACzF,MAAM,WAAW,2BAA2B;IAC1C,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBACa,wCAAwC;IAId,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY;IANxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;gBAGlC,MAAM,EAAE,aAAa,EACX,gBAAgB,EAAE,uBAAuB,EACnC,sBAAsB,EAAE,6BAA6B,EAC/D,YAAY,EAAE,mBAAmB;IAM7F;;;;;;;OAOG;IACU,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;CAqEpG"}
1
+ {"version":3,"file":"email-verification-initiator.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/security/authentications/services/email-verification-initiator.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,kBAAkB,CAAC;AAa1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,yFAAyF,CAAC;AACxI,OAAO,EAAE,mBAAmB,EAAE,MAAM,uEAAuE,CAAC;AAI5G,yFAAyF;AACzF,MAAM,WAAW,2BAA2B;IAC1C,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBACa,wCAAwC;IAId,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY;IANxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;gBAGlC,MAAM,EAAE,aAAa,EACX,gBAAgB,EAAE,uBAAuB,EACnC,sBAAsB,EAAE,6BAA6B,EAC/D,YAAY,EAAE,mBAAmB;IAM7F;;;;;;;OAOG;IACU,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;CAqEpG"}
@@ -1 +1 @@
1
- {"version":3,"file":"machine-token-issuer.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/security/authentications/services/machine-token-issuer.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;AAEjG,OAAO,EAAkC,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,SAAS,EAAE,oBAAoB,CAAC,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC;IACjF,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,KAAK,EAAE,KAAK,EAAE,CAAC;IACf;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;IACpB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBACa,gCAAgC;IAEN,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFrB,MAAM,EAAE,aAAa,EACX,gBAAgB,EAAE,uBAAuB,EACxC,UAAU,EAAE,iBAAiB;IAGjF,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAoC7G"}
1
+ {"version":3,"file":"machine-token-issuer.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/security/authentications/services/machine-token-issuer.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;AAEjG,OAAO,EAAkC,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,SAAS,EAAE,oBAAoB,CAAC,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC;IACjF,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,KAAK,EAAE,KAAK,EAAE,CAAC;IACf;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;IACpB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBACa,gCAAgC;IAEN,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFrB,MAAM,EAAE,aAAa,EACX,gBAAgB,EAAE,uBAAuB,EACxC,UAAU,EAAE,iBAAiB;IAGjF,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAoC7G"}
@@ -136,6 +136,41 @@ export declare class OAuthProviderTokenBackendService {
136
136
  * throws for a bad token — only unexpected infra failures propagate.
137
137
  */
138
138
  revokeRefreshToken(refreshToken: string): Promise<void>;
139
+ /**
140
+ * F4 per-org SIEM routing for a provider event whose only trustworthy tenant anchor is the
141
+ * TOKEN-BOUND SUBJECT.
142
+ *
143
+ * Every emit on this service happens at a token MINT or ROTATION, where there is no authenticated
144
+ * request execution context — the caller has just presented a credential, and the token it is about
145
+ * to receive is not itself an authenticated request. So the routing org can never come from the
146
+ * request, and passing nothing left the provider's most sensitive events (a delegated grant, a
147
+ * detected credential theft) reaching the DB store and the app-level sinks but never a customer's
148
+ * own security sink.
149
+ *
150
+ * The subject is the answer, and only because of WHERE it comes from: each caller passes a user id
151
+ * the SERVER resolved — off the stored authorization code, off the stored refresh-token family, or
152
+ * off a token this process just minted and verified — never a value the caller wrote down.
153
+ * `resolveActiveMemberOrgIds` then reads the ORGANIZATION_MEMBERS junction as SYSTEM with a filter
154
+ * built entirely from that id plus a constant status, and brands the result `VerifiedOrgId[]`, so no
155
+ * caller input reaches the routing decision at any point in the chain. That provenance is the whole
156
+ * requirement — routing on an unverified org is the 2026-07-09 cross-tenant leak, and misrouting a
157
+ * delegated grant is strictly worse than not routing it.
158
+ *
159
+ * Resolved through the container rather than the constructor to match this service's lazy-dependency
160
+ * posture (the OAuth provider graph is reachable during startup; see the class JSDoc).
161
+ *
162
+ * NEVER-THROW, for a reason worth stating: each caller now resolves this BEFORE its emit, so a
163
+ * throw here would suppress the audit event entirely — turning a per-org DISPATCH failure into the
164
+ * loss of the authoritative record, which is the opposite of the fail-closed posture. Routing is
165
+ * best-effort; the DB store and the Layer-2 sink are not. `resolveActiveMemberOrgIds` is itself
166
+ * never-throw, so the only failure this adds is an unresolvable `SystemAccessService` binding.
167
+ *
168
+ * Returns `[]` when there is no subject to route on or when resolution failed. `[]` and `undefined`
169
+ * are equivalent at the sink boundary here because the request-EC argument is always `undefined` at
170
+ * these emit sites, so there is no EC org for `undefined` to fall back to; `[]` is passed because it
171
+ * states that the question WAS asked and the answer was empty.
172
+ */
173
+ private _resolveSubjectRoutingOrgIds;
139
174
  /**
140
175
  * Build a typed backend error carrying the precise OAuth 2.0 error code in `context.oauthError`
141
176
  * so the token-endpoint controller can render the RFC 6749 §5.2 error response body.
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-provider-token.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/security/authentications/services/oauth-provider-token.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAE9G,OAAO,EAAE,gCAAgC,EAAE,MAAM,2FAA2F,CAAC;AA4C7I;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6FAA6F;AAC7F,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+FAA+F;AAC/F,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,gCAAgC;IAEH,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAJ3B,SAAS,EAAE,SAAS,EACvB,MAAM,EAAE,aAAa,EACX,gBAAgB,EAAE,uBAAuB,EACtC,YAAY,EAAE,0BAA0B,EACzC,kBAAkB,EAAE,gCAAgC;IAGzG,2BAA2B,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA+HzH;;;;;;;;OAQG;IACU,2BAA2B,CAAC,OAAO,EAAE;QAChD,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAiJrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACU,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsFvL;;;;OAIG;IACU,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpE;;;OAGG;IACH,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"oauth-provider-token.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/security/authentications/services/oauth-provider-token.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sEAAsE,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAE9G,OAAO,EAAE,gCAAgC,EAAE,MAAM,2FAA2F,CAAC;AA8C7I;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6FAA6F;AAC7F,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+FAA+F;AAC/F,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,gCAAgC;IAEH,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAJ3B,SAAS,EAAE,SAAS,EACvB,MAAM,EAAE,aAAa,EACX,gBAAgB,EAAE,uBAAuB,EACtC,YAAY,EAAE,0BAA0B,EACzC,kBAAkB,EAAE,gCAAgC;IAGzG,2BAA2B,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA+HzH;;;;;;;;OAQG;IACU,2BAA2B,CAAC,OAAO,EAAE;QAChD,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmKrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACU,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA+GvL;;;;OAIG;IACU,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;YACW,4BAA4B;IAY1C;;;OAGG;IACH,OAAO,CAAC,WAAW;CAMpB"}
@@ -20,6 +20,7 @@ import { describeCaughtError, projectCaughtErrorLogFields } from '../../../error
20
20
  import { MachineTokenIssuerBackendService } from '../../../security/authentications/services/machine-token-issuer.backend.service.js';
21
21
  import { hashOAuthClientSecret } from '../../../security/oauth-clients/oauth-client-generation.backend.utils.js';
22
22
  import { extractRefreshTokenReuseSignal } from '../../../security/authentications/services/auth-token-issuer.backend.service.js';
23
+ import { resolveActiveMemberOrgIds } from '../../../security/authentications/services/resolve-active-member-orgs.backend.utils.js';
23
24
  import { ApiKeyScope, CoreResourceOperation, CoreResourceType, DELEGATED_TOKEN_RESOURCE_SERVERS, MACHINE_TOKEN_RESOURCE_SERVERS, ErrorCustomMessageReference, ErrorType, ExecutionContext_ExecutionType, MachineAuthMethod, OAuthClientStatus, OAuthGrantType, ResourcePrimaryScope, UserStatus, } from '@wildo-ai/saas-models';
24
25
  import { JwtClaim_App_Auth_UserRequest_Schema } from '../../../security/authentications/models/authentications.backend.schemas.js';
25
26
  import { isRotationGraceWindowOpen, isCredentialExpired } from '../../../security/credential-rotation-grace.backend.utils.js';
@@ -276,17 +277,35 @@ let OAuthProviderTokenBackendService = class OAuthProviderTokenBackendService {
276
277
  // assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — issuing a delegated token grants a
277
278
  // third-party client the ability to act AS the user (the most security-sensitive access grant the
278
279
  // provider makes). Emit the audit/SIEM record (subject, client/azp, audience, granted scopes, TTL).
279
- // Fire-and-forget: auditing must never block or fail token issuance. No request EC / verified org at
280
- // this mint (the token is not itself an authenticated request), so per-org SIEM dispatch is omitted —
281
- // the DB store + Layer-2 immudb sink still record it.
280
+ // Fire-and-forget: auditing must never block or fail token issuance.
281
+ //
282
+ // SIEM-3 (F4 tenant-segregation routing) — the routing org comes from the SUBJECT, not the request.
283
+ // There is genuinely no authenticated request EC at a token MINT (the client has just redeemed a
284
+ // code; the token it is being handed is not itself an authenticated request), so the 2nd arg stays
285
+ // `undefined` and, without the 3rd, this — the provider's most sensitive grant — reached the DB
286
+ // store and the app-level sinks but NEVER the customer's own security sink. `grant.userId` is
287
+ // resolved by `exchangeAuthorizationCode` off the STORED authorization code, so it is token-bound
288
+ // and can never be a caller-supplied value; that is exactly the provenance the magic-link and
289
+ // first-party-refresh paths already route on, and `_resolveSubjectRoutingOrgIds` turns it into
290
+ // VERIFIED ACTIVE memberships read as SYSTEM. A delegated grant therefore reaches precisely the
291
+ // tenants whose data the minted token can act on, which is the F4 question.
292
+ //
293
+ // D3/H-20: the DELEGATING CLIENT's own org is deliberately NOT a routing target. The token carries
294
+ // the USER's authority and the client is only `azp`, so a client registered in org A completing the
295
+ // flow for a user of org B must not thereby publish that user's grant into org A's SIEM feed.
282
296
  const auditLogsForDelegated = this.container.get(SAAS_SERVICE_TYPES.AuditLogsService);
283
- void auditLogsForDelegated.logOAuthDelegatedTokenIssued({
284
- userId: grant.userId,
285
- clientId: grant.clientId,
286
- audience: requestedAudience,
287
- scopes: grant.scope,
288
- ttlSeconds: expiresIn,
289
- }).catch((auditError) => this.logger.warn('OAUTH_DELEGATED_TOKEN_ISSUED audit emit failed (non-fatal)', {
297
+ void (async () => {
298
+ // Resolved INSIDE the fire-and-forget block: a membership read must never add latency to the
299
+ // mint, and its failure mode (fail-closed to `[]`) must never reach the token response.
300
+ const delegatedRoutingOrgIds = await this._resolveSubjectRoutingOrgIds(grant.userId);
301
+ await auditLogsForDelegated.logOAuthDelegatedTokenIssued({
302
+ userId: grant.userId,
303
+ clientId: grant.clientId,
304
+ audience: requestedAudience,
305
+ scopes: grant.scope,
306
+ ttlSeconds: expiresIn,
307
+ }, undefined, delegatedRoutingOrgIds);
308
+ })().catch((auditError) => this.logger.warn('OAUTH_DELEGATED_TOKEN_ISSUED audit emit failed (non-fatal)', {
290
309
  ...projectCaughtErrorLogFields(auditError),
291
310
  }));
292
311
  this.logger.debug('Issued authorization_code (user-delegated) token', {
@@ -364,15 +383,23 @@ let OAuthProviderTokenBackendService = class OAuthProviderTokenBackendService {
364
383
  // A routine expired/revoked/invalid refresh carries NO signal ⇒ no event (deliberate anti-flood: the
365
384
  // security-relevant refresh failure is theft, not routine session expiry). Fire-and-forget.
366
385
  // assurance-control: WILDO.IDENTITY.CREDENTIAL_LIFECYCLE — credential-theft detection + response.
386
+ // SIEM-3 (F4): routed to the VICTIM's verified member orgs, exactly as the first-party refresh
387
+ // endpoint already does (`authentication-controller.backend.service.ts` refreshToken). This is
388
+ // credential-THEFT detection — the single event a customer's SOC most needs in its own feed —
389
+ // and the two refresh surfaces share one issuer, so they must not disagree about who sees it.
390
+ // `reuseSignal.userId` is read off the STORED token family by the issuer, never off the request.
367
391
  const reuseSignal = extractRefreshTokenReuseSignal(refreshError);
368
392
  if (reuseSignal) {
369
393
  const auditLogsForReuse = this.container.get(SAAS_SERVICE_TYPES.AuditLogsService);
370
- void auditLogsForReuse.logUserRefreshTokenReuseDetected({
371
- userId: reuseSignal.userId,
372
- reusedJti: reuseSignal.reusedJti,
373
- sessionId: reuseSignal.sessionId,
374
- familyRevoked: reuseSignal.familyRevoked,
375
- }).catch((auditError) => this.logger.warn('USER_REFRESH_TOKEN_REUSE_DETECTED audit emit failed (non-fatal)', {
394
+ void (async () => {
395
+ const reuseRoutingOrgIds = await this._resolveSubjectRoutingOrgIds(reuseSignal.userId);
396
+ await auditLogsForReuse.logUserRefreshTokenReuseDetected({
397
+ userId: reuseSignal.userId,
398
+ reusedJti: reuseSignal.reusedJti,
399
+ sessionId: reuseSignal.sessionId,
400
+ familyRevoked: reuseSignal.familyRevoked,
401
+ }, undefined, reuseRoutingOrgIds);
402
+ })().catch((auditError) => this.logger.warn('USER_REFRESH_TOKEN_REUSE_DETECTED audit emit failed (non-fatal)', {
376
403
  ...projectCaughtErrorLogFields(auditError),
377
404
  }));
378
405
  }
@@ -406,13 +433,30 @@ let OAuthProviderTokenBackendService = class OAuthProviderTokenBackendService {
406
433
  // A-4: audit the SUCCESSFUL provider refresh grant. Low-detail INFO — the security-relevant refresh
407
434
  // failure (theft/reuse) is audited via A-9 above; routine failures are intentionally not audited.
408
435
  // assurance-control: WILDO.IDENTITY.CREDENTIAL_LIFECYCLE — token lifecycle (refresh). Fire-and-forget.
436
+ //
437
+ // SIEM-3 (F4): routed on `refreshedUserId`, which is read back from OUR OWN freshly-minted access
438
+ // token — server-minted, so token-bound rather than caller-claimed.
439
+ //
440
+ // NOT ROUTED on the FIRST-PARTY branch (no `clientId`+`clientSecret`), and that is a decision rather
441
+ // than an oversight. That branch deliberately performs no JWT verify (`AuthTokens` carries no
442
+ // subject, and the verify exists only to mint the OIDC §12.2 id_token), so the event has no subject
443
+ // at all — neither in `routingOrgIds` NOR in its own `userId` data field. Routing an org-anonymous
444
+ // "a token was refreshed" row into a tenant's SIEM would add noise carrying no attribution, so the
445
+ // honest ordering is: make the event ATTRIBUTABLE first (a verify inside this fire-and-forget block
446
+ // would do it, at the cost of retiring the "a first-party refresh performs no verify" pin), and
447
+ // route it in the same change. Until then the DB store + Layer-2 sinks remain its only record —
448
+ // and note the first-party refresh ENDPOINT (`/auth/refresh-token`) already audits with a subject
449
+ // and routes, so nothing is lost for the ordinary session-refresh journey.
409
450
  const clientAuthenticated = Boolean(clientId && clientSecret);
410
451
  const auditLogsForRefresh = this.container.get(SAAS_SERVICE_TYPES.AuditLogsService);
411
- void auditLogsForRefresh.logOAuthTokenRefreshed({
412
- userId: refreshedUserId,
413
- clientId: clientAuthenticated ? clientId : undefined,
414
- clientAuthenticated,
415
- }).catch((auditError) => this.logger.warn('OAUTH_TOKEN_REFRESHED audit emit failed (non-fatal)', {
452
+ void (async () => {
453
+ const refreshRoutingOrgIds = await this._resolveSubjectRoutingOrgIds(refreshedUserId);
454
+ await auditLogsForRefresh.logOAuthTokenRefreshed({
455
+ userId: refreshedUserId,
456
+ clientId: clientAuthenticated ? clientId : undefined,
457
+ clientAuthenticated,
458
+ }, undefined, refreshRoutingOrgIds);
459
+ })().catch((auditError) => this.logger.warn('OAUTH_TOKEN_REFRESHED audit emit failed (non-fatal)', {
416
460
  ...projectCaughtErrorLogFields(auditError),
417
461
  }));
418
462
  return {
@@ -440,6 +484,52 @@ let OAuthProviderTokenBackendService = class OAuthProviderTokenBackendService {
440
484
  this.logger.debug('Token revocation on a non-revocable token treated as success (RFC 7009)', { reason: describeCaughtError(error) });
441
485
  }
442
486
  }
487
+ /**
488
+ * F4 per-org SIEM routing for a provider event whose only trustworthy tenant anchor is the
489
+ * TOKEN-BOUND SUBJECT.
490
+ *
491
+ * Every emit on this service happens at a token MINT or ROTATION, where there is no authenticated
492
+ * request execution context — the caller has just presented a credential, and the token it is about
493
+ * to receive is not itself an authenticated request. So the routing org can never come from the
494
+ * request, and passing nothing left the provider's most sensitive events (a delegated grant, a
495
+ * detected credential theft) reaching the DB store and the app-level sinks but never a customer's
496
+ * own security sink.
497
+ *
498
+ * The subject is the answer, and only because of WHERE it comes from: each caller passes a user id
499
+ * the SERVER resolved — off the stored authorization code, off the stored refresh-token family, or
500
+ * off a token this process just minted and verified — never a value the caller wrote down.
501
+ * `resolveActiveMemberOrgIds` then reads the ORGANIZATION_MEMBERS junction as SYSTEM with a filter
502
+ * built entirely from that id plus a constant status, and brands the result `VerifiedOrgId[]`, so no
503
+ * caller input reaches the routing decision at any point in the chain. That provenance is the whole
504
+ * requirement — routing on an unverified org is the 2026-07-09 cross-tenant leak, and misrouting a
505
+ * delegated grant is strictly worse than not routing it.
506
+ *
507
+ * Resolved through the container rather than the constructor to match this service's lazy-dependency
508
+ * posture (the OAuth provider graph is reachable during startup; see the class JSDoc).
509
+ *
510
+ * NEVER-THROW, for a reason worth stating: each caller now resolves this BEFORE its emit, so a
511
+ * throw here would suppress the audit event entirely — turning a per-org DISPATCH failure into the
512
+ * loss of the authoritative record, which is the opposite of the fail-closed posture. Routing is
513
+ * best-effort; the DB store and the Layer-2 sink are not. `resolveActiveMemberOrgIds` is itself
514
+ * never-throw, so the only failure this adds is an unresolvable `SystemAccessService` binding.
515
+ *
516
+ * Returns `[]` when there is no subject to route on or when resolution failed. `[]` and `undefined`
517
+ * are equivalent at the sink boundary here because the request-EC argument is always `undefined` at
518
+ * these emit sites, so there is no EC org for `undefined` to fall back to; `[]` is passed because it
519
+ * states that the question WAS asked and the answer was empty.
520
+ */
521
+ async _resolveSubjectRoutingOrgIds(userId) {
522
+ if (!userId) {
523
+ return [];
524
+ }
525
+ try {
526
+ const systemAccessService = this.container.get(SAAS_SERVICE_TYPES.SystemAccessService);
527
+ return await resolveActiveMemberOrgIds(systemAccessService, userId);
528
+ }
529
+ catch {
530
+ return [];
531
+ }
532
+ }
443
533
  /**
444
534
  * Build a typed backend error carrying the precise OAuth 2.0 error code in `context.oauthError`
445
535
  * so the token-endpoint controller can render the RFC 6749 §5.2 error response body.