@openlup/platform 0.26.0 → 0.28.0

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 (603) hide show
  1. package/CHANGELOG.md +305 -327
  2. package/README.md +332 -16
  3. package/dist/account-support/accountReadFacade.d.ts +8 -0
  4. package/dist/account-support/accountReadFacade.js +10 -0
  5. package/dist/account-support/accountReadModels.d.ts +69 -0
  6. package/dist/account-support/accountReadModels.js +272 -0
  7. package/dist/account-support/bindings.d.ts +23 -0
  8. package/dist/account-support/bindings.js +16 -0
  9. package/dist/account-support/contracts/account.d.ts +281 -0
  10. package/dist/account-support/contracts/account.js +1 -0
  11. package/dist/account-support/contracts/capabilities.d.ts +44 -0
  12. package/dist/account-support/contracts/capabilities.js +1 -0
  13. package/dist/account-support/contracts/commands.d.ts +307 -0
  14. package/dist/account-support/contracts/commands.js +1 -0
  15. package/dist/account-support/contracts/customer360.d.ts +154 -0
  16. package/dist/account-support/contracts/customer360.js +1 -0
  17. package/dist/account-support/contracts/index.d.ts +10 -0
  18. package/dist/account-support/contracts/index.js +1 -0
  19. package/dist/account-support/contracts/invoice.d.ts +79 -0
  20. package/dist/account-support/contracts/invoice.js +1 -0
  21. package/dist/account-support/contracts/operator.d.ts +289 -0
  22. package/dist/account-support/contracts/operator.js +1 -0
  23. package/dist/account-support/contribution.d.ts +24 -0
  24. package/dist/account-support/contribution.js +22 -0
  25. package/dist/account-support/customer360.d.ts +106 -0
  26. package/dist/account-support/customer360.js +163 -0
  27. package/dist/account-support/customerAccountReadDiagnostics.d.ts +11 -0
  28. package/dist/account-support/customerAccountReadDiagnostics.js +71 -0
  29. package/dist/account-support/index.d.ts +26 -0
  30. package/dist/account-support/index.js +15 -0
  31. package/dist/account-support/invoiceAccess.d.ts +57 -0
  32. package/dist/account-support/invoiceAccess.js +40 -0
  33. package/dist/account-support/migrations.d.ts +14 -0
  34. package/dist/account-support/migrations.js +7 -0
  35. package/dist/account-support/operatorAuthority.d.ts +67 -0
  36. package/dist/account-support/operatorAuthority.js +379 -0
  37. package/dist/account-support/operatorRecovery.d.ts +66 -0
  38. package/dist/account-support/operatorRecovery.js +129 -0
  39. package/dist/account-support/orderHistory.d.ts +50 -0
  40. package/dist/account-support/orderHistory.js +188 -0
  41. package/dist/account-support/paymentMethodComposition.d.ts +5 -0
  42. package/dist/account-support/paymentMethodComposition.js +4 -0
  43. package/dist/account-support/postgresOperatorAuthority.d.ts +16 -0
  44. package/dist/account-support/postgresOperatorAuthority.js +93 -0
  45. package/dist/account-support/selfService.d.ts +6 -0
  46. package/dist/account-support/selfService.js +81 -0
  47. package/dist/account-support/subscriptionCommandCodec.d.ts +10 -0
  48. package/dist/account-support/subscriptionCommandCodec.js +38 -0
  49. package/dist/catalog/draftSchemas.d.ts +1 -1
  50. package/dist/catalog/foundationSchemas.d.ts +3 -3
  51. package/dist/catalog/resolvedSkuProjection.d.ts +2 -2
  52. package/dist/catalog/sellableSchemas.d.ts +2 -2
  53. package/dist/commerce/adapters/managed/commerceOmsControlPlane.d.ts +3 -0
  54. package/dist/commerce/adapters/managed/commerceOmsControlPlane.js +71 -0
  55. package/dist/commerce/adapters/managed/commerceOmsMutations.d.ts +10 -0
  56. package/dist/commerce/adapters/managed/commerceOmsMutations.js +119 -0
  57. package/dist/commerce/adapters/managed/commerceOmsPort.d.ts +28 -0
  58. package/dist/commerce/adapters/managed/commerceOmsPort.js +101 -0
  59. package/dist/commerce/adapters/managed/oms/accounting.d.ts +3 -0
  60. package/dist/commerce/adapters/managed/oms/accounting.js +13 -0
  61. package/dist/commerce/adapters/managed/oms/fulfillmentReads.d.ts +17 -0
  62. package/dist/commerce/adapters/managed/oms/fulfillmentReads.js +81 -0
  63. package/dist/commerce/adapters/managed/oms/inboundEvents.d.ts +9 -0
  64. package/dist/commerce/adapters/managed/oms/inboundEvents.js +40 -0
  65. package/dist/commerce/adapters/managed/oms/outboxEvents.d.ts +2 -0
  66. package/dist/commerce/adapters/managed/oms/outboxEvents.js +23 -0
  67. package/dist/commerce/adapters/managed/oms/paymentAttempts.d.ts +3 -0
  68. package/dist/commerce/adapters/managed/oms/paymentAttempts.js +15 -0
  69. package/dist/commerce/adapters/managed/oms/queueSelection.d.ts +12 -0
  70. package/dist/commerce/adapters/managed/oms/queueSelection.js +109 -0
  71. package/dist/commerce/adapters/managed/oms/readProjections.d.ts +18 -0
  72. package/dist/commerce/adapters/managed/oms/readProjections.js +13 -0
  73. package/dist/commerce/adapters/managed/oms/readQueries.d.ts +16 -0
  74. package/dist/commerce/adapters/managed/oms/readQueries.js +276 -0
  75. package/dist/commerce/adapters/managed/oms/types.d.ts +2 -0
  76. package/dist/commerce/adapters/managed/oms/types.js +7 -0
  77. package/dist/commerce/checkoutCommandSchemas.d.ts +89 -0
  78. package/dist/commerce/checkoutCommandSchemas.js +70 -0
  79. package/dist/commerce/checkoutHelpers.d.ts +21 -0
  80. package/dist/commerce/checkoutHelpers.js +29 -0
  81. package/dist/commerce/checkoutResumeSchemas.d.ts +158 -0
  82. package/dist/commerce/checkoutResumeSchemas.js +145 -0
  83. package/dist/commerce/checkoutSchemas.d.ts +158 -0
  84. package/dist/commerce/checkoutSchemas.js +161 -0
  85. package/dist/commerce/commerceReturnsPort.d.ts +97 -0
  86. package/dist/commerce/commerceReturnsPort.js +39 -0
  87. package/dist/commerce/configuratorIntentPersistenceSchemas.d.ts +20 -0
  88. package/dist/commerce/configuratorIntentPersistenceSchemas.js +21 -0
  89. package/dist/commerce/configuratorIntentSchemas.d.ts +63 -0
  90. package/dist/commerce/configuratorIntentSchemas.js +43 -0
  91. package/dist/commerce/contractPrimitives.d.ts +50 -0
  92. package/dist/commerce/contractPrimitives.js +25 -0
  93. package/dist/commerce/contracts/availability.d.ts +23 -0
  94. package/dist/commerce/contracts/availability.js +1 -0
  95. package/dist/commerce/contracts/fulfillmentRecovery.d.ts +25 -0
  96. package/dist/commerce/contracts/fulfillmentRecovery.js +1 -0
  97. package/dist/commerce/contracts/index.d.ts +13 -0
  98. package/dist/commerce/contracts/index.js +1 -0
  99. package/dist/commerce/contracts/intent.d.ts +86 -0
  100. package/dist/commerce/contracts/intent.js +1 -0
  101. package/dist/commerce/contracts/omsTypes.d.ts +1216 -0
  102. package/dist/commerce/contracts/omsTypes.js +1 -0
  103. package/dist/commerce/contracts/order.d.ts +39 -0
  104. package/dist/commerce/contracts/order.js +1 -0
  105. package/dist/commerce/contracts/orderMoney.d.ts +52 -0
  106. package/dist/commerce/contracts/orderMoney.js +1 -0
  107. package/dist/commerce/contracts/ports.d.ts +113 -0
  108. package/dist/commerce/contracts/ports.js +1 -0
  109. package/dist/commerce/contracts/recovery.d.ts +11 -0
  110. package/dist/commerce/contracts/recovery.js +1 -0
  111. package/dist/commerce/contracts/runtimePorts.d.ts +196 -0
  112. package/dist/commerce/contracts/runtimePorts.js +1 -0
  113. package/dist/commerce/contracts/state.d.ts +26 -0
  114. package/dist/commerce/contracts/state.js +43 -0
  115. package/dist/commerce/customerDefaultsSnapshotSchemas.d.ts +51 -0
  116. package/dist/commerce/customerDefaultsSnapshotSchemas.js +106 -0
  117. package/dist/commerce/errors.d.ts +18 -0
  118. package/dist/commerce/errors.js +36 -0
  119. package/dist/commerce/fulfillmentEligibility.d.ts +6 -0
  120. package/dist/commerce/fulfillmentEligibility.js +31 -0
  121. package/dist/commerce/index.d.ts +72 -0
  122. package/dist/commerce/index.js +67 -0
  123. package/dist/commerce/model/customerFulfillmentRecovery.d.ts +40 -0
  124. package/dist/commerce/model/customerFulfillmentRecovery.js +144 -0
  125. package/dist/commerce/model/fulfillmentCancellationEligibility.d.ts +7 -0
  126. package/dist/commerce/model/fulfillmentCancellationEligibility.js +9 -0
  127. package/dist/commerce/model/omsAccountingVisibility.d.ts +12 -0
  128. package/dist/commerce/model/omsAccountingVisibility.js +118 -0
  129. package/dist/commerce/model/omsBillingInvoiceBuyer.d.ts +2 -0
  130. package/dist/commerce/model/omsBillingInvoiceBuyer.js +15 -0
  131. package/dist/commerce/model/omsCurrency.d.ts +4 -0
  132. package/dist/commerce/model/omsCurrency.js +5 -0
  133. package/dist/commerce/model/omsFulfillmentDebug.d.ts +20 -0
  134. package/dist/commerce/model/omsFulfillmentDebug.js +122 -0
  135. package/dist/commerce/model/omsFulfillmentSummary.d.ts +16 -0
  136. package/dist/commerce/model/omsFulfillmentSummary.js +189 -0
  137. package/dist/commerce/model/omsListTotals.d.ts +13 -0
  138. package/dist/commerce/model/omsListTotals.js +32 -0
  139. package/dist/commerce/model/omsOperationalLadder.d.ts +51 -0
  140. package/dist/commerce/model/omsOperationalLadder.js +158 -0
  141. package/dist/commerce/model/omsOrderLineMoney.d.ts +4 -0
  142. package/dist/commerce/model/omsOrderLineMoney.js +25 -0
  143. package/dist/commerce/model/omsPaymentMethodSummary.d.ts +5 -0
  144. package/dist/commerce/model/omsPaymentMethodSummary.js +11 -0
  145. package/dist/commerce/model/omsReadModel.d.ts +43 -0
  146. package/dist/commerce/model/omsReadModel.js +211 -0
  147. package/dist/commerce/model/omsReadModelCommunication.d.ts +3 -0
  148. package/dist/commerce/model/omsReadModelCommunication.js +29 -0
  149. package/dist/commerce/model/omsReadModelHelpers.d.ts +125 -0
  150. package/dist/commerce/model/omsReadModelHelpers.js +212 -0
  151. package/dist/commerce/model/omsReadModelList.d.ts +33 -0
  152. package/dist/commerce/model/omsReadModelList.js +50 -0
  153. package/dist/commerce/model/omsReadModelListSummary.d.ts +3 -0
  154. package/dist/commerce/model/omsReadModelListSummary.js +13 -0
  155. package/dist/commerce/model/omsReadModelPricing.d.ts +5 -0
  156. package/dist/commerce/model/omsReadModelPricing.js +36 -0
  157. package/dist/commerce/model/omsReadModelProjections.d.ts +1 -0
  158. package/dist/commerce/model/omsReadModelProjections.js +1 -0
  159. package/dist/commerce/model/omsReadModelRowCore.d.ts +79 -0
  160. package/dist/commerce/model/omsReadModelRowCore.js +149 -0
  161. package/dist/commerce/model/omsReadModelRows.d.ts +1 -0
  162. package/dist/commerce/model/omsReadModelRows.js +6 -0
  163. package/dist/commerce/offerAvailability.d.ts +18 -0
  164. package/dist/commerce/offerAvailability.js +53 -0
  165. package/dist/commerce/offerAvailabilitySchemas.d.ts +43 -0
  166. package/dist/commerce/offerAvailabilitySchemas.js +42 -0
  167. package/dist/commerce/offerEvidenceSchemas.d.ts +7 -0
  168. package/dist/commerce/offerEvidenceSchemas.js +13 -0
  169. package/dist/commerce/oms/omsContractBase.d.ts +130 -0
  170. package/dist/commerce/oms/omsContractBase.js +86 -0
  171. package/dist/commerce/oms/omsContractReadAuxSchemas.d.ts +222 -0
  172. package/dist/commerce/oms/omsContractReadAuxSchemas.js +123 -0
  173. package/dist/commerce/oms/omsContractReadSchemas.d.ts +2266 -0
  174. package/dist/commerce/oms/omsContractReadSchemas.js +277 -0
  175. package/dist/commerce/oms/omsContractRequests.d.ts +196 -0
  176. package/dist/commerce/oms/omsContractRequests.js +118 -0
  177. package/dist/commerce/oms/omsContracts.d.ts +5 -0
  178. package/dist/commerce/oms/omsContracts.js +4 -0
  179. package/dist/commerce/oms/omsControlPlane.d.ts +275 -0
  180. package/dist/commerce/oms/omsControlPlane.js +72 -0
  181. package/dist/commerce/oms/omsFulfillmentContractSchemas.d.ts +203 -0
  182. package/dist/commerce/oms/omsFulfillmentContractSchemas.js +94 -0
  183. package/dist/commerce/oms/omsFulfillmentDebugSchemas.d.ts +69 -0
  184. package/dist/commerce/oms/omsFulfillmentDebugSchemas.js +33 -0
  185. package/dist/commerce/oms/omsFulfillmentHealthSchemas.d.ts +67 -0
  186. package/dist/commerce/oms/omsFulfillmentHealthSchemas.js +44 -0
  187. package/dist/commerce/oms/omsPorts.d.ts +84 -0
  188. package/dist/commerce/oms/omsPorts.js +148 -0
  189. package/dist/commerce/oms/omsPrimitives.d.ts +5 -0
  190. package/dist/commerce/oms/omsPrimitives.js +3 -0
  191. package/dist/commerce/oms/omsProviderEvidenceSchemas.d.ts +15 -0
  192. package/dist/commerce/oms/omsProviderEvidenceSchemas.js +12 -0
  193. package/dist/commerce/orderDraftErrors.d.ts +13 -0
  194. package/dist/commerce/orderDraftErrors.js +20 -0
  195. package/dist/commerce/orderEmailEligibility.d.ts +54 -0
  196. package/dist/commerce/orderEmailEligibility.js +123 -0
  197. package/dist/commerce/orderEmailLines.d.ts +12 -0
  198. package/dist/commerce/orderEmailLines.js +8 -0
  199. package/dist/commerce/orderFeedbackContracts.d.ts +41 -0
  200. package/dist/commerce/orderFeedbackContracts.js +33 -0
  201. package/dist/commerce/orderMoney.d.ts +6 -0
  202. package/dist/commerce/orderMoney.js +168 -0
  203. package/dist/commerce/orderReviewContracts.d.ts +475 -0
  204. package/dist/commerce/orderReviewContracts.js +94 -0
  205. package/dist/commerce/orderReviewPorts.d.ts +140 -0
  206. package/dist/commerce/orderReviewPorts.js +1 -0
  207. package/dist/commerce/outboxDispatchContracts.d.ts +30 -0
  208. package/dist/commerce/outboxDispatchContracts.js +1 -0
  209. package/dist/commerce/outboxEventSchemas.d.ts +162 -0
  210. package/dist/commerce/outboxEventSchemas.js +164 -0
  211. package/dist/commerce/outboxOrderDraftEmailPorts.d.ts +207 -0
  212. package/dist/commerce/outboxOrderDraftEmailPorts.js +12 -0
  213. package/dist/commerce/paymentContinuation.d.ts +4 -0
  214. package/dist/commerce/paymentContinuation.js +4 -0
  215. package/dist/commerce/ports.d.ts +8 -0
  216. package/dist/commerce/ports.js +1 -0
  217. package/dist/commerce/recoveryDestination.d.ts +3 -0
  218. package/dist/commerce/recoveryDestination.js +17 -0
  219. package/dist/commerce/runtimeErrors.d.ts +8 -0
  220. package/dist/commerce/runtimeErrors.js +16 -0
  221. package/dist/commerce/salesChannelEnvelope.d.ts +20 -0
  222. package/dist/commerce/salesChannelEnvelope.js +7 -0
  223. package/dist/commerce/schemas.d.ts +174 -0
  224. package/dist/commerce/schemas.js +84 -0
  225. package/dist/commerce/server/checkoutCompensation.d.ts +21 -0
  226. package/dist/commerce/server/checkoutCompensation.js +32 -0
  227. package/dist/commerce/server/checkoutConflictClassifiers.d.ts +17 -0
  228. package/dist/commerce/server/checkoutConflictClassifiers.js +38 -0
  229. package/dist/commerce/server/checkoutExpiredRecoveryPolicy.d.ts +38 -0
  230. package/dist/commerce/server/checkoutExpiredRecoveryPolicy.js +85 -0
  231. package/dist/commerce/server/checkoutInvoiceBuyerSnapshot.d.ts +22 -0
  232. package/dist/commerce/server/checkoutInvoiceBuyerSnapshot.js +30 -0
  233. package/dist/commerce/server/checkoutOfferPolicyPort.d.ts +33 -0
  234. package/dist/commerce/server/checkoutOfferPolicyPort.js +49 -0
  235. package/dist/commerce/server/checkoutPaymentContinuationCredential.d.ts +58 -0
  236. package/dist/commerce/server/checkoutPaymentContinuationCredential.js +154 -0
  237. package/dist/commerce/server/checkoutQuoteTypes.d.ts +19 -0
  238. package/dist/commerce/server/checkoutQuoteTypes.js +1 -0
  239. package/dist/commerce/server/checkoutRecoveryOrderPort.d.ts +42 -0
  240. package/dist/commerce/server/checkoutRecoveryOrderPort.js +1 -0
  241. package/dist/commerce/server/checkoutRecoveryToken.d.ts +40 -0
  242. package/dist/commerce/server/checkoutRecoveryToken.js +26 -0
  243. package/dist/commerce/server/checkoutRefusalContinuation.d.ts +24 -0
  244. package/dist/commerce/server/checkoutRefusalContinuation.js +18 -0
  245. package/dist/commerce/server/checkoutRuntimeTypes.d.ts +81 -0
  246. package/dist/commerce/server/checkoutRuntimeTypes.js +1 -0
  247. package/dist/commerce/server/commerceCheckoutCommandExecution.d.ts +60 -0
  248. package/dist/commerce/server/commerceCheckoutCommandExecution.js +136 -0
  249. package/dist/commerce/server/commerceCheckoutCompensation.d.ts +26 -0
  250. package/dist/commerce/server/commerceCheckoutCompensation.js +46 -0
  251. package/dist/commerce/server/commerceCheckoutContinuationTerms.d.ts +50 -0
  252. package/dist/commerce/server/commerceCheckoutContinuationTerms.js +66 -0
  253. package/dist/commerce/server/commerceCheckoutCustomerDefaults.d.ts +18 -0
  254. package/dist/commerce/server/commerceCheckoutCustomerDefaults.js +17 -0
  255. package/dist/commerce/server/commerceCheckoutFailureHandler.d.ts +51 -0
  256. package/dist/commerce/server/commerceCheckoutFailureHandler.js +90 -0
  257. package/dist/commerce/server/commerceCheckoutHandler.d.ts +213 -0
  258. package/dist/commerce/server/commerceCheckoutHandler.js +196 -0
  259. package/dist/commerce/server/commerceCheckoutHandlerAdmission.d.ts +58 -0
  260. package/dist/commerce/server/commerceCheckoutHandlerAdmission.js +94 -0
  261. package/dist/commerce/server/commerceCheckoutHandlerHelpers.d.ts +67 -0
  262. package/dist/commerce/server/commerceCheckoutHandlerHelpers.js +155 -0
  263. package/dist/commerce/server/commerceCheckoutOrchestrationError.d.ts +9 -0
  264. package/dist/commerce/server/commerceCheckoutOrchestrationError.js +14 -0
  265. package/dist/commerce/server/commerceCheckoutPromotionPriceChange.d.ts +47 -0
  266. package/dist/commerce/server/commerceCheckoutPromotionPriceChange.js +43 -0
  267. package/dist/commerce/server/commerceCheckoutProviderPayment.d.ts +34 -0
  268. package/dist/commerce/server/commerceCheckoutProviderPayment.js +37 -0
  269. package/dist/commerce/server/commerceCheckoutQuoteGuard.d.ts +62 -0
  270. package/dist/commerce/server/commerceCheckoutQuoteGuard.js +106 -0
  271. package/dist/commerce/server/commerceCheckoutResume.d.ts +29 -0
  272. package/dist/commerce/server/commerceCheckoutResume.js +81 -0
  273. package/dist/commerce/server/commerceCheckoutResumeGuard.d.ts +54 -0
  274. package/dist/commerce/server/commerceCheckoutResumeGuard.js +138 -0
  275. package/dist/commerce/server/commerceCheckoutSavedPaymentMethod.d.ts +39 -0
  276. package/dist/commerce/server/commerceCheckoutSavedPaymentMethod.js +44 -0
  277. package/dist/commerce/server/commerceCheckoutStartRuntimeFailure.d.ts +7 -0
  278. package/dist/commerce/server/commerceCheckoutStartRuntimeFailure.js +39 -0
  279. package/dist/commerce/server/commerceCheckoutTiming.d.ts +8 -0
  280. package/dist/commerce/server/commerceCheckoutTiming.js +31 -0
  281. package/dist/commerce/server/commerceDiagnostics.d.ts +6 -0
  282. package/dist/commerce/server/commerceDiagnostics.js +31 -0
  283. package/dist/commerce/server/commerceOmsCancelOrderHandler.d.ts +7 -0
  284. package/dist/commerce/server/commerceOmsCancelOrderHandler.js +22 -0
  285. package/dist/commerce/server/commerceOmsControlPlaneHandlers.d.ts +18 -0
  286. package/dist/commerce/server/commerceOmsControlPlaneHandlers.js +60 -0
  287. package/dist/commerce/server/commerceOmsHandlers.d.ts +47 -0
  288. package/dist/commerce/server/commerceOmsHandlers.js +176 -0
  289. package/dist/commerce/server/commerceOmsMarkRefundedHandler.d.ts +7 -0
  290. package/dist/commerce/server/commerceOmsMarkRefundedHandler.js +19 -0
  291. package/dist/commerce/server/commerceOrderDraft.d.ts +24 -0
  292. package/dist/commerce/server/commerceOrderDraft.js +92 -0
  293. package/dist/commerce/server/commercePaidOrderOrchestration.d.ts +131 -0
  294. package/dist/commerce/server/commercePaidOrderOrchestration.js +140 -0
  295. package/dist/commerce/server/commerceProviderAttemptFailure.d.ts +133 -0
  296. package/dist/commerce/server/commerceProviderAttemptFailure.js +175 -0
  297. package/dist/commerce/server/commerceReturnsHandlers.d.ts +41 -0
  298. package/dist/commerce/server/commerceReturnsHandlers.js +100 -0
  299. package/dist/commerce/server/commerceRuntimePort.d.ts +16 -0
  300. package/dist/commerce/server/commerceRuntimePort.js +57 -0
  301. package/dist/commerce/server/commerceRuntimeService.d.ts +98 -0
  302. package/dist/commerce/server/commerceRuntimeService.js +186 -0
  303. package/dist/commerce/server/commerceRuntimeStartResponse.d.ts +37 -0
  304. package/dist/commerce/server/commerceRuntimeStartResponse.js +56 -0
  305. package/dist/commerce/server/commerceStarterOfferGuard.d.ts +55 -0
  306. package/dist/commerce/server/commerceStarterOfferGuard.js +128 -0
  307. package/dist/commerce/server/configuratorIntentPersistence.d.ts +47 -0
  308. package/dist/commerce/server/configuratorIntentPersistence.js +85 -0
  309. package/dist/commerce/server/configuratorIntentPersistenceHandler.d.ts +14 -0
  310. package/dist/commerce/server/configuratorIntentPersistenceHandler.js +42 -0
  311. package/dist/commerce/server/emailRuntime.d.ts +47 -0
  312. package/dist/commerce/server/emailRuntime.js +1 -0
  313. package/dist/commerce/server/handlerSupport.d.ts +68 -0
  314. package/dist/commerce/server/handlerSupport.js +1 -0
  315. package/dist/commerce/server/index.d.ts +178 -0
  316. package/dist/commerce/server/index.js +127 -0
  317. package/dist/commerce/server/offerAvailability.d.ts +21 -0
  318. package/dist/commerce/server/offerAvailability.js +163 -0
  319. package/dist/commerce/server/orderDraftRpcPayload.d.ts +20 -0
  320. package/dist/commerce/server/orderDraftRpcPayload.js +21 -0
  321. package/dist/commerce/server/orderFeedbackSubmit.d.ts +20 -0
  322. package/dist/commerce/server/orderFeedbackSubmit.js +16 -0
  323. package/dist/commerce/server/orderFeedbackTokenCheck.d.ts +17 -0
  324. package/dist/commerce/server/orderFeedbackTokenCheck.js +14 -0
  325. package/dist/commerce/server/orderReviewAdminHandlers.d.ts +47 -0
  326. package/dist/commerce/server/orderReviewAdminHandlers.js +41 -0
  327. package/dist/commerce/server/orderReviewHandlers.d.ts +114 -0
  328. package/dist/commerce/server/orderReviewHandlers.js +42 -0
  329. package/dist/commerce/server/orderReviewLifecycle.d.ts +10 -0
  330. package/dist/commerce/server/orderReviewLifecycle.js +121 -0
  331. package/dist/commerce/server/orderReviewMedia.d.ts +11 -0
  332. package/dist/commerce/server/orderReviewMedia.js +172 -0
  333. package/dist/commerce/server/orderReviewRawUploadHandler.d.ts +40 -0
  334. package/dist/commerce/server/orderReviewRawUploadHandler.js +316 -0
  335. package/dist/commerce/server/outboxCheckoutExpiredEmailHandler.d.ts +14 -0
  336. package/dist/commerce/server/outboxCheckoutExpiredEmailHandler.js +57 -0
  337. package/dist/commerce/server/outboxCheckoutRecoveryEmailHandler.d.ts +13 -0
  338. package/dist/commerce/server/outboxCheckoutRecoveryEmailHandler.js +150 -0
  339. package/dist/commerce/server/outboxDispatchRegistry.d.ts +46 -0
  340. package/dist/commerce/server/outboxDispatchRegistry.js +184 -0
  341. package/dist/commerce/server/outboxDispatchRegistryComposition.d.ts +6 -0
  342. package/dist/commerce/server/outboxDispatchRegistryComposition.js +23 -0
  343. package/dist/commerce/server/outboxOrderDraftEmailHandler.d.ts +14 -0
  344. package/dist/commerce/server/outboxOrderDraftEmailHandler.js +130 -0
  345. package/dist/commerce/server/outboxOrderPaidEmailHandler.d.ts +21 -0
  346. package/dist/commerce/server/outboxOrderPaidEmailHandler.js +93 -0
  347. package/dist/commerce/server/outboxOrderPaidFulfillmentHandler.d.ts +3 -0
  348. package/dist/commerce/server/outboxOrderPaidFulfillmentHandler.js +1 -0
  349. package/dist/commerce/server/outboxOrderPaidFulfillmentPorts.d.ts +3 -0
  350. package/dist/commerce/server/outboxOrderPaidFulfillmentPorts.js +1 -0
  351. package/dist/commerce/server/outboxOrderRefundedEmailHandler.d.ts +13 -0
  352. package/dist/commerce/server/outboxOrderRefundedEmailHandler.js +42 -0
  353. package/dist/commerce/server/outboxPaymentFailedEmailHandler.d.ts +14 -0
  354. package/dist/commerce/server/outboxPaymentFailedEmailHandler.js +65 -0
  355. package/dist/commerce/server/outboxReturnEmailHandlers.d.ts +26 -0
  356. package/dist/commerce/server/outboxReturnEmailHandlers.js +53 -0
  357. package/dist/commerce/server/outboxShipmentDeliveredEmailHandler.d.ts +17 -0
  358. package/dist/commerce/server/outboxShipmentDeliveredEmailHandler.js +52 -0
  359. package/dist/commerce/server/outboxShipmentDispatchedEmailHandler.d.ts +13 -0
  360. package/dist/commerce/server/outboxShipmentDispatchedEmailHandler.js +87 -0
  361. package/dist/commerce/server/outboxShipmentExceptionEmailHandler.d.ts +13 -0
  362. package/dist/commerce/server/outboxShipmentExceptionEmailHandler.js +46 -0
  363. package/dist/commerce/server/referenceCheckoutHandler.d.ts +48 -0
  364. package/dist/commerce/server/referenceCheckoutHandler.js +68 -0
  365. package/dist/commerce/server/reservationSweepPort.d.ts +31 -0
  366. package/dist/commerce/server/reservationSweepPort.js +45 -0
  367. package/dist/commerce/server/starterTermsPort.d.ts +22 -0
  368. package/dist/commerce/server/starterTermsPort.js +1 -0
  369. package/dist/commerce/server/supabaseCommerceReturnsPort.d.ts +13 -0
  370. package/dist/commerce/server/supabaseCommerceReturnsPort.js +56 -0
  371. package/dist/communications/consentPurposeRegistry.d.ts +1 -1
  372. package/dist/communications/newsletterIntegrationContracts.d.ts +10 -10
  373. package/dist/composition/accountSupportContribution.d.ts +18 -0
  374. package/dist/composition/accountSupportContribution.js +21 -0
  375. package/dist/composition/commerceContribution.d.ts +21 -0
  376. package/dist/composition/commerceContribution.js +27 -0
  377. package/dist/composition/index.d.ts +2 -0
  378. package/dist/composition/index.js +2 -0
  379. package/dist/fulfillment/handlerSchemas.d.ts +69 -69
  380. package/dist/fulfillment/index.d.ts +1 -1
  381. package/dist/fulfillment/index.js +1 -1
  382. package/dist/fulfillment/paidHandoff.d.ts +12 -1
  383. package/dist/fulfillment/paidHandoff.js +2 -2
  384. package/dist/fulfillment/providerDispatchWorker.d.ts +4 -4
  385. package/dist/identity/customerContracts.d.ts +4 -4
  386. package/dist/inventory/bindings.d.ts +3 -0
  387. package/dist/inventory/bindings.js +10 -4
  388. package/dist/inventory/index.d.ts +1 -0
  389. package/dist/inventory/index.js +1 -0
  390. package/dist/inventory/managedStockAvailability.d.ts +15 -0
  391. package/dist/inventory/managedStockAvailability.js +16 -0
  392. package/dist/inventory/postgresStockAvailability.js +2 -25
  393. package/dist/inventory/schemas.d.ts +1 -1
  394. package/dist/inventory/stockReadResponse.d.ts +4 -0
  395. package/dist/inventory/stockReadResponse.js +27 -0
  396. package/dist/invoicing/snapshot.d.ts +1 -1
  397. package/dist/pricing/acquisitionQuoteBinding.d.ts +1 -1
  398. package/dist/pricing/browser/index.d.ts +6 -0
  399. package/dist/pricing/browser/index.js +6 -0
  400. package/dist/pricing/catalogFactsSchemas.d.ts +1 -1
  401. package/dist/pricing/quotePromotionEvidence.d.ts +1 -1
  402. package/dist/pricing/quoteSchemas.d.ts +56 -56
  403. package/dist/promotions/adminPromotionCodesContracts.d.ts +30 -30
  404. package/dist/promotions/adminPromotionsContracts.d.ts +16 -16
  405. package/dist/subscriptions/index.d.ts +3 -2
  406. package/dist/subscriptions/index.js +3 -2
  407. package/package.json +32 -2
  408. package/release-gates.json +90 -8
  409. package/sql/20261026120000_account_support_operator_authority.sql +693 -0
  410. package/src/account-support/accountReadFacade.ts +15 -0
  411. package/src/account-support/accountReadModels.ts +371 -0
  412. package/src/account-support/bindings.ts +28 -0
  413. package/src/account-support/contracts/account.ts +306 -0
  414. package/src/account-support/contracts/capabilities.ts +30 -0
  415. package/src/account-support/contracts/commands.ts +243 -0
  416. package/src/account-support/contracts/customer360.ts +150 -0
  417. package/src/account-support/contracts/index.ts +141 -0
  418. package/src/account-support/contracts/invoice.ts +44 -0
  419. package/src/account-support/contracts/operator.ts +123 -0
  420. package/src/account-support/contribution.ts +35 -0
  421. package/src/account-support/customer360.ts +268 -0
  422. package/src/account-support/customerAccountReadDiagnostics.ts +83 -0
  423. package/src/account-support/index.ts +72 -0
  424. package/src/account-support/invoiceAccess.ts +63 -0
  425. package/src/account-support/migrations.ts +7 -0
  426. package/src/account-support/operatorAuthority.ts +393 -0
  427. package/src/account-support/operatorRecovery.ts +136 -0
  428. package/src/account-support/orderHistory.ts +309 -0
  429. package/src/account-support/paymentMethodComposition.ts +8 -0
  430. package/src/account-support/postgresOperatorAuthority.ts +92 -0
  431. package/src/account-support/selfService.ts +83 -0
  432. package/src/account-support/subscriptionCommandCodec.ts +48 -0
  433. package/src/commerce/adapters/managed/commerceOmsControlPlane.ts +80 -0
  434. package/src/commerce/adapters/managed/commerceOmsMutations.ts +145 -0
  435. package/src/commerce/adapters/managed/commerceOmsPort.ts +158 -0
  436. package/src/commerce/adapters/managed/oms/accounting.ts +18 -0
  437. package/src/commerce/adapters/managed/oms/fulfillmentReads.ts +82 -0
  438. package/src/commerce/adapters/managed/oms/inboundEvents.ts +45 -0
  439. package/src/commerce/adapters/managed/oms/outboxEvents.ts +30 -0
  440. package/src/commerce/adapters/managed/oms/paymentAttempts.ts +19 -0
  441. package/src/commerce/adapters/managed/oms/queueSelection.ts +132 -0
  442. package/src/commerce/adapters/managed/oms/readProjections.ts +22 -0
  443. package/src/commerce/adapters/managed/oms/readQueries.ts +292 -0
  444. package/src/commerce/adapters/managed/oms/types.ts +9 -0
  445. package/src/commerce/checkoutCommandSchemas.ts +93 -0
  446. package/src/commerce/checkoutHelpers.ts +47 -0
  447. package/src/commerce/checkoutResumeSchemas.ts +164 -0
  448. package/src/commerce/checkoutSchemas.ts +182 -0
  449. package/src/commerce/commerceReturnsPort.ts +67 -0
  450. package/src/commerce/configuratorIntentPersistenceSchemas.ts +26 -0
  451. package/src/commerce/configuratorIntentSchemas.ts +47 -0
  452. package/src/commerce/contractPrimitives.ts +30 -0
  453. package/src/commerce/contracts/availability.ts +21 -0
  454. package/src/commerce/contracts/fulfillmentRecovery.ts +26 -0
  455. package/src/commerce/contracts/index.ts +17 -0
  456. package/src/commerce/contracts/intent.ts +58 -0
  457. package/src/commerce/contracts/omsTypes.ts +1217 -0
  458. package/src/commerce/contracts/order.ts +44 -0
  459. package/src/commerce/contracts/orderMoney.ts +75 -0
  460. package/src/commerce/contracts/ports.ts +124 -0
  461. package/src/commerce/contracts/recovery.ts +24 -0
  462. package/src/commerce/contracts/runtimePorts.ts +201 -0
  463. package/src/commerce/contracts/state.ts +64 -0
  464. package/src/commerce/customerDefaultsSnapshotSchemas.ts +117 -0
  465. package/src/commerce/errors.ts +53 -0
  466. package/src/commerce/fulfillmentEligibility.ts +32 -0
  467. package/src/commerce/index.ts +82 -0
  468. package/src/commerce/model/customerFulfillmentRecovery.ts +185 -0
  469. package/src/commerce/model/fulfillmentCancellationEligibility.ts +18 -0
  470. package/src/commerce/model/omsAccountingVisibility.ts +135 -0
  471. package/src/commerce/model/omsBillingInvoiceBuyer.ts +20 -0
  472. package/src/commerce/model/omsCurrency.ts +8 -0
  473. package/src/commerce/model/omsFulfillmentDebug.ts +157 -0
  474. package/src/commerce/model/omsFulfillmentSummary.ts +225 -0
  475. package/src/commerce/model/omsListTotals.ts +38 -0
  476. package/src/commerce/model/omsOperationalLadder.ts +181 -0
  477. package/src/commerce/model/omsOrderLineMoney.ts +34 -0
  478. package/src/commerce/model/omsPaymentMethodSummary.ts +19 -0
  479. package/src/commerce/model/omsReadModel.ts +302 -0
  480. package/src/commerce/model/omsReadModelCommunication.ts +32 -0
  481. package/src/commerce/model/omsReadModelHelpers.ts +279 -0
  482. package/src/commerce/model/omsReadModelList.ts +90 -0
  483. package/src/commerce/model/omsReadModelListSummary.ts +19 -0
  484. package/src/commerce/model/omsReadModelPricing.ts +57 -0
  485. package/src/commerce/model/omsReadModelProjections.ts +1 -0
  486. package/src/commerce/model/omsReadModelRowCore.ts +193 -0
  487. package/src/commerce/model/omsReadModelRows.ts +7 -0
  488. package/src/commerce/offerAvailability.ts +75 -0
  489. package/src/commerce/offerAvailabilitySchemas.ts +56 -0
  490. package/src/commerce/offerEvidenceSchemas.ts +17 -0
  491. package/src/commerce/oms/omsContractBase.ts +92 -0
  492. package/src/commerce/oms/omsContractReadAuxSchemas.ts +130 -0
  493. package/src/commerce/oms/omsContractReadSchemas.ts +303 -0
  494. package/src/commerce/oms/omsContractRequests.ts +143 -0
  495. package/src/commerce/oms/omsContracts.ts +6 -0
  496. package/src/commerce/oms/omsControlPlane.ts +85 -0
  497. package/src/commerce/oms/omsFulfillmentContractSchemas.ts +113 -0
  498. package/src/commerce/oms/omsFulfillmentDebugSchemas.ts +38 -0
  499. package/src/commerce/oms/omsFulfillmentHealthSchemas.ts +46 -0
  500. package/src/commerce/oms/omsPorts.ts +165 -0
  501. package/src/commerce/oms/omsPrimitives.ts +3 -0
  502. package/src/commerce/oms/omsProviderEvidenceSchemas.ts +13 -0
  503. package/src/commerce/orderDraftErrors.ts +28 -0
  504. package/src/commerce/orderEmailEligibility.ts +131 -0
  505. package/src/commerce/orderEmailLines.ts +22 -0
  506. package/src/commerce/orderFeedbackContracts.ts +47 -0
  507. package/src/commerce/orderMoney.ts +207 -0
  508. package/src/commerce/orderReviewContracts.ts +124 -0
  509. package/src/commerce/orderReviewPorts.ts +94 -0
  510. package/src/commerce/outboxDispatchContracts.ts +30 -0
  511. package/src/commerce/outboxEventSchemas.ts +230 -0
  512. package/src/commerce/outboxOrderDraftEmailPorts.ts +241 -0
  513. package/src/commerce/paymentContinuation.ts +5 -0
  514. package/src/commerce/ports.ts +7 -0
  515. package/src/commerce/recoveryDestination.ts +23 -0
  516. package/src/commerce/runtimeErrors.ts +19 -0
  517. package/src/commerce/salesChannelEnvelope.ts +28 -0
  518. package/src/commerce/schemas.ts +104 -0
  519. package/src/commerce/server/checkoutCompensation.ts +49 -0
  520. package/src/commerce/server/checkoutConflictClassifiers.ts +53 -0
  521. package/src/commerce/server/checkoutExpiredRecoveryPolicy.ts +107 -0
  522. package/src/commerce/server/checkoutInvoiceBuyerSnapshot.ts +36 -0
  523. package/src/commerce/server/checkoutOfferPolicyPort.ts +60 -0
  524. package/src/commerce/server/checkoutPaymentContinuationCredential.ts +222 -0
  525. package/src/commerce/server/checkoutQuoteTypes.ts +9 -0
  526. package/src/commerce/server/checkoutRecoveryOrderPort.ts +40 -0
  527. package/src/commerce/server/checkoutRecoveryToken.ts +63 -0
  528. package/src/commerce/server/checkoutRefusalContinuation.ts +29 -0
  529. package/src/commerce/server/checkoutRuntimeTypes.ts +26 -0
  530. package/src/commerce/server/commerceCheckoutCommandExecution.ts +188 -0
  531. package/src/commerce/server/commerceCheckoutCompensation.ts +66 -0
  532. package/src/commerce/server/commerceCheckoutContinuationTerms.ts +87 -0
  533. package/src/commerce/server/commerceCheckoutCustomerDefaults.ts +24 -0
  534. package/src/commerce/server/commerceCheckoutFailureHandler.ts +144 -0
  535. package/src/commerce/server/commerceCheckoutHandler.ts +269 -0
  536. package/src/commerce/server/commerceCheckoutHandlerAdmission.ts +157 -0
  537. package/src/commerce/server/commerceCheckoutHandlerHelpers.ts +223 -0
  538. package/src/commerce/server/commerceCheckoutOrchestrationError.ts +15 -0
  539. package/src/commerce/server/commerceCheckoutPromotionPriceChange.ts +83 -0
  540. package/src/commerce/server/commerceCheckoutProviderPayment.ts +45 -0
  541. package/src/commerce/server/commerceCheckoutQuoteGuard.ts +172 -0
  542. package/src/commerce/server/commerceCheckoutResume.ts +132 -0
  543. package/src/commerce/server/commerceCheckoutResumeGuard.ts +195 -0
  544. package/src/commerce/server/commerceCheckoutSavedPaymentMethod.ts +85 -0
  545. package/src/commerce/server/commerceCheckoutStartRuntimeFailure.ts +59 -0
  546. package/src/commerce/server/commerceCheckoutTiming.ts +53 -0
  547. package/src/commerce/server/commerceDiagnostics.ts +37 -0
  548. package/src/commerce/server/commerceOmsCancelOrderHandler.ts +43 -0
  549. package/src/commerce/server/commerceOmsControlPlaneHandlers.ts +71 -0
  550. package/src/commerce/server/commerceOmsHandlers.ts +275 -0
  551. package/src/commerce/server/commerceOmsMarkRefundedHandler.ts +39 -0
  552. package/src/commerce/server/commerceOrderDraft.ts +131 -0
  553. package/src/commerce/server/commercePaidOrderOrchestration.ts +275 -0
  554. package/src/commerce/server/commerceProviderAttemptFailure.ts +257 -0
  555. package/src/commerce/server/commerceReturnsHandlers.ts +143 -0
  556. package/src/commerce/server/commerceRuntimePort.ts +75 -0
  557. package/src/commerce/server/commerceRuntimeService.ts +229 -0
  558. package/src/commerce/server/commerceRuntimeStartResponse.ts +76 -0
  559. package/src/commerce/server/commerceStarterOfferGuard.ts +200 -0
  560. package/src/commerce/server/configuratorIntentPersistence.ts +161 -0
  561. package/src/commerce/server/configuratorIntentPersistenceHandler.ts +54 -0
  562. package/src/commerce/server/emailRuntime.ts +30 -0
  563. package/src/commerce/server/handlerSupport.ts +22 -0
  564. package/src/commerce/server/index.ts +181 -0
  565. package/src/commerce/server/offerAvailability.ts +275 -0
  566. package/src/commerce/server/orderDraftRpcPayload.ts +39 -0
  567. package/src/commerce/server/orderFeedbackSubmit.ts +40 -0
  568. package/src/commerce/server/orderFeedbackTokenCheck.ts +28 -0
  569. package/src/commerce/server/orderReviewAdminHandlers.ts +43 -0
  570. package/src/commerce/server/orderReviewHandlers.ts +57 -0
  571. package/src/commerce/server/orderReviewLifecycle.ts +129 -0
  572. package/src/commerce/server/orderReviewMedia.ts +170 -0
  573. package/src/commerce/server/orderReviewRawUploadHandler.ts +300 -0
  574. package/src/commerce/server/outboxCheckoutExpiredEmailHandler.ts +86 -0
  575. package/src/commerce/server/outboxCheckoutRecoveryEmailHandler.ts +188 -0
  576. package/src/commerce/server/outboxDispatchRegistry.ts +269 -0
  577. package/src/commerce/server/outboxDispatchRegistryComposition.ts +31 -0
  578. package/src/commerce/server/outboxOrderDraftEmailHandler.ts +162 -0
  579. package/src/commerce/server/outboxOrderPaidEmailHandler.ts +147 -0
  580. package/src/commerce/server/outboxOrderPaidFulfillmentHandler.ts +4 -0
  581. package/src/commerce/server/outboxOrderPaidFulfillmentPorts.ts +3 -0
  582. package/src/commerce/server/outboxOrderRefundedEmailHandler.ts +58 -0
  583. package/src/commerce/server/outboxPaymentFailedEmailHandler.ts +99 -0
  584. package/src/commerce/server/outboxReturnEmailHandlers.ts +92 -0
  585. package/src/commerce/server/outboxShipmentDeliveredEmailHandler.ts +94 -0
  586. package/src/commerce/server/outboxShipmentDispatchedEmailHandler.ts +112 -0
  587. package/src/commerce/server/outboxShipmentExceptionEmailHandler.ts +73 -0
  588. package/src/commerce/server/referenceCheckoutHandler.ts +87 -0
  589. package/src/commerce/server/reservationSweepPort.ts +67 -0
  590. package/src/commerce/server/starterTermsPort.ts +22 -0
  591. package/src/commerce/server/supabaseCommerceReturnsPort.ts +81 -0
  592. package/src/composition/accountSupportContribution.ts +28 -0
  593. package/src/composition/commerceContribution.ts +35 -0
  594. package/src/composition/index.ts +2 -0
  595. package/src/fulfillment/index.ts +1 -1
  596. package/src/fulfillment/paidHandoff.ts +2 -2
  597. package/src/inventory/bindings.ts +12 -4
  598. package/src/inventory/index.ts +1 -0
  599. package/src/inventory/managedStockAvailability.ts +23 -0
  600. package/src/inventory/postgresStockAvailability.ts +2 -21
  601. package/src/inventory/stockReadResponse.ts +25 -0
  602. package/src/pricing/browser/index.ts +6 -0
  603. package/src/subscriptions/index.ts +3 -2
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ import type { OmsFulfillmentDebug } from "../contracts/omsTypes.js";
3
+ export type { OmsFulfillmentDebug } from "../contracts/omsTypes.js";
4
+ export declare const omsFulfillmentDebugStepSchema: z.ZodObject<{
5
+ key: z.ZodEnum<{
6
+ fulfillment: "fulfillment";
7
+ dispatch: "dispatch";
8
+ provider: "provider";
9
+ payment: "payment";
10
+ stock: "stock";
11
+ provider_stock: "provider_stock";
12
+ tracking: "tracking";
13
+ communication: "communication";
14
+ }>;
15
+ status: z.ZodEnum<{
16
+ missing: "missing";
17
+ blocked: "blocked";
18
+ pending: "pending";
19
+ warning: "warning";
20
+ ok: "ok";
21
+ }>;
22
+ label: z.ZodString;
23
+ value: z.ZodNullable<z.ZodString>;
24
+ evidenceAt: z.ZodNullable<z.ZodString>;
25
+ details: z.ZodDefault<z.ZodArray<z.ZodString>>;
26
+ }, z.core.$strict>;
27
+ export declare const omsFulfillmentDebugSchema: z.ZodObject<{
28
+ summary: z.ZodString;
29
+ severity: z.ZodEnum<{
30
+ ok: "ok";
31
+ watch: "watch";
32
+ action_required: "action_required";
33
+ }>;
34
+ nextAction: z.ZodEnum<{
35
+ contact_support: "contact_support";
36
+ review_payment: "review_payment";
37
+ create_fulfillment: "create_fulfillment";
38
+ wait: "wait";
39
+ retry_dispatch: "retry_dispatch";
40
+ reconcile: "reconcile";
41
+ review_stock: "review_stock";
42
+ review_provider: "review_provider";
43
+ }>;
44
+ blockers: z.ZodDefault<z.ZodArray<z.ZodString>>;
45
+ steps: z.ZodDefault<z.ZodArray<z.ZodObject<{
46
+ key: z.ZodEnum<{
47
+ fulfillment: "fulfillment";
48
+ dispatch: "dispatch";
49
+ provider: "provider";
50
+ payment: "payment";
51
+ stock: "stock";
52
+ provider_stock: "provider_stock";
53
+ tracking: "tracking";
54
+ communication: "communication";
55
+ }>;
56
+ status: z.ZodEnum<{
57
+ missing: "missing";
58
+ blocked: "blocked";
59
+ pending: "pending";
60
+ warning: "warning";
61
+ ok: "ok";
62
+ }>;
63
+ label: z.ZodString;
64
+ value: z.ZodNullable<z.ZodString>;
65
+ evidenceAt: z.ZodNullable<z.ZodString>;
66
+ details: z.ZodDefault<z.ZodArray<z.ZodString>>;
67
+ }, z.core.$strict>>>;
68
+ }, z.core.$strict>;
69
+ export declare const defaultOmsFulfillmentDebug: OmsFulfillmentDebug;
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import { datetimeSchema, nullableTextSchema } from "./omsContractBase.js";
3
+ export const omsFulfillmentDebugStepSchema = z.object({
4
+ key: z.enum(["payment", "stock", "provider_stock", "fulfillment", "dispatch", "provider", "tracking", "communication"]),
5
+ status: z.enum(["ok", "pending", "missing", "warning", "blocked"]),
6
+ label: z.string().min(1),
7
+ value: nullableTextSchema,
8
+ evidenceAt: datetimeSchema.nullable(),
9
+ details: z.array(z.string()).default([]),
10
+ }).strict();
11
+ export const omsFulfillmentDebugSchema = z.object({
12
+ summary: z.string().min(1),
13
+ severity: z.enum(["ok", "watch", "action_required"]),
14
+ nextAction: z.enum([
15
+ "wait",
16
+ "create_fulfillment",
17
+ "retry_dispatch",
18
+ "reconcile",
19
+ "review_payment",
20
+ "review_stock",
21
+ "review_provider",
22
+ "contact_support",
23
+ ]),
24
+ blockers: z.array(z.string()).default([]),
25
+ steps: z.array(omsFulfillmentDebugStepSchema).default([]),
26
+ }).strict();
27
+ export const defaultOmsFulfillmentDebug = {
28
+ summary: "No fulfillment data.",
29
+ severity: "watch",
30
+ nextAction: "wait",
31
+ blockers: [],
32
+ steps: [],
33
+ };
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ export declare const omsFulfillmentHealthSchema: z.ZodObject<{
3
+ healthStatus: z.ZodEnum<{
4
+ ok: "ok";
5
+ needs_attention: "needs_attention";
6
+ blocked_uncertain: "blocked_uncertain";
7
+ local_ahead: "local_ahead";
8
+ provider_ahead: "provider_ahead";
9
+ missing_local_commitment: "missing_local_commitment";
10
+ }>;
11
+ attentionReasons: z.ZodArray<z.ZodEnum<{
12
+ paid_order_missing_fulfillment: "paid_order_missing_fulfillment";
13
+ paid_order_missing_dispatch_ref: "paid_order_missing_dispatch_ref";
14
+ dispatch_submission_stale: "dispatch_submission_stale";
15
+ dispatch_outcome_uncertain: "dispatch_outcome_uncertain";
16
+ dispatch_failed: "dispatch_failed";
17
+ dispatch_created_without_provider_order_id: "dispatch_created_without_provider_order_id";
18
+ dispatch_terminal_without_progress: "dispatch_terminal_without_progress";
19
+ dispatch_status_unknown: "dispatch_status_unknown";
20
+ provider_exception_after_delivery: "provider_exception_after_delivery";
21
+ provider_exception_after_handover: "provider_exception_after_handover";
22
+ provider_exception_before_handover: "provider_exception_before_handover";
23
+ local_status_ahead_of_provider: "local_status_ahead_of_provider";
24
+ provider_accepted_local_label_ack_missing: "provider_accepted_local_label_ack_missing";
25
+ order_paid_outbox_discarded: "order_paid_outbox_discarded";
26
+ order_paid_outbox_processed_without_fulfillment: "order_paid_outbox_processed_without_fulfillment";
27
+ order_paid_outbox_missing: "order_paid_outbox_missing";
28
+ }>>;
29
+ oldestAgeSeconds: z.ZodNullable<z.ZodNumber>;
30
+ dispatchRefId: z.ZodOptional<z.ZodNullable<z.ZodGUID>>;
31
+ dispatchStatus: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ opaqueIds: z.ZodObject<{
33
+ orderId: z.ZodGUID;
34
+ fulfillmentOrderId: z.ZodNullable<z.ZodGUID>;
35
+ outboxEventId: z.ZodNullable<z.ZodGUID>;
36
+ dispatchRefFulfillmentOrderId: z.ZodNullable<z.ZodGUID>;
37
+ latestEvidenceFulfillmentOrderId: z.ZodNullable<z.ZodGUID>;
38
+ }, z.core.$strict>;
39
+ }, z.core.$strict>;
40
+ export declare const omsFulfillmentHealthDigestSchema: z.ZodObject<{
41
+ healthStatus: z.ZodEnum<{
42
+ ok: "ok";
43
+ needs_attention: "needs_attention";
44
+ blocked_uncertain: "blocked_uncertain";
45
+ local_ahead: "local_ahead";
46
+ provider_ahead: "provider_ahead";
47
+ missing_local_commitment: "missing_local_commitment";
48
+ }>;
49
+ attentionReasons: z.ZodArray<z.ZodEnum<{
50
+ paid_order_missing_fulfillment: "paid_order_missing_fulfillment";
51
+ paid_order_missing_dispatch_ref: "paid_order_missing_dispatch_ref";
52
+ dispatch_submission_stale: "dispatch_submission_stale";
53
+ dispatch_outcome_uncertain: "dispatch_outcome_uncertain";
54
+ dispatch_failed: "dispatch_failed";
55
+ dispatch_created_without_provider_order_id: "dispatch_created_without_provider_order_id";
56
+ dispatch_terminal_without_progress: "dispatch_terminal_without_progress";
57
+ dispatch_status_unknown: "dispatch_status_unknown";
58
+ provider_exception_after_delivery: "provider_exception_after_delivery";
59
+ provider_exception_after_handover: "provider_exception_after_handover";
60
+ provider_exception_before_handover: "provider_exception_before_handover";
61
+ local_status_ahead_of_provider: "local_status_ahead_of_provider";
62
+ provider_accepted_local_label_ack_missing: "provider_accepted_local_label_ack_missing";
63
+ order_paid_outbox_discarded: "order_paid_outbox_discarded";
64
+ order_paid_outbox_processed_without_fulfillment: "order_paid_outbox_processed_without_fulfillment";
65
+ order_paid_outbox_missing: "order_paid_outbox_missing";
66
+ }>>;
67
+ }, z.core.$strict>;
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import { uuidSchema } from "./omsContractBase.js";
3
+ export const omsFulfillmentHealthSchema = z.object({
4
+ healthStatus: z.enum(["ok", "needs_attention", "blocked_uncertain", "local_ahead", "provider_ahead", "missing_local_commitment"]),
5
+ attentionReasons: z.array(z.enum([
6
+ "paid_order_missing_fulfillment",
7
+ "paid_order_missing_dispatch_ref",
8
+ "dispatch_submission_stale",
9
+ "dispatch_outcome_uncertain",
10
+ "dispatch_failed",
11
+ "dispatch_created_without_provider_order_id",
12
+ "dispatch_terminal_without_progress",
13
+ "dispatch_status_unknown",
14
+ "provider_exception_after_delivery",
15
+ "provider_exception_after_handover",
16
+ "provider_exception_before_handover",
17
+ "local_status_ahead_of_provider",
18
+ "provider_accepted_local_label_ack_missing",
19
+ "order_paid_outbox_discarded",
20
+ "order_paid_outbox_processed_without_fulfillment",
21
+ "order_paid_outbox_missing",
22
+ ])),
23
+ oldestAgeSeconds: z.number().int().nonnegative().nullable(),
24
+ dispatchRefId: uuidSchema.nullable().optional(),
25
+ dispatchStatus: z.string().nullable().optional(),
26
+ opaqueIds: z.object({
27
+ orderId: uuidSchema,
28
+ fulfillmentOrderId: uuidSchema.nullable(),
29
+ outboxEventId: uuidSchema.nullable(),
30
+ dispatchRefFulfillmentOrderId: uuidSchema.nullable(),
31
+ latestEvidenceFulfillmentOrderId: uuidSchema.nullable(),
32
+ }).strict(),
33
+ }).strict();
34
+ // The list-row projection of the health snapshot above: the two fields an
35
+ // operator can act on, picked from the same schema so the vocabulary cannot
36
+ // fork. The list path builds it from the provider evidence it already fetches
37
+ // per page and never reads `outbox_events`, so a digest can never carry the
38
+ // three `order_paid_outbox_*` reasons - the builder is told the outbox is
39
+ // unread and answers `paid_order_missing_fulfillment` instead of naming an
40
+ // outbox row it did not look at. The enum stays whole rather than being
41
+ // narrowed here: the omission is a property of the input, not of the contract.
42
+ export const omsFulfillmentHealthDigestSchema = omsFulfillmentHealthSchema
43
+ .pick({ healthStatus: true, attentionReasons: true })
44
+ .strict();
@@ -0,0 +1,84 @@
1
+ import type { OmsReplacementRefusal } from "../contracts/omsTypes.js";
2
+ import { type OmsCurrencyPolicy } from "../model/omsCurrency.js";
3
+ export type { CommerceOmsHoldPort, CommerceOmsReadPort, OmsReplacementRefusal } from "../contracts/omsTypes.js";
4
+ /**
5
+ * Every refusal `commerce_oms_request_replacement_shipment` can reach an operator with,
6
+ * as one closed vocabulary shared by the adapter that classifies it and the admin surface
7
+ * that renders a sentence for it. Two lists would drift, and the failure mode of drift is
8
+ * the operator reading advice about a hold when the warehouse is simply out of stock.
9
+ *
10
+ * The first group is the command's own `commerce_oms_replacement_*` names. The second is
11
+ * the reservation vocabulary raised THROUGH it: the command mints a fresh generation via
12
+ * `inventory_reserve_order`, and on a stock authority outside this system that call is the
13
+ * most likely legitimate refusal there is. Those errors never carried the command's prefix,
14
+ * so before this list they matched nothing, degraded to an upstream failure, and the
15
+ * operator was told to check holds that were not there.
16
+ *
17
+ * It stays an allowlist, not a translation table: a reason absent from it degrades to
18
+ * `unspecified_refusal`, so no database text can travel to a response, a log or a screen.
19
+ *
20
+ * ⛔ The exported names deliberately omit the `CommerceOms` prefix every other symbol in
21
+ * this file carries. `src/lib/commerceOmsBoundary.test.ts` forbids that token in production
22
+ * UI files outside a small allowlist, and the admin surface imports these three symbols.
23
+ * Renaming them is the honest way to keep that boundary guard intact; widening its allowlist
24
+ * to admit one more file would weaken the control instead of respecting it.
25
+ */
26
+ export declare const OMS_REPLACEMENT_COMMAND_REFUSALS: readonly ["invalid_input", "idempotency_conflict", "order_not_found", "order_not_replaceable", "missing_client", "missing_shipping_address", "shipping_address_not_found", "payment_not_succeeded", "subscription_cycle_not_paid", "no_parcel_to_replace", "undispatched_replacement_exists", "missing_order_items", "missing_catalog_sku", "missing_inventory_reservation", "blocked_by_payment_not_succeeded_hold", "blocked_by_inventory_review_hold", "blocked_by_risk_review_hold", "blocked_by_address_review_hold", "blocked_by_manual_support_hold"];
27
+ export declare const OMS_REPLACEMENT_RESERVATION_REFUSALS: readonly ["inventory_external_provider_insufficient_available_stock", "inventory_external_provider_stock_stale", "inventory_external_provider_stock_missing", "inventory_external_provider_sku_not_found", "inventory_external_provider_location_missing", "inventory_reservation_insufficient_available_stock", "inventory_reservation_allocation_incomplete", "inventory_reservation_payment_status_not_reservable", "inventory_reservation_invalid_quantity"];
28
+ export declare const UNSPECIFIED_REPLACEMENT_REFUSAL = "unspecified_refusal";
29
+ export declare const OMS_REPLACEMENT_REFUSALS: readonly ["invalid_input", "idempotency_conflict", "order_not_found", "order_not_replaceable", "missing_client", "missing_shipping_address", "shipping_address_not_found", "payment_not_succeeded", "subscription_cycle_not_paid", "no_parcel_to_replace", "undispatched_replacement_exists", "missing_order_items", "missing_catalog_sku", "missing_inventory_reservation", "blocked_by_payment_not_succeeded_hold", "blocked_by_inventory_review_hold", "blocked_by_risk_review_hold", "blocked_by_address_review_hold", "blocked_by_manual_support_hold", "inventory_external_provider_insufficient_available_stock", "inventory_external_provider_stock_stale", "inventory_external_provider_stock_missing", "inventory_external_provider_sku_not_found", "inventory_external_provider_location_missing", "inventory_reservation_insufficient_available_stock", "inventory_reservation_allocation_incomplete", "inventory_reservation_payment_status_not_reservable", "inventory_reservation_invalid_quantity", "unspecified_refusal"];
30
+ /**
31
+ * Reads the refusal a replacement error carries, from any of the shapes a BFF error can
32
+ * legitimately arrive in. Returns null when the text names no refusal this vocabulary
33
+ * knows, which is the honest answer: the operator gets the generic sentence plus the raw
34
+ * detail to hand to the team, never a guess dressed as advice.
35
+ */
36
+ export declare function readOmsReplacementRefusal(text: string): OmsReplacementRefusal | null;
37
+ export declare class CommerceOmsInvalidResponseError extends Error {
38
+ constructor();
39
+ }
40
+ export declare class CommerceOmsPersistenceError extends Error {
41
+ readonly details: Record<string, unknown>;
42
+ constructor(message?: string, details?: Record<string, unknown>);
43
+ }
44
+ /**
45
+ * An order row came back from the database in a currency this deployment does
46
+ * not accept. The channel ingest rail is deliberately multi-currency, so such a
47
+ * row can genuinely exist; what it cannot do is reach the read model, whose
48
+ * money nodes are pinned to the platform's accepted set.
49
+ *
50
+ * A subclass rather than a new error family, so it inherits the persistence
51
+ * error's HTTP mapping untouched: this is still an upstream read that could not
52
+ * be served, and the operator-facing status must not move. The gain is entirely
53
+ * diagnostic - the failure now names the orders and the codes instead of
54
+ * surfacing as an anonymous validation error fifteen frames later.
55
+ */
56
+ export declare class CommerceOmsUnsupportedCurrencyError extends CommerceOmsPersistenceError {
57
+ readonly orderIds: readonly string[];
58
+ readonly currencies: readonly string[];
59
+ constructor(offenders: ReadonlyArray<{
60
+ orderId: string;
61
+ currency: string;
62
+ }>);
63
+ }
64
+ /**
65
+ * Guards the one field of an order row that can break the OMS read.
66
+ *
67
+ * This is deliberately not a schema for the whole row. Of that row's ~22
68
+ * columns exactly one - `currency` - is both able to fail the read model and
69
+ * something the platform holds an opinion about; the rest would cost a new
70
+ * contract surface parsed once per row per page, and would only be coherent if
71
+ * the other cast row kinds on this path were validated too.
72
+ *
73
+ * It also deliberately refuses rather than filtering. Dropping the offending
74
+ * row would keep the page rendering while hiding a real customer order from the
75
+ * operator handling it - a worse failure than a named refusal.
76
+ */
77
+ export declare function assertOmsOrderRowCurrency(rows: ReadonlyArray<{
78
+ id: string;
79
+ currency: string;
80
+ }>, currency?: OmsCurrencyPolicy): void;
81
+ export declare class CommerceOmsConflictError extends Error {
82
+ readonly details: Record<string, unknown>;
83
+ constructor(message?: string, details?: Record<string, unknown>);
84
+ }
@@ -0,0 +1,148 @@
1
+ import { neutralOmsCurrencyPolicy } from "../model/omsCurrency.js";
2
+ /**
3
+ * Every refusal `commerce_oms_request_replacement_shipment` can reach an operator with,
4
+ * as one closed vocabulary shared by the adapter that classifies it and the admin surface
5
+ * that renders a sentence for it. Two lists would drift, and the failure mode of drift is
6
+ * the operator reading advice about a hold when the warehouse is simply out of stock.
7
+ *
8
+ * The first group is the command's own `commerce_oms_replacement_*` names. The second is
9
+ * the reservation vocabulary raised THROUGH it: the command mints a fresh generation via
10
+ * `inventory_reserve_order`, and on a stock authority outside this system that call is the
11
+ * most likely legitimate refusal there is. Those errors never carried the command's prefix,
12
+ * so before this list they matched nothing, degraded to an upstream failure, and the
13
+ * operator was told to check holds that were not there.
14
+ *
15
+ * It stays an allowlist, not a translation table: a reason absent from it degrades to
16
+ * `unspecified_refusal`, so no database text can travel to a response, a log or a screen.
17
+ *
18
+ * ⛔ The exported names deliberately omit the `CommerceOms` prefix every other symbol in
19
+ * this file carries. `src/lib/commerceOmsBoundary.test.ts` forbids that token in production
20
+ * UI files outside a small allowlist, and the admin surface imports these three symbols.
21
+ * Renaming them is the honest way to keep that boundary guard intact; widening its allowlist
22
+ * to admit one more file would weaken the control instead of respecting it.
23
+ */
24
+ export const OMS_REPLACEMENT_COMMAND_REFUSALS = [
25
+ "invalid_input",
26
+ "idempotency_conflict",
27
+ "order_not_found",
28
+ "order_not_replaceable",
29
+ "missing_client",
30
+ "missing_shipping_address",
31
+ "shipping_address_not_found",
32
+ "payment_not_succeeded",
33
+ "subscription_cycle_not_paid",
34
+ "no_parcel_to_replace",
35
+ "undispatched_replacement_exists",
36
+ "missing_order_items",
37
+ "missing_catalog_sku",
38
+ "missing_inventory_reservation",
39
+ "blocked_by_payment_not_succeeded_hold",
40
+ "blocked_by_inventory_review_hold",
41
+ "blocked_by_risk_review_hold",
42
+ "blocked_by_address_review_hold",
43
+ "blocked_by_manual_support_hold",
44
+ ];
45
+ export const OMS_REPLACEMENT_RESERVATION_REFUSALS = [
46
+ "inventory_external_provider_insufficient_available_stock",
47
+ "inventory_external_provider_stock_stale",
48
+ "inventory_external_provider_stock_missing",
49
+ "inventory_external_provider_sku_not_found",
50
+ "inventory_external_provider_location_missing",
51
+ "inventory_reservation_insufficient_available_stock",
52
+ "inventory_reservation_allocation_incomplete",
53
+ "inventory_reservation_payment_status_not_reservable",
54
+ "inventory_reservation_invalid_quantity",
55
+ ];
56
+ export const UNSPECIFIED_REPLACEMENT_REFUSAL = "unspecified_refusal";
57
+ export const OMS_REPLACEMENT_REFUSALS = [
58
+ ...OMS_REPLACEMENT_COMMAND_REFUSALS,
59
+ ...OMS_REPLACEMENT_RESERVATION_REFUSALS,
60
+ UNSPECIFIED_REPLACEMENT_REFUSAL,
61
+ ];
62
+ /**
63
+ * Reads the refusal a replacement error carries, from any of the shapes a BFF error can
64
+ * legitimately arrive in. Returns null when the text names no refusal this vocabulary
65
+ * knows, which is the honest answer: the operator gets the generic sentence plus the raw
66
+ * detail to hand to the team, never a guess dressed as advice.
67
+ */
68
+ export function readOmsReplacementRefusal(text) {
69
+ const named = /commerce_oms_replacement_([a-z0-9_]+)/.exec(text)?.[1];
70
+ if (named) {
71
+ return OMS_REPLACEMENT_COMMAND_REFUSALS.includes(named)
72
+ ? named
73
+ : UNSPECIFIED_REPLACEMENT_REFUSAL;
74
+ }
75
+ // Exact membership only. A transport or permission failure that merely quotes a table
76
+ // name such as `inventory_reservations` must stay an upstream failure, not become a
77
+ // refusal the operator is asked to act on.
78
+ return OMS_REPLACEMENT_RESERVATION_REFUSALS.find((reason) => text.includes(reason)) ?? null;
79
+ }
80
+ export class CommerceOmsInvalidResponseError extends Error {
81
+ constructor() {
82
+ super("Commerce OMS returned invalid response");
83
+ this.name = "CommerceOmsInvalidResponseError";
84
+ }
85
+ }
86
+ export class CommerceOmsPersistenceError extends Error {
87
+ details;
88
+ constructor(message = "Commerce OMS persistence failed", details = {}) {
89
+ super(message);
90
+ this.name = "CommerceOmsPersistenceError";
91
+ this.details = details;
92
+ }
93
+ }
94
+ /**
95
+ * An order row came back from the database in a currency this deployment does
96
+ * not accept. The channel ingest rail is deliberately multi-currency, so such a
97
+ * row can genuinely exist; what it cannot do is reach the read model, whose
98
+ * money nodes are pinned to the platform's accepted set.
99
+ *
100
+ * A subclass rather than a new error family, so it inherits the persistence
101
+ * error's HTTP mapping untouched: this is still an upstream read that could not
102
+ * be served, and the operator-facing status must not move. The gain is entirely
103
+ * diagnostic - the failure now names the orders and the codes instead of
104
+ * surfacing as an anonymous validation error fifteen frames later.
105
+ */
106
+ export class CommerceOmsUnsupportedCurrencyError extends CommerceOmsPersistenceError {
107
+ orderIds;
108
+ currencies;
109
+ constructor(offenders) {
110
+ const orderIds = offenders.map((offender) => offender.orderId);
111
+ const currencies = [...new Set(offenders.map((offender) => offender.currency))];
112
+ const described = offenders
113
+ .map((offender) => `order ${offender.orderId} has currency ${offender.currency}`)
114
+ .join(", ");
115
+ super(`${described}, not accepted by this deployment`, { orderIds, currencies });
116
+ this.name = "CommerceOmsUnsupportedCurrencyError";
117
+ this.orderIds = orderIds;
118
+ this.currencies = currencies;
119
+ }
120
+ }
121
+ /**
122
+ * Guards the one field of an order row that can break the OMS read.
123
+ *
124
+ * This is deliberately not a schema for the whole row. Of that row's ~22
125
+ * columns exactly one - `currency` - is both able to fail the read model and
126
+ * something the platform holds an opinion about; the rest would cost a new
127
+ * contract surface parsed once per row per page, and would only be coherent if
128
+ * the other cast row kinds on this path were validated too.
129
+ *
130
+ * It also deliberately refuses rather than filtering. Dropping the offending
131
+ * row would keep the page rendering while hiding a real customer order from the
132
+ * operator handling it - a worse failure than a named refusal.
133
+ */
134
+ export function assertOmsOrderRowCurrency(rows, currency = neutralOmsCurrencyPolicy) {
135
+ const offenders = rows
136
+ .filter((row) => !currency.accepts(row.currency))
137
+ .map((row) => ({ orderId: row.id, currency: row.currency }));
138
+ if (offenders.length)
139
+ throw new CommerceOmsUnsupportedCurrencyError(offenders);
140
+ }
141
+ export class CommerceOmsConflictError extends Error {
142
+ details;
143
+ constructor(message = "Commerce OMS conflict", details = {}) {
144
+ super(message);
145
+ this.name = "CommerceOmsConflictError";
146
+ this.details = details;
147
+ }
148
+ }
@@ -0,0 +1,5 @@
1
+ import { z } from "zod";
2
+ export declare const commerceMoneySchema: z.ZodObject<{
3
+ amountMinor: z.ZodNumber;
4
+ currency: z.ZodString;
5
+ }, z.core.$strict>;
@@ -0,0 +1,3 @@
1
+ import { z } from "zod";
2
+ // OMS read money permits signed adjustments and rejects unknown fields.
3
+ export const commerceMoneySchema = z.object({ amountMinor: z.number().int(), currency: z.string().regex(/^[A-Z]{3}$/) }).strict();
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ export declare const omsProviderEvidenceSchema: z.ZodObject<{
3
+ evidenceType: z.ZodEnum<{
4
+ dispatch_ref: "dispatch_ref";
5
+ provider_attempt: "provider_attempt";
6
+ status_evidence: "status_evidence";
7
+ }>;
8
+ status: z.ZodNullable<z.ZodString>;
9
+ providerStatus: z.ZodNullable<z.ZodString>;
10
+ providerOrderId: z.ZodNullable<z.ZodString>;
11
+ evidenceKind: z.ZodNullable<z.ZodString>;
12
+ occurredAt: z.ZodNullable<z.ZodString>;
13
+ updatedAt: z.ZodNullable<z.ZodString>;
14
+ summary: z.ZodNullable<z.ZodString>;
15
+ }, z.core.$strict>;
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { datetimeSchema, nullableTextSchema } from "./omsContractBase.js";
3
+ export const omsProviderEvidenceSchema = z.object({
4
+ evidenceType: z.enum(["dispatch_ref", "provider_attempt", "status_evidence"]),
5
+ status: nullableTextSchema,
6
+ providerStatus: nullableTextSchema,
7
+ providerOrderId: nullableTextSchema,
8
+ evidenceKind: nullableTextSchema,
9
+ occurredAt: datetimeSchema.nullable(),
10
+ updatedAt: datetimeSchema.nullable(),
11
+ summary: nullableTextSchema,
12
+ }).strict();
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The quote was valid when read, but the atomic order write could no longer
3
+ * claim its promotion. Callers must re-quote and surface `price_changed`.
4
+ */
5
+ export declare class CommerceOrderDraftPriceChangedError extends Error {
6
+ readonly details: Record<string, unknown>;
7
+ constructor(message?: string, details?: Record<string, unknown>);
8
+ }
9
+ export type CommerceOrderDraftUnsupportedMoneyReason = "line_promotion_unsupported" | "net_shipping_unsupported" | "zero_payable_unsupported";
10
+ export declare class CommerceOrderDraftUnsupportedMoneyError extends Error {
11
+ readonly reason: CommerceOrderDraftUnsupportedMoneyReason;
12
+ constructor(reason: CommerceOrderDraftUnsupportedMoneyReason);
13
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The quote was valid when read, but the atomic order write could no longer
3
+ * claim its promotion. Callers must re-quote and surface `price_changed`.
4
+ */
5
+ export class CommerceOrderDraftPriceChangedError extends Error {
6
+ details;
7
+ constructor(message = "Commerce order draft promotion changed", details = {}) {
8
+ super(message);
9
+ this.name = "CommerceOrderDraftPriceChangedError";
10
+ this.details = details;
11
+ }
12
+ }
13
+ export class CommerceOrderDraftUnsupportedMoneyError extends Error {
14
+ reason;
15
+ constructor(reason) {
16
+ super(`Commerce order draft money shape is unsupported: ${reason}`);
17
+ this.reason = reason;
18
+ this.name = "CommerceOrderDraftUnsupportedMoneyError";
19
+ }
20
+ }
@@ -0,0 +1,54 @@
1
+ import type { OrderPaymentLifecycleState } from "./outboxOrderDraftEmailPorts.js";
2
+ /**
3
+ * Skip reason meaning "the payer is inside a live payment session right now".
4
+ * Exported because it is the one skip reason a caller must treat as TRANSIENT;
5
+ * every other reason in this module is a settled fact about the order.
6
+ */
7
+ export declare const PAYMENT_SESSION_ACTIVE = "payment_session_active";
8
+ export declare function shouldSkipOrderDraftConfirmation(state: OrderPaymentLifecycleState | null): string | null;
9
+ /**
10
+ * Eligibility for the checkout-recovery NUDGE only.
11
+ *
12
+ * `payment_session_active` below is a politeness rule: do not remind someone to
13
+ * pay while they are paying. It is correct here and wrong for a decline notice
14
+ * — see {@link shouldSkipPaymentFailedNotice}. A caller acting on this reason
15
+ * must defer rather than drop, because the nudge's emit key is once-per-order.
16
+ */
17
+ export declare function shouldSkipCheckoutRecovery(state: OrderPaymentLifecycleState | null): string | null;
18
+ /**
19
+ * Eligibility for an OPERATOR-ISSUED recovery link.
20
+ *
21
+ * Deliberately not {@link shouldSkipCheckoutRecovery}. That gate is written for
22
+ * the cron nudge, and its first rule — leave `pending_payment` and we go quiet —
23
+ * is exactly wrong here. A human looked at the order and decided to send this
24
+ * link, and the orders they send it for are largely the ones that have ALREADY
25
+ * left `pending_payment`: `expired` is the ordinary case, and the redeem rail
26
+ * recreates such an order from its frozen quote when the customer opens the link.
27
+ * Reusing the cron gate would skip those as `order_not_pending_payment`, the
28
+ * operator would have promised an email that never arrives, and nothing anywhere
29
+ * would report a failure. The mint side has already run the full recovery
30
+ * eligibility for this order, so what is left here is only what can have changed
31
+ * between the mint and the send.
32
+ *
33
+ * What still suppresses: the order is gone, or the money is in. Both make the
34
+ * email actively wrong rather than merely late.
35
+ *
36
+ * `payment_session_active` behaves exactly as it does for the nudge, and for the
37
+ * same reason: do not tell someone to finish paying while they are paying. The
38
+ * caller must DEFER on it rather than drop, because a dropped operator link is
39
+ * the silent no-send this whole path is written to prevent.
40
+ */
41
+ export declare function shouldSkipOperatorCheckoutRecovery(state: OrderPaymentLifecycleState | null): string | null;
42
+ /**
43
+ * Eligibility for a recoverable payment-decline notice.
44
+ *
45
+ * Unlike a checkout reminder, a decline notice must not be suppressed by a live
46
+ * retry. Its producer key is once per order, so a later failed attempt cannot
47
+ * replace a notice that was consumed without sending.
48
+ *
49
+ * Suppress only when the order is unavailable, already paid, or no longer
50
+ * pending payment. The producer's claim delay lets successful retries settle
51
+ * before this lifecycle read; scheduling remains the producer/runtime's duty.
52
+ */
53
+ export declare function shouldSkipPaymentFailedNotice(state: OrderPaymentLifecycleState | null): string | null;
54
+ export declare function shouldSkipCheckoutExpired(state: OrderPaymentLifecycleState | null): string | null;