@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
@@ -1,16 +1,4 @@
1
- function object(value) {
2
- if (!value || typeof value !== "object" || Array.isArray(value))
3
- throw new Error("inventory_stock_response_invalid");
4
- return value;
5
- }
6
- function quantity(value) {
7
- if ((typeof value !== "number" && typeof value !== "string") || String(value).trim() === "")
8
- throw new Error("inventory_stock_quantity_invalid");
9
- const n = Number(value);
10
- if (!Number.isSafeInteger(n) || n < 0)
11
- throw new Error("inventory_stock_quantity_invalid");
12
- return n;
13
- }
1
+ import { parseStockReadResponse, stockObject as object, stockQuantity as quantity } from "./stockReadResponse.js";
14
2
  /** Native read-only ATP. The fixed 14-day priority cannot be waived by a new
15
3
  * purchase caller. Only the fenced native SQL allocator uses the renewal exemption. */
16
4
  export function createPostgresStockAvailability(executor, options) {
@@ -30,18 +18,7 @@ export function createPostgresStockAvailability(executor, options) {
30
18
  return new Map();
31
19
  const value = (await executor.query(`SELECT public.inventory_new_purchase_stock_read(
32
20
  $1::text,$2::jsonb,$3::timestamptz) AS response`, [options.sourceKey, JSON.stringify(input.skus), options.now()])).rows[0]?.response;
33
- if (!Array.isArray(value))
34
- throw new Error("inventory_stock_response_invalid");
35
- return new Map(value.map(value => {
36
- const row = object(value);
37
- if (typeof row.sku !== "string" || !["provider", "missing"].includes(String(row.source)) || typeof row.stale !== "boolean")
38
- throw new Error("inventory_stock_response_invalid");
39
- const result = { sku: row.sku, catalogSkuId: row.catalogSkuId == null ? null : String(row.catalogSkuId),
40
- source: row.source, providerForSale: row.providerForSale == null ? null : quantity(row.providerForSale),
41
- activeHolds: quantity(row.activeHolds), safetyStock: quantity(row.safetyStock), available: quantity(row.available), stale: row.stale,
42
- renewalDemand: quantity(row.renewalDemand), availableForNewPurchases: quantity(row.availableForNewPurchases), excludedOrderHolds: quantity(row.excludedOrderHolds) };
43
- return [result.sku, result];
44
- }));
21
+ return parseStockReadResponse(value);
45
22
  },
46
23
  },
47
24
  };
@@ -106,8 +106,8 @@ export declare function createInventorySubscriptionForecastResponseSchema(provid
106
106
  providerStockLastSyncedAt: z.ZodNullable<z.ZodString>;
107
107
  providerStockStaleAfter: z.ZodNullable<z.ZodString>;
108
108
  stockStatus: z.ZodEnum<{
109
- stale: "stale";
110
109
  missing: "missing";
110
+ stale: "stale";
111
111
  fresh: "fresh";
112
112
  }>;
113
113
  openHardReservations: z.ZodNumber;
@@ -0,0 +1,4 @@
1
+ import type { NewPurchaseStockRow } from "./contracts/newPurchaseStock.js";
2
+ export declare function stockObject(value: unknown): Record<string, unknown>;
3
+ export declare function stockQuantity(value: unknown): number;
4
+ export declare function parseStockReadResponse(value: unknown): Map<string, NewPurchaseStockRow>;
@@ -0,0 +1,27 @@
1
+ export function stockObject(value) {
2
+ if (!value || typeof value !== "object" || Array.isArray(value))
3
+ throw new Error("inventory_stock_response_invalid");
4
+ return value;
5
+ }
6
+ export function stockQuantity(value) {
7
+ if ((typeof value !== "number" && typeof value !== "string") || String(value).trim() === "")
8
+ throw new Error("inventory_stock_quantity_invalid");
9
+ const n = Number(value);
10
+ if (!Number.isSafeInteger(n) || n < 0)
11
+ throw new Error("inventory_stock_quantity_invalid");
12
+ return n;
13
+ }
14
+ export function parseStockReadResponse(value) {
15
+ if (!Array.isArray(value))
16
+ throw new Error("inventory_stock_response_invalid");
17
+ return new Map(value.map(value => {
18
+ const row = stockObject(value);
19
+ if (typeof row.sku !== "string" || !["provider", "missing"].includes(String(row.source)) || typeof row.stale !== "boolean")
20
+ throw new Error("inventory_stock_response_invalid");
21
+ const result = { sku: row.sku, catalogSkuId: row.catalogSkuId == null ? null : String(row.catalogSkuId),
22
+ source: row.source, providerForSale: row.providerForSale == null ? null : stockQuantity(row.providerForSale),
23
+ activeHolds: stockQuantity(row.activeHolds), safetyStock: stockQuantity(row.safetyStock), available: stockQuantity(row.available), stale: row.stale,
24
+ renewalDemand: stockQuantity(row.renewalDemand), availableForNewPurchases: stockQuantity(row.availableForNewPurchases), excludedOrderHolds: stockQuantity(row.excludedOrderHolds) };
25
+ return [result.sku, result];
26
+ }));
27
+ }
@@ -0,0 +1,6 @@
1
+ export { createCommerceQuotePrimitives } from "../quotePrimitives.js";
2
+ export { acquisitionCapabilitySchema, acquisitionTermsExpectationSchema } from "../acquisitionTermsSchemas.js";
3
+ /** @consumer src/domains/commerce/quoteContracts.ts */
4
+ export { resolvedAcquisitionTermsSchema } from "../acquisitionTermsSchemas.js";
5
+ /** @consumer src/domains/commerce/quoteContracts.ts */
6
+ export { shippingTermsSchema } from "../../shipping/thresholdPolicy.js";
@@ -0,0 +1,6 @@
1
+ export { createCommerceQuotePrimitives } from "../quotePrimitives.js";
2
+ export { acquisitionCapabilitySchema, acquisitionTermsExpectationSchema } from "../acquisitionTermsSchemas.js";
3
+ /** @consumer src/domains/commerce/quoteContracts.ts */
4
+ export { resolvedAcquisitionTermsSchema } from "../acquisitionTermsSchemas.js";
5
+ /** @consumer src/domains/commerce/quoteContracts.ts */
6
+ export { shippingTermsSchema } from "../../shipping/thresholdPolicy.js";
@@ -42,8 +42,8 @@ export declare function createAdminPromotionSchemas({ currencySchema: platformCu
42
42
  code: z.ZodNullable<z.ZodString>;
43
43
  name: z.ZodString;
44
44
  triggerType: z.ZodEnum<{
45
- automatic: "automatic";
46
45
  coupon_code: "coupon_code";
46
+ automatic: "automatic";
47
47
  referral: "referral";
48
48
  }>;
49
49
  discountType: z.ZodEnum<{
@@ -116,8 +116,8 @@ export declare function createAdminPromotionSchemas({ currencySchema: platformCu
116
116
  code: z.ZodNullable<z.ZodString>;
117
117
  name: z.ZodString;
118
118
  triggerType: z.ZodEnum<{
119
- automatic: "automatic";
120
119
  coupon_code: "coupon_code";
120
+ automatic: "automatic";
121
121
  referral: "referral";
122
122
  }>;
123
123
  discountType: z.ZodEnum<{
@@ -129,9 +129,11 @@ export interface CycleChargeFailurePropagationPort {
129
129
  };
130
130
  }): Promise<{
131
131
  replayed: boolean;
132
+ paymentAttemptId?: string | null;
132
133
  }>;
133
134
  readCycleRetryState(cycleId: string): Promise<CycleRetryState>;
134
135
  openDunningCase(input: {
136
+ failedPaymentAttemptId: string | null;
135
137
  idempotencyKey: string;
136
138
  cycleId: string;
137
139
  subscriptionId: string;
@@ -39,8 +39,9 @@ export { createPostgresSubscriptionCommandStore, createPostgresSubscriptionComma
39
39
  export type { NativeSubscriptionCommand, NativeSubscriptionCommandBinding } from "./postgresCommandStore.js";
40
40
  export { createPostgresStockWaitStore } from "./postgresStockWaitStore.js";
41
41
  export type { NativeStockWaitBinding, NativeStockWaitAdmission } from "./postgresStockWaitStore.js";
42
- /** Managed SQL is exposed for service-role hosts; no StockWaitStorePort or
43
- * NewPurchaseStockReadPort TypeScript adapter is composed for this graph.
42
+ /** Managed SQL is exposed for service-role hosts; no StockWaitStorePort
43
+ * TypeScript adapter is composed for this graph. A NewPurchaseStockReadPort
44
+ * adapter is available in ../inventory for managed service-role hosts.
44
45
  * SQL behavior is proved by the managed pgTAP/real-PostgreSQL witnesses.
45
46
  */
46
47
  export declare const MANAGED_SUBSCRIPTION_STOCK_CAPABILITIES: Readonly<{
@@ -19,8 +19,9 @@ export { createPostgresRetryStore } from "./postgresRetryStore.js";
19
19
  export { createPostgresRetryLifecycleBinding } from "./postgresRetryStore.js";
20
20
  export { createPostgresSubscriptionCommandStore, createPostgresSubscriptionCommands } from "./postgresCommandStore.js";
21
21
  export { createPostgresStockWaitStore } from "./postgresStockWaitStore.js";
22
- /** Managed SQL is exposed for service-role hosts; no StockWaitStorePort or
23
- * NewPurchaseStockReadPort TypeScript adapter is composed for this graph.
22
+ /** Managed SQL is exposed for service-role hosts; no StockWaitStorePort
23
+ * TypeScript adapter is composed for this graph. A NewPurchaseStockReadPort
24
+ * adapter is available in ../inventory for managed service-role hosts.
24
25
  * SQL behavior is proved by the managed pgTAP/real-PostgreSQL witnesses.
25
26
  */
26
27
  export const MANAGED_SUBSCRIPTION_STOCK_CAPABILITIES = Object.freeze({
@@ -25,7 +25,7 @@ export async function propagateRenewalFailure(port, ctx, policy) {
25
25
  });
26
26
  const cycleSnapshot = await port.readCycleRetryState(ctx.cycleId);
27
27
  return {
28
- ...await openDunningCase(port, ctx, cycleSnapshot, occurredAt, policy),
28
+ ...await openDunningCase(port, ctx, cycleSnapshot, occurredAt, policy, applied.paymentAttemptId ?? null),
29
29
  applyReplayed: applied.replayed,
30
30
  };
31
31
  }
@@ -37,7 +37,7 @@ async function resolveDurableOccurredAt(port, ctx, policy) {
37
37
  });
38
38
  return durable !== null && durable.length > 0 ? durable : ctx.occurredAt;
39
39
  }
40
- async function openDunningCase(port, ctx, cycle, occurredAt, policy) {
40
+ async function openDunningCase(port, ctx, cycle, occurredAt, policy, failedPaymentAttemptId) {
41
41
  const retryAttempt = cycle.retryAttempt ?? 1;
42
42
  // Resolve again after the retry read: original context evidence remains dynamic.
43
43
  const failureClass = policy.resolveClassification(ctx.failureClassification, ctx.failureReason).failureClass;
@@ -52,6 +52,7 @@ async function openDunningCase(port, ctx, cycle, occurredAt, policy) {
52
52
  ? cycle.nextRetryAt
53
53
  : nextRetryAttemptAt(occurredAt, retryAttempt, undefined, failureClass);
54
54
  const outcome = await port.openDunningCase({
55
+ failedPaymentAttemptId,
55
56
  idempotencyKey: policy.dunningKey(ctx.executionIdempotencyKey, retryAttempt),
56
57
  cycleId: ctx.cycleId,
57
58
  subscriptionId: ctx.subscriptionId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openlup/platform",
3
- "version": "0.25.0",
3
+ "version": "0.27.0",
4
4
  "private": false,
5
5
  "description": "Runnable server substrate: Node HTTP runtime, BFF dispatch, scheduler, storage, data gateways and bundle composition; development preview.",
6
6
  "license": "Apache-2.0",
@@ -31,7 +31,7 @@
31
31
  "api:update": "npm run build && node --experimental-strip-types ./scripts/api-contract.ts --update"
32
32
  },
33
33
  "peerDependencies": {
34
- "@openlup/core": "0.25.0",
34
+ "@openlup/core": "0.27.0",
35
35
  "pg": "^8.22.0",
36
36
  "@aws-sdk/client-s3": "^3.1144.0",
37
37
  "@types/pg": "^8.20.0"
@@ -106,6 +106,21 @@
106
106
  "import": "./dist/identity/contracts/index.js",
107
107
  "default": "./dist/identity/contracts/index.js"
108
108
  },
109
+ "./commerce": {
110
+ "types": "./dist/commerce/index.d.ts",
111
+ "import": "./dist/commerce/index.js",
112
+ "default": "./dist/commerce/index.js"
113
+ },
114
+ "./commerce/contracts": {
115
+ "types": "./dist/commerce/contracts/index.d.ts",
116
+ "import": "./dist/commerce/contracts/index.js",
117
+ "default": "./dist/commerce/contracts/index.js"
118
+ },
119
+ "./commerce/server": {
120
+ "types": "./dist/commerce/server/index.d.ts",
121
+ "import": "./dist/commerce/server/index.js",
122
+ "default": "./dist/commerce/server/index.js"
123
+ },
109
124
  "./communications": {
110
125
  "types": "./dist/communications/index.d.ts",
111
126
  "import": "./dist/communications/index.js",
@@ -131,6 +146,11 @@
131
146
  "import": "./dist/pricing/index.js",
132
147
  "default": "./dist/pricing/index.js"
133
148
  },
149
+ "./pricing/browser": {
150
+ "types": "./dist/pricing/browser/index.d.ts",
151
+ "import": "./dist/pricing/browser/index.js",
152
+ "default": "./dist/pricing/browser/index.js"
153
+ },
134
154
  "./pricing/contracts": {
135
155
  "types": "./dist/pricing/contracts/index.d.ts",
136
156
  "import": "./dist/pricing/contracts/index.js",
@@ -66,6 +66,46 @@
66
66
  "entrypoint": "dist/catalog/contracts/index.d.ts",
67
67
  "snapshot": "api/catalog-contracts.api.md"
68
68
  },
69
+ "./commerce": {
70
+ "role": "capability",
71
+ "maturity": "experimental",
72
+ "compatibilityPolicy": "internal-candidate",
73
+ "packageSmokeEvidence": [
74
+ "test/packageBoundary.test.ts",
75
+ "test/commerce/portFit.test.ts",
76
+ "test/commerce/ports.test.ts",
77
+ "test/commerce/recoveryDestinationPolicy.test.ts",
78
+ "test/commerce/commerceQuoteCompositionCharacterization.test.ts"
79
+ ],
80
+ "entrypoint": "dist/commerce/index.d.ts",
81
+ "snapshot": "api/commerce.api.md"
82
+ },
83
+ "./commerce/contracts": {
84
+ "role": "capability",
85
+ "maturity": "experimental",
86
+ "compatibilityPolicy": "internal-candidate",
87
+ "packageSmokeEvidence": [
88
+ "test/packageBoundary.test.ts",
89
+ "test/commerce/portFit.test.ts",
90
+ "test/commerce/ports.test.ts",
91
+ "test/commerce/recoveryDestinationPolicy.test.ts",
92
+ "test/commerce/commerceQuoteCompositionCharacterization.test.ts"
93
+ ],
94
+ "entrypoint": "dist/commerce/contracts/index.d.ts",
95
+ "snapshot": "api/commerce-contracts.api.md"
96
+ },
97
+ "./commerce/server": {
98
+ "role": "capability",
99
+ "maturity": "experimental",
100
+ "compatibilityPolicy": "internal-candidate",
101
+ "packageSmokeEvidence": [
102
+ "test/packageBoundary.test.ts",
103
+ "test/commerce/browserBoundary.test.ts",
104
+ "test/commerce/browserSafety.test.ts"
105
+ ],
106
+ "entrypoint": "dist/commerce/server/index.d.ts",
107
+ "snapshot": "api/commerce-server.api.md"
108
+ },
69
109
  "./communications": {
70
110
  "role": "capability",
71
111
  "maturity": "experimental",
@@ -266,6 +306,19 @@
266
306
  "entrypoint": "dist/pricing/index.d.ts",
267
307
  "snapshot": "api/pricing.api.md"
268
308
  },
309
+ "./pricing/browser": {
310
+ "role": "capability",
311
+ "maturity": "experimental",
312
+ "compatibilityPolicy": "internal-candidate",
313
+ "packageSmokeEvidence": [
314
+ "test/packageBoundary.test.ts",
315
+ "test/commerce/browserBoundary.test.ts",
316
+ "test/pricing/quoteContracts.test.ts",
317
+ "test/pricing/acquisition.test.ts"
318
+ ],
319
+ "entrypoint": "dist/pricing/browser/index.d.ts",
320
+ "snapshot": "api/pricing-browser.api.md"
321
+ },
269
322
  "./pricing/contracts": {
270
323
  "role": "capability",
271
324
  "maturity": "experimental",
@@ -524,19 +577,19 @@
524
577
  },
525
578
  "pack": {
526
579
  "code": {
527
- "maxPackedBytes": 1228800,
528
- "maxFiles": 2000
580
+ "maxPackedBytes": 1648000,
581
+ "maxFiles": 2520
529
582
  },
530
583
  "docs": {
531
584
  "maxPackedBytes": 57344,
532
585
  "maxFiles": 10
533
586
  },
534
- "maxPackedBytes": 1474560,
535
- "maxUnpackedBytes": 6553600,
536
- "maxFiles": 2100,
587
+ "maxPackedBytes": 1925000,
588
+ "maxUnpackedBytes": 8970000,
589
+ "maxFiles": 2580,
537
590
  "baseline": {
538
- "version": "0.24.0",
539
- "packedBytes": 1355949
591
+ "version": "0.26.0",
592
+ "packedBytes": 1388257
540
593
  },
541
594
  "browserEntries": {
542
595
  "./catalog/contracts": 4096,
@@ -549,7 +602,9 @@
549
602
  "./payments/contracts": 32,
550
603
  "./fulfillment/contracts": 32,
551
604
  "./subscriptions/contracts": 32,
552
- "./invoicing/contracts": 32
605
+ "./invoicing/contracts": 32,
606
+ "./commerce/contracts": 32,
607
+ "./pricing/browser": 25600
553
608
  }
554
609
  }
555
610
  }
@@ -0,0 +1,80 @@
1
+ import type { AdminOmsOrderListItem } from "../../oms/omsContracts.js";
2
+ import {
3
+ OMS_CONTROL_PLANE_VERSION,
4
+ omsControlPlaneActions,
5
+ omsControlPlaneDetailResponseSchema,
6
+ omsControlPlaneListResponseSchema,
7
+ type CommerceOmsControlPlanePort,
8
+ type OmsControlPlaneOrder,
9
+ } from "../../oms/omsControlPlane.js";
10
+ import type { CommerceOmsReadPort } from "../../oms/omsPorts.js";
11
+
12
+ export function createManagedCommerceOmsControlPlanePort(
13
+ managedPort: CommerceOmsReadPort,
14
+ ): CommerceOmsControlPlanePort {
15
+ return {
16
+ async listOrders(request) {
17
+ const result = await managedPort.listOrders({
18
+ page: request.page,
19
+ pageSize: request.pageSize,
20
+ status: request.status,
21
+ sort: "created_desc",
22
+ });
23
+ return omsControlPlaneListResponseSchema.parse({
24
+ contractVersion: OMS_CONTROL_PLANE_VERSION,
25
+ orders: result.orders.map(mapOrder),
26
+ totalCount: result.totalCount,
27
+ page: result.page,
28
+ pageSize: result.pageSize,
29
+ });
30
+ },
31
+ async getOrderDetail(request) {
32
+ const result = await managedPort.getOrderDetail({ orderId: request.orderId });
33
+ if (!result) return null;
34
+ const operation = (type: string) => {
35
+ if (type === "hold_created" || type === "hold_released") return type;
36
+ if (type === "order_cancelled_manual") return "order_cancelled" as const;
37
+ if (type === "order_marked_refunded") return "order_refunded" as const;
38
+ return null;
39
+ };
40
+ return omsControlPlaneDetailResponseSchema.parse({
41
+ contractVersion: OMS_CONTROL_PLANE_VERSION,
42
+ order: mapOrder(result.order),
43
+ holds: result.order.holds.map((hold) => ({
44
+ id: hold.id,
45
+ status: hold.status,
46
+ reason: hold.reason,
47
+ note: hold.note,
48
+ createdAt: hold.createdAt,
49
+ releasedAt: hold.releasedAt,
50
+ })),
51
+ operations: result.order.operations.flatMap((entry) => {
52
+ const action = operation(entry.type);
53
+ return action ? [{
54
+ id: entry.id,
55
+ action,
56
+ holdId: entry.holdId,
57
+ actorId: entry.actorUserId,
58
+ occurredAt: entry.occurredAt,
59
+ }] : [];
60
+ }),
61
+ });
62
+ },
63
+ };
64
+ }
65
+
66
+ function mapOrder(order: AdminOmsOrderListItem): OmsControlPlaneOrder {
67
+ return {
68
+ orderId: order.orderId,
69
+ status: order.status,
70
+ sourceKind: order.sourceKind ?? "storefront",
71
+ sourceOrderRef: order.sourceOrderRef ?? null,
72
+ money: order.total,
73
+ shipmentStatus: order.fulfillmentStatus,
74
+ activeHoldCount: order.activeHoldCount,
75
+ activeHoldReasons: order.activeHoldReasons,
76
+ actions: omsControlPlaneActions(order.status, order.activeHoldCount),
77
+ createdAt: order.createdAt,
78
+ updatedAt: order.updatedAt,
79
+ };
80
+ }
@@ -0,0 +1,145 @@
1
+ import type { OmsOperationRow } from "../../model/omsReadModel.js";
2
+ import { COMMERCE_CONTRACT_VERSION } from "../../../pricing/contracts/index.js";
3
+ import type {
4
+ AdminCommerceOrderNoteRequest,
5
+ AdminCommerceOrderNoteResponse,
6
+ AdminCommerceOrderUpdateShippingAddressRequest,
7
+ AdminCommerceOrderUpdateShippingAddressResponse,
8
+ } from "../../oms/omsContracts.js";
9
+ import {
10
+ CommerceOmsConflictError,
11
+ CommerceOmsPersistenceError,
12
+ } from "../../oms/omsPorts.js";
13
+ import type { CommerceOmsRpcClient,CommerceOmsStore,RpcError } from "./oms/types.js";
14
+
15
+ const OPERATION_COLUMNS = "id, order_id, operation_type, hold_id, actor_user_id, occurred_at, payload";
16
+
17
+ export async function addCommerceOmsNote(
18
+ client: CommerceOmsStore,
19
+ request: AdminCommerceOrderNoteRequest & { actorUserId: string },
20
+ ): Promise<AdminCommerceOrderNoteResponse> {
21
+ const insertResult = await client
22
+ .query("commerce_order_operations")
23
+ .insert({
24
+ order_id: request.orderId,
25
+ actor_user_id: request.actorUserId,
26
+ operation_type: "support_note",
27
+ idempotency_key: request.idempotencyKey,
28
+ payload: { note: request.note, metadata: request.metadata ?? {}, source: "commerce.oms.v0" },
29
+ })
30
+ .select(OPERATION_COLUMNS)
31
+ .maybeSingle();
32
+
33
+ if (insertResult.error) {
34
+ if (insertResult.error.code === "23505") {
35
+ const replayResult = await client
36
+ .query("commerce_order_operations")
37
+ .select(OPERATION_COLUMNS)
38
+ .eq("idempotency_key", request.idempotencyKey)
39
+ .maybeSingle();
40
+ if (replayResult.error || !replayResult.data) throw mapRpcError(insertResult.error);
41
+ return noteResponse(replayResult.data as OmsOperationRow, true);
42
+ }
43
+ throw mapRpcError(insertResult.error);
44
+ }
45
+ return noteResponse(insertResult.data as OmsOperationRow, false);
46
+ }
47
+
48
+ export async function updateCommerceOmsShippingAddress(
49
+ client: CommerceOmsRpcClient,
50
+ request: AdminCommerceOrderUpdateShippingAddressRequest & { actorUserId: string },
51
+ ): Promise<AdminCommerceOrderUpdateShippingAddressResponse> {
52
+ return callOmsRpc<AdminCommerceOrderUpdateShippingAddressResponse>(client, "commerce_oms_update_shipping_address", {
53
+ p_idempotency_key: request.idempotencyKey,
54
+ p_order_id: request.orderId,
55
+ p_address: request.address,
56
+ p_actor_user_id: request.actorUserId,
57
+ p_metadata: {
58
+ ...(request.metadata ?? {}),
59
+ _deliveryContactExpectedRevision: request.expectedRevision,
60
+ _deliveryContactExpectedDigest: request.expectedContactDigest,
61
+ },
62
+ });
63
+ }
64
+
65
+ // Every OMS control RPC answers the same way: the function's own jsonb response,
66
+ // or a Postgres error this module already knows how to classify. The cast is not
67
+ // a validation step and never was - it is recorded here once instead of at each
68
+ // call site, so tightening it later is one edit.
69
+ export async function callOmsRpc<T>(
70
+ client: CommerceOmsRpcClient,
71
+ functionName: string,
72
+ args: Record<string, unknown>,
73
+ ): Promise<T> {
74
+ const { data, error } = await client.rpc(functionName, args);
75
+ if (error) throw mapRpcError(error);
76
+ return data as T;
77
+ }
78
+
79
+ /**
80
+ * SQLSTATE 55P03. A routine here gave up waiting for a lock another writer holds
81
+ * and returned before touching anything - not a failure, a refusal, and the same
82
+ * request may be sent again unchanged.
83
+ *
84
+ * It is read from the code rather than the message because the server's text for
85
+ * it ("canceling statement due to lock timeout") names no routine of ours, so
86
+ * there is nothing for `readShippingAddressReason` to match on. The reason stays
87
+ * routine-neutral for the same span the mapper covers: today only the shipping
88
+ * address correction bounds its waits, but this classification is true of any OMS
89
+ * routine that later does, and a `delivery_contact_` prefix would be a lie the
90
+ * day one of the hold routines raises it.
91
+ */
92
+ const LOCK_TIMEOUT_SQLSTATE = "55P03";
93
+
94
+ export function mapRpcError(error: RpcError): Error {
95
+ const text = [error.message, error.details, error.hint].filter(Boolean).join(" ");
96
+ if (error.code === LOCK_TIMEOUT_SQLSTATE) {
97
+ return new CommerceOmsConflictError("Commerce OMS request could not take its locks", {
98
+ code: error.code,
99
+ reason: "lock_timeout",
100
+ });
101
+ }
102
+ const shippingAddressReason = readShippingAddressReason(text);
103
+ if (shippingAddressReason) {
104
+ return new CommerceOmsConflictError("Commerce OMS shipping address update blocked", {
105
+ code: error.code,
106
+ reason: shippingAddressReason,
107
+ });
108
+ }
109
+ if (
110
+ error.code === "23505" ||
111
+ /(?:commerce_oms_|commerce_order_).*(?:conflict|already|not_found|invalid_status)/.test(text)
112
+ ) {
113
+ return new CommerceOmsConflictError("Commerce OMS hold conflict", { code: error.code });
114
+ }
115
+ return new CommerceOmsPersistenceError("Commerce OMS RPC failed", { code: error.code });
116
+ }
117
+
118
+ function noteResponse(operation: OmsOperationRow, replayed: boolean): AdminCommerceOrderNoteResponse {
119
+ return {
120
+ contractVersion: COMMERCE_CONTRACT_VERSION,
121
+ operation: operationResponse(operation),
122
+ replayed,
123
+ };
124
+ }
125
+
126
+ function operationResponse(operation: OmsOperationRow): AdminCommerceOrderNoteResponse["operation"] {
127
+ return {
128
+ id: operation.id,
129
+ orderId: operation.order_id,
130
+ type: operation.operation_type,
131
+ holdId: operation.hold_id,
132
+ actorUserId: operation.actor_user_id,
133
+ occurredAt: operation.occurred_at,
134
+ payload: operation.payload,
135
+ };
136
+ }
137
+
138
+ function readShippingAddressReason(text: string): string | null {
139
+ if (text.includes("commerce_oms_delivery_contact_stale_revision")) return "delivery_contact_stale_revision";
140
+ if (text.includes("commerce_oms_delivery_contact_submission_started")) return "delivery_contact_submission_started";
141
+ if (text.includes("commerce_oms_shipping_address_missing_shipping_address")) return "missing_shipping_address";
142
+ if (text.includes("commerce_oms_shipping_address_locked_after_label")) return "address_locked_after_label";
143
+ if (text.includes("commerce_oms_shipping_address_idempotency_conflict")) return "idempotency_conflict";
144
+ return null;
145
+ }