@openlup/platform 0.25.0 → 0.27.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 (524) hide show
  1. package/CHANGELOG.md +156 -440
  2. package/README.md +230 -11
  3. package/dist/commerce/adapters/managed/commerceOmsControlPlane.d.ts +3 -0
  4. package/dist/commerce/adapters/managed/commerceOmsControlPlane.js +71 -0
  5. package/dist/commerce/adapters/managed/commerceOmsMutations.d.ts +10 -0
  6. package/dist/commerce/adapters/managed/commerceOmsMutations.js +119 -0
  7. package/dist/commerce/adapters/managed/commerceOmsPort.d.ts +28 -0
  8. package/dist/commerce/adapters/managed/commerceOmsPort.js +101 -0
  9. package/dist/commerce/adapters/managed/oms/accounting.d.ts +3 -0
  10. package/dist/commerce/adapters/managed/oms/accounting.js +13 -0
  11. package/dist/commerce/adapters/managed/oms/fulfillmentReads.d.ts +17 -0
  12. package/dist/commerce/adapters/managed/oms/fulfillmentReads.js +81 -0
  13. package/dist/commerce/adapters/managed/oms/inboundEvents.d.ts +9 -0
  14. package/dist/commerce/adapters/managed/oms/inboundEvents.js +40 -0
  15. package/dist/commerce/adapters/managed/oms/outboxEvents.d.ts +2 -0
  16. package/dist/commerce/adapters/managed/oms/outboxEvents.js +23 -0
  17. package/dist/commerce/adapters/managed/oms/paymentAttempts.d.ts +3 -0
  18. package/dist/commerce/adapters/managed/oms/paymentAttempts.js +15 -0
  19. package/dist/commerce/adapters/managed/oms/queueSelection.d.ts +12 -0
  20. package/dist/commerce/adapters/managed/oms/queueSelection.js +109 -0
  21. package/dist/commerce/adapters/managed/oms/readProjections.d.ts +18 -0
  22. package/dist/commerce/adapters/managed/oms/readProjections.js +13 -0
  23. package/dist/commerce/adapters/managed/oms/readQueries.d.ts +16 -0
  24. package/dist/commerce/adapters/managed/oms/readQueries.js +276 -0
  25. package/dist/commerce/adapters/managed/oms/types.d.ts +2 -0
  26. package/dist/commerce/adapters/managed/oms/types.js +7 -0
  27. package/dist/commerce/checkoutCommandSchemas.d.ts +89 -0
  28. package/dist/commerce/checkoutCommandSchemas.js +70 -0
  29. package/dist/commerce/checkoutHelpers.d.ts +21 -0
  30. package/dist/commerce/checkoutHelpers.js +29 -0
  31. package/dist/commerce/checkoutResumeSchemas.d.ts +158 -0
  32. package/dist/commerce/checkoutResumeSchemas.js +145 -0
  33. package/dist/commerce/checkoutSchemas.d.ts +158 -0
  34. package/dist/commerce/checkoutSchemas.js +161 -0
  35. package/dist/commerce/commerceReturnsPort.d.ts +97 -0
  36. package/dist/commerce/commerceReturnsPort.js +39 -0
  37. package/dist/commerce/configuratorIntentPersistenceSchemas.d.ts +20 -0
  38. package/dist/commerce/configuratorIntentPersistenceSchemas.js +21 -0
  39. package/dist/commerce/configuratorIntentSchemas.d.ts +63 -0
  40. package/dist/commerce/configuratorIntentSchemas.js +43 -0
  41. package/dist/commerce/contractPrimitives.d.ts +50 -0
  42. package/dist/commerce/contractPrimitives.js +25 -0
  43. package/dist/commerce/contracts/availability.d.ts +23 -0
  44. package/dist/commerce/contracts/availability.js +1 -0
  45. package/dist/commerce/contracts/fulfillmentRecovery.d.ts +25 -0
  46. package/dist/commerce/contracts/fulfillmentRecovery.js +1 -0
  47. package/dist/commerce/contracts/index.d.ts +13 -0
  48. package/dist/commerce/contracts/index.js +1 -0
  49. package/dist/commerce/contracts/intent.d.ts +86 -0
  50. package/dist/commerce/contracts/intent.js +1 -0
  51. package/dist/commerce/contracts/omsTypes.d.ts +1216 -0
  52. package/dist/commerce/contracts/omsTypes.js +1 -0
  53. package/dist/commerce/contracts/order.d.ts +39 -0
  54. package/dist/commerce/contracts/order.js +1 -0
  55. package/dist/commerce/contracts/orderMoney.d.ts +52 -0
  56. package/dist/commerce/contracts/orderMoney.js +1 -0
  57. package/dist/commerce/contracts/ports.d.ts +113 -0
  58. package/dist/commerce/contracts/ports.js +1 -0
  59. package/dist/commerce/contracts/recovery.d.ts +11 -0
  60. package/dist/commerce/contracts/recovery.js +1 -0
  61. package/dist/commerce/contracts/runtimePorts.d.ts +196 -0
  62. package/dist/commerce/contracts/runtimePorts.js +1 -0
  63. package/dist/commerce/contracts/state.d.ts +26 -0
  64. package/dist/commerce/contracts/state.js +43 -0
  65. package/dist/commerce/customerDefaultsSnapshotSchemas.d.ts +51 -0
  66. package/dist/commerce/customerDefaultsSnapshotSchemas.js +106 -0
  67. package/dist/commerce/errors.d.ts +18 -0
  68. package/dist/commerce/errors.js +36 -0
  69. package/dist/commerce/fulfillmentEligibility.d.ts +6 -0
  70. package/dist/commerce/fulfillmentEligibility.js +31 -0
  71. package/dist/commerce/index.d.ts +72 -0
  72. package/dist/commerce/index.js +67 -0
  73. package/dist/commerce/model/customerFulfillmentRecovery.d.ts +40 -0
  74. package/dist/commerce/model/customerFulfillmentRecovery.js +144 -0
  75. package/dist/commerce/model/fulfillmentCancellationEligibility.d.ts +7 -0
  76. package/dist/commerce/model/fulfillmentCancellationEligibility.js +9 -0
  77. package/dist/commerce/model/omsAccountingVisibility.d.ts +12 -0
  78. package/dist/commerce/model/omsAccountingVisibility.js +118 -0
  79. package/dist/commerce/model/omsBillingInvoiceBuyer.d.ts +2 -0
  80. package/dist/commerce/model/omsBillingInvoiceBuyer.js +15 -0
  81. package/dist/commerce/model/omsCurrency.d.ts +4 -0
  82. package/dist/commerce/model/omsCurrency.js +5 -0
  83. package/dist/commerce/model/omsFulfillmentDebug.d.ts +20 -0
  84. package/dist/commerce/model/omsFulfillmentDebug.js +122 -0
  85. package/dist/commerce/model/omsFulfillmentSummary.d.ts +16 -0
  86. package/dist/commerce/model/omsFulfillmentSummary.js +189 -0
  87. package/dist/commerce/model/omsListTotals.d.ts +13 -0
  88. package/dist/commerce/model/omsListTotals.js +32 -0
  89. package/dist/commerce/model/omsOperationalLadder.d.ts +51 -0
  90. package/dist/commerce/model/omsOperationalLadder.js +158 -0
  91. package/dist/commerce/model/omsOrderLineMoney.d.ts +4 -0
  92. package/dist/commerce/model/omsOrderLineMoney.js +25 -0
  93. package/dist/commerce/model/omsPaymentMethodSummary.d.ts +5 -0
  94. package/dist/commerce/model/omsPaymentMethodSummary.js +11 -0
  95. package/dist/commerce/model/omsReadModel.d.ts +43 -0
  96. package/dist/commerce/model/omsReadModel.js +211 -0
  97. package/dist/commerce/model/omsReadModelCommunication.d.ts +3 -0
  98. package/dist/commerce/model/omsReadModelCommunication.js +29 -0
  99. package/dist/commerce/model/omsReadModelHelpers.d.ts +125 -0
  100. package/dist/commerce/model/omsReadModelHelpers.js +212 -0
  101. package/dist/commerce/model/omsReadModelList.d.ts +33 -0
  102. package/dist/commerce/model/omsReadModelList.js +50 -0
  103. package/dist/commerce/model/omsReadModelListSummary.d.ts +3 -0
  104. package/dist/commerce/model/omsReadModelListSummary.js +13 -0
  105. package/dist/commerce/model/omsReadModelPricing.d.ts +5 -0
  106. package/dist/commerce/model/omsReadModelPricing.js +36 -0
  107. package/dist/commerce/model/omsReadModelProjections.d.ts +1 -0
  108. package/dist/commerce/model/omsReadModelProjections.js +1 -0
  109. package/dist/commerce/model/omsReadModelRowCore.d.ts +79 -0
  110. package/dist/commerce/model/omsReadModelRowCore.js +149 -0
  111. package/dist/commerce/model/omsReadModelRows.d.ts +1 -0
  112. package/dist/commerce/model/omsReadModelRows.js +6 -0
  113. package/dist/commerce/offerAvailability.d.ts +18 -0
  114. package/dist/commerce/offerAvailability.js +53 -0
  115. package/dist/commerce/offerAvailabilitySchemas.d.ts +43 -0
  116. package/dist/commerce/offerAvailabilitySchemas.js +42 -0
  117. package/dist/commerce/offerEvidenceSchemas.d.ts +7 -0
  118. package/dist/commerce/offerEvidenceSchemas.js +13 -0
  119. package/dist/commerce/oms/omsContractBase.d.ts +130 -0
  120. package/dist/commerce/oms/omsContractBase.js +86 -0
  121. package/dist/commerce/oms/omsContractReadAuxSchemas.d.ts +222 -0
  122. package/dist/commerce/oms/omsContractReadAuxSchemas.js +123 -0
  123. package/dist/commerce/oms/omsContractReadSchemas.d.ts +2266 -0
  124. package/dist/commerce/oms/omsContractReadSchemas.js +277 -0
  125. package/dist/commerce/oms/omsContractRequests.d.ts +196 -0
  126. package/dist/commerce/oms/omsContractRequests.js +118 -0
  127. package/dist/commerce/oms/omsContracts.d.ts +5 -0
  128. package/dist/commerce/oms/omsContracts.js +4 -0
  129. package/dist/commerce/oms/omsControlPlane.d.ts +275 -0
  130. package/dist/commerce/oms/omsControlPlane.js +72 -0
  131. package/dist/commerce/oms/omsFulfillmentContractSchemas.d.ts +203 -0
  132. package/dist/commerce/oms/omsFulfillmentContractSchemas.js +94 -0
  133. package/dist/commerce/oms/omsFulfillmentDebugSchemas.d.ts +69 -0
  134. package/dist/commerce/oms/omsFulfillmentDebugSchemas.js +33 -0
  135. package/dist/commerce/oms/omsFulfillmentHealthSchemas.d.ts +67 -0
  136. package/dist/commerce/oms/omsFulfillmentHealthSchemas.js +44 -0
  137. package/dist/commerce/oms/omsPorts.d.ts +84 -0
  138. package/dist/commerce/oms/omsPorts.js +148 -0
  139. package/dist/commerce/oms/omsPrimitives.d.ts +5 -0
  140. package/dist/commerce/oms/omsPrimitives.js +3 -0
  141. package/dist/commerce/oms/omsProviderEvidenceSchemas.d.ts +15 -0
  142. package/dist/commerce/oms/omsProviderEvidenceSchemas.js +12 -0
  143. package/dist/commerce/orderDraftErrors.d.ts +13 -0
  144. package/dist/commerce/orderDraftErrors.js +20 -0
  145. package/dist/commerce/orderEmailEligibility.d.ts +54 -0
  146. package/dist/commerce/orderEmailEligibility.js +123 -0
  147. package/dist/commerce/orderEmailLines.d.ts +12 -0
  148. package/dist/commerce/orderEmailLines.js +8 -0
  149. package/dist/commerce/orderFeedbackContracts.d.ts +41 -0
  150. package/dist/commerce/orderFeedbackContracts.js +33 -0
  151. package/dist/commerce/orderMoney.d.ts +6 -0
  152. package/dist/commerce/orderMoney.js +168 -0
  153. package/dist/commerce/orderReviewContracts.d.ts +475 -0
  154. package/dist/commerce/orderReviewContracts.js +94 -0
  155. package/dist/commerce/orderReviewPorts.d.ts +140 -0
  156. package/dist/commerce/orderReviewPorts.js +1 -0
  157. package/dist/commerce/outboxDispatchContracts.d.ts +30 -0
  158. package/dist/commerce/outboxDispatchContracts.js +1 -0
  159. package/dist/commerce/outboxEventSchemas.d.ts +162 -0
  160. package/dist/commerce/outboxEventSchemas.js +164 -0
  161. package/dist/commerce/outboxOrderDraftEmailPorts.d.ts +207 -0
  162. package/dist/commerce/outboxOrderDraftEmailPorts.js +12 -0
  163. package/dist/commerce/paymentContinuation.d.ts +4 -0
  164. package/dist/commerce/paymentContinuation.js +4 -0
  165. package/dist/commerce/ports.d.ts +8 -0
  166. package/dist/commerce/ports.js +1 -0
  167. package/dist/commerce/recoveryDestination.d.ts +3 -0
  168. package/dist/commerce/recoveryDestination.js +17 -0
  169. package/dist/commerce/runtimeErrors.d.ts +8 -0
  170. package/dist/commerce/runtimeErrors.js +16 -0
  171. package/dist/commerce/salesChannelEnvelope.d.ts +20 -0
  172. package/dist/commerce/salesChannelEnvelope.js +7 -0
  173. package/dist/commerce/schemas.d.ts +174 -0
  174. package/dist/commerce/schemas.js +84 -0
  175. package/dist/commerce/server/checkoutCompensation.d.ts +21 -0
  176. package/dist/commerce/server/checkoutCompensation.js +32 -0
  177. package/dist/commerce/server/checkoutConflictClassifiers.d.ts +17 -0
  178. package/dist/commerce/server/checkoutConflictClassifiers.js +38 -0
  179. package/dist/commerce/server/checkoutExpiredRecoveryPolicy.d.ts +38 -0
  180. package/dist/commerce/server/checkoutExpiredRecoveryPolicy.js +85 -0
  181. package/dist/commerce/server/checkoutInvoiceBuyerSnapshot.d.ts +22 -0
  182. package/dist/commerce/server/checkoutInvoiceBuyerSnapshot.js +30 -0
  183. package/dist/commerce/server/checkoutOfferPolicyPort.d.ts +33 -0
  184. package/dist/commerce/server/checkoutOfferPolicyPort.js +49 -0
  185. package/dist/commerce/server/checkoutPaymentContinuationCredential.d.ts +58 -0
  186. package/dist/commerce/server/checkoutPaymentContinuationCredential.js +154 -0
  187. package/dist/commerce/server/checkoutQuoteTypes.d.ts +19 -0
  188. package/dist/commerce/server/checkoutQuoteTypes.js +1 -0
  189. package/dist/commerce/server/checkoutRecoveryOrderPort.d.ts +42 -0
  190. package/dist/commerce/server/checkoutRecoveryOrderPort.js +1 -0
  191. package/dist/commerce/server/checkoutRecoveryToken.d.ts +40 -0
  192. package/dist/commerce/server/checkoutRecoveryToken.js +26 -0
  193. package/dist/commerce/server/checkoutRefusalContinuation.d.ts +24 -0
  194. package/dist/commerce/server/checkoutRefusalContinuation.js +18 -0
  195. package/dist/commerce/server/checkoutRuntimeTypes.d.ts +81 -0
  196. package/dist/commerce/server/checkoutRuntimeTypes.js +1 -0
  197. package/dist/commerce/server/commerceCheckoutCommandExecution.d.ts +60 -0
  198. package/dist/commerce/server/commerceCheckoutCommandExecution.js +136 -0
  199. package/dist/commerce/server/commerceCheckoutCompensation.d.ts +26 -0
  200. package/dist/commerce/server/commerceCheckoutCompensation.js +46 -0
  201. package/dist/commerce/server/commerceCheckoutContinuationTerms.d.ts +50 -0
  202. package/dist/commerce/server/commerceCheckoutContinuationTerms.js +66 -0
  203. package/dist/commerce/server/commerceCheckoutCustomerDefaults.d.ts +18 -0
  204. package/dist/commerce/server/commerceCheckoutCustomerDefaults.js +17 -0
  205. package/dist/commerce/server/commerceCheckoutFailureHandler.d.ts +51 -0
  206. package/dist/commerce/server/commerceCheckoutFailureHandler.js +90 -0
  207. package/dist/commerce/server/commerceCheckoutHandler.d.ts +213 -0
  208. package/dist/commerce/server/commerceCheckoutHandler.js +196 -0
  209. package/dist/commerce/server/commerceCheckoutHandlerAdmission.d.ts +58 -0
  210. package/dist/commerce/server/commerceCheckoutHandlerAdmission.js +94 -0
  211. package/dist/commerce/server/commerceCheckoutHandlerHelpers.d.ts +67 -0
  212. package/dist/commerce/server/commerceCheckoutHandlerHelpers.js +155 -0
  213. package/dist/commerce/server/commerceCheckoutOrchestrationError.d.ts +9 -0
  214. package/dist/commerce/server/commerceCheckoutOrchestrationError.js +14 -0
  215. package/dist/commerce/server/commerceCheckoutPromotionPriceChange.d.ts +47 -0
  216. package/dist/commerce/server/commerceCheckoutPromotionPriceChange.js +43 -0
  217. package/dist/commerce/server/commerceCheckoutProviderPayment.d.ts +34 -0
  218. package/dist/commerce/server/commerceCheckoutProviderPayment.js +37 -0
  219. package/dist/commerce/server/commerceCheckoutQuoteGuard.d.ts +62 -0
  220. package/dist/commerce/server/commerceCheckoutQuoteGuard.js +106 -0
  221. package/dist/commerce/server/commerceCheckoutResume.d.ts +29 -0
  222. package/dist/commerce/server/commerceCheckoutResume.js +81 -0
  223. package/dist/commerce/server/commerceCheckoutResumeGuard.d.ts +54 -0
  224. package/dist/commerce/server/commerceCheckoutResumeGuard.js +138 -0
  225. package/dist/commerce/server/commerceCheckoutSavedPaymentMethod.d.ts +39 -0
  226. package/dist/commerce/server/commerceCheckoutSavedPaymentMethod.js +44 -0
  227. package/dist/commerce/server/commerceCheckoutStartRuntimeFailure.d.ts +7 -0
  228. package/dist/commerce/server/commerceCheckoutStartRuntimeFailure.js +39 -0
  229. package/dist/commerce/server/commerceCheckoutTiming.d.ts +8 -0
  230. package/dist/commerce/server/commerceCheckoutTiming.js +31 -0
  231. package/dist/commerce/server/commerceDiagnostics.d.ts +6 -0
  232. package/dist/commerce/server/commerceDiagnostics.js +31 -0
  233. package/dist/commerce/server/commerceOmsCancelOrderHandler.d.ts +7 -0
  234. package/dist/commerce/server/commerceOmsCancelOrderHandler.js +22 -0
  235. package/dist/commerce/server/commerceOmsControlPlaneHandlers.d.ts +18 -0
  236. package/dist/commerce/server/commerceOmsControlPlaneHandlers.js +60 -0
  237. package/dist/commerce/server/commerceOmsHandlers.d.ts +47 -0
  238. package/dist/commerce/server/commerceOmsHandlers.js +176 -0
  239. package/dist/commerce/server/commerceOmsMarkRefundedHandler.d.ts +7 -0
  240. package/dist/commerce/server/commerceOmsMarkRefundedHandler.js +19 -0
  241. package/dist/commerce/server/commerceOrderDraft.d.ts +24 -0
  242. package/dist/commerce/server/commerceOrderDraft.js +92 -0
  243. package/dist/commerce/server/commercePaidOrderOrchestration.d.ts +131 -0
  244. package/dist/commerce/server/commercePaidOrderOrchestration.js +140 -0
  245. package/dist/commerce/server/commerceProviderAttemptFailure.d.ts +133 -0
  246. package/dist/commerce/server/commerceProviderAttemptFailure.js +175 -0
  247. package/dist/commerce/server/commerceReturnsHandlers.d.ts +41 -0
  248. package/dist/commerce/server/commerceReturnsHandlers.js +100 -0
  249. package/dist/commerce/server/commerceRuntimePort.d.ts +16 -0
  250. package/dist/commerce/server/commerceRuntimePort.js +57 -0
  251. package/dist/commerce/server/commerceRuntimeService.d.ts +98 -0
  252. package/dist/commerce/server/commerceRuntimeService.js +186 -0
  253. package/dist/commerce/server/commerceRuntimeStartResponse.d.ts +37 -0
  254. package/dist/commerce/server/commerceRuntimeStartResponse.js +56 -0
  255. package/dist/commerce/server/commerceStarterOfferGuard.d.ts +55 -0
  256. package/dist/commerce/server/commerceStarterOfferGuard.js +128 -0
  257. package/dist/commerce/server/configuratorIntentPersistence.d.ts +47 -0
  258. package/dist/commerce/server/configuratorIntentPersistence.js +85 -0
  259. package/dist/commerce/server/configuratorIntentPersistenceHandler.d.ts +14 -0
  260. package/dist/commerce/server/configuratorIntentPersistenceHandler.js +42 -0
  261. package/dist/commerce/server/emailRuntime.d.ts +47 -0
  262. package/dist/commerce/server/emailRuntime.js +1 -0
  263. package/dist/commerce/server/handlerSupport.d.ts +68 -0
  264. package/dist/commerce/server/handlerSupport.js +1 -0
  265. package/dist/commerce/server/index.d.ts +178 -0
  266. package/dist/commerce/server/index.js +127 -0
  267. package/dist/commerce/server/offerAvailability.d.ts +21 -0
  268. package/dist/commerce/server/offerAvailability.js +163 -0
  269. package/dist/commerce/server/orderDraftRpcPayload.d.ts +20 -0
  270. package/dist/commerce/server/orderDraftRpcPayload.js +21 -0
  271. package/dist/commerce/server/orderFeedbackSubmit.d.ts +20 -0
  272. package/dist/commerce/server/orderFeedbackSubmit.js +16 -0
  273. package/dist/commerce/server/orderFeedbackTokenCheck.d.ts +17 -0
  274. package/dist/commerce/server/orderFeedbackTokenCheck.js +14 -0
  275. package/dist/commerce/server/orderReviewAdminHandlers.d.ts +47 -0
  276. package/dist/commerce/server/orderReviewAdminHandlers.js +41 -0
  277. package/dist/commerce/server/orderReviewHandlers.d.ts +114 -0
  278. package/dist/commerce/server/orderReviewHandlers.js +42 -0
  279. package/dist/commerce/server/orderReviewLifecycle.d.ts +10 -0
  280. package/dist/commerce/server/orderReviewLifecycle.js +121 -0
  281. package/dist/commerce/server/orderReviewMedia.d.ts +11 -0
  282. package/dist/commerce/server/orderReviewMedia.js +172 -0
  283. package/dist/commerce/server/orderReviewRawUploadHandler.d.ts +40 -0
  284. package/dist/commerce/server/orderReviewRawUploadHandler.js +316 -0
  285. package/dist/commerce/server/outboxCheckoutExpiredEmailHandler.d.ts +14 -0
  286. package/dist/commerce/server/outboxCheckoutExpiredEmailHandler.js +57 -0
  287. package/dist/commerce/server/outboxCheckoutRecoveryEmailHandler.d.ts +13 -0
  288. package/dist/commerce/server/outboxCheckoutRecoveryEmailHandler.js +150 -0
  289. package/dist/commerce/server/outboxDispatchRegistry.d.ts +46 -0
  290. package/dist/commerce/server/outboxDispatchRegistry.js +184 -0
  291. package/dist/commerce/server/outboxDispatchRegistryComposition.d.ts +6 -0
  292. package/dist/commerce/server/outboxDispatchRegistryComposition.js +23 -0
  293. package/dist/commerce/server/outboxOrderDraftEmailHandler.d.ts +14 -0
  294. package/dist/commerce/server/outboxOrderDraftEmailHandler.js +130 -0
  295. package/dist/commerce/server/outboxOrderPaidEmailHandler.d.ts +21 -0
  296. package/dist/commerce/server/outboxOrderPaidEmailHandler.js +93 -0
  297. package/dist/commerce/server/outboxOrderPaidFulfillmentHandler.d.ts +3 -0
  298. package/dist/commerce/server/outboxOrderPaidFulfillmentHandler.js +1 -0
  299. package/dist/commerce/server/outboxOrderPaidFulfillmentPorts.d.ts +3 -0
  300. package/dist/commerce/server/outboxOrderPaidFulfillmentPorts.js +1 -0
  301. package/dist/commerce/server/outboxOrderRefundedEmailHandler.d.ts +13 -0
  302. package/dist/commerce/server/outboxOrderRefundedEmailHandler.js +42 -0
  303. package/dist/commerce/server/outboxPaymentFailedEmailHandler.d.ts +14 -0
  304. package/dist/commerce/server/outboxPaymentFailedEmailHandler.js +65 -0
  305. package/dist/commerce/server/outboxReturnEmailHandlers.d.ts +26 -0
  306. package/dist/commerce/server/outboxReturnEmailHandlers.js +53 -0
  307. package/dist/commerce/server/outboxShipmentDeliveredEmailHandler.d.ts +17 -0
  308. package/dist/commerce/server/outboxShipmentDeliveredEmailHandler.js +52 -0
  309. package/dist/commerce/server/outboxShipmentDispatchedEmailHandler.d.ts +13 -0
  310. package/dist/commerce/server/outboxShipmentDispatchedEmailHandler.js +87 -0
  311. package/dist/commerce/server/outboxShipmentExceptionEmailHandler.d.ts +13 -0
  312. package/dist/commerce/server/outboxShipmentExceptionEmailHandler.js +46 -0
  313. package/dist/commerce/server/referenceCheckoutHandler.d.ts +48 -0
  314. package/dist/commerce/server/referenceCheckoutHandler.js +68 -0
  315. package/dist/commerce/server/reservationSweepPort.d.ts +31 -0
  316. package/dist/commerce/server/reservationSweepPort.js +45 -0
  317. package/dist/commerce/server/starterTermsPort.d.ts +22 -0
  318. package/dist/commerce/server/starterTermsPort.js +1 -0
  319. package/dist/commerce/server/supabaseCommerceReturnsPort.d.ts +13 -0
  320. package/dist/commerce/server/supabaseCommerceReturnsPort.js +56 -0
  321. package/dist/communications/consentPurposeRegistry.d.ts +1 -1
  322. package/dist/communications/newsletterIntegrationContracts.d.ts +5 -5
  323. package/dist/composition/commerceContribution.d.ts +21 -0
  324. package/dist/composition/commerceContribution.js +27 -0
  325. package/dist/composition/index.d.ts +1 -0
  326. package/dist/composition/index.js +1 -0
  327. package/dist/fulfillment/handlerSchemas.d.ts +41 -41
  328. package/dist/fulfillment/index.d.ts +1 -1
  329. package/dist/fulfillment/index.js +1 -1
  330. package/dist/fulfillment/paidHandoff.d.ts +12 -1
  331. package/dist/fulfillment/paidHandoff.js +2 -2
  332. package/dist/fulfillment/providerDispatchWorker.d.ts +4 -4
  333. package/dist/identity/customerContracts.d.ts +2 -2
  334. package/dist/inventory/bindings.d.ts +3 -0
  335. package/dist/inventory/bindings.js +10 -4
  336. package/dist/inventory/index.d.ts +1 -0
  337. package/dist/inventory/index.js +1 -0
  338. package/dist/inventory/managedStockAvailability.d.ts +15 -0
  339. package/dist/inventory/managedStockAvailability.js +16 -0
  340. package/dist/inventory/postgresStockAvailability.js +2 -25
  341. package/dist/inventory/schemas.d.ts +1 -1
  342. package/dist/inventory/stockReadResponse.d.ts +4 -0
  343. package/dist/inventory/stockReadResponse.js +27 -0
  344. package/dist/pricing/browser/index.d.ts +6 -0
  345. package/dist/pricing/browser/index.js +6 -0
  346. package/dist/promotions/adminPromotionsContracts.d.ts +2 -2
  347. package/dist/subscriptions/contracts/renewal.d.ts +2 -0
  348. package/dist/subscriptions/index.d.ts +3 -2
  349. package/dist/subscriptions/index.js +3 -2
  350. package/dist/subscriptions/renewalCycleFailureMechanism.js +3 -2
  351. package/package.json +22 -2
  352. package/release-gates.json +63 -8
  353. package/src/commerce/adapters/managed/commerceOmsControlPlane.ts +80 -0
  354. package/src/commerce/adapters/managed/commerceOmsMutations.ts +145 -0
  355. package/src/commerce/adapters/managed/commerceOmsPort.ts +158 -0
  356. package/src/commerce/adapters/managed/oms/accounting.ts +18 -0
  357. package/src/commerce/adapters/managed/oms/fulfillmentReads.ts +82 -0
  358. package/src/commerce/adapters/managed/oms/inboundEvents.ts +45 -0
  359. package/src/commerce/adapters/managed/oms/outboxEvents.ts +30 -0
  360. package/src/commerce/adapters/managed/oms/paymentAttempts.ts +19 -0
  361. package/src/commerce/adapters/managed/oms/queueSelection.ts +132 -0
  362. package/src/commerce/adapters/managed/oms/readProjections.ts +22 -0
  363. package/src/commerce/adapters/managed/oms/readQueries.ts +292 -0
  364. package/src/commerce/adapters/managed/oms/types.ts +9 -0
  365. package/src/commerce/checkoutCommandSchemas.ts +93 -0
  366. package/src/commerce/checkoutHelpers.ts +47 -0
  367. package/src/commerce/checkoutResumeSchemas.ts +164 -0
  368. package/src/commerce/checkoutSchemas.ts +182 -0
  369. package/src/commerce/commerceReturnsPort.ts +67 -0
  370. package/src/commerce/configuratorIntentPersistenceSchemas.ts +26 -0
  371. package/src/commerce/configuratorIntentSchemas.ts +47 -0
  372. package/src/commerce/contractPrimitives.ts +30 -0
  373. package/src/commerce/contracts/availability.ts +21 -0
  374. package/src/commerce/contracts/fulfillmentRecovery.ts +26 -0
  375. package/src/commerce/contracts/index.ts +17 -0
  376. package/src/commerce/contracts/intent.ts +58 -0
  377. package/src/commerce/contracts/omsTypes.ts +1217 -0
  378. package/src/commerce/contracts/order.ts +44 -0
  379. package/src/commerce/contracts/orderMoney.ts +75 -0
  380. package/src/commerce/contracts/ports.ts +124 -0
  381. package/src/commerce/contracts/recovery.ts +24 -0
  382. package/src/commerce/contracts/runtimePorts.ts +201 -0
  383. package/src/commerce/contracts/state.ts +64 -0
  384. package/src/commerce/customerDefaultsSnapshotSchemas.ts +117 -0
  385. package/src/commerce/errors.ts +53 -0
  386. package/src/commerce/fulfillmentEligibility.ts +32 -0
  387. package/src/commerce/index.ts +82 -0
  388. package/src/commerce/model/customerFulfillmentRecovery.ts +185 -0
  389. package/src/commerce/model/fulfillmentCancellationEligibility.ts +18 -0
  390. package/src/commerce/model/omsAccountingVisibility.ts +135 -0
  391. package/src/commerce/model/omsBillingInvoiceBuyer.ts +20 -0
  392. package/src/commerce/model/omsCurrency.ts +8 -0
  393. package/src/commerce/model/omsFulfillmentDebug.ts +157 -0
  394. package/src/commerce/model/omsFulfillmentSummary.ts +225 -0
  395. package/src/commerce/model/omsListTotals.ts +38 -0
  396. package/src/commerce/model/omsOperationalLadder.ts +181 -0
  397. package/src/commerce/model/omsOrderLineMoney.ts +34 -0
  398. package/src/commerce/model/omsPaymentMethodSummary.ts +19 -0
  399. package/src/commerce/model/omsReadModel.ts +302 -0
  400. package/src/commerce/model/omsReadModelCommunication.ts +32 -0
  401. package/src/commerce/model/omsReadModelHelpers.ts +279 -0
  402. package/src/commerce/model/omsReadModelList.ts +90 -0
  403. package/src/commerce/model/omsReadModelListSummary.ts +19 -0
  404. package/src/commerce/model/omsReadModelPricing.ts +57 -0
  405. package/src/commerce/model/omsReadModelProjections.ts +1 -0
  406. package/src/commerce/model/omsReadModelRowCore.ts +193 -0
  407. package/src/commerce/model/omsReadModelRows.ts +7 -0
  408. package/src/commerce/offerAvailability.ts +75 -0
  409. package/src/commerce/offerAvailabilitySchemas.ts +56 -0
  410. package/src/commerce/offerEvidenceSchemas.ts +17 -0
  411. package/src/commerce/oms/omsContractBase.ts +92 -0
  412. package/src/commerce/oms/omsContractReadAuxSchemas.ts +130 -0
  413. package/src/commerce/oms/omsContractReadSchemas.ts +303 -0
  414. package/src/commerce/oms/omsContractRequests.ts +143 -0
  415. package/src/commerce/oms/omsContracts.ts +6 -0
  416. package/src/commerce/oms/omsControlPlane.ts +85 -0
  417. package/src/commerce/oms/omsFulfillmentContractSchemas.ts +113 -0
  418. package/src/commerce/oms/omsFulfillmentDebugSchemas.ts +38 -0
  419. package/src/commerce/oms/omsFulfillmentHealthSchemas.ts +46 -0
  420. package/src/commerce/oms/omsPorts.ts +165 -0
  421. package/src/commerce/oms/omsPrimitives.ts +3 -0
  422. package/src/commerce/oms/omsProviderEvidenceSchemas.ts +13 -0
  423. package/src/commerce/orderDraftErrors.ts +28 -0
  424. package/src/commerce/orderEmailEligibility.ts +131 -0
  425. package/src/commerce/orderEmailLines.ts +22 -0
  426. package/src/commerce/orderFeedbackContracts.ts +47 -0
  427. package/src/commerce/orderMoney.ts +207 -0
  428. package/src/commerce/orderReviewContracts.ts +124 -0
  429. package/src/commerce/orderReviewPorts.ts +94 -0
  430. package/src/commerce/outboxDispatchContracts.ts +30 -0
  431. package/src/commerce/outboxEventSchemas.ts +230 -0
  432. package/src/commerce/outboxOrderDraftEmailPorts.ts +241 -0
  433. package/src/commerce/paymentContinuation.ts +5 -0
  434. package/src/commerce/ports.ts +7 -0
  435. package/src/commerce/recoveryDestination.ts +23 -0
  436. package/src/commerce/runtimeErrors.ts +19 -0
  437. package/src/commerce/salesChannelEnvelope.ts +28 -0
  438. package/src/commerce/schemas.ts +104 -0
  439. package/src/commerce/server/checkoutCompensation.ts +49 -0
  440. package/src/commerce/server/checkoutConflictClassifiers.ts +53 -0
  441. package/src/commerce/server/checkoutExpiredRecoveryPolicy.ts +107 -0
  442. package/src/commerce/server/checkoutInvoiceBuyerSnapshot.ts +36 -0
  443. package/src/commerce/server/checkoutOfferPolicyPort.ts +60 -0
  444. package/src/commerce/server/checkoutPaymentContinuationCredential.ts +222 -0
  445. package/src/commerce/server/checkoutQuoteTypes.ts +9 -0
  446. package/src/commerce/server/checkoutRecoveryOrderPort.ts +40 -0
  447. package/src/commerce/server/checkoutRecoveryToken.ts +63 -0
  448. package/src/commerce/server/checkoutRefusalContinuation.ts +29 -0
  449. package/src/commerce/server/checkoutRuntimeTypes.ts +26 -0
  450. package/src/commerce/server/commerceCheckoutCommandExecution.ts +188 -0
  451. package/src/commerce/server/commerceCheckoutCompensation.ts +66 -0
  452. package/src/commerce/server/commerceCheckoutContinuationTerms.ts +87 -0
  453. package/src/commerce/server/commerceCheckoutCustomerDefaults.ts +24 -0
  454. package/src/commerce/server/commerceCheckoutFailureHandler.ts +144 -0
  455. package/src/commerce/server/commerceCheckoutHandler.ts +269 -0
  456. package/src/commerce/server/commerceCheckoutHandlerAdmission.ts +157 -0
  457. package/src/commerce/server/commerceCheckoutHandlerHelpers.ts +223 -0
  458. package/src/commerce/server/commerceCheckoutOrchestrationError.ts +15 -0
  459. package/src/commerce/server/commerceCheckoutPromotionPriceChange.ts +83 -0
  460. package/src/commerce/server/commerceCheckoutProviderPayment.ts +45 -0
  461. package/src/commerce/server/commerceCheckoutQuoteGuard.ts +172 -0
  462. package/src/commerce/server/commerceCheckoutResume.ts +132 -0
  463. package/src/commerce/server/commerceCheckoutResumeGuard.ts +195 -0
  464. package/src/commerce/server/commerceCheckoutSavedPaymentMethod.ts +85 -0
  465. package/src/commerce/server/commerceCheckoutStartRuntimeFailure.ts +59 -0
  466. package/src/commerce/server/commerceCheckoutTiming.ts +53 -0
  467. package/src/commerce/server/commerceDiagnostics.ts +37 -0
  468. package/src/commerce/server/commerceOmsCancelOrderHandler.ts +43 -0
  469. package/src/commerce/server/commerceOmsControlPlaneHandlers.ts +71 -0
  470. package/src/commerce/server/commerceOmsHandlers.ts +275 -0
  471. package/src/commerce/server/commerceOmsMarkRefundedHandler.ts +39 -0
  472. package/src/commerce/server/commerceOrderDraft.ts +131 -0
  473. package/src/commerce/server/commercePaidOrderOrchestration.ts +275 -0
  474. package/src/commerce/server/commerceProviderAttemptFailure.ts +257 -0
  475. package/src/commerce/server/commerceReturnsHandlers.ts +143 -0
  476. package/src/commerce/server/commerceRuntimePort.ts +75 -0
  477. package/src/commerce/server/commerceRuntimeService.ts +229 -0
  478. package/src/commerce/server/commerceRuntimeStartResponse.ts +76 -0
  479. package/src/commerce/server/commerceStarterOfferGuard.ts +200 -0
  480. package/src/commerce/server/configuratorIntentPersistence.ts +161 -0
  481. package/src/commerce/server/configuratorIntentPersistenceHandler.ts +54 -0
  482. package/src/commerce/server/emailRuntime.ts +30 -0
  483. package/src/commerce/server/handlerSupport.ts +22 -0
  484. package/src/commerce/server/index.ts +181 -0
  485. package/src/commerce/server/offerAvailability.ts +275 -0
  486. package/src/commerce/server/orderDraftRpcPayload.ts +39 -0
  487. package/src/commerce/server/orderFeedbackSubmit.ts +40 -0
  488. package/src/commerce/server/orderFeedbackTokenCheck.ts +28 -0
  489. package/src/commerce/server/orderReviewAdminHandlers.ts +43 -0
  490. package/src/commerce/server/orderReviewHandlers.ts +57 -0
  491. package/src/commerce/server/orderReviewLifecycle.ts +129 -0
  492. package/src/commerce/server/orderReviewMedia.ts +170 -0
  493. package/src/commerce/server/orderReviewRawUploadHandler.ts +300 -0
  494. package/src/commerce/server/outboxCheckoutExpiredEmailHandler.ts +86 -0
  495. package/src/commerce/server/outboxCheckoutRecoveryEmailHandler.ts +188 -0
  496. package/src/commerce/server/outboxDispatchRegistry.ts +269 -0
  497. package/src/commerce/server/outboxDispatchRegistryComposition.ts +31 -0
  498. package/src/commerce/server/outboxOrderDraftEmailHandler.ts +162 -0
  499. package/src/commerce/server/outboxOrderPaidEmailHandler.ts +147 -0
  500. package/src/commerce/server/outboxOrderPaidFulfillmentHandler.ts +4 -0
  501. package/src/commerce/server/outboxOrderPaidFulfillmentPorts.ts +3 -0
  502. package/src/commerce/server/outboxOrderRefundedEmailHandler.ts +58 -0
  503. package/src/commerce/server/outboxPaymentFailedEmailHandler.ts +99 -0
  504. package/src/commerce/server/outboxReturnEmailHandlers.ts +92 -0
  505. package/src/commerce/server/outboxShipmentDeliveredEmailHandler.ts +94 -0
  506. package/src/commerce/server/outboxShipmentDispatchedEmailHandler.ts +112 -0
  507. package/src/commerce/server/outboxShipmentExceptionEmailHandler.ts +73 -0
  508. package/src/commerce/server/referenceCheckoutHandler.ts +87 -0
  509. package/src/commerce/server/reservationSweepPort.ts +67 -0
  510. package/src/commerce/server/starterTermsPort.ts +22 -0
  511. package/src/commerce/server/supabaseCommerceReturnsPort.ts +81 -0
  512. package/src/composition/commerceContribution.ts +35 -0
  513. package/src/composition/index.ts +1 -0
  514. package/src/fulfillment/index.ts +1 -1
  515. package/src/fulfillment/paidHandoff.ts +2 -2
  516. package/src/inventory/bindings.ts +12 -4
  517. package/src/inventory/index.ts +1 -0
  518. package/src/inventory/managedStockAvailability.ts +23 -0
  519. package/src/inventory/postgresStockAvailability.ts +2 -21
  520. package/src/inventory/stockReadResponse.ts +25 -0
  521. package/src/pricing/browser/index.ts +6 -0
  522. package/src/subscriptions/contracts/renewal.ts +2 -1
  523. package/src/subscriptions/index.ts +3 -2
  524. package/src/subscriptions/renewalCycleFailureMechanism.ts +3 -1
@@ -0,0 +1,36 @@
1
+ export class CommerceNotEnabledError extends Error {
2
+ constructor(feature) {
3
+ super(`Commerce ${feature} is not enabled yet`);
4
+ this.name = "CommerceNotEnabledError";
5
+ }
6
+ }
7
+ export class CommerceOrderDraftConflictError extends Error {
8
+ details;
9
+ constructor(message = "Commerce order draft idempotency conflict", details = {}) {
10
+ super(message);
11
+ this.name = "CommerceOrderDraftConflictError";
12
+ this.details = details;
13
+ }
14
+ }
15
+ export class CommerceOrderDraftInvalidResponseError extends Error {
16
+ constructor() {
17
+ super("Commerce order draft returned invalid response");
18
+ this.name = "CommerceOrderDraftInvalidResponseError";
19
+ }
20
+ }
21
+ export class CommerceOrderDraftPersistenceError extends Error {
22
+ details;
23
+ constructor(message = "Commerce order draft persistence failed", details = {}) {
24
+ super(message);
25
+ this.name = "CommerceOrderDraftPersistenceError";
26
+ this.details = details;
27
+ }
28
+ }
29
+ export class CommerceCheckoutResumePersistenceError extends Error {
30
+ details;
31
+ constructor(message = "Commerce checkout resume persistence failed", details = {}) {
32
+ super(message);
33
+ this.name = "CommerceCheckoutResumePersistenceError";
34
+ this.details = details;
35
+ }
36
+ }
@@ -0,0 +1,6 @@
1
+ import type { CommerceFulfillmentEligibilityInput, OmsFulfillmentBlockReason } from "./contracts/state.js";
2
+ export declare function evaluateCommerceFulfillmentEligibility(input: CommerceFulfillmentEligibilityInput): {
3
+ allowed: boolean;
4
+ reason: OmsFulfillmentBlockReason | null;
5
+ };
6
+ export declare function mapOmsPaymentStatus(status: string | null): string;
@@ -0,0 +1,31 @@
1
+ export function evaluateCommerceFulfillmentEligibility(input) {
2
+ if (input.activeHoldCount > 0)
3
+ return { allowed: false, reason: "active_hold" };
4
+ if (!input.hasShippingAddress)
5
+ return { allowed: false, reason: "missing_shipping_address" };
6
+ if (input.riskReviewRequired)
7
+ return { allowed: false, reason: "risk_review" };
8
+ if (!["paid", "fulfillment_pending", "fulfilled"].includes(input.orderStatus)) {
9
+ return { allowed: false, reason: "order_not_paid" };
10
+ }
11
+ if (input.paymentStatus !== "succeeded") {
12
+ return { allowed: false, reason: "payment_not_succeeded" };
13
+ }
14
+ if (input.orderMode === "subscription_cycle" && input.subscriptionCycleStatus !== "paid") {
15
+ return { allowed: false, reason: "subscription_cycle_not_paid" };
16
+ }
17
+ if (input.inventoryReviewRequired ||
18
+ ["missing", "released", "expired", "review_required"].includes(input.inventoryStatus ?? "not_checked")) {
19
+ return { allowed: false, reason: "inventory_review" };
20
+ }
21
+ return { allowed: true, reason: null };
22
+ }
23
+ export function mapOmsPaymentStatus(status) {
24
+ if (!status)
25
+ return "not_started";
26
+ if (status === "pending")
27
+ return "processing";
28
+ if (status === "paid")
29
+ return "succeeded";
30
+ return status;
31
+ }
@@ -0,0 +1,72 @@
1
+ export type * from "./contracts/index.js";
2
+ export { createOfferAvailabilitySchemas, offerAvailabilityRequestItems } from "./offerAvailabilitySchemas.js";
3
+ export { hasSubscriptionRecoveryContext, resolveRecoveryDestination } from "./recoveryDestination.js";
4
+ export * from "./errors.js";
5
+ export * from "./orderDraftErrors.js";
6
+ export { buildOrderDeliveryContact, uuidFromOrderRef, messageOf } from "./checkoutHelpers.js";
7
+ export type { OrderDeliveryContactInput } from "./checkoutHelpers.js";
8
+ export { CART_STATUSES, CHECKOUT_STATUSES, ORDER_DRAFT_STATUSES, ORDER_STATUSES, PAYMENT_STATUSES, OMS_FULFILLMENT_BLOCK_REASONS, OMS_INVENTORY_STATUSES } from "./contracts/state.js";
9
+ export { evaluateCommerceFulfillmentEligibility, mapOmsPaymentStatus } from "./fulfillmentEligibility.js";
10
+ export * from "./contractPrimitives.js";
11
+ export { createCommerceSchemas } from "./schemas.js";
12
+ export * from "./checkoutResumeSchemas.js";
13
+ export * from "./customerDefaultsSnapshotSchemas.js";
14
+ export * from "./configuratorIntentSchemas.js";
15
+ export * from "./configuratorIntentPersistenceSchemas.js";
16
+ export { CHECKOUT_CONTRACT_VERSION, ASYNC_CHECKOUT_STATUSES, checkoutKindSchema, checkoutActivationStatusSchema, asyncCheckoutStatusSchema, subscriptionActivationStatusSchema, invoiceBuyerSnapshotAddressCoreSchema, checkoutRequestCoreSchema, createCheckoutResponseSchemas, createCheckoutQuoteSchemas } from "./checkoutSchemas.js";
17
+ export * from "./runtimeErrors.js";
18
+ export type { CreateQuoteOptions, CommerceQuotePort } from "./ports.js";
19
+ export * from "./orderMoney.js";
20
+ export * from "./outboxEventSchemas.js";
21
+ export * from "./model/omsAccountingVisibility.js";
22
+ export * from "./model/omsBillingInvoiceBuyer.js";
23
+ export * from "./model/omsOrderLineMoney.js";
24
+ export * from "./model/omsPaymentMethodSummary.js";
25
+ export * from "./model/omsReadModelCommunication.js";
26
+ export * from "./model/omsReadModelHelpers.js";
27
+ export * from "./model/omsReadModelList.js";
28
+ export * from "./model/omsReadModelListSummary.js";
29
+ export * from "./model/omsReadModelPricing.js";
30
+ export * from "./model/omsReadModelRows.js";
31
+ export * from "./model/omsFulfillmentDebug.js";
32
+ export * from "./model/omsOperationalLadder.js";
33
+ export * from "./model/omsFulfillmentSummary.js";
34
+ export * from "./model/omsListTotals.js";
35
+ export * from "./model/omsReadModelRowCore.js";
36
+ export * from "./model/fulfillmentCancellationEligibility.js";
37
+ export * from "./oms/omsContractBase.js";
38
+ export * from "./oms/omsContractReadAuxSchemas.js";
39
+ export * from "./oms/omsContractReadSchemas.js";
40
+ export * from "./oms/omsContractRequests.js";
41
+ export * from "./oms/omsContracts.js";
42
+ export * from "./oms/omsFulfillmentContractSchemas.js";
43
+ export * from "./oms/omsFulfillmentDebugSchemas.js";
44
+ export * from "./oms/omsFulfillmentHealthSchemas.js";
45
+ export * from "./oms/omsProviderEvidenceSchemas.js";
46
+ export * from "./oms/omsControlPlane.js";
47
+ export * from "./oms/omsPorts.js";
48
+ export * from "./model/omsReadModelProjections.js";
49
+ export * from "./model/omsCurrency.js";
50
+ export declare const COMMERCE_CONTRACT_VERSION = "commerce.v0";
51
+ export * from "./model/customerFulfillmentRecovery.js";
52
+ export * from "./commerceReturnsPort.js";
53
+ export * from "./orderReviewContracts.js";
54
+ export type * from "./orderReviewPorts.js";
55
+ export * from "./orderFeedbackContracts.js";
56
+ export * from "./salesChannelEnvelope.js";
57
+ export * from "./orderEmailEligibility.js";
58
+ export * from "./orderEmailLines.js";
59
+ export * from "./outboxDispatchContracts.js";
60
+ export * from "./outboxOrderDraftEmailPorts.js";
61
+ /** @consumer src/domains/commerce/checkoutCommandContracts.ts */
62
+ export { createCheckoutCommandSchemas, CHECKOUT_COMMAND_V1, REFERENCE_CHECKOUT_V1 } from "./checkoutCommandSchemas.js";
63
+ export type { CheckoutCommandPersistenceResult } from "./checkoutCommandSchemas.js";
64
+ /** @consumer src/domains/commerce/paymentContinuationContracts.ts */
65
+ export { checkoutContinuationJourneyIdSchema, CHECKOUT_PAYMENT_CONTINUATION_TTL_SECONDS } from "./paymentContinuation.js";
66
+ /** @consumer server/domains/commerce/checkoutOfferPolicyPort.ts */
67
+ export { commerceOfferEvidenceSchema } from "./offerEvidenceSchemas.js";
68
+ export type { CommerceOfferEvidence } from "./offerEvidenceSchemas.js";
69
+ /** @consumer src/domains/commerce/offerAvailability.ts */
70
+ export { DEFAULT_LOW_STOCK_THRESHOLD, deriveOfferAvailability, defaultOfferAvailability, availabilityBySku, statusForSellableNow, reasonCodeFor } from "./offerAvailability.js";
71
+ /** @consumer src/domains/commerce/offerAvailability.ts */
72
+ export type { DeriveOfferAvailabilityInput } from "./offerAvailability.js";
@@ -0,0 +1,67 @@
1
+ export { createOfferAvailabilitySchemas, offerAvailabilityRequestItems } from "./offerAvailabilitySchemas.js";
2
+ export { hasSubscriptionRecoveryContext, resolveRecoveryDestination } from "./recoveryDestination.js";
3
+ export * from "./errors.js";
4
+ export * from "./orderDraftErrors.js";
5
+ export { buildOrderDeliveryContact, uuidFromOrderRef, messageOf } from "./checkoutHelpers.js";
6
+ export { CART_STATUSES, CHECKOUT_STATUSES, ORDER_DRAFT_STATUSES, ORDER_STATUSES, PAYMENT_STATUSES, OMS_FULFILLMENT_BLOCK_REASONS, OMS_INVENTORY_STATUSES } from "./contracts/state.js";
7
+ export { evaluateCommerceFulfillmentEligibility, mapOmsPaymentStatus } from "./fulfillmentEligibility.js";
8
+ export * from "./contractPrimitives.js";
9
+ export { createCommerceSchemas } from "./schemas.js";
10
+ export * from "./checkoutResumeSchemas.js";
11
+ export * from "./customerDefaultsSnapshotSchemas.js";
12
+ export * from "./configuratorIntentSchemas.js";
13
+ export * from "./configuratorIntentPersistenceSchemas.js";
14
+ export { CHECKOUT_CONTRACT_VERSION, ASYNC_CHECKOUT_STATUSES, checkoutKindSchema, checkoutActivationStatusSchema, asyncCheckoutStatusSchema, subscriptionActivationStatusSchema, invoiceBuyerSnapshotAddressCoreSchema, checkoutRequestCoreSchema, createCheckoutResponseSchemas, createCheckoutQuoteSchemas } from "./checkoutSchemas.js";
15
+ export * from "./runtimeErrors.js";
16
+ export * from "./orderMoney.js";
17
+ export * from "./outboxEventSchemas.js";
18
+ // M11 K3a OMS runtime surface.
19
+ export * from "./model/omsAccountingVisibility.js";
20
+ export * from "./model/omsBillingInvoiceBuyer.js";
21
+ export * from "./model/omsOrderLineMoney.js";
22
+ export * from "./model/omsPaymentMethodSummary.js";
23
+ export * from "./model/omsReadModelCommunication.js";
24
+ export * from "./model/omsReadModelHelpers.js";
25
+ export * from "./model/omsReadModelList.js";
26
+ export * from "./model/omsReadModelListSummary.js";
27
+ export * from "./model/omsReadModelPricing.js";
28
+ export * from "./model/omsReadModelRows.js";
29
+ export * from "./model/omsFulfillmentDebug.js";
30
+ export * from "./model/omsOperationalLadder.js";
31
+ export * from "./model/omsFulfillmentSummary.js";
32
+ export * from "./model/omsListTotals.js";
33
+ export * from "./model/omsReadModelRowCore.js";
34
+ export * from "./model/fulfillmentCancellationEligibility.js";
35
+ export * from "./oms/omsContractBase.js";
36
+ export * from "./oms/omsContractReadAuxSchemas.js";
37
+ export * from "./oms/omsContractReadSchemas.js";
38
+ export * from "./oms/omsContractRequests.js";
39
+ export * from "./oms/omsContracts.js";
40
+ export * from "./oms/omsFulfillmentContractSchemas.js";
41
+ export * from "./oms/omsFulfillmentDebugSchemas.js";
42
+ export * from "./oms/omsFulfillmentHealthSchemas.js";
43
+ export * from "./oms/omsProviderEvidenceSchemas.js";
44
+ export * from "./oms/omsControlPlane.js";
45
+ export * from "./oms/omsPorts.js";
46
+ export * from "./model/omsReadModelProjections.js";
47
+ export * from "./model/omsCurrency.js";
48
+ import { COMMERCE_CONTRACT_VERSION as contractVersion } from "../pricing/contracts/index.js";
49
+ export const COMMERCE_CONTRACT_VERSION = contractVersion;
50
+ export * from "./model/customerFulfillmentRecovery.js";
51
+ export * from "./commerceReturnsPort.js";
52
+ export * from "./orderReviewContracts.js";
53
+ export * from "./orderFeedbackContracts.js";
54
+ // Experimental browser-safe event contracts, projections and ports.
55
+ export * from "./salesChannelEnvelope.js";
56
+ export * from "./orderEmailEligibility.js";
57
+ export * from "./orderEmailLines.js";
58
+ export * from "./outboxDispatchContracts.js";
59
+ export * from "./outboxOrderDraftEmailPorts.js";
60
+ /** @consumer src/domains/commerce/checkoutCommandContracts.ts */
61
+ export { createCheckoutCommandSchemas, CHECKOUT_COMMAND_V1, REFERENCE_CHECKOUT_V1 } from "./checkoutCommandSchemas.js";
62
+ /** @consumer src/domains/commerce/paymentContinuationContracts.ts */
63
+ export { checkoutContinuationJourneyIdSchema, CHECKOUT_PAYMENT_CONTINUATION_TTL_SECONDS } from "./paymentContinuation.js";
64
+ /** @consumer server/domains/commerce/checkoutOfferPolicyPort.ts */
65
+ export { commerceOfferEvidenceSchema } from "./offerEvidenceSchemas.js";
66
+ /** @consumer src/domains/commerce/offerAvailability.ts */
67
+ export { DEFAULT_LOW_STOCK_THRESHOLD, deriveOfferAvailability, defaultOfferAvailability, availabilityBySku, statusForSellableNow, reasonCodeFor } from "./offerAvailability.js";
@@ -0,0 +1,40 @@
1
+ import type { CustomerFulfillmentStep } from "@openlup/core/fulfillment";
2
+ import type { ProviderStatusEvidence, ReleasedProviderExceptionHold, ResolvedProviderExceptionRecovery, TimedFulfillmentSignal } from "../contracts/fulfillmentRecovery.js";
3
+ export { stepForToken } from "@openlup/core/fulfillment";
4
+ export type { CustomerFulfillmentStep } from "@openlup/core/fulfillment";
5
+ export type { ProviderStatusEvidence, ReleasedProviderExceptionHold, ResolvedProviderExceptionRecovery, TimedFulfillmentSignal } from "../contracts/fulfillmentRecovery.js";
6
+ /** Server-only shape read from a released automatic provider-exception hold. */
7
+ /**
8
+ * Finds only database-authored, trigger-created recovery links. The returned IDs
9
+ * stay server-side: the browser receives the resulting Layer C step, never hold
10
+ * metadata or provider evidence identifiers.
11
+ */
12
+ export declare function resolveProviderExceptionRecovery(input: {
13
+ automaticHoldSource?: string;
14
+ automaticReleaseSource?: string;
15
+ fulfillmentOrderId: string | null | undefined;
16
+ releasedHolds: ReleasedProviderExceptionHold[];
17
+ statusEvidence: ProviderStatusEvidence[];
18
+ }): ResolvedProviderExceptionRecovery;
19
+ /**
20
+ * The customer step for an order that is terminal BY OUR OWN DECISION
21
+ * (`cancelled` / `refunded`), or `null` when normal rank resolution applies.
22
+ *
23
+ * Rank alone is not enough here: `delivered` (7) outranks `cancelled` (6), so a
24
+ * single provider `DELIVERED` evidence row on an order we cancelled would tell
25
+ * the customer "delivered". Carrier evidence is a fact and stays recorded, but
26
+ * it cannot un-cancel our own order, so the terminal order status wins.
27
+ *
28
+ * This is a ceiling, not a new opinion: `delivered` is the ONLY step ranking
29
+ * above `cancelled`, and the order's own status already contributes `cancelled`
30
+ * to the ranked signals, so every non-delivered outcome is unchanged. The canon's
31
+ * ranks stay untouched — they are shared with OMS health, observability and the
32
+ * admin timeline, where provider-versus-local divergence must remain visible.
33
+ * Single owner of this rule: the customer read model and the browser fallback
34
+ * resolver both call it instead of each keeping a copy.
35
+ */
36
+ export declare function customerStepForTerminalOrder(orderStatus: string | null | undefined): CustomerFulfillmentStep | null;
37
+ /** Resolve rank normally; only a uniquely newer canonical timed exception may cover delivered. */
38
+ export declare function customerStepFromTimedSignals(baseTokens: Array<string | null | undefined>, evidence: TimedFulfillmentSignal[], recovery?: ResolvedProviderExceptionRecovery): CustomerFulfillmentStep;
39
+ /** Keep legacy/provider-only Provider CANCELLED evidence customer-safe. */
40
+ export declare function customerSafeEvidenceToken(localStatus: string | null | undefined, providerStatus: string | null | undefined): string | null;
@@ -0,0 +1,144 @@
1
+ import { canonicalStatusToken, customerStepFromSignals, stepForToken } from "@openlup/core/fulfillment";
2
+ export { stepForToken } from "@openlup/core/fulfillment";
3
+ /** Server-only shape read from a released automatic provider-exception hold. */
4
+ /**
5
+ * Finds only database-authored, trigger-created recovery links. The returned IDs
6
+ * stay server-side: the browser receives the resulting Layer C step, never hold
7
+ * metadata or provider evidence identifiers.
8
+ */
9
+ export function resolveProviderExceptionRecovery(input) {
10
+ const clearedExceptionEvidenceIds = new Set();
11
+ const recoveryEvidenceIds = new Set();
12
+ const fulfillmentOrderId = text(input.fulfillmentOrderId);
13
+ if (!fulfillmentOrderId)
14
+ return { clearedExceptionEvidenceIds, recoveryEvidenceIds };
15
+ const evidenceById = new Map(input.statusEvidence
16
+ .map((row) => [text(row.id), row])
17
+ .filter(([id]) => Boolean(id)));
18
+ for (const hold of input.releasedHolds) {
19
+ if (hold.status !== "released"
20
+ || hold.reason !== "fulfillment_exception"
21
+ || hold.createdBy !== null
22
+ || hold.releasedBy !== null) {
23
+ continue;
24
+ }
25
+ const metadata = record(hold.metadata);
26
+ const recovery = record(metadata.autoReleaseEvidence);
27
+ if ((!input.automaticHoldSource || metadata.source !== input.automaticHoldSource)
28
+ || metadata.autoReleased !== true
29
+ || (!input.automaticReleaseSource || metadata.autoReleaseSource !== input.automaticReleaseSource)
30
+ || (metadata.autoReleaseProof !== "provider_recovered" && metadata.autoReleaseProof !== "delivered")
31
+ || recovery.fulfillmentOrderId !== fulfillmentOrderId) {
32
+ continue;
33
+ }
34
+ const cleared = evidenceById.get(text(recovery.clearedStatusEvidenceId));
35
+ const recovered = evidenceById.get(text(recovery.statusEvidenceId));
36
+ if (!cleared || !recovered || text(cleared.fulfillmentOrderId) !== fulfillmentOrderId || text(recovered.fulfillmentOrderId) !== fulfillmentOrderId) {
37
+ continue;
38
+ }
39
+ const clearedStatus = canonicalStatusToken(cleared.providerStatus);
40
+ const recoveryStatus = canonicalStatusToken(recovered.localStatus);
41
+ if (canonicalStatusToken(cleared.localStatus) !== "exception"
42
+ || (clearedStatus !== "suspended" && clearedStatus !== "shipping_failed")
43
+ || !sameInstant(recovery.clearedOccurredAt, cleared.occurredAt)
44
+ || !sameInstant(recovery.occurredAt, recovered.occurredAt)
45
+ || !isStrictlyNewer(recovered.occurredAt, cleared.occurredAt)
46
+ || canonicalStatusToken(text(recovery.clearedProviderStatus)) !== clearedStatus
47
+ || canonicalStatusToken(text(recovery.localStatus)) !== recoveryStatus
48
+ || !isApprovedRecovery(clearedStatus, recoveryStatus, metadata.autoReleaseProof)) {
49
+ continue;
50
+ }
51
+ const clearedId = text(cleared.id);
52
+ const recoveredId = text(recovered.id);
53
+ if (!clearedId || !recoveredId)
54
+ continue;
55
+ clearedExceptionEvidenceIds.add(clearedId);
56
+ recoveryEvidenceIds.add(recoveredId);
57
+ }
58
+ return { clearedExceptionEvidenceIds, recoveryEvidenceIds };
59
+ }
60
+ /**
61
+ * The customer step for an order that is terminal BY OUR OWN DECISION
62
+ * (`cancelled` / `refunded`), or `null` when normal rank resolution applies.
63
+ *
64
+ * Rank alone is not enough here: `delivered` (7) outranks `cancelled` (6), so a
65
+ * single provider `DELIVERED` evidence row on an order we cancelled would tell
66
+ * the customer "delivered". Carrier evidence is a fact and stays recorded, but
67
+ * it cannot un-cancel our own order, so the terminal order status wins.
68
+ *
69
+ * This is a ceiling, not a new opinion: `delivered` is the ONLY step ranking
70
+ * above `cancelled`, and the order's own status already contributes `cancelled`
71
+ * to the ranked signals, so every non-delivered outcome is unchanged. The canon's
72
+ * ranks stay untouched — they are shared with OMS health, observability and the
73
+ * admin timeline, where provider-versus-local divergence must remain visible.
74
+ * Single owner of this rule: the customer read model and the browser fallback
75
+ * resolver both call it instead of each keeping a copy.
76
+ */
77
+ export function customerStepForTerminalOrder(orderStatus) {
78
+ return stepForToken(orderStatus) === "cancelled" ? "cancelled" : null;
79
+ }
80
+ /** Resolve rank normally; only a uniquely newer canonical timed exception may cover delivered. */
81
+ export function customerStepFromTimedSignals(baseTokens, evidence, recovery) {
82
+ const recovered = recovery?.clearedExceptionEvidenceIds.size;
83
+ const effectiveBaseTokens = recovered
84
+ ? baseTokens.filter((token) => stepForToken(token) !== "exception")
85
+ : baseTokens;
86
+ const effectiveEvidence = recovery
87
+ ? evidence.filter((signal) => !recovery.clearedExceptionEvidenceIds.has(text(signal.id)))
88
+ : evidence;
89
+ const ranked = customerStepFromSignals([...effectiveBaseTokens, ...effectiveEvidence.map((signal) => signal.token)]);
90
+ if (ranked !== "delivered")
91
+ return ranked;
92
+ const timedOccurrences = effectiveEvidence
93
+ .map((signal) => ({ step: stepForToken(signal.token), time: validTimestamp(signal.occurredAt) }))
94
+ .filter((signal) => signal.time !== null);
95
+ const timed = [...new Map(timedOccurrences.map((signal) => [
96
+ `${signal.step ?? "unknown"}:${signal.time}`,
97
+ signal,
98
+ ])).values()];
99
+ const latestTime = Math.max(...timed.map((signal) => signal.time));
100
+ const latest = timed.filter((signal) => signal.time === latestTime);
101
+ const deliveryTimes = timed.filter((signal) => signal.step === "delivered").map((signal) => signal.time);
102
+ const latestDeliveryTime = deliveryTimes.length ? Math.max(...deliveryTimes) : null;
103
+ return latest.length === 1 && latest[0].step === "exception"
104
+ && latestDeliveryTime !== null && latestTime > latestDeliveryTime ? "exception" : ranked;
105
+ }
106
+ /** Keep legacy/provider-only Provider CANCELLED evidence customer-safe. */
107
+ export function customerSafeEvidenceToken(localStatus, providerStatus) {
108
+ const local = canonicalStatusToken(localStatus);
109
+ const provider = canonicalStatusToken(providerStatus);
110
+ if (provider === "cancelled" && (local === null || local === "cancelled"))
111
+ return "exception";
112
+ return local ?? provider;
113
+ }
114
+ function validTimestamp(value) {
115
+ if (!value || !/(?:[Zz]|[+-]\d{2}:\d{2})$/.test(value))
116
+ return null;
117
+ const parsed = Date.parse(value);
118
+ return Number.isFinite(parsed) ? parsed : null;
119
+ }
120
+ function isApprovedRecovery(clearedStatus, recoveryStatus, proof) {
121
+ if (proof === "delivered")
122
+ return recoveryStatus === "delivered";
123
+ return clearedStatus === "suspended"
124
+ && proof === "provider_recovered"
125
+ && ["provider_received", "picking", "packed", "in_transit"].includes(recoveryStatus ?? "");
126
+ }
127
+ function isStrictlyNewer(candidate, previous) {
128
+ const candidateTime = validTimestamp(candidate);
129
+ const previousTime = validTimestamp(previous);
130
+ return candidateTime !== null && previousTime !== null && candidateTime > previousTime;
131
+ }
132
+ function sameInstant(metadataValue, evidenceValue) {
133
+ if (typeof metadataValue !== "string")
134
+ return false;
135
+ const metadataTime = validTimestamp(metadataValue);
136
+ const evidenceTime = validTimestamp(evidenceValue);
137
+ return metadataTime !== null && evidenceTime !== null && metadataTime === evidenceTime;
138
+ }
139
+ function record(value) {
140
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
141
+ }
142
+ function text(value) {
143
+ return typeof value === "string" ? value : "";
144
+ }
@@ -0,0 +1,7 @@
1
+ import type { OmsOrderDetail } from "../oms/omsContracts.js";
2
+ export declare function canCancelFulfillment(status: OmsOrderDetail["fulfillmentStatus"], providerCancellation: {
3
+ activeHoldCount: number;
4
+ orderMode: "one_time" | "subscription_cycle";
5
+ orderStatus: OmsOrderDetail["status"];
6
+ providerCancellationConfirmed: boolean;
7
+ }): boolean;
@@ -0,0 +1,9 @@
1
+ export function canCancelFulfillment(status, providerCancellation) {
2
+ if (status === "created" || status === "packed" || status === "label_pending")
3
+ return true;
4
+ return status === "exception"
5
+ && providerCancellation.activeHoldCount === 0
6
+ && providerCancellation.orderMode === "one_time"
7
+ && (providerCancellation.orderStatus === "paid" || providerCancellation.orderStatus === "fulfillment_pending")
8
+ && providerCancellation.providerCancellationConfirmed;
9
+ }
@@ -0,0 +1,12 @@
1
+ import type { OmsAccountingRecoveryGuidance } from "../contracts/omsTypes.js";
2
+ import type { OmsOrderDetail } from "../oms/omsContracts.js";
3
+ import type { OmsReadModelProjections } from "./omsReadModelProjections.js";
4
+ import type { OmsAccountingInvoiceRow, OmsAccountingOutboxRow } from "./omsReadModelRows.js";
5
+ export type { OmsAccountingRecoveryGuidance } from "../contracts/omsTypes.js";
6
+ export declare function accountingSummary(invoice: OmsAccountingInvoiceRow | null, outboxRows: OmsAccountingOutboxRow[], projections?: OmsReadModelProjections): OmsOrderDetail["accounting"];
7
+ export declare function accountingRecoveryGuidance(outboxStatus: string | null, invoiceStatus?: string | null): OmsAccountingRecoveryGuidance;
8
+ export declare function sanitizeAccountingLastError(value: unknown): {
9
+ code: string | null;
10
+ message: string | null;
11
+ retryable: boolean | null;
12
+ } | null;
@@ -0,0 +1,118 @@
1
+ export function accountingSummary(invoice, outboxRows, projections) {
2
+ if (!invoice) {
3
+ return {
4
+ status: "missing",
5
+ invoiceId: null,
6
+ invoiceRef: null,
7
+ providerKind: null,
8
+ providerInvoiceNumber: null,
9
+ fiscalStatus: null,
10
+ outboxStatus: null,
11
+ outboxAttemptCount: null,
12
+ outboxNextAttemptAt: null,
13
+ outboxLastError: null,
14
+ recoveryGuidance: "not_requested",
15
+ updatedAt: null,
16
+ };
17
+ }
18
+ const outbox = selectAccountingOutbox(invoice.id, outboxRows);
19
+ return {
20
+ status: outbox?.status === "failed" ? "outbox_failed" : normalizeAccountingStatus(invoice.status, projections?.additionalAccountingStatuses),
21
+ invoiceId: invoice.id,
22
+ invoiceRef: invoice.invoice_ref,
23
+ providerKind: invoice.provider_kind,
24
+ providerInvoiceNumber: invoice.provider_invoice_number,
25
+ fiscalStatus: invoice.fiscal_status,
26
+ outboxStatus: outbox?.status ?? null,
27
+ outboxAttemptCount: outbox?.attempt_count ?? null,
28
+ outboxNextAttemptAt: outbox?.next_attempt_at ?? null,
29
+ outboxLastError: sanitizeAccountingLastError(outbox?.last_error),
30
+ recoveryGuidance: accountingRecoveryGuidance(outbox?.status ?? null, invoice.status),
31
+ updatedAt: invoice.updated_at,
32
+ };
33
+ }
34
+ function selectAccountingOutbox(invoiceId, outboxRows) {
35
+ return outboxRows
36
+ .filter((row) => row.invoice_id === invoiceId)
37
+ .sort(compareAccountingOutboxRows)[0] ?? null;
38
+ }
39
+ function compareAccountingOutboxRows(a, b) {
40
+ const priority = outboxStatusPriority(a.status) - outboxStatusPriority(b.status);
41
+ if (priority !== 0)
42
+ return priority;
43
+ const aCreatedAt = timestampOrNull(a.created_at);
44
+ const bCreatedAt = timestampOrNull(b.created_at);
45
+ if (aCreatedAt !== null && bCreatedAt !== null && aCreatedAt !== bCreatedAt) {
46
+ return bCreatedAt - aCreatedAt;
47
+ }
48
+ if (aCreatedAt !== null && bCreatedAt === null)
49
+ return -1;
50
+ if (aCreatedAt === null && bCreatedAt !== null)
51
+ return 1;
52
+ return 0;
53
+ }
54
+ function timestampOrNull(value) {
55
+ if (!value)
56
+ return null;
57
+ const timestamp = Date.parse(value);
58
+ return Number.isFinite(timestamp) ? timestamp : null;
59
+ }
60
+ function outboxStatusPriority(status) {
61
+ if (status === "failed")
62
+ return 0;
63
+ if (status === "processing")
64
+ return 1;
65
+ if (status === "pending" || status === "queued")
66
+ return 2;
67
+ if (status === "succeeded")
68
+ return 3;
69
+ if (status === "cancelled")
70
+ return 4;
71
+ return 5;
72
+ }
73
+ export function accountingRecoveryGuidance(outboxStatus, invoiceStatus = null) {
74
+ if (outboxStatus === "failed")
75
+ return "review_and_retry";
76
+ if (outboxStatus === "pending" || outboxStatus === "processing" || outboxStatus === "queued") {
77
+ return "wait_for_retry";
78
+ }
79
+ if (invoiceStatus === "blocked" || invoiceStatus === "rejected")
80
+ return "review_and_retry";
81
+ if (invoiceStatus === "issued" || invoiceStatus === "accepted" || invoiceStatus === "corrected" || invoiceStatus === "voided") {
82
+ return "none";
83
+ }
84
+ return outboxStatus ? "none" : "not_requested";
85
+ }
86
+ export function sanitizeAccountingLastError(value) {
87
+ if (!isRecord(value))
88
+ return null;
89
+ const code = readSafeText(value, "code", 80) ??
90
+ readSafeText(value, "errorCode", 80) ??
91
+ readSafeText(value, "reason", 80) ??
92
+ readSafeText(value, "type", 80);
93
+ const message = readSafeText(value, "operatorMessage", 240) ??
94
+ readSafeText(value, "message", 240);
95
+ const retryable = typeof value.retryable === "boolean" ? value.retryable : null;
96
+ if (!code && !message && retryable === null)
97
+ return null;
98
+ return { code, message, retryable };
99
+ }
100
+ function readSafeText(record, key, maxLength) {
101
+ const value = record[key];
102
+ if (typeof value !== "string")
103
+ return null;
104
+ const normalized = redactSensitiveText(value.trim().replace(/\s+/g, " "));
105
+ return normalized ? normalized.slice(0, maxLength) : null;
106
+ }
107
+ function redactSensitiveText(value) {
108
+ return value
109
+ .replace(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi, "[redacted-email]")
110
+ .replace(/\b(?:bearer|token|secret|api[_-]?key|authorization)\s*[:=]?\s+[A-Za-z0-9._~+/=-]{8,}/gi, "[redacted-secret]");
111
+ }
112
+ function isRecord(value) {
113
+ return typeof value === "object" && value !== null && !Array.isArray(value);
114
+ }
115
+ function normalizeAccountingStatus(status, additional = []) {
116
+ const valid = ["draft", "issue_requested", "blocked", "issued", "accepted", "rejected", "correction_requested", "corrected", "voided"];
117
+ return [...valid, ...additional].includes(status) ? status : "missing";
118
+ }
@@ -0,0 +1,2 @@
1
+ import type { OmsOrderDetail } from "../oms/omsContracts.js";
2
+ export declare function enrichBillingWithInvoiceBuyer(billing: OmsOrderDetail["billingAddress"], orderMetadata: Record<string, unknown> | null): OmsOrderDetail["billingAddress"];
@@ -0,0 +1,15 @@
1
+ export function enrichBillingWithInvoiceBuyer(billing, orderMetadata) {
2
+ if (!billing)
3
+ return billing;
4
+ const snapshot = orderMetadata && typeof orderMetadata === "object"
5
+ ? orderMetadata.invoiceBuyerSnapshot
6
+ : null;
7
+ if (!snapshot || typeof snapshot !== "object")
8
+ return billing;
9
+ const buyer = snapshot;
10
+ const companyName = billing.companyName ?? (typeof buyer.companyName === "string" && buyer.companyName.trim() ? buyer.companyName : null);
11
+ const taxId = billing.taxId ?? (typeof buyer.taxId === "string" && buyer.taxId.trim() ? buyer.taxId : null);
12
+ if (companyName === billing.companyName && taxId === billing.taxId)
13
+ return billing;
14
+ return { ...billing, companyName, taxId };
15
+ }
@@ -0,0 +1,4 @@
1
+ import type { OmsCurrencyPolicy } from "../contracts/omsTypes.js";
2
+ export type { OmsCurrencyPolicy } from "../contracts/omsTypes.js";
3
+ /** Settlement policy is supplied by the host; the neutral default checks format only. */
4
+ export declare const neutralOmsCurrencyPolicy: OmsCurrencyPolicy;
@@ -0,0 +1,5 @@
1
+ /** Settlement policy is supplied by the host; the neutral default checks format only. */
2
+ export const neutralOmsCurrencyPolicy = {
3
+ defaultCurrency: "XXX",
4
+ accepts: currency => /^[A-Z]{3}$/.test(currency),
5
+ };
@@ -0,0 +1,20 @@
1
+ import type { OmsFulfillmentProviderStockCurrentRow, OmsInboundProviderEventRow } from "../contracts/omsTypes.js";
2
+ import type { OmsOrderDetail } from "../oms/omsContracts.js";
3
+ import { type OmsProviderAttemptRow, type OmsProviderDispatchRefRow, type OmsProviderStatusEvidenceRow } from "./omsFulfillmentSummary.js";
4
+ import type { OmsReadModelProjections } from "./omsReadModelProjections.js";
5
+ import type { OmsCommunicationDeliveryRow, OmsInventoryReservationRow } from "./omsReadModelRows.js";
6
+ export type { OmsFulfillmentProviderStockCurrentRow, OmsInboundProviderEventRow } from "../contracts/omsTypes.js";
7
+ type Debug = OmsOrderDetail["fulfillmentDebug"];
8
+ export declare function buildOmsFulfillmentDebug(input: {
9
+ projections?: OmsReadModelProjections;
10
+ paymentStatus: OmsOrderDetail["paymentStatus"];
11
+ inventory: OmsOrderDetail["inventory"];
12
+ fulfillment: OmsOrderDetail["fulfillment"];
13
+ reservations: OmsInventoryReservationRow[];
14
+ communicationDeliveries: OmsCommunicationDeliveryRow[];
15
+ providerAttempts: OmsProviderAttemptRow[];
16
+ providerDispatchRefs: OmsProviderDispatchRefRow[];
17
+ providerStatusEvidence: OmsProviderStatusEvidenceRow[];
18
+ inboundProviderEvents: OmsInboundProviderEventRow[];
19
+ providerStockCurrent?: OmsFulfillmentProviderStockCurrentRow[];
20
+ }): Debug;