@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,133 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { FinalizedCheckoutOrder } from "../contracts/index.js";
|
|
3
|
+
type ProviderAttemptDispatchState = "not_dispatched" | "refused" | "unknown";
|
|
4
|
+
export interface CheckoutAttemptFailureFacts extends Error {
|
|
5
|
+
paymentAttemptId: string | null;
|
|
6
|
+
phase: string;
|
|
7
|
+
dispatchState: ProviderAttemptDispatchState;
|
|
8
|
+
}
|
|
9
|
+
export interface CheckoutPreDispatchFailure extends CheckoutAttemptFailureFacts {
|
|
10
|
+
code: string;
|
|
11
|
+
retryCount: number;
|
|
12
|
+
}
|
|
13
|
+
export interface CheckoutInFlightFailure extends CheckoutAttemptFailureFacts {
|
|
14
|
+
code: string;
|
|
15
|
+
}
|
|
16
|
+
export interface CheckoutUncertainFailure<Diagnostic> extends CheckoutAttemptFailureFacts {
|
|
17
|
+
errorCode: string;
|
|
18
|
+
failureDiagnostic: Diagnostic | null;
|
|
19
|
+
}
|
|
20
|
+
interface ReopenPaymentPort<Evidence> {
|
|
21
|
+
reopenInteractivePreparedAttempt?(input: {
|
|
22
|
+
idempotencyKey: string;
|
|
23
|
+
paymentIntentId: string;
|
|
24
|
+
paymentAttemptId: string;
|
|
25
|
+
expectedOrderId: string;
|
|
26
|
+
expectedSubscriptionId: string | null;
|
|
27
|
+
expectedSubscriptionCycleId: string | null;
|
|
28
|
+
evidence: Evidence;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
paymentAttemptId: string;
|
|
31
|
+
paymentIntentId: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
export declare function createCheckoutProviderAttemptFailure<Order extends FinalizedCheckoutOrder<string>, Reservation, Response, Diagnostic, PreDispatch extends CheckoutPreDispatchFailure, InFlight extends CheckoutInFlightFailure, Uncertain extends CheckoutUncertainFailure<Diagnostic>, Evidence>(bindings: {
|
|
35
|
+
trustedPreDispatchEvidence(error: PreDispatch): Evidence | null;
|
|
36
|
+
isPreDispatch(error: unknown): error is PreDispatch;
|
|
37
|
+
isInFlight(error: unknown): error is InFlight;
|
|
38
|
+
isUncertain(error: unknown): error is Uncertain;
|
|
39
|
+
providerAttemptFailureLogFields(error: {
|
|
40
|
+
paymentAttemptId: string | null;
|
|
41
|
+
phase: string;
|
|
42
|
+
code: string;
|
|
43
|
+
dispatchState: ProviderAttemptDispatchState;
|
|
44
|
+
retryCount: number;
|
|
45
|
+
failureDiagnostic: Diagnostic | null;
|
|
46
|
+
}): unknown;
|
|
47
|
+
responseSchema: z.ZodType<Response>;
|
|
48
|
+
runtimeResponseExtension(order: Order): object;
|
|
49
|
+
contractVersion: string;
|
|
50
|
+
}): {
|
|
51
|
+
CheckoutProviderAttemptFailure: {
|
|
52
|
+
new (error: PreDispatch | InFlight | Uncertain): {
|
|
53
|
+
readonly paymentAttemptId: string | null;
|
|
54
|
+
readonly phase: string;
|
|
55
|
+
readonly code: string;
|
|
56
|
+
readonly dispatchState: ProviderAttemptDispatchState;
|
|
57
|
+
readonly retryCount: number;
|
|
58
|
+
readonly failureDiagnostic: Diagnostic | null;
|
|
59
|
+
readonly orderIdForCompensation: string | null;
|
|
60
|
+
readonly reason: string | null;
|
|
61
|
+
name: string;
|
|
62
|
+
message: string;
|
|
63
|
+
stack?: string;
|
|
64
|
+
cause?: unknown;
|
|
65
|
+
};
|
|
66
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
67
|
+
prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
|
|
68
|
+
stackTraceLimit: number;
|
|
69
|
+
};
|
|
70
|
+
checkoutProviderAttemptFailure: (error: unknown) => {
|
|
71
|
+
readonly paymentAttemptId: string | null;
|
|
72
|
+
readonly phase: string;
|
|
73
|
+
readonly code: string;
|
|
74
|
+
readonly dispatchState: ProviderAttemptDispatchState;
|
|
75
|
+
readonly retryCount: number;
|
|
76
|
+
readonly failureDiagnostic: Diagnostic | null;
|
|
77
|
+
readonly orderIdForCompensation: string | null;
|
|
78
|
+
readonly reason: string | null;
|
|
79
|
+
name: string;
|
|
80
|
+
message: string;
|
|
81
|
+
stack?: string;
|
|
82
|
+
cause?: unknown;
|
|
83
|
+
} | null;
|
|
84
|
+
logCheckoutProviderAttemptFailure: (error: {
|
|
85
|
+
readonly paymentAttemptId: string | null;
|
|
86
|
+
readonly phase: string;
|
|
87
|
+
readonly code: string;
|
|
88
|
+
readonly dispatchState: ProviderAttemptDispatchState;
|
|
89
|
+
readonly retryCount: number;
|
|
90
|
+
readonly failureDiagnostic: Diagnostic | null;
|
|
91
|
+
readonly orderIdForCompensation: string | null;
|
|
92
|
+
readonly reason: string | null;
|
|
93
|
+
name: string;
|
|
94
|
+
message: string;
|
|
95
|
+
stack?: string;
|
|
96
|
+
cause?: unknown;
|
|
97
|
+
}) => void;
|
|
98
|
+
trustedPreDispatchEvidence: (error: PreDispatch) => Evidence | null;
|
|
99
|
+
buildReopenedPreparedAttemptResponse: (input: {
|
|
100
|
+
order: Order;
|
|
101
|
+
reservations: Reservation[];
|
|
102
|
+
intent: {
|
|
103
|
+
paymentIntentId: string;
|
|
104
|
+
paymentId: string;
|
|
105
|
+
};
|
|
106
|
+
paymentAttemptId: string;
|
|
107
|
+
provider: string;
|
|
108
|
+
}) => Response;
|
|
109
|
+
reopenExhaustedPreDispatchAttempt: (input: {
|
|
110
|
+
error: PreDispatch;
|
|
111
|
+
paymentPort: ReopenPaymentPort<Evidence>;
|
|
112
|
+
paymentExecutionIdempotencyKey: string;
|
|
113
|
+
order: Order;
|
|
114
|
+
reservations: Reservation[];
|
|
115
|
+
intent: {
|
|
116
|
+
paymentIntentId: string;
|
|
117
|
+
paymentId: string;
|
|
118
|
+
};
|
|
119
|
+
provider: string;
|
|
120
|
+
}) => Promise<Response>;
|
|
121
|
+
reopenExhaustedPreDispatchRecoveryAttempt: (input: {
|
|
122
|
+
error: PreDispatch;
|
|
123
|
+
paymentPort: ReopenPaymentPort<Evidence>;
|
|
124
|
+
paymentExecutionIdempotencyKey: string;
|
|
125
|
+
paymentIntentId: string;
|
|
126
|
+
order: {
|
|
127
|
+
orderId: string;
|
|
128
|
+
subscriptionId: string | null;
|
|
129
|
+
subscriptionCycleId: string | null;
|
|
130
|
+
};
|
|
131
|
+
}) => Promise<boolean>;
|
|
132
|
+
};
|
|
133
|
+
export {};
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { CheckoutOrchestrationError } from "./commerceCheckoutOrchestrationError.js";
|
|
2
|
+
export function createCheckoutProviderAttemptFailure(bindings) {
|
|
3
|
+
class CheckoutProviderAttemptFailure extends CheckoutOrchestrationError {
|
|
4
|
+
paymentAttemptId;
|
|
5
|
+
phase;
|
|
6
|
+
code;
|
|
7
|
+
dispatchState;
|
|
8
|
+
retryCount;
|
|
9
|
+
failureDiagnostic;
|
|
10
|
+
constructor(error) {
|
|
11
|
+
const notDispatched = bindings.isPreDispatch(error);
|
|
12
|
+
super(notDispatched
|
|
13
|
+
? "start_runtime: provider transaction was not dispatched"
|
|
14
|
+
: "start_runtime: provider attempt remains in flight", null, notDispatched ? "provider_attempt_not_dispatched" : "provider_attempt_in_flight");
|
|
15
|
+
this.name = "CheckoutProviderAttemptFailure";
|
|
16
|
+
this.paymentAttemptId = error.paymentAttemptId;
|
|
17
|
+
this.phase = error.phase;
|
|
18
|
+
this.code = bindings.isUncertain(error) ? error.errorCode : error.code;
|
|
19
|
+
this.dispatchState = error.dispatchState;
|
|
20
|
+
this.retryCount = bindings.isPreDispatch(error) ? error.retryCount : 0;
|
|
21
|
+
this.failureDiagnostic = bindings.isUncertain(error)
|
|
22
|
+
? error.failureDiagnostic
|
|
23
|
+
: null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function checkoutProviderAttemptFailure(error) {
|
|
27
|
+
if (bindings.isInFlight(error) ||
|
|
28
|
+
bindings.isPreDispatch(error) ||
|
|
29
|
+
bindings.isUncertain(error)) {
|
|
30
|
+
return new CheckoutProviderAttemptFailure(error);
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
function logCheckoutProviderAttemptFailure(error) {
|
|
35
|
+
console.error("checkout_provider_attempt_failure", JSON.stringify(bindings.providerAttemptFailureLogFields(error)));
|
|
36
|
+
}
|
|
37
|
+
const trustedPreDispatchEvidence = bindings.trustedPreDispatchEvidence;
|
|
38
|
+
function buildReopenedPreparedAttemptResponse(input) {
|
|
39
|
+
return bindings.responseSchema.parse({
|
|
40
|
+
contractVersion: bindings.contractVersion,
|
|
41
|
+
runtime: {
|
|
42
|
+
orderId: input.order.orderId,
|
|
43
|
+
orderRef: input.order.orderRef,
|
|
44
|
+
mode: input.order.mode,
|
|
45
|
+
clientId: input.order.clientId,
|
|
46
|
+
...bindings.runtimeResponseExtension(input.order),
|
|
47
|
+
shippingAddressId: input.order.shippingAddressId,
|
|
48
|
+
total: input.order.total,
|
|
49
|
+
finalizedReplayed: input.order.replayed,
|
|
50
|
+
reservations: input.reservations,
|
|
51
|
+
payment: {
|
|
52
|
+
paymentIntentId: input.intent.paymentIntentId,
|
|
53
|
+
paymentId: input.intent.paymentId,
|
|
54
|
+
paymentAttemptId: input.paymentAttemptId,
|
|
55
|
+
status: "failed",
|
|
56
|
+
attemptStatus: "failed",
|
|
57
|
+
provider: input.provider,
|
|
58
|
+
providerAttemptId: null,
|
|
59
|
+
providerClientSecret: null,
|
|
60
|
+
providerRedirectUrl: null,
|
|
61
|
+
providerNextActionKind: null,
|
|
62
|
+
continuationActionOrigin: null,
|
|
63
|
+
},
|
|
64
|
+
readiness: {
|
|
65
|
+
omsEligibility: { allowed: false, reason: "order_not_paid" },
|
|
66
|
+
fulfillmentCreate: { allowed: false, reason: "order_not_paid", omsReason: "order_not_paid" },
|
|
67
|
+
},
|
|
68
|
+
nextAction: { kind: "await_hidden_payment_result", provider: input.provider },
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function preDispatchReopenGate(error, paymentPort) {
|
|
73
|
+
const evidence = trustedPreDispatchEvidence(error);
|
|
74
|
+
const paymentAttemptId = error.paymentAttemptId;
|
|
75
|
+
const reopen = paymentPort.reopenInteractivePreparedAttempt;
|
|
76
|
+
if (!evidence || !paymentAttemptId || typeof reopen !== "function") {
|
|
77
|
+
logPreDispatchReopenFailure(error, "capability_unavailable");
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return { paymentAttemptId, evidence, reopen };
|
|
81
|
+
}
|
|
82
|
+
async function writePreDispatchReopen(input) {
|
|
83
|
+
const { gate, identity } = input;
|
|
84
|
+
const request = {
|
|
85
|
+
idempotencyKey: `${input.paymentExecutionIdempotencyKey}:reopen-not-dispatched`,
|
|
86
|
+
paymentIntentId: identity.paymentIntentId,
|
|
87
|
+
paymentAttemptId: gate.paymentAttemptId,
|
|
88
|
+
expectedOrderId: identity.orderId,
|
|
89
|
+
expectedSubscriptionId: identity.subscriptionId,
|
|
90
|
+
expectedSubscriptionCycleId: identity.subscriptionCycleId,
|
|
91
|
+
evidence: gate.evidence,
|
|
92
|
+
};
|
|
93
|
+
const call = async () => {
|
|
94
|
+
const result = await gate.reopen.call(input.paymentPort, request);
|
|
95
|
+
if (result.paymentAttemptId !== gate.paymentAttemptId || result.paymentIntentId !== identity.paymentIntentId) {
|
|
96
|
+
throw new Error("interactive_prepared_attempt_reopen_identity_mismatch");
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
try {
|
|
100
|
+
await call();
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
console.error("provider_attempt_predispatch_reopen_retry", JSON.stringify({
|
|
105
|
+
paymentAttemptId: gate.paymentAttemptId,
|
|
106
|
+
retryOrdinal: 1,
|
|
107
|
+
}));
|
|
108
|
+
try {
|
|
109
|
+
await call();
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
logPreDispatchReopenFailure(input.error, "rpc_unavailable");
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async function reopenExhaustedPreDispatchAttempt(input) {
|
|
119
|
+
const gate = preDispatchReopenGate(input.error, input.paymentPort);
|
|
120
|
+
if (!gate)
|
|
121
|
+
throw input.error;
|
|
122
|
+
// Build and validate the response before the mutation. No fallible work may
|
|
123
|
+
// follow a successful reopen, or a schema/readiness error could compensate a
|
|
124
|
+
// now-payable order whose old provider attempt is already terminal.
|
|
125
|
+
const response = buildReopenedPreparedAttemptResponse({
|
|
126
|
+
order: input.order,
|
|
127
|
+
reservations: input.reservations,
|
|
128
|
+
intent: input.intent,
|
|
129
|
+
paymentAttemptId: gate.paymentAttemptId,
|
|
130
|
+
provider: input.provider,
|
|
131
|
+
});
|
|
132
|
+
const reopened = await writePreDispatchReopen({
|
|
133
|
+
gate,
|
|
134
|
+
error: input.error,
|
|
135
|
+
paymentPort: input.paymentPort,
|
|
136
|
+
paymentExecutionIdempotencyKey: input.paymentExecutionIdempotencyKey,
|
|
137
|
+
identity: {
|
|
138
|
+
paymentIntentId: input.intent.paymentIntentId,
|
|
139
|
+
orderId: input.order.orderId,
|
|
140
|
+
subscriptionId: input.order.subscriptionId,
|
|
141
|
+
subscriptionCycleId: input.order.subscriptionCycleId,
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
if (!reopened)
|
|
145
|
+
throw input.error;
|
|
146
|
+
return response;
|
|
147
|
+
}
|
|
148
|
+
async function reopenExhaustedPreDispatchRecoveryAttempt(input) {
|
|
149
|
+
const gate = preDispatchReopenGate(input.error, input.paymentPort);
|
|
150
|
+
if (!gate)
|
|
151
|
+
return false;
|
|
152
|
+
return writePreDispatchReopen({
|
|
153
|
+
gate,
|
|
154
|
+
error: input.error,
|
|
155
|
+
paymentPort: input.paymentPort,
|
|
156
|
+
paymentExecutionIdempotencyKey: input.paymentExecutionIdempotencyKey,
|
|
157
|
+
identity: {
|
|
158
|
+
paymentIntentId: input.paymentIntentId,
|
|
159
|
+
orderId: input.order.orderId,
|
|
160
|
+
subscriptionId: input.order.subscriptionId,
|
|
161
|
+
subscriptionCycleId: input.order.subscriptionCycleId,
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function logPreDispatchReopenFailure(error, reason) {
|
|
166
|
+
console.error("provider_attempt_predispatch_reopen_failed", JSON.stringify({
|
|
167
|
+
paymentAttemptId: error.paymentAttemptId,
|
|
168
|
+
phase: error.phase,
|
|
169
|
+
code: error.code,
|
|
170
|
+
dispatchState: error.dispatchState,
|
|
171
|
+
reason,
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
return { CheckoutProviderAttemptFailure, checkoutProviderAttemptFailure, logCheckoutProviderAttemptFailure, trustedPreDispatchEvidence, buildReopenedPreparedAttemptResponse, reopenExhaustedPreDispatchAttempt, reopenExhaustedPreDispatchRecoveryAttempt };
|
|
175
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { HttpRequest, HttpResponse } from "../../http/index.js";
|
|
2
|
+
import type { BffResponder } from "../../bff/index.js";
|
|
3
|
+
import type { z } from "zod";
|
|
4
|
+
import { type CommerceReturnsPort, type ReturnRequestCreateInput } from "../commerceReturnsPort.js";
|
|
5
|
+
type AdminAuthResult = {
|
|
6
|
+
ok: true;
|
|
7
|
+
userId: string;
|
|
8
|
+
} | {
|
|
9
|
+
ok: false;
|
|
10
|
+
code: "UNAUTHORIZED" | "FORBIDDEN" | "INTERNAL";
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
13
|
+
type CustomerAuthResult = {
|
|
14
|
+
ok: true;
|
|
15
|
+
userId: string;
|
|
16
|
+
} | {
|
|
17
|
+
ok: false;
|
|
18
|
+
code: "UNAUTHORIZED";
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
21
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
22
|
+
export declare function createCustomerReturnRequestHandler(deps: {
|
|
23
|
+
responder: BffResponder;
|
|
24
|
+
port: Pick<CommerceReturnsPort<string>, "createRequest">;
|
|
25
|
+
requestSchema?: z.ZodType<ReturnRequestCreateInput<string>>;
|
|
26
|
+
authenticateUser: () => Promise<CustomerAuthResult>;
|
|
27
|
+
enabled: () => boolean;
|
|
28
|
+
}): (req: HttpRequest, res: HttpResponse) => Promise<void>;
|
|
29
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
30
|
+
export declare function createAdminReturnApproveHandler(deps: {
|
|
31
|
+
responder: BffResponder;
|
|
32
|
+
authorizeAdmin: (req: HttpRequest) => Promise<AdminAuthResult>;
|
|
33
|
+
port: Pick<CommerceReturnsPort, "approve">;
|
|
34
|
+
}): (req: HttpRequest, res: HttpResponse) => Promise<void>;
|
|
35
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
36
|
+
export declare function createAdminReturnRejectHandler(deps: {
|
|
37
|
+
responder: BffResponder;
|
|
38
|
+
authorizeAdmin: (req: HttpRequest) => Promise<AdminAuthResult>;
|
|
39
|
+
port: Pick<CommerceReturnsPort, "reject">;
|
|
40
|
+
}): (req: HttpRequest, res: HttpResponse) => Promise<void>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// BFF handlers for the Commerce Returns R0 control plane:
|
|
2
|
+
// - customer: POST /api/bff/commerce/returns/request (bearer-authenticated)
|
|
3
|
+
// - admin: POST /api/bff/admin/returns/approve|reject
|
|
4
|
+
// Each validates with the returns port schemas and calls the service-role port,
|
|
5
|
+
// mapping RPC input/state errors (ERRCODE 22023) to 400s.
|
|
6
|
+
import { returnApproveSchema, returnRejectSchema, returnRequestCreateSchema, } from "../commerceReturnsPort.js";
|
|
7
|
+
// RPC validation/state errors that map to a 400 (vs an unexpected 500).
|
|
8
|
+
const CLIENT_ERROR = /_invalid_input|_invalid_state|_not_found|_not_returnable|_quantity_exceeds_ordered|_line_not_in_order/;
|
|
9
|
+
function methodGuard(req, res, responder) {
|
|
10
|
+
const { sendBffError } = responder;
|
|
11
|
+
if (req.method !== "POST") {
|
|
12
|
+
sendBffError(res, "METHOD_NOT_ALLOWED", "Method not allowed", { status: 405 });
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
function mapExecuteError(res, error, responder) {
|
|
18
|
+
const { sendBffError } = responder;
|
|
19
|
+
const message = error instanceof Error ? error.message : "return_operation_failed";
|
|
20
|
+
if (CLIENT_ERROR.test(message)) {
|
|
21
|
+
sendBffError(res, "BAD_REQUEST", "Return request rejected", { details: { reason: message } });
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
sendBffError(res, "INTERNAL", "Return operation failed");
|
|
25
|
+
}
|
|
26
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
27
|
+
export function createCustomerReturnRequestHandler(deps) {
|
|
28
|
+
const { sendBffError, sendBffSuccess } = deps.responder;
|
|
29
|
+
return async function handler(req, res) {
|
|
30
|
+
if (!methodGuard(req, res, deps.responder))
|
|
31
|
+
return;
|
|
32
|
+
if (!deps.enabled()) {
|
|
33
|
+
sendBffError(res, "UPSTREAM_UNAVAILABLE", "Returns are not enabled", {
|
|
34
|
+
details: { feature: "commerce_returns", featureFlag: "COMMERCE_RETURNS_ENABLED", reason: "feature_flag_disabled" },
|
|
35
|
+
});
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const auth = await deps.authenticateUser();
|
|
39
|
+
if (!auth.ok) {
|
|
40
|
+
sendBffError(res, "UNAUTHORIZED", "Sign in required to request a return");
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const parsed = (deps.requestSchema ?? returnRequestCreateSchema).safeParse(req.body ?? {});
|
|
44
|
+
if (!parsed.success) {
|
|
45
|
+
sendBffError(res, "BAD_REQUEST", "Invalid return request", { details: parsed.error.flatten() });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const result = await deps.port.createRequest({ ...parsed.data, requestedBy: auth.userId });
|
|
50
|
+
sendBffSuccess(res, result);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
mapExecuteError(res, error, deps.responder);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function createAdminReturnHandler(deps) {
|
|
58
|
+
const { sendBffError, sendBffSuccess } = deps.responder;
|
|
59
|
+
return async function handler(req, res) {
|
|
60
|
+
if (!methodGuard(req, res, deps.responder))
|
|
61
|
+
return;
|
|
62
|
+
const auth = await deps.authorizeAdmin(req);
|
|
63
|
+
if (auth.ok === false) {
|
|
64
|
+
sendBffError(res, auth.code, auth.message);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const parsed = deps.requestSchema.safeParse(req.body ?? {});
|
|
68
|
+
if (parsed.success === false) {
|
|
69
|
+
sendBffError(res, "BAD_REQUEST", deps.invalidMessage, { details: parsed.error.flatten() });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const result = await deps.execute(parsed.data, auth.userId);
|
|
74
|
+
sendBffSuccess(res, result);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
mapExecuteError(res, error, deps.responder);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
82
|
+
export function createAdminReturnApproveHandler(deps) {
|
|
83
|
+
return createAdminReturnHandler({
|
|
84
|
+
responder: deps.responder,
|
|
85
|
+
authorizeAdmin: deps.authorizeAdmin,
|
|
86
|
+
requestSchema: returnApproveSchema,
|
|
87
|
+
invalidMessage: "Invalid return approve request",
|
|
88
|
+
execute: (request, actorUserId) => deps.port.approve({ ...request, actorUserId }),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
92
|
+
export function createAdminReturnRejectHandler(deps) {
|
|
93
|
+
return createAdminReturnHandler({
|
|
94
|
+
responder: deps.responder,
|
|
95
|
+
authorizeAdmin: deps.authorizeAdmin,
|
|
96
|
+
requestSchema: returnRejectSchema,
|
|
97
|
+
invalidMessage: "Invalid return reject request",
|
|
98
|
+
execute: (request, actorUserId) => deps.port.reject({ ...request, actorUserId }),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { CommerceCheckoutRuntimeOrderPort } from "../contracts/runtimePorts.js";
|
|
3
|
+
import type { RpcError } from "../contracts/omsTypes.js";
|
|
4
|
+
export interface ManagedCommerceRuntimeClient {
|
|
5
|
+
rpc(functionName: string, args: Record<string, unknown>): PromiseLike<{
|
|
6
|
+
data: unknown;
|
|
7
|
+
error: RpcError | null;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export declare function createManagedCommerceRuntimeOrderPort<Request, Order extends {
|
|
11
|
+
items: unknown[];
|
|
12
|
+
}>(client: ManagedCommerceRuntimeClient, bindings: {
|
|
13
|
+
finalizeArgs(request: Request): Record<string, unknown>;
|
|
14
|
+
responseEnvelopeSchema: z.ZodType;
|
|
15
|
+
}): CommerceCheckoutRuntimeOrderPort<Request, Order>;
|
|
16
|
+
export declare function mapRpcError(error: RpcError): Error;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { CommerceRuntimeConflictError, CommerceRuntimePersistenceError } from "../runtimeErrors.js";
|
|
2
|
+
import { safeCommerceDiagnosticValue } from "./commerceDiagnostics.js";
|
|
3
|
+
const FINALIZE_RPC_NAME = "commerce_finalize_order_for_checkout";
|
|
4
|
+
export function createManagedCommerceRuntimeOrderPort(client, bindings) {
|
|
5
|
+
return {
|
|
6
|
+
async finalizeOrderForCheckout(request) {
|
|
7
|
+
const { data, error } = await client.rpc(FINALIZE_RPC_NAME, bindings.finalizeArgs(request));
|
|
8
|
+
if (error)
|
|
9
|
+
throw mapRpcError(error);
|
|
10
|
+
return parseFinalizeResponse(data);
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
function parseFinalizeResponse(data) {
|
|
14
|
+
const parsed = bindings.responseEnvelopeSchema.safeParse(data);
|
|
15
|
+
if (!parsed.success || typeof data !== "object" || data === null) {
|
|
16
|
+
throw new CommerceRuntimePersistenceError("Commerce finalize response invalid");
|
|
17
|
+
}
|
|
18
|
+
const finalizedOrder = data.finalizedOrder;
|
|
19
|
+
if (!finalizedOrder || typeof finalizedOrder !== "object") {
|
|
20
|
+
throw new CommerceRuntimePersistenceError("Commerce finalize response invalid");
|
|
21
|
+
}
|
|
22
|
+
const order = finalizedOrder;
|
|
23
|
+
if (!Array.isArray(order.items) || order.items.length === 0) {
|
|
24
|
+
throw new CommerceRuntimePersistenceError("Commerce finalize response missing order items");
|
|
25
|
+
}
|
|
26
|
+
return order;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function mapRpcError(error) {
|
|
30
|
+
// Diagnostic only: preserve constraint/cause signal without raw payload values.
|
|
31
|
+
console.error("commerce_runtime_finalize_rpc_error", JSON.stringify({
|
|
32
|
+
code: error.code,
|
|
33
|
+
message: safeCommerceDiagnosticValue(error.message),
|
|
34
|
+
details: safeCommerceDiagnosticValue(error.details),
|
|
35
|
+
hint: safeCommerceDiagnosticValue(error.hint),
|
|
36
|
+
}));
|
|
37
|
+
const text = [error.message, error.details, error.hint].filter(Boolean).join(" ");
|
|
38
|
+
if (text.includes("acquisition_terms_changed")) {
|
|
39
|
+
return new CommerceRuntimeConflictError("Acquisition terms changed", {
|
|
40
|
+
code: error.code, reason: "acquisition_terms_changed",
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (text.includes("commerce_runtime_finalize_journey_consumed")) {
|
|
44
|
+
// The journey key already finalized a different request (order completed,
|
|
45
|
+
// possibly out-of-band via checkout recovery). The client must rotate its
|
|
46
|
+
// journey key — a retry under the same key can never succeed.
|
|
47
|
+
return new CommerceRuntimeConflictError("Commerce checkout journey already completed", {
|
|
48
|
+
code: error.code,
|
|
49
|
+
reason: "journey_consumed",
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (error.code === "23505" ||
|
|
53
|
+
/commerce_runtime_finalize_.*(?:conflict|not_found|not_owned|mismatch|missing|requires|unknown|invalid|not_draft)/.test(text)) {
|
|
54
|
+
return new CommerceRuntimeConflictError("Commerce order finalize conflict", { code: error.code });
|
|
55
|
+
}
|
|
56
|
+
return new CommerceRuntimePersistenceError("Commerce order finalize RPC failed", { code: error.code });
|
|
57
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { FinalizedCheckoutOrder, CommerceCheckoutRuntimeOrderPort, InventoryCheckoutReservationPort, CommerceRuntimeReadinessPort } from "../contracts/index.js";
|
|
3
|
+
import type { CheckoutRuntimeRequest, CheckoutRuntimeExecutionInput, CheckoutRuntimeExecutionResult, CheckoutRuntimeExecutionPort, CheckoutRuntimePaymentPort, CheckoutRuntimeResultRequest, CheckoutRuntimeResponse } from "./checkoutRuntimeTypes.js";
|
|
4
|
+
export declare function createCommerceRuntimeService<Request extends CheckoutRuntimeRequest, Order extends FinalizedCheckoutOrder<string>, Reservation, PaymentPort extends CheckoutRuntimePaymentPort, Execution extends CheckoutRuntimeExecutionResult, Transient, ExecutionPort extends CheckoutRuntimeExecutionPort<Execution, Transient, Request["providerFlow"], NonNullable<Request["paymentMethodAliasType"]>, NonNullable<Request["paymentMethodRecurringModel"]>>, PreparedPort, PreDispatch, Readiness, Response extends CheckoutRuntimeResponse, ResultRequest extends CheckoutRuntimeResultRequest, ResultResponse, PreparedProvider extends Request["paymentProvider"]>(bindings: {
|
|
5
|
+
defaultPaymentProvider: Request["paymentProvider"];
|
|
6
|
+
defaultProviderFlow: Request["providerFlow"];
|
|
7
|
+
preparedRecurringModel(request: Request): string | undefined;
|
|
8
|
+
contractVersion: string;
|
|
9
|
+
resultResponseSchema: z.ZodType<ResultResponse>;
|
|
10
|
+
defaultExecutionPort: ExecutionPort;
|
|
11
|
+
executionSubject(order: Order): object;
|
|
12
|
+
paymentMetadataExtension(order: Order): object;
|
|
13
|
+
buildProviderAttemptIdentity(input: {
|
|
14
|
+
provider: Request["paymentProvider"];
|
|
15
|
+
localExecutionIdempotencyKey: string;
|
|
16
|
+
paymentIntentId: string;
|
|
17
|
+
amountMinor: number;
|
|
18
|
+
currency: string;
|
|
19
|
+
mode: "one_time" | "subscription_cycle";
|
|
20
|
+
orderRef: string;
|
|
21
|
+
}): {
|
|
22
|
+
providerIdempotencyKey: string;
|
|
23
|
+
providerRequestFingerprint: string;
|
|
24
|
+
};
|
|
25
|
+
transientProviderInput(execution: Request["paymentExecution"]): Transient | null;
|
|
26
|
+
requiresPreparedProviderAttempt(provider: Request["paymentProvider"]): provider is PreparedProvider;
|
|
27
|
+
preparedProviderAttemptPort(port: PaymentPort, provider: Request["paymentProvider"]): PreparedPort;
|
|
28
|
+
executePreparedProviderAttempt(input: {
|
|
29
|
+
paymentPort: PreparedPort;
|
|
30
|
+
executionPort: ExecutionPort;
|
|
31
|
+
provider: PreparedProvider;
|
|
32
|
+
paymentIntentId: string;
|
|
33
|
+
executionInput: CheckoutRuntimeExecutionInput<Transient, Request["providerFlow"], NonNullable<Request["paymentMethodAliasType"]>, NonNullable<Request["paymentMethodRecurringModel"]>>;
|
|
34
|
+
prepareIdempotencyKey: string;
|
|
35
|
+
finalizeIdempotencyKey: string;
|
|
36
|
+
providerIdempotencyKey: string;
|
|
37
|
+
providerRequestFingerprint: string;
|
|
38
|
+
providerFlow: string;
|
|
39
|
+
paymentMethodRef?: string | null;
|
|
40
|
+
prepareRequestPayload: Record<string, unknown>;
|
|
41
|
+
}): Promise<{
|
|
42
|
+
execution: Execution;
|
|
43
|
+
attempt: {
|
|
44
|
+
paymentAttemptId: string;
|
|
45
|
+
status: string;
|
|
46
|
+
};
|
|
47
|
+
}>;
|
|
48
|
+
isPreDispatch(error: unknown): error is PreDispatch;
|
|
49
|
+
reopenExhaustedPreDispatchAttempt(input: {
|
|
50
|
+
error: PreDispatch;
|
|
51
|
+
paymentPort: PaymentPort;
|
|
52
|
+
paymentExecutionIdempotencyKey: string;
|
|
53
|
+
order: Order;
|
|
54
|
+
reservations: Reservation[];
|
|
55
|
+
intent: {
|
|
56
|
+
paymentIntentId: string;
|
|
57
|
+
paymentId: string;
|
|
58
|
+
};
|
|
59
|
+
provider: Request["paymentProvider"];
|
|
60
|
+
}): Promise<Response>;
|
|
61
|
+
preserveProviderDispatchUncertainty<T>(operation: () => Promise<T>, paymentAttemptId: string): Promise<T>;
|
|
62
|
+
recordPaymentAttempt(port: PaymentPort, input: {
|
|
63
|
+
idempotencyKey: string;
|
|
64
|
+
paymentIntentId: string;
|
|
65
|
+
execution: Execution;
|
|
66
|
+
}): Promise<{
|
|
67
|
+
paymentAttemptId: string;
|
|
68
|
+
status: string;
|
|
69
|
+
}>;
|
|
70
|
+
buildStartedRuntimeResponse(input: {
|
|
71
|
+
paymentExecutionIdempotencyKey: string;
|
|
72
|
+
order: Order;
|
|
73
|
+
reservations: Reservation[];
|
|
74
|
+
intent: {
|
|
75
|
+
paymentIntentId: string;
|
|
76
|
+
paymentId: string;
|
|
77
|
+
status: string;
|
|
78
|
+
};
|
|
79
|
+
execution: Execution;
|
|
80
|
+
attempt: {
|
|
81
|
+
paymentAttemptId: string;
|
|
82
|
+
status: string;
|
|
83
|
+
};
|
|
84
|
+
continuationActionOrigin: "fresh_execution" | null;
|
|
85
|
+
paymentPort: PaymentPort;
|
|
86
|
+
readinessPort: CommerceRuntimeReadinessPort<Readiness>;
|
|
87
|
+
}): Promise<Response>;
|
|
88
|
+
}): ({ orderPort, inventoryPort, paymentPort, readinessPort, executionPort, resolveExecutionPort, }: {
|
|
89
|
+
orderPort: CommerceCheckoutRuntimeOrderPort<Request, Order>;
|
|
90
|
+
inventoryPort: InventoryCheckoutReservationPort<Order, "created", Reservation>;
|
|
91
|
+
paymentPort: PaymentPort;
|
|
92
|
+
readinessPort: CommerceRuntimeReadinessPort<Readiness>;
|
|
93
|
+
executionPort?: ExecutionPort;
|
|
94
|
+
resolveExecutionPort?: (provider: string) => ExecutionPort;
|
|
95
|
+
}) => {
|
|
96
|
+
startRuntime: (request: Request, resolvedExecutionPort?: ExecutionPort) => Promise<Response>;
|
|
97
|
+
applyPaymentResult: (request: ResultRequest) => Promise<ResultResponse>;
|
|
98
|
+
};
|