@primer-io/checkout-web 2.46.4 → 2.46.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Primer.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(h,R){typeof exports=="object"&&typeof module=="object"?module.exports=R():typeof define=="function"&&define.amd?define([],R):typeof exports=="object"?exports.Primer=R():h.Primer=R()})(this,()=>(()=>{var Q={476:()=>{},962:()=>{},473:()=>{}},h={};function R(a){var T=h[a];if(T!==void 0)return T.exports;var d=h[a]={exports:{}};return Q[a](d,d.exports,R),d.exports}R.d=(a,T)=>{for(var d in T)R.o(T,d)&&!R.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:T[d]})},R.o=(a,T)=>Object.prototype.hasOwnProperty.call(a,T),R.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var B={};return(()=>{"use strict";R.r(B),R.d(B,{CheckoutUXFlow:()=>Fr,ErrorCode:()=>$r,EventTypes:()=>Xr,HeadlessManagerType:()=>zr,PaymentFlow:()=>Gr,PaymentInstrumentType:()=>Kr,PaymentMethodData:()=>ot.PaymentMethodData,PaymentMethodType:()=>X,Primer:()=>it,SuccessScreenType:()=>jr,ThreeDSecureStatus:()=>mr,TokenType:()=>Vr,isStripeOptionsDropInWithFullMandateText:()=>At,preloadPrimer:()=>qe});class a extends Error{constructor(e,t=!1){super(e),this.isReported=t,this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}static from(e,t=!1){if(e instanceof a)return e;const o=e instanceof Error?e.message:String(e),_=new a(o,t);return e instanceof Error&&e.stack&&(_.stack=e.stack,Object.assign(_,e)),_}markAsReported(){this.isReported=!0}}const T="https://analytics.production.data.primer.io/sdk-logs",d=T==="https://analytics.sandbox.data.primer.io/playwright";var nt=R(476),st=R(962),v=(r=>(r.REQUEST_START="REQUEST_START",r.REQUEST_END="REQUEST_END",r))(v||{}),p=(r=>(r.START="START",r.END="END",r))(p||{});const Qr={createHeadless:"HEADLESS_LOADING",showExpressCheckout:"EXPRESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING"};var f=(r=>(r.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",r.CRASH_EVENT="CRASH_EVENT",r.TIMER_EVENT="TIMER_EVENT",r.MESSAGE_EVENT="MESSAGE_EVENT",r.V1_EVENT="V1_EVENT",r.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",r))(f||{});const Zr={get(r,e){let t;try{switch(r){case"PRIMER_SDK_VERSION":t="v2.46.4";break;case"PRIMER_ASSETS_URL":t=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_CORE_API_URL":t=process.env.PRIMER_CORE_API_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":t=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;default:break}}catch{}return t||e}};var qr=(r=>(r.CHARGING="CHARGING",r.NOT_CHARGING="NOT_CHARGING",r))(qr||{});async function Jr(){if(typeof navigator>"u"||typeof performance>"u")return;const r=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:r?.level,batteryStatus:r?.charging?"CHARGING":"NOT_CHARGING"}}const yr="WEB",re=Zr.get("PRIMER_SDK_VERSION");async function Z(r,e,t){return{...t,createdAt:Date.now(),device:await Jr(),eventType:r,properties:e,sdkVersion:re,sdkType:yr}}const q=Symbol.for("__primerAnalytics__");let P={providers:new Map,timers:new Map,eventsQueue:new Map};if(typeof window<"u"){const r=window[q];r?P=r:window[q]=P}const J=()=>P.providers,b=()=>P.timers,C=()=>P.eventsQueue,y=500,M=new Map,rr=64e3,ee=5;function x(r,e=!1,t=1){if(M.has(r)){const A=M.get(r);clearTimeout(A),M.delete(r)}const o=()=>{const A=C().get(r);if(A?.length){let i=!0,E=[],s=0,n=0;for(;n<A.length;){const c=A[n],L=JSON.stringify(c),O=new Blob([L]).size;if(O>rr){console.error("Event size exceeds maximum payload size and will be skipped:",c),n++;continue}if(s+O>rr&&E.length>0){try{i=navigator.sendBeacon(r,JSON.stringify(E))}catch(D){i=!1,console.error("Unable to send events",D)}if(!i)break;E=[],s=0}E.push(c),s+=O,n++}if(E.length>0&&i)try{i=navigator.sendBeacon(r,JSON.stringify(E))}catch(c){i=!1,console.error("Unable to send events",c)}if(i)C().delete(r);else if(t<ee){const c=y*Math.pow(2,t);setTimeout(()=>x(r,e,t+1),c)}else console.error("Max retry attempts reached. Events will not be sent.")}};if(e){o();return}const _=setTimeout(o,y);M.set(r,_)}function te(r,e){C().has(r)||C().set(r,[]),C().get(r)?.push(e),x(r)}const er=1024*5;function tr(r,e,t=new WeakSet,o=0,_=10){if(o>_||t.has(r))return r;t.add(r);const A=i=>typeof i=="object"&&i!==null?tr(i,e,t,o+1,_):e(i);return Array.isArray(r)?r.map(A):Object.fromEntries(Object.entries(r).map(([i,E])=>[i,A(E)]))}function oe(r){return typeof r=="string"&&r.length>er?`${r.slice(0,er)}...`:r}function Ae(r){return typeof r=="function"?r.name||"function":r}let or=!1;function H({url:r=T,...e}){typeof document<"u"&&!or&&(document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&x(r,!0)}),or=!0);const t=_=>async A=>{if(typeof navigator>"u")return;const i=await Z(_,A,e),E=n=>oe(Ae(n));if(d)return;const s=tr(i,E);te(r,s)},o={crashEvent:t(f.CRASH_EVENT),messageEvent:t(f.MESSAGE_EVENT),networkCallEvent:t(f.NETWORK_CALL_EVENT),sdkFunctionEvent:t(f.SDK_FUNCTION_EVENT),timerStart:({id:_,...A})=>{const i=`${e.checkoutSessionId}|${_}`,E=performance?.now?performance.now():Date.now();return b().set(i,{start:E}),t(f.TIMER_EVENT)({...A,id:_,timerType:p.START})},timerEnd:({id:_,...A})=>{const i=`${e.checkoutSessionId}|${_}`,{start:E=void 0}=b().get(i)??{};b().delete(i);const s=performance?.now?performance.now():Date.now(),n=E?s-E:void 0;return t(f.TIMER_EVENT)({...A,id:_,timerType:p.END,duration:n})},v1Event:t(f.V1_EVENT),url:r};return J().set(e.checkoutSessionId,o),U(e.checkoutSessionId)}function U(r){return new Proxy({},{get(e,t){return(J().get(r)??H({checkoutSessionId:r}))[t]}})}const F=(r,e,t,o)=>({callType:t?v.REQUEST_END:v.REQUEST_START,id:r,errorBody:t?.error&&JSON.stringify(t.error,Object.getOwnPropertyNames(t.error)),method:e.method,responseCode:t?.status,url:e.url,duration:o});function ie(r){return r?new Promise(e=>{setTimeout(e,r)}):Promise.resolve()}const Ee=8,_e=100,ne=100;function se(r){return{enabled:r?.enabled??!1,maxRetries:Ee,initialBackoff:_e,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:ne}}function ce(r,e,t){const o=r*Math.pow(2,e-1),_=Math.random()*t;return Math.min(o+_,Number.MAX_SAFE_INTEGER)}async function Ar(r,e,t,o=ie){let _=0;const A=se(e);if(!A.enabled)return r();for(;;)try{const i=await r();if(_){let E=`Request succeeded after ${_} retries.`;typeof i=="object"&&i&&"status"in i&&(E+=` Status code: ${i.status}`),t?.({messageType:"RETRY_SUCCESS",message:E,severity:"INFO"})}return i}catch(i){const E=i,s=_>=A.maxRetries,n=E.isNetworkError&&!A.retryNetworkErrors,c=E.status&&E.status>=500&&!A.retry500Errors;if(s||n||c){let D=`Failed after ${_} retries. `;throw s?D+=`Reached maximum retries (${A.maxRetries}).`:n?D+="Network error encountered and retryNetworkErrors is disabled.":c&&(D+="HTTP 500 error encountered and retry500Errors is disabled."),D+=` Last error: ${E.message}`,t?.({messageType:"RETRY_FAILED",message:D,severity:"ERROR",errorBody:JSON.stringify(i,Object.getOwnPropertyNames(i))}),new Error(D,{cause:i})}_++;const L=ce(A.initialBackoff,_,A.maxJitter);let O="Unknown error";E.isNetworkError?O="Network error":E.status&&(O=`HTTP ${E.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${_}/${A.maxRetries} due to: ${O}. Error details: ${E.message}. Waiting for ${L.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(i,Object.getOwnPropertyNames(i))}),await o(L)}}let G={cache:new Map};typeof window<"u"&&(window.__primerCache__??(window.__primerCache__=G),G=window.__primerCache__);const u=()=>G.cache,ir=1e3*60*60,ae=30,Er=50;function _r(){if(u().size<=ae)return;const r=Date.now();for(const[e,t]of u())t.exp<r&&u().delete(e);if(u().size>Er)for(const[e]of u()){if(u().size<=Er)break;u().delete(e)}}function Ne({key:r,ttl:e=ir},t){e?u().set(r,{promise:Promise.resolve({...t,source:"CACHE"}),exp:Date.now()+e}):u().delete(r)}function Re(r){if(!r)return A=>A();const{key:e,refresh:t=!1,usePrimerSessionCacheTtlHeader:o=!1,ttl:_=ir}=r;return async A=>{const i=Date.now(),E=u().get(e);if(!t&&E&&E.exp>i)return E.promise;E&&u().delete(e);const s=A().then(n=>{let c=_;return o&&(c=(Number(n.headers.get("x-primer-session-cache-ttl"))||0)*1e3),Ne({key:e,ttl:c},n),_r(),n},n=>{throw u().delete(e),n});return u().set(e,{promise:s,exp:i+_}),_r(),s}}const nr=()=>sr.randomUUID?.()||Oe(),Oe=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,r=>(r^ue()>>r/4).toString(16)),ue=()=>(sr.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,sr=typeof crypto<"u"?crypto:{},cr=15e3,De=(r,e,t)=>ar(r,"get",e,t),Te=(r,e,t,o)=>ar(r,"post",e,o,JSON.stringify(t)),ar=async(r,e,t,o,_)=>{const A=nr(),i=performance?.now();let E=U(r);const s={method:e,url:t,body:_};E.networkCallEvent(F(A,s));try{const n=await fetch(t,{body:_,method:e,headers:{"content-type":"application/json","x-request-id":A,...o}});if(!n.ok){const D=new Error(`HTTP error! status: ${n.status}`);throw D.status=n.status,D}const c=await n.json();if(t.includes("client-sdk/configuration")){const{primerAccountId:D,clientSession:{clientSessionId:Et,customer:_t}}=c;E=H({checkoutSessionId:r,clientSessionId:Et,customerId:_t?.customerId,primerAccountId:D,url:E.url})}const O=performance?.now()-i;return E.networkCallEvent(F(A,s,{data:c},O)),{data:c,headers:n.headers,status:n.status,source:"NETWORK"}}catch(n){const L=performance?.now()-i;throw Object.assign(n,{isNetworkError:n instanceof TypeError}),E.networkCallEvent(F(A,s,{error:n},L)),n}},Nr=(r,e)=>new Promise((t,o)=>{const _=setTimeout(()=>{const A=new Error("Request timed out");A.isNetworkError=!0,o(A)},e);r.then(t).catch(o).finally(()=>clearTimeout(_))}),de=(r,e)=>{const{headers:t,retryConfig:o,cacheConfig:_,timeout:A=cr,checkoutSessionId:i}=e,E=U(i);return Re(_)(()=>Ar(()=>Nr(De(i,r,t),A),o,s=>E.messageEvent({...s,url:r})))},ct=(r,e,t)=>{const{headers:o,retryConfig:_,cacheConfig:A,timeout:i=cr,checkoutSessionId:E}=t,s=getAnalytics(E);return cacheRequest(A)(()=>retryWithExponentialBackoff(()=>Nr(Te(E,r,e,o),i),_,n=>s.messageEvent({...n,url:r})))},Rr="3.6.1",fe=Rr,Le=typeof atob=="function",Se=typeof btoa=="function",S=typeof Buffer=="function",Or=typeof TextDecoder=="function"?new TextDecoder:void 0,ur=typeof TextEncoder=="function"?new TextEncoder:void 0,Y=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],g=(r=>{let e={};return r.forEach((t,o)=>e[t]=o),e})(Y),le=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,N=String.fromCharCode.bind(String),Dr=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(r,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(r,0).map(e)),Tr=r=>r.replace(/[+\/]/g,e=>e=="+"?"-":"_").replace(/=+$/m,""),dr=r=>r.replace(/[^A-Za-z0-9\+\/]/g,""),fr=r=>{let e,t,o,_,A="";const i=r.length%3;for(let E=0;E<r.length;){if((t=r.charCodeAt(E++))>255||(o=r.charCodeAt(E++))>255||(_=r.charCodeAt(E++))>255)throw new TypeError("invalid character found");e=t<<16|o<<8|_,A+=Y[e>>18&63]+Y[e>>12&63]+Y[e>>6&63]+Y[e&63]}return i?A.slice(0,i-3)+"===".substring(i):A},m=Se?r=>btoa(r):S?r=>Buffer.from(r,"binary").toString("base64"):fr,K=S?r=>Buffer.from(r).toString("base64"):r=>{let t=[];for(let o=0,_=r.length;o<_;o+=4096)t.push(N.apply(null,r.subarray(o,o+4096)));return m(t.join(""))},k=(r,e=!1)=>e?Tr(K(r)):K(r),Pe=r=>{if(r.length<2){var e=r.charCodeAt(0);return e<128?r:e<2048?N(192|e>>>6)+N(128|e&63):N(224|e>>>12&15)+N(128|e>>>6&63)+N(128|e&63)}else{var e=65536+(r.charCodeAt(0)-55296)*1024+(r.charCodeAt(1)-56320);return N(240|e>>>18&7)+N(128|e>>>12&63)+N(128|e>>>6&63)+N(128|e&63)}},Ce=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Lr=r=>r.replace(Ce,Pe),Sr=S?r=>Buffer.from(r,"utf8").toString("base64"):ur?r=>K(ur.encode(r)):r=>m(Lr(r)),l=(r,e=!1)=>e?Tr(Sr(r)):Sr(r),lr=r=>l(r,!0),Ye=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Ie=r=>{switch(r.length){case 4:var e=(7&r.charCodeAt(0))<<18|(63&r.charCodeAt(1))<<12|(63&r.charCodeAt(2))<<6|63&r.charCodeAt(3),t=e-65536;return N((t>>>10)+55296)+N((t&1023)+56320);case 3:return N((15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2));default:return N((31&r.charCodeAt(0))<<6|63&r.charCodeAt(1))}},Pr=r=>r.replace(Ye,Ie),Cr=r=>{if(r=r.replace(/\s+/g,""),!le.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(r.length&3));let e,t="",o,_;for(let A=0;A<r.length;)e=g[r.charAt(A++)]<<18|g[r.charAt(A++)]<<12|(o=g[r.charAt(A++)])<<6|(_=g[r.charAt(A++)]),t+=o===64?N(e>>16&255):_===64?N(e>>16&255,e>>8&255):N(e>>16&255,e>>8&255,e&255);return t},V=Le?r=>atob(dr(r)):S?r=>Buffer.from(r,"base64").toString("binary"):Cr,Yr=S?r=>Dr(Buffer.from(r,"base64")):r=>Dr(V(r),e=>e.charCodeAt(0)),Ir=r=>Yr(hr(r)),he=S?r=>Buffer.from(r,"base64").toString("utf8"):Or?r=>Or.decode(Yr(r)):r=>Pr(V(r)),hr=r=>dr(r.replace(/[-_]/g,e=>e=="-"?"+":"/")),W=r=>he(hr(r)),Me=r=>{if(typeof r!="string")return!1;const e=r.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},Mr=r=>({value:r,enumerable:!1,writable:!0,configurable:!0}),Ur=function(){const r=(e,t)=>Object.defineProperty(String.prototype,e,Mr(t));r("fromBase64",function(){return W(this)}),r("toBase64",function(e){return l(this,e)}),r("toBase64URI",function(){return l(this,!0)}),r("toBase64URL",function(){return l(this,!0)}),r("toUint8Array",function(){return Ir(this)})},gr=function(){const r=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,Mr(t));r("toBase64",function(e){return k(this,e)}),r("toBase64URI",function(){return k(this,!0)}),r("toBase64URL",function(){return k(this,!0)})},kr={version:Rr,VERSION:fe,atob:V,atobPolyfill:Cr,btoa:m,btoaPolyfill:fr,fromBase64:W,toBase64:l,encode:l,encodeURI:lr,encodeURL:lr,utob:Lr,btou:Pr,decode:W,isValid:Me,fromUint8Array:k,toUint8Array:Ir,extendString:Ur,extendUint8Array:gr,extendBuiltins:()=>{Ur(),gr()}},Ue={encode:ge,decode:kr.decode};function ge(r,e={}){const{urlSafe:t=!1}=e;return kr.encode(r,t)}function ke(r){const e=ve(r),t=e.exp*1e3;if(Date.now()>t)throw new Error(`${we}. Expiration date: ${new Date(t).toISOString()}`);return e}const wr="The provided `clientToken`",we=`${wr} has expired`,Be=`${wr} is malformed`;function ve(r){try{const[e,t]=r.split("."),o=t||e;return JSON.parse(Ue.decode(o))}catch{throw new Error(Be)}}const pe="v2.46.4",be=(r,e,t)=>({"primer-client-token":r,"primer-sdk-client":"WEB","primer-sdk-version":pe,"primer-sdk-checkout-session-id":e,...t&&{"x-api-version":t}});async function xe(r,e,t){const{accessToken:o,configurationUrl:_,analyticsUrlV2:A}=ke(r),i=H({checkoutSessionId:e,url:A});i.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:E,source:s}=await de(`${_}/?withDisplayMetadata=true`,{checkoutSessionId:e,headers:be(o,e,"2.3"),retryConfig:{enabled:!0},cacheConfig:t});return i.timerEnd({id:"CONFIGURATION_LOADING",context:{source:s}}),E}catch(E){const s=E instanceof Error?E.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${s}`)}}function Br(r){return r instanceof Error?{errorBody:r.message,stacktrace:r.stack}:typeof r=="object"&&r!==null&&"message"in r?{errorBody:String(r.message),stacktrace:"stack"in r?String(r.stack):void 0}:{errorBody:String(r||"Unknown error")}}function $({checkoutSessionId:r,analytics:e,error:t,reporter:o}){e?.crashEvent?e.crashEvent({...Br(t),reporter:o}):r&&vr(r,t,o)}async function vr(r,e,t){const o=T;if(d)return;const _=await Z(f.CRASH_EVENT,{...Br(e),reporter:t},{checkoutSessionId:r});try{await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(_)})}catch(A){console.error("Failed to post crash event",A)}}const pr=Symbol.for("initGlobalErrorMonitoringLoaded"),He=(r,e)=>{typeof window<"u"&&window[pr]||(window[pr]=!0,window.addEventListener("error",t=>{Fe(t)||Ge(t)&&$({checkoutSessionId:r,analytics:e,error:t.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",t=>{const o=t.reason||new Error("Unhandled promise rejection");me(o)&&$({checkoutSessionId:r,analytics:e,error:o,reporter:"unhandledrejection"})}))},Fe=r=>r.message==="Script error."||!r.filename||r.lineno===0,Ge=r=>{const e=r.filename;return!!(e&&j(e)&&new a(r.error).isReported)},me=r=>{if(r&&typeof r=="object"&&"stack"in r&&typeof r.stack=="string"){const e=a.from(r);if(e.isReported)return!1;if("fileName"in r&&typeof r.fileName=="string"){const o=r.fileName;if(j(o))return!0}return Ke(e.stack).some(j)}return!1},j=r=>{try{return new URL(r,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},Ke=r=>{if(!r)return[];const e=r.split(`
2
- `),t=[],o=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(const _ of e){const A=_.match(o);if(A&&A[1])t.push(A[1]);else{const i=/@(.*?):\d+:\d+$/,E=_.match(i);E&&E[1]&&t.push(E[1])}}return t};function Ve(r,e){const t=document.createElement(r);return Object.entries(e).forEach(([o,_])=>t.setAttribute(o,_)),t}function br(r,e,t){return document.querySelector(`${r}[${e}^="${t}"]`)}async function xr(r,e,t,o,_,A){const{analytics:i,name:E=e,retryConfig:s}=A;await Ar(()=>new Promise((c,L)=>{const O=br(r,t,e)||Ve(r,{...o,[t]:e});O.onload=()=>{i?.sdkFunctionEvent({name:E,params:[`${r.charAt(0).toUpperCase()+r.slice(1)} loaded successfully: ${e}`]}),c()},O.onerror=()=>{O.remove(),L(new Error(`${_}: ${e}`))},O.parentNode||document.head.appendChild(O)}),s,c=>i?.messageEvent({...c,url:e}))}function We(r,e={}){return br("script","src",r)&&window.__Primer?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Script already loaded"]}),Promise.resolve()):xr("script",r,"src",{...e.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",e)}function $e(r,e={}){return Array.from(document.styleSheets).some(t=>t.href===r)?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Stylesheet already loaded"]}),Promise.resolve()):xr("link",r,"href",{...e.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",e)}let I;async function Hr(r){return I||(I=Promise.all([We("https://sdk.primer.io/web/v2.46.4/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),$e("https://sdk.primer.io/web/v2.46.4/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{const o=window.__Primer;return delete window.__Primer,o}).catch(o=>{throw I=void 0,o}),I)}const je="v2.46.4",Xe=w("createHeadless"),ze=w("showExpressCheckout"),Qe=w("showUniversalCheckout"),Ze=w("showVaultManager");function w(r){return async(...[e,t,...o])=>{const _=nr();try{const A=U(_);try{He(_,A),A.sdkFunctionEvent({name:r,params:[e,t,...o]}),A.timerStart({id:Qr[r]});const[i,E]=await Promise.all([xe(e,_,t?.clientSessionCachingEnabled?{key:e,usePrimerSessionCacheTtlHeader:!0}:void 0),Hr(A)]);return E[r](i,_,e,t,...o)}catch(i){const E=a.from(i);throw E.isReported||($({checkoutSessionId:_,analytics:A,error:E,reporter:"lazyLoad level 1"}),E.markAsReported()),E}}catch(A){const i=a.from(A);throw i.isReported||(vr(_,i,"lazyLoad level 0"),i.markAsReported()),i}}}const qe=()=>Hr().then(()=>{});var Je=(r=>(r.LOADING="Loading",r.NO_PAYMENT_METHOD="NoPaymentMethod",r.THREE_DS="UniversalCheckout/3ds",r.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",r.MANAGE_PAYMENT_METHODS="VaultManager/Home",r.DIRECT_DEBIT_FORM="DirectDebit/Form",r.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",r.CREDIT_CARD_FORM="CreditCard/Form",r.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",r.SUCCESS_CHECK="UniversalCheckout/Success/Check",r))(Je||{}),ye=(r=>(r.ROOT="primer-checkout",r.ROOT_CONTENT="primer-checkout-content",r.SUBMIT_BUTTON="primer-checkout-submit-button",r.THREE_DS_MODAL="primer-checkout-3ds-modal",r.VAULT="primer-checkout-vault",r.VAULT_INLINE="primer-checkout-vault-inline",r.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",r.DIVIDER="primer-checkout-payment-method-divider",r.APM_BUTTONS="primer-checkout-apm-button-container",r.CARDHOLDER_NAME="primer-checkout-cardholder-name",r.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",r.ACTIONS="primer-checkout-actions",r.ACTIONS_MENU="primer-checkout-actions-menu",r.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",r.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",r.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",r.CARD_FORM="primer-checkout-card-form",r.DD_SWITCH="primer-checkout-switch-dd-inputs",r.DD_IBAN_FIELD="primer-checkout-dd-iban-field",r.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",r.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",r.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",r.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",r.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",r.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",r.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",r.DD_IBAN_INPUT="primer-checkout-dd-iban-input",r.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",r.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",r.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",r.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",r.ERROR_MESSAGE="primer-checkout-error-message",r))(ye||{}),rt=(r=>(r.TOKEN="PrimerCheckout__token",r.HIDDEN="PrimerCheckout--hidden",r.FOCUSED="PrimerCheckout--focused",r.SELECTED="PrimerCheckout--selected",r.LOADING="PrimerCheckout--loading",r.ERROR="PrimerCheckout--error",r.CARD_TYPE="PrimerCheckout__cardType",r.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",r.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",r.APM_BUTTON="PrimerCheckout__apmButton",r.EDIT_BUTTON="PrimerCheckout__editButton",r.MENU="PrimerCheckout__dropDownMenu",r.MENU_ITEM="PrimerCheckout__dropDownMenuItem",r.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",r.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",r.ENTER="PrimerCheckout--enter",r.ENTERING="PrimerCheckout--entering",r.ENTERED="PrimerCheckout--entered",r.EXIT="PrimerCheckout--exit",r.EXITING="PrimerCheckout--exiting",r.EXITED="PrimerCheckout--exited",r))(rt||{}),Fr=(r=>(r.CHECKOUT="CHECKOUT",r.EXPRESS_CHECKOUT="EXPRESS_CHECKOUT",r.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",r.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",r.SINGLE_PAYMENT_METHOD_CHECKOUT="SINGLE_PAYMENT_METHOD_CHECKOUT",r))(Fr||{}),Gr=(r=>(r.DEFAULT="DEFAULT",r.PREFER_VAULT="PREFER_VAULT",r))(Gr||{}),et=(r=>(r.TOKENIZE_STARTED="tokenize-started",r.TOKENIZE_ERROR="tokenize-error",r.TOKENIZE_SUCCESS="tokenize-success",r.TOKENIZE_DID_NOT_START="tokenize-did-not-start",r))(et||{}),mr=(r=>(r.SUCCESS="AUTH_SUCCESS",r.FAILED="AUTH_FAILED",r.SKIPPED="SKIPPED",r.CHALLENGE="CHALLENGE",r))(mr||{}),Kr=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.ADYEN_KLARNA="ADYEN_KLARNA",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",r.ADYEN_EPS="ADYEN_EPS",r.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",r.OMISE_PROMPTPAY="OMISE_PROMPTPAY",r.OMISE_TRUEMONEY="OMISE_TRUEMONEY",r.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",r.PACYPAY_WECHAT="PACYPAY_WECHAT",r.PACYPAY_ALIPAY="PACYPAY_ALIPAY",r.ADYEN_MBWAY="ADYEN_MBWAY",r.XENDIT_DANA="XENDIT_DANA",r.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",r.ADYEN_PAYSHOP="ADYEN_PAYSHOP",r.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",r.CLEARPAY="CLEARPAY",r.RAPYD_FAST="RAPYD_FAST",r.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",r.RAPYD_GCASH="RAPYD_GCASH",r.RAPYD_POLI="RAPYD_POLI",r.RAPYD_GRABPAY="RAPYD_GRABPAY",r.PRIMER_PAYPAL="PRIMER_PAYPAL",r.TWOC2P="TWOC2P",r.NETS="NETS",r.STRIPE_ACH="STRIPE_ACH",r.STRIPE_GIROPAY="STRIPE_GIROPAY",r.MOLLIE_GIROPAY="MOLLIE_GIROPAY",r.MOLLIE_EPS="MOLLIE_EPS",r.PAY_NL_EPS="PAY_NL_EPS",r.PAY_NL_P24="PAY_NL_P24",r.MOLLIE_P24="MOLLIE_P24",r.MOLLIE_SOFORT="MOLLIE_SOFORT",r.COINBASE="COINBASE",r.OPENNODE="OPENNODE",r.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",r.XFERS_PAYNOW="XFERS_PAYNOW",r.CARD="PAYMENT_CARD",r.APPLE_PAY="APPLE_PAY",r.GOOGLE_PAY="GOOGLE_PAY",r.PAYPAL="PAYPAL_ORDER",r.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",r.GO_CARDLESS="GOCARDLESS",r.PAY_NL_IDEAL="PAY_NL_IDEAL",r.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",r.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",r.PAY_NL_PAYPAL="PAY_NL_PAYPAL",r.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",r.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",r.PAY_NL_GIROPAY="PAY_NL_GIROPAY",r.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",r.HOOLAH="HOOLAH",r.ADYEN_BLIK="ADYEN_BLIK",r.ADYEN_VIPPS="ADYEN_VIPPS",r.ADYEN_GIROPAY="ADYEN_GIROPAY",r.ADYEN_SOFORT="ADYEN_SOFORT",r.ADYEN_IDEAL="ADYEN_IDEAL",r.ADYEN_TRUSTLY="ADYEN_TRUSTLY",r.ADYEN_ALIPAY="ADYEN_ALIPAY",r.ADYEN_TWINT="ADYEN_TWINT",r.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",r.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",r.MOLLIE_IDEAL="MOLLIE_IDEAL",r.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",r.BUCKAROO_EPS="BUCKAROO_EPS",r.BUCKAROO_SOFORT="BUCKAROO_SOFORT",r.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",r.BUCKAROO_IDEAL="BUCKAROO_IDEAL",r.ATOME="ATOME",r.KLARNA_CUSTOMER_TOKEN="KLARNA_CUSTOMER_TOKEN",r))(Kr||{}),X=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.STRIPE_ACH="STRIPE_ACH",r.STRIPE_IDEAL="STRIPE_IDEAL",r.ADYEN_KLARNA="ADYEN_KLARNA",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",r.ADYEN_EPS="ADYEN_EPS",r.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",r.OMISE_PROMPTPAY="OMISE_PROMPTPAY",r.OMISE_TRUEMONEY="OMISE_TRUEMONEY",r.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",r.PACYPAY_WECHAT="PACYPAY_WECHAT",r.PACYPAY_ALIPAY="PACYPAY_ALIPAY",r.ADYEN_MBWAY="ADYEN_MBWAY",r.XENDIT_DANA="XENDIT_DANA",r.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",r.ADYEN_PAYSHOP="ADYEN_PAYSHOP",r.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",r.CLEARPAY="CLEARPAY",r.RAPYD_FAST="RAPYD_FAST",r.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",r.RAPYD_GCASH="RAPYD_GCASH",r.RAPYD_POLI="RAPYD_POLI",r.RAPYD_GRABPAY="RAPYD_GRABPAY",r.PRIMER_PAYPAL="PRIMER_PAYPAL",r.TWOC2P="TWOC2P",r.NETS="NETS",r.STRIPE_GIROPAY="STRIPE_GIROPAY",r.MOLLIE_GIROPAY="MOLLIE_GIROPAY",r.MOLLIE_EPS="MOLLIE_EPS",r.PAY_NL_EPS="PAY_NL_EPS",r.PAY_NL_P24="PAY_NL_P24",r.MOLLIE_P24="MOLLIE_P24",r.MOLLIE_SOFORT="MOLLIE_SOFORT",r.COINBASE="COINBASE",r.OPENNODE="OPENNODE",r.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",r.XFERS_PAYNOW="XFERS_PAYNOW",r.PAYMENT_CARD="PAYMENT_CARD",r.APPLE_PAY="APPLE_PAY",r.GOOGLE_PAY="GOOGLE_PAY",r.PAYPAL="PAYPAL",r.GO_CARDLESS="GOCARDLESS",r.KLARNA="KLARNA",r.PAY_NL_IDEAL="PAY_NL_IDEAL",r.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",r.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",r.PAY_NL_PAYPAL="PAY_NL_PAYPAL",r.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",r.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",r.PAY_NL_GIROPAY="PAY_NL_GIROPAY",r.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",r.HOOLAH="HOOLAH",r.ADYEN_BLIK="ADYEN_BLIK",r.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",r.ADYEN_VIPPS="ADYEN_VIPPS",r.ADYEN_GIROPAY="ADYEN_GIROPAY",r.ADYEN_SOFORT="ADYEN_SOFORT",r.ADYEN_IDEAL="ADYEN_IDEAL",r.ADYEN_TRUSTLY="ADYEN_TRUSTLY",r.ADYEN_ALIPAY="ADYEN_ALIPAY",r.ADYEN_TWINT="ADYEN_TWINT",r.ADYEN_BANK_TRANSFER="ADYEN_BANK_TRANSFER",r.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",r.MOLLIE_IDEAL="MOLLIE_IDEAL",r.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",r.BUCKAROO_EPS="BUCKAROO_EPS",r.BUCKAROO_SOFORT="BUCKAROO_SOFORT",r.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",r.BUCKAROO_IDEAL="BUCKAROO_IDEAL",r.ATOME="ATOME",r))(X||{}),tt=(r=>(r.PAYMENT_CARD="PAYMENT_CARD",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r))(tt||{}),Vr=(r=>(r.SINGLE_USE="SINGLE_USE",r.MULTI_USE="MULTI_USE",r))(Vr||{});const Wr={PAYPAL_BILLING_AGREEMENT:"PAYPAL",KLARNA_CUSTOMER_TOKEN:"KLARNA"},Rt=r=>{if(Object.values(X).includes(r))return r;if(Wr[r])return Wr[r]};var $r=(r=>(r.INITIALIZATION_ERROR="INITIALIZATION_ERROR",r.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",r.PRIMER_TEARDOWN="PRIMER_TEARDOWN",r.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",r.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",r.TOKENIZATION_ERROR="TOKENIZATION_ERROR",r.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",r.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",r.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",r.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",r.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",r.RESUME_ERROR="RESUME_ERROR",r.VALIDATION_ERROR="VALIDATION_ERROR",r.PAYMENT_FAILED="PAYMENT_FAILED",r.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",r.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",r.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",r.INVALID_ARGUMENT="INVALID_ARGUMENT",r.VAULT_FETCH="VAULT_FETCH",r.VAULT_DELETE="VAULT_DELETE",r.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",r.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",r.MISSING_FIRST_NAME_OR_LAST_NAME="MISSING_FIRST_NAME_OR_LAST_NAME",r.MISSING_EMAIL_ADDRESS="MISSING_EMAIL_ADDRESS",r.INVALID_FLOW="INVALID_FLOW",r))($r||{});class z extends null{static fromErrorCode(e,t,o){return new z(e,t,o)}constructor(e,t,o){super(`[${e}] ${t.message}`),this.code=e,this.diagnosticsId=t.diagnosticsId??null,this.data=t.data,this.isFromDeveloper=t.isFromDeveloper??!1,this.name="PrimerClientError",Error.captureStackTrace&&Error.captureStackTrace(this,z),o&&(o.messageEvent({message:t.message,messageType:e,severity:"ERROR",diagnosticsId:t.diagnosticsId??void 0,errorId:t.errorId??void 0,data:t.data??void 0,isFromDeveloper:t.isFromDeveloper?.toString(),stack:this.stack}),this.markAsReported())}}var ot=R(473),jr=(r=>(r.PAYMENT_METHOD="PAYMENT_METHOD",r.CHECK="CHECK",r))(jr||{});const At=r=>"fullMandateText"in r?.mandateData;var Xr=(r=>(r.CHANGE="change",r.ERROR="error",r.FOCUS="focus",r.BLUR="blur",r.CLICK="click",r.CLOSE="close",r))(Xr||{}),zr=(r=>(r.CARD="CARD",r.NATIVE="NATIVE",r.REDIRECT="REDIRECT",r.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",r.KLARNA="KLARNA",r.ACH="ACH",r))(zr||{});const it={SDK_VERSION:je,createHeadless:Xe,showExpressCheckout:ze,showUniversalCheckout:Qe,showVaultManager:Ze}})(),B})());
1
+ (function(h,R){typeof exports=="object"&&typeof module=="object"?module.exports=R():typeof define=="function"&&define.amd?define([],R):typeof exports=="object"?exports.Primer=R():h.Primer=R()})(this,()=>(()=>{var Q={476:()=>{},962:()=>{},473:()=>{}},h={};function R(a){var T=h[a];if(T!==void 0)return T.exports;var d=h[a]={exports:{}};return Q[a](d,d.exports,R),d.exports}R.d=(a,T)=>{for(var d in T)R.o(T,d)&&!R.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:T[d]})},R.o=(a,T)=>Object.prototype.hasOwnProperty.call(a,T),R.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var B={};return(()=>{"use strict";R.r(B),R.d(B,{CheckoutUXFlow:()=>Fr,ErrorCode:()=>$r,EventTypes:()=>Xr,HeadlessManagerType:()=>zr,PaymentFlow:()=>Gr,PaymentInstrumentType:()=>Kr,PaymentMethodData:()=>ot.PaymentMethodData,PaymentMethodType:()=>X,Primer:()=>it,SuccessScreenType:()=>jr,ThreeDSecureStatus:()=>mr,TokenType:()=>Vr,isStripeOptionsDropInWithFullMandateText:()=>At,preloadPrimer:()=>qe});class a extends Error{constructor(e,t=!1){super(e),this.isReported=t,this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}static from(e,t=!1){if(e instanceof a)return e;const o=e instanceof Error?e.message:String(e),_=new a(o,t);return e instanceof Error&&e.stack&&(_.stack=e.stack,Object.assign(_,e)),_}markAsReported(){this.isReported=!0}}const T="https://analytics.production.data.primer.io/sdk-logs",d=T==="https://analytics.sandbox.data.primer.io/playwright";var nt=R(476),st=R(962),v=(r=>(r.REQUEST_START="REQUEST_START",r.REQUEST_END="REQUEST_END",r))(v||{}),p=(r=>(r.START="START",r.END="END",r))(p||{});const Qr={createHeadless:"HEADLESS_LOADING",showExpressCheckout:"EXPRESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING"};var f=(r=>(r.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",r.CRASH_EVENT="CRASH_EVENT",r.TIMER_EVENT="TIMER_EVENT",r.MESSAGE_EVENT="MESSAGE_EVENT",r.V1_EVENT="V1_EVENT",r.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",r))(f||{});const Zr={get(r,e){let t;try{switch(r){case"PRIMER_SDK_VERSION":t="v2.46.6";break;case"PRIMER_ASSETS_URL":t=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_CORE_API_URL":t=process.env.PRIMER_CORE_API_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":t=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;default:break}}catch{}return t||e}};var qr=(r=>(r.CHARGING="CHARGING",r.NOT_CHARGING="NOT_CHARGING",r))(qr||{});async function Jr(){if(typeof navigator>"u"||typeof performance>"u")return;const r=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:r?.level,batteryStatus:r?.charging?"CHARGING":"NOT_CHARGING"}}const yr="WEB",re=Zr.get("PRIMER_SDK_VERSION");async function Z(r,e,t){return{...t,createdAt:Date.now(),device:await Jr(),eventType:r,properties:e,sdkVersion:re,sdkType:yr}}const q=Symbol.for("__primerAnalytics__");let P={providers:new Map,timers:new Map,eventsQueue:new Map};if(typeof window<"u"){const r=window[q];r?P=r:window[q]=P}const J=()=>P.providers,b=()=>P.timers,C=()=>P.eventsQueue,y=500,M=new Map,rr=64e3,ee=5;function x(r,e=!1,t=1){if(M.has(r)){const A=M.get(r);clearTimeout(A),M.delete(r)}const o=()=>{const A=C().get(r);if(A?.length){let i=!0,E=[],s=0,n=0;for(;n<A.length;){const c=A[n],L=JSON.stringify(c),O=new Blob([L]).size;if(O>rr){console.error("Event size exceeds maximum payload size and will be skipped:",c),n++;continue}if(s+O>rr&&E.length>0){try{i=navigator.sendBeacon(r,JSON.stringify(E))}catch(D){i=!1,console.error("Unable to send events",D)}if(!i)break;E=[],s=0}E.push(c),s+=O,n++}if(E.length>0&&i)try{i=navigator.sendBeacon(r,JSON.stringify(E))}catch(c){i=!1,console.error("Unable to send events",c)}if(i)C().delete(r);else if(t<ee){const c=y*Math.pow(2,t);setTimeout(()=>x(r,e,t+1),c)}else console.error("Max retry attempts reached. Events will not be sent.")}};if(e){o();return}const _=setTimeout(o,y);M.set(r,_)}function te(r,e){C().has(r)||C().set(r,[]),C().get(r)?.push(e),x(r)}const er=1024*5;function tr(r,e,t=new WeakSet,o=0,_=10){if(o>_||t.has(r))return r;t.add(r);const A=i=>typeof i=="object"&&i!==null?tr(i,e,t,o+1,_):e(i);return Array.isArray(r)?r.map(A):Object.fromEntries(Object.entries(r).map(([i,E])=>[i,A(E)]))}function oe(r){return typeof r=="string"&&r.length>er?`${r.slice(0,er)}...`:r}function Ae(r){return typeof r=="function"?r.name||"function":r}let or=!1;function H({url:r=T,...e}){typeof document<"u"&&!or&&(document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&x(r,!0)}),or=!0);const t=_=>async A=>{if(typeof navigator>"u")return;const i=await Z(_,A,e),E=n=>oe(Ae(n));if(d)return;const s=tr(i,E);te(r,s)},o={crashEvent:t(f.CRASH_EVENT),messageEvent:t(f.MESSAGE_EVENT),networkCallEvent:t(f.NETWORK_CALL_EVENT),sdkFunctionEvent:t(f.SDK_FUNCTION_EVENT),timerStart:({id:_,...A})=>{const i=`${e.checkoutSessionId}|${_}`,E=performance?.now?performance.now():Date.now();return b().set(i,{start:E}),t(f.TIMER_EVENT)({...A,id:_,timerType:p.START})},timerEnd:({id:_,...A})=>{const i=`${e.checkoutSessionId}|${_}`,{start:E=void 0}=b().get(i)??{};b().delete(i);const s=performance?.now?performance.now():Date.now(),n=E?s-E:void 0;return t(f.TIMER_EVENT)({...A,id:_,timerType:p.END,duration:n})},v1Event:t(f.V1_EVENT),url:r};return J().set(e.checkoutSessionId,o),U(e.checkoutSessionId)}function U(r){return new Proxy({},{get(e,t){return(J().get(r)??H({checkoutSessionId:r}))[t]}})}const F=(r,e,t,o)=>({callType:t?v.REQUEST_END:v.REQUEST_START,id:r,errorBody:t?.error&&JSON.stringify(t.error,Object.getOwnPropertyNames(t.error)),method:e.method,responseCode:t?.status,url:e.url,duration:o});function ie(r){return r?new Promise(e=>{setTimeout(e,r)}):Promise.resolve()}const Ee=8,_e=100,ne=100;function se(r){return{enabled:r?.enabled??!1,maxRetries:Ee,initialBackoff:_e,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:ne}}function ce(r,e,t){const o=r*Math.pow(2,e-1),_=Math.random()*t;return Math.min(o+_,Number.MAX_SAFE_INTEGER)}async function Ar(r,e,t,o=ie){let _=0;const A=se(e);if(!A.enabled)return r();for(;;)try{const i=await r();if(_){let E=`Request succeeded after ${_} retries.`;typeof i=="object"&&i&&"status"in i&&(E+=` Status code: ${i.status}`),t?.({messageType:"RETRY_SUCCESS",message:E,severity:"INFO"})}return i}catch(i){const E=i,s=_>=A.maxRetries,n=E.isNetworkError&&!A.retryNetworkErrors,c=E.status&&E.status>=500&&!A.retry500Errors;if(s||n||c){let D=`Failed after ${_} retries. `;throw s?D+=`Reached maximum retries (${A.maxRetries}).`:n?D+="Network error encountered and retryNetworkErrors is disabled.":c&&(D+="HTTP 500 error encountered and retry500Errors is disabled."),D+=` Last error: ${E.message}`,t?.({messageType:"RETRY_FAILED",message:D,severity:"ERROR",errorBody:JSON.stringify(i,Object.getOwnPropertyNames(i))}),new Error(D,{cause:i})}_++;const L=ce(A.initialBackoff,_,A.maxJitter);let O="Unknown error";E.isNetworkError?O="Network error":E.status&&(O=`HTTP ${E.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${_}/${A.maxRetries} due to: ${O}. Error details: ${E.message}. Waiting for ${L.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(i,Object.getOwnPropertyNames(i))}),await o(L)}}let G={cache:new Map};typeof window<"u"&&(window.__primerCache__??(window.__primerCache__=G),G=window.__primerCache__);const u=()=>G.cache,ir=1e3*60*60,ae=30,Er=50;function _r(){if(u().size<=ae)return;const r=Date.now();for(const[e,t]of u())t.exp<r&&u().delete(e);if(u().size>Er)for(const[e]of u()){if(u().size<=Er)break;u().delete(e)}}function Ne({key:r,ttl:e=ir},t){e?u().set(r,{promise:Promise.resolve({...t,source:"CACHE"}),exp:Date.now()+e}):u().delete(r)}function Re(r){if(!r)return A=>A();const{key:e,refresh:t=!1,usePrimerSessionCacheTtlHeader:o=!1,ttl:_=ir}=r;return async A=>{const i=Date.now(),E=u().get(e);if(!t&&E&&E.exp>i)return E.promise;E&&u().delete(e);const s=A().then(n=>{let c=_;return o&&(c=(Number(n.headers.get("x-primer-session-cache-ttl"))||0)*1e3),Ne({key:e,ttl:c},n),_r(),n},n=>{throw u().delete(e),n});return u().set(e,{promise:s,exp:i+_}),_r(),s}}const nr=()=>sr.randomUUID?.()||Oe(),Oe=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,r=>(r^ue()>>r/4).toString(16)),ue=()=>(sr.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,sr=typeof crypto<"u"?crypto:{},cr=15e3,De=(r,e,t)=>ar(r,"get",e,t),Te=(r,e,t,o)=>ar(r,"post",e,o,JSON.stringify(t)),ar=async(r,e,t,o,_)=>{const A=nr(),i=performance?.now();let E=U(r);const s={method:e,url:t,body:_};E.networkCallEvent(F(A,s));try{const n=await fetch(t,{body:_,method:e,headers:{"content-type":"application/json","x-request-id":A,...o}});if(!n.ok){const D=new Error(`HTTP error! status: ${n.status}`);throw D.status=n.status,D}const c=await n.json();if(t.includes("client-sdk/configuration")){const{primerAccountId:D,clientSession:{clientSessionId:Et,customer:_t}}=c;E=H({checkoutSessionId:r,clientSessionId:Et,customerId:_t?.customerId,primerAccountId:D,url:E.url})}const O=performance?.now()-i;return E.networkCallEvent(F(A,s,{data:c},O)),{data:c,headers:n.headers,status:n.status,source:"NETWORK"}}catch(n){const L=performance?.now()-i;throw Object.assign(n,{isNetworkError:n instanceof TypeError}),E.networkCallEvent(F(A,s,{error:n},L)),n}},Nr=(r,e)=>new Promise((t,o)=>{const _=setTimeout(()=>{const A=new Error("Request timed out");A.isNetworkError=!0,o(A)},e);r.then(t).catch(o).finally(()=>clearTimeout(_))}),de=(r,e)=>{const{headers:t,retryConfig:o,cacheConfig:_,timeout:A=cr,checkoutSessionId:i}=e,E=U(i);return Re(_)(()=>Ar(()=>Nr(De(i,r,t),A),o,s=>E.messageEvent({...s,url:r})))},ct=(r,e,t)=>{const{headers:o,retryConfig:_,cacheConfig:A,timeout:i=cr,checkoutSessionId:E}=t,s=getAnalytics(E);return cacheRequest(A)(()=>retryWithExponentialBackoff(()=>Nr(Te(E,r,e,o),i),_,n=>s.messageEvent({...n,url:r})))},Rr="3.6.1",fe=Rr,Le=typeof atob=="function",Se=typeof btoa=="function",S=typeof Buffer=="function",Or=typeof TextDecoder=="function"?new TextDecoder:void 0,ur=typeof TextEncoder=="function"?new TextEncoder:void 0,Y=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],g=(r=>{let e={};return r.forEach((t,o)=>e[t]=o),e})(Y),le=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,N=String.fromCharCode.bind(String),Dr=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(r,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(r,0).map(e)),Tr=r=>r.replace(/[+\/]/g,e=>e=="+"?"-":"_").replace(/=+$/m,""),dr=r=>r.replace(/[^A-Za-z0-9\+\/]/g,""),fr=r=>{let e,t,o,_,A="";const i=r.length%3;for(let E=0;E<r.length;){if((t=r.charCodeAt(E++))>255||(o=r.charCodeAt(E++))>255||(_=r.charCodeAt(E++))>255)throw new TypeError("invalid character found");e=t<<16|o<<8|_,A+=Y[e>>18&63]+Y[e>>12&63]+Y[e>>6&63]+Y[e&63]}return i?A.slice(0,i-3)+"===".substring(i):A},m=Se?r=>btoa(r):S?r=>Buffer.from(r,"binary").toString("base64"):fr,K=S?r=>Buffer.from(r).toString("base64"):r=>{let t=[];for(let o=0,_=r.length;o<_;o+=4096)t.push(N.apply(null,r.subarray(o,o+4096)));return m(t.join(""))},k=(r,e=!1)=>e?Tr(K(r)):K(r),Pe=r=>{if(r.length<2){var e=r.charCodeAt(0);return e<128?r:e<2048?N(192|e>>>6)+N(128|e&63):N(224|e>>>12&15)+N(128|e>>>6&63)+N(128|e&63)}else{var e=65536+(r.charCodeAt(0)-55296)*1024+(r.charCodeAt(1)-56320);return N(240|e>>>18&7)+N(128|e>>>12&63)+N(128|e>>>6&63)+N(128|e&63)}},Ce=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Lr=r=>r.replace(Ce,Pe),Sr=S?r=>Buffer.from(r,"utf8").toString("base64"):ur?r=>K(ur.encode(r)):r=>m(Lr(r)),l=(r,e=!1)=>e?Tr(Sr(r)):Sr(r),lr=r=>l(r,!0),Ye=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Ie=r=>{switch(r.length){case 4:var e=(7&r.charCodeAt(0))<<18|(63&r.charCodeAt(1))<<12|(63&r.charCodeAt(2))<<6|63&r.charCodeAt(3),t=e-65536;return N((t>>>10)+55296)+N((t&1023)+56320);case 3:return N((15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2));default:return N((31&r.charCodeAt(0))<<6|63&r.charCodeAt(1))}},Pr=r=>r.replace(Ye,Ie),Cr=r=>{if(r=r.replace(/\s+/g,""),!le.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(r.length&3));let e,t="",o,_;for(let A=0;A<r.length;)e=g[r.charAt(A++)]<<18|g[r.charAt(A++)]<<12|(o=g[r.charAt(A++)])<<6|(_=g[r.charAt(A++)]),t+=o===64?N(e>>16&255):_===64?N(e>>16&255,e>>8&255):N(e>>16&255,e>>8&255,e&255);return t},V=Le?r=>atob(dr(r)):S?r=>Buffer.from(r,"base64").toString("binary"):Cr,Yr=S?r=>Dr(Buffer.from(r,"base64")):r=>Dr(V(r),e=>e.charCodeAt(0)),Ir=r=>Yr(hr(r)),he=S?r=>Buffer.from(r,"base64").toString("utf8"):Or?r=>Or.decode(Yr(r)):r=>Pr(V(r)),hr=r=>dr(r.replace(/[-_]/g,e=>e=="-"?"+":"/")),W=r=>he(hr(r)),Me=r=>{if(typeof r!="string")return!1;const e=r.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},Mr=r=>({value:r,enumerable:!1,writable:!0,configurable:!0}),Ur=function(){const r=(e,t)=>Object.defineProperty(String.prototype,e,Mr(t));r("fromBase64",function(){return W(this)}),r("toBase64",function(e){return l(this,e)}),r("toBase64URI",function(){return l(this,!0)}),r("toBase64URL",function(){return l(this,!0)}),r("toUint8Array",function(){return Ir(this)})},gr=function(){const r=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,Mr(t));r("toBase64",function(e){return k(this,e)}),r("toBase64URI",function(){return k(this,!0)}),r("toBase64URL",function(){return k(this,!0)})},kr={version:Rr,VERSION:fe,atob:V,atobPolyfill:Cr,btoa:m,btoaPolyfill:fr,fromBase64:W,toBase64:l,encode:l,encodeURI:lr,encodeURL:lr,utob:Lr,btou:Pr,decode:W,isValid:Me,fromUint8Array:k,toUint8Array:Ir,extendString:Ur,extendUint8Array:gr,extendBuiltins:()=>{Ur(),gr()}},Ue={encode:ge,decode:kr.decode};function ge(r,e={}){const{urlSafe:t=!1}=e;return kr.encode(r,t)}function ke(r){const e=ve(r),t=e.exp*1e3;if(Date.now()>t)throw new Error(`${we}. Expiration date: ${new Date(t).toISOString()}`);return e}const wr="The provided `clientToken`",we=`${wr} has expired`,Be=`${wr} is malformed`;function ve(r){try{const[e,t]=r.split("."),o=t||e;return JSON.parse(Ue.decode(o))}catch{throw new Error(Be)}}const pe="v2.46.6",be=(r,e,t)=>({"primer-client-token":r,"primer-sdk-client":"WEB","primer-sdk-version":pe,"primer-sdk-checkout-session-id":e,...t&&{"x-api-version":t}});async function xe(r,e,t){const{accessToken:o,configurationUrl:_,analyticsUrlV2:A}=ke(r),i=H({checkoutSessionId:e,url:A});i.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:E,source:s}=await de(`${_}/?withDisplayMetadata=true`,{checkoutSessionId:e,headers:be(o,e,"2.3"),retryConfig:{enabled:!0},cacheConfig:t});return i.timerEnd({id:"CONFIGURATION_LOADING",context:{source:s}}),E}catch(E){const s=E instanceof Error?E.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${s}`)}}function Br(r){return r instanceof Error?{errorBody:r.message,stacktrace:r.stack}:typeof r=="object"&&r!==null&&"message"in r?{errorBody:String(r.message),stacktrace:"stack"in r?String(r.stack):void 0}:{errorBody:String(r||"Unknown error")}}function $({checkoutSessionId:r,analytics:e,error:t,reporter:o}){e?.crashEvent?e.crashEvent({...Br(t),reporter:o}):r&&vr(r,t,o)}async function vr(r,e,t){const o=T;if(d)return;const _=await Z(f.CRASH_EVENT,{...Br(e),reporter:t},{checkoutSessionId:r});try{await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(_)})}catch(A){console.error("Failed to post crash event",A)}}const pr=Symbol.for("initGlobalErrorMonitoringLoaded"),He=(r,e)=>{typeof window<"u"&&window[pr]||(window[pr]=!0,window.addEventListener("error",t=>{Fe(t)||Ge(t)&&$({checkoutSessionId:r,analytics:e,error:t.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",t=>{const o=t.reason||new Error("Unhandled promise rejection");me(o)&&$({checkoutSessionId:r,analytics:e,error:o,reporter:"unhandledrejection"})}))},Fe=r=>r.message==="Script error."||!r.filename||r.lineno===0,Ge=r=>{const e=r.filename;return!!(e&&j(e)&&new a(r.error).isReported)},me=r=>{if(r&&typeof r=="object"&&"stack"in r&&typeof r.stack=="string"){const e=a.from(r);if(e.isReported)return!1;if("fileName"in r&&typeof r.fileName=="string"){const o=r.fileName;if(j(o))return!0}return Ke(e.stack).some(j)}return!1},j=r=>{try{return new URL(r,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},Ke=r=>{if(!r)return[];const e=r.split(`
2
+ `),t=[],o=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(const _ of e){const A=_.match(o);if(A&&A[1])t.push(A[1]);else{const i=/@(.*?):\d+:\d+$/,E=_.match(i);E&&E[1]&&t.push(E[1])}}return t};function Ve(r,e){const t=document.createElement(r);return Object.entries(e).forEach(([o,_])=>t.setAttribute(o,_)),t}function br(r,e,t){return document.querySelector(`${r}[${e}^="${t}"]`)}async function xr(r,e,t,o,_,A){const{analytics:i,name:E=e,retryConfig:s}=A;await Ar(()=>new Promise((c,L)=>{const O=br(r,t,e)||Ve(r,{...o,[t]:e});O.onload=()=>{i?.sdkFunctionEvent({name:E,params:[`${r.charAt(0).toUpperCase()+r.slice(1)} loaded successfully: ${e}`]}),c()},O.onerror=()=>{O.remove(),L(new Error(`${_}: ${e}`))},O.parentNode||document.head.appendChild(O)}),s,c=>i?.messageEvent({...c,url:e}))}function We(r,e={}){return br("script","src",r)&&window.__Primer?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Script already loaded"]}),Promise.resolve()):xr("script",r,"src",{...e.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",e)}function $e(r,e={}){return Array.from(document.styleSheets).some(t=>t.href===r)?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Stylesheet already loaded"]}),Promise.resolve()):xr("link",r,"href",{...e.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",e)}let I;async function Hr(r){return I||(I=Promise.all([We("https://sdk.primer.io/web/v2.46.6/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),$e("https://sdk.primer.io/web/v2.46.6/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{const o=window.__Primer;return delete window.__Primer,o}).catch(o=>{throw I=void 0,o}),I)}const je="v2.46.6",Xe=w("createHeadless"),ze=w("showExpressCheckout"),Qe=w("showUniversalCheckout"),Ze=w("showVaultManager");function w(r){return async(...[e,t,...o])=>{const _=nr();try{const A=U(_);try{He(_,A),A.sdkFunctionEvent({name:r,params:[e,t,...o]}),A.timerStart({id:Qr[r]});const[i,E]=await Promise.all([xe(e,_,t?.clientSessionCachingEnabled?{key:e,usePrimerSessionCacheTtlHeader:!0}:void 0),Hr(A)]);return E[r](i,_,e,t,...o)}catch(i){const E=a.from(i);throw E.isReported||($({checkoutSessionId:_,analytics:A,error:E,reporter:"lazyLoad level 1"}),E.markAsReported()),E}}catch(A){const i=a.from(A);throw i.isReported||(vr(_,i,"lazyLoad level 0"),i.markAsReported()),i}}}const qe=()=>Hr().then(()=>{});var Je=(r=>(r.LOADING="Loading",r.NO_PAYMENT_METHOD="NoPaymentMethod",r.THREE_DS="UniversalCheckout/3ds",r.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",r.MANAGE_PAYMENT_METHODS="VaultManager/Home",r.DIRECT_DEBIT_FORM="DirectDebit/Form",r.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",r.CREDIT_CARD_FORM="CreditCard/Form",r.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",r.SUCCESS_CHECK="UniversalCheckout/Success/Check",r))(Je||{}),ye=(r=>(r.ROOT="primer-checkout",r.ROOT_CONTENT="primer-checkout-content",r.SUBMIT_BUTTON="primer-checkout-submit-button",r.THREE_DS_MODAL="primer-checkout-3ds-modal",r.VAULT="primer-checkout-vault",r.VAULT_INLINE="primer-checkout-vault-inline",r.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",r.DIVIDER="primer-checkout-payment-method-divider",r.APM_BUTTONS="primer-checkout-apm-button-container",r.CARDHOLDER_NAME="primer-checkout-cardholder-name",r.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",r.ACTIONS="primer-checkout-actions",r.ACTIONS_MENU="primer-checkout-actions-menu",r.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",r.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",r.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",r.CARD_FORM="primer-checkout-card-form",r.DD_SWITCH="primer-checkout-switch-dd-inputs",r.DD_IBAN_FIELD="primer-checkout-dd-iban-field",r.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",r.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",r.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",r.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",r.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",r.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",r.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",r.DD_IBAN_INPUT="primer-checkout-dd-iban-input",r.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",r.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",r.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",r.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",r.ERROR_MESSAGE="primer-checkout-error-message",r))(ye||{}),rt=(r=>(r.TOKEN="PrimerCheckout__token",r.HIDDEN="PrimerCheckout--hidden",r.FOCUSED="PrimerCheckout--focused",r.SELECTED="PrimerCheckout--selected",r.LOADING="PrimerCheckout--loading",r.ERROR="PrimerCheckout--error",r.CARD_TYPE="PrimerCheckout__cardType",r.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",r.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",r.APM_BUTTON="PrimerCheckout__apmButton",r.EDIT_BUTTON="PrimerCheckout__editButton",r.MENU="PrimerCheckout__dropDownMenu",r.MENU_ITEM="PrimerCheckout__dropDownMenuItem",r.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",r.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",r.ENTER="PrimerCheckout--enter",r.ENTERING="PrimerCheckout--entering",r.ENTERED="PrimerCheckout--entered",r.EXIT="PrimerCheckout--exit",r.EXITING="PrimerCheckout--exiting",r.EXITED="PrimerCheckout--exited",r))(rt||{}),Fr=(r=>(r.CHECKOUT="CHECKOUT",r.EXPRESS_CHECKOUT="EXPRESS_CHECKOUT",r.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",r.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",r.SINGLE_PAYMENT_METHOD_CHECKOUT="SINGLE_PAYMENT_METHOD_CHECKOUT",r))(Fr||{}),Gr=(r=>(r.DEFAULT="DEFAULT",r.PREFER_VAULT="PREFER_VAULT",r))(Gr||{}),et=(r=>(r.TOKENIZE_STARTED="tokenize-started",r.TOKENIZE_ERROR="tokenize-error",r.TOKENIZE_SUCCESS="tokenize-success",r.TOKENIZE_DID_NOT_START="tokenize-did-not-start",r))(et||{}),mr=(r=>(r.SUCCESS="AUTH_SUCCESS",r.FAILED="AUTH_FAILED",r.SKIPPED="SKIPPED",r.CHALLENGE="CHALLENGE",r))(mr||{}),Kr=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.ADYEN_KLARNA="ADYEN_KLARNA",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",r.ADYEN_EPS="ADYEN_EPS",r.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",r.OMISE_PROMPTPAY="OMISE_PROMPTPAY",r.OMISE_TRUEMONEY="OMISE_TRUEMONEY",r.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",r.PACYPAY_WECHAT="PACYPAY_WECHAT",r.PACYPAY_ALIPAY="PACYPAY_ALIPAY",r.ADYEN_MBWAY="ADYEN_MBWAY",r.XENDIT_DANA="XENDIT_DANA",r.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",r.ADYEN_PAYSHOP="ADYEN_PAYSHOP",r.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",r.CLEARPAY="CLEARPAY",r.RAPYD_FAST="RAPYD_FAST",r.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",r.RAPYD_GCASH="RAPYD_GCASH",r.RAPYD_POLI="RAPYD_POLI",r.RAPYD_GRABPAY="RAPYD_GRABPAY",r.PRIMER_PAYPAL="PRIMER_PAYPAL",r.TWOC2P="TWOC2P",r.NETS="NETS",r.STRIPE_ACH="STRIPE_ACH",r.STRIPE_GIROPAY="STRIPE_GIROPAY",r.MOLLIE_GIROPAY="MOLLIE_GIROPAY",r.MOLLIE_EPS="MOLLIE_EPS",r.PAY_NL_EPS="PAY_NL_EPS",r.PAY_NL_P24="PAY_NL_P24",r.MOLLIE_P24="MOLLIE_P24",r.MOLLIE_SOFORT="MOLLIE_SOFORT",r.COINBASE="COINBASE",r.OPENNODE="OPENNODE",r.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",r.XFERS_PAYNOW="XFERS_PAYNOW",r.CARD="PAYMENT_CARD",r.APPLE_PAY="APPLE_PAY",r.GOOGLE_PAY="GOOGLE_PAY",r.PAYPAL="PAYPAL_ORDER",r.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",r.GO_CARDLESS="GOCARDLESS",r.PAY_NL_IDEAL="PAY_NL_IDEAL",r.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",r.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",r.PAY_NL_PAYPAL="PAY_NL_PAYPAL",r.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",r.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",r.PAY_NL_GIROPAY="PAY_NL_GIROPAY",r.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",r.HOOLAH="HOOLAH",r.ADYEN_BLIK="ADYEN_BLIK",r.ADYEN_VIPPS="ADYEN_VIPPS",r.ADYEN_GIROPAY="ADYEN_GIROPAY",r.ADYEN_SOFORT="ADYEN_SOFORT",r.ADYEN_IDEAL="ADYEN_IDEAL",r.ADYEN_TRUSTLY="ADYEN_TRUSTLY",r.ADYEN_ALIPAY="ADYEN_ALIPAY",r.ADYEN_TWINT="ADYEN_TWINT",r.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",r.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",r.MOLLIE_IDEAL="MOLLIE_IDEAL",r.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",r.BUCKAROO_EPS="BUCKAROO_EPS",r.BUCKAROO_SOFORT="BUCKAROO_SOFORT",r.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",r.BUCKAROO_IDEAL="BUCKAROO_IDEAL",r.ATOME="ATOME",r.KLARNA_CUSTOMER_TOKEN="KLARNA_CUSTOMER_TOKEN",r))(Kr||{}),X=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.STRIPE_ACH="STRIPE_ACH",r.STRIPE_IDEAL="STRIPE_IDEAL",r.ADYEN_KLARNA="ADYEN_KLARNA",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",r.ADYEN_EPS="ADYEN_EPS",r.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",r.OMISE_PROMPTPAY="OMISE_PROMPTPAY",r.OMISE_TRUEMONEY="OMISE_TRUEMONEY",r.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",r.PACYPAY_WECHAT="PACYPAY_WECHAT",r.PACYPAY_ALIPAY="PACYPAY_ALIPAY",r.ADYEN_MBWAY="ADYEN_MBWAY",r.XENDIT_DANA="XENDIT_DANA",r.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",r.ADYEN_PAYSHOP="ADYEN_PAYSHOP",r.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",r.CLEARPAY="CLEARPAY",r.RAPYD_FAST="RAPYD_FAST",r.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",r.RAPYD_GCASH="RAPYD_GCASH",r.RAPYD_POLI="RAPYD_POLI",r.RAPYD_GRABPAY="RAPYD_GRABPAY",r.PRIMER_PAYPAL="PRIMER_PAYPAL",r.TWOC2P="TWOC2P",r.NETS="NETS",r.STRIPE_GIROPAY="STRIPE_GIROPAY",r.MOLLIE_GIROPAY="MOLLIE_GIROPAY",r.MOLLIE_EPS="MOLLIE_EPS",r.PAY_NL_EPS="PAY_NL_EPS",r.PAY_NL_P24="PAY_NL_P24",r.MOLLIE_P24="MOLLIE_P24",r.MOLLIE_SOFORT="MOLLIE_SOFORT",r.COINBASE="COINBASE",r.OPENNODE="OPENNODE",r.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",r.XFERS_PAYNOW="XFERS_PAYNOW",r.PAYMENT_CARD="PAYMENT_CARD",r.APPLE_PAY="APPLE_PAY",r.GOOGLE_PAY="GOOGLE_PAY",r.PAYPAL="PAYPAL",r.GO_CARDLESS="GOCARDLESS",r.KLARNA="KLARNA",r.PAY_NL_IDEAL="PAY_NL_IDEAL",r.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",r.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",r.PAY_NL_PAYPAL="PAY_NL_PAYPAL",r.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",r.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",r.PAY_NL_GIROPAY="PAY_NL_GIROPAY",r.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",r.HOOLAH="HOOLAH",r.ADYEN_BLIK="ADYEN_BLIK",r.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",r.ADYEN_VIPPS="ADYEN_VIPPS",r.ADYEN_GIROPAY="ADYEN_GIROPAY",r.ADYEN_SOFORT="ADYEN_SOFORT",r.ADYEN_IDEAL="ADYEN_IDEAL",r.ADYEN_TRUSTLY="ADYEN_TRUSTLY",r.ADYEN_ALIPAY="ADYEN_ALIPAY",r.ADYEN_TWINT="ADYEN_TWINT",r.ADYEN_BANK_TRANSFER="ADYEN_BANK_TRANSFER",r.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",r.MOLLIE_IDEAL="MOLLIE_IDEAL",r.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",r.BUCKAROO_EPS="BUCKAROO_EPS",r.BUCKAROO_SOFORT="BUCKAROO_SOFORT",r.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",r.BUCKAROO_IDEAL="BUCKAROO_IDEAL",r.ATOME="ATOME",r))(X||{}),tt=(r=>(r.PAYMENT_CARD="PAYMENT_CARD",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r))(tt||{}),Vr=(r=>(r.SINGLE_USE="SINGLE_USE",r.MULTI_USE="MULTI_USE",r))(Vr||{});const Wr={PAYPAL_BILLING_AGREEMENT:"PAYPAL",KLARNA_CUSTOMER_TOKEN:"KLARNA"},Rt=r=>{if(Object.values(X).includes(r))return r;if(Wr[r])return Wr[r]};var $r=(r=>(r.INITIALIZATION_ERROR="INITIALIZATION_ERROR",r.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",r.PRIMER_TEARDOWN="PRIMER_TEARDOWN",r.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",r.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",r.TOKENIZATION_ERROR="TOKENIZATION_ERROR",r.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",r.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",r.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",r.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",r.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",r.RESUME_ERROR="RESUME_ERROR",r.VALIDATION_ERROR="VALIDATION_ERROR",r.PAYMENT_FAILED="PAYMENT_FAILED",r.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",r.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",r.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",r.INVALID_ARGUMENT="INVALID_ARGUMENT",r.VAULT_FETCH="VAULT_FETCH",r.VAULT_DELETE="VAULT_DELETE",r.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",r.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",r.MISSING_FIRST_NAME_OR_LAST_NAME="MISSING_FIRST_NAME_OR_LAST_NAME",r.MISSING_EMAIL_ADDRESS="MISSING_EMAIL_ADDRESS",r.INVALID_FLOW="INVALID_FLOW",r))($r||{});class z extends null{static fromErrorCode(e,t,o){return new z(e,t,o)}constructor(e,t,o){super(`[${e}] ${t.message}`),this.code=e,this.diagnosticsId=t.diagnosticsId??null,this.data=t.data,this.isFromDeveloper=t.isFromDeveloper??!1,this.name="PrimerClientError",Error.captureStackTrace&&Error.captureStackTrace(this,z),o&&(o.messageEvent({message:t.message,messageType:e,severity:"ERROR",diagnosticsId:t.diagnosticsId??void 0,errorId:t.errorId??void 0,data:t.data??void 0,isFromDeveloper:t.isFromDeveloper?.toString(),stack:this.stack}),this.markAsReported())}}var ot=R(473),jr=(r=>(r.PAYMENT_METHOD="PAYMENT_METHOD",r.CHECK="CHECK",r))(jr||{});const At=r=>"fullMandateText"in r?.mandateData;var Xr=(r=>(r.CHANGE="change",r.ERROR="error",r.FOCUS="focus",r.BLUR="blur",r.CLICK="click",r.CLOSE="close",r))(Xr||{}),zr=(r=>(r.CARD="CARD",r.NATIVE="NATIVE",r.REDIRECT="REDIRECT",r.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",r.KLARNA="KLARNA",r.ACH="ACH",r))(zr||{});const it={SDK_VERSION:je,createHeadless:Xe,showExpressCheckout:ze,showUniversalCheckout:Qe,showVaultManager:Ze}})(),B})());
package/dist/index.d.ts CHANGED
@@ -1331,8 +1331,21 @@ export interface PositionalConfig {
1331
1331
  export interface ApplePayOptions extends PositionalConfig {
1332
1332
  buttonType?: "plain" | "buy" | "set-up" | "donate" | "check-out" | "book" | "subscribe";
1333
1333
  buttonStyle?: "white" | "white-outline" | "black";
1334
+ /**
1335
+ * @deprecated Add `postalAddress` to `billingOptions.requiredBillingContactFields` instead.
1336
+ */
1334
1337
  captureBillingAddress?: boolean;
1338
+ billingOptions?: ApplePayBillingOptions;
1339
+ shippingOptions?: ApplePayShippingOptions;
1340
+ }
1341
+ export interface ApplePayBillingOptions {
1342
+ requiredBillingContactFields?: RequiredContactFields[];
1335
1343
  }
1344
+ export interface ApplePayShippingOptions {
1345
+ requiredShippingContactFields?: RequiredContactFields[];
1346
+ requireShippingMethod?: boolean;
1347
+ }
1348
+ export type RequiredContactFields = "emailAddress" | "name" | "phoneNumber" | "postalAddress" | "phoneticName";
1336
1349
  export interface DirectDebitOptions {
1337
1350
  customerCountryCode: Alpha2CountryCode;
1338
1351
  companyName: string;
@@ -1356,12 +1369,18 @@ export type GooglePayButtonType =
1356
1369
  | "short" | "book" | "buy" | "checkout" | "donate" | "order" | "pay" | "plain" | "subscribe";
1357
1370
  export type GooglePayButtonColor = "default" | "black" | "white";
1358
1371
  export type GooglePayButtonSizeMode = "fill" | "static";
1372
+ export interface GooglePayShippingAddressParameters {
1373
+ phoneNumberRequired?: boolean;
1374
+ }
1359
1375
  export interface GooglePayOptions extends PositionalConfig {
1360
1376
  buttonType?: GooglePayButtonType;
1361
1377
  buttonColor?: GooglePayButtonColor;
1362
1378
  buttonSizeMode?: GooglePayButtonSizeMode;
1363
1379
  onClick?: () => void;
1364
1380
  captureBillingAddress?: boolean;
1381
+ shippingAddressParameters?: GooglePayShippingAddressParameters;
1382
+ emailRequired?: boolean;
1383
+ requireShippingMethod?: boolean;
1365
1384
  }
1366
1385
  export interface PayPalOptions extends PositionalConfig {
1367
1386
  buttonColor?: "gold" | "blue" | "silver" | "white" | "black";
@@ -2086,6 +2105,7 @@ export interface PrimerHeadlessCheckout {
2086
2105
  createPaymentMethodManager(type: PaymentMethodType.PAYPAL | "PAYPAL" | "GOOGLE_PAY" | "APPLE_PAY", options?: PaymentMethodManagerOptions): Promise<INativePaymentMethodManager | null>;
2087
2106
  createPaymentMethodManager(type: "ADYEN_IDEAL", options?: FormWithRedirectPaymentMethodManagerOptions): Promise<IFormWithRedirectPaymentMethodManager<BankIssuer> | null>;
2088
2107
  createPaymentMethodManager(type: "STRIPE_ACH", options?: AchPaymentMethodManagerOptions): Promise<IAchPaymentMethodManager | null>;
2108
+ createPaymentMethodManager(type: "KLARNA", options?: PaymentMethodManagerOptions): Promise<IKlarnaPaymentMethodManager | null>;
2089
2109
  createPaymentMethodManager(type: PaymentMethodType, options?: PaymentMethodManagerOptions): Promise<IRedirectPaymentMethodManager | null>;
2090
2110
  createVaultManager(): HeadlessVaultManager;
2091
2111
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/checkout-web",
3
- "version": "2.46.4",
3
+ "version": "2.46.6",
4
4
  "description": "Primer.js for the web",
5
5
  "author": "Primer Developers <developers@primer.io>",
6
6
  "homepage": "",