@zonos/elements 1.5.1 → 1.5.2
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/cjs/{cart-CiXlehwQ.js → cart-BJpqPdFU.js} +13 -13
- package/dist/cjs/{collect-Drr8fY-q.js → collect-CyUttsvB.js} +3 -3
- package/dist/cjs/{getMissingRequiredShippingFields-DI6qF1z3.js → getMissingRequiredShippingFields-DEbNbRAZ.js} +1 -1
- package/dist/cjs/{handleFetch-DQLhurnE.js → handleFetch-DVfjFTYO.js} +181 -71
- package/dist/cjs/{hasInclusivePrice-84KS94yH.js → hasInclusivePrice-CEPf3_FG.js} +1 -1
- package/dist/cjs/index.cjs.js +104 -12
- package/dist/cjs/{invoice-5hVfSXpb.js → invoice-DzRkkpLu.js} +3 -3
- package/dist/cjs/{localization-B2mjW0Xa.js → localization-BhNVhLZs.js} +24 -48
- package/dist/cjs/{paypal-pd8Nz_R_.js → paypal-DCSqbdjW.js} +4 -4
- package/dist/cjs/{placeTestOrder-DrI8rD9o.js → placeTestOrder-Bkip4PUT.js} +3 -3
- package/dist/cjs/{renderCheckoutCurrency-u5q8YdUb.js → renderCheckoutCurrency-BDvEZ3Hv.js} +2 -2
- package/dist/cjs/{shouldShowLanguageSelect-gBg4KeTQ.js → shouldShowLanguageSelect-NOVWOU53.js} +1 -1
- package/dist/cjs/{submitGtag-Rc-S3PnH.js → submitGtag-D4sB7w4z.js} +1 -1
- package/dist/cjs/{taxIdFields-BrIaPTcd.js → taxIdFields-e4OCgr8K.js} +2 -2
- package/dist/cjs/{updateCheckoutSessionAttributes-d0IKpwW8.js → updateCheckoutSessionAttributes-KxwcsKhM.js} +1 -1
- package/dist/cjs/zonos-address-completion-dialog_7.cjs.entry.js +5 -5
- package/dist/cjs/zonos-address-display_2.cjs.entry.js +2 -2
- package/dist/cjs/zonos-address_4.cjs.entry.js +4 -4
- package/dist/cjs/zonos-airwallex-payment.cjs.entry.js +4 -4
- package/dist/cjs/zonos-card_5.cjs.entry.js +5 -5
- package/dist/cjs/zonos-cart-items_12.cjs.entry.js +18 -18
- package/dist/cjs/zonos-checkout.cjs.entry.js +9 -9
- package/dist/cjs/zonos-collect-cart-items_3.cjs.entry.js +3 -3
- package/dist/cjs/zonos-collect-finish_6.cjs.entry.js +9 -9
- package/dist/cjs/zonos-collect.cjs.entry.js +6 -6
- package/dist/cjs/zonos-controller.cjs.entry.js +6 -6
- package/dist/cjs/zonos-country-flag.cjs.entry.js +2 -2
- package/dist/cjs/zonos-country-select_4.cjs.entry.js +3 -3
- package/dist/cjs/zonos-hello-dialog.cjs.entry.js +3 -3
- package/dist/cjs/zonos-hello.cjs.entry.js +2 -2
- package/dist/cjs/zonos-invoice-cart-items_2.cjs.entry.js +5 -5
- package/dist/cjs/zonos-invoice-finish_5.cjs.entry.js +9 -9
- package/dist/cjs/zonos-invoice.cjs.entry.js +6 -6
- package/dist/cjs/zonos-language-select_2.cjs.entry.js +2 -2
- package/dist/cjs/zonos-policy-consent_2.cjs.entry.js +4 -4
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +8 -7
- package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +4 -3
- package/dist/collection/components/main/zonos-controller.js +3 -2
- package/dist/collection/components/store/checkout/cart.js +3 -2
- package/dist/collection/components/store/checkout/stripe.js +10 -9
- package/dist/collection/components/store/storageStore.js +7 -6
- package/dist/collection/components/utils/__tests__/helpers/blockStorage.js +24 -0
- package/dist/collection/components/utils/api/getExchangeRate.js +2 -1
- package/dist/collection/components/utils/handleFetch.js +19 -9
- package/dist/collection/components/utils/hello/countryOverrideStorage.js +17 -40
- package/dist/collection/components/utils/logging/installConstructorCapture.js +58 -0
- package/dist/collection/components/utils/logging/reportBlockedStorage.js +34 -0
- package/dist/collection/components/utils/logging/sendErrorLog.js +8 -1
- package/dist/collection/components/utils/logging/startZonosInit.js +35 -0
- package/dist/collection/components/utils/logging/thrownMessage.js +16 -0
- package/dist/collection/components/utils/safeStorage.js +39 -0
- package/dist/collection/scripts/_getZonosQaUrl.js +3 -2
- package/dist/collection/scripts/_zonosBase.js +6 -2
- package/dist/collection/types/generated/graphql.frontend.types.js +0 -16
- package/dist/collection/types/generated/graphql.internal.types.js +215 -1
- package/dist/esm/{cart-DmJkjiDE.js → cart-BS5mSI8x.js} +13 -13
- package/dist/esm/{collect-BV5GTPmh.js → collect-B9ZxDDl7.js} +3 -3
- package/dist/esm/{getMissingRequiredShippingFields-DljgpDZe.js → getMissingRequiredShippingFields-BkEV865q.js} +1 -1
- package/dist/esm/{handleFetch-D5GYDF-O.js → handleFetch-BFVO7oAR.js} +178 -72
- package/dist/esm/{hasInclusivePrice-DhGXpH2D.js → hasInclusivePrice-zSvDReDb.js} +1 -1
- package/dist/esm/index.js +104 -12
- package/dist/esm/{invoice-CO-iqlni.js → invoice-6iTuS6ek.js} +3 -3
- package/dist/esm/{localization-DHM91diu.js → localization-CXHiWcJp.js} +24 -48
- package/dist/esm/{paypal-BfW5aLJw.js → paypal-BE_NVBoy.js} +4 -4
- package/dist/esm/{placeTestOrder-CyWUFhxD.js → placeTestOrder-BXA9K9Iy.js} +3 -3
- package/dist/esm/{renderCheckoutCurrency-B31ZNkUv.js → renderCheckoutCurrency-KMa4HlAf.js} +2 -2
- package/dist/esm/{shouldShowLanguageSelect-DwSfSHar.js → shouldShowLanguageSelect-BI_ApEsQ.js} +1 -1
- package/dist/esm/{submitGtag-BEFrutel.js → submitGtag-C5xzFHjG.js} +1 -1
- package/dist/esm/{taxIdFields-ByEYfsO5.js → taxIdFields-BUKnHMaL.js} +2 -2
- package/dist/esm/{updateCheckoutSessionAttributes-B0bQH0uw.js → updateCheckoutSessionAttributes-C9bMKTjz.js} +1 -1
- package/dist/esm/zonos-address-completion-dialog_7.entry.js +5 -5
- package/dist/esm/zonos-address-display_2.entry.js +2 -2
- package/dist/esm/zonos-address_4.entry.js +4 -4
- package/dist/esm/zonos-airwallex-payment.entry.js +4 -4
- package/dist/esm/zonos-card_5.entry.js +5 -5
- package/dist/esm/zonos-cart-items_12.entry.js +18 -18
- package/dist/esm/zonos-checkout.entry.js +9 -9
- package/dist/esm/zonos-collect-cart-items_3.entry.js +3 -3
- package/dist/esm/zonos-collect-finish_6.entry.js +9 -9
- package/dist/esm/zonos-collect.entry.js +6 -6
- package/dist/esm/zonos-controller.entry.js +6 -6
- package/dist/esm/zonos-country-flag.entry.js +2 -2
- package/dist/esm/zonos-country-select_4.entry.js +3 -3
- package/dist/esm/zonos-hello-dialog.entry.js +3 -3
- package/dist/esm/zonos-hello.entry.js +2 -2
- package/dist/esm/zonos-invoice-cart-items_2.entry.js +5 -5
- package/dist/esm/zonos-invoice-finish_5.entry.js +9 -9
- package/dist/esm/zonos-invoice.entry.js +6 -6
- package/dist/esm/zonos-language-select_2.entry.js +2 -2
- package/dist/esm/zonos-policy-consent_2.entry.js +4 -4
- package/dist/esm-es5/{cart-DmJkjiDE.js → cart-BS5mSI8x.js} +58 -58
- package/dist/esm-es5/{collect-BV5GTPmh.js → collect-B9ZxDDl7.js} +1 -1
- package/dist/esm-es5/{getMissingRequiredShippingFields-DljgpDZe.js → getMissingRequiredShippingFields-BkEV865q.js} +1 -1
- package/dist/esm-es5/handleFetch-BFVO7oAR.js +73 -0
- package/dist/esm-es5/{hasInclusivePrice-DhGXpH2D.js → hasInclusivePrice-zSvDReDb.js} +1 -1
- package/dist/esm-es5/index.js +26 -8
- package/dist/esm-es5/{invoice-CO-iqlni.js → invoice-6iTuS6ek.js} +1 -1
- package/dist/esm-es5/{localization-DHM91diu.js → localization-CXHiWcJp.js} +6 -9
- package/dist/esm-es5/{paypal-BfW5aLJw.js → paypal-BE_NVBoy.js} +1 -1
- package/dist/esm-es5/{placeTestOrder-CyWUFhxD.js → placeTestOrder-BXA9K9Iy.js} +1 -1
- package/dist/esm-es5/{renderCheckoutCurrency-B31ZNkUv.js → renderCheckoutCurrency-KMa4HlAf.js} +2 -2
- package/dist/esm-es5/{shouldShowLanguageSelect-DwSfSHar.js → shouldShowLanguageSelect-BI_ApEsQ.js} +1 -1
- package/dist/esm-es5/{submitGtag-BEFrutel.js → submitGtag-C5xzFHjG.js} +1 -1
- package/dist/esm-es5/{taxIdFields-ByEYfsO5.js → taxIdFields-BUKnHMaL.js} +2 -2
- package/dist/esm-es5/{updateCheckoutSessionAttributes-B0bQH0uw.js → updateCheckoutSessionAttributes-C9bMKTjz.js} +1 -1
- package/dist/esm-es5/zonos-address-completion-dialog_7.entry.js +1 -1
- package/dist/esm-es5/zonos-address-display_2.entry.js +1 -1
- package/dist/esm-es5/zonos-address_4.entry.js +1 -1
- package/dist/esm-es5/zonos-airwallex-payment.entry.js +1 -1
- package/dist/esm-es5/zonos-card_5.entry.js +6 -6
- package/dist/esm-es5/zonos-cart-items_12.entry.js +127 -127
- package/dist/esm-es5/zonos-checkout.entry.js +3 -3
- package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
- package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
- package/dist/esm-es5/zonos-collect.entry.js +6 -6
- package/dist/esm-es5/zonos-controller.entry.js +5 -5
- package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
- package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
- package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
- package/dist/esm-es5/zonos-hello.entry.js +1 -1
- package/dist/esm-es5/zonos-invoice-cart-items_2.entry.js +1 -1
- package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
- package/dist/esm-es5/zonos-invoice.entry.js +3 -3
- package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
- package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
- package/dist/scripts/index.d.ts +6 -0
- package/dist/scripts/index.js +1 -1
- package/dist/scripts/loadZonos.js +1 -1
- package/dist/scripts/zonos.js +1 -1
- package/dist/types/components/utils/__tests__/helpers/blockStorage.d.ts +3 -0
- package/dist/types/components/utils/logging/installConstructorCapture.d.ts +20 -0
- package/dist/types/components/utils/logging/reportBlockedStorage.d.ts +16 -0
- package/dist/types/components/utils/logging/startZonosInit.d.ts +5 -0
- package/dist/types/components/utils/logging/thrownMessage.d.ts +1 -0
- package/dist/types/components/utils/safeStorage.d.ts +4 -0
- package/dist/types/scripts/cart/_setupCartDataWithSettings.d.ts +5 -0
- package/dist/types/types/generated/graphql.frontend.types.d.ts +0 -22
- package/dist/types/types/generated/graphql.frontend.types.ts +0 -51
- package/dist/types/types/generated/graphql.internal.types.d.ts +270 -1
- package/dist/types/types/generated/graphql.internal.types.ts +341 -1
- package/dist/zonos-elements/index.esm.js +1 -1
- package/dist/zonos-elements/{p-8fa6cfff.entry.js → p-08b01c96.entry.js} +1 -1
- package/dist/zonos-elements/{p-3e705c9b.entry.js → p-0909ef77.entry.js} +1 -1
- package/dist/zonos-elements/{p-2b63865a.system.entry.js → p-13015d34.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-2d513aa3.entry.js → p-13d5b2f9.entry.js} +1 -1
- package/dist/zonos-elements/{p-46a839d2.system.entry.js → p-150047b3.system.entry.js} +16 -16
- package/dist/zonos-elements/{p-6e691736.entry.js → p-1986cc37.entry.js} +1 -1
- package/dist/zonos-elements/{p-vTIygnHq.system.js → p-1OG3IJgY.system.js} +1 -1
- package/dist/zonos-elements/{p-189cc594.system.entry.js → p-30bf4700.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-4917b74d.entry.js → p-3466bcba.entry.js} +1 -1
- package/dist/zonos-elements/{p-12b24ebb.entry.js → p-383343c7.entry.js} +1 -1
- package/dist/zonos-elements/{p-5585db86.system.entry.js → p-3a506614.system.entry.js} +36 -36
- package/dist/zonos-elements/{p-46b9f0cf.entry.js → p-43c0ebe9.entry.js} +1 -1
- package/dist/zonos-elements/{p-84e76348.entry.js → p-4b65f192.entry.js} +1 -1
- package/dist/zonos-elements/{p-216a908d.system.entry.js → p-573a4e7c.system.entry.js} +6 -6
- package/dist/zonos-elements/{p-1fda4aec.system.entry.js → p-5a296dbc.system.entry.js} +87 -87
- package/dist/zonos-elements/{p-960070d0.system.entry.js → p-68325c5a.system.entry.js} +4 -4
- package/dist/zonos-elements/{p-53eac12f.system.entry.js → p-6db7317a.system.entry.js} +13 -13
- package/dist/zonos-elements/{p-1199baef.system.entry.js → p-709d1561.system.entry.js} +1 -1
- package/dist/zonos-elements/p-71d29603.entry.js +1 -0
- package/dist/zonos-elements/{p-064d8829.system.entry.js → p-7214c953.system.entry.js} +23 -23
- package/dist/zonos-elements/{p-65817880.entry.js → p-7fe83919.entry.js} +1 -1
- package/dist/zonos-elements/p-8ac26831.entry.js +1 -0
- package/dist/zonos-elements/{p-cccaad60.system.entry.js → p-8f9f859f.system.entry.js} +9 -9
- package/dist/zonos-elements/{p-f5f95990.system.entry.js → p-96b250d8.system.entry.js} +14 -14
- package/dist/zonos-elements/{p-678b9214.entry.js → p-97729873.entry.js} +1 -1
- package/dist/zonos-elements/{p-f3d9a380.system.entry.js → p-9b3668a4.system.entry.js} +144 -144
- package/dist/zonos-elements/{p-d8f375da.system.entry.js → p-9df31243.system.entry.js} +1 -1
- package/dist/zonos-elements/p-BI6VAB5B.js +1 -0
- package/dist/zonos-elements/p-BJFa5RwX.js +1 -0
- package/dist/zonos-elements/p-BJ_kE5rM.js +1 -0
- package/dist/zonos-elements/{p-XoQH3S7Z.system.js → p-BKUlQxBd.system.js} +1 -1
- package/dist/zonos-elements/{p-DprOoI2W.system.js → p-BUfCTQXY.system.js} +154 -154
- package/dist/zonos-elements/{p-CBUz18kA.system.js → p-BnQyot7Y.system.js} +23 -23
- package/dist/zonos-elements/p-Bu9WCfUC.system.js +1 -1
- package/dist/zonos-elements/{p-CMo3ZweU.js → p-C-zdj7MK.js} +1 -1
- package/dist/zonos-elements/{p-iAIzUA4k.js → p-C5fs3rIR.js} +1 -1
- package/dist/zonos-elements/{p-D1e9zNDA.js → p-CJmWr75U.js} +1 -1
- package/dist/zonos-elements/{p-Dtu_Japy.system.js → p-CMneHjck.system.js} +39 -39
- package/dist/zonos-elements/p-CP7KnfR3.system.js +245 -0
- package/dist/zonos-elements/p-CVRbGFV3.js +1 -0
- package/dist/zonos-elements/p-Cl5yV0ak.js +1 -0
- package/dist/zonos-elements/{p-CGNVm52g.system.js → p-Cp1IAJvW.system.js} +5 -5
- package/dist/zonos-elements/{p-6vSUiBfr.system.js → p-D-Lnf8mS.system.js} +50 -53
- package/dist/zonos-elements/p-D0DkOoAw.system.js +73 -0
- package/dist/zonos-elements/p-D4xpkSsK.js +1 -0
- package/dist/zonos-elements/p-DATNIakn.js +1 -0
- package/dist/zonos-elements/{p-CbhN65lj.system.js → p-DC1OPJDq.system.js} +1 -1
- package/dist/zonos-elements/{p-CHKKvuiz.js → p-DKnphvmJ.js} +1 -1
- package/dist/zonos-elements/{p-ojtNq-r5.system.js → p-DXlojp_Y.system.js} +1 -1
- package/dist/zonos-elements/{p-C9XLkmmb.system.js → p-DrS-0mk7.system.js} +1 -1
- package/dist/zonos-elements/{p-DpwmHU8R.js → p-DrbN3rPL.js} +2 -2
- package/dist/zonos-elements/{p-BrQ8n8NS.system.js → p-Dv5a-V6w.system.js} +3 -3
- package/dist/zonos-elements/{p-55813e9f.system.entry.js → p-a3c147d2.system.entry.js} +3 -3
- package/dist/zonos-elements/{p-DiMEP3mh.js → p-aK18R41t.js} +1 -1
- package/dist/zonos-elements/p-af4ad54b.entry.js +1 -0
- package/dist/zonos-elements/{p-1e6db427.entry.js → p-af741506.entry.js} +1 -1
- package/dist/zonos-elements/{p-2ca826b9.system.entry.js → p-b540c636.system.entry.js} +1 -1
- package/dist/zonos-elements/{p-636b71d4.entry.js → p-bac94956.entry.js} +1 -1
- package/dist/zonos-elements/{p-941a95a1.system.entry.js → p-bb1b414a.system.entry.js} +5 -5
- package/dist/zonos-elements/{p-e7fdb2c9.entry.js → p-bfa9e32a.entry.js} +1 -1
- package/dist/zonos-elements/p-cf6bf7a4.entry.js +1 -0
- package/dist/zonos-elements/p-dJcbnNlE.system.js +7 -0
- package/dist/zonos-elements/{p-7dc7f328.entry.js → p-db40b9c3.entry.js} +1 -1
- package/dist/zonos-elements/{p-d3345b2c.entry.js → p-dd003161.entry.js} +1 -1
- package/dist/zonos-elements/{p-ef5344ea.entry.js → p-e374aaa4.entry.js} +1 -1
- package/dist/zonos-elements/{p-6410fa11.system.entry.js → p-e43470f7.system.entry.js} +22 -22
- package/dist/zonos-elements/{p-fda89981.system.entry.js → p-ebc7ea54.system.entry.js} +3 -3
- package/dist/zonos-elements/{p-1cc42a98.system.entry.js → p-f2ed52bc.system.entry.js} +16 -16
- package/dist/zonos-elements/p-gEViRqvf.js +1 -0
- package/dist/zonos-elements/{p-DgUrB-1a.system.js → p-yv7ekcdG.system.js} +2 -2
- package/dist/zonos-elements/zonos-elements.esm.js +1 -1
- package/package.json +1 -1
- package/dist/esm-es5/handleFetch-D5GYDF-O.js +0 -60
- package/dist/zonos-elements/p-107f287b.entry.js +0 -1
- package/dist/zonos-elements/p-25eb99d4.entry.js +0 -1
- package/dist/zonos-elements/p-8f9d8795.entry.js +0 -1
- package/dist/zonos-elements/p-BMPYH-LT.js +0 -1
- package/dist/zonos-elements/p-C70h5mKA.js +0 -1
- package/dist/zonos-elements/p-CTiqplrr.js +0 -1
- package/dist/zonos-elements/p-Ch1w0Lr7.js +0 -1
- package/dist/zonos-elements/p-D1SmY_fZ.js +0 -1
- package/dist/zonos-elements/p-D6xXnsM_.js +0 -1
- package/dist/zonos-elements/p-DE4a-QD5.js +0 -1
- package/dist/zonos-elements/p-DQrMfUzi.system.js +0 -227
- package/dist/zonos-elements/p-DZdkJHK9.system.js +0 -7
- package/dist/zonos-elements/p-U33isUJG.js +0 -1
- package/dist/zonos-elements/p-ebe157b5.entry.js +0 -1
- package/dist/zonos-elements/p-zVLAvre1.system.js +0 -60
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
import { l as log } from './VarianceTest-BJmZPrZl.js';
|
|
2
2
|
|
|
3
|
-
const logError = (message, ...rest) => {
|
|
4
|
-
log(message, 'error', ...rest);
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
const getIsStagingMode = () => window.location.search.includes('zonosStagingMode=1');
|
|
8
|
-
|
|
9
|
-
const getIsTestMode = () => {
|
|
10
|
-
var _a;
|
|
11
|
-
return ((_a = window.Zonos.zonosApiKey) === null || _a === void 0 ? void 0 : _a.includes('test')) ||
|
|
12
|
-
window.location.search.includes('zonosTestMode=1');
|
|
13
|
-
};
|
|
14
|
-
|
|
15
3
|
const fallbackApiType = ['cloudflare', 'vercel'];
|
|
16
4
|
const MAIN_BASE_API_TYPE = fallbackApiType[0];
|
|
17
5
|
const fallbackApiList = {
|
|
@@ -31,6 +19,164 @@ const getNextFallbackApiType = (currentApiType = MAIN_BASE_API_TYPE) => {
|
|
|
31
19
|
return nextFallbackApiType;
|
|
32
20
|
};
|
|
33
21
|
|
|
22
|
+
/**
|
|
23
|
+
* This is the time in milliseconds after release time that we will start sending error logs to the new API
|
|
24
|
+
* @default 1 hour
|
|
25
|
+
*/
|
|
26
|
+
const postReleaseReportingDuration = 1 * 3600 * 1000; // 1 hour
|
|
27
|
+
const loggedHref = () => {
|
|
28
|
+
const url = new URL(window.location.href);
|
|
29
|
+
url.searchParams.delete('payment_intent');
|
|
30
|
+
url.searchParams.delete('payment_intent_client_secret');
|
|
31
|
+
url.searchParams.delete('redirect_status');
|
|
32
|
+
return url.toString();
|
|
33
|
+
};
|
|
34
|
+
const sendErrorLog = async ({ endpoint, errors, metadata, shouldPostReleaseErrorReporting, }) => {
|
|
35
|
+
log('sendErrorLog', 'warn', endpoint, metadata, errors);
|
|
36
|
+
if (shouldPostReleaseErrorReporting) {
|
|
37
|
+
// We only want to report errors that happened if current time is less than 2 hours after release time
|
|
38
|
+
const releaseTime = Number(window.Zonos.releaseDate);
|
|
39
|
+
const currentTime = new Date().getTime();
|
|
40
|
+
if (currentTime - releaseTime > postReleaseReportingDuration) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const userAgentData = 'userAgentData' in window.navigator
|
|
45
|
+
? // userAgentData is not yet supported in all browsers
|
|
46
|
+
window.navigator.userAgentData
|
|
47
|
+
: null;
|
|
48
|
+
const errorObject = {
|
|
49
|
+
endpoint,
|
|
50
|
+
errors,
|
|
51
|
+
href: loggedHref(),
|
|
52
|
+
metadata: Object.assign({ appVersion: window.Zonos.version, domain: window.Zonos.domain, publicCredential: window.Zonos.zonosApiKey, userAgent: userAgentData && userAgentData.brands.length > 0
|
|
53
|
+
? userAgentData
|
|
54
|
+
: window.navigator.userAgent }, metadata),
|
|
55
|
+
};
|
|
56
|
+
try {
|
|
57
|
+
// use native fetch because in handleFetch also calls sendErrorLog and it will possibly cause circular dependencies issue
|
|
58
|
+
void fetch(`${MAIN_BASE_API}/api/zonos-elements/log-error`, {
|
|
59
|
+
body: JSON.stringify(errorObject),
|
|
60
|
+
headers: {
|
|
61
|
+
'Zonos-Referer': window.location.hostname,
|
|
62
|
+
},
|
|
63
|
+
method: 'POST',
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (_a) {
|
|
67
|
+
const nextFallbackApi = getNextFallbackApiType();
|
|
68
|
+
if (!nextFallbackApi) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// request to the fallback API if the first one fails
|
|
72
|
+
void fetch(`${fallbackApiList[nextFallbackApi]}/api/zonos-elements/log-error`, {
|
|
73
|
+
body: JSON.stringify(errorObject),
|
|
74
|
+
method: 'POST',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const thrownMessage = (error, fallback) => {
|
|
80
|
+
if (typeof error === 'string' && error) {
|
|
81
|
+
return error;
|
|
82
|
+
}
|
|
83
|
+
if (error instanceof Error && error.message) {
|
|
84
|
+
return error.message;
|
|
85
|
+
}
|
|
86
|
+
if (typeof error === 'object' &&
|
|
87
|
+
error !== null &&
|
|
88
|
+
'message' in error &&
|
|
89
|
+
typeof error.message === 'string' &&
|
|
90
|
+
error.message) {
|
|
91
|
+
return error.message;
|
|
92
|
+
}
|
|
93
|
+
return fallback;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const logError = (message, ...rest) => {
|
|
97
|
+
log(message, 'error', ...rest);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const reportedIds = () => {
|
|
101
|
+
if (!window.__zonosReportedBlockedStorage) {
|
|
102
|
+
window.__zonosReportedBlockedStorage = new Set();
|
|
103
|
+
}
|
|
104
|
+
return window.__zonosReportedBlockedStorage;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Record a blocked storage read or write on the existing error log.
|
|
108
|
+
* A throw before `window.Zonos` exists is swallowed and does not use up
|
|
109
|
+
* the per-page dedupe slot, so the later startup read can still report it.
|
|
110
|
+
*/
|
|
111
|
+
const reportBlockedStorage = (area, operation, key, error) => {
|
|
112
|
+
if (typeof window.Zonos === 'undefined') {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const dedupeId = `${area}\u0000${operation}\u0000${key}`;
|
|
116
|
+
const reported = reportedIds();
|
|
117
|
+
if (reported.has(dedupeId)) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
reported.add(dedupeId);
|
|
121
|
+
void sendErrorLog({
|
|
122
|
+
endpoint: `storage://${area}/${key}`,
|
|
123
|
+
errors: [thrownMessage(error, 'SecurityError')],
|
|
124
|
+
metadata: {
|
|
125
|
+
area,
|
|
126
|
+
key,
|
|
127
|
+
operation,
|
|
128
|
+
shape: 'blocked-storage',
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Touch `window.localStorage` / `window.sessionStorage` inside the try.
|
|
135
|
+
* Safari throws SecurityError on the getter itself when storage is blocked.
|
|
136
|
+
* A missing storage object is the same failure: calling `getItem` on it
|
|
137
|
+
* would report a TypeError instead of blocked storage.
|
|
138
|
+
*/
|
|
139
|
+
const storageFor = (area) => {
|
|
140
|
+
const storage = area === 'local' ? window.localStorage : window.sessionStorage;
|
|
141
|
+
if (!storage) {
|
|
142
|
+
throw new DOMException('', 'SecurityError');
|
|
143
|
+
}
|
|
144
|
+
return storage;
|
|
145
|
+
};
|
|
146
|
+
const safeGetItem = (area, key) => {
|
|
147
|
+
try {
|
|
148
|
+
return storageFor(area).getItem(key);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
reportBlockedStorage(area, 'getItem', key, error);
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
const safeRemoveItem = (area, key) => {
|
|
156
|
+
try {
|
|
157
|
+
storageFor(area).removeItem(key);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
reportBlockedStorage(area, 'removeItem', key, error);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const safeSetItem = (area, key, value) => {
|
|
164
|
+
try {
|
|
165
|
+
storageFor(area).setItem(key, value);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
reportBlockedStorage(area, 'setItem', key, error);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const getIsStagingMode = () => window.location.search.includes('zonosStagingMode=1');
|
|
173
|
+
|
|
174
|
+
const getIsTestMode = () => {
|
|
175
|
+
var _a;
|
|
176
|
+
return ((_a = window.Zonos.zonosApiKey) === null || _a === void 0 ? void 0 : _a.includes('test')) ||
|
|
177
|
+
window.location.search.includes('zonosTestMode=1');
|
|
178
|
+
};
|
|
179
|
+
|
|
34
180
|
const jsonParse = (_data) => {
|
|
35
181
|
if (typeof _data === 'string') {
|
|
36
182
|
try {
|
|
@@ -133,56 +279,6 @@ const prepLoadTimeApiLog = ({ apiPath, apiType, loadTimeInternal, loadTimeTotal,
|
|
|
133
279
|
window.Zonos.loadTimeApiInfoList.push(bulkLoadLogBody);
|
|
134
280
|
};
|
|
135
281
|
|
|
136
|
-
/**
|
|
137
|
-
* This is the time in milliseconds after release time that we will start sending error logs to the new API
|
|
138
|
-
* @default 1 hour
|
|
139
|
-
*/
|
|
140
|
-
const postReleaseReportingDuration = 1 * 3600 * 1000; // 1 hour
|
|
141
|
-
const sendErrorLog = async ({ endpoint, errors, metadata, shouldPostReleaseErrorReporting, }) => {
|
|
142
|
-
log('sendErrorLog', 'warn', endpoint, metadata, errors);
|
|
143
|
-
if (shouldPostReleaseErrorReporting) {
|
|
144
|
-
// We only want to report errors that happened if current time is less than 2 hours after release time
|
|
145
|
-
const releaseTime = Number(window.Zonos.releaseDate);
|
|
146
|
-
const currentTime = new Date().getTime();
|
|
147
|
-
if (currentTime - releaseTime > postReleaseReportingDuration) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const userAgentData = 'userAgentData' in window.navigator
|
|
152
|
-
? // userAgentData is not yet supported in all browsers
|
|
153
|
-
window.navigator.userAgentData
|
|
154
|
-
: null;
|
|
155
|
-
const errorObject = {
|
|
156
|
-
endpoint,
|
|
157
|
-
errors,
|
|
158
|
-
href: window.location.href,
|
|
159
|
-
metadata: Object.assign({ appVersion: window.Zonos.version, domain: window.Zonos.domain, publicCredential: window.Zonos.zonosApiKey, userAgent: userAgentData && userAgentData.brands.length > 0
|
|
160
|
-
? userAgentData
|
|
161
|
-
: window.navigator.userAgent }, metadata),
|
|
162
|
-
};
|
|
163
|
-
try {
|
|
164
|
-
// use native fetch because in handleFetch also calls sendErrorLog and it will possibly cause circular dependencies issue
|
|
165
|
-
void fetch(`${MAIN_BASE_API}/api/zonos-elements/log-error`, {
|
|
166
|
-
body: JSON.stringify(errorObject),
|
|
167
|
-
headers: {
|
|
168
|
-
'Zonos-Referer': window.location.hostname,
|
|
169
|
-
},
|
|
170
|
-
method: 'POST',
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
catch (_a) {
|
|
174
|
-
const nextFallbackApi = getNextFallbackApiType();
|
|
175
|
-
if (!nextFallbackApi) {
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
// request to the fallback API if the first one fails
|
|
179
|
-
void fetch(`${fallbackApiList[nextFallbackApi]}/api/zonos-elements/log-error`, {
|
|
180
|
-
body: JSON.stringify(errorObject),
|
|
181
|
-
method: 'POST',
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
282
|
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
187
283
|
var t = {};
|
|
188
284
|
for (var p in s)
|
|
@@ -195,6 +291,7 @@ var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
|
195
291
|
}
|
|
196
292
|
return t;
|
|
197
293
|
};
|
|
294
|
+
const isGatewayStatus = (status) => status === 502 || status === 503 || status === 504;
|
|
198
295
|
const getResponseBody = async ({ response, shouldLog = true, shouldThrow = false, }) => {
|
|
199
296
|
try {
|
|
200
297
|
const text = await response.text();
|
|
@@ -315,28 +412,31 @@ const handleRequest = async ({ basePathType, options, path, }) => {
|
|
|
315
412
|
}
|
|
316
413
|
catch (_a) {
|
|
317
414
|
const message = 'Unknown error';
|
|
415
|
+
// A gateway HTML or empty body still carries a status a GET can fail over
|
|
416
|
+
// on. Other non-JSON statuses, including 404 and 500, keep the previous
|
|
417
|
+
// null response so they do not fail over.
|
|
318
418
|
return {
|
|
319
419
|
baseUrl,
|
|
320
420
|
errors: [{ message: `${status}: ${message}`, type: status }],
|
|
321
421
|
json: null,
|
|
322
|
-
response: null,
|
|
422
|
+
response: isGatewayStatus(response.status) ? response : null,
|
|
323
423
|
zonosMode,
|
|
324
424
|
};
|
|
325
425
|
}
|
|
326
426
|
};
|
|
327
427
|
const handleRequestWithFallback = async ({ basePathType: _basePathType, options, path, }) => {
|
|
328
|
-
var _a, _b;
|
|
428
|
+
var _a, _b, _c;
|
|
329
429
|
// use vercel API if the path is `/api/bigcommerce`
|
|
330
430
|
const isBigcommerceEndpoint = path.startsWith('/api/bigcommerce');
|
|
331
431
|
const basePathType = isBigcommerceEndpoint
|
|
332
432
|
? 'vercel'
|
|
333
433
|
: _basePathType;
|
|
334
434
|
const startTime = performance.now();
|
|
335
|
-
const
|
|
435
|
+
const _d = await handleRequest({
|
|
336
436
|
basePathType,
|
|
337
437
|
options,
|
|
338
438
|
path,
|
|
339
|
-
}), { errors, response } =
|
|
439
|
+
}), { errors, response } = _d, rest = __rest(_d, ["errors", "response"]);
|
|
340
440
|
const endTime = performance.now();
|
|
341
441
|
const duration = endTime - startTime;
|
|
342
442
|
// Send the load time api log
|
|
@@ -358,10 +458,16 @@ const handleRequestWithFallback = async ({ basePathType: _basePathType, options,
|
|
|
358
458
|
(message.includes('signal is aborted') ||
|
|
359
459
|
message.includes('The operation was aborted') ||
|
|
360
460
|
message.includes('Fetch is aborted')));
|
|
361
|
-
const
|
|
362
|
-
const
|
|
363
|
-
//
|
|
364
|
-
|
|
461
|
+
const statusCode = response === null || response === void 0 ? void 0 : response.status;
|
|
462
|
+
const gateway = statusCode !== undefined && isGatewayStatus(statusCode);
|
|
463
|
+
// handleFetch sets method, and a missing method is a GET.
|
|
464
|
+
const isIdempotentGet = ((_a = options === null || options === void 0 ? void 0 : options.method) !== null && _a !== void 0 ? _a : 'GET').toUpperCase() === 'GET';
|
|
465
|
+
const failedWithoutGateway = !!unknownError || statusCode === 404 || statusCode === 500;
|
|
466
|
+
const isUnknownError = failedWithoutGateway || gateway;
|
|
467
|
+
// Replay 502, 503, and 504 only for GET. A gateway timeout on a POST can
|
|
468
|
+
// mean the first host is still finishing a payment or order write.
|
|
469
|
+
const shouldCallFallback = nextFallbackApiType &&
|
|
470
|
+
(failedWithoutGateway || (gateway && isIdempotentGet));
|
|
365
471
|
// Should log the error if it's unknown error
|
|
366
472
|
if (isUnknownError && !isAbortError) {
|
|
367
473
|
void sendErrorLog({
|
|
@@ -371,7 +477,7 @@ const handleRequestWithFallback = async ({ basePathType: _basePathType, options,
|
|
|
371
477
|
currentBasePath: basePathType,
|
|
372
478
|
nextFallbackApiType,
|
|
373
479
|
requestHeaders: options === null || options === void 0 ? void 0 : options.headers,
|
|
374
|
-
requestPayload: jsonParse((
|
|
480
|
+
requestPayload: jsonParse((_b = options === null || options === void 0 ? void 0 : options.body) === null || _b === void 0 ? void 0 : _b.toString()) || ((_c = options === null || options === void 0 ? void 0 : options.body) === null || _c === void 0 ? void 0 : _c.toString()),
|
|
375
481
|
shouldCallFallback,
|
|
376
482
|
status: response === null || response === void 0 ? void 0 : response.status,
|
|
377
483
|
statusText: response === null || response === void 0 ? void 0 : response.statusText,
|
|
@@ -415,4 +521,4 @@ const handleFetch = async (path, _opts) => {
|
|
|
415
521
|
});
|
|
416
522
|
};
|
|
417
523
|
|
|
418
|
-
export { getIsStagingMode as a,
|
|
524
|
+
export { getIsStagingMode as a, safeRemoveItem as b, safeGetItem as c, getAdditionalLogMetadata as d, safeSetItem as e, fallbackApiList as f, getIsTestMode as g, handleFetch as h, isCheckoutMobile as i, jsonParse as j, logError as l, sendErrorLog as s, thrownMessage as t };
|
package/dist/esm/index.js
CHANGED
|
@@ -1,14 +1,105 @@
|
|
|
1
1
|
export { c as curpRegex, i as isMexicoTaxIdType, a as isPeruTaxIdType, p as peruTaxIdTypeFromValue, s as stripTaxIdSeparators } from './taxIdRules-xYlx7ZXW.js';
|
|
2
2
|
import { c as createCustomEvent } from './createCustomEvent-XQfWgQLB.js';
|
|
3
3
|
import { g as getGenericSettingsOverride, I as IframeService } from './getGenericSettingsOverride-HeAZDwVW.js';
|
|
4
|
+
import { t as thrownMessage, s as sendErrorLog, g as getIsTestMode, a as getIsStagingMode, h as handleFetch, l as logError, b as safeRemoveItem, c as safeGetItem } from './handleFetch-BFVO7oAR.js';
|
|
4
5
|
import { l as log } from './VarianceTest-BJmZPrZl.js';
|
|
5
6
|
export { a as availableTestKeys } from './VarianceTest-BJmZPrZl.js';
|
|
6
|
-
import { g as getIsTestMode, a as getIsStagingMode, h as handleFetch, l as logError } from './handleFetch-D5GYDF-O.js';
|
|
7
7
|
import { g as getAbandonedCartRenewTokenValue, _ as _getIsValidCartId, c as checkoutHiddenBtnSelector, a as checkoutHiddenInternationalBtnSelector } from './CheckoutConfig-D5SpFsQJ.js';
|
|
8
8
|
export { d as domesticRedirectedBtnSelector } from './CheckoutConfig-D5SpFsQJ.js';
|
|
9
9
|
export { c as countryRequireShortAddressCode } from './ShortAddressCode-nJ6oI8-n.js';
|
|
10
10
|
export { a as checkoutTaxIdTypeValues, c as countryRequireTaxId, e as euCountryCodes, i as isCountryRequireTaxId, p as peruTaxIdDigitLength, b as peruTaxIdFormatError, s as shipToTaxIdLabels, t as taxIdTypeOptions } from './TaxId-DMIgN_sT.js';
|
|
11
11
|
|
|
12
|
+
const constructorNotFound = /^Constructor for .+ was not found/;
|
|
13
|
+
const constructorTag = /^Constructor for "?([^#"]+)#/;
|
|
14
|
+
const recordConstructorFailure = (value) => {
|
|
15
|
+
var _a;
|
|
16
|
+
const message = thrownMessage(value, '');
|
|
17
|
+
if (!message || !constructorNotFound.test(message)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (typeof window.Zonos === 'undefined') {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const capture = window.__zonosConstructorCapture;
|
|
24
|
+
if (!capture) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const tagMatch = constructorTag.exec(message);
|
|
28
|
+
const tag = (_a = tagMatch === null || tagMatch === void 0 ? void 0 : tagMatch[1]) !== null && _a !== void 0 ? _a : '';
|
|
29
|
+
if (capture.reported.has(tag)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
capture.reported.add(tag);
|
|
33
|
+
void sendErrorLog({
|
|
34
|
+
endpoint: 'stencil://constructor',
|
|
35
|
+
errors: [message],
|
|
36
|
+
metadata: {
|
|
37
|
+
shape: 'constructor-not-found',
|
|
38
|
+
tag,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Copy a missing-constructor failure onto the existing error log.
|
|
44
|
+
* Stencil catches `Constructor for "tag#mode" was not found` and passes that
|
|
45
|
+
* Error to `console.error`. One report is sent per tag, then the original
|
|
46
|
+
* console.error still runs. This does not request the chunk again.
|
|
47
|
+
*/
|
|
48
|
+
const installConstructorCapture = () => {
|
|
49
|
+
if (window.__zonosConstructorCapture) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const listener = (event) => {
|
|
53
|
+
recordConstructorFailure(event.reason);
|
|
54
|
+
};
|
|
55
|
+
window.__zonosConstructorCapture = {
|
|
56
|
+
listener,
|
|
57
|
+
reported: new Set(),
|
|
58
|
+
};
|
|
59
|
+
window.addEventListener('unhandledrejection', listener);
|
|
60
|
+
// eslint-disable-next-line no-console -- Stencil reports the missing constructor here
|
|
61
|
+
const originalError = console.error.bind(console);
|
|
62
|
+
// eslint-disable-next-line no-console -- record the Stencil diagnostic, then forward it
|
|
63
|
+
console.error = (...data) => {
|
|
64
|
+
recordConstructorFailure(data[0]);
|
|
65
|
+
originalError(...data);
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const reportInitRejection = (error) => {
|
|
70
|
+
// sendErrorLog prints only when zonosDebug is on. Keep the failure in the
|
|
71
|
+
// merchant console without leaving an unhandled rejection.
|
|
72
|
+
// eslint-disable-next-line no-console -- the page console is the support signal
|
|
73
|
+
console.error(error);
|
|
74
|
+
if (typeof window.Zonos === 'undefined') {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
void sendErrorLog({
|
|
78
|
+
endpoint: 'zonos://init',
|
|
79
|
+
errors: [thrownMessage(error, 'Unknown init rejection')],
|
|
80
|
+
metadata: {
|
|
81
|
+
shape: 'init-rejection',
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Run an init that the caller is not waiting on. The rejection is recorded
|
|
87
|
+
* and not rethrown, so startup does not become an unhandled rejection.
|
|
88
|
+
*/
|
|
89
|
+
const startZonosInit = (start) => {
|
|
90
|
+
let pending;
|
|
91
|
+
try {
|
|
92
|
+
pending = start();
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
reportInitRejection(error);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
void pending.catch((error) => {
|
|
99
|
+
reportInitRejection(error);
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
12
103
|
/**
|
|
13
104
|
* Get the load version and url based on the loadScriptSrc and version
|
|
14
105
|
* @returns
|
|
@@ -132,7 +223,7 @@ const getZonosQaUrl = () => {
|
|
|
132
223
|
return null;
|
|
133
224
|
}
|
|
134
225
|
const qaUrl = extractZonosQaUrl(window.location.href);
|
|
135
|
-
const cdnUrl = "https://v1.5.
|
|
226
|
+
const cdnUrl = "https://v1.5.2.js.zonos.com";
|
|
136
227
|
// when the qaUrl is not set and the built URL is from the test domain, use the test domain for testing
|
|
137
228
|
if (!qaUrl &&
|
|
138
229
|
(cdnUrl.includes('test.') ||
|
|
@@ -167,8 +258,8 @@ const getZonosQaUrl = () => {
|
|
|
167
258
|
void fetch(fullUrl)
|
|
168
259
|
.then(() => {
|
|
169
260
|
// cleanup checkout session to avoid using the prod session in preview domain
|
|
170
|
-
|
|
171
|
-
|
|
261
|
+
safeRemoveItem('session', 'zonos--checkout-session-id');
|
|
262
|
+
safeRemoveItem('session', 'zonos--client-secret');
|
|
172
263
|
})
|
|
173
264
|
.catch(() => {
|
|
174
265
|
alert(`[ZONOS-WARNING] '${fullUrl}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);
|
|
@@ -421,10 +512,10 @@ const zonosLoadUrl = (() => {
|
|
|
421
512
|
return null;
|
|
422
513
|
})();
|
|
423
514
|
const startLoadTime = Date.now();
|
|
424
|
-
const ZONOS_URL = "https://v1.5.
|
|
425
|
-
const JS_DELIVR_ZONOS_URL = zonosLoadUrl || "https://cdn.jsdelivr.net/npm/@zonos/elements@1.5.
|
|
426
|
-
const UNPKG_ZONOS_URL = "https://unpkg.com/@zonos/elements@1.5.
|
|
427
|
-
const CDNJS_ZONOS_URL = "https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.5.
|
|
515
|
+
const ZONOS_URL = "https://v1.5.2.js.zonos.com";
|
|
516
|
+
const JS_DELIVR_ZONOS_URL = zonosLoadUrl || "https://cdn.jsdelivr.net/npm/@zonos/elements@1.5.2";
|
|
517
|
+
const UNPKG_ZONOS_URL = "https://unpkg.com/@zonos/elements@1.5.2";
|
|
518
|
+
const CDNJS_ZONOS_URL = "https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.5.2";
|
|
428
519
|
const GOOGLE_FONT_URL = 'https://fonts.googleapis.com';
|
|
429
520
|
const GOOGLE_FONT_REGEX = /^https:\/\/fonts\.googleapis\.com/;
|
|
430
521
|
class Zonos {
|
|
@@ -442,7 +533,7 @@ Zonos.iframeLogType = typeof window !== 'undefined'
|
|
|
442
533
|
? new URLSearchParams(window.location.search).get('iframeLogType')
|
|
443
534
|
: null;
|
|
444
535
|
Zonos.isBigCommerce = false;
|
|
445
|
-
Zonos.releaseDate = "
|
|
536
|
+
Zonos.releaseDate = "1793899893283";
|
|
446
537
|
Zonos.isLegacyCheckout = false;
|
|
447
538
|
Zonos.googleAnalyticId = null;
|
|
448
539
|
Zonos.googleAnalyticReady = false;
|
|
@@ -467,7 +558,7 @@ Zonos.isNpm = true;
|
|
|
467
558
|
Zonos.zonosQaUrl = null;
|
|
468
559
|
Zonos.zonosQaUrlApi = null;
|
|
469
560
|
Zonos.trackEventLogs = [];
|
|
470
|
-
Zonos.version = `v${"1.5.
|
|
561
|
+
Zonos.version = `v${"1.5.2"}`;
|
|
471
562
|
Zonos.modeAlerted = false;
|
|
472
563
|
Zonos.cartData = null;
|
|
473
564
|
Zonos.paypal = null;
|
|
@@ -478,6 +569,7 @@ Zonos.zonosController = null;
|
|
|
478
569
|
Zonos.loadTimeApiInfoList = [];
|
|
479
570
|
Zonos.logIntervalId = null;
|
|
480
571
|
Zonos.init = async (params) => {
|
|
572
|
+
installConstructorCapture();
|
|
481
573
|
const { appearance, checkoutSettings, currencyConverter, helloSettings, onCountryChange, overrideCurrencyFormat, storeId, zonosApiKey, } = params;
|
|
482
574
|
_a.cartId = getCartIdFromQueryParam();
|
|
483
575
|
// Expose the checkout cart callbacks on the global so Stripe loading can be
|
|
@@ -513,7 +605,7 @@ Zonos.init = async (params) => {
|
|
|
513
605
|
window.Zonos.isLegacyCheckout = _a.isLegacyCheckout;
|
|
514
606
|
window.Zonos.zonosMode = _a.zonosMode;
|
|
515
607
|
// call init again after the script is loaded
|
|
516
|
-
|
|
608
|
+
startZonosInit(() => window.Zonos.init(params));
|
|
517
609
|
});
|
|
518
610
|
script.addEventListener('error', () => {
|
|
519
611
|
alert(`[ZONOS - loadZonos] Failed to load "loadZonos.js" from zonosQaUrl: ${zonosQaUrl}`);
|
|
@@ -549,7 +641,7 @@ Zonos.init = async (params) => {
|
|
|
549
641
|
}
|
|
550
642
|
}
|
|
551
643
|
// Check if the stripe client secret is available in the url or session storage, inject hidden button to trigger checkout right away to check status of client secret
|
|
552
|
-
const clientSecretUrlParam = new URL(window.location.href).searchParams.get('payment_intent_client_secret') ||
|
|
644
|
+
const clientSecretUrlParam = new URL(window.location.href).searchParams.get('payment_intent_client_secret') || safeGetItem('session', 'zonos--client-secret');
|
|
553
645
|
const shouldAttemptImmediatelyOpenCheckout = (_a.cartId && _a.cartData) || !!clientSecretUrlParam;
|
|
554
646
|
// inject hidden button to body to trigger checkout right away if we have cartData or stripe client secret
|
|
555
647
|
if (shouldAttemptImmediatelyOpenCheckout) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as createStore, z as zonosStore } from './zonosStore-BXP9FvIt.js';
|
|
2
|
-
import { d as cartStore, Z as cartStoreUpdateSelectedShippingOption, b as stripeStore, a1 as stripeStoreBuildAddressForPartyCreate } from './cart-
|
|
3
|
-
import { s as storageStore } from './localization-
|
|
4
|
-
import { h as handleFetch, s as sendErrorLog, l as logError } from './handleFetch-
|
|
2
|
+
import { d as cartStore, Z as cartStoreUpdateSelectedShippingOption, b as stripeStore, a1 as stripeStoreBuildAddressForPartyCreate } from './cart-BS5mSI8x.js';
|
|
3
|
+
import { s as storageStore } from './localization-CXHiWcJp.js';
|
|
4
|
+
import { h as handleFetch, s as sendErrorLog, l as logError } from './handleFetch-BFVO7oAR.js';
|
|
5
5
|
import { b as allLogs } from './VarianceTest-BJmZPrZl.js';
|
|
6
6
|
|
|
7
7
|
const { state: invoiceStore } = createStore(() => ({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as createStore, z as zonosStore } from './zonosStore-BXP9FvIt.js';
|
|
2
|
-
import { j as jsonParse, h as handleFetch, l as logError } from './handleFetch-
|
|
2
|
+
import { j as jsonParse, c as safeGetItem, b as safeRemoveItem, e as safeSetItem, h as handleFetch, l as logError } from './handleFetch-BFVO7oAR.js';
|
|
3
3
|
import { a as availableTestKeys, l as log } from './VarianceTest-BJmZPrZl.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -42,24 +42,24 @@ const filterValidTests = (testKeys) => {
|
|
|
42
42
|
*/
|
|
43
43
|
const VARIANT_TEST_KEY_EXPIRATION = 60 * 60 * 24 * 1000;
|
|
44
44
|
const { onChange: storageStoreOnChange, state: storageStore } = createStore({
|
|
45
|
-
checkoutSessionId:
|
|
46
|
-
enabledVariantTestKeys: jsonParse(
|
|
45
|
+
checkoutSessionId: safeGetItem('session', 'zonos--checkout-session-id'),
|
|
46
|
+
enabledVariantTestKeys: jsonParse(safeGetItem('local', 'zonos--enabled-variant-test-keys')),
|
|
47
47
|
});
|
|
48
48
|
storageStoreOnChange('enabledVariantTestKeys', () => {
|
|
49
49
|
var _a;
|
|
50
50
|
// This should be set in localStorage so we don't have multiple tests for the same user in short period of time
|
|
51
51
|
if (!((_a = storageStore.enabledVariantTestKeys) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
52
|
-
|
|
52
|
+
safeRemoveItem('local', 'zonos--enabled-variant-test-keys');
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
safeSetItem('local', 'zonos--enabled-variant-test-keys', JSON.stringify(storageStore.enabledVariantTestKeys));
|
|
56
56
|
});
|
|
57
57
|
storageStoreOnChange('checkoutSessionId', () => {
|
|
58
58
|
if (!storageStore.checkoutSessionId) {
|
|
59
|
-
|
|
59
|
+
safeRemoveItem('session', 'zonos--checkout-session-id');
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
safeSetItem('session', 'zonos--checkout-session-id', storageStore.checkoutSessionId);
|
|
63
63
|
});
|
|
64
64
|
const storageStoreSetEnabledVariantTestKeys = (testKeys) => {
|
|
65
65
|
storageStore.enabledVariantTestKeys = filterValidTests(testKeys);
|
|
@@ -18276,7 +18276,7 @@ const getExchangeRate = async ({ country, isGuaranteed, sourceCurrency, targetCu
|
|
|
18276
18276
|
const { rate, targetFormat } = json.exchangeRateCreate;
|
|
18277
18277
|
const maxAge = json.maxAge;
|
|
18278
18278
|
if (rate) {
|
|
18279
|
-
|
|
18279
|
+
safeSetItem('session', `${country}_rate`, JSON.stringify(rate));
|
|
18280
18280
|
const exchangeRate = { rate, targetFormat };
|
|
18281
18281
|
return { exchangeRate, maxAge };
|
|
18282
18282
|
}
|
|
@@ -18315,58 +18315,34 @@ const getLocaleMessages = async ({ countryCode, localeTo, storeId, }) => {
|
|
|
18315
18315
|
const isCountryCode = (value) => /^[A-Z]{2}$/.test(value);
|
|
18316
18316
|
|
|
18317
18317
|
const COUNTRY_OVERRIDE_KEY = 'zonos--country';
|
|
18318
|
-
const
|
|
18319
|
-
|
|
18320
|
-
|
|
18321
|
-
}
|
|
18322
|
-
catch (_a) {
|
|
18323
|
-
// localStorage/sessionStorage can throw in blocked-storage contexts
|
|
18324
|
-
// (Safari private mode, cross-origin iframes).
|
|
18325
|
-
}
|
|
18326
|
-
};
|
|
18327
|
-
const readStoredCountry = (storage) => {
|
|
18328
|
-
try {
|
|
18329
|
-
const value = storage.getItem(COUNTRY_OVERRIDE_KEY);
|
|
18330
|
-
if (!value || !isCountryCode(value)) {
|
|
18331
|
-
return null;
|
|
18332
|
-
}
|
|
18333
|
-
return value;
|
|
18334
|
-
}
|
|
18335
|
-
catch (_a) {
|
|
18318
|
+
const readStoredCountry = (area) => {
|
|
18319
|
+
const value = safeGetItem(area, COUNTRY_OVERRIDE_KEY);
|
|
18320
|
+
if (!value || !isCountryCode(value)) {
|
|
18336
18321
|
return null;
|
|
18337
18322
|
}
|
|
18323
|
+
return value;
|
|
18338
18324
|
};
|
|
18339
|
-
const
|
|
18340
|
-
storage.setItem(COUNTRY_OVERRIDE_KEY, countryCode);
|
|
18341
|
-
};
|
|
18342
|
-
const withEachStorage = (run) => {
|
|
18343
|
-
withBlockedStorage(() => run(window.localStorage));
|
|
18344
|
-
withBlockedStorage(() => run(window.sessionStorage));
|
|
18345
|
-
};
|
|
18346
|
-
const getCountryOverrideStorage = () => {
|
|
18347
|
-
var _a;
|
|
18348
|
-
return (_a = readStoredCountry(window.localStorage)) !== null && _a !== void 0 ? _a : readStoredCountry(window.sessionStorage);
|
|
18349
|
-
};
|
|
18325
|
+
const getCountryOverrideStorage = () => { var _a; return (_a = readStoredCountry('local')) !== null && _a !== void 0 ? _a : readStoredCountry('session'); };
|
|
18350
18326
|
const migrateCountryOverrideStorage = (selectedCountryCode) => {
|
|
18351
18327
|
if (!selectedCountryCode) {
|
|
18352
18328
|
return;
|
|
18353
18329
|
}
|
|
18354
|
-
|
|
18355
|
-
|
|
18356
|
-
|
|
18357
|
-
|
|
18358
|
-
|
|
18359
|
-
|
|
18360
|
-
|
|
18361
|
-
}
|
|
18362
|
-
});
|
|
18330
|
+
const localCountry = readStoredCountry('local');
|
|
18331
|
+
// Only mirror the country Hello actually kept. A failed localStorage
|
|
18332
|
+
// clear can leave a discarded country in local; never copy that to
|
|
18333
|
+
// session for older Elements. Never copy session → local.
|
|
18334
|
+
if (localCountry === selectedCountryCode) {
|
|
18335
|
+
safeSetItem('session', COUNTRY_OVERRIDE_KEY, localCountry);
|
|
18336
|
+
}
|
|
18363
18337
|
};
|
|
18364
18338
|
const setCountryOverrideStorage = (countryCode) => {
|
|
18365
18339
|
// Dual-write so older Elements that only read sessionStorage see the pick.
|
|
18366
|
-
|
|
18340
|
+
safeSetItem('local', COUNTRY_OVERRIDE_KEY, countryCode);
|
|
18341
|
+
safeSetItem('session', COUNTRY_OVERRIDE_KEY, countryCode);
|
|
18367
18342
|
};
|
|
18368
18343
|
const clearCountryOverrideStorage = () => {
|
|
18369
|
-
|
|
18344
|
+
safeRemoveItem('local', COUNTRY_OVERRIDE_KEY);
|
|
18345
|
+
safeRemoveItem('session', COUNTRY_OVERRIDE_KEY);
|
|
18370
18346
|
};
|
|
18371
18347
|
|
|
18372
18348
|
const getZCountryUrlParam = (urlParams) => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { z as zonosStore, c as createStore } from './zonosStore-BXP9FvIt.js';
|
|
2
|
-
import { x as cartStoreNextStep, j as cartStoreClearCheckoutInterval, t as trackConversionEvent, y as isPolicyConsentRequired, G as policyConsentStore, C as validateCheckoutSession, b as stripeStore, d as cartStore, n as stripeStoreHandleInventoryCheck, A as storeCreditStoreApplyCredit, T as stripeStoreRecordPolicyConsent, B as storeCreditStoreCoversFullAmount, D as storeCreditStoreCreateOrder, K as storeCreditStoreGetEffectiveAmount } from './cart-
|
|
3
|
-
import { s as storageStore, t as translate } from './localization-
|
|
4
|
-
import { h as handleFetch, g as getIsTestMode, l as logError, j as jsonParse } from './handleFetch-
|
|
2
|
+
import { x as cartStoreNextStep, j as cartStoreClearCheckoutInterval, t as trackConversionEvent, y as isPolicyConsentRequired, G as policyConsentStore, C as validateCheckoutSession, b as stripeStore, d as cartStore, n as stripeStoreHandleInventoryCheck, A as storeCreditStoreApplyCredit, T as stripeStoreRecordPolicyConsent, B as storeCreditStoreCoversFullAmount, D as storeCreditStoreCreateOrder, K as storeCreditStoreGetEffectiveAmount } from './cart-BS5mSI8x.js';
|
|
3
|
+
import { s as storageStore, t as translate } from './localization-CXHiWcJp.js';
|
|
4
|
+
import { h as handleFetch, g as getIsTestMode, l as logError, j as jsonParse } from './handleFetch-BFVO7oAR.js';
|
|
5
5
|
import { i as isContrastColor } from './isContrastColor-CWLU13s9.js';
|
|
6
6
|
import { l as log } from './VarianceTest-BJmZPrZl.js';
|
|
7
|
-
import { i as isAnalyticsRelayInIframe, a as enqueueRelayEvent, s as submitGtag } from './submitGtag-
|
|
7
|
+
import { i as isAnalyticsRelayInIframe, a as enqueueRelayEvent, s as submitGtag } from './submitGtag-C5xzFHjG.js';
|
|
8
8
|
|
|
9
9
|
/*!
|
|
10
10
|
* paypal-js v8.4.2 (2025-09-04T17:21:30.135Z)
|