@primer-io/checkout-web 2.59.9 โ 2.59.12
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/CHANGELOG.md +28 -0
- package/README.md +8 -16
- package/dist/Primer.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @primer-io/checkout-web
|
|
2
2
|
|
|
3
|
+
## 2.59.12
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 95101b4: fix: ADYEN_BANCONTACT_PAYCONIC loading scene to exit correctly
|
|
8
|
+
- Updated dependencies [13ac6b1]
|
|
9
|
+
- Updated dependencies [b6d1957]
|
|
10
|
+
- @primer-io/sdk-utils@0.2.0
|
|
11
|
+
|
|
12
|
+
## 2.59.11
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 67c6702: chore: update readme
|
|
17
|
+
|
|
18
|
+
## 2.59.10
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 00811c9: fix: add guard for navigator.sendBeacon to prevent TypeError in restricted environments
|
|
23
|
+
|
|
24
|
+
Added a check for `navigator.sendBeacon` availability before calling it. This prevents `TypeError: navigator.sendBeacon is not a function` errors in environments where the API is unavailable (SSR, restricted WebViews, privacy browsers, ad blockers).
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [65be22f]
|
|
27
|
+
- Updated dependencies [3b70ea9]
|
|
28
|
+
- Updated dependencies [bf9a149]
|
|
29
|
+
- @primer-io/sdk-utils@0.1.4
|
|
30
|
+
|
|
3
31
|
## 2.59.9
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -41,9 +41,9 @@ Primer Web SDK
|
|
|
41
41
|
# ๐ Documentation
|
|
42
42
|
|
|
43
43
|
- [Documentation](https://primer.io/docs)
|
|
44
|
-
- [SDK reference](https://primer.io/docs/sdk/web/
|
|
45
|
-
- [API reference](https://
|
|
46
|
-
- [Changelogs](https://
|
|
44
|
+
- [SDK reference](https://primer.io/docs/sdk/web/v2.x.x)
|
|
45
|
+
- [API reference](https://primer.io/docs/api-reference)
|
|
46
|
+
- [Changelogs](https://primer.io/docs/changelogs/web-sdk)
|
|
47
47
|
|
|
48
48
|
<br/>
|
|
49
49
|
|
|
@@ -67,14 +67,6 @@ Not yet integrated with Primer and interested in learning more? [Contact us](htt
|
|
|
67
67
|
|
|
68
68
|
<br/>
|
|
69
69
|
|
|
70
|
-
# ๐งช Testing
|
|
71
|
-
|
|
72
|
-
This project uses Vitest for unit testing and specifically excludes component tests with jsdom. Only TypeScript/JavaScript-based unit tests are supported in the main test environment.
|
|
73
|
-
|
|
74
|
-
If component testing is needed, please use the Playwright e2e tests in the `/playwright` directory.
|
|
75
|
-
|
|
76
|
-
<br/>
|
|
77
|
-
|
|
78
70
|
# ๐งฑ Installation
|
|
79
71
|
|
|
80
72
|
## With npm (recommended)
|
|
@@ -143,7 +135,7 @@ You can use **Headless Universal Checkout** with your own UI, giving you more fl
|
|
|
143
135
|
|
|
144
136
|
## ๐ Quick start
|
|
145
137
|
|
|
146
|
-
Take a look at our [Quick Start Guide](https://primer.io/docs/
|
|
138
|
+
Take a look at our [Quick Start Guide](https://primer.io/docs/checkout/drop-in) for accepting your first payment with Drop-in Checkout.
|
|
147
139
|
|
|
148
140
|
## ๐ฉโ๐ป Usage
|
|
149
141
|
|
|
@@ -179,13 +171,13 @@ const options = {
|
|
|
179
171
|
const checkout = await Primer.showUniversalCheckout(clientToken, options);
|
|
180
172
|
```
|
|
181
173
|
|
|
182
|
-
Note that more options can be passed to Drop-in Checkout. Please refer to the [SDK Reference](https://primer.io/docs/sdk/web/
|
|
174
|
+
Note that more options can be passed to Drop-in Checkout. Please refer to the [SDK Reference](https://primer.io/docs/sdk/web/v2.x.x/primer/methods/showUniversalCheckout) for more information.
|
|
183
175
|
|
|
184
176
|
# Headless Universal Checkout
|
|
185
177
|
|
|
186
178
|
## ๐ Quick start
|
|
187
179
|
|
|
188
|
-
Take a look at the [Quick Start Guide](https://primer.io/docs/
|
|
180
|
+
Take a look at the [Quick Start Guide](https://primer.io/docs/checkout/headless) for accepting your first payment with Headless Checkout.
|
|
189
181
|
|
|
190
182
|
## ๐ฉโ๐ป Usage
|
|
191
183
|
|
|
@@ -252,7 +244,7 @@ await headless.start();
|
|
|
252
244
|
console.log('Headless Universal Checkout is loaded!');
|
|
253
245
|
```
|
|
254
246
|
|
|
255
|
-
Note that more options can be passed to Headless Checkout. Please refer to the [SDK Reference](https://primer.io/docs/sdk/web/
|
|
247
|
+
Note that more options can be passed to Headless Checkout. Please refer to the [SDK Reference](https://primer.io/docs/sdk/web/v2.x.x/primer/methods/createHeadless) for more information.
|
|
256
248
|
|
|
257
249
|
### ๐ Create your UI
|
|
258
250
|
|
|
@@ -262,4 +254,4 @@ Primer enables you to create the UI that suits your needs, using the provided in
|
|
|
262
254
|
|
|
263
255
|
Handling payment methods is done by instantiating a payment method manager using `createPaymentMethodManager(paymentMethodType: string, options)`. The instance of the manager depends on `managerType`.
|
|
264
256
|
|
|
265
|
-
You can learn more about the supported payment method managers in our [SDK Reference](https://primer.io/docs/sdk/web/
|
|
257
|
+
You can learn more about the supported payment method managers in our [SDK Reference](https://primer.io/docs/sdk/web/v2.x.x/primer-headless-checkout/methods/createPaymentMethodManager).
|
package/dist/Primer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Primer=r():e.Primer=r()}(this,()=>(()=>{"use strict";let e;var r,t,A,o,E,n,_,i,a,s,c,N,T,R={};R.d=(e,r)=>{for(var t in r)R.o(r,t)&&!R.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},R.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),R.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var O={};R.r(O),R.d(O,{SuccessScreenType:()=>re,PaymentFlow:()=>e2,PrimerClientError:()=>e7,ThreeDSecureStatus:()=>e6,TokenType:()=>e4,isStripeOptionsDropInWithFullMandateText:()=>rr,PaymentInstrumentType:()=>e5,ErrorCode:()=>e8,EventTypes:()=>rt,CheckoutUXFlow:()=>e1,HeadlessManagerType:()=>rA,PaymentMethodType:()=>e3,Primer:()=>ro});let P=()=>I.randomUUID?.()||d(),d=()=>"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^D()>>e/4).toString(16)),D=()=>(I.getRandomValues?.(new Uint8Array(1))[0]??16*Math.random())&15,I="undefined"!=typeof crypto?crypto:{},u="2.4";class l extends Error{static from(e,r=!1){if(e instanceof l)return e;let t=new l(e instanceof Error?e.message:String(e),r);return e instanceof Error&&e.stack&&(t.stack=e.stack,Object.assign(t,e)),t}markAsReported(){this.isReported=!0}constructor(e,r=!1){var t,A;super(e),A=void 0,(t="isReported")in this?Object.defineProperty(this,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):this[t]=A,this.isReported=r,this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}let S="https://analytics.production.data.primer.io/sdk-logs";var C=((Y={}).REQUEST_START="REQUEST_START",Y.REQUEST_END="REQUEST_END",Y),L=((p={}).START="START",p.END="END",p);let m={createHeadless:"HEADLESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING",preloadPrimer:"PRELOAD_PRIMER_LOADING"};var Y,p,h,M,f=((h={}).NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",h.CRASH_EVENT="CRASH_EVENT",h.TIMER_EVENT="TIMER_EVENT",h.MESSAGE_EVENT="MESSAGE_EVENT",h.SCRIPT_UNAUTHORIZED_EVENT="SCRIPT_UNAUTHORIZED_EVENT",h.V1_EVENT="V1_EVENT",h.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",h),y=((M=y||{}).CHARGING="CHARGING",M.NOT_CHARGING="NOT_CHARGING",M);async function U(){if("undefined"==typeof navigator||"undefined"==typeof performance)return;let e=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:e?.level,batteryStatus:e?.charging?"CHARGING":"NOT_CHARGING"}}let k=({get(e,r){let t;try{switch(e){case"PRIMER_SDK_VERSION":t="v2.59.9";break;case"PRIMER_ASSETS_URL":t=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":t=process.env.PRIMER_BUILD_INTEGRATION_BUILDER}}catch{}return t||r}}).get("PRIMER_SDK_VERSION");async function w(e,r,t){return{...t,createdAt:Date.now(),device:await U(),eventType:e,properties:r,sdkVersion:k,sdkType:"WEB"}}let g=Symbol.for("__primerAnalytics__"),B={providers:new Map,timers:new Map,eventsQueue:new Map};if("undefined"!=typeof window){let e=window[g];e?B=e:window[g]=B}let v=()=>B.providers,H=()=>B.timers,F=()=>B.eventsQueue,G=new Map;function b(e,r=!1,t=1){G.has(e)&&(clearTimeout(G.get(e)),G.delete(e));let A=()=>{let A=F().get(e);if(A?.length){let o=!0,E=[],n=0,_=0;for(;_<A.length;){let r=A[_],t=new Blob([JSON.stringify(r)]).size;if(t>64e3){console.error("Event size exceeds maximum payload size and will be skipped:",r),_++;continue}if(n+t>64e3&&E.length>0){try{o=navigator.sendBeacon(e,JSON.stringify(E))}catch(e){o=!1,console.error("Unable to send events",e)}if(!o)break;E=[],n=0}E.push(r),n+=t,_++}if(E.length>0&&o)try{o=navigator.sendBeacon(e,JSON.stringify(E))}catch(e){o=!1,console.error("Unable to send events",e)}o?F().delete(e):t<5?setTimeout(()=>b(e,r,t+1),500*Math.pow(2,t)):console.error("Max retry attempts reached. Events will not be sent.")}};if(r)return void A();let o=setTimeout(A,500);G.set(e,o)}let K=!1;function V({url:e=S,...r}){"undefined"==typeof document||K||(document.addEventListener("visibilitychange",()=>{if("hidden"===document.visibilityState){let e=x(r.checkoutSessionId);e.messageEvent({messageType:"VISIBILITY_CHANGE",message:"Checkout visibility is hidden (tab or window change, redirect or being closed)."}),b(e.url,!0)}}),K=!0);let t=t=>async A=>{var o;let E;"undefined"!=typeof navigator&&(o=function e(r,t,A=new WeakSet,o=0,E=10){if(o>E||A.has(r))return r;A.add(r);let n=r=>"object"==typeof r&&null!==r?e(r,t,A,o+1,E):t(r);return Array.isArray(r)?r.map(n):Object.fromEntries(Object.entries(r).map(([e,r])=>[e,n(r)]))}(await w(t,A,r),e=>{var r;return"string"==typeof(r="function"==typeof e?e.name||"function":e)&&r.length>5120?`${r.slice(0,5120)}...`:r}),F().has(e)||F().set(e,[]),E=F().get(e),E?.push(o),b(e))},A={crashEvent:t(f.CRASH_EVENT),messageEvent:t(f.MESSAGE_EVENT),networkCallEvent:t(f.NETWORK_CALL_EVENT),scriptUnauthorizedEvent:t(f.SCRIPT_UNAUTHORIZED_EVENT),sdkFunctionEvent:t(f.SDK_FUNCTION_EVENT),timerStart:({id:e,...A})=>{let o=`${r.checkoutSessionId}|${e}`,E=performance?.now?performance.now():Date.now();return H().set(o,{start:E}),t(f.TIMER_EVENT)({...A,id:e,timerType:L.START})},timerEnd:({id:e,...A})=>{let o=`${r.checkoutSessionId}|${e}`,{start:E}=H().get(o)??{};H().delete(o);let n=performance?.now?performance.now():Date.now();return t(f.TIMER_EVENT)({...A,id:e,timerType:L.END,duration:E?n-E:void 0})},v1Event:t(f.V1_EVENT),url:e};return v().set(r.checkoutSessionId,A),x(r.checkoutSessionId)}function x(e){return new Proxy({},{get:(r,t)=>(v().get(e)??V({checkoutSessionId:e}))[t]})}let W=(e,r,t,A)=>({callType:t?C.REQUEST_END:C.REQUEST_START,id:e,errorBody:t?.error&&JSON.stringify(t.error,Object.getOwnPropertyNames(t.error)),method:r.method,responseCode:t?.status,url:r.url,duration:A});function $(e){return e?new Promise(r=>{setTimeout(r,e)}):Promise.resolve()}async function j(e,r,t,A=$){let o=0,E={enabled:r?.enabled??!1,maxRetries:8,initialBackoff:100,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:100};if(!E.enabled)return e();for(;;)try{let r=await e();if(o){let e=`Request succeeded after ${o} retries.`;"object"==typeof r&&r&&"status"in r&&(e+=` Status code: ${r.status}`),t?.({messageType:"RETRY_SUCCESS",message:e,severity:"INFO"})}return r}catch(a){let e=o>=E.maxRetries,r=a.isNetworkError&&!E.retryNetworkErrors,n=a.status&&a.status>=500&&!E.retry500Errors;if(e||r||n){let A=`Failed after ${o} retries. `;throw e?A+=`Reached maximum retries (${E.maxRetries}).`:r?A+="Network error encountered and retryNetworkErrors is disabled.":n&&(A+="HTTP 500 error encountered and retry500Errors is disabled."),A+=` Last error: ${a.message}`,t?.({messageType:"RETRY_FAILED",message:A,severity:"ERROR",errorBody:JSON.stringify(a,Object.getOwnPropertyNames(a))}),Error(A,{cause:a})}o++;let _=Math.min(E.initialBackoff*Math.pow(2,o-1)+Math.random()*E.maxJitter,Number.MAX_SAFE_INTEGER),i="Unknown error";a.isNetworkError?i="Network error":a.status&&(i=`HTTP ${a.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${o}/${E.maxRetries} due to: ${i}. Error details: ${a.message}. Waiting for ${_.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(a,Object.getOwnPropertyNames(a))}),await A(_)}}let X={cache:new Map};"undefined"!=typeof window&&((r=window)[t="__primerCache__"]??(r[t]=X),X=window.__primerCache__);let z=()=>X.cache;function Q(){if(z().size<=30)return;let e=Date.now();for(let[r,t]of z())t.exp<e&&z().delete(r);if(z().size>50)for(let[e]of z()){if(z().size<=50)break;z().delete(e)}}let Z=(e,r,t)=>J(e,"get",r,t),J=async(e,r,t,A,o)=>{let E=P(),n=performance?.now(),_=x(e),i={method:r,url:t,body:o};_.networkCallEvent(W(E,i));try{let a=await fetch(t,{body:o,method:r,headers:{"content-type":"application/json","x-request-id":E,...A}});if(!a.ok){let e=Error(`HTTP error! status: ${a.status}`);throw e.status=a.status,e}let s=await a.json();if(t.includes("client-sdk/configuration")){let{primerAccountId:r,clientSession:{clientSessionId:t,customer:A}}=s;_=V({checkoutSessionId:e,clientSessionId:t,customerId:A?.customerId,primerAccountId:r,url:_.url})}let c=performance?.now();return _.networkCallEvent(W(E,i,{data:s},c-n)),{data:s,headers:a.headers,status:a.status,source:"NETWORK"}}catch(r){let e=performance?.now();throw Object.assign(r,{isNetworkError:r instanceof TypeError}),_.networkCallEvent(W(E,i,{error:r},e-n)),r}},q=(e,r)=>new Promise((t,A)=>{let o=setTimeout(()=>{let e=Error("Request timed out");e.isNetworkError=!0,A(e)},r);e.then(t).catch(A).finally(()=>clearTimeout(o))}),ee=(e,r)=>{let{headers:t,retryConfig:A,cacheConfig:o,timeout:E=15e3,checkoutSessionId:n}=r,_=x(n);return(function(e){if(!e)return e=>e();let{key:r,refresh:t=!1,usePrimerSessionCacheTtlHeader:A=!1,ttl:o=36e5}=e;return async e=>{let E=Date.now(),n=z().get(r);if(!t&&n&&n.exp>E)return n.promise;n&&z().delete(r);let _=e().then(e=>{let t=o;return A&&(t=1e3*(Number(e.headers.get("x-primer-session-cache-ttl"))||0)),function({key:e,ttl:r=36e5},t){r?z().set(e,{promise:Promise.resolve({...t,source:"CACHE"}),exp:Date.now()+r}):z().delete(e)}({key:r,ttl:t},e),Q(),e},e=>{throw z().delete(r),e});return z().set(r,{promise:_,exp:E+o}),Q(),_}})(o)(()=>j(()=>q(Z(n,e,t),E),A,r=>_.messageEvent({...r,url:e})))},er="function"==typeof Buffer,et="function"==typeof TextDecoder?new TextDecoder:void 0,eA="function"==typeof TextEncoder?new TextEncoder:void 0,eo=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),eE=(e=>{let r={};return e.forEach((e,t)=>r[e]=t),r})(eo),en=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,e_=String.fromCharCode.bind(String),ei="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),ea=e=>e.replace(/=/g,"").replace(/[+\/]/g,e=>"+"==e?"-":"_"),es=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),ec="function"==typeof btoa?e=>btoa(e):er?e=>Buffer.from(e,"binary").toString("base64"):e=>{let r,t,A,o,E="",n=e.length%3;for(let n=0;n<e.length;){if((t=e.charCodeAt(n++))>255||(A=e.charCodeAt(n++))>255||(o=e.charCodeAt(n++))>255)throw TypeError("invalid character found");E+=eo[(r=t<<16|A<<8|o)>>18&63]+eo[r>>12&63]+eo[r>>6&63]+eo[63&r]}return n?E.slice(0,n-3)+"===".substring(n):E},eN=er?e=>Buffer.from(e).toString("base64"):e=>{let r=[];for(let t=0,A=e.length;t<A;t+=4096)r.push(e_.apply(null,e.subarray(t,t+4096)));return ec(r.join(""))},eT=(e,r=!1)=>r?ea(eN(e)):eN(e),eR=e=>{if(e.length<2){var r=e.charCodeAt(0);return r<128?e:r<2048?e_(192|r>>>6)+e_(128|63&r):e_(224|r>>>12&15)+e_(128|r>>>6&63)+e_(128|63&r)}var r=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return e_(240|r>>>18&7)+e_(128|r>>>12&63)+e_(128|r>>>6&63)+e_(128|63&r)},eO=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,eP=e=>e.replace(eO,eR),ed=er?e=>Buffer.from(e,"utf8").toString("base64"):eA?e=>eN(eA.encode(e)):e=>ec(eP(e)),eD=(e,r=!1)=>r?ea(ed(e)):ed(e),eI=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,eu=e=>{switch(e.length){case 4:var r=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return e_((r>>>10)+55296)+e_((1023&r)+56320);case 3:return e_((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return e_((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},el=e=>e.replace(eI,eu),eS="function"==typeof atob?e=>atob(es(e)):er?e=>Buffer.from(e,"base64").toString("binary"):e=>{if(e=e.replace(/\s+/g,""),!en.test(e))throw TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let r,t="",A,o;for(let E=0;E<e.length;)r=eE[e.charAt(E++)]<<18|eE[e.charAt(E++)]<<12|(A=eE[e.charAt(E++)])<<6|(o=eE[e.charAt(E++)]),t+=64===A?e_(r>>16&255):64===o?e_(r>>16&255,r>>8&255):e_(r>>16&255,r>>8&255,255&r);return t},eC=er?e=>ei(Buffer.from(e,"base64")):e=>ei(eS(e).split("").map(e=>e.charCodeAt(0))),eL=e=>eC(eY(e)),em=er?e=>Buffer.from(e,"base64").toString("utf8"):et?e=>et.decode(eC(e)):e=>el(eS(e)),eY=e=>es(e.replace(/[-_]/g,e=>"-"==e?"+":"/")),ep=e=>em(eY(e)),eh=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),eM={encode:eD,decode:ep},ef={encode:function(e,r={}){let{urlSafe:t=!1}=r;return eM.encode(e,t)},decode:eM.decode},ey="The provided `clientToken`",eU=`${ey} has expired`,ek=`${ey} is malformed`,ew=(e,r,t)=>({"primer-client-token":e,"primer-sdk-client":"WEB","primer-sdk-version":"v2.59.9","primer-sdk-checkout-session-id":r,...t&&{"x-api-version":t}});async function eg(e,r,t){let{accessToken:A,configurationUrl:o,analyticsUrlV2:E}=function(e){let r=function(e){try{let[r,t]=e.split(".");return JSON.parse(ef.decode(t||r))}catch{throw Error(ek)}}(e),t=1e3*r.exp;if(Date.now()>t)throw Error(`${eU}. Expiration date: ${new Date(t).toISOString()}`);return r}(e),n=V({checkoutSessionId:r,url:E}),_=u;n.timerStart({id:"CONFIGURATION_LOADING"});try{let{data:e,source:E}=await ee(`${o}/?withDisplayMetadata=true`,{checkoutSessionId:r,headers:ew(A,r,_),retryConfig:{enabled:!0},cacheConfig:t});return n.timerEnd({id:"CONFIGURATION_LOADING",context:{source:E}}),e}catch(r){let e=r instanceof Error?r.message:"Unknown error occurred";throw Error(`Failed to initialize client: ${e}`)}}function eB(e){return e instanceof Error?{errorBody:e.message,stacktrace:e.stack}:"object"==typeof e&&null!==e&&"message"in e?{errorBody:String(e.message),stacktrace:"stack"in e?String(e.stack):void 0}:{errorBody:String(e||"Unknown error")}}function ev({checkoutSessionId:e,analytics:r,error:t,reporter:A}){r?.crashEvent?r.crashEvent({...eB(t),reporter:A}):e&&eH(e,t,A)}async function eH(e,r,t){let A=await w(f.CRASH_EVENT,{...eB(r),reporter:t},{checkoutSessionId:e});try{await fetch(S,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)})}catch(e){console.error("Failed to post crash event",e)}}let eF=Symbol.for("initGlobalErrorMonitoringLoaded"),eG=(e,r)=>{"undefined"!=typeof window&&window[eF]||(window[eF]=!0,window.addEventListener("error",t=>{!eb(t)&&eK(t)&&ev({checkoutSessionId:e,analytics:r,error:t.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",t=>{let A=t.reason||Error("Unhandled promise rejection");eV(A)&&ev({checkoutSessionId:e,analytics:r,error:A,reporter:"unhandledrejection"})}))},eb=e=>"Script error."===e.message||!e.filename||0===e.lineno,eK=e=>{let r=e.filename;return!!(r&&ex(r))&&!!new l(e.error).isReported},eV=e=>{if(e&&"object"==typeof e&&"stack"in e&&"string"==typeof e.stack){let r=l.from(e);return!r.isReported&&(!!("fileName"in e&&"string"==typeof e.fileName&&ex(e.fileName))||eW(r.stack).some(ex))}return!1},ex=e=>{try{return new URL(e,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},eW=e=>{if(!e)return[];let r=e.split("\n"),t=[],A=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(let e of r){let r=e.match(A);if(r&&r[1])t.push(r[1]);else{let r=/@(.*?):\d+:\d+$/,A=e.match(r);A&&A[1]&&t.push(A[1])}}return t},e$=["https://sdk.primer.io/web/","https://sdk.dev.primer.io/web/","https://sdk.sandbox.primer.io/web/","https://sdk.production.primer.io/web/","https://assets.primer.io/","https://x.klarnacdn.net/kp/lib/v","https://www.paypal.com/sdk/js","https://www.paypalobjects.com/","https://js.stripe.com/","https://pay.google.com/gp/p/js/"];function ej(e,r,t){return document.querySelector(`${e}[${r}^="${t}"]`)}async function eX(e,r,t,A,o,E){let{analytics:n,name:_=r,retryConfig:i}=E;await j(()=>new Promise((E,i)=>{var a;let s,c=ej(e,t,r)||(a={...A,[t]:r},s=document.createElement(e),Object.entries(a).forEach(([e,r])=>s.setAttribute(e,r)),s);c.onload=()=>{n?.sdkFunctionEvent({name:_,params:[`${e.charAt(0).toUpperCase()+e.slice(1)} loaded successfully: ${r}`]}),E()},c.onerror=()=>{c.remove(),i(Error(`${o}: ${r}`))},c.parentNode||document.head.appendChild(c)}),i,e=>n?.messageEvent({...e,url:r}))}async function ez(r){return e||(e=Promise.all([function(e,r={}){if(!e$.some(r=>e.startsWith(r))){let t=`Script source not authorized per PCI DSS 6.4.3: ${e}`;return r.analytics?.scriptUnauthorizedEvent({scriptSource:e,errorMessage:t,severity:"ERROR"}),console.error(`[Primer SDK Security] ${t}`),Promise.reject(Error(t))}return ej("script","src",e)&&window.__Primer?(r.analytics?.sdkFunctionEvent({name:r.name??e,params:["Script already loaded"]}),Promise.resolve()):eX("script",e,"src",{...r.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",r)}("https://sdk.primer.io/web/v2.59.9/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),function(e,r={}){return Array.from(document.styleSheets).some(r=>r.href===e)?(r.analytics?.sdkFunctionEvent({name:r.name??e,params:["Stylesheet already loaded"]}),Promise.resolve()):eX("link",e,"href",{...r.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",r)}("https://sdk.primer.io/web/v2.59.9/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{let e=window.__Primer;return delete window.__Primer,e}).catch(r=>{throw e=void 0,r}))}let eQ=async()=>{let e=P();try{let r=x(e);try{eG(e,r),r.sdkFunctionEvent({name:"preloadPrimer"}),r.timerStart({id:m.preloadPrimer}),await ez(r),r.timerEnd({id:m.preloadPrimer})}catch(A){let t=l.from(A);throw t.isReported||(ev({checkoutSessionId:e,analytics:r,error:t,reporter:"preloadPrimer level 1"}),t.markAsReported()),t}}catch(t){let r=l.from(t);throw r.isReported||(eH(e,r,"preloadPrimer level 0"),r.markAsReported()),r}},eZ=e0("createHeadless"),eJ=e0("showUniversalCheckout"),eq=e0("showVaultManager");function e0(e){return async(...[r,t,...A])=>{u=t?.apiVersion??"2.4";let o=P();try{let E=x(o);try{eG(o,E),E.sdkFunctionEvent({name:e,params:[r,t,...A]}),E.timerStart({id:m[e]});let[n,_]=await Promise.all([eg(r,o,t?.clientSessionCachingEnabled?{key:r,usePrimerSessionCacheTtlHeader:!0}:void 0),ez(E)]);return _[e](n,o,r,t,...A)}catch(r){let e=l.from(r);throw e.isReported||(ev({checkoutSessionId:o,analytics:E,error:e,reporter:"lazyLoad level 1"}),e.markAsReported()),e}}catch(r){let e=l.from(r);throw e.isReported||(eH(o,e,"lazyLoad level 0"),e.markAsReported()),e}}}(A={}).LOADING="Loading",A.NO_PAYMENT_METHOD="NoPaymentMethod",A.THREE_DS="UniversalCheckout/3ds",A.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",A.MANAGE_PAYMENT_METHODS="VaultManager/Home",A.DIRECT_DEBIT_FORM="DirectDebit/Form",A.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",A.CREDIT_CARD_FORM="CreditCard/Form",A.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",A.SUCCESS_CHECK="UniversalCheckout/Success/Check",(o={}).ROOT="primer-checkout",o.ROOT_CONTENT="primer-checkout-content",o.SUBMIT_BUTTON="primer-checkout-submit-button",o.THREE_DS_MODAL="primer-checkout-3ds-modal",o.VAULT="primer-checkout-vault",o.VAULT_INLINE="primer-checkout-vault-inline",o.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",o.DIVIDER="primer-checkout-payment-method-divider",o.APM_BUTTONS="primer-checkout-apm-button-container",o.CARDHOLDER_NAME="primer-checkout-cardholder-name",o.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",o.ACTIONS="primer-checkout-actions",o.ACTIONS_MENU="primer-checkout-actions-menu",o.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",o.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",o.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",o.CARD_FORM="primer-checkout-card-form",o.DD_SWITCH="primer-checkout-switch-dd-inputs",o.DD_IBAN_FIELD="primer-checkout-dd-iban-field",o.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",o.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",o.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",o.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",o.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",o.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",o.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",o.DD_IBAN_INPUT="primer-checkout-dd-iban-input",o.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",o.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",o.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",o.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",o.ERROR_MESSAGE="primer-checkout-error-message",(E={}).TOKEN="PrimerCheckout__token",E.HIDDEN="PrimerCheckout--hidden",E.FOCUSED="PrimerCheckout--focused",E.SELECTED="PrimerCheckout--selected",E.LOADING="PrimerCheckout--loading",E.ERROR="PrimerCheckout--error",E.CARD_TYPE="PrimerCheckout__cardType",E.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",E.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",E.APM_BUTTON="PrimerCheckout__apmButton",E.EDIT_BUTTON="PrimerCheckout__editButton",E.MENU="PrimerCheckout__dropDownMenu",E.MENU_ITEM="PrimerCheckout__dropDownMenuItem",E.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",E.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",E.ENTER="PrimerCheckout--enter",E.ENTERING="PrimerCheckout--entering",E.ENTERED="PrimerCheckout--entered",E.EXIT="PrimerCheckout--exit",E.EXITING="PrimerCheckout--exiting",E.EXITED="PrimerCheckout--exited";var e1=((n={}).CHECKOUT="CHECKOUT",n.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",n.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",n),e2=((_={}).DEFAULT="DEFAULT",_.PREFER_VAULT="PREFER_VAULT",_);(i={}).TOKENIZE_STARTED="tokenize-started",i.TOKENIZE_ERROR="tokenize-error",i.TOKENIZE_SUCCESS="tokenize-success",i.TOKENIZE_DID_NOT_START="tokenize-did-not-start";var e6=((a={}).SUCCESS="AUTH_SUCCESS",a.FAILED="AUTH_FAILED",a.SKIPPED="SKIPPED",a.CHALLENGE="CHALLENGE",a);let e5={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",AUTOMATED_CLEARING_HOUSE:"AUTOMATED_CLEARING_HOUSE",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_ACH:"STRIPE_ACH",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL_ORDER",PAYPAL_VAULTED:"PAYPAL_BILLING_AGREEMENT",GO_CARDLESS:"GOCARDLESS",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",PAY_NL_RIVERTY:"PAY_NL_RIVERTY",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME",KLARNA_CUSTOMER_TOKEN:"KLARNA_CUSTOMER_TOKEN",DLOCAL_PIX:"DLOCAL_PIX",ALMA:"ALMA",ADYEN_CASHAPP:"ADYEN_CASHAPP",ADYEN_AFFIRM:"ADYEN_AFFIRM"},e3={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",STRIPE_ACH:"STRIPE_ACH",STRIPE_IDEAL:"STRIPE_IDEAL",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",PAYMENT_CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL",GO_CARDLESS:"GOCARDLESS",KLARNA:"KLARNA",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",PAY_NL_RIVERTY:"PAY_NL_RIVERTY",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_BANK_TRANSFER:"ADYEN_BANK_TRANSFER",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME",DLOCAL_PIX:"DLOCAL_PIX",ALMA:"ALMA",ADYEN_CASHAPP:"ADYEN_CASHAPP",ADYEN_AFFIRM:"ADYEN_AFFIRM"},e4={SINGLE_USE:"SINGLE_USE",MULTI_USE:"MULTI_USE"};e5.PAYPAL_VAULTED,e3.PAYPAL,e5.KLARNA_CUSTOMER_TOKEN,e3.KLARNA,e5.AUTOMATED_CLEARING_HOUSE,e3.STRIPE_ACH,e5.CARD,e3.PAYMENT_CARD;var e8=((s={}).INITIALIZATION_ERROR="INITIALIZATION_ERROR",s.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",s.PRIMER_TEARDOWN="PRIMER_TEARDOWN",s.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",s.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",s.TOKENIZATION_ERROR="TOKENIZATION_ERROR",s.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",s.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",s.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",s.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",s.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",s.RESUME_ERROR="RESUME_ERROR",s.VALIDATION_ERROR="VALIDATION_ERROR",s.PAYMENT_FAILED="PAYMENT_FAILED",s.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",s.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",s.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",s.INVALID_ARGUMENT="INVALID_ARGUMENT",s.VAULT_FETCH="VAULT_FETCH",s.VAULT_DELETE="VAULT_DELETE",s.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",s.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",s.MISSING_FIRST_NAME_OR_LAST_NAME="MISSING_FIRST_NAME_OR_LAST_NAME",s.MISSING_EMAIL_ADDRESS="MISSING_EMAIL_ADDRESS",s.INVALID_FLOW="INVALID_FLOW",s);function e9(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class e7 extends l{static fromErrorCode(e,r){return new e7(e,r)}static fromExistingError(e,r,t){if(e instanceof e7)return e;let A=e?.message?`${e.message}, `:"";return new e7(r,{...t,message:`${A}${t.message}`})}constructor(e,r){super(r.message),e9(this,"code",void 0),e9(this,"diagnosticsId",void 0),e9(this,"data",void 0),e9(this,"isFromDeveloper",void 0),this.code=e,this.diagnosticsId=r.diagnosticsId??null,this.data=r.data,this.isFromDeveloper=r.isFromDeveloper??!1,this.name="PrimerClientError",Error.captureStackTrace&&Error.captureStackTrace(this,e7)}}var re=((c={}).PAYMENT_METHOD="PAYMENT_METHOD",c.CHECK="CHECK",c);let rr=e=>{let r=e?.mandateData;return!!r&&"fullMandateText"in r};var rt=((N={}).CHANGE="change",N.ERROR="error",N.FOCUS="focus",N.BLUR="blur",N.CLICK="click",N.CLOSE="close",N.CONFIRMED_KLARNA_CATEGORY="CONFIRMED_KLARNA_CATEGORY",N.CONFIRMED_KLARNA_CATEGORY_ERROR="CONFIRMED_KLARNA_CATEGORY_ERROR",N.KLARNA_SESSION_UPDATE="KLARNA_SESSION_UPDATE",N.KLARNA_SESSION_REFRESH_ERROR="KLARNA_SESSION_REFRESH_ERROR",N),rA=((T={}).CARD="CARD",T.NATIVE="NATIVE",T.REDIRECT="REDIRECT",T.KLARNA="KLARNA",T.ACH="ACH",T);let ro={SDK_VERSION:"v2.59.9",createHeadless:eZ,showUniversalCheckout:eJ,showVaultManager:eq,preloadPrimer:eQ};return O})());
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Primer=r():e.Primer=r()}(this,()=>(()=>{"use strict";let e;var r,t,A,o,E,n,_,i,a,s,c,N,T,R={};R.d=(e,r)=>{for(var t in r)R.o(r,t)&&!R.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},R.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),R.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var O={};R.r(O),R.d(O,{SuccessScreenType:()=>rr,PaymentFlow:()=>e6,PrimerClientError:()=>re,ThreeDSecureStatus:()=>e5,TokenType:()=>e8,isStripeOptionsDropInWithFullMandateText:()=>rt,PaymentInstrumentType:()=>e3,ErrorCode:()=>e9,EventTypes:()=>rA,CheckoutUXFlow:()=>e2,HeadlessManagerType:()=>ro,PaymentMethodType:()=>e4,Primer:()=>rE});let P=()=>I.randomUUID?.()||d(),d=()=>"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^D()>>e/4).toString(16)),D=()=>(I.getRandomValues?.(new Uint8Array(1))[0]??16*Math.random())&15,I="undefined"!=typeof crypto?crypto:{},u="2.4";class l extends Error{static from(e,r=!1){if(e instanceof l)return e;let t=new l(e instanceof Error?e.message:String(e),r);return e instanceof Error&&e.stack&&(t.stack=e.stack,Object.assign(t,e)),t}markAsReported(){this.isReported=!0}constructor(e,r=!1){var t,A;super(e),A=void 0,(t="isReported")in this?Object.defineProperty(this,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):this[t]=A,this.isReported=r,this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}let S="https://analytics.production.data.primer.io/sdk-logs";var C=((Y={}).REQUEST_START="REQUEST_START",Y.REQUEST_END="REQUEST_END",Y),L=((p={}).START="START",p.END="END",p);let m={createHeadless:"HEADLESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING",preloadPrimer:"PRELOAD_PRIMER_LOADING"};var Y,p,h,M,f=((h={}).NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",h.CRASH_EVENT="CRASH_EVENT",h.TIMER_EVENT="TIMER_EVENT",h.MESSAGE_EVENT="MESSAGE_EVENT",h.SCRIPT_UNAUTHORIZED_EVENT="SCRIPT_UNAUTHORIZED_EVENT",h.V1_EVENT="V1_EVENT",h.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",h),y=((M=y||{}).CHARGING="CHARGING",M.NOT_CHARGING="NOT_CHARGING",M);async function U(){if("undefined"==typeof navigator||"undefined"==typeof performance)return;let e=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:e?.level,batteryStatus:e?.charging?"CHARGING":"NOT_CHARGING"}}let k=({get(e,r){let t;try{switch(e){case"PRIMER_SDK_VERSION":t="v2.59.12";break;case"PRIMER_ASSETS_URL":t=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":t=process.env.PRIMER_BUILD_INTEGRATION_BUILDER}}catch{}return t||r}}).get("PRIMER_SDK_VERSION");async function w(e,r,t){return{...t,createdAt:Date.now(),device:await U(),eventType:e,properties:r,sdkVersion:k,sdkType:"WEB"}}let g=Symbol.for("__primerAnalytics__"),B={providers:new Map,timers:new Map,eventsQueue:new Map};if("undefined"!=typeof window){let e=window[g];e?B=e:window[g]=B}let v=()=>B.providers,H=()=>B.timers,F=()=>B.eventsQueue;function G(){return"undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon}let b=new Map;function K(e,r=!1,t=1){b.has(e)&&(clearTimeout(b.get(e)),b.delete(e));let A=()=>{let A=F().get(e);if(A?.length){let o=!0,E=[],n=0,_=0;for(;_<A.length;){let r=A[_],t=new Blob([JSON.stringify(r)]).size;if(t>64e3){console.error("Event size exceeds maximum payload size and will be skipped:",r),_++;continue}if(n+t>64e3&&E.length>0){if(G())try{o=navigator.sendBeacon(e,JSON.stringify(E))}catch(e){o=!1,console.warn("Unable to send events",e)}else o=!1;if(!o)break;E=[],n=0}E.push(r),n+=t,_++}if(E.length>0&&o)if(G())try{o=navigator.sendBeacon(e,JSON.stringify(E))}catch(e){o=!1,console.warn("Unable to send events",e)}else o=!1;o?F().delete(e):t<5?setTimeout(()=>K(e,r,t+1),500*Math.pow(2,t)):console.error("Max retry attempts reached. Events will not be sent.")}};if(r)return void A();let o=setTimeout(A,500);b.set(e,o)}let V=!1;function x({url:e=S,...r}){"undefined"==typeof document||V||(document.addEventListener("visibilitychange",()=>{if("hidden"===document.visibilityState){let e=W(r.checkoutSessionId);e.messageEvent({messageType:"VISIBILITY_CHANGE",message:"Checkout visibility is hidden (tab or window change, redirect or being closed)."}),K(e.url,!0)}}),V=!0);let t=t=>async A=>{var o;let E;"undefined"!=typeof navigator&&(o=function e(r,t,A=new WeakSet,o=0,E=10){if(o>E||A.has(r))return r;A.add(r);let n=r=>"object"==typeof r&&null!==r?e(r,t,A,o+1,E):t(r);return Array.isArray(r)?r.map(n):Object.fromEntries(Object.entries(r).map(([e,r])=>[e,n(r)]))}(await w(t,A,r),e=>{var r;return"string"==typeof(r="function"==typeof e?e.name||"function":e)&&r.length>5120?`${r.slice(0,5120)}...`:r}),F().has(e)||F().set(e,[]),E=F().get(e),E?.push(o),K(e))},A={crashEvent:t(f.CRASH_EVENT),messageEvent:t(f.MESSAGE_EVENT),networkCallEvent:t(f.NETWORK_CALL_EVENT),scriptUnauthorizedEvent:t(f.SCRIPT_UNAUTHORIZED_EVENT),sdkFunctionEvent:t(f.SDK_FUNCTION_EVENT),timerStart:({id:e,...A})=>{let o=`${r.checkoutSessionId}|${e}`,E=performance?.now?performance.now():Date.now();return H().set(o,{start:E}),t(f.TIMER_EVENT)({...A,id:e,timerType:L.START})},timerEnd:({id:e,...A})=>{let o=`${r.checkoutSessionId}|${e}`,{start:E}=H().get(o)??{};H().delete(o);let n=performance?.now?performance.now():Date.now();return t(f.TIMER_EVENT)({...A,id:e,timerType:L.END,duration:E?n-E:void 0})},v1Event:t(f.V1_EVENT),url:e};return v().set(r.checkoutSessionId,A),W(r.checkoutSessionId)}function W(e){return new Proxy({},{get:(r,t)=>(v().get(e)??x({checkoutSessionId:e}))[t]})}let $=(e,r,t,A)=>({callType:t?C.REQUEST_END:C.REQUEST_START,id:e,errorBody:t?.error&&JSON.stringify(t.error,Object.getOwnPropertyNames(t.error)),method:r.method,responseCode:t?.status,url:r.url,duration:A});function j(e){return e?new Promise(r=>{setTimeout(r,e)}):Promise.resolve()}async function X(e,r,t,A=j){let o=0,E={enabled:r?.enabled??!1,maxRetries:8,initialBackoff:100,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:100};if(!E.enabled)return e();for(;;)try{let r=await e();if(o){let e=`Request succeeded after ${o} retries.`;"object"==typeof r&&r&&"status"in r&&(e+=` Status code: ${r.status}`),t?.({messageType:"RETRY_SUCCESS",message:e,severity:"INFO"})}return r}catch(a){let e=o>=E.maxRetries,r=a.isNetworkError&&!E.retryNetworkErrors,n=a.status&&a.status>=500&&!E.retry500Errors;if(e||r||n){let A=`Failed after ${o} retries. `;throw e?A+=`Reached maximum retries (${E.maxRetries}).`:r?A+="Network error encountered and retryNetworkErrors is disabled.":n&&(A+="HTTP 500 error encountered and retry500Errors is disabled."),A+=` Last error: ${a.message}`,t?.({messageType:"RETRY_FAILED",message:A,severity:"ERROR",errorBody:JSON.stringify(a,Object.getOwnPropertyNames(a))}),Error(A,{cause:a})}o++;let _=Math.min(E.initialBackoff*Math.pow(2,o-1)+Math.random()*E.maxJitter,Number.MAX_SAFE_INTEGER),i="Unknown error";a.isNetworkError?i="Network error":a.status&&(i=`HTTP ${a.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${o}/${E.maxRetries} due to: ${i}. Error details: ${a.message}. Waiting for ${_.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(a,Object.getOwnPropertyNames(a))}),await A(_)}}let z={cache:new Map};"undefined"!=typeof window&&((r=window)[t="__primerCache__"]??(r[t]=z),z=window.__primerCache__);let Q=()=>z.cache;function Z(){if(Q().size<=30)return;let e=Date.now();for(let[r,t]of Q())t.exp<e&&Q().delete(r);if(Q().size>50)for(let[e]of Q()){if(Q().size<=50)break;Q().delete(e)}}let J=(e,r,t)=>q(e,"get",r,t),q=async(e,r,t,A,o)=>{let E=P(),n=performance?.now(),_=W(e),i={method:r,url:t,body:o};_.networkCallEvent($(E,i));try{let a=await fetch(t,{body:o,method:r,headers:{"content-type":"application/json","x-request-id":E,...A}});if(!a.ok){let e=Error(`HTTP error! status: ${a.status}`);throw e.status=a.status,e}let s=await a.json();if(t.includes("client-sdk/configuration")){let{primerAccountId:r,clientSession:{clientSessionId:t,customer:A}}=s;_=x({checkoutSessionId:e,clientSessionId:t,customerId:A?.customerId,primerAccountId:r,url:_.url})}let c=performance?.now();return _.networkCallEvent($(E,i,{data:s},c-n)),{data:s,headers:a.headers,status:a.status,source:"NETWORK"}}catch(r){let e=performance?.now();throw Object.assign(r,{isNetworkError:r instanceof TypeError}),_.networkCallEvent($(E,i,{error:r},e-n)),r}},ee=(e,r)=>new Promise((t,A)=>{let o=setTimeout(()=>{let e=Error("Request timed out");e.isNetworkError=!0,A(e)},r);e.then(t).catch(A).finally(()=>clearTimeout(o))}),er=(e,r)=>{let{headers:t,retryConfig:A,cacheConfig:o,timeout:E=15e3,checkoutSessionId:n}=r,_=W(n);return(function(e){if(!e)return e=>e();let{key:r,refresh:t=!1,usePrimerSessionCacheTtlHeader:A=!1,ttl:o=36e5}=e;return async e=>{let E=Date.now(),n=Q().get(r);if(!t&&n&&n.exp>E)return n.promise;n&&Q().delete(r);let _=e().then(e=>{let t=o;return A&&(t=1e3*(Number(e.headers.get("x-primer-session-cache-ttl"))||0)),function({key:e,ttl:r=36e5},t){r?Q().set(e,{promise:Promise.resolve({...t,source:"CACHE"}),exp:Date.now()+r}):Q().delete(e)}({key:r,ttl:t},e),Z(),e},e=>{throw Q().delete(r),e});return Q().set(r,{promise:_,exp:E+o}),Z(),_}})(o)(()=>X(()=>ee(J(n,e,t),E),A,r=>_.messageEvent({...r,url:e})))},et="function"==typeof Buffer,eA="function"==typeof TextDecoder?new TextDecoder:void 0,eo="function"==typeof TextEncoder?new TextEncoder:void 0,eE=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),en=(e=>{let r={};return e.forEach((e,t)=>r[e]=t),r})(eE),e_=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,ei=String.fromCharCode.bind(String),ea="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),es=e=>e.replace(/=/g,"").replace(/[+\/]/g,e=>"+"==e?"-":"_"),ec=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),eN="function"==typeof btoa?e=>btoa(e):et?e=>Buffer.from(e,"binary").toString("base64"):e=>{let r,t,A,o,E="",n=e.length%3;for(let n=0;n<e.length;){if((t=e.charCodeAt(n++))>255||(A=e.charCodeAt(n++))>255||(o=e.charCodeAt(n++))>255)throw TypeError("invalid character found");E+=eE[(r=t<<16|A<<8|o)>>18&63]+eE[r>>12&63]+eE[r>>6&63]+eE[63&r]}return n?E.slice(0,n-3)+"===".substring(n):E},eT=et?e=>Buffer.from(e).toString("base64"):e=>{let r=[];for(let t=0,A=e.length;t<A;t+=4096)r.push(ei.apply(null,e.subarray(t,t+4096)));return eN(r.join(""))},eR=(e,r=!1)=>r?es(eT(e)):eT(e),eO=e=>{if(e.length<2){var r=e.charCodeAt(0);return r<128?e:r<2048?ei(192|r>>>6)+ei(128|63&r):ei(224|r>>>12&15)+ei(128|r>>>6&63)+ei(128|63&r)}var r=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return ei(240|r>>>18&7)+ei(128|r>>>12&63)+ei(128|r>>>6&63)+ei(128|63&r)},eP=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,ed=e=>e.replace(eP,eO),eD=et?e=>Buffer.from(e,"utf8").toString("base64"):eo?e=>eT(eo.encode(e)):e=>eN(ed(e)),eI=(e,r=!1)=>r?es(eD(e)):eD(e),eu=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,el=e=>{switch(e.length){case 4:var r=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return ei((r>>>10)+55296)+ei((1023&r)+56320);case 3:return ei((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return ei((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},eS=e=>e.replace(eu,el),eC="function"==typeof atob?e=>atob(ec(e)):et?e=>Buffer.from(e,"base64").toString("binary"):e=>{if(e=e.replace(/\s+/g,""),!e_.test(e))throw TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let r,t="",A,o;for(let E=0;E<e.length;)r=en[e.charAt(E++)]<<18|en[e.charAt(E++)]<<12|(A=en[e.charAt(E++)])<<6|(o=en[e.charAt(E++)]),t+=64===A?ei(r>>16&255):64===o?ei(r>>16&255,r>>8&255):ei(r>>16&255,r>>8&255,255&r);return t},eL=et?e=>ea(Buffer.from(e,"base64")):e=>ea(eC(e).split("").map(e=>e.charCodeAt(0))),em=e=>eL(ep(e)),eY=et?e=>Buffer.from(e,"base64").toString("utf8"):eA?e=>eA.decode(eL(e)):e=>eS(eC(e)),ep=e=>ec(e.replace(/[-_]/g,e=>"-"==e?"+":"/")),eh=e=>eY(ep(e)),eM=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),ef={encode:eI,decode:eh},ey={encode:function(e,r={}){let{urlSafe:t=!1}=r;return ef.encode(e,t)},decode:ef.decode},eU="The provided `clientToken`",ek=`${eU} has expired`,ew=`${eU} is malformed`,eg=(e,r,t)=>({"primer-client-token":e,"primer-sdk-client":"WEB","primer-sdk-version":"v2.59.12","primer-sdk-checkout-session-id":r,...t&&{"x-api-version":t}});async function eB(e,r,t){let{accessToken:A,configurationUrl:o,analyticsUrlV2:E}=function(e){let r=function(e){try{let[r,t]=e.split(".");return JSON.parse(ey.decode(t||r))}catch{throw Error(ew)}}(e),t=1e3*r.exp;if(Date.now()>t)throw Error(`${ek}. Expiration date: ${new Date(t).toISOString()}`);return r}(e),n=x({checkoutSessionId:r,url:E}),_=u;n.timerStart({id:"CONFIGURATION_LOADING"});try{let{data:e,source:E}=await er(`${o}/?withDisplayMetadata=true`,{checkoutSessionId:r,headers:eg(A,r,_),retryConfig:{enabled:!0},cacheConfig:t});return n.timerEnd({id:"CONFIGURATION_LOADING",context:{source:E}}),e}catch(r){let e=r instanceof Error?r.message:"Unknown error occurred";throw Error(`Failed to initialize client: ${e}`)}}function ev(e){return e instanceof Error?{errorBody:e.message,stacktrace:e.stack}:"object"==typeof e&&null!==e&&"message"in e?{errorBody:String(e.message),stacktrace:"stack"in e?String(e.stack):void 0}:{errorBody:String(e||"Unknown error")}}function eH({checkoutSessionId:e,analytics:r,error:t,reporter:A}){r?.crashEvent?r.crashEvent({...ev(t),reporter:A}):e&&eF(e,t,A)}async function eF(e,r,t){let A=await w(f.CRASH_EVENT,{...ev(r),reporter:t},{checkoutSessionId:e});try{await fetch(S,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)})}catch(e){console.error("Failed to post crash event",e)}}let eG=Symbol.for("initGlobalErrorMonitoringLoaded"),eb=(e,r)=>{"undefined"!=typeof window&&window[eG]||(window[eG]=!0,window.addEventListener("error",t=>{!eK(t)&&eV(t)&&eH({checkoutSessionId:e,analytics:r,error:t.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",t=>{let A=t.reason||Error("Unhandled promise rejection");ex(A)&&eH({checkoutSessionId:e,analytics:r,error:A,reporter:"unhandledrejection"})}))},eK=e=>"Script error."===e.message||!e.filename||0===e.lineno,eV=e=>{let r=e.filename;return!!(r&&eW(r))&&!!new l(e.error).isReported},ex=e=>{if(e&&"object"==typeof e&&"stack"in e&&"string"==typeof e.stack){let r=l.from(e);return!r.isReported&&(!!("fileName"in e&&"string"==typeof e.fileName&&eW(e.fileName))||e$(r.stack).some(eW))}return!1},eW=e=>{try{return new URL(e,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},e$=e=>{if(!e)return[];let r=e.split("\n"),t=[],A=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(let e of r){let r=e.match(A);if(r&&r[1])t.push(r[1]);else{let r=/@(.*?):\d+:\d+$/,A=e.match(r);A&&A[1]&&t.push(A[1])}}return t},ej=["https://sdk.primer.io/web/","https://sdk.dev.primer.io/web/","https://sdk.sandbox.primer.io/web/","https://sdk.production.primer.io/web/","https://assets.primer.io/","https://x.klarnacdn.net/kp/lib/v","https://www.paypal.com/sdk/js","https://www.paypalobjects.com/","https://js.stripe.com/","https://pay.google.com/gp/p/js/"];function eX(e,r,t){return document.querySelector(`${e}[${r}^="${t}"]`)}async function ez(e,r,t,A,o,E){let{analytics:n,name:_=r,retryConfig:i}=E;await X(()=>new Promise((E,i)=>{var a;let s,c=eX(e,t,r)||(a={...A,[t]:r},s=document.createElement(e),Object.entries(a).forEach(([e,r])=>s.setAttribute(e,r)),s);c.onload=()=>{n?.sdkFunctionEvent({name:_,params:[`${e.charAt(0).toUpperCase()+e.slice(1)} loaded successfully: ${r}`]}),E()},c.onerror=()=>{c.remove(),i(Error(`${o}: ${r}`))},c.parentNode||document.head.appendChild(c)}),i,e=>n?.messageEvent({...e,url:r}))}async function eQ(r){return e||(e=Promise.all([function(e,r={}){if(!ej.some(r=>e.startsWith(r))){let t=`Script source not authorized per PCI DSS 6.4.3: ${e}`;return r.analytics?.scriptUnauthorizedEvent({scriptSource:e,errorMessage:t,severity:"ERROR"}),console.error(`[Primer SDK Security] ${t}`),Promise.reject(Error(t))}return eX("script","src",e)&&window.__Primer?(r.analytics?.sdkFunctionEvent({name:r.name??e,params:["Script already loaded"]}),Promise.resolve()):ez("script",e,"src",{...r.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",r)}("https://sdk.primer.io/web/v2.59.12/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),function(e,r={}){return Array.from(document.styleSheets).some(r=>r.href===e)?(r.analytics?.sdkFunctionEvent({name:r.name??e,params:["Stylesheet already loaded"]}),Promise.resolve()):ez("link",e,"href",{...r.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",r)}("https://sdk.primer.io/web/v2.59.12/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{let e=window.__Primer;return delete window.__Primer,e}).catch(r=>{throw e=void 0,r}))}let eZ=async()=>{let e=P();try{let r=W(e);try{eb(e,r),r.sdkFunctionEvent({name:"preloadPrimer"}),r.timerStart({id:m.preloadPrimer}),await eQ(r),r.timerEnd({id:m.preloadPrimer})}catch(A){let t=l.from(A);throw t.isReported||(eH({checkoutSessionId:e,analytics:r,error:t,reporter:"preloadPrimer level 1"}),t.markAsReported()),t}}catch(t){let r=l.from(t);throw r.isReported||(eF(e,r,"preloadPrimer level 0"),r.markAsReported()),r}},eJ=e1("createHeadless"),eq=e1("showUniversalCheckout"),e0=e1("showVaultManager");function e1(e){return async(...[r,t,...A])=>{u=t?.apiVersion??"2.4";let o=P();try{let E=W(o);try{eb(o,E),E.sdkFunctionEvent({name:e,params:[r,t,...A]}),E.timerStart({id:m[e]});let[n,_]=await Promise.all([eB(r,o,t?.clientSessionCachingEnabled?{key:r,usePrimerSessionCacheTtlHeader:!0}:void 0),eQ(E)]);return _[e](n,o,r,t,...A)}catch(r){let e=l.from(r);throw e.isReported||(eH({checkoutSessionId:o,analytics:E,error:e,reporter:"lazyLoad level 1"}),e.markAsReported()),e}}catch(r){let e=l.from(r);throw e.isReported||(eF(o,e,"lazyLoad level 0"),e.markAsReported()),e}}}(A={}).LOADING="Loading",A.NO_PAYMENT_METHOD="NoPaymentMethod",A.THREE_DS="UniversalCheckout/3ds",A.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",A.MANAGE_PAYMENT_METHODS="VaultManager/Home",A.DIRECT_DEBIT_FORM="DirectDebit/Form",A.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",A.CREDIT_CARD_FORM="CreditCard/Form",A.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",A.SUCCESS_CHECK="UniversalCheckout/Success/Check",(o={}).ROOT="primer-checkout",o.ROOT_CONTENT="primer-checkout-content",o.SUBMIT_BUTTON="primer-checkout-submit-button",o.THREE_DS_MODAL="primer-checkout-3ds-modal",o.VAULT="primer-checkout-vault",o.VAULT_INLINE="primer-checkout-vault-inline",o.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",o.DIVIDER="primer-checkout-payment-method-divider",o.APM_BUTTONS="primer-checkout-apm-button-container",o.CARDHOLDER_NAME="primer-checkout-cardholder-name",o.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",o.ACTIONS="primer-checkout-actions",o.ACTIONS_MENU="primer-checkout-actions-menu",o.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",o.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",o.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",o.CARD_FORM="primer-checkout-card-form",o.DD_SWITCH="primer-checkout-switch-dd-inputs",o.DD_IBAN_FIELD="primer-checkout-dd-iban-field",o.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",o.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",o.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",o.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",o.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",o.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",o.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",o.DD_IBAN_INPUT="primer-checkout-dd-iban-input",o.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",o.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",o.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",o.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",o.ERROR_MESSAGE="primer-checkout-error-message",(E={}).TOKEN="PrimerCheckout__token",E.HIDDEN="PrimerCheckout--hidden",E.FOCUSED="PrimerCheckout--focused",E.SELECTED="PrimerCheckout--selected",E.LOADING="PrimerCheckout--loading",E.ERROR="PrimerCheckout--error",E.CARD_TYPE="PrimerCheckout__cardType",E.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",E.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",E.APM_BUTTON="PrimerCheckout__apmButton",E.EDIT_BUTTON="PrimerCheckout__editButton",E.MENU="PrimerCheckout__dropDownMenu",E.MENU_ITEM="PrimerCheckout__dropDownMenuItem",E.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",E.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",E.ENTER="PrimerCheckout--enter",E.ENTERING="PrimerCheckout--entering",E.ENTERED="PrimerCheckout--entered",E.EXIT="PrimerCheckout--exit",E.EXITING="PrimerCheckout--exiting",E.EXITED="PrimerCheckout--exited";var e2=((n={}).CHECKOUT="CHECKOUT",n.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",n.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",n),e6=((_={}).DEFAULT="DEFAULT",_.PREFER_VAULT="PREFER_VAULT",_);(i={}).TOKENIZE_STARTED="tokenize-started",i.TOKENIZE_ERROR="tokenize-error",i.TOKENIZE_SUCCESS="tokenize-success",i.TOKENIZE_DID_NOT_START="tokenize-did-not-start";var e5=((a={}).SUCCESS="AUTH_SUCCESS",a.FAILED="AUTH_FAILED",a.SKIPPED="SKIPPED",a.CHALLENGE="CHALLENGE",a);let e3={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",AUTOMATED_CLEARING_HOUSE:"AUTOMATED_CLEARING_HOUSE",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_ACH:"STRIPE_ACH",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL_ORDER",PAYPAL_VAULTED:"PAYPAL_BILLING_AGREEMENT",GO_CARDLESS:"GOCARDLESS",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",PAY_NL_RIVERTY:"PAY_NL_RIVERTY",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME",KLARNA_CUSTOMER_TOKEN:"KLARNA_CUSTOMER_TOKEN",DLOCAL_PIX:"DLOCAL_PIX",ALMA:"ALMA",ADYEN_CASHAPP:"ADYEN_CASHAPP",ADYEN_AFFIRM:"ADYEN_AFFIRM"},e4={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",STRIPE_ACH:"STRIPE_ACH",STRIPE_IDEAL:"STRIPE_IDEAL",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",PAYMENT_CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL",GO_CARDLESS:"GOCARDLESS",KLARNA:"KLARNA",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",PAY_NL_RIVERTY:"PAY_NL_RIVERTY",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_BANK_TRANSFER:"ADYEN_BANK_TRANSFER",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME",DLOCAL_PIX:"DLOCAL_PIX",ALMA:"ALMA",ADYEN_CASHAPP:"ADYEN_CASHAPP",ADYEN_AFFIRM:"ADYEN_AFFIRM"},e8={SINGLE_USE:"SINGLE_USE",MULTI_USE:"MULTI_USE"};e3.PAYPAL_VAULTED,e4.PAYPAL,e3.KLARNA_CUSTOMER_TOKEN,e4.KLARNA,e3.AUTOMATED_CLEARING_HOUSE,e4.STRIPE_ACH,e3.CARD,e4.PAYMENT_CARD;var e9=((s={}).INITIALIZATION_ERROR="INITIALIZATION_ERROR",s.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",s.PRIMER_TEARDOWN="PRIMER_TEARDOWN",s.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",s.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",s.TOKENIZATION_ERROR="TOKENIZATION_ERROR",s.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",s.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",s.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",s.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",s.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",s.RESUME_ERROR="RESUME_ERROR",s.VALIDATION_ERROR="VALIDATION_ERROR",s.PAYMENT_FAILED="PAYMENT_FAILED",s.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",s.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",s.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",s.INVALID_ARGUMENT="INVALID_ARGUMENT",s.VAULT_FETCH="VAULT_FETCH",s.VAULT_DELETE="VAULT_DELETE",s.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",s.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",s.MISSING_FIRST_NAME_OR_LAST_NAME="MISSING_FIRST_NAME_OR_LAST_NAME",s.MISSING_EMAIL_ADDRESS="MISSING_EMAIL_ADDRESS",s.INVALID_FLOW="INVALID_FLOW",s);function e7(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class re extends l{static fromErrorCode(e,r){return new re(e,r)}static fromExistingError(e,r,t){if(e instanceof re)return e;let A=e?.message?`${e.message}, `:"";return new re(r,{...t,message:`${A}${t.message}`})}constructor(e,r){super(r.message),e7(this,"code",void 0),e7(this,"diagnosticsId",void 0),e7(this,"data",void 0),e7(this,"isFromDeveloper",void 0),this.code=e,this.diagnosticsId=r.diagnosticsId??null,this.data=r.data,this.isFromDeveloper=r.isFromDeveloper??!1,this.name="PrimerClientError",Error.captureStackTrace&&Error.captureStackTrace(this,re)}}var rr=((c={}).PAYMENT_METHOD="PAYMENT_METHOD",c.CHECK="CHECK",c);let rt=e=>{let r=e?.mandateData;return!!r&&"fullMandateText"in r};var rA=((N={}).CHANGE="change",N.ERROR="error",N.FOCUS="focus",N.BLUR="blur",N.CLICK="click",N.CLOSE="close",N.CONFIRMED_KLARNA_CATEGORY="CONFIRMED_KLARNA_CATEGORY",N.CONFIRMED_KLARNA_CATEGORY_ERROR="CONFIRMED_KLARNA_CATEGORY_ERROR",N.KLARNA_SESSION_UPDATE="KLARNA_SESSION_UPDATE",N.KLARNA_SESSION_REFRESH_ERROR="KLARNA_SESSION_REFRESH_ERROR",N),ro=((T={}).CARD="CARD",T.NATIVE="NATIVE",T.REDIRECT="REDIRECT",T.KLARNA="KLARNA",T.ACH="ACH",T);let rE={SDK_VERSION:"v2.59.12",createHeadless:eJ,showUniversalCheckout:eq,showVaultManager:e0,preloadPrimer:eZ};return O})());
|
|
2
2
|
//# sourceMappingURL=Primer.js.map
|