@cimplify/sdk 0.103.0 → 0.104.1

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 (72) hide show
  1. package/dist/advanced.d.mts +3 -7
  2. package/dist/advanced.d.ts +3 -7
  3. package/dist/advanced.js +23 -23
  4. package/dist/advanced.mjs +4 -4
  5. package/dist/{client-DHBwvh7U.d.ts → catalogue-BlQ85Uma.d.mts} +492 -748
  6. package/dist/{client-BfpNjJ_a.d.mts → catalogue-C8TqOj9K.d.ts} +492 -748
  7. package/dist/{payment-H5LoIvXU.d.mts → checkout-BqK9XUz5.d.mts} +4338 -1495
  8. package/dist/{payment-H5LoIvXU.d.ts → checkout-BqK9XUz5.d.ts} +4338 -1495
  9. package/dist/{chunk-GOHSXBKW.mjs → chunk-33VCYWVL.mjs} +25 -1
  10. package/dist/{chunk-C2JSNJUC.mjs → chunk-6G3ANKQA.mjs} +1080 -369
  11. package/dist/{chunk-QOWPGS7Z.js → chunk-BWEIMKLF.js} +572 -17
  12. package/dist/{chunk-JSWJ4XDE.js → chunk-DQEXY542.js} +1630 -824
  13. package/dist/{chunk-CNN7Z2IP.js → chunk-EV2EVOYS.js} +27 -0
  14. package/dist/{chunk-VIL6IQCG.js → chunk-HYFA67A7.js} +1084 -373
  15. package/dist/{chunk-H7ACMHM3.mjs → chunk-L5SNEU2O.mjs} +553 -16
  16. package/dist/{chunk-JG5CQNCB.js → chunk-RBNBSQI7.mjs} +221 -19
  17. package/dist/{chunk-VNPEYLB2.mjs → chunk-SFUJMS5E.js} +265 -2
  18. package/dist/{chunk-M4URVKHE.mjs → chunk-U54CWUUT.mjs} +11 -2
  19. package/dist/{chunk-GERXZQSX.mjs → chunk-UFOWPN3D.mjs} +967 -582
  20. package/dist/{chunk-J6PNHDHL.mjs → chunk-V4457OKB.mjs} +1580 -785
  21. package/dist/{chunk-R6OLQ33I.js → chunk-WXREIBFW.js} +1041 -654
  22. package/dist/{chunk-NNG6IFFX.js → chunk-XAUSDMMZ.js} +13 -3
  23. package/dist/{client-DpqRobY9.d.mts → client-DhXeiUrf.d.ts} +2 -2
  24. package/dist/{client-Dqg2mc-7.d.ts → client-mXiUrV4X.d.mts} +2 -2
  25. package/dist/{index-C8uDqLwJ.d.ts → index-B0AdZvrM.d.mts} +9 -4
  26. package/dist/{index-e2y6AK70.d.mts → index-CK8Nk5uQ.d.ts} +9 -4
  27. package/dist/index-DPWI5XcU.d.ts +8 -0
  28. package/dist/index-DVfUh-ci.d.mts +8 -0
  29. package/dist/index.d.mts +34 -15
  30. package/dist/index.d.ts +34 -15
  31. package/dist/index.js +306 -133
  32. package/dist/index.mjs +7 -6
  33. package/dist/mock/cli.mjs +1494 -395
  34. package/dist/mock/library.js +1220 -361
  35. package/dist/mock/library.mjs +1220 -361
  36. package/dist/mock/msw.js +1220 -361
  37. package/dist/mock/msw.mjs +1220 -361
  38. package/dist/{price-C2RqscMY.d.ts → price-6hQIIac9.d.ts} +1 -1
  39. package/dist/{price-BvePgDXe.d.mts → price-BUDv1rI7.d.mts} +1 -1
  40. package/dist/react.d.mts +10 -5
  41. package/dist/react.d.ts +10 -5
  42. package/dist/react.js +279 -225
  43. package/dist/react.mjs +140 -86
  44. package/dist/{server-DoXIpSd7.d.ts → server-DJ0mSs9i.d.mts} +33 -57
  45. package/dist/{server-C7FyLdrz.d.mts → server-DSTX76Ki.d.ts} +33 -57
  46. package/dist/server.d.mts +3 -4
  47. package/dist/server.d.ts +3 -4
  48. package/dist/server.js +12 -11
  49. package/dist/server.mjs +6 -5
  50. package/dist/styles.css +2 -2
  51. package/dist/testing/msw.d.mts +2 -2
  52. package/dist/testing/msw.d.ts +2 -2
  53. package/dist/testing/msw.js +4 -4
  54. package/dist/testing/msw.mjs +3 -3
  55. package/dist/testing/suite.d.mts +5 -6
  56. package/dist/testing/suite.d.ts +5 -6
  57. package/dist/testing/suite.js +29 -28
  58. package/dist/testing/suite.mjs +10 -9
  59. package/dist/testing.d.mts +2217 -14
  60. package/dist/testing.d.ts +2217 -14
  61. package/dist/testing.js +173 -83
  62. package/dist/testing.mjs +28 -10
  63. package/dist/utils.d.mts +3 -4
  64. package/dist/utils.d.ts +3 -4
  65. package/dist/utils.js +35 -31
  66. package/dist/utils.mjs +2 -2
  67. package/package.json +9 -9
  68. package/registry/chat-widget.json +1 -1
  69. package/registry/order-history.json +1 -1
  70. package/registry/order-summary.json +1 -1
  71. package/dist/link-cuNVYc2s.d.mts +0 -297
  72. package/dist/link-cuNVYc2s.d.ts +0 -297
@@ -1,5 +1,3 @@
1
- 'use strict';
2
-
3
1
  // src/types/common.ts
4
2
  function money(value) {
5
3
  return typeof value === "string" ? parseFloat(value) || 0 : value;
@@ -107,8 +105,38 @@ var ErrorCode = {
107
105
  CARD_DECLINED: "CARD_DECLINED",
108
106
  INVALID_OTP: "INVALID_OTP",
109
107
  OTP_EXPIRED: "OTP_EXPIRED",
108
+ OTP_CHALLENGE_EXHAUSTED: "OTP_CHALLENGE_EXHAUSTED",
109
+ OTP_CHALLENGE_CONSUMED: "OTP_CHALLENGE_CONSUMED",
110
110
  AUTHORIZATION_FAILED: "AUTHORIZATION_FAILED",
111
111
  PAYMENT_ACTION_NOT_COMPLETED: "PAYMENT_ACTION_NOT_COMPLETED",
112
+ CHECKOUT_TERMS_UNAVAILABLE: "CHECKOUT_TERMS_UNAVAILABLE",
113
+ CHECKOUT_FAILED: "CHECKOUT_FAILED",
114
+ CHECKOUT_AUTHORITY_REQUIRED: "CHECKOUT_AUTHORITY_REQUIRED",
115
+ CHECKOUT_NOT_READY: "CHECKOUT_NOT_READY",
116
+ BUSINESS_ID_REQUIRED: "BUSINESS_ID_REQUIRED",
117
+ ORDER_TYPE_REQUIRED: "ORDER_TYPE_REQUIRED",
118
+ NO_PAYMENT_ELEMENT: "NO_PAYMENT_ELEMENT",
119
+ PAYMENT_NOT_MOUNTED: "PAYMENT_NOT_MOUNTED",
120
+ AUTH_INCOMPLETE: "AUTH_INCOMPLETE",
121
+ AUTH_LOST: "AUTH_LOST",
122
+ ALREADY_PROCESSING: "ALREADY_PROCESSING",
123
+ AUTH_CONFIG_REQUIRED: "AUTH_CONFIG_REQUIRED",
124
+ AUTH_CALLBACK_MISSING_TOKEN: "AUTH_CALLBACK_MISSING_TOKEN",
125
+ AUTH_START_FAILED: "AUTH_START_FAILED",
126
+ SERVER_ERROR: "SERVER_ERROR",
127
+ API_ERROR: "API_ERROR",
128
+ IDEMPOTENCY_MISMATCH: "IDEMPOTENCY_MISMATCH",
129
+ INVALID_CUSTOMER_NAME: "INVALID_CUSTOMER_NAME",
130
+ INVALID_PAYMENT_METHOD: "INVALID_PAYMENT_METHOD",
131
+ INVALID_CART: "INVALID_CART",
132
+ PAYMENT_OUTCOME_UNKNOWN: "PAYMENT_OUTCOME_UNKNOWN",
133
+ REDIRECT_REQUIRED: "REDIRECT_REQUIRED",
134
+ PROVIDER_UNAVAILABLE: "PROVIDER_UNAVAILABLE",
135
+ AUTHORIZATION_REQUIRED: "AUTHORIZATION_REQUIRED",
136
+ CANCELLED: "CANCELLED",
137
+ POPUP_BLOCKED: "POPUP_BLOCKED",
138
+ FX_QUOTE_FAILED: "FX_QUOTE_FAILED",
139
+ NOT_IMPLEMENTED: "NOT_IMPLEMENTED",
112
140
  SLOT_UNAVAILABLE: "SLOT_UNAVAILABLE",
113
141
  BOOKING_CONFLICT: "BOOKING_CONFLICT",
114
142
  SERVICE_NOT_FOUND: "SERVICE_NOT_FOUND",
@@ -152,6 +180,8 @@ var ERROR_SUGGESTIONS = {
152
180
  CARD_DECLINED: "Card was declined. Ask shopper to retry or switch payment method.",
153
181
  INVALID_OTP: "Authorization code is invalid. Let shopper re-enter OTP/PIN and retry.",
154
182
  OTP_EXPIRED: "Authorization code expired. Request a new OTP and re-submit authorization.",
183
+ OTP_CHALLENGE_EXHAUSTED: "This verification challenge has no attempts left. Continue checkout without saved details or request a fresh challenge.",
184
+ OTP_CHALLENGE_CONSUMED: "This verification challenge has already been used. Continue with the established session or request a fresh challenge.",
155
185
  AUTHORIZATION_FAILED: "Additional payment authorization failed. Retry authorization or change payment method.",
156
186
  PAYMENT_ACTION_NOT_COMPLETED: "Required payment action was not completed. Resume provider flow and poll for status.",
157
187
  SLOT_UNAVAILABLE: "Selected schedule slot is unavailable. Refresh available slots and ask shopper to reselect.",
@@ -170,6 +200,10 @@ var ERROR_SUGGESTIONS = {
170
200
  CHECKOUT_NOT_READY: "Checkout elements are still initializing. Wait for readiness before submit.",
171
201
  CANCELLED: "Checkout was cancelled. Preserve cart state and allow shopper to retry.",
172
202
  REQUEST_TIMEOUT: "Provider call timed out. Poll payment/order status before issuing another charge attempt.",
203
+ CHECKOUT_AUTHORITY_REQUIRED: "Provide an exact cart or purchase-intent authority before starting checkout.",
204
+ AUTH_CONFIG_REQUIRED: "Configure the OAuth client and redirect URI before mounting embedded authentication.",
205
+ AUTH_CALLBACK_MISSING_TOKEN: "The authentication callback returned no access token. Restart sign-in before checkout.",
206
+ AUTH_START_FAILED: "Embedded authentication could not start. Verify the OAuth configuration and retry.",
173
207
  POPUP_BLOCKED: "Browser blocked provider popup. Ask shopper to enable popups and retry.",
174
208
  FX_QUOTE_FAILED: "Failed to lock FX quote. Retry currency quote or fallback to base currency."
175
209
  };
@@ -197,7 +231,7 @@ var CimplifyError = class extends Error {
197
231
  };
198
232
  var IdempotencyMismatchError = class extends CimplifyError {
199
233
  constructor(message, originalCreatedAt) {
200
- super("IDEMPOTENCY_MISMATCH", message, false);
234
+ super(ErrorCode.IDEMPOTENCY_MISMATCH, message, false);
201
235
  this.originalCreatedAt = originalCreatedAt;
202
236
  this.name = "IdempotencyMismatchError";
203
237
  }
@@ -255,19 +289,187 @@ function isRetryableError(error) {
255
289
  return false;
256
290
  }
257
291
 
258
- exports.CimplifyError = CimplifyError;
259
- exports.ERROR_HINTS = ERROR_HINTS;
260
- exports.ErrorCode = ErrorCode;
261
- exports.IdempotencyMismatchError = IdempotencyMismatchError;
262
- exports.ZERO = ZERO;
263
- exports.currencyCode = currencyCode;
264
- exports.enrichError = enrichError;
265
- exports.getErrorHint = getErrorHint;
266
- exports.isCimplifyError = isCimplifyError;
267
- exports.isIdempotencyMismatchError = isIdempotencyMismatchError;
268
- exports.isQuoteConflictRequiringConsent = isQuoteConflictRequiringConsent;
269
- exports.isQuoteError = isQuoteError;
270
- exports.isRetryableError = isRetryableError;
271
- exports.isSupportedCurrency = isSupportedCurrency;
272
- exports.money = money;
273
- exports.moneyFromNumber = moneyFromNumber;
292
+ // src/types/purchase-intent.ts
293
+ var PURCHASE_INTENT_SOURCE_KIND = {
294
+ PRODUCT: "product",
295
+ COLLECTION: "collection",
296
+ SALE: "sale",
297
+ POST: "post",
298
+ LIVE: "live",
299
+ CART: "cart",
300
+ CHAT: "chat",
301
+ MANUAL: "manual"
302
+ };
303
+ var PURCHASING_PRINCIPAL_KIND = {
304
+ ACCOUNT: "account",
305
+ BUSINESS: "business",
306
+ GUEST: "guest",
307
+ RECOGNISED: "recognised"
308
+ };
309
+ var PURCHASE_INTENT_STATUS = {
310
+ DRAFT: "draft",
311
+ OPEN: "open",
312
+ CONVERTED: "converted",
313
+ CANCELLED: "cancelled",
314
+ EXPIRED: "expired"
315
+ };
316
+ var PURCHASE_INTENT_SELLABLE_KIND = {
317
+ PRODUCT: "product",
318
+ VARIANT: "variant"
319
+ };
320
+ var PURCHASE_INTENT_OFFER_KIND = {
321
+ CATALOGUE: "catalogue",
322
+ SALE: "sale",
323
+ RAPID: "rapid"
324
+ };
325
+ var PURCHASE_INTENT_LINE_CONFIGURATION_KIND = {
326
+ SIMPLE: "simple",
327
+ CART: "cart"
328
+ };
329
+ var MOBILE_MONEY_TENDER_AUTHORITY_KIND = {
330
+ TRANSIENT: "transient",
331
+ SAVED_REFERENCE: "saved_reference"
332
+ };
333
+ var PURCHASE_INTENT_MOBILE_MONEY_NETWORK = {
334
+ MTN: "mtn",
335
+ TELECEL: "telecel",
336
+ AIRTEL: "airtel"
337
+ };
338
+ var CHECKOUT_COMPLIANCE_LANE = {
339
+ COMMERCE_CORE: "commerce_core",
340
+ NATIVE: "native",
341
+ STORE_KIT: "store_kit",
342
+ PERMITTED_EXTERNAL: "permitted_external",
343
+ BROWSE_ONLY: "browse_only"
344
+ };
345
+ var CHECKOUT_COMPLIANCE_REASON = {
346
+ COMMERCE_CORE: "commerce_core",
347
+ PHYSICAL_GOODS_NATIVE: "physical_goods_native",
348
+ STORE_KIT_REQUIRED: "store_kit_required",
349
+ PERMITTED_EXTERNAL_PURCHASE: "permitted_external_purchase",
350
+ DISTRIBUTION_AUTHORITY_UNVERIFIED: "distribution_authority_unverified",
351
+ PRODUCT_POLICY_UNRESOLVED: "product_policy_unresolved",
352
+ MIXED_LANE_UNSUPPORTED: "mixed_lane_unsupported"
353
+ };
354
+ var PAYMENT_INSTRUMENT_DISPLAY_KIND = {
355
+ CARD: "card",
356
+ MOBILE_MONEY: "mobile_money",
357
+ ERASED: "erased"
358
+ };
359
+ var PURCHASE_INTENT_PAYMENT_METHOD = {
360
+ CARD: "card",
361
+ MOBILE_MONEY: "mobile_money",
362
+ OFFLINE: "offline"
363
+ };
364
+ var PAYMENT_COLLECTION_MODE = {
365
+ REQUEST_TO_PAY: "request_to_pay",
366
+ MANDATE_DEBIT: "mandate_debit",
367
+ CREDENTIAL_CHARGE: "credential_charge",
368
+ OFFLINE_TENDER: "offline_tender"
369
+ };
370
+ var PURCHASE_INTENT_PAYMENT_PROVIDER = {
371
+ STRIPE: "stripe",
372
+ PAYSTACK: "paystack",
373
+ CELLULANT: "cellulant",
374
+ MTN_MOMO: "mtn_momo"
375
+ };
376
+ var PAYMENT_OPTION_STATUS = {
377
+ ELIGIBLE: "eligible",
378
+ INELIGIBLE: "ineligible",
379
+ EXPIRED: "expired"
380
+ };
381
+ var PAYMENT_OPTION_NEXT_ACTION = {
382
+ NONE: "none",
383
+ PROVIDER_APPROVAL: "provider_approval",
384
+ STEP_UP: "step_up"
385
+ };
386
+ var LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS = {
387
+ CASH: "cash",
388
+ /** Compatibility form value only; maps to funding allocation, never an option. */
389
+ STORE_CREDIT: "store_credit"
390
+ };
391
+ var LEGACY_CHECKOUT_PAYMENT_STATUS = {
392
+ SUCCEEDED: "succeeded",
393
+ PROCESSING: "processing",
394
+ UNKNOWN: "unknown",
395
+ REQUIRES_ACTION: "requires_action"
396
+ };
397
+ var CHECKOUT_TERMS_COMPONENT = {
398
+ SUBTOTAL: "subtotal",
399
+ DISCOUNT_TOTAL: "discount_total",
400
+ TAX_TOTAL: "tax_total",
401
+ DELIVERY_TOTAL: "delivery_total",
402
+ STATUTORY_TOTAL: "statutory_total",
403
+ TOTAL_OBLIGATION: "total_obligation",
404
+ DUE_NOW: "due_now",
405
+ RAIL_AMOUNT: "rail_amount",
406
+ STORE_CREDIT_CONSUMED: "store_credit_consumed",
407
+ VOUCHER_CREDIT_CONSUMED: "voucher_credit_consumed"
408
+ };
409
+ var CHECKOUT_MATERIAL_TERMS_COMPONENT = {
410
+ LINES: "lines",
411
+ DESTINATION: "destination",
412
+ DELIVERY_PROMISE: "delivery_promise",
413
+ ENTITLEMENT: "entitlement",
414
+ CANCELLATION_TERMS: "cancellation_terms",
415
+ COMPLIANCE: "compliance",
416
+ CURRENCY: "currency"
417
+ };
418
+ var CHECKOUT_TERMS_DELTA_KIND = {
419
+ MONEY: "money",
420
+ MATERIAL: "material",
421
+ PAYMENT_OPTION: "payment_option"
422
+ };
423
+ var CHECKOUT_INVALIDATION_REASON = {
424
+ SOURCE_UNAVAILABLE: "source_unavailable",
425
+ OFFER_ENDED: "offer_ended",
426
+ OFFER_CHANGED: "offer_changed",
427
+ SELLABLE_UNAVAILABLE: "sellable_unavailable",
428
+ COMPLIANCE_CHANGED: "compliance_changed",
429
+ PAYMENT_OPTION_CHANGED: "payment_option_changed"
430
+ };
431
+ var PURCHASE_INTENT_CONFIRM_STATUS = {
432
+ ORDER_CREATED: "order_created",
433
+ COLLECTION_PROCESSING: "collection_processing",
434
+ PAYMENT_OUTCOME_UNKNOWN: "payment_outcome_unknown",
435
+ PAYMENT_FAILED: "payment_failed",
436
+ REDIRECT_REQUIRED: "redirect_required",
437
+ CARD_POPUP_REQUIRED: "card_popup_required",
438
+ AUTHORIZATION_REQUIRED: "authorization_required",
439
+ TERMS_CHANGED: "terms_changed",
440
+ SELECTION_UNAVAILABLE: "selection_unavailable",
441
+ OFFER_ENDED: "offer_ended",
442
+ SOURCE_UNAVAILABLE: "source_unavailable"
443
+ };
444
+ var PURCHASE_INTENT_RESOLUTION_KIND = {
445
+ COMPLETED: "completed",
446
+ FAILED: "failed",
447
+ ACTION_REQUIRED: "action_required",
448
+ REVIEW_REQUIRED: "review_required",
449
+ OUTCOME_UNKNOWN: "outcome_unknown",
450
+ TIMED_OUT: "timed_out"
451
+ };
452
+ var PURCHASE_INTENT_ACTION_DECISION = {
453
+ CONTINUE: "continue",
454
+ STOP: "stop",
455
+ SUBMIT: "submit"
456
+ };
457
+ var PURCHASE_INTENT_RESOLVE_STATUS = {
458
+ CONFIRMING: "confirming",
459
+ POLLING: "polling",
460
+ AWAITING_ACTION: "awaiting_action",
461
+ REVIEWING_TERMS: "reviewing_terms",
462
+ COMPLETED: "completed",
463
+ FAILED: "failed",
464
+ OUTCOME_UNKNOWN: "outcome_unknown"
465
+ };
466
+ var PURCHASE_INTENT_ERROR_CODE = {
467
+ ACTION_UNSUPPORTED: "PURCHASE_INTENT_ACTION_UNSUPPORTED",
468
+ PAYMENT_FAILED: "PAYMENT_FAILED",
469
+ TERMS_CHANGED: "TERMS_CHANGED",
470
+ SELECTION_UNAVAILABLE: "SELECTION_UNAVAILABLE",
471
+ OFFER_ENDED: "OFFER_ENDED",
472
+ SOURCE_UNAVAILABLE: "SOURCE_UNAVAILABLE"
473
+ };
474
+
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 };
@@ -1,3 +1,5 @@
1
+ 'use strict';
2
+
1
3
  // src/types/common.ts
2
4
  function money(value) {
3
5
  return typeof value === "string" ? parseFloat(value) || 0 : value;
@@ -105,8 +107,38 @@ var ErrorCode = {
105
107
  CARD_DECLINED: "CARD_DECLINED",
106
108
  INVALID_OTP: "INVALID_OTP",
107
109
  OTP_EXPIRED: "OTP_EXPIRED",
110
+ OTP_CHALLENGE_EXHAUSTED: "OTP_CHALLENGE_EXHAUSTED",
111
+ OTP_CHALLENGE_CONSUMED: "OTP_CHALLENGE_CONSUMED",
108
112
  AUTHORIZATION_FAILED: "AUTHORIZATION_FAILED",
109
113
  PAYMENT_ACTION_NOT_COMPLETED: "PAYMENT_ACTION_NOT_COMPLETED",
114
+ CHECKOUT_TERMS_UNAVAILABLE: "CHECKOUT_TERMS_UNAVAILABLE",
115
+ CHECKOUT_FAILED: "CHECKOUT_FAILED",
116
+ CHECKOUT_AUTHORITY_REQUIRED: "CHECKOUT_AUTHORITY_REQUIRED",
117
+ CHECKOUT_NOT_READY: "CHECKOUT_NOT_READY",
118
+ BUSINESS_ID_REQUIRED: "BUSINESS_ID_REQUIRED",
119
+ ORDER_TYPE_REQUIRED: "ORDER_TYPE_REQUIRED",
120
+ NO_PAYMENT_ELEMENT: "NO_PAYMENT_ELEMENT",
121
+ PAYMENT_NOT_MOUNTED: "PAYMENT_NOT_MOUNTED",
122
+ AUTH_INCOMPLETE: "AUTH_INCOMPLETE",
123
+ AUTH_LOST: "AUTH_LOST",
124
+ ALREADY_PROCESSING: "ALREADY_PROCESSING",
125
+ AUTH_CONFIG_REQUIRED: "AUTH_CONFIG_REQUIRED",
126
+ AUTH_CALLBACK_MISSING_TOKEN: "AUTH_CALLBACK_MISSING_TOKEN",
127
+ AUTH_START_FAILED: "AUTH_START_FAILED",
128
+ SERVER_ERROR: "SERVER_ERROR",
129
+ API_ERROR: "API_ERROR",
130
+ IDEMPOTENCY_MISMATCH: "IDEMPOTENCY_MISMATCH",
131
+ INVALID_CUSTOMER_NAME: "INVALID_CUSTOMER_NAME",
132
+ INVALID_PAYMENT_METHOD: "INVALID_PAYMENT_METHOD",
133
+ INVALID_CART: "INVALID_CART",
134
+ PAYMENT_OUTCOME_UNKNOWN: "PAYMENT_OUTCOME_UNKNOWN",
135
+ REDIRECT_REQUIRED: "REDIRECT_REQUIRED",
136
+ PROVIDER_UNAVAILABLE: "PROVIDER_UNAVAILABLE",
137
+ AUTHORIZATION_REQUIRED: "AUTHORIZATION_REQUIRED",
138
+ CANCELLED: "CANCELLED",
139
+ POPUP_BLOCKED: "POPUP_BLOCKED",
140
+ FX_QUOTE_FAILED: "FX_QUOTE_FAILED",
141
+ NOT_IMPLEMENTED: "NOT_IMPLEMENTED",
110
142
  SLOT_UNAVAILABLE: "SLOT_UNAVAILABLE",
111
143
  BOOKING_CONFLICT: "BOOKING_CONFLICT",
112
144
  SERVICE_NOT_FOUND: "SERVICE_NOT_FOUND",
@@ -150,6 +182,8 @@ var ERROR_SUGGESTIONS = {
150
182
  CARD_DECLINED: "Card was declined. Ask shopper to retry or switch payment method.",
151
183
  INVALID_OTP: "Authorization code is invalid. Let shopper re-enter OTP/PIN and retry.",
152
184
  OTP_EXPIRED: "Authorization code expired. Request a new OTP and re-submit authorization.",
185
+ OTP_CHALLENGE_EXHAUSTED: "This verification challenge has no attempts left. Continue checkout without saved details or request a fresh challenge.",
186
+ OTP_CHALLENGE_CONSUMED: "This verification challenge has already been used. Continue with the established session or request a fresh challenge.",
153
187
  AUTHORIZATION_FAILED: "Additional payment authorization failed. Retry authorization or change payment method.",
154
188
  PAYMENT_ACTION_NOT_COMPLETED: "Required payment action was not completed. Resume provider flow and poll for status.",
155
189
  SLOT_UNAVAILABLE: "Selected schedule slot is unavailable. Refresh available slots and ask shopper to reselect.",
@@ -168,6 +202,10 @@ var ERROR_SUGGESTIONS = {
168
202
  CHECKOUT_NOT_READY: "Checkout elements are still initializing. Wait for readiness before submit.",
169
203
  CANCELLED: "Checkout was cancelled. Preserve cart state and allow shopper to retry.",
170
204
  REQUEST_TIMEOUT: "Provider call timed out. Poll payment/order status before issuing another charge attempt.",
205
+ CHECKOUT_AUTHORITY_REQUIRED: "Provide an exact cart or purchase-intent authority before starting checkout.",
206
+ AUTH_CONFIG_REQUIRED: "Configure the OAuth client and redirect URI before mounting embedded authentication.",
207
+ AUTH_CALLBACK_MISSING_TOKEN: "The authentication callback returned no access token. Restart sign-in before checkout.",
208
+ AUTH_START_FAILED: "Embedded authentication could not start. Verify the OAuth configuration and retry.",
171
209
  POPUP_BLOCKED: "Browser blocked provider popup. Ask shopper to enable popups and retry.",
172
210
  FX_QUOTE_FAILED: "Failed to lock FX quote. Retry currency quote or fallback to base currency."
173
211
  };
@@ -195,7 +233,7 @@ var CimplifyError = class extends Error {
195
233
  };
196
234
  var IdempotencyMismatchError = class extends CimplifyError {
197
235
  constructor(message, originalCreatedAt) {
198
- super("IDEMPOTENCY_MISMATCH", message, false);
236
+ super(ErrorCode.IDEMPOTENCY_MISMATCH, message, false);
199
237
  this.originalCreatedAt = originalCreatedAt;
200
238
  this.name = "IdempotencyMismatchError";
201
239
  }
@@ -253,4 +291,229 @@ function isRetryableError(error) {
253
291
  return false;
254
292
  }
255
293
 
256
- export { CimplifyError, ERROR_HINTS, ErrorCode, IdempotencyMismatchError, ZERO, currencyCode, enrichError, getErrorHint, isCimplifyError, isIdempotencyMismatchError, isQuoteConflictRequiringConsent, isQuoteError, isRetryableError, isSupportedCurrency, money, moneyFromNumber };
294
+ // src/types/purchase-intent.ts
295
+ var PURCHASE_INTENT_SOURCE_KIND = {
296
+ PRODUCT: "product",
297
+ COLLECTION: "collection",
298
+ SALE: "sale",
299
+ POST: "post",
300
+ LIVE: "live",
301
+ CART: "cart",
302
+ CHAT: "chat",
303
+ MANUAL: "manual"
304
+ };
305
+ var PURCHASING_PRINCIPAL_KIND = {
306
+ ACCOUNT: "account",
307
+ BUSINESS: "business",
308
+ GUEST: "guest",
309
+ RECOGNISED: "recognised"
310
+ };
311
+ var PURCHASE_INTENT_STATUS = {
312
+ DRAFT: "draft",
313
+ OPEN: "open",
314
+ CONVERTED: "converted",
315
+ CANCELLED: "cancelled",
316
+ EXPIRED: "expired"
317
+ };
318
+ var PURCHASE_INTENT_SELLABLE_KIND = {
319
+ PRODUCT: "product",
320
+ VARIANT: "variant"
321
+ };
322
+ var PURCHASE_INTENT_OFFER_KIND = {
323
+ CATALOGUE: "catalogue",
324
+ SALE: "sale",
325
+ RAPID: "rapid"
326
+ };
327
+ var PURCHASE_INTENT_LINE_CONFIGURATION_KIND = {
328
+ SIMPLE: "simple",
329
+ CART: "cart"
330
+ };
331
+ var MOBILE_MONEY_TENDER_AUTHORITY_KIND = {
332
+ TRANSIENT: "transient",
333
+ SAVED_REFERENCE: "saved_reference"
334
+ };
335
+ var PURCHASE_INTENT_MOBILE_MONEY_NETWORK = {
336
+ MTN: "mtn",
337
+ TELECEL: "telecel",
338
+ AIRTEL: "airtel"
339
+ };
340
+ var CHECKOUT_COMPLIANCE_LANE = {
341
+ COMMERCE_CORE: "commerce_core",
342
+ NATIVE: "native",
343
+ STORE_KIT: "store_kit",
344
+ PERMITTED_EXTERNAL: "permitted_external",
345
+ BROWSE_ONLY: "browse_only"
346
+ };
347
+ var CHECKOUT_COMPLIANCE_REASON = {
348
+ COMMERCE_CORE: "commerce_core",
349
+ PHYSICAL_GOODS_NATIVE: "physical_goods_native",
350
+ STORE_KIT_REQUIRED: "store_kit_required",
351
+ PERMITTED_EXTERNAL_PURCHASE: "permitted_external_purchase",
352
+ DISTRIBUTION_AUTHORITY_UNVERIFIED: "distribution_authority_unverified",
353
+ PRODUCT_POLICY_UNRESOLVED: "product_policy_unresolved",
354
+ MIXED_LANE_UNSUPPORTED: "mixed_lane_unsupported"
355
+ };
356
+ var PAYMENT_INSTRUMENT_DISPLAY_KIND = {
357
+ CARD: "card",
358
+ MOBILE_MONEY: "mobile_money",
359
+ ERASED: "erased"
360
+ };
361
+ var PURCHASE_INTENT_PAYMENT_METHOD = {
362
+ CARD: "card",
363
+ MOBILE_MONEY: "mobile_money",
364
+ OFFLINE: "offline"
365
+ };
366
+ var PAYMENT_COLLECTION_MODE = {
367
+ REQUEST_TO_PAY: "request_to_pay",
368
+ MANDATE_DEBIT: "mandate_debit",
369
+ CREDENTIAL_CHARGE: "credential_charge",
370
+ OFFLINE_TENDER: "offline_tender"
371
+ };
372
+ var PURCHASE_INTENT_PAYMENT_PROVIDER = {
373
+ STRIPE: "stripe",
374
+ PAYSTACK: "paystack",
375
+ CELLULANT: "cellulant",
376
+ MTN_MOMO: "mtn_momo"
377
+ };
378
+ var PAYMENT_OPTION_STATUS = {
379
+ ELIGIBLE: "eligible",
380
+ INELIGIBLE: "ineligible",
381
+ EXPIRED: "expired"
382
+ };
383
+ var PAYMENT_OPTION_NEXT_ACTION = {
384
+ NONE: "none",
385
+ PROVIDER_APPROVAL: "provider_approval",
386
+ STEP_UP: "step_up"
387
+ };
388
+ var LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS = {
389
+ CASH: "cash",
390
+ /** Compatibility form value only; maps to funding allocation, never an option. */
391
+ STORE_CREDIT: "store_credit"
392
+ };
393
+ var LEGACY_CHECKOUT_PAYMENT_STATUS = {
394
+ SUCCEEDED: "succeeded",
395
+ PROCESSING: "processing",
396
+ UNKNOWN: "unknown",
397
+ REQUIRES_ACTION: "requires_action"
398
+ };
399
+ var CHECKOUT_TERMS_COMPONENT = {
400
+ SUBTOTAL: "subtotal",
401
+ DISCOUNT_TOTAL: "discount_total",
402
+ TAX_TOTAL: "tax_total",
403
+ DELIVERY_TOTAL: "delivery_total",
404
+ STATUTORY_TOTAL: "statutory_total",
405
+ TOTAL_OBLIGATION: "total_obligation",
406
+ DUE_NOW: "due_now",
407
+ RAIL_AMOUNT: "rail_amount",
408
+ STORE_CREDIT_CONSUMED: "store_credit_consumed",
409
+ VOUCHER_CREDIT_CONSUMED: "voucher_credit_consumed"
410
+ };
411
+ var CHECKOUT_MATERIAL_TERMS_COMPONENT = {
412
+ LINES: "lines",
413
+ DESTINATION: "destination",
414
+ DELIVERY_PROMISE: "delivery_promise",
415
+ ENTITLEMENT: "entitlement",
416
+ CANCELLATION_TERMS: "cancellation_terms",
417
+ COMPLIANCE: "compliance",
418
+ CURRENCY: "currency"
419
+ };
420
+ var CHECKOUT_TERMS_DELTA_KIND = {
421
+ MONEY: "money",
422
+ MATERIAL: "material",
423
+ PAYMENT_OPTION: "payment_option"
424
+ };
425
+ var CHECKOUT_INVALIDATION_REASON = {
426
+ SOURCE_UNAVAILABLE: "source_unavailable",
427
+ OFFER_ENDED: "offer_ended",
428
+ OFFER_CHANGED: "offer_changed",
429
+ SELLABLE_UNAVAILABLE: "sellable_unavailable",
430
+ COMPLIANCE_CHANGED: "compliance_changed",
431
+ PAYMENT_OPTION_CHANGED: "payment_option_changed"
432
+ };
433
+ var PURCHASE_INTENT_CONFIRM_STATUS = {
434
+ ORDER_CREATED: "order_created",
435
+ COLLECTION_PROCESSING: "collection_processing",
436
+ PAYMENT_OUTCOME_UNKNOWN: "payment_outcome_unknown",
437
+ PAYMENT_FAILED: "payment_failed",
438
+ REDIRECT_REQUIRED: "redirect_required",
439
+ CARD_POPUP_REQUIRED: "card_popup_required",
440
+ AUTHORIZATION_REQUIRED: "authorization_required",
441
+ TERMS_CHANGED: "terms_changed",
442
+ SELECTION_UNAVAILABLE: "selection_unavailable",
443
+ OFFER_ENDED: "offer_ended",
444
+ SOURCE_UNAVAILABLE: "source_unavailable"
445
+ };
446
+ var PURCHASE_INTENT_RESOLUTION_KIND = {
447
+ COMPLETED: "completed",
448
+ FAILED: "failed",
449
+ ACTION_REQUIRED: "action_required",
450
+ REVIEW_REQUIRED: "review_required",
451
+ OUTCOME_UNKNOWN: "outcome_unknown",
452
+ TIMED_OUT: "timed_out"
453
+ };
454
+ var PURCHASE_INTENT_ACTION_DECISION = {
455
+ CONTINUE: "continue",
456
+ STOP: "stop",
457
+ SUBMIT: "submit"
458
+ };
459
+ var PURCHASE_INTENT_RESOLVE_STATUS = {
460
+ CONFIRMING: "confirming",
461
+ POLLING: "polling",
462
+ AWAITING_ACTION: "awaiting_action",
463
+ REVIEWING_TERMS: "reviewing_terms",
464
+ COMPLETED: "completed",
465
+ FAILED: "failed",
466
+ OUTCOME_UNKNOWN: "outcome_unknown"
467
+ };
468
+ var PURCHASE_INTENT_ERROR_CODE = {
469
+ ACTION_UNSUPPORTED: "PURCHASE_INTENT_ACTION_UNSUPPORTED",
470
+ PAYMENT_FAILED: "PAYMENT_FAILED",
471
+ TERMS_CHANGED: "TERMS_CHANGED",
472
+ SELECTION_UNAVAILABLE: "SELECTION_UNAVAILABLE",
473
+ OFFER_ENDED: "OFFER_ENDED",
474
+ SOURCE_UNAVAILABLE: "SOURCE_UNAVAILABLE"
475
+ };
476
+
477
+ exports.CHECKOUT_COMPLIANCE_LANE = CHECKOUT_COMPLIANCE_LANE;
478
+ exports.CHECKOUT_COMPLIANCE_REASON = CHECKOUT_COMPLIANCE_REASON;
479
+ exports.CHECKOUT_INVALIDATION_REASON = CHECKOUT_INVALIDATION_REASON;
480
+ exports.CHECKOUT_MATERIAL_TERMS_COMPONENT = CHECKOUT_MATERIAL_TERMS_COMPONENT;
481
+ exports.CHECKOUT_TERMS_COMPONENT = CHECKOUT_TERMS_COMPONENT;
482
+ exports.CHECKOUT_TERMS_DELTA_KIND = CHECKOUT_TERMS_DELTA_KIND;
483
+ exports.CimplifyError = CimplifyError;
484
+ exports.ERROR_HINTS = ERROR_HINTS;
485
+ exports.ErrorCode = ErrorCode;
486
+ exports.IdempotencyMismatchError = IdempotencyMismatchError;
487
+ exports.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS = LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS;
488
+ exports.LEGACY_CHECKOUT_PAYMENT_STATUS = LEGACY_CHECKOUT_PAYMENT_STATUS;
489
+ exports.MOBILE_MONEY_TENDER_AUTHORITY_KIND = MOBILE_MONEY_TENDER_AUTHORITY_KIND;
490
+ exports.PAYMENT_COLLECTION_MODE = PAYMENT_COLLECTION_MODE;
491
+ exports.PAYMENT_INSTRUMENT_DISPLAY_KIND = PAYMENT_INSTRUMENT_DISPLAY_KIND;
492
+ exports.PAYMENT_OPTION_NEXT_ACTION = PAYMENT_OPTION_NEXT_ACTION;
493
+ exports.PAYMENT_OPTION_STATUS = PAYMENT_OPTION_STATUS;
494
+ exports.PURCHASE_INTENT_ACTION_DECISION = PURCHASE_INTENT_ACTION_DECISION;
495
+ exports.PURCHASE_INTENT_CONFIRM_STATUS = PURCHASE_INTENT_CONFIRM_STATUS;
496
+ exports.PURCHASE_INTENT_ERROR_CODE = PURCHASE_INTENT_ERROR_CODE;
497
+ exports.PURCHASE_INTENT_LINE_CONFIGURATION_KIND = PURCHASE_INTENT_LINE_CONFIGURATION_KIND;
498
+ exports.PURCHASE_INTENT_MOBILE_MONEY_NETWORK = PURCHASE_INTENT_MOBILE_MONEY_NETWORK;
499
+ exports.PURCHASE_INTENT_OFFER_KIND = PURCHASE_INTENT_OFFER_KIND;
500
+ exports.PURCHASE_INTENT_PAYMENT_METHOD = PURCHASE_INTENT_PAYMENT_METHOD;
501
+ exports.PURCHASE_INTENT_PAYMENT_PROVIDER = PURCHASE_INTENT_PAYMENT_PROVIDER;
502
+ exports.PURCHASE_INTENT_RESOLUTION_KIND = PURCHASE_INTENT_RESOLUTION_KIND;
503
+ exports.PURCHASE_INTENT_RESOLVE_STATUS = PURCHASE_INTENT_RESOLVE_STATUS;
504
+ exports.PURCHASE_INTENT_SELLABLE_KIND = PURCHASE_INTENT_SELLABLE_KIND;
505
+ exports.PURCHASE_INTENT_SOURCE_KIND = PURCHASE_INTENT_SOURCE_KIND;
506
+ exports.PURCHASE_INTENT_STATUS = PURCHASE_INTENT_STATUS;
507
+ exports.PURCHASING_PRINCIPAL_KIND = PURCHASING_PRINCIPAL_KIND;
508
+ exports.ZERO = ZERO;
509
+ exports.currencyCode = currencyCode;
510
+ exports.enrichError = enrichError;
511
+ exports.getErrorHint = getErrorHint;
512
+ exports.isCimplifyError = isCimplifyError;
513
+ exports.isIdempotencyMismatchError = isIdempotencyMismatchError;
514
+ exports.isQuoteConflictRequiringConsent = isQuoteConflictRequiringConsent;
515
+ exports.isQuoteError = isQuoteError;
516
+ exports.isRetryableError = isRetryableError;
517
+ exports.isSupportedCurrency = isSupportedCurrency;
518
+ exports.money = money;
519
+ exports.moneyFromNumber = moneyFromNumber;
@@ -1,4 +1,4 @@
1
- import { moneyFromNumber, money } from './chunk-VNPEYLB2.mjs';
1
+ import { PURCHASE_INTENT_MOBILE_MONEY_NETWORK, moneyFromNumber, money } from './chunk-RBNBSQI7.mjs';
2
2
 
3
3
  // src/utils/price.ts
4
4
  var CURRENCY_SYMBOLS = {
@@ -511,6 +511,15 @@ function canonicalMobileMoneyProvider(provider) {
511
511
  const normalized = provider.trim().toLowerCase().replace(/[\s_-]+/g, "");
512
512
  return MOBILE_MONEY_PROVIDER_ALIASES[normalized] ?? null;
513
513
  }
514
+ var PURCHASE_INTENT_NETWORK_BY_PROVIDER = {
515
+ mtn: PURCHASE_INTENT_MOBILE_MONEY_NETWORK.MTN,
516
+ telecel: PURCHASE_INTENT_MOBILE_MONEY_NETWORK.TELECEL,
517
+ airteltigo: PURCHASE_INTENT_MOBILE_MONEY_NETWORK.AIRTEL
518
+ };
519
+ function purchaseIntentMobileMoneyNetwork(provider) {
520
+ const canonical = canonicalMobileMoneyProvider(provider);
521
+ return canonical ? PURCHASE_INTENT_NETWORK_BY_PROVIDER[canonical] ?? null : null;
522
+ }
514
523
  var LOOPBACK_AUTHORIZATION_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "[::1]"]);
515
524
  function paymentAuthorizationUrl(value) {
516
525
  if (typeof value !== "string" || !value.trim()) return null;
@@ -535,4 +544,4 @@ function detectMobileMoneyProvider(phoneNumber) {
535
544
  return null;
536
545
  }
537
546
 
538
- export { CURRENCY_SYMBOLS, MOBILE_MONEY_PROVIDERS, PAYMENT_TERMINAL_FAILURE_STATUSES, canonicalMobileMoneyProvider, categorizePaymentError, detectMobileMoneyProvider, formatMoney, formatNumberCompact, formatPrice, formatPriceAdjustment, formatPriceCompact, formatPriceRange, formatPriceWithTax, formatProductPrice, getBasePrice, getCurrencySymbol, getDiscountPercentage, getDisplayPrice, getMarkupPercentage, getPriceRange, getProductCurrency, getTaxAmount, getUnitPriceAtQuantity, getVariantUnitPrice, hasTaxInfo, isOnSale, isPaymentStatusFailure, isPaymentStatusRequiresAction, isPaymentStatusSuccess, isTaxInclusive, normalizePaymentResponse, normalizeStatusResponse, parsePrice, paymentAuthorizationUrl };
547
+ export { CURRENCY_SYMBOLS, MOBILE_MONEY_PROVIDERS, PAYMENT_TERMINAL_FAILURE_STATUSES, canonicalMobileMoneyProvider, categorizePaymentError, detectMobileMoneyProvider, formatMoney, formatNumberCompact, formatPrice, formatPriceAdjustment, formatPriceCompact, formatPriceRange, formatPriceWithTax, formatProductPrice, getBasePrice, getCurrencySymbol, getDiscountPercentage, getDisplayPrice, getMarkupPercentage, getPriceRange, getProductCurrency, getTaxAmount, getUnitPriceAtQuantity, getVariantUnitPrice, hasTaxInfo, isOnSale, isPaymentStatusFailure, isPaymentStatusRequiresAction, isPaymentStatusSuccess, isTaxInclusive, normalizePaymentResponse, normalizeStatusResponse, parsePrice, paymentAuthorizationUrl, purchaseIntentMobileMoneyNetwork };