@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
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Compiling a declared provider operation + a caller's input into ONE transport request (S3a,
3
+ * #331).
4
+ *
5
+ * Deliberately a pure function over data, with no registry, no secrets and no I/O: an operation
6
+ * declaration and an input go in, an {@link HttpApiTransportRequest} comes out. That is what makes
7
+ * the interesting half — which input field lands in the path, which in the query, which in the
8
+ * body, and whether the call may be retried — testable without a network, a provider or a
9
+ * container.
10
+ *
11
+ * What this does NOT do, on purpose: it never PAGES. `pagination` on an operation is a hint the
12
+ * caller reads; an executor that paged on its own would decide a caller's memory budget for it.
13
+ */
14
+ import { API_HttpMethod } from '@wildo-ai/external-connectors-models';
15
+ /*
16
+ * `./backend` is the door that exists on `test`. #330 is splitting the private package by
17
+ * AUDIENCE — `./backend-runtime` for what executes, `./backend` for tooling that enumerates every
18
+ * engine-shipped provider — and has already moved backend-lib's runtime imports across in its own
19
+ * work. This file was new and not in that sweep; #330 landed the split and moved this specifier with
20
+ * the others, so the operations lane no longer pulls the eager registry into a running host. A
21
+ * guard in `backend-provider-loader.module-graph.test.ts` now refuses any value import of the eager
22
+ * barrel from this package's source, which is what stops the next new file re-introducing it.
23
+ */
24
+ import { ProviderRestParameterLocation, ProviderRestRequestBodyEncoding } from '@wildo-ai/external-connectors-models';
25
+ import { HttpApiTransportBodyEncoding, HttpApiTransportResponseDecoding, } from '../../base-classes/services/repositories/http-api/http-api-transport.backend.js';
26
+ /** What went wrong while turning a declaration + an input into a request. */
27
+ export var ProviderOperationRequestFailureKind;
28
+ (function (ProviderOperationRequestFailureKind) {
29
+ /** The caller's input does not satisfy the operation's declared input schema. */
30
+ ProviderOperationRequestFailureKind["INPUT_REJECTED"] = "INPUT_REJECTED";
31
+ /** A required value is absent — a path token with nothing to fill it, a required parameter. */
32
+ ProviderOperationRequestFailureKind["INPUT_INCOMPLETE"] = "INPUT_INCOMPLETE";
33
+ /** The DECLARATION is inconsistent — a path token no parameter declares, a body with no source. */
34
+ ProviderOperationRequestFailureKind["DECLARATION_INCOHERENT"] = "DECLARATION_INCOHERENT";
35
+ })(ProviderOperationRequestFailureKind || (ProviderOperationRequestFailureKind = {}));
36
+ export class ProviderOperationRequestError extends Error {
37
+ detail;
38
+ constructor(message, detail) {
39
+ super(message);
40
+ this.detail = detail;
41
+ this.name = 'ProviderOperationRequestError';
42
+ }
43
+ }
44
+ /**
45
+ * Methods whose repetition is safe.
46
+ * spec-cite: RFC 9110 §9.2.2 — "PUT, DELETE, and the safe request methods are idempotent";
47
+ * §9.2.1 names GET, HEAD, OPTIONS and TRACE as the safe ones.
48
+ *
49
+ * This is only the DEFAULT: an operation may declare `idempotent` and override it in either
50
+ * direction — `true` on a POST the vendor documents behind an idempotency key, `false` on a PUT
51
+ * whose target is not really a resource replacement.
52
+ */
53
+ const IDEMPOTENT_METHODS = new Set([
54
+ API_HttpMethod.GET,
55
+ API_HttpMethod.HEAD,
56
+ API_HttpMethod.OPTIONS,
57
+ API_HttpMethod.PUT,
58
+ API_HttpMethod.DELETE,
59
+ ]);
60
+ /** Whether re-sending this operation is safe — the value that reaches the transport's retry gate. */
61
+ export function providerOperationIsRetrySafe(operation) {
62
+ return operation.idempotent ?? IDEMPOTENT_METHODS.has(operation.method);
63
+ }
64
+ const PATH_TOKEN = /\{([^}]+)\}/g;
65
+ /** The input field feeding a parameter: its own `from`, or the wire name when the two agree. */
66
+ function inputFieldOf(parameter) {
67
+ return parameter.from ?? parameter.name;
68
+ }
69
+ function asWireValue(value) {
70
+ return typeof value === 'string' ? value : String(value);
71
+ }
72
+ /**
73
+ * Build the request. Reads in one direction — path, then query, then headers, then body — and
74
+ * records which input fields were consumed on the way, because the body's default source is
75
+ * "everything not consumed" and that set can only be known after the parameters are placed.
76
+ */
77
+ export function compileProviderOperationRequest(input) {
78
+ const { operation, providerRef, access } = input;
79
+ const refuse = (kind, message) => {
80
+ throw new ProviderOperationRequestError(message, { kind, operationId: operation.operationId, providerRef });
81
+ };
82
+ const parameters = operation.parameters ?? [];
83
+ const consumedInputFields = new Set();
84
+ const valueFor = (parameter) => {
85
+ if (parameter.constantValue !== undefined)
86
+ return parameter.constantValue;
87
+ const field = inputFieldOf(parameter);
88
+ consumedInputFields.add(field);
89
+ return input.input[field];
90
+ };
91
+ // ── path ───────────────────────────────────────────────────────────────────
92
+ const pathParameters = new Map(parameters.filter((parameter) => parameter.in === ProviderRestParameterLocation.PATH).map((parameter) => [parameter.name, parameter]));
93
+ const path = operation.pathTemplate.replace(PATH_TOKEN, (_match, token) => {
94
+ const parameter = pathParameters.get(token);
95
+ if (!parameter) {
96
+ // The declaration is wrong, not the call: a path template cannot have a hole nothing fills.
97
+ return refuse(ProviderOperationRequestFailureKind.DECLARATION_INCOHERENT, `Operation '${operation.operationId}' has the path token '{${token}}' and declares no PATH parameter named '${token}'.`);
98
+ }
99
+ const value = valueFor(parameter);
100
+ if (value === undefined || value === null || value === '') {
101
+ return refuse(ProviderOperationRequestFailureKind.INPUT_INCOMPLETE, `Operation '${operation.operationId}' needs '${inputFieldOf(parameter)}' for the path token '{${token}}', and the input carries no value for it.`);
102
+ }
103
+ return encodeURIComponent(asWireValue(value));
104
+ });
105
+ // ── query ──────────────────────────────────────────────────────────────────
106
+ const search = new URLSearchParams();
107
+ for (const parameter of parameters) {
108
+ if (parameter.in !== ProviderRestParameterLocation.QUERY)
109
+ continue;
110
+ const value = valueFor(parameter);
111
+ if (value === undefined || value === null) {
112
+ if (parameter.required) {
113
+ refuse(ProviderOperationRequestFailureKind.INPUT_INCOMPLETE, `Operation '${operation.operationId}' declares '${parameter.name}' as a required query parameter, and the input carries no value for it.`);
114
+ }
115
+ continue;
116
+ }
117
+ // An array becomes REPEATED parameters (`?tag=a&tag=b`), the only encoding every target
118
+ // accepts. A vendor wanting a joined list declares one field and the caller joins it — a
119
+ // guess here would silently send the wrong thing to half of them.
120
+ if (Array.isArray(value)) {
121
+ for (const entry of value)
122
+ search.append(parameter.name, asWireValue(entry));
123
+ continue;
124
+ }
125
+ search.append(parameter.name, asWireValue(value));
126
+ }
127
+ // ── headers ────────────────────────────────────────────────────────────────
128
+ const headers = { Accept: 'application/json', ...access.headers };
129
+ for (const parameter of parameters) {
130
+ if (parameter.in !== ProviderRestParameterLocation.HEADER)
131
+ continue;
132
+ const value = valueFor(parameter);
133
+ if (value === undefined || value === null) {
134
+ if (parameter.required) {
135
+ refuse(ProviderOperationRequestFailureKind.INPUT_INCOMPLETE, `Operation '${operation.operationId}' declares '${parameter.name}' as a required header, and the input carries no value for it.`);
136
+ }
137
+ continue;
138
+ }
139
+ headers[parameter.name] = asWireValue(value);
140
+ }
141
+ // ── body ───────────────────────────────────────────────────────────────────
142
+ let body;
143
+ if (operation.requestBody) {
144
+ const declaration = operation.requestBody;
145
+ const payload = declaration.from !== undefined
146
+ ? input.input[declaration.from]
147
+ : Object.fromEntries(Object.entries(input.input).filter(([field]) => !consumedInputFields.has(field)));
148
+ switch (declaration.encoding) {
149
+ case ProviderRestRequestBodyEncoding.JSON:
150
+ body = { encoding: HttpApiTransportBodyEncoding.JSON, value: payload };
151
+ break;
152
+ case ProviderRestRequestBodyEncoding.FORM_URLENCODED: {
153
+ if (payload === null || typeof payload !== 'object') {
154
+ refuse(ProviderOperationRequestFailureKind.INPUT_INCOMPLETE, `Operation '${operation.operationId}' sends a form body and the input resolves to ${payload === null ? 'null' : typeof payload} instead of an object.`);
155
+ }
156
+ const fields = {};
157
+ for (const [field, value] of Object.entries(payload)) {
158
+ if (value === undefined || value === null)
159
+ continue;
160
+ fields[field] = asWireValue(value);
161
+ }
162
+ body = { encoding: HttpApiTransportBodyEncoding.FORM_URLENCODED, value: fields };
163
+ break;
164
+ }
165
+ case ProviderRestRequestBodyEncoding.MULTIPART: {
166
+ if (!(payload instanceof FormData)) {
167
+ // Deliberately NOT built from a plain object here: a multipart part carries a filename
168
+ // and a media type the caller knows and this layer does not, and inventing them is how
169
+ // an upload arrives as `blob` with the wrong content type.
170
+ refuse(ProviderOperationRequestFailureKind.INPUT_INCOMPLETE, `Operation '${operation.operationId}' sends a multipart body, so its input must supply a FormData`
171
+ + `${declaration.from ? ` in '${declaration.from}'` : ''}; the caller supplied ${payload === null ? 'null' : typeof payload}.`);
172
+ }
173
+ body = { encoding: HttpApiTransportBodyEncoding.MULTIPART, value: payload };
174
+ break;
175
+ }
176
+ case ProviderRestRequestBodyEncoding.TEXT: {
177
+ if (typeof payload !== 'string') {
178
+ refuse(ProviderOperationRequestFailureKind.INPUT_INCOMPLETE, `Operation '${operation.operationId}' sends a text body, so its input must supply a string`
179
+ + `${declaration.from ? ` in '${declaration.from}'` : ''}; the caller supplied ${payload === null ? 'null' : typeof payload}.`);
180
+ }
181
+ if (declaration.contentType === undefined) {
182
+ refuse(ProviderOperationRequestFailureKind.DECLARATION_INCOHERENT, `Operation '${operation.operationId}' sends a text body and declares no contentType — a text body without its media type is not addressable.`);
183
+ }
184
+ body = { encoding: HttpApiTransportBodyEncoding.TEXT, value: payload, contentType: declaration.contentType };
185
+ break;
186
+ }
187
+ default: {
188
+ const exhaustiveCheck = declaration.encoding;
189
+ return exhaustiveCheck;
190
+ }
191
+ }
192
+ }
193
+ const query = search.toString();
194
+ return {
195
+ method: operation.method,
196
+ url: `${access.baseUrl}${path}${query.length > 0 ? `?${query}` : ''}`,
197
+ headers,
198
+ body,
199
+ // ALWAYS JSON, and stated rather than left to the transport's default so the limitation is
200
+ // visible at the site that imposes it: the operation declaration has no way to say the vendor
201
+ // answers `text/csv` or answers nothing at all. The transport carries both
202
+ // (`HttpApiTransportResponseDecoding.TEXT` / `.NONE`) and the request body already speaks TEXT,
203
+ // so this is an asymmetry rather than a design — filed, not deferred silently.
204
+ //
205
+ // An earlier revision wrote `outputSchema || resultPath ? JSON : undefined`, which implied a
206
+ // distinction that does not exist: absent means JSON too, so both arms were the same value.
207
+ responseDecoding: HttpApiTransportResponseDecoding.JSON,
208
+ retrySafe: providerOperationIsRetrySafe(operation),
209
+ };
210
+ }
211
+ //# sourceMappingURL=provider-operation-request.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-operation-request.backend.js","sourceRoot":"","sources":["../../../../../src/external-providers/operations/provider-operation-request.backend.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Compiling a declared provider operation + a caller's input into ONE transport request (S3a,\n * #331).\n *\n * Deliberately a pure function over data, with no registry, no secrets and no I/O: an operation\n * declaration and an input go in, an {@link HttpApiTransportRequest} comes out. That is what makes\n * the interesting half — which input field lands in the path, which in the query, which in the\n * body, and whether the call may be retried — testable without a network, a provider or a\n * container.\n *\n * What this does NOT do, on purpose: it never PAGES. `pagination` on an operation is a hint the\n * caller reads; an executor that paged on its own would decide a caller's memory budget for it.\n */\n\nimport { API_HttpMethod } from '@wildo-ai/external-connectors-models';\n/*\n * `./backend` is the door that exists on `test`. #330 is splitting the private package by\n * AUDIENCE — `./backend-runtime` for what executes, `./backend` for tooling that enumerates every\n * engine-shipped provider — and has already moved backend-lib's runtime imports across in its own\n * work. This file was new and not in that sweep; #330 landed the split and moved this specifier with\n * the others, so the operations lane no longer pulls the eager registry into a running host. A\n * guard in `backend-provider-loader.module-graph.test.ts` now refuses any value import of the eager\n * barrel from this package's source, which is what stops the next new file re-introducing it.\n */\nimport { ProviderRestParameterLocation, ProviderRestRequestBodyEncoding, type ProviderRestOperation, type ProviderRestOperationParameter } from '@wildo-ai/external-connectors-models';\n\nimport {\n HttpApiTransportBodyEncoding,\n HttpApiTransportResponseDecoding,\n type HttpApiTransportBody,\n type HttpApiTransportRequest,\n} from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-transport.backend';\n\n/** What went wrong while turning a declaration + an input into a request. */\nexport enum ProviderOperationRequestFailureKind {\n /** The caller's input does not satisfy the operation's declared input schema. */\n INPUT_REJECTED = 'INPUT_REJECTED',\n /** A required value is absent — a path token with nothing to fill it, a required parameter. */\n INPUT_INCOMPLETE = 'INPUT_INCOMPLETE',\n /** The DECLARATION is inconsistent — a path token no parameter declares, a body with no source. */\n DECLARATION_INCOHERENT = 'DECLARATION_INCOHERENT',\n}\n\nexport class ProviderOperationRequestError extends Error {\n constructor(\n message: string,\n public readonly detail: {\n readonly kind: ProviderOperationRequestFailureKind;\n readonly operationId: string;\n readonly providerRef: string;\n },\n ) {\n super(message);\n this.name = 'ProviderOperationRequestError';\n }\n}\n\n/**\n * Methods whose repetition is safe.\n * spec-cite: RFC 9110 §9.2.2 — \"PUT, DELETE, and the safe request methods are idempotent\";\n * §9.2.1 names GET, HEAD, OPTIONS and TRACE as the safe ones.\n *\n * This is only the DEFAULT: an operation may declare `idempotent` and override it in either\n * direction — `true` on a POST the vendor documents behind an idempotency key, `false` on a PUT\n * whose target is not really a resource replacement.\n */\nconst IDEMPOTENT_METHODS: ReadonlySet<`${API_HttpMethod}`> = new Set([\n API_HttpMethod.GET,\n API_HttpMethod.HEAD,\n API_HttpMethod.OPTIONS,\n API_HttpMethod.PUT,\n API_HttpMethod.DELETE,\n]);\n\n/** Whether re-sending this operation is safe — the value that reaches the transport's retry gate. */\nexport function providerOperationIsRetrySafe(operation: ProviderRestOperation): boolean {\n return operation.idempotent ?? IDEMPOTENT_METHODS.has(operation.method);\n}\n\nconst PATH_TOKEN = /\\{([^}]+)\\}/g;\n\n/** The input field feeding a parameter: its own `from`, or the wire name when the two agree. */\nfunction inputFieldOf(parameter: ProviderRestOperationParameter): string {\n return parameter.from ?? parameter.name;\n}\n\nfunction asWireValue(value: unknown): string {\n return typeof value === 'string' ? value : String(value);\n}\n\nexport interface CompileProviderOperationInput {\n operation: ProviderRestOperation;\n providerRef: string;\n /** Already validated against `operation.inputSchema` by the executor when one is declared. */\n input: Readonly<Record<string, unknown>>;\n /** Base URL and auth/default headers, from the provider access resolver. */\n access: { baseUrl: string; headers: Record<string, string> };\n}\n\n/**\n * Build the request. Reads in one direction — path, then query, then headers, then body — and\n * records which input fields were consumed on the way, because the body's default source is\n * \"everything not consumed\" and that set can only be known after the parameters are placed.\n */\nexport function compileProviderOperationRequest(input: CompileProviderOperationInput): HttpApiTransportRequest {\n const { operation, providerRef, access } = input;\n const refuse = (kind: ProviderOperationRequestFailureKind, message: string): never => {\n throw new ProviderOperationRequestError(message, { kind, operationId: operation.operationId, providerRef });\n };\n\n const parameters = operation.parameters ?? [];\n const consumedInputFields = new Set<string>();\n\n const valueFor = (parameter: ProviderRestOperationParameter): unknown => {\n if (parameter.constantValue !== undefined) return parameter.constantValue;\n const field = inputFieldOf(parameter);\n consumedInputFields.add(field);\n return input.input[field];\n };\n\n // ── path ───────────────────────────────────────────────────────────────────\n const pathParameters = new Map(\n parameters.filter((parameter) => parameter.in === ProviderRestParameterLocation.PATH).map((parameter) => [parameter.name, parameter]),\n );\n const path = operation.pathTemplate.replace(PATH_TOKEN, (_match, token: string) => {\n const parameter = pathParameters.get(token);\n if (!parameter) {\n // The declaration is wrong, not the call: a path template cannot have a hole nothing fills.\n return refuse(\n ProviderOperationRequestFailureKind.DECLARATION_INCOHERENT,\n `Operation '${operation.operationId}' has the path token '{${token}}' and declares no PATH parameter named '${token}'.`,\n );\n }\n const value = valueFor(parameter);\n if (value === undefined || value === null || value === '') {\n return refuse(\n ProviderOperationRequestFailureKind.INPUT_INCOMPLETE,\n `Operation '${operation.operationId}' needs '${inputFieldOf(parameter)}' for the path token '{${token}}', and the input carries no value for it.`,\n );\n }\n return encodeURIComponent(asWireValue(value));\n });\n\n // ── query ──────────────────────────────────────────────────────────────────\n const search = new URLSearchParams();\n for (const parameter of parameters) {\n if (parameter.in !== ProviderRestParameterLocation.QUERY) continue;\n const value = valueFor(parameter);\n if (value === undefined || value === null) {\n if (parameter.required) {\n refuse(\n ProviderOperationRequestFailureKind.INPUT_INCOMPLETE,\n `Operation '${operation.operationId}' declares '${parameter.name}' as a required query parameter, and the input carries no value for it.`,\n );\n }\n continue;\n }\n // An array becomes REPEATED parameters (`?tag=a&tag=b`), the only encoding every target\n // accepts. A vendor wanting a joined list declares one field and the caller joins it — a\n // guess here would silently send the wrong thing to half of them.\n if (Array.isArray(value)) {\n for (const entry of value) search.append(parameter.name, asWireValue(entry));\n continue;\n }\n search.append(parameter.name, asWireValue(value));\n }\n\n // ── headers ────────────────────────────────────────────────────────────────\n const headers: Record<string, string> = { Accept: 'application/json', ...access.headers };\n for (const parameter of parameters) {\n if (parameter.in !== ProviderRestParameterLocation.HEADER) continue;\n const value = valueFor(parameter);\n if (value === undefined || value === null) {\n if (parameter.required) {\n refuse(\n ProviderOperationRequestFailureKind.INPUT_INCOMPLETE,\n `Operation '${operation.operationId}' declares '${parameter.name}' as a required header, and the input carries no value for it.`,\n );\n }\n continue;\n }\n headers[parameter.name] = asWireValue(value);\n }\n\n // ── body ───────────────────────────────────────────────────────────────────\n let body: HttpApiTransportBody | undefined;\n if (operation.requestBody) {\n const declaration = operation.requestBody;\n const payload = declaration.from !== undefined\n ? input.input[declaration.from]\n : Object.fromEntries(Object.entries(input.input).filter(([field]) => !consumedInputFields.has(field)));\n switch (declaration.encoding) {\n case ProviderRestRequestBodyEncoding.JSON:\n body = { encoding: HttpApiTransportBodyEncoding.JSON, value: payload };\n break;\n case ProviderRestRequestBodyEncoding.FORM_URLENCODED: {\n if (payload === null || typeof payload !== 'object') {\n refuse(\n ProviderOperationRequestFailureKind.INPUT_INCOMPLETE,\n `Operation '${operation.operationId}' sends a form body and the input resolves to ${payload === null ? 'null' : typeof payload} instead of an object.`,\n );\n }\n const fields: Record<string, string> = {};\n for (const [field, value] of Object.entries(payload as Record<string, unknown>)) {\n if (value === undefined || value === null) continue;\n fields[field] = asWireValue(value);\n }\n body = { encoding: HttpApiTransportBodyEncoding.FORM_URLENCODED, value: fields };\n break;\n }\n case ProviderRestRequestBodyEncoding.MULTIPART: {\n if (!(payload instanceof FormData)) {\n // Deliberately NOT built from a plain object here: a multipart part carries a filename\n // and a media type the caller knows and this layer does not, and inventing them is how\n // an upload arrives as `blob` with the wrong content type.\n refuse(\n ProviderOperationRequestFailureKind.INPUT_INCOMPLETE,\n `Operation '${operation.operationId}' sends a multipart body, so its input must supply a FormData`\n + `${declaration.from ? ` in '${declaration.from}'` : ''}; the caller supplied ${payload === null ? 'null' : typeof payload}.`,\n );\n }\n body = { encoding: HttpApiTransportBodyEncoding.MULTIPART, value: payload as FormData };\n break;\n }\n case ProviderRestRequestBodyEncoding.TEXT: {\n if (typeof payload !== 'string') {\n refuse(\n ProviderOperationRequestFailureKind.INPUT_INCOMPLETE,\n `Operation '${operation.operationId}' sends a text body, so its input must supply a string`\n + `${declaration.from ? ` in '${declaration.from}'` : ''}; the caller supplied ${payload === null ? 'null' : typeof payload}.`,\n );\n }\n if (declaration.contentType === undefined) {\n refuse(\n ProviderOperationRequestFailureKind.DECLARATION_INCOHERENT,\n `Operation '${operation.operationId}' sends a text body and declares no contentType — a text body without its media type is not addressable.`,\n );\n }\n body = { encoding: HttpApiTransportBodyEncoding.TEXT, value: payload as string, contentType: declaration.contentType as string };\n break;\n }\n default: {\n const exhaustiveCheck: never = declaration.encoding;\n return exhaustiveCheck;\n }\n }\n }\n\n const query = search.toString();\n return {\n method: operation.method,\n url: `${access.baseUrl}${path}${query.length > 0 ? `?${query}` : ''}`,\n headers,\n body,\n // ALWAYS JSON, and stated rather than left to the transport's default so the limitation is\n // visible at the site that imposes it: the operation declaration has no way to say the vendor\n // answers `text/csv` or answers nothing at all. The transport carries both\n // (`HttpApiTransportResponseDecoding.TEXT` / `.NONE`) and the request body already speaks TEXT,\n // so this is an asymmetry rather than a design — filed, not deferred silently.\n //\n // An earlier revision wrote `outputSchema || resultPath ? JSON : undefined`, which implied a\n // distinction that does not exist: absent means JSON too, so both arms were the same value.\n responseDecoding: HttpApiTransportResponseDecoding.JSON,\n retrySafe: providerOperationIsRetrySafe(operation),\n };\n}\n"]}
@@ -0,0 +1,45 @@
1
+ import { type ProviderRestRequestSigning } from '@wildo-ai/external-connectors-models';
2
+ import type { HttpApiTransportRequest } from '../../base-classes/services/repositories/http-api/http-api-transport.backend';
3
+ /**
4
+ * Per-request request signing — the credential a vendor COMPUTES rather than reads (#373).
5
+ *
6
+ * Signing is the LAST thing that happens to a request, and that ordering is not a preference: a
7
+ * signature covers the bytes. The method, the canonical path, the sorted query, the payload hash and
8
+ * a subset of the headers are all inputs, so anything that edits the request after signing — adding
9
+ * a header, re-encoding a body, appending a query parameter — invalidates it, and the vendor answers
10
+ * a 403 that names nothing.
11
+ *
12
+ * There is NO vendor branch here. The scheme is a contract field and this dispatches on it
13
+ * exhaustively, the same discipline the rest of the provider lane keeps.
14
+ *
15
+ * ## Why the failures are named
16
+ *
17
+ * A signature that is wrong is rejected identically however it was wrong: AWS answers
18
+ * `SignatureDoesNotMatch` whether the region was wrong, the service was wrong, the clock was skewed
19
+ * or the secret was stale. Those are four different remedies and one message, so the conditions this
20
+ * code CAN see — a missing credential, a clock far from the vendor's, an unsupported request shape —
21
+ * are reported here with their own words rather than left to become an opaque vendor rejection.
22
+ */
23
+ export declare class ProviderRequestSigningError extends Error {
24
+ constructor(message: string);
25
+ }
26
+ /** The two-or-three values a signing scheme needs, resolved from the environment by the caller. */
27
+ export interface ProviderSigningCredentials {
28
+ readonly keyId: string;
29
+ readonly secretKey: string;
30
+ readonly sessionToken?: string;
31
+ /** Overrides the declaration's region when a deployment names its own. */
32
+ readonly region?: string;
33
+ }
34
+ export interface SignProviderRequestInput {
35
+ readonly request: HttpApiTransportRequest;
36
+ readonly signing: ProviderRestRequestSigning;
37
+ readonly credentials: ProviderSigningCredentials;
38
+ /** Injected so a test can pin a signature against a published vector. */
39
+ readonly now?: Date;
40
+ }
41
+ /** Returns the request with its signature headers added. Never mutates the input. */
42
+ export declare function signProviderRequest(input: SignProviderRequestInput): HttpApiTransportRequest;
43
+ /** Exported for the diagnostic that names a clock skew rather than letting it read as a bad key. */
44
+ export declare const PROVIDER_SIGNATURE_CLOCK_TOLERANCE_MINUTES = 5;
45
+ //# sourceMappingURL=provider-request-signing.backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-request-signing.backend.d.ts","sourceRoot":"","sources":["../../../../../src/external-providers/operations/provider-request-signing.backend.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2FAA2F,CAAC;AAEzI;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED,mGAAmG;AACnG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAcD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,yEAAyE;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,uBAAuB,CAY5F;AAuLD,oGAAoG;AACpG,eAAO,MAAM,0CAA0C,IAAoC,CAAC"}
@@ -0,0 +1,216 @@
1
+ import { createHash, createHmac } from 'node:crypto';
2
+ import { ProviderRestSigningScheme } from '@wildo-ai/external-connectors-models';
3
+ /**
4
+ * Per-request request signing — the credential a vendor COMPUTES rather than reads (#373).
5
+ *
6
+ * Signing is the LAST thing that happens to a request, and that ordering is not a preference: a
7
+ * signature covers the bytes. The method, the canonical path, the sorted query, the payload hash and
8
+ * a subset of the headers are all inputs, so anything that edits the request after signing — adding
9
+ * a header, re-encoding a body, appending a query parameter — invalidates it, and the vendor answers
10
+ * a 403 that names nothing.
11
+ *
12
+ * There is NO vendor branch here. The scheme is a contract field and this dispatches on it
13
+ * exhaustively, the same discipline the rest of the provider lane keeps.
14
+ *
15
+ * ## Why the failures are named
16
+ *
17
+ * A signature that is wrong is rejected identically however it was wrong: AWS answers
18
+ * `SignatureDoesNotMatch` whether the region was wrong, the service was wrong, the clock was skewed
19
+ * or the secret was stale. Those are four different remedies and one message, so the conditions this
20
+ * code CAN see — a missing credential, a clock far from the vendor's, an unsupported request shape —
21
+ * are reported here with their own words rather than left to become an opaque vendor rejection.
22
+ */
23
+ export class ProviderRequestSigningError extends Error {
24
+ constructor(message) {
25
+ super(message);
26
+ this.name = 'ProviderRequestSigningError';
27
+ }
28
+ }
29
+ /**
30
+ * The clock tolerance every one of these schemes shares.
31
+ *
32
+ * AWS rejects a request whose `X-Amz-Date` is more than five minutes from its own clock, and Azure
33
+ * uses fifteen. This is not enforced here — only the vendor knows its clock — but the number is what
34
+ * makes a skew diagnosable: a host drifting past it fails EVERY signed request while every unsigned
35
+ * one succeeds, which is a confusing symptom until someone names it.
36
+ * spec-cite: AWS General Reference, "Elements of an AWS API request signature" — the five-minute
37
+ * window is stated there; the Azure figure is from "Authorize with Shared Key".
38
+ */
39
+ const SIGNATURE_CLOCK_TOLERANCE_MINUTES = 5;
40
+ /** Returns the request with its signature headers added. Never mutates the input. */
41
+ export function signProviderRequest(input) {
42
+ const { signing } = input;
43
+ switch (signing.scheme) {
44
+ case ProviderRestSigningScheme.AWS_SIGV4:
45
+ return signAwsSigV4(input);
46
+ case ProviderRestSigningScheme.AZURE_SHARED_KEY:
47
+ return signAzureSharedKey(input);
48
+ default: {
49
+ const exhaustive = signing.scheme;
50
+ return exhaustive;
51
+ }
52
+ }
53
+ }
54
+ /**
55
+ * AWS Signature Version 4.
56
+ *
57
+ * spec-cite: AWS General Reference, "Create a signed AWS API request" — the canonical request, the
58
+ * string to sign, the derived key chain and the Authorization header are all defined there.
59
+ *
60
+ * The payload hash is computed over the body EXACTLY as it will be sent, and an empty body hashes to
61
+ * the SHA-256 of the empty string rather than being omitted — a distinction that costs one line and,
62
+ * got wrong, makes every GET fail with a message about a signature mismatch.
63
+ */
64
+ function signAwsSigV4(input) {
65
+ const { request, signing, credentials } = input;
66
+ const region = credentials.region ?? signing.region;
67
+ const service = signing.service;
68
+ if (region === undefined || service === undefined) {
69
+ throw new ProviderRequestSigningError('AWS SigV4 needs both a region and a service: they scope the DERIVED KEY, so a wrong or absent value fails '
70
+ + `authentication rather than routing. Declare them on the provider's requestSigning block (region: ${region ?? 'unset'}, service: ${service ?? 'unset'}).`);
71
+ }
72
+ const url = new URL(request.url);
73
+ const now = input.now ?? new Date();
74
+ const amzDate = `${now.toISOString().replace(/[-:]/g, '').slice(0, 15)}Z`;
75
+ const dateStamp = amzDate.slice(0, 8);
76
+ const payload = bodyToPayload(request.body);
77
+ const payloadHash = createHash('sha256').update(payload).digest('hex');
78
+ // `host` is required in the signature and is not in the request's own headers — the transport adds
79
+ // it. Signing what will actually be sent means adding it here, in the same order the canonical
80
+ // form demands.
81
+ const headersToSign = {
82
+ host: url.host,
83
+ 'x-amz-date': amzDate,
84
+ ...(credentials.sessionToken === undefined ? {} : { 'x-amz-security-token': credentials.sessionToken }),
85
+ ...(request.body === undefined ? {} : { 'content-type': request.headers['Content-Type'] ?? request.headers['content-type'] ?? 'application/json' }),
86
+ };
87
+ const signedHeaderNames = Object.keys(headersToSign).map((name) => name.toLowerCase()).sort();
88
+ const canonicalHeaders = signedHeaderNames
89
+ .map((name) => `${name}:${collapseWhitespace(headersToSign[name] ?? headersToSign[Object.keys(headersToSign).find((key) => key.toLowerCase() === name)])}\n`)
90
+ .join('');
91
+ const signedHeaders = signedHeaderNames.join(';');
92
+ const canonicalRequest = [
93
+ request.method,
94
+ canonicalUri(url.pathname),
95
+ canonicalQuery(url.searchParams),
96
+ canonicalHeaders,
97
+ signedHeaders,
98
+ payloadHash,
99
+ ].join('\n');
100
+ const scope = `${dateStamp}/${region}/${service}/aws4_request`;
101
+ const stringToSign = [
102
+ 'AWS4-HMAC-SHA256',
103
+ amzDate,
104
+ scope,
105
+ createHash('sha256').update(canonicalRequest).digest('hex'),
106
+ ].join('\n');
107
+ const signingKey = ['aws4_request'].reduce((key, step) => hmac(key, step), [region, service].reduce((key, step) => hmac(key, step), hmac(`AWS4${credentials.secretKey}`, dateStamp)));
108
+ const signature = hmac(signingKey, stringToSign).toString('hex');
109
+ return {
110
+ ...request,
111
+ headers: {
112
+ ...request.headers,
113
+ 'X-Amz-Date': amzDate,
114
+ ...(credentials.sessionToken === undefined ? {} : { 'X-Amz-Security-Token': credentials.sessionToken }),
115
+ 'X-Amz-Content-Sha256': payloadHash,
116
+ Authorization: `AWS4-HMAC-SHA256 Credential=${credentials.keyId}/${scope}, SignedHeaders=${signedHeaders}, Signature=${signature}`,
117
+ },
118
+ };
119
+ }
120
+ /**
121
+ * Azure Storage shared key.
122
+ *
123
+ * spec-cite: Azure Storage REST, "Authorize with Shared Key" — the canonicalized headers and
124
+ * canonicalized resource, and the `SharedKey <account>:<signature>` header, are defined there.
125
+ *
126
+ * Deliberately the FULL scheme rather than SharedKeyLite: the two differ in which fields the string
127
+ * to sign carries, and a service that expects one rejects the other with the same opaque message a
128
+ * wrong key produces.
129
+ */
130
+ function signAzureSharedKey(input) {
131
+ const { request, credentials } = input;
132
+ const url = new URL(request.url);
133
+ const now = input.now ?? new Date();
134
+ const date = now.toUTCString();
135
+ const payload = bodyToPayload(request.body);
136
+ const contentLength = payload.length === 0 ? '' : String(payload.length);
137
+ const contentType = request.headers['Content-Type'] ?? request.headers['content-type'] ?? '';
138
+ const canonicalizedHeaders = `x-ms-date:${date}\nx-ms-version:2021-12-02\n`;
139
+ const canonicalizedResource = [
140
+ `/${credentials.keyId}${canonicalUri(url.pathname)}`,
141
+ ...[...url.searchParams.keys()]
142
+ .map((key) => key.toLowerCase())
143
+ .sort()
144
+ .map((key) => `${key}:${url.searchParams.getAll(key).sort().join(',')}`),
145
+ ].join('\n');
146
+ const stringToSign = [
147
+ request.method,
148
+ '', // Content-Encoding
149
+ '', // Content-Language
150
+ contentLength,
151
+ '', // Content-MD5
152
+ contentType,
153
+ '', // Date — empty because x-ms-date is used instead
154
+ '', // If-Modified-Since
155
+ '', // If-Match
156
+ '', // If-None-Match
157
+ '', // If-Unmodified-Since
158
+ '', // Range
159
+ canonicalizedHeaders + canonicalizedResource,
160
+ ].join('\n');
161
+ const signature = createHmac('sha256', Buffer.from(credentials.secretKey, 'base64')).update(stringToSign, 'utf8').digest('base64');
162
+ return {
163
+ ...request,
164
+ headers: {
165
+ ...request.headers,
166
+ 'x-ms-date': date,
167
+ 'x-ms-version': '2021-12-02',
168
+ Authorization: `SharedKey ${credentials.keyId}:${signature}`,
169
+ },
170
+ };
171
+ }
172
+ /**
173
+ * The canonical URI: each path segment URI-encoded, and the encoding applied ONCE for most services.
174
+ * S3 is the documented exception (it does not double-encode), and since every service this contract
175
+ * reaches declares its own `service`, the single-encoding form is what is implemented — the double
176
+ * encoding other services expect is a documented difference, not a bug, and belongs with the first
177
+ * provider that needs it rather than guessed at now.
178
+ */
179
+ function canonicalUri(pathname) {
180
+ if (pathname === '')
181
+ return '/';
182
+ return pathname
183
+ .split('/')
184
+ .map((segment) => encodeURIComponent(decodeURIComponent(segment)).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`))
185
+ .join('/');
186
+ }
187
+ /** Sorted by name then value, each component encoded, joined — the canonical query string. */
188
+ function canonicalQuery(params) {
189
+ const pairs = [];
190
+ params.forEach((value, key) => pairs.push([key, value]));
191
+ return pairs
192
+ .map(([key, value]) => [encodeRfc3986(key), encodeRfc3986(value)])
193
+ .sort((left, right) => (left[0] === right[0] ? left[1].localeCompare(right[1]) : left[0].localeCompare(right[0])))
194
+ .map(([key, value]) => `${key}=${value}`)
195
+ .join('&');
196
+ }
197
+ function encodeRfc3986(value) {
198
+ return encodeURIComponent(value).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`);
199
+ }
200
+ function collapseWhitespace(value) {
201
+ return value.trim().replace(/\s+/g, ' ');
202
+ }
203
+ function hmac(key, data) {
204
+ return createHmac('sha256', key).update(data, 'utf8').digest();
205
+ }
206
+ /** The bytes that will actually be sent, as a string — what the payload hash must cover. */
207
+ function bodyToPayload(body) {
208
+ if (body === undefined)
209
+ return '';
210
+ if (typeof body === 'string')
211
+ return body;
212
+ return JSON.stringify(body);
213
+ }
214
+ /** Exported for the diagnostic that names a clock skew rather than letting it read as a bad key. */
215
+ export const PROVIDER_SIGNATURE_CLOCK_TOLERANCE_MINUTES = SIGNATURE_CLOCK_TOLERANCE_MINUTES;
216
+ //# sourceMappingURL=provider-request-signing.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-request-signing.backend.js","sourceRoot":"","sources":["../../../../../src/external-providers/operations/provider-request-signing.backend.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, createHmac } from 'node:crypto';\n\nimport { ProviderRestSigningScheme, type ProviderRestRequestSigning } from '@wildo-ai/external-connectors-models';\n\nimport type { HttpApiTransportRequest } from '~wildo-backend-lib/base-classes/services/repositories/http-api/http-api-transport.backend';\n\n/**\n * Per-request request signing — the credential a vendor COMPUTES rather than reads (#373).\n *\n * Signing is the LAST thing that happens to a request, and that ordering is not a preference: a\n * signature covers the bytes. The method, the canonical path, the sorted query, the payload hash and\n * a subset of the headers are all inputs, so anything that edits the request after signing — adding\n * a header, re-encoding a body, appending a query parameter — invalidates it, and the vendor answers\n * a 403 that names nothing.\n *\n * There is NO vendor branch here. The scheme is a contract field and this dispatches on it\n * exhaustively, the same discipline the rest of the provider lane keeps.\n *\n * ## Why the failures are named\n *\n * A signature that is wrong is rejected identically however it was wrong: AWS answers\n * `SignatureDoesNotMatch` whether the region was wrong, the service was wrong, the clock was skewed\n * or the secret was stale. Those are four different remedies and one message, so the conditions this\n * code CAN see — a missing credential, a clock far from the vendor's, an unsupported request shape —\n * are reported here with their own words rather than left to become an opaque vendor rejection.\n */\n\nexport class ProviderRequestSigningError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ProviderRequestSigningError';\n }\n}\n\n/** The two-or-three values a signing scheme needs, resolved from the environment by the caller. */\nexport interface ProviderSigningCredentials {\n readonly keyId: string;\n readonly secretKey: string;\n readonly sessionToken?: string;\n /** Overrides the declaration's region when a deployment names its own. */\n readonly region?: string;\n}\n\n/**\n * The clock tolerance every one of these schemes shares.\n *\n * AWS rejects a request whose `X-Amz-Date` is more than five minutes from its own clock, and Azure\n * uses fifteen. This is not enforced here — only the vendor knows its clock — but the number is what\n * makes a skew diagnosable: a host drifting past it fails EVERY signed request while every unsigned\n * one succeeds, which is a confusing symptom until someone names it.\n * spec-cite: AWS General Reference, \"Elements of an AWS API request signature\" — the five-minute\n * window is stated there; the Azure figure is from \"Authorize with Shared Key\".\n */\nconst SIGNATURE_CLOCK_TOLERANCE_MINUTES = 5;\n\nexport interface SignProviderRequestInput {\n readonly request: HttpApiTransportRequest;\n readonly signing: ProviderRestRequestSigning;\n readonly credentials: ProviderSigningCredentials;\n /** Injected so a test can pin a signature against a published vector. */\n readonly now?: Date;\n}\n\n/** Returns the request with its signature headers added. Never mutates the input. */\nexport function signProviderRequest(input: SignProviderRequestInput): HttpApiTransportRequest {\n const { signing } = input;\n switch (signing.scheme) {\n case ProviderRestSigningScheme.AWS_SIGV4:\n return signAwsSigV4(input);\n case ProviderRestSigningScheme.AZURE_SHARED_KEY:\n return signAzureSharedKey(input);\n default: {\n const exhaustive: never = signing.scheme;\n return exhaustive;\n }\n }\n}\n\n/**\n * AWS Signature Version 4.\n *\n * spec-cite: AWS General Reference, \"Create a signed AWS API request\" — the canonical request, the\n * string to sign, the derived key chain and the Authorization header are all defined there.\n *\n * The payload hash is computed over the body EXACTLY as it will be sent, and an empty body hashes to\n * the SHA-256 of the empty string rather than being omitted — a distinction that costs one line and,\n * got wrong, makes every GET fail with a message about a signature mismatch.\n */\nfunction signAwsSigV4(input: SignProviderRequestInput): HttpApiTransportRequest {\n const { request, signing, credentials } = input;\n const region = credentials.region ?? signing.region;\n const service = signing.service;\n if (region === undefined || service === undefined) {\n throw new ProviderRequestSigningError(\n 'AWS SigV4 needs both a region and a service: they scope the DERIVED KEY, so a wrong or absent value fails '\n + `authentication rather than routing. Declare them on the provider's requestSigning block (region: ${region ?? 'unset'}, service: ${service ?? 'unset'}).`,\n );\n }\n\n const url = new URL(request.url);\n const now = input.now ?? new Date();\n const amzDate = `${now.toISOString().replace(/[-:]/g, '').slice(0, 15)}Z`;\n const dateStamp = amzDate.slice(0, 8);\n\n const payload = bodyToPayload(request.body);\n const payloadHash = createHash('sha256').update(payload).digest('hex');\n\n // `host` is required in the signature and is not in the request's own headers — the transport adds\n // it. Signing what will actually be sent means adding it here, in the same order the canonical\n // form demands.\n const headersToSign: Record<string, string> = {\n host: url.host,\n 'x-amz-date': amzDate,\n ...(credentials.sessionToken === undefined ? {} : { 'x-amz-security-token': credentials.sessionToken }),\n ...(request.body === undefined ? {} : { 'content-type': request.headers['Content-Type'] ?? request.headers['content-type'] ?? 'application/json' }),\n };\n const signedHeaderNames = Object.keys(headersToSign).map((name) => name.toLowerCase()).sort();\n const canonicalHeaders = signedHeaderNames\n .map((name) => `${name}:${collapseWhitespace(headersToSign[name] ?? headersToSign[Object.keys(headersToSign).find((key) => key.toLowerCase() === name)!]!)}\\n`)\n .join('');\n const signedHeaders = signedHeaderNames.join(';');\n\n const canonicalRequest = [\n request.method,\n canonicalUri(url.pathname),\n canonicalQuery(url.searchParams),\n canonicalHeaders,\n signedHeaders,\n payloadHash,\n ].join('\\n');\n\n const scope = `${dateStamp}/${region}/${service}/aws4_request`;\n const stringToSign = [\n 'AWS4-HMAC-SHA256',\n amzDate,\n scope,\n createHash('sha256').update(canonicalRequest).digest('hex'),\n ].join('\\n');\n\n const signingKey = ['aws4_request'].reduce(\n (key, step) => hmac(key, step),\n [region, service].reduce((key, step) => hmac(key, step), hmac(`AWS4${credentials.secretKey}`, dateStamp)),\n );\n const signature = hmac(signingKey, stringToSign).toString('hex');\n\n return {\n ...request,\n headers: {\n ...request.headers,\n 'X-Amz-Date': amzDate,\n ...(credentials.sessionToken === undefined ? {} : { 'X-Amz-Security-Token': credentials.sessionToken }),\n 'X-Amz-Content-Sha256': payloadHash,\n Authorization: `AWS4-HMAC-SHA256 Credential=${credentials.keyId}/${scope}, SignedHeaders=${signedHeaders}, Signature=${signature}`,\n },\n };\n}\n\n/**\n * Azure Storage shared key.\n *\n * spec-cite: Azure Storage REST, \"Authorize with Shared Key\" — the canonicalized headers and\n * canonicalized resource, and the `SharedKey <account>:<signature>` header, are defined there.\n *\n * Deliberately the FULL scheme rather than SharedKeyLite: the two differ in which fields the string\n * to sign carries, and a service that expects one rejects the other with the same opaque message a\n * wrong key produces.\n */\nfunction signAzureSharedKey(input: SignProviderRequestInput): HttpApiTransportRequest {\n const { request, credentials } = input;\n const url = new URL(request.url);\n const now = input.now ?? new Date();\n const date = now.toUTCString();\n const payload = bodyToPayload(request.body);\n const contentLength = payload.length === 0 ? '' : String(payload.length);\n const contentType = request.headers['Content-Type'] ?? request.headers['content-type'] ?? '';\n\n const canonicalizedHeaders = `x-ms-date:${date}\\nx-ms-version:2021-12-02\\n`;\n const canonicalizedResource = [\n `/${credentials.keyId}${canonicalUri(url.pathname)}`,\n ...[...url.searchParams.keys()]\n .map((key) => key.toLowerCase())\n .sort()\n .map((key) => `${key}:${url.searchParams.getAll(key).sort().join(',')}`),\n ].join('\\n');\n\n const stringToSign = [\n request.method,\n '', // Content-Encoding\n '', // Content-Language\n contentLength,\n '', // Content-MD5\n contentType,\n '', // Date — empty because x-ms-date is used instead\n '', // If-Modified-Since\n '', // If-Match\n '', // If-None-Match\n '', // If-Unmodified-Since\n '', // Range\n canonicalizedHeaders + canonicalizedResource,\n ].join('\\n');\n\n const signature = createHmac('sha256', Buffer.from(credentials.secretKey, 'base64')).update(stringToSign, 'utf8').digest('base64');\n\n return {\n ...request,\n headers: {\n ...request.headers,\n 'x-ms-date': date,\n 'x-ms-version': '2021-12-02',\n Authorization: `SharedKey ${credentials.keyId}:${signature}`,\n },\n };\n}\n\n/**\n * The canonical URI: each path segment URI-encoded, and the encoding applied ONCE for most services.\n * S3 is the documented exception (it does not double-encode), and since every service this contract\n * reaches declares its own `service`, the single-encoding form is what is implemented — the double\n * encoding other services expect is a documented difference, not a bug, and belongs with the first\n * provider that needs it rather than guessed at now.\n */\nfunction canonicalUri(pathname: string): string {\n if (pathname === '') return '/';\n return pathname\n .split('/')\n .map((segment) => encodeURIComponent(decodeURIComponent(segment)).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`))\n .join('/');\n}\n\n/** Sorted by name then value, each component encoded, joined — the canonical query string. */\nfunction canonicalQuery(params: URLSearchParams): string {\n const pairs: Array<[string, string]> = [];\n params.forEach((value, key) => pairs.push([key, value]));\n return pairs\n .map(([key, value]) => [encodeRfc3986(key), encodeRfc3986(value)] as const)\n .sort((left, right) => (left[0] === right[0] ? left[1].localeCompare(right[1]) : left[0].localeCompare(right[0])))\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n}\n\nfunction encodeRfc3986(value: string): string {\n return encodeURIComponent(value).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`);\n}\n\nfunction collapseWhitespace(value: string): string {\n return value.trim().replace(/\\s+/g, ' ');\n}\n\nfunction hmac(key: string | Buffer, data: string): Buffer {\n return createHmac('sha256', key).update(data, 'utf8').digest();\n}\n\n/** The bytes that will actually be sent, as a string — what the payload hash must cover. */\nfunction bodyToPayload(body: HttpApiTransportRequest['body']): string {\n if (body === undefined) return '';\n if (typeof body === 'string') return body;\n return JSON.stringify(body);\n}\n\n/** Exported for the diagnostic that names a clock skew rather than letting it read as a bad key. */\nexport const PROVIDER_SIGNATURE_CLOCK_TOLERANCE_MINUTES = SIGNATURE_CLOCK_TOLERANCE_MINUTES;\n"]}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * `ProviderRestCallClient` — the BINDING-FREE wire client for provider operations (S3a, #331).
3
+ *
4
+ * `HttpApiReadClient` is constructed per resource BINDING and reads `binding.remoteCallSemantics`,
5
+ * `binding.providerRef` and `binding.entityRef`. A provider operation has none of those: it is
6
+ * addressed by `(providerRef, operationId)` and belongs to no resource. So this is a sibling, not
7
+ * a subclass and not a widening of that class — widening it would have meant giving every ETL
8
+ * consumer a binding-shaped hole to work around.
9
+ *
10
+ * What is NOT duplicated is everything that matters: the transport, the rate budget and the
11
+ * provider-access resolver are the SAME modules the read client uses. This class owns only the
12
+ * three facts that differ — whose semantics apply, which rate window is drawn from, and that
13
+ * there is no dialect framing to do because the operation declared its own request.
14
+ *
15
+ * The single-authority drift pin (`http-api-read-client.single-authority.test.ts`) knows about
16
+ * this second invoker BY NAME; adding a third reddens it.
17
+ */
18
+ import type { ExternalProvider_ConnectionTarget } from '@wildo-ai/external-connectors-models';
19
+ import type { ProviderRestCallSemantics } from '@wildo-ai/external-connectors-models';
20
+ import type { ExecutionContext } from '../../runtime/models/execution-context.backend.schemas';
21
+ import { type HttpApiFetchLike, type HttpApiTransportRequest, type HttpApiTransportResponse } from '../../base-classes/services/repositories/http-api/http-api-transport.backend';
22
+ import type { HttpApiProviderAccess, HttpApiProviderAccessResolver } from '../../base-classes/services/repositories/http-api/http-api-provider-access.backend';
23
+ /**
24
+ * The semantics a provider gets when it declares none. Chosen to be unremarkable rather than
25
+ * clever: a 30s ceiling is longer than any interactive request should take and short enough that
26
+ * a hung vendor does not hold a connection for a request lifetime, and two attempts on a
27
+ * retry-safe call absorb a single transient without turning one user action into a burst.
28
+ */
29
+ export declare const DEFAULT_PROVIDER_REST_CALL_SEMANTICS: ProviderRestCallSemantics;
30
+ export declare class ProviderRestCallClient {
31
+ private readonly providerRef;
32
+ private readonly semantics;
33
+ private readonly providerAccessResolver;
34
+ private readonly fetchImpl;
35
+ private readonly rateBudget;
36
+ constructor(providerRef: string, semantics: ProviderRestCallSemantics, providerAccessResolver: HttpApiProviderAccessResolver, fetchImpl?: HttpApiFetchLike);
37
+ /**
38
+ * WHOSE ACCOUNT this call spends, through the same port the ETL lane uses.
39
+ *
40
+ * The target is an argument rather than something read from the execution context, and that is
41
+ * the whole point: one execution may legitimately spend several tenants' accounts — a single user
42
+ * action pushing to every organization that user belongs to — so an ambient answer could not vary
43
+ * where it has to. The context still decides whether the execution MAY act for the named owner.
44
+ */
45
+ resolveAccess(target: ExternalProvider_ConnectionTarget, executionContext: ExecutionContext<any>): Promise<HttpApiProviderAccess>;
46
+ /**
47
+ * One call, under this provider's semantics unless the operation narrowed them.
48
+ *
49
+ * SIGNING HAPPENS HERE, and it is the last thing done to the request before it leaves. A signature
50
+ * covers the bytes — method, canonical path, sorted query, payload hash, a subset of headers — so
51
+ * anything that edits the request afterwards invalidates it and the vendor answers a 403 that
52
+ * names nothing. Signing at the send site is the only placement where nothing can follow.
53
+ */
54
+ execute(request: HttpApiTransportRequest, semanticsOverride?: Partial<ProviderRestCallSemantics>, access?: HttpApiProviderAccess): Promise<HttpApiTransportResponse>;
55
+ }
56
+ //# sourceMappingURL=provider-rest-call-client.backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-rest-call-client.backend.d.ts","sourceRoot":"","sources":["../../../../../src/external-providers/operations/provider-rest-call-client.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAC5G,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,2FAA2F,CAAC;AAGnG,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,iGAAiG,CAAC;AAEzG;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,yBAGlD,CAAC;AAEF,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAG5B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,yBAAyB,EACpC,sBAAsB,EAAE,6BAA6B,EACrD,SAAS,GAAE,gBAAsC;IAOpE;;;;;;;OAOG;IACI,aAAa,CAClB,MAAM,EAAE,iCAAiC,EACzC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAIjC;;;;;;;OAOG;IACU,OAAO,CAClB,OAAO,EAAE,uBAAuB,EAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,EACtD,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;CAYrC"}