@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 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/2.x.x)
45
- - [API reference](https://apiref.primer.io/docs)
46
- - [Changelogs](https://primerio.notion.site/Web-SDK-fa20ef5e42c3478fa00521192925a5c6)
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/payments/universal-checkout/drop-in/get-started/web) for accepting your first payment with Drop-in Checkout.
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/2.x.x/primer/showUniversalCheckout) for more information.
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/payments/universal-checkout/headless/get-started/web) for accepting your first payment with Headless Checkout.
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/2.x.x/primer-headless-checkout/configure) for more information.
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/2.x.x/primer-headless-checkout/createPaymentMethodManager).
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/checkout-web",
3
- "version": "2.59.9",
3
+ "version": "2.59.12",
4
4
  "description": "Primer.js for the web",
5
5
  "author": "Primer Developers <developers@primer.io>",
6
6
  "homepage": "",