@cimplify/sdk 0.104.1 → 0.106.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/dist/advanced.d.mts +3 -3
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +22 -22
- package/dist/advanced.mjs +3 -3
- package/dist/{catalogue-BlQ85Uma.d.mts → catalogue-CB44dO-g.d.mts} +4 -1
- package/dist/{catalogue-C8TqOj9K.d.ts → catalogue-lUdp-1hu.d.ts} +4 -1
- package/dist/{checkout-BqK9XUz5.d.mts → checkout-XoV4HNg2.d.mts} +311 -31
- package/dist/{checkout-BqK9XUz5.d.ts → checkout-XoV4HNg2.d.ts} +311 -31
- package/dist/{chunk-L5SNEU2O.mjs → chunk-3BTMAWL7.mjs} +47 -15
- package/dist/{chunk-BWEIMKLF.js → chunk-7SEOB5UW.js} +108 -76
- package/dist/{chunk-SFUJMS5E.js → chunk-AVXA4F6G.js} +33 -1
- package/dist/{chunk-UFOWPN3D.mjs → chunk-DPVDLMLI.mjs} +8 -13
- package/dist/{chunk-DQEXY542.js → chunk-H2WXUTMT.js} +211 -189
- package/dist/{chunk-6G3ANKQA.mjs → chunk-L4XKIMUO.mjs} +8 -1
- package/dist/{chunk-HYFA67A7.js → chunk-NJK3THWT.js} +67 -60
- package/dist/{chunk-RBNBSQI7.mjs → chunk-NJYR6GGM.mjs} +29 -2
- package/dist/{chunk-U54CWUUT.mjs → chunk-NYDVVNZI.mjs} +1 -1
- package/dist/{chunk-V4457OKB.mjs → chunk-RQT5BZ2Y.mjs} +36 -14
- package/dist/{chunk-XAUSDMMZ.js → chunk-UYFTOIFW.js} +6 -6
- package/dist/{chunk-WXREIBFW.js → chunk-YARZTZTB.js} +141 -146
- package/dist/{client-DhXeiUrf.d.ts → client-BQ_8FtA4.d.ts} +12 -2
- package/dist/{client-mXiUrV4X.d.mts → client-BWe1KWMf.d.mts} +12 -2
- package/dist/{index-DPWI5XcU.d.ts → index-C0k9om1S.d.ts} +2 -2
- package/dist/{index-B0AdZvrM.d.mts → index-DRMBo26v.d.mts} +2 -2
- package/dist/{index-CK8Nk5uQ.d.ts → index-DweR60Cv.d.ts} +2 -2
- package/dist/{index-DVfUh-ci.d.mts → index-aIQzSiP_.d.mts} +2 -2
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +166 -146
- package/dist/index.mjs +5 -5
- package/dist/mock/cli.mjs +9 -0
- package/dist/mock/library.js +9 -0
- package/dist/mock/library.mjs +9 -0
- package/dist/mock/msw.js +9 -0
- package/dist/mock/msw.mjs +9 -0
- package/dist/{price-BUDv1rI7.d.mts → price-CUGIYRtD.d.mts} +1 -1
- package/dist/{price-6hQIIac9.d.ts → price-De-sxcuj.d.ts} +1 -1
- package/dist/react.d.mts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js +151 -151
- package/dist/react.mjs +4 -4
- package/dist/{server-DJ0mSs9i.d.mts → server-7soMMUgP.d.ts} +3 -2
- package/dist/{server-DSTX76Ki.d.ts → server-DDEJ7e9s.d.mts} +3 -2
- package/dist/server.d.mts +3 -3
- package/dist/server.d.ts +3 -3
- package/dist/server.js +10 -10
- package/dist/server.mjs +4 -4
- package/dist/testing/msw.d.mts +2 -2
- package/dist/testing/msw.d.ts +2 -2
- package/dist/testing/msw.js +3 -3
- package/dist/testing/msw.mjs +2 -2
- package/dist/testing/suite.d.mts +5 -5
- package/dist/testing/suite.d.ts +5 -5
- package/dist/testing/suite.js +26 -25
- package/dist/testing/suite.mjs +7 -6
- package/dist/testing.d.mts +315 -8
- package/dist/testing.d.ts +315 -8
- package/dist/testing.js +118 -118
- package/dist/testing.mjs +7 -7
- package/dist/utils.d.mts +3 -3
- package/dist/utils.d.ts +3 -3
- package/dist/utils.js +32 -32
- package/dist/utils.mjs +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { messagePreview } from './chunk-U4MW6PYU.mjs';
|
|
2
2
|
import { AUTHORIZATION_TYPE, CHECKOUT_ORDER_RESULT_STATUS, CHECKOUT_NEXT_ACTION, PAYMENT_METHOD, DEFAULT_CURRENCY } from './chunk-33VCYWVL.mjs';
|
|
3
|
-
import { PURCHASE_INTENT_MOBILE_MONEY_NETWORK, ErrorCode, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_STATUS, PAYMENT_OPTION_STATUS, CHECKOUT_TERMS_COMPONENT, CHECKOUT_TERMS_DELTA_KIND, CHECKOUT_INVALIDATION_REASON, PURCHASE_INTENT_SOURCE_KIND, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_PAYMENT_PROVIDER, currencyCode, PURCHASE_INTENT_LINE_CONFIGURATION_KIND, PURCHASE_INTENT_SELLABLE_KIND, PURCHASING_PRINCIPAL_KIND, LEGACY_CHECKOUT_PAYMENT_STATUS, CHECKOUT_COMPLIANCE_REASON, CHECKOUT_COMPLIANCE_LANE, MOBILE_MONEY_TENDER_AUTHORITY_KIND, PAYMENT_OPTION_NEXT_ACTION, PAYMENT_COLLECTION_MODE } from './chunk-
|
|
3
|
+
import { CHECKOUT_PROTECTION_STATUS, PURCHASE_INTENT_MOBILE_MONEY_NETWORK, ErrorCode, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_STATUS, PAYMENT_OPTION_STATUS, CHECKOUT_TERMS_COMPONENT, CHECKOUT_TERMS_DELTA_KIND, CHECKOUT_INVALIDATION_REASON, PURCHASE_INTENT_SOURCE_KIND, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_PAYMENT_PROVIDER, currencyCode, PURCHASE_INTENT_LINE_CONFIGURATION_KIND, PURCHASE_INTENT_SELLABLE_KIND, PURCHASING_PRINCIPAL_KIND, LEGACY_CHECKOUT_PAYMENT_STATUS, CHECKOUT_COMPLIANCE_REASON, CHECKOUT_COMPLIANCE_LANE, MOBILE_MONEY_TENDER_AUTHORITY_KIND, PAYMENT_OPTION_NEXT_ACTION, PAYMENT_COLLECTION_MODE } from './chunk-NJYR6GGM.mjs';
|
|
4
4
|
import { __publicField, __privateAdd, __privateSet, __privateGet, __privateMethod, __privateWrapper } from './chunk-3G6RQLXK.mjs';
|
|
5
5
|
|
|
6
6
|
// ../node_modules/.bun/hono@4.13.2/node_modules/hono/dist/compose.js
|
|
@@ -5537,6 +5537,10 @@ function createPaymentService(options) {
|
|
|
5537
5537
|
// src/mock/domain/purchase-intent.ts
|
|
5538
5538
|
var INTENT_LIFETIME_MS = 15 * 60 * 1e3;
|
|
5539
5539
|
var ZERO_MONEY = "0.00";
|
|
5540
|
+
var MOCK_PROTECTION = {
|
|
5541
|
+
status: CHECKOUT_PROTECTION_STATUS.PROTECTED,
|
|
5542
|
+
message: "Covered by Cimplify Protection"
|
|
5543
|
+
};
|
|
5540
5544
|
var PURCHASE_INTENT_MOBILE_MONEY_NETWORKS = new Set(
|
|
5541
5545
|
Object.values(PURCHASE_INTENT_MOBILE_MONEY_NETWORK)
|
|
5542
5546
|
);
|
|
@@ -5601,6 +5605,7 @@ function paymentOptions(intentId, currency, amount, expiresAt) {
|
|
|
5601
5605
|
fee_amount: wireMoney(ZERO_MONEY),
|
|
5602
5606
|
customer_debit_amount: normalizedAmount,
|
|
5603
5607
|
currency: normalizedCurrency,
|
|
5608
|
+
protection: MOCK_PROTECTION,
|
|
5604
5609
|
status: PAYMENT_OPTION_STATUS.ELIGIBLE,
|
|
5605
5610
|
expected_next_action: PAYMENT_OPTION_NEXT_ACTION.PROVIDER_APPROVAL,
|
|
5606
5611
|
expires_at: expiresAt
|
|
@@ -5615,6 +5620,7 @@ function paymentOptions(intentId, currency, amount, expiresAt) {
|
|
|
5615
5620
|
fee_amount: wireMoney(ZERO_MONEY),
|
|
5616
5621
|
customer_debit_amount: normalizedAmount,
|
|
5617
5622
|
currency: normalizedCurrency,
|
|
5623
|
+
protection: MOCK_PROTECTION,
|
|
5618
5624
|
status: PAYMENT_OPTION_STATUS.ELIGIBLE,
|
|
5619
5625
|
expected_next_action: PAYMENT_OPTION_NEXT_ACTION.PROVIDER_APPROVAL,
|
|
5620
5626
|
expires_at: expiresAt
|
|
@@ -5746,6 +5752,7 @@ function createPurchaseIntentMockService(options) {
|
|
|
5746
5752
|
}
|
|
5747
5753
|
const checkoutInput = request.checkout;
|
|
5748
5754
|
if (!checkoutInput) throw validation("Cart checkout input is required");
|
|
5755
|
+
if (!checkoutInput.address_info) throw validation("Checkout address_info is required");
|
|
5749
5756
|
assertSupportedTenderPreference(request);
|
|
5750
5757
|
const cart = registry.carts.get(request.source.cart_id);
|
|
5751
5758
|
if (!cart) throw notFound(`Cart ${request.source.cart_id} not found`);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkXREIZ56K_js = require('./chunk-XREIZ56K.js');
|
|
4
4
|
var chunkEV2EVOYS_js = require('./chunk-EV2EVOYS.js');
|
|
5
|
-
var
|
|
5
|
+
var chunkAVXA4F6G_js = require('./chunk-AVXA4F6G.js');
|
|
6
6
|
var chunkOWW5GUSB_js = require('./chunk-OWW5GUSB.js');
|
|
7
7
|
|
|
8
8
|
// ../node_modules/.bun/hono@4.13.2/node_modules/hono/dist/compose.js
|
|
@@ -2100,8 +2100,8 @@ var MockError = class extends Error {
|
|
|
2100
2100
|
};
|
|
2101
2101
|
}
|
|
2102
2102
|
};
|
|
2103
|
-
var notFound = (msg) => new MockError(
|
|
2104
|
-
var validation = (msg, ctx) => new MockError(
|
|
2103
|
+
var notFound = (msg) => new MockError(chunkAVXA4F6G_js.ErrorCode.NOT_FOUND, msg, 404);
|
|
2104
|
+
var validation = (msg, ctx) => new MockError(chunkAVXA4F6G_js.ErrorCode.VALIDATION_ERROR, msg, 400, ctx);
|
|
2105
2105
|
|
|
2106
2106
|
// src/mock/routes/_helpers.ts
|
|
2107
2107
|
function authMiddleware(deps) {
|
|
@@ -2597,15 +2597,15 @@ function buildV1(deps) {
|
|
|
2597
2597
|
{ method: chunkEV2EVOYS_js.PAYMENT_METHOD.CARD, network: null },
|
|
2598
2598
|
{
|
|
2599
2599
|
method: chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY,
|
|
2600
|
-
network:
|
|
2600
|
+
network: chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.MTN
|
|
2601
2601
|
},
|
|
2602
2602
|
{
|
|
2603
2603
|
method: chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY,
|
|
2604
|
-
network:
|
|
2604
|
+
network: chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.TELECEL
|
|
2605
2605
|
},
|
|
2606
2606
|
{
|
|
2607
2607
|
method: chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY,
|
|
2608
|
-
network:
|
|
2608
|
+
network: chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.AIRTEL
|
|
2609
2609
|
}
|
|
2610
2610
|
] : currency === "USD" ? [{ method: chunkEV2EVOYS_js.PAYMENT_METHOD.CARD, network: null }] : []
|
|
2611
2611
|
}));
|
|
@@ -5528,7 +5528,7 @@ function createPaymentService(options) {
|
|
|
5528
5528
|
order_number: order.user_friendly_id,
|
|
5529
5529
|
payment_id: body.payment_id,
|
|
5530
5530
|
payment_reference: order.payment_reference,
|
|
5531
|
-
payment_status:
|
|
5531
|
+
payment_status: chunkAVXA4F6G_js.LEGACY_CHECKOUT_PAYMENT_STATUS.SUCCEEDED,
|
|
5532
5532
|
requires_authorization: false,
|
|
5533
5533
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.NONE }
|
|
5534
5534
|
};
|
|
@@ -5539,8 +5539,12 @@ function createPaymentService(options) {
|
|
|
5539
5539
|
// src/mock/domain/purchase-intent.ts
|
|
5540
5540
|
var INTENT_LIFETIME_MS = 15 * 60 * 1e3;
|
|
5541
5541
|
var ZERO_MONEY = "0.00";
|
|
5542
|
+
var MOCK_PROTECTION = {
|
|
5543
|
+
status: chunkAVXA4F6G_js.CHECKOUT_PROTECTION_STATUS.PROTECTED,
|
|
5544
|
+
message: "Covered by Cimplify Protection"
|
|
5545
|
+
};
|
|
5542
5546
|
var PURCHASE_INTENT_MOBILE_MONEY_NETWORKS = new Set(
|
|
5543
|
-
Object.values(
|
|
5547
|
+
Object.values(chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK)
|
|
5544
5548
|
);
|
|
5545
5549
|
var MOCK_PURCHASE_INTENT = {
|
|
5546
5550
|
OWNER_KIND: { ACCOUNT: "account", STOREFRONT_SESSION: "storefront_session" },
|
|
@@ -5590,35 +5594,37 @@ function decimal(value) {
|
|
|
5590
5594
|
return wireMoney(value.toFixed(2));
|
|
5591
5595
|
}
|
|
5592
5596
|
function paymentOptions(intentId, currency, amount, expiresAt) {
|
|
5593
|
-
const normalizedCurrency =
|
|
5597
|
+
const normalizedCurrency = chunkAVXA4F6G_js.currencyCode(currency);
|
|
5594
5598
|
const normalizedAmount = wireMoney(amount);
|
|
5595
5599
|
return [
|
|
5596
5600
|
{
|
|
5597
|
-
id: `${intentId}:${
|
|
5601
|
+
id: `${intentId}:${chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD}`,
|
|
5598
5602
|
rank: 0,
|
|
5599
|
-
method_kind:
|
|
5600
|
-
collection_mode:
|
|
5601
|
-
provider:
|
|
5603
|
+
method_kind: chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD,
|
|
5604
|
+
collection_mode: chunkAVXA4F6G_js.PAYMENT_COLLECTION_MODE.CREDENTIAL_CHARGE,
|
|
5605
|
+
provider: chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_PROVIDER.PAYSTACK,
|
|
5602
5606
|
principal_amount: normalizedAmount,
|
|
5603
5607
|
fee_amount: wireMoney(ZERO_MONEY),
|
|
5604
5608
|
customer_debit_amount: normalizedAmount,
|
|
5605
5609
|
currency: normalizedCurrency,
|
|
5606
|
-
|
|
5607
|
-
|
|
5610
|
+
protection: MOCK_PROTECTION,
|
|
5611
|
+
status: chunkAVXA4F6G_js.PAYMENT_OPTION_STATUS.ELIGIBLE,
|
|
5612
|
+
expected_next_action: chunkAVXA4F6G_js.PAYMENT_OPTION_NEXT_ACTION.PROVIDER_APPROVAL,
|
|
5608
5613
|
expires_at: expiresAt
|
|
5609
5614
|
},
|
|
5610
5615
|
{
|
|
5611
|
-
id: `${intentId}:${
|
|
5616
|
+
id: `${intentId}:${chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY}`,
|
|
5612
5617
|
rank: 1,
|
|
5613
|
-
method_kind:
|
|
5614
|
-
collection_mode:
|
|
5615
|
-
provider:
|
|
5618
|
+
method_kind: chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY,
|
|
5619
|
+
collection_mode: chunkAVXA4F6G_js.PAYMENT_COLLECTION_MODE.REQUEST_TO_PAY,
|
|
5620
|
+
provider: chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_PROVIDER.PAYSTACK,
|
|
5616
5621
|
principal_amount: normalizedAmount,
|
|
5617
5622
|
fee_amount: wireMoney(ZERO_MONEY),
|
|
5618
5623
|
customer_debit_amount: normalizedAmount,
|
|
5619
5624
|
currency: normalizedCurrency,
|
|
5620
|
-
|
|
5621
|
-
|
|
5625
|
+
protection: MOCK_PROTECTION,
|
|
5626
|
+
status: chunkAVXA4F6G_js.PAYMENT_OPTION_STATUS.ELIGIBLE,
|
|
5627
|
+
expected_next_action: chunkAVXA4F6G_js.PAYMENT_OPTION_NEXT_ACTION.PROVIDER_APPROVAL,
|
|
5622
5628
|
expires_at: expiresAt
|
|
5623
5629
|
}
|
|
5624
5630
|
];
|
|
@@ -5631,7 +5637,7 @@ function termsForCart(input) {
|
|
|
5631
5637
|
terms_version: input.version,
|
|
5632
5638
|
terms_digest: `mock:${input.intentId}:${input.revision}:${input.version}`,
|
|
5633
5639
|
money: {
|
|
5634
|
-
currency:
|
|
5640
|
+
currency: chunkAVXA4F6G_js.currencyCode(input.currency),
|
|
5635
5641
|
subtotal: wireMoney(input.subtotal),
|
|
5636
5642
|
discount_total: wireMoney(input.discount),
|
|
5637
5643
|
tax_total: wireMoney(input.tax),
|
|
@@ -5653,8 +5659,8 @@ function termsForCart(input) {
|
|
|
5653
5659
|
compliance: {
|
|
5654
5660
|
policy_name: MOCK_PURCHASE_INTENT.COMPLIANCE.POLICY_NAME,
|
|
5655
5661
|
policy_version: 1,
|
|
5656
|
-
lane:
|
|
5657
|
-
reason_code:
|
|
5662
|
+
lane: chunkAVXA4F6G_js.CHECKOUT_COMPLIANCE_LANE.NATIVE,
|
|
5663
|
+
reason_code: chunkAVXA4F6G_js.CHECKOUT_COMPLIANCE_REASON.PHYSICAL_GOODS_NATIVE,
|
|
5658
5664
|
evidence_digest: `mock-compliance:${input.intentId}`
|
|
5659
5665
|
},
|
|
5660
5666
|
payment_options: isExactlyZero(input.total) ? [] : paymentOptions(input.intentId, input.currency, input.total, input.validUntil),
|
|
@@ -5673,20 +5679,20 @@ function intentView(intent) {
|
|
|
5673
5679
|
}
|
|
5674
5680
|
function purchasingPrincipal(session) {
|
|
5675
5681
|
if (!session.is_authenticated) {
|
|
5676
|
-
return { kind:
|
|
5682
|
+
return { kind: chunkAVXA4F6G_js.PURCHASING_PRINCIPAL_KIND.GUEST };
|
|
5677
5683
|
}
|
|
5678
5684
|
if (!session.account_id) throw validation("Authenticated mock session has no account authority");
|
|
5679
5685
|
return {
|
|
5680
|
-
kind:
|
|
5686
|
+
kind: chunkAVXA4F6G_js.PURCHASING_PRINCIPAL_KIND.ACCOUNT,
|
|
5681
5687
|
account_id: session.account_id
|
|
5682
5688
|
};
|
|
5683
5689
|
}
|
|
5684
5690
|
function assertSupportedTenderPreference(request) {
|
|
5685
|
-
if (request.source.kind !==
|
|
5691
|
+
if (request.source.kind !== chunkAVXA4F6G_js.PURCHASE_INTENT_SOURCE_KIND.CART) return;
|
|
5686
5692
|
const checkout = request.checkout;
|
|
5687
5693
|
if (!checkout) throw validation("Cart checkout input is required");
|
|
5688
5694
|
const preference = checkout.tender_preference;
|
|
5689
|
-
if (preference?.method_kind !==
|
|
5695
|
+
if (preference?.method_kind !== chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY || preference.authority.authority_kind !== chunkAVXA4F6G_js.MOBILE_MONEY_TENDER_AUTHORITY_KIND.TRANSIENT) {
|
|
5690
5696
|
return;
|
|
5691
5697
|
}
|
|
5692
5698
|
if (!PURCHASE_INTENT_MOBILE_MONEY_NETWORKS.has(preference.authority.network)) {
|
|
@@ -5726,7 +5732,7 @@ function createPurchaseIntentMockService(options) {
|
|
|
5726
5732
|
);
|
|
5727
5733
|
bus.emit(MOCK_PURCHASE_INTENT.EVENT.ORDER_CONFIRMED, { order_id: order.id }, order.business_id);
|
|
5728
5734
|
const completed = {
|
|
5729
|
-
status:
|
|
5735
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED,
|
|
5730
5736
|
intent_id: intent.id,
|
|
5731
5737
|
attempt_id: attemptId,
|
|
5732
5738
|
order_id: order.id,
|
|
@@ -5743,16 +5749,17 @@ function createPurchaseIntentMockService(options) {
|
|
|
5743
5749
|
return {
|
|
5744
5750
|
mint(session, request) {
|
|
5745
5751
|
if (!request.client_intent_key.trim()) throw validation("client_intent_key required");
|
|
5746
|
-
if (request.source.kind !==
|
|
5752
|
+
if (request.source.kind !== chunkAVXA4F6G_js.PURCHASE_INTENT_SOURCE_KIND.CART) {
|
|
5747
5753
|
throw validation("The mock currently prepares cart purchase intents only");
|
|
5748
5754
|
}
|
|
5749
5755
|
const checkoutInput = request.checkout;
|
|
5750
5756
|
if (!checkoutInput) throw validation("Cart checkout input is required");
|
|
5757
|
+
if (!checkoutInput.address_info) throw validation("Checkout address_info is required");
|
|
5751
5758
|
assertSupportedTenderPreference(request);
|
|
5752
5759
|
const cart = registry.carts.get(request.source.cart_id);
|
|
5753
5760
|
if (!cart) throw notFound(`Cart ${request.source.cart_id} not found`);
|
|
5754
5761
|
if (cart.items.length === 0) {
|
|
5755
|
-
throw validation("Cart is empty", { code:
|
|
5762
|
+
throw validation("Cart is empty", { code: chunkAVXA4F6G_js.ErrorCode.CART_EMPTY });
|
|
5756
5763
|
}
|
|
5757
5764
|
const principal = purchasingPrincipal(session);
|
|
5758
5765
|
const owner = intentOwner(session);
|
|
@@ -5781,14 +5788,14 @@ function createPurchaseIntentMockService(options) {
|
|
|
5781
5788
|
seller_business_id: cart.business_id,
|
|
5782
5789
|
principal,
|
|
5783
5790
|
revision: 1,
|
|
5784
|
-
status:
|
|
5791
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_STATUS.OPEN,
|
|
5785
5792
|
source: {
|
|
5786
|
-
kind:
|
|
5793
|
+
kind: chunkAVXA4F6G_js.PURCHASE_INTENT_SOURCE_KIND.CART,
|
|
5787
5794
|
source_id: cart.id,
|
|
5788
5795
|
source_version: cart.updated_at,
|
|
5789
5796
|
seller_business_id: cart.business_id,
|
|
5790
5797
|
subject: {
|
|
5791
|
-
kind:
|
|
5798
|
+
kind: chunkAVXA4F6G_js.PURCHASING_PRINCIPAL_KIND.BUSINESS,
|
|
5792
5799
|
business_id: cart.business_id
|
|
5793
5800
|
},
|
|
5794
5801
|
binding_digest: `mock-cart:${cart.id}:${cart.updated_at}`
|
|
@@ -5797,14 +5804,14 @@ function createPurchaseIntentMockService(options) {
|
|
|
5797
5804
|
id: line.id,
|
|
5798
5805
|
ordinal,
|
|
5799
5806
|
sellable: {
|
|
5800
|
-
kind: line.variant_id ?
|
|
5807
|
+
kind: line.variant_id ? chunkAVXA4F6G_js.PURCHASE_INTENT_SELLABLE_KIND.VARIANT : chunkAVXA4F6G_js.PURCHASE_INTENT_SELLABLE_KIND.PRODUCT,
|
|
5801
5808
|
product_id: line.item_id,
|
|
5802
5809
|
variant_id: line.variant_id,
|
|
5803
5810
|
location_id: checkoutInput.location_id || MOCK_PURCHASE_INTENT.DEFAULT_LOCATION_ID
|
|
5804
5811
|
},
|
|
5805
5812
|
quantity: line.quantity,
|
|
5806
5813
|
configuration: {
|
|
5807
|
-
kind:
|
|
5814
|
+
kind: chunkAVXA4F6G_js.PURCHASE_INTENT_LINE_CONFIGURATION_KIND.SIMPLE,
|
|
5808
5815
|
variant_id: line.variant_id,
|
|
5809
5816
|
customer_inputs: line.customer_inputs
|
|
5810
5817
|
}
|
|
@@ -5817,7 +5824,7 @@ function createPurchaseIntentMockService(options) {
|
|
|
5817
5824
|
quantity: line.quantity,
|
|
5818
5825
|
unit_price: decimal(unitPrice),
|
|
5819
5826
|
line_subtotal: decimal(lineSubtotal),
|
|
5820
|
-
currency:
|
|
5827
|
+
currency: chunkAVXA4F6G_js.currencyCode(cart.currency)
|
|
5821
5828
|
};
|
|
5822
5829
|
}),
|
|
5823
5830
|
current_terms: terms,
|
|
@@ -5862,18 +5869,18 @@ function createPurchaseIntentMockService(options) {
|
|
|
5862
5869
|
},
|
|
5863
5870
|
confirm(session, intentId, request) {
|
|
5864
5871
|
const intent = stored(session, intentId);
|
|
5865
|
-
if (intent.status ===
|
|
5872
|
+
if (intent.status === chunkAVXA4F6G_js.PURCHASE_INTENT_STATUS.CONVERTED && intent.last_confirmation) {
|
|
5866
5873
|
const orderId2 = "order_id" in intent.last_confirmation ? intent.last_confirmation.order_id : void 0;
|
|
5867
5874
|
const order2 = orderId2 ? registry.orders.get(orderId2) : void 0;
|
|
5868
5875
|
if (order2?.payment_state === MOCK_PURCHASE_INTENT.PAYMENT_STATE.PAID) {
|
|
5869
5876
|
return {
|
|
5870
|
-
status:
|
|
5877
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED,
|
|
5871
5878
|
intent_id: intent.id,
|
|
5872
5879
|
attempt_id: "attempt_id" in intent.last_confirmation ? intent.last_confirmation.attempt_id : ids.raw(MOCK_PURCHASE_INTENT.ID_PREFIX.ATTEMPT),
|
|
5873
5880
|
order_id: order2.id
|
|
5874
5881
|
};
|
|
5875
5882
|
}
|
|
5876
|
-
if (order2?.payment_id && intent.last_confirmation.status ===
|
|
5883
|
+
if (order2?.payment_id && intent.last_confirmation.status === chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED) {
|
|
5877
5884
|
return completeProviderOrder(intent, order2, intent.last_confirmation.attempt_id);
|
|
5878
5885
|
}
|
|
5879
5886
|
return intent.last_confirmation;
|
|
@@ -5882,20 +5889,20 @@ function createPurchaseIntentMockService(options) {
|
|
|
5882
5889
|
if (!terms) throw validation("Purchase intent has no current terms");
|
|
5883
5890
|
const zeroRail = isExactlyZero(terms.money.rail_amount);
|
|
5884
5891
|
const option = request.payment_option_id ? terms.payment_options.find(
|
|
5885
|
-
(candidate) => candidate.id === request.payment_option_id && candidate.status ===
|
|
5892
|
+
(candidate) => candidate.id === request.payment_option_id && candidate.status === chunkAVXA4F6G_js.PAYMENT_OPTION_STATUS.ELIGIBLE
|
|
5886
5893
|
) : void 0;
|
|
5887
5894
|
const acceptedBaseTermsChanged = !sameDecimal(request.accepted_due_now, terms.money.due_now) || request.currency !== terms.money.currency;
|
|
5888
5895
|
if (request.accepted_intent_revision !== intent.revision || request.accepted_terms_version !== terms.terms_version || acceptedBaseTermsChanged) {
|
|
5889
5896
|
const deltas = acceptedBaseTermsChanged ? [
|
|
5890
5897
|
{
|
|
5891
|
-
kind:
|
|
5892
|
-
component:
|
|
5898
|
+
kind: chunkAVXA4F6G_js.CHECKOUT_TERMS_DELTA_KIND.MONEY,
|
|
5899
|
+
component: chunkAVXA4F6G_js.CHECKOUT_TERMS_COMPONENT.DUE_NOW,
|
|
5893
5900
|
accepted: request.accepted_due_now,
|
|
5894
5901
|
replacement: terms.money.due_now
|
|
5895
5902
|
}
|
|
5896
5903
|
] : [
|
|
5897
5904
|
{
|
|
5898
|
-
kind:
|
|
5905
|
+
kind: chunkAVXA4F6G_js.CHECKOUT_TERMS_DELTA_KIND.PAYMENT_OPTION,
|
|
5899
5906
|
accepted_option_id: request.payment_option_id ?? null,
|
|
5900
5907
|
accepted_customer_debit_amount: request.accepted_customer_debit_amount,
|
|
5901
5908
|
replacement_option_id: option?.id ?? null,
|
|
@@ -5903,7 +5910,7 @@ function createPurchaseIntentMockService(options) {
|
|
|
5903
5910
|
}
|
|
5904
5911
|
];
|
|
5905
5912
|
return {
|
|
5906
|
-
status:
|
|
5913
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED,
|
|
5907
5914
|
intent_id: intent.id,
|
|
5908
5915
|
replacement: terms,
|
|
5909
5916
|
deltas
|
|
@@ -5911,11 +5918,11 @@ function createPurchaseIntentMockService(options) {
|
|
|
5911
5918
|
}
|
|
5912
5919
|
if (!zeroRail && !option || zeroRail && request.payment_option_id != null) {
|
|
5913
5920
|
return {
|
|
5914
|
-
status:
|
|
5921
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE,
|
|
5915
5922
|
intent_id: intent.id,
|
|
5916
5923
|
lines: intent.lines.map((line) => ({
|
|
5917
5924
|
line_id: line.id,
|
|
5918
|
-
reason:
|
|
5925
|
+
reason: chunkAVXA4F6G_js.CHECKOUT_INVALIDATION_REASON.PAYMENT_OPTION_CHANGED
|
|
5919
5926
|
}))
|
|
5920
5927
|
};
|
|
5921
5928
|
}
|
|
@@ -5924,12 +5931,12 @@ function createPurchaseIntentMockService(options) {
|
|
|
5924
5931
|
);
|
|
5925
5932
|
if (!acceptedCustomerDebitMatches) {
|
|
5926
5933
|
return {
|
|
5927
|
-
status:
|
|
5934
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED,
|
|
5928
5935
|
intent_id: intent.id,
|
|
5929
5936
|
replacement: terms,
|
|
5930
5937
|
deltas: [
|
|
5931
5938
|
{
|
|
5932
|
-
kind:
|
|
5939
|
+
kind: chunkAVXA4F6G_js.CHECKOUT_TERMS_DELTA_KIND.PAYMENT_OPTION,
|
|
5933
5940
|
accepted_option_id: request.payment_option_id ?? null,
|
|
5934
5941
|
accepted_customer_debit_amount: request.accepted_customer_debit_amount,
|
|
5935
5942
|
replacement_option_id: option?.id ?? null,
|
|
@@ -5938,21 +5945,21 @@ function createPurchaseIntentMockService(options) {
|
|
|
5938
5945
|
]
|
|
5939
5946
|
};
|
|
5940
5947
|
}
|
|
5941
|
-
if (intent.mint_request.source.kind !==
|
|
5948
|
+
if (intent.mint_request.source.kind !== chunkAVXA4F6G_js.PURCHASE_INTENT_SOURCE_KIND.CART) {
|
|
5942
5949
|
throw validation("The mock currently confirms cart purchase intents only");
|
|
5943
5950
|
}
|
|
5944
5951
|
const checkoutInput = intent.mint_request.checkout;
|
|
5945
5952
|
if (!checkoutInput) throw validation("Cart checkout input is required");
|
|
5946
5953
|
const cart = registry.carts.get(intent.mint_request.source.cart_id);
|
|
5947
5954
|
if (!cart || cart.status !== MOCK_PURCHASE_INTENT.CART_STATUS.ACTIVE) {
|
|
5948
|
-
return { status:
|
|
5955
|
+
return { status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.SOURCE_UNAVAILABLE, intent_id: intent.id };
|
|
5949
5956
|
}
|
|
5950
5957
|
const attemptId = ids.raw(MOCK_PURCHASE_INTENT.ID_PREFIX.ATTEMPT);
|
|
5951
5958
|
const orderId = ids.order();
|
|
5952
5959
|
const orderNumber = ids.orderNumber();
|
|
5953
5960
|
const paymentId = zeroRail ? void 0 : ids.payment();
|
|
5954
5961
|
const paymentReference = zeroRail ? void 0 : ids.payment();
|
|
5955
|
-
const needsProvider = option?.method_kind ===
|
|
5962
|
+
const needsProvider = option?.method_kind === chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD || option?.method_kind === chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY;
|
|
5956
5963
|
const paid = zeroRail;
|
|
5957
5964
|
const order = {
|
|
5958
5965
|
id: orderId,
|
|
@@ -6009,28 +6016,28 @@ function createPurchaseIntentMockService(options) {
|
|
|
6009
6016
|
);
|
|
6010
6017
|
}
|
|
6011
6018
|
let confirmation;
|
|
6012
|
-
if (option?.method_kind ===
|
|
6019
|
+
if (option?.method_kind === chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY) {
|
|
6013
6020
|
confirmation = {
|
|
6014
|
-
status:
|
|
6021
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED,
|
|
6015
6022
|
intent_id: intent.id,
|
|
6016
6023
|
attempt_id: attemptId,
|
|
6017
6024
|
order_id: orderId,
|
|
6018
6025
|
authorization_type: chunkEV2EVOYS_js.AUTHORIZATION_TYPE.OTP,
|
|
6019
6026
|
display_text: "Approve on your mobile money app"
|
|
6020
6027
|
};
|
|
6021
|
-
} else if (option?.method_kind ===
|
|
6028
|
+
} else if (option?.method_kind === chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD) {
|
|
6022
6029
|
confirmation = {
|
|
6023
|
-
status:
|
|
6030
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED,
|
|
6024
6031
|
intent_id: intent.id,
|
|
6025
6032
|
attempt_id: attemptId,
|
|
6026
6033
|
order_id: orderId,
|
|
6027
|
-
provider:
|
|
6034
|
+
provider: chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_PROVIDER.PAYSTACK,
|
|
6028
6035
|
client_secret: `access_${paymentReference}`,
|
|
6029
6036
|
public_key: MOCK_PURCHASE_INTENT.MOCK_PAYSTACK_PUBLIC_KEY
|
|
6030
6037
|
};
|
|
6031
6038
|
} else {
|
|
6032
6039
|
confirmation = {
|
|
6033
|
-
status:
|
|
6040
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED,
|
|
6034
6041
|
intent_id: intent.id,
|
|
6035
6042
|
attempt_id: attemptId,
|
|
6036
6043
|
order_id: orderId
|
|
@@ -6041,7 +6048,7 @@ function createPurchaseIntentMockService(options) {
|
|
|
6041
6048
|
}
|
|
6042
6049
|
registry.purchaseIntents.put(intent.id, {
|
|
6043
6050
|
...intent,
|
|
6044
|
-
status:
|
|
6051
|
+
status: chunkAVXA4F6G_js.PURCHASE_INTENT_STATUS.CONVERTED,
|
|
6045
6052
|
converted_order_id: orderId,
|
|
6046
6053
|
updated_at: clock.iso(),
|
|
6047
6054
|
last_confirmation: confirmation
|
|
@@ -6051,7 +6058,7 @@ function createPurchaseIntentMockService(options) {
|
|
|
6051
6058
|
submitAction(session, intentId, attemptId, request) {
|
|
6052
6059
|
const intent = stored(session, intentId);
|
|
6053
6060
|
const previous = intent.last_confirmation;
|
|
6054
|
-
if (!previous || previous.status !==
|
|
6061
|
+
if (!previous || previous.status !== chunkAVXA4F6G_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED || previous.attempt_id !== attemptId) {
|
|
6055
6062
|
throw validation("Purchase-intent attempt is not awaiting authorization");
|
|
6056
6063
|
}
|
|
6057
6064
|
if (!request.authorization) throw validation("authorization required");
|
|
@@ -335,6 +335,25 @@ var PURCHASE_INTENT_MOBILE_MONEY_NETWORK = {
|
|
|
335
335
|
TELECEL: "telecel",
|
|
336
336
|
AIRTEL: "airtel"
|
|
337
337
|
};
|
|
338
|
+
var NATIVE_PURCHASE_PLATFORM = {
|
|
339
|
+
IOS: "ios",
|
|
340
|
+
ANDROID: "android"
|
|
341
|
+
};
|
|
342
|
+
var CHECKOUT_PURCHASE_SURFACE = {
|
|
343
|
+
NATIVE_APP: "native_app",
|
|
344
|
+
WEB: "web"
|
|
345
|
+
};
|
|
346
|
+
var PURCHASE_SURFACE = {
|
|
347
|
+
NATIVE_IOS: "native_ios",
|
|
348
|
+
NATIVE_ANDROID: "native_android",
|
|
349
|
+
WEB: "web"
|
|
350
|
+
};
|
|
351
|
+
var PURCHASE_DISPOSITION = {
|
|
352
|
+
EXECUTE: "execute",
|
|
353
|
+
STORE_PURCHASE: "store_purchase",
|
|
354
|
+
LINK_OUT: "link_out",
|
|
355
|
+
LOCKED: "locked"
|
|
356
|
+
};
|
|
338
357
|
var CHECKOUT_COMPLIANCE_LANE = {
|
|
339
358
|
COMMERCE_CORE: "commerce_core",
|
|
340
359
|
NATIVE: "native",
|
|
@@ -345,11 +364,15 @@ var CHECKOUT_COMPLIANCE_LANE = {
|
|
|
345
364
|
var CHECKOUT_COMPLIANCE_REASON = {
|
|
346
365
|
COMMERCE_CORE: "commerce_core",
|
|
347
366
|
PHYSICAL_GOODS_NATIVE: "physical_goods_native",
|
|
367
|
+
PHYSICAL_WORLD_COMMERCE_NATIVE: "physical_world_commerce_native",
|
|
348
368
|
STORE_KIT_REQUIRED: "store_kit_required",
|
|
349
369
|
PERMITTED_EXTERNAL_PURCHASE: "permitted_external_purchase",
|
|
350
370
|
DISTRIBUTION_AUTHORITY_UNVERIFIED: "distribution_authority_unverified",
|
|
351
371
|
PRODUCT_POLICY_UNRESOLVED: "product_policy_unresolved",
|
|
352
|
-
MIXED_LANE_UNSUPPORTED: "mixed_lane_unsupported"
|
|
372
|
+
MIXED_LANE_UNSUPPORTED: "mixed_lane_unsupported",
|
|
373
|
+
EXTERNAL_DIGITAL_NATIVE: "external_digital_native",
|
|
374
|
+
MIXED_FACTS_NATIVE: "mixed_facts_native",
|
|
375
|
+
UNRESOLVED_FACTS_NATIVE: "unresolved_facts_native"
|
|
353
376
|
};
|
|
354
377
|
var PAYMENT_INSTRUMENT_DISPLAY_KIND = {
|
|
355
378
|
CARD: "card",
|
|
@@ -394,6 +417,10 @@ var LEGACY_CHECKOUT_PAYMENT_STATUS = {
|
|
|
394
417
|
UNKNOWN: "unknown",
|
|
395
418
|
REQUIRES_ACTION: "requires_action"
|
|
396
419
|
};
|
|
420
|
+
var CHECKOUT_PROTECTION_STATUS = {
|
|
421
|
+
PROTECTED: "protected",
|
|
422
|
+
UNAVAILABLE: "unavailable"
|
|
423
|
+
};
|
|
397
424
|
var CHECKOUT_TERMS_COMPONENT = {
|
|
398
425
|
SUBTOTAL: "subtotal",
|
|
399
426
|
DISCOUNT_TOTAL: "discount_total",
|
|
@@ -472,4 +499,4 @@ var PURCHASE_INTENT_ERROR_CODE = {
|
|
|
472
499
|
SOURCE_UNAVAILABLE: "SOURCE_UNAVAILABLE"
|
|
473
500
|
};
|
|
474
501
|
|
|
475
|
-
export { CHECKOUT_COMPLIANCE_LANE, CHECKOUT_COMPLIANCE_REASON, CHECKOUT_INVALIDATION_REASON, CHECKOUT_MATERIAL_TERMS_COMPONENT, CHECKOUT_TERMS_COMPONENT, CHECKOUT_TERMS_DELTA_KIND, CimplifyError, ERROR_HINTS, ErrorCode, IdempotencyMismatchError, LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, LEGACY_CHECKOUT_PAYMENT_STATUS, MOBILE_MONEY_TENDER_AUTHORITY_KIND, PAYMENT_COLLECTION_MODE, PAYMENT_INSTRUMENT_DISPLAY_KIND, PAYMENT_OPTION_NEXT_ACTION, PAYMENT_OPTION_STATUS, PURCHASE_INTENT_ACTION_DECISION, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_ERROR_CODE, PURCHASE_INTENT_LINE_CONFIGURATION_KIND, PURCHASE_INTENT_MOBILE_MONEY_NETWORK, PURCHASE_INTENT_OFFER_KIND, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_PAYMENT_PROVIDER, PURCHASE_INTENT_RESOLUTION_KIND, PURCHASE_INTENT_RESOLVE_STATUS, PURCHASE_INTENT_SELLABLE_KIND, PURCHASE_INTENT_SOURCE_KIND, PURCHASE_INTENT_STATUS, PURCHASING_PRINCIPAL_KIND, ZERO, currencyCode, enrichError, getErrorHint, isCimplifyError, isIdempotencyMismatchError, isQuoteConflictRequiringConsent, isQuoteError, isRetryableError, isSupportedCurrency, money, moneyFromNumber };
|
|
502
|
+
export { CHECKOUT_COMPLIANCE_LANE, CHECKOUT_COMPLIANCE_REASON, CHECKOUT_INVALIDATION_REASON, CHECKOUT_MATERIAL_TERMS_COMPONENT, CHECKOUT_PROTECTION_STATUS, CHECKOUT_PURCHASE_SURFACE, CHECKOUT_TERMS_COMPONENT, CHECKOUT_TERMS_DELTA_KIND, CimplifyError, ERROR_HINTS, ErrorCode, IdempotencyMismatchError, LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, LEGACY_CHECKOUT_PAYMENT_STATUS, MOBILE_MONEY_TENDER_AUTHORITY_KIND, NATIVE_PURCHASE_PLATFORM, PAYMENT_COLLECTION_MODE, PAYMENT_INSTRUMENT_DISPLAY_KIND, PAYMENT_OPTION_NEXT_ACTION, PAYMENT_OPTION_STATUS, PURCHASE_DISPOSITION, PURCHASE_INTENT_ACTION_DECISION, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_ERROR_CODE, PURCHASE_INTENT_LINE_CONFIGURATION_KIND, PURCHASE_INTENT_MOBILE_MONEY_NETWORK, PURCHASE_INTENT_OFFER_KIND, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_PAYMENT_PROVIDER, PURCHASE_INTENT_RESOLUTION_KIND, PURCHASE_INTENT_RESOLVE_STATUS, PURCHASE_INTENT_SELLABLE_KIND, PURCHASE_INTENT_SOURCE_KIND, PURCHASE_INTENT_STATUS, PURCHASE_SURFACE, PURCHASING_PRINCIPAL_KIND, ZERO, currencyCode, enrichError, getErrorHint, isCimplifyError, isIdempotencyMismatchError, isQuoteConflictRequiringConsent, isQuoteError, isRetryableError, isSupportedCurrency, money, moneyFromNumber };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CHECKOUT_STATUS, PAYMENT_METHOD, CHECKOUT_NEXT_ACTION, CHECKOUT_ORDER_RESULT_STATUS, ORDER_TYPE, AUTHORIZATION_TYPE } from './chunk-33VCYWVL.mjs';
|
|
2
|
-
import { paymentAuthorizationUrl, purchaseIntentMobileMoneyNetwork } from './chunk-
|
|
3
|
-
import { ErrorCode, PURCHASE_INTENT_RESOLVE_STATUS, CimplifyError, PAYMENT_OPTION_STATUS, isSupportedCurrency, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_ACTION_DECISION, PURCHASE_INTENT_RESOLUTION_KIND, PURCHASE_INTENT_ERROR_CODE, enrichError, LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_SOURCE_KIND, LEGACY_CHECKOUT_PAYMENT_STATUS, getErrorHint, MOBILE_MONEY_TENDER_AUTHORITY_KIND } from './chunk-
|
|
2
|
+
import { paymentAuthorizationUrl, purchaseIntentMobileMoneyNetwork } from './chunk-NYDVVNZI.mjs';
|
|
3
|
+
import { ErrorCode, PURCHASE_INTENT_RESOLVE_STATUS, CimplifyError, PAYMENT_OPTION_STATUS, isSupportedCurrency, PURCHASE_INTENT_CONFIRM_STATUS, PURCHASE_INTENT_ACTION_DECISION, PURCHASE_INTENT_RESOLUTION_KIND, PURCHASE_INTENT_ERROR_CODE, enrichError, LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, PURCHASE_INTENT_PAYMENT_METHOD, PURCHASE_INTENT_SOURCE_KIND, LEGACY_CHECKOUT_PAYMENT_STATUS, getErrorHint, MOBILE_MONEY_TENDER_AUTHORITY_KIND } from './chunk-NJYR6GGM.mjs';
|
|
4
4
|
|
|
5
5
|
// src/types/result.ts
|
|
6
6
|
function ok(value) {
|
|
@@ -1610,7 +1610,7 @@ var CHECKOUT_CONFIRMATION_SCOPE_PREFIX = "checkout-confirm:";
|
|
|
1610
1610
|
var CHECKOUT_INTENT_RECOVERY_FINGERPRINT = "cart-intent-v1";
|
|
1611
1611
|
var ABORT_ERROR_NAME = "AbortError";
|
|
1612
1612
|
var AUTHORIZATION_POPUP_NAME = "cimplify-auth";
|
|
1613
|
-
var AUTHORIZATION_POPUP_FEATURES = "width=520,height=760
|
|
1613
|
+
var AUTHORIZATION_POPUP_FEATURES = "width=520,height=760";
|
|
1614
1614
|
var ORDER_TOKEN_QUERY_PARAMETER = "token";
|
|
1615
1615
|
var CHECKOUT_API_ROUTE = {
|
|
1616
1616
|
COLLECTION_OPTIONS: "/api/v1/payments/collection-options",
|
|
@@ -2144,7 +2144,7 @@ var CheckoutService = class {
|
|
|
2144
2144
|
window.location.assign(authorizationUrl);
|
|
2145
2145
|
} else {
|
|
2146
2146
|
const popup = window.open(
|
|
2147
|
-
|
|
2147
|
+
"",
|
|
2148
2148
|
AUTHORIZATION_POPUP_NAME,
|
|
2149
2149
|
AUTHORIZATION_POPUP_FEATURES
|
|
2150
2150
|
);
|
|
@@ -2156,6 +2156,8 @@ var CheckoutService = class {
|
|
|
2156
2156
|
};
|
|
2157
2157
|
return PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2158
2158
|
}
|
|
2159
|
+
popup.opener = null;
|
|
2160
|
+
popup.location.replace(authorizationUrl);
|
|
2159
2161
|
}
|
|
2160
2162
|
}
|
|
2161
2163
|
actionFailure = {
|
|
@@ -3640,9 +3642,14 @@ var CimplifyElements = class {
|
|
|
3640
3642
|
account_id: this.accountId ?? void 0,
|
|
3641
3643
|
customer_id: this.customerId ?? void 0
|
|
3642
3644
|
};
|
|
3643
|
-
const
|
|
3645
|
+
const inactivityTimeoutMs = options.timeout_ms ?? 18e4;
|
|
3646
|
+
const shopperPendingStatuses = /* @__PURE__ */ new Set([
|
|
3647
|
+
CHECKOUT_STATUS.REVIEWING_TERMS,
|
|
3648
|
+
CHECKOUT_STATUS.AWAITING_AUTHORIZATION
|
|
3649
|
+
]);
|
|
3644
3650
|
return new Promise((resolve) => {
|
|
3645
3651
|
let settled = false;
|
|
3652
|
+
let timeout;
|
|
3646
3653
|
const cleanup = () => {
|
|
3647
3654
|
if (typeof window !== "undefined") {
|
|
3648
3655
|
window.removeEventListener("message", handleCheckoutMessage);
|
|
@@ -3659,15 +3666,23 @@ var CimplifyElements = class {
|
|
|
3659
3666
|
cleanup();
|
|
3660
3667
|
resolve(result);
|
|
3661
3668
|
};
|
|
3662
|
-
const
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3669
|
+
const armTimeout = () => {
|
|
3670
|
+
clearTimeout(timeout);
|
|
3671
|
+
timeout = setTimeout(() => {
|
|
3672
|
+
settle(
|
|
3673
|
+
toCheckoutError(
|
|
3674
|
+
ErrorCode.TIMEOUT,
|
|
3675
|
+
"Checkout timed out before receiving a terminal response.",
|
|
3676
|
+
true
|
|
3677
|
+
)
|
|
3678
|
+
);
|
|
3679
|
+
}, inactivityTimeoutMs);
|
|
3680
|
+
};
|
|
3681
|
+
const suspendTimeout = () => {
|
|
3682
|
+
clearTimeout(timeout);
|
|
3683
|
+
timeout = void 0;
|
|
3684
|
+
};
|
|
3685
|
+
armTimeout();
|
|
3671
3686
|
const handleCheckoutMessage = (event) => {
|
|
3672
3687
|
if (!isAllowedOrigin(event.origin)) {
|
|
3673
3688
|
return;
|
|
@@ -3680,10 +3695,16 @@ var CimplifyElements = class {
|
|
|
3680
3695
|
return;
|
|
3681
3696
|
}
|
|
3682
3697
|
if (message.type === MESSAGE_TYPES.CHECKOUT_STATUS) {
|
|
3698
|
+
if (shopperPendingStatuses.has(message.status)) {
|
|
3699
|
+
suspendTimeout();
|
|
3700
|
+
} else {
|
|
3701
|
+
armTimeout();
|
|
3702
|
+
}
|
|
3683
3703
|
options.on_status_change?.(message.status, message.context);
|
|
3684
3704
|
return;
|
|
3685
3705
|
}
|
|
3686
3706
|
if (message.type === MESSAGE_TYPES.TERMS_CHANGED) {
|
|
3707
|
+
suspendTimeout();
|
|
3687
3708
|
options.on_status_change?.(CHECKOUT_STATUS.REVIEWING_TERMS, {
|
|
3688
3709
|
intent_id: message.intent_id,
|
|
3689
3710
|
replacement_terms: message.replacement,
|
|
@@ -3692,6 +3713,7 @@ var CimplifyElements = class {
|
|
|
3692
3713
|
return;
|
|
3693
3714
|
}
|
|
3694
3715
|
if (message.type === MESSAGE_TYPES.SELECTION_UNAVAILABLE) {
|
|
3716
|
+
suspendTimeout();
|
|
3695
3717
|
options.on_status_change?.(CHECKOUT_STATUS.REVIEWING_TERMS, {
|
|
3696
3718
|
intent_id: message.intent_id,
|
|
3697
3719
|
unavailable_lines: message.lines
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkAVXA4F6G_js = require('./chunk-AVXA4F6G.js');
|
|
4
4
|
|
|
5
5
|
// src/utils/price.ts
|
|
6
6
|
var CURRENCY_SYMBOLS = {
|
|
@@ -468,14 +468,14 @@ function normalizeStatusResponse(response) {
|
|
|
468
468
|
return {
|
|
469
469
|
status: "pending",
|
|
470
470
|
paid: false,
|
|
471
|
-
amount:
|
|
471
|
+
amount: chunkAVXA4F6G_js.moneyFromNumber(0),
|
|
472
472
|
currency: "",
|
|
473
473
|
message: "No status available"
|
|
474
474
|
};
|
|
475
475
|
}
|
|
476
476
|
const res = response;
|
|
477
477
|
const normalizedStatus = normalizePaymentStatusValue(res.status ?? void 0);
|
|
478
|
-
const normalizedAmount = typeof res.amount === "string" ?
|
|
478
|
+
const normalizedAmount = typeof res.amount === "string" ? chunkAVXA4F6G_js.money(res.amount) : typeof res.amount === "number" && Number.isFinite(res.amount) ? chunkAVXA4F6G_js.moneyFromNumber(res.amount) : chunkAVXA4F6G_js.moneyFromNumber(0);
|
|
479
479
|
const normalizedCurrency = typeof res.currency === "string" && res.currency.trim().length > 0 ? res.currency : "";
|
|
480
480
|
const paidValue = res.paid === true && normalizedStatus !== "authorized" && !PAYMENT_REQUIRES_ACTION_STATUSES.has(normalizedStatus) && !PAYMENT_FAILURE_STATUSES.has(normalizedStatus);
|
|
481
481
|
const derivedPaid = paidValue || PAYMENT_SUCCESS_STATUSES.has(normalizedStatus);
|
|
@@ -514,9 +514,9 @@ function canonicalMobileMoneyProvider(provider) {
|
|
|
514
514
|
return MOBILE_MONEY_PROVIDER_ALIASES[normalized] ?? null;
|
|
515
515
|
}
|
|
516
516
|
var PURCHASE_INTENT_NETWORK_BY_PROVIDER = {
|
|
517
|
-
mtn:
|
|
518
|
-
telecel:
|
|
519
|
-
airteltigo:
|
|
517
|
+
mtn: chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.MTN,
|
|
518
|
+
telecel: chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.TELECEL,
|
|
519
|
+
airteltigo: chunkAVXA4F6G_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.AIRTEL
|
|
520
520
|
};
|
|
521
521
|
function purchaseIntentMobileMoneyNetwork(provider) {
|
|
522
522
|
const canonical = canonicalMobileMoneyProvider(provider);
|