@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.
Files changed (64) hide show
  1. package/dist/advanced.d.mts +3 -3
  2. package/dist/advanced.d.ts +3 -3
  3. package/dist/advanced.js +22 -22
  4. package/dist/advanced.mjs +3 -3
  5. package/dist/{catalogue-BlQ85Uma.d.mts → catalogue-CB44dO-g.d.mts} +4 -1
  6. package/dist/{catalogue-C8TqOj9K.d.ts → catalogue-lUdp-1hu.d.ts} +4 -1
  7. package/dist/{checkout-BqK9XUz5.d.mts → checkout-XoV4HNg2.d.mts} +311 -31
  8. package/dist/{checkout-BqK9XUz5.d.ts → checkout-XoV4HNg2.d.ts} +311 -31
  9. package/dist/{chunk-L5SNEU2O.mjs → chunk-3BTMAWL7.mjs} +47 -15
  10. package/dist/{chunk-BWEIMKLF.js → chunk-7SEOB5UW.js} +108 -76
  11. package/dist/{chunk-SFUJMS5E.js → chunk-AVXA4F6G.js} +33 -1
  12. package/dist/{chunk-UFOWPN3D.mjs → chunk-DPVDLMLI.mjs} +8 -13
  13. package/dist/{chunk-DQEXY542.js → chunk-H2WXUTMT.js} +211 -189
  14. package/dist/{chunk-6G3ANKQA.mjs → chunk-L4XKIMUO.mjs} +8 -1
  15. package/dist/{chunk-HYFA67A7.js → chunk-NJK3THWT.js} +67 -60
  16. package/dist/{chunk-RBNBSQI7.mjs → chunk-NJYR6GGM.mjs} +29 -2
  17. package/dist/{chunk-U54CWUUT.mjs → chunk-NYDVVNZI.mjs} +1 -1
  18. package/dist/{chunk-V4457OKB.mjs → chunk-RQT5BZ2Y.mjs} +36 -14
  19. package/dist/{chunk-XAUSDMMZ.js → chunk-UYFTOIFW.js} +6 -6
  20. package/dist/{chunk-WXREIBFW.js → chunk-YARZTZTB.js} +141 -146
  21. package/dist/{client-DhXeiUrf.d.ts → client-BQ_8FtA4.d.ts} +12 -2
  22. package/dist/{client-mXiUrV4X.d.mts → client-BWe1KWMf.d.mts} +12 -2
  23. package/dist/{index-DPWI5XcU.d.ts → index-C0k9om1S.d.ts} +2 -2
  24. package/dist/{index-B0AdZvrM.d.mts → index-DRMBo26v.d.mts} +2 -2
  25. package/dist/{index-CK8Nk5uQ.d.ts → index-DweR60Cv.d.ts} +2 -2
  26. package/dist/{index-DVfUh-ci.d.mts → index-aIQzSiP_.d.mts} +2 -2
  27. package/dist/index.d.mts +7 -7
  28. package/dist/index.d.ts +7 -7
  29. package/dist/index.js +166 -146
  30. package/dist/index.mjs +5 -5
  31. package/dist/mock/cli.mjs +9 -0
  32. package/dist/mock/library.js +9 -0
  33. package/dist/mock/library.mjs +9 -0
  34. package/dist/mock/msw.js +9 -0
  35. package/dist/mock/msw.mjs +9 -0
  36. package/dist/{price-BUDv1rI7.d.mts → price-CUGIYRtD.d.mts} +1 -1
  37. package/dist/{price-6hQIIac9.d.ts → price-De-sxcuj.d.ts} +1 -1
  38. package/dist/react.d.mts +3 -3
  39. package/dist/react.d.ts +3 -3
  40. package/dist/react.js +151 -151
  41. package/dist/react.mjs +4 -4
  42. package/dist/{server-DJ0mSs9i.d.mts → server-7soMMUgP.d.ts} +3 -2
  43. package/dist/{server-DSTX76Ki.d.ts → server-DDEJ7e9s.d.mts} +3 -2
  44. package/dist/server.d.mts +3 -3
  45. package/dist/server.d.ts +3 -3
  46. package/dist/server.js +10 -10
  47. package/dist/server.mjs +4 -4
  48. package/dist/testing/msw.d.mts +2 -2
  49. package/dist/testing/msw.d.ts +2 -2
  50. package/dist/testing/msw.js +3 -3
  51. package/dist/testing/msw.mjs +2 -2
  52. package/dist/testing/suite.d.mts +5 -5
  53. package/dist/testing/suite.d.ts +5 -5
  54. package/dist/testing/suite.js +26 -25
  55. package/dist/testing/suite.mjs +7 -6
  56. package/dist/testing.d.mts +315 -8
  57. package/dist/testing.d.ts +315 -8
  58. package/dist/testing.js +118 -118
  59. package/dist/testing.mjs +7 -7
  60. package/dist/utils.d.mts +3 -3
  61. package/dist/utils.d.ts +3 -3
  62. package/dist/utils.js +32 -32
  63. package/dist/utils.mjs +2 -2
  64. 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-RBNBSQI7.mjs';
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 chunkSFUJMS5E_js = require('./chunk-SFUJMS5E.js');
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(chunkSFUJMS5E_js.ErrorCode.NOT_FOUND, msg, 404);
2104
- var validation = (msg, ctx) => new MockError(chunkSFUJMS5E_js.ErrorCode.VALIDATION_ERROR, msg, 400, ctx);
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: chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.MTN
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: chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.TELECEL
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: chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.AIRTEL
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: chunkSFUJMS5E_js.LEGACY_CHECKOUT_PAYMENT_STATUS.SUCCEEDED,
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(chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK)
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 = chunkSFUJMS5E_js.currencyCode(currency);
5597
+ const normalizedCurrency = chunkAVXA4F6G_js.currencyCode(currency);
5594
5598
  const normalizedAmount = wireMoney(amount);
5595
5599
  return [
5596
5600
  {
5597
- id: `${intentId}:${chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD}`,
5601
+ id: `${intentId}:${chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD}`,
5598
5602
  rank: 0,
5599
- method_kind: chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD,
5600
- collection_mode: chunkSFUJMS5E_js.PAYMENT_COLLECTION_MODE.CREDENTIAL_CHARGE,
5601
- provider: chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_PROVIDER.PAYSTACK,
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
- status: chunkSFUJMS5E_js.PAYMENT_OPTION_STATUS.ELIGIBLE,
5607
- expected_next_action: chunkSFUJMS5E_js.PAYMENT_OPTION_NEXT_ACTION.PROVIDER_APPROVAL,
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}:${chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY}`,
5616
+ id: `${intentId}:${chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY}`,
5612
5617
  rank: 1,
5613
- method_kind: chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY,
5614
- collection_mode: chunkSFUJMS5E_js.PAYMENT_COLLECTION_MODE.REQUEST_TO_PAY,
5615
- provider: chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_PROVIDER.PAYSTACK,
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
- status: chunkSFUJMS5E_js.PAYMENT_OPTION_STATUS.ELIGIBLE,
5621
- expected_next_action: chunkSFUJMS5E_js.PAYMENT_OPTION_NEXT_ACTION.PROVIDER_APPROVAL,
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: chunkSFUJMS5E_js.currencyCode(input.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: chunkSFUJMS5E_js.CHECKOUT_COMPLIANCE_LANE.NATIVE,
5657
- reason_code: chunkSFUJMS5E_js.CHECKOUT_COMPLIANCE_REASON.PHYSICAL_GOODS_NATIVE,
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: chunkSFUJMS5E_js.PURCHASING_PRINCIPAL_KIND.GUEST };
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: chunkSFUJMS5E_js.PURCHASING_PRINCIPAL_KIND.ACCOUNT,
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 !== chunkSFUJMS5E_js.PURCHASE_INTENT_SOURCE_KIND.CART) return;
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 !== chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY || preference.authority.authority_kind !== chunkSFUJMS5E_js.MOBILE_MONEY_TENDER_AUTHORITY_KIND.TRANSIENT) {
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED,
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 !== chunkSFUJMS5E_js.PURCHASE_INTENT_SOURCE_KIND.CART) {
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: chunkSFUJMS5E_js.ErrorCode.CART_EMPTY });
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: chunkSFUJMS5E_js.PURCHASE_INTENT_STATUS.OPEN,
5791
+ status: chunkAVXA4F6G_js.PURCHASE_INTENT_STATUS.OPEN,
5785
5792
  source: {
5786
- kind: chunkSFUJMS5E_js.PURCHASE_INTENT_SOURCE_KIND.CART,
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: chunkSFUJMS5E_js.PURCHASING_PRINCIPAL_KIND.BUSINESS,
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 ? chunkSFUJMS5E_js.PURCHASE_INTENT_SELLABLE_KIND.VARIANT : chunkSFUJMS5E_js.PURCHASE_INTENT_SELLABLE_KIND.PRODUCT,
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: chunkSFUJMS5E_js.PURCHASE_INTENT_LINE_CONFIGURATION_KIND.SIMPLE,
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: chunkSFUJMS5E_js.currencyCode(cart.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 === chunkSFUJMS5E_js.PURCHASE_INTENT_STATUS.CONVERTED && intent.last_confirmation) {
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED,
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 === chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED) {
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 === chunkSFUJMS5E_js.PAYMENT_OPTION_STATUS.ELIGIBLE
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: chunkSFUJMS5E_js.CHECKOUT_TERMS_DELTA_KIND.MONEY,
5892
- component: chunkSFUJMS5E_js.CHECKOUT_TERMS_COMPONENT.DUE_NOW,
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: chunkSFUJMS5E_js.CHECKOUT_TERMS_DELTA_KIND.PAYMENT_OPTION,
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED,
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE,
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: chunkSFUJMS5E_js.CHECKOUT_INVALIDATION_REASON.PAYMENT_OPTION_CHANGED
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED,
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: chunkSFUJMS5E_js.CHECKOUT_TERMS_DELTA_KIND.PAYMENT_OPTION,
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 !== chunkSFUJMS5E_js.PURCHASE_INTENT_SOURCE_KIND.CART) {
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.SOURCE_UNAVAILABLE, intent_id: intent.id };
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 === chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD || option?.method_kind === chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY;
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 === chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY) {
6019
+ if (option?.method_kind === chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY) {
6013
6020
  confirmation = {
6014
- status: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED,
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 === chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD) {
6028
+ } else if (option?.method_kind === chunkAVXA4F6G_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD) {
6022
6029
  confirmation = {
6023
- status: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED,
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: chunkSFUJMS5E_js.PURCHASE_INTENT_PAYMENT_PROVIDER.PAYSTACK,
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: chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED,
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: chunkSFUJMS5E_js.PURCHASE_INTENT_STATUS.CONVERTED,
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 !== chunkSFUJMS5E_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED || previous.attempt_id !== attemptId) {
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,4 +1,4 @@
1
- import { PURCHASE_INTENT_MOBILE_MONEY_NETWORK, moneyFromNumber, money } from './chunk-RBNBSQI7.mjs';
1
+ import { PURCHASE_INTENT_MOBILE_MONEY_NETWORK, moneyFromNumber, money } from './chunk-NJYR6GGM.mjs';
2
2
 
3
3
  // src/utils/price.ts
4
4
  var CURRENCY_SYMBOLS = {
@@ -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-U54CWUUT.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-RBNBSQI7.mjs';
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,noopener,noreferrer";
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
- authorizationUrl,
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 timeoutMs = options.timeout_ms ?? 18e4;
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 timeout = setTimeout(() => {
3663
- settle(
3664
- toCheckoutError(
3665
- ErrorCode.TIMEOUT,
3666
- "Checkout timed out before receiving a terminal response.",
3667
- true
3668
- )
3669
- );
3670
- }, timeoutMs);
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 chunkSFUJMS5E_js = require('./chunk-SFUJMS5E.js');
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: chunkSFUJMS5E_js.moneyFromNumber(0),
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" ? chunkSFUJMS5E_js.money(res.amount) : typeof res.amount === "number" && Number.isFinite(res.amount) ? chunkSFUJMS5E_js.moneyFromNumber(res.amount) : chunkSFUJMS5E_js.moneyFromNumber(0);
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: chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.MTN,
518
- telecel: chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.TELECEL,
519
- airteltigo: chunkSFUJMS5E_js.PURCHASE_INTENT_MOBILE_MONEY_NETWORK.AIRTEL
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);