@openlup/platform 0.26.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 (520) hide show
  1. package/CHANGELOG.md +138 -218
  2. package/README.md +229 -16
  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/index.d.ts +3 -2
  348. package/dist/subscriptions/index.js +3 -2
  349. package/package.json +22 -2
  350. package/release-gates.json +63 -8
  351. package/src/commerce/adapters/managed/commerceOmsControlPlane.ts +80 -0
  352. package/src/commerce/adapters/managed/commerceOmsMutations.ts +145 -0
  353. package/src/commerce/adapters/managed/commerceOmsPort.ts +158 -0
  354. package/src/commerce/adapters/managed/oms/accounting.ts +18 -0
  355. package/src/commerce/adapters/managed/oms/fulfillmentReads.ts +82 -0
  356. package/src/commerce/adapters/managed/oms/inboundEvents.ts +45 -0
  357. package/src/commerce/adapters/managed/oms/outboxEvents.ts +30 -0
  358. package/src/commerce/adapters/managed/oms/paymentAttempts.ts +19 -0
  359. package/src/commerce/adapters/managed/oms/queueSelection.ts +132 -0
  360. package/src/commerce/adapters/managed/oms/readProjections.ts +22 -0
  361. package/src/commerce/adapters/managed/oms/readQueries.ts +292 -0
  362. package/src/commerce/adapters/managed/oms/types.ts +9 -0
  363. package/src/commerce/checkoutCommandSchemas.ts +93 -0
  364. package/src/commerce/checkoutHelpers.ts +47 -0
  365. package/src/commerce/checkoutResumeSchemas.ts +164 -0
  366. package/src/commerce/checkoutSchemas.ts +182 -0
  367. package/src/commerce/commerceReturnsPort.ts +67 -0
  368. package/src/commerce/configuratorIntentPersistenceSchemas.ts +26 -0
  369. package/src/commerce/configuratorIntentSchemas.ts +47 -0
  370. package/src/commerce/contractPrimitives.ts +30 -0
  371. package/src/commerce/contracts/availability.ts +21 -0
  372. package/src/commerce/contracts/fulfillmentRecovery.ts +26 -0
  373. package/src/commerce/contracts/index.ts +17 -0
  374. package/src/commerce/contracts/intent.ts +58 -0
  375. package/src/commerce/contracts/omsTypes.ts +1217 -0
  376. package/src/commerce/contracts/order.ts +44 -0
  377. package/src/commerce/contracts/orderMoney.ts +75 -0
  378. package/src/commerce/contracts/ports.ts +124 -0
  379. package/src/commerce/contracts/recovery.ts +24 -0
  380. package/src/commerce/contracts/runtimePorts.ts +201 -0
  381. package/src/commerce/contracts/state.ts +64 -0
  382. package/src/commerce/customerDefaultsSnapshotSchemas.ts +117 -0
  383. package/src/commerce/errors.ts +53 -0
  384. package/src/commerce/fulfillmentEligibility.ts +32 -0
  385. package/src/commerce/index.ts +82 -0
  386. package/src/commerce/model/customerFulfillmentRecovery.ts +185 -0
  387. package/src/commerce/model/fulfillmentCancellationEligibility.ts +18 -0
  388. package/src/commerce/model/omsAccountingVisibility.ts +135 -0
  389. package/src/commerce/model/omsBillingInvoiceBuyer.ts +20 -0
  390. package/src/commerce/model/omsCurrency.ts +8 -0
  391. package/src/commerce/model/omsFulfillmentDebug.ts +157 -0
  392. package/src/commerce/model/omsFulfillmentSummary.ts +225 -0
  393. package/src/commerce/model/omsListTotals.ts +38 -0
  394. package/src/commerce/model/omsOperationalLadder.ts +181 -0
  395. package/src/commerce/model/omsOrderLineMoney.ts +34 -0
  396. package/src/commerce/model/omsPaymentMethodSummary.ts +19 -0
  397. package/src/commerce/model/omsReadModel.ts +302 -0
  398. package/src/commerce/model/omsReadModelCommunication.ts +32 -0
  399. package/src/commerce/model/omsReadModelHelpers.ts +279 -0
  400. package/src/commerce/model/omsReadModelList.ts +90 -0
  401. package/src/commerce/model/omsReadModelListSummary.ts +19 -0
  402. package/src/commerce/model/omsReadModelPricing.ts +57 -0
  403. package/src/commerce/model/omsReadModelProjections.ts +1 -0
  404. package/src/commerce/model/omsReadModelRowCore.ts +193 -0
  405. package/src/commerce/model/omsReadModelRows.ts +7 -0
  406. package/src/commerce/offerAvailability.ts +75 -0
  407. package/src/commerce/offerAvailabilitySchemas.ts +56 -0
  408. package/src/commerce/offerEvidenceSchemas.ts +17 -0
  409. package/src/commerce/oms/omsContractBase.ts +92 -0
  410. package/src/commerce/oms/omsContractReadAuxSchemas.ts +130 -0
  411. package/src/commerce/oms/omsContractReadSchemas.ts +303 -0
  412. package/src/commerce/oms/omsContractRequests.ts +143 -0
  413. package/src/commerce/oms/omsContracts.ts +6 -0
  414. package/src/commerce/oms/omsControlPlane.ts +85 -0
  415. package/src/commerce/oms/omsFulfillmentContractSchemas.ts +113 -0
  416. package/src/commerce/oms/omsFulfillmentDebugSchemas.ts +38 -0
  417. package/src/commerce/oms/omsFulfillmentHealthSchemas.ts +46 -0
  418. package/src/commerce/oms/omsPorts.ts +165 -0
  419. package/src/commerce/oms/omsPrimitives.ts +3 -0
  420. package/src/commerce/oms/omsProviderEvidenceSchemas.ts +13 -0
  421. package/src/commerce/orderDraftErrors.ts +28 -0
  422. package/src/commerce/orderEmailEligibility.ts +131 -0
  423. package/src/commerce/orderEmailLines.ts +22 -0
  424. package/src/commerce/orderFeedbackContracts.ts +47 -0
  425. package/src/commerce/orderMoney.ts +207 -0
  426. package/src/commerce/orderReviewContracts.ts +124 -0
  427. package/src/commerce/orderReviewPorts.ts +94 -0
  428. package/src/commerce/outboxDispatchContracts.ts +30 -0
  429. package/src/commerce/outboxEventSchemas.ts +230 -0
  430. package/src/commerce/outboxOrderDraftEmailPorts.ts +241 -0
  431. package/src/commerce/paymentContinuation.ts +5 -0
  432. package/src/commerce/ports.ts +7 -0
  433. package/src/commerce/recoveryDestination.ts +23 -0
  434. package/src/commerce/runtimeErrors.ts +19 -0
  435. package/src/commerce/salesChannelEnvelope.ts +28 -0
  436. package/src/commerce/schemas.ts +104 -0
  437. package/src/commerce/server/checkoutCompensation.ts +49 -0
  438. package/src/commerce/server/checkoutConflictClassifiers.ts +53 -0
  439. package/src/commerce/server/checkoutExpiredRecoveryPolicy.ts +107 -0
  440. package/src/commerce/server/checkoutInvoiceBuyerSnapshot.ts +36 -0
  441. package/src/commerce/server/checkoutOfferPolicyPort.ts +60 -0
  442. package/src/commerce/server/checkoutPaymentContinuationCredential.ts +222 -0
  443. package/src/commerce/server/checkoutQuoteTypes.ts +9 -0
  444. package/src/commerce/server/checkoutRecoveryOrderPort.ts +40 -0
  445. package/src/commerce/server/checkoutRecoveryToken.ts +63 -0
  446. package/src/commerce/server/checkoutRefusalContinuation.ts +29 -0
  447. package/src/commerce/server/checkoutRuntimeTypes.ts +26 -0
  448. package/src/commerce/server/commerceCheckoutCommandExecution.ts +188 -0
  449. package/src/commerce/server/commerceCheckoutCompensation.ts +66 -0
  450. package/src/commerce/server/commerceCheckoutContinuationTerms.ts +87 -0
  451. package/src/commerce/server/commerceCheckoutCustomerDefaults.ts +24 -0
  452. package/src/commerce/server/commerceCheckoutFailureHandler.ts +144 -0
  453. package/src/commerce/server/commerceCheckoutHandler.ts +269 -0
  454. package/src/commerce/server/commerceCheckoutHandlerAdmission.ts +157 -0
  455. package/src/commerce/server/commerceCheckoutHandlerHelpers.ts +223 -0
  456. package/src/commerce/server/commerceCheckoutOrchestrationError.ts +15 -0
  457. package/src/commerce/server/commerceCheckoutPromotionPriceChange.ts +83 -0
  458. package/src/commerce/server/commerceCheckoutProviderPayment.ts +45 -0
  459. package/src/commerce/server/commerceCheckoutQuoteGuard.ts +172 -0
  460. package/src/commerce/server/commerceCheckoutResume.ts +132 -0
  461. package/src/commerce/server/commerceCheckoutResumeGuard.ts +195 -0
  462. package/src/commerce/server/commerceCheckoutSavedPaymentMethod.ts +85 -0
  463. package/src/commerce/server/commerceCheckoutStartRuntimeFailure.ts +59 -0
  464. package/src/commerce/server/commerceCheckoutTiming.ts +53 -0
  465. package/src/commerce/server/commerceDiagnostics.ts +37 -0
  466. package/src/commerce/server/commerceOmsCancelOrderHandler.ts +43 -0
  467. package/src/commerce/server/commerceOmsControlPlaneHandlers.ts +71 -0
  468. package/src/commerce/server/commerceOmsHandlers.ts +275 -0
  469. package/src/commerce/server/commerceOmsMarkRefundedHandler.ts +39 -0
  470. package/src/commerce/server/commerceOrderDraft.ts +131 -0
  471. package/src/commerce/server/commercePaidOrderOrchestration.ts +275 -0
  472. package/src/commerce/server/commerceProviderAttemptFailure.ts +257 -0
  473. package/src/commerce/server/commerceReturnsHandlers.ts +143 -0
  474. package/src/commerce/server/commerceRuntimePort.ts +75 -0
  475. package/src/commerce/server/commerceRuntimeService.ts +229 -0
  476. package/src/commerce/server/commerceRuntimeStartResponse.ts +76 -0
  477. package/src/commerce/server/commerceStarterOfferGuard.ts +200 -0
  478. package/src/commerce/server/configuratorIntentPersistence.ts +161 -0
  479. package/src/commerce/server/configuratorIntentPersistenceHandler.ts +54 -0
  480. package/src/commerce/server/emailRuntime.ts +30 -0
  481. package/src/commerce/server/handlerSupport.ts +22 -0
  482. package/src/commerce/server/index.ts +181 -0
  483. package/src/commerce/server/offerAvailability.ts +275 -0
  484. package/src/commerce/server/orderDraftRpcPayload.ts +39 -0
  485. package/src/commerce/server/orderFeedbackSubmit.ts +40 -0
  486. package/src/commerce/server/orderFeedbackTokenCheck.ts +28 -0
  487. package/src/commerce/server/orderReviewAdminHandlers.ts +43 -0
  488. package/src/commerce/server/orderReviewHandlers.ts +57 -0
  489. package/src/commerce/server/orderReviewLifecycle.ts +129 -0
  490. package/src/commerce/server/orderReviewMedia.ts +170 -0
  491. package/src/commerce/server/orderReviewRawUploadHandler.ts +300 -0
  492. package/src/commerce/server/outboxCheckoutExpiredEmailHandler.ts +86 -0
  493. package/src/commerce/server/outboxCheckoutRecoveryEmailHandler.ts +188 -0
  494. package/src/commerce/server/outboxDispatchRegistry.ts +269 -0
  495. package/src/commerce/server/outboxDispatchRegistryComposition.ts +31 -0
  496. package/src/commerce/server/outboxOrderDraftEmailHandler.ts +162 -0
  497. package/src/commerce/server/outboxOrderPaidEmailHandler.ts +147 -0
  498. package/src/commerce/server/outboxOrderPaidFulfillmentHandler.ts +4 -0
  499. package/src/commerce/server/outboxOrderPaidFulfillmentPorts.ts +3 -0
  500. package/src/commerce/server/outboxOrderRefundedEmailHandler.ts +58 -0
  501. package/src/commerce/server/outboxPaymentFailedEmailHandler.ts +99 -0
  502. package/src/commerce/server/outboxReturnEmailHandlers.ts +92 -0
  503. package/src/commerce/server/outboxShipmentDeliveredEmailHandler.ts +94 -0
  504. package/src/commerce/server/outboxShipmentDispatchedEmailHandler.ts +112 -0
  505. package/src/commerce/server/outboxShipmentExceptionEmailHandler.ts +73 -0
  506. package/src/commerce/server/referenceCheckoutHandler.ts +87 -0
  507. package/src/commerce/server/reservationSweepPort.ts +67 -0
  508. package/src/commerce/server/starterTermsPort.ts +22 -0
  509. package/src/commerce/server/supabaseCommerceReturnsPort.ts +81 -0
  510. package/src/composition/commerceContribution.ts +35 -0
  511. package/src/composition/index.ts +1 -0
  512. package/src/fulfillment/index.ts +1 -1
  513. package/src/fulfillment/paidHandoff.ts +2 -2
  514. package/src/inventory/bindings.ts +12 -4
  515. package/src/inventory/index.ts +1 -0
  516. package/src/inventory/managedStockAvailability.ts +23 -0
  517. package/src/inventory/postgresStockAvailability.ts +2 -21
  518. package/src/inventory/stockReadResponse.ts +25 -0
  519. package/src/pricing/browser/index.ts +6 -0
  520. package/src/subscriptions/index.ts +3 -2
@@ -0,0 +1,13 @@
1
+ import { CommerceOmsPersistenceError } from "../../../oms/omsPorts.js";
2
+ export async function readAccountingOutbox(client, invoices) {
3
+ const result = invoices.length
4
+ ? await client
5
+ .query("accounting_invoice_issue_outbox")
6
+ .select("invoice_id, status, attempt_count, next_attempt_at, last_error, created_at")
7
+ .in("invoice_id", invoices.map((invoice) => invoice.id))
8
+ .order("created_at", { ascending: false })
9
+ : { data: [], error: null };
10
+ if (result.error)
11
+ throw new CommerceOmsPersistenceError("Commerce OMS accounting outbox list read failed");
12
+ return (result.data ?? []);
13
+ }
@@ -0,0 +1,17 @@
1
+ import type { CommerceOmsStore, RpcError } from "./types.js";
2
+ export declare function readShipmentRefsByOrderIds(client: CommerceOmsStore, orderIds: string[]): Promise<import("./types.js").ManagedQueryResult>;
3
+ export declare function readShipmentRefsByOrderId(client: CommerceOmsStore, orderId: string): Promise<import("./types.js").ManagedQueryResult>;
4
+ export declare function isOptionalProviderEvidenceColumnError(error: {
5
+ code?: string;
6
+ message?: string;
7
+ details?: string;
8
+ hint?: string;
9
+ } | null): boolean;
10
+ export declare function readFulfillmentParcelsByOrderId(client: CommerceOmsStore, orderId: string): Promise<{
11
+ data: unknown[];
12
+ error: RpcError | null;
13
+ }>;
14
+ export declare function readFulfillmentOrdersByOrderIds(client: CommerceOmsStore, orderIds: string[]): Promise<{
15
+ data: unknown[];
16
+ error: RpcError | null;
17
+ }>;
@@ -0,0 +1,81 @@
1
+ import { currentParcelFirst } from "@openlup/core/fulfillment";
2
+ const SHIPMENT_EXTERNAL_REF_BASE_COLUMNS = "order_id, provider_tracking_id, active";
3
+ // `fulfillment_order_id` rides the rich list: it is what narrows an order's references to the
4
+ // parcel currently representing it, and a deployment that predates the column falls back to the
5
+ // base list, where every reference answers for every parcel exactly as it did before.
6
+ const SHIPMENT_EXTERNAL_REF_COLUMNS = `${SHIPMENT_EXTERNAL_REF_BASE_COLUMNS}, fulfillment_order_id, provider_kind, tracking_url, carrier_kind, service, created_at, updated_at`;
7
+ // Kept out of the shared provider-evidence matcher on purpose: that one also guards the
8
+ // fulfillment-order reads, and `fulfillment_order_id` is a column half the schema carries, so
9
+ // folding it in there would silently downgrade an unrelated read on any error naming it.
10
+ function isMissingParcelAttributionError(error) {
11
+ if (!error)
12
+ return false;
13
+ return `${error.message ?? ""} ${error.details ?? ""} ${error.hint ?? ""}`.toLowerCase().includes("fulfillment_order_id");
14
+ }
15
+ function shipmentRefReadDegrades(error) {
16
+ return isOptionalProviderEvidenceColumnError(error) || isMissingParcelAttributionError(error);
17
+ }
18
+ export async function readShipmentRefsByOrderIds(client, orderIds) {
19
+ if (!orderIds.length)
20
+ return { data: [], error: null };
21
+ const result = await client.query("shipment_external_refs").select(SHIPMENT_EXTERNAL_REF_COLUMNS).in("order_id", orderIds).eq("active", true);
22
+ if (!shipmentRefReadDegrades(result.error))
23
+ return result;
24
+ return client.query("shipment_external_refs").select(SHIPMENT_EXTERNAL_REF_BASE_COLUMNS).in("order_id", orderIds).eq("active", true);
25
+ }
26
+ export async function readShipmentRefsByOrderId(client, orderId) {
27
+ const result = await client.query("shipment_external_refs").select(SHIPMENT_EXTERNAL_REF_COLUMNS).eq("order_id", orderId).eq("active", true);
28
+ if (!shipmentRefReadDegrades(result.error))
29
+ return result;
30
+ return client.query("shipment_external_refs").select(SHIPMENT_EXTERNAL_REF_BASE_COLUMNS).eq("order_id", orderId).eq("active", true);
31
+ }
32
+ // `sequence_no` rides the BASE list, not the rich one: it is what resolves which parcel
33
+ // currently represents an order, so the degraded read that drops provider evidence must still
34
+ // be able to answer that question deterministically.
35
+ const FULFILLMENT_ORDER_BASE_COLUMNS = "id, order_id, sequence_no, status, shipping_address_snapshot, handed_over_at, delivered_at, created_at, updated_at";
36
+ // `handed_over_at` rides the query that already reads the row, and is the only durable witness of
37
+ // which side of handover a provider exception happened on - the FSM's `exception` no longer says.
38
+ // `replaces_fulfillment_order_id` and `replacement_reason` ride the rich list with
39
+ // `provider_kind`: they are what tells an operator that the parcel on their screen IS a
40
+ // replacement and why, and a deployment that predates them degrades to the base list, where
41
+ // every parcel reads as the original exactly as it did before the columns existed.
42
+ const FULFILLMENT_ORDER_COLUMNS = `${FULFILLMENT_ORDER_BASE_COLUMNS}, provider_kind, replaces_fulfillment_order_id, replacement_reason`;
43
+ // A deployment that predates the optional provider-evidence columns answers the rich select with
44
+ // a missing-column error; every read here retries on the base list rather than failing.
45
+ export function isOptionalProviderEvidenceColumnError(error) {
46
+ if (!error)
47
+ return false;
48
+ const text = `${error.message ?? ""} ${error.details ?? ""} ${error.hint ?? ""}`.toLowerCase();
49
+ return ["fulfillment_provider_stock_current", "provider_kind", "tracking_url", "carrier_kind", "service", "replaces_fulfillment_order_id", "replacement_reason"].some((column) => text.includes(column)); // Only columns the BASE list OMITS belong here: created_at/updated_at are in it, so they could never be recovered - they only widened the silent downgrade.
50
+ }
51
+ // Deliberately no `.maybeSingle()`: PostgREST *errors* (PGRST116) when a single-object read
52
+ // matches two rows, and an order carrying a replacement parcel holds two.
53
+ //
54
+ // ⚠️ This returns EVERY parcel of the order, current one first, where it used to return the
55
+ // current one alone. That is what stopped the original parcel's tracking from vanishing from
56
+ // the operator's screen the moment a replacement existed. Callers that need exactly one row
57
+ // take `[0]`, which `currentParcelFirst` guarantees is the current parcel; nothing downstream
58
+ // widens its attribution, because the provider-evidence reads are still keyed on that one id.
59
+ export async function readFulfillmentParcelsByOrderId(client, orderId) {
60
+ const rich = await client.query("commerce_fulfillment_orders").select(FULFILLMENT_ORDER_COLUMNS).eq("order_id", orderId);
61
+ const result = isOptionalProviderEvidenceColumnError(rich.error)
62
+ ? await client.query("commerce_fulfillment_orders").select(FULFILLMENT_ORDER_BASE_COLUMNS).eq("order_id", orderId)
63
+ : rich;
64
+ if (result.error)
65
+ return { data: [], error: result.error };
66
+ return { data: currentParcelFirst((result.data ?? [])), error: null };
67
+ }
68
+ // The list read hands every order's rows to one builder, which narrows per order and then takes
69
+ // the first of what is left (`omsReadModelList.ts` filter -> `omsFulfillmentSummary.ts` [0]), so
70
+ // each order's rows must arrive with its current parcel first.
71
+ export async function readFulfillmentOrdersByOrderIds(client, orderIds) {
72
+ if (!orderIds.length)
73
+ return { data: [], error: null };
74
+ const rich = await client.query("commerce_fulfillment_orders").select(FULFILLMENT_ORDER_COLUMNS).in("order_id", orderIds);
75
+ const result = isOptionalProviderEvidenceColumnError(rich.error)
76
+ ? await client.query("commerce_fulfillment_orders").select(FULFILLMENT_ORDER_BASE_COLUMNS).in("order_id", orderIds)
77
+ : rich;
78
+ if (result.error)
79
+ return { data: [], error: result.error };
80
+ return { data: currentParcelFirst((result.data ?? [])), error: null };
81
+ }
@@ -0,0 +1,9 @@
1
+ import type { OmsInboundProviderEventRow } from "../../../model/omsFulfillmentDebug.js";
2
+ import type { OmsProviderDispatchRefRow } from "../../../model/omsFulfillmentSummary.js";
3
+ import type { OmsOrderRow } from "../../../model/omsReadModel.js";
4
+ import { type CommerceOmsStore } from "./types.js";
5
+ export declare function readOmsInboundEvents(client: CommerceOmsStore, input: {
6
+ order: OmsOrderRow;
7
+ dispatchRefs: OmsProviderDispatchRefRow[];
8
+ providerKind: string;
9
+ }): Promise<OmsInboundProviderEventRow[]>;
@@ -0,0 +1,40 @@
1
+ import { CommerceOmsPersistenceError } from "../../../oms/omsPorts.js";
2
+ import { distinctIds } from "./types.js";
3
+ const INBOUND_EVENT_COLUMNS = "id, provider, provider_event_id, event_type, processing_status, payload, error, created_at, processed_at";
4
+ export async function readOmsInboundEvents(client, input) {
5
+ const needles = distinctIds([
6
+ input.order.order_number,
7
+ input.order.id,
8
+ ...input.dispatchRefs.map((row) => row.provider_order_id ?? null),
9
+ ]);
10
+ if (!needles.length)
11
+ return [];
12
+ const result = await client
13
+ .query("inbound_provider_events")
14
+ .select(INBOUND_EVENT_COLUMNS)
15
+ .eq("provider", input.providerKind)
16
+ .order("created_at", { ascending: false })
17
+ .range(0, 49);
18
+ if (isOptionalInboundEventError(result.error))
19
+ return [];
20
+ if (result.error)
21
+ throw new CommerceOmsPersistenceError("Commerce OMS provider inbound events read failed");
22
+ return (result.data ?? []).filter((row) => matchesNeedle(row, needles));
23
+ }
24
+ function matchesNeedle(row, needles) {
25
+ const haystack = JSON.stringify({
26
+ providerEventId: row.provider_event_id,
27
+ eventType: row.event_type,
28
+ payload: row.payload,
29
+ error: row.error,
30
+ });
31
+ return needles.some((needle) => haystack.includes(needle));
32
+ }
33
+ function isOptionalInboundEventError(error) {
34
+ if (!error)
35
+ return false;
36
+ if (error.code === "42P01" || error.code === "42703")
37
+ return true;
38
+ const text = `${error.message ?? ""} ${error.details ?? ""} ${error.hint ?? ""}`.toLowerCase();
39
+ return text.includes("inbound_provider_events");
40
+ }
@@ -0,0 +1,2 @@
1
+ import type { CommerceOmsStore } from "./types.js";
2
+ export declare function readOrderPaidOutboxEvents(client: CommerceOmsStore, orderId: string): Promise<import("./types.js").ManagedQueryResult>;
@@ -0,0 +1,23 @@
1
+ import { COMMERCE_ORDER_PAID_EVENT_TYPE } from "../../../outboxEventSchemas.js";
2
+ const ORDER_PAID_OUTBOX_COLUMNS = "id,event_type,status,aggregate_id,created_at,available_at,attempts";
3
+ const ORDER_PAID_OUTBOX_BASE_COLUMNS = "id,event_type,status,aggregate_id,created_at,available_at";
4
+ export async function readOrderPaidOutboxEvents(client, orderId) {
5
+ const primary = await selectOrderPaidOutboxEvents(client, orderId, ORDER_PAID_OUTBOX_COLUMNS);
6
+ if (!isMissingAttemptsColumn(primary.error))
7
+ return primary;
8
+ return selectOrderPaidOutboxEvents(client, orderId, ORDER_PAID_OUTBOX_BASE_COLUMNS);
9
+ }
10
+ function selectOrderPaidOutboxEvents(client, orderId, columns) {
11
+ return client
12
+ .query("outbox_events")
13
+ .select(columns)
14
+ .eq("event_type", COMMERCE_ORDER_PAID_EVENT_TYPE)
15
+ .eq("aggregate_id", orderId)
16
+ .order("created_at", { ascending: false });
17
+ }
18
+ function isMissingAttemptsColumn(error) {
19
+ if (!error)
20
+ return false;
21
+ const text = `${error.message ?? ""} ${error.details ?? ""} ${error.hint ?? ""}`.toLowerCase();
22
+ return text.includes("attempts");
23
+ }
@@ -0,0 +1,3 @@
1
+ import type { OmsPaymentAttemptRow, OmsPaymentIntentRow } from "../../../model/omsReadModel.js";
2
+ import type { CommerceOmsStore } from "./types.js";
3
+ export declare function readActivePaymentAttempts(client: CommerceOmsStore, paymentIntents: OmsPaymentIntentRow[]): Promise<OmsPaymentAttemptRow[]>;
@@ -0,0 +1,15 @@
1
+ import { CommerceOmsPersistenceError } from "../../../oms/omsPorts.js";
2
+ export async function readActivePaymentAttempts(client, paymentIntents) {
3
+ const attemptIds = paymentIntents
4
+ .map((intent) => intent.active_attempt_id)
5
+ .filter((id) => Boolean(id));
6
+ if (attemptIds.length === 0)
7
+ return [];
8
+ const result = await client
9
+ .query("commerce_payment_attempts")
10
+ .select("id, payment_intent_id, status, provider, provider_attempt_id, next_action_kind, updated_at")
11
+ .in("id", attemptIds);
12
+ if (result.error)
13
+ throw new CommerceOmsPersistenceError("Commerce OMS payment attempt list read failed");
14
+ return (result.data ?? []);
15
+ }
@@ -0,0 +1,12 @@
1
+ import type { OmsManagedReadProjections } from "../../../contracts/omsTypes.js";
2
+ type MatchSchema = NonNullable<OmsManagedReadProjections["queueMatchSchema"]>;
3
+ import type { QueueSelection } from "../../../contracts/omsTypes.js";
4
+ import { type OmsCurrencyPolicy } from "../../../model/omsCurrency.js";
5
+ import type { AdminCommerceOrdersListRequest } from "../../../oms/omsContracts.js";
6
+ import type { CommerceOmsStore } from "./types.js";
7
+ export type { QueueSelection } from "../../../contracts/omsTypes.js";
8
+ export declare function readQueueSelection(client: CommerceOmsStore, request: AdminCommerceOrdersListRequest, options?: {
9
+ currency?: OmsCurrencyPolicy;
10
+ matchSchema?: MatchSchema;
11
+ projectResult?(data: unknown): unknown;
12
+ }): Promise<QueueSelection>;
@@ -0,0 +1,109 @@
1
+ import { neutralOmsCurrencyPolicy } from "../../../model/omsCurrency.js";
2
+ import { omsOrderListSummaryCountsSchema, omsOrderListSummaryTotalsSchema, omsOrderSearchMatchSchema } from "../../../oms/omsContracts.js";
3
+ import { CommerceOmsPersistenceError } from "../../../oms/omsPorts.js";
4
+ /** The refusal the queue RPC raises when the paid set spans several currencies. */
5
+ const MIXED_CURRENCY_REFUSAL = "commerce_oms_summary_mixed_currency";
6
+ export async function readQueueSelection(client, request, options = {}) {
7
+ const { data, error } = await client.rpc("commerce_oms_admin_list_queue", {
8
+ p_page: request.page,
9
+ p_page_size: request.pageSize,
10
+ p_search: request.search ?? null,
11
+ p_status: request.status ?? null,
12
+ p_mode: request.mode ?? null,
13
+ p_payment_status: request.paymentStatus ?? null,
14
+ p_fulfillment_status: request.fulfillmentStatus ?? null,
15
+ p_inventory_status: request.inventoryStatus ?? null,
16
+ p_accounting_status: request.accountingStatus ?? null,
17
+ p_provider_ops_status: request.providerOpsStatus ?? null,
18
+ p_attention_reason: request.attentionReason ?? null,
19
+ p_attention_only: request.attentionOnly ?? false,
20
+ p_next_action: request.nextAction ?? null,
21
+ p_from: request.from ?? null,
22
+ p_to: request.to ?? null,
23
+ p_sort: request.sort,
24
+ // Default false: the queue hides withdrawn rows unless the operator asks.
25
+ // The RPC declares no parameter defaults, so this must always be sent.
26
+ p_include_withdrawn: request.includeWithdrawn ?? false,
27
+ });
28
+ if (error)
29
+ throw queueSelectionError(error);
30
+ return parseQueueSelection(options.projectResult?.(data) ?? data, options.currency ?? neutralOmsCurrencyPolicy, options.matchSchema);
31
+ }
32
+ // A cross-currency paid set is a refusal the RPC raises on purpose, not a
33
+ // generic read failure: it names an operator-visible condition (two currencies
34
+ // in one dashboard total) that a retry will not clear. Keep it distinguishable.
35
+ function queueSelectionError(error) {
36
+ const raised = `${error.message ?? ""} ${error.details ?? ""} ${error.hint ?? ""}`;
37
+ if (raised.includes(MIXED_CURRENCY_REFUSAL)) {
38
+ return new CommerceOmsPersistenceError("Commerce OMS queue summary spans more than one currency", { reason: MIXED_CURRENCY_REFUSAL });
39
+ }
40
+ return new CommerceOmsPersistenceError("Commerce OMS queue selection read failed");
41
+ }
42
+ function parseQueueSelection(data, currency, matchSchema = omsOrderSearchMatchSchema) {
43
+ const record = isRecord(data) ? data : {};
44
+ const orderIds = Array.isArray(record.orderIds)
45
+ ? record.orderIds.filter((id) => typeof id === "string")
46
+ : [];
47
+ const totalCount = Number(record.totalCount ?? 0);
48
+ const summaryCounts = omsOrderListSummaryCountsSchema.parse({
49
+ ...ZERO_SUMMARY_COUNTS,
50
+ ...(isRecord(record.summaryCounts) ? record.summaryCounts : {}),
51
+ });
52
+ const summaryTotals = omsOrderListSummaryTotalsSchema.parse({
53
+ gmv: { amountMinor: 0, currency: currency.defaultCurrency },
54
+ aov: { amountMinor: 0, currency: currency.defaultCurrency },
55
+ orderCount: 0, paidSubscriptionCycleCount: 0,
56
+ ...normalizeSummaryTotals(isRecord(record.summaryTotals) ? record.summaryTotals : {}, currency),
57
+ });
58
+ const matches = parseMatches(record.matches, matchSchema);
59
+ if (!Number.isInteger(totalCount) || totalCount < 0) {
60
+ throw new CommerceOmsPersistenceError("Commerce OMS queue selection count invalid");
61
+ }
62
+ return { orderIds, totalCount, matches, summaryCounts, summaryTotals };
63
+ }
64
+ function parseMatches(value, schema) {
65
+ if (!isRecord(value))
66
+ return {};
67
+ return Object.fromEntries(Object.entries(value).flatMap(([orderId, match]) => {
68
+ const parsed = schema.safeParse(match);
69
+ return parsed.success ? [[orderId, parsed.data]] : [];
70
+ }));
71
+ }
72
+ function isRecord(value) {
73
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
74
+ }
75
+ // The queue RPC still emits the legacy `newSubscriptionCount` JSON key. It counts
76
+ // PAID subscription cycles (the initial checkout cycle #1 plus every paid renewal),
77
+ // so map it onto the accurately-named `paidSubscriptionCycleCount` contract field.
78
+ // The new key is accepted too, so a future RPC rename is a no-op here.
79
+ function normalizeSummaryTotals(raw, currency) {
80
+ const { newSubscriptionCount, gmv, aov, ...rest } = raw;
81
+ const normalized = { ...rest };
82
+ if (gmv !== undefined)
83
+ normalized.gmv = withDefaultCurrency(gmv, currency);
84
+ if (aov !== undefined)
85
+ normalized.aov = withDefaultCurrency(aov, currency);
86
+ if (newSubscriptionCount !== undefined) {
87
+ normalized.paidSubscriptionCycleCount = normalized.paidSubscriptionCycleCount ?? newSubscriptionCount;
88
+ }
89
+ return normalized;
90
+ }
91
+ // The queue RPC no longer names a currency: `min(currency)` over an EMPTY paid
92
+ // set is NULL by design, so the schema stays currency-agnostic. Labelling a
93
+ // zero total is a platform-policy decision, and policy has exactly one home.
94
+ function withDefaultCurrency(money, currency) {
95
+ if (!isRecord(money) || money.currency != null)
96
+ return money;
97
+ return { ...money, currency: currency.defaultCurrency };
98
+ }
99
+ const ZERO_SUMMARY_COUNTS = {
100
+ needsAttention: 0,
101
+ activeHold: 0,
102
+ readyForFulfillment: 0,
103
+ paymentIssues: 0,
104
+ inventoryRisk: 0,
105
+ fulfillmentBlocked: 0,
106
+ fulfillmentExceptions: 0,
107
+ invoiceIssues: 0,
108
+ providerDispatchedNotPicked: 0,
109
+ };
@@ -0,0 +1,18 @@
1
+ export type { OmsManagedReadProjections } from "../../../contracts/omsTypes.js";
2
+ import type { OmsOrderDetail } from "../../../oms/omsContracts.js";
3
+ import type { OmsOrderRow, OmsAccountingInvoiceRow } from "../../../model/omsReadModelRows.js";
4
+ export declare const emptyOmsManagedReadProjections: {
5
+ readIdentity: () => Promise<Record<string, Record<string, unknown>>>;
6
+ mapInvoice: (value: unknown) => OmsAccountingInvoiceRow;
7
+ readFulfillmentOperations: () => Promise<never[]>;
8
+ readProviderDispatchRefs: () => Promise<never[]>;
9
+ readProviderStatusEvidence: () => Promise<never[]>;
10
+ readProviderAttempts: () => Promise<never[]>;
11
+ readReleasedProviderExceptionHolds: () => Promise<never[]>;
12
+ readProviderStockCurrent: () => Promise<never[]>;
13
+ readInboundEvents: () => Promise<never[]>;
14
+ buildHealth: (input: {
15
+ order: OmsOrderRow;
16
+ }) => OmsOrderDetail["fulfillmentHealth"];
17
+ buildHealthDigests: () => {};
18
+ };
@@ -0,0 +1,13 @@
1
+ export const emptyOmsManagedReadProjections = {
2
+ readIdentity: async () => ({}),
3
+ mapInvoice: (value) => value,
4
+ readFulfillmentOperations: async () => [],
5
+ readProviderDispatchRefs: async () => [],
6
+ readProviderStatusEvidence: async () => [],
7
+ readProviderAttempts: async () => [],
8
+ readReleasedProviderExceptionHolds: async () => [],
9
+ readProviderStockCurrent: async () => [],
10
+ readInboundEvents: async () => [],
11
+ buildHealth: (input) => ({ healthStatus: "ok", attentionReasons: [], oldestAgeSeconds: null, opaqueIds: { orderId: input.order.id, fulfillmentOrderId: null, outboxEventId: null, dispatchRefFulfillmentOrderId: null, latestEvidenceFulfillmentOrderId: null } }),
12
+ buildHealthDigests: () => ({}),
13
+ };
@@ -0,0 +1,16 @@
1
+ import { type OmsActionAvailabilityFlags } from "../../../model/omsReadModelHelpers.js";
2
+ import { type AdminCommerceOrderDetailRequest, type AdminCommerceOrderDetailResponse, type AdminCommerceOrdersListRequest, type AdminCommerceOrdersListResponse } from "../../../oms/omsContracts.js";
3
+ import { type OmsManagedReadProjections } from "./readProjections.js";
4
+ import { type CommerceOmsStore } from "./types.js";
5
+ export declare function listCommerceOmsOrders(client: CommerceOmsStore, request: AdminCommerceOrdersListRequest, options?: {
6
+ projections?: OmsManagedReadProjections;
7
+ }): Promise<AdminCommerceOrdersListResponse>;
8
+ export declare function getCommerceOmsOrderDetail(client: CommerceOmsStore, request: AdminCommerceOrderDetailRequest, options?: {
9
+ actionFlags?: OmsActionAvailabilityFlags;
10
+ projections?: OmsManagedReadProjections;
11
+ }): Promise<AdminCommerceOrderDetailResponse | null>;
12
+ /** Hydrate a bounded selection without repeating its canonical header query. */
13
+ export declare function getCommerceOmsOrderDetails(client: CommerceOmsStore, orderIds: string[], options?: {
14
+ actionFlags?: OmsActionAvailabilityFlags;
15
+ projections?: OmsManagedReadProjections;
16
+ }): Promise<Array<AdminCommerceOrderDetailResponse | null>>;