@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.
- package/CHANGELOG.md +138 -218
- package/README.md +229 -16
- package/dist/commerce/adapters/managed/commerceOmsControlPlane.d.ts +3 -0
- package/dist/commerce/adapters/managed/commerceOmsControlPlane.js +71 -0
- package/dist/commerce/adapters/managed/commerceOmsMutations.d.ts +10 -0
- package/dist/commerce/adapters/managed/commerceOmsMutations.js +119 -0
- package/dist/commerce/adapters/managed/commerceOmsPort.d.ts +28 -0
- package/dist/commerce/adapters/managed/commerceOmsPort.js +101 -0
- package/dist/commerce/adapters/managed/oms/accounting.d.ts +3 -0
- package/dist/commerce/adapters/managed/oms/accounting.js +13 -0
- package/dist/commerce/adapters/managed/oms/fulfillmentReads.d.ts +17 -0
- package/dist/commerce/adapters/managed/oms/fulfillmentReads.js +81 -0
- package/dist/commerce/adapters/managed/oms/inboundEvents.d.ts +9 -0
- package/dist/commerce/adapters/managed/oms/inboundEvents.js +40 -0
- package/dist/commerce/adapters/managed/oms/outboxEvents.d.ts +2 -0
- package/dist/commerce/adapters/managed/oms/outboxEvents.js +23 -0
- package/dist/commerce/adapters/managed/oms/paymentAttempts.d.ts +3 -0
- package/dist/commerce/adapters/managed/oms/paymentAttempts.js +15 -0
- package/dist/commerce/adapters/managed/oms/queueSelection.d.ts +12 -0
- package/dist/commerce/adapters/managed/oms/queueSelection.js +109 -0
- package/dist/commerce/adapters/managed/oms/readProjections.d.ts +18 -0
- package/dist/commerce/adapters/managed/oms/readProjections.js +13 -0
- package/dist/commerce/adapters/managed/oms/readQueries.d.ts +16 -0
- package/dist/commerce/adapters/managed/oms/readQueries.js +276 -0
- package/dist/commerce/adapters/managed/oms/types.d.ts +2 -0
- package/dist/commerce/adapters/managed/oms/types.js +7 -0
- package/dist/commerce/checkoutCommandSchemas.d.ts +89 -0
- package/dist/commerce/checkoutCommandSchemas.js +70 -0
- package/dist/commerce/checkoutHelpers.d.ts +21 -0
- package/dist/commerce/checkoutHelpers.js +29 -0
- package/dist/commerce/checkoutResumeSchemas.d.ts +158 -0
- package/dist/commerce/checkoutResumeSchemas.js +145 -0
- package/dist/commerce/checkoutSchemas.d.ts +158 -0
- package/dist/commerce/checkoutSchemas.js +161 -0
- package/dist/commerce/commerceReturnsPort.d.ts +97 -0
- package/dist/commerce/commerceReturnsPort.js +39 -0
- package/dist/commerce/configuratorIntentPersistenceSchemas.d.ts +20 -0
- package/dist/commerce/configuratorIntentPersistenceSchemas.js +21 -0
- package/dist/commerce/configuratorIntentSchemas.d.ts +63 -0
- package/dist/commerce/configuratorIntentSchemas.js +43 -0
- package/dist/commerce/contractPrimitives.d.ts +50 -0
- package/dist/commerce/contractPrimitives.js +25 -0
- package/dist/commerce/contracts/availability.d.ts +23 -0
- package/dist/commerce/contracts/availability.js +1 -0
- package/dist/commerce/contracts/fulfillmentRecovery.d.ts +25 -0
- package/dist/commerce/contracts/fulfillmentRecovery.js +1 -0
- package/dist/commerce/contracts/index.d.ts +13 -0
- package/dist/commerce/contracts/index.js +1 -0
- package/dist/commerce/contracts/intent.d.ts +86 -0
- package/dist/commerce/contracts/intent.js +1 -0
- package/dist/commerce/contracts/omsTypes.d.ts +1216 -0
- package/dist/commerce/contracts/omsTypes.js +1 -0
- package/dist/commerce/contracts/order.d.ts +39 -0
- package/dist/commerce/contracts/order.js +1 -0
- package/dist/commerce/contracts/orderMoney.d.ts +52 -0
- package/dist/commerce/contracts/orderMoney.js +1 -0
- package/dist/commerce/contracts/ports.d.ts +113 -0
- package/dist/commerce/contracts/ports.js +1 -0
- package/dist/commerce/contracts/recovery.d.ts +11 -0
- package/dist/commerce/contracts/recovery.js +1 -0
- package/dist/commerce/contracts/runtimePorts.d.ts +196 -0
- package/dist/commerce/contracts/runtimePorts.js +1 -0
- package/dist/commerce/contracts/state.d.ts +26 -0
- package/dist/commerce/contracts/state.js +43 -0
- package/dist/commerce/customerDefaultsSnapshotSchemas.d.ts +51 -0
- package/dist/commerce/customerDefaultsSnapshotSchemas.js +106 -0
- package/dist/commerce/errors.d.ts +18 -0
- package/dist/commerce/errors.js +36 -0
- package/dist/commerce/fulfillmentEligibility.d.ts +6 -0
- package/dist/commerce/fulfillmentEligibility.js +31 -0
- package/dist/commerce/index.d.ts +72 -0
- package/dist/commerce/index.js +67 -0
- package/dist/commerce/model/customerFulfillmentRecovery.d.ts +40 -0
- package/dist/commerce/model/customerFulfillmentRecovery.js +144 -0
- package/dist/commerce/model/fulfillmentCancellationEligibility.d.ts +7 -0
- package/dist/commerce/model/fulfillmentCancellationEligibility.js +9 -0
- package/dist/commerce/model/omsAccountingVisibility.d.ts +12 -0
- package/dist/commerce/model/omsAccountingVisibility.js +118 -0
- package/dist/commerce/model/omsBillingInvoiceBuyer.d.ts +2 -0
- package/dist/commerce/model/omsBillingInvoiceBuyer.js +15 -0
- package/dist/commerce/model/omsCurrency.d.ts +4 -0
- package/dist/commerce/model/omsCurrency.js +5 -0
- package/dist/commerce/model/omsFulfillmentDebug.d.ts +20 -0
- package/dist/commerce/model/omsFulfillmentDebug.js +122 -0
- package/dist/commerce/model/omsFulfillmentSummary.d.ts +16 -0
- package/dist/commerce/model/omsFulfillmentSummary.js +189 -0
- package/dist/commerce/model/omsListTotals.d.ts +13 -0
- package/dist/commerce/model/omsListTotals.js +32 -0
- package/dist/commerce/model/omsOperationalLadder.d.ts +51 -0
- package/dist/commerce/model/omsOperationalLadder.js +158 -0
- package/dist/commerce/model/omsOrderLineMoney.d.ts +4 -0
- package/dist/commerce/model/omsOrderLineMoney.js +25 -0
- package/dist/commerce/model/omsPaymentMethodSummary.d.ts +5 -0
- package/dist/commerce/model/omsPaymentMethodSummary.js +11 -0
- package/dist/commerce/model/omsReadModel.d.ts +43 -0
- package/dist/commerce/model/omsReadModel.js +211 -0
- package/dist/commerce/model/omsReadModelCommunication.d.ts +3 -0
- package/dist/commerce/model/omsReadModelCommunication.js +29 -0
- package/dist/commerce/model/omsReadModelHelpers.d.ts +125 -0
- package/dist/commerce/model/omsReadModelHelpers.js +212 -0
- package/dist/commerce/model/omsReadModelList.d.ts +33 -0
- package/dist/commerce/model/omsReadModelList.js +50 -0
- package/dist/commerce/model/omsReadModelListSummary.d.ts +3 -0
- package/dist/commerce/model/omsReadModelListSummary.js +13 -0
- package/dist/commerce/model/omsReadModelPricing.d.ts +5 -0
- package/dist/commerce/model/omsReadModelPricing.js +36 -0
- package/dist/commerce/model/omsReadModelProjections.d.ts +1 -0
- package/dist/commerce/model/omsReadModelProjections.js +1 -0
- package/dist/commerce/model/omsReadModelRowCore.d.ts +79 -0
- package/dist/commerce/model/omsReadModelRowCore.js +149 -0
- package/dist/commerce/model/omsReadModelRows.d.ts +1 -0
- package/dist/commerce/model/omsReadModelRows.js +6 -0
- package/dist/commerce/offerAvailability.d.ts +18 -0
- package/dist/commerce/offerAvailability.js +53 -0
- package/dist/commerce/offerAvailabilitySchemas.d.ts +43 -0
- package/dist/commerce/offerAvailabilitySchemas.js +42 -0
- package/dist/commerce/offerEvidenceSchemas.d.ts +7 -0
- package/dist/commerce/offerEvidenceSchemas.js +13 -0
- package/dist/commerce/oms/omsContractBase.d.ts +130 -0
- package/dist/commerce/oms/omsContractBase.js +86 -0
- package/dist/commerce/oms/omsContractReadAuxSchemas.d.ts +222 -0
- package/dist/commerce/oms/omsContractReadAuxSchemas.js +123 -0
- package/dist/commerce/oms/omsContractReadSchemas.d.ts +2266 -0
- package/dist/commerce/oms/omsContractReadSchemas.js +277 -0
- package/dist/commerce/oms/omsContractRequests.d.ts +196 -0
- package/dist/commerce/oms/omsContractRequests.js +118 -0
- package/dist/commerce/oms/omsContracts.d.ts +5 -0
- package/dist/commerce/oms/omsContracts.js +4 -0
- package/dist/commerce/oms/omsControlPlane.d.ts +275 -0
- package/dist/commerce/oms/omsControlPlane.js +72 -0
- package/dist/commerce/oms/omsFulfillmentContractSchemas.d.ts +203 -0
- package/dist/commerce/oms/omsFulfillmentContractSchemas.js +94 -0
- package/dist/commerce/oms/omsFulfillmentDebugSchemas.d.ts +69 -0
- package/dist/commerce/oms/omsFulfillmentDebugSchemas.js +33 -0
- package/dist/commerce/oms/omsFulfillmentHealthSchemas.d.ts +67 -0
- package/dist/commerce/oms/omsFulfillmentHealthSchemas.js +44 -0
- package/dist/commerce/oms/omsPorts.d.ts +84 -0
- package/dist/commerce/oms/omsPorts.js +148 -0
- package/dist/commerce/oms/omsPrimitives.d.ts +5 -0
- package/dist/commerce/oms/omsPrimitives.js +3 -0
- package/dist/commerce/oms/omsProviderEvidenceSchemas.d.ts +15 -0
- package/dist/commerce/oms/omsProviderEvidenceSchemas.js +12 -0
- package/dist/commerce/orderDraftErrors.d.ts +13 -0
- package/dist/commerce/orderDraftErrors.js +20 -0
- package/dist/commerce/orderEmailEligibility.d.ts +54 -0
- package/dist/commerce/orderEmailEligibility.js +123 -0
- package/dist/commerce/orderEmailLines.d.ts +12 -0
- package/dist/commerce/orderEmailLines.js +8 -0
- package/dist/commerce/orderFeedbackContracts.d.ts +41 -0
- package/dist/commerce/orderFeedbackContracts.js +33 -0
- package/dist/commerce/orderMoney.d.ts +6 -0
- package/dist/commerce/orderMoney.js +168 -0
- package/dist/commerce/orderReviewContracts.d.ts +475 -0
- package/dist/commerce/orderReviewContracts.js +94 -0
- package/dist/commerce/orderReviewPorts.d.ts +140 -0
- package/dist/commerce/orderReviewPorts.js +1 -0
- package/dist/commerce/outboxDispatchContracts.d.ts +30 -0
- package/dist/commerce/outboxDispatchContracts.js +1 -0
- package/dist/commerce/outboxEventSchemas.d.ts +162 -0
- package/dist/commerce/outboxEventSchemas.js +164 -0
- package/dist/commerce/outboxOrderDraftEmailPorts.d.ts +207 -0
- package/dist/commerce/outboxOrderDraftEmailPorts.js +12 -0
- package/dist/commerce/paymentContinuation.d.ts +4 -0
- package/dist/commerce/paymentContinuation.js +4 -0
- package/dist/commerce/ports.d.ts +8 -0
- package/dist/commerce/ports.js +1 -0
- package/dist/commerce/recoveryDestination.d.ts +3 -0
- package/dist/commerce/recoveryDestination.js +17 -0
- package/dist/commerce/runtimeErrors.d.ts +8 -0
- package/dist/commerce/runtimeErrors.js +16 -0
- package/dist/commerce/salesChannelEnvelope.d.ts +20 -0
- package/dist/commerce/salesChannelEnvelope.js +7 -0
- package/dist/commerce/schemas.d.ts +174 -0
- package/dist/commerce/schemas.js +84 -0
- package/dist/commerce/server/checkoutCompensation.d.ts +21 -0
- package/dist/commerce/server/checkoutCompensation.js +32 -0
- package/dist/commerce/server/checkoutConflictClassifiers.d.ts +17 -0
- package/dist/commerce/server/checkoutConflictClassifiers.js +38 -0
- package/dist/commerce/server/checkoutExpiredRecoveryPolicy.d.ts +38 -0
- package/dist/commerce/server/checkoutExpiredRecoveryPolicy.js +85 -0
- package/dist/commerce/server/checkoutInvoiceBuyerSnapshot.d.ts +22 -0
- package/dist/commerce/server/checkoutInvoiceBuyerSnapshot.js +30 -0
- package/dist/commerce/server/checkoutOfferPolicyPort.d.ts +33 -0
- package/dist/commerce/server/checkoutOfferPolicyPort.js +49 -0
- package/dist/commerce/server/checkoutPaymentContinuationCredential.d.ts +58 -0
- package/dist/commerce/server/checkoutPaymentContinuationCredential.js +154 -0
- package/dist/commerce/server/checkoutQuoteTypes.d.ts +19 -0
- package/dist/commerce/server/checkoutQuoteTypes.js +1 -0
- package/dist/commerce/server/checkoutRecoveryOrderPort.d.ts +42 -0
- package/dist/commerce/server/checkoutRecoveryOrderPort.js +1 -0
- package/dist/commerce/server/checkoutRecoveryToken.d.ts +40 -0
- package/dist/commerce/server/checkoutRecoveryToken.js +26 -0
- package/dist/commerce/server/checkoutRefusalContinuation.d.ts +24 -0
- package/dist/commerce/server/checkoutRefusalContinuation.js +18 -0
- package/dist/commerce/server/checkoutRuntimeTypes.d.ts +81 -0
- package/dist/commerce/server/checkoutRuntimeTypes.js +1 -0
- package/dist/commerce/server/commerceCheckoutCommandExecution.d.ts +60 -0
- package/dist/commerce/server/commerceCheckoutCommandExecution.js +136 -0
- package/dist/commerce/server/commerceCheckoutCompensation.d.ts +26 -0
- package/dist/commerce/server/commerceCheckoutCompensation.js +46 -0
- package/dist/commerce/server/commerceCheckoutContinuationTerms.d.ts +50 -0
- package/dist/commerce/server/commerceCheckoutContinuationTerms.js +66 -0
- package/dist/commerce/server/commerceCheckoutCustomerDefaults.d.ts +18 -0
- package/dist/commerce/server/commerceCheckoutCustomerDefaults.js +17 -0
- package/dist/commerce/server/commerceCheckoutFailureHandler.d.ts +51 -0
- package/dist/commerce/server/commerceCheckoutFailureHandler.js +90 -0
- package/dist/commerce/server/commerceCheckoutHandler.d.ts +213 -0
- package/dist/commerce/server/commerceCheckoutHandler.js +196 -0
- package/dist/commerce/server/commerceCheckoutHandlerAdmission.d.ts +58 -0
- package/dist/commerce/server/commerceCheckoutHandlerAdmission.js +94 -0
- package/dist/commerce/server/commerceCheckoutHandlerHelpers.d.ts +67 -0
- package/dist/commerce/server/commerceCheckoutHandlerHelpers.js +155 -0
- package/dist/commerce/server/commerceCheckoutOrchestrationError.d.ts +9 -0
- package/dist/commerce/server/commerceCheckoutOrchestrationError.js +14 -0
- package/dist/commerce/server/commerceCheckoutPromotionPriceChange.d.ts +47 -0
- package/dist/commerce/server/commerceCheckoutPromotionPriceChange.js +43 -0
- package/dist/commerce/server/commerceCheckoutProviderPayment.d.ts +34 -0
- package/dist/commerce/server/commerceCheckoutProviderPayment.js +37 -0
- package/dist/commerce/server/commerceCheckoutQuoteGuard.d.ts +62 -0
- package/dist/commerce/server/commerceCheckoutQuoteGuard.js +106 -0
- package/dist/commerce/server/commerceCheckoutResume.d.ts +29 -0
- package/dist/commerce/server/commerceCheckoutResume.js +81 -0
- package/dist/commerce/server/commerceCheckoutResumeGuard.d.ts +54 -0
- package/dist/commerce/server/commerceCheckoutResumeGuard.js +138 -0
- package/dist/commerce/server/commerceCheckoutSavedPaymentMethod.d.ts +39 -0
- package/dist/commerce/server/commerceCheckoutSavedPaymentMethod.js +44 -0
- package/dist/commerce/server/commerceCheckoutStartRuntimeFailure.d.ts +7 -0
- package/dist/commerce/server/commerceCheckoutStartRuntimeFailure.js +39 -0
- package/dist/commerce/server/commerceCheckoutTiming.d.ts +8 -0
- package/dist/commerce/server/commerceCheckoutTiming.js +31 -0
- package/dist/commerce/server/commerceDiagnostics.d.ts +6 -0
- package/dist/commerce/server/commerceDiagnostics.js +31 -0
- package/dist/commerce/server/commerceOmsCancelOrderHandler.d.ts +7 -0
- package/dist/commerce/server/commerceOmsCancelOrderHandler.js +22 -0
- package/dist/commerce/server/commerceOmsControlPlaneHandlers.d.ts +18 -0
- package/dist/commerce/server/commerceOmsControlPlaneHandlers.js +60 -0
- package/dist/commerce/server/commerceOmsHandlers.d.ts +47 -0
- package/dist/commerce/server/commerceOmsHandlers.js +176 -0
- package/dist/commerce/server/commerceOmsMarkRefundedHandler.d.ts +7 -0
- package/dist/commerce/server/commerceOmsMarkRefundedHandler.js +19 -0
- package/dist/commerce/server/commerceOrderDraft.d.ts +24 -0
- package/dist/commerce/server/commerceOrderDraft.js +92 -0
- package/dist/commerce/server/commercePaidOrderOrchestration.d.ts +131 -0
- package/dist/commerce/server/commercePaidOrderOrchestration.js +140 -0
- package/dist/commerce/server/commerceProviderAttemptFailure.d.ts +133 -0
- package/dist/commerce/server/commerceProviderAttemptFailure.js +175 -0
- package/dist/commerce/server/commerceReturnsHandlers.d.ts +41 -0
- package/dist/commerce/server/commerceReturnsHandlers.js +100 -0
- package/dist/commerce/server/commerceRuntimePort.d.ts +16 -0
- package/dist/commerce/server/commerceRuntimePort.js +57 -0
- package/dist/commerce/server/commerceRuntimeService.d.ts +98 -0
- package/dist/commerce/server/commerceRuntimeService.js +186 -0
- package/dist/commerce/server/commerceRuntimeStartResponse.d.ts +37 -0
- package/dist/commerce/server/commerceRuntimeStartResponse.js +56 -0
- package/dist/commerce/server/commerceStarterOfferGuard.d.ts +55 -0
- package/dist/commerce/server/commerceStarterOfferGuard.js +128 -0
- package/dist/commerce/server/configuratorIntentPersistence.d.ts +47 -0
- package/dist/commerce/server/configuratorIntentPersistence.js +85 -0
- package/dist/commerce/server/configuratorIntentPersistenceHandler.d.ts +14 -0
- package/dist/commerce/server/configuratorIntentPersistenceHandler.js +42 -0
- package/dist/commerce/server/emailRuntime.d.ts +47 -0
- package/dist/commerce/server/emailRuntime.js +1 -0
- package/dist/commerce/server/handlerSupport.d.ts +68 -0
- package/dist/commerce/server/handlerSupport.js +1 -0
- package/dist/commerce/server/index.d.ts +178 -0
- package/dist/commerce/server/index.js +127 -0
- package/dist/commerce/server/offerAvailability.d.ts +21 -0
- package/dist/commerce/server/offerAvailability.js +163 -0
- package/dist/commerce/server/orderDraftRpcPayload.d.ts +20 -0
- package/dist/commerce/server/orderDraftRpcPayload.js +21 -0
- package/dist/commerce/server/orderFeedbackSubmit.d.ts +20 -0
- package/dist/commerce/server/orderFeedbackSubmit.js +16 -0
- package/dist/commerce/server/orderFeedbackTokenCheck.d.ts +17 -0
- package/dist/commerce/server/orderFeedbackTokenCheck.js +14 -0
- package/dist/commerce/server/orderReviewAdminHandlers.d.ts +47 -0
- package/dist/commerce/server/orderReviewAdminHandlers.js +41 -0
- package/dist/commerce/server/orderReviewHandlers.d.ts +114 -0
- package/dist/commerce/server/orderReviewHandlers.js +42 -0
- package/dist/commerce/server/orderReviewLifecycle.d.ts +10 -0
- package/dist/commerce/server/orderReviewLifecycle.js +121 -0
- package/dist/commerce/server/orderReviewMedia.d.ts +11 -0
- package/dist/commerce/server/orderReviewMedia.js +172 -0
- package/dist/commerce/server/orderReviewRawUploadHandler.d.ts +40 -0
- package/dist/commerce/server/orderReviewRawUploadHandler.js +316 -0
- package/dist/commerce/server/outboxCheckoutExpiredEmailHandler.d.ts +14 -0
- package/dist/commerce/server/outboxCheckoutExpiredEmailHandler.js +57 -0
- package/dist/commerce/server/outboxCheckoutRecoveryEmailHandler.d.ts +13 -0
- package/dist/commerce/server/outboxCheckoutRecoveryEmailHandler.js +150 -0
- package/dist/commerce/server/outboxDispatchRegistry.d.ts +46 -0
- package/dist/commerce/server/outboxDispatchRegistry.js +184 -0
- package/dist/commerce/server/outboxDispatchRegistryComposition.d.ts +6 -0
- package/dist/commerce/server/outboxDispatchRegistryComposition.js +23 -0
- package/dist/commerce/server/outboxOrderDraftEmailHandler.d.ts +14 -0
- package/dist/commerce/server/outboxOrderDraftEmailHandler.js +130 -0
- package/dist/commerce/server/outboxOrderPaidEmailHandler.d.ts +21 -0
- package/dist/commerce/server/outboxOrderPaidEmailHandler.js +93 -0
- package/dist/commerce/server/outboxOrderPaidFulfillmentHandler.d.ts +3 -0
- package/dist/commerce/server/outboxOrderPaidFulfillmentHandler.js +1 -0
- package/dist/commerce/server/outboxOrderPaidFulfillmentPorts.d.ts +3 -0
- package/dist/commerce/server/outboxOrderPaidFulfillmentPorts.js +1 -0
- package/dist/commerce/server/outboxOrderRefundedEmailHandler.d.ts +13 -0
- package/dist/commerce/server/outboxOrderRefundedEmailHandler.js +42 -0
- package/dist/commerce/server/outboxPaymentFailedEmailHandler.d.ts +14 -0
- package/dist/commerce/server/outboxPaymentFailedEmailHandler.js +65 -0
- package/dist/commerce/server/outboxReturnEmailHandlers.d.ts +26 -0
- package/dist/commerce/server/outboxReturnEmailHandlers.js +53 -0
- package/dist/commerce/server/outboxShipmentDeliveredEmailHandler.d.ts +17 -0
- package/dist/commerce/server/outboxShipmentDeliveredEmailHandler.js +52 -0
- package/dist/commerce/server/outboxShipmentDispatchedEmailHandler.d.ts +13 -0
- package/dist/commerce/server/outboxShipmentDispatchedEmailHandler.js +87 -0
- package/dist/commerce/server/outboxShipmentExceptionEmailHandler.d.ts +13 -0
- package/dist/commerce/server/outboxShipmentExceptionEmailHandler.js +46 -0
- package/dist/commerce/server/referenceCheckoutHandler.d.ts +48 -0
- package/dist/commerce/server/referenceCheckoutHandler.js +68 -0
- package/dist/commerce/server/reservationSweepPort.d.ts +31 -0
- package/dist/commerce/server/reservationSweepPort.js +45 -0
- package/dist/commerce/server/starterTermsPort.d.ts +22 -0
- package/dist/commerce/server/starterTermsPort.js +1 -0
- package/dist/commerce/server/supabaseCommerceReturnsPort.d.ts +13 -0
- package/dist/commerce/server/supabaseCommerceReturnsPort.js +56 -0
- package/dist/communications/consentPurposeRegistry.d.ts +1 -1
- package/dist/communications/newsletterIntegrationContracts.d.ts +5 -5
- package/dist/composition/commerceContribution.d.ts +21 -0
- package/dist/composition/commerceContribution.js +27 -0
- package/dist/composition/index.d.ts +1 -0
- package/dist/composition/index.js +1 -0
- package/dist/fulfillment/handlerSchemas.d.ts +41 -41
- package/dist/fulfillment/index.d.ts +1 -1
- package/dist/fulfillment/index.js +1 -1
- package/dist/fulfillment/paidHandoff.d.ts +12 -1
- package/dist/fulfillment/paidHandoff.js +2 -2
- package/dist/fulfillment/providerDispatchWorker.d.ts +4 -4
- package/dist/identity/customerContracts.d.ts +2 -2
- package/dist/inventory/bindings.d.ts +3 -0
- package/dist/inventory/bindings.js +10 -4
- package/dist/inventory/index.d.ts +1 -0
- package/dist/inventory/index.js +1 -0
- package/dist/inventory/managedStockAvailability.d.ts +15 -0
- package/dist/inventory/managedStockAvailability.js +16 -0
- package/dist/inventory/postgresStockAvailability.js +2 -25
- package/dist/inventory/schemas.d.ts +1 -1
- package/dist/inventory/stockReadResponse.d.ts +4 -0
- package/dist/inventory/stockReadResponse.js +27 -0
- package/dist/pricing/browser/index.d.ts +6 -0
- package/dist/pricing/browser/index.js +6 -0
- package/dist/promotions/adminPromotionsContracts.d.ts +2 -2
- package/dist/subscriptions/index.d.ts +3 -2
- package/dist/subscriptions/index.js +3 -2
- package/package.json +22 -2
- package/release-gates.json +63 -8
- package/src/commerce/adapters/managed/commerceOmsControlPlane.ts +80 -0
- package/src/commerce/adapters/managed/commerceOmsMutations.ts +145 -0
- package/src/commerce/adapters/managed/commerceOmsPort.ts +158 -0
- package/src/commerce/adapters/managed/oms/accounting.ts +18 -0
- package/src/commerce/adapters/managed/oms/fulfillmentReads.ts +82 -0
- package/src/commerce/adapters/managed/oms/inboundEvents.ts +45 -0
- package/src/commerce/adapters/managed/oms/outboxEvents.ts +30 -0
- package/src/commerce/adapters/managed/oms/paymentAttempts.ts +19 -0
- package/src/commerce/adapters/managed/oms/queueSelection.ts +132 -0
- package/src/commerce/adapters/managed/oms/readProjections.ts +22 -0
- package/src/commerce/adapters/managed/oms/readQueries.ts +292 -0
- package/src/commerce/adapters/managed/oms/types.ts +9 -0
- package/src/commerce/checkoutCommandSchemas.ts +93 -0
- package/src/commerce/checkoutHelpers.ts +47 -0
- package/src/commerce/checkoutResumeSchemas.ts +164 -0
- package/src/commerce/checkoutSchemas.ts +182 -0
- package/src/commerce/commerceReturnsPort.ts +67 -0
- package/src/commerce/configuratorIntentPersistenceSchemas.ts +26 -0
- package/src/commerce/configuratorIntentSchemas.ts +47 -0
- package/src/commerce/contractPrimitives.ts +30 -0
- package/src/commerce/contracts/availability.ts +21 -0
- package/src/commerce/contracts/fulfillmentRecovery.ts +26 -0
- package/src/commerce/contracts/index.ts +17 -0
- package/src/commerce/contracts/intent.ts +58 -0
- package/src/commerce/contracts/omsTypes.ts +1217 -0
- package/src/commerce/contracts/order.ts +44 -0
- package/src/commerce/contracts/orderMoney.ts +75 -0
- package/src/commerce/contracts/ports.ts +124 -0
- package/src/commerce/contracts/recovery.ts +24 -0
- package/src/commerce/contracts/runtimePorts.ts +201 -0
- package/src/commerce/contracts/state.ts +64 -0
- package/src/commerce/customerDefaultsSnapshotSchemas.ts +117 -0
- package/src/commerce/errors.ts +53 -0
- package/src/commerce/fulfillmentEligibility.ts +32 -0
- package/src/commerce/index.ts +82 -0
- package/src/commerce/model/customerFulfillmentRecovery.ts +185 -0
- package/src/commerce/model/fulfillmentCancellationEligibility.ts +18 -0
- package/src/commerce/model/omsAccountingVisibility.ts +135 -0
- package/src/commerce/model/omsBillingInvoiceBuyer.ts +20 -0
- package/src/commerce/model/omsCurrency.ts +8 -0
- package/src/commerce/model/omsFulfillmentDebug.ts +157 -0
- package/src/commerce/model/omsFulfillmentSummary.ts +225 -0
- package/src/commerce/model/omsListTotals.ts +38 -0
- package/src/commerce/model/omsOperationalLadder.ts +181 -0
- package/src/commerce/model/omsOrderLineMoney.ts +34 -0
- package/src/commerce/model/omsPaymentMethodSummary.ts +19 -0
- package/src/commerce/model/omsReadModel.ts +302 -0
- package/src/commerce/model/omsReadModelCommunication.ts +32 -0
- package/src/commerce/model/omsReadModelHelpers.ts +279 -0
- package/src/commerce/model/omsReadModelList.ts +90 -0
- package/src/commerce/model/omsReadModelListSummary.ts +19 -0
- package/src/commerce/model/omsReadModelPricing.ts +57 -0
- package/src/commerce/model/omsReadModelProjections.ts +1 -0
- package/src/commerce/model/omsReadModelRowCore.ts +193 -0
- package/src/commerce/model/omsReadModelRows.ts +7 -0
- package/src/commerce/offerAvailability.ts +75 -0
- package/src/commerce/offerAvailabilitySchemas.ts +56 -0
- package/src/commerce/offerEvidenceSchemas.ts +17 -0
- package/src/commerce/oms/omsContractBase.ts +92 -0
- package/src/commerce/oms/omsContractReadAuxSchemas.ts +130 -0
- package/src/commerce/oms/omsContractReadSchemas.ts +303 -0
- package/src/commerce/oms/omsContractRequests.ts +143 -0
- package/src/commerce/oms/omsContracts.ts +6 -0
- package/src/commerce/oms/omsControlPlane.ts +85 -0
- package/src/commerce/oms/omsFulfillmentContractSchemas.ts +113 -0
- package/src/commerce/oms/omsFulfillmentDebugSchemas.ts +38 -0
- package/src/commerce/oms/omsFulfillmentHealthSchemas.ts +46 -0
- package/src/commerce/oms/omsPorts.ts +165 -0
- package/src/commerce/oms/omsPrimitives.ts +3 -0
- package/src/commerce/oms/omsProviderEvidenceSchemas.ts +13 -0
- package/src/commerce/orderDraftErrors.ts +28 -0
- package/src/commerce/orderEmailEligibility.ts +131 -0
- package/src/commerce/orderEmailLines.ts +22 -0
- package/src/commerce/orderFeedbackContracts.ts +47 -0
- package/src/commerce/orderMoney.ts +207 -0
- package/src/commerce/orderReviewContracts.ts +124 -0
- package/src/commerce/orderReviewPorts.ts +94 -0
- package/src/commerce/outboxDispatchContracts.ts +30 -0
- package/src/commerce/outboxEventSchemas.ts +230 -0
- package/src/commerce/outboxOrderDraftEmailPorts.ts +241 -0
- package/src/commerce/paymentContinuation.ts +5 -0
- package/src/commerce/ports.ts +7 -0
- package/src/commerce/recoveryDestination.ts +23 -0
- package/src/commerce/runtimeErrors.ts +19 -0
- package/src/commerce/salesChannelEnvelope.ts +28 -0
- package/src/commerce/schemas.ts +104 -0
- package/src/commerce/server/checkoutCompensation.ts +49 -0
- package/src/commerce/server/checkoutConflictClassifiers.ts +53 -0
- package/src/commerce/server/checkoutExpiredRecoveryPolicy.ts +107 -0
- package/src/commerce/server/checkoutInvoiceBuyerSnapshot.ts +36 -0
- package/src/commerce/server/checkoutOfferPolicyPort.ts +60 -0
- package/src/commerce/server/checkoutPaymentContinuationCredential.ts +222 -0
- package/src/commerce/server/checkoutQuoteTypes.ts +9 -0
- package/src/commerce/server/checkoutRecoveryOrderPort.ts +40 -0
- package/src/commerce/server/checkoutRecoveryToken.ts +63 -0
- package/src/commerce/server/checkoutRefusalContinuation.ts +29 -0
- package/src/commerce/server/checkoutRuntimeTypes.ts +26 -0
- package/src/commerce/server/commerceCheckoutCommandExecution.ts +188 -0
- package/src/commerce/server/commerceCheckoutCompensation.ts +66 -0
- package/src/commerce/server/commerceCheckoutContinuationTerms.ts +87 -0
- package/src/commerce/server/commerceCheckoutCustomerDefaults.ts +24 -0
- package/src/commerce/server/commerceCheckoutFailureHandler.ts +144 -0
- package/src/commerce/server/commerceCheckoutHandler.ts +269 -0
- package/src/commerce/server/commerceCheckoutHandlerAdmission.ts +157 -0
- package/src/commerce/server/commerceCheckoutHandlerHelpers.ts +223 -0
- package/src/commerce/server/commerceCheckoutOrchestrationError.ts +15 -0
- package/src/commerce/server/commerceCheckoutPromotionPriceChange.ts +83 -0
- package/src/commerce/server/commerceCheckoutProviderPayment.ts +45 -0
- package/src/commerce/server/commerceCheckoutQuoteGuard.ts +172 -0
- package/src/commerce/server/commerceCheckoutResume.ts +132 -0
- package/src/commerce/server/commerceCheckoutResumeGuard.ts +195 -0
- package/src/commerce/server/commerceCheckoutSavedPaymentMethod.ts +85 -0
- package/src/commerce/server/commerceCheckoutStartRuntimeFailure.ts +59 -0
- package/src/commerce/server/commerceCheckoutTiming.ts +53 -0
- package/src/commerce/server/commerceDiagnostics.ts +37 -0
- package/src/commerce/server/commerceOmsCancelOrderHandler.ts +43 -0
- package/src/commerce/server/commerceOmsControlPlaneHandlers.ts +71 -0
- package/src/commerce/server/commerceOmsHandlers.ts +275 -0
- package/src/commerce/server/commerceOmsMarkRefundedHandler.ts +39 -0
- package/src/commerce/server/commerceOrderDraft.ts +131 -0
- package/src/commerce/server/commercePaidOrderOrchestration.ts +275 -0
- package/src/commerce/server/commerceProviderAttemptFailure.ts +257 -0
- package/src/commerce/server/commerceReturnsHandlers.ts +143 -0
- package/src/commerce/server/commerceRuntimePort.ts +75 -0
- package/src/commerce/server/commerceRuntimeService.ts +229 -0
- package/src/commerce/server/commerceRuntimeStartResponse.ts +76 -0
- package/src/commerce/server/commerceStarterOfferGuard.ts +200 -0
- package/src/commerce/server/configuratorIntentPersistence.ts +161 -0
- package/src/commerce/server/configuratorIntentPersistenceHandler.ts +54 -0
- package/src/commerce/server/emailRuntime.ts +30 -0
- package/src/commerce/server/handlerSupport.ts +22 -0
- package/src/commerce/server/index.ts +181 -0
- package/src/commerce/server/offerAvailability.ts +275 -0
- package/src/commerce/server/orderDraftRpcPayload.ts +39 -0
- package/src/commerce/server/orderFeedbackSubmit.ts +40 -0
- package/src/commerce/server/orderFeedbackTokenCheck.ts +28 -0
- package/src/commerce/server/orderReviewAdminHandlers.ts +43 -0
- package/src/commerce/server/orderReviewHandlers.ts +57 -0
- package/src/commerce/server/orderReviewLifecycle.ts +129 -0
- package/src/commerce/server/orderReviewMedia.ts +170 -0
- package/src/commerce/server/orderReviewRawUploadHandler.ts +300 -0
- package/src/commerce/server/outboxCheckoutExpiredEmailHandler.ts +86 -0
- package/src/commerce/server/outboxCheckoutRecoveryEmailHandler.ts +188 -0
- package/src/commerce/server/outboxDispatchRegistry.ts +269 -0
- package/src/commerce/server/outboxDispatchRegistryComposition.ts +31 -0
- package/src/commerce/server/outboxOrderDraftEmailHandler.ts +162 -0
- package/src/commerce/server/outboxOrderPaidEmailHandler.ts +147 -0
- package/src/commerce/server/outboxOrderPaidFulfillmentHandler.ts +4 -0
- package/src/commerce/server/outboxOrderPaidFulfillmentPorts.ts +3 -0
- package/src/commerce/server/outboxOrderRefundedEmailHandler.ts +58 -0
- package/src/commerce/server/outboxPaymentFailedEmailHandler.ts +99 -0
- package/src/commerce/server/outboxReturnEmailHandlers.ts +92 -0
- package/src/commerce/server/outboxShipmentDeliveredEmailHandler.ts +94 -0
- package/src/commerce/server/outboxShipmentDispatchedEmailHandler.ts +112 -0
- package/src/commerce/server/outboxShipmentExceptionEmailHandler.ts +73 -0
- package/src/commerce/server/referenceCheckoutHandler.ts +87 -0
- package/src/commerce/server/reservationSweepPort.ts +67 -0
- package/src/commerce/server/starterTermsPort.ts +22 -0
- package/src/commerce/server/supabaseCommerceReturnsPort.ts +81 -0
- package/src/composition/commerceContribution.ts +35 -0
- package/src/composition/index.ts +1 -0
- package/src/fulfillment/index.ts +1 -1
- package/src/fulfillment/paidHandoff.ts +2 -2
- package/src/inventory/bindings.ts +12 -4
- package/src/inventory/index.ts +1 -0
- package/src/inventory/managedStockAvailability.ts +23 -0
- package/src/inventory/postgresStockAvailability.ts +2 -21
- package/src/inventory/stockReadResponse.ts +25 -0
- package/src/pricing/browser/index.ts +6 -0
- package/src/subscriptions/index.ts +3 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { OmsFulfillmentDebug } from "../contracts/omsTypes.js";
|
|
3
|
+
export type { OmsFulfillmentDebug } from "../contracts/omsTypes.js";
|
|
4
|
+
export declare const omsFulfillmentDebugStepSchema: z.ZodObject<{
|
|
5
|
+
key: z.ZodEnum<{
|
|
6
|
+
stock: "stock";
|
|
7
|
+
payment: "payment";
|
|
8
|
+
provider: "provider";
|
|
9
|
+
fulfillment: "fulfillment";
|
|
10
|
+
dispatch: "dispatch";
|
|
11
|
+
provider_stock: "provider_stock";
|
|
12
|
+
tracking: "tracking";
|
|
13
|
+
communication: "communication";
|
|
14
|
+
}>;
|
|
15
|
+
status: z.ZodEnum<{
|
|
16
|
+
ok: "ok";
|
|
17
|
+
missing: "missing";
|
|
18
|
+
pending: "pending";
|
|
19
|
+
blocked: "blocked";
|
|
20
|
+
warning: "warning";
|
|
21
|
+
}>;
|
|
22
|
+
label: z.ZodString;
|
|
23
|
+
value: z.ZodNullable<z.ZodString>;
|
|
24
|
+
evidenceAt: z.ZodNullable<z.ZodString>;
|
|
25
|
+
details: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
26
|
+
}, z.core.$strict>;
|
|
27
|
+
export declare const omsFulfillmentDebugSchema: z.ZodObject<{
|
|
28
|
+
summary: z.ZodString;
|
|
29
|
+
severity: z.ZodEnum<{
|
|
30
|
+
ok: "ok";
|
|
31
|
+
action_required: "action_required";
|
|
32
|
+
watch: "watch";
|
|
33
|
+
}>;
|
|
34
|
+
nextAction: z.ZodEnum<{
|
|
35
|
+
review_payment: "review_payment";
|
|
36
|
+
create_fulfillment: "create_fulfillment";
|
|
37
|
+
wait: "wait";
|
|
38
|
+
retry_dispatch: "retry_dispatch";
|
|
39
|
+
reconcile: "reconcile";
|
|
40
|
+
review_stock: "review_stock";
|
|
41
|
+
review_provider: "review_provider";
|
|
42
|
+
contact_support: "contact_support";
|
|
43
|
+
}>;
|
|
44
|
+
blockers: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
45
|
+
steps: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
46
|
+
key: z.ZodEnum<{
|
|
47
|
+
stock: "stock";
|
|
48
|
+
payment: "payment";
|
|
49
|
+
provider: "provider";
|
|
50
|
+
fulfillment: "fulfillment";
|
|
51
|
+
dispatch: "dispatch";
|
|
52
|
+
provider_stock: "provider_stock";
|
|
53
|
+
tracking: "tracking";
|
|
54
|
+
communication: "communication";
|
|
55
|
+
}>;
|
|
56
|
+
status: z.ZodEnum<{
|
|
57
|
+
ok: "ok";
|
|
58
|
+
missing: "missing";
|
|
59
|
+
pending: "pending";
|
|
60
|
+
blocked: "blocked";
|
|
61
|
+
warning: "warning";
|
|
62
|
+
}>;
|
|
63
|
+
label: z.ZodString;
|
|
64
|
+
value: z.ZodNullable<z.ZodString>;
|
|
65
|
+
evidenceAt: z.ZodNullable<z.ZodString>;
|
|
66
|
+
details: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
67
|
+
}, z.core.$strict>>>;
|
|
68
|
+
}, z.core.$strict>;
|
|
69
|
+
export declare const defaultOmsFulfillmentDebug: OmsFulfillmentDebug;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { datetimeSchema, nullableTextSchema } from "./omsContractBase.js";
|
|
3
|
+
export const omsFulfillmentDebugStepSchema = z.object({
|
|
4
|
+
key: z.enum(["payment", "stock", "provider_stock", "fulfillment", "dispatch", "provider", "tracking", "communication"]),
|
|
5
|
+
status: z.enum(["ok", "pending", "missing", "warning", "blocked"]),
|
|
6
|
+
label: z.string().min(1),
|
|
7
|
+
value: nullableTextSchema,
|
|
8
|
+
evidenceAt: datetimeSchema.nullable(),
|
|
9
|
+
details: z.array(z.string()).default([]),
|
|
10
|
+
}).strict();
|
|
11
|
+
export const omsFulfillmentDebugSchema = z.object({
|
|
12
|
+
summary: z.string().min(1),
|
|
13
|
+
severity: z.enum(["ok", "watch", "action_required"]),
|
|
14
|
+
nextAction: z.enum([
|
|
15
|
+
"wait",
|
|
16
|
+
"create_fulfillment",
|
|
17
|
+
"retry_dispatch",
|
|
18
|
+
"reconcile",
|
|
19
|
+
"review_payment",
|
|
20
|
+
"review_stock",
|
|
21
|
+
"review_provider",
|
|
22
|
+
"contact_support",
|
|
23
|
+
]),
|
|
24
|
+
blockers: z.array(z.string()).default([]),
|
|
25
|
+
steps: z.array(omsFulfillmentDebugStepSchema).default([]),
|
|
26
|
+
}).strict();
|
|
27
|
+
export const defaultOmsFulfillmentDebug = {
|
|
28
|
+
summary: "No fulfillment data.",
|
|
29
|
+
severity: "watch",
|
|
30
|
+
nextAction: "wait",
|
|
31
|
+
blockers: [],
|
|
32
|
+
steps: [],
|
|
33
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const omsFulfillmentHealthSchema: z.ZodObject<{
|
|
3
|
+
healthStatus: z.ZodEnum<{
|
|
4
|
+
ok: "ok";
|
|
5
|
+
needs_attention: "needs_attention";
|
|
6
|
+
blocked_uncertain: "blocked_uncertain";
|
|
7
|
+
local_ahead: "local_ahead";
|
|
8
|
+
provider_ahead: "provider_ahead";
|
|
9
|
+
missing_local_commitment: "missing_local_commitment";
|
|
10
|
+
}>;
|
|
11
|
+
attentionReasons: z.ZodArray<z.ZodEnum<{
|
|
12
|
+
paid_order_missing_fulfillment: "paid_order_missing_fulfillment";
|
|
13
|
+
paid_order_missing_dispatch_ref: "paid_order_missing_dispatch_ref";
|
|
14
|
+
dispatch_submission_stale: "dispatch_submission_stale";
|
|
15
|
+
dispatch_outcome_uncertain: "dispatch_outcome_uncertain";
|
|
16
|
+
dispatch_failed: "dispatch_failed";
|
|
17
|
+
dispatch_created_without_provider_order_id: "dispatch_created_without_provider_order_id";
|
|
18
|
+
dispatch_terminal_without_progress: "dispatch_terminal_without_progress";
|
|
19
|
+
dispatch_status_unknown: "dispatch_status_unknown";
|
|
20
|
+
provider_exception_after_delivery: "provider_exception_after_delivery";
|
|
21
|
+
provider_exception_after_handover: "provider_exception_after_handover";
|
|
22
|
+
provider_exception_before_handover: "provider_exception_before_handover";
|
|
23
|
+
local_status_ahead_of_provider: "local_status_ahead_of_provider";
|
|
24
|
+
provider_accepted_local_label_ack_missing: "provider_accepted_local_label_ack_missing";
|
|
25
|
+
order_paid_outbox_discarded: "order_paid_outbox_discarded";
|
|
26
|
+
order_paid_outbox_processed_without_fulfillment: "order_paid_outbox_processed_without_fulfillment";
|
|
27
|
+
order_paid_outbox_missing: "order_paid_outbox_missing";
|
|
28
|
+
}>>;
|
|
29
|
+
oldestAgeSeconds: z.ZodNullable<z.ZodNumber>;
|
|
30
|
+
dispatchRefId: z.ZodOptional<z.ZodNullable<z.ZodGUID>>;
|
|
31
|
+
dispatchStatus: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
|
+
opaqueIds: z.ZodObject<{
|
|
33
|
+
orderId: z.ZodGUID;
|
|
34
|
+
fulfillmentOrderId: z.ZodNullable<z.ZodGUID>;
|
|
35
|
+
outboxEventId: z.ZodNullable<z.ZodGUID>;
|
|
36
|
+
dispatchRefFulfillmentOrderId: z.ZodNullable<z.ZodGUID>;
|
|
37
|
+
latestEvidenceFulfillmentOrderId: z.ZodNullable<z.ZodGUID>;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
export declare const omsFulfillmentHealthDigestSchema: z.ZodObject<{
|
|
41
|
+
healthStatus: z.ZodEnum<{
|
|
42
|
+
ok: "ok";
|
|
43
|
+
needs_attention: "needs_attention";
|
|
44
|
+
blocked_uncertain: "blocked_uncertain";
|
|
45
|
+
local_ahead: "local_ahead";
|
|
46
|
+
provider_ahead: "provider_ahead";
|
|
47
|
+
missing_local_commitment: "missing_local_commitment";
|
|
48
|
+
}>;
|
|
49
|
+
attentionReasons: z.ZodArray<z.ZodEnum<{
|
|
50
|
+
paid_order_missing_fulfillment: "paid_order_missing_fulfillment";
|
|
51
|
+
paid_order_missing_dispatch_ref: "paid_order_missing_dispatch_ref";
|
|
52
|
+
dispatch_submission_stale: "dispatch_submission_stale";
|
|
53
|
+
dispatch_outcome_uncertain: "dispatch_outcome_uncertain";
|
|
54
|
+
dispatch_failed: "dispatch_failed";
|
|
55
|
+
dispatch_created_without_provider_order_id: "dispatch_created_without_provider_order_id";
|
|
56
|
+
dispatch_terminal_without_progress: "dispatch_terminal_without_progress";
|
|
57
|
+
dispatch_status_unknown: "dispatch_status_unknown";
|
|
58
|
+
provider_exception_after_delivery: "provider_exception_after_delivery";
|
|
59
|
+
provider_exception_after_handover: "provider_exception_after_handover";
|
|
60
|
+
provider_exception_before_handover: "provider_exception_before_handover";
|
|
61
|
+
local_status_ahead_of_provider: "local_status_ahead_of_provider";
|
|
62
|
+
provider_accepted_local_label_ack_missing: "provider_accepted_local_label_ack_missing";
|
|
63
|
+
order_paid_outbox_discarded: "order_paid_outbox_discarded";
|
|
64
|
+
order_paid_outbox_processed_without_fulfillment: "order_paid_outbox_processed_without_fulfillment";
|
|
65
|
+
order_paid_outbox_missing: "order_paid_outbox_missing";
|
|
66
|
+
}>>;
|
|
67
|
+
}, z.core.$strict>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { uuidSchema } from "./omsContractBase.js";
|
|
3
|
+
export const omsFulfillmentHealthSchema = z.object({
|
|
4
|
+
healthStatus: z.enum(["ok", "needs_attention", "blocked_uncertain", "local_ahead", "provider_ahead", "missing_local_commitment"]),
|
|
5
|
+
attentionReasons: z.array(z.enum([
|
|
6
|
+
"paid_order_missing_fulfillment",
|
|
7
|
+
"paid_order_missing_dispatch_ref",
|
|
8
|
+
"dispatch_submission_stale",
|
|
9
|
+
"dispatch_outcome_uncertain",
|
|
10
|
+
"dispatch_failed",
|
|
11
|
+
"dispatch_created_without_provider_order_id",
|
|
12
|
+
"dispatch_terminal_without_progress",
|
|
13
|
+
"dispatch_status_unknown",
|
|
14
|
+
"provider_exception_after_delivery",
|
|
15
|
+
"provider_exception_after_handover",
|
|
16
|
+
"provider_exception_before_handover",
|
|
17
|
+
"local_status_ahead_of_provider",
|
|
18
|
+
"provider_accepted_local_label_ack_missing",
|
|
19
|
+
"order_paid_outbox_discarded",
|
|
20
|
+
"order_paid_outbox_processed_without_fulfillment",
|
|
21
|
+
"order_paid_outbox_missing",
|
|
22
|
+
])),
|
|
23
|
+
oldestAgeSeconds: z.number().int().nonnegative().nullable(),
|
|
24
|
+
dispatchRefId: uuidSchema.nullable().optional(),
|
|
25
|
+
dispatchStatus: z.string().nullable().optional(),
|
|
26
|
+
opaqueIds: z.object({
|
|
27
|
+
orderId: uuidSchema,
|
|
28
|
+
fulfillmentOrderId: uuidSchema.nullable(),
|
|
29
|
+
outboxEventId: uuidSchema.nullable(),
|
|
30
|
+
dispatchRefFulfillmentOrderId: uuidSchema.nullable(),
|
|
31
|
+
latestEvidenceFulfillmentOrderId: uuidSchema.nullable(),
|
|
32
|
+
}).strict(),
|
|
33
|
+
}).strict();
|
|
34
|
+
// The list-row projection of the health snapshot above: the two fields an
|
|
35
|
+
// operator can act on, picked from the same schema so the vocabulary cannot
|
|
36
|
+
// fork. The list path builds it from the provider evidence it already fetches
|
|
37
|
+
// per page and never reads `outbox_events`, so a digest can never carry the
|
|
38
|
+
// three `order_paid_outbox_*` reasons - the builder is told the outbox is
|
|
39
|
+
// unread and answers `paid_order_missing_fulfillment` instead of naming an
|
|
40
|
+
// outbox row it did not look at. The enum stays whole rather than being
|
|
41
|
+
// narrowed here: the omission is a property of the input, not of the contract.
|
|
42
|
+
export const omsFulfillmentHealthDigestSchema = omsFulfillmentHealthSchema
|
|
43
|
+
.pick({ healthStatus: true, attentionReasons: true })
|
|
44
|
+
.strict();
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { OmsReplacementRefusal } from "../contracts/omsTypes.js";
|
|
2
|
+
import { type OmsCurrencyPolicy } from "../model/omsCurrency.js";
|
|
3
|
+
export type { CommerceOmsHoldPort, CommerceOmsReadPort, OmsReplacementRefusal } from "../contracts/omsTypes.js";
|
|
4
|
+
/**
|
|
5
|
+
* Every refusal `commerce_oms_request_replacement_shipment` can reach an operator with,
|
|
6
|
+
* as one closed vocabulary shared by the adapter that classifies it and the admin surface
|
|
7
|
+
* that renders a sentence for it. Two lists would drift, and the failure mode of drift is
|
|
8
|
+
* the operator reading advice about a hold when the warehouse is simply out of stock.
|
|
9
|
+
*
|
|
10
|
+
* The first group is the command's own `commerce_oms_replacement_*` names. The second is
|
|
11
|
+
* the reservation vocabulary raised THROUGH it: the command mints a fresh generation via
|
|
12
|
+
* `inventory_reserve_order`, and on a stock authority outside this system that call is the
|
|
13
|
+
* most likely legitimate refusal there is. Those errors never carried the command's prefix,
|
|
14
|
+
* so before this list they matched nothing, degraded to an upstream failure, and the
|
|
15
|
+
* operator was told to check holds that were not there.
|
|
16
|
+
*
|
|
17
|
+
* It stays an allowlist, not a translation table: a reason absent from it degrades to
|
|
18
|
+
* `unspecified_refusal`, so no database text can travel to a response, a log or a screen.
|
|
19
|
+
*
|
|
20
|
+
* ⛔ The exported names deliberately omit the `CommerceOms` prefix every other symbol in
|
|
21
|
+
* this file carries. `src/lib/commerceOmsBoundary.test.ts` forbids that token in production
|
|
22
|
+
* UI files outside a small allowlist, and the admin surface imports these three symbols.
|
|
23
|
+
* Renaming them is the honest way to keep that boundary guard intact; widening its allowlist
|
|
24
|
+
* to admit one more file would weaken the control instead of respecting it.
|
|
25
|
+
*/
|
|
26
|
+
export declare const OMS_REPLACEMENT_COMMAND_REFUSALS: readonly ["invalid_input", "idempotency_conflict", "order_not_found", "order_not_replaceable", "missing_client", "missing_shipping_address", "shipping_address_not_found", "payment_not_succeeded", "subscription_cycle_not_paid", "no_parcel_to_replace", "undispatched_replacement_exists", "missing_order_items", "missing_catalog_sku", "missing_inventory_reservation", "blocked_by_payment_not_succeeded_hold", "blocked_by_inventory_review_hold", "blocked_by_risk_review_hold", "blocked_by_address_review_hold", "blocked_by_manual_support_hold"];
|
|
27
|
+
export declare const OMS_REPLACEMENT_RESERVATION_REFUSALS: readonly ["inventory_external_provider_insufficient_available_stock", "inventory_external_provider_stock_stale", "inventory_external_provider_stock_missing", "inventory_external_provider_sku_not_found", "inventory_external_provider_location_missing", "inventory_reservation_insufficient_available_stock", "inventory_reservation_allocation_incomplete", "inventory_reservation_payment_status_not_reservable", "inventory_reservation_invalid_quantity"];
|
|
28
|
+
export declare const UNSPECIFIED_REPLACEMENT_REFUSAL = "unspecified_refusal";
|
|
29
|
+
export declare const OMS_REPLACEMENT_REFUSALS: readonly ["invalid_input", "idempotency_conflict", "order_not_found", "order_not_replaceable", "missing_client", "missing_shipping_address", "shipping_address_not_found", "payment_not_succeeded", "subscription_cycle_not_paid", "no_parcel_to_replace", "undispatched_replacement_exists", "missing_order_items", "missing_catalog_sku", "missing_inventory_reservation", "blocked_by_payment_not_succeeded_hold", "blocked_by_inventory_review_hold", "blocked_by_risk_review_hold", "blocked_by_address_review_hold", "blocked_by_manual_support_hold", "inventory_external_provider_insufficient_available_stock", "inventory_external_provider_stock_stale", "inventory_external_provider_stock_missing", "inventory_external_provider_sku_not_found", "inventory_external_provider_location_missing", "inventory_reservation_insufficient_available_stock", "inventory_reservation_allocation_incomplete", "inventory_reservation_payment_status_not_reservable", "inventory_reservation_invalid_quantity", "unspecified_refusal"];
|
|
30
|
+
/**
|
|
31
|
+
* Reads the refusal a replacement error carries, from any of the shapes a BFF error can
|
|
32
|
+
* legitimately arrive in. Returns null when the text names no refusal this vocabulary
|
|
33
|
+
* knows, which is the honest answer: the operator gets the generic sentence plus the raw
|
|
34
|
+
* detail to hand to the team, never a guess dressed as advice.
|
|
35
|
+
*/
|
|
36
|
+
export declare function readOmsReplacementRefusal(text: string): OmsReplacementRefusal | null;
|
|
37
|
+
export declare class CommerceOmsInvalidResponseError extends Error {
|
|
38
|
+
constructor();
|
|
39
|
+
}
|
|
40
|
+
export declare class CommerceOmsPersistenceError extends Error {
|
|
41
|
+
readonly details: Record<string, unknown>;
|
|
42
|
+
constructor(message?: string, details?: Record<string, unknown>);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* An order row came back from the database in a currency this deployment does
|
|
46
|
+
* not accept. The channel ingest rail is deliberately multi-currency, so such a
|
|
47
|
+
* row can genuinely exist; what it cannot do is reach the read model, whose
|
|
48
|
+
* money nodes are pinned to the platform's accepted set.
|
|
49
|
+
*
|
|
50
|
+
* A subclass rather than a new error family, so it inherits the persistence
|
|
51
|
+
* error's HTTP mapping untouched: this is still an upstream read that could not
|
|
52
|
+
* be served, and the operator-facing status must not move. The gain is entirely
|
|
53
|
+
* diagnostic - the failure now names the orders and the codes instead of
|
|
54
|
+
* surfacing as an anonymous validation error fifteen frames later.
|
|
55
|
+
*/
|
|
56
|
+
export declare class CommerceOmsUnsupportedCurrencyError extends CommerceOmsPersistenceError {
|
|
57
|
+
readonly orderIds: readonly string[];
|
|
58
|
+
readonly currencies: readonly string[];
|
|
59
|
+
constructor(offenders: ReadonlyArray<{
|
|
60
|
+
orderId: string;
|
|
61
|
+
currency: string;
|
|
62
|
+
}>);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Guards the one field of an order row that can break the OMS read.
|
|
66
|
+
*
|
|
67
|
+
* This is deliberately not a schema for the whole row. Of that row's ~22
|
|
68
|
+
* columns exactly one - `currency` - is both able to fail the read model and
|
|
69
|
+
* something the platform holds an opinion about; the rest would cost a new
|
|
70
|
+
* contract surface parsed once per row per page, and would only be coherent if
|
|
71
|
+
* the other cast row kinds on this path were validated too.
|
|
72
|
+
*
|
|
73
|
+
* It also deliberately refuses rather than filtering. Dropping the offending
|
|
74
|
+
* row would keep the page rendering while hiding a real customer order from the
|
|
75
|
+
* operator handling it - a worse failure than a named refusal.
|
|
76
|
+
*/
|
|
77
|
+
export declare function assertOmsOrderRowCurrency(rows: ReadonlyArray<{
|
|
78
|
+
id: string;
|
|
79
|
+
currency: string;
|
|
80
|
+
}>, currency?: OmsCurrencyPolicy): void;
|
|
81
|
+
export declare class CommerceOmsConflictError extends Error {
|
|
82
|
+
readonly details: Record<string, unknown>;
|
|
83
|
+
constructor(message?: string, details?: Record<string, unknown>);
|
|
84
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { neutralOmsCurrencyPolicy } from "../model/omsCurrency.js";
|
|
2
|
+
/**
|
|
3
|
+
* Every refusal `commerce_oms_request_replacement_shipment` can reach an operator with,
|
|
4
|
+
* as one closed vocabulary shared by the adapter that classifies it and the admin surface
|
|
5
|
+
* that renders a sentence for it. Two lists would drift, and the failure mode of drift is
|
|
6
|
+
* the operator reading advice about a hold when the warehouse is simply out of stock.
|
|
7
|
+
*
|
|
8
|
+
* The first group is the command's own `commerce_oms_replacement_*` names. The second is
|
|
9
|
+
* the reservation vocabulary raised THROUGH it: the command mints a fresh generation via
|
|
10
|
+
* `inventory_reserve_order`, and on a stock authority outside this system that call is the
|
|
11
|
+
* most likely legitimate refusal there is. Those errors never carried the command's prefix,
|
|
12
|
+
* so before this list they matched nothing, degraded to an upstream failure, and the
|
|
13
|
+
* operator was told to check holds that were not there.
|
|
14
|
+
*
|
|
15
|
+
* It stays an allowlist, not a translation table: a reason absent from it degrades to
|
|
16
|
+
* `unspecified_refusal`, so no database text can travel to a response, a log or a screen.
|
|
17
|
+
*
|
|
18
|
+
* ⛔ The exported names deliberately omit the `CommerceOms` prefix every other symbol in
|
|
19
|
+
* this file carries. `src/lib/commerceOmsBoundary.test.ts` forbids that token in production
|
|
20
|
+
* UI files outside a small allowlist, and the admin surface imports these three symbols.
|
|
21
|
+
* Renaming them is the honest way to keep that boundary guard intact; widening its allowlist
|
|
22
|
+
* to admit one more file would weaken the control instead of respecting it.
|
|
23
|
+
*/
|
|
24
|
+
export const OMS_REPLACEMENT_COMMAND_REFUSALS = [
|
|
25
|
+
"invalid_input",
|
|
26
|
+
"idempotency_conflict",
|
|
27
|
+
"order_not_found",
|
|
28
|
+
"order_not_replaceable",
|
|
29
|
+
"missing_client",
|
|
30
|
+
"missing_shipping_address",
|
|
31
|
+
"shipping_address_not_found",
|
|
32
|
+
"payment_not_succeeded",
|
|
33
|
+
"subscription_cycle_not_paid",
|
|
34
|
+
"no_parcel_to_replace",
|
|
35
|
+
"undispatched_replacement_exists",
|
|
36
|
+
"missing_order_items",
|
|
37
|
+
"missing_catalog_sku",
|
|
38
|
+
"missing_inventory_reservation",
|
|
39
|
+
"blocked_by_payment_not_succeeded_hold",
|
|
40
|
+
"blocked_by_inventory_review_hold",
|
|
41
|
+
"blocked_by_risk_review_hold",
|
|
42
|
+
"blocked_by_address_review_hold",
|
|
43
|
+
"blocked_by_manual_support_hold",
|
|
44
|
+
];
|
|
45
|
+
export const OMS_REPLACEMENT_RESERVATION_REFUSALS = [
|
|
46
|
+
"inventory_external_provider_insufficient_available_stock",
|
|
47
|
+
"inventory_external_provider_stock_stale",
|
|
48
|
+
"inventory_external_provider_stock_missing",
|
|
49
|
+
"inventory_external_provider_sku_not_found",
|
|
50
|
+
"inventory_external_provider_location_missing",
|
|
51
|
+
"inventory_reservation_insufficient_available_stock",
|
|
52
|
+
"inventory_reservation_allocation_incomplete",
|
|
53
|
+
"inventory_reservation_payment_status_not_reservable",
|
|
54
|
+
"inventory_reservation_invalid_quantity",
|
|
55
|
+
];
|
|
56
|
+
export const UNSPECIFIED_REPLACEMENT_REFUSAL = "unspecified_refusal";
|
|
57
|
+
export const OMS_REPLACEMENT_REFUSALS = [
|
|
58
|
+
...OMS_REPLACEMENT_COMMAND_REFUSALS,
|
|
59
|
+
...OMS_REPLACEMENT_RESERVATION_REFUSALS,
|
|
60
|
+
UNSPECIFIED_REPLACEMENT_REFUSAL,
|
|
61
|
+
];
|
|
62
|
+
/**
|
|
63
|
+
* Reads the refusal a replacement error carries, from any of the shapes a BFF error can
|
|
64
|
+
* legitimately arrive in. Returns null when the text names no refusal this vocabulary
|
|
65
|
+
* knows, which is the honest answer: the operator gets the generic sentence plus the raw
|
|
66
|
+
* detail to hand to the team, never a guess dressed as advice.
|
|
67
|
+
*/
|
|
68
|
+
export function readOmsReplacementRefusal(text) {
|
|
69
|
+
const named = /commerce_oms_replacement_([a-z0-9_]+)/.exec(text)?.[1];
|
|
70
|
+
if (named) {
|
|
71
|
+
return OMS_REPLACEMENT_COMMAND_REFUSALS.includes(named)
|
|
72
|
+
? named
|
|
73
|
+
: UNSPECIFIED_REPLACEMENT_REFUSAL;
|
|
74
|
+
}
|
|
75
|
+
// Exact membership only. A transport or permission failure that merely quotes a table
|
|
76
|
+
// name such as `inventory_reservations` must stay an upstream failure, not become a
|
|
77
|
+
// refusal the operator is asked to act on.
|
|
78
|
+
return OMS_REPLACEMENT_RESERVATION_REFUSALS.find((reason) => text.includes(reason)) ?? null;
|
|
79
|
+
}
|
|
80
|
+
export class CommerceOmsInvalidResponseError extends Error {
|
|
81
|
+
constructor() {
|
|
82
|
+
super("Commerce OMS returned invalid response");
|
|
83
|
+
this.name = "CommerceOmsInvalidResponseError";
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export class CommerceOmsPersistenceError extends Error {
|
|
87
|
+
details;
|
|
88
|
+
constructor(message = "Commerce OMS persistence failed", details = {}) {
|
|
89
|
+
super(message);
|
|
90
|
+
this.name = "CommerceOmsPersistenceError";
|
|
91
|
+
this.details = details;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* An order row came back from the database in a currency this deployment does
|
|
96
|
+
* not accept. The channel ingest rail is deliberately multi-currency, so such a
|
|
97
|
+
* row can genuinely exist; what it cannot do is reach the read model, whose
|
|
98
|
+
* money nodes are pinned to the platform's accepted set.
|
|
99
|
+
*
|
|
100
|
+
* A subclass rather than a new error family, so it inherits the persistence
|
|
101
|
+
* error's HTTP mapping untouched: this is still an upstream read that could not
|
|
102
|
+
* be served, and the operator-facing status must not move. The gain is entirely
|
|
103
|
+
* diagnostic - the failure now names the orders and the codes instead of
|
|
104
|
+
* surfacing as an anonymous validation error fifteen frames later.
|
|
105
|
+
*/
|
|
106
|
+
export class CommerceOmsUnsupportedCurrencyError extends CommerceOmsPersistenceError {
|
|
107
|
+
orderIds;
|
|
108
|
+
currencies;
|
|
109
|
+
constructor(offenders) {
|
|
110
|
+
const orderIds = offenders.map((offender) => offender.orderId);
|
|
111
|
+
const currencies = [...new Set(offenders.map((offender) => offender.currency))];
|
|
112
|
+
const described = offenders
|
|
113
|
+
.map((offender) => `order ${offender.orderId} has currency ${offender.currency}`)
|
|
114
|
+
.join(", ");
|
|
115
|
+
super(`${described}, not accepted by this deployment`, { orderIds, currencies });
|
|
116
|
+
this.name = "CommerceOmsUnsupportedCurrencyError";
|
|
117
|
+
this.orderIds = orderIds;
|
|
118
|
+
this.currencies = currencies;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Guards the one field of an order row that can break the OMS read.
|
|
123
|
+
*
|
|
124
|
+
* This is deliberately not a schema for the whole row. Of that row's ~22
|
|
125
|
+
* columns exactly one - `currency` - is both able to fail the read model and
|
|
126
|
+
* something the platform holds an opinion about; the rest would cost a new
|
|
127
|
+
* contract surface parsed once per row per page, and would only be coherent if
|
|
128
|
+
* the other cast row kinds on this path were validated too.
|
|
129
|
+
*
|
|
130
|
+
* It also deliberately refuses rather than filtering. Dropping the offending
|
|
131
|
+
* row would keep the page rendering while hiding a real customer order from the
|
|
132
|
+
* operator handling it - a worse failure than a named refusal.
|
|
133
|
+
*/
|
|
134
|
+
export function assertOmsOrderRowCurrency(rows, currency = neutralOmsCurrencyPolicy) {
|
|
135
|
+
const offenders = rows
|
|
136
|
+
.filter((row) => !currency.accepts(row.currency))
|
|
137
|
+
.map((row) => ({ orderId: row.id, currency: row.currency }));
|
|
138
|
+
if (offenders.length)
|
|
139
|
+
throw new CommerceOmsUnsupportedCurrencyError(offenders);
|
|
140
|
+
}
|
|
141
|
+
export class CommerceOmsConflictError extends Error {
|
|
142
|
+
details;
|
|
143
|
+
constructor(message = "Commerce OMS conflict", details = {}) {
|
|
144
|
+
super(message);
|
|
145
|
+
this.name = "CommerceOmsConflictError";
|
|
146
|
+
this.details = details;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const omsProviderEvidenceSchema: z.ZodObject<{
|
|
3
|
+
evidenceType: z.ZodEnum<{
|
|
4
|
+
dispatch_ref: "dispatch_ref";
|
|
5
|
+
provider_attempt: "provider_attempt";
|
|
6
|
+
status_evidence: "status_evidence";
|
|
7
|
+
}>;
|
|
8
|
+
status: z.ZodNullable<z.ZodString>;
|
|
9
|
+
providerStatus: z.ZodNullable<z.ZodString>;
|
|
10
|
+
providerOrderId: z.ZodNullable<z.ZodString>;
|
|
11
|
+
evidenceKind: z.ZodNullable<z.ZodString>;
|
|
12
|
+
occurredAt: z.ZodNullable<z.ZodString>;
|
|
13
|
+
updatedAt: z.ZodNullable<z.ZodString>;
|
|
14
|
+
summary: z.ZodNullable<z.ZodString>;
|
|
15
|
+
}, z.core.$strict>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { datetimeSchema, nullableTextSchema } from "./omsContractBase.js";
|
|
3
|
+
export const omsProviderEvidenceSchema = z.object({
|
|
4
|
+
evidenceType: z.enum(["dispatch_ref", "provider_attempt", "status_evidence"]),
|
|
5
|
+
status: nullableTextSchema,
|
|
6
|
+
providerStatus: nullableTextSchema,
|
|
7
|
+
providerOrderId: nullableTextSchema,
|
|
8
|
+
evidenceKind: nullableTextSchema,
|
|
9
|
+
occurredAt: datetimeSchema.nullable(),
|
|
10
|
+
updatedAt: datetimeSchema.nullable(),
|
|
11
|
+
summary: nullableTextSchema,
|
|
12
|
+
}).strict();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The quote was valid when read, but the atomic order write could no longer
|
|
3
|
+
* claim its promotion. Callers must re-quote and surface `price_changed`.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CommerceOrderDraftPriceChangedError extends Error {
|
|
6
|
+
readonly details: Record<string, unknown>;
|
|
7
|
+
constructor(message?: string, details?: Record<string, unknown>);
|
|
8
|
+
}
|
|
9
|
+
export type CommerceOrderDraftUnsupportedMoneyReason = "line_promotion_unsupported" | "net_shipping_unsupported" | "zero_payable_unsupported";
|
|
10
|
+
export declare class CommerceOrderDraftUnsupportedMoneyError extends Error {
|
|
11
|
+
readonly reason: CommerceOrderDraftUnsupportedMoneyReason;
|
|
12
|
+
constructor(reason: CommerceOrderDraftUnsupportedMoneyReason);
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The quote was valid when read, but the atomic order write could no longer
|
|
3
|
+
* claim its promotion. Callers must re-quote and surface `price_changed`.
|
|
4
|
+
*/
|
|
5
|
+
export class CommerceOrderDraftPriceChangedError extends Error {
|
|
6
|
+
details;
|
|
7
|
+
constructor(message = "Commerce order draft promotion changed", details = {}) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "CommerceOrderDraftPriceChangedError";
|
|
10
|
+
this.details = details;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class CommerceOrderDraftUnsupportedMoneyError extends Error {
|
|
14
|
+
reason;
|
|
15
|
+
constructor(reason) {
|
|
16
|
+
super(`Commerce order draft money shape is unsupported: ${reason}`);
|
|
17
|
+
this.reason = reason;
|
|
18
|
+
this.name = "CommerceOrderDraftUnsupportedMoneyError";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { OrderPaymentLifecycleState } from "./outboxOrderDraftEmailPorts.js";
|
|
2
|
+
/**
|
|
3
|
+
* Skip reason meaning "the payer is inside a live payment session right now".
|
|
4
|
+
* Exported because it is the one skip reason a caller must treat as TRANSIENT;
|
|
5
|
+
* every other reason in this module is a settled fact about the order.
|
|
6
|
+
*/
|
|
7
|
+
export declare const PAYMENT_SESSION_ACTIVE = "payment_session_active";
|
|
8
|
+
export declare function shouldSkipOrderDraftConfirmation(state: OrderPaymentLifecycleState | null): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Eligibility for the checkout-recovery NUDGE only.
|
|
11
|
+
*
|
|
12
|
+
* `payment_session_active` below is a politeness rule: do not remind someone to
|
|
13
|
+
* pay while they are paying. It is correct here and wrong for a decline notice
|
|
14
|
+
* — see {@link shouldSkipPaymentFailedNotice}. A caller acting on this reason
|
|
15
|
+
* must defer rather than drop, because the nudge's emit key is once-per-order.
|
|
16
|
+
*/
|
|
17
|
+
export declare function shouldSkipCheckoutRecovery(state: OrderPaymentLifecycleState | null): string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Eligibility for an OPERATOR-ISSUED recovery link.
|
|
20
|
+
*
|
|
21
|
+
* Deliberately not {@link shouldSkipCheckoutRecovery}. That gate is written for
|
|
22
|
+
* the cron nudge, and its first rule — leave `pending_payment` and we go quiet —
|
|
23
|
+
* is exactly wrong here. A human looked at the order and decided to send this
|
|
24
|
+
* link, and the orders they send it for are largely the ones that have ALREADY
|
|
25
|
+
* left `pending_payment`: `expired` is the ordinary case, and the redeem rail
|
|
26
|
+
* recreates such an order from its frozen quote when the customer opens the link.
|
|
27
|
+
* Reusing the cron gate would skip those as `order_not_pending_payment`, the
|
|
28
|
+
* operator would have promised an email that never arrives, and nothing anywhere
|
|
29
|
+
* would report a failure. The mint side has already run the full recovery
|
|
30
|
+
* eligibility for this order, so what is left here is only what can have changed
|
|
31
|
+
* between the mint and the send.
|
|
32
|
+
*
|
|
33
|
+
* What still suppresses: the order is gone, or the money is in. Both make the
|
|
34
|
+
* email actively wrong rather than merely late.
|
|
35
|
+
*
|
|
36
|
+
* `payment_session_active` behaves exactly as it does for the nudge, and for the
|
|
37
|
+
* same reason: do not tell someone to finish paying while they are paying. The
|
|
38
|
+
* caller must DEFER on it rather than drop, because a dropped operator link is
|
|
39
|
+
* the silent no-send this whole path is written to prevent.
|
|
40
|
+
*/
|
|
41
|
+
export declare function shouldSkipOperatorCheckoutRecovery(state: OrderPaymentLifecycleState | null): string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Eligibility for a recoverable payment-decline notice.
|
|
44
|
+
*
|
|
45
|
+
* Unlike a checkout reminder, a decline notice must not be suppressed by a live
|
|
46
|
+
* retry. Its producer key is once per order, so a later failed attempt cannot
|
|
47
|
+
* replace a notice that was consumed without sending.
|
|
48
|
+
*
|
|
49
|
+
* Suppress only when the order is unavailable, already paid, or no longer
|
|
50
|
+
* pending payment. The producer's claim delay lets successful retries settle
|
|
51
|
+
* before this lifecycle read; scheduling remains the producer/runtime's duty.
|
|
52
|
+
*/
|
|
53
|
+
export declare function shouldSkipPaymentFailedNotice(state: OrderPaymentLifecycleState | null): string | null;
|
|
54
|
+
export declare function shouldSkipCheckoutExpired(state: OrderPaymentLifecycleState | null): string | null;
|