@cimplify/sdk 0.106.2 → 0.107.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.
- 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-CVKH9faR.d.mts → catalogue-AmW4XjaN.d.ts} +45 -38
- package/dist/{catalogue-ChBjPPME.d.ts → catalogue-rWd71Xi-.d.mts} +45 -38
- package/dist/{chunk-AVXA4F6G.js → chunk-ANT574FD.js} +29 -0
- package/dist/{chunk-BCLGREHS.js → chunk-CEML2737.js} +245 -219
- package/dist/{chunk-NYDVVNZI.mjs → chunk-JRGK3NXR.mjs} +1 -1
- package/dist/{chunk-NJYR6GGM.mjs → chunk-KG3WT4PR.mjs} +29 -1
- package/dist/{chunk-4VTFTLH7.mjs → chunk-NZMU7UUA.mjs} +3 -3
- package/dist/{chunk-B7JH5D3J.js → chunk-ONII7K3T.js} +262 -303
- package/dist/{chunk-T3MXI7JD.mjs → chunk-OTPLI3JY.mjs} +87 -128
- package/dist/{chunk-LJAZ7H4I.mjs → chunk-T4OU77DM.mjs} +108 -83
- package/dist/{chunk-7O2BBPDM.js → chunk-THSYGWUA.js} +70 -70
- package/dist/{chunk-NJK3THWT.js → chunk-UVRPC2P7.js} +90 -62
- package/dist/{chunk-UYFTOIFW.js → chunk-V32BCG7M.js} +6 -6
- package/dist/{chunk-L4XKIMUO.mjs → chunk-XBL3TMPC.mjs} +31 -3
- package/dist/{client-BfKFK7cn.d.mts → client-DlTJ2hUM.d.mts} +2 -2
- package/dist/{client-DoczTJbs.d.ts → client-ni-CfOSO.d.ts} +2 -2
- package/dist/{checkout-XoV4HNg2.d.mts → elements-BF1Y4aOi.d.mts} +575 -502
- package/dist/{checkout-XoV4HNg2.d.ts → elements-BF1Y4aOi.d.ts} +575 -502
- package/dist/{index-DweR60Cv.d.ts → index-CZ0bJm6k.d.ts} +2 -2
- package/dist/{index-DRMBo26v.d.mts → index-DML_W635.d.mts} +2 -2
- package/dist/{index-Dn6xCpDe.d.ts → index-DU7vffby.d.ts} +2 -2
- package/dist/{index-DEUorPUO.d.mts → index-DopYJKDL.d.mts} +2 -2
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +159 -151
- package/dist/index.mjs +5 -5
- package/dist/mock/cli.mjs +33 -2
- package/dist/mock/library.js +33 -2
- package/dist/mock/library.mjs +33 -2
- package/dist/mock/msw.js +33 -2
- package/dist/mock/msw.mjs +33 -2
- package/dist/{price-De-sxcuj.d.ts → price-B5t2mpsE.d.ts} +1 -1
- package/dist/{price-CUGIYRtD.d.mts → price-DI_U5oXU.d.mts} +1 -1
- package/dist/react.d.mts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js +154 -154
- package/dist/react.mjs +7 -7
- package/dist/{server-7soMMUgP.d.ts → server-BItJAUTD.d.ts} +1 -1
- package/dist/{server-DDEJ7e9s.d.mts → server-Dq70vD7z.d.mts} +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");
|
|
@@ -1322,59 +1322,59 @@ function purchaseIntentRequiresPaymentOption(terms) {
|
|
|
1322
1322
|
|
|
1323
1323
|
// src/utils/purchase-intent-adapter.ts
|
|
1324
1324
|
function tenderPreference(form) {
|
|
1325
|
-
if (form.payment_method ===
|
|
1325
|
+
if (form.payment_method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY) {
|
|
1326
1326
|
if (form.link_payment_method_id) {
|
|
1327
1327
|
return {
|
|
1328
|
-
method_kind:
|
|
1328
|
+
method_kind: chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY,
|
|
1329
1329
|
authority: {
|
|
1330
|
-
authority_kind:
|
|
1330
|
+
authority_kind: chunkANT574FD_js.MOBILE_MONEY_TENDER_AUTHORITY_KIND.SAVED_REFERENCE,
|
|
1331
1331
|
stored_instrument_id: form.link_payment_method_id
|
|
1332
1332
|
}
|
|
1333
1333
|
};
|
|
1334
1334
|
}
|
|
1335
1335
|
const details = form.mobile_money_details;
|
|
1336
1336
|
if (!details?.phone_number || !details.provider) {
|
|
1337
|
-
throw new
|
|
1338
|
-
|
|
1337
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1338
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1339
1339
|
"Mobile money requires a phone number and network.",
|
|
1340
1340
|
false
|
|
1341
1341
|
);
|
|
1342
1342
|
}
|
|
1343
|
-
const network =
|
|
1343
|
+
const network = chunkV32BCG7M_js.purchaseIntentMobileMoneyNetwork(details.provider);
|
|
1344
1344
|
if (!network) {
|
|
1345
|
-
throw new
|
|
1346
|
-
|
|
1345
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1346
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1347
1347
|
"That mobile money network is not available for PurchaseIntent checkout.",
|
|
1348
1348
|
false
|
|
1349
1349
|
);
|
|
1350
1350
|
}
|
|
1351
1351
|
return {
|
|
1352
|
-
method_kind:
|
|
1352
|
+
method_kind: chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.MOBILE_MONEY,
|
|
1353
1353
|
authority: {
|
|
1354
|
-
authority_kind:
|
|
1354
|
+
authority_kind: chunkANT574FD_js.MOBILE_MONEY_TENDER_AUTHORITY_KIND.TRANSIENT,
|
|
1355
1355
|
phone_number: details.phone_number,
|
|
1356
1356
|
network
|
|
1357
1357
|
}
|
|
1358
1358
|
};
|
|
1359
1359
|
}
|
|
1360
|
-
if (form.payment_method ===
|
|
1361
|
-
throw new
|
|
1362
|
-
|
|
1360
|
+
if (form.payment_method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.CASH || form.payment_method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.OFFLINE) {
|
|
1361
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1362
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1363
1363
|
"Offline tender requires an authenticated staff checkout.",
|
|
1364
1364
|
false
|
|
1365
1365
|
);
|
|
1366
1366
|
}
|
|
1367
|
-
if (form.payment_method ===
|
|
1367
|
+
if (form.payment_method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD) {
|
|
1368
1368
|
return {
|
|
1369
|
-
method_kind:
|
|
1369
|
+
method_kind: chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.CARD,
|
|
1370
1370
|
stored_instrument_id: form.link_payment_method_id
|
|
1371
1371
|
};
|
|
1372
1372
|
}
|
|
1373
|
-
if (form.payment_method ===
|
|
1373
|
+
if (form.payment_method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.STORE_CREDIT) {
|
|
1374
1374
|
return void 0;
|
|
1375
1375
|
}
|
|
1376
|
-
throw new
|
|
1377
|
-
|
|
1376
|
+
throw new chunkANT574FD_js.CimplifyError(
|
|
1377
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1378
1378
|
"Checkout payment method is not supported.",
|
|
1379
1379
|
false
|
|
1380
1380
|
);
|
|
@@ -1382,7 +1382,7 @@ function tenderPreference(form) {
|
|
|
1382
1382
|
function checkoutFormToIntentRequest(form, clientIntentKey) {
|
|
1383
1383
|
return {
|
|
1384
1384
|
client_intent_key: clientIntentKey,
|
|
1385
|
-
source: { kind:
|
|
1385
|
+
source: { kind: chunkANT574FD_js.PURCHASE_INTENT_SOURCE_KIND.CART, cart_id: form.cart_id },
|
|
1386
1386
|
checkout: {
|
|
1387
1387
|
customer: form.customer,
|
|
1388
1388
|
order_type: form.order_type,
|
|
@@ -1394,7 +1394,7 @@ function checkoutFormToIntentRequest(form, clientIntentKey) {
|
|
|
1394
1394
|
metadata: form.metadata,
|
|
1395
1395
|
pay_currency: form.pay_currency,
|
|
1396
1396
|
fx_quote_id: form.fx_quote_id,
|
|
1397
|
-
use_store_credit: form.use_store_credit || form.payment_method ===
|
|
1397
|
+
use_store_credit: form.use_store_credit || form.payment_method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.STORE_CREDIT,
|
|
1398
1398
|
voucher_code: form.voucher_code,
|
|
1399
1399
|
pay_deposit: form.pay_deposit,
|
|
1400
1400
|
tender_preference: tenderPreference(form)
|
|
@@ -1404,7 +1404,7 @@ function checkoutFormToIntentRequest(form, clientIntentKey) {
|
|
|
1404
1404
|
function selectCheckoutPaymentOption(terms, form) {
|
|
1405
1405
|
const preference = tenderPreference(form);
|
|
1406
1406
|
if (!preference) return void 0;
|
|
1407
|
-
return terms.payment_options.filter((option) => option.status ===
|
|
1407
|
+
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
1408
|
}
|
|
1409
1409
|
function checkoutFormToConfirmation(_form, terms, paymentOption, idempotencyKey) {
|
|
1410
1410
|
return createPurchaseIntentConfirmation(terms, paymentOption, idempotencyKey);
|
|
@@ -1420,39 +1420,39 @@ function committedBase(response) {
|
|
|
1420
1420
|
}
|
|
1421
1421
|
function confirmationToCheckoutResult(response) {
|
|
1422
1422
|
switch (response.status) {
|
|
1423
|
-
case
|
|
1423
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.ORDER_CREATED:
|
|
1424
1424
|
return ok({
|
|
1425
1425
|
...committedBase(response),
|
|
1426
|
-
payment_status:
|
|
1426
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.SUCCEEDED,
|
|
1427
1427
|
requires_authorization: false,
|
|
1428
1428
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.NONE }
|
|
1429
1429
|
});
|
|
1430
|
-
case
|
|
1430
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.COLLECTION_PROCESSING:
|
|
1431
1431
|
return ok({
|
|
1432
1432
|
...committedBase(response),
|
|
1433
|
-
payment_status:
|
|
1433
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.PROCESSING,
|
|
1434
1434
|
requires_authorization: false,
|
|
1435
1435
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.POLL }
|
|
1436
1436
|
});
|
|
1437
|
-
case
|
|
1437
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.PAYMENT_OUTCOME_UNKNOWN:
|
|
1438
1438
|
return ok({
|
|
1439
1439
|
...committedBase(response),
|
|
1440
|
-
payment_status:
|
|
1440
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.UNKNOWN,
|
|
1441
1441
|
requires_authorization: false,
|
|
1442
1442
|
next_action: { type: chunkEV2EVOYS_js.CHECKOUT_NEXT_ACTION.POLL }
|
|
1443
1443
|
});
|
|
1444
|
-
case
|
|
1444
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.PAYMENT_FAILED:
|
|
1445
1445
|
return err(
|
|
1446
|
-
new
|
|
1447
|
-
|
|
1446
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1447
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.PAYMENT_FAILED,
|
|
1448
1448
|
"Payment failed. The order remains recorded, but collection did not succeed.",
|
|
1449
1449
|
true
|
|
1450
1450
|
)
|
|
1451
1451
|
);
|
|
1452
|
-
case
|
|
1452
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.REDIRECT_REQUIRED:
|
|
1453
1453
|
return ok({
|
|
1454
1454
|
...committedBase(response),
|
|
1455
|
-
payment_status:
|
|
1455
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.REQUIRES_ACTION,
|
|
1456
1456
|
requires_authorization: false,
|
|
1457
1457
|
authorization_url: response.authorization_url,
|
|
1458
1458
|
next_action: {
|
|
@@ -1460,10 +1460,10 @@ function confirmationToCheckoutResult(response) {
|
|
|
1460
1460
|
authorization_url: response.authorization_url
|
|
1461
1461
|
}
|
|
1462
1462
|
});
|
|
1463
|
-
case
|
|
1463
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED:
|
|
1464
1464
|
return ok({
|
|
1465
1465
|
...committedBase(response),
|
|
1466
|
-
payment_status:
|
|
1466
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.REQUIRES_ACTION,
|
|
1467
1467
|
requires_authorization: false,
|
|
1468
1468
|
provider: response.provider,
|
|
1469
1469
|
client_secret: response.client_secret,
|
|
@@ -1476,10 +1476,10 @@ function confirmationToCheckoutResult(response) {
|
|
|
1476
1476
|
provider_account_id: response.provider_account_id ?? void 0
|
|
1477
1477
|
}
|
|
1478
1478
|
});
|
|
1479
|
-
case
|
|
1479
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED:
|
|
1480
1480
|
return ok({
|
|
1481
1481
|
...committedBase(response),
|
|
1482
|
-
payment_status:
|
|
1482
|
+
payment_status: chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_STATUS.REQUIRES_ACTION,
|
|
1483
1483
|
requires_authorization: true,
|
|
1484
1484
|
authorization_type: response.authorization_type,
|
|
1485
1485
|
display_text: response.display_text,
|
|
@@ -1489,34 +1489,34 @@ function confirmationToCheckoutResult(response) {
|
|
|
1489
1489
|
display_text: response.display_text
|
|
1490
1490
|
}
|
|
1491
1491
|
});
|
|
1492
|
-
case
|
|
1492
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED:
|
|
1493
1493
|
return err(
|
|
1494
|
-
new
|
|
1495
|
-
|
|
1494
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1495
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.TERMS_CHANGED,
|
|
1496
1496
|
"Checkout terms changed. Review the replacement terms before confirming again.",
|
|
1497
1497
|
true
|
|
1498
1498
|
)
|
|
1499
1499
|
);
|
|
1500
|
-
case
|
|
1500
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE:
|
|
1501
1501
|
return err(
|
|
1502
|
-
new
|
|
1503
|
-
|
|
1502
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1503
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SELECTION_UNAVAILABLE,
|
|
1504
1504
|
"One or more checkout selections are no longer available.",
|
|
1505
1505
|
true
|
|
1506
1506
|
)
|
|
1507
1507
|
);
|
|
1508
|
-
case
|
|
1508
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.OFFER_ENDED:
|
|
1509
1509
|
return err(
|
|
1510
|
-
new
|
|
1511
|
-
|
|
1510
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1511
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.OFFER_ENDED,
|
|
1512
1512
|
"This offer has ended.",
|
|
1513
1513
|
false
|
|
1514
1514
|
)
|
|
1515
1515
|
);
|
|
1516
|
-
case
|
|
1516
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SOURCE_UNAVAILABLE:
|
|
1517
1517
|
return err(
|
|
1518
|
-
new
|
|
1519
|
-
|
|
1518
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1519
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SOURCE_UNAVAILABLE,
|
|
1520
1520
|
"This purchase source is unavailable.",
|
|
1521
1521
|
false
|
|
1522
1522
|
)
|
|
@@ -1526,7 +1526,7 @@ function confirmationToCheckoutResult(response) {
|
|
|
1526
1526
|
|
|
1527
1527
|
// src/checkout.ts
|
|
1528
1528
|
function checkoutActionAuthority(response) {
|
|
1529
|
-
if (response.status !==
|
|
1529
|
+
if (response.status !== chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED && response.status !== chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED) {
|
|
1530
1530
|
return null;
|
|
1531
1531
|
}
|
|
1532
1532
|
const paymentId = response.payment_id?.trim();
|
|
@@ -1537,7 +1537,7 @@ function checkoutActionAuthority(response) {
|
|
|
1537
1537
|
} : null;
|
|
1538
1538
|
}
|
|
1539
1539
|
function isAmbiguousCheckoutError(error) {
|
|
1540
|
-
return error.code ===
|
|
1540
|
+
return error.code === chunkANT574FD_js.ErrorCode.NETWORK_ERROR || error.code === chunkANT574FD_js.ErrorCode.TIMEOUT;
|
|
1541
1541
|
}
|
|
1542
1542
|
function authorizationKind(value) {
|
|
1543
1543
|
if (value && typeof value === "object" && chunkEV2EVOYS_js.AUTHORIZATION_TYPE.ADDRESS in value) {
|
|
@@ -1592,7 +1592,7 @@ function isValidCustomerName(name) {
|
|
|
1592
1592
|
return trimmed.length >= 2 && /\p{L}/u.test(trimmed);
|
|
1593
1593
|
}
|
|
1594
1594
|
function isOfflinePaymentMethod(method) {
|
|
1595
|
-
return method ===
|
|
1595
|
+
return method === chunkANT574FD_js.LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS.CASH || method === chunkANT574FD_js.PURCHASE_INTENT_PAYMENT_METHOD.OFFLINE;
|
|
1596
1596
|
}
|
|
1597
1597
|
function notifyCheckoutStatus(observer, status, context = {}) {
|
|
1598
1598
|
try {
|
|
@@ -1621,13 +1621,13 @@ var CHECKOUT_API_ROUTE = {
|
|
|
1621
1621
|
verifyPayment: (orderId) => `/api/v1/orders/${orderId}/verify-payment`
|
|
1622
1622
|
};
|
|
1623
1623
|
var CHECKOUT_STATUS_BY_PURCHASE_INTENT_RESOLVE_STATUS = {
|
|
1624
|
-
[
|
|
1625
|
-
[
|
|
1626
|
-
[
|
|
1627
|
-
[
|
|
1628
|
-
[
|
|
1629
|
-
[
|
|
1630
|
-
[
|
|
1624
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.CONFIRMING]: chunkEV2EVOYS_js.CHECKOUT_STATUS.PROCESSING,
|
|
1625
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.POLLING]: chunkEV2EVOYS_js.CHECKOUT_STATUS.POLLING,
|
|
1626
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.AWAITING_ACTION]: chunkEV2EVOYS_js.CHECKOUT_STATUS.AWAITING_AUTHORIZATION,
|
|
1627
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.REVIEWING_TERMS]: chunkEV2EVOYS_js.CHECKOUT_STATUS.REVIEWING_TERMS,
|
|
1628
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.COMPLETED]: chunkEV2EVOYS_js.CHECKOUT_STATUS.FINALIZING,
|
|
1629
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.FAILED]: chunkEV2EVOYS_js.CHECKOUT_STATUS.FAILED,
|
|
1630
|
+
[chunkANT574FD_js.PURCHASE_INTENT_RESOLVE_STATUS.OUTCOME_UNKNOWN]: chunkEV2EVOYS_js.CHECKOUT_STATUS.RECOVERING
|
|
1631
1631
|
};
|
|
1632
1632
|
function normalizeCollectionOptions(value, expectedCurrency) {
|
|
1633
1633
|
if (!value || typeof value !== "object") return null;
|
|
@@ -1651,7 +1651,7 @@ function normalizeCollectionOptions(value, expectedCurrency) {
|
|
|
1651
1651
|
if (option.method !== chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY || typeof option.network !== "string" || !option.network.trim()) {
|
|
1652
1652
|
continue;
|
|
1653
1653
|
}
|
|
1654
|
-
const network =
|
|
1654
|
+
const network = chunkV32BCG7M_js.purchaseIntentMobileMoneyNetwork(option.network);
|
|
1655
1655
|
if (!network) continue;
|
|
1656
1656
|
const key = `${chunkEV2EVOYS_js.PAYMENT_METHOD.MOBILE_MONEY}:${network}`;
|
|
1657
1657
|
if (seen.has(key)) continue;
|
|
@@ -1670,15 +1670,15 @@ var CheckoutService = class {
|
|
|
1670
1670
|
}
|
|
1671
1671
|
validateCheckoutData(data) {
|
|
1672
1672
|
if (isOfflinePaymentMethod(data.payment_method)) {
|
|
1673
|
-
return new
|
|
1674
|
-
|
|
1673
|
+
return new chunkANT574FD_js.CimplifyError(
|
|
1674
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1675
1675
|
"Offline payment isn't available for online checkout. Please pay by card or mobile money.",
|
|
1676
1676
|
false
|
|
1677
1677
|
);
|
|
1678
1678
|
}
|
|
1679
1679
|
if (!isValidCustomerName(data.customer?.name)) {
|
|
1680
|
-
return new
|
|
1681
|
-
|
|
1680
|
+
return new chunkANT574FD_js.CimplifyError(
|
|
1681
|
+
chunkANT574FD_js.ErrorCode.INVALID_CUSTOMER_NAME,
|
|
1682
1682
|
"Enter your name, not a phone number.",
|
|
1683
1683
|
false
|
|
1684
1684
|
);
|
|
@@ -1692,10 +1692,10 @@ var CheckoutService = class {
|
|
|
1692
1692
|
/** Available storefront collection methods for one presentment currency. */
|
|
1693
1693
|
async collectionOptions(currency) {
|
|
1694
1694
|
const normalized = currency.trim().toUpperCase();
|
|
1695
|
-
if (!
|
|
1695
|
+
if (!chunkANT574FD_js.isSupportedCurrency(normalized)) {
|
|
1696
1696
|
return err(
|
|
1697
|
-
new
|
|
1698
|
-
|
|
1697
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1698
|
+
chunkANT574FD_js.ErrorCode.UNSUPPORTED_CURRENCY,
|
|
1699
1699
|
"No online payment method is available for this currency.",
|
|
1700
1700
|
false
|
|
1701
1701
|
)
|
|
@@ -1709,8 +1709,8 @@ var CheckoutService = class {
|
|
|
1709
1709
|
if (!response.ok) return response;
|
|
1710
1710
|
const options = normalizeCollectionOptions(response.value, normalized);
|
|
1711
1711
|
return options ? ok(options) : err(
|
|
1712
|
-
new
|
|
1713
|
-
|
|
1712
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1713
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_CAPABILITY_MISMATCH,
|
|
1714
1714
|
"Payment methods could not be verified for this currency.",
|
|
1715
1715
|
false
|
|
1716
1716
|
)
|
|
@@ -1742,8 +1742,8 @@ var CheckoutService = class {
|
|
|
1742
1742
|
clearIntentIdempotencyKey(intentScope);
|
|
1743
1743
|
this.intentCommands.delete(intentScope);
|
|
1744
1744
|
return err(
|
|
1745
|
-
error instanceof
|
|
1746
|
-
|
|
1745
|
+
error instanceof chunkANT574FD_js.CimplifyError ? error : new chunkANT574FD_js.CimplifyError(
|
|
1746
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_VALIDATION_FAILED,
|
|
1747
1747
|
"Checkout details are invalid.",
|
|
1748
1748
|
false
|
|
1749
1749
|
)
|
|
@@ -1762,8 +1762,8 @@ var CheckoutService = class {
|
|
|
1762
1762
|
clearIntentIdempotencyKey(intentScope);
|
|
1763
1763
|
this.intentCommands.delete(intentScope);
|
|
1764
1764
|
return err(
|
|
1765
|
-
new
|
|
1766
|
-
|
|
1765
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1766
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_TERMS_UNAVAILABLE,
|
|
1767
1767
|
"Checkout terms are not available for this purchase intent.",
|
|
1768
1768
|
true
|
|
1769
1769
|
)
|
|
@@ -1774,8 +1774,8 @@ var CheckoutService = class {
|
|
|
1774
1774
|
paymentOption = selectCheckoutPaymentOption(terms, checkoutData);
|
|
1775
1775
|
} catch (error) {
|
|
1776
1776
|
return err(
|
|
1777
|
-
error instanceof
|
|
1778
|
-
|
|
1777
|
+
error instanceof chunkANT574FD_js.CimplifyError ? error : new chunkANT574FD_js.CimplifyError(
|
|
1778
|
+
chunkANT574FD_js.ErrorCode.INVALID_PAYMENT_METHOD,
|
|
1779
1779
|
"Payment details are invalid.",
|
|
1780
1780
|
false
|
|
1781
1781
|
)
|
|
@@ -1783,8 +1783,8 @@ var CheckoutService = class {
|
|
|
1783
1783
|
}
|
|
1784
1784
|
if (!paymentOption && purchaseIntentRequiresPaymentOption(terms)) {
|
|
1785
1785
|
return err(
|
|
1786
|
-
new
|
|
1787
|
-
|
|
1786
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1787
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_CAPABILITY_MISMATCH,
|
|
1788
1788
|
"The selected payment method is not eligible for these checkout terms.",
|
|
1789
1789
|
true
|
|
1790
1790
|
)
|
|
@@ -1836,7 +1836,7 @@ var CheckoutService = class {
|
|
|
1836
1836
|
if (!started.ok) return started;
|
|
1837
1837
|
this.reconcileActionAuthority(started.value.initialResponse);
|
|
1838
1838
|
const result = confirmationToCheckoutResult(started.value.initialResponse);
|
|
1839
|
-
if (started.value.initialResponse.status ===
|
|
1839
|
+
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
1840
|
clearIntentIdempotencyKey(started.value.intentScope);
|
|
1841
1841
|
clearIntentIdempotencyKey(started.value.confirmationScope);
|
|
1842
1842
|
this.intentCommands.delete(started.value.intentScope);
|
|
@@ -1845,8 +1845,8 @@ var CheckoutService = class {
|
|
|
1845
1845
|
}
|
|
1846
1846
|
async initializePayment(_orderId, _method) {
|
|
1847
1847
|
return err(
|
|
1848
|
-
new
|
|
1849
|
-
|
|
1848
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1849
|
+
chunkANT574FD_js.ErrorCode.NOT_IMPLEMENTED,
|
|
1850
1850
|
"initializePayment is not available in REST mode.",
|
|
1851
1851
|
false
|
|
1852
1852
|
)
|
|
@@ -1863,8 +1863,8 @@ var CheckoutService = class {
|
|
|
1863
1863
|
const authority = this.actionAuthorities.get(paymentId);
|
|
1864
1864
|
if (!authority) {
|
|
1865
1865
|
return err(
|
|
1866
|
-
new
|
|
1867
|
-
|
|
1866
|
+
new chunkANT574FD_js.CimplifyError(
|
|
1867
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_AUTHORITY_REQUIRED,
|
|
1868
1868
|
"The purchase-intent action authority is unavailable. Restart checkout before submitting authorization.",
|
|
1869
1869
|
false
|
|
1870
1870
|
)
|
|
@@ -1956,7 +1956,7 @@ var CheckoutService = class {
|
|
|
1956
1956
|
if (!data.cart_id) {
|
|
1957
1957
|
return ok(
|
|
1958
1958
|
toTerminalFailure(
|
|
1959
|
-
|
|
1959
|
+
chunkANT574FD_js.ErrorCode.INVALID_CART,
|
|
1960
1960
|
"A valid cart is required before checkout can start.",
|
|
1961
1961
|
false
|
|
1962
1962
|
)
|
|
@@ -1966,7 +1966,7 @@ var CheckoutService = class {
|
|
|
1966
1966
|
if (!cartResult.ok || !cartResult.value?.id) {
|
|
1967
1967
|
return ok(
|
|
1968
1968
|
toTerminalFailure(
|
|
1969
|
-
|
|
1969
|
+
chunkANT574FD_js.ErrorCode.INVALID_CART,
|
|
1970
1970
|
"Unable to load cart for checkout.",
|
|
1971
1971
|
false
|
|
1972
1972
|
)
|
|
@@ -1976,7 +1976,7 @@ var CheckoutService = class {
|
|
|
1976
1976
|
if (cart.id !== data.cart_id || cart.items.length === 0) {
|
|
1977
1977
|
return ok(
|
|
1978
1978
|
toTerminalFailure(
|
|
1979
|
-
|
|
1979
|
+
chunkANT574FD_js.ErrorCode.INVALID_CART,
|
|
1980
1980
|
"Cart is empty or no longer valid. Please refresh and try again.",
|
|
1981
1981
|
false
|
|
1982
1982
|
)
|
|
@@ -2003,10 +2003,10 @@ var CheckoutService = class {
|
|
|
2003
2003
|
pay_deposit: data.pay_deposit
|
|
2004
2004
|
};
|
|
2005
2005
|
const rawBaseCurrency = typeof cart.pricing.currency === "string" ? cart.pricing.currency.trim().toUpperCase() : "";
|
|
2006
|
-
if (!
|
|
2006
|
+
if (!chunkANT574FD_js.isSupportedCurrency(rawBaseCurrency)) {
|
|
2007
2007
|
return ok(
|
|
2008
2008
|
toTerminalFailure(
|
|
2009
|
-
|
|
2009
|
+
chunkANT574FD_js.ErrorCode.UNSUPPORTED_CURRENCY,
|
|
2010
2010
|
"Cart currency is missing or unsupported. Refresh the cart before checkout.",
|
|
2011
2011
|
false
|
|
2012
2012
|
)
|
|
@@ -2014,21 +2014,21 @@ var CheckoutService = class {
|
|
|
2014
2014
|
}
|
|
2015
2015
|
const baseCurrency = rawBaseCurrency;
|
|
2016
2016
|
const payCurrency = data.pay_currency?.trim().toUpperCase();
|
|
2017
|
-
if (payCurrency && !
|
|
2017
|
+
if (payCurrency && !chunkANT574FD_js.isSupportedCurrency(payCurrency)) {
|
|
2018
2018
|
return ok(
|
|
2019
2019
|
toTerminalFailure(
|
|
2020
|
-
|
|
2020
|
+
chunkANT574FD_js.ErrorCode.UNSUPPORTED_CURRENCY,
|
|
2021
2021
|
"Payment currency is unsupported for checkout.",
|
|
2022
2022
|
false
|
|
2023
2023
|
)
|
|
2024
2024
|
);
|
|
2025
2025
|
}
|
|
2026
|
-
const payCurrencyCode = payCurrency &&
|
|
2026
|
+
const payCurrencyCode = payCurrency && chunkANT574FD_js.isSupportedCurrency(payCurrency) ? payCurrency : void 0;
|
|
2027
2027
|
const cartTotalSign = decimalSign(cart.pricing.total_price);
|
|
2028
2028
|
if (cartTotalSign === null || cartTotalSign < 0) {
|
|
2029
2029
|
return ok(
|
|
2030
2030
|
toTerminalFailure(
|
|
2031
|
-
|
|
2031
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_VALIDATION_FAILED,
|
|
2032
2032
|
"Cart total is not a valid non-negative decimal amount.",
|
|
2033
2033
|
false
|
|
2034
2034
|
)
|
|
@@ -2043,7 +2043,7 @@ var CheckoutService = class {
|
|
|
2043
2043
|
if (!fxQuoteResult.ok) {
|
|
2044
2044
|
return ok(
|
|
2045
2045
|
toTerminalFailure(
|
|
2046
|
-
|
|
2046
|
+
chunkANT574FD_js.ErrorCode.FX_QUOTE_FAILED,
|
|
2047
2047
|
fxQuoteResult.error.message || "Unable to lock FX quote for checkout.",
|
|
2048
2048
|
true
|
|
2049
2049
|
)
|
|
@@ -2057,7 +2057,7 @@ var CheckoutService = class {
|
|
|
2057
2057
|
if (!started.ok) {
|
|
2058
2058
|
return ok(
|
|
2059
2059
|
toTerminalFailure(
|
|
2060
|
-
started.error.code ||
|
|
2060
|
+
started.error.code || chunkANT574FD_js.ErrorCode.CHECKOUT_FAILED,
|
|
2061
2061
|
started.error.message || "Unable to process checkout.",
|
|
2062
2062
|
started.error.retryable ?? true
|
|
2063
2063
|
)
|
|
@@ -2074,11 +2074,11 @@ var CheckoutService = class {
|
|
|
2074
2074
|
onStatusChange: (status, response) => {
|
|
2075
2075
|
const context = {};
|
|
2076
2076
|
if (response && "order_id" in response) context.order_id = response.order_id;
|
|
2077
|
-
if (response?.status ===
|
|
2077
|
+
if (response?.status === chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED) {
|
|
2078
2078
|
context.replacement_terms = response.replacement;
|
|
2079
2079
|
context.terms_deltas = response.deltas;
|
|
2080
2080
|
}
|
|
2081
|
-
if (response?.status ===
|
|
2081
|
+
if (response?.status === chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE) {
|
|
2082
2082
|
context.unavailable_lines = response.lines;
|
|
2083
2083
|
}
|
|
2084
2084
|
const checkoutStatus = CHECKOUT_STATUS_BY_PURCHASE_INTENT_RESOLVE_STATUS[status];
|
|
@@ -2086,15 +2086,15 @@ var CheckoutService = class {
|
|
|
2086
2086
|
},
|
|
2087
2087
|
onActionRequired: async (action) => {
|
|
2088
2088
|
switch (action.status) {
|
|
2089
|
-
case
|
|
2089
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.CARD_POPUP_REQUIRED: {
|
|
2090
2090
|
const allowPopups = data.allow_popups ?? typeof window !== "undefined";
|
|
2091
2091
|
if (!allowPopups) {
|
|
2092
2092
|
actionFailure = {
|
|
2093
|
-
code:
|
|
2093
|
+
code: chunkANT574FD_js.ErrorCode.PROVIDER_UNAVAILABLE,
|
|
2094
2094
|
message: "Card authorization UI is unavailable in this environment.",
|
|
2095
2095
|
recoverable: false
|
|
2096
2096
|
};
|
|
2097
|
-
return
|
|
2097
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2098
2098
|
}
|
|
2099
2099
|
let outcome;
|
|
2100
2100
|
try {
|
|
@@ -2118,10 +2118,10 @@ var CheckoutService = class {
|
|
|
2118
2118
|
notifyAuthorizationUi(data.on_authorization_ui_change, false);
|
|
2119
2119
|
}
|
|
2120
2120
|
if (outcome.status === PAYMENT_AUTHORIZATION_OUTCOME_STATUS.SUBMITTED) {
|
|
2121
|
-
return
|
|
2121
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.CONTINUE;
|
|
2122
2122
|
}
|
|
2123
2123
|
actionFailure = outcome.status === PAYMENT_AUTHORIZATION_OUTCOME_STATUS.CANCELLED ? {
|
|
2124
|
-
code:
|
|
2124
|
+
code: chunkANT574FD_js.ErrorCode.PAYMENT_CANCELLED,
|
|
2125
2125
|
message: "Card payment was cancelled before submission.",
|
|
2126
2126
|
recoverable: true
|
|
2127
2127
|
} : {
|
|
@@ -2129,17 +2129,17 @@ var CheckoutService = class {
|
|
|
2129
2129
|
message: outcome.message,
|
|
2130
2130
|
recoverable: outcome.recoverable
|
|
2131
2131
|
};
|
|
2132
|
-
return
|
|
2132
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2133
2133
|
}
|
|
2134
|
-
case
|
|
2135
|
-
const authorizationUrl =
|
|
2134
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.REDIRECT_REQUIRED: {
|
|
2135
|
+
const authorizationUrl = chunkV32BCG7M_js.paymentAuthorizationUrl(action.authorization_url);
|
|
2136
2136
|
if (!authorizationUrl) {
|
|
2137
2137
|
actionFailure = {
|
|
2138
|
-
code:
|
|
2138
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_FAILED,
|
|
2139
2139
|
message: "The provider returned an invalid authorization URL.",
|
|
2140
2140
|
recoverable: false
|
|
2141
2141
|
};
|
|
2142
|
-
return
|
|
2142
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2143
2143
|
}
|
|
2144
2144
|
if (typeof window !== "undefined") {
|
|
2145
2145
|
if (data.allow_popups === false) {
|
|
@@ -2152,32 +2152,32 @@ var CheckoutService = class {
|
|
|
2152
2152
|
);
|
|
2153
2153
|
if (!popup) {
|
|
2154
2154
|
actionFailure = {
|
|
2155
|
-
code:
|
|
2155
|
+
code: chunkANT574FD_js.ErrorCode.POPUP_BLOCKED,
|
|
2156
2156
|
message: "Authorization popup was blocked.",
|
|
2157
2157
|
recoverable: true
|
|
2158
2158
|
};
|
|
2159
|
-
return
|
|
2159
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2160
2160
|
}
|
|
2161
2161
|
popup.opener = null;
|
|
2162
2162
|
popup.location.replace(authorizationUrl);
|
|
2163
2163
|
}
|
|
2164
2164
|
}
|
|
2165
2165
|
actionFailure = {
|
|
2166
|
-
code:
|
|
2166
|
+
code: chunkANT574FD_js.ErrorCode.REDIRECT_REQUIRED,
|
|
2167
2167
|
message: "Complete authorization at the payment provider, then resume checkout.",
|
|
2168
2168
|
recoverable: true
|
|
2169
2169
|
};
|
|
2170
|
-
return
|
|
2170
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2171
2171
|
}
|
|
2172
|
-
case
|
|
2172
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.AUTHORIZATION_REQUIRED: {
|
|
2173
2173
|
const expected = authorizationKind(action.authorization_type);
|
|
2174
2174
|
if (!expected || !data.on_authorization_required) {
|
|
2175
2175
|
actionFailure = {
|
|
2176
|
-
code:
|
|
2176
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_REQUIRED,
|
|
2177
2177
|
message: "Additional payment authorization is required.",
|
|
2178
2178
|
recoverable: true
|
|
2179
2179
|
};
|
|
2180
|
-
return
|
|
2180
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2181
2181
|
}
|
|
2182
2182
|
let submission;
|
|
2183
2183
|
await data.on_authorization_required(expected, async (candidate) => {
|
|
@@ -2186,14 +2186,14 @@ var CheckoutService = class {
|
|
|
2186
2186
|
});
|
|
2187
2187
|
if (!submission) {
|
|
2188
2188
|
actionFailure = {
|
|
2189
|
-
code:
|
|
2189
|
+
code: chunkANT574FD_js.ErrorCode.AUTHORIZATION_REQUIRED,
|
|
2190
2190
|
message: "Payment authorization was not submitted.",
|
|
2191
2191
|
recoverable: true
|
|
2192
2192
|
};
|
|
2193
|
-
return
|
|
2193
|
+
return chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.STOP;
|
|
2194
2194
|
}
|
|
2195
2195
|
return {
|
|
2196
|
-
kind:
|
|
2196
|
+
kind: chunkANT574FD_js.PURCHASE_INTENT_ACTION_DECISION.SUBMIT,
|
|
2197
2197
|
request: { authorization: submission }
|
|
2198
2198
|
};
|
|
2199
2199
|
}
|
|
@@ -2203,14 +2203,14 @@ var CheckoutService = class {
|
|
|
2203
2203
|
if (!resolved.ok) {
|
|
2204
2204
|
return ok(
|
|
2205
2205
|
toTerminalFailure(
|
|
2206
|
-
resolved.error.code ||
|
|
2206
|
+
resolved.error.code || chunkANT574FD_js.ErrorCode.CHECKOUT_FAILED,
|
|
2207
2207
|
resolved.error.message || "Unable to resolve checkout.",
|
|
2208
2208
|
resolved.error.retryable ?? true
|
|
2209
2209
|
)
|
|
2210
2210
|
);
|
|
2211
2211
|
}
|
|
2212
2212
|
switch (resolved.value.kind) {
|
|
2213
|
-
case
|
|
2213
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.COMPLETED: {
|
|
2214
2214
|
clearIntentIdempotencyKey(started.value.intentScope);
|
|
2215
2215
|
clearIntentIdempotencyKey(started.value.confirmationScope);
|
|
2216
2216
|
const response = resolved.value.response;
|
|
@@ -2233,70 +2233,70 @@ var CheckoutService = class {
|
|
|
2233
2233
|
enrolled_in_link: enrolledInLink
|
|
2234
2234
|
});
|
|
2235
2235
|
}
|
|
2236
|
-
case
|
|
2236
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.FAILED:
|
|
2237
2237
|
clearIntentIdempotencyKey(started.value.confirmationScope);
|
|
2238
2238
|
return ok(
|
|
2239
2239
|
toTerminalFailure(
|
|
2240
|
-
|
|
2240
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.PAYMENT_FAILED,
|
|
2241
2241
|
"Payment failed. Choose another method or retry collection.",
|
|
2242
2242
|
true
|
|
2243
2243
|
)
|
|
2244
2244
|
);
|
|
2245
|
-
case
|
|
2245
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.OUTCOME_UNKNOWN:
|
|
2246
2246
|
return ok(
|
|
2247
2247
|
toTerminalFailure(
|
|
2248
|
-
|
|
2248
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_OUTCOME_UNKNOWN,
|
|
2249
2249
|
"Payment outcome is still unknown. Resume this intent before retrying.",
|
|
2250
2250
|
true
|
|
2251
2251
|
)
|
|
2252
2252
|
);
|
|
2253
|
-
case
|
|
2253
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.TIMED_OUT:
|
|
2254
2254
|
return ok(
|
|
2255
2255
|
toTerminalFailure(
|
|
2256
|
-
|
|
2256
|
+
chunkANT574FD_js.ErrorCode.TIMEOUT,
|
|
2257
2257
|
"Payment is still processing. Resume this intent to continue polling.",
|
|
2258
2258
|
true
|
|
2259
2259
|
)
|
|
2260
2260
|
);
|
|
2261
|
-
case
|
|
2261
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.ACTION_REQUIRED:
|
|
2262
2262
|
return ok(
|
|
2263
2263
|
toTerminalFailure(
|
|
2264
|
-
actionFailure?.code ??
|
|
2264
|
+
actionFailure?.code ?? chunkANT574FD_js.ErrorCode.AUTHORIZATION_REQUIRED,
|
|
2265
2265
|
actionFailure?.message ?? "Checkout requires additional authorization.",
|
|
2266
2266
|
actionFailure?.recoverable ?? true
|
|
2267
2267
|
)
|
|
2268
2268
|
);
|
|
2269
|
-
case
|
|
2269
|
+
case chunkANT574FD_js.PURCHASE_INTENT_RESOLUTION_KIND.REVIEW_REQUIRED: {
|
|
2270
2270
|
const response = resolved.value.response;
|
|
2271
2271
|
switch (response.status) {
|
|
2272
|
-
case
|
|
2272
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.TERMS_CHANGED:
|
|
2273
2273
|
return ok(
|
|
2274
2274
|
toTerminalFailure(
|
|
2275
|
-
|
|
2275
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.TERMS_CHANGED,
|
|
2276
2276
|
"Checkout terms changed and require explicit review.",
|
|
2277
2277
|
true
|
|
2278
2278
|
)
|
|
2279
2279
|
);
|
|
2280
|
-
case
|
|
2280
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SELECTION_UNAVAILABLE:
|
|
2281
2281
|
return ok(
|
|
2282
2282
|
toTerminalFailure(
|
|
2283
|
-
|
|
2283
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SELECTION_UNAVAILABLE,
|
|
2284
2284
|
"One or more checkout selections are unavailable.",
|
|
2285
2285
|
true
|
|
2286
2286
|
)
|
|
2287
2287
|
);
|
|
2288
|
-
case
|
|
2288
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.OFFER_ENDED:
|
|
2289
2289
|
return ok(
|
|
2290
2290
|
toTerminalFailure(
|
|
2291
|
-
|
|
2291
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.OFFER_ENDED,
|
|
2292
2292
|
"This offer has ended.",
|
|
2293
2293
|
false
|
|
2294
2294
|
)
|
|
2295
2295
|
);
|
|
2296
|
-
case
|
|
2296
|
+
case chunkANT574FD_js.PURCHASE_INTENT_CONFIRM_STATUS.SOURCE_UNAVAILABLE:
|
|
2297
2297
|
return ok(
|
|
2298
2298
|
toTerminalFailure(
|
|
2299
|
-
|
|
2299
|
+
chunkANT574FD_js.PURCHASE_INTENT_ERROR_CODE.SOURCE_UNAVAILABLE,
|
|
2300
2300
|
"This purchase source is unavailable.",
|
|
2301
2301
|
false
|
|
2302
2302
|
)
|
|
@@ -2308,7 +2308,7 @@ var CheckoutService = class {
|
|
|
2308
2308
|
const cancelled = data.signal?.aborted || error instanceof Error && error.name === ABORT_ERROR_NAME;
|
|
2309
2309
|
return ok(
|
|
2310
2310
|
toTerminalFailure(
|
|
2311
|
-
cancelled ?
|
|
2311
|
+
cancelled ? chunkANT574FD_js.ErrorCode.CANCELLED : chunkANT574FD_js.ErrorCode.AUTHORIZATION_FAILED,
|
|
2312
2312
|
cancelled ? "Checkout was cancelled." : error instanceof Error ? error.message : "Checkout authorization failed.",
|
|
2313
2313
|
true
|
|
2314
2314
|
)
|
|
@@ -2391,7 +2391,7 @@ var LinkService = class {
|
|
|
2391
2391
|
supersededActivation() {
|
|
2392
2392
|
return {
|
|
2393
2393
|
ok: false,
|
|
2394
|
-
error: new
|
|
2394
|
+
error: new chunkANT574FD_js.CimplifyError(
|
|
2395
2395
|
"session_superseded",
|
|
2396
2396
|
"A newer authentication session replaced this one"
|
|
2397
2397
|
)
|
|
@@ -2407,7 +2407,7 @@ var LinkService = class {
|
|
|
2407
2407
|
this.client.activity.refreshIdentity();
|
|
2408
2408
|
return result;
|
|
2409
2409
|
}
|
|
2410
|
-
const claim = await this.client.
|
|
2410
|
+
const claim = await this.client.session.claim();
|
|
2411
2411
|
if (fence.generation !== this.activationGeneration || fence.publicKeyEpoch !== this.client.getPublicKeyEpoch() || this.client.getAccessToken() !== accessToken) {
|
|
2412
2412
|
return this.supersededActivation();
|
|
2413
2413
|
}
|
|
@@ -2631,7 +2631,7 @@ var AuthService = class {
|
|
|
2631
2631
|
if (result.ok && result.value.session_token) {
|
|
2632
2632
|
this.client.setAccessToken(result.value.session_token);
|
|
2633
2633
|
this.client.activity.refreshIdentity();
|
|
2634
|
-
this.client.
|
|
2634
|
+
this.client.autoClaimSession();
|
|
2635
2635
|
}
|
|
2636
2636
|
return result;
|
|
2637
2637
|
}
|
|
@@ -2672,7 +2672,7 @@ var BusinessService = class {
|
|
|
2672
2672
|
if (!result.ok) return err(result.error);
|
|
2673
2673
|
const location = result.value.find((item) => item.id === locationId);
|
|
2674
2674
|
if (!location) {
|
|
2675
|
-
return err(new
|
|
2675
|
+
return err(new chunkANT574FD_js.CimplifyError(chunkANT574FD_js.ErrorCode.NOT_FOUND, `Location not found: ${locationId}`, false));
|
|
2676
2676
|
}
|
|
2677
2677
|
return ok(location);
|
|
2678
2678
|
}
|
|
@@ -2924,13 +2924,10 @@ var ELEMENT_TYPES = {
|
|
|
2924
2924
|
};
|
|
2925
2925
|
var MESSAGE_TYPES = {
|
|
2926
2926
|
INIT: "init",
|
|
2927
|
-
|
|
2928
|
-
SET_SESSION: "set_session",
|
|
2927
|
+
IDENTITY: "identity",
|
|
2929
2928
|
SESSION_CLEARED: "session_cleared",
|
|
2930
2929
|
SET_CART: "set_cart",
|
|
2931
2930
|
GET_DATA: "get_data",
|
|
2932
|
-
NAVIGATE: "navigate",
|
|
2933
|
-
REFRESH_TOKEN: "refresh_token",
|
|
2934
2931
|
LOGOUT: "logout",
|
|
2935
2932
|
PROCESS_CHECKOUT: "process_checkout",
|
|
2936
2933
|
ABORT_CHECKOUT: "abort_checkout",
|
|
@@ -2943,7 +2940,6 @@ var MESSAGE_TYPES = {
|
|
|
2943
2940
|
LOGOUT_COMPLETE: "logout_complete",
|
|
2944
2941
|
AUTH_REQUESTED: "auth_requested",
|
|
2945
2942
|
SESSION_ESTABLISHED: "session_established",
|
|
2946
|
-
SESSION_ESTABLISHMENT_FAILED: "session_establishment_failed",
|
|
2947
2943
|
CONTINUE_WITHOUT_SAVED_DETAILS: "continue_without_saved_details",
|
|
2948
2944
|
CONTACT_PROVIDED: "contact_provided",
|
|
2949
2945
|
CHECKOUT_STATUS: "checkout_status",
|
|
@@ -3334,7 +3330,7 @@ function createClientEvents() {
|
|
|
3334
3330
|
|
|
3335
3331
|
// src/elements.ts
|
|
3336
3332
|
function toCheckoutError(code, message, recoverable) {
|
|
3337
|
-
const hint =
|
|
3333
|
+
const hint = chunkANT574FD_js.getErrorHint(code);
|
|
3338
3334
|
return {
|
|
3339
3335
|
success: false,
|
|
3340
3336
|
error: {
|
|
@@ -3347,7 +3343,6 @@ function toCheckoutError(code, message, recoverable) {
|
|
|
3347
3343
|
};
|
|
3348
3344
|
}
|
|
3349
3345
|
var DEFAULT_LINK_URL = "https://link.cimplify.io";
|
|
3350
|
-
var AUTH_ESTABLISHMENT_WAIT_MS = 8e3;
|
|
3351
3346
|
var AUTH_CONTACT_TYPES = new Set(Object.values(ELEMENTS_AUTH_CONTACT_TYPES));
|
|
3352
3347
|
var AUTH_MODES = new Set(Object.values(ELEMENTS_AUTH_MODES));
|
|
3353
3348
|
var AUTH_PROMPTS = new Set(Object.values(ELEMENTS_AUTH_PROMPTS));
|
|
@@ -3378,6 +3373,11 @@ function decodeJwtSub(token) {
|
|
|
3378
3373
|
return "";
|
|
3379
3374
|
}
|
|
3380
3375
|
}
|
|
3376
|
+
function isClaimedCustomer(value) {
|
|
3377
|
+
if (!value || typeof value !== "object") return false;
|
|
3378
|
+
const record = value;
|
|
3379
|
+
return typeof record.id === "string" && typeof record.name === "string" && (record.email === null || typeof record.email === "string") && (record.phone === null || typeof record.phone === "string");
|
|
3380
|
+
}
|
|
3381
3381
|
function isAllowedOrigin(origin) {
|
|
3382
3382
|
try {
|
|
3383
3383
|
const url = new URL(origin);
|
|
@@ -3434,8 +3434,10 @@ function parseIframeMessage(data) {
|
|
|
3434
3434
|
}
|
|
3435
3435
|
break;
|
|
3436
3436
|
case MESSAGE_TYPES.SESSION_ESTABLISHED:
|
|
3437
|
+
if (typeof record.sessionToken !== "string" || !record.sessionToken.trim()) return null;
|
|
3437
3438
|
if (typeof record.accessToken !== "string" || !record.accessToken.trim()) return null;
|
|
3438
3439
|
if (record.refreshToken !== void 0 && typeof record.refreshToken !== "string") return null;
|
|
3440
|
+
if (!isClaimedCustomer(record.customer)) return null;
|
|
3439
3441
|
break;
|
|
3440
3442
|
case MESSAGE_TYPES.ADDRESS_CHANGED:
|
|
3441
3443
|
case MESSAGE_TYPES.ADDRESS_SELECTED:
|
|
@@ -3486,7 +3488,6 @@ var CimplifyElements = class {
|
|
|
3486
3488
|
this.paymentData = null;
|
|
3487
3489
|
this.checkoutInProgress = false;
|
|
3488
3490
|
this.authInProgress = false;
|
|
3489
|
-
this.authEstablishmentInProgress = false;
|
|
3490
3491
|
this.authGeneration = 0;
|
|
3491
3492
|
this.activeCheckoutAbort = null;
|
|
3492
3493
|
this.businessIdResolvePromise = null;
|
|
@@ -3501,7 +3502,7 @@ var CimplifyElements = class {
|
|
|
3501
3502
|
window.addEventListener("message", this.boundHandleMessage);
|
|
3502
3503
|
}
|
|
3503
3504
|
this.stopSessionSync = client.events.on(SESSION_CLAIMED, () => {
|
|
3504
|
-
if (!this.authInProgress
|
|
3505
|
+
if (!this.authInProgress) this._syncHostSession();
|
|
3505
3506
|
});
|
|
3506
3507
|
void this.restoreSession();
|
|
3507
3508
|
}
|
|
@@ -3510,20 +3511,24 @@ var CimplifyElements = class {
|
|
|
3510
3511
|
console.debug(...args);
|
|
3511
3512
|
}
|
|
3512
3513
|
}
|
|
3513
|
-
|
|
3514
|
-
if (this.authEstablishmentInProgress) return;
|
|
3514
|
+
_syncHostSession(element) {
|
|
3515
3515
|
const sessionToken = this.client.getSessionToken();
|
|
3516
|
-
|
|
3516
|
+
if (!sessionToken) return;
|
|
3517
|
+
const identity = {
|
|
3518
|
+
type: MESSAGE_TYPES.IDENTITY,
|
|
3519
|
+
sessionToken,
|
|
3520
|
+
accessToken: this.client.getAccessToken() ?? this.accessToken,
|
|
3521
|
+
customer: this.identityCustomer()
|
|
3522
|
+
};
|
|
3517
3523
|
const targets = element ? [element] : Array.from(this.elements.values());
|
|
3518
3524
|
for (const target of targets) {
|
|
3519
|
-
|
|
3520
|
-
target.sendMessage({ type: MESSAGE_TYPES.SET_SESSION, sessionToken });
|
|
3521
|
-
}
|
|
3522
|
-
if (token) {
|
|
3523
|
-
target.sendMessage({ type: MESSAGE_TYPES.SET_TOKEN, token });
|
|
3524
|
-
}
|
|
3525
|
+
target.sendMessage(identity);
|
|
3525
3526
|
}
|
|
3526
3527
|
}
|
|
3528
|
+
identityCustomer() {
|
|
3529
|
+
if (!this.accessToken || !this.customerId || !this.customerData) return null;
|
|
3530
|
+
return { id: this.customerId, ...this.customerData };
|
|
3531
|
+
}
|
|
3527
3532
|
create(type, options = {}) {
|
|
3528
3533
|
const existing = this.elements.get(type);
|
|
3529
3534
|
if (existing) return existing;
|
|
@@ -3542,11 +3547,7 @@ var CimplifyElements = class {
|
|
|
3542
3547
|
}
|
|
3543
3548
|
destroy() {
|
|
3544
3549
|
this.authGeneration += 1;
|
|
3545
|
-
if (this.authEstablishmentInProgress) {
|
|
3546
|
-
this.client.setAccessToken(null);
|
|
3547
|
-
}
|
|
3548
3550
|
this.authInProgress = false;
|
|
3549
|
-
this.authEstablishmentInProgress = false;
|
|
3550
3551
|
this.stopSessionSync();
|
|
3551
3552
|
this.stopSessionSync = () => {
|
|
3552
3553
|
};
|
|
@@ -3582,7 +3583,7 @@ var CimplifyElements = class {
|
|
|
3582
3583
|
return {
|
|
3583
3584
|
success: false,
|
|
3584
3585
|
error: {
|
|
3585
|
-
code: result.error?.code ||
|
|
3586
|
+
code: result.error?.code || chunkANT574FD_js.ErrorCode.CHECKOUT_FAILED,
|
|
3586
3587
|
message: result.error?.message || "Checkout failed"
|
|
3587
3588
|
}
|
|
3588
3589
|
};
|
|
@@ -3600,28 +3601,17 @@ var CimplifyElements = class {
|
|
|
3600
3601
|
if (this.checkoutInProgress) {
|
|
3601
3602
|
this.debug("[cimplify:checkout] BLOCKED: already processing");
|
|
3602
3603
|
return toCheckoutError(
|
|
3603
|
-
|
|
3604
|
+
chunkANT574FD_js.ErrorCode.ALREADY_PROCESSING,
|
|
3604
3605
|
"Checkout is already in progress.",
|
|
3605
3606
|
false
|
|
3606
3607
|
);
|
|
3607
3608
|
}
|
|
3608
3609
|
this.checkoutInProgress = true;
|
|
3609
|
-
if (this.authEstablishmentInProgress) {
|
|
3610
|
-
await this.waitForAuthEstablishment(AUTH_ESTABLISHMENT_WAIT_MS);
|
|
3611
|
-
if (this.authEstablishmentInProgress) {
|
|
3612
|
-
this.checkoutInProgress = false;
|
|
3613
|
-
return toCheckoutError(
|
|
3614
|
-
chunkAVXA4F6G_js.ErrorCode.AUTH_INCOMPLETE,
|
|
3615
|
-
"Authentication must finish establishing the checkout session.",
|
|
3616
|
-
true
|
|
3617
|
-
);
|
|
3618
|
-
}
|
|
3619
|
-
}
|
|
3620
3610
|
if (!options.cart_id && !options.intent_id) {
|
|
3621
3611
|
this.debug("[cimplify:checkout] BLOCKED: no cart_id or intent_id");
|
|
3622
3612
|
this.checkoutInProgress = false;
|
|
3623
3613
|
return toCheckoutError(
|
|
3624
|
-
|
|
3614
|
+
chunkANT574FD_js.ErrorCode.CHECKOUT_AUTHORITY_REQUIRED,
|
|
3625
3615
|
"A cart or existing purchase intent is required before checkout can start.",
|
|
3626
3616
|
false
|
|
3627
3617
|
);
|
|
@@ -3630,7 +3620,7 @@ var CimplifyElements = class {
|
|
|
3630
3620
|
this.debug("[cimplify:checkout] BLOCKED: no order_type");
|
|
3631
3621
|
this.checkoutInProgress = false;
|
|
3632
3622
|
return toCheckoutError(
|
|
3633
|
-
|
|
3623
|
+
chunkANT574FD_js.ErrorCode.ORDER_TYPE_REQUIRED,
|
|
3634
3624
|
"Order type is required before checkout can start.",
|
|
3635
3625
|
false
|
|
3636
3626
|
);
|
|
@@ -3640,7 +3630,7 @@ var CimplifyElements = class {
|
|
|
3640
3630
|
this.debug("[cimplify:checkout] BLOCKED: no checkout element");
|
|
3641
3631
|
this.checkoutInProgress = false;
|
|
3642
3632
|
return toCheckoutError(
|
|
3643
|
-
|
|
3633
|
+
chunkANT574FD_js.ErrorCode.NO_PAYMENT_ELEMENT,
|
|
3644
3634
|
"Checkout element must be mounted before checkout.",
|
|
3645
3635
|
false
|
|
3646
3636
|
);
|
|
@@ -3649,7 +3639,7 @@ var CimplifyElements = class {
|
|
|
3649
3639
|
this.debug("[cimplify:checkout] BLOCKED: checkout element not mounted");
|
|
3650
3640
|
this.checkoutInProgress = false;
|
|
3651
3641
|
return toCheckoutError(
|
|
3652
|
-
|
|
3642
|
+
chunkANT574FD_js.ErrorCode.PAYMENT_NOT_MOUNTED,
|
|
3653
3643
|
"Checkout element must be mounted before checkout.",
|
|
3654
3644
|
false
|
|
3655
3645
|
);
|
|
@@ -3661,7 +3651,7 @@ var CimplifyElements = class {
|
|
|
3661
3651
|
this.debug("[cimplify:checkout] BLOCKED: auth incomplete");
|
|
3662
3652
|
this.checkoutInProgress = false;
|
|
3663
3653
|
return toCheckoutError(
|
|
3664
|
-
|
|
3654
|
+
chunkANT574FD_js.ErrorCode.AUTH_INCOMPLETE,
|
|
3665
3655
|
"Authentication must complete before checkout can start.",
|
|
3666
3656
|
true
|
|
3667
3657
|
);
|
|
@@ -3732,7 +3722,7 @@ var CimplifyElements = class {
|
|
|
3732
3722
|
timeout = setTimeout(() => {
|
|
3733
3723
|
settle(
|
|
3734
3724
|
toCheckoutError(
|
|
3735
|
-
|
|
3725
|
+
chunkANT574FD_js.ErrorCode.TIMEOUT,
|
|
3736
3726
|
"Checkout timed out before receiving a terminal response.",
|
|
3737
3727
|
true
|
|
3738
3728
|
)
|
|
@@ -3797,7 +3787,7 @@ var CimplifyElements = class {
|
|
|
3797
3787
|
checkoutElement.sendMessage({ type: MESSAGE_TYPES.ABORT_CHECKOUT });
|
|
3798
3788
|
settle(
|
|
3799
3789
|
toCheckoutError(
|
|
3800
|
-
|
|
3790
|
+
chunkANT574FD_js.ErrorCode.AUTH_LOST,
|
|
3801
3791
|
"Authentication was cleared during checkout.",
|
|
3802
3792
|
true
|
|
3803
3793
|
)
|
|
@@ -3809,7 +3799,7 @@ var CimplifyElements = class {
|
|
|
3809
3799
|
}
|
|
3810
3800
|
abortFn = () => {
|
|
3811
3801
|
checkoutElement.sendMessage({ type: MESSAGE_TYPES.ABORT_CHECKOUT });
|
|
3812
|
-
settle(toCheckoutError(
|
|
3802
|
+
settle(toCheckoutError(chunkANT574FD_js.ErrorCode.CANCELLED, "Checkout was cancelled.", true));
|
|
3813
3803
|
};
|
|
3814
3804
|
this.activeCheckoutAbort = abortFn;
|
|
3815
3805
|
this.debug("[cimplify:checkout] sending process_checkout to checkout iframe", {
|
|
@@ -3821,7 +3811,7 @@ var CimplifyElements = class {
|
|
|
3821
3811
|
hasAddress: !!processMessage.address,
|
|
3822
3812
|
isUnifiedCheckout
|
|
3823
3813
|
});
|
|
3824
|
-
this.
|
|
3814
|
+
this._syncHostSession(checkoutElement);
|
|
3825
3815
|
checkoutElement.sendMessage(processMessage);
|
|
3826
3816
|
this.debug("[cimplify:checkout] postMessage sent, waiting for checkout_complete...");
|
|
3827
3817
|
});
|
|
@@ -3932,7 +3922,6 @@ var CimplifyElements = class {
|
|
|
3932
3922
|
this.customerData = null;
|
|
3933
3923
|
this.addressData = null;
|
|
3934
3924
|
this.paymentData = null;
|
|
3935
|
-
this.authEstablishmentInProgress = false;
|
|
3936
3925
|
this.client.clearSession();
|
|
3937
3926
|
this.broadcastClearedSession();
|
|
3938
3927
|
}
|
|
@@ -3968,73 +3957,73 @@ var CimplifyElements = class {
|
|
|
3968
3957
|
this.broadcastClearedSession();
|
|
3969
3958
|
return;
|
|
3970
3959
|
}
|
|
3971
|
-
if (application.kind !== "authenticated"
|
|
3972
|
-
|
|
3973
|
-
}
|
|
3960
|
+
if (application.kind !== "authenticated") return;
|
|
3961
|
+
this._syncHostSession();
|
|
3974
3962
|
this.elements.forEach((element) => element._emitAuthenticated(application.data));
|
|
3975
3963
|
}
|
|
3976
3964
|
async applyAccessToken(token, generation) {
|
|
3977
3965
|
if (this.authGeneration !== generation) return { kind: "incomplete" };
|
|
3978
|
-
this.
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
if (
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
} else {
|
|
3993
|
-
this.client.setAccessToken(null);
|
|
3994
|
-
}
|
|
3995
|
-
return {
|
|
3996
|
-
kind: "claim_failed",
|
|
3997
|
-
code: claim.error.code,
|
|
3998
|
-
message: claim.error.userMessage
|
|
3999
|
-
};
|
|
4000
|
-
}
|
|
4001
|
-
this.accessToken = token;
|
|
4002
|
-
this.accountId = decodeJwtSub(token);
|
|
4003
|
-
if (!await this.hydrateCustomerData(generation, token, true)) {
|
|
4004
|
-
return { kind: "incomplete" };
|
|
3966
|
+
this.accessToken = null;
|
|
3967
|
+
this.accountId = null;
|
|
3968
|
+
this.customerId = null;
|
|
3969
|
+
this.customerData = null;
|
|
3970
|
+
this.addressData = null;
|
|
3971
|
+
this.paymentData = null;
|
|
3972
|
+
this.client.setAccessToken(token);
|
|
3973
|
+
const claim = await this.client.session.claim();
|
|
3974
|
+
if (!this.isAuthGenerationCurrent(generation, token)) return { kind: "incomplete" };
|
|
3975
|
+
if (!claim.ok && claim.error.code !== "already_claimed") {
|
|
3976
|
+
if (this.client.hasClaimedSessionAuthority()) {
|
|
3977
|
+
this.client.clearSession();
|
|
3978
|
+
} else {
|
|
3979
|
+
this.client.setAccessToken(null);
|
|
4005
3980
|
}
|
|
4006
|
-
if (!this.isAuthGenerationCurrent(generation, token)) return { kind: "incomplete" };
|
|
4007
3981
|
return {
|
|
4008
|
-
kind: "
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
customerId: this.customerId ?? "",
|
|
4012
|
-
token,
|
|
4013
|
-
customer: this.customerData ?? { name: "", email: null, phone: null }
|
|
4014
|
-
}
|
|
3982
|
+
kind: "claim_failed",
|
|
3983
|
+
code: claim.error.code,
|
|
3984
|
+
message: claim.error.userMessage
|
|
4015
3985
|
};
|
|
4016
|
-
} finally {
|
|
4017
|
-
this.authEstablishmentInProgress = false;
|
|
4018
|
-
}
|
|
4019
|
-
}
|
|
4020
|
-
async waitForAuthEstablishment(timeoutMs) {
|
|
4021
|
-
const deadline = Date.now() + timeoutMs;
|
|
4022
|
-
while (this.authEstablishmentInProgress && Date.now() < deadline) {
|
|
4023
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
4024
3986
|
}
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
if (!this.
|
|
4028
|
-
return
|
|
3987
|
+
this.accessToken = token;
|
|
3988
|
+
this.accountId = decodeJwtSub(token);
|
|
3989
|
+
if (!await this.hydrateCustomerData(generation, token, true)) {
|
|
3990
|
+
return { kind: "incomplete" };
|
|
4029
3991
|
}
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
3992
|
+
if (!this.isAuthGenerationCurrent(generation, token)) return { kind: "incomplete" };
|
|
3993
|
+
return {
|
|
3994
|
+
kind: "authenticated",
|
|
3995
|
+
data: {
|
|
3996
|
+
accountId: this.accountId ?? "",
|
|
3997
|
+
customerId: this.customerId ?? "",
|
|
3998
|
+
token,
|
|
3999
|
+
customer: this.customerData ?? { name: "", email: null, phone: null }
|
|
4034
4000
|
}
|
|
4035
|
-
|
|
4001
|
+
};
|
|
4002
|
+
}
|
|
4003
|
+
adoptEstablishedSession(sourceElement, session) {
|
|
4004
|
+
this.authGeneration += 1;
|
|
4005
|
+
this.authInProgress = false;
|
|
4006
|
+
const { id, ...customer } = session.customer;
|
|
4007
|
+
this.accessToken = session.accessToken;
|
|
4008
|
+
this.accountId = decodeJwtSub(session.accessToken);
|
|
4009
|
+
this.customerId = id;
|
|
4010
|
+
this.customerData = customer;
|
|
4011
|
+
this.addressData = null;
|
|
4012
|
+
this.paymentData = null;
|
|
4013
|
+
this.client.setAccessToken(session.accessToken);
|
|
4014
|
+
this.persistRefreshToken(session.refreshToken);
|
|
4015
|
+
this.client.session.adopt(session.accessToken, {
|
|
4016
|
+
sessionToken: session.sessionToken,
|
|
4017
|
+
customerName: session.customer.name,
|
|
4018
|
+
customer: session.customer,
|
|
4019
|
+
cart: null
|
|
4020
|
+
});
|
|
4021
|
+
sourceElement._emitAuthenticated({
|
|
4022
|
+
accountId: this.accountId,
|
|
4023
|
+
customerId: id,
|
|
4024
|
+
token: session.accessToken,
|
|
4025
|
+
customer
|
|
4036
4026
|
});
|
|
4037
|
-
return true;
|
|
4038
4027
|
}
|
|
4039
4028
|
broadcastClearedSession() {
|
|
4040
4029
|
const sessionToken = this.client.getSessionToken();
|
|
@@ -4051,7 +4040,7 @@ var CimplifyElements = class {
|
|
|
4051
4040
|
const redirectUri = auth.redirectUri ?? readPublicEnv("NEXT_PUBLIC_CIMPLIFY_REDIRECT_URI");
|
|
4052
4041
|
if (!clientId || !redirectUri) {
|
|
4053
4042
|
sourceElement._emitError({
|
|
4054
|
-
code:
|
|
4043
|
+
code: chunkANT574FD_js.ErrorCode.AUTH_CONFIG_REQUIRED,
|
|
4055
4044
|
message: "Cimplify OAuth clientId and redirectUri are required."
|
|
4056
4045
|
});
|
|
4057
4046
|
return;
|
|
@@ -4075,13 +4064,14 @@ var CimplifyElements = class {
|
|
|
4075
4064
|
this.authInProgress = false;
|
|
4076
4065
|
if (!accessToken) {
|
|
4077
4066
|
sourceElement._emitError({
|
|
4078
|
-
code:
|
|
4067
|
+
code: chunkANT574FD_js.ErrorCode.AUTH_CALLBACK_MISSING_TOKEN,
|
|
4079
4068
|
message: "Sign-in callback did not return an access token."
|
|
4080
4069
|
});
|
|
4081
4070
|
return;
|
|
4082
4071
|
}
|
|
4083
4072
|
const application = await this.applyAccessToken(accessToken, generation);
|
|
4084
|
-
if (application.kind === "authenticated"
|
|
4073
|
+
if (application.kind === "authenticated") {
|
|
4074
|
+
this._syncHostSession();
|
|
4085
4075
|
sourceElement._emitAuthenticated(application.data);
|
|
4086
4076
|
} else if (application.kind === "claim_failed") {
|
|
4087
4077
|
sourceElement._emitError({
|
|
@@ -4102,7 +4092,7 @@ var CimplifyElements = class {
|
|
|
4102
4092
|
if (this.authGeneration !== generation) return;
|
|
4103
4093
|
this.authInProgress = false;
|
|
4104
4094
|
sourceElement._emitError({
|
|
4105
|
-
code:
|
|
4095
|
+
code: chunkANT574FD_js.ErrorCode.AUTH_START_FAILED,
|
|
4106
4096
|
message: error instanceof Error ? error.message : "Unable to start sign-in."
|
|
4107
4097
|
});
|
|
4108
4098
|
});
|
|
@@ -4120,29 +4110,7 @@ var CimplifyElements = class {
|
|
|
4120
4110
|
this.startEmbeddedAuth(sourceElement, message);
|
|
4121
4111
|
break;
|
|
4122
4112
|
case MESSAGE_TYPES.SESSION_ESTABLISHED:
|
|
4123
|
-
|
|
4124
|
-
this.authInProgress = false;
|
|
4125
|
-
const generation = ++this.authGeneration;
|
|
4126
|
-
void this.applyAccessToken(message.accessToken, generation).then((application) => {
|
|
4127
|
-
if (this.authGeneration !== generation) return;
|
|
4128
|
-
if (application.kind === "claim_failed") {
|
|
4129
|
-
this.clearPersistedSession();
|
|
4130
|
-
sourceElement.sendMessage({
|
|
4131
|
-
type: MESSAGE_TYPES.SESSION_ESTABLISHMENT_FAILED,
|
|
4132
|
-
accessToken: message.accessToken,
|
|
4133
|
-
code: application.code,
|
|
4134
|
-
message: application.message
|
|
4135
|
-
});
|
|
4136
|
-
this.broadcastClearedSession();
|
|
4137
|
-
return;
|
|
4138
|
-
}
|
|
4139
|
-
if (application.kind !== "authenticated" || !this.broadcastAccessToken(message.accessToken, generation)) {
|
|
4140
|
-
return;
|
|
4141
|
-
}
|
|
4142
|
-
this.persistRefreshToken(message.refreshToken);
|
|
4143
|
-
sourceElement._emitAuthenticated(application.data);
|
|
4144
|
-
});
|
|
4145
|
-
}
|
|
4113
|
+
this.adoptEstablishedSession(sourceElement, message);
|
|
4146
4114
|
break;
|
|
4147
4115
|
case MESSAGE_TYPES.ADDRESS_CHANGED:
|
|
4148
4116
|
case MESSAGE_TYPES.ADDRESS_SELECTED:
|
|
@@ -4164,7 +4132,6 @@ var CimplifyElements = class {
|
|
|
4164
4132
|
case MESSAGE_TYPES.CONTINUE_WITHOUT_SAVED_DETAILS: {
|
|
4165
4133
|
this.authGeneration += 1;
|
|
4166
4134
|
this.authInProgress = false;
|
|
4167
|
-
this.authEstablishmentInProgress = false;
|
|
4168
4135
|
const carriedIdentityAuthority = Boolean(this.client.getAccessToken()) || this.client.hasClaimedSessionAuthority();
|
|
4169
4136
|
this.accessToken = null;
|
|
4170
4137
|
this.accountId = null;
|
|
@@ -4189,7 +4156,6 @@ var CimplifyElements = class {
|
|
|
4189
4156
|
case MESSAGE_TYPES.LOGOUT_COMPLETE:
|
|
4190
4157
|
this.authGeneration += 1;
|
|
4191
4158
|
this.authInProgress = false;
|
|
4192
|
-
this.authEstablishmentInProgress = false;
|
|
4193
4159
|
if (this.checkoutInProgress && this.activeCheckoutAbort) {
|
|
4194
4160
|
this.activeCheckoutAbort();
|
|
4195
4161
|
}
|
|
@@ -4378,7 +4344,7 @@ var CimplifyElement = class {
|
|
|
4378
4344
|
if (!resolvedBusinessId || !this.container || !this.mounted) {
|
|
4379
4345
|
console.error("Unable to mount element without a resolved business ID");
|
|
4380
4346
|
this.emit(EVENT_TYPES.ERROR, {
|
|
4381
|
-
code:
|
|
4347
|
+
code: chunkANT574FD_js.ErrorCode.BUSINESS_ID_REQUIRED,
|
|
4382
4348
|
message: "Unable to initialize checkout without a business ID."
|
|
4383
4349
|
});
|
|
4384
4350
|
return;
|
|
@@ -4438,14 +4404,7 @@ var CimplifyElement = class {
|
|
|
4438
4404
|
hostedSessionId: this.options.hostedSessionId,
|
|
4439
4405
|
initialTerms: this.options.initialTerms
|
|
4440
4406
|
});
|
|
4441
|
-
|
|
4442
|
-
const sessionToken = this.parent.getSessionToken();
|
|
4443
|
-
if (sessionToken) {
|
|
4444
|
-
this.sendMessage({ type: MESSAGE_TYPES.SET_SESSION, sessionToken });
|
|
4445
|
-
}
|
|
4446
|
-
if (token) {
|
|
4447
|
-
this.sendMessage({ type: MESSAGE_TYPES.SET_TOKEN, token });
|
|
4448
|
-
}
|
|
4407
|
+
this.parent._syncHostSession(this);
|
|
4449
4408
|
this.pendingInit = null;
|
|
4450
4409
|
}
|
|
4451
4410
|
this.flushPending();
|