@wildo-ai/saas-models 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  2. package/dist/esm/_inspect.d.ts.map +1 -1
  3. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  4. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
  5. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/applications-context.schemas.d.ts +14 -10
  7. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  8. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  9. package/dist/esm/applications/applications.shared.resources-config.schemas.js +4 -3
  10. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  11. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  12. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  13. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  14. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +0 -4
  15. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  16. package/dist/esm/billing/billing-configuration.shared.schemas.js +59 -17
  17. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  18. package/dist/esm/billing/billing-enums.shared.schemas.d.ts +77 -21
  19. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  20. package/dist/esm/billing/billing-enums.shared.schemas.js +85 -23
  21. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  22. package/dist/esm/billing/billing-types.shared.schemas.d.ts +4 -3
  23. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  24. package/dist/esm/billing/billing-types.shared.schemas.js +45 -0
  25. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  26. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  27. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  28. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  29. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  30. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  31. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  32. package/dist/esm/billing/price.shared.schemas.js +7 -1
  33. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  34. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  35. package/dist/esm/billing/product-behavior-policy.shared.schemas.js +52 -11
  36. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  37. package/dist/esm/billing/product-definition.shared.schemas.d.ts +2 -2
  38. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  39. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +2 -2
  40. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  41. package/dist/esm/billing/product.shared.schemas.d.ts +2 -2
  42. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  43. package/dist/esm/billing/product.shared.schemas.js +7 -3
  44. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  45. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  46. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  47. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  48. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  49. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +1 -1
  50. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  51. package/dist/esm/billing/subscription.shared.resources-config.schemas.js +15 -1
  52. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  53. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  54. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  55. package/dist/esm/billing/usage-record.shared.schemas.d.ts +7 -3
  56. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  57. package/dist/esm/billing/usage-record.shared.schemas.js +22 -3
  58. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  59. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  60. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  61. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +71 -2
  62. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  63. package/dist/esm/companion/provider-discovery.shared.schemas.js +20 -1
  64. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  65. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
  66. package/dist/esm/companion-exports.d.ts.map +1 -1
  67. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +85 -0
  68. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -0
  69. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +157 -0
  70. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -0
  71. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  72. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  73. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +23 -0
  74. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  75. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +56 -0
  76. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  77. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +658 -26
  78. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  79. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +873 -27
  80. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  81. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  82. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +104 -3
  83. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  84. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
  85. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  86. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
  87. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +1 -1
  88. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
  89. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  90. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +54 -26
  91. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  92. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +132 -3
  93. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  94. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  95. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
  96. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
  97. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +17 -0
  98. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  99. package/dist/esm/compliance/privacy/privacy.shared.schemas.js +27 -4
  100. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  101. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +82 -29
  102. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  103. package/dist/esm/compliance/privacy/redaction.shared.schemas.js +95 -29
  104. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  105. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  106. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  107. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  108. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  109. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +12 -5
  110. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  111. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +21 -0
  112. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  113. package/dist/esm/config/analytics-value-moments.shared.schemas.js +20 -0
  114. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  115. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +7 -5
  116. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  117. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +8 -1
  118. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  119. package/dist/esm/config/auth-config-resolution.shared.utils.js +29 -0
  120. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  121. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
  122. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +95 -17
  123. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  124. package/dist/esm/config/entity-identity-config.shared.schemas.js +86 -8
  125. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  126. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +26 -26
  127. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  128. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts +139 -3
  129. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
  130. package/dist/esm/config/frontend/chart-registration-alignment.shared.js +151 -4
  131. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
  132. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  133. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  134. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
  135. package/dist/esm/config-authoring.entry.d.ts.map +1 -1
  136. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  137. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
  138. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +34 -0
  139. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  140. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +34 -0
  141. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  142. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  143. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  144. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  145. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +45 -12
  146. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  147. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  148. package/dist/esm/external-data.exports.d.ts.map +1 -1
  149. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
  150. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +110 -58
  151. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  152. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +183 -15
  153. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  154. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +15 -3
  155. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  156. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +32 -5
  157. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  158. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  159. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +87 -7
  160. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  161. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +59 -0
  162. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -0
  163. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +61 -0
  164. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -0
  165. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +97 -0
  166. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -0
  167. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +41 -0
  168. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -0
  169. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +205 -2
  170. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  171. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +85 -1
  172. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  173. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -0
  174. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -0
  175. package/dist/esm/external-providers/frontend-provider-public-config.shared.js +207 -0
  176. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -0
  177. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +5 -28
  178. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  179. package/dist/esm/external-providers/provider-capability.shared.schemas.js +4 -2
  180. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  181. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +28 -8
  182. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  183. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +15 -4
  184. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  185. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts +165 -0
  186. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -0
  187. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +39 -0
  188. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -0
  189. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +338 -0
  190. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -0
  191. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +332 -0
  192. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -0
  193. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +178 -9
  194. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  195. package/dist/esm/external-providers/provider-metadata.shared.schemas.js +181 -9
  196. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  197. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +7 -5
  198. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  199. package/dist/esm/external-providers/provider-protocol.shared.schemas.js +7 -5
  200. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  201. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts +40 -0
  202. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -0
  203. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js +80 -0
  204. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -0
  205. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  206. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  207. package/dist/esm/features/application-features.shared.resources-config.schemas.js +12 -0
  208. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  209. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  210. package/dist/esm/features/core-feature-definitions.shared.js +7 -1
  211. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  212. package/dist/esm/features/feature-builders.shared.d.ts +32 -0
  213. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  214. package/dist/esm/features/feature-builders.shared.js +32 -0
  215. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  216. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  217. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  218. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  220. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  221. package/dist/esm/features/user-features.shared.resources-config.schemas.js +12 -0
  222. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  223. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts +73 -0
  224. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -0
  225. package/dist/esm/files/file-remote-reference-link.shared.schemas.js +62 -0
  226. package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -0
  227. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts +14 -2
  228. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  229. package/dist/esm/files/file-upload-grant.shared.schemas.js +44 -5
  230. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  231. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  232. package/dist/esm/files/files.shared.schemas.d.ts +15 -8
  233. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  234. package/dist/esm/files/files.shared.schemas.js +15 -8
  235. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  236. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  237. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  238. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
  239. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
  240. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
  241. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/flows-actors/actors.shared.schemas.js +3 -2
  243. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  244. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  245. package/dist/esm/flows-actors/agents.shared.schemas.d.ts +54 -5
  246. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  247. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  248. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +1 -1
  249. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +1 -1
  250. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +0 -3
  251. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  252. package/dist/esm/flows-actors/deliberation.shared.schemas.js +0 -5
  253. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  254. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
  255. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +14 -0
  256. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  257. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +40 -3
  258. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  259. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
  260. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
  261. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +19 -0
  262. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  263. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +33 -0
  264. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  265. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  266. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  267. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +14 -9
  268. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  269. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +14 -9
  270. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  271. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
  272. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  273. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +3 -2
  274. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  275. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  276. package/dist/esm/flows-actors/flows.shared.schemas.js +3 -2
  277. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  278. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +130 -0
  279. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -0
  280. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +153 -0
  281. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -0
  282. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
  283. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -3
  284. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -1
  285. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +1 -4
  286. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -1
  287. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
  288. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +0 -16
  289. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
  290. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +1 -17
  291. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
  292. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +1 -1
  293. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +3 -3
  294. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  295. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +3 -3
  296. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  297. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +2 -8
  298. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -1
  299. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +4 -15
  300. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -1
  301. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
  302. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +1 -1
  304. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  305. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +112 -0
  306. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -0
  307. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +113 -0
  308. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -0
  309. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  310. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  311. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  312. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  313. package/dist/esm/guidance/guidance-state.shared.utils.js +1 -0
  314. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  315. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  316. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  317. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  318. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  319. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  320. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +8 -0
  321. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  322. package/dist/esm/guidance/progression-state.shared.schemas.d.ts +46 -0
  323. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  324. package/dist/esm/guidance/progression-state.shared.schemas.js +49 -0
  325. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  326. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
  327. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +320 -50
  328. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  329. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +137 -36
  330. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  331. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  332. package/dist/esm/index.d.ts +15 -0
  333. package/dist/esm/index.d.ts.map +1 -1
  334. package/dist/esm/index.js +15 -0
  335. package/dist/esm/index.js.map +1 -1
  336. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  337. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  338. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  339. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +11 -2
  340. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  341. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  342. package/dist/esm/notifications/email/email-template.shared.enums.d.ts +15 -0
  343. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  344. package/dist/esm/notifications/email/email-template.shared.enums.js +15 -0
  345. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  346. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
  347. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  348. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
  349. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +1 -0
  350. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  351. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +19 -0
  352. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  353. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +30 -0
  354. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  355. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +65 -1
  356. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  357. package/dist/esm/notifications/notification-badges.core.definitions.d.ts +6 -4
  358. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  359. package/dist/esm/notifications/notification-badges.core.definitions.js +6 -4
  360. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  361. package/dist/esm/notifications/notification-badges.schemas.d.ts +167 -5
  362. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  363. package/dist/esm/notifications/notification-badges.schemas.js +191 -6
  364. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  365. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  366. package/dist/esm/notifications/notifications.shared.schemas.d.ts +158 -0
  367. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  368. package/dist/esm/notifications/notifications.shared.schemas.js +200 -1
  369. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  370. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  371. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +13 -0
  372. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  373. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  374. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  375. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  376. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  377. package/dist/esm/organizations/organization-notifications.shared.schemas.js +22 -1
  378. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  379. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  380. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +26 -0
  381. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  382. package/dist/esm/organizations/organization-preferences.shared.schemas.js +25 -0
  383. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  384. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  385. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +25 -0
  386. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  387. package/dist/esm/organizations/organization-profile.shared.schemas.js +42 -17
  388. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  389. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
  390. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
  391. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  392. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  393. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
  394. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +3 -2
  395. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  396. package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -2
  397. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  398. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  399. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  400. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  401. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +18 -3
  402. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  403. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  404. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +13 -0
  405. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  406. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +13 -0
  407. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  408. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  409. package/dist/esm/public-runtime/index.d.ts +71 -2
  410. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  411. package/dist/esm/public-runtime/index.js +62 -1
  412. package/dist/esm/public-runtime/index.js.map +1 -1
  413. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +6 -5
  414. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  415. package/dist/esm/queue/jobs.shared.resources-config.schemas.js +6 -5
  416. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  417. package/dist/esm/queue/jobs.shared.schemas.d.ts +16 -3
  418. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  419. package/dist/esm/queue/jobs.shared.schemas.js +16 -3
  420. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  421. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  422. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  423. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  424. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts +137 -0
  425. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -0
  426. package/dist/esm/requests/manual-controllers-routes-documentation.js +1255 -0
  427. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -0
  428. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +114 -0
  429. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  430. package/dist/esm/requests/manual-controllers-routes-urls.js +129 -0
  431. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  432. package/dist/esm/requests/rate-limits.shared.schemas.d.ts +11 -1
  433. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  434. package/dist/esm/requests/rate-limits.shared.schemas.js +11 -1
  435. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  436. package/dist/esm/requests/websocket.shared.schemas.d.ts +28 -3
  437. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  438. package/dist/esm/requests/websocket.shared.schemas.js +52 -0
  439. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  440. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  441. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  442. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  443. package/dist/esm/resources/resources-config.shared.factory.d.ts +1 -0
  444. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  445. package/dist/esm/resources/resources-config.shared.factory.js +203 -25
  446. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  447. package/dist/esm/resources/resources-config.shared.schemas.d.ts +297 -68
  448. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  449. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  450. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  451. package/dist/esm/resources/resources-registry.shared.core.definitions.js +151 -5
  452. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  453. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  454. package/dist/esm/resources/resources-relationships.shared.factory.js +15 -0
  455. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  456. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  457. package/dist/esm/resources/resources.shared.core.definitions.d.ts +54 -0
  458. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  459. package/dist/esm/resources/resources.shared.core.definitions.js +69 -0
  460. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  461. package/dist/esm/resources/resources.shared.schemas.d.ts +11 -2
  462. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  463. package/dist/esm/resources/resources.shared.schemas.js +34 -3
  464. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  465. package/dist/esm/resources/resources.shared.utils.d.ts +32 -7
  466. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  467. package/dist/esm/resources/resources.shared.utils.js +32 -7
  468. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  469. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  470. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
  471. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
  472. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
  473. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
  474. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts +51 -0
  475. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -0
  476. package/dist/esm/resources/utils/field-value-disclosure.utils.js +53 -0
  477. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -0
  478. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
  479. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  480. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
  481. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  482. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  483. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  484. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  485. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  486. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  487. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  488. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  489. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  490. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  491. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  492. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  493. package/dist/esm/resources/utils/resources-summary.utils.d.ts +16 -2
  494. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  495. package/dist/esm/resources/utils/resources-summary.utils.js +19 -5
  496. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  497. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  498. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  499. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  500. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  501. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  502. package/dist/esm/resources/utils/shared-persistence-collection.utils.js +11 -0
  503. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  504. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
  505. package/dist/esm/runtime/domain-module.shared.definitions.d.ts +25 -0
  506. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  507. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  508. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  509. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
  510. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  511. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +38 -0
  512. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  513. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
  514. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  515. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +38 -0
  516. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  517. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  518. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
  519. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -12
  520. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  521. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +0 -1
  522. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  523. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +84 -5
  524. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  525. package/dist/esm/security/authentications/authentication.shared.schemas.js +83 -3
  526. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  527. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  528. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  529. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  530. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
  531. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  532. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +1 -0
  533. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  534. package/dist/esm/security/authentications/registration.shared.dto.schemas.js +11 -0
  535. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  536. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
  537. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  538. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +15 -0
  539. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  540. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +21 -4
  541. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  542. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  543. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  544. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  545. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  546. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
  547. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
  548. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  549. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  550. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +61 -1
  551. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  552. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +238 -6
  553. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  554. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +37 -27
  555. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  556. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +134 -12
  557. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  558. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  559. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +2 -6
  560. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  561. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +32 -8
  562. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  563. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +45 -2
  564. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  565. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +45 -2
  566. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  567. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts +35 -0
  568. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -0
  569. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +257 -0
  570. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -0
  571. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts +143 -0
  572. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -0
  573. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js +219 -0
  574. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -0
  575. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  576. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +27 -0
  577. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  578. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +75 -7
  579. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  580. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +69 -8
  581. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  582. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  583. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  584. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
  585. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +31 -0
  586. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -0
  587. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +198 -0
  588. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -0
  589. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +31 -0
  590. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -0
  591. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +191 -0
  592. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -0
  593. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +307 -0
  594. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -0
  595. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +530 -0
  596. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -0
  597. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +4 -1
  598. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  599. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +29 -0
  600. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  601. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +4 -1
  602. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  603. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +29 -0
  604. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  605. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +6 -0
  606. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  607. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +31 -0
  608. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  609. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
  610. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +13 -0
  611. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  612. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +24 -3
  613. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  614. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
  615. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  616. package/dist/esm/testing.d.ts.map +1 -1
  617. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
  618. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  619. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  620. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  621. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  622. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  623. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  624. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  625. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  626. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
  627. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +4 -4
  628. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  629. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  630. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +4 -4
  631. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  632. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  633. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  634. package/dist/esm/users/user-self.shared.resources-config.schemas.js +33 -3
  635. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  636. package/dist/esm/users/users.shared.resources-config.schemas.d.ts +17 -1
  637. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  638. package/dist/esm/users/users.shared.resources-config.schemas.js +136 -5
  639. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  640. package/dist/esm/users/users.shared.schemas.d.ts +60 -13
  641. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  642. package/dist/esm/users/users.shared.schemas.js +56 -9
  643. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  644. package/dist/tsconfig.build.tsbuildinfo +1 -1
  645. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"billing-enums.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/billing-enums.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAIzH;;;;;;;;;;;GAWG;AACH,oBAAY,WAAW;IACrB,gEAAgE;IAChE,IAAI,SAAS;IACb,6DAA6D;IAC7D,KAAK,UAAU;IACf,kEAAkE;IAClE,OAAO,YAAY;IACnB,6EAA6E;IAC7E,QAAQ,aAAa;IACrB,sEAAsE;IACtE,WAAW,gBAAgB;IAC3B,0EAA0E;IAC1E,IAAI,SAAS;CACd;AAED;;;;GAIG;AACH,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAID;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,iBAAiB,sBAAsB;IACvC,IAAI,SAAS;IACb,cAAc,mBAAmB;CAClC;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,aAAa,kBAAkB;CAChC;AAMD;;GAEG;AACH,oBAAY,yBAAyB;IACnC,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;CAC1C;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,MAAM,WAAW;CAClB;AAMD;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,gBAAgB,qBAAqB;IACrC,QAAQ,aAAa;CACtB;AAMD;;;;;GAKG;AACH,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,aAAa,kBAAkB;CAChC;AAID;;;;;GAKG;AACH,oBAAY,gBAAgB;IAC1B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;CACxB;AAID;;GAEG;AACH,oBAAY,aAAa;IACvB,sBAAsB;IACtB,MAAM,WAAW;IACjB,0BAA0B;IAC1B,cAAc,mBAAmB;IACjC,uBAAuB;IACvB,QAAQ,aAAa;IACrB,yBAAyB;IACzB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,eAAe,oBAAoB;CACpC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,oCAAoC,WAAW,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,oBAAY,0BAA0B;IACpC;;;;;;OAMG;IACH,kBAAkB,2BAA2B;IAC7C,kGAAkG;IAClG,WAAW,qBAAqB;IAChC;;;OAGG;IACH,QAAQ,mBAAmB;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,SAAU,CAAC"}
1
+ {"version":3,"file":"billing-enums.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/billing-enums.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAI3J;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,oBAAY,WAAW;IACrB,gEAAgE;IAChE,IAAI,SAAS;IACb,6DAA6D;IAC7D,KAAK,UAAU;IACf,kEAAkE;IAClE,OAAO,YAAY;IACnB,6EAA6E;IAC7E,QAAQ,aAAa;IACrB,sEAAsE;IACtE,WAAW,gBAAgB;IAC3B,0EAA0E;IAC1E,IAAI,SAAS;CACd;AAED;;;;GAIG;AACH,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,GAAG,QAAQ;CACZ;AAID;;GAEG;AAKH;;GAEG;AACH,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,aAAa,kBAAkB;CAChC;AACD,sEAAsE;AAMtE;;GAEG;AACH,oBAAY,yBAAyB;IACnC,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;CAC1C;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,MAAM,WAAW;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;CAC9B;AAED;;;;;;;;;GASG;AACH,oBAAY,6BAA6B;IACvC;;;;;;;OAOG;IACH,uBAAuB,4BAA4B;CACpD;AAMD;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,gBAAgB,qBAAqB;IACrC,QAAQ,aAAa;CACtB;AAYD;;;;;GAKG;AACH,oBAAY,gBAAgB;IAC1B,aAAa,kBAAkB;IAC/B,SAAS,cAAc;CACxB;AAID;;GAEG;AACH,oBAAY,aAAa;IACvB,sBAAsB;IACtB,MAAM,WAAW;IACjB,0BAA0B;IAC1B,cAAc,mBAAmB;IACjC,uBAAuB;IACvB,QAAQ,aAAa;IACrB,yBAAyB;IACzB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,eAAe,oBAAoB;CACpC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,oCAAoC,WAAW,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,oBAAY,0BAA0B;IACpC;;;;;;OAMG;IACH,kBAAkB,2BAA2B;IAC7C,kGAAkG;IAClG,WAAW,qBAAqB;IAChC;;;;;;;;;;;;OAYG;IACH,YAAY,sBAAsB;IAClC;;;OAGG;IACH,QAAQ,mBAAmB;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,SAAU,CAAC"}
@@ -5,14 +5,28 @@
5
5
  * These supersede the legacy enums from billing.shared.schemas.ts.
6
6
  *
7
7
  * Enums shared with the standard billing interface (PricingModel, BillingInterval,
8
- * TaxDisplayMode, SubscriptionStatus) are defined in @wildo-ai/external-connectors-models
9
- * and re-exported here for convenience.
8
+ * TaxDisplayMode, SubscriptionStatus, InvoiceStatus, ProrationBehavior) are defined in
9
+ * @wildo-ai/external-connectors-models and re-exported here for convenience.
10
10
  *
11
11
  * @see billing-and-features-system.md §6 (Billing Schemas)
12
12
  */
13
- export { PricingModel, BillingInterval, TaxDisplayMode, SubscriptionStatus } from '@wildo-ai/external-connectors-models';
13
+ export { PricingModel, BillingInterval, TaxDisplayMode, SubscriptionStatus, InvoiceStatus, ProrationBehavior } from '@wildo-ai/external-connectors-models';
14
14
  // ── Product & Pricing ──────────────────────────────────────────────
15
15
  /**
16
+ * @wildo_source:part:start saas.models.billing.catalog-vocabularies facet:layer:shared facet:audience:app-developer
17
+ *
18
+ * The vocabularies an application types into its own product catalogue — the `ProductDefinition[]`
19
+ * it exports from its shared library and hands to the engine with its module declarations.
20
+ *
21
+ * Imported from `@wildo-ai/saas-models`. `PricingModel`, `BillingInterval` and `ProrationBehavior`
22
+ * are re-exported from the connector models, because their values ARE the provider's wire values.
23
+ *
24
+ * ⚠️ **The catalogue is ONE-WAY.** Sync pushes only rows that have no provider link yet, so a product
25
+ * or price edited in the provider's own dashboard is never read back, never reconciled, and never
26
+ * reported. Removing a product from the array does not retire it at the provider and does not
27
+ * deactivate the existing row — nothing detects that a previously synced key has disappeared. Treat
28
+ * the array as the source of truth and make every change through it.
29
+ *
16
30
  * Product types available in the billing catalog.
17
31
  *
18
32
  * | Type | Creates subscription? | Repeatable? | Grants features? | Usage tracked? |
@@ -53,12 +67,9 @@ export var LimitGrantMode;
53
67
  /**
54
68
  * Proration behavior for plan changes (upgrade/downgrade).
55
69
  */
56
- export var ProrationBehavior;
57
- (function (ProrationBehavior) {
58
- ProrationBehavior["CREATE_PRORATIONS"] = "create_prorations";
59
- ProrationBehavior["NONE"] = "none";
60
- ProrationBehavior["ALWAYS_INVOICE"] = "always_invoice";
61
- })(ProrationBehavior || (ProrationBehavior = {}));
70
+ // ProrationBehavior: re-exported from @wildo-ai/external-connectors-models (see top of file).
71
+ // Moved there 2026-09-08 (#516) because its three values ARE the provider's wire values, so the
72
+ // request contract has to be able to name the type — see TaxDisplayMode for the same reasoning.
62
73
  /**
63
74
  * Billing timing: when to apply plan changes.
64
75
  */
@@ -67,6 +78,7 @@ export var BillingTiming;
67
78
  BillingTiming["IMMEDIATE"] = "immediate";
68
79
  BillingTiming["AT_PERIOD_END"] = "at_period_end";
69
80
  })(BillingTiming || (BillingTiming = {}));
81
+ /** @wildo_source:part:end saas.models.billing.catalog-vocabularies */
70
82
  // BillingInterval: re-exported from @wildo-ai/external-connectors-models (see top of file)
71
83
  // ── Metering & Usage ───────────────────────────────────────────────
72
84
  /**
@@ -95,6 +107,53 @@ export var UsageSourceType;
95
107
  UsageSourceType["RESOURCE_COUNT"] = "resource_count";
96
108
  UsageSourceType["CUSTOM"] = "custom";
97
109
  })(UsageSourceType || (UsageSourceType = {}));
110
+ /**
111
+ * Where one metered usage row stands with respect to the provider flush.
112
+ *
113
+ * This was a BOOLEAN (`reportedToProvider`) until 2026-09-09, and the third state is the whole
114
+ * reason it is an enum now (#512). A boolean can say "not yet reported" and "reported", and the
115
+ * flush selects on the first — so a row that can NEVER be reported has nowhere to go. It stays
116
+ * pending, is re-selected by every run, fails identically, and grows an error backlog that no
117
+ * operator action can drain, on a five-minute schedule.
118
+ *
119
+ * The three states are genuinely distinct and must not be collapsed:
120
+ *
121
+ * - {@link PENDING} — the flush will try again. Every newly recorded row starts here.
122
+ * - {@link REPORTED} — the provider acknowledged the quantity. `reportedAt` says when. Terminal,
123
+ * and money has moved: never move a row back out of this state.
124
+ * - {@link UNREPORTABLE} — the flush determined the row can never be reported, for a reason named
125
+ * in `unreportableReason`. Terminal, and NO money moved. Marking such a row `REPORTED` instead
126
+ * would drain the backlog just as well and would be a lie no later reader could detect, which is
127
+ * exactly why the state exists rather than a shortcut.
128
+ */
129
+ export var UsageRecordFlushState;
130
+ (function (UsageRecordFlushState) {
131
+ UsageRecordFlushState["PENDING"] = "pending";
132
+ UsageRecordFlushState["REPORTED"] = "reported";
133
+ UsageRecordFlushState["UNREPORTABLE"] = "unreportable";
134
+ })(UsageRecordFlushState || (UsageRecordFlushState = {}));
135
+ /**
136
+ * Why a usage row was determined to be permanently unreportable.
137
+ *
138
+ * One member today, and it is a closed vocabulary rather than a free string because the operator
139
+ * reading a retained financial record needs to know which permanent condition applies — and because
140
+ * the distinction between a PERMANENT and a TRANSIENT failure is the judgement this whole state
141
+ * turns on. A billing account that merely has no `providerCustomerId` yet is transient: the account
142
+ * exists, provisioning may still complete, and such a row stays {@link UsageRecordFlushState.PENDING}.
143
+ * Only a condition that cannot resolve itself belongs here.
144
+ */
145
+ export var UsageRecordUnreportableReason;
146
+ (function (UsageRecordUnreportableReason) {
147
+ /**
148
+ * The billing account row no longer exists.
149
+ *
150
+ * Reachable by design: usage rows are RETAINED when their subject is erased (the tax/audit
151
+ * obligation on `usage-record.shared.schemas.ts`), so a deleted account legitimately leaves rows
152
+ * behind with no provider customer to report them to. Nothing can restore the mapping, so the
153
+ * quantity will never be billed and saying so on the row is the only honest outcome.
154
+ */
155
+ UsageRecordUnreportableReason["BILLING_ACCOUNT_DELETED"] = "billing_account_deleted";
156
+ })(UsageRecordUnreportableReason || (UsageRecordUnreportableReason = {}));
98
157
  // ── Tax ────────────────────────────────────────────────────────────
99
158
  // TaxDisplayMode: re-exported from @wildo-ai/external-connectors-models (see top of file)
100
159
  /**
@@ -107,20 +166,9 @@ export var TaxCalculationMode;
107
166
  })(TaxCalculationMode || (TaxCalculationMode = {}));
108
167
  // ── Subscription & Invoice Status ──────────────────────────────────
109
168
  // SubscriptionStatus: re-exported from @wildo-ai/external-connectors-models (see top of file)
110
- /**
111
- * Invoice status values (maps to Stripe invoice statuses).
112
- *
113
- * Invoices are created and managed entirely by the billing provider.
114
- * We store a thin reference for status tracking and quick display.
115
- */
116
- export var InvoiceStatus;
117
- (function (InvoiceStatus) {
118
- InvoiceStatus["DRAFT"] = "draft";
119
- InvoiceStatus["OPEN"] = "open";
120
- InvoiceStatus["PAID"] = "paid";
121
- InvoiceStatus["VOID"] = "void";
122
- InvoiceStatus["UNCOLLECTIBLE"] = "uncollectible";
123
- })(InvoiceStatus || (InvoiceStatus = {}));
169
+ // InvoiceStatus: re-exported from @wildo-ai/external-connectors-models (see top of file).
170
+ // It moved there on 2026-09-09 so `StandardBilling_InvoiceData` could name it; the specifier every
171
+ // consumer imports is unchanged.
124
172
  // ── Billing Scope ──────────────────────────────────────────────────
125
173
  /**
126
174
  * Billing-compatible scope types.
@@ -252,6 +300,20 @@ export var BillingCheckoutMetadataKey;
252
300
  BillingCheckoutMetadataKey["BILLING_ACCOUNT_ID"] = "wildo_billingAccountId";
253
301
  /** The catalog product key purchased — selects the credit pool and credits-per-unit on top-up. */
254
302
  BillingCheckoutMetadataKey["PRODUCT_KEY"] = "wildo_productKey";
303
+ /**
304
+ * The PROMOTION row whose code the framework validated when it opened this checkout, so the
305
+ * redemption can be counted when the session COMPLETES (#518).
306
+ *
307
+ * Absent when the purchase used no code, which is the common case.
308
+ *
309
+ * Stamped rather than re-derived from the completed session, because the provider reports the
310
+ * DISCOUNT it applied and not the Wildo row that authorised it — and the row is what carries
311
+ * `maxRedemptions`. Like every key here it is written for the framework's own reconciliation and is
312
+ * never trusted as authority on its own: the redemption is counted with a compare-and-swap that
313
+ * refuses past the cap, so a tampered value can at worst count a redemption against a promotion
314
+ * that has room for one.
315
+ */
316
+ BillingCheckoutMetadataKey["PROMOTION_ID"] = "wildo_promotionId";
255
317
  /**
256
318
  * The purchased quantity, as a decimal integer string (provider metadata values are strings).
257
319
  * Strictly parsed and bounded by {@link BILLING_CHECKOUT_MAX_QUANTITY} on the way back in.
@@ -1 +1 @@
1
- {"version":3,"file":"billing-enums.shared.schemas.js","sourceRoot":"","sources":["../../../../src/billing/billing-enums.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Billing Enums (Shared)\n *\n * All billing-system enums used across backend, frontend, and shared models.\n * These supersede the legacy enums from billing.shared.schemas.ts.\n *\n * Enums shared with the standard billing interface (PricingModel, BillingInterval,\n * TaxDisplayMode, SubscriptionStatus) are defined in @wildo-ai/external-connectors-models\n * and re-exported here for convenience.\n *\n * @see billing-and-features-system.md §6 (Billing Schemas)\n */\n\nexport { PricingModel, BillingInterval, TaxDisplayMode, SubscriptionStatus } from '@wildo-ai/external-connectors-models';\n\n// ── Product & Pricing ──────────────────────────────────────────────\n\n/**\n * Product types available in the billing catalog.\n *\n * | Type | Creates subscription? | Repeatable? | Grants features? | Usage tracked? |\n * |-------------|----------------------|-------------|------------------|----------------|\n * | PLAN | Yes (exclusive) | No (switch) | Yes | No |\n * | ADDON | Yes (stackable) | No (toggle) | Yes | No |\n * | METERED | Yes | No | Optional | Yes |\n * | ONE_TIME | No | No (once) | Optional | No |\n * | CREDIT_PACK | No | Yes | No (credits) | Credits-based |\n * | ITEM | No | Yes | Optional | No |\n */\nexport enum ProductType {\n /** Subscription plan, mutually exclusive per billing account */\n PLAN = 'plan',\n /** Optional subscription add-on, stackable on top of plan */\n ADDON = 'addon',\n /** Usage-based subscription (consumption reported to provider) */\n METERED = 'metered',\n /** Single purchase, once per billing account (e.g., setup fee, migration) */\n ONE_TIME = 'one_time',\n /** Buy a pack of credits/tokens (repeatable, consumable over time) */\n CREDIT_PACK = 'credit_pack',\n /** Purchasable item, repeatable (e.g., report generation, data export) */\n ITEM = 'item',\n}\n\n/**\n * Limit grant mode: how this product's limits compose with other products.\n * - SET: absolute value (replaces, used for PLAN base limits)\n * - ADD: additive (stacks on top, used for ADDON bonus limits)\n */\nexport enum LimitGrantMode {\n SET = 'set',\n ADD = 'add',\n}\n\n// ── Billing Lifecycle ──────────────────────────────────────────────\n\n/**\n * Proration behavior for plan changes (upgrade/downgrade).\n */\nexport enum ProrationBehavior {\n CREATE_PRORATIONS = 'create_prorations',\n NONE = 'none',\n ALWAYS_INVOICE = 'always_invoice',\n}\n\n/**\n * Billing timing: when to apply plan changes.\n */\nexport enum BillingTiming {\n IMMEDIATE = 'immediate',\n AT_PERIOD_END = 'at_period_end',\n}\n\n// BillingInterval: re-exported from @wildo-ai/external-connectors-models (see top of file)\n\n// ── Metering & Usage ───────────────────────────────────────────────\n\n/**\n * Metering aggregation window for usage records.\n */\nexport enum MeteringAggregationWindow {\n PER_FLUSH = 'per_flush',\n PER_BILLING_PERIOD = 'per_billing_period',\n}\n\n/**\n * Usage aggregation type for metered prices.\n */\nexport enum UsageAggregationType {\n SUM = 'sum',\n MAX = 'max',\n LAST = 'last',\n}\n\n/**\n * Usage record source type.\n */\nexport enum UsageSourceType {\n OPERATION = 'operation',\n RESOURCE_COUNT = 'resource_count',\n CUSTOM = 'custom',\n}\n\n// ── Tax ────────────────────────────────────────────────────────────\n\n// TaxDisplayMode: re-exported from @wildo-ai/external-connectors-models (see top of file)\n\n/**\n * Tax calculation mode: provider-managed or disabled.\n */\nexport enum TaxCalculationMode {\n PROVIDER_MANAGED = 'provider_managed',\n DISABLED = 'disabled',\n}\n\n// ── Subscription & Invoice Status ──────────────────────────────────\n\n// SubscriptionStatus: re-exported from @wildo-ai/external-connectors-models (see top of file)\n\n/**\n * Invoice status values (maps to Stripe invoice statuses).\n *\n * Invoices are created and managed entirely by the billing provider.\n * We store a thin reference for status tracking and quick display.\n */\nexport enum InvoiceStatus {\n DRAFT = 'draft',\n OPEN = 'open',\n PAID = 'paid',\n VOID = 'void',\n UNCOLLECTIBLE = 'uncollectible',\n}\n\n// ── Billing Scope ──────────────────────────────────────────────────\n\n/**\n * Billing-compatible scope types.\n * Subset of ResourcePrimaryScope — excludes APPLICATION which has no billing variants.\n * Used by scope-agnostic billing resources (e.g., Referrals) that reference\n * billing accounts across different polymorphic collections.\n */\nexport enum BillingScopeType {\n ORGANIZATIONS = 'organizations',\n USER_SELF = 'user_self',\n}\n\n// ── Promotions & Referrals ─────────────────────────────────────────\n\n/**\n * Promotion type.\n */\nexport enum PromotionType {\n /** Direct discount */\n COUPON = 'coupon',\n /** Code-based discount */\n PROMOTION_CODE = 'promotion_code',\n /** Referral program */\n REFERRAL = 'referral',\n /** Special deal/offer */\n DEAL = 'deal',\n}\n\n/**\n * Discount type for promotions.\n */\nexport enum DiscountType {\n PERCENTAGE = 'percentage',\n FIXED_AMOUNT = 'fixed_amount',\n}\n\n/**\n * Promotion duration (how long the discount applies).\n */\nexport enum PromotionDuration {\n ONCE = 'once',\n REPEATING = 'repeating',\n FOREVER = 'forever',\n}\n\n/**\n * Referral status lifecycle.\n */\nexport enum ReferralStatus {\n PENDING = 'pending',\n ACCEPTED = 'accepted',\n CONVERTED = 'converted',\n EXPIRED = 'expired',\n CANCELLED = 'cancelled',\n}\n\n/**\n * Reward type for the referrer (person who referred).\n */\nexport enum ReferrerRewardType {\n CREDIT = 'credit',\n DISCOUNT = 'discount',\n FEATURE = 'feature',\n COMMISSION = 'commission',\n}\n\n/**\n * Reward type for the referred (new customer).\n */\nexport enum ReferredRewardType {\n CREDIT = 'credit',\n DISCOUNT = 'discount',\n FEATURE = 'feature',\n TRIAL_EXTENSION = 'trial_extension',\n}\n\n// ── Provider checkout metadata: the framework/caller trust boundary ─────────────\n\n/**\n * Prefix that marks a provider-metadata key as FRAMEWORK-AUTHORITATIVE.\n *\n * ## Why a reserved namespace exists at all\n *\n * A provider checkout session carries ONE flat `metadata` map, and two parties want to write into\n * it: the framework (which needs to recognise the purchase when the provider echoes the session\n * back on `checkout.session.completed`) and the application's own caller (who legitimately wants\n * to tag the purchase for their analytics or reconciliation).\n *\n * Those two writers do not have the same authority. The framework's entries decide WHICH billing\n * account is credited and HOW MUCH — the provider replays them verbatim inside a genuinely SIGNED\n * webhook, so a signature proves the provider sent them, never that the framework wrote them. The\n * caller's entries decide nothing.\n *\n * Sharing one un-partitioned namespace between those two authorities is what turned a caller-supplied\n * map into a credit-minting primitive: the producer spread caller metadata LAST, so `billingAccountId`\n * / `productKey` / `quantity` were simply overwritable, and the webhook consumer read the result back\n * as trusted framework state. Ordering alone is not the fix — swapping the spread leaves an\n * unmarked namespace in which the NEXT authoritative key is one careless line from being overridable\n * again. The prefix makes the trust boundary a property of the KEY, so it survives refactors.\n *\n * The boundary is enforced in three places, deliberately overlapping:\n * 1. the OPEN_CHECKOUT request DTO REFUSES any caller key carrying this prefix (loud, at the edge);\n * 2. the metadata builder writes the reserved entries LAST (structural, cannot be forgotten);\n * 3. the webhook consumer reads ONLY reserved keys, and re-derives the billing account from\n * provider-authoritative data rather than trusting the echoed value.\n *\n * @see BillingCheckoutMetadataKey for the reserved key vocabulary itself.\n */\nexport const BILLING_RESERVED_METADATA_KEY_PREFIX = 'wildo_';\n\n/**\n * The closed vocabulary of framework-authoritative provider-metadata keys.\n *\n * Every member MUST start with {@link BILLING_RESERVED_METADATA_KEY_PREFIX} — that is what makes the\n * DTO's caller-key refusal and the consumer's read-only-reserved rule line up. A member added\n * without the prefix would be silently overridable by a caller, which is the whole defect this\n * vocabulary exists to prevent, so a pinned test asserts the prefix across every member.\n *\n * Named rather than inlined because each member carries a different obligation on the consumer side\n * (one is cross-checked against provider truth, one selects the product, one is bounded and\n * strictly parsed) and a bare string literal has nowhere to record that.\n */\nexport enum BillingCheckoutMetadataKey {\n /**\n * The billing account the checkout was opened FOR.\n *\n * Written for traceability and cross-checking only. The webhook consumer re-derives the account\n * from the provider-authoritative customer id on the event and REFUSES the event if the echoed\n * value disagrees — it is never used as the account to credit.\n */\n BILLING_ACCOUNT_ID = 'wildo_billingAccountId',\n /** The catalog product key purchased — selects the credit pool and credits-per-unit on top-up. */\n PRODUCT_KEY = 'wildo_productKey',\n /**\n * The purchased quantity, as a decimal integer string (provider metadata values are strings).\n * Strictly parsed and bounded by {@link BILLING_CHECKOUT_MAX_QUANTITY} on the way back in.\n */\n QUANTITY = 'wildo_quantity',\n}\n\n/**\n * Upper bound on a single checkout's line-item quantity, applied on BOTH sides of the provider\n * round trip: the OPEN_CHECKOUT request DTO refuses more, and the webhook consumer refuses to\n * honour more.\n *\n * One shared constant rather than two, because a consumer bound lower than the producer bound would\n * silently refuse legitimate large purchases the framework itself allowed to be billed — the\n * failure mode where the customer is charged and the credits never arrive.\n *\n * The value is a framework policy ceiling, not a provider-derived one: it is deliberately far above\n * any plausible self-serve purchase and far below the range where an unbounded quantity becomes a\n * credit-minting primitive. An application whose catalog genuinely sells in larger units should\n * raise it here, where both sides read it, rather than at either end.\n */\nexport const BILLING_CHECKOUT_MAX_QUANTITY = 999_999;\n"]}
1
+ {"version":3,"file":"billing-enums.shared.schemas.js","sourceRoot":"","sources":["../../../src/billing/billing-enums.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Billing Enums (Shared)\n *\n * All billing-system enums used across backend, frontend, and shared models.\n * These supersede the legacy enums from billing.shared.schemas.ts.\n *\n * Enums shared with the standard billing interface (PricingModel, BillingInterval,\n * TaxDisplayMode, SubscriptionStatus, InvoiceStatus, ProrationBehavior) are defined in\n * @wildo-ai/external-connectors-models and re-exported here for convenience.\n *\n * @see billing-and-features-system.md §6 (Billing Schemas)\n */\n\nexport { PricingModel, BillingInterval, TaxDisplayMode, SubscriptionStatus, InvoiceStatus, ProrationBehavior } from '@wildo-ai/external-connectors-models';\n\n// ── Product & Pricing ──────────────────────────────────────────────\n\n/**\n * @wildo_source:part:start saas.models.billing.catalog-vocabularies facet:layer:shared facet:audience:app-developer\n *\n * The vocabularies an application types into its own product catalogue — the `ProductDefinition[]`\n * it exports from its shared library and hands to the engine with its module declarations.\n *\n * Imported from `@wildo-ai/saas-models`. `PricingModel`, `BillingInterval` and `ProrationBehavior`\n * are re-exported from the connector models, because their values ARE the provider's wire values.\n *\n * ⚠️ **The catalogue is ONE-WAY.** Sync pushes only rows that have no provider link yet, so a product\n * or price edited in the provider's own dashboard is never read back, never reconciled, and never\n * reported. Removing a product from the array does not retire it at the provider and does not\n * deactivate the existing row — nothing detects that a previously synced key has disappeared. Treat\n * the array as the source of truth and make every change through it.\n *\n * Product types available in the billing catalog.\n *\n * | Type | Creates subscription? | Repeatable? | Grants features? | Usage tracked? |\n * |-------------|----------------------|-------------|------------------|----------------|\n * | PLAN | Yes (exclusive) | No (switch) | Yes | No |\n * | ADDON | Yes (stackable) | No (toggle) | Yes | No |\n * | METERED | Yes | No | Optional | Yes |\n * | ONE_TIME | No | No (once) | Optional | No |\n * | CREDIT_PACK | No | Yes | No (credits) | Credits-based |\n * | ITEM | No | Yes | Optional | No |\n */\nexport enum ProductType {\n /** Subscription plan, mutually exclusive per billing account */\n PLAN = 'plan',\n /** Optional subscription add-on, stackable on top of plan */\n ADDON = 'addon',\n /** Usage-based subscription (consumption reported to provider) */\n METERED = 'metered',\n /** Single purchase, once per billing account (e.g., setup fee, migration) */\n ONE_TIME = 'one_time',\n /** Buy a pack of credits/tokens (repeatable, consumable over time) */\n CREDIT_PACK = 'credit_pack',\n /** Purchasable item, repeatable (e.g., report generation, data export) */\n ITEM = 'item',\n}\n\n/**\n * Limit grant mode: how this product's limits compose with other products.\n * - SET: absolute value (replaces, used for PLAN base limits)\n * - ADD: additive (stacks on top, used for ADDON bonus limits)\n */\nexport enum LimitGrantMode {\n SET = 'set',\n ADD = 'add',\n}\n\n// ── Billing Lifecycle ──────────────────────────────────────────────\n\n/**\n * Proration behavior for plan changes (upgrade/downgrade).\n */\n// ProrationBehavior: re-exported from @wildo-ai/external-connectors-models (see top of file).\n// Moved there 2026-09-08 (#516) because its three values ARE the provider's wire values, so the\n// request contract has to be able to name the type — see TaxDisplayMode for the same reasoning.\n\n/**\n * Billing timing: when to apply plan changes.\n */\nexport enum BillingTiming {\n IMMEDIATE = 'immediate',\n AT_PERIOD_END = 'at_period_end',\n}\n/** @wildo_source:part:end saas.models.billing.catalog-vocabularies */\n\n// BillingInterval: re-exported from @wildo-ai/external-connectors-models (see top of file)\n\n// ── Metering & Usage ───────────────────────────────────────────────\n\n/**\n * Metering aggregation window for usage records.\n */\nexport enum MeteringAggregationWindow {\n PER_FLUSH = 'per_flush',\n PER_BILLING_PERIOD = 'per_billing_period',\n}\n\n/**\n * Usage aggregation type for metered prices.\n */\nexport enum UsageAggregationType {\n SUM = 'sum',\n MAX = 'max',\n LAST = 'last',\n}\n\n/**\n * Usage record source type.\n */\nexport enum UsageSourceType {\n OPERATION = 'operation',\n RESOURCE_COUNT = 'resource_count',\n CUSTOM = 'custom',\n}\n\n/**\n * Where one metered usage row stands with respect to the provider flush.\n *\n * This was a BOOLEAN (`reportedToProvider`) until 2026-09-09, and the third state is the whole\n * reason it is an enum now (#512). A boolean can say \"not yet reported\" and \"reported\", and the\n * flush selects on the first — so a row that can NEVER be reported has nowhere to go. It stays\n * pending, is re-selected by every run, fails identically, and grows an error backlog that no\n * operator action can drain, on a five-minute schedule.\n *\n * The three states are genuinely distinct and must not be collapsed:\n *\n * - {@link PENDING} — the flush will try again. Every newly recorded row starts here.\n * - {@link REPORTED} — the provider acknowledged the quantity. `reportedAt` says when. Terminal,\n * and money has moved: never move a row back out of this state.\n * - {@link UNREPORTABLE} — the flush determined the row can never be reported, for a reason named\n * in `unreportableReason`. Terminal, and NO money moved. Marking such a row `REPORTED` instead\n * would drain the backlog just as well and would be a lie no later reader could detect, which is\n * exactly why the state exists rather than a shortcut.\n */\nexport enum UsageRecordFlushState {\n PENDING = 'pending',\n REPORTED = 'reported',\n UNREPORTABLE = 'unreportable',\n}\n\n/**\n * Why a usage row was determined to be permanently unreportable.\n *\n * One member today, and it is a closed vocabulary rather than a free string because the operator\n * reading a retained financial record needs to know which permanent condition applies — and because\n * the distinction between a PERMANENT and a TRANSIENT failure is the judgement this whole state\n * turns on. A billing account that merely has no `providerCustomerId` yet is transient: the account\n * exists, provisioning may still complete, and such a row stays {@link UsageRecordFlushState.PENDING}.\n * Only a condition that cannot resolve itself belongs here.\n */\nexport enum UsageRecordUnreportableReason {\n /**\n * The billing account row no longer exists.\n *\n * Reachable by design: usage rows are RETAINED when their subject is erased (the tax/audit\n * obligation on `usage-record.shared.schemas.ts`), so a deleted account legitimately leaves rows\n * behind with no provider customer to report them to. Nothing can restore the mapping, so the\n * quantity will never be billed and saying so on the row is the only honest outcome.\n */\n BILLING_ACCOUNT_DELETED = 'billing_account_deleted',\n}\n\n// ── Tax ────────────────────────────────────────────────────────────\n\n// TaxDisplayMode: re-exported from @wildo-ai/external-connectors-models (see top of file)\n\n/**\n * Tax calculation mode: provider-managed or disabled.\n */\nexport enum TaxCalculationMode {\n PROVIDER_MANAGED = 'provider_managed',\n DISABLED = 'disabled',\n}\n\n// ── Subscription & Invoice Status ──────────────────────────────────\n\n// SubscriptionStatus: re-exported from @wildo-ai/external-connectors-models (see top of file)\n\n// InvoiceStatus: re-exported from @wildo-ai/external-connectors-models (see top of file).\n// It moved there on 2026-09-09 so `StandardBilling_InvoiceData` could name it; the specifier every\n// consumer imports is unchanged.\n\n// ── Billing Scope ──────────────────────────────────────────────────\n\n/**\n * Billing-compatible scope types.\n * Subset of ResourcePrimaryScope — excludes APPLICATION which has no billing variants.\n * Used by scope-agnostic billing resources (e.g., Referrals) that reference\n * billing accounts across different polymorphic collections.\n */\nexport enum BillingScopeType {\n ORGANIZATIONS = 'organizations',\n USER_SELF = 'user_self',\n}\n\n// ── Promotions & Referrals ─────────────────────────────────────────\n\n/**\n * Promotion type.\n */\nexport enum PromotionType {\n /** Direct discount */\n COUPON = 'coupon',\n /** Code-based discount */\n PROMOTION_CODE = 'promotion_code',\n /** Referral program */\n REFERRAL = 'referral',\n /** Special deal/offer */\n DEAL = 'deal',\n}\n\n/**\n * Discount type for promotions.\n */\nexport enum DiscountType {\n PERCENTAGE = 'percentage',\n FIXED_AMOUNT = 'fixed_amount',\n}\n\n/**\n * Promotion duration (how long the discount applies).\n */\nexport enum PromotionDuration {\n ONCE = 'once',\n REPEATING = 'repeating',\n FOREVER = 'forever',\n}\n\n/**\n * Referral status lifecycle.\n */\nexport enum ReferralStatus {\n PENDING = 'pending',\n ACCEPTED = 'accepted',\n CONVERTED = 'converted',\n EXPIRED = 'expired',\n CANCELLED = 'cancelled',\n}\n\n/**\n * Reward type for the referrer (person who referred).\n */\nexport enum ReferrerRewardType {\n CREDIT = 'credit',\n DISCOUNT = 'discount',\n FEATURE = 'feature',\n COMMISSION = 'commission',\n}\n\n/**\n * Reward type for the referred (new customer).\n */\nexport enum ReferredRewardType {\n CREDIT = 'credit',\n DISCOUNT = 'discount',\n FEATURE = 'feature',\n TRIAL_EXTENSION = 'trial_extension',\n}\n\n// ── Provider checkout metadata: the framework/caller trust boundary ─────────────\n\n/**\n * Prefix that marks a provider-metadata key as FRAMEWORK-AUTHORITATIVE.\n *\n * ## Why a reserved namespace exists at all\n *\n * A provider checkout session carries ONE flat `metadata` map, and two parties want to write into\n * it: the framework (which needs to recognise the purchase when the provider echoes the session\n * back on `checkout.session.completed`) and the application's own caller (who legitimately wants\n * to tag the purchase for their analytics or reconciliation).\n *\n * Those two writers do not have the same authority. The framework's entries decide WHICH billing\n * account is credited and HOW MUCH — the provider replays them verbatim inside a genuinely SIGNED\n * webhook, so a signature proves the provider sent them, never that the framework wrote them. The\n * caller's entries decide nothing.\n *\n * Sharing one un-partitioned namespace between those two authorities is what turned a caller-supplied\n * map into a credit-minting primitive: the producer spread caller metadata LAST, so `billingAccountId`\n * / `productKey` / `quantity` were simply overwritable, and the webhook consumer read the result back\n * as trusted framework state. Ordering alone is not the fix — swapping the spread leaves an\n * unmarked namespace in which the NEXT authoritative key is one careless line from being overridable\n * again. The prefix makes the trust boundary a property of the KEY, so it survives refactors.\n *\n * The boundary is enforced in three places, deliberately overlapping:\n * 1. the OPEN_CHECKOUT request DTO REFUSES any caller key carrying this prefix (loud, at the edge);\n * 2. the metadata builder writes the reserved entries LAST (structural, cannot be forgotten);\n * 3. the webhook consumer reads ONLY reserved keys, and re-derives the billing account from\n * provider-authoritative data rather than trusting the echoed value.\n *\n * @see BillingCheckoutMetadataKey for the reserved key vocabulary itself.\n */\nexport const BILLING_RESERVED_METADATA_KEY_PREFIX = 'wildo_';\n\n/**\n * The closed vocabulary of framework-authoritative provider-metadata keys.\n *\n * Every member MUST start with {@link BILLING_RESERVED_METADATA_KEY_PREFIX} — that is what makes the\n * DTO's caller-key refusal and the consumer's read-only-reserved rule line up. A member added\n * without the prefix would be silently overridable by a caller, which is the whole defect this\n * vocabulary exists to prevent, so a pinned test asserts the prefix across every member.\n *\n * Named rather than inlined because each member carries a different obligation on the consumer side\n * (one is cross-checked against provider truth, one selects the product, one is bounded and\n * strictly parsed) and a bare string literal has nowhere to record that.\n */\nexport enum BillingCheckoutMetadataKey {\n /**\n * The billing account the checkout was opened FOR.\n *\n * Written for traceability and cross-checking only. The webhook consumer re-derives the account\n * from the provider-authoritative customer id on the event and REFUSES the event if the echoed\n * value disagrees — it is never used as the account to credit.\n */\n BILLING_ACCOUNT_ID = 'wildo_billingAccountId',\n /** The catalog product key purchased — selects the credit pool and credits-per-unit on top-up. */\n PRODUCT_KEY = 'wildo_productKey',\n /**\n * The PROMOTION row whose code the framework validated when it opened this checkout, so the\n * redemption can be counted when the session COMPLETES (#518).\n *\n * Absent when the purchase used no code, which is the common case.\n *\n * Stamped rather than re-derived from the completed session, because the provider reports the\n * DISCOUNT it applied and not the Wildo row that authorised it — and the row is what carries\n * `maxRedemptions`. Like every key here it is written for the framework's own reconciliation and is\n * never trusted as authority on its own: the redemption is counted with a compare-and-swap that\n * refuses past the cap, so a tampered value can at worst count a redemption against a promotion\n * that has room for one.\n */\n PROMOTION_ID = 'wildo_promotionId',\n /**\n * The purchased quantity, as a decimal integer string (provider metadata values are strings).\n * Strictly parsed and bounded by {@link BILLING_CHECKOUT_MAX_QUANTITY} on the way back in.\n */\n QUANTITY = 'wildo_quantity',\n}\n\n/**\n * Upper bound on a single checkout's line-item quantity, applied on BOTH sides of the provider\n * round trip: the OPEN_CHECKOUT request DTO refuses more, and the webhook consumer refuses to\n * honour more.\n *\n * One shared constant rather than two, because a consumer bound lower than the producer bound would\n * silently refuse legitimate large purchases the framework itself allowed to be billed — the\n * failure mode where the customer is charged and the credits never arrive.\n *\n * The value is a framework policy ceiling, not a provider-derived one: it is deliberately far above\n * any plausible self-serve purchase and far below the range where an unbounded quantity becomes a\n * credit-minting primitive. An application whose catalog genuinely sells in larger units should\n * raise it here, where both sides read it, rather than at either end.\n */\nexport const BILLING_CHECKOUT_MAX_QUANTITY = 999_999;\n"]}
@@ -141,11 +141,11 @@ export declare const BillingStateResponseSchema: z.ZodObject<{
141
141
  requirePaymentMethod: z.ZodDefault<z.ZodBoolean>;
142
142
  }, z.core.$strip>>;
143
143
  upgrade: z.ZodOptional<z.ZodObject<{
144
- proration: z.ZodDefault<z.ZodEnum<typeof import("./billing-enums.shared.schemas").ProrationBehavior>>;
144
+ proration: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ProrationBehavior>>;
145
145
  timing: z.ZodDefault<z.ZodEnum<typeof import("./billing-enums.shared.schemas").BillingTiming>>;
146
146
  }, z.core.$strip>>;
147
147
  downgrade: z.ZodOptional<z.ZodObject<{
148
- proration: z.ZodDefault<z.ZodEnum<typeof import("./billing-enums.shared.schemas").ProrationBehavior>>;
148
+ proration: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ProrationBehavior>>;
149
149
  timing: z.ZodDefault<z.ZodEnum<typeof import("./billing-enums.shared.schemas").BillingTiming>>;
150
150
  }, z.core.$strip>>;
151
151
  cancellation: z.ZodOptional<z.ZodObject<{
@@ -193,7 +193,7 @@ export declare const BillingStateResponseSchema: z.ZodObject<{
193
193
  invoices: z.ZodArray<z.ZodObject<{
194
194
  _id: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
195
195
  billingAccountId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>;
196
- status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("./billing-enums.shared.schemas").InvoiceStatus>>>>;
196
+ status: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").InvoiceStatus>>>>;
197
197
  total: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedMoneySchema>>;
198
198
  hostedInvoiceUrl: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>>;
199
199
  invoicePdfUrl: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodOptional<z.ZodString>>>;
@@ -237,6 +237,7 @@ export declare const BillingStateResponseSchema: z.ZodObject<{
237
237
  createdAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>>;
238
238
  updatedAt: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodDefault<z.ZodDate>>>;
239
239
  }, z.core.$strip>>;
240
+ acquirableProductKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
240
241
  scopeType: z.ZodEnum<typeof ResourcePrimaryScope>;
241
242
  }, z.core.$strip>;
242
243
  export type BillingStateResponse = z.infer<typeof BillingStateResponseSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"billing-types.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/billing-types.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAO3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAM7E,YAAY,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAI7H;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,MAAM,EAAE,UAAU,CAAC;IACnB,4DAA4D;IAC5D,SAAS,EAAE,KAAK,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,wCAAwC;IACxC,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB;;;;;;;iBAc7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"billing-types.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/billing-types.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAO3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAM7E,YAAY,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAI7H;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,MAAM,EAAE,UAAU,CAAC;IACnB,4DAA4D;IAC5D,SAAS,EAAE,KAAK,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,wCAAwC;IACxC,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB;;;;;;;iBAc7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+DrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -80,6 +80,51 @@ export const BillingStateResponseSchema = z.object({
80
80
  * arbitrary checkout item the user might pick next.
81
81
  */
82
82
  activePromotions: z.array(PromotionSchema),
83
+ /**
84
+ * The subset of `products` (by `key`) a caller may ACQUIRE right now — buy, or move a
85
+ * subscription onto.
86
+ *
87
+ * ## Why a sibling key set rather than a filter on `products`
88
+ *
89
+ * One call serves two surfaces that want OPPOSITE things from it. An acquisition surface (a
90
+ * pricing table) must not offer a plan the purchase gate will refuse; a holding surface (the
91
+ * "your current plan" panel, the subscription-item → product resolution in the frontend billing
92
+ * context) must still be able to NAME a plan the catalogue has withdrawn, because a customer
93
+ * already on a retired plan is exactly who needs to see what they hold. Filtering `products` by
94
+ * `isActive` would serve the first and break the second — the same trade the `REMOVE_ADDON` call
95
+ * site settles by reading with `REFERENCE` intent rather than `ACQUIRE`.
96
+ *
97
+ * So the response DISTINGUISHES instead of filtering: `products` stays the full scope-visible
98
+ * catalog, and this set states which of them acquisition may offer.
99
+ *
100
+ * ## Why the server answers it at all
101
+ *
102
+ * `Product.isActive` is the declared off-boarding path, and the backend gate that makes
103
+ * retirement TRUE (`readProductByKey` with `ACQUIRE` intent) applies ONE predicate to it. A
104
+ * listing surface holds rows, not keys, so it cannot use that reader — and every listing left to
105
+ * itself re-derives the rule from the raw column. That had already happened twice by 2026-09-09,
106
+ * in a frontend component and in the reader, agreeing only by luck. This set is computed by the
107
+ * gate's own predicate, so a surface that reads it cannot drift from what checkout will accept.
108
+ *
109
+ * NOT a visibility answer: `isPublic` is a per-surface decision the server cannot take for every
110
+ * caller (a back-office catalog shows non-public rows). A customer pricing table composes the
111
+ * two; it must not re-spell either.
112
+ *
113
+ * ## Optional under protest — and what would make it required
114
+ *
115
+ * `BillingStateBackendService.getState` ALWAYS sets it, so on this engine's own wire it is never
116
+ * absent. It is `.optional()` for exactly one reason: `BillingContext.tsx` rebuilds the state
117
+ * object field-by-field from the HTTP response rather than passing it through, so every field
118
+ * added here is a compile break in a file this change may not edit. That hand-kept copy is the
119
+ * real defect — it makes any additive contract change breaking — and the field should be made
120
+ * REQUIRED in the same change that has the frontend read it.
121
+ *
122
+ * Absence therefore means "the producer did not project acquirability", never "nothing is
123
+ * acquirable" and never "everything is". A consumer that receives the set MUST use it in
124
+ * preference to re-deriving the rule; a consumer that does not is on the older, weaker footing
125
+ * this field exists to retire.
126
+ */
127
+ acquirableProductKeys: z.array(z.string()).optional(),
83
128
  scopeType: z.enum(ResourcePrimaryScope),
84
129
  });
85
130
  //# sourceMappingURL=billing-types.shared.schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"billing-types.shared.schemas.js","sourceRoot":"","sources":["../../../../src/billing/billing-types.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AA8B7E,sEAAsE;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,sDAAsD;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,CACjB,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC9B,0CAA0C;QAC1C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1C,6DAA6D;QAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,6BAA6B;QAC7B,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CACH;CACF,CAAC,CAAC;AAGH,sEAAsE;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAGH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,YAAY,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IACtD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACnC,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC;IAC1D;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;CACxC,CAAC,CAAC","sourcesContent":["/**\n * Billing Supporting Types (Shared)\n *\n * Types used by the billing API, frontend hooks, and provider interface.\n * These are NOT DB schemas — they are API response shapes, provider abstractions,\n * and aggregated views.\n *\n * @see billing-and-features-system.md §6.2c (Supporting Types)\n */\n\nimport { z } from 'zod';\nimport type { MoneyValue } from '@wildo-ai/zod-decorators';\nimport { BillingAccountSchema } from './billing-account.shared.schemas';\nimport { BillingSubscriptionBaseSchema } from './subscription.shared.schemas';\nimport { ProductSchema } from './product.shared.schemas';\nimport { PriceSchema } from './price.shared.schemas';\nimport { InvoiceRefSchema } from './invoice-ref.shared.schemas';\nimport { PromotionSchema } from './promotions.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\n\n// ── Provider Canonical Types ───────────────────────────────────────\n// StandardBilling_SubscriptionData and StandardBilling_InvoicePreview are\n// defined in @wildo-ai/external-connectors-models (standard billing interface)\n// and re-exported here for convenience.\nexport type { StandardBilling_SubscriptionData, StandardBilling_InvoicePreview } from '@wildo-ai/external-connectors-models';\n\n// ── Invoice Preview ────────────────────────────────────────────────\n\n/**\n * Invoice preview: returned by previewPlanChange() to show prorated cost before committing.\n * Data comes from provider (Stripe's upcoming invoice API), NOT stored locally.\n *\n * All monetary amounts use MoneyValue for bigint precision and self-contained currency.\n */\nexport interface InvoicePreview {\n /** Prorated amount to charge/credit */\n amount: MoneyValue;\n /** Line items breakdown (what changed, prorated amounts) */\n lineItems: Array<{\n description: string;\n amount: MoneyValue;\n quantity: number;\n }>;\n /** When this amount would be charged */\n periodStart: Date;\n periodEnd: Date;\n}\n\n// ── Usage Summary ──────────────────────────────────────────────────\n\n/**\n * Usage summary: aggregated usage data for the frontend UsageDashboard.\n * Computed from UsageRecords, keyed by metered product key.\n *\n * Authored as a Zod schema (not a bare interface) so it can compose into\n * `BillingStateResponseSchema` — the runtime contract wired as the `GET_STATE`\n * custom operation's `customResponseDto`. `UsageSummary` is derived from it to\n * keep the type and the runtime shape from drifting.\n */\nexport const UsageSummarySchema = z.object({\n /** Usage per metered product, keyed by product key */\n byProduct: z.record(\n z.string(),\n z.object({\n currentPeriodUsage: z.number(),\n /** Previous period (for trend display) */\n previousPeriodUsage: z.number().optional(),\n /** Usage limit (from product/subscription, if applicable) */\n limit: z.number().optional(),\n /** Last usage recorded at */\n lastRecordedAt: z.date().optional(),\n }),\n ),\n});\nexport type UsageSummary = z.infer<typeof UsageSummarySchema>;\n\n// ── Billing State Response ─────────────────────────────────────────\n\n/**\n * Per-pool credit balance projection embedded in the aggregated billing state.\n *\n * A lean view (NOT the full `CreditPool` resource) built by the billing-state\n * facade purely for the frontend balance display, keyed by pool key.\n */\nexport const CreditPoolBalanceSchema = z.object({\n available: z.number(),\n totalPurchased: z.number(),\n totalConsumed: z.number(),\n});\nexport type CreditPoolBalance = z.infer<typeof CreditPoolBalanceSchema>;\n\n/**\n * Aggregated billing state returned by the lazy facade endpoint.\n * Single source of truth for frontend BillingProvider and backend controller.\n *\n * Authored as a Zod schema (not a bare interface) because the `GET_STATE`\n * custom operation wires it as its `customResponseDto`. That operation borrows\n * the COUNT verb for its route/verb via `resourceOperationLike` but returns\n * THIS aggregated shape — so without a `customResponseDto` the DTO builder would\n * assign it the COUNT default envelope (`{ count }`), and the service output\n * would fail `transformOutput`'s `internalDto.parse` → HTTP 500. The composed\n * schema gives the builder the real runtime contract to validate against and to\n * project the external response. `BillingStateResponse` is derived from it so the\n * type and the runtime contract cannot drift.\n */\nexport const BillingStateResponseSchema = z.object({\n billingAccount: BillingAccountSchema.nullable(),\n subscription: BillingSubscriptionBaseSchema.nullable(),\n products: z.array(ProductSchema),\n prices: z.array(PriceSchema),\n invoices: z.array(InvoiceRefSchema),\n usage: UsageSummarySchema,\n creditPools: z.record(z.string(), CreditPoolBalanceSchema),\n /**\n * Scope/product-visible promotions for the current billing surface.\n *\n * This list intentionally excludes promotions that are inactive, exhausted,\n * unsynced with the billing provider, or targeted only at products outside the\n * current scope. It is not a promise that every entry is redeemable for any\n * arbitrary checkout item the user might pick next.\n */\n activePromotions: z.array(PromotionSchema),\n scopeType: z.enum(ResourcePrimaryScope),\n});\nexport type BillingStateResponse = z.infer<typeof BillingStateResponseSchema>;\n"]}
1
+ {"version":3,"file":"billing-types.shared.schemas.js","sourceRoot":"","sources":["../../../src/billing/billing-types.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AA8B7E,sEAAsE;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,sDAAsD;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,CACjB,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC9B,0CAA0C;QAC1C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1C,6DAA6D;QAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,6BAA6B;QAC7B,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CACH;CACF,CAAC,CAAC;AAGH,sEAAsE;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAGH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,YAAY,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IACtD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACnC,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC;IAC1D;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;CACxC,CAAC,CAAC","sourcesContent":["/**\n * Billing Supporting Types (Shared)\n *\n * Types used by the billing API, frontend hooks, and provider interface.\n * These are NOT DB schemas — they are API response shapes, provider abstractions,\n * and aggregated views.\n *\n * @see billing-and-features-system.md §6.2c (Supporting Types)\n */\n\nimport { z } from 'zod';\nimport type { MoneyValue } from '@wildo-ai/zod-decorators';\nimport { BillingAccountSchema } from './billing-account.shared.schemas';\nimport { BillingSubscriptionBaseSchema } from './subscription.shared.schemas';\nimport { ProductSchema } from './product.shared.schemas';\nimport { PriceSchema } from './price.shared.schemas';\nimport { InvoiceRefSchema } from './invoice-ref.shared.schemas';\nimport { PromotionSchema } from './promotions.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\n\n// ── Provider Canonical Types ───────────────────────────────────────\n// StandardBilling_SubscriptionData and StandardBilling_InvoicePreview are\n// defined in @wildo-ai/external-connectors-models (standard billing interface)\n// and re-exported here for convenience.\nexport type { StandardBilling_SubscriptionData, StandardBilling_InvoicePreview } from '@wildo-ai/external-connectors-models';\n\n// ── Invoice Preview ────────────────────────────────────────────────\n\n/**\n * Invoice preview: returned by previewPlanChange() to show prorated cost before committing.\n * Data comes from provider (Stripe's upcoming invoice API), NOT stored locally.\n *\n * All monetary amounts use MoneyValue for bigint precision and self-contained currency.\n */\nexport interface InvoicePreview {\n /** Prorated amount to charge/credit */\n amount: MoneyValue;\n /** Line items breakdown (what changed, prorated amounts) */\n lineItems: Array<{\n description: string;\n amount: MoneyValue;\n quantity: number;\n }>;\n /** When this amount would be charged */\n periodStart: Date;\n periodEnd: Date;\n}\n\n// ── Usage Summary ──────────────────────────────────────────────────\n\n/**\n * Usage summary: aggregated usage data for the frontend UsageDashboard.\n * Computed from UsageRecords, keyed by metered product key.\n *\n * Authored as a Zod schema (not a bare interface) so it can compose into\n * `BillingStateResponseSchema` — the runtime contract wired as the `GET_STATE`\n * custom operation's `customResponseDto`. `UsageSummary` is derived from it to\n * keep the type and the runtime shape from drifting.\n */\nexport const UsageSummarySchema = z.object({\n /** Usage per metered product, keyed by product key */\n byProduct: z.record(\n z.string(),\n z.object({\n currentPeriodUsage: z.number(),\n /** Previous period (for trend display) */\n previousPeriodUsage: z.number().optional(),\n /** Usage limit (from product/subscription, if applicable) */\n limit: z.number().optional(),\n /** Last usage recorded at */\n lastRecordedAt: z.date().optional(),\n }),\n ),\n});\nexport type UsageSummary = z.infer<typeof UsageSummarySchema>;\n\n// ── Billing State Response ─────────────────────────────────────────\n\n/**\n * Per-pool credit balance projection embedded in the aggregated billing state.\n *\n * A lean view (NOT the full `CreditPool` resource) built by the billing-state\n * facade purely for the frontend balance display, keyed by pool key.\n */\nexport const CreditPoolBalanceSchema = z.object({\n available: z.number(),\n totalPurchased: z.number(),\n totalConsumed: z.number(),\n});\nexport type CreditPoolBalance = z.infer<typeof CreditPoolBalanceSchema>;\n\n/**\n * Aggregated billing state returned by the lazy facade endpoint.\n * Single source of truth for frontend BillingProvider and backend controller.\n *\n * Authored as a Zod schema (not a bare interface) because the `GET_STATE`\n * custom operation wires it as its `customResponseDto`. That operation borrows\n * the COUNT verb for its route/verb via `resourceOperationLike` but returns\n * THIS aggregated shape — so without a `customResponseDto` the DTO builder would\n * assign it the COUNT default envelope (`{ count }`), and the service output\n * would fail `transformOutput`'s `internalDto.parse` → HTTP 500. The composed\n * schema gives the builder the real runtime contract to validate against and to\n * project the external response. `BillingStateResponse` is derived from it so the\n * type and the runtime contract cannot drift.\n */\nexport const BillingStateResponseSchema = z.object({\n billingAccount: BillingAccountSchema.nullable(),\n subscription: BillingSubscriptionBaseSchema.nullable(),\n products: z.array(ProductSchema),\n prices: z.array(PriceSchema),\n invoices: z.array(InvoiceRefSchema),\n usage: UsageSummarySchema,\n creditPools: z.record(z.string(), CreditPoolBalanceSchema),\n /**\n * Scope/product-visible promotions for the current billing surface.\n *\n * This list intentionally excludes promotions that are inactive, exhausted,\n * unsynced with the billing provider, or targeted only at products outside the\n * current scope. It is not a promise that every entry is redeemable for any\n * arbitrary checkout item the user might pick next.\n */\n activePromotions: z.array(PromotionSchema),\n /**\n * The subset of `products` (by `key`) a caller may ACQUIRE right now — buy, or move a\n * subscription onto.\n *\n * ## Why a sibling key set rather than a filter on `products`\n *\n * One call serves two surfaces that want OPPOSITE things from it. An acquisition surface (a\n * pricing table) must not offer a plan the purchase gate will refuse; a holding surface (the\n * \"your current plan\" panel, the subscription-item → product resolution in the frontend billing\n * context) must still be able to NAME a plan the catalogue has withdrawn, because a customer\n * already on a retired plan is exactly who needs to see what they hold. Filtering `products` by\n * `isActive` would serve the first and break the second — the same trade the `REMOVE_ADDON` call\n * site settles by reading with `REFERENCE` intent rather than `ACQUIRE`.\n *\n * So the response DISTINGUISHES instead of filtering: `products` stays the full scope-visible\n * catalog, and this set states which of them acquisition may offer.\n *\n * ## Why the server answers it at all\n *\n * `Product.isActive` is the declared off-boarding path, and the backend gate that makes\n * retirement TRUE (`readProductByKey` with `ACQUIRE` intent) applies ONE predicate to it. A\n * listing surface holds rows, not keys, so it cannot use that reader — and every listing left to\n * itself re-derives the rule from the raw column. That had already happened twice by 2026-09-09,\n * in a frontend component and in the reader, agreeing only by luck. This set is computed by the\n * gate's own predicate, so a surface that reads it cannot drift from what checkout will accept.\n *\n * NOT a visibility answer: `isPublic` is a per-surface decision the server cannot take for every\n * caller (a back-office catalog shows non-public rows). A customer pricing table composes the\n * two; it must not re-spell either.\n *\n * ## Optional under protest — and what would make it required\n *\n * `BillingStateBackendService.getState` ALWAYS sets it, so on this engine's own wire it is never\n * absent. It is `.optional()` for exactly one reason: `BillingContext.tsx` rebuilds the state\n * object field-by-field from the HTTP response rather than passing it through, so every field\n * added here is a compile break in a file this change may not edit. That hand-kept copy is the\n * real defect — it makes any additive contract change breaking — and the field should be made\n * REQUIRED in the same change that has the frontend read it.\n *\n * Absence therefore means \"the producer did not project acquirability\", never \"nothing is\n * acquirable\" and never \"everything is\". A consumer that receives the set MUST use it in\n * preference to re-deriving the rule; a consumer that does not is on the older, weaker footing\n * this field exists to retire.\n */\n acquirableProductKeys: z.array(z.string()).optional(),\n scopeType: z.enum(ResourcePrimaryScope),\n});\nexport type BillingStateResponse = z.infer<typeof BillingStateResponseSchema>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"credit-pool.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/credit-pool.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gDAAgD,CAAC;AAczG,oBAAY,qBAAqB;IAC/B;gEAC4D;IAC5D,OAAO,YAAY;IACnB;8GAC0G;IAC1G,MAAM,WAAW;CAClB;AAID,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,eAAO,MAAM,+BAA+B,wQA0J3C,CAAC"}
1
+ {"version":3,"file":"credit-pool.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/credit-pool.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gDAAgD,CAAC;AAczG,oBAAY,qBAAqB;IAC/B;gEAC4D;IAC5D,OAAO,YAAY;IACnB;8GAC0G;IAC1G,MAAM,WAAW;CAClB;AAID,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,eAAO,MAAM,+BAA+B,wQA0J3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"credit-pool.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/credit-pool.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;iBAwB3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI1D,eAAO,MAAM,iCAAiC;;;;;;;;;kBAU5C,CAAC"}
1
+ {"version":3,"file":"credit-pool.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/credit-pool.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;iBAwB3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI1D,eAAO,MAAM,iCAAiC;;;;;;;;;kBAU5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-ref.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/invoice-ref.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gDAAgD,CAAC;AAYzG,eAAO,MAAM,+BAA+B,oRAwH3C,CAAC"}
1
+ {"version":3,"file":"invoice-ref.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/invoice-ref.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gDAAgD,CAAC;AAYzG,eAAO,MAAM,+BAA+B,oRAwH3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-ref.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/invoice-ref.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAmD3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI1D,eAAO,MAAM,iCAAiC;;;;;;;;;;kBAQ5C,CAAC"}
1
+ {"version":3,"file":"invoice-ref.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/invoice-ref.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAmD3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI1D,eAAO,MAAM,iCAAiC;;;;;;;;;;kBAQ5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"price.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/price.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,qBAAqB,EAAwD,MAAM,gDAAgD,CAAC;AAC7I,OAAO,EAGL,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAI/C,KAAK,aAAa,GACd,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,CAAC;AAEjC,eAAO,MAAM,iDAAiD,GAC5D,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;iCAsE9C,CAAC"}
1
+ {"version":3,"file":"price.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/price.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,qBAAqB,EAAwD,MAAM,gDAAgD,CAAC;AAC7I,OAAO,EAGL,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAI/C,KAAK,aAAa,GACd,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,CAAC;AAEjC,eAAO,MAAM,iDAAiD,GAC5D,wBAAwB,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;iCAsE9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"price.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/price.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,EACf,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;iBAO1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;iBA4CtB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"price.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/price.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,EACf,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;iBAO1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;iBAkDtB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -55,7 +55,13 @@ export const PriceSchema = z.object({
55
55
  usageAggregation: z.enum(UsageAggregationType).optional(),
56
56
  /**
57
57
  * Tax behavior for this price (maps to Stripe's price.tax_behavior).
58
- * Resolved from: price-level override > product.taxDisplayMode > BillingConfiguration.tax.defaultDisplayMode.
58
+ *
59
+ * There is NO resolution chain: this value alone reaches the provider. The catalog sync passes
60
+ * `taxBehavior` straight through on both the price upsert and the provider price creation, so
61
+ * leaving it unset does not fall back to `product.taxDisplayMode` or to
62
+ * `BillingConfiguration.tax.defaultDisplayMode`. The provider call simply omits `tax_behavior`
63
+ * and the billing account's own default decides. Declare it here on every price whose tax
64
+ * presentation matters.
59
65
  * - 'exclusive': amount is HT, tax added on top
60
66
  * - 'inclusive': amount is TTC, tax embedded
61
67
  * When absent: inherits from product, then from global config.
@@ -1 +1 @@
1
- {"version":3,"file":"price.shared.schemas.js","sourceRoot":"","sources":["../../../../src/billing/price.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,gCAAgC,CAAC;AAExC,sEAAsE;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,sEAAsE;IACtE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAChF,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;CACjF,CAAC,CAAC;AAGH,sEAAsE;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAElC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE;IACtD,sCAAsC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE;IAEzD,iEAAiE;IACjE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;IACvE;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE;IAEjG,uDAAuD;IACvD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE;IAC7D,iFAAiF;IACjF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3C,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAC1C,iEAAiE;IACjE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,gDAAgD;IAChD,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAEzD;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAE9C,mEAAmE;IACnE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE;IACtD,4EAA4E;IAC5E,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,mDAAmD;IACnD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;IAEjD,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE;CACtF,CAAC,CAAC","sourcesContent":["/**\n * Price & Price Tier Schemas (Shared)\n *\n * Prices define how much a product costs. A product can have multiple prices\n * (e.g., monthly vs. yearly, different currencies).\n *\n * Prices are APPLICATION-scoped, linked to a Product via productId.\n * Like products, they are populated lazily from the code-defined catalog.\n *\n * @see billing-and-features-system.md §6.2 (Product & Price Catalog)\n */\n\nimport { z } from 'zod';\nimport { z_money, CurrencyAllowed } from '@wildo-ai/zod-decorators';\nimport {\n PricingModel,\n BillingInterval,\n UsageAggregationType,\n TaxDisplayMode,\n} from './billing-enums.shared.schemas';\n\n// ── Price Tier ─────────────────────────────────────────────────────\n\n/**\n * A single tier in a tiered/graduated pricing model.\n * `upTo: null` means \"infinity\" (the final open-ended tier).\n *\n * Tier amounts carry their own currency via z_money for:\n * - Self-describing data (no implicit dependency on parent Price's currency)\n * - Proper money input rendering in forms\n * - Bigint precision for all monetary values\n */\nexport const PriceTierSchema = z.object({\n /** Upper bound for this tier (null = infinity, i.e. the last tier) */\n upTo: z.number().nullable(),\n /** Per-unit price for this tier */\n unitPrice: z_money({ currenciesAllowed: [CurrencyAllowed.FIAT], minAmount: 0n }),\n /** Flat price added to this tier (on top of unit pricing) */\n flatPrice: z_money({ currenciesAllowed: [CurrencyAllowed.FIAT], minAmount: 0n }),\n});\nexport type PriceTier = z.infer<typeof PriceTierSchema>;\n\n// ── Price ──────────────────────────────────────────────────────────\n\nexport const PriceSchema = z.object({\n\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** Reference to the parent product */\n productId: z.string().min(1).isForeignKey().isDBIndexed(),\n\n /** Pricing model (flat, per_unit, tiered, graduated, package) */\n model: z.enum(PricingModel).isSummaryField().systemEnum('PricingModel'),\n /**\n * Unit price for FLAT/PER_UNIT models.\n * Uses z_money for bigint precision, self-contained currency, and proper form rendering.\n * Undefined for TIERED/GRADUATED models (use `tiers` instead).\n */\n unitPrice: z_money({ currenciesAllowed: [CurrencyAllowed.FIAT], minAmount: 0n }).isSummaryField(),\n\n /** Billing interval (undefined for one-time prices) */\n interval: z.enum(BillingInterval).optional().isSummaryField(),\n /** Interval count (e.g., 3 for quarterly = interval:'month', intervalCount:3) */\n intervalCount: z.number().min(1).default(1),\n\n /** Tiers for TIERED/GRADUATED pricing models */\n tiers: z.array(PriceTierSchema).optional(),\n /** Package size for PACKAGE pricing model (price per N units) */\n packageSize: z.number().min(1).optional(),\n /** Usage aggregation type for metered prices */\n usageAggregation: z.enum(UsageAggregationType).optional(),\n\n /**\n * Tax behavior for this price (maps to Stripe's price.tax_behavior).\n * Resolved from: price-level override > product.taxDisplayMode > BillingConfiguration.tax.defaultDisplayMode.\n * - 'exclusive': amount is HT, tax added on top\n * - 'inclusive': amount is TTC, tax embedded\n * When absent: inherits from product, then from global config.\n */\n taxBehavior: z.enum(TaxDisplayMode).optional(),\n\n /** Provider sync (lazy: populated on first use, not at startup) */\n providerPriceId: z.string().optional().isBackendOnly(),\n /** Whether this is the default price for the product (shown first in UI) */\n isDefault: z.boolean().default(true),\n /** Whether this price is available for purchase */\n isActive: z.boolean().default(true).isDBIndexed(),\n\n createdAt: z.date().default(() => new Date()).excludeFromCreate().excludeFromUpdate(),\n});\nexport type Price = z.infer<typeof PriceSchema>;\n"]}
1
+ {"version":3,"file":"price.shared.schemas.js","sourceRoot":"","sources":["../../../src/billing/price.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,gCAAgC,CAAC;AAExC,sEAAsE;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,sEAAsE;IACtE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAChF,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;CACjF,CAAC,CAAC;AAGH,sEAAsE;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAElC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE;IACtD,sCAAsC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE;IAEzD,iEAAiE;IACjE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;IACvE;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE;IAEjG,uDAAuD;IACvD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE;IAC7D,iFAAiF;IACjF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3C,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAC1C,iEAAiE;IACjE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,gDAAgD;IAChD,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAEzD;;;;;;;;;;;;OAYG;IACH,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAE9C,mEAAmE;IACnE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE;IACtD,4EAA4E;IAC5E,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,mDAAmD;IACnD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;IAEjD,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE;CACtF,CAAC,CAAC","sourcesContent":["/**\n * Price & Price Tier Schemas (Shared)\n *\n * Prices define how much a product costs. A product can have multiple prices\n * (e.g., monthly vs. yearly, different currencies).\n *\n * Prices are APPLICATION-scoped, linked to a Product via productId.\n * Like products, they are populated lazily from the code-defined catalog.\n *\n * @see billing-and-features-system.md §6.2 (Product & Price Catalog)\n */\n\nimport { z } from 'zod';\nimport { z_money, CurrencyAllowed } from '@wildo-ai/zod-decorators';\nimport {\n PricingModel,\n BillingInterval,\n UsageAggregationType,\n TaxDisplayMode,\n} from './billing-enums.shared.schemas';\n\n// ── Price Tier ─────────────────────────────────────────────────────\n\n/**\n * A single tier in a tiered/graduated pricing model.\n * `upTo: null` means \"infinity\" (the final open-ended tier).\n *\n * Tier amounts carry their own currency via z_money for:\n * - Self-describing data (no implicit dependency on parent Price's currency)\n * - Proper money input rendering in forms\n * - Bigint precision for all monetary values\n */\nexport const PriceTierSchema = z.object({\n /** Upper bound for this tier (null = infinity, i.e. the last tier) */\n upTo: z.number().nullable(),\n /** Per-unit price for this tier */\n unitPrice: z_money({ currenciesAllowed: [CurrencyAllowed.FIAT], minAmount: 0n }),\n /** Flat price added to this tier (on top of unit pricing) */\n flatPrice: z_money({ currenciesAllowed: [CurrencyAllowed.FIAT], minAmount: 0n }),\n});\nexport type PriceTier = z.infer<typeof PriceTierSchema>;\n\n// ── Price ──────────────────────────────────────────────────────────\n\nexport const PriceSchema = z.object({\n\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n /** Reference to the parent product */\n productId: z.string().min(1).isForeignKey().isDBIndexed(),\n\n /** Pricing model (flat, per_unit, tiered, graduated, package) */\n model: z.enum(PricingModel).isSummaryField().systemEnum('PricingModel'),\n /**\n * Unit price for FLAT/PER_UNIT models.\n * Uses z_money for bigint precision, self-contained currency, and proper form rendering.\n * Undefined for TIERED/GRADUATED models (use `tiers` instead).\n */\n unitPrice: z_money({ currenciesAllowed: [CurrencyAllowed.FIAT], minAmount: 0n }).isSummaryField(),\n\n /** Billing interval (undefined for one-time prices) */\n interval: z.enum(BillingInterval).optional().isSummaryField(),\n /** Interval count (e.g., 3 for quarterly = interval:'month', intervalCount:3) */\n intervalCount: z.number().min(1).default(1),\n\n /** Tiers for TIERED/GRADUATED pricing models */\n tiers: z.array(PriceTierSchema).optional(),\n /** Package size for PACKAGE pricing model (price per N units) */\n packageSize: z.number().min(1).optional(),\n /** Usage aggregation type for metered prices */\n usageAggregation: z.enum(UsageAggregationType).optional(),\n\n /**\n * Tax behavior for this price (maps to Stripe's price.tax_behavior).\n *\n * There is NO resolution chain: this value alone reaches the provider. The catalog sync passes\n * `taxBehavior` straight through on both the price upsert and the provider price creation, so\n * leaving it unset does not fall back to `product.taxDisplayMode` or to\n * `BillingConfiguration.tax.defaultDisplayMode`. The provider call simply omits `tax_behavior`\n * and the billing account's own default decides. Declare it here on every price whose tax\n * presentation matters.\n * - 'exclusive': amount is HT, tax added on top\n * - 'inclusive': amount is TTC, tax embedded\n * When absent: inherits from product, then from global config.\n */\n taxBehavior: z.enum(TaxDisplayMode).optional(),\n\n /** Provider sync (lazy: populated on first use, not at startup) */\n providerPriceId: z.string().optional().isBackendOnly(),\n /** Whether this is the default price for the product (shown first in UI) */\n isDefault: z.boolean().default(true),\n /** Whether this price is available for purchase */\n isActive: z.boolean().default(true).isDBIndexed(),\n\n createdAt: z.date().default(() => new Date()).excludeFromCreate().excludeFromUpdate(),\n});\nexport type Price = z.infer<typeof PriceSchema>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"product-behavior-policy.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/billing/product-behavior-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB;;;iBAK3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI1D;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqDtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
1
+ {"version":3,"file":"product-behavior-policy.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/billing/product-behavior-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB;;;iBAK3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI1D;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8FtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -44,7 +44,17 @@ export const ProductBehaviorPolicySchema = z.object({
44
44
  trial: z.object({
45
45
  /** Number of trial days (0 = no trial) */
46
46
  days: z.number().min(0).default(0),
47
- /** Whether to require a payment method before trial starts */
47
+ /**
48
+ * Require a payment method before the trial starts. READ since 2026-09-08 (#408).
49
+ *
50
+ * It reached no provider call before that, so a trial declared as requiring a card behaved
51
+ * identically to one that did not — Wonder Todos' enterprise plan (`true`) and professional
52
+ * plan (`false`) were indistinguishable at the provider.
53
+ *
54
+ * Only meaningful WITH a trial: a product declaring it alongside `days: 0` demands nothing,
55
+ * because asking for a card up front on a purchase with no trial is a different decision and
56
+ * nobody authored it.
57
+ */
48
58
  requirePaymentMethod: z.boolean().default(false),
49
59
  }).optional(),
50
60
  /** Upgrade behavior (when switching TO this plan from a lower tier) */
@@ -67,22 +77,53 @@ export const ProductBehaviorPolicySchema = z.object({
67
77
  defaultBehavior: z.enum(BillingTiming).default(BillingTiming.AT_PERIOD_END),
68
78
  }).optional(),
69
79
  /**
70
- * Authored metering policy (for METERED products only).
80
+ * Authored metering policy (for METERED products only), READ by
81
+ * `UsageMeteringBackendService` since 2026-09-08 (#415).
71
82
  *
72
- * The current `UsageMeteringBackendService` does not yet consume these
73
- * scheduling, aggregation-window or retry values: it groups every pending row
74
- * by billing account and product whenever the externally scheduled flush runs.
75
- * Keep this distinction visible so configuration documentation does not turn
76
- * an accepted policy shape into a false runtime guarantee.
83
+ * Every field here was declared, defaulted, documented and read by NOTHING until then: the flush
84
+ * merged every pending row by billing account and product whatever the product said, so
85
+ * `preFlushAggregation: false` was unrepresentable and `aggregationWindow`'s two members selected
86
+ * between behaviours that were the same behaviour. The note that stood here said exactly that and
87
+ * asked that the gap stay visible rather than become "a false runtime guarantee"; this replaces it
88
+ * because the guarantee is now real, and says which reader makes each field true.
77
89
  */
78
90
  metering: z.object({
79
- /** How often to flush aggregated usage to billing provider (minutes) */
91
+ /**
92
+ * How often to flush aggregated usage to the billing provider (minutes).
93
+ *
94
+ * Read by the engine's usage-flush batch, which picks the SHORTEST interval any metered product
95
+ * authors — a schedule is one thing and the products sharing it are many, so the fastest promise
96
+ * is the one that has to be kept. A product asking for less frequent reporting than its neighbour
97
+ * still gets reported at the neighbour's cadence, which costs nothing: reporting sooner than
98
+ * authored is never wrong, reporting later than authored is.
99
+ */
80
100
  flushIntervalMinutes: z.number().min(1).default(60),
81
- /** Aggregation window for usage records before flush */
101
+ /**
102
+ * Whether one meter event may span a billing-period boundary.
103
+ *
104
+ * This is not a preference, it is a correctness choice about MONEY. A merged group carries ONE
105
+ * timestamp and the provider assigns the event to the period that timestamp falls in, so
106
+ * `PER_FLUSH` merging across a boundary bills the earlier period's usage into the later one.
107
+ * `PER_BILLING_PERIOD` splits at the boundary, derived from the subscription's own
108
+ * `currentPeriodStart` / `currentPeriodEnd`. Leave it `PER_FLUSH` when the product's periods do
109
+ * not change what it costs.
110
+ */
82
111
  aggregationWindow: z.enum(MeteringAggregationWindow).default(MeteringAggregationWindow.PER_FLUSH),
83
- /** Aggregate locally before sending (sum up same-key records) */
112
+ /**
113
+ * Aggregate locally before sending (sum same-key records into one meter event).
114
+ *
115
+ * `false` sends one event per recorded row, each with its own instant. Choose it when the provider
116
+ * must see every event — because its aggregation is not a sum, or because the individual instants
117
+ * matter. Local merging destroys both irreversibly, before the provider ever sees them.
118
+ */
84
119
  preFlushAggregation: z.boolean().default(true),
85
- /** Retry policy when provider flush fails */
120
+ /**
121
+ * Retry policy when a provider report fails.
122
+ *
123
+ * Safe only because every meter event carries a derived idempotency identifier: a retry after a
124
+ * response lost in transit re-sends the same identifier and the provider discards it. Retrying
125
+ * without that is how a timeout becomes a double charge, which is why the two shipped together.
126
+ */
86
127
  retryPolicy: z.object({
87
128
  maxRetries: z.number().default(3),
88
129
  backoffMultiplier: z.number().default(2),