@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
@@ -11,6 +11,7 @@ import type { PlatformMutualizedHandlerBackendService } from '../../../requests/
11
11
  import type { ServerlessServicesHandlerBackendService } from '../../../requests/service/serverless-services-handler.backend.service';
12
12
  import type { ExecutionContextCreatorBackendService } from '../../../runtime/services/execution-context-creator.backend.service';
13
13
  import type { SystemAccessBackendService } from '../../../base-classes/services/services/system-access.backend.service';
14
+ import type { WorkerRemoteClientFactoryBackendService } from '../../../applications/services/worker-remote-client-factory.backend.service';
14
15
  import type { ServiceOptions } from '../../../base-classes/models/repositories.backend.schemas';
15
16
  type Augment<TAugment extends object | undefined = undefined> = TAugment extends undefined ? {} : TAugment;
16
17
  export type ResourceOperationCustomImplementation_InputTypeOf<TMode extends ResourceOperation_CustomServiceImplementationMode = ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL, TInput extends (z.ZodSchema | undefined) = z.ZodAny | undefined, TOutput extends z.ZodSchema = z.ZodAny, TAugment extends object | undefined = undefined> = (TMode extends ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL | ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS ? TInput extends z.ZodSchema ? z.infer<TInput> : never : TMode extends ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS ? TInput extends z.ZodSchema ? z.infer<TInput> & Augment<TAugment> : never : z.infer<TOutput>);
@@ -82,6 +83,27 @@ export type ResourceOperation_CustomImplementation_Utils = {
82
83
  * not bind the system-access service still construct.
83
84
  */
84
85
  systemAccessService?: SystemAccessBackendService;
86
+ /**
87
+ * Dispatch to one of the application's declared WORKERS — the sanctioned way to move work off the
88
+ * request path from application backend code.
89
+ *
90
+ * `workerClientFactory.client('<workerName>').post('/route', body)` mints the
91
+ * `APPLICATION_WORKER_REQUEST` JWT the worker's verifier pins and reaches the worker at the URL
92
+ * the deploy injected. The factory fails CLOSED on an undeclared worker rather than dispatching to
93
+ * a guessed address.
94
+ *
95
+ * ## Why it had to be added here (#426)
96
+ *
97
+ * The factory shipped, was bound in DI, and had NO caller anywhere — and this is why: a custom
98
+ * implementation is the one place an application writes backend logic, and this bag was the only
99
+ * thing it receives. There was no handle, so no application COULD call a worker, which is the
100
+ * deeper half of why the backend-to-worker chain had never run for anyone. Adding the handle is
101
+ * what turns a shipped mechanism into a reachable one.
102
+ *
103
+ * Optional for the same reason `systemAccessService` is: a minimal test container that does not
104
+ * bind the factory must still construct.
105
+ */
106
+ workerClientFactory?: WorkerRemoteClientFactoryBackendService;
85
107
  /** SAML metadata service — for DISCOVER_ENDPOINTS (emits SAML_METADATA_PARSED) */
86
108
  samlMetadataService?: {
87
109
  parseIdPMetadata(metadataXml: string): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-operation-custom-implementation-base.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-operation-custom-implementation-base.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-operation-custom-implementation-base.backend.service.js","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,iDAAiD,EACjD,SAAS,EACT,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAgD/B,MAAM,CAAC,MAAM,wDAAwD,GAAG,CACtE,IAAuD,EACvD,aAAiC,EACjC,MAAe,EACf,aAAsB,EACtB,YAAyC,EAChC,EAAE;IAEX,MAAM,KAAK,GAAG,CAAC,MAAgC,EAAE,MAAe,EAAE,QAAiB,KAAK,EAAW,EAAE;QACnG,IAAI,CAAC,MAAM;YACT,OAAO,MAAM,CAAC;QAEhB,IAAG,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,KAAK;gBACP,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,IAAG,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC/B,IAAI,YAAY,EAAE,CAAC;oBACjB,2HAA2H;oBAC3H,2EAA2E;oBAC3E,6DAA6D;oBAC7D,mEAAmE;oBACnE,0EAA0E;oBAC1E,2EAA2E;oBAC3E,yEAAyE;oBACzE,sEAAsE;oBACtE,MAAM,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE;wBAC7D,sBAAsB,EAAE,2BAA2B,CAAC,kCAAkC;qBACvF,CAAC,CAAC;oBACH,mEAAmE;gBACrE,CAAC;gBACD,4EAA4E;gBAC5E,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,UAAU,GAAI,MAAmC,CAAC,OAAO,CAAC;YAChE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAA;IAED,IAAG,aAAa,KAAK,OAAO,EAAE,CAAC;QAC7B,yEAAyE;QACzE,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,IAAI,KAAK,iDAAiD,CAAC,wBAAwB;eAClF,IAAI,KAAK,iDAAiD,CAAC,uBAAuB,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAY,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,CAAY,CAAC;IAEjD,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,IAAI,KAAK,iDAAiD,CAAC,uBAAuB,EAAE,CAAC;YACvF,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAY,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,CAAY,CAAC;IACjD,CAAC;AACH,CAAC,CAAA;AA2FD,MAAM,OAAgB,yCAAyC;CAwJ9D","sourcesContent":["import { z } from 'zod';\nimport {\n ResourceConfiguration_Operation,\n ResourceConfiguration_OperationPath,\n ResourceOperation_CustomServiceImplementationMode,\n ErrorType,\n ErrorCustomMessageReference,\n} from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ServicesRegistryHandlerBackendService } from './services-registry-handler.backend.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { ExternalApiHandlerBackendService } from '~wildo-backend-lib/external-providers/services/external-api-handler.backend.service';\nimport type { PlatformMutualizedHandlerBackendService } from '~wildo-backend-lib/requests/service/platform-mutualized-handler.backend.service';\nimport type { ServerlessServicesHandlerBackendService } from '~wildo-backend-lib/requests/service/serverless-services-handler.backend.service';\nimport type { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\nimport type { SystemAccessBackendService } from '~wildo-backend-lib/base-classes/services/services/system-access.backend.service';\nimport type { ServiceOptions } from '~wildo-backend-lib/base-classes/models/repositories.backend.schemas';\n\ntype Augment<TAugment extends object|undefined = undefined> = TAugment extends undefined ? {} : TAugment;\n\nexport type ResourceOperationCustomImplementation_InputTypeOf<\n TMode extends ResourceOperation_CustomServiceImplementationMode = ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL,\n TInput extends (z.ZodSchema | undefined) = z.ZodAny | undefined,\n TOutput extends z.ZodSchema = z.ZodAny,\n TAugment extends object|undefined = undefined\n> =(\n TMode extends ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL | ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS\n ? TInput extends z.ZodSchema\n ? z.infer<TInput>\n : never\n : TMode extends ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS\n ? TInput extends z.ZodSchema\n ? z.infer<TInput> & Augment<TAugment>\n : never\n : z.infer<TOutput>\n)\n\nexport type ResourceOperationCustomImplementation_OutputTypeOf<\n TMode extends ResourceOperation_CustomServiceImplementationMode = ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL,\n TInput extends (z.ZodSchema | undefined) = z.ZodAny | undefined,\n TOutput extends z.ZodSchema = z.ZodAny,\n TAugment extends object|undefined = undefined\n> = (\n TMode extends ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS\n ? TInput extends z.ZodSchema\n ? z.infer<TInput> & Augment<TAugment>\n : Augment<TAugment>\n : z.infer<TOutput>\n)\n\n\n\nexport const parseResourceOperation_CustomServiceImplementationSchema = <TSchema extends z.ZodTypeAny | undefined, TReturn = TSchema extends z.ZodTypeAny ? z.infer<TSchema> : unknown>(\n mode: ResourceOperation_CustomServiceImplementationMode,\n inputOrOutput: 'input' | 'output',\n schema: TSchema,\n objectToParse: unknown,\n errorBuilder?: ErrorBuilderBackendService,\n): TReturn => {\n\n const parse = (schema: z.ZodTypeAny | undefined, object: unknown, loose: boolean = false): unknown => {\n if (!schema)\n return object;\n\n if(schema instanceof z.ZodObject) {\n if (loose)\n return z.looseObject(schema.shape).parse(object);\n return schema.parse(object);\n }\n if(schema instanceof z.ZodArray) {\n if (!(object instanceof Array)) {\n if (errorBuilder) {\n /** @wildo_source:part:start example.backend.operation.error-throw facet:kind:usage-example facet:audience:app-developer */\n // Inside a backend custom-operation hook you receive `utils.errorBuilder`.\n // Throw a WildoError with it — NEVER `throw new Error(...)`:\n // • the ErrorType drives the HTTP status (VALIDATION → 400 here);\n // • customMessageReference names the localized user message (resolved by\n // tErrorMessage → errors_messages.<ref>.msg) — do NOT hardcode English;\n // • any dynamic values go in `context` as structured keys (log-only for\n // most types), never interpolated into a `context.message` string.\n throw errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.SERVICE_RESOURCE_VALIDATION_FAILED,\n });\n /** @wildo_source:part:end example.backend.operation.error-throw */\n }\n // Bootstrap/leaf fallback ONLY — errorBuilder is unavailable here (pre-DI).\n throw new Error('Input is not an array');\n }\n const itemSchema = (schema as z.ZodArray<z.ZodTypeAny>).element;\n object = object.map((item: unknown) => parse(itemSchema, item, loose));\n return object;\n }\n return schema.parse(object);\n }\n\n if(inputOrOutput === 'input') {\n // PREFIX and REPLACE both receive data that may contain augmented fields\n // from basicPrefixOperation or prior PREFIX handlers — use loose parse\n // to preserve those fields while still validating declared schema fields.\n if (mode === ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS\n || mode === ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS) {\n return parse(schema, objectToParse, true) as TReturn;\n }\n return parse(schema, objectToParse) as TReturn;\n\n } else {\n // PREFIX output may contain augmented fields (TAugment) that the declared\n // output schema doesn't know about — use loose parse to preserve them.\n if (mode === ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS) {\n return parse(schema, objectToParse, true) as TReturn;\n }\n return parse(schema, objectToParse) as TReturn;\n }\n}\n\n\n\n/**\n * Utilities object provided to custom implementation methods.\n *\n * Contains:\n * - Service instances (logger, errorBuilder, registries, handlers)\n * - `executionContextCreator`: Creates child execution contexts for cross-resource sub-calls\n * - Contextual data for the operation:\n * - `objectContext`: Parent and child resource data (fetched based on resource configuration)\n * - `initiatorUserContext`: User context of the user/organization/application initiating the operation\n * - `currentObject`: The current resource object (for UPDATE/DELETE operations) or input data (for CREATE operations)\n *\n * Context fields are populated automatically by the service registry handler based on:\n * - Resource configuration context needs analysis\n * - Operation type (CREATE uses input data, UPDATE/DELETE fetches current object)\n *\n * ### Cross-resource operations\n *\n * For cross-resource calls from custom impls, use `utils.executionContextCreator.createForSubCall()`\n * to create a child context with proper depth tracking and cycle detection, then pass it\n * to `utils.servicesRegistry`. Example:\n *\n * ```ts\n * const subCtx = await utils.executionContextCreator.createForSubCall(\n * executionContext, targetResourceType, CoreResourceOperation.CREATE\n * );\n * await utils.servicesRegistry.create(targetResourceType, subCtx, data);\n * ```\n *\n * Calling `servicesRegistry` directly with the parent context is functionally safe\n * (doOperation corrects the operation), but skips depth/cycle tracking.\n */\nexport type ResourceOperation_CustomImplementation_Utils = {\n logger: LoggerService;\n errorBuilder: ErrorBuilderBackendService;\n resourcesRegistry: ResourcesRegistryBackendService;\n servicesRegistry: ServicesRegistryHandlerBackendService;\n /**\n * Options of the operation currently executing, including its database\n * transaction. Cross-resource mutations from a hook must forward these\n * options when they belong to the same semantic unit of work.\n */\n serviceOptions?: ServiceOptions;\n repositoriesRegistry: RepositoriesRegistryHandlerBackendService;\n externalApiHandler: ExternalApiHandlerBackendService;\n platformMutualizedHandler: PlatformMutualizedHandlerBackendService;\n serverlessServicesHandler: ServerlessServicesHandlerBackendService;\n /**\n * Creates child execution contexts for cross-resource sub-calls with proper\n * depth tracking and cycle detection. Use `createForSubCall()` when calling\n * `servicesRegistry` methods from a custom implementation.\n */\n executionContextCreator: ExecutionContextCreatorBackendService;\n /**\n * The SANCTIONED privileged-access path for custom implementations. A custom\n * impl is a request-triggered elevation site: it runs inside the caller's\n * (often anonymous / low-privilege) execution context but sometimes must read\n * or write a resource that context cannot reach (e.g. an anonymous lead-capture\n * CREATE that needs a users-by-email lookup). Route those through\n * `systemAccessService.readAsSystem` / `listAsSystem` / `createAsSystem` /\n * `updateAsSystem` — each is fail-closed on the target's `systemAccessPolicy`\n * opt-in AND emits a `SYSTEM_CONTEXT_*` audit event. Do NOT hand-build a\n * super-admin context via `executionContextCreator` for an ACL bypass; that\n * path is ungated and unaudited. Optional so minimal test containers that do\n * not bind the system-access service still construct.\n */\n systemAccessService?: SystemAccessBackendService;\n /** SAML metadata service — for DISCOVER_ENDPOINTS (emits SAML_METADATA_PARSED) */\n samlMetadataService?: { parseIdPMetadata(metadataXml: string): unknown };\n /**\n * Contextual data about parent and child resources.\n * Structure: { parents: Record<string, any>, children: Record<string, any> }\n * Populated based on resource configuration context needs.\n */\n objectContext?: { parents: Record<string, any>; children: Record<string, any> };\n /**\n * User context of the initiator (user/organization/application) performing the operation.\n * Populated from execution context.\n */\n initiatorUserContext?: any;\n /**\n * Current resource object (for UPDATE/DELETE) or input data (for CREATE).\n * For UPDATE/DELETE: Fetched from repository before custom implementation execution.\n * For CREATE: Uses the input data provided to the operation.\n */\n currentObject?: any;\n};\n\nexport abstract class ResourceOperationCustomImplementationBase<\n TInput extends z.ZodSchema = z.ZodAny,\n TOutput extends z.ZodSchema = z.ZodAny,\n> {\n\n public abstract getPlaceholders(): ResourceOperation_CustomServiceImplementationMode[];\n\n /**\n * Replaces the ENTIRE operation pipeline — no core CRUD, no notifications, no other hooks.\n * Single-owner mode: if multiple registrations declare this, highest priority wins.\n *\n * A registration exposing this mode cannot enable `transactionalCore`: the\n * override returns before the framework-owned core transaction is entered,\n * so advertising that atomicity boundary would be false.\n */\n public abstract overrideAll(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL, TInput, TOutput>,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL,\n TInput, TOutput\n >>;\n\n /**\n * Runs before core CRUD. Augments `data` via spread-merge (`data = { ...data, ...result }`).\n *\n * **Multi-registration execution:** handlers run sequentially by ascending priority number\n * (lower number = higher priority = runs first). Each handler receives the accumulated `data`\n * from all prior handlers. For field conflicts, **last-writer-wins**: the handler with the\n * HIGHEST priority number (lowest priority) overwrites fields set by earlier handlers.\n *\n * **Array inputs (CREATE_MANY):** handler must return the full transformed array, not a\n * spread-merged object. Non-array returns are silently dropped with a debug log.\n *\n * `utils.currentObject` reflects pre-PREFIX state (original DB record or CREATE input).\n */\n public abstract prefixCoreOperations<TAugment extends object|undefined = undefined>(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS,\n TInput, TOutput, TAugment>,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS,\n TInput, TOutput, TAugment\n >>;\n\n /**\n * Replaces the core CRUD **result** — the core DB operation still runs, this overwrites `currentState`.\n * Receives PREFIX-augmented `data` as input. Single-owner mode: highest priority wins.\n */\n public abstract replaceCoreOperations<TAugment extends object|undefined = undefined>(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS,\n TInput, TOutput, TAugment\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS,\n TInput, TOutput, TAugment\n >>;\n\n /**\n * Runs after core CRUD and REPLACE. Input is the core operation result.\n *\n * **DELETE operations:** `input` is a `string` (the deleted `_id`) or `string[]` (bulk),\n * NOT the deleted document. Use `utils.currentObject` to access the pre-deletion document.\n * Handlers must guard against non-object input when destructuring.\n *\n * With multi-registration, handlers run sequentially by priority — each receives the previous handler's output.\n */\n public abstract postfixCoreOperations(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.POSTFIX_CORE_OPERARTIONS,\n TInput, TOutput\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.POSTFIX_CORE_OPERARTIONS,\n TInput, TOutput\n >>;\n\n /**\n * Runs after notification dispatch. Input is the current operation result.\n *\n * **DELETE operations:** `input` is a `string` (the deleted `_id`) or `string[]` (bulk),\n * NOT the deleted document. Use `utils.currentObject` to access the pre-deletion document.\n *\n * With multi-registration, handlers run sequentially by priority — each receives the previous handler's output.\n *\n * On a framework-owned transactional operation, this hook runs only after\n * the root commit and framework post-commit effects finish. It receives the\n * committed callback attempt's context and no completed transaction in\n * `utils.serviceOptions`. A thrown error therefore rejects the response after\n * an irreversible commit; this phase is for request-scoped result transforms,\n * not mutation-owned external work.\n *\n * Because the phase transforms the returned value, it is not accepted when\n * the operation reuses an explicit or ambient caller-owned transaction:\n * that nested call must return before its caller can commit.\n */\n public abstract afterUserNotifications(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AFTER_USER_NOTIFICATIONS,\n TInput, TOutput\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AFTER_USER_NOTIFICATIONS,\n TInput, TOutput\n >>;\n\n /**\n * Final hook — runs at the very end of the pipeline, after notifications and lifecycle evaluations.\n *\n * **DELETE operations:** `input` is a `string` (the deleted `_id`) or `string[]` (bulk),\n * NOT the deleted document. Use `utils.currentObject` to access the pre-deletion document.\n *\n * With multi-registration, handlers run sequentially by priority — each receives the previous handler's output.\n *\n * On a framework-owned transactional operation, this hook runs only after\n * the root commit and framework post-commit effects finish. It receives the\n * committed callback attempt's context and no completed transaction in\n * `utils.serviceOptions`. A thrown error therefore rejects the response after\n * an irreversible commit; this phase is for request-scoped result transforms,\n * not mutation-owned external work.\n *\n * Because the phase transforms the returned value, it is not accepted when\n * the operation reuses an explicit or ambient caller-owned transaction:\n * that nested call must return before its caller can commit.\n */\n public abstract atTheEnd(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AT_THE_END,\n TInput, TOutput\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AT_THE_END,\n TInput, TOutput\n >>;\n}\n"]}
1
+ {"version":3,"file":"resource-operation-custom-implementation-base.backend.service.js","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,iDAAiD,EACjD,SAAS,EACT,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAiD/B,MAAM,CAAC,MAAM,wDAAwD,GAAG,CACtE,IAAuD,EACvD,aAAiC,EACjC,MAAe,EACf,aAAsB,EACtB,YAAyC,EAChC,EAAE;IAEX,MAAM,KAAK,GAAG,CAAC,MAAgC,EAAE,MAAe,EAAE,QAAiB,KAAK,EAAW,EAAE;QACnG,IAAI,CAAC,MAAM;YACT,OAAO,MAAM,CAAC;QAEhB,IAAG,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,KAAK;gBACP,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,IAAG,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC/B,IAAI,YAAY,EAAE,CAAC;oBACjB,2HAA2H;oBAC3H,2EAA2E;oBAC3E,6DAA6D;oBAC7D,mEAAmE;oBACnE,0EAA0E;oBAC1E,2EAA2E;oBAC3E,yEAAyE;oBACzE,sEAAsE;oBACtE,MAAM,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE;wBAC7D,sBAAsB,EAAE,2BAA2B,CAAC,kCAAkC;qBACvF,CAAC,CAAC;oBACH,mEAAmE;gBACrE,CAAC;gBACD,4EAA4E;gBAC5E,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,UAAU,GAAI,MAAmC,CAAC,OAAO,CAAC;YAChE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAA;IAED,IAAG,aAAa,KAAK,OAAO,EAAE,CAAC;QAC7B,yEAAyE;QACzE,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,IAAI,KAAK,iDAAiD,CAAC,wBAAwB;eAClF,IAAI,KAAK,iDAAiD,CAAC,uBAAuB,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAY,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,CAAY,CAAC;IAEjD,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,IAAI,KAAK,iDAAiD,CAAC,uBAAuB,EAAE,CAAC;YACvF,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAY,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,EAAE,aAAa,CAAY,CAAC;IACjD,CAAC;AACH,CAAC,CAAA;AAgHD,MAAM,OAAgB,yCAAyC;CAwJ9D","sourcesContent":["import { z } from 'zod';\nimport {\n ResourceConfiguration_Operation,\n ResourceConfiguration_OperationPath,\n ResourceOperation_CustomServiceImplementationMode,\n ErrorType,\n ErrorCustomMessageReference,\n} from '@wildo-ai/saas-models';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ServicesRegistryHandlerBackendService } from './services-registry-handler.backend.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { ExternalApiHandlerBackendService } from '~wildo-backend-lib/external-providers/services/external-api-handler.backend.service';\nimport type { PlatformMutualizedHandlerBackendService } from '~wildo-backend-lib/requests/service/platform-mutualized-handler.backend.service';\nimport type { ServerlessServicesHandlerBackendService } from '~wildo-backend-lib/requests/service/serverless-services-handler.backend.service';\nimport type { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\nimport type { SystemAccessBackendService } from '~wildo-backend-lib/base-classes/services/services/system-access.backend.service';\nimport type { WorkerRemoteClientFactoryBackendService } from '~wildo-backend-lib/applications/services/worker-remote-client-factory.backend.service';\nimport type { ServiceOptions } from '~wildo-backend-lib/base-classes/models/repositories.backend.schemas';\n\ntype Augment<TAugment extends object|undefined = undefined> = TAugment extends undefined ? {} : TAugment;\n\nexport type ResourceOperationCustomImplementation_InputTypeOf<\n TMode extends ResourceOperation_CustomServiceImplementationMode = ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL,\n TInput extends (z.ZodSchema | undefined) = z.ZodAny | undefined,\n TOutput extends z.ZodSchema = z.ZodAny,\n TAugment extends object|undefined = undefined\n> =(\n TMode extends ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL | ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS\n ? TInput extends z.ZodSchema\n ? z.infer<TInput>\n : never\n : TMode extends ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS\n ? TInput extends z.ZodSchema\n ? z.infer<TInput> & Augment<TAugment>\n : never\n : z.infer<TOutput>\n)\n\nexport type ResourceOperationCustomImplementation_OutputTypeOf<\n TMode extends ResourceOperation_CustomServiceImplementationMode = ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL,\n TInput extends (z.ZodSchema | undefined) = z.ZodAny | undefined,\n TOutput extends z.ZodSchema = z.ZodAny,\n TAugment extends object|undefined = undefined\n> = (\n TMode extends ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS\n ? TInput extends z.ZodSchema\n ? z.infer<TInput> & Augment<TAugment>\n : Augment<TAugment>\n : z.infer<TOutput>\n)\n\n\n\nexport const parseResourceOperation_CustomServiceImplementationSchema = <TSchema extends z.ZodTypeAny | undefined, TReturn = TSchema extends z.ZodTypeAny ? z.infer<TSchema> : unknown>(\n mode: ResourceOperation_CustomServiceImplementationMode,\n inputOrOutput: 'input' | 'output',\n schema: TSchema,\n objectToParse: unknown,\n errorBuilder?: ErrorBuilderBackendService,\n): TReturn => {\n\n const parse = (schema: z.ZodTypeAny | undefined, object: unknown, loose: boolean = false): unknown => {\n if (!schema)\n return object;\n\n if(schema instanceof z.ZodObject) {\n if (loose)\n return z.looseObject(schema.shape).parse(object);\n return schema.parse(object);\n }\n if(schema instanceof z.ZodArray) {\n if (!(object instanceof Array)) {\n if (errorBuilder) {\n /** @wildo_source:part:start example.backend.operation.error-throw facet:kind:usage-example facet:audience:app-developer */\n // Inside a backend custom-operation hook you receive `utils.errorBuilder`.\n // Throw a WildoError with it — NEVER `throw new Error(...)`:\n // • the ErrorType drives the HTTP status (VALIDATION → 400 here);\n // • customMessageReference names the localized user message (resolved by\n // tErrorMessage → errors_messages.<ref>.msg) — do NOT hardcode English;\n // • any dynamic values go in `context` as structured keys (log-only for\n // most types), never interpolated into a `context.message` string.\n throw errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.SERVICE_RESOURCE_VALIDATION_FAILED,\n });\n /** @wildo_source:part:end example.backend.operation.error-throw */\n }\n // Bootstrap/leaf fallback ONLY — errorBuilder is unavailable here (pre-DI).\n throw new Error('Input is not an array');\n }\n const itemSchema = (schema as z.ZodArray<z.ZodTypeAny>).element;\n object = object.map((item: unknown) => parse(itemSchema, item, loose));\n return object;\n }\n return schema.parse(object);\n }\n\n if(inputOrOutput === 'input') {\n // PREFIX and REPLACE both receive data that may contain augmented fields\n // from basicPrefixOperation or prior PREFIX handlers — use loose parse\n // to preserve those fields while still validating declared schema fields.\n if (mode === ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS\n || mode === ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS) {\n return parse(schema, objectToParse, true) as TReturn;\n }\n return parse(schema, objectToParse) as TReturn;\n\n } else {\n // PREFIX output may contain augmented fields (TAugment) that the declared\n // output schema doesn't know about — use loose parse to preserve them.\n if (mode === ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS) {\n return parse(schema, objectToParse, true) as TReturn;\n }\n return parse(schema, objectToParse) as TReturn;\n }\n}\n\n\n\n/**\n * Utilities object provided to custom implementation methods.\n *\n * Contains:\n * - Service instances (logger, errorBuilder, registries, handlers)\n * - `executionContextCreator`: Creates child execution contexts for cross-resource sub-calls\n * - Contextual data for the operation:\n * - `objectContext`: Parent and child resource data (fetched based on resource configuration)\n * - `initiatorUserContext`: User context of the user/organization/application initiating the operation\n * - `currentObject`: The current resource object (for UPDATE/DELETE operations) or input data (for CREATE operations)\n *\n * Context fields are populated automatically by the service registry handler based on:\n * - Resource configuration context needs analysis\n * - Operation type (CREATE uses input data, UPDATE/DELETE fetches current object)\n *\n * ### Cross-resource operations\n *\n * For cross-resource calls from custom impls, use `utils.executionContextCreator.createForSubCall()`\n * to create a child context with proper depth tracking and cycle detection, then pass it\n * to `utils.servicesRegistry`. Example:\n *\n * ```ts\n * const subCtx = await utils.executionContextCreator.createForSubCall(\n * executionContext, targetResourceType, CoreResourceOperation.CREATE\n * );\n * await utils.servicesRegistry.create(targetResourceType, subCtx, data);\n * ```\n *\n * Calling `servicesRegistry` directly with the parent context is functionally safe\n * (doOperation corrects the operation), but skips depth/cycle tracking.\n */\nexport type ResourceOperation_CustomImplementation_Utils = {\n logger: LoggerService;\n errorBuilder: ErrorBuilderBackendService;\n resourcesRegistry: ResourcesRegistryBackendService;\n servicesRegistry: ServicesRegistryHandlerBackendService;\n /**\n * Options of the operation currently executing, including its database\n * transaction. Cross-resource mutations from a hook must forward these\n * options when they belong to the same semantic unit of work.\n */\n serviceOptions?: ServiceOptions;\n repositoriesRegistry: RepositoriesRegistryHandlerBackendService;\n externalApiHandler: ExternalApiHandlerBackendService;\n platformMutualizedHandler: PlatformMutualizedHandlerBackendService;\n serverlessServicesHandler: ServerlessServicesHandlerBackendService;\n /**\n * Creates child execution contexts for cross-resource sub-calls with proper\n * depth tracking and cycle detection. Use `createForSubCall()` when calling\n * `servicesRegistry` methods from a custom implementation.\n */\n executionContextCreator: ExecutionContextCreatorBackendService;\n /**\n * The SANCTIONED privileged-access path for custom implementations. A custom\n * impl is a request-triggered elevation site: it runs inside the caller's\n * (often anonymous / low-privilege) execution context but sometimes must read\n * or write a resource that context cannot reach (e.g. an anonymous lead-capture\n * CREATE that needs a users-by-email lookup). Route those through\n * `systemAccessService.readAsSystem` / `listAsSystem` / `createAsSystem` /\n * `updateAsSystem` — each is fail-closed on the target's `systemAccessPolicy`\n * opt-in AND emits a `SYSTEM_CONTEXT_*` audit event. Do NOT hand-build a\n * super-admin context via `executionContextCreator` for an ACL bypass; that\n * path is ungated and unaudited. Optional so minimal test containers that do\n * not bind the system-access service still construct.\n */\n systemAccessService?: SystemAccessBackendService;\n /**\n * Dispatch to one of the application's declared WORKERS — the sanctioned way to move work off the\n * request path from application backend code.\n *\n * `workerClientFactory.client('<workerName>').post('/route', body)` mints the\n * `APPLICATION_WORKER_REQUEST` JWT the worker's verifier pins and reaches the worker at the URL\n * the deploy injected. The factory fails CLOSED on an undeclared worker rather than dispatching to\n * a guessed address.\n *\n * ## Why it had to be added here (#426)\n *\n * The factory shipped, was bound in DI, and had NO caller anywhere — and this is why: a custom\n * implementation is the one place an application writes backend logic, and this bag was the only\n * thing it receives. There was no handle, so no application COULD call a worker, which is the\n * deeper half of why the backend-to-worker chain had never run for anyone. Adding the handle is\n * what turns a shipped mechanism into a reachable one.\n *\n * Optional for the same reason `systemAccessService` is: a minimal test container that does not\n * bind the factory must still construct.\n */\n workerClientFactory?: WorkerRemoteClientFactoryBackendService;\n /** SAML metadata service — for DISCOVER_ENDPOINTS (emits SAML_METADATA_PARSED) */\n samlMetadataService?: { parseIdPMetadata(metadataXml: string): unknown };\n /**\n * Contextual data about parent and child resources.\n * Structure: { parents: Record<string, any>, children: Record<string, any> }\n * Populated based on resource configuration context needs.\n */\n objectContext?: { parents: Record<string, any>; children: Record<string, any> };\n /**\n * User context of the initiator (user/organization/application) performing the operation.\n * Populated from execution context.\n */\n initiatorUserContext?: any;\n /**\n * Current resource object (for UPDATE/DELETE) or input data (for CREATE).\n * For UPDATE/DELETE: Fetched from repository before custom implementation execution.\n * For CREATE: Uses the input data provided to the operation.\n */\n currentObject?: any;\n};\n\nexport abstract class ResourceOperationCustomImplementationBase<\n TInput extends z.ZodSchema = z.ZodAny,\n TOutput extends z.ZodSchema = z.ZodAny,\n> {\n\n public abstract getPlaceholders(): ResourceOperation_CustomServiceImplementationMode[];\n\n /**\n * Replaces the ENTIRE operation pipeline — no core CRUD, no notifications, no other hooks.\n * Single-owner mode: if multiple registrations declare this, highest priority wins.\n *\n * A registration exposing this mode cannot enable `transactionalCore`: the\n * override returns before the framework-owned core transaction is entered,\n * so advertising that atomicity boundary would be false.\n */\n public abstract overrideAll(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL, TInput, TOutput>,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.OVERRIDE_ALL,\n TInput, TOutput\n >>;\n\n /**\n * Runs before core CRUD. Augments `data` via spread-merge (`data = { ...data, ...result }`).\n *\n * **Multi-registration execution:** handlers run sequentially by ascending priority number\n * (lower number = higher priority = runs first). Each handler receives the accumulated `data`\n * from all prior handlers. For field conflicts, **last-writer-wins**: the handler with the\n * HIGHEST priority number (lowest priority) overwrites fields set by earlier handlers.\n *\n * **Array inputs (CREATE_MANY):** handler must return the full transformed array, not a\n * spread-merged object. Non-array returns are silently dropped with a debug log.\n *\n * `utils.currentObject` reflects pre-PREFIX state (original DB record or CREATE input).\n */\n public abstract prefixCoreOperations<TAugment extends object|undefined = undefined>(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS,\n TInput, TOutput, TAugment>,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.PREFIX_CORE_OPERARTIONS,\n TInput, TOutput, TAugment\n >>;\n\n /**\n * Replaces the core CRUD **result** — the core DB operation still runs, this overwrites `currentState`.\n * Receives PREFIX-augmented `data` as input. Single-owner mode: highest priority wins.\n */\n public abstract replaceCoreOperations<TAugment extends object|undefined = undefined>(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS,\n TInput, TOutput, TAugment\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.REPLACE_CORE_OPERARTIONS,\n TInput, TOutput, TAugment\n >>;\n\n /**\n * Runs after core CRUD and REPLACE. Input is the core operation result.\n *\n * **DELETE operations:** `input` is a `string` (the deleted `_id`) or `string[]` (bulk),\n * NOT the deleted document. Use `utils.currentObject` to access the pre-deletion document.\n * Handlers must guard against non-object input when destructuring.\n *\n * With multi-registration, handlers run sequentially by priority — each receives the previous handler's output.\n */\n public abstract postfixCoreOperations(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.POSTFIX_CORE_OPERARTIONS,\n TInput, TOutput\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.POSTFIX_CORE_OPERARTIONS,\n TInput, TOutput\n >>;\n\n /**\n * Runs after notification dispatch. Input is the current operation result.\n *\n * **DELETE operations:** `input` is a `string` (the deleted `_id`) or `string[]` (bulk),\n * NOT the deleted document. Use `utils.currentObject` to access the pre-deletion document.\n *\n * With multi-registration, handlers run sequentially by priority — each receives the previous handler's output.\n *\n * On a framework-owned transactional operation, this hook runs only after\n * the root commit and framework post-commit effects finish. It receives the\n * committed callback attempt's context and no completed transaction in\n * `utils.serviceOptions`. A thrown error therefore rejects the response after\n * an irreversible commit; this phase is for request-scoped result transforms,\n * not mutation-owned external work.\n *\n * Because the phase transforms the returned value, it is not accepted when\n * the operation reuses an explicit or ambient caller-owned transaction:\n * that nested call must return before its caller can commit.\n */\n public abstract afterUserNotifications(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AFTER_USER_NOTIFICATIONS,\n TInput, TOutput\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AFTER_USER_NOTIFICATIONS,\n TInput, TOutput\n >>;\n\n /**\n * Final hook — runs at the very end of the pipeline, after notifications and lifecycle evaluations.\n *\n * **DELETE operations:** `input` is a `string` (the deleted `_id`) or `string[]` (bulk),\n * NOT the deleted document. Use `utils.currentObject` to access the pre-deletion document.\n *\n * With multi-registration, handlers run sequentially by priority — each receives the previous handler's output.\n *\n * On a framework-owned transactional operation, this hook runs only after\n * the root commit and framework post-commit effects finish. It receives the\n * committed callback attempt's context and no completed transaction in\n * `utils.serviceOptions`. A thrown error therefore rejects the response after\n * an irreversible commit; this phase is for request-scoped result transforms,\n * not mutation-owned external work.\n *\n * Because the phase transforms the returned value, it is not accepted when\n * the operation reuses an explicit or ambient caller-owned transaction:\n * that nested call must return before its caller can commit.\n */\n public abstract atTheEnd(\n _id: string | undefined,\n input: ResourceOperationCustomImplementation_InputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AT_THE_END,\n TInput, TOutput\n >,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils\n ): Promise<ResourceOperationCustomImplementation_OutputTypeOf<\n ResourceOperation_CustomServiceImplementationMode.AT_THE_END,\n TInput, TOutput\n >>;\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { type ResourceConfiguration_Operation, type ResourceOperation_UnimplementedAcknowledgement } from '@wildo-ai/saas-models';
2
+ import { ResourceOperationImplementationCoverage, ResourceOperationRequestContractBreadth, ResourceOperationUnserviceableReason } from '@wildo-ai/saas-models';
2
3
  import type { ResourceOperationCustomImplementationRegistration } from './resource-operation-custom-implementation-registry.backend.service';
3
4
  /**
4
5
  * Whether a configured resource operation can fulfil the contract it declares.
@@ -28,26 +29,8 @@ import type { ResourceOperationCustomImplementationRegistration } from './resour
28
29
  * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — an interface must not report success for an action
29
30
  * it did not perform; monitoring and incident response depend on truthful responses.
30
31
  */
31
- export declare enum ResourceOperationImplementationCoverage {
32
- /** Something consumes the declared contract: a custom implementation, a declarative side effect, or the core path itself. */
33
- SERVICEABLE = "serviceable",
34
- /** Nothing does. Left alone, the operation answers 2xx having performed nothing. */
35
- UNSERVICEABLE = "unserviceable",
36
- /** Outside this guard's remit — a core operation, or a variant the service tier never enters. */
37
- NOT_APPLICABLE = "not_applicable"
38
- }
39
- /**
40
- * Why an operation was judged {@link ResourceOperationImplementationCoverage.UNSERVICEABLE}.
41
- * Surfaced verbatim in the startup error so the fix is obvious without re-deriving the analysis.
42
- */
43
- export declare enum ResourceOperationUnserviceableReason {
44
- /** Write-like: no declared request field is a persisted resource-schema field, so the write is empty. */
45
- NO_REQUEST_FIELD_IS_PERSISTED = "no_request_field_is_persisted",
46
- /** READ-like: the core read addresses the row by id and consumes no request field, so the declared verb never happens. */
47
- READ_CONSUMES_NO_REQUEST_FIELD = "read_consumes_no_request_field",
48
- /** Collection-like: no declared request field is a collection parameter the core path reads. */
49
- NO_REQUEST_FIELD_IS_COLLECTION_PARAMETER = "no_request_field_is_collection_parameter"
50
- }
32
+ /** Re-exported so consumers of this module keep one import site; the vocabularies themselves live in `saas-models`. */
33
+ export { ResourceOperationImplementationCoverage, ResourceOperationRequestContractBreadth, ResourceOperationUnserviceableReason };
51
34
  export interface ResourceOperationImplementationCoverageVerdict {
52
35
  readonly coverage: ResourceOperationImplementationCoverage;
53
36
  readonly unserviceableReason?: ResourceOperationUnserviceableReason;
@@ -95,12 +78,6 @@ export interface ResourceOperationImplementationCoverageVerdict {
95
78
  * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — a named verb must not silently widen into an
96
79
  * unconstrained write over fields its resource never exposed for update.
97
80
  */
98
- export declare enum ResourceOperationRequestContractBreadth {
99
- /** The operation authored its own request contract, or its family cannot inherit one. */
100
- AUTHORED = "authored",
101
- /** A write-like custom verb inherited the resource's whole create/update contract. */
102
- OVERBROAD_INHERITED_FULL_CONTRACT = "overbroad_inherited_full_contract"
103
- }
104
81
  export interface ResourceOperationRequestContractVerdict {
105
82
  readonly breadth: ResourceOperationRequestContractBreadth;
106
83
  /** Every field the caller may send — the inherited contract when overbroad. Empty otherwise. */
@@ -1 +1 @@
1
- {"version":3,"file":"resource-operation-implementation-coverage.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,+BAA+B,EACpC,KAAK,8CAA8C,EACpD,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,iDAAiD,EAClD,MAAM,qEAAqE,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,oBAAY,uCAAuC;IACjD,6HAA6H;IAC7H,WAAW,gBAAgB;IAC3B,oFAAoF;IACpF,aAAa,kBAAkB;IAC/B,iGAAiG;IACjG,cAAc,mBAAmB;CAClC;AAED;;;GAGG;AACH,oBAAY,oCAAoC;IAC9C,yGAAyG;IACzG,6BAA6B,kCAAkC;IAC/D,0HAA0H;IAC1H,8BAA8B,mCAAmC;IACjE,gGAAgG;IAChG,wCAAwC,6CAA6C;CACtF;AAED,MAAM,WAAW,8CAA8C;IAC7D,QAAQ,CAAC,QAAQ,EAAE,uCAAuC,CAAC;IAC3D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,oCAAoC,CAAC;IACpE,6GAA6G;IAC7G,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,8CAA8C,CAAC;CAC3E;AA2DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,oBAAY,uCAAuC;IACjD,yFAAyF;IACzF,QAAQ,aAAa;IACrB,sFAAsF;IACtF,iCAAiC,sCAAsC;CACxE;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,OAAO,EAAE,uCAAuC,CAAC;IAC1D,gGAAgG;IAChG,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8CAA8C,CAC5D,SAAS,EAAE,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACxD,uCAAuC,CAkBzC;AASD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACxD,WAAW,CAAC,MAAM,CAAC,CAIrB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,8CAA8C,CAC5D,SAAS,EAAE,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzD,aAAa,EAAE,SAAS,iDAAiD,EAAE,GAC1E,8CAA8C,CAgEhD"}
1
+ {"version":3,"file":"resource-operation-implementation-coverage.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,+BAA+B,EACpC,KAAK,8CAA8C,EACpD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uCAAuC,EACvC,uCAAuC,EACvC,oCAAoC,EACrC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,iDAAiD,EAClD,MAAM,qEAAqE,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,uHAAuH;AACvH,OAAO,EAAE,uCAAuC,EAAE,uCAAuC,EAAE,oCAAoC,EAAE,CAAC;AAElI,MAAM,WAAW,8CAA8C;IAC7D,QAAQ,CAAC,QAAQ,EAAE,uCAAuC,CAAC;IAC3D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,oCAAoC,CAAC;IACpE,6GAA6G;IAC7G,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,8CAA8C,CAAC;CAC3E;AA2DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,OAAO,EAAE,uCAAuC,CAAC;IAC1D,gGAAgG;IAChG,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8CAA8C,CAC5D,SAAS,EAAE,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACxD,uCAAuC,CAkBzC;AASD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACxD,WAAW,CAAC,MAAM,CAAC,CAIrB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,8CAA8C,CAC5D,SAAS,EAAE,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzD,aAAa,EAAE,SAAS,iDAAiD,EAAE,GAC1E,8CAA8C,CAgEhD"}
@@ -1,4 +1,5 @@
1
1
  import { CoreResourceOperation, ResourceOperationVariantType, createOrUpdateMandatoryDiscardFields, isApiCallOperation, isApiCallWithCallbackOperation, } from '@wildo-ai/saas-models';
2
+ import { ResourceOperationImplementationCoverage, ResourceOperationRequestContractBreadth, ResourceOperationUnserviceableReason, } from '@wildo-ai/saas-models';
2
3
  import { getMergedObjectOrUnionShape } from '@wildo-ai/zod-decorators';
3
4
  /**
4
5
  * Whether a configured resource operation can fulfil the contract it declares.
@@ -28,28 +29,8 @@ import { getMergedObjectOrUnionShape } from '@wildo-ai/zod-decorators';
28
29
  * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — an interface must not report success for an action
29
30
  * it did not perform; monitoring and incident response depend on truthful responses.
30
31
  */
31
- export var ResourceOperationImplementationCoverage;
32
- (function (ResourceOperationImplementationCoverage) {
33
- /** Something consumes the declared contract: a custom implementation, a declarative side effect, or the core path itself. */
34
- ResourceOperationImplementationCoverage["SERVICEABLE"] = "serviceable";
35
- /** Nothing does. Left alone, the operation answers 2xx having performed nothing. */
36
- ResourceOperationImplementationCoverage["UNSERVICEABLE"] = "unserviceable";
37
- /** Outside this guard's remit — a core operation, or a variant the service tier never enters. */
38
- ResourceOperationImplementationCoverage["NOT_APPLICABLE"] = "not_applicable";
39
- })(ResourceOperationImplementationCoverage || (ResourceOperationImplementationCoverage = {}));
40
- /**
41
- * Why an operation was judged {@link ResourceOperationImplementationCoverage.UNSERVICEABLE}.
42
- * Surfaced verbatim in the startup error so the fix is obvious without re-deriving the analysis.
43
- */
44
- export var ResourceOperationUnserviceableReason;
45
- (function (ResourceOperationUnserviceableReason) {
46
- /** Write-like: no declared request field is a persisted resource-schema field, so the write is empty. */
47
- ResourceOperationUnserviceableReason["NO_REQUEST_FIELD_IS_PERSISTED"] = "no_request_field_is_persisted";
48
- /** READ-like: the core read addresses the row by id and consumes no request field, so the declared verb never happens. */
49
- ResourceOperationUnserviceableReason["READ_CONSUMES_NO_REQUEST_FIELD"] = "read_consumes_no_request_field";
50
- /** Collection-like: no declared request field is a collection parameter the core path reads. */
51
- ResourceOperationUnserviceableReason["NO_REQUEST_FIELD_IS_COLLECTION_PARAMETER"] = "no_request_field_is_collection_parameter";
52
- })(ResourceOperationUnserviceableReason || (ResourceOperationUnserviceableReason = {}));
32
+ /** Re-exported so consumers of this module keep one import site; the vocabularies themselves live in `saas-models`. */
33
+ export { ResourceOperationImplementationCoverage, ResourceOperationRequestContractBreadth, ResourceOperationUnserviceableReason };
53
34
  /**
54
35
  * Collection parameters the generic core path reads off `inputData`.
55
36
  *
@@ -100,52 +81,6 @@ const COLLECTION_CORE_OPERATIONS = new Set([
100
81
  CoreResourceOperation.SEARCH,
101
82
  CoreResourceOperation.COUNT,
102
83
  ]);
103
- /**
104
- * Whether a custom operation's declared request contract is WIDER than the verb it names.
105
- *
106
- * # The defect this exists to make impossible
107
- *
108
- * `buildEnhancedRequestDto` synthesizes a request contract when an operation does not author one:
109
- * for a write-like `resourceOperationLike` that synthesis is the resource's ENTIRE create/update
110
- * contract. `resourceOperationLike` is therefore doing double duty — it selects the core path that
111
- * PERSISTS, and it also picks the contract the caller may SEND. The first is what an author wants
112
- * from a custom verb; the second almost never is.
113
- *
114
- * The result is an operation whose name promises one transition while its contract accepts every
115
- * field on the resource. `applicationApiKeys | deactivate` inherited
116
- * `{name, description, roles, status, expiresAt}` — so `PUT .../deactivate` could carry
117
- * `status: active` and do the exact opposite of its name, and could rewrite `roles` on a machine
118
- * credential even though that resource exposes no core UPDATE and gates roles only when minting.
119
- * `organizationOAuthClients | regenerate` inherited `redirectUris`.
120
- *
121
- * This is NOT the {@link ResourceOperationImplementationCoverage} question. Those operations DO
122
- * write; several have full custom implementations. They write too much. Conflating the two would
123
- * force the wrong remedy (an `unimplementedAcknowledgement` on an operation that is implemented)
124
- * and would corrupt the bidirectional stale-acknowledgement check, so this is a SEPARATE verdict
125
- * with its own resolver — sharing this module because both answer "does this operation mean what
126
- * it says", and a split would let the two drift.
127
- *
128
- * # Why "authored a contract" is the whole predicate
129
- *
130
- * A narrower rule ("the contract equals the full update contract") would be a heuristic, and it
131
- * would miss an author who pasted the full contract deliberately. Requiring the contract to be
132
- * AUTHORED makes intent explicit at the declaration site with no new model field and no second
133
- * acknowledgement list: an author who genuinely wants the whole contract writes it out, and the
134
- * reviewer sees them do it. Silence is the bug.
135
- *
136
- * `hasCustomRequestDto` is set by the factory as `!!variantParams.requestDto` and is already the
137
- * signal the DTO builder itself uses to tell an authored contract from a synthesized one.
138
- *
139
- * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — a named verb must not silently widen into an
140
- * unconstrained write over fields its resource never exposed for update.
141
- */
142
- export var ResourceOperationRequestContractBreadth;
143
- (function (ResourceOperationRequestContractBreadth) {
144
- /** The operation authored its own request contract, or its family cannot inherit one. */
145
- ResourceOperationRequestContractBreadth["AUTHORED"] = "authored";
146
- /** A write-like custom verb inherited the resource's whole create/update contract. */
147
- ResourceOperationRequestContractBreadth["OVERBROAD_INHERITED_FULL_CONTRACT"] = "overbroad_inherited_full_contract";
148
- })(ResourceOperationRequestContractBreadth || (ResourceOperationRequestContractBreadth = {}));
149
84
  /**
150
85
  * Decide whether one configured operation authored the request contract it exposes.
151
86
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resource-operation-implementation-coverage.backend.utils.js","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CoreResourceOperation,\n ResourceOperationVariantType,\n createOrUpdateMandatoryDiscardFields,\n isApiCallOperation,\n isApiCallWithCallbackOperation,\n type ResourceConfiguration_Operation,\n type ResourceOperation_UnimplementedAcknowledgement,\n} from '@wildo-ai/saas-models';\nimport { getMergedObjectOrUnionShape } from '@wildo-ai/zod-decorators';\n\nimport type {\n ResourceOperationCustomImplementationRegistration,\n} from './resource-operation-custom-implementation-registry.backend.service';\n\n/**\n * Whether a configured resource operation can fulfil the contract it declares.\n *\n * # The defect this exists to make impossible\n *\n * A custom operation that declares a `requestDto` no implementation consumes does not fail.\n * It falls through to the generic core path, which persists only fields the resource schema\n * declares. A DTO such as `{ newRole, reason }` names none of them, so the framework validates\n * the body, writes nothing, and answers **HTTP 200 with the unchanged row**.\n *\n * On 2026-08-01 a black-box hostile probe caught `organizationMembers | promote` doing exactly\n * that, and a sweep of the whole catalogue found 41 routed operations sharing the shape — 8\n * CRITICAL and 11 HIGH, including `users | impersonate`, `organizations | suspend` and\n * `applications | transfer`. This is not privilege escalation; nothing escalates. It is an\n * operational-safety and audit-integrity defect, and the destructive direction is the dangerous\n * one: an admin demotes a compromised account, is told 200 OK, and the account keeps its\n * privileges. Every runbook, script, and UI that trusts the 2xx is wrong.\n *\n * # Why one resolver\n *\n * Startup validation and request-time refusal must consume the SAME predicate. If they drift,\n * an operation blessed at boot can still answer 2xx on the first request — which is precisely\n * the state this module was written to end. Mirrors the single-authority contract of\n * `resolveResourceOperationTransactionPersistenceContract`.\n *\n * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — an interface must not report success for an action\n * it did not perform; monitoring and incident response depend on truthful responses.\n */\nexport enum ResourceOperationImplementationCoverage {\n /** Something consumes the declared contract: a custom implementation, a declarative side effect, or the core path itself. */\n SERVICEABLE = 'serviceable',\n /** Nothing does. Left alone, the operation answers 2xx having performed nothing. */\n UNSERVICEABLE = 'unserviceable',\n /** Outside this guard's remit — a core operation, or a variant the service tier never enters. */\n NOT_APPLICABLE = 'not_applicable',\n}\n\n/**\n * Why an operation was judged {@link ResourceOperationImplementationCoverage.UNSERVICEABLE}.\n * Surfaced verbatim in the startup error so the fix is obvious without re-deriving the analysis.\n */\nexport enum ResourceOperationUnserviceableReason {\n /** Write-like: no declared request field is a persisted resource-schema field, so the write is empty. */\n NO_REQUEST_FIELD_IS_PERSISTED = 'no_request_field_is_persisted',\n /** READ-like: the core read addresses the row by id and consumes no request field, so the declared verb never happens. */\n READ_CONSUMES_NO_REQUEST_FIELD = 'read_consumes_no_request_field',\n /** Collection-like: no declared request field is a collection parameter the core path reads. */\n NO_REQUEST_FIELD_IS_COLLECTION_PARAMETER = 'no_request_field_is_collection_parameter',\n}\n\nexport interface ResourceOperationImplementationCoverageVerdict {\n readonly coverage: ResourceOperationImplementationCoverage;\n readonly unserviceableReason?: ResourceOperationUnserviceableReason;\n /** The declared request fields that reach nothing. Empty when the operation declares no request contract. */\n readonly unconsumedRequestFields: readonly string[];\n /** The authored acknowledgement, when the operation declares one. */\n readonly acknowledgement?: ResourceOperation_UnimplementedAcknowledgement;\n}\n\n/**\n * Collection parameters the generic core path reads off `inputData`.\n *\n * Pinned to the LIST / SEARCH / COUNT arms of `executeCorePersistenceOperation` in\n * `services-registry-handler.backend.service.ts` — these are the only request-body keys a\n * collection operation can influence the outcome with when no custom implementation runs.\n * Adding an arm there without adding its key here would make this guard over-strict.\n */\nconst CORE_COLLECTION_PARAMETER_NAMES: ReadonlySet<string> = new Set([\n 'filter',\n 'page',\n 'limit',\n 'sort',\n 'searchQuery',\n]);\n\nconst CORE_OPERATION_IDENTIFIERS: ReadonlySet<string> = new Set<string>(\n Object.values(CoreResourceOperation),\n);\n\n/**\n * Core operations whose generic path performs a real state change on its own, so an unconsumed\n * request field is a WEAKER defect than a silent no-op and deliberately out of remit.\n *\n * `DELETE` / `DELETE_MANY` delete the row whether or not the operation reads its\n * `{ reason }` / `{ password }` field. That ignored confirmation field is its own defect class\n * (a missing re-authentication check), not a response that lies about having acted. Folding it in\n * here would conflate two problems and force the wrong remedy. Tracked separately in\n * `.claude/plans/routed-unimplemented-operations-fail-closed.md`.\n *\n * The exemplar of that second class was `user_self | delete_account`, REMOVED on 2026-08-01. Its\n * investigation is worth carrying forward, because this exclusion is what let it survive the sweep:\n * a delete-like verb is out of remit here, so nothing mechanical will flag the next one. It\n * discarded its `{ password }` confirmation, declared a scheduled-deletion response no producer\n * could satisfy (HTTP 500 on every call), fired an `onParentDelete` cascade its resource had never\n * opened a core DELETE for — rolling the delete back for some users and destroying others — and\n * contradicted its own resource's `RETAIN_AND_IMPERSONALIZE` retention policy. Data-subject erasure\n * belongs to `eraseSubjectAsSystem`, which ships deliberately without a route.\n */\nconst SELF_ACTING_CORE_OPERATIONS: ReadonlySet<CoreResourceOperation> = new Set([\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n]);\n\nconst WRITE_LIKE_CORE_OPERATIONS: ReadonlySet<CoreResourceOperation> = new Set([\n CoreResourceOperation.CREATE,\n CoreResourceOperation.CREATE_MANY,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.UPDATE_MANY,\n]);\n\nconst COLLECTION_CORE_OPERATIONS: ReadonlySet<CoreResourceOperation> = new Set([\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n CoreResourceOperation.COUNT,\n]);\n\n/**\n * Whether a custom operation's declared request contract is WIDER than the verb it names.\n *\n * # The defect this exists to make impossible\n *\n * `buildEnhancedRequestDto` synthesizes a request contract when an operation does not author one:\n * for a write-like `resourceOperationLike` that synthesis is the resource's ENTIRE create/update\n * contract. `resourceOperationLike` is therefore doing double duty — it selects the core path that\n * PERSISTS, and it also picks the contract the caller may SEND. The first is what an author wants\n * from a custom verb; the second almost never is.\n *\n * The result is an operation whose name promises one transition while its contract accepts every\n * field on the resource. `applicationApiKeys | deactivate` inherited\n * `{name, description, roles, status, expiresAt}` — so `PUT .../deactivate` could carry\n * `status: active` and do the exact opposite of its name, and could rewrite `roles` on a machine\n * credential even though that resource exposes no core UPDATE and gates roles only when minting.\n * `organizationOAuthClients | regenerate` inherited `redirectUris`.\n *\n * This is NOT the {@link ResourceOperationImplementationCoverage} question. Those operations DO\n * write; several have full custom implementations. They write too much. Conflating the two would\n * force the wrong remedy (an `unimplementedAcknowledgement` on an operation that is implemented)\n * and would corrupt the bidirectional stale-acknowledgement check, so this is a SEPARATE verdict\n * with its own resolver — sharing this module because both answer \"does this operation mean what\n * it says\", and a split would let the two drift.\n *\n * # Why \"authored a contract\" is the whole predicate\n *\n * A narrower rule (\"the contract equals the full update contract\") would be a heuristic, and it\n * would miss an author who pasted the full contract deliberately. Requiring the contract to be\n * AUTHORED makes intent explicit at the declaration site with no new model field and no second\n * acknowledgement list: an author who genuinely wants the whole contract writes it out, and the\n * reviewer sees them do it. Silence is the bug.\n *\n * `hasCustomRequestDto` is set by the factory as `!!variantParams.requestDto` and is already the\n * signal the DTO builder itself uses to tell an authored contract from a synthesized one.\n *\n * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — a named verb must not silently widen into an\n * unconstrained write over fields its resource never exposed for update.\n */\nexport enum ResourceOperationRequestContractBreadth {\n /** The operation authored its own request contract, or its family cannot inherit one. */\n AUTHORED = 'authored',\n /** A write-like custom verb inherited the resource's whole create/update contract. */\n OVERBROAD_INHERITED_FULL_CONTRACT = 'overbroad_inherited_full_contract',\n}\n\nexport interface ResourceOperationRequestContractVerdict {\n readonly breadth: ResourceOperationRequestContractBreadth;\n /** Every field the caller may send — the inherited contract when overbroad. Empty otherwise. */\n readonly inheritedRequestFields: readonly string[];\n}\n\n/**\n * Decide whether one configured operation authored the request contract it exposes.\n *\n * Flagged only when ALL hold:\n *\n * 1. it is a CUSTOM operation — a core operation's full contract IS its semantics;\n * 2. the service tier can enter it (`REPOSITORY_ONLY` variants answer no HTTP request);\n * 3. it is not framework-`generatedOperation` — those carry a framework-authored contract;\n * 4. its `resourceOperationLike` is write-like, the only family whose synthesis is the whole\n * resource contract (`READ` synthesizes nothing; collection families synthesize query\n * parameters, which are the honest contract for a collection verb);\n * 5. it did not author a `requestDto`.\n */\nexport function resolveResourceOperationRequestContractBreadth(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): ResourceOperationRequestContractVerdict {\n const authored: ResourceOperationRequestContractVerdict = {\n breadth: ResourceOperationRequestContractBreadth.AUTHORED,\n inheritedRequestFields: [],\n };\n\n if (CORE_OPERATION_IDENTIFIERS.has(String(operation.operationIdentifier))) return authored;\n if (operation.variantType === ResourceOperationVariantType.REPOSITORY_ONLY) return authored;\n if (operation.generatedOperation !== undefined) return authored;\n\n const coreOperation = operation.resourceOperationLike;\n if (!coreOperation || !WRITE_LIKE_CORE_OPERATIONS.has(coreOperation)) return authored;\n if (operation.hasCustomRequestDto === true) return authored;\n\n return {\n breadth: ResourceOperationRequestContractBreadth.OVERBROAD_INHERITED_FULL_CONTRACT,\n inheritedRequestFields: getDeclaredRequestFieldNames(operation),\n };\n}\n\nfunction getDeclaredRequestFieldNames(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): string[] {\n if (!operation.requestDto) return [];\n return Object.keys(getMergedObjectOrUnionShape(operation.requestDto as never));\n}\n\n/**\n * Field names a CLIENT-SUPPLIED payload can actually persist on this resource.\n *\n * Read from the resource's `mainSchema`, NOT the operation's `repositoryDto`. `repositoryDto` is\n * computed per-operation at factory time and can be narrowed by the operation's own\n * `requestDto`; using it would make the intersection below trivially non-empty and silently\n * defeat this guard. `mainSchema` is the persistence contract the repository projects onto, and\n * it is what the live 200-no-op reproduction matched.\n *\n * `createOrUpdateMandatoryDiscardFields` (`_id`, `createdAt`, `updatedAt`, `deletedAt`,\n * `_version_db_doc`) are subtracted because `ResourceOperationsHelper.cleanInputData` DELETES them\n * from every create/update payload before validation. They are schema paths, so a naive\n * intersection counts them as writable and the operation reads as serviceable — but the write that\n * follows is still empty.\n *\n * That false negative was real, and it is why this subtraction exists: `user_self | update_profile`\n * and `| update_preferences` declared fields belonging to OTHER resources (`firstName`,\n * `notifications`, …) plus `_id`, so `_id` alone was carrying the serviceable verdict while the\n * operation persisted nothing. Both verbs were REMOVED on 2026-08-01 (the writes belong to\n * `USER_SELF_PROFILES` / `USER_SELF_PREFERENCES`), so they no longer appear in the catalogue — but\n * the subtraction must stay: it is a general property of every create/update payload, and without\n * it the next cross-resource DTO would read as serviceable for exactly the same reason.\n */\nexport function getPersistedFieldNames(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): ReadonlySet<string> {\n const persisted = new Set(Object.keys(getMergedObjectOrUnionShape(operation.mainSchema as never)));\n for (const discarded of createOrUpdateMandatoryDiscardFields) persisted.delete(discarded);\n return persisted;\n}\n\n/**\n * Declarative side effects that ARE the operation's work, even with no custom implementation\n * and an empty `requestDto`.\n *\n * `organizationMembers | resend` is the canonical case: it declares `requestDto: z.object({})`,\n * registers no custom implementation, and does its entire job — re-mint the invitation accept\n * token, revoke the prior one, re-send the email — through declarative `tokenGeneration`. A\n * registration-only test would flag it as a no-op and brick a working operation, so every\n * framework-executed declarative effect has to count here.\n */\nfunction hasDeclarativeSideEffects(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): boolean {\n if (operation.generatedOperation !== undefined) return true;\n if (operation.basicPrefixOperation !== undefined) return true;\n if (isApiCallOperation(operation) || isApiCallWithCallbackOperation(operation)) {\n if (operation.tokenGeneration !== undefined) return true;\n if (operation.tokenRevocation !== undefined) return true;\n }\n return false;\n}\n\n/**\n * Decide whether one configured operation can fulfil its declared contract.\n *\n * An operation is UNSERVICEABLE only when ALL of these hold, in this order:\n *\n * 1. it is a CUSTOM operation — a core operation's semantics are the core path by definition;\n * 2. the service tier can enter it — `REPOSITORY_ONLY` variants are never dispatched through\n * a service, so they cannot answer an HTTP request at all;\n * 3. no custom-implementation registration is bound to its exact operation path;\n * 4. it declares no framework-executed declarative side effect (see\n * {@link hasDeclarativeSideEffects});\n * 5. its declared `requestDto` cannot influence the outcome through the generic core path for\n * its `resourceOperationLike`.\n *\n * Clause 5 is per core-operation family:\n *\n * - **write-like** (`CREATE` / `CREATE_MANY` / `UPDATE` / `UPDATE_MANY`) — no declared request\n * field is a persisted resource field. This also covers an empty request contract\n * (`∅ ∩ X = ∅`): a write that carries nothing writes nothing.\n * - **`READ`** — the core read addresses the row by id and reads no request field, so any\n * declared field is wholly unconsumed and the custom verb never happens. An operation\n * declaring NO request contract is a plain read alias and stays serviceable.\n * - **collection** (`LIST` / `SEARCH` / `COUNT`) — declares request fields, none of which is a\n * {@link CORE_COLLECTION_PARAMETER_NAMES} key.\n * - **`DELETE` / `DELETE_MANY`** — never judged, see {@link SELF_ACTING_CORE_OPERATIONS}.\n *\n * A custom operation with no `resourceOperationLike` is left NOT_APPLICABLE: it cannot reach a\n * generic core path at all, so the dispatcher's own guards own it.\n */\nexport function resolveResourceOperationImplementationCoverage(\n operation: ResourceConfiguration_Operation<any, any, any>,\n registrations: readonly ResourceOperationCustomImplementationRegistration[],\n): ResourceOperationImplementationCoverageVerdict {\n const acknowledgement = operation.unimplementedAcknowledgement;\n const serviceable: ResourceOperationImplementationCoverageVerdict = {\n coverage: ResourceOperationImplementationCoverage.SERVICEABLE,\n unconsumedRequestFields: [],\n acknowledgement,\n };\n const notApplicable: ResourceOperationImplementationCoverageVerdict = {\n coverage: ResourceOperationImplementationCoverage.NOT_APPLICABLE,\n unconsumedRequestFields: [],\n acknowledgement,\n };\n\n if (CORE_OPERATION_IDENTIFIERS.has(String(operation.operationIdentifier))) return notApplicable;\n if (operation.variantType === ResourceOperationVariantType.REPOSITORY_ONLY) return notApplicable;\n if (registrations.length > 0) return serviceable;\n if (hasDeclarativeSideEffects(operation)) return serviceable;\n\n const coreOperation = operation.resourceOperationLike;\n if (!coreOperation) return notApplicable;\n if (SELF_ACTING_CORE_OPERATIONS.has(coreOperation)) return notApplicable;\n\n const declaredRequestFields = getDeclaredRequestFieldNames(operation);\n\n if (WRITE_LIKE_CORE_OPERATIONS.has(coreOperation)) {\n const persistedFields = getPersistedFieldNames(operation);\n const writtenFields = declaredRequestFields.filter((field) => persistedFields.has(field));\n if (writtenFields.length > 0) return serviceable;\n return {\n coverage: ResourceOperationImplementationCoverage.UNSERVICEABLE,\n unserviceableReason: ResourceOperationUnserviceableReason.NO_REQUEST_FIELD_IS_PERSISTED,\n unconsumedRequestFields: declaredRequestFields,\n acknowledgement,\n };\n }\n\n // Below here the operation declaring nothing is a plain alias of its core operation, which is\n // honest work: there is no client input to silently discard.\n if (declaredRequestFields.length === 0) return serviceable;\n\n if (coreOperation === CoreResourceOperation.READ) {\n return {\n coverage: ResourceOperationImplementationCoverage.UNSERVICEABLE,\n unserviceableReason: ResourceOperationUnserviceableReason.READ_CONSUMES_NO_REQUEST_FIELD,\n unconsumedRequestFields: declaredRequestFields,\n acknowledgement,\n };\n }\n\n if (COLLECTION_CORE_OPERATIONS.has(coreOperation)) {\n const consumedFields = declaredRequestFields.filter(\n (field) => CORE_COLLECTION_PARAMETER_NAMES.has(field),\n );\n if (consumedFields.length > 0) return serviceable;\n return {\n coverage: ResourceOperationImplementationCoverage.UNSERVICEABLE,\n unserviceableReason:\n ResourceOperationUnserviceableReason.NO_REQUEST_FIELD_IS_COLLECTION_PARAMETER,\n unconsumedRequestFields: declaredRequestFields,\n acknowledgement,\n };\n }\n\n return notApplicable;\n}\n"]}
1
+ {"version":3,"file":"resource-operation-implementation-coverage.backend.utils.js","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CoreResourceOperation,\n ResourceOperationVariantType,\n createOrUpdateMandatoryDiscardFields,\n isApiCallOperation,\n isApiCallWithCallbackOperation,\n type ResourceConfiguration_Operation,\n type ResourceOperation_UnimplementedAcknowledgement,\n} from '@wildo-ai/saas-models';\nimport {\n ResourceOperationImplementationCoverage,\n ResourceOperationRequestContractBreadth,\n ResourceOperationUnserviceableReason,\n} from '@wildo-ai/saas-models';\nimport { getMergedObjectOrUnionShape } from '@wildo-ai/zod-decorators';\n\nimport type {\n ResourceOperationCustomImplementationRegistration,\n} from './resource-operation-custom-implementation-registry.backend.service';\n\n/**\n * Whether a configured resource operation can fulfil the contract it declares.\n *\n * # The defect this exists to make impossible\n *\n * A custom operation that declares a `requestDto` no implementation consumes does not fail.\n * It falls through to the generic core path, which persists only fields the resource schema\n * declares. A DTO such as `{ newRole, reason }` names none of them, so the framework validates\n * the body, writes nothing, and answers **HTTP 200 with the unchanged row**.\n *\n * On 2026-08-01 a black-box hostile probe caught `organizationMembers | promote` doing exactly\n * that, and a sweep of the whole catalogue found 41 routed operations sharing the shape — 8\n * CRITICAL and 11 HIGH, including `users | impersonate`, `organizations | suspend` and\n * `applications | transfer`. This is not privilege escalation; nothing escalates. It is an\n * operational-safety and audit-integrity defect, and the destructive direction is the dangerous\n * one: an admin demotes a compromised account, is told 200 OK, and the account keeps its\n * privileges. Every runbook, script, and UI that trusts the 2xx is wrong.\n *\n * # Why one resolver\n *\n * Startup validation and request-time refusal must consume the SAME predicate. If they drift,\n * an operation blessed at boot can still answer 2xx on the first request — which is precisely\n * the state this module was written to end. Mirrors the single-authority contract of\n * `resolveResourceOperationTransactionPersistenceContract`.\n *\n * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — an interface must not report success for an action\n * it did not perform; monitoring and incident response depend on truthful responses.\n */\n/** Re-exported so consumers of this module keep one import site; the vocabularies themselves live in `saas-models`. */\nexport { ResourceOperationImplementationCoverage, ResourceOperationRequestContractBreadth, ResourceOperationUnserviceableReason };\n\nexport interface ResourceOperationImplementationCoverageVerdict {\n readonly coverage: ResourceOperationImplementationCoverage;\n readonly unserviceableReason?: ResourceOperationUnserviceableReason;\n /** The declared request fields that reach nothing. Empty when the operation declares no request contract. */\n readonly unconsumedRequestFields: readonly string[];\n /** The authored acknowledgement, when the operation declares one. */\n readonly acknowledgement?: ResourceOperation_UnimplementedAcknowledgement;\n}\n\n/**\n * Collection parameters the generic core path reads off `inputData`.\n *\n * Pinned to the LIST / SEARCH / COUNT arms of `executeCorePersistenceOperation` in\n * `services-registry-handler.backend.service.ts` — these are the only request-body keys a\n * collection operation can influence the outcome with when no custom implementation runs.\n * Adding an arm there without adding its key here would make this guard over-strict.\n */\nconst CORE_COLLECTION_PARAMETER_NAMES: ReadonlySet<string> = new Set([\n 'filter',\n 'page',\n 'limit',\n 'sort',\n 'searchQuery',\n]);\n\nconst CORE_OPERATION_IDENTIFIERS: ReadonlySet<string> = new Set<string>(\n Object.values(CoreResourceOperation),\n);\n\n/**\n * Core operations whose generic path performs a real state change on its own, so an unconsumed\n * request field is a WEAKER defect than a silent no-op and deliberately out of remit.\n *\n * `DELETE` / `DELETE_MANY` delete the row whether or not the operation reads its\n * `{ reason }` / `{ password }` field. That ignored confirmation field is its own defect class\n * (a missing re-authentication check), not a response that lies about having acted. Folding it in\n * here would conflate two problems and force the wrong remedy. Tracked separately in\n * `.claude/plans/routed-unimplemented-operations-fail-closed.md`.\n *\n * The exemplar of that second class was `user_self | delete_account`, REMOVED on 2026-08-01. Its\n * investigation is worth carrying forward, because this exclusion is what let it survive the sweep:\n * a delete-like verb is out of remit here, so nothing mechanical will flag the next one. It\n * discarded its `{ password }` confirmation, declared a scheduled-deletion response no producer\n * could satisfy (HTTP 500 on every call), fired an `onParentDelete` cascade its resource had never\n * opened a core DELETE for — rolling the delete back for some users and destroying others — and\n * contradicted its own resource's `RETAIN_AND_IMPERSONALIZE` retention policy. Data-subject erasure\n * belongs to `eraseSubjectAsSystem`, which ships deliberately without a route.\n */\nconst SELF_ACTING_CORE_OPERATIONS: ReadonlySet<CoreResourceOperation> = new Set([\n CoreResourceOperation.DELETE,\n CoreResourceOperation.DELETE_MANY,\n]);\n\nconst WRITE_LIKE_CORE_OPERATIONS: ReadonlySet<CoreResourceOperation> = new Set([\n CoreResourceOperation.CREATE,\n CoreResourceOperation.CREATE_MANY,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.UPDATE_MANY,\n]);\n\nconst COLLECTION_CORE_OPERATIONS: ReadonlySet<CoreResourceOperation> = new Set([\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n CoreResourceOperation.COUNT,\n]);\n\n/**\n * Whether a custom operation's declared request contract is WIDER than the verb it names.\n *\n * # The defect this exists to make impossible\n *\n * `buildEnhancedRequestDto` synthesizes a request contract when an operation does not author one:\n * for a write-like `resourceOperationLike` that synthesis is the resource's ENTIRE create/update\n * contract. `resourceOperationLike` is therefore doing double duty — it selects the core path that\n * PERSISTS, and it also picks the contract the caller may SEND. The first is what an author wants\n * from a custom verb; the second almost never is.\n *\n * The result is an operation whose name promises one transition while its contract accepts every\n * field on the resource. `applicationApiKeys | deactivate` inherited\n * `{name, description, roles, status, expiresAt}` — so `PUT .../deactivate` could carry\n * `status: active` and do the exact opposite of its name, and could rewrite `roles` on a machine\n * credential even though that resource exposes no core UPDATE and gates roles only when minting.\n * `organizationOAuthClients | regenerate` inherited `redirectUris`.\n *\n * This is NOT the {@link ResourceOperationImplementationCoverage} question. Those operations DO\n * write; several have full custom implementations. They write too much. Conflating the two would\n * force the wrong remedy (an `unimplementedAcknowledgement` on an operation that is implemented)\n * and would corrupt the bidirectional stale-acknowledgement check, so this is a SEPARATE verdict\n * with its own resolver — sharing this module because both answer \"does this operation mean what\n * it says\", and a split would let the two drift.\n *\n * # Why \"authored a contract\" is the whole predicate\n *\n * A narrower rule (\"the contract equals the full update contract\") would be a heuristic, and it\n * would miss an author who pasted the full contract deliberately. Requiring the contract to be\n * AUTHORED makes intent explicit at the declaration site with no new model field and no second\n * acknowledgement list: an author who genuinely wants the whole contract writes it out, and the\n * reviewer sees them do it. Silence is the bug.\n *\n * `hasCustomRequestDto` is set by the factory as `!!variantParams.requestDto` and is already the\n * signal the DTO builder itself uses to tell an authored contract from a synthesized one.\n *\n * assurance-control: WILDO.OPERATIONS.EXECUTION_INTEGRITY — a named verb must not silently widen into an\n * unconstrained write over fields its resource never exposed for update.\n */\nexport interface ResourceOperationRequestContractVerdict {\n readonly breadth: ResourceOperationRequestContractBreadth;\n /** Every field the caller may send — the inherited contract when overbroad. Empty otherwise. */\n readonly inheritedRequestFields: readonly string[];\n}\n\n/**\n * Decide whether one configured operation authored the request contract it exposes.\n *\n * Flagged only when ALL hold:\n *\n * 1. it is a CUSTOM operation — a core operation's full contract IS its semantics;\n * 2. the service tier can enter it (`REPOSITORY_ONLY` variants answer no HTTP request);\n * 3. it is not framework-`generatedOperation` — those carry a framework-authored contract;\n * 4. its `resourceOperationLike` is write-like, the only family whose synthesis is the whole\n * resource contract (`READ` synthesizes nothing; collection families synthesize query\n * parameters, which are the honest contract for a collection verb);\n * 5. it did not author a `requestDto`.\n */\nexport function resolveResourceOperationRequestContractBreadth(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): ResourceOperationRequestContractVerdict {\n const authored: ResourceOperationRequestContractVerdict = {\n breadth: ResourceOperationRequestContractBreadth.AUTHORED,\n inheritedRequestFields: [],\n };\n\n if (CORE_OPERATION_IDENTIFIERS.has(String(operation.operationIdentifier))) return authored;\n if (operation.variantType === ResourceOperationVariantType.REPOSITORY_ONLY) return authored;\n if (operation.generatedOperation !== undefined) return authored;\n\n const coreOperation = operation.resourceOperationLike;\n if (!coreOperation || !WRITE_LIKE_CORE_OPERATIONS.has(coreOperation)) return authored;\n if (operation.hasCustomRequestDto === true) return authored;\n\n return {\n breadth: ResourceOperationRequestContractBreadth.OVERBROAD_INHERITED_FULL_CONTRACT,\n inheritedRequestFields: getDeclaredRequestFieldNames(operation),\n };\n}\n\nfunction getDeclaredRequestFieldNames(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): string[] {\n if (!operation.requestDto) return [];\n return Object.keys(getMergedObjectOrUnionShape(operation.requestDto as never));\n}\n\n/**\n * Field names a CLIENT-SUPPLIED payload can actually persist on this resource.\n *\n * Read from the resource's `mainSchema`, NOT the operation's `repositoryDto`. `repositoryDto` is\n * computed per-operation at factory time and can be narrowed by the operation's own\n * `requestDto`; using it would make the intersection below trivially non-empty and silently\n * defeat this guard. `mainSchema` is the persistence contract the repository projects onto, and\n * it is what the live 200-no-op reproduction matched.\n *\n * `createOrUpdateMandatoryDiscardFields` (`_id`, `createdAt`, `updatedAt`, `deletedAt`,\n * `_version_db_doc`) are subtracted because `ResourceOperationsHelper.cleanInputData` DELETES them\n * from every create/update payload before validation. They are schema paths, so a naive\n * intersection counts them as writable and the operation reads as serviceable — but the write that\n * follows is still empty.\n *\n * That false negative was real, and it is why this subtraction exists: `user_self | update_profile`\n * and `| update_preferences` declared fields belonging to OTHER resources (`firstName`,\n * `notifications`, …) plus `_id`, so `_id` alone was carrying the serviceable verdict while the\n * operation persisted nothing. Both verbs were REMOVED on 2026-08-01 (the writes belong to\n * `USER_SELF_PROFILES` / `USER_SELF_PREFERENCES`), so they no longer appear in the catalogue — but\n * the subtraction must stay: it is a general property of every create/update payload, and without\n * it the next cross-resource DTO would read as serviceable for exactly the same reason.\n */\nexport function getPersistedFieldNames(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): ReadonlySet<string> {\n const persisted = new Set(Object.keys(getMergedObjectOrUnionShape(operation.mainSchema as never)));\n for (const discarded of createOrUpdateMandatoryDiscardFields) persisted.delete(discarded);\n return persisted;\n}\n\n/**\n * Declarative side effects that ARE the operation's work, even with no custom implementation\n * and an empty `requestDto`.\n *\n * `organizationMembers | resend` is the canonical case: it declares `requestDto: z.object({})`,\n * registers no custom implementation, and does its entire job — re-mint the invitation accept\n * token, revoke the prior one, re-send the email — through declarative `tokenGeneration`. A\n * registration-only test would flag it as a no-op and brick a working operation, so every\n * framework-executed declarative effect has to count here.\n */\nfunction hasDeclarativeSideEffects(\n operation: ResourceConfiguration_Operation<any, any, any>,\n): boolean {\n if (operation.generatedOperation !== undefined) return true;\n if (operation.basicPrefixOperation !== undefined) return true;\n if (isApiCallOperation(operation) || isApiCallWithCallbackOperation(operation)) {\n if (operation.tokenGeneration !== undefined) return true;\n if (operation.tokenRevocation !== undefined) return true;\n }\n return false;\n}\n\n/**\n * Decide whether one configured operation can fulfil its declared contract.\n *\n * An operation is UNSERVICEABLE only when ALL of these hold, in this order:\n *\n * 1. it is a CUSTOM operation — a core operation's semantics are the core path by definition;\n * 2. the service tier can enter it — `REPOSITORY_ONLY` variants are never dispatched through\n * a service, so they cannot answer an HTTP request at all;\n * 3. no custom-implementation registration is bound to its exact operation path;\n * 4. it declares no framework-executed declarative side effect (see\n * {@link hasDeclarativeSideEffects});\n * 5. its declared `requestDto` cannot influence the outcome through the generic core path for\n * its `resourceOperationLike`.\n *\n * Clause 5 is per core-operation family:\n *\n * - **write-like** (`CREATE` / `CREATE_MANY` / `UPDATE` / `UPDATE_MANY`) — no declared request\n * field is a persisted resource field. This also covers an empty request contract\n * (`∅ ∩ X = ∅`): a write that carries nothing writes nothing.\n * - **`READ`** — the core read addresses the row by id and reads no request field, so any\n * declared field is wholly unconsumed and the custom verb never happens. An operation\n * declaring NO request contract is a plain read alias and stays serviceable.\n * - **collection** (`LIST` / `SEARCH` / `COUNT`) — declares request fields, none of which is a\n * {@link CORE_COLLECTION_PARAMETER_NAMES} key.\n * - **`DELETE` / `DELETE_MANY`** — never judged, see {@link SELF_ACTING_CORE_OPERATIONS}.\n *\n * A custom operation with no `resourceOperationLike` is left NOT_APPLICABLE: it cannot reach a\n * generic core path at all, so the dispatcher's own guards own it.\n */\nexport function resolveResourceOperationImplementationCoverage(\n operation: ResourceConfiguration_Operation<any, any, any>,\n registrations: readonly ResourceOperationCustomImplementationRegistration[],\n): ResourceOperationImplementationCoverageVerdict {\n const acknowledgement = operation.unimplementedAcknowledgement;\n const serviceable: ResourceOperationImplementationCoverageVerdict = {\n coverage: ResourceOperationImplementationCoverage.SERVICEABLE,\n unconsumedRequestFields: [],\n acknowledgement,\n };\n const notApplicable: ResourceOperationImplementationCoverageVerdict = {\n coverage: ResourceOperationImplementationCoverage.NOT_APPLICABLE,\n unconsumedRequestFields: [],\n acknowledgement,\n };\n\n if (CORE_OPERATION_IDENTIFIERS.has(String(operation.operationIdentifier))) return notApplicable;\n if (operation.variantType === ResourceOperationVariantType.REPOSITORY_ONLY) return notApplicable;\n if (registrations.length > 0) return serviceable;\n if (hasDeclarativeSideEffects(operation)) return serviceable;\n\n const coreOperation = operation.resourceOperationLike;\n if (!coreOperation) return notApplicable;\n if (SELF_ACTING_CORE_OPERATIONS.has(coreOperation)) return notApplicable;\n\n const declaredRequestFields = getDeclaredRequestFieldNames(operation);\n\n if (WRITE_LIKE_CORE_OPERATIONS.has(coreOperation)) {\n const persistedFields = getPersistedFieldNames(operation);\n const writtenFields = declaredRequestFields.filter((field) => persistedFields.has(field));\n if (writtenFields.length > 0) return serviceable;\n return {\n coverage: ResourceOperationImplementationCoverage.UNSERVICEABLE,\n unserviceableReason: ResourceOperationUnserviceableReason.NO_REQUEST_FIELD_IS_PERSISTED,\n unconsumedRequestFields: declaredRequestFields,\n acknowledgement,\n };\n }\n\n // Below here the operation declaring nothing is a plain alias of its core operation, which is\n // honest work: there is no client input to silently discard.\n if (declaredRequestFields.length === 0) return serviceable;\n\n if (coreOperation === CoreResourceOperation.READ) {\n return {\n coverage: ResourceOperationImplementationCoverage.UNSERVICEABLE,\n unserviceableReason: ResourceOperationUnserviceableReason.READ_CONSUMES_NO_REQUEST_FIELD,\n unconsumedRequestFields: declaredRequestFields,\n acknowledgement,\n };\n }\n\n if (COLLECTION_CORE_OPERATIONS.has(coreOperation)) {\n const consumedFields = declaredRequestFields.filter(\n (field) => CORE_COLLECTION_PARAMETER_NAMES.has(field),\n );\n if (consumedFields.length > 0) return serviceable;\n return {\n coverage: ResourceOperationImplementationCoverage.UNSERVICEABLE,\n unserviceableReason:\n ResourceOperationUnserviceableReason.NO_REQUEST_FIELD_IS_COLLECTION_PARAMETER,\n unconsumedRequestFields: declaredRequestFields,\n acknowledgement,\n };\n }\n\n return notApplicable;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-status-transition.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-status-transition.custom-impl.backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-status-transition.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/base-classes/services/services/resource-status-transition.custom-impl.backend.service.ts"],"names":[],"mappings":"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"}
@@ -86,7 +86,7 @@
86
86
  * write, and may not retire the last accountable administrative principal of an application or of a
87
87
  * tenant.
88
88
  */
89
- import { ErrorCustomMessageReference, ErrorType, ResourceOperationVariantType, } from '@wildo-ai/saas-models';
89
+ import { AdministrativeContinuityBreachDetection, ErrorCustomMessageReference, ErrorType, ResourceOperationVariantType, } from '@wildo-ai/saas-models';
90
90
  import { createResourceCustomServiceImplementation, } from '../../../base-classes/services/services/resource-operation-custom-implementation.factory.backend.js';
91
91
  import { assertSuperAdminFloorPreservedForTransition, createSuperAdminConferralResolver, isSuperAdminFloorGovernedSubjectResource, } from '../../../security/authorizations/super-admin-floor.backend.utils.js';
92
92
  import { assertOrganizationOwnerFloorPreservedForTransition, createOrganizationOwnerConferralResolver, createOrganizationOwnerFloorPopulationContext, isOrganizationOwnerFloorAuthorityBearingResource, isOrganizationOwnerFloorGovernedSubjectResource, reportOrganizationsStrandedByUserDeactivation, membershipTransitionCouldReduceOwners, } from '../../../security/authorizations/organization-owner-floor.backend.utils.js';
@@ -434,6 +434,9 @@ function resolveStatusTransitionFloorGuards(definition, container) {
434
434
  await container.get(SAAS_SERVICE_TYPES.AuditLogsService)
435
435
  .logOrganizationOwnerFloorBreached({
436
436
  organizationId: breach.organizationId,
437
+ // A guard SAW this one and let it through, which is what separates it from the boot
438
+ // report's observation of a tenant stranded out-of-band.
439
+ detectedBy: AdministrativeContinuityBreachDetection.ALLOWED_LIFECYCLE_ACTION,
437
440
  reducedMemberIds: breach.reducedMemberIds,
438
441
  remainingUsableOwners: breach.remainingUsableOwners,
439
442
  operationIdentifier: definition.operationIdentifier,