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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1056) hide show
  1. package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
  2. package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/test-container.d.ts.map +1 -1
  5. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
  7. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  8. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  9. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  11. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  12. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  13. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  15. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -1
  19. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +12 -1
  21. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  23. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  24. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  26. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  27. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  29. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  30. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  31. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  36. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +13 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +17 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  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.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +57 -0
  61. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +95 -2
  63. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  66. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  68. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +14 -3
  70. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  74. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  75. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  76. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  77. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  78. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  80. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  81. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  83. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  86. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  88. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  92. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  95. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +44 -6
  96. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -1
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -1
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -1
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -1
  105. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -1
  106. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -1
  107. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  108. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  109. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +1 -1
  110. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -1
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +5 -4
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -1
  113. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  114. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  115. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  116. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  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.map +1 -1
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  121. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -1
  122. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -1
  123. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  124. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  125. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  127. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  128. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +32 -0
  129. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  130. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +32 -1
  131. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  133. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  135. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  137. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  139. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +9 -6
  140. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  141. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +9 -6
  142. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  143. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -1
  144. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -1
  145. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  146. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  148. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +50 -3
  149. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  150. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  151. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  152. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  153. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  154. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  155. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  156. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  157. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  158. package/dist/esm/companion-exports.d.ts.map +1 -1
  159. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  160. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  161. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  162. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  164. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  166. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +107 -4
  168. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +176 -5
  170. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  172. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  174. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  177. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -1
  179. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  180. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +21 -0
  181. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  182. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  183. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  185. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  186. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  187. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/compliance/index.d.ts.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  190. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  191. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  194. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  196. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  197. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  198. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  200. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  201. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.d.ts +4 -4
  203. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  204. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  205. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  207. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  208. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  209. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  210. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  211. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  212. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  213. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  214. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  215. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  216. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration-loader.backend.service.js +3 -0
  218. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  219. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  220. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  221. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  222. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  223. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +12 -0
  224. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  225. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +28 -0
  226. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  227. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  228. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  229. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  230. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  231. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  232. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  233. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  234. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  235. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  236. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  237. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  238. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  239. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  240. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  241. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  243. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  244. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  245. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  246. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  247. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  248. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  249. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  250. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  251. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  252. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  253. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  254. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  255. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  256. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  257. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  258. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  259. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  260. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  261. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  262. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  264. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  265. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  266. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  267. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  268. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  269. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  270. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  271. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  272. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  273. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  274. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  275. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  276. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  277. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  278. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  279. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  280. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  281. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  282. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  283. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  284. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  285. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  286. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  287. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  288. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  289. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  290. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  291. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  292. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  293. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  294. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  295. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  296. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  297. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  298. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  299. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  300. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  301. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  302. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  303. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  304. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  305. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  306. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  307. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  308. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  309. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  310. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  311. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  313. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  314. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  316. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  317. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  318. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +102 -52
  319. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -1
  320. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +117 -71
  321. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -1
  322. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -1
  323. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -1
  324. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -1
  325. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +26 -7
  326. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -1
  327. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -1
  328. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -1
  329. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  330. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  331. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -1
  332. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -1
  333. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  334. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  335. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  336. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  337. package/dist/esm/external-providers/services/document-extraction.backend.service.js +179 -98
  338. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  339. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  340. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  341. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  342. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +121 -0
  343. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  344. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +151 -0
  345. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  346. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  347. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  348. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +60 -4
  349. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  350. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  351. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  352. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  353. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  354. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  355. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  356. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  357. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  358. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  359. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  360. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  361. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  363. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  364. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  365. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  366. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  367. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  368. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  369. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  370. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  371. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  372. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  373. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +221 -21
  374. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  375. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  376. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  377. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  378. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  379. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  380. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  381. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  382. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  383. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  384. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  385. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  386. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  387. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  388. package/dist/esm/files/services/file-scanning.backend.service.js +5 -0
  389. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  390. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  391. package/dist/esm/files/services/file-text-extraction.backend.service.js +8 -5
  392. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  393. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  394. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  395. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  396. package/dist/esm/files/services/files.backend.service.js +3 -1
  397. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  398. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  399. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -1
  400. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -1
  401. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  402. package/dist/esm/files/storage/file-storage-provider.types.d.ts +36 -1
  403. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  404. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  405. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  406. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  407. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  408. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  409. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  410. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  411. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  412. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  413. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  414. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  415. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  416. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  417. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  418. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  419. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  420. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  421. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  422. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  423. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  424. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  425. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  426. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  427. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  428. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  429. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  430. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -1
  431. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -1
  432. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  433. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  437. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  439. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  440. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  442. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  444. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  445. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  446. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  447. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  448. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  450. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  451. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  452. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  453. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  455. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  457. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  458. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  459. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  461. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  462. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  464. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +107 -16
  465. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  466. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +118 -18
  467. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  468. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  470. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -1
  471. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -1
  472. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  473. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  474. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  475. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  476. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  477. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +104 -5
  478. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  479. package/dist/esm/flows-actors/services/agents.backend.service.js +263 -31
  480. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  481. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  482. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +46 -1
  483. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  484. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +193 -6
  485. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  486. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  487. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  488. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  489. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  490. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  491. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  492. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +3 -0
  494. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -1
  495. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  496. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  497. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  498. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  499. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  500. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  502. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  503. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  504. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  505. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  506. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +9 -0
  507. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  508. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  509. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  510. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  511. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  512. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  514. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  516. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  517. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  518. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  519. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  520. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  522. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  523. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  524. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  525. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  526. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  527. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  528. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  529. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  530. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  531. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  532. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -1
  533. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -1
  534. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  535. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  536. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  537. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  538. package/dist/esm/index.d.ts +0 -1
  539. package/dist/esm/index.d.ts.map +1 -1
  540. package/dist/esm/index.js +0 -1
  541. package/dist/esm/index.js.map +1 -1
  542. package/dist/esm/inject/models/container.d.ts +10 -0
  543. package/dist/esm/inject/models/container.d.ts.map +1 -1
  544. package/dist/esm/inject/models/container.js +49 -1
  545. package/dist/esm/inject/models/container.js.map +1 -1
  546. package/dist/esm/inject/models/service-types.d.ts +3 -0
  547. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  548. package/dist/esm/inject/models/service-types.js +3 -0
  549. package/dist/esm/inject/models/service-types.js.map +1 -1
  550. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  551. package/dist/esm/mcp/controllers/mcp.controller.js +50 -3
  552. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  553. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  555. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  556. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  557. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  558. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  559. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  560. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  561. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  562. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  563. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  564. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  565. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -1
  566. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -1
  567. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  568. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  569. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  570. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  571. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  572. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  573. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  574. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  575. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  576. package/dist/esm/monitoring/logger/services/logger.service.js +3 -3
  577. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  578. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -1
  579. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -1
  580. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  581. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +10 -6
  582. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -1
  583. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +10 -6
  584. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -1
  585. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  586. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  587. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  588. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  589. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  590. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  591. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  592. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  593. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  594. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  595. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  596. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  597. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  599. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  600. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  601. package/dist/esm/notifications/email/services/email.backend.service.d.ts +47 -6
  602. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  603. package/dist/esm/notifications/email/services/email.backend.service.js +86 -36
  604. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  605. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  606. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  607. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  608. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  609. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  610. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  611. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  612. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  613. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  614. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  615. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  616. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  617. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  618. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  619. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  620. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  621. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  622. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  623. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  624. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  625. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  626. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  627. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  628. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  629. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  630. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  631. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  632. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  633. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  634. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  635. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  636. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  637. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  638. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  639. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  640. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  641. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  642. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  644. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  645. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  646. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  647. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  648. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  649. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  650. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  651. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  652. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  653. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  655. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  656. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  657. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  658. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  659. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  660. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  661. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  662. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -1
  663. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -1
  664. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -1
  665. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -1
  666. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -1
  667. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -1
  668. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -1
  669. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -1
  670. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  671. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  672. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  673. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  674. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  675. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  676. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  677. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  678. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  679. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  680. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  681. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  682. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  683. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  684. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  685. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  686. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  687. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  688. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  689. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  690. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  691. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  692. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  693. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  694. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  695. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  696. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  697. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  698. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  699. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  700. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  701. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  702. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  703. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  704. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  705. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  706. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  707. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  708. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  709. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  710. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  711. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  712. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  713. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  714. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  715. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  716. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  717. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  718. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  719. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  720. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  721. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  722. package/dist/esm/requests/service/websocket.service.js +49 -1
  723. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  724. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  725. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  726. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +2 -0
  727. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  728. package/dist/esm/resources/models/index.d.ts.map +1 -1
  729. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  730. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  731. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  732. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  733. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  734. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  735. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  736. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  737. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  738. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  739. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  740. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  741. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  742. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  743. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  744. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +23 -0
  745. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  746. package/dist/esm/resources/services/resources-registry.backend.service.js +31 -0
  747. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  748. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  749. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  750. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  751. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  752. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  753. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  754. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  755. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  756. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  757. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  758. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  759. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  760. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  761. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  762. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  763. package/dist/esm/runtime/services/http-server.backend.service.js +10 -0
  764. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  765. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  766. package/dist/esm/runtime/services/start-application.backend.service.js +26 -12
  767. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  768. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  769. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  770. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  771. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  772. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  773. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  774. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  775. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  776. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  777. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  778. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  780. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  782. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +84 -0
  784. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  787. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  788. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  792. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  793. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  794. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  795. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  796. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  798. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  799. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  801. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  803. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  804. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  805. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  807. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  808. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  811. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  814. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  815. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  816. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  817. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  820. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  821. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +9 -2
  822. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  823. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +9 -2
  824. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  825. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  826. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  827. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  829. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  830. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  833. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  834. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  835. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  836. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +218 -26
  837. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  838. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  839. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  840. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +36 -0
  841. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  842. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  843. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  844. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  845. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  846. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  847. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  848. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  849. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  850. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  851. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  852. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  853. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  854. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  855. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  856. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  857. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  859. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
  860. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +57 -1
  861. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
  862. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  863. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  864. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  865. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  866. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  867. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  868. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  869. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  870. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  871. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  872. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  873. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  874. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  875. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  876. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  877. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  878. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  879. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  880. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  881. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  882. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  883. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  884. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  885. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  886. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  887. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  888. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  889. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  890. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  891. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  892. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  893. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  894. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  895. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  896. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  897. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  898. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  899. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  900. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  901. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  902. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  903. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  904. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  905. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  906. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  907. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  908. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  909. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  910. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  911. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -1
  913. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -1
  914. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  915. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  916. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  917. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  918. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  919. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  920. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +20 -181
  921. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  922. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  924. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  925. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  926. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +40 -0
  927. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -1
  928. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +43 -1
  929. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -1
  930. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +27 -17
  931. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  932. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +27 -17
  933. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  934. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +72 -0
  935. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  936. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +153 -10
  937. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  938. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  939. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  940. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -1
  941. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -1
  942. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +139 -1
  943. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -1
  944. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +474 -33
  945. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -1
  946. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +40 -0
  947. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -1
  948. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -1
  949. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -1
  950. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -1
  951. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +19 -0
  952. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -1
  953. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +38 -0
  954. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -1
  955. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  956. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -1
  957. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -1
  958. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +17 -1
  959. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -1
  960. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +14 -0
  961. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -1
  962. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +16 -0
  963. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -1
  964. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -1
  965. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +1 -1
  966. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -1
  967. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +19 -0
  968. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -1
  969. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +45 -2
  970. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -1
  971. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  972. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -1
  973. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +37 -1
  974. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -1
  975. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -1
  976. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -1
  977. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -1
  978. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -1
  979. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -1
  980. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  981. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  982. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  983. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  984. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  985. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  986. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  987. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  988. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  989. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  990. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  991. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  992. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  994. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  995. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  996. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  997. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  999. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1000. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1001. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1002. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1003. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1004. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1005. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1006. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1007. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1008. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1009. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1010. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1011. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1012. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1013. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1014. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1015. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1017. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1019. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1020. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1021. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1022. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1023. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -1
  1024. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -1
  1025. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1026. package/dist/esm/testing.d.ts.map +1 -1
  1027. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1028. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1029. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1030. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -1
  1031. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -1
  1032. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1033. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1034. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1035. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1036. package/package.json +9 -9
  1037. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1038. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1039. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1040. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1041. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -0
  1042. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -0
  1043. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -0
  1044. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -0
  1045. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -0
  1046. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -0
  1047. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -0
  1048. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -0
  1049. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -0
  1050. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -0
  1051. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -0
  1052. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -0
  1053. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -0
  1054. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -0
  1055. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -0
  1056. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.custom-ops.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,4GAA4G,CAAC;AAQpH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,IAAI,0CAA0C,CAiEzF;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,IAAI,0CAA0C,CA4FxF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,IAAI,0CAA0C,CAkB7F;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,IAAI,0CAA0C,CAmBjG"}
1
+ {"version":3,"file":"promotion.custom-ops.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,4GAA4G,CAAC;AAQpH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,IAAI,0CAA0C,CAiEzF;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,IAAI,0CAA0C,CA4FxF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,IAAI,0CAA0C,CAkB7F;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,IAAI,0CAA0C,CAmBjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.custom-ops.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../../src/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Promotion Custom Operations — CREATE (prefix), APPLY (replace), DEACTIVATE (prefix)\n *\n * Promotions are APPLICATION-scoped (not polymorphic) — 1 factory per operation.\n *\n * CREATE: PREFIX syncs coupon to billing provider → core CREATE writes to DB with provider IDs\n * APPLY: REPLACE validates the promotion and reports its discount. No standard CRUD equivalent,\n * and it records NO redemption — completion does (see the factory's docstring).\n * DEACTIVATE: PREFIX returns { isActive: false } → core UPDATE writes to DB\n *\n * @see billing-polymorphic-full-implementation.md §4.6.3 + §4.6.4 + §4.6.5\n */\n\nimport {\n CoreResourceType,\n ResourceOperationVariantType,\n CoreResourceOperation,\n ErrorType,\n ErrorCustomMessageReference,\n PromotionType,\n DiscountType,\n PromotionDuration,\n Promotion_Operations,\n} from '@wildo-ai/saas-models';\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { getBillingProvider } from '~wildo-backend-lib/billing/services/custom-impl/billing-custom-implementations.backend';\n\n// ════════════════════════════════════════════════════════════════════\n// CREATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create Promotion CREATE prefix factory.\n *\n * Syncs the coupon (and optionally promotion code) to the billing provider\n * before the core CREATE writes to DB. Augments input with provider IDs.\n *\n * Registered on `INTERNAL_CALL` — the variant the resource configuration actually declares\n * for CREATE. Same drift class as the billing-account CREATE prefix: authored against\n * `REPOSITORY_ONLY`, orphaned once the configured variant moved, and silent because custom\n * implementations resolve by an EXACT operation-path key embedding `variantType`. Orphaned,\n * the promotion row is persisted with no `providerCouponId` / `providerPromotionId`, and\n * OPEN_CHECKOUT later rejects it as \"not synced to billing provider\". Pinned by\n * `billing-custom-impl-operation-path-coherence.test.ts`.\n */\nexport function createPromotionCreateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: CoreResourceOperation.CREATE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n // L5: Validate discount fields match the declared discountType\n if (input.discountType === DiscountType.PERCENTAGE && (input.discountPercentage === undefined || input.discountPercentage === null)) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { reason: 'discountPercentage is required for PERCENTAGE discount type' },\n });\n }\n if (input.discountType === DiscountType.FIXED_AMOUNT && !input.discountFixedAmount) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { reason: 'discountFixedAmount is required for FIXED_AMOUNT discount type' },\n });\n }\n\n const durationMap: Record<string, 'once' | 'repeating' | 'forever'> = {\n [PromotionDuration.ONCE]: 'once',\n [PromotionDuration.REPEATING]: 'repeating',\n [PromotionDuration.FOREVER]: 'forever',\n };\n\n // H1: Provider sync must succeed — throw on failure\n const provider = getBillingProvider();\n const couponResult = await provider.createCoupon({\n ...(input.discountType === DiscountType.PERCENTAGE && { percentOff: input.discountPercentage }),\n ...(input.discountType === DiscountType.FIXED_AMOUNT && input.discountFixedAmount && {\n amountOff: Number(input.discountFixedAmount.amount),\n currency: input.discountFixedAmount.currency,\n }),\n duration: durationMap[input.duration] ?? 'once',\n ...(input.durationInMonths && { durationInMonths: input.durationInMonths }),\n ...(input.maxRedemptions && { maxRedemptions: input.maxRedemptions }),\n ...(input.metadata && { metadata: input.metadata }),\n });\n const providerCouponId = couponResult.providerCouponId;\n\n let providerPromotionId: string | undefined;\n if (input.type === PromotionType.PROMOTION_CODE && input.code && providerCouponId) {\n const promoResult = await provider.createPromotionCode(providerCouponId, input.code);\n providerPromotionId = promoResult.providerPromotionId;\n }\n\n return {\n ...input,\n providerCouponId,\n providerPromotionId,\n isActive: true,\n timesRedeemed: 0,\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// APPLY — REPLACE_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create Promotion APPLY replace factory.\n *\n * VALIDATES the promotion and returns its discount info. It records NOTHING.\n *\n * The redemption is counted when the purchase COMPLETES — `handleCheckoutCompleted`, behind the\n * durable settlement claim — because entering a code is not redeeming one. See the block where the\n * increment used to be for the full reasoning, including why leaving it here would double-count.\n *\n * The docstring here previously said \"the caller (typically OPEN_CHECKOUT)\". `OPEN_CHECKOUT` has\n * never called this verb: it re-validates a supplied code inline. This is a CLIENT-facing verb, for\n * a purchase form that wants to show the discount before the customer commits.\n */\nexport function createPromotionApplyFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: Promotion_Operations.APPLY,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n handlers: {\n replaceCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const promotion = utils.currentObject;\n\n // Validate promotion is active\n if (!promotion.isActive) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Promotion is not active' },\n });\n }\n\n // Validate date range\n const now = new Date();\n if (promotion.validFrom && now < new Date(promotion.validFrom)) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Promotion has not started yet' },\n });\n }\n if (promotion.validUntil && now > new Date(promotion.validUntil)) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Promotion has expired' },\n });\n }\n\n // Validate max redemptions\n if (promotion.maxRedemptions !== null && promotion.maxRedemptions !== undefined) {\n if ((promotion.timesRedeemed ?? 0) >= promotion.maxRedemptions) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Maximum redemptions reached' },\n });\n }\n }\n\n // Validate code match (when the promotion has a code)\n if (promotion.code && input.code !== promotion.code) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Code does not match' },\n });\n }\n\n /*\n * COUNTS NOTHING, and that is the change (#518 follow-up).\n *\n * This used to increment `timesRedeemed` here, guarded by the cap. It was the only place\n * a redemption was ever counted, and it counted at the WRONG MOMENT — this verb runs when\n * a customer types a code into a purchase form, which is not a redemption. A customer who\n * types a code and closes the tab consumed one anyway, so a limited campaign was exhausted\n * by window-shoppers.\n *\n * A redemption is now counted exactly where the money moves: the\n * `checkout.session.completed` webhook, behind the durable settlement claim that makes the\n * count exactly-once across replicas and retries. Leaving the increment here as well would\n * double-count every customer who used this verb and then completed the purchase — the two\n * are two views of ONE redemption, not two redemptions.\n *\n * The cap check above stays, because it is what makes this verb answer honestly: an\n * exhausted code must be refused at the moment it is entered, not silently accepted and\n * then refused at completion when the customer has already paid.\n */\n\n // Return discount info for the caller\n return {\n valid: true,\n promotionId: _id,\n providerCouponId: promotion.providerCouponId,\n providerPromotionId: promotion.providerPromotionId,\n discount: {\n type: promotion.discountType,\n ...(promotion.discountType === DiscountType.PERCENTAGE && { percentage: promotion.discountPercentage }),\n ...(promotion.discountType === DiscountType.FIXED_AMOUNT && { amount: promotion.discountFixedAmount }),\n },\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// DEACTIVATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create Promotion DEACTIVATE prefix factory.\n *\n * Trivially returns { isActive: false } — core UPDATE writes to DB.\n *\n * The operation declares `requestDto: z.object({})` (single) / `{ _ids }` (bulk), so `isActive`\n * can ONLY arrive from here. Before that narrowing the verb inherited the resource's full update\n * contract — including `isActive` itself, so \"deactivate\" could re-activate — and this return was\n * MERGED onto the caller payload rather than replacing it, leaving `code`, `discountPercentage`\n * and `maxRedemptions` writable through a route named deactivate.\n */\nexport function createPromotionDeactivateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: Promotion_Operations.DEACTIVATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async () => {\n return { isActive: false };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * Create Promotion DEACTIVATE prefix factory — BULK companion (`haveBulkOperation: true`).\n *\n * A bulk companion is a SEPARATE operation variant with its own path key (`isOperationDefault:\n * false` + `isBulkOperation: true`), so it needs its own registration: the single-row factory\n * above does not cover it. The bulk contract is `{ _ids }` and `_ids` is not a persisted field,\n * so without this handler the route would validate a list of promotion ids and write nothing.\n */\nexport function createPromotionDeactivateBulkFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: Promotion_Operations.DEACTIVATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: false,\n isBulkOperation: true,\n },\n handlers: {\n prefixCoreOperations: async () => {\n return { isActive: false };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n"]}
1
+ {"version":3,"file":"promotion.custom-ops.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../src/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,qBAAqB,EACrB,SAAS,EACT,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yCAAyC,GAE1C,MAAM,4GAA4G,CAAC;AAEpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wFAAwF,CAAC;AAE5H,uEAAuE;AACvE,kCAAkC;AAClC,uEAAuE;AAEvE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,4BAA4B;IAC1C,MAAM,OAAO,GAAG,CAAC,yBAA0D,EAAE,EAAE;QAC7E,OAAO,yCAAyC,CAAC;YAC/C,aAAa,EAAE;gBACb,kBAAkB,EAAE,gBAAgB,CAAC,UAAU;gBAC/C,mBAAmB,EAAE,qBAAqB,CAAC,MAAM;gBACjD,WAAW,EAAE,4BAA4B,CAAC,aAAa;gBACvD,kBAAkB,EAAE,IAAI;aACzB;YACD,QAAQ,EAAE;gBACR,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;oBAClF,+DAA+D;oBAC/D,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC,EAAE,CAAC;wBACpI,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE;4BAC1E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;4BAC7E,OAAO,EAAE,EAAE,MAAM,EAAE,6DAA6D,EAAE;yBACnF,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;wBACnF,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE;4BAC1E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;4BAC7E,OAAO,EAAE,EAAE,MAAM,EAAE,gEAAgE,EAAE;yBACtF,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,WAAW,GAAqD;wBACpE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM;wBAChC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,WAAW;wBAC1C,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS;qBACvC,CAAC;oBAEF,oDAAoD;oBACpD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;oBACtC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;wBAC/C,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;wBAC/F,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,mBAAmB,IAAI;4BACnF,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC;4BACnD,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,QAAQ;yBAC7C,CAAC;wBACF,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM;wBAC/C,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;wBAC3E,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;wBACrE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;qBACpD,CAAC,CAAC;oBACH,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;oBAEvD,IAAI,mBAAuC,CAAC;oBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,IAAI,gBAAgB,EAAE,CAAC;wBAClF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBACrF,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,CAAC;oBACxD,CAAC;oBAED,OAAO;wBACL,GAAG,KAAK;wBACR,gBAAgB;wBAChB,mBAAmB;wBACnB,QAAQ,EAAE,IAAI;wBACd,aAAa,EAAE,CAAC;qBACjB,CAAC;gBACJ,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,OAAgE,CAAC;AAC1E,CAAC;AAED,uEAAuE;AACvE,kCAAkC;AAClC,uEAAuE;AAEvE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,OAAO,GAAG,CAAC,yBAA0D,EAAE,EAAE;QAC7E,OAAO,yCAAyC,CAAC;YAC/C,aAAa,EAAE;gBACb,kBAAkB,EAAE,gBAAgB,CAAC,UAAU;gBAC/C,mBAAmB,EAAE,oBAAoB,CAAC,KAAK;gBAC/C,WAAW,EAAE,4BAA4B,CAAC,QAAQ;gBAClD,kBAAkB,EAAE,IAAI;aACzB;YACD,QAAQ,EAAE;gBACR,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;oBACnF,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;oBAEtC,+BAA+B;oBAC/B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;wBACxB,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE;4BAC7E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;4BAC7E,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,yBAAyB,EAAE;yBACjE,CAAC,CAAC;oBACL,CAAC;oBAED,sBAAsB;oBACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,IAAI,SAAS,CAAC,SAAS,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/D,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE;4BAC7E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;4BAC7E,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,+BAA+B,EAAE;yBACvE,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,SAAS,CAAC,UAAU,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjE,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE;4BAC7E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;4BAC7E,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,uBAAuB,EAAE;yBAC/D,CAAC,CAAC;oBACL,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,SAAS,CAAC,cAAc,KAAK,IAAI,IAAI,SAAS,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;wBAChF,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;4BAC/D,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE;gCAC7E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;gCAC7E,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,6BAA6B,EAAE;6BACrE,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,sDAAsD;oBACtD,IAAI,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACpD,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE;4BAC7E,sBAAsB,EAAE,2BAA2B,CAAC,yBAAyB;4BAC7E,OAAO,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,EAAE;yBAC7D,CAAC,CAAC;oBACL,CAAC;oBAED;;;;;;;;;;;;;;;;;;uBAkBG;oBAEH,sCAAsC;oBACtC,OAAO;wBACL,KAAK,EAAE,IAAI;wBACX,WAAW,EAAE,GAAG;wBAChB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;wBAC5C,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;wBAClD,QAAQ,EAAE;4BACR,IAAI,EAAE,SAAS,CAAC,YAAY;4BAC5B,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,kBAAkB,EAAE,CAAC;4BACvG,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,YAAY,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,mBAAmB,EAAE,CAAC;yBACvG;qBACF,CAAC;gBACJ,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,OAAgE,CAAC;AAC1E,CAAC;AAED,uEAAuE;AACvE,sCAAsC;AACtC,uEAAuE;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC;IAC9C,MAAM,OAAO,GAAG,CAAC,yBAA0D,EAAE,EAAE;QAC7E,OAAO,yCAAyC,CAAC;YAC/C,aAAa,EAAE;gBACb,kBAAkB,EAAE,gBAAgB,CAAC,UAAU;gBAC/C,mBAAmB,EAAE,oBAAoB,CAAC,UAAU;gBACpD,WAAW,EAAE,4BAA4B,CAAC,QAAQ;gBAClD,kBAAkB,EAAE,IAAI;aACzB;YACD,QAAQ,EAAE;gBACR,oBAAoB,EAAE,KAAK,IAAI,EAAE;oBAC/B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAC7B,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,OAAgE,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC;IAClD,MAAM,OAAO,GAAG,CAAC,yBAA0D,EAAE,EAAE;QAC7E,OAAO,yCAAyC,CAAC;YAC/C,aAAa,EAAE;gBACb,kBAAkB,EAAE,gBAAgB,CAAC,UAAU;gBAC/C,mBAAmB,EAAE,oBAAoB,CAAC,UAAU;gBACpD,WAAW,EAAE,4BAA4B,CAAC,QAAQ;gBAClD,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,IAAI;aACtB;YACD,QAAQ,EAAE;gBACR,oBAAoB,EAAE,KAAK,IAAI,EAAE;oBAC/B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAC7B,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,OAAgE,CAAC;AAC1E,CAAC","sourcesContent":["/**\n * Promotion Custom Operations — CREATE (prefix), APPLY (replace), DEACTIVATE (prefix)\n *\n * Promotions are APPLICATION-scoped (not polymorphic) — 1 factory per operation.\n *\n * CREATE: PREFIX syncs coupon to billing provider → core CREATE writes to DB with provider IDs\n * APPLY: REPLACE validates the promotion and reports its discount. No standard CRUD equivalent,\n * and it records NO redemption — completion does (see the factory's docstring).\n * DEACTIVATE: PREFIX returns { isActive: false } → core UPDATE writes to DB\n *\n * @see billing-polymorphic-full-implementation.md §4.6.3 + §4.6.4 + §4.6.5\n */\n\nimport {\n CoreResourceType,\n ResourceOperationVariantType,\n CoreResourceOperation,\n ErrorType,\n ErrorCustomMessageReference,\n PromotionType,\n DiscountType,\n PromotionDuration,\n Promotion_Operations,\n} from '@wildo-ai/saas-models';\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { getBillingProvider } from '~wildo-backend-lib/billing/services/custom-impl/billing-custom-implementations.backend';\n\n// ════════════════════════════════════════════════════════════════════\n// CREATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create Promotion CREATE prefix factory.\n *\n * Syncs the coupon (and optionally promotion code) to the billing provider\n * before the core CREATE writes to DB. Augments input with provider IDs.\n *\n * Registered on `INTERNAL_CALL` — the variant the resource configuration actually declares\n * for CREATE. Same drift class as the billing-account CREATE prefix: authored against\n * `REPOSITORY_ONLY`, orphaned once the configured variant moved, and silent because custom\n * implementations resolve by an EXACT operation-path key embedding `variantType`. Orphaned,\n * the promotion row is persisted with no `providerCouponId` / `providerPromotionId`, and\n * OPEN_CHECKOUT later rejects it as \"not synced to billing provider\". Pinned by\n * `billing-custom-impl-operation-path-coherence.test.ts`.\n */\nexport function createPromotionCreateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: CoreResourceOperation.CREATE,\n variantType: ResourceOperationVariantType.INTERNAL_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n // L5: Validate discount fields match the declared discountType\n if (input.discountType === DiscountType.PERCENTAGE && (input.discountPercentage === undefined || input.discountPercentage === null)) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { reason: 'discountPercentage is required for PERCENTAGE discount type' },\n });\n }\n if (input.discountType === DiscountType.FIXED_AMOUNT && !input.discountFixedAmount) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { reason: 'discountFixedAmount is required for FIXED_AMOUNT discount type' },\n });\n }\n\n const durationMap: Record<string, 'once' | 'repeating' | 'forever'> = {\n [PromotionDuration.ONCE]: 'once',\n [PromotionDuration.REPEATING]: 'repeating',\n [PromotionDuration.FOREVER]: 'forever',\n };\n\n // H1: Provider sync must succeed — throw on failure\n const provider = getBillingProvider();\n const couponResult = await provider.createCoupon({\n ...(input.discountType === DiscountType.PERCENTAGE && { percentOff: input.discountPercentage }),\n ...(input.discountType === DiscountType.FIXED_AMOUNT && input.discountFixedAmount && {\n amountOff: Number(input.discountFixedAmount.amount),\n currency: input.discountFixedAmount.currency,\n }),\n duration: durationMap[input.duration] ?? 'once',\n ...(input.durationInMonths && { durationInMonths: input.durationInMonths }),\n ...(input.maxRedemptions && { maxRedemptions: input.maxRedemptions }),\n ...(input.metadata && { metadata: input.metadata }),\n });\n const providerCouponId = couponResult.providerCouponId;\n\n let providerPromotionId: string | undefined;\n if (input.type === PromotionType.PROMOTION_CODE && input.code && providerCouponId) {\n const promoResult = await provider.createPromotionCode(providerCouponId, input.code);\n providerPromotionId = promoResult.providerPromotionId;\n }\n\n return {\n ...input,\n providerCouponId,\n providerPromotionId,\n isActive: true,\n timesRedeemed: 0,\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// APPLY — REPLACE_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create Promotion APPLY replace factory.\n *\n * VALIDATES the promotion and returns its discount info. It records NOTHING.\n *\n * The redemption is counted when the purchase COMPLETES — `handleCheckoutCompleted`, behind the\n * durable settlement claim — because entering a code is not redeeming one. See the block where the\n * increment used to be for the full reasoning, including why leaving it here would double-count.\n *\n * The docstring here previously said \"the caller (typically OPEN_CHECKOUT)\". `OPEN_CHECKOUT` has\n * never called this verb: it re-validates a supplied code inline. This is a CLIENT-facing verb, for\n * a purchase form that wants to show the discount before the customer commits.\n */\nexport function createPromotionApplyFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: Promotion_Operations.APPLY,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n handlers: {\n replaceCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const promotion = utils.currentObject;\n\n // Validate promotion is active\n if (!promotion.isActive) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Promotion is not active' },\n });\n }\n\n // Validate date range\n const now = new Date();\n if (promotion.validFrom && now < new Date(promotion.validFrom)) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Promotion has not started yet' },\n });\n }\n if (promotion.validUntil && now > new Date(promotion.validUntil)) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Promotion has expired' },\n });\n }\n\n // Validate max redemptions\n if (promotion.maxRedemptions !== null && promotion.maxRedemptions !== undefined) {\n if ((promotion.timesRedeemed ?? 0) >= promotion.maxRedemptions) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Maximum redemptions reached' },\n });\n }\n }\n\n // Validate code match (when the promotion has a code)\n if (promotion.code && input.code !== promotion.code) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PROMOTION_INVALID,\n context: { promotionId: _id, reason: 'Code does not match' },\n });\n }\n\n /*\n * COUNTS NOTHING, and that is the change (#518 follow-up).\n *\n * This used to increment `timesRedeemed` here, guarded by the cap. It was the only place\n * a redemption was ever counted, and it counted at the WRONG MOMENT — this verb runs when\n * a customer types a code into a purchase form, which is not a redemption. A customer who\n * types a code and closes the tab consumed one anyway, so a limited campaign was exhausted\n * by window-shoppers.\n *\n * A redemption is now counted exactly where the money moves: the\n * `checkout.session.completed` webhook, behind the durable settlement claim that makes the\n * count exactly-once across replicas and retries. Leaving the increment here as well would\n * double-count every customer who used this verb and then completed the purchase — the two\n * are two views of ONE redemption, not two redemptions.\n *\n * The cap check above stays, because it is what makes this verb answer honestly: an\n * exhausted code must be refused at the moment it is entered, not silently accepted and\n * then refused at completion when the customer has already paid.\n */\n\n // Return discount info for the caller\n return {\n valid: true,\n promotionId: _id,\n providerCouponId: promotion.providerCouponId,\n providerPromotionId: promotion.providerPromotionId,\n discount: {\n type: promotion.discountType,\n ...(promotion.discountType === DiscountType.PERCENTAGE && { percentage: promotion.discountPercentage }),\n ...(promotion.discountType === DiscountType.FIXED_AMOUNT && { amount: promotion.discountFixedAmount }),\n },\n };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// DEACTIVATE — PREFIX_CORE_OPERATIONS\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create Promotion DEACTIVATE prefix factory.\n *\n * Trivially returns { isActive: false } — core UPDATE writes to DB.\n *\n * The operation declares `requestDto: z.object({})` (single) / `{ _ids }` (bulk), so `isActive`\n * can ONLY arrive from here. Before that narrowing the verb inherited the resource's full update\n * contract — including `isActive` itself, so \"deactivate\" could re-activate — and this return was\n * MERGED onto the caller payload rather than replacing it, leaving `code`, `discountPercentage`\n * and `maxRedemptions` writable through a route named deactivate.\n */\nexport function createPromotionDeactivateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: Promotion_Operations.DEACTIVATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async () => {\n return { isActive: false };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * Create Promotion DEACTIVATE prefix factory — BULK companion (`haveBulkOperation: true`).\n *\n * A bulk companion is a SEPARATE operation variant with its own path key (`isOperationDefault:\n * false` + `isBulkOperation: true`), so it needs its own registration: the single-row factory\n * above does not cover it. The bulk contract is `{ _ids }` and `_ids` is not a persisted field,\n * so without this handler the route would validate a list of promotion ids and write nothing.\n */\nexport function createPromotionDeactivateBulkFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.PROMOTIONS,\n operationIdentifier: Promotion_Operations.DEACTIVATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: false,\n isBulkOperation: true,\n },\n handlers: {\n prefixCoreOperations: async () => {\n return { isActive: false };\n },\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.mutations.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiBH,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,4GAA4G,CAAC;AA8CpH,wBAAgB,iCAAiC,IAAI,0CAA0C,EAAE,CA0FhG;AAMD;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,IAAI,0CAA0C,EAAE,CAwChG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,IAAI,0CAA0C,EAAE,CA0HpG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,IAAI,0CAA0C,EAAE,CAoFlG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,IAAI,0CAA0C,EAAE,CAmDrG"}
1
+ {"version":3,"file":"subscription.mutations.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiBH,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,4GAA4G,CAAC;AA8CpH,wBAAgB,iCAAiC,IAAI,0CAA0C,EAAE,CA0FhG;AAMD;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,IAAI,0CAA0C,EAAE,CAwChG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,IAAI,0CAA0C,EAAE,CA0HpG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,IAAI,0CAA0C,EAAE,CAoFlG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,IAAI,0CAA0C,EAAE,CAmDrG"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.mutations.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../../src/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Subscription Mutations Custom Implementations\n *\n * Implements CANCEL, RESUME, CHANGE_PLAN, ADD_ADDON, REMOVE_ADDON operations\n * on subscription polymorphic variants.\n *\n * Pattern: PREFIX_CORE_OPERATIONS\n * PREFIX → validate, call billing provider (Stripe), return update payload\n * CORE → standard UPDATE (engine handles DB write)\n * Feature sync is handled automatically by the post-operation hook infrastructure.\n *\n * One factory per polymorphic variant (org, user) per operation.\n * All variants share the same handler logic.\n *\n * @see billing-polymorphic-full-implementation.md §4.2 + §4.3\n */\n\nimport {\n CoreResourceType,\n ResourceOperationVariantType,\n SubscriptionStatus,\n ErrorType,\n ErrorCustomMessageReference,\n ProductType,\n ProrationBehavior,\n BillingTiming,\n BillingSubscription_Operations,\n BillingSubscription_CancelRequestDto,\n BillingSubscription_ChangePlanRequestDto,\n BillingSubscription_AddAddonRequestDto,\n BillingSubscription_RemoveAddonRequestDto,\n} from '@wildo-ai/saas-models';\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { getBillingProvider, getBillingConfig } from '~wildo-backend-lib/billing/services/custom-impl/billing-custom-implementations.backend';\nimport {\n BillingCatalogReadIntent,\n readProductByKey,\n readProductById,\n readPriceById,\n readPriceForProduct,\n validateProviderSubscription,\n resolveProviderItems,\n} from '~wildo-backend-lib/billing/services/custom-impl/billing-custom-impl-utils.backend';\n\n// ── Subscription polymorphic variant types ───────────────────────────\n\nconst SUBSCRIPTION_VARIANT_TYPES = [\n CoreResourceType.ORGANIZATION_SUBSCRIPTIONS,\n CoreResourceType.USER_SUBSCRIPTIONS,\n] as const;\n\n/**\n * The subscription item carrying the PLAN, or `null` when a subscription holds only addons.\n *\n * A subscription's items are a plan plus any addons, and three places in this file needed to find\n * the plan among them — the change-plan path, the addon plan-tier gate, and now the cancellation\n * policy (#408). Each had its own inline loop. One helper because \"which item is the plan\" is a\n * single question with a single answer, and three copies is how the fourth one comes to differ.\n */\nasync function resolvePlanItem(\n subscription: { items: Array<{ productId: string }> },\n executionContext: Parameters<typeof readProductById>[1],\n utils: Parameters<typeof readProductById>[2],\n): Promise<{ productId: string } | null> {\n for (const item of subscription.items) {\n const itemProduct = await readProductById(item.productId, executionContext, utils);\n if (itemProduct.type === ProductType.PLAN) {\n return item;\n }\n }\n return null;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// CANCEL\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSubscriptionCancelFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.CANCEL,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_CancelRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n /*\n * `ProductBehaviorPolicy.cancellation` now governs this operation (#408, decided\n * 2026-09-08). Until then it was read by NOTHING: timing came solely from the caller's\n * `cancelImmediately` flag, so a product declaring that immediate cancellation is not\n * allowed could not refuse one — and Wonder Todos authors `allowImmediate: false` on\n * BOTH plans, unenforced.\n *\n * Two distinct things come from the policy, and conflating them was the trap:\n * - `allowImmediate` is a REFUSAL. A caller who asks for immediate cancellation\n * against a product that forbids it gets a 409, not a silent downgrade to\n * period-end. Silently honouring the safer timing would tell the caller their\n * subscription had ended when it has not, which is worse than refusing.\n * - `defaultBehavior` decides the timing when the caller expresses NO preference.\n * `cancelImmediately` is optional on the request DTO, so \"absent\" is a real state\n * and is where an authored default belongs.\n *\n * The policy is read from the subscription's PLAN product, resolved the same way the\n * change-plan path above resolves it. An addon does not carry the cancellation policy\n * of the subscription it rides on.\n */\n const planItem = await resolvePlanItem(subscription, executionContext, utils);\n const planProduct = planItem\n ? await readProductById(planItem.productId, executionContext, utils)\n : null;\n const cancellationPolicy = planProduct?.behaviorPolicy?.cancellation;\n\n const requestedImmediate = input.cancelImmediately;\n if (requestedImmediate === true && cancellationPolicy?.allowImmediate === false) {\n throw utils.errorBuilder.buildError(ErrorType.CONFLICT, executionContext, {\n customMessageReference: ErrorCustomMessageReference.CONFLICT,\n context: {\n reason: 'billing_product_forbids_immediate_cancellation',\n message: 'This plan does not allow immediate cancellation; it can only be cancelled at the end of the current period.',\n productKey: planProduct?.key,\n },\n });\n }\n\n /*\n * Absent preference resolves down a chain, most specific first: the caller, the plan\n * product's own default, the application's `defaultCancellation`, then period-end.\n *\n * The application-level step is what makes `billing.defaultBehaviorPolicy.defaultCancellation`\n * mean something. It was dead alongside its neighbours, and it is BOUND rather than\n * relabelled because — unlike grace periods and retry counts, which are dunning settings\n * living at the provider — cancellation timing is resolved locally. The only thing\n * standing between that key and an effect was a reader.\n *\n * Period-end is the floor because it never ends access a customer has already paid for.\n */\n const resolvedTiming = cancellationPolicy?.defaultBehavior\n ?? getBillingConfig().defaultBehaviorPolicy?.defaultCancellation;\n const cancelImmediately = requestedImmediate\n ?? (resolvedTiming === BillingTiming.IMMEDIATE);\n const atPeriodEnd = !cancelImmediately;\n\n const provider = getBillingProvider();\n await provider.cancelSubscription(subscription.providerSubscriptionId, { atPeriodEnd });\n\n return {\n cancelAtPeriodEnd: atPeriodEnd,\n cancelledAt: new Date(),\n ...(!atPeriodEnd && { status: SubscriptionStatus.CANCELLED }),\n ...(input.reason && { cancellationReason: input.reason }),\n };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// RESUME\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create RESUME custom impl factories for all subscription variants.\n *\n * RESUME un-cancels a subscription that has cancelAtPeriodEnd = true.\n * PREFIX: validates subscription is pending cancellation, calls provider resumeSubscription()\n * CORE: standard UPDATE clears cancellation fields\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionResumeFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.RESUME,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, _input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n if (!subscription.cancelAtPeriodEnd) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_NO_ACTIVE_SUBSCRIPTION,\n context: { subscriptionId: _id, reason: 'Subscription is not pending cancellation' },\n });\n }\n\n const provider = getBillingProvider();\n await provider.resumeSubscription(subscription.providerSubscriptionId);\n\n return {\n cancelAtPeriodEnd: false,\n cancelledAt: null,\n cancellationReason: null,\n status: SubscriptionStatus.ACTIVE,\n };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// CHANGE_PLAN\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create CHANGE_PLAN custom impl factories for all subscription variants.\n *\n * CHANGE_PLAN upgrades or downgrades the subscription plan.\n * PREFIX: resolves new product/price, determines proration, builds provider items,\n * calls provider updateSubscription(), returns update payload with new items\n * CORE: standard UPDATE writes new items to DB\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionChangePlanFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.CHANGE_PLAN,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_ChangePlanRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n // ACQUIRE: the subscription is being moved ONTO this product.\n const newProduct = await readProductByKey(input.newProductKey, BillingCatalogReadIntent.ACQUIRE, executionContext, utils);\n // The price MUST belong to the product being switched to. These were resolved\n // independently, so pairing a premium `newProductKey` with a cheap `newPriceId` billed the\n // provider the cheap price while the local item — and every entitlement derived from\n // `item.productId` — recorded the premium product.\n const newPrice = await readPriceForProduct(input.newPriceId, newProduct, executionContext, utils);\n\n if (!newPrice.providerPriceId) {\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_NO_PROVIDER_PRICE,\n context: { priceId: input.newPriceId, productKey: input.newProductKey },\n });\n }\n\n // Find the current plan item (type === PLAN) and determine upgrade/downgrade\n const currentPlanItem = await resolvePlanItem(subscription, executionContext, utils);\n const planItemIndex = currentPlanItem ? subscription.items.indexOf(currentPlanItem as typeof subscription.items[number]) : -1;\n\n // Build provider items: replace plan item, preserve addons\n const providerItems: Array<{ providerSubscriptionItemId?: string; providerPriceId: string; quantity: number }> = [];\n const localItems: Array<any> = [];\n\n for (let i = 0; i < subscription.items.length; i++) {\n if (i === planItemIndex) {\n providerItems.push({\n providerSubscriptionItemId: subscription.items[i].providerSubscriptionItemId,\n providerPriceId: newPrice.providerPriceId,\n quantity: 1,\n });\n localItems.push({\n _id: subscription.items[i]._id,\n productId: newProduct._id,\n priceId: newPrice._id,\n quantity: 1,\n });\n } else {\n const price = await readPriceById(subscription.items[i].priceId, executionContext, utils);\n providerItems.push({\n providerSubscriptionItemId: subscription.items[i].providerSubscriptionItemId,\n providerPriceId: price.providerPriceId || subscription.items[i].priceId,\n quantity: subscription.items[i].quantity,\n });\n localItems.push(subscription.items[i]);\n }\n }\n\n // If no plan item found, prepend the new plan\n if (planItemIndex === -1) {\n providerItems.unshift({ providerPriceId: newPrice.providerPriceId, quantity: 1 });\n localItems.unshift({\n _id: `${subscription.providerSubscriptionId}_item_plan`,\n productId: newProduct._id,\n priceId: newPrice._id,\n quantity: 1,\n });\n }\n\n // Determine proration from product behavior policy\n const currentProduct = planItemIndex >= 0\n ? await readProductById(subscription.items[planItemIndex].productId, executionContext, utils)\n : null;\n const isUpgrade = currentProduct\n ? (newProduct.planTierOrder ?? 0) > (currentProduct.planTierOrder ?? 0)\n : true;\n const config = getBillingConfig();\n const policy = isUpgrade\n ? (newProduct.behaviorPolicy?.upgrade ?? { proration: config.defaultBehaviorPolicy.defaultProration, timing: BillingTiming.IMMEDIATE })\n : (newProduct.behaviorPolicy?.downgrade ?? { proration: ProrationBehavior.NONE, timing: BillingTiming.AT_PERIOD_END });\n\n const provider = getBillingProvider();\n await provider.updateSubscription(subscription.providerSubscriptionId, {\n items: providerItems,\n /*\n * The resolved proration, as a REQUEST FIELD (#516).\n *\n * It was `metadata.prorationBehavior` until 2026-09-08 — a free-form key/value bag the\n * provider stores and never reads — so this policy was correctly resolved from the target\n * product's `upgrade`/`downgrade` block and then discarded at the boundary. A product\n * declaring `ProrationBehavior.NONE` for a downgrade was prorated anyway, by the\n * provider's account default. Wonder Todos authors exactly that.\n */\n prorationBehavior: policy.proration,\n metadata: {\n /*\n * TIMING remains metadata, and that is honest rather than an oversight: a provider's\n * proration parameter says HOW a change settles, not WHEN it applies. Deferring a\n * change to the period end needs a subscription schedule, which is a different call and\n * a different mechanism — so `prorationTiming` is still carried for a connector that\n * grows one, and still changes nothing today. Do not read this field's presence as the\n * timing being honoured.\n */\n prorationTiming: policy.timing,\n },\n });\n\n return { items: localItems };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// ADD_ADDON\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create ADD_ADDON custom impl factories for all subscription variants.\n *\n * ADD_ADDON adds an addon product to the existing subscription.\n * PREFIX: validates addon product (type, requiredPlanTiers), builds provider items,\n * calls provider updateSubscription(), returns update payload with expanded items\n * CORE: standard UPDATE writes new items to DB\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionAddAddonFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.ADD_ADDON,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_AddAddonRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n // Resolve addon product and validate\n // ACQUIRE: an add-on is being bought.\n const addonProduct = await readProductByKey(input.addonProductKey, BillingCatalogReadIntent.ACQUIRE, executionContext, utils);\n if (addonProduct.type !== ProductType.ADDON) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_INVALID_PRODUCT_TYPE,\n context: { productKey: input.addonProductKey, expectedType: ProductType.ADDON, actualType: addonProduct.type },\n });\n }\n\n // Validate requiredPlanTiers\n if (addonProduct.requiredPlanTiers && addonProduct.requiredPlanTiers.length > 0) {\n const planItemForTier = await resolvePlanItem(subscription, executionContext, utils);\n const currentPlanTier = planItemForTier\n ? (await readProductById(planItemForTier.productId, executionContext, utils)).planTier\n : undefined;\n if (!currentPlanTier || !addonProduct.requiredPlanTiers.includes(currentPlanTier)) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PLAN_TIER_REQUIRED,\n context: { addonProductKey: input.addonProductKey, requiredTiers: addonProduct.requiredPlanTiers, currentTier: currentPlanTier ?? null },\n });\n }\n }\n\n // Resolve addon price — and prove it belongs to the addon product. Same defect shape as\n // CHANGE_PLAN: the addon's entitlements come from `addonProduct._id` on the local item\n // while the provider is billed `addonPrice.providerPriceId`.\n const addonPrice = await readPriceForProduct(input.priceId, addonProduct, executionContext, utils);\n if (!addonPrice.providerPriceId) {\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_NO_PROVIDER_PRICE,\n context: { priceId: input.priceId, productKey: input.addonProductKey },\n });\n }\n\n // Build provider items: existing items + new addon\n const existingProviderItems = await resolveProviderItems(subscription.items, executionContext, utils);\n existingProviderItems.push({\n providerPriceId: addonPrice.providerPriceId,\n quantity: 1,\n });\n\n const provider = getBillingProvider();\n await provider.updateSubscription(subscription.providerSubscriptionId, {\n items: existingProviderItems,\n });\n\n // Build local items with the new addon appended\n const newItems = [\n ...subscription.items,\n {\n _id: `${subscription.providerSubscriptionId}_item_${subscription.items.length}`,\n productId: addonProduct._id,\n priceId: addonPrice._id,\n quantity: 1,\n },\n ];\n\n return { items: newItems };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// REMOVE_ADDON\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create REMOVE_ADDON custom impl factories for all subscription variants.\n *\n * REMOVE_ADDON removes an addon product from the subscription.\n * PREFIX: finds addon item, builds remaining items, calls provider updateSubscription(),\n * returns update payload with remaining items\n * CORE: standard UPDATE writes remaining items to DB\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionRemoveAddonFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.REMOVE_ADDON,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_RemoveAddonRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n // Resolve addon product\n /*\n * REFERENCE, deliberately — the ONE site of the four that must not refuse a retired\n * product. This resolves the add-on the subscription ALREADY carries in order to drop\n * it, so gating it would trap a customer on the very add-on the catalogue withdrew.\n */\n const addonProduct = await readProductByKey(input.addonProductKey, BillingCatalogReadIntent.REFERENCE, executionContext, utils);\n\n // Find and remove the addon item\n const remainingItems = subscription.items.filter((item: any) => item.productId !== addonProduct._id);\n if (remainingItems.length === subscription.items.length) {\n throw utils.errorBuilder.buildError(ErrorType.NOT_FOUND, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_ADDON_NOT_ON_SUBSCRIPTION,\n context: { addonProductKey: input.addonProductKey, subscriptionId: _id },\n });\n }\n\n // Build provider items from remaining items\n const providerItems = await resolveProviderItems(remainingItems, executionContext, utils);\n\n const provider = getBillingProvider();\n await provider.updateSubscription(subscription.providerSubscriptionId, {\n items: providerItems,\n });\n\n return { items: remainingItems };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n"]}
1
+ {"version":3,"file":"subscription.mutations.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../src/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Subscription Mutations Custom Implementations\n *\n * Implements CANCEL, RESUME, CHANGE_PLAN, ADD_ADDON, REMOVE_ADDON operations\n * on subscription polymorphic variants.\n *\n * Pattern: PREFIX_CORE_OPERATIONS\n * PREFIX → validate, call billing provider (Stripe), return update payload\n * CORE → standard UPDATE (engine handles DB write)\n * Feature sync is handled automatically by the post-operation hook infrastructure.\n *\n * One factory per polymorphic variant (org, user) per operation.\n * All variants share the same handler logic.\n *\n * @see billing-polymorphic-full-implementation.md §4.2 + §4.3\n */\n\nimport {\n CoreResourceType,\n ResourceOperationVariantType,\n SubscriptionStatus,\n ErrorType,\n ErrorCustomMessageReference,\n ProductType,\n ProrationBehavior,\n BillingTiming,\n BillingSubscription_Operations,\n BillingSubscription_CancelRequestDto,\n BillingSubscription_ChangePlanRequestDto,\n BillingSubscription_AddAddonRequestDto,\n BillingSubscription_RemoveAddonRequestDto,\n} from '@wildo-ai/saas-models';\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport { getBillingProvider, getBillingConfig } from '~wildo-backend-lib/billing/services/custom-impl/billing-custom-implementations.backend';\nimport {\n BillingCatalogReadIntent,\n readProductByKey,\n readProductById,\n readPriceById,\n readPriceForProduct,\n validateProviderSubscription,\n resolveProviderItems,\n} from '~wildo-backend-lib/billing/services/custom-impl/billing-custom-impl-utils.backend';\n\n// ── Subscription polymorphic variant types ───────────────────────────\n\nconst SUBSCRIPTION_VARIANT_TYPES = [\n CoreResourceType.ORGANIZATION_SUBSCRIPTIONS,\n CoreResourceType.USER_SUBSCRIPTIONS,\n] as const;\n\n/**\n * The subscription item carrying the PLAN, or `null` when a subscription holds only addons.\n *\n * A subscription's items are a plan plus any addons, and three places in this file needed to find\n * the plan among them — the change-plan path, the addon plan-tier gate, and now the cancellation\n * policy (#408). Each had its own inline loop. One helper because \"which item is the plan\" is a\n * single question with a single answer, and three copies is how the fourth one comes to differ.\n */\nasync function resolvePlanItem(\n subscription: { items: Array<{ productId: string }> },\n executionContext: Parameters<typeof readProductById>[1],\n utils: Parameters<typeof readProductById>[2],\n): Promise<{ productId: string } | null> {\n for (const item of subscription.items) {\n const itemProduct = await readProductById(item.productId, executionContext, utils);\n if (itemProduct.type === ProductType.PLAN) {\n return item;\n }\n }\n return null;\n}\n\n// ════════════════════════════════════════════════════════════════════\n// CANCEL\n// ════════════════════════════════════════════════════════════════════\n\nexport function createSubscriptionCancelFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.CANCEL,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_CancelRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n /*\n * `ProductBehaviorPolicy.cancellation` now governs this operation (#408, decided\n * 2026-09-08). Until then it was read by NOTHING: timing came solely from the caller's\n * `cancelImmediately` flag, so a product declaring that immediate cancellation is not\n * allowed could not refuse one — and Wonder Todos authors `allowImmediate: false` on\n * BOTH plans, unenforced.\n *\n * Two distinct things come from the policy, and conflating them was the trap:\n * - `allowImmediate` is a REFUSAL. A caller who asks for immediate cancellation\n * against a product that forbids it gets a 409, not a silent downgrade to\n * period-end. Silently honouring the safer timing would tell the caller their\n * subscription had ended when it has not, which is worse than refusing.\n * - `defaultBehavior` decides the timing when the caller expresses NO preference.\n * `cancelImmediately` is optional on the request DTO, so \"absent\" is a real state\n * and is where an authored default belongs.\n *\n * The policy is read from the subscription's PLAN product, resolved the same way the\n * change-plan path above resolves it. An addon does not carry the cancellation policy\n * of the subscription it rides on.\n */\n const planItem = await resolvePlanItem(subscription, executionContext, utils);\n const planProduct = planItem\n ? await readProductById(planItem.productId, executionContext, utils)\n : null;\n const cancellationPolicy = planProduct?.behaviorPolicy?.cancellation;\n\n const requestedImmediate = input.cancelImmediately;\n if (requestedImmediate === true && cancellationPolicy?.allowImmediate === false) {\n throw utils.errorBuilder.buildError(ErrorType.CONFLICT, executionContext, {\n customMessageReference: ErrorCustomMessageReference.CONFLICT,\n context: {\n reason: 'billing_product_forbids_immediate_cancellation',\n message: 'This plan does not allow immediate cancellation; it can only be cancelled at the end of the current period.',\n productKey: planProduct?.key,\n },\n });\n }\n\n /*\n * Absent preference resolves down a chain, most specific first: the caller, the plan\n * product's own default, the application's `defaultCancellation`, then period-end.\n *\n * The application-level step is what makes `billing.defaultBehaviorPolicy.defaultCancellation`\n * mean something. It was dead alongside its neighbours, and it is BOUND rather than\n * relabelled because — unlike grace periods and retry counts, which are dunning settings\n * living at the provider — cancellation timing is resolved locally. The only thing\n * standing between that key and an effect was a reader.\n *\n * Period-end is the floor because it never ends access a customer has already paid for.\n */\n const resolvedTiming = cancellationPolicy?.defaultBehavior\n ?? getBillingConfig().defaultBehaviorPolicy?.defaultCancellation;\n const cancelImmediately = requestedImmediate\n ?? (resolvedTiming === BillingTiming.IMMEDIATE);\n const atPeriodEnd = !cancelImmediately;\n\n const provider = getBillingProvider();\n await provider.cancelSubscription(subscription.providerSubscriptionId, { atPeriodEnd });\n\n return {\n cancelAtPeriodEnd: atPeriodEnd,\n cancelledAt: new Date(),\n ...(!atPeriodEnd && { status: SubscriptionStatus.CANCELLED }),\n ...(input.reason && { cancellationReason: input.reason }),\n };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// RESUME\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create RESUME custom impl factories for all subscription variants.\n *\n * RESUME un-cancels a subscription that has cancelAtPeriodEnd = true.\n * PREFIX: validates subscription is pending cancellation, calls provider resumeSubscription()\n * CORE: standard UPDATE clears cancellation fields\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionResumeFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.RESUME,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n handlers: {\n prefixCoreOperations: async (_id, _input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n if (!subscription.cancelAtPeriodEnd) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_NO_ACTIVE_SUBSCRIPTION,\n context: { subscriptionId: _id, reason: 'Subscription is not pending cancellation' },\n });\n }\n\n const provider = getBillingProvider();\n await provider.resumeSubscription(subscription.providerSubscriptionId);\n\n return {\n cancelAtPeriodEnd: false,\n cancelledAt: null,\n cancellationReason: null,\n status: SubscriptionStatus.ACTIVE,\n };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// CHANGE_PLAN\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create CHANGE_PLAN custom impl factories for all subscription variants.\n *\n * CHANGE_PLAN upgrades or downgrades the subscription plan.\n * PREFIX: resolves new product/price, determines proration, builds provider items,\n * calls provider updateSubscription(), returns update payload with new items\n * CORE: standard UPDATE writes new items to DB\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionChangePlanFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.CHANGE_PLAN,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_ChangePlanRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n // ACQUIRE: the subscription is being moved ONTO this product.\n const newProduct = await readProductByKey(input.newProductKey, BillingCatalogReadIntent.ACQUIRE, executionContext, utils);\n // The price MUST belong to the product being switched to. These were resolved\n // independently, so pairing a premium `newProductKey` with a cheap `newPriceId` billed the\n // provider the cheap price while the local item — and every entitlement derived from\n // `item.productId` — recorded the premium product.\n const newPrice = await readPriceForProduct(input.newPriceId, newProduct, executionContext, utils);\n\n if (!newPrice.providerPriceId) {\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_NO_PROVIDER_PRICE,\n context: { priceId: input.newPriceId, productKey: input.newProductKey },\n });\n }\n\n // Find the current plan item (type === PLAN) and determine upgrade/downgrade\n const currentPlanItem = await resolvePlanItem(subscription, executionContext, utils);\n const planItemIndex = currentPlanItem ? subscription.items.indexOf(currentPlanItem as typeof subscription.items[number]) : -1;\n\n // Build provider items: replace plan item, preserve addons\n const providerItems: Array<{ providerSubscriptionItemId?: string; providerPriceId: string; quantity: number }> = [];\n const localItems: Array<any> = [];\n\n for (let i = 0; i < subscription.items.length; i++) {\n if (i === planItemIndex) {\n providerItems.push({\n providerSubscriptionItemId: subscription.items[i].providerSubscriptionItemId,\n providerPriceId: newPrice.providerPriceId,\n quantity: 1,\n });\n localItems.push({\n _id: subscription.items[i]._id,\n productId: newProduct._id,\n priceId: newPrice._id,\n quantity: 1,\n });\n } else {\n const price = await readPriceById(subscription.items[i].priceId, executionContext, utils);\n providerItems.push({\n providerSubscriptionItemId: subscription.items[i].providerSubscriptionItemId,\n providerPriceId: price.providerPriceId || subscription.items[i].priceId,\n quantity: subscription.items[i].quantity,\n });\n localItems.push(subscription.items[i]);\n }\n }\n\n // If no plan item found, prepend the new plan\n if (planItemIndex === -1) {\n providerItems.unshift({ providerPriceId: newPrice.providerPriceId, quantity: 1 });\n localItems.unshift({\n _id: `${subscription.providerSubscriptionId}_item_plan`,\n productId: newProduct._id,\n priceId: newPrice._id,\n quantity: 1,\n });\n }\n\n // Determine proration from product behavior policy\n const currentProduct = planItemIndex >= 0\n ? await readProductById(subscription.items[planItemIndex].productId, executionContext, utils)\n : null;\n const isUpgrade = currentProduct\n ? (newProduct.planTierOrder ?? 0) > (currentProduct.planTierOrder ?? 0)\n : true;\n const config = getBillingConfig();\n const policy = isUpgrade\n ? (newProduct.behaviorPolicy?.upgrade ?? { proration: config.defaultBehaviorPolicy.defaultProration, timing: BillingTiming.IMMEDIATE })\n : (newProduct.behaviorPolicy?.downgrade ?? { proration: ProrationBehavior.NONE, timing: BillingTiming.AT_PERIOD_END });\n\n const provider = getBillingProvider();\n await provider.updateSubscription(subscription.providerSubscriptionId, {\n items: providerItems,\n /*\n * The resolved proration, as a REQUEST FIELD (#516).\n *\n * It was `metadata.prorationBehavior` until 2026-09-08 — a free-form key/value bag the\n * provider stores and never reads — so this policy was correctly resolved from the target\n * product's `upgrade`/`downgrade` block and then discarded at the boundary. A product\n * declaring `ProrationBehavior.NONE` for a downgrade was prorated anyway, by the\n * provider's account default. Wonder Todos authors exactly that.\n */\n prorationBehavior: policy.proration,\n metadata: {\n /*\n * TIMING remains metadata, and that is honest rather than an oversight: a provider's\n * proration parameter says HOW a change settles, not WHEN it applies. Deferring a\n * change to the period end needs a subscription schedule, which is a different call and\n * a different mechanism — so `prorationTiming` is still carried for a connector that\n * grows one, and still changes nothing today. Do not read this field's presence as the\n * timing being honoured.\n */\n prorationTiming: policy.timing,\n },\n });\n\n return { items: localItems };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// ADD_ADDON\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create ADD_ADDON custom impl factories for all subscription variants.\n *\n * ADD_ADDON adds an addon product to the existing subscription.\n * PREFIX: validates addon product (type, requiredPlanTiers), builds provider items,\n * calls provider updateSubscription(), returns update payload with expanded items\n * CORE: standard UPDATE writes new items to DB\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionAddAddonFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.ADD_ADDON,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_AddAddonRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n // Resolve addon product and validate\n // ACQUIRE: an add-on is being bought.\n const addonProduct = await readProductByKey(input.addonProductKey, BillingCatalogReadIntent.ACQUIRE, executionContext, utils);\n if (addonProduct.type !== ProductType.ADDON) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_INVALID_PRODUCT_TYPE,\n context: { productKey: input.addonProductKey, expectedType: ProductType.ADDON, actualType: addonProduct.type },\n });\n }\n\n // Validate requiredPlanTiers\n if (addonProduct.requiredPlanTiers && addonProduct.requiredPlanTiers.length > 0) {\n const planItemForTier = await resolvePlanItem(subscription, executionContext, utils);\n const currentPlanTier = planItemForTier\n ? (await readProductById(planItemForTier.productId, executionContext, utils)).planTier\n : undefined;\n if (!currentPlanTier || !addonProduct.requiredPlanTiers.includes(currentPlanTier)) {\n throw utils.errorBuilder.buildError(ErrorType.BUSINESS_RULE, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_PLAN_TIER_REQUIRED,\n context: { addonProductKey: input.addonProductKey, requiredTiers: addonProduct.requiredPlanTiers, currentTier: currentPlanTier ?? null },\n });\n }\n }\n\n // Resolve addon price — and prove it belongs to the addon product. Same defect shape as\n // CHANGE_PLAN: the addon's entitlements come from `addonProduct._id` on the local item\n // while the provider is billed `addonPrice.providerPriceId`.\n const addonPrice = await readPriceForProduct(input.priceId, addonProduct, executionContext, utils);\n if (!addonPrice.providerPriceId) {\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_NO_PROVIDER_PRICE,\n context: { priceId: input.priceId, productKey: input.addonProductKey },\n });\n }\n\n // Build provider items: existing items + new addon\n const existingProviderItems = await resolveProviderItems(subscription.items, executionContext, utils);\n existingProviderItems.push({\n providerPriceId: addonPrice.providerPriceId,\n quantity: 1,\n });\n\n const provider = getBillingProvider();\n await provider.updateSubscription(subscription.providerSubscriptionId, {\n items: existingProviderItems,\n });\n\n // Build local items with the new addon appended\n const newItems = [\n ...subscription.items,\n {\n _id: `${subscription.providerSubscriptionId}_item_${subscription.items.length}`,\n productId: addonProduct._id,\n priceId: addonPrice._id,\n quantity: 1,\n },\n ];\n\n return { items: newItems };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n\n// ════════════════════════════════════════════════════════════════════\n// REMOVE_ADDON\n// ════════════════════════════════════════════════════════════════════\n\n/**\n * Create REMOVE_ADDON custom impl factories for all subscription variants.\n *\n * REMOVE_ADDON removes an addon product from the subscription.\n * PREFIX: finds addon item, builds remaining items, calls provider updateSubscription(),\n * returns update payload with remaining items\n * CORE: standard UPDATE writes remaining items to DB\n * (Feature sync handled by post-operation hook)\n */\nexport function createSubscriptionRemoveAddonFactories(): ResourceCustomServiceImplementationFactory[] {\n return SUBSCRIPTION_VARIANT_TYPES.map((variantResourceType) => {\n const factory = (_resourcesRegistryService: ResourcesRegistryBackendService) => {\n return createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: variantResourceType,\n operationIdentifier: BillingSubscription_Operations.REMOVE_ADDON,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n requestDtoSchema: BillingSubscription_RemoveAddonRequestDto,\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const subscription = utils.currentObject;\n validateProviderSubscription(subscription, _id!, executionContext, utils);\n\n // Resolve addon product\n /*\n * REFERENCE, deliberately — the ONE site of the four that must not refuse a retired\n * product. This resolves the add-on the subscription ALREADY carries in order to drop\n * it, so gating it would trap a customer on the very add-on the catalogue withdrew.\n */\n const addonProduct = await readProductByKey(input.addonProductKey, BillingCatalogReadIntent.REFERENCE, executionContext, utils);\n\n // Find and remove the addon item\n const remainingItems = subscription.items.filter((item: any) => item.productId !== addonProduct._id);\n if (remainingItems.length === subscription.items.length) {\n throw utils.errorBuilder.buildError(ErrorType.NOT_FOUND, executionContext, {\n customMessageReference: ErrorCustomMessageReference.BILLING_ADDON_NOT_ON_SUBSCRIPTION,\n context: { addonProductKey: input.addonProductKey, subscriptionId: _id },\n });\n }\n\n // Build provider items from remaining items\n const providerItems = await resolveProviderItems(remainingItems, executionContext, utils);\n\n const provider = getBillingProvider();\n await provider.updateSubscription(subscription.providerSubscriptionId, {\n items: providerItems,\n });\n\n return { items: remainingItems };\n },\n\n // Feature sync is handled automatically by the post-operation hook infrastructure\n },\n });\n };\n\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n });\n}\n"]}
@@ -40,12 +40,15 @@ export declare class StripeStandardBillingProvider implements StandardBilling_In
40
40
  /**
41
41
  * One page of the customer's invoices, newest first.
42
42
  *
43
- * `total` rather than `amount_paid`, deliberately, and it disagrees with what the webhook router
44
- * records for the same invoice. The router reads `amount_paid ?? total`, which is `0` for every
45
- * invoice that is finalized-but-unpaid — so an OPEN invoice lands locally at zero. That reading is
46
- * not corrected here (it is a separate finding on a separate write path); what this file
47
- * guarantees is that the two never fight, because the reconciliation sweep only ever INSERTS a
48
- * total and never updates one.
43
+ * `total` rather than `amount_paid`, deliberately — the local field is the invoice's TOTAL, and
44
+ * `amount_paid` is a different fact about money that has no home on that row.
45
+ *
46
+ * The webhook router used to disagree here: it read `amount_paid ?? total`, which is `0` for every
47
+ * invoice that is finalized-but-unpaid, so an OPEN invoice landed locally at zero. That was
48
+ * corrected on its own write path (2026-09-09) and both writers now read `total`. The structural
49
+ * guarantee is unchanged and is what makes the agreement safe rather than merely current: the
50
+ * reconciliation sweep only ever INSERTS a total and never updates one, so the two cannot fight
51
+ * over money on a tick even if they were to diverge again.
49
52
  *
50
53
  * An invoice whose Stripe status is not in {@link STRIPE_INVOICE_STATUS_MAP} is SKIPPED rather
51
54
  * than defaulted. A defaulted status is a wrong fact about money written into a durable row; an
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-standard-billing-provider.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/billing/services/stripe-standard-billing-provider.backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe-standard-billing-provider.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/billing/services/stripe-standard-billing-provider.backend.service.ts"],"names":[],"mappings":"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"}
@@ -351,12 +351,15 @@ export class StripeStandardBillingProvider {
351
351
  /**
352
352
  * One page of the customer's invoices, newest first.
353
353
  *
354
- * `total` rather than `amount_paid`, deliberately, and it disagrees with what the webhook router
355
- * records for the same invoice. The router reads `amount_paid ?? total`, which is `0` for every
356
- * invoice that is finalized-but-unpaid — so an OPEN invoice lands locally at zero. That reading is
357
- * not corrected here (it is a separate finding on a separate write path); what this file
358
- * guarantees is that the two never fight, because the reconciliation sweep only ever INSERTS a
359
- * total and never updates one.
354
+ * `total` rather than `amount_paid`, deliberately — the local field is the invoice's TOTAL, and
355
+ * `amount_paid` is a different fact about money that has no home on that row.
356
+ *
357
+ * The webhook router used to disagree here: it read `amount_paid ?? total`, which is `0` for every
358
+ * invoice that is finalized-but-unpaid, so an OPEN invoice landed locally at zero. That was
359
+ * corrected on its own write path (2026-09-09) and both writers now read `total`. The structural
360
+ * guarantee is unchanged and is what makes the agreement safe rather than merely current: the
361
+ * reconciliation sweep only ever INSERTS a total and never updates one, so the two cannot fight
362
+ * over money on a tick even if they were to diverge again.
360
363
  *
361
364
  * An invoice whose Stripe status is not in {@link STRIPE_INVOICE_STATUS_MAP} is SKIPPED rather
362
365
  * than defaulted. A defaulted status is a wrong fact about money written into a durable row; an