@cimplify/sdk 0.107.0 → 0.108.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-BohD-jU_.d.mts → catalogue-B4eLL8Mi.d.ts} +2 -1
- package/dist/{catalogue-C4xKpirp.d.ts → catalogue-OT89_Ifs.d.mts} +2 -1
- package/dist/{chunk-73HY36Z7.js → chunk-5QW7CQBA.js} +70 -70
- package/dist/{chunk-AVXA4F6G.js → chunk-ANT574FD.js} +29 -0
- package/dist/{chunk-W4ZFZPPY.js → chunk-EDK3LNM6.js} +152 -147
- package/dist/{chunk-HKCB73AJ.js → chunk-F7J3HK27.js} +211 -177
- package/dist/{chunk-NYDVVNZI.mjs → chunk-JRGK3NXR.mjs} +1 -1
- package/dist/{chunk-IWZKCL3P.mjs → chunk-JVODCGFP.mjs} +3 -3
- package/dist/{chunk-NJYR6GGM.mjs → chunk-KG3WT4PR.mjs} +29 -1
- package/dist/{chunk-P4HYAV3L.mjs → chunk-SUCE7FWA.mjs} +7 -2
- package/dist/{chunk-2I6YKE6Q.mjs → chunk-U6ACF76H.mjs} +36 -3
- package/dist/{chunk-NX5YBQZP.js → chunk-UVRPC2P7.js} +73 -62
- package/dist/{chunk-UYFTOIFW.js → chunk-V32BCG7M.js} +6 -6
- package/dist/{chunk-MKZXZDHE.mjs → chunk-XBL3TMPC.mjs} +14 -3
- package/dist/{client-ByURQZM9.d.ts → client-B878xeAP.d.ts} +2 -2
- package/dist/{client-BBFfAtn4.d.mts → client-BSP9U1O1.d.mts} +2 -2
- package/dist/{elements-Dtqe9Ekd.d.mts → elements-Bty6Qs_N.d.mts} +117 -6
- package/dist/{elements-Dtqe9Ekd.d.ts → elements-Bty6Qs_N.d.ts} +117 -6
- package/dist/{index-DFqDU6yU.d.ts → index-B7oA_1XI.d.ts} +2 -2
- package/dist/{index-B6mukQYB.d.mts → index-CQStGb3B.d.mts} +2 -2
- package/dist/{index-CvLuAMjQ.d.ts → index-DJwXmoaP.d.ts} +2 -2
- package/dist/{index-7oz-hVVA.d.mts → index-DhUSTAhT.d.mts} +2 -2
- package/dist/index.d.mts +21 -8
- package/dist/index.d.ts +21 -8
- package/dist/index.js +160 -152
- package/dist/index.mjs +5 -5
- package/dist/mock/cli.mjs +16 -2
- package/dist/mock/library.js +16 -2
- package/dist/mock/library.mjs +16 -2
- package/dist/mock/msw.js +16 -2
- package/dist/mock/msw.mjs +16 -2
- package/dist/{price-Pyq-vlrm.d.mts → price-CSztR02F.d.mts} +1 -1
- package/dist/{price-B4jL81ef.d.ts → price-C_vasx9A.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-Cowuvfbr.d.ts → server-B6dW7-Lj.d.mts} +1 -1
- package/dist/{server-KilvZJU0.d.mts → server-Dckg4Vdr.d.ts} +1 -1
- 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 -26
- package/dist/testing/suite.mjs +6 -6
- package/dist/testing.d.mts +4 -4
- package/dist/testing.d.ts +4 -4
- 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,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkEV2EVOYS_js = require('./chunk-EV2EVOYS.js');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkV32BCG7M_js = require('./chunk-V32BCG7M.js');
|
|
5
|
+
var chunkANT574FD_js = require('./chunk-ANT574FD.js');
|
|
6
6
|
|
|
7
7
|
// src/types/result.ts
|
|
8
8
|
function ok(value) {
|
|
@@ -117,11 +117,11 @@ function clearIntentIdempotencyKey(scope, storage = sessionStorageOrNull()) {
|
|
|
117
117
|
|
|
118
118
|
// src/internal/safe.ts
|
|
119
119
|
function toCimplifyError(error) {
|
|
120
|
-
if (error instanceof
|
|
120
|
+
if (error instanceof chunkANT574FD_js.CimplifyError) return chunkANT574FD_js.enrichError(error);
|
|
121
121
|
if (error instanceof Error) {
|
|
122
|
-
return
|
|
122
|
+
return chunkANT574FD_js.enrichError(new chunkANT574FD_js.CimplifyError(chunkANT574FD_js.ErrorCode.UNKNOWN_ERROR, error.message, false));
|
|
123
123
|
}
|
|
124
|
-
return
|
|
124
|
+
return chunkANT574FD_js.enrichError(new chunkANT574FD_js.CimplifyError(chunkANT574FD_js.ErrorCode.UNKNOWN_ERROR, String(error), false));
|
|
125
125
|
}
|
|
126
126
|
async function safe(promise) {
|
|
127
127
|
try {
|
|
@@ -696,7 +696,7 @@ var CartOperations = class {
|
|
|
696
696
|
if (typeof updates.quantity !== "number") {
|
|
697
697
|
return {
|
|
698
698
|
ok: false,
|
|
699
|
-
error: new
|
|
699
|
+
error: new chunkANT574FD_js.CimplifyError(
|
|
700
700
|
"VALIDATION_ERROR",
|
|
701
701
|
"updateItem requires a quantity; richer mid-cart edits are not supported"
|
|
702
702
|
)
|
|
@@ -800,12 +800,12 @@ var PAYMENT_AUTHORIZATION_PROVIDER = {
|
|
|
800
800
|
|
|
801
801
|
// src/payment-authorization/providers/paystack.ts
|
|
802
802
|
var PAYSTACK_POPUP_ERROR = {
|
|
803
|
-
PROVIDER_UNAVAILABLE:
|
|
803
|
+
PROVIDER_UNAVAILABLE: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
804
804
|
SUBMISSION_UNKNOWN: "SUBMISSION_UNKNOWN",
|
|
805
805
|
CANCELLED: "CANCELLED",
|
|
806
|
-
PAYMENT_CANCELLED:
|
|
807
|
-
PAYMENT_FAILED:
|
|
808
|
-
POPUP_BLOCKED:
|
|
806
|
+
PAYMENT_CANCELLED: chunkANT574FD_js.ErrorCode.PAYMENT_CANCELLED,
|
|
807
|
+
PAYMENT_FAILED: chunkANT574FD_js.ErrorCode.PAYMENT_FAILED,
|
|
808
|
+
POPUP_BLOCKED: chunkANT574FD_js.ErrorCode.POPUP_BLOCKED
|
|
809
809
|
};
|
|
810
810
|
async function openPaystackPopup(options, signal) {
|
|
811
811
|
if (typeof window === "undefined") {
|
|
@@ -911,7 +911,7 @@ var PaystackAuthorizationAdapter = class {
|
|
|
911
911
|
if (result.error === PAYSTACK_POPUP_ERROR.POPUP_BLOCKED) {
|
|
912
912
|
return {
|
|
913
913
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
914
|
-
code:
|
|
914
|
+
code: chunkANT574FD_js.ErrorCode.POPUP_BLOCKED,
|
|
915
915
|
message: "Unable to open the Paystack payment popup. Please allow popups and try again.",
|
|
916
916
|
recoverable: true
|
|
917
917
|
};
|
|
@@ -919,14 +919,14 @@ var PaystackAuthorizationAdapter = class {
|
|
|
919
919
|
if (result.error === PAYSTACK_POPUP_ERROR.PROVIDER_UNAVAILABLE) {
|
|
920
920
|
return {
|
|
921
921
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
922
|
-
code:
|
|
922
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
923
923
|
message: "Paystack is unavailable in this environment.",
|
|
924
924
|
recoverable: false
|
|
925
925
|
};
|
|
926
926
|
}
|
|
927
927
|
return {
|
|
928
928
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
929
|
-
code:
|
|
929
|
+
code: chunkANT574FD_js.ErrorCode.PAYMENT_FAILED,
|
|
930
930
|
message: result.error || "Paystack payment could not be submitted.",
|
|
931
931
|
recoverable: true
|
|
932
932
|
};
|
|
@@ -1024,14 +1024,14 @@ function stripeFailure(error) {
|
|
|
1024
1024
|
if (error?.code === "payment_intent_authentication_failure" || error?.type === "invalid_request_error") {
|
|
1025
1025
|
return {
|
|
1026
1026
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1027
|
-
code:
|
|
1027
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_FAILED,
|
|
1028
1028
|
message,
|
|
1029
1029
|
recoverable: true
|
|
1030
1030
|
};
|
|
1031
1031
|
}
|
|
1032
1032
|
return {
|
|
1033
1033
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1034
|
-
code:
|
|
1034
|
+
code: chunkANT574FD_js.ErrorCode.PAYMENT_FAILED,
|
|
1035
1035
|
message,
|
|
1036
1036
|
recoverable: true
|
|
1037
1037
|
};
|
|
@@ -1045,7 +1045,7 @@ var StripeAuthorizationAdapter = class {
|
|
|
1045
1045
|
if (typeof window === "undefined" || typeof document === "undefined" || context.signal?.aborted) {
|
|
1046
1046
|
return context.signal?.aborted ? { status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.CANCELLED } : {
|
|
1047
1047
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1048
|
-
code:
|
|
1048
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1049
1049
|
message: "Stripe Payment Element is unavailable in this environment.",
|
|
1050
1050
|
recoverable: false
|
|
1051
1051
|
};
|
|
@@ -1059,7 +1059,7 @@ var StripeAuthorizationAdapter = class {
|
|
|
1059
1059
|
} catch (error) {
|
|
1060
1060
|
return {
|
|
1061
1061
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1062
|
-
code:
|
|
1062
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1063
1063
|
message: error instanceof Error ? error.message : "Stripe.js could not be loaded.",
|
|
1064
1064
|
recoverable: true
|
|
1065
1065
|
};
|
|
@@ -1070,7 +1070,7 @@ var StripeAuthorizationAdapter = class {
|
|
|
1070
1070
|
if (!stripe) {
|
|
1071
1071
|
return {
|
|
1072
1072
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1073
|
-
code:
|
|
1073
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1074
1074
|
message: "Stripe.js could not be loaded.",
|
|
1075
1075
|
recoverable: false
|
|
1076
1076
|
};
|
|
@@ -1079,7 +1079,7 @@ var StripeAuthorizationAdapter = class {
|
|
|
1079
1079
|
if (!modal) {
|
|
1080
1080
|
return {
|
|
1081
1081
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1082
|
-
code:
|
|
1082
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1083
1083
|
message: "Stripe Payment Element could not be mounted.",
|
|
1084
1084
|
recoverable: false
|
|
1085
1085
|
};
|
|
@@ -1095,7 +1095,7 @@ var StripeAuthorizationAdapter = class {
|
|
|
1095
1095
|
modal.previousFocus?.focus();
|
|
1096
1096
|
return {
|
|
1097
1097
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1098
|
-
code:
|
|
1098
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1099
1099
|
message: "Stripe Payment Element could not be initialized.",
|
|
1100
1100
|
recoverable: false
|
|
1101
1101
|
};
|
|
@@ -1198,7 +1198,7 @@ var StripeAuthorizationAdapter = class {
|
|
|
1198
1198
|
if (confirmationStarted) return;
|
|
1199
1199
|
settle({
|
|
1200
1200
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1201
|
-
code:
|
|
1201
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1202
1202
|
message: event?.error?.message || "Stripe Payment Element failed to load.",
|
|
1203
1203
|
recoverable: true
|
|
1204
1204
|
});
|
|
@@ -1243,7 +1243,7 @@ var PaymentAuthorizationAdapterRegistry = class {
|
|
|
1243
1243
|
if (!provider) {
|
|
1244
1244
|
return {
|
|
1245
1245
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1246
|
-
code:
|
|
1246
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1247
1247
|
message: "Card authorization response did not identify a payment provider.",
|
|
1248
1248
|
recoverable: false
|
|
1249
1249
|
};
|
|
@@ -1252,7 +1252,7 @@ var PaymentAuthorizationAdapterRegistry = class {
|
|
|
1252
1252
|
if (!adapter) {
|
|
1253
1253
|
return {
|
|
1254
1254
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1255
|
-
code:
|
|
1255
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
1256
1256
|
message: `Card authorization provider '${provider}' is not supported by this SDK client.`,
|
|
1257
1257
|
recoverable: false
|
|
1258
1258
|
};
|
|
@@ -1263,7 +1263,7 @@ var PaymentAuthorizationAdapterRegistry = class {
|
|
|
1263
1263
|
} catch (error) {
|
|
1264
1264
|
return {
|
|
1265
1265
|
status: PAYMENT_AUTHORIZATION_OUTCOME_STATUS.FAILED,
|
|
1266
|
-
code:
|
|
1266
|
+
code: chunkANT574FD_js.ErrorCode.PAYMENT_FAILED,
|
|
1267
1267
|
message: error instanceof Error ? error.message : `Card authorization provider '${provider}' failed unexpectedly.`,
|
|
1268
1268
|
recoverable: true
|
|
1269
1269
|
};
|
|
@@ -1284,7 +1284,7 @@ function isExactlyZeroMoney(value) {
|
|
|
1284
1284
|
return EXACT_ZERO_MONEY.test(value.trim());
|
|
1285
1285
|
}
|
|
1286
1286
|
function selectPurchaseIntentPaymentOption(terms, selection) {
|
|
1287
|
-
return terms.payment_options.filter((option) => option.status ===
|
|
1287
|
+
return terms.payment_options.filter((option) => option.status === chunkANT574FD_js.PAYMENT_OPTION_STATUS.ELIGIBLE).sort((left, right) => left.rank - right.rank).find(
|
|
1288
1288
|
(option) => option.method_kind === selection.method_kind && (selection.payment_option_id === void 0 || option.id === selection.payment_option_id)
|
|
1289
1289
|
);
|
|
1290
1290
|
}
|
|
@@ -1299,7 +1299,7 @@ function createPurchaseIntentConfirmation(terms, paymentOption, idempotencyKey)
|
|
|
1299
1299
|
throw new TypeError("Zero-rail terms must not name a payment option");
|
|
1300
1300
|
}
|
|
1301
1301
|
const authoritativeOption = paymentOption ? terms.payment_options.find(
|
|
1302
|
-
(candidate) => candidate.id === paymentOption.id && candidate.status ===
|
|
1302
|
+
(candidate) => candidate.id === paymentOption.id && candidate.status === chunkANT574FD_js.PAYMENT_OPTION_STATUS.ELIGIBLE
|
|
1303
1303
|
) : void 0;
|
|
1304
1304
|
if (paymentOption && !authoritativeOption) {
|
|
1305
1305
|
throw new TypeError("Payment option is not eligible for these checkout terms");
|
|
@@ -1319,62 +1319,95 @@ function createPurchaseIntentConfirmation(terms, paymentOption, idempotencyKey)
|
|
|
1319
1319
|
function purchaseIntentRequiresPaymentOption(terms) {
|
|
1320
1320
|
return terms.payment_options.length > 0 || !isExactlyZeroMoney(terms.money.rail_amount);
|
|
1321
1321
|
}
|
|
1322
|
+
var PLAIN_DECIMAL = /^([+-]?)(\d+)(?:\.(\d+))?$/;
|
|
1323
|
+
function canonicalDecimal(value) {
|
|
1324
|
+
const match = PLAIN_DECIMAL.exec(typeof value === "number" ? String(value) : value.trim());
|
|
1325
|
+
if (!match) return null;
|
|
1326
|
+
const whole = match[2].replace(/^0+(?=\d)/, "");
|
|
1327
|
+
const fraction = (match[3] ?? "").replace(/0+$/, "");
|
|
1328
|
+
const isZero = whole === "0" && fraction === "";
|
|
1329
|
+
return `${match[1] === "-" && !isZero ? "-" : ""}${whole}${fraction ? `.${fraction}` : ""}`;
|
|
1330
|
+
}
|
|
1331
|
+
function isSameAmount(left, right) {
|
|
1332
|
+
const canonicalLeft = canonicalDecimal(left);
|
|
1333
|
+
return canonicalLeft !== null && canonicalLeft === canonicalDecimal(right);
|
|
1334
|
+
}
|
|
1335
|
+
function confirmationForUnchangedReplacement(response, selection, idempotencyKey) {
|
|
1336
|
+
const { replacement, deltas } = response;
|
|
1337
|
+
const paymentDeltas = deltas.filter(
|
|
1338
|
+
(delta2) => delta2.kind === chunkANT574FD_js.CHECKOUT_TERMS_DELTA_KIND.PAYMENT_OPTION
|
|
1339
|
+
);
|
|
1340
|
+
if (paymentDeltas.length !== deltas.length) return null;
|
|
1341
|
+
if (!purchaseIntentRequiresPaymentOption(replacement)) {
|
|
1342
|
+
return paymentDeltas.length === 0 ? createPurchaseIntentConfirmation(replacement, null, idempotencyKey) : null;
|
|
1343
|
+
}
|
|
1344
|
+
if (!selection || paymentDeltas.length !== 1) return null;
|
|
1345
|
+
const option = selectPurchaseIntentPaymentOption(replacement, {
|
|
1346
|
+
method_kind: selection.method_kind
|
|
1347
|
+
});
|
|
1348
|
+
const [delta] = paymentDeltas;
|
|
1349
|
+
if (!option || delta.kind !== chunkANT574FD_js.CHECKOUT_TERMS_DELTA_KIND.PAYMENT_OPTION) return null;
|
|
1350
|
+
if (!isSameAmount(option.customer_debit_amount, delta.accepted_customer_debit_amount)) {
|
|
1351
|
+
return null;
|
|
1352
|
+
}
|
|
1353
|
+
return createPurchaseIntentConfirmation(replacement, option, idempotencyKey);
|
|
1354
|
+
}
|
|
1322
1355
|
|
|
1323
1356
|
// src/utils/purchase-intent-adapter.ts
|
|
1324
1357
|
function tenderPreference(form) {
|
|
1325
|
-
if (form.payment_method ===
|
|
1358
|
+
if (form.payment_method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY) {
|
|
1326
1359
|
if (form.link_payment_method_id) {
|
|
1327
1360
|
return {
|
|
1328
|
-
method_kind:
|
|
1361
|
+
method_kind: chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY,
|
|
1329
1362
|
authority: {
|
|
1330
|
-
authority_kind:
|
|
1363
|
+
authority_kind: chunkANT574FD_js.MOBILE_MONEY_TENDER_AUTHORITY_KIND.SAVED_REFERENCE,
|
|
1331
1364
|
stored_instrument_id: form.link_payment_method_id
|
|
1332
1365
|
}
|
|
1333
1366
|
};
|
|
1334
1367
|
}
|
|
1335
1368
|
const details = form.mobile_money_details;
|
|
1336
1369
|
if (!details?.phone_number || !details.provider) {
|
|
1337
|
-
throw new
|
|
1338
|
-
|
|
1370
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1371
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1339
1372
|
"Mobile money requires a phone number and network.",
|
|
1340
1373
|
false
|
|
1341
1374
|
);
|
|
1342
1375
|
}
|
|
1343
|
-
const network =
|
|
1376
|
+
const network = chunkV32BCG7M_js.purchaseIntentMobileMoneyNetwork(details.provider);
|
|
1344
1377
|
if (!network) {
|
|
1345
|
-
throw new
|
|
1346
|
-
|
|
1378
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1379
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1347
1380
|
"That mobile money network is not available for PurchaseIntent checkout.",
|
|
1348
1381
|
false
|
|
1349
1382
|
);
|
|
1350
1383
|
}
|
|
1351
1384
|
return {
|
|
1352
|
-
method_kind:
|
|
1385
|
+
method_kind: chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY,
|
|
1353
1386
|
authority: {
|
|
1354
|
-
authority_kind:
|
|
1387
|
+
authority_kind: chunkANT574FD_js.MOBILE_MONEY_TENDER_AUTHORITY_KIND.TRANSIENT,
|
|
1355
1388
|
phone_number: details.phone_number,
|
|
1356
1389
|
network
|
|
1357
1390
|
}
|
|
1358
1391
|
};
|
|
1359
1392
|
}
|
|
1360
|
-
if (form.payment_method ===
|
|
1361
|
-
throw new
|
|
1362
|
-
|
|
1393
|
+
if (form.payment_method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.CASH || form.payment_method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.OFFLINE) {
|
|
1394
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1395
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1363
1396
|
"Offline tender requires an authenticated staff checkout.",
|
|
1364
1397
|
false
|
|
1365
1398
|
);
|
|
1366
1399
|
}
|
|
1367
|
-
if (form.payment_method ===
|
|
1400
|
+
if (form.payment_method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD) {
|
|
1368
1401
|
return {
|
|
1369
|
-
method_kind:
|
|
1402
|
+
method_kind: chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD,
|
|
1370
1403
|
stored_instrument_id: form.link_payment_method_id
|
|
1371
1404
|
};
|
|
1372
1405
|
}
|
|
1373
|
-
if (form.payment_method ===
|
|
1406
|
+
if (form.payment_method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.STORE_CREDIT) {
|
|
1374
1407
|
return void 0;
|
|
1375
1408
|
}
|
|
1376
|
-
throw new
|
|
1377
|
-
|
|
1409
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1410
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1378
1411
|
"Checkout payment method is not supported.",
|
|
1379
1412
|
false
|
|
1380
1413
|
);
|
|
@@ -1382,7 +1415,7 @@ function tenderPreference(form) {
|
|
|
1382
1415
|
function checkoutFormToIntentRequest(form, clientIntentKey) {
|
|
1383
1416
|
return {
|
|
1384
1417
|
client_intent_key: clientIntentKey,
|
|
1385
|
-
source: { kind:
|
|
1418
|
+
source: { kind: chunkANT574FD_js.PURCHASE_INTENT_SOURCE_KIND.CART, cart_id: form.cart_id },
|
|
1386
1419
|
checkout: {
|
|
1387
1420
|
customer: form.customer,
|
|
1388
1421
|
order_type: form.order_type,
|
|
@@ -1394,7 +1427,7 @@ function checkoutFormToIntentRequest(form, clientIntentKey) {
|
|
|
1394
1427
|
metadata: form.metadata,
|
|
1395
1428
|
pay_currency: form.pay_currency,
|
|
1396
1429
|
fx_quote_id: form.fx_quote_id,
|
|
1397
|
-
use_store_credit: form.use_store_credit || form.payment_method ===
|
|
1430
|
+
use_store_credit: form.use_store_credit || form.payment_method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.STORE_CREDIT,
|
|
1398
1431
|
voucher_code: form.voucher_code,
|
|
1399
1432
|
pay_deposit: form.pay_deposit,
|
|
1400
1433
|
tender_preference: tenderPreference(form)
|
|
@@ -1404,7 +1437,7 @@ function checkoutFormToIntentRequest(form, clientIntentKey) {
|
|
|
1404
1437
|
function selectCheckoutPaymentOption(terms, form) {
|
|
1405
1438
|
const preference = tenderPreference(form);
|
|
1406
1439
|
if (!preference) return void 0;
|
|
1407
|
-
return terms.payment_options.filter((option) => option.status ===
|
|
1440
|
+
return terms.payment_options.filter((option) => option.status === chunkANT574FD_js.PAYMENT_OPTION_STATUS.ELIGIBLE).sort((left, right) => left.rank - right.rank).find((option) => option.method_kind === preference.method_kind);
|
|
1408
1441
|
}
|
|
1409
1442
|
function checkoutFormToConfirmation(_form, terms, paymentOption, idempotencyKey) {
|
|
1410
1443
|
return createPurchaseIntentConfirmation(terms, paymentOption, idempotencyKey);
|
|
@@ -1420,39 +1453,39 @@ function committedBase(response) {
|
|
|
1420
1453
|
}
|
|
1421
1454
|
function confirmationToCheckoutResult(response) {
|
|
1422
1455
|
switch (response.status) {
|
|
1423
|
-
case
|
|
1456
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED:
|
|
1424
1457
|
return ok({
|
|
1425
1458
|
...committedBase(response),
|
|
1426
|
-
payment_status:
|
|
1459
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.SUCCEEDED,
|
|
1427
1460
|
requires_authorization: false,
|
|
1428
1461
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.NONE }
|
|
1429
1462
|
});
|
|
1430
|
-
case
|
|
1463
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.COLLECTION_PROCESSING:
|
|
1431
1464
|
return ok({
|
|
1432
1465
|
...committedBase(response),
|
|
1433
|
-
payment_status:
|
|
1466
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.PROCESSING,
|
|
1434
1467
|
requires_authorization: false,
|
|
1435
1468
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.POLL }
|
|
1436
1469
|
});
|
|
1437
|
-
case
|
|
1470
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.PAYMENT_OUTCOME_UNKNOWN:
|
|
1438
1471
|
return ok({
|
|
1439
1472
|
...committedBase(response),
|
|
1440
|
-
payment_status:
|
|
1473
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.UNKNOWN,
|
|
1441
1474
|
requires_authorization: false,
|
|
1442
1475
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.POLL }
|
|
1443
1476
|
});
|
|
1444
|
-
case
|
|
1477
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.PAYMENT_FAILED:
|
|
1445
1478
|
return err(
|
|
1446
|
-
new
|
|
1447
|
-
|
|
1479
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1480
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.PAYMENT_FAILED,
|
|
1448
1481
|
"Payment failed. The order remains recorded, but collection did not succeed.",
|
|
1449
1482
|
true
|
|
1450
1483
|
)
|
|
1451
1484
|
);
|
|
1452
|
-
case
|
|
1485
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.REDIRECT_REQUIRED:
|
|
1453
1486
|
return ok({
|
|
1454
1487
|
...committedBase(response),
|
|
1455
|
-
payment_status:
|
|
1488
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.REQUIRES_ACTION,
|
|
1456
1489
|
requires_authorization: false,
|
|
1457
1490
|
authorization_url: response.authorization_url,
|
|
1458
1491
|
next_action: {
|
|
@@ -1460,10 +1493,10 @@ function confirmationToCheckoutResult(response) {
|
|
|
1460
1493
|
authorization_url: response.authorization_url
|
|
1461
1494
|
}
|
|
1462
1495
|
});
|
|
1463
|
-
case
|
|
1496
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED:
|
|
1464
1497
|
return ok({
|
|
1465
1498
|
...committedBase(response),
|
|
1466
|
-
payment_status:
|
|
1499
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.REQUIRES_ACTION,
|
|
1467
1500
|
requires_authorization: false,
|
|
1468
1501
|
provider: response.provider,
|
|
1469
1502
|
client_secret: response.client_secret,
|
|
@@ -1476,10 +1509,10 @@ function confirmationToCheckoutResult(response) {
|
|
|
1476
1509
|
provider_account_id: response.provider_account_id ?? void 0
|
|
1477
1510
|
}
|
|
1478
1511
|
});
|
|
1479
|
-
case
|
|
1512
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED:
|
|
1480
1513
|
return ok({
|
|
1481
1514
|
...committedBase(response),
|
|
1482
|
-
payment_status:
|
|
1515
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.REQUIRES_ACTION,
|
|
1483
1516
|
requires_authorization: true,
|
|
1484
1517
|
authorization_type: response.authorization_type,
|
|
1485
1518
|
display_text: response.display_text,
|
|
@@ -1489,34 +1522,34 @@ function confirmationToCheckoutResult(response) {
|
|
|
1489
1522
|
display_text: response.display_text
|
|
1490
1523
|
}
|
|
1491
1524
|
});
|
|
1492
|
-
case
|
|
1525
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED:
|
|
1493
1526
|
return err(
|
|
1494
|
-
new
|
|
1495
|
-
|
|
1527
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1528
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.TERMS_CHANGED,
|
|
1496
1529
|
"Checkout terms changed. Review the replacement terms before confirming again.",
|
|
1497
1530
|
true
|
|
1498
1531
|
)
|
|
1499
1532
|
);
|
|
1500
|
-
case
|
|
1533
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE:
|
|
1501
1534
|
return err(
|
|
1502
|
-
new
|
|
1503
|
-
|
|
1535
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1536
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SELECTION_UNAVAILABLE,
|
|
1504
1537
|
"One or more checkout selections are no longer available.",
|
|
1505
1538
|
true
|
|
1506
1539
|
)
|
|
1507
1540
|
);
|
|
1508
|
-
case
|
|
1541
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.OFFER_ENDED:
|
|
1509
1542
|
return err(
|
|
1510
|
-
new
|
|
1511
|
-
|
|
1543
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1544
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.OFFER_ENDED,
|
|
1512
1545
|
"This offer has ended.",
|
|
1513
1546
|
false
|
|
1514
1547
|
)
|
|
1515
1548
|
);
|
|
1516
|
-
case
|
|
1549
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SOURCE_UNAVAILABLE:
|
|
1517
1550
|
return err(
|
|
1518
|
-
new
|
|
1519
|
-
|
|
1551
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1552
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SOURCE_UNAVAILABLE,
|
|
1520
1553
|
"This purchase source is unavailable.",
|
|
1521
1554
|
false
|
|
1522
1555
|
)
|
|
@@ -1526,7 +1559,7 @@ function confirmationToCheckoutResult(response) {
|
|
|
1526
1559
|
|
|
1527
1560
|
// src/checkout.ts
|
|
1528
1561
|
function checkoutActionAuthority(response) {
|
|
1529
|
-
if (response.status !==
|
|
1562
|
+
if (response.status !== chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED && response.status !== chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED) {
|
|
1530
1563
|
return null;
|
|
1531
1564
|
}
|
|
1532
1565
|
const paymentId = response.payment_id?.trim();
|
|
@@ -1537,7 +1570,7 @@ function checkoutActionAuthority(response) {
|
|
|
1537
1570
|
} : null;
|
|
1538
1571
|
}
|
|
1539
1572
|
function isAmbiguousCheckoutError(error) {
|
|
1540
|
-
return error.code ===
|
|
1573
|
+
return error.code === chunkANT574FD_js.ErrorCode.NETWORK_ERROR || error.code === chunkANT574FD_js.ErrorCode.TIMEOUT;
|
|
1541
1574
|
}
|
|
1542
1575
|
function authorizationKind(value) {
|
|
1543
1576
|
if (value && typeof value === "object" && chunkEV2EVOYS_js.AUTHORIZATION_TYPE.ADDRESS in value) {
|
|
@@ -1592,7 +1625,7 @@ function isValidCustomerName(name) {
|
|
|
1592
1625
|
return trimmed.length >= 2 && /\p{L}/u.test(trimmed);
|
|
1593
1626
|
}
|
|
1594
1627
|
function isOfflinePaymentMethod(method) {
|
|
1595
|
-
return method ===
|
|
1628
|
+
return method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.CASH || method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.OFFLINE;
|
|
1596
1629
|
}
|
|
1597
1630
|
function notifyCheckoutStatus(observer, status, context = {}) {
|
|
1598
1631
|
try {
|
|
@@ -1621,13 +1654,13 @@ var CHECKOUT_API_ROUTE = {
|
|
|
1621
1654
|
verifyPayment: (orderId) => `/api/v1/orders/${orderId}/verify-payment`
|
|
1622
1655
|
};
|
|
1623
1656
|
var CHECKOUT_STATUS_BY_PURCHASE_INTENT_RESOLVE_STATUS = {
|
|
1624
|
-
[
|
|
1625
|
-
[
|
|
1626
|
-
[
|
|
1627
|
-
[
|
|
1628
|
-
[
|
|
1629
|
-
[
|
|
1630
|
-
[
|
|
1657
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.CONFIRMING]: chunkEV2EVOYS_js.CHECKOUT_STATUS.PROCESSING,
|
|
1658
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.POLLING]: chunkEV2EVOYS_js.CHECKOUT_STATUS.POLLING,
|
|
1659
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.AWAITING_ACTION]: chunkEV2EVOYS_js.CHECKOUT_STATUS.AWAITING_AUTHORIZATION,
|
|
1660
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.REVIEWING_TERMS]: chunkEV2EVOYS_js.CHECKOUT_STATUS.REVIEWING_TERMS,
|
|
1661
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.COMPLETED]: chunkEV2EVOYS_js.CHECKOUT_STATUS.FINALIZING,
|
|
1662
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.FAILED]: chunkEV2EVOYS_js.CHECKOUT_STATUS.FAILED,
|
|
1663
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.OUTCOME_UNKNOWN]: chunkEV2EVOYS_js.CHECKOUT_STATUS.RECOVERING
|
|
1631
1664
|
};
|
|
1632
1665
|
function normalizeCollectionOptions(value, expectedCurrency) {
|
|
1633
1666
|
if (!value || typeof value !== "object") return null;
|
|
@@ -1651,7 +1684,7 @@ function normalizeCollectionOptions(value, expectedCurrency) {
|
|
|
1651
1684
|
if (option.method !== chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY || typeof option.network !== "string" || !option.network.trim()) {
|
|
1652
1685
|
continue;
|
|
1653
1686
|
}
|
|
1654
|
-
const network =
|
|
1687
|
+
const network = chunkV32BCG7M_js.purchaseIntentMobileMoneyNetwork(option.network);
|
|
1655
1688
|
if (!network) continue;
|
|
1656
1689
|
const key = `${chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY}:${network}`;
|
|
1657
1690
|
if (seen.has(key)) continue;
|
|
@@ -1670,15 +1703,15 @@ var CheckoutService = class {
|
|
|
1670
1703
|
}
|
|
1671
1704
|
validateCheckoutData(data) {
|
|
1672
1705
|
if (isOfflinePaymentMethod(data.payment_method)) {
|
|
1673
|
-
return new
|
|
1674
|
-
|
|
1706
|
+
return new chunkANT574FD_js.CimplifyError(
|
|
1707
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1675
1708
|
"Offline payment isn't available for online checkout. Please pay by card or mobile money.",
|
|
1676
1709
|
false
|
|
1677
1710
|
);
|
|
1678
1711
|
}
|
|
1679
1712
|
if (!isValidCustomerName(data.customer?.name)) {
|
|
1680
|
-
return new
|
|
1681
|
-
|
|
1713
|
+
return new chunkANT574FD_js.CimplifyError(
|
|
1714
|
+
chunkANT574FD_js.ErrorCode.INVALID_CUSTOMER_NAME,
|
|
1682
1715
|
"Enter your name, not a phone number.",
|
|
1683
1716
|
false
|
|
1684
1717
|
);
|
|
@@ -1692,10 +1725,10 @@ var CheckoutService = class {
|
|
|
1692
1725
|
/** Available storefront collection methods for one presentment currency. */
|
|
1693
1726
|
async collectionOptions(currency) {
|
|
1694
1727
|
const normalized = currency.trim().toUpperCase();
|
|
1695
|
-
if (!
|
|
1728
|
+
if (!chunkANT574FD_js.isSupportedCurrency(normalized)) {
|
|
1696
1729
|
return err(
|
|
1697
|
-
new
|
|
1698
|
-
|
|
1730
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1731
|
+
chunkANT574FD_js.ErrorCode.UNSUPPORTED_CURRENCY,
|
|
1699
1732
|
"No online payment method is available for this currency.",
|
|
1700
1733
|
false
|
|
1701
1734
|
)
|
|
@@ -1709,8 +1742,8 @@ var CheckoutService = class {
|
|
|
1709
1742
|
if (!response.ok) return response;
|
|
1710
1743
|
const options = normalizeCollectionOptions(response.value, normalized);
|
|
1711
1744
|
return options ? ok(options) : err(
|
|
1712
|
-
new
|
|
1713
|
-
|
|
1745
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1746
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_CAPABILITY_MISMATCH,
|
|
1714
1747
|
"Payment methods could not be verified for this currency.",
|
|
1715
1748
|
false
|
|
1716
1749
|
)
|
|
@@ -1742,8 +1775,8 @@ var CheckoutService = class {
|
|
|
1742
1775
|
clearIntentIdempotencyKey(intentScope);
|
|
1743
1776
|
this.intentCommands.delete(intentScope);
|
|
1744
1777
|
return err(
|
|
1745
|
-
error instanceof
|
|
1746
|
-
|
|
1778
|
+
error instanceof chunkANT574FD_js.CimplifyError ? error : new chunkANT574FD_js.CimplifyError(
|
|
1779
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_VALIDATION_FAILED,
|
|
1747
1780
|
"Checkout details are invalid.",
|
|
1748
1781
|
false
|
|
1749
1782
|
)
|
|
@@ -1762,8 +1795,8 @@ var CheckoutService = class {
|
|
|
1762
1795
|
clearIntentIdempotencyKey(intentScope);
|
|
1763
1796
|
this.intentCommands.delete(intentScope);
|
|
1764
1797
|
return err(
|
|
1765
|
-
new
|
|
1766
|
-
|
|
1798
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1799
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_TERMS_UNAVAILABLE,
|
|
1767
1800
|
"Checkout terms are not available for this purchase intent.",
|
|
1768
1801
|
true
|
|
1769
1802
|
)
|
|
@@ -1774,8 +1807,8 @@ var CheckoutService = class {
|
|
|
1774
1807
|
paymentOption = selectCheckoutPaymentOption(terms, checkoutData);
|
|
1775
1808
|
} catch (error) {
|
|
1776
1809
|
return err(
|
|
1777
|
-
error instanceof
|
|
1778
|
-
|
|
1810
|
+
error instanceof chunkANT574FD_js.CimplifyError ? error : new chunkANT574FD_js.CimplifyError(
|
|
1811
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1779
1812
|
"Payment details are invalid.",
|
|
1780
1813
|
false
|
|
1781
1814
|
)
|
|
@@ -1783,8 +1816,8 @@ var CheckoutService = class {
|
|
|
1783
1816
|
}
|
|
1784
1817
|
if (!paymentOption && purchaseIntentRequiresPaymentOption(terms)) {
|
|
1785
1818
|
return err(
|
|
1786
|
-
new
|
|
1787
|
-
|
|
1819
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1820
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_CAPABILITY_MISMATCH,
|
|
1788
1821
|
"The selected payment method is not eligible for these checkout terms.",
|
|
1789
1822
|
true
|
|
1790
1823
|
)
|
|
@@ -1836,7 +1869,7 @@ var CheckoutService = class {
|
|
|
1836
1869
|
if (!started.ok) return started;
|
|
1837
1870
|
this.reconcileActionAuthority(started.value.initialResponse);
|
|
1838
1871
|
const result = confirmationToCheckoutResult(started.value.initialResponse);
|
|
1839
|
-
if (started.value.initialResponse.status ===
|
|
1872
|
+
if (started.value.initialResponse.status === chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED || started.value.initialResponse.status === chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.PAYMENT_FAILED) {
|
|
1840
1873
|
clearIntentIdempotencyKey(started.value.intentScope);
|
|
1841
1874
|
clearIntentIdempotencyKey(started.value.confirmationScope);
|
|
1842
1875
|
this.intentCommands.delete(started.value.intentScope);
|
|
@@ -1845,8 +1878,8 @@ var CheckoutService = class {
|
|
|
1845
1878
|
}
|
|
1846
1879
|
async initializePayment(_orderId, _method) {
|
|
1847
1880
|
return err(
|
|
1848
|
-
new
|
|
1849
|
-
|
|
1881
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1882
|
+
chunkANT574FD_js.ErrorCode.NOT_IMPLEMENTED,
|
|
1850
1883
|
"initializePayment is not available in REST mode.",
|
|
1851
1884
|
false
|
|
1852
1885
|
)
|
|
@@ -1863,8 +1896,8 @@ var CheckoutService = class {
|
|
|
1863
1896
|
const authority = this.actionAuthorities.get(paymentId);
|
|
1864
1897
|
if (!authority) {
|
|
1865
1898
|
return err(
|
|
1866
|
-
new
|
|
1867
|
-
|
|
1899
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1900
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_AUTHORITY_REQUIRED,
|
|
1868
1901
|
"The purchase-intent action authority is unavailable. Restart checkout before submitting authorization.",
|
|
1869
1902
|
false
|
|
1870
1903
|
)
|
|
@@ -1956,7 +1989,7 @@ var CheckoutService = class {
|
|
|
1956
1989
|
if (!data.cart_id) {
|
|
1957
1990
|
return ok(
|
|
1958
1991
|
toTerminalFailure(
|
|
1959
|
-
|
|
1992
|
+
chunkANT574FD_js.ErrorCode.INVALID_CART,
|
|
1960
1993
|
"A valid cart is required before checkout can start.",
|
|
1961
1994
|
false
|
|
1962
1995
|
)
|
|
@@ -1966,7 +1999,7 @@ var CheckoutService = class {
|
|
|
1966
1999
|
if (!cartResult.ok || !cartResult.value?.id) {
|
|
1967
2000
|
return ok(
|
|
1968
2001
|
toTerminalFailure(
|
|
1969
|
-
|
|
2002
|
+
chunkANT574FD_js.ErrorCode.INVALID_CART,
|
|
1970
2003
|
"Unable to load cart for checkout.",
|
|
1971
2004
|
false
|
|
1972
2005
|
)
|
|
@@ -1976,7 +2009,7 @@ var CheckoutService = class {
|
|
|
1976
2009
|
if (cart.id !== data.cart_id || cart.items.length === 0) {
|
|
1977
2010
|
return ok(
|
|
1978
2011
|
toTerminalFailure(
|
|
1979
|
-
|
|
2012
|
+
chunkANT574FD_js.ErrorCode.INVALID_CART,
|
|
1980
2013
|
"Cart is empty or no longer valid. Please refresh and try again.",
|
|
1981
2014
|
false
|
|
1982
2015
|
)
|
|
@@ -2003,10 +2036,10 @@ var CheckoutService = class {
|
|
|
2003
2036
|
pay_deposit: data.pay_deposit
|
|
2004
2037
|
};
|
|
2005
2038
|
const rawBaseCurrency = typeof cart.pricing.currency === "string" ? cart.pricing.currency.trim().toUpperCase() : "";
|
|
2006
|
-
if (!
|
|
2039
|
+
if (!chunkANT574FD_js.isSupportedCurrency(rawBaseCurrency)) {
|
|
2007
2040
|
return ok(
|
|
2008
2041
|
toTerminalFailure(
|
|
2009
|
-
|
|
2042
|
+
chunkANT574FD_js.ErrorCode.UNSUPPORTED_CURRENCY,
|
|
2010
2043
|
"Cart currency is missing or unsupported. Refresh the cart before checkout.",
|
|
2011
2044
|
false
|
|
2012
2045
|
)
|
|
@@ -2014,21 +2047,21 @@ var CheckoutService = class {
|
|
|
2014
2047
|
}
|
|
2015
2048
|
const baseCurrency = rawBaseCurrency;
|
|
2016
2049
|
const payCurrency = data.pay_currency?.trim().toUpperCase();
|
|
2017
|
-
if (payCurrency && !
|
|
2050
|
+
if (payCurrency && !chunkANT574FD_js.isSupportedCurrency(payCurrency)) {
|
|
2018
2051
|
return ok(
|
|
2019
2052
|
toTerminalFailure(
|
|
2020
|
-
|
|
2053
|
+
chunkANT574FD_js.ErrorCode.UNSUPPORTED_CURRENCY,
|
|
2021
2054
|
"Payment currency is unsupported for checkout.",
|
|
2022
2055
|
false
|
|
2023
2056
|
)
|
|
2024
2057
|
);
|
|
2025
2058
|
}
|
|
2026
|
-
const payCurrencyCode = payCurrency &&
|
|
2059
|
+
const payCurrencyCode = payCurrency && chunkANT574FD_js.isSupportedCurrency(payCurrency) ? payCurrency : void 0;
|
|
2027
2060
|
const cartTotalSign = decimalSign(cart.pricing.total_price);
|
|
2028
2061
|
if (cartTotalSign === null || cartTotalSign < 0) {
|
|
2029
2062
|
return ok(
|
|
2030
2063
|
toTerminalFailure(
|
|
2031
|
-
|
|
2064
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_VALIDATION_FAILED,
|
|
2032
2065
|
"Cart total is not a valid non-negative decimal amount.",
|
|
2033
2066
|
false
|
|
2034
2067
|
)
|
|
@@ -2043,7 +2076,7 @@ var CheckoutService = class {
|
|
|
2043
2076
|
if (!fxQuoteResult.ok) {
|
|
2044
2077
|
return ok(
|
|
2045
2078
|
toTerminalFailure(
|
|
2046
|
-
|
|
2079
|
+
chunkANT574FD_js.ErrorCode.FX_QUOTE_FAILED,
|
|
2047
2080
|
fxQuoteResult.error.message || "Unable to lock FX quote for checkout.",
|
|
2048
2081
|
true
|
|
2049
2082
|
)
|
|
@@ -2057,7 +2090,7 @@ var CheckoutService = class {
|
|
|
2057
2090
|
if (!started.ok) {
|
|
2058
2091
|
return ok(
|
|
2059
2092
|
toTerminalFailure(
|
|
2060
|
-
started.error.code ||
|
|
2093
|
+
started.error.code || chunkANT574FD_js.ErrorCode.CHECKOUT_FAILED,
|
|
2061
2094
|
started.error.message || "Unable to process checkout.",
|
|
2062
2095
|
started.error.retryable ?? true
|
|
2063
2096
|
)
|
|
@@ -2074,11 +2107,11 @@ var CheckoutService = class {
|
|
|
2074
2107
|
onStatusChange: (status, response) => {
|
|
2075
2108
|
const context = {};
|
|
2076
2109
|
if (response && "order_id" in response) context.order_id = response.order_id;
|
|
2077
|
-
if (response?.status ===
|
|
2110
|
+
if (response?.status === chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED) {
|
|
2078
2111
|
context.replacement_terms = response.replacement;
|
|
2079
2112
|
context.terms_deltas = response.deltas;
|
|
2080
2113
|
}
|
|
2081
|
-
if (response?.status ===
|
|
2114
|
+
if (response?.status === chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE) {
|
|
2082
2115
|
context.unavailable_lines = response.lines;
|
|
2083
2116
|
}
|
|
2084
2117
|
const checkoutStatus = CHECKOUT_STATUS_BY_PURCHASE_INTENT_RESOLVE_STATUS[status];
|
|
@@ -2086,15 +2119,15 @@ var CheckoutService = class {
|
|
|
2086
2119
|
},
|
|
2087
2120
|
onActionRequired: async (action) => {
|
|
2088
2121
|
switch (action.status) {
|
|
2089
|
-
case
|
|
2122
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED: {
|
|
2090
2123
|
const allowPopups = data.allow_popups ?? typeof window !== "undefined";
|
|
2091
2124
|
if (!allowPopups) {
|
|
2092
2125
|
actionFailure = {
|
|
2093
|
-
code:
|
|
2126
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
2094
2127
|
message: "Card authorization UI is unavailable in this environment.",
|
|
2095
2128
|
recoverable: false
|
|
2096
2129
|
};
|
|
2097
|
-
return
|
|
2130
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2098
2131
|
}
|
|
2099
2132
|
let outcome;
|
|
2100
2133
|
try {
|
|
@@ -2118,10 +2151,10 @@ var CheckoutService = class {
|
|
|
2118
2151
|
notifyAuthorizationUi(data.on_authorization_ui_change, false);
|
|
2119
2152
|
}
|
|
2120
2153
|
if (outcome.status === PAYMENT_AUTHORIZATION_OUTCOME_STATUS.SUBMITTED) {
|
|
2121
|
-
return
|
|
2154
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.CONTINUE;
|
|
2122
2155
|
}
|
|
2123
2156
|
actionFailure = outcome.status === PAYMENT_AUTHORIZATION_OUTCOME_STATUS.CANCELLED ? {
|
|
2124
|
-
code:
|
|
2157
|
+
code: chunkANT574FD_js.ErrorCode.PAYMENT_CANCELLED,
|
|
2125
2158
|
message: "Card payment was cancelled before submission.",
|
|
2126
2159
|
recoverable: true
|
|
2127
2160
|
} : {
|
|
@@ -2129,17 +2162,17 @@ var CheckoutService = class {
|
|
|
2129
2162
|
message: outcome.message,
|
|
2130
2163
|
recoverable: outcome.recoverable
|
|
2131
2164
|
};
|
|
2132
|
-
return
|
|
2165
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2133
2166
|
}
|
|
2134
|
-
case
|
|
2135
|
-
const authorizationUrl =
|
|
2167
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.REDIRECT_REQUIRED: {
|
|
2168
|
+
const authorizationUrl = chunkV32BCG7M_js.paymentAuthorizationUrl(action.authorization_url);
|
|
2136
2169
|
if (!authorizationUrl) {
|
|
2137
2170
|
actionFailure = {
|
|
2138
|
-
code:
|
|
2171
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_FAILED,
|
|
2139
2172
|
message: "The provider returned an invalid authorization URL.",
|
|
2140
2173
|
recoverable: false
|
|
2141
2174
|
};
|
|
2142
|
-
return
|
|
2175
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2143
2176
|
}
|
|
2144
2177
|
if (typeof window !== "undefined") {
|
|
2145
2178
|
if (data.allow_popups === false) {
|
|
@@ -2152,32 +2185,32 @@ var CheckoutService = class {
|
|
|
2152
2185
|
);
|
|
2153
2186
|
if (!popup) {
|
|
2154
2187
|
actionFailure = {
|
|
2155
|
-
code:
|
|
2188
|
+
code: chunkANT574FD_js.ErrorCode.POPUP_BLOCKED,
|
|
2156
2189
|
message: "Authorization popup was blocked.",
|
|
2157
2190
|
recoverable: true
|
|
2158
2191
|
};
|
|
2159
|
-
return
|
|
2192
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2160
2193
|
}
|
|
2161
2194
|
popup.opener = null;
|
|
2162
2195
|
popup.location.replace(authorizationUrl);
|
|
2163
2196
|
}
|
|
2164
2197
|
}
|
|
2165
2198
|
actionFailure = {
|
|
2166
|
-
code:
|
|
2199
|
+
code: chunkANT574FD_js.ErrorCode.REDIRECT_REQUIRED,
|
|
2167
2200
|
message: "Complete authorization at the payment provider, then resume checkout.",
|
|
2168
2201
|
recoverable: true
|
|
2169
2202
|
};
|
|
2170
|
-
return
|
|
2203
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2171
2204
|
}
|
|
2172
|
-
case
|
|
2205
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED: {
|
|
2173
2206
|
const expected = authorizationKind(action.authorization_type);
|
|
2174
2207
|
if (!expected || !data.on_authorization_required) {
|
|
2175
2208
|
actionFailure = {
|
|
2176
|
-
code:
|
|
2209
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_REQUIRED,
|
|
2177
2210
|
message: "Additional payment authorization is required.",
|
|
2178
2211
|
recoverable: true
|
|
2179
2212
|
};
|
|
2180
|
-
return
|
|
2213
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2181
2214
|
}
|
|
2182
2215
|
let submission;
|
|
2183
2216
|
await data.on_authorization_required(expected, async (candidate) => {
|
|
@@ -2186,14 +2219,14 @@ var CheckoutService = class {
|
|
|
2186
2219
|
});
|
|
2187
2220
|
if (!submission) {
|
|
2188
2221
|
actionFailure = {
|
|
2189
|
-
code:
|
|
2222
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_REQUIRED,
|
|
2190
2223
|
message: "Payment authorization was not submitted.",
|
|
2191
2224
|
recoverable: true
|
|
2192
2225
|
};
|
|
2193
|
-
return
|
|
2226
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2194
2227
|
}
|
|
2195
2228
|
return {
|
|
2196
|
-
kind:
|
|
2229
|
+
kind: chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.SUBMIT,
|
|
2197
2230
|
request: { authorization: submission }
|
|
2198
2231
|
};
|
|
2199
2232
|
}
|
|
@@ -2203,14 +2236,14 @@ var CheckoutService = class {
|
|
|
2203
2236
|
if (!resolved.ok) {
|
|
2204
2237
|
return ok(
|
|
2205
2238
|
toTerminalFailure(
|
|
2206
|
-
resolved.error.code ||
|
|
2239
|
+
resolved.error.code || chunkANT574FD_js.ErrorCode.CHECKOUT_FAILED,
|
|
2207
2240
|
resolved.error.message || "Unable to resolve checkout.",
|
|
2208
2241
|
resolved.error.retryable ?? true
|
|
2209
2242
|
)
|
|
2210
2243
|
);
|
|
2211
2244
|
}
|
|
2212
2245
|
switch (resolved.value.kind) {
|
|
2213
|
-
case
|
|
2246
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.COMPLETED: {
|
|
2214
2247
|
clearIntentIdempotencyKey(started.value.intentScope);
|
|
2215
2248
|
clearIntentIdempotencyKey(started.value.confirmationScope);
|
|
2216
2249
|
const response = resolved.value.response;
|
|
@@ -2233,70 +2266,70 @@ var CheckoutService = class {
|
|
|
2233
2266
|
enrolled_in_link: enrolledInLink
|
|
2234
2267
|
});
|
|
2235
2268
|
}
|
|
2236
|
-
case
|
|
2269
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.FAILED:
|
|
2237
2270
|
clearIntentIdempotencyKey(started.value.confirmationScope);
|
|
2238
2271
|
return ok(
|
|
2239
2272
|
toTerminalFailure(
|
|
2240
|
-
|
|
2273
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.PAYMENT_FAILED,
|
|
2241
2274
|
"Payment failed. Choose another method or retry collection.",
|
|
2242
2275
|
true
|
|
2243
2276
|
)
|
|
2244
2277
|
);
|
|
2245
|
-
case
|
|
2278
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.OUTCOME_UNKNOWN:
|
|
2246
2279
|
return ok(
|
|
2247
2280
|
toTerminalFailure(
|
|
2248
|
-
|
|
2281
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_OUTCOME_UNKNOWN,
|
|
2249
2282
|
"Payment outcome is still unknown. Resume this intent before retrying.",
|
|
2250
2283
|
true
|
|
2251
2284
|
)
|
|
2252
2285
|
);
|
|
2253
|
-
case
|
|
2286
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.TIMED_OUT:
|
|
2254
2287
|
return ok(
|
|
2255
2288
|
toTerminalFailure(
|
|
2256
|
-
|
|
2289
|
+
chunkANT574FD_js.ErrorCode.TIMEOUT,
|
|
2257
2290
|
"Payment is still processing. Resume this intent to continue polling.",
|
|
2258
2291
|
true
|
|
2259
2292
|
)
|
|
2260
2293
|
);
|
|
2261
|
-
case
|
|
2294
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.ACTION_REQUIRED:
|
|
2262
2295
|
return ok(
|
|
2263
2296
|
toTerminalFailure(
|
|
2264
|
-
actionFailure?.code ??
|
|
2297
|
+
actionFailure?.code ?? chunkANT574FD_js.ErrorCode.AUTHORIZATION_REQUIRED,
|
|
2265
2298
|
actionFailure?.message ?? "Checkout requires additional authorization.",
|
|
2266
2299
|
actionFailure?.recoverable ?? true
|
|
2267
2300
|
)
|
|
2268
2301
|
);
|
|
2269
|
-
case
|
|
2302
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.REVIEW_REQUIRED: {
|
|
2270
2303
|
const response = resolved.value.response;
|
|
2271
2304
|
switch (response.status) {
|
|
2272
|
-
case
|
|
2305
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED:
|
|
2273
2306
|
return ok(
|
|
2274
2307
|
toTerminalFailure(
|
|
2275
|
-
|
|
2308
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.TERMS_CHANGED,
|
|
2276
2309
|
"Checkout terms changed and require explicit review.",
|
|
2277
2310
|
true
|
|
2278
2311
|
)
|
|
2279
2312
|
);
|
|
2280
|
-
case
|
|
2313
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE:
|
|
2281
2314
|
return ok(
|
|
2282
2315
|
toTerminalFailure(
|
|
2283
|
-
|
|
2316
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SELECTION_UNAVAILABLE,
|
|
2284
2317
|
"One or more checkout selections are unavailable.",
|
|
2285
2318
|
true
|
|
2286
2319
|
)
|
|
2287
2320
|
);
|
|
2288
|
-
case
|
|
2321
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.OFFER_ENDED:
|
|
2289
2322
|
return ok(
|
|
2290
2323
|
toTerminalFailure(
|
|
2291
|
-
|
|
2324
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.OFFER_ENDED,
|
|
2292
2325
|
"This offer has ended.",
|
|
2293
2326
|
false
|
|
2294
2327
|
)
|
|
2295
2328
|
);
|
|
2296
|
-
case
|
|
2329
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SOURCE_UNAVAILABLE:
|
|
2297
2330
|
return ok(
|
|
2298
2331
|
toTerminalFailure(
|
|
2299
|
-
|
|
2332
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SOURCE_UNAVAILABLE,
|
|
2300
2333
|
"This purchase source is unavailable.",
|
|
2301
2334
|
false
|
|
2302
2335
|
)
|
|
@@ -2308,7 +2341,7 @@ var CheckoutService = class {
|
|
|
2308
2341
|
const cancelled = data.signal?.aborted || error instanceof Error && error.name === ABORT_ERROR_NAME;
|
|
2309
2342
|
return ok(
|
|
2310
2343
|
toTerminalFailure(
|
|
2311
|
-
cancelled ?
|
|
2344
|
+
cancelled ? chunkANT574FD_js.ErrorCode.CANCELLED : chunkANT574FD_js.ErrorCode.AUTHORIZATION_FAILED,
|
|
2312
2345
|
cancelled ? "Checkout was cancelled." : error instanceof Error ? error.message : "Checkout authorization failed.",
|
|
2313
2346
|
true
|
|
2314
2347
|
)
|
|
@@ -2391,7 +2424,7 @@ var LinkService = class {
|
|
|
2391
2424
|
supersededActivation() {
|
|
2392
2425
|
return {
|
|
2393
2426
|
ok: false,
|
|
2394
|
-
error: new
|
|
2427
|
+
error: new chunkANT574FD_js.CimplifyError(
|
|
2395
2428
|
"session_superseded",
|
|
2396
2429
|
"A newer authentication session replaced this one"
|
|
2397
2430
|
)
|
|
@@ -2672,7 +2705,7 @@ var BusinessService = class {
|
|
|
2672
2705
|
if (!result.ok) return err(result.error);
|
|
2673
2706
|
const location = result.value.find((item) => item.id === locationId);
|
|
2674
2707
|
if (!location) {
|
|
2675
|
-
return err(new
|
|
2708
|
+
return err(new chunkANT574FD_js.CimplifyError(chunkANT574FD_js.ErrorCode.NOT_FOUND, `Location not found: ${locationId}`, false));
|
|
2676
2709
|
}
|
|
2677
2710
|
return ok(location);
|
|
2678
2711
|
}
|
|
@@ -3330,7 +3363,7 @@ function createClientEvents() {
|
|
|
3330
3363
|
|
|
3331
3364
|
// src/elements.ts
|
|
3332
3365
|
function toCheckoutError(code, message, recoverable) {
|
|
3333
|
-
const hint =
|
|
3366
|
+
const hint = chunkANT574FD_js.getErrorHint(code);
|
|
3334
3367
|
return {
|
|
3335
3368
|
success: false,
|
|
3336
3369
|
error: {
|
|
@@ -3583,7 +3616,7 @@ var CimplifyElements = class {
|
|
|
3583
3616
|
return {
|
|
3584
3617
|
success: false,
|
|
3585
3618
|
error: {
|
|
3586
|
-
code: result.error?.code ||
|
|
3619
|
+
code: result.error?.code || chunkANT574FD_js.ErrorCode.CHECKOUT_FAILED,
|
|
3587
3620
|
message: result.error?.message || "Checkout failed"
|
|
3588
3621
|
}
|
|
3589
3622
|
};
|
|
@@ -3601,7 +3634,7 @@ var CimplifyElements = class {
|
|
|
3601
3634
|
if (this.checkoutInProgress) {
|
|
3602
3635
|
this.debug("[cimplify:checkout] BLOCKED: already processing");
|
|
3603
3636
|
return toCheckoutError(
|
|
3604
|
-
|
|
3637
|
+
chunkANT574FD_js.ErrorCode.ALREADY_PROCESSING,
|
|
3605
3638
|
"Checkout is already in progress.",
|
|
3606
3639
|
false
|
|
3607
3640
|
);
|
|
@@ -3611,7 +3644,7 @@ var CimplifyElements = class {
|
|
|
3611
3644
|
this.debug("[cimplify:checkout] BLOCKED: no cart_id or intent_id");
|
|
3612
3645
|
this.checkoutInProgress = false;
|
|
3613
3646
|
return toCheckoutError(
|
|
3614
|
-
|
|
3647
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_AUTHORITY_REQUIRED,
|
|
3615
3648
|
"A cart or existing purchase intent is required before checkout can start.",
|
|
3616
3649
|
false
|
|
3617
3650
|
);
|
|
@@ -3620,7 +3653,7 @@ var CimplifyElements = class {
|
|
|
3620
3653
|
this.debug("[cimplify:checkout] BLOCKED: no order_type");
|
|
3621
3654
|
this.checkoutInProgress = false;
|
|
3622
3655
|
return toCheckoutError(
|
|
3623
|
-
|
|
3656
|
+
chunkANT574FD_js.ErrorCode.ORDER_TYPE_REQUIRED,
|
|
3624
3657
|
"Order type is required before checkout can start.",
|
|
3625
3658
|
false
|
|
3626
3659
|
);
|
|
@@ -3630,7 +3663,7 @@ var CimplifyElements = class {
|
|
|
3630
3663
|
this.debug("[cimplify:checkout] BLOCKED: no checkout element");
|
|
3631
3664
|
this.checkoutInProgress = false;
|
|
3632
3665
|
return toCheckoutError(
|
|
3633
|
-
|
|
3666
|
+
chunkANT574FD_js.ErrorCode.NO_PAYMENT_ELEMENT,
|
|
3634
3667
|
"Checkout element must be mounted before checkout.",
|
|
3635
3668
|
false
|
|
3636
3669
|
);
|
|
@@ -3639,7 +3672,7 @@ var CimplifyElements = class {
|
|
|
3639
3672
|
this.debug("[cimplify:checkout] BLOCKED: checkout element not mounted");
|
|
3640
3673
|
this.checkoutInProgress = false;
|
|
3641
3674
|
return toCheckoutError(
|
|
3642
|
-
|
|
3675
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_NOT_MOUNTED,
|
|
3643
3676
|
"Checkout element must be mounted before checkout.",
|
|
3644
3677
|
false
|
|
3645
3678
|
);
|
|
@@ -3651,7 +3684,7 @@ var CimplifyElements = class {
|
|
|
3651
3684
|
this.debug("[cimplify:checkout] BLOCKED: auth incomplete");
|
|
3652
3685
|
this.checkoutInProgress = false;
|
|
3653
3686
|
return toCheckoutError(
|
|
3654
|
-
|
|
3687
|
+
chunkANT574FD_js.ErrorCode.AUTH_INCOMPLETE,
|
|
3655
3688
|
"Authentication must complete before checkout can start.",
|
|
3656
3689
|
true
|
|
3657
3690
|
);
|
|
@@ -3722,7 +3755,7 @@ var CimplifyElements = class {
|
|
|
3722
3755
|
timeout = setTimeout(() => {
|
|
3723
3756
|
settle(
|
|
3724
3757
|
toCheckoutError(
|
|
3725
|
-
|
|
3758
|
+
chunkANT574FD_js.ErrorCode.TIMEOUT,
|
|
3726
3759
|
"Checkout timed out before receiving a terminal response.",
|
|
3727
3760
|
true
|
|
3728
3761
|
)
|
|
@@ -3787,7 +3820,7 @@ var CimplifyElements = class {
|
|
|
3787
3820
|
checkoutElement.sendMessage({ type: MESSAGE_TYPES.ABORT_CHECKOUT });
|
|
3788
3821
|
settle(
|
|
3789
3822
|
toCheckoutError(
|
|
3790
|
-
|
|
3823
|
+
chunkANT574FD_js.ErrorCode.AUTH_LOST,
|
|
3791
3824
|
"Authentication was cleared during checkout.",
|
|
3792
3825
|
true
|
|
3793
3826
|
)
|
|
@@ -3799,7 +3832,7 @@ var CimplifyElements = class {
|
|
|
3799
3832
|
}
|
|
3800
3833
|
abortFn = () => {
|
|
3801
3834
|
checkoutElement.sendMessage({ type: MESSAGE_TYPES.ABORT_CHECKOUT });
|
|
3802
|
-
settle(toCheckoutError(
|
|
3835
|
+
settle(toCheckoutError(chunkANT574FD_js.ErrorCode.CANCELLED, "Checkout was cancelled.", true));
|
|
3803
3836
|
};
|
|
3804
3837
|
this.activeCheckoutAbort = abortFn;
|
|
3805
3838
|
this.debug("[cimplify:checkout] sending process_checkout to checkout iframe", {
|
|
@@ -4040,7 +4073,7 @@ var CimplifyElements = class {
|
|
|
4040
4073
|
const redirectUri = auth.redirectUri ?? readPublicEnv("NEXT_PUBLIC_CIMPLIFY_REDIRECT_URI");
|
|
4041
4074
|
if (!clientId || !redirectUri) {
|
|
4042
4075
|
sourceElement._emitError({
|
|
4043
|
-
code:
|
|
4076
|
+
code: chunkANT574FD_js.ErrorCode.AUTH_CONFIG_REQUIRED,
|
|
4044
4077
|
message: "Cimplify OAuth clientId and redirectUri are required."
|
|
4045
4078
|
});
|
|
4046
4079
|
return;
|
|
@@ -4064,7 +4097,7 @@ var CimplifyElements = class {
|
|
|
4064
4097
|
this.authInProgress = false;
|
|
4065
4098
|
if (!accessToken) {
|
|
4066
4099
|
sourceElement._emitError({
|
|
4067
|
-
code:
|
|
4100
|
+
code: chunkANT574FD_js.ErrorCode.AUTH_CALLBACK_MISSING_TOKEN,
|
|
4068
4101
|
message: "Sign-in callback did not return an access token."
|
|
4069
4102
|
});
|
|
4070
4103
|
return;
|
|
@@ -4092,7 +4125,7 @@ var CimplifyElements = class {
|
|
|
4092
4125
|
if (this.authGeneration !== generation) return;
|
|
4093
4126
|
this.authInProgress = false;
|
|
4094
4127
|
sourceElement._emitError({
|
|
4095
|
-
code:
|
|
4128
|
+
code: chunkANT574FD_js.ErrorCode.AUTH_START_FAILED,
|
|
4096
4129
|
message: error instanceof Error ? error.message : "Unable to start sign-in."
|
|
4097
4130
|
});
|
|
4098
4131
|
});
|
|
@@ -4344,7 +4377,7 @@ var CimplifyElement = class {
|
|
|
4344
4377
|
if (!resolvedBusinessId || !this.container || !this.mounted) {
|
|
4345
4378
|
console.error("Unable to mount element without a resolved business ID");
|
|
4346
4379
|
this.emit(EVENT_TYPES.ERROR, {
|
|
4347
|
-
code:
|
|
4380
|
+
code: chunkANT574FD_js.ErrorCode.BUSINESS_ID_REQUIRED,
|
|
4348
4381
|
message: "Unable to initialize checkout without a business ID."
|
|
4349
4382
|
});
|
|
4350
4383
|
return;
|
|
@@ -4487,6 +4520,7 @@ exports.StripeAuthorizationAdapter = StripeAuthorizationAdapter;
|
|
|
4487
4520
|
exports.clearIntentIdempotencyKey = clearIntentIdempotencyKey;
|
|
4488
4521
|
exports.combine = combine;
|
|
4489
4522
|
exports.combineObject = combineObject;
|
|
4523
|
+
exports.confirmationForUnchangedReplacement = confirmationForUnchangedReplacement;
|
|
4490
4524
|
exports.createClientEvents = createClientEvents;
|
|
4491
4525
|
exports.createDefaultPaymentAuthorizationAdapterRegistry = createDefaultPaymentAuthorizationAdapterRegistry;
|
|
4492
4526
|
exports.createElements = createElements;
|