@openlup/platform 0.25.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +156 -440
- package/README.md +230 -11
- 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/contracts/renewal.d.ts +2 -0
- package/dist/subscriptions/index.d.ts +3 -2
- package/dist/subscriptions/index.js +3 -2
- package/dist/subscriptions/renewalCycleFailureMechanism.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/contracts/renewal.ts +2 -1
- package/src/subscriptions/index.ts +3 -2
- package/src/subscriptions/renewalCycleFailureMechanism.ts +3 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const CHECKOUT_CONTRACT_VERSION = "commerce.checkout.v2";
|
|
3
|
+
const uuidSchema = z.guid();
|
|
4
|
+
const datetimeSchema = z.string().datetime({ offset: true });
|
|
5
|
+
|
|
6
|
+
export const checkoutKindSchema = z.enum(["one_time", "subscription_initial"]);
|
|
7
|
+
export const checkoutActivationStatusSchema = z.enum([
|
|
8
|
+
"not_applicable",
|
|
9
|
+
"pending_payment_success",
|
|
10
|
+
"activated",
|
|
11
|
+
"blocked_missing_payment_method",
|
|
12
|
+
]);
|
|
13
|
+
|
|
14
|
+
export const ASYNC_CHECKOUT_STATUSES = [
|
|
15
|
+
"pending_provider_action",
|
|
16
|
+
"requires_action",
|
|
17
|
+
"processing",
|
|
18
|
+
"paid",
|
|
19
|
+
"failed",
|
|
20
|
+
"expired",
|
|
21
|
+
] as const;
|
|
22
|
+
export type AsyncCheckoutStatus = (typeof ASYNC_CHECKOUT_STATUSES)[number];
|
|
23
|
+
|
|
24
|
+
export const asyncCheckoutStatusSchema = z.enum(ASYNC_CHECKOUT_STATUSES);
|
|
25
|
+
export const subscriptionActivationStatusSchema = z.enum(["not_applicable", "waiting_for_mandate", "active", "action_required"]);
|
|
26
|
+
export const invoiceBuyerSnapshotAddressCoreSchema = z
|
|
27
|
+
.object({
|
|
28
|
+
line1: z.string().trim().min(3).max(160),
|
|
29
|
+
line2: z.string().trim().min(1).max(160).nullable().default(null),
|
|
30
|
+
city: z.string().trim().min(2).max(120),
|
|
31
|
+
postalCode: z.string().trim().min(3).max(16),
|
|
32
|
+
country: z.string().regex(/^[A-Z]{2}$/),
|
|
33
|
+
source: z.string().trim().min(1).max(120),
|
|
34
|
+
})
|
|
35
|
+
.strict();
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
export const checkoutRequestCoreSchema = z.object({
|
|
39
|
+
paymentAttemptSequence: z.number().int().min(0).max(50).optional(),
|
|
40
|
+
returnContext: z.enum(["public", "account"]).default("public"),
|
|
41
|
+
}).strict();
|
|
42
|
+
|
|
43
|
+
/** Host composes fiscal, action and acquisition schemas over neutral checkout fields. */
|
|
44
|
+
export function createCheckoutResponseSchemas<Quote extends z.ZodType, Expectation extends z.ZodType,
|
|
45
|
+
Action extends z.ZodType, IntentStatus extends z.ZodType<string>, AttemptStatus extends z.ZodType<string>, Display extends z.ZodType>(input: {
|
|
46
|
+
quoteSchema: Quote; quoteExpectationSchema: Expectation; clientActionSchema: Action;
|
|
47
|
+
paymentIntentStatusSchema: IntentStatus; paymentAttemptStatusSchema: AttemptStatus;
|
|
48
|
+
failureDisplaySchema: Display;
|
|
49
|
+
}) {
|
|
50
|
+
const createQuoteResponseSchema = input.quoteSchema;
|
|
51
|
+
const checkoutClientActionSchema = input.clientActionSchema;
|
|
52
|
+
const paymentFailureDisplayReasonSchema = input.failureDisplaySchema;
|
|
53
|
+
const checkoutSuccessResponseSchema = z
|
|
54
|
+
.object({
|
|
55
|
+
contractVersion: z.literal(CHECKOUT_CONTRACT_VERSION),
|
|
56
|
+
checkoutKind: checkoutKindSchema,
|
|
57
|
+
orderRef: z.string().regex(/^order_[a-z0-9-]+$/),
|
|
58
|
+
orderId: uuidSchema,
|
|
59
|
+
status: asyncCheckoutStatusSchema,
|
|
60
|
+
paymentIntentId: uuidSchema.optional(),
|
|
61
|
+
paymentAttemptId: uuidSchema.nullable().optional(),
|
|
62
|
+
providerPaymentId: z.string().trim().min(1).nullable().optional(),
|
|
63
|
+
// Server-resolved customer identity used by owned payment and order reads.
|
|
64
|
+
clientId: uuidSchema.optional(),
|
|
65
|
+
clientAction: checkoutClientActionSchema.optional(),
|
|
66
|
+
returnUrl: z.string().url().optional(),
|
|
67
|
+
statusUrl: z.string().min(1).optional(),
|
|
68
|
+
subscription: z
|
|
69
|
+
.object({
|
|
70
|
+
requested: z.boolean(),
|
|
71
|
+
cadenceDays: z.number().int().positive().max(120).nullable(),
|
|
72
|
+
activationStatus: checkoutActivationStatusSchema,
|
|
73
|
+
})
|
|
74
|
+
.strict()
|
|
75
|
+
.optional(),
|
|
76
|
+
payment: z
|
|
77
|
+
.object({
|
|
78
|
+
requiresReusablePaymentMethod: z.boolean(),
|
|
79
|
+
})
|
|
80
|
+
.strict()
|
|
81
|
+
.optional(),
|
|
82
|
+
authoritativeQuote: createQuoteResponseSchema.optional(),
|
|
83
|
+
})
|
|
84
|
+
.strict()
|
|
85
|
+
.superRefine((response, ctx) => {
|
|
86
|
+
const subscription = response.subscription;
|
|
87
|
+
if (response.checkoutKind === "one_time") {
|
|
88
|
+
if (subscription && (subscription.requested || subscription.cadenceDays !== null || subscription.activationStatus !== "not_applicable")) {
|
|
89
|
+
ctx.addIssue({
|
|
90
|
+
code: z.ZodIssueCode.custom,
|
|
91
|
+
message: "one-time checkout cannot report requested subscription activation",
|
|
92
|
+
path: ["subscription"],
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (!subscription?.requested || !subscription.cadenceDays) {
|
|
99
|
+
ctx.addIssue({
|
|
100
|
+
code: z.ZodIssueCode.custom,
|
|
101
|
+
message: "subscription checkout requires subscription response details",
|
|
102
|
+
path: ["subscription"],
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (response.payment?.requiresReusablePaymentMethod !== true) {
|
|
106
|
+
ctx.addIssue({
|
|
107
|
+
code: z.ZodIssueCode.custom,
|
|
108
|
+
message: "subscription checkout requires reusable payment method",
|
|
109
|
+
path: ["payment", "requiresReusablePaymentMethod"],
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
const checkoutPriceChangedResponseSchema = z
|
|
115
|
+
.object({
|
|
116
|
+
contractVersion: z.literal(CHECKOUT_CONTRACT_VERSION),
|
|
117
|
+
checkoutKind: checkoutKindSchema,
|
|
118
|
+
status: z.literal("price_changed"),
|
|
119
|
+
priceChanged: z.literal(true),
|
|
120
|
+
expectedQuote: input.quoteExpectationSchema,
|
|
121
|
+
authoritativeQuote: createQuoteResponseSchema,
|
|
122
|
+
})
|
|
123
|
+
.strict();
|
|
124
|
+
|
|
125
|
+
const checkoutResponseSchema = z.discriminatedUnion("status", [
|
|
126
|
+
checkoutSuccessResponseSchema,
|
|
127
|
+
checkoutPriceChangedResponseSchema,
|
|
128
|
+
]);
|
|
129
|
+
|
|
130
|
+
const paymentStatusRequestSchema = z
|
|
131
|
+
.object({
|
|
132
|
+
orderId: uuidSchema,
|
|
133
|
+
paymentIntentId: uuidSchema,
|
|
134
|
+
clientId: uuidSchema,
|
|
135
|
+
})
|
|
136
|
+
.strict();
|
|
137
|
+
|
|
138
|
+
const paymentStatusResponseSchema = z
|
|
139
|
+
.object({
|
|
140
|
+
contractVersion: z.literal(CHECKOUT_CONTRACT_VERSION),
|
|
141
|
+
orderId: uuidSchema,
|
|
142
|
+
paymentIntentId: uuidSchema,
|
|
143
|
+
status: asyncCheckoutStatusSchema,
|
|
144
|
+
orderStatus: z.string().trim().min(1),
|
|
145
|
+
payment: z
|
|
146
|
+
.object({
|
|
147
|
+
intentStatus: input.paymentIntentStatusSchema,
|
|
148
|
+
attemptStatus: input.paymentAttemptStatusSchema.nullable(),
|
|
149
|
+
paymentAttemptId: uuidSchema.nullable(),
|
|
150
|
+
provider: z.string().trim().min(1).nullable(),
|
|
151
|
+
providerPaymentId: z.string().trim().min(1).nullable(),
|
|
152
|
+
updatedAt: datetimeSchema,
|
|
153
|
+
})
|
|
154
|
+
.strict(),
|
|
155
|
+
/**
|
|
156
|
+
* Why the payment failed, as a stable code. Travels BESIDE `status`, never
|
|
157
|
+
* inside it: collapsing a reason into the status enum is what left every
|
|
158
|
+
* decline indistinguishable from every other in the first place.
|
|
159
|
+
*/
|
|
160
|
+
failureReason: z.string().trim().min(1).max(240).nullable().default(null),
|
|
161
|
+
failureDisplay: paymentFailureDisplayReasonSchema.nullable().optional(),
|
|
162
|
+
subscriptionActivation: z.object({ status: subscriptionActivationStatusSchema, subscriptionId: uuidSchema.nullable() }).strict(),
|
|
163
|
+
nextAction: checkoutClientActionSchema.nullable(),
|
|
164
|
+
})
|
|
165
|
+
.strict();
|
|
166
|
+
|
|
167
|
+
return { checkoutResponseSchema, paymentStatusRequestSchema, paymentStatusResponseSchema };
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** Acquisition promises are compared independently of money. M05 owns their schemas. */
|
|
171
|
+
export function createCheckoutQuoteSchemas<Money extends z.ZodType, Policy extends z.ZodType, Terms extends z.ZodType>(input: {
|
|
172
|
+
moneySchema: Money; pricingPolicySchema: Policy; acquisitionTermsExpectationSchema: Terms;
|
|
173
|
+
}) {
|
|
174
|
+
const checkoutQuoteExpectationSchema = z.object({
|
|
175
|
+
totalGross: input.moneySchema, pricingPolicy: input.pricingPolicySchema.optional(),
|
|
176
|
+
acquisitionTerms: input.acquisitionTermsExpectationSchema.optional(),
|
|
177
|
+
}).strict();
|
|
178
|
+
const checkoutQuoteAcceptanceSchema = checkoutQuoteExpectationSchema.extend({
|
|
179
|
+
promotionAcceptanceToken: z.string().min(1).max(8_300).optional(),
|
|
180
|
+
});
|
|
181
|
+
return { checkoutQuoteExpectationSchema, checkoutQuoteAcceptanceSchema };
|
|
182
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Provider-neutral Commerce Returns contracts and validation.
|
|
2
|
+
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
|
|
5
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
6
|
+
export const returnRequestLineSchema = z.object({
|
|
7
|
+
orderItemId: z.guid(),
|
|
8
|
+
sku: z.string().trim().min(1).max(120).optional(),
|
|
9
|
+
quantity: z.number().int().positive(),
|
|
10
|
+
restockDisposition: z.enum(["restock", "quarantine", "scrap"]).optional(),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
/** Bind host reason codes for request/approve/reject only; restock/refund fields record intent, without execution. */
|
|
14
|
+
export function createCommerceReturnsSchemas<const Reasons extends readonly [string, ...string[]]>(reasonCodes: Reasons) {
|
|
15
|
+
return {
|
|
16
|
+
returnRequestCreateSchema: z.object({
|
|
17
|
+
idempotencyKey: z.string().trim().min(8).max(200),
|
|
18
|
+
orderId: z.guid(),
|
|
19
|
+
reasonCode: z.enum(reasonCodes),
|
|
20
|
+
lines: z.array(returnRequestLineSchema).min(1),
|
|
21
|
+
customerNote: z.string().trim().max(2000).optional(),
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Neutral default reasons for request/approve/reject only; restock/refund fields record intent, without execution. */
|
|
27
|
+
export const { returnRequestCreateSchema } = createCommerceReturnsSchemas([
|
|
28
|
+
"damaged", "wrong_item", "not_as_described", "changed_mind", "other",
|
|
29
|
+
]);
|
|
30
|
+
|
|
31
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
32
|
+
export const returnApproveSchema = z.object({
|
|
33
|
+
idempotencyKey: z.string().trim().min(8).max(200),
|
|
34
|
+
returnRequestId: z.guid(),
|
|
35
|
+
refundMode: z.enum(["full", "partial", "none"]).default("full"),
|
|
36
|
+
refundAmountCents: z.number().int().nonnegative().optional(),
|
|
37
|
+
adminNote: z.string().trim().max(2000).optional(),
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
41
|
+
export const returnRejectSchema = z.object({
|
|
42
|
+
idempotencyKey: z.string().trim().min(8).max(200),
|
|
43
|
+
returnRequestId: z.guid(),
|
|
44
|
+
adminNote: z.string().trim().max(2000).optional(),
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
48
|
+
export type ReturnRequestCreateInput<Reason extends string = z.infer<typeof returnRequestCreateSchema>["reasonCode"]> =
|
|
49
|
+
Omit<z.infer<typeof returnRequestCreateSchema>, "reasonCode"> & { reasonCode: Reason; requestedBy?: string | null };
|
|
50
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
51
|
+
export type ReturnApproveInput = z.infer<typeof returnApproveSchema> & { actorUserId?: string | null };
|
|
52
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
53
|
+
export type ReturnRejectInput = z.infer<typeof returnRejectSchema> & { actorUserId?: string | null };
|
|
54
|
+
|
|
55
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
56
|
+
export interface ReturnLifecycleResult {
|
|
57
|
+
returnRequestId: string;
|
|
58
|
+
status: string;
|
|
59
|
+
replayed: boolean;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Returns request/approve/reject only. Restock and refund fields record intent; no receive, restock or refund execution. */
|
|
63
|
+
export interface CommerceReturnsPort<Reason extends string = ReturnRequestCreateInput["reasonCode"]> {
|
|
64
|
+
createRequest(input: ReturnRequestCreateInput<Reason>): Promise<ReturnLifecycleResult>;
|
|
65
|
+
approve(input: ReturnApproveInput): Promise<ReturnLifecycleResult>;
|
|
66
|
+
reject(input: ReturnRejectInput): Promise<ReturnLifecycleResult>;
|
|
67
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CONFIGURATOR_INTENT_VERSION } from "./configuratorIntentSchemas.js";
|
|
3
|
+
export const CONFIGURATOR_INTENT_PERSISTENCE_CONTRACT_VERSION =
|
|
4
|
+
"commerce.configurator_intent_persistence.v1";
|
|
5
|
+
|
|
6
|
+
const uuidSchema = z.guid();
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export const configuratorIntentClientMatchReasonSchema = z.enum([
|
|
10
|
+
"client_created",
|
|
11
|
+
"client_match_exact_email",
|
|
12
|
+
// Historical replay value; current writers need not emit it.
|
|
13
|
+
"client_match_plus_normalized_fallback",
|
|
14
|
+
]);
|
|
15
|
+
|
|
16
|
+
export const configuratorIntentPersistenceResponseCoreSchema = z
|
|
17
|
+
.object({
|
|
18
|
+
contractVersion: z.literal(CONFIGURATOR_INTENT_PERSISTENCE_CONTRACT_VERSION),
|
|
19
|
+
intentVersion: z.literal(CONFIGURATOR_INTENT_VERSION),
|
|
20
|
+
idempotencyKey: z.string().trim().min(8).max(120),
|
|
21
|
+
clientId: uuidSchema,
|
|
22
|
+
addressId: uuidSchema,
|
|
23
|
+
clientMatchReason: configuratorIntentClientMatchReasonSchema.optional(),
|
|
24
|
+
replayed: z.boolean(),
|
|
25
|
+
})
|
|
26
|
+
.strict();
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { commerceIdempotencyKeySchema, commerceMinimumUnits, commerceMinimumUnitsSchema, commerceOfferVersionSchema } from "./contractPrimitives.js";
|
|
3
|
+
export const CONFIGURATOR_INTENT_VERSION = "commerce.configurator_intent.v1";
|
|
4
|
+
export const configuratorModeSchema = z.enum(["one_time", "subscription"]);
|
|
5
|
+
export const configuratorContactSchema = z.object({
|
|
6
|
+
firstName: z.string().trim().min(1).max(80), lastName: z.string().trim().min(1).max(80),
|
|
7
|
+
email: z.string().trim().email().max(160), phone: z.string().trim().min(6).max(32),
|
|
8
|
+
}).strict();
|
|
9
|
+
export const configuratorAddressCoreSchema = z.object({
|
|
10
|
+
street: z.string().trim().min(3).max(160), postalCode: z.string().trim().min(3).max(16),
|
|
11
|
+
city: z.string().trim().min(2).max(120), country: z.string().regex(/^[A-Z]{2}$/),
|
|
12
|
+
}).strict();
|
|
13
|
+
export function createConfiguratorIntentSchemas(skuSchema: z.ZodType<string, string>) {
|
|
14
|
+
const configuratorVariantCoreSchema = z.object({
|
|
15
|
+
variantId: z.string().trim().min(1).max(120),
|
|
16
|
+
sku: skuSchema,
|
|
17
|
+
qty: z.number().int().positive().max(99),
|
|
18
|
+
}).strict();
|
|
19
|
+
const configuratorIntentCoreSchema = z.object({
|
|
20
|
+
version: z.literal(CONFIGURATOR_INTENT_VERSION),
|
|
21
|
+
idempotencyKey: commerceIdempotencyKeySchema,
|
|
22
|
+
mode: configuratorModeSchema,
|
|
23
|
+
cadenceDays: z.number().int().positive().max(120).nullable().default(null),
|
|
24
|
+
promoCodes: z.array(z.string().trim().min(1).max(80)).max(20).default([]),
|
|
25
|
+
visitorId: z.string().trim().min(1).max(120).optional(),
|
|
26
|
+
contact: configuratorContactSchema,
|
|
27
|
+
address: configuratorAddressCoreSchema,
|
|
28
|
+
selectedVariants: z.array(configuratorVariantCoreSchema).min(1).max(50),
|
|
29
|
+
offerVersion: commerceOfferVersionSchema.optional(),
|
|
30
|
+
minimumUnits: commerceMinimumUnitsSchema.optional(),
|
|
31
|
+
}).strict();
|
|
32
|
+
return { configuratorVariantCoreSchema, configuratorIntentCoreSchema };
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function validateConfiguratorIntentCore(intent: {
|
|
36
|
+
mode: "one_time" | "subscription"; cadenceDays: number | null; minimumUnits?: number;
|
|
37
|
+
selectedVariants: readonly { qty: number }[];
|
|
38
|
+
}, ctx: z.RefinementCtx, defaultMinimumUnits: number): void {
|
|
39
|
+
if (intent.mode === "subscription" && !intent.cadenceDays) {
|
|
40
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "subscription intent requires cadenceDays", path: ["cadenceDays"] });
|
|
41
|
+
}
|
|
42
|
+
const selectedUnitCount = intent.selectedVariants.reduce((total, variant) => total + variant.qty, 0);
|
|
43
|
+
const minimumUnits = commerceMinimumUnits(intent, defaultMinimumUnits);
|
|
44
|
+
if (selectedUnitCount < minimumUnits) {
|
|
45
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: `selected variants require at least ${minimumUnits} total units`, path: ["selectedVariants"] });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CART_STATUSES, CHECKOUT_STATUSES, ORDER_DRAFT_STATUSES, ORDER_STATUSES, PAYMENT_STATUSES } from "./contracts/state.js";
|
|
3
|
+
|
|
4
|
+
export const cartStatusSchema = z.enum(CART_STATUSES);
|
|
5
|
+
export const checkoutStatusSchema = z.enum(CHECKOUT_STATUSES);
|
|
6
|
+
export const orderDraftStatusSchema = z.enum(ORDER_DRAFT_STATUSES);
|
|
7
|
+
export const orderStatusSchema = z.enum(ORDER_STATUSES);
|
|
8
|
+
export const paymentStatusSchema = z.enum(PAYMENT_STATUSES);
|
|
9
|
+
export const commerceIdempotencyKeySchema = z
|
|
10
|
+
.string()
|
|
11
|
+
.trim()
|
|
12
|
+
.min(8)
|
|
13
|
+
.max(120)
|
|
14
|
+
.regex(/^[a-zA-Z0-9._:-]+$/);
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/** Hosts add their own sizing kinds and profile fields. */
|
|
18
|
+
export const commerceSizeConstraintCoreSchema = z.object({
|
|
19
|
+
kind: z.enum(["unit_count", "total_weight_g"]),
|
|
20
|
+
value: z.number().int().positive(),
|
|
21
|
+
}).strict();
|
|
22
|
+
|
|
23
|
+
/** Opaque offer tokens are transported, never interpreted by commerce. */
|
|
24
|
+
export const commerceOfferVersionSchema = z.string().max(40).regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/);
|
|
25
|
+
export const commerceMinimumUnitsSchema = z.number().int().min(1).max(99);
|
|
26
|
+
|
|
27
|
+
/** Client asks do not establish trusted checkout admission. */
|
|
28
|
+
export function commerceMinimumUnits(input: { minimumUnits?: number | null }, defaultMinimumUnits: number): number {
|
|
29
|
+
return input.minimumUnits ?? defaultMinimumUnits;
|
|
30
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type CommerceOfferAvailabilityStatus = "available" | "low_stock" | "out_of_stock" | "unknown";
|
|
2
|
+
export interface CommerceOfferAvailabilityRequestItem {
|
|
3
|
+
sku: string;
|
|
4
|
+
productSlug: string;
|
|
5
|
+
variantId: string;
|
|
6
|
+
requestedQuantity: number;
|
|
7
|
+
checkoutMode: "one_time" | "subscription";
|
|
8
|
+
}
|
|
9
|
+
export interface CommerceOfferAvailability {
|
|
10
|
+
sku: string;
|
|
11
|
+
productSlug: string;
|
|
12
|
+
variantId: string;
|
|
13
|
+
status: CommerceOfferAvailabilityStatus;
|
|
14
|
+
visibleInConfigurator: boolean;
|
|
15
|
+
sellableNow: number | null;
|
|
16
|
+
reasonCode: string;
|
|
17
|
+
source: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CommerceOfferAvailabilityPort {
|
|
20
|
+
getAvailability(input: { items: readonly CommerceOfferAvailabilityRequestItem[] }): Promise<CommerceOfferAvailability[]>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Commerce fulfillment recovery evidence shared by OMS reads and host projections.
|
|
2
|
+
export type TimedFulfillmentSignal = {
|
|
3
|
+
id?: undefined | null | string;
|
|
4
|
+
token: undefined | null | string;
|
|
5
|
+
occurredAt: undefined | null | string;
|
|
6
|
+
};
|
|
7
|
+
export type ReleasedProviderExceptionHold = {
|
|
8
|
+
orderId: undefined | null | string;
|
|
9
|
+
status: undefined | null | string;
|
|
10
|
+
reason: undefined | null | string;
|
|
11
|
+
createdBy: undefined | null | string;
|
|
12
|
+
releasedBy: undefined | null | string;
|
|
13
|
+
metadata: unknown;
|
|
14
|
+
};
|
|
15
|
+
export type ProviderStatusEvidence = {
|
|
16
|
+
fulfillmentOrderId: undefined | null | string;
|
|
17
|
+
providerStatus: undefined | null | string;
|
|
18
|
+
localStatus: undefined | null | string;
|
|
19
|
+
id?: undefined | null | string;
|
|
20
|
+
token: undefined | null | string;
|
|
21
|
+
occurredAt: undefined | null | string;
|
|
22
|
+
};
|
|
23
|
+
export type ResolvedProviderExceptionRecovery = {
|
|
24
|
+
clearedExceptionEvidenceIds: ReadonlySet<string>;
|
|
25
|
+
recoveryEvidenceIds: ReadonlySet<string>;
|
|
26
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type { CommerceOfferAvailabilityStatus, CommerceOfferAvailabilityRequestItem, CommerceOfferAvailability, CommerceOfferAvailabilityPort } from "./availability.js";
|
|
2
|
+
export type { RecoveryDestinationIntent, RecoveryDestinationPolicyInput, RecoveryDestinationSource, RecoveryDestinationState } from "./recovery.js";
|
|
3
|
+
export type { CommerceFulfillmentEligibilityInput, CartStatus, CheckoutStatus, OrderDraftStatus, OrderStatus, PaymentStatus, OmsFulfillmentBlockReason, OmsInventoryStatus } from "./state.js";
|
|
4
|
+
export type { CartDraft, CheckoutSessionPlaceholder, OrderDraftSummary, OrderSummary, PaymentSummary } from "./order.js";
|
|
5
|
+
export type AsyncCheckoutStatus = "pending_provider_action" | "requires_action" | "processing" | "paid" | "failed" | "expired";
|
|
6
|
+
export type CheckoutKind = "one_time" | "subscription_initial";
|
|
7
|
+
export type * from "./ports.js";
|
|
8
|
+
export type * from "./runtimePorts.js";
|
|
9
|
+
export type { ConfiguratorIntent, ConfiguratorIntentPersistenceResponse, CheckoutResumeDraftState, CheckoutResumeDraft, CommerceCustomerDefaultsSnapshot } from "./intent.js";
|
|
10
|
+
export type * from "./orderMoney.js";
|
|
11
|
+
export type { OmsPaymentStatus } from "./state.js";
|
|
12
|
+
|
|
13
|
+
// Shared fulfillment recovery DTOs.
|
|
14
|
+
export type * from "./fulfillmentRecovery.js";
|
|
15
|
+
|
|
16
|
+
// M11 K3a OMS browser-safe DTOs and ports; no imports from runtime schema modules.
|
|
17
|
+
export type * from "./omsTypes.js";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** Neutral configurator state. Profiles, sizing policy and provider evidence are host extensions. */
|
|
2
|
+
export interface ConfiguratorIntent {
|
|
3
|
+
version: "commerce.configurator_intent.v1";
|
|
4
|
+
idempotencyKey: string;
|
|
5
|
+
mode: "one_time" | "subscription";
|
|
6
|
+
cadenceDays: number | null;
|
|
7
|
+
promoCodes: string[];
|
|
8
|
+
visitorId?: string;
|
|
9
|
+
contact: { firstName: string; lastName: string; email: string; phone: string };
|
|
10
|
+
address: { street: string; postalCode: string; city: string; country: string };
|
|
11
|
+
selectedVariants: Array<{ variantId: string; sku: string; qty: number }>;
|
|
12
|
+
offerVersion?: string;
|
|
13
|
+
minimumUnits?: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ConfiguratorIntentPersistenceResponse {
|
|
17
|
+
contractVersion: "commerce.configurator_intent_persistence.v1";
|
|
18
|
+
intentVersion: "commerce.configurator_intent.v1";
|
|
19
|
+
idempotencyKey: string;
|
|
20
|
+
clientId: string;
|
|
21
|
+
addressId: string;
|
|
22
|
+
clientMatchReason?: "client_created" | "client_match_exact_email" | "client_match_plus_normalized_fallback";
|
|
23
|
+
replayed: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface CheckoutResumeDraftState<Completion, RedactedField extends string> {
|
|
27
|
+
version: "commerce.checkout_resume.v1";
|
|
28
|
+
mode: "one_time" | "subscription" | null;
|
|
29
|
+
cadenceDays: number | null;
|
|
30
|
+
cart: { items: Array<{ sku: string; productSlug: string | null; variantId: string | null; quantity: number }> };
|
|
31
|
+
completion: Completion;
|
|
32
|
+
redactedFields: RedactedField[];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface CheckoutResumeDraft<Section extends string, State> {
|
|
36
|
+
id: string;
|
|
37
|
+
contractVersion: "commerce.checkout_resume.v1";
|
|
38
|
+
lastSectionId: Section;
|
|
39
|
+
draftState: State;
|
|
40
|
+
expiresAt: string;
|
|
41
|
+
createdAt: string;
|
|
42
|
+
updatedAt: string;
|
|
43
|
+
replayed: boolean;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface CommerceCustomerDefaultsSnapshot<Scope, Method> {
|
|
47
|
+
version: "commerce.customer_defaults_snapshot.v1";
|
|
48
|
+
clientId: string;
|
|
49
|
+
payment: { available: boolean; scope: Scope | null; methodKind: Method | null; source: "customer_payment_preferences"; applied: false };
|
|
50
|
+
addresses: {
|
|
51
|
+
hasDefaultShippingAddress: boolean; defaultShippingAddressId: string | null;
|
|
52
|
+
hasDefaultBillingAddress: boolean; defaultBillingAddressId: string | null;
|
|
53
|
+
hasDefaultOrdererProfile: boolean; defaultOrdererProfileId: string | null;
|
|
54
|
+
hasDeliveryNotes: boolean; hasCourierInstructions: boolean;
|
|
55
|
+
source: "customer_address_profiles"; applied: false;
|
|
56
|
+
};
|
|
57
|
+
redactedFields: Array<"contact" | "orderer_profile" | "shipping_address" | "billing_address" | "delivery_notes" | "courier_instructions" | "payment_provider" | "payment_secret">;
|
|
58
|
+
}
|