@wildo-ai/saas-backend-lib 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (972) hide show
  1. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  2. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
  3. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  4. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  5. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  6. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  7. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  8. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  9. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  10. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  11. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  12. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  13. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
  14. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  15. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  16. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  18. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  19. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts +14 -3
  20. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  21. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +138 -24
  22. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  23. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
  24. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
  26. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  27. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
  28. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
  30. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js.map +1 -1
  31. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  32. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
  34. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  36. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +48 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +102 -30
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
  55. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +96 -32
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
  61. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
  63. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -0
  66. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +298 -23
  68. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +71 -1
  70. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +85 -5
  72. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +21 -0
  74. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +146 -4
  76. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  77. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  78. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  80. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts +3 -26
  81. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
  83. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  86. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  88. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  90. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  91. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  92. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +533 -43
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  95. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  96. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  100. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  105. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  106. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  107. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  108. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  109. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  110. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  113. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
  114. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  115. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  116. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  121. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  122. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  123. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  124. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  125. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  126. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  127. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  128. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  129. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  130. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  131. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +54 -13
  133. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
  135. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
  137. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  139. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  140. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  141. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  142. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  143. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  144. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  145. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  146. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  148. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  149. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
  150. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  151. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
  152. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  153. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  154. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  155. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  156. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  157. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  158. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  159. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
  160. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  161. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  162. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  163. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  164. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  165. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  166. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +263 -13
  168. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +376 -58
  170. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +264 -7
  172. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +414 -5
  174. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  177. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +16 -0
  179. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
  180. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
  181. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
  182. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  183. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +65 -6
  185. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  186. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  187. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  188. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  189. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  190. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  191. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +45 -0
  192. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  194. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  196. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  197. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  198. package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
  200. package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -46
  201. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  203. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  204. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  205. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  207. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  208. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  209. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  210. package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
  211. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  212. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  213. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  214. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  215. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +43 -1
  216. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
  218. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  219. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
  220. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  221. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
  222. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  223. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
  224. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
  225. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
  226. package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
  227. package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
  228. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  229. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
  230. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -1
  231. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  232. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  233. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  234. package/dist/esm/databases/services/redis.service.d.ts +27 -0
  235. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  236. package/dist/esm/databases/services/redis.service.js +29 -0
  237. package/dist/esm/databases/services/redis.service.js.map +1 -1
  238. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  239. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  240. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  241. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  242. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  243. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  244. package/dist/esm/errors/services/error-handler.backend.service.js +134 -8
  245. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  246. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  247. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  248. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  249. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  250. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  251. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  252. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  253. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  254. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  255. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  256. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  257. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  258. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts +41 -0
  259. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
  260. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
  261. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
  262. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
  263. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
  264. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
  265. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
  266. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
  267. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  268. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +60 -19
  269. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  270. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  271. package/dist/esm/external-data/external-data-transform.backend.js +7 -1
  272. package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
  273. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
  274. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
  276. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js.map +1 -1
  277. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  278. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  279. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  280. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
  281. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  282. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
  283. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  284. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  285. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  286. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  287. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  288. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  289. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  290. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
  291. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  292. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  293. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  294. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  295. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  296. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  297. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  298. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  299. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  300. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  301. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  302. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  303. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  304. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  305. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  306. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  307. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  308. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  309. package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
  310. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  311. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  313. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  314. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +306 -7
  315. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  316. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +539 -45
  317. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  318. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  319. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
  320. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  321. package/dist/esm/files/controllers/file.controller.d.ts +24 -1
  322. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  323. package/dist/esm/files/controllers/file.controller.js +83 -11
  324. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  325. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
  326. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
  327. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
  328. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
  329. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -1
  330. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  331. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +76 -13
  332. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  333. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
  334. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  335. package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
  336. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  337. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  338. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  339. package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
  340. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  341. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  342. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  343. package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
  344. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  345. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +214 -0
  346. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
  347. package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
  348. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
  349. package/dist/esm/files/services/files.backend.service.d.ts +87 -0
  350. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  351. package/dist/esm/files/services/files.backend.service.js +252 -19
  352. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  353. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  354. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  355. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  356. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  357. package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
  358. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  359. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  360. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  361. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  363. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  364. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  365. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  366. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  367. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  368. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  369. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  370. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  371. package/dist/esm/files/utils/file-uploader.utils.js +12 -0
  372. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  373. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  374. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  375. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  376. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  377. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  378. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  380. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  381. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  382. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  383. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  384. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  385. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  386. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  387. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  388. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  389. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +200 -44
  391. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  392. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  393. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  394. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  395. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  396. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  397. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  398. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  399. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  400. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  401. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  402. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  403. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  404. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  406. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  407. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  408. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  409. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  410. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  411. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  412. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  413. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  414. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
  415. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  416. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
  417. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  418. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  419. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  420. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  421. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  422. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  423. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  424. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  425. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  426. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  427. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  428. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +107 -1
  429. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  430. package/dist/esm/flows-actors/services/agents.backend.service.js +519 -56
  431. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  432. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
  433. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
  435. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  437. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  439. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  440. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  442. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  443. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  444. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  445. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  446. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  447. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  448. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
  449. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  450. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  451. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  452. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  453. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +151 -41
  455. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +308 -143
  457. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  458. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  459. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  461. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  462. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  464. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  465. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  466. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  467. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  468. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  469. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  470. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  471. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  472. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  473. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  474. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  475. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  476. package/dist/esm/index.d.ts +15 -5
  477. package/dist/esm/index.d.ts.map +1 -1
  478. package/dist/esm/index.js +45 -5
  479. package/dist/esm/index.js.map +1 -1
  480. package/dist/esm/inject/models/container.d.ts.map +1 -1
  481. package/dist/esm/inject/models/container.js +82 -10
  482. package/dist/esm/inject/models/container.js.map +1 -1
  483. package/dist/esm/inject/models/service-types.d.ts +20 -3
  484. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  485. package/dist/esm/inject/models/service-types.js +21 -3
  486. package/dist/esm/inject/models/service-types.js.map +1 -1
  487. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  488. package/dist/esm/mcp/controllers/mcp.controller.js +32 -4
  489. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  490. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
  491. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  492. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
  493. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  494. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -1
  495. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  496. package/dist/esm/mcp/services/mcp-server.backend.service.js +235 -11
  497. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  498. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts +64 -2
  499. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  500. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +152 -6
  501. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  502. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  503. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  504. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  505. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  506. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  507. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  508. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  509. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  510. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  511. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  512. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  513. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  514. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  515. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  516. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  517. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  518. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  519. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  520. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  521. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  522. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  523. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  524. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  525. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  526. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  527. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  528. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
  529. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  530. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
  531. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  532. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  533. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  534. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  535. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  536. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  537. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  538. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  539. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  540. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  541. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  542. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  543. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  544. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  545. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  546. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  547. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  548. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  549. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  550. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  551. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  552. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  553. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  554. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  555. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  556. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  557. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  558. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
  559. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  560. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  561. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  562. package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
  563. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  564. package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
  565. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  566. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  567. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  568. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  569. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  570. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  571. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  572. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  573. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +108 -13
  574. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  575. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +432 -101
  576. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  577. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
  578. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  579. package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
  580. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  581. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  582. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  583. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  584. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  585. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  586. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  587. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +54 -7
  588. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  589. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
  590. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  591. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
  592. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
  593. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -1
  594. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  595. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +18 -8
  596. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  597. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +20 -18
  599. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  600. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  601. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  602. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  603. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  604. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  605. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  606. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  607. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  608. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  609. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  610. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  611. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
  612. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js.map +1 -1
  613. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  614. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  615. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  616. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  617. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  618. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  619. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  620. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  621. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  622. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  623. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  624. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  625. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  626. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  627. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  628. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  629. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  630. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  631. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  632. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  633. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  634. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  635. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  636. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  637. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  638. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  639. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  640. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  641. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  642. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  643. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  644. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  645. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  646. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  647. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  648. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  649. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  650. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  651. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  652. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  653. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  654. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  655. package/dist/esm/queue/queue.backend.service.js +26 -4
  656. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  657. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  658. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  659. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  660. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  661. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  662. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  663. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  664. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  665. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  666. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  668. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  669. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  670. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  671. package/dist/esm/requests/service/websocket.service.js +88 -15
  672. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  673. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  674. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  675. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  676. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  677. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  678. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  679. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  680. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  681. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  682. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  683. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  684. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  685. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  686. package/dist/esm/resources/services/resource-id.backend.service.js +3 -3
  687. package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -1
  688. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
  689. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  690. package/dist/esm/resources/services/resources-registry.backend.service.js +91 -7
  691. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  692. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  693. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  694. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  695. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  696. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  697. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  698. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  699. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  700. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  701. package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
  702. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  703. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  704. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  705. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  706. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  707. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  708. package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
  709. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  710. package/dist/esm/runtime/services/start-application.backend.service.d.ts +47 -1
  711. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  712. package/dist/esm/runtime/services/start-application.backend.service.js +343 -77
  713. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  714. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  715. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  716. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  717. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  718. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  719. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  720. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  721. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  722. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  723. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
  724. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  725. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  726. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  727. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  728. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  729. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  730. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  731. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  732. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  733. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +3 -23
  734. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  735. package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
  736. package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -1
  737. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  738. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  739. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  740. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  741. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  742. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  743. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  744. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  745. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  746. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  747. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  748. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  749. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  750. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  751. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  752. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  753. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  754. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  755. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  756. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
  757. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  758. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
  759. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  760. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +9 -1
  761. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  762. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +77 -2
  763. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  764. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  765. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
  766. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -1
  767. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  768. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  769. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  770. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  771. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  772. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
  773. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  774. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  775. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
  776. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  777. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  778. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  780. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  781. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +41 -1
  782. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +87 -4
  784. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  786. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  787. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  788. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  789. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  790. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  792. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  793. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  794. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  795. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  796. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  797. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  798. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
  799. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  800. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  801. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  803. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  804. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  805. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  807. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  808. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  809. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  811. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  814. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  815. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  816. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  817. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  819. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  820. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  821. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  822. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  823. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  825. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  826. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  827. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  828. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  829. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  830. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  831. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
  832. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
  833. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  834. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  836. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  837. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  838. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
  839. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  840. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts +117 -0
  841. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
  842. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
  843. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
  844. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  845. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  846. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  847. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  848. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
  849. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  850. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
  851. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  852. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
  853. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  854. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
  855. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  856. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +175 -14
  857. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
  859. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  860. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  861. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  862. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  863. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  864. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  865. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  866. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  867. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  868. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
  869. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  870. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
  871. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  872. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
  873. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  874. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  875. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  876. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  877. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  878. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  879. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  880. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
  881. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  882. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
  883. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  884. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  885. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  886. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  887. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  888. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  889. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  890. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
  891. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  892. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
  893. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  894. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
  895. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  896. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  897. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  898. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  899. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  900. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
  901. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  902. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
  903. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  904. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  905. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  906. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  907. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  908. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
  909. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  910. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  911. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  912. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  913. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  914. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  915. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  916. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  917. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  918. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  919. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  920. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
  921. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  922. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
  923. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
  924. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
  925. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
  926. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
  927. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
  928. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
  929. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  930. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
  931. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
  932. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -3
  933. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  934. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +83 -20
  935. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  936. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  937. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  938. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  939. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  940. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  941. package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
  942. package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -1
  943. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  944. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  945. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  946. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  947. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  948. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  949. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  950. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  951. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  952. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  953. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  954. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  955. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  956. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  957. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  958. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  959. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  960. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  961. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  962. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  963. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  964. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  965. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  966. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  967. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  968. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  969. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  970. package/dist/tsconfig.build.tsbuildinfo +1 -1
  971. package/package.json +17 -9
  972. package/dist/esm/.builder.pid +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"queue.backend.service.js","sourceRoot":"","sources":["../../../../src/queue/queue.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Queue Backend Service\n *\n * Main entry point for queue operations.\n * Handles enqueuing jobs with authorization checks.\n */\n\nimport { injectable, inject } from 'inversify';\nimport { v4 as uuidv4 } from 'uuid';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport { AuthorizationsBackendService } from '~wildo-backend-lib/security/authorizations/services/authorizations.backend.service';\nimport { RabbitMQAdapterBackendService } from './adapters/rabbitmq-adapter.backend.service';\nimport { JobStatusTrackingBackendService } from './job-status-tracking.backend.service';\nimport { JobPayloadStorageBackendService } from './job-payload-storage.backend.service';\nimport { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport { getCurrentCorrelationId } from '~wildo-backend-lib/runtime/models/request-context.als.backend';\nimport {\n JobPayload,\n JobType,\n JobInitiator,\n JobPriority,\n JobResult,\n JobStatus,\n QueueVariant,\n QueueRetryBackoffConfig,\n ResourceSerializationUtils,\n ResourcesConfig_OperationPathUtils,\n QUEUE_CONFIG_DEFAULTS,\n QUEUE_RETRY_DEFAULTS,\n buildQueueName,\n} from '@wildo-ai/saas-models';\n\n\n/**\n * Result of an enqueue operation.\n */\nexport interface EnqueueResult {\n /** Unique job identifier */\n jobId: string;\n /** Queue the job was published to */\n queueName: string;\n}\n\n@injectable()\nexport class QueueBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n private _appId: string | null = null;\n private replyQueueName: string | null = null;\n private readonly pendingReplies: Map<string, {\n resolve: (result: any) => void;\n reject: (error: Error) => void;\n timeout: NodeJS.Timeout;\n }> = new Map();\n private initialized = false;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.AppConfigService)\n private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.AuthorizationsService)\n private readonly authorizationsService: AuthorizationsBackendService,\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.RabbitMQAdapterService)\n private readonly adapter: RabbitMQAdapterBackendService,\n @inject(SAAS_SERVICE_TYPES.JobStatusTrackingService)\n private readonly jobStatusTracking: JobStatusTrackingBackendService,\n @inject(SAAS_SERVICE_TYPES.JobPayloadStorageService)\n private readonly payloadStorage: JobPayloadStorageBackendService,\n ) {\n this.logDebug = this.logger.debugByType('QueueBackendService');\n this.logger.setDebugTypeLogging('QueueBackendService', false);\n // Lazy-load appId to avoid accessing config before initialization\n }\n\n /** Lazy getter for applicationId - avoids accessing config in constructor */\n private get appId(): string {\n if (!this._appId) {\n this._appId = this.appConfigService.applicationId;\n }\n return this._appId;\n }\n\n /**\n * Initialize queue service for API pod.\n * Sets up reply queue for RPC pattern.\n */\n public async initializeForApiPod(): Promise<void> {\n if (this.initialized) return;\n\n // Ensure adapter is connected\n if (!this.adapter.isConnected()) {\n await this.adapter.connect();\n }\n\n // Set up reply queue for RPC\n this.replyQueueName = await this.adapter.setupReplyQueue(\n this.appId,\n (correlationId, result) => this.handleReply(correlationId, result)\n );\n\n // Assert the operations dead-letter queue FIRST — the main queues below name\n // it as their dead-letter target, and asserting the target ahead of the\n // source keeps the topology self-consistent. This queue is TERMINAL: it has\n // no dead-letter args of its own (a parked message stays here until a human /\n // tool inspects it — the queue has no consumer).\n const deadLetterQueue = buildQueueName(this.appId, 'operations', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(deadLetterQueue, {\n durable: true,\n });\n\n // Assert operations queue, dead-lettering permanent failures to the DLQ above.\n // A consumer that exhausts retries (or hits a non-retryable / malformed\n // message) calls `channel.nack(msg, false, false)`; with the DLX wired the\n // broker parks that message in `operations.deadletter` instead of discarding\n // it. Default exchange ('') + routing key = the DLQ name routes by queue name\n // — the same plugin-free mechanism the retry delay queues use.\n const operationsQueue = buildQueueName(this.appId, 'operations');\n await this.adapter.assertQueue(operationsQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: deadLetterQueue,\n });\n\n // Assert priority queue. Priority is a dispatch VARIANT of operations, not a\n // distinct category, so its permanent failures share the SAME\n // `operations.deadletter` (there is intentionally no per-variant\n // `operations.priority.deadletter` — see queue-monitoring.backend.service.ts).\n const priorityQueue = buildQueueName(this.appId, 'operations', QueueVariant.PRIORITY);\n await this.adapter.assertQueue(priorityQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: deadLetterQueue,\n });\n\n this.initialized = true;\n this.logDebug('Queue service initialized for API pod', {\n appId: this.appId,\n replyQueue: this.replyQueueName,\n });\n }\n\n /**\n * Initialize queue service for worker pod.\n *\n * This method initializes all queue infrastructure needed for a pod that:\n * - Consumes and processes jobs (worker functionality)\n * - Enqueues jobs and receives RPC replies (API functionality)\n *\n * Every backend API pod serves both roles, hence this comprehensive initialization.\n */\n public async initializeForWorker(): Promise<void> {\n if (this.initialized) return;\n\n // Configure RabbitMQ adapter from app config\n const appConfig = this.appConfigService.config;\n const appSecrets = this.appConfigService.secrets;\n\n if (appConfig.database?.rabbitmq) {\n // Credentials from secrets first, then env vars, then defaults\n const username = appSecrets.database?.rabbitmq?.username\n || process.env.RABBITMQ_USERNAME\n || 'guest';\n const password = appSecrets.database?.rabbitmq?.password\n || process.env.RABBITMQ_PASSWORD\n || 'guest';\n\n this.adapter.configure({\n host: appConfig.database.rabbitmq.host,\n port: appConfig.database.rabbitmq.port,\n username,\n password,\n // Slice 2.5c-3 of `infra-provider-planner.md`: optional per-app\n // virtual host. Authored at `backingServices.rabbitmq.vhost` in\n // `wildo.infra.<envName>.config.ts`, threaded by apps-manager\n // into the persisted `Wildo_Application_Config`, read here. When\n // omitted the adapter falls back to the default vhost `/` (the\n // adapter's existing `this.config.vhost || '/'` semantics).\n vhost: appConfig.database.rabbitmq.vhost,\n });\n }\n\n // Ensure adapter is connected\n if (!this.adapter.isConnected()) {\n await this.adapter.connect();\n }\n\n // Set up reply queue for RPC pattern (enqueueAndWait)\n // Each pod gets its own exclusive reply queue\n this.replyQueueName = await this.adapter.setupReplyQueue(\n this.appId,\n (correlationId, result) => this.handleReply(correlationId, result)\n );\n\n // Assert the dead-letter queues FIRST — each is the dead-letter target of the\n // matching main queue below, so it must be declared ahead of the source that\n // names it. Each DLQ is TERMINAL (no dead-letter args of its own): a parked\n // message stays until inspected; these queues have no consumer.\n //\n // TOPOLOGY-MIGRATION NOTE: the main queues below are asserted WITH\n // `x-dead-letter-*` arguments. RabbitMQ will NOT mutate the arguments of an\n // already-existing durable queue — asserting `operations` with new DLX args\n // when it already exists as plain `{ durable: true }` throws\n // 406 PRECONDITION_FAILED and closes the channel. On deployments that ran a\n // pre-DLX build, the existing `operations` / `operations.priority` /\n // `scheduled` / `callbacks` / `domain.*` queues must be DELETED ONCE so they\n // are auto-recreated here with the DLX args. This project is greenfield (no\n // production data), so a one-time manual redeclare is the chosen migration —\n // see `.claude/plans/queue-permanent-dlx.md` for the rejected alternatives\n // (versioning the queue name; broker-side policies).\n const operationsDeadLetterQueue = buildQueueName(this.appId, 'operations', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(operationsDeadLetterQueue, { durable: true });\n\n const scheduledDeadLetterQueue = buildQueueName(this.appId, 'scheduled', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(scheduledDeadLetterQueue, { durable: true });\n\n const callbacksDeadLetterQueue = buildQueueName(this.appId, 'callbacks', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(callbacksDeadLetterQueue, { durable: true });\n\n // Assert operations queue, dead-lettering permanent failures (nack without\n // requeue) to `operations.deadletter` via the default exchange ('') routed by\n // queue name. Without this a permanently-failed job would be discarded.\n const operationsQueue = buildQueueName(this.appId, 'operations');\n await this.adapter.assertQueue(operationsQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: operationsDeadLetterQueue,\n });\n\n // Priority is a dispatch variant of operations → shares `operations.deadletter`\n // (no per-variant DLQ; see queue-monitoring.backend.service.ts).\n const priorityQueue = buildQueueName(this.appId, 'operations', QueueVariant.PRIORITY);\n await this.adapter.assertQueue(priorityQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: operationsDeadLetterQueue,\n });\n\n // Assert scheduled queue → parks permanently-failed scheduled executions in\n // `scheduled.deadletter` for inspection (they still re-run on the next\n // schedule; the parked token is a stale audit copy, not a re-execution).\n const scheduledQueue = buildQueueName(this.appId, 'scheduled');\n await this.adapter.assertQueue(scheduledQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: scheduledDeadLetterQueue,\n });\n\n // Assert callbacks queue → dead-letters to `callbacks.deadletter`.\n const callbacksQueue = buildQueueName(this.appId, 'callbacks');\n await this.adapter.assertQueue(callbacksQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: callbacksDeadLetterQueue,\n });\n\n this.initialized = true;\n this.logDebug('Queue service initialized for worker', {\n appId: this.appId,\n replyQueue: this.replyQueueName,\n });\n }\n\n /**\n * Enqueue operation (fire and forget).\n * Returns immediately after publishing.\n */\n public async enqueueOperation(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string\n ): Promise<EnqueueResult> {\n const operation = executionContext.operation;\n\n // Authorization check (same as controller layer)\n await this.authorizationsService.authorizeInController(inputId, executionContext);\n\n // Build job payload\n const job = await this.buildJobPayload(executionContext, inputData, inputId);\n\n // Determine queue based on priority\n const queueName = this.getOperationsQueueName(job.priority);\n\n // Create job tracking record before publishing\n await this.jobStatusTracking.createJobRecord(job, queueName);\n\n // Publish to queue\n await this.adapter.publish(queueName, job);\n\n this.logDebug('Job enqueued', {\n jobId: job.jobId,\n queueName,\n operationPathKey: job.operationPathKey,\n hasExternalPayload: !!job.inputPayloadStorageId,\n });\n\n return { jobId: job.jobId, queueName };\n }\n\n /**\n * Enqueue operation and wait for result (RPC pattern).\n * Used for QUEUED runtime mode.\n */\n public async enqueueAndWait<T>(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string,\n timeoutMs?: number\n ): Promise<T> {\n if (!this.replyQueueName) {\n throw new Error('Reply queue not initialized. Call initializeForApiPod() first.');\n }\n\n const operation = executionContext.operation;\n const queueConfig = operation.queueConfig ?? QUEUE_CONFIG_DEFAULTS;\n const timeout = timeoutMs ?? queueConfig.timeoutMs;\n\n // Authorization check\n await this.authorizationsService.authorizeInController(inputId, executionContext);\n\n // Build job with RPC headers\n const job = await this.buildJobPayload(executionContext, inputData, inputId);\n const correlationId = uuidv4();\n job.rpcReplyCorrelationId = correlationId;\n job.replyTo = this.replyQueueName;\n\n // Create promise for reply\n const resultPromise = new Promise<T>((resolve, reject) => {\n const timeoutHandle = setTimeout(() => {\n this.pendingReplies.delete(correlationId);\n reject(new Error(`Job timed out after ${timeout}ms`));\n }, timeout);\n\n this.pendingReplies.set(correlationId, { resolve, reject, timeout: timeoutHandle });\n });\n\n // Publish with RPC options\n const queueName = this.getOperationsQueueName(job.priority);\n await this.adapter.publish(queueName, job, {\n correlationId,\n replyTo: this.replyQueueName,\n });\n\n this.logDebug('Job enqueued with RPC', {\n jobId: job.jobId,\n // NOT `correlationId` — this is the RPC reply-matching id (the same value the job carries as\n // `rpcReplyCorrelationId`), distinct from the request's Wildo correlationId that the logger's\n // request-context mixin already stamps. Logging it under `correlationId` merged OVER the mixin\n // and replaced the request's trace id with an unrelated one on this line.\n rpcReplyCorrelationId: correlationId,\n queueName,\n });\n\n return resultPromise;\n }\n\n /**\n * Enqueue with callback (for BACKGROUND_JOB).\n * Returns job ID immediately, result delivered via callback mechanism.\n */\n public async enqueueWithCallback(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string\n ): Promise<EnqueueResult> {\n // Authorization check\n await this.authorizationsService.authorizeInController(inputId, executionContext);\n\n // Build job (callback is handled via callbacks queue)\n const job = await this.buildJobPayload(executionContext, inputData, inputId);\n\n // Publish to operations queue\n const queueName = this.getOperationsQueueName(job.priority);\n\n // Create job tracking record before publishing\n await this.jobStatusTracking.createJobRecord(job, queueName);\n\n await this.adapter.publish(queueName, job);\n\n this.logDebug('Job enqueued with callback', {\n jobId: job.jobId,\n queueName,\n hasExternalPayload: !!job.inputPayloadStorageId,\n });\n\n return { jobId: job.jobId, queueName };\n }\n\n /**\n * Build job payload from execution context and input data.\n * Stores large payloads (>100KB) externally and stores only the storage ID.\n */\n private async buildJobPayload(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string\n ): Promise<JobPayload> {\n const operation = executionContext.operation;\n const queueConfig = operation.queueConfig ?? QUEUE_CONFIG_DEFAULTS;\n\n // Serialize input data. Use the bigint-safe serializer: a resource `data`\n // payload may carry `z_money` (MoneyValue) amounts stored as `bigint`, which\n // a bare `JSON.stringify` cannot serialize (\"Do not know how to serialize a\n // BigInt\"). See ResourceSerializationUtils.bigIntSafeJsonReplacer for the\n // string-encoding rationale and the worker round-trip caveat.\n let inputDataJson = inputData !== undefined ? ResourceSerializationUtils.stringifyWithBigInt(inputData) : undefined;\n let inputPayloadStorageId: string | undefined;\n\n // Store large payloads externally to avoid RabbitMQ performance issues\n if (inputDataJson && this.payloadStorage.shouldStore(inputDataJson)) {\n inputPayloadStorageId = await this.payloadStorage.store(inputData);\n inputDataJson = undefined; // Don't embed in message\n this.logDebug('Large payload stored externally', { inputPayloadStorageId });\n }\n\n // Extract operation path for serialization\n const operationPath = ResourcesConfig_OperationPathUtils.extractOperationPath(operation as any);\n\n const job: JobPayload = {\n jobId: uuidv4(),\n jobType: JobType.RESOURCE_OPERATION,\n applicationId: this.appId,\n\n operationPathKey: ResourcesConfig_OperationPathUtils.createOperationPathKey(operationPath),\n operationPathJson: ResourceSerializationUtils.serializeOperationPath(operationPath),\n\n inputDataJson,\n inputPayloadStorageId,\n inputId,\n\n executionContextJson: ResourceSerializationUtils.serializeExecutionContext({\n executionType: executionContext.executionType,\n initiatorIds: executionContext.initiatorIds,\n initiatorRoles: [...executionContext.initiatorRoles],\n getContextResourceIds: () => executionContext.getContextResourceIds(),\n relationshipContexts: [...executionContext.relationshipContexts],\n }),\n\n // Phase 6 — carry the enqueuing request's correlationId onto the job so the worker that later\n // executes it adopts the same id (request → job trace join). The EC already holds the request's\n // correlationId (it adopted the ambient request frame's id at construction, R13/Model A), so this\n // is the single authoritative source — no separate ALS read needed here.\n originCorrelationId: executionContext.correlationId,\n\n initiatedBy: JobInitiator.API,\n priority: queueConfig.priority ?? JobPriority.NORMAL,\n retryCount: 0,\n maxRetries: queueConfig.maxRetries ?? QUEUE_CONFIG_DEFAULTS.maxRetries,\n // Resolve backoff from the operation's authored queueConfig.retryConfig\n // (read off `operation.queueConfig`, whose type carries the field —\n // QUEUE_CONFIG_DEFAULTS does not), applying defaults per-field so the\n // transported payload carries fully-resolved values the worker can honor.\n retryConfig: {\n baseDelayMs: operation.queueConfig?.retryConfig?.baseDelayMs ?? QUEUE_RETRY_DEFAULTS.baseDelayMs,\n maxDelayMs: operation.queueConfig?.retryConfig?.maxDelayMs ?? QUEUE_RETRY_DEFAULTS.maxDelayMs,\n retryPolicy: operation.queueConfig?.retryConfig?.retryPolicy ?? QUEUE_RETRY_DEFAULTS.retryPolicy,\n },\n timeoutMs: queueConfig.timeoutMs ?? QUEUE_CONFIG_DEFAULTS.timeoutMs,\n\n createdAt: new Date(),\n };\n\n return job;\n }\n\n /**\n * Get operations queue name based on priority.\n * Accepts string because job.priority from schema is a string union.\n */\n private getOperationsQueueName(priority: string): string {\n const base = buildQueueName(this.appId, 'operations');\n return (priority === JobPriority.HIGH || priority === JobPriority.CRITICAL)\n ? buildQueueName(this.appId, 'operations', QueueVariant.PRIORITY)\n : base;\n }\n\n /**\n * Handle RPC reply from worker.\n */\n private handleReply(correlationId: string, result: JobResult): void {\n const pending = this.pendingReplies.get(correlationId);\n if (!pending) {\n this.logger.warn('Received reply for unknown correlationId', { correlationId });\n return;\n }\n\n clearTimeout(pending.timeout);\n this.pendingReplies.delete(correlationId);\n\n if (result.status === JobStatus.COMPLETED) {\n const parsedResult = result.resultJson ? JSON.parse(result.resultJson) : null;\n pending.resolve(parsedResult);\n } else {\n // Use type and operationPathKey from WildoError as the error message\n const errorMsg = result.error\n ? `${result.error.type}${result.error.operationPathKey ? ` (${result.error.operationPathKey})` : ''}`\n : 'Job failed';\n pending.reject(new Error(errorMsg));\n }\n }\n\n /**\n * Enqueue a custom batch job.\n *\n * This method is used for fire-and-forget batch operations that don't\n * need to go through the standard resource operation flow.\n *\n * @param batchType - Identifier for the batch type (e.g., 'email.batch-send')\n * @param payload - The batch job payload (must be serializable)\n * @param options - Optional configuration for the job\n * @returns The job ID and queue name\n */\n public async enqueueCustomBatch(\n batchType: string,\n payload: unknown,\n options?: {\n priority?: JobPriority;\n maxRetries?: number;\n timeoutMs?: number;\n /** Optional backoff timing override (base delay / cap / curve). */\n retryConfig?: QueueRetryBackoffConfig;\n }\n ): Promise<EnqueueResult> {\n const priority = options?.priority ?? JobPriority.NORMAL;\n const maxRetries = options?.maxRetries ?? QUEUE_CONFIG_DEFAULTS.maxRetries;\n const timeoutMs = options?.timeoutMs ?? QUEUE_CONFIG_DEFAULTS.timeoutMs;\n\n // Serialize payload with the bigint-safe serializer (payload may carry\n // z_money/MoneyValue bigint amounts; see bigIntSafeJsonReplacer).\n let inputDataJson = ResourceSerializationUtils.stringifyWithBigInt(payload);\n let inputPayloadStorageId: string | undefined;\n\n // Store large payloads externally\n if (this.payloadStorage.shouldStore(inputDataJson)) {\n inputPayloadStorageId = await this.payloadStorage.store(payload);\n inputDataJson = undefined as any;\n }\n\n const job: JobPayload = {\n jobId: uuidv4(),\n jobType: JobType.CUSTOM_BATCH,\n applicationId: this.appId,\n\n // batchRef is REQUIRED for custom batches: `JobExecutorBackendService.executeCustomBatch`\n // throws JOB_BATCH_REF_NOT_FOUND if it's missing. Without this line every custom batch\n // job (email batches, M2M webhook deliveries, …) would fail at the executor.\n batchRef: batchType,\n\n operationPathKey: batchType, // Use batch type as the operation path key\n operationPathJson: JSON.stringify({ batchType }),\n\n inputDataJson,\n inputPayloadStorageId,\n\n executionContextJson: JSON.stringify({\n executionType: 'BATCH',\n initiatorIds: { systemBatch: true },\n }),\n\n // Phase 6 (F1) — a custom batch has no enqueuing EC, but its DISPATCHER (SIEM / M2M-webhook /\n // notification delivery) usually runs inside the TRIGGERING request's frame. Seed\n // originCorrelationId from the ambient frame (SD10 pattern) so the batch job's worker-side logs +\n // audit join that request's trace. `undefined` when dispatched outside any request (e.g. a\n // background flush), in which case the consumer mints a fresh id — still independently traceable.\n originCorrelationId: getCurrentCorrelationId(),\n\n initiatedBy: JobInitiator.INTERNAL,\n priority,\n retryCount: 0,\n maxRetries,\n retryConfig: {\n baseDelayMs: options?.retryConfig?.baseDelayMs ?? QUEUE_RETRY_DEFAULTS.baseDelayMs,\n maxDelayMs: options?.retryConfig?.maxDelayMs ?? QUEUE_RETRY_DEFAULTS.maxDelayMs,\n retryPolicy: options?.retryConfig?.retryPolicy ?? QUEUE_RETRY_DEFAULTS.retryPolicy,\n },\n timeoutMs,\n\n createdAt: new Date(),\n };\n\n // Determine queue based on priority\n const queueName = this.getOperationsQueueName(priority);\n\n // Create job tracking record\n await this.jobStatusTracking.createJobRecord(job, queueName);\n\n // Publish to queue\n await this.adapter.publish(queueName, job);\n\n this.logDebug('Custom batch job enqueued', {\n jobId: job.jobId,\n batchType,\n queueName,\n hasExternalPayload: !!inputPayloadStorageId,\n });\n\n return { jobId: job.jobId, queueName };\n }\n\n /**\n * Get RabbitMQ adapter for direct operations.\n */\n public getAdapter(): RabbitMQAdapterBackendService {\n return this.adapter;\n }\n\n /**\n * Close queue service gracefully.\n */\n public async close(): Promise<void> {\n // Clear pending replies\n for (const [correlationId, pending] of this.pendingReplies) {\n clearTimeout(pending.timeout);\n pending.reject(new Error('Queue service closing'));\n }\n this.pendingReplies.clear();\n\n // Close adapter\n await this.adapter.close();\n\n this.initialized = false;\n this.logger.info('Queue service closed');\n }\n}\n"]}
1
+ {"version":3,"file":"queue.backend.service.js","sourceRoot":"","sources":["../../../../src/queue/queue.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Queue Backend Service\n *\n * Main entry point for queue operations.\n * Handles enqueuing jobs with authorization checks.\n */\n\nimport { injectable, inject } from 'inversify';\nimport { v4 as uuidv4 } from 'uuid';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport { AuthorizationsBackendService } from '~wildo-backend-lib/security/authorizations/services/authorizations.backend.service';\nimport { RabbitMQAdapterBackendService } from './adapters/rabbitmq-adapter.backend.service';\nimport type { QueueAdapter } from './adapters/queue-adapter.backend.interface';\nimport { JobStatusTrackingBackendService } from './job-status-tracking.backend.service';\nimport { JobPayloadStorageBackendService } from './job-payload-storage.backend.service';\nimport { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport { getCurrentCorrelationId } from '~wildo-backend-lib/runtime/models/request-context.als.backend';\nimport {\n JobPayload,\n JobType,\n JobInitiator,\n JobPriority,\n JobResult,\n JobStatus,\n QueueVariant,\n QueueRetryBackoffConfig,\n ResourceSerializationUtils,\n ResourcesConfig_OperationPathUtils,\n QUEUE_CONFIG_DEFAULTS,\n QUEUE_RETRY_DEFAULTS,\n buildQueueName,\n} from '@wildo-ai/saas-models';\n\n\n/**\n * Result of an enqueue operation.\n */\nexport interface EnqueueResult {\n /** Unique job identifier */\n jobId: string;\n /** Queue the job was published to */\n queueName: string;\n}\n\n@injectable()\nexport class QueueBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n private _appId: string | null = null;\n private replyQueueName: string | null = null;\n private readonly pendingReplies: Map<string, {\n resolve: (result: any) => void;\n reject: (error: Error) => void;\n timeout: NodeJS.Timeout;\n }> = new Map();\n private initialized = false;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.AppConfigService)\n private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.AuthorizationsService)\n private readonly authorizationsService: AuthorizationsBackendService,\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.RabbitMQAdapterService)\n private readonly adapter: QueueAdapter,\n @inject(SAAS_SERVICE_TYPES.JobStatusTrackingService)\n private readonly jobStatusTracking: JobStatusTrackingBackendService,\n @inject(SAAS_SERVICE_TYPES.JobPayloadStorageService)\n private readonly payloadStorage: JobPayloadStorageBackendService,\n ) {\n this.logDebug = this.logger.debugByType('QueueBackendService');\n this.logger.setDebugTypeLogging('QueueBackendService', false);\n // Lazy-load appId to avoid accessing config before initialization\n }\n\n /** Lazy getter for applicationId - avoids accessing config in constructor */\n private get appId(): string {\n if (!this._appId) {\n this._appId = this.appConfigService.applicationId;\n }\n return this._appId;\n }\n\n /**\n * Initialize queue service for API pod.\n * Sets up reply queue for RPC pattern.\n */\n public async initializeForApiPod(): Promise<void> {\n if (this.initialized) return;\n\n // Ensure adapter is connected\n if (!this.adapter.isConnected()) {\n await this.adapter.connect();\n }\n\n // Set up reply queue for RPC\n this.replyQueueName = await this.adapter.setupReplyQueue(\n this.appId,\n (correlationId, result) => this.handleReply(correlationId, result)\n );\n\n // Assert the operations dead-letter queue FIRST — the main queues below name\n // it as their dead-letter target, and asserting the target ahead of the\n // source keeps the topology self-consistent. This queue is TERMINAL: it has\n // no dead-letter args of its own (a parked message stays here until a human /\n // tool inspects it — the queue has no consumer).\n //\n // ## Dead-letter inspection is a BROKER-level concern — decided 2026-09-08 (#469)\n //\n // Having no consumer is deliberate, not unfinished. Wildo ships no listing of parked jobs, no\n // replay verb and no queue-depth health signal, and it is not going to: an operator inspects and\n // replays a parked message with the broker's own tooling (the RabbitMQ management UI or CLI\n // against this queue by name).\n //\n // Do not read the absence as an oversight and wire a surface here. A job-execution read surface\n // exposes job PAYLOADS, which may carry personal data, and would need its own authorization and\n // privacy classification — which is why the decision went the other way. The display behaviour\n // that used to be authored for `jobExecutions` / `jobPayloadStorage` was deleted in the same\n // change, because it rendered nowhere and made this absence look accidental.\n //\n // If this ever bites, the option to revisit FIRST is queue DEPTH as a health signal — it catches\n // the fleet-level problem without exposing a single payload.\n const deadLetterQueue = buildQueueName(this.appId, 'operations', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(deadLetterQueue, {\n durable: true,\n });\n\n // Assert operations queue, dead-lettering permanent failures to the DLQ above.\n // A consumer that exhausts retries (or hits a non-retryable / malformed\n // message) calls `channel.nack(msg, false, false)`; with the DLX wired the\n // broker parks that message in `operations.deadletter` instead of discarding\n // it. Default exchange ('') + routing key = the DLQ name routes by queue name\n // — the same plugin-free mechanism the retry delay queues use.\n const operationsQueue = buildQueueName(this.appId, 'operations');\n await this.adapter.assertQueue(operationsQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: deadLetterQueue,\n });\n\n // Assert priority queue. Priority is a dispatch VARIANT of operations, not a\n // distinct category, so its permanent failures share the SAME\n // `operations.deadletter` (there is intentionally no per-variant\n // `operations.priority.deadletter` — see queue-monitoring.backend.service.ts).\n const priorityQueue = buildQueueName(this.appId, 'operations', QueueVariant.PRIORITY);\n await this.adapter.assertQueue(priorityQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: deadLetterQueue,\n });\n\n this.initialized = true;\n this.logDebug('Queue service initialized for API pod', {\n appId: this.appId,\n replyQueue: this.replyQueueName,\n });\n }\n\n /**\n * Initialize queue service for worker pod.\n *\n * This method initializes all queue infrastructure needed for a pod that:\n * - Consumes and processes jobs (worker functionality)\n * - Enqueues jobs and receives RPC replies (API functionality)\n *\n * Every backend API pod serves both roles, hence this comprehensive initialization.\n */\n public async initializeForWorker(): Promise<void> {\n if (this.initialized) return;\n\n // Configure RabbitMQ adapter from app config\n const appConfig = this.appConfigService.config;\n const appSecrets = this.appConfigService.secrets;\n\n /*\n * Broker connection settings apply to the BROKER adapter, and to nothing else (#502).\n *\n * `configure()` takes a `RabbitMQConfig` and is deliberately absent from `QueueAdapter` — an\n * in-memory queue has no host, port or vhost to be told about. Narrowing here rather than\n * widening the port keeps that honest: the alternative was a `configure(config: unknown)` every\n * adapter must accept and most must ignore, which is a hole in the port wearing a signature.\n */\n if (appConfig.database?.rabbitmq && this.adapter instanceof RabbitMQAdapterBackendService) {\n // Credentials from secrets first, then env vars, then defaults\n const username = appSecrets.database?.rabbitmq?.username\n || process.env.RABBITMQ_USERNAME\n || 'guest';\n const password = appSecrets.database?.rabbitmq?.password\n || process.env.RABBITMQ_PASSWORD\n || 'guest';\n\n this.adapter.configure({\n host: appConfig.database.rabbitmq.host,\n port: appConfig.database.rabbitmq.port,\n username,\n password,\n // Slice 2.5c-3 of `infra-provider-planner.md`: optional per-app\n // virtual host. Authored at `backingServices.rabbitmq.vhost` in\n // `wildo.infra.<envName>.config.ts`, threaded by apps-manager\n // into the persisted `Wildo_Application_Config`, read here. When\n // omitted the adapter falls back to the default vhost `/` (the\n // adapter's existing `this.config.vhost || '/'` semantics).\n vhost: appConfig.database.rabbitmq.vhost,\n });\n }\n\n // Ensure adapter is connected\n if (!this.adapter.isConnected()) {\n await this.adapter.connect();\n }\n\n // Set up reply queue for RPC pattern (enqueueAndWait)\n // Each pod gets its own exclusive reply queue\n this.replyQueueName = await this.adapter.setupReplyQueue(\n this.appId,\n (correlationId, result) => this.handleReply(correlationId, result)\n );\n\n // Assert the dead-letter queues FIRST — each is the dead-letter target of the\n // matching main queue below, so it must be declared ahead of the source that\n // names it. Each DLQ is TERMINAL (no dead-letter args of its own): a parked\n // message stays until inspected; these queues have no consumer.\n //\n // TOPOLOGY-MIGRATION NOTE: the main queues below are asserted WITH\n // `x-dead-letter-*` arguments. RabbitMQ will NOT mutate the arguments of an\n // already-existing durable queue — asserting `operations` with new DLX args\n // when it already exists as plain `{ durable: true }` throws\n // 406 PRECONDITION_FAILED and closes the channel. On deployments that ran a\n // pre-DLX build, the existing `operations` / `operations.priority` /\n // `scheduled` / `callbacks` / `domain.*` queues must be DELETED ONCE so they\n // are auto-recreated here with the DLX args. This project is greenfield (no\n // production data), so a one-time manual redeclare is the chosen migration —\n // see `.claude/plans/queue-permanent-dlx.md` for the rejected alternatives\n // (versioning the queue name; broker-side policies).\n const operationsDeadLetterQueue = buildQueueName(this.appId, 'operations', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(operationsDeadLetterQueue, { durable: true });\n\n const scheduledDeadLetterQueue = buildQueueName(this.appId, 'scheduled', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(scheduledDeadLetterQueue, { durable: true });\n\n const callbacksDeadLetterQueue = buildQueueName(this.appId, 'callbacks', QueueVariant.DEADLETTER);\n await this.adapter.assertQueue(callbacksDeadLetterQueue, { durable: true });\n\n // Assert operations queue, dead-lettering permanent failures (nack without\n // requeue) to `operations.deadletter` via the default exchange ('') routed by\n // queue name. Without this a permanently-failed job would be discarded.\n const operationsQueue = buildQueueName(this.appId, 'operations');\n await this.adapter.assertQueue(operationsQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: operationsDeadLetterQueue,\n });\n\n // Priority is a dispatch variant of operations → shares `operations.deadletter`\n // (no per-variant DLQ; see queue-monitoring.backend.service.ts).\n const priorityQueue = buildQueueName(this.appId, 'operations', QueueVariant.PRIORITY);\n await this.adapter.assertQueue(priorityQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: operationsDeadLetterQueue,\n });\n\n // Assert scheduled queue → parks permanently-failed scheduled executions in\n // `scheduled.deadletter` for inspection (they still re-run on the next\n // schedule; the parked token is a stale audit copy, not a re-execution).\n const scheduledQueue = buildQueueName(this.appId, 'scheduled');\n await this.adapter.assertQueue(scheduledQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: scheduledDeadLetterQueue,\n });\n\n // Assert callbacks queue → dead-letters to `callbacks.deadletter`.\n const callbacksQueue = buildQueueName(this.appId, 'callbacks');\n await this.adapter.assertQueue(callbacksQueue, {\n durable: true,\n deadLetterExchange: '',\n deadLetterRoutingKey: callbacksDeadLetterQueue,\n });\n\n this.initialized = true;\n this.logDebug('Queue service initialized for worker', {\n appId: this.appId,\n replyQueue: this.replyQueueName,\n });\n }\n\n /**\n * Enqueue operation (fire and forget).\n * Returns immediately after publishing.\n */\n public async enqueueOperation(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string\n ): Promise<EnqueueResult> {\n const operation = executionContext.operation;\n\n // Authorization check (same as controller layer)\n await this.authorizationsService.authorizeInController(inputId, executionContext);\n\n // Build job payload\n const job = await this.buildJobPayload(executionContext, inputData, inputId);\n\n // Determine queue based on priority\n const queueName = this.getOperationsQueueName(job.priority);\n\n // Create job tracking record before publishing\n await this.jobStatusTracking.createJobRecord(job, queueName);\n\n // Publish to queue\n await this.adapter.publish(queueName, job);\n\n this.logDebug('Job enqueued', {\n jobId: job.jobId,\n queueName,\n operationPathKey: job.operationPathKey,\n hasExternalPayload: !!job.inputPayloadStorageId,\n });\n\n return { jobId: job.jobId, queueName };\n }\n\n /**\n * Enqueue operation and wait for result (RPC pattern).\n * Used for QUEUED runtime mode.\n */\n public async enqueueAndWait<T>(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string,\n timeoutMs?: number\n ): Promise<T> {\n if (!this.replyQueueName) {\n throw new Error('Reply queue not initialized. Call initializeForApiPod() first.');\n }\n\n const operation = executionContext.operation;\n const queueConfig = operation.queueConfig ?? QUEUE_CONFIG_DEFAULTS;\n const timeout = timeoutMs ?? queueConfig.timeoutMs;\n\n // Authorization check\n await this.authorizationsService.authorizeInController(inputId, executionContext);\n\n // Build job with RPC headers\n const job = await this.buildJobPayload(executionContext, inputData, inputId);\n const correlationId = uuidv4();\n job.rpcReplyCorrelationId = correlationId;\n job.replyTo = this.replyQueueName;\n\n // Create promise for reply\n const resultPromise = new Promise<T>((resolve, reject) => {\n const timeoutHandle = setTimeout(() => {\n this.pendingReplies.delete(correlationId);\n reject(new Error(`Job timed out after ${timeout}ms`));\n }, timeout);\n\n this.pendingReplies.set(correlationId, { resolve, reject, timeout: timeoutHandle });\n });\n\n // Publish with RPC options\n const queueName = this.getOperationsQueueName(job.priority);\n await this.adapter.publish(queueName, job, {\n correlationId,\n replyTo: this.replyQueueName,\n });\n\n this.logDebug('Job enqueued with RPC', {\n jobId: job.jobId,\n // NOT `correlationId` — this is the RPC reply-matching id (the same value the job carries as\n // `rpcReplyCorrelationId`), distinct from the request's Wildo correlationId that the logger's\n // request-context mixin already stamps. Logging it under `correlationId` merged OVER the mixin\n // and replaced the request's trace id with an unrelated one on this line.\n rpcReplyCorrelationId: correlationId,\n queueName,\n });\n\n return resultPromise;\n }\n\n /**\n * Enqueue with callback (for BACKGROUND_JOB).\n * Returns job ID immediately, result delivered via callback mechanism.\n */\n public async enqueueWithCallback(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string\n ): Promise<EnqueueResult> {\n // Authorization check\n await this.authorizationsService.authorizeInController(inputId, executionContext);\n\n // Build job (callback is handled via callbacks queue)\n const job = await this.buildJobPayload(executionContext, inputData, inputId);\n\n // Publish to operations queue\n const queueName = this.getOperationsQueueName(job.priority);\n\n // Create job tracking record before publishing\n await this.jobStatusTracking.createJobRecord(job, queueName);\n\n await this.adapter.publish(queueName, job);\n\n this.logDebug('Job enqueued with callback', {\n jobId: job.jobId,\n queueName,\n hasExternalPayload: !!job.inputPayloadStorageId,\n });\n\n return { jobId: job.jobId, queueName };\n }\n\n /**\n * Build job payload from execution context and input data.\n * Stores large payloads (>100KB) externally and stores only the storage ID.\n */\n private async buildJobPayload(\n executionContext: ExecutionContext<any>,\n inputData: unknown,\n inputId?: string\n ): Promise<JobPayload> {\n const operation = executionContext.operation;\n const queueConfig = operation.queueConfig ?? QUEUE_CONFIG_DEFAULTS;\n\n // Serialize input data. Use the bigint-safe serializer: a resource `data`\n // payload may carry `z_money` (MoneyValue) amounts stored as `bigint`, which\n // a bare `JSON.stringify` cannot serialize (\"Do not know how to serialize a\n // BigInt\"). See ResourceSerializationUtils.bigIntSafeJsonReplacer for the\n // string-encoding rationale and the worker round-trip caveat.\n let inputDataJson = inputData !== undefined ? ResourceSerializationUtils.stringifyWithBigInt(inputData) : undefined;\n let inputPayloadStorageId: string | undefined;\n\n // Store large payloads externally to avoid RabbitMQ performance issues\n if (inputDataJson && this.payloadStorage.shouldStore(inputDataJson)) {\n inputPayloadStorageId = await this.payloadStorage.store(inputData);\n inputDataJson = undefined; // Don't embed in message\n this.logDebug('Large payload stored externally', { inputPayloadStorageId });\n }\n\n // Extract operation path for serialization\n const operationPath = ResourcesConfig_OperationPathUtils.extractOperationPath(operation as any);\n\n const job: JobPayload = {\n jobId: uuidv4(),\n jobType: JobType.RESOURCE_OPERATION,\n applicationId: this.appId,\n\n operationPathKey: ResourcesConfig_OperationPathUtils.createOperationPathKey(operationPath),\n operationPathJson: ResourceSerializationUtils.serializeOperationPath(operationPath),\n\n inputDataJson,\n inputPayloadStorageId,\n inputId,\n\n executionContextJson: ResourceSerializationUtils.serializeExecutionContext({\n executionType: executionContext.executionType,\n initiatorIds: executionContext.initiatorIds,\n initiatorRoles: [...executionContext.initiatorRoles],\n getContextResourceIds: () => executionContext.getContextResourceIds(),\n relationshipContexts: [...executionContext.relationshipContexts],\n }),\n\n // Phase 6 — carry the enqueuing request's correlationId onto the job so the worker that later\n // executes it adopts the same id (request → job trace join). The EC already holds the request's\n // correlationId (it adopted the ambient request frame's id at construction, R13/Model A), so this\n // is the single authoritative source — no separate ALS read needed here.\n originCorrelationId: executionContext.correlationId,\n\n initiatedBy: JobInitiator.API,\n priority: queueConfig.priority ?? JobPriority.NORMAL,\n retryCount: 0,\n maxRetries: queueConfig.maxRetries ?? QUEUE_CONFIG_DEFAULTS.maxRetries,\n // Resolve backoff from the operation's authored queueConfig.retryConfig\n // (read off `operation.queueConfig`, whose type carries the field —\n // QUEUE_CONFIG_DEFAULTS does not), applying defaults per-field so the\n // transported payload carries fully-resolved values the worker can honor.\n retryConfig: {\n baseDelayMs: operation.queueConfig?.retryConfig?.baseDelayMs ?? QUEUE_RETRY_DEFAULTS.baseDelayMs,\n maxDelayMs: operation.queueConfig?.retryConfig?.maxDelayMs ?? QUEUE_RETRY_DEFAULTS.maxDelayMs,\n retryPolicy: operation.queueConfig?.retryConfig?.retryPolicy ?? QUEUE_RETRY_DEFAULTS.retryPolicy,\n },\n timeoutMs: queueConfig.timeoutMs ?? QUEUE_CONFIG_DEFAULTS.timeoutMs,\n\n createdAt: new Date(),\n };\n\n return job;\n }\n\n /**\n * Get operations queue name based on priority.\n * Accepts string because job.priority from schema is a string union.\n */\n private getOperationsQueueName(priority: string): string {\n const base = buildQueueName(this.appId, 'operations');\n return (priority === JobPriority.HIGH || priority === JobPriority.CRITICAL)\n ? buildQueueName(this.appId, 'operations', QueueVariant.PRIORITY)\n : base;\n }\n\n /**\n * Handle RPC reply from worker.\n */\n private handleReply(correlationId: string, result: JobResult): void {\n const pending = this.pendingReplies.get(correlationId);\n if (!pending) {\n this.logger.warn('Received reply for unknown correlationId', { correlationId });\n return;\n }\n\n clearTimeout(pending.timeout);\n this.pendingReplies.delete(correlationId);\n\n if (result.status === JobStatus.COMPLETED) {\n const parsedResult = result.resultJson ? JSON.parse(result.resultJson) : null;\n pending.resolve(parsedResult);\n } else {\n // Use type and operationPathKey from WildoError as the error message\n const errorMsg = result.error\n ? `${result.error.type}${result.error.operationPathKey ? ` (${result.error.operationPathKey})` : ''}`\n : 'Job failed';\n pending.reject(new Error(errorMsg));\n }\n }\n\n /**\n * Enqueue a custom batch job.\n *\n * This method is used for fire-and-forget batch operations that don't\n * need to go through the standard resource operation flow.\n *\n * @param batchType - Identifier for the batch type (e.g., 'email.batch-send')\n * @param payload - The batch job payload (must be serializable)\n * @param options - Optional configuration for the job\n * @returns The job ID and queue name\n */\n public async enqueueCustomBatch(\n batchType: string,\n payload: unknown,\n options?: {\n priority?: JobPriority;\n maxRetries?: number;\n timeoutMs?: number;\n /** Optional backoff timing override (base delay / cap / curve). */\n retryConfig?: QueueRetryBackoffConfig;\n }\n ): Promise<EnqueueResult> {\n const priority = options?.priority ?? JobPriority.NORMAL;\n const maxRetries = options?.maxRetries ?? QUEUE_CONFIG_DEFAULTS.maxRetries;\n const timeoutMs = options?.timeoutMs ?? QUEUE_CONFIG_DEFAULTS.timeoutMs;\n\n // Serialize payload with the bigint-safe serializer (payload may carry\n // z_money/MoneyValue bigint amounts; see bigIntSafeJsonReplacer).\n let inputDataJson = ResourceSerializationUtils.stringifyWithBigInt(payload);\n let inputPayloadStorageId: string | undefined;\n\n // Store large payloads externally\n if (this.payloadStorage.shouldStore(inputDataJson)) {\n inputPayloadStorageId = await this.payloadStorage.store(payload);\n inputDataJson = undefined as any;\n }\n\n const job: JobPayload = {\n jobId: uuidv4(),\n jobType: JobType.CUSTOM_BATCH,\n applicationId: this.appId,\n\n // batchRef is REQUIRED for custom batches: `JobExecutorBackendService.executeCustomBatch`\n // throws JOB_BATCH_REF_NOT_FOUND if it's missing. Without this line every custom batch\n // job (email batches, M2M webhook deliveries, …) would fail at the executor.\n batchRef: batchType,\n\n operationPathKey: batchType, // Use batch type as the operation path key\n operationPathJson: JSON.stringify({ batchType }),\n\n inputDataJson,\n inputPayloadStorageId,\n\n executionContextJson: JSON.stringify({\n executionType: 'BATCH',\n initiatorIds: { systemBatch: true },\n }),\n\n // Phase 6 (F1) — a custom batch has no enqueuing EC, but its DISPATCHER (SIEM / M2M-webhook /\n // notification delivery) usually runs inside the TRIGGERING request's frame. Seed\n // originCorrelationId from the ambient frame (SD10 pattern) so the batch job's worker-side logs +\n // audit join that request's trace. `undefined` when dispatched outside any request (e.g. a\n // background flush), in which case the consumer mints a fresh id — still independently traceable.\n originCorrelationId: getCurrentCorrelationId(),\n\n initiatedBy: JobInitiator.INTERNAL,\n priority,\n retryCount: 0,\n maxRetries,\n retryConfig: {\n baseDelayMs: options?.retryConfig?.baseDelayMs ?? QUEUE_RETRY_DEFAULTS.baseDelayMs,\n maxDelayMs: options?.retryConfig?.maxDelayMs ?? QUEUE_RETRY_DEFAULTS.maxDelayMs,\n retryPolicy: options?.retryConfig?.retryPolicy ?? QUEUE_RETRY_DEFAULTS.retryPolicy,\n },\n timeoutMs,\n\n createdAt: new Date(),\n };\n\n // Determine queue based on priority\n const queueName = this.getOperationsQueueName(priority);\n\n // Create job tracking record\n await this.jobStatusTracking.createJobRecord(job, queueName);\n\n // Publish to queue\n await this.adapter.publish(queueName, job);\n\n this.logDebug('Custom batch job enqueued', {\n jobId: job.jobId,\n batchType,\n queueName,\n hasExternalPayload: !!inputPayloadStorageId,\n });\n\n return { jobId: job.jobId, queueName };\n }\n\n /**\n * Get RabbitMQ adapter for direct operations.\n */\n public getAdapter(): QueueAdapter {\n return this.adapter;\n }\n\n /**\n * Close queue service gracefully.\n */\n public async close(): Promise<void> {\n // Clear pending replies\n for (const [correlationId, pending] of this.pendingReplies) {\n clearTimeout(pending.timeout);\n pending.reject(new Error('Queue service closing'));\n }\n this.pendingReplies.clear();\n\n // Close adapter\n await this.adapter.close();\n\n this.initialized = false;\n this.logger.info('Queue service closed');\n }\n}\n"]}
@@ -20,7 +20,7 @@
20
20
  * Components register themselves as "stoppable" via registerStopHandler().
21
21
  */
22
22
  import { LoggerService } from '../monitoring/logger/services/logger.service';
23
- import { RabbitMQAdapterBackendService } from './adapters/rabbitmq-adapter.backend.service';
23
+ import type { QueueAdapter } from './adapters/queue-adapter.backend.interface';
24
24
  /**
25
25
  * Shutdown configuration.
26
26
  */
@@ -69,7 +69,7 @@ export declare class WorkerShutdownManagerBackendService {
69
69
  /** Audit A-7: ensures the shutdown handlers (incl. the OTel flush) run at most once across the
70
70
  * graceful path and the force/crash path. */
71
71
  private shutdownHandlersRun;
72
- constructor(adapter: RabbitMQAdapterBackendService, logger: LoggerService);
72
+ constructor(adapter: QueueAdapter, logger: LoggerService);
73
73
  /**
74
74
  * Register shutdown signal handlers.
75
75
  * Should be called once during worker startup.
@@ -1 +1 @@
1
- {"version":3,"file":"worker-shutdown-manager.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/queue/worker-shutdown-manager.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAG7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;GAGG;AACH,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC;;;GAGG;AACH,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3C,qBACa,mCAAmC;IAyB5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA1BzB,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACjF,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAK;IAE7B;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAqB;IAEzC;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,iBAAiB,CAAS;IAElC;kDAC8C;IAC9C,OAAO,CAAC,mBAAmB,CAAS;gBAIjB,OAAO,EAAE,6BAA6B,EAEtC,MAAM,EAAE,aAAa;IAMxC;;;OAGG;IACH,sBAAsB,CAAC,MAAM,GAAE,cAAmB,GAAG,IAAI;IA6EzD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAK/C;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI1C;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DvE;;;OAGG;YACW,mBAAmB;IAejC;;;OAGG;YACW,mBAAmB;IAgBjC;;OAEG;YACW,aAAa;CA4B5B"}
1
+ {"version":3,"file":"worker-shutdown-manager.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/queue/worker-shutdown-manager.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAG7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;GAGG;AACH,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC;;;GAGG;AACH,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3C,qBACa,mCAAmC;IAyB5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA1BzB,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACjF,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAK;IAE7B;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAqB;IAEzC;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,iBAAiB,CAAS;IAElC;kDAC8C;IAC9C,OAAO,CAAC,mBAAmB,CAAS;gBAIjB,OAAO,EAAE,YAAY,EAErB,MAAM,EAAE,aAAa;IAMxC;;;OAGG;IACH,sBAAsB,CAAC,MAAM,GAAE,cAAmB,GAAG,IAAI;IA6EzD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAK/C;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI1C;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4EvE;;;OAGG;YACW,mBAAmB;IAejC;;;OAGG;YACW,mBAAmB;IAgBjC;;OAEG;YACW,aAAa;CA4B5B"}
@@ -36,7 +36,6 @@ import { SAAS_SERVICE_TYPES } from '../inject/models/service-types.js';
36
36
  import { LoggerService } from '../monitoring/logger/services/logger.service.js';
37
37
  import { describeCaughtError, projectCaughtErrorLogFields } from '../errors/utils/error-log-level-classification.backend.utils.js';
38
38
  import { isNonFatalTelemetryPipelineException } from '../errors/services/error-handler.backend.service.js';
39
- import { RabbitMQAdapterBackendService } from './adapters/rabbitmq-adapter.backend.service.js';
40
39
  const DEFAULT_SHUTDOWN_CONFIG = {
41
40
  gracePeriodMs: 25000, // 25 seconds (K8s default is 30s)
42
41
  checkIntervalMs: 500,
@@ -217,6 +216,23 @@ let WorkerShutdownManagerBackendService = class WorkerShutdownManagerBackendServ
217
216
  this.logDebug('Waiting for in-flight jobs...', { count: this.inFlightJobCount });
218
217
  const waitResult = await this.waitForInFlightJobs(config);
219
218
  if (!waitResult) {
219
+ /*
220
+ * ## A grace-period overrun is an ORCHESTRATOR-level concern — decided 2026-09-08 (#469)
221
+ *
222
+ * A warning line, and deliberately nothing more: no metric, no audit record, and the exit
223
+ * code is UNCHANGED (`config.exitCode` below still applies). Repeated overruns across a
224
+ * fleet therefore leave no signal inside Wildo, and that is accepted — the orchestrator is
225
+ * what observes a pod that did not drain in time, from the termination grace period it set
226
+ * and the restart it performs.
227
+ *
228
+ * The exit code specifically was on the table and was left alone: it is the one signal here
229
+ * with a real consequence for an orchestrator, and changing it would alter how every
230
+ * deployment lane reads a shutdown. Do not "improve" it without re-taking that decision.
231
+ *
232
+ * If this ever bites, the option to revisit FIRST is a recorded event on overrun — the
233
+ * cheap half of the operator-surface option that was not taken, and the one that exposes no
234
+ * job payload.
235
+ */
220
236
  this.logger.warn('Grace period expired, some jobs may be lost', {
221
237
  remainingJobs: this.inFlightJobCount,
222
238
  });
@@ -312,8 +328,7 @@ WorkerShutdownManagerBackendService = __decorate([
312
328
  injectable(),
313
329
  __param(0, inject(SAAS_SERVICE_TYPES.RabbitMQAdapterService)),
314
330
  __param(1, inject(SAAS_SERVICE_TYPES.Logger)),
315
- __metadata("design:paramtypes", [RabbitMQAdapterBackendService,
316
- LoggerService])
331
+ __metadata("design:paramtypes", [Object, LoggerService])
317
332
  ], WorkerShutdownManagerBackendService);
318
333
  export { WorkerShutdownManagerBackendService };
319
334
  //# sourceMappingURL=worker-shutdown-manager.backend.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-shutdown-manager.backend.service.js","sourceRoot":"","sources":["../../../../src/queue/worker-shutdown-manager.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Worker Shutdown Manager Backend Service\n *\n * Handles graceful shutdown for queue workers in K8s environment.\n *\n * Kubernetes termination flow:\n * 1. Pod receives SIGTERM\n * 2. PreStop hook (if configured) gives extra time\n * 3. terminationGracePeriodSeconds countdown begins\n * 4. If not terminated, SIGKILL is sent\n *\n * Our handling:\n * 1. Receive SIGTERM\n * 2. Stop accepting new jobs (via registered stop handlers)\n * 3. Wait for in-flight jobs to complete (with timeout)\n * 4. Close connections\n * 5. Exit cleanly\n *\n * Architecture: Uses Registry pattern to avoid circular dependencies.\n * Components register themselves as \"stoppable\" via registerStopHandler().\n */\n\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { describeCaughtError, projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { isNonFatalTelemetryPipelineException } from '~wildo-backend-lib/errors/services/error-handler.backend.service';\nimport { RabbitMQAdapterBackendService } from './adapters/rabbitmq-adapter.backend.service';\n\n/**\n * Shutdown configuration.\n */\nexport interface ShutdownConfig {\n /**\n * Maximum time to wait for in-flight jobs (default: 25s)\n * Should be less than K8s terminationGracePeriodSeconds\n */\n gracePeriodMs?: number;\n\n /**\n * Interval to check for job completion (default: 500ms)\n */\n checkIntervalMs?: number;\n\n /**\n * Exit code on successful shutdown (default: 0)\n */\n exitCode?: number;\n}\n\nconst DEFAULT_SHUTDOWN_CONFIG: Required<ShutdownConfig> = {\n gracePeriodMs: 25000, // 25 seconds (K8s default is 30s)\n checkIntervalMs: 500,\n exitCode: 0,\n};\n\n/**\n * Handler called during shutdown (e.g., to stop consuming).\n * Called BEFORE waiting for in-flight jobs.\n */\ntype StopHandler = () => Promise<void>;\n\n/**\n * Handler called during final cleanup (e.g., close connections).\n * Called AFTER waiting for in-flight jobs.\n */\ntype ShutdownHandler = () => Promise<void>;\n\n@injectable()\nexport class WorkerShutdownManagerBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n private isShuttingDown = false;\n private inFlightJobCount = 0;\n\n /**\n * Handlers to stop accepting new work (called first).\n * E.g., JobConsumer.stopConsuming(), DomainQueueConsumer.stopAll()\n */\n private stopHandlers: StopHandler[] = [];\n\n /**\n * Handlers for final cleanup (called last, in LIFO order).\n * E.g., close database connections, flush logs\n */\n private shutdownHandlers: ShutdownHandler[] = [];\n\n private signalsRegistered = false;\n\n /** Audit A-7: ensures the shutdown handlers (incl. the OTel flush) run at most once across the\n * graceful path and the force/crash path. */\n private shutdownHandlersRun = false;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.RabbitMQAdapterService)\n private readonly adapter: RabbitMQAdapterBackendService,\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n ) {\n this.logDebug = this.logger.debugByType('WorkerShutdownManagerBackendService');\n this.logger.setDebugTypeLogging('WorkerShutdownManagerBackendService', false);\n }\n\n /**\n * Register shutdown signal handlers.\n * Should be called once during worker startup.\n */\n registerSignalHandlers(config: ShutdownConfig = {}): void {\n if (this.signalsRegistered) {\n // Idempotent by design: ObservabilityBackendService also calls this (to\n // guarantee a SIGTERM coordinator for no-queue telemetry-on hosts), so a\n // double-call on a queue+telemetry host is EXPECTED, not a misuse — log at\n // debug, not warn.\n this.logDebug('Shutdown signal handlers already registered — skipping');\n return;\n }\n\n const mergedConfig = { ...DEFAULT_SHUTDOWN_CONFIG, ...config };\n\n // Handle SIGTERM (K8s termination signal)\n process.on('SIGTERM', async () => {\n this.logDebug('Received SIGTERM, initiating graceful shutdown');\n await this.initiateShutdown(mergedConfig);\n });\n\n // Handle SIGINT (Ctrl+C in development)\n process.on('SIGINT', async () => {\n this.logDebug('Received SIGINT, initiating graceful shutdown');\n await this.initiateShutdown(mergedConfig);\n });\n\n // Handle uncaught exceptions. `.on` (not `.once`) — no re-arm concern for\n // the carve-out below, this listener stays registered regardless.\n //\n // `registerSignalHandlers` is idempotent and invoked whenever telemetry\n // is active on a NON-PLATFORM host (`ObservabilityBackendService.initialize`\n // and `QueueWorkerInitializer.initialize`, which respectively call\n // `wireGracefulFlush`/`registerSignalHandlers`, are both gated\n // `!isPlatformApplication`/`!isPlatformMode` in\n // `start-application.backend.service.ts` — platform hosts skip both\n // paths entirely). So this listener protects application hosts reached\n // through `StartApplicationBackendService` in non-platform mode\n // (backend-api, workers, minions, any queue worker) whenever telemetry is\n // active. It is NOT registered on `platform-apps-manager`,\n // `platform-crontabs-batches-manager`, or `platform-module-registry` —\n // those are covered by the separate, already-fixed\n // `runPlatformServiceEntrypoint` boundary in `platform-shared-lib`'s\n // `platform-service-process-boundary.ts`. See\n // {@link isNonFatalTelemetryPipelineException} for the incident this\n // isolates (2026-08-06 — `platform-apps-manager`, via that other\n // boundary).\n process.on('uncaughtException', async (error) => {\n if (isNonFatalTelemetryPipelineException(error)) {\n this.logger.error('Non-fatal telemetry-pipeline exception isolated; host stays up', {\n error: error.message,\n stack: error.stack,\n });\n return;\n }\n this.logger.error('Uncaught exception, forcing shutdown', {\n error: error.message,\n stack: error.stack,\n });\n await this.forceShutdown(1);\n });\n\n // Handle unhandled promise rejections\n process.on('unhandledRejection', async (reason) => {\n if (reason instanceof Error && isNonFatalTelemetryPipelineException(reason)) {\n this.logger.error('Non-fatal telemetry-pipeline rejection isolated; host stays up', {\n reason: describeCaughtError(reason),\n });\n return;\n }\n this.logger.error('Unhandled rejection, forcing shutdown', {\n reason: describeCaughtError(reason),\n });\n await this.forceShutdown(1);\n });\n\n this.signalsRegistered = true;\n this.logDebug('Shutdown signal handlers registered');\n }\n\n /**\n * Register a stop handler (called first during shutdown).\n * Use for stopping consumers, accepting new requests, etc.\n * Handlers are called in order of registration.\n *\n * @example\n * // JobConsumer registers itself\n * shutdownManager.registerStopHandler(() => this.stopConsuming());\n */\n registerStopHandler(handler: StopHandler): void {\n this.stopHandlers.push(handler);\n this.logDebug('Stop handler registered', { totalStopHandlers: this.stopHandlers.length });\n }\n\n /**\n * Register a custom shutdown handler (called last during shutdown).\n * Handlers are called in LIFO order.\n * Use for final cleanup: close connections, flush logs, etc.\n */\n onShutdown(handler: ShutdownHandler): void {\n this.shutdownHandlers.push(handler);\n }\n\n /**\n * Increment in-flight job counter.\n * Call when a job starts processing.\n */\n jobStarted(): void {\n this.inFlightJobCount++;\n }\n\n /**\n * Decrement in-flight job counter.\n * Call when a job completes (success or failure).\n */\n jobCompleted(): void {\n this.inFlightJobCount = Math.max(0, this.inFlightJobCount - 1);\n }\n\n /**\n * Get current in-flight job count.\n */\n getInFlightCount(): number {\n return this.inFlightJobCount;\n }\n\n /**\n * Check if shutdown is in progress.\n */\n isShutdownInProgress(): boolean {\n return this.isShuttingDown;\n }\n\n /**\n * Initiate graceful shutdown.\n */\n async initiateShutdown(config: Required<ShutdownConfig>): Promise<void> {\n if (this.isShuttingDown) {\n this.logger.warn('Shutdown already in progress');\n return;\n }\n\n this.isShuttingDown = true;\n const startTime = Date.now();\n\n try {\n // Step 1: Stop accepting new work (run all stop handlers)\n this.logDebug('Running stop handlers...', { count: this.stopHandlers.length });\n for (const handler of this.stopHandlers) {\n try {\n await handler();\n } catch (error) {\n this.logger.error('Stop handler failed', {\n ...projectCaughtErrorLogFields(error),\n });\n }\n }\n this.logDebug('Stop handlers completed');\n\n // Step 2: Wait for in-flight jobs to complete\n this.logDebug('Waiting for in-flight jobs...', { count: this.inFlightJobCount });\n\n const waitResult = await this.waitForInFlightJobs(config);\n\n if (!waitResult) {\n this.logger.warn('Grace period expired, some jobs may be lost', {\n remainingJobs: this.inFlightJobCount,\n });\n }\n\n // Step 3: Run custom shutdown handlers (LIFO) — incl. the OTel telemetry flush.\n this.logDebug('Running shutdown handlers...');\n await this.runShutdownHandlers();\n\n // Step 4: Close RabbitMQ connection\n this.logDebug('Closing RabbitMQ connection...');\n await this.adapter.close();\n\n // Step 5: Exit\n const duration = Date.now() - startTime;\n this.logDebug('Graceful shutdown complete', {\n durationMs: duration,\n remainingJobs: this.inFlightJobCount,\n });\n\n process.exit(config.exitCode);\n\n } catch (error) {\n this.logger.error('Shutdown error, forcing exit', {\n ...projectCaughtErrorLogFields(error),\n });\n await this.forceShutdown(1);\n }\n }\n\n /**\n * Wait for in-flight jobs to complete.\n * Returns true if all jobs completed, false if timeout.\n */\n private async waitForInFlightJobs(config: Required<ShutdownConfig>): Promise<boolean> {\n const deadline = Date.now() + config.gracePeriodMs;\n\n while (this.inFlightJobCount > 0 && Date.now() < deadline) {\n await new Promise(resolve => setTimeout(resolve, config.checkIntervalMs));\n\n this.logDebug('Waiting for jobs', {\n inFlight: this.inFlightJobCount,\n remainingMs: deadline - Date.now(),\n });\n }\n\n return this.inFlightJobCount === 0;\n }\n\n /**\n * Run the registered shutdown handlers (LIFO) at most once. Idempotent across the graceful path\n * and the force/crash path (audit A-7). Each handler is error-isolated.\n */\n private async runShutdownHandlers(): Promise<void> {\n if (this.shutdownHandlersRun) {\n return;\n }\n this.shutdownHandlersRun = true;\n for (const handler of [...this.shutdownHandlers].reverse()) {\n try {\n await handler();\n } catch (error) {\n this.logger.error('Shutdown handler failed', {\n ...projectCaughtErrorLogFields(error),\n });\n }\n }\n }\n\n /**\n * Force immediate shutdown.\n */\n private async forceShutdown(exitCode: number): Promise<void> {\n this.logger.error('Forcing shutdown', { exitCode });\n\n // Audit A-7: even on a forced/crash exit (uncaughtException / unhandledRejection / a failed\n // graceful shutdown), run the registered shutdown handlers — which include the OTel telemetry\n // flush — so the final trace/log batch (often the very spans explaining the crash) is\n // exported. Idempotent (no double-run if the graceful path already ran them) and bounded by a\n // tight timeout so it can NEVER hang the force-exit.\n try {\n await Promise.race([\n this.runShutdownHandlers(),\n new Promise<void>(resolve => {\n const timer = setTimeout(resolve, 2_000);\n timer.unref();\n }),\n ]);\n } catch {\n // best-effort on the force path\n }\n\n try {\n await this.adapter.close();\n } catch {\n // Ignore errors during force shutdown\n }\n\n process.exit(exitCode);\n }\n}\n"]}
1
+ {"version":3,"file":"worker-shutdown-manager.backend.service.js","sourceRoot":"","sources":["../../../../src/queue/worker-shutdown-manager.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Worker Shutdown Manager Backend Service\n *\n * Handles graceful shutdown for queue workers in K8s environment.\n *\n * Kubernetes termination flow:\n * 1. Pod receives SIGTERM\n * 2. PreStop hook (if configured) gives extra time\n * 3. terminationGracePeriodSeconds countdown begins\n * 4. If not terminated, SIGKILL is sent\n *\n * Our handling:\n * 1. Receive SIGTERM\n * 2. Stop accepting new jobs (via registered stop handlers)\n * 3. Wait for in-flight jobs to complete (with timeout)\n * 4. Close connections\n * 5. Exit cleanly\n *\n * Architecture: Uses Registry pattern to avoid circular dependencies.\n * Components register themselves as \"stoppable\" via registerStopHandler().\n */\n\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { describeCaughtError, projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { isNonFatalTelemetryPipelineException } from '~wildo-backend-lib/errors/services/error-handler.backend.service';\nimport type { QueueAdapter } from './adapters/queue-adapter.backend.interface';\n\n/**\n * Shutdown configuration.\n */\nexport interface ShutdownConfig {\n /**\n * Maximum time to wait for in-flight jobs (default: 25s)\n * Should be less than K8s terminationGracePeriodSeconds\n */\n gracePeriodMs?: number;\n\n /**\n * Interval to check for job completion (default: 500ms)\n */\n checkIntervalMs?: number;\n\n /**\n * Exit code on successful shutdown (default: 0)\n */\n exitCode?: number;\n}\n\nconst DEFAULT_SHUTDOWN_CONFIG: Required<ShutdownConfig> = {\n gracePeriodMs: 25000, // 25 seconds (K8s default is 30s)\n checkIntervalMs: 500,\n exitCode: 0,\n};\n\n/**\n * Handler called during shutdown (e.g., to stop consuming).\n * Called BEFORE waiting for in-flight jobs.\n */\ntype StopHandler = () => Promise<void>;\n\n/**\n * Handler called during final cleanup (e.g., close connections).\n * Called AFTER waiting for in-flight jobs.\n */\ntype ShutdownHandler = () => Promise<void>;\n\n@injectable()\nexport class WorkerShutdownManagerBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n private isShuttingDown = false;\n private inFlightJobCount = 0;\n\n /**\n * Handlers to stop accepting new work (called first).\n * E.g., JobConsumer.stopConsuming(), DomainQueueConsumer.stopAll()\n */\n private stopHandlers: StopHandler[] = [];\n\n /**\n * Handlers for final cleanup (called last, in LIFO order).\n * E.g., close database connections, flush logs\n */\n private shutdownHandlers: ShutdownHandler[] = [];\n\n private signalsRegistered = false;\n\n /** Audit A-7: ensures the shutdown handlers (incl. the OTel flush) run at most once across the\n * graceful path and the force/crash path. */\n private shutdownHandlersRun = false;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.RabbitMQAdapterService)\n private readonly adapter: QueueAdapter,\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n ) {\n this.logDebug = this.logger.debugByType('WorkerShutdownManagerBackendService');\n this.logger.setDebugTypeLogging('WorkerShutdownManagerBackendService', false);\n }\n\n /**\n * Register shutdown signal handlers.\n * Should be called once during worker startup.\n */\n registerSignalHandlers(config: ShutdownConfig = {}): void {\n if (this.signalsRegistered) {\n // Idempotent by design: ObservabilityBackendService also calls this (to\n // guarantee a SIGTERM coordinator for no-queue telemetry-on hosts), so a\n // double-call on a queue+telemetry host is EXPECTED, not a misuse — log at\n // debug, not warn.\n this.logDebug('Shutdown signal handlers already registered — skipping');\n return;\n }\n\n const mergedConfig = { ...DEFAULT_SHUTDOWN_CONFIG, ...config };\n\n // Handle SIGTERM (K8s termination signal)\n process.on('SIGTERM', async () => {\n this.logDebug('Received SIGTERM, initiating graceful shutdown');\n await this.initiateShutdown(mergedConfig);\n });\n\n // Handle SIGINT (Ctrl+C in development)\n process.on('SIGINT', async () => {\n this.logDebug('Received SIGINT, initiating graceful shutdown');\n await this.initiateShutdown(mergedConfig);\n });\n\n // Handle uncaught exceptions. `.on` (not `.once`) — no re-arm concern for\n // the carve-out below, this listener stays registered regardless.\n //\n // `registerSignalHandlers` is idempotent and invoked whenever telemetry\n // is active on a NON-PLATFORM host (`ObservabilityBackendService.initialize`\n // and `QueueWorkerInitializer.initialize`, which respectively call\n // `wireGracefulFlush`/`registerSignalHandlers`, are both gated\n // `!isPlatformApplication`/`!isPlatformMode` in\n // `start-application.backend.service.ts` — platform hosts skip both\n // paths entirely). So this listener protects application hosts reached\n // through `StartApplicationBackendService` in non-platform mode\n // (backend-api, workers, minions, any queue worker) whenever telemetry is\n // active. It is NOT registered on `platform-apps-manager`,\n // `platform-crontabs-batches-manager`, or `platform-module-registry` —\n // those are covered by the separate, already-fixed\n // `runPlatformServiceEntrypoint` boundary in `platform-shared-lib`'s\n // `platform-service-process-boundary.ts`. See\n // {@link isNonFatalTelemetryPipelineException} for the incident this\n // isolates (2026-08-06 — `platform-apps-manager`, via that other\n // boundary).\n process.on('uncaughtException', async (error) => {\n if (isNonFatalTelemetryPipelineException(error)) {\n this.logger.error('Non-fatal telemetry-pipeline exception isolated; host stays up', {\n error: error.message,\n stack: error.stack,\n });\n return;\n }\n this.logger.error('Uncaught exception, forcing shutdown', {\n error: error.message,\n stack: error.stack,\n });\n await this.forceShutdown(1);\n });\n\n // Handle unhandled promise rejections\n process.on('unhandledRejection', async (reason) => {\n if (reason instanceof Error && isNonFatalTelemetryPipelineException(reason)) {\n this.logger.error('Non-fatal telemetry-pipeline rejection isolated; host stays up', {\n reason: describeCaughtError(reason),\n });\n return;\n }\n this.logger.error('Unhandled rejection, forcing shutdown', {\n reason: describeCaughtError(reason),\n });\n await this.forceShutdown(1);\n });\n\n this.signalsRegistered = true;\n this.logDebug('Shutdown signal handlers registered');\n }\n\n /**\n * Register a stop handler (called first during shutdown).\n * Use for stopping consumers, accepting new requests, etc.\n * Handlers are called in order of registration.\n *\n * @example\n * // JobConsumer registers itself\n * shutdownManager.registerStopHandler(() => this.stopConsuming());\n */\n registerStopHandler(handler: StopHandler): void {\n this.stopHandlers.push(handler);\n this.logDebug('Stop handler registered', { totalStopHandlers: this.stopHandlers.length });\n }\n\n /**\n * Register a custom shutdown handler (called last during shutdown).\n * Handlers are called in LIFO order.\n * Use for final cleanup: close connections, flush logs, etc.\n */\n onShutdown(handler: ShutdownHandler): void {\n this.shutdownHandlers.push(handler);\n }\n\n /**\n * Increment in-flight job counter.\n * Call when a job starts processing.\n */\n jobStarted(): void {\n this.inFlightJobCount++;\n }\n\n /**\n * Decrement in-flight job counter.\n * Call when a job completes (success or failure).\n */\n jobCompleted(): void {\n this.inFlightJobCount = Math.max(0, this.inFlightJobCount - 1);\n }\n\n /**\n * Get current in-flight job count.\n */\n getInFlightCount(): number {\n return this.inFlightJobCount;\n }\n\n /**\n * Check if shutdown is in progress.\n */\n isShutdownInProgress(): boolean {\n return this.isShuttingDown;\n }\n\n /**\n * Initiate graceful shutdown.\n */\n async initiateShutdown(config: Required<ShutdownConfig>): Promise<void> {\n if (this.isShuttingDown) {\n this.logger.warn('Shutdown already in progress');\n return;\n }\n\n this.isShuttingDown = true;\n const startTime = Date.now();\n\n try {\n // Step 1: Stop accepting new work (run all stop handlers)\n this.logDebug('Running stop handlers...', { count: this.stopHandlers.length });\n for (const handler of this.stopHandlers) {\n try {\n await handler();\n } catch (error) {\n this.logger.error('Stop handler failed', {\n ...projectCaughtErrorLogFields(error),\n });\n }\n }\n this.logDebug('Stop handlers completed');\n\n // Step 2: Wait for in-flight jobs to complete\n this.logDebug('Waiting for in-flight jobs...', { count: this.inFlightJobCount });\n\n const waitResult = await this.waitForInFlightJobs(config);\n\n if (!waitResult) {\n /*\n * ## A grace-period overrun is an ORCHESTRATOR-level concern — decided 2026-09-08 (#469)\n *\n * A warning line, and deliberately nothing more: no metric, no audit record, and the exit\n * code is UNCHANGED (`config.exitCode` below still applies). Repeated overruns across a\n * fleet therefore leave no signal inside Wildo, and that is accepted — the orchestrator is\n * what observes a pod that did not drain in time, from the termination grace period it set\n * and the restart it performs.\n *\n * The exit code specifically was on the table and was left alone: it is the one signal here\n * with a real consequence for an orchestrator, and changing it would alter how every\n * deployment lane reads a shutdown. Do not \"improve\" it without re-taking that decision.\n *\n * If this ever bites, the option to revisit FIRST is a recorded event on overrun — the\n * cheap half of the operator-surface option that was not taken, and the one that exposes no\n * job payload.\n */\n this.logger.warn('Grace period expired, some jobs may be lost', {\n remainingJobs: this.inFlightJobCount,\n });\n }\n\n // Step 3: Run custom shutdown handlers (LIFO) — incl. the OTel telemetry flush.\n this.logDebug('Running shutdown handlers...');\n await this.runShutdownHandlers();\n\n // Step 4: Close RabbitMQ connection\n this.logDebug('Closing RabbitMQ connection...');\n await this.adapter.close();\n\n // Step 5: Exit\n const duration = Date.now() - startTime;\n this.logDebug('Graceful shutdown complete', {\n durationMs: duration,\n remainingJobs: this.inFlightJobCount,\n });\n\n process.exit(config.exitCode);\n\n } catch (error) {\n this.logger.error('Shutdown error, forcing exit', {\n ...projectCaughtErrorLogFields(error),\n });\n await this.forceShutdown(1);\n }\n }\n\n /**\n * Wait for in-flight jobs to complete.\n * Returns true if all jobs completed, false if timeout.\n */\n private async waitForInFlightJobs(config: Required<ShutdownConfig>): Promise<boolean> {\n const deadline = Date.now() + config.gracePeriodMs;\n\n while (this.inFlightJobCount > 0 && Date.now() < deadline) {\n await new Promise(resolve => setTimeout(resolve, config.checkIntervalMs));\n\n this.logDebug('Waiting for jobs', {\n inFlight: this.inFlightJobCount,\n remainingMs: deadline - Date.now(),\n });\n }\n\n return this.inFlightJobCount === 0;\n }\n\n /**\n * Run the registered shutdown handlers (LIFO) at most once. Idempotent across the graceful path\n * and the force/crash path (audit A-7). Each handler is error-isolated.\n */\n private async runShutdownHandlers(): Promise<void> {\n if (this.shutdownHandlersRun) {\n return;\n }\n this.shutdownHandlersRun = true;\n for (const handler of [...this.shutdownHandlers].reverse()) {\n try {\n await handler();\n } catch (error) {\n this.logger.error('Shutdown handler failed', {\n ...projectCaughtErrorLogFields(error),\n });\n }\n }\n }\n\n /**\n * Force immediate shutdown.\n */\n private async forceShutdown(exitCode: number): Promise<void> {\n this.logger.error('Forcing shutdown', { exitCode });\n\n // Audit A-7: even on a forced/crash exit (uncaughtException / unhandledRejection / a failed\n // graceful shutdown), run the registered shutdown handlers — which include the OTel telemetry\n // flush — so the final trace/log batch (often the very spans explaining the crash) is\n // exported. Idempotent (no double-run if the graceful path already ran them) and bounded by a\n // tight timeout so it can NEVER hang the force-exit.\n try {\n await Promise.race([\n this.runShutdownHandlers(),\n new Promise<void>(resolve => {\n const timer = setTimeout(resolve, 2_000);\n timer.unref();\n }),\n ]);\n } catch {\n // best-effort on the force path\n }\n\n try {\n await this.adapter.close();\n } catch {\n // Ignore errors during force shutdown\n }\n\n process.exit(exitCode);\n }\n}\n"]}
@@ -7,19 +7,35 @@
7
7
  * set by its SOURCE. If two derivations of one source could differ, a hash-equal skip (the hook's
8
8
  * no-op-write optimisation) would silently preserve chunks that a re-run would have replaced.
9
9
  *
10
- * ## Strategy coverage — v1 implements `FIXED_SIZE`; the others FALL BACK, never throw
10
+ * ## Strategy coverage — four of five; `SEMANTIC` alone still falls back
11
11
  *
12
- * `RAGChunkingStrategy` is the authored vocabulary (`.ragSource({ chunkingStrategy })`), so an
13
- * application can already declare `RECURSIVE` / `SEMANTIC` / `MARKDOWN` / `CODE` today. Refusing an
14
- * unimplemented member here would let a schema DECORATION brick every write to the field — the
15
- * decorator validated it as a known member, the write path must not renege post-commit. So an
16
- * unimplemented strategy degrades to fixed-size chunking with a debug log naming the strategy, and
17
- * THIS IS THE DOOR: implementing a strategy later means adding its member to
18
- * {@link RAG_IMPLEMENTED_CHUNKING_STRATEGIES} and its arm to the derivation below. The fallback keeps
19
- * corpora usable (retrieval quality, not correctness, is what the fallback trades), and the sweep's
20
- * config-keyed re-chunk decision is where already-written sets catch up — see
21
- * {@link resolveEffectiveRagChunkingConfig}, whose result is what the stored `chunkingConfigHash`
22
- * identifies.
12
+ * `FIXED_SIZE`, `RECURSIVE`, `MARKDOWN` and `CODE` are implemented (#434). The last three share one
13
+ * recursive engine and differ only in their SEPARATOR HIERARCHY, which is the honest shape: what
14
+ * makes markdown chunking markdown-aware is knowing that a heading is a bigger boundary than a
15
+ * paragraph, not a different algorithm.
16
+ *
17
+ * `SEMANTIC` is NOT implemented, and cannot be here. The vocabulary defines it as *"split at
18
+ * embedding-detected topic boundaries"* — which requires an embeddings provider, an async call, and
19
+ * a model whose output this module would then have to treat as stable. This function is pure,
20
+ * synchronous and DETERMINISTIC BY CONTRACT (see above): a hash-equal skip preserves an existing
21
+ * chunk set precisely because a re-derivation cannot differ. Implementing "semantic" as
22
+ * sentence-grouping would satisfy the enum member's NAME while delivering whitespace heuristics,
23
+ * which is the class of defect that put this on the tracker in the first place. Giving it a real
24
+ * implementation means changing this module's contract — async, provider-aware, and with a defined
25
+ * answer for how a chunk set stays reproducible across model versions — and that is a decision, not
26
+ * a splitter.
27
+ *
28
+ * There is no unimplemented-member fallback any more, because there is no unimplemented member. This
29
+ * file used to degrade `SEMANTIC` to fixed-size with a debug log, so a schema DECORATION could not
30
+ * brick every write to a field the decorator had already validated. #434 removed that member on
31
+ * 2026-09-09 rather than implementing it — the vocabulary's own JSDoc carries the measurements — and
32
+ * the fallback went with it, since a runtime door nothing can open is an untested claim rather than
33
+ * defence in depth.
34
+ *
35
+ * A sixth strategy therefore arrives as a COMPILE ERROR in {@link RAG_CHUNKING_SEPARATORS}, which is
36
+ * total over the vocabulary. That is a better door than the one it replaces: the old one made an
37
+ * unimplemented strategy SILENT, and silence here means a corpus chunked one way while the schema
38
+ * claims another.
23
39
  */
24
40
  import type { RagSourceConfiguration } from '@wildo-ai/zod-decorators';
25
41
  import { RAGChunkingStrategy } from '@wildo-ai/zod-decorators';
@@ -41,22 +57,24 @@ export declare const RAG_DEFAULT_CHUNK_SIZE = 512;
41
57
  */
42
58
  export declare const RAG_DEFAULT_CHUNK_OVERLAP = 50;
43
59
  /**
44
- * The strategies this module ACTUALLY implements. Every other authored member degrades to
45
- * `FIXED_SIZE` (the file header's door).
60
+ * EVERY member of {@link RAGChunkingStrategy} is implemented, and that is now enforced by the
61
+ * COMPILER rather than by a runtime set.
62
+ *
63
+ * Until 2026-09-09 this file exported `RAG_IMPLEMENTED_CHUNKING_STRATEGIES` and degraded any member
64
+ * outside it to `FIXED_SIZE`, so an unimplemented strategy could not brick a committed write. That
65
+ * door had exactly one subject, `SEMANTIC`, and #434 removed the member rather than building it (see
66
+ * the vocabulary's own JSDoc for the measurements). With no subject left, the set and the degradation
67
+ * are gone: a runtime fallback nothing can reach is not defence in depth, it is an untested claim.
46
68
  *
47
- * This set is not decoration: it is an INPUT to {@link resolveEffectiveRagChunkingConfig}, and
48
- * therefore to the stored `chunkingConfigHash`. Adding a member here changes what a field authored
49
- * with that strategy resolves to, which changes its config hash, which makes the reconciliation
50
- * sweep re-chunk exactly the corpora that were being served by the fallback — the moment the real
51
- * strategy becomes available. Hashing the AUTHORED strategy instead would leave those corpora
52
- * fixed-size-chunked forever while the schema claimed otherwise, which is the silent-staleness class
53
- * the config hash exists to close.
69
+ * What replaces it is stronger. {@link RAG_CHUNKING_SEPARATORS} is a TOTAL `Record` over the
70
+ * vocabulary, so a sixth member cannot be added without deciding its separators — a compile error
71
+ * instead of a silent degradation nobody would observe until a corpus came back fixed-size-chunked.
72
+ * `null` is the deliberate entry for `FIXED_SIZE`, which splits by size and has no separators; it
73
+ * reads as a decision rather than as an omission.
54
74
  */
55
- export declare const RAG_IMPLEMENTED_CHUNKING_STRATEGIES: ReadonlySet<RAGChunkingStrategy>;
56
75
  /**
57
76
  * The chunking parameters that will ACTUALLY be applied to a field's text — authored values with the
58
- * framework defaults filled in, the defensive overlap clamp applied, and the strategy resolved
59
- * through {@link RAG_IMPLEMENTED_CHUNKING_STRATEGIES}.
77
+ * framework defaults filled in and the defensive overlap clamp applied.
60
78
  *
61
79
  * One resolution, two consumers: {@link chunkRagSourceText} derives chunks from it, and
62
80
  * `computeRagChunkingConfigHash` identifies a chunk set's DERIVATION by it. They cannot disagree,
@@ -65,7 +83,14 @@ export declare const RAG_IMPLEMENTED_CHUNKING_STRATEGIES: ReadonlySet<RAGChunkin
65
83
  * derivations) and re-chunk the whole corpus on every run, forever.
66
84
  */
67
85
  export interface RagEffectiveChunkingConfig {
68
- /** The strategy the chunker will execute — NOT necessarily the authored one (see the set above). */
86
+ /**
87
+ * The strategy the chunker will execute.
88
+ *
89
+ * Kept named `appliedStrategy` rather than `strategy` even though it now always equals the
90
+ * authored one: its VALUE is the first element of the `chunkingConfigHash` tuple, and the name
91
+ * records that this is the resolved end of a resolution — the place a future divergence would
92
+ * appear, if the vocabulary ever grows a member whose execution differs from its authoring.
93
+ */
69
94
  appliedStrategy: RAGChunkingStrategy;
70
95
  chunkSize: number;
71
96
  /** Post-clamp: always `< chunkSize`, so the chunking stride is always positive. */
@@ -1 +1 @@
1
- {"version":3,"file":"rag-chunking.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/rag/utils/rag-chunking.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAEjG;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mCAAmC,EAAE,WAAW,CAAC,mBAAmB,CAE/E,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,0BAA0B;IACzC,oGAAoG;IACpG,eAAe,EAAE,mBAAmB,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,sBAAsB,GAAG,0BAA0B,CAW5G;AAED,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,MAAM,CAAC,EAAE,iBAAiB,GACzB,aAAa,EAAE,CA0BjB"}
1
+ {"version":3,"file":"rag-chunking.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/rag/utils/rag-chunking.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAEjG;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;OAOG;IACH,eAAe,EAAE,mBAAmB,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,sBAAsB,GAAG,0BAA0B,CAS5G;AAoHD,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,MAAM,CAAC,EAAE,iBAAiB,GACzB,aAAa,EAAE,CAoCjB"}