@primer-io/checkout-web 2.47.0 → 2.48.0

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 D=h[a];if(D!==void 0)return D.exports;var d=h[a]={exports:{}};return Q[a](d,d.exports,R),d.exports}R.d=(a,D)=>{for(var d in D)R.o(D,d)&&!R.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:D[d]})},R.o=(a,D)=>Object.prototype.hasOwnProperty.call(a,D),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 D="https://analytics.production.data.primer.io/sdk-logs",d=D==="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.47.0";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 C={providers:new Map,timers:new Map,eventsQueue:new Map};if(typeof window<"u"){const r=window[q];r?C=r:window[q]=C}const J=()=>C.providers,b=()=>C.timers,P=()=>C.eventsQueue,y=500,M=new Map,rr=64e3,ee=5;function H(r,e=!1,t=1){if(M.has(r)){const A=M.get(r);clearTimeout(A),M.delete(r)}const o=()=>{const A=P().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(T){i=!1,console.error("Unable to send events",T)}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)P().delete(r);else if(t<ee){const c=y*Math.pow(2,t);setTimeout(()=>H(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){P().has(r)||P().set(r,[]),P().get(r)?.push(e),H(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 x({url:r=D,...e}){typeof document<"u"&&!or&&(document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&H(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)??x({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 T=`Failed after ${_} retries. `;throw s?T+=`Reached maximum retries (${A.maxRetries}).`:n?T+="Network error encountered and retryNetworkErrors is disabled.":c&&(T+="HTTP 500 error encountered and retry500Errors is disabled."),T+=` Last error: ${E.message}`,t?.({messageType:"RETRY_FAILED",message:T,severity:"ERROR",errorBody:JSON.stringify(i,Object.getOwnPropertyNames(i))}),new Error(T,{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,Te=(r,e,t)=>ar(r,"get",e,t),De=(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 T=new Error(`HTTP error! status: ${n.status}`);throw T.status=n.status,T}const c=await n.json();if(t.includes("client-sdk/configuration")){const{primerAccountId:T,clientSession:{clientSessionId:Et,customer:_t}}=c;E=x({checkoutSessionId:r,clientSessionId:Et,customerId:_t?.customerId,primerAccountId:T,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(Te(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(De(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),Tr=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(r,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(r,0).map(e)),Dr=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?Dr(K(r)):K(r),Ce=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)}},Pe=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Lr=r=>r.replace(Pe,Ce),Sr=S?r=>Buffer.from(r,"utf8").toString("base64"):ur?r=>K(ur.encode(r)):r=>m(Lr(r)),l=(r,e=!1)=>e?Dr(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))}},Cr=r=>r.replace(Ye,Ie),Pr=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"):Pr,Yr=S?r=>Tr(Buffer.from(r,"base64")):r=>Tr(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=>Cr(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:Pr,btoa:m,btoaPolyfill:fr,fromBase64:W,toBase64:l,encode:l,encodeURI:lr,encodeURL:lr,utob:Lr,btou:Cr,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.47.0",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 He(r,e,t){const{accessToken:o,configurationUrl:_,analyticsUrlV2:A}=ke(r),i=x({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=D;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"),xe=(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 Hr(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()):Hr("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()):Hr("link",r,"href",{...e.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",e)}let I;async function xr(r){return I||(I=Promise.all([We("https://sdk.primer.io/web/v2.47.0/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),$e("https://sdk.primer.io/web/v2.47.0/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.47.0",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{xe(_,A),A.sdkFunctionEvent({name:r,params:[e,t,...o]}),A.timerStart({id:Qr[r]});const[i,E]=await Promise.all([He(e,_,t?.clientSessionCachingEnabled?{key:e,usePrimerSessionCacheTtlHeader:!0}:void 0),xr(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=()=>xr().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.AUTOMATED_CLEARING_HOUSE="AUTOMATED_CLEARING_HOUSE",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",AUTOMATED_CLEARING_HOUSE:"STRIPE_ACH"},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(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:`${e}: ${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=>{const e=r?.mandateData;return e?"fullMandateText"in e:!1};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(U,R){typeof exports=="object"&&typeof module=="object"?module.exports=R():typeof define=="function"&&define.amd?define([],R):typeof exports=="object"?exports.Primer=R():U.Primer=R()})(this,()=>(()=>{var y={189:()=>{},367:()=>{},56:()=>{}},U={};function R(D){var O=U[D];if(O!==void 0)return O.exports;var d=U[D]={exports:{}};return y[D](d,d.exports,R),d.exports}R.d=(D,O)=>{for(var d in O)R.o(O,d)&&!R.o(D,d)&&Object.defineProperty(D,d,{enumerable:!0,get:O[d]})},R.o=(D,O)=>Object.prototype.hasOwnProperty.call(D,O),R.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var v={};return(()=>{"use strict";R.r(v),R.d(v,{CheckoutUXFlow:()=>Vr,ErrorCode:()=>Qr,EventTypes:()=>qr,HeadlessManagerType:()=>Jr,PaymentFlow:()=>Wr,PaymentInstrumentType:()=>jr,PaymentMethodData:()=>it.PaymentMethodData,PaymentMethodType:()=>q,Primer:()=>Et,SuccessScreenType:()=>Zr,ThreeDSecureStatus:()=>$r,TokenType:()=>Xr,isStripeOptionsDropInWithFullMandateText:()=>At});let O={[{API_VERSION_2_4:"api-version-2.4"}.API_VERSION_2_4]:!1};function d(r){O={...O,...r??{}}}function yr(r){return O[r]??!1}function st(){return O}class f 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 f)return e;const o=e instanceof Error?e.message:String(e),E=new f(o,t);return e instanceof Error&&e.stack&&(E.stack=e.stack,Object.assign(E,e)),E}markAsReported(){this.isReported=!0}}const rr="https://analytics.production.data.primer.io/sdk-logs";var ct=R(189),at=R(367),x=(r=>(r.REQUEST_START="REQUEST_START",r.REQUEST_END="REQUEST_END",r))(x||{}),b=(r=>(r.START="START",r.END="END",r))(b||{});const H={createHeadless:"HEADLESS_LOADING",showExpressCheckout:"EXPRESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING",preloadPrimer:"PRELOAD_PRIMER_LOADING"};var l=(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))(l||{});const re={get(r,e){let t;try{switch(r){case"PRIMER_SDK_VERSION":t="v2.48.0";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 ee=(r=>(r.CHARGING="CHARGING",r.NOT_CHARGING="NOT_CHARGING",r))(ee||{});async function te(){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 oe="WEB",ie=re.get("PRIMER_SDK_VERSION");async function er(r,e,t){return{...t,createdAt:Date.now(),device:await te(),eventType:r,properties:e,sdkVersion:ie,sdkType:oe}}const tr=Symbol.for("__primerAnalytics__");let C={providers:new Map,timers:new Map,eventsQueue:new Map};if(typeof window<"u"){const r=window[tr];r?C=r:window[tr]=C}const or=()=>C.providers,F=()=>C.timers,Y=()=>C.eventsQueue,ir=500,g=new Map,Ar=64e3,Ae=5;function G(r,e=!1,t=1){if(g.has(r)){const i=g.get(r);clearTimeout(i),g.delete(r)}const o=()=>{const i=Y().get(r);if(i?.length){let A=!0,_=[],s=0,n=0;for(;n<i.length;){const c=i[n],L=JSON.stringify(c),N=new Blob([L]).size;if(N>Ar){console.error("Event size exceeds maximum payload size and will be skipped:",c),n++;continue}if(s+N>Ar&&_.length>0){try{A=navigator.sendBeacon(r,JSON.stringify(_))}catch(T){A=!1,console.error("Unable to send events",T)}if(!A)break;_=[],s=0}_.push(c),s+=N,n++}if(_.length>0&&A)try{A=navigator.sendBeacon(r,JSON.stringify(_))}catch(c){A=!1,console.error("Unable to send events",c)}if(A)Y().delete(r);else if(t<Ae){const c=ir*Math.pow(2,t);setTimeout(()=>G(r,e,t+1),c)}else console.error("Max retry attempts reached. Events will not be sent.")}};if(e){o();return}const E=setTimeout(o,ir);g.set(r,E)}function Ee(r,e){Y().has(r)||Y().set(r,[]),Y().get(r)?.push(e),G(r)}const Er=1024*5;function _r(r,e,t=new WeakSet,o=0,E=10){if(o>E||t.has(r))return r;t.add(r);const i=A=>typeof A=="object"&&A!==null?_r(A,e,t,o+1,E):e(A);return Array.isArray(r)?r.map(i):Object.fromEntries(Object.entries(r).map(([A,_])=>[A,i(_)]))}function _e(r){return typeof r=="string"&&r.length>Er?`${r.slice(0,Er)}...`:r}function ne(r){return typeof r=="function"?r.name||"function":r}let nr=!1;function m({url:r=rr,...e}){typeof document<"u"&&!nr&&(document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&G(r,!0)}),nr=!0);const t=E=>async i=>{if(typeof navigator>"u")return;const A=await er(E,i,e),s=_r(A,n=>_e(ne(n)));Ee(r,s)},o={crashEvent:t(l.CRASH_EVENT),messageEvent:t(l.MESSAGE_EVENT),networkCallEvent:t(l.NETWORK_CALL_EVENT),sdkFunctionEvent:t(l.SDK_FUNCTION_EVENT),timerStart:({id:E,...i})=>{const A=`${e.checkoutSessionId}|${E}`,_=performance?.now?performance.now():Date.now();return F().set(A,{start:_}),t(l.TIMER_EVENT)({...i,id:E,timerType:b.START})},timerEnd:({id:E,...i})=>{const A=`${e.checkoutSessionId}|${E}`,{start:_=void 0}=F().get(A)??{};F().delete(A);const s=performance?.now?performance.now():Date.now(),n=_?s-_:void 0;return t(l.TIMER_EVENT)({...i,id:E,timerType:b.END,duration:n})},v1Event:t(l.V1_EVENT),url:r};return or().set(e.checkoutSessionId,o),I(e.checkoutSessionId)}function I(r){return new Proxy({},{get(e,t){return(or().get(r)??m({checkoutSessionId:r}))[t]}})}const K=(r,e,t,o)=>({callType:t?x.REQUEST_END:x.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 se(r){return r?new Promise(e=>{setTimeout(e,r)}):Promise.resolve()}const ce=8,ae=100,Re=100;function Ne(r){return{enabled:r?.enabled??!1,maxRetries:ce,initialBackoff:ae,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:Re}}function Oe(r,e,t){const o=r*Math.pow(2,e-1),E=Math.random()*t;return Math.min(o+E,Number.MAX_SAFE_INTEGER)}async function sr(r,e,t,o=se){let E=0;const i=Ne(e);if(!i.enabled)return r();for(;;)try{const A=await r();if(E){let _=`Request succeeded after ${E} retries.`;typeof A=="object"&&A&&"status"in A&&(_+=` Status code: ${A.status}`),t?.({messageType:"RETRY_SUCCESS",message:_,severity:"INFO"})}return A}catch(A){const _=A,s=E>=i.maxRetries,n=_.isNetworkError&&!i.retryNetworkErrors,c=_.status&&_.status>=500&&!i.retry500Errors;if(s||n||c){let T=`Failed after ${E} retries. `;throw s?T+=`Reached maximum retries (${i.maxRetries}).`:n?T+="Network error encountered and retryNetworkErrors is disabled.":c&&(T+="HTTP 500 error encountered and retry500Errors is disabled."),T+=` Last error: ${_.message}`,t?.({messageType:"RETRY_FAILED",message:T,severity:"ERROR",errorBody:JSON.stringify(A,Object.getOwnPropertyNames(A))}),new Error(T,{cause:A})}E++;const L=Oe(i.initialBackoff,E,i.maxJitter);let N="Unknown error";_.isNetworkError?N="Network error":_.status&&(N=`HTTP ${_.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${E}/${i.maxRetries} due to: ${N}. Error details: ${_.message}. Waiting for ${L.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(A,Object.getOwnPropertyNames(A))}),await o(L)}}let V={cache:new Map};typeof window<"u"&&(window.__primerCache__??(window.__primerCache__=V),V=window.__primerCache__);const u=()=>V.cache,cr=1e3*60*60,ue=30,ar=50;function Rr(){if(u().size<=ue)return;const r=Date.now();for(const[e,t]of u())t.exp<r&&u().delete(e);if(u().size>ar)for(const[e]of u()){if(u().size<=ar)break;u().delete(e)}}function Te({key:r,ttl:e=cr},t){e?u().set(r,{promise:Promise.resolve({...t,source:"CACHE"}),exp:Date.now()+e}):u().delete(r)}function De(r){if(!r)return i=>i();const{key:e,refresh:t=!1,usePrimerSessionCacheTtlHeader:o=!1,ttl:E=cr}=r;return async i=>{const A=Date.now(),_=u().get(e);if(!t&&_&&_.exp>A)return _.promise;_&&u().delete(e);const s=i().then(n=>{let c=E;return o&&(c=(Number(n.headers.get("x-primer-session-cache-ttl"))||0)*1e3),Te({key:e,ttl:c},n),Rr(),n},n=>{throw u().delete(e),n});return u().set(e,{promise:s,exp:A+E}),Rr(),s}}const W=()=>Nr.randomUUID?.()||de(),de=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,r=>(r^fe()>>r/4).toString(16)),fe=()=>(Nr.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,Nr=typeof crypto<"u"?crypto:{},Or=15e3,le=(r,e,t)=>ur(r,"get",e,t),Le=(r,e,t,o)=>ur(r,"post",e,o,JSON.stringify(t)),ur=async(r,e,t,o,E)=>{const i=W(),A=performance?.now();let _=I(r);const s={method:e,url:t,body:E};_.networkCallEvent(K(i,s));try{const n=await fetch(t,{body:E,method:e,headers:{"content-type":"application/json","x-request-id":i,...o}});if(!n.ok){const T=new Error(`HTTP error! status: ${n.status}`);throw T.status=n.status,T}const c=await n.json();if(t.includes("client-sdk/configuration")){const{primerAccountId:T,clientSession:{clientSessionId:_t,customer:nt}}=c;_=m({checkoutSessionId:r,clientSessionId:_t,customerId:nt?.customerId,primerAccountId:T,url:_.url})}const N=performance?.now()-A;return _.networkCallEvent(K(i,s,{data:c},N)),{data:c,headers:n.headers,status:n.status,source:"NETWORK"}}catch(n){const L=performance?.now()-A;throw Object.assign(n,{isNetworkError:n instanceof TypeError}),_.networkCallEvent(K(i,s,{error:n},L)),n}},Tr=(r,e)=>new Promise((t,o)=>{const E=setTimeout(()=>{const i=new Error("Request timed out");i.isNetworkError=!0,o(i)},e);r.then(t).catch(o).finally(()=>clearTimeout(E))}),Se=(r,e)=>{const{headers:t,retryConfig:o,cacheConfig:E,timeout:i=Or,checkoutSessionId:A}=e,_=I(A);return De(E)(()=>sr(()=>Tr(le(A,r,t),i),o,s=>_.messageEvent({...s,url:r})))},Rt=(r,e,t)=>{const{headers:o,retryConfig:E,cacheConfig:i,timeout:A=Or,checkoutSessionId:_}=t,s=getAnalytics(_);return cacheRequest(i)(()=>retryWithExponentialBackoff(()=>Tr(Le(_,r,e,o),A),E,n=>s.messageEvent({...n,url:r})))},Dr="3.7.7",Pe=Dr,S=typeof Buffer=="function",dr=typeof TextDecoder=="function"?new TextDecoder:void 0,fr=typeof TextEncoder=="function"?new TextEncoder:void 0,h=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),k=(r=>{let e={};return r.forEach((t,o)=>e[t]=o),e})(h),Ce=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,a=String.fromCharCode.bind(String),lr=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):r=>new Uint8Array(Array.prototype.slice.call(r,0)),Lr=r=>r.replace(/=/g,"").replace(/[+\/]/g,e=>e=="+"?"-":"_"),Sr=r=>r.replace(/[^A-Za-z0-9\+\/]/g,""),Pr=r=>{let e,t,o,E,i="";const A=r.length%3;for(let _=0;_<r.length;){if((t=r.charCodeAt(_++))>255||(o=r.charCodeAt(_++))>255||(E=r.charCodeAt(_++))>255)throw new TypeError("invalid character found");e=t<<16|o<<8|E,i+=h[e>>18&63]+h[e>>12&63]+h[e>>6&63]+h[e&63]}return A?i.slice(0,A-3)+"===".substring(A):i},$=typeof btoa=="function"?r=>btoa(r):S?r=>Buffer.from(r,"binary").toString("base64"):Pr,j=S?r=>Buffer.from(r).toString("base64"):r=>{let t=[];for(let o=0,E=r.length;o<E;o+=4096)t.push(a.apply(null,r.subarray(o,o+4096)));return $(t.join(""))},w=(r,e=!1)=>e?Lr(j(r)):j(r),Ye=r=>{if(r.length<2){var e=r.charCodeAt(0);return e<128?r:e<2048?a(192|e>>>6)+a(128|e&63):a(224|e>>>12&15)+a(128|e>>>6&63)+a(128|e&63)}else{var e=65536+(r.charCodeAt(0)-55296)*1024+(r.charCodeAt(1)-56320);return a(240|e>>>18&7)+a(128|e>>>12&63)+a(128|e>>>6&63)+a(128|e&63)}},Ie=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Cr=r=>r.replace(Ie,Ye),Yr=S?r=>Buffer.from(r,"utf8").toString("base64"):fr?r=>j(fr.encode(r)):r=>$(Cr(r)),P=(r,e=!1)=>e?Lr(Yr(r)):Yr(r),Ir=r=>P(r,!0),he=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Me=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 a((t>>>10)+55296)+a((t&1023)+56320);case 3:return a((15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2));default:return a((31&r.charCodeAt(0))<<6|63&r.charCodeAt(1))}},hr=r=>r.replace(he,Me),Mr=r=>{if(r=r.replace(/\s+/g,""),!Ce.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(r.length&3));let e,t="",o,E;for(let i=0;i<r.length;)e=k[r.charAt(i++)]<<18|k[r.charAt(i++)]<<12|(o=k[r.charAt(i++)])<<6|(E=k[r.charAt(i++)]),t+=o===64?a(e>>16&255):E===64?a(e>>16&255,e>>8&255):a(e>>16&255,e>>8&255,e&255);return t},X=typeof atob=="function"?r=>atob(Sr(r)):S?r=>Buffer.from(r,"base64").toString("binary"):Mr,Ur=S?r=>lr(Buffer.from(r,"base64")):r=>lr(X(r).split("").map(e=>e.charCodeAt(0))),gr=r=>Ur(kr(r)),Ue=S?r=>Buffer.from(r,"base64").toString("utf8"):dr?r=>dr.decode(Ur(r)):r=>hr(X(r)),kr=r=>Sr(r.replace(/[-_]/g,e=>e=="-"?"+":"/")),z=r=>Ue(kr(r)),ge=r=>{if(typeof r!="string")return!1;const e=r.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},wr=r=>({value:r,enumerable:!1,writable:!0,configurable:!0}),Br=function(){const r=(e,t)=>Object.defineProperty(String.prototype,e,wr(t));r("fromBase64",function(){return z(this)}),r("toBase64",function(e){return P(this,e)}),r("toBase64URI",function(){return P(this,!0)}),r("toBase64URL",function(){return P(this,!0)}),r("toUint8Array",function(){return gr(this)})},pr=function(){const r=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,wr(t));r("toBase64",function(e){return w(this,e)}),r("toBase64URI",function(){return w(this,!0)}),r("toBase64URL",function(){return w(this,!0)})},vr={version:Dr,VERSION:Pe,atob:X,atobPolyfill:Mr,btoa:$,btoaPolyfill:Pr,fromBase64:z,toBase64:P,encode:P,encodeURI:Ir,encodeURL:Ir,utob:Cr,btou:hr,decode:z,isValid:ge,fromUint8Array:w,toUint8Array:gr,extendString:Br,extendUint8Array:pr,extendBuiltins:()=>{Br(),pr()}},ke={encode:we,decode:vr.decode};function we(r,e={}){const{urlSafe:t=!1}=e;return vr.encode(r,t)}function Be(r){const e=xe(r),t=e.exp*1e3;if(Date.now()>t)throw new Error(`${pe}. Expiration date: ${new Date(t).toISOString()}`);return e}const xr="The provided `clientToken`",pe=`${xr} has expired`,ve=`${xr} is malformed`;function xe(r){try{const[e,t]=r.split("."),o=t||e;return JSON.parse(ke.decode(o))}catch{throw new Error(ve)}}const be="v2.48.0",He=(r,e,t)=>({"primer-client-token":r,"primer-sdk-client":"WEB","primer-sdk-version":be,"primer-sdk-checkout-session-id":e,...t&&{"x-api-version":t}});async function Fe(r,e,t){const{accessToken:o,configurationUrl:E,analyticsUrlV2:i}=Be(r),A=m({checkoutSessionId:e,url:i}),_=yr("api-version-2.4");A.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:s,source:n}=await Se(`${E}/?withDisplayMetadata=true`,{checkoutSessionId:e,headers:He(o,e,_?"2.4":"2.3"),retryConfig:{enabled:!0},cacheConfig:t});return A.timerEnd({id:"CONFIGURATION_LOADING",context:{source:n}}),s}catch(s){const n=s instanceof Error?s.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${n}`)}}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 B({checkoutSessionId:r,analytics:e,error:t,reporter:o}){e?.crashEvent?e.crashEvent({...br(t),reporter:o}):r&&Q(r,t,o)}async function Q(r,e,t){const o=rr,E=await er(l.CRASH_EVENT,{...br(e),reporter:t},{checkoutSessionId:r});try{await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})}catch(i){console.error("Failed to post crash event",i)}}const Hr=Symbol.for("initGlobalErrorMonitoringLoaded"),Fr=(r,e)=>{typeof window<"u"&&window[Hr]||(window[Hr]=!0,window.addEventListener("error",t=>{Ge(t)||me(t)&&B({checkoutSessionId:r,analytics:e,error:t.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",t=>{const o=t.reason||new Error("Unhandled promise rejection");Ke(o)&&B({checkoutSessionId:r,analytics:e,error:o,reporter:"unhandledrejection"})}))},Ge=r=>r.message==="Script error."||!r.filename||r.lineno===0,me=r=>{const e=r.filename;return!!(e&&Z(e)&&new f(r.error).isReported)},Ke=r=>{if(r&&typeof r=="object"&&"stack"in r&&typeof r.stack=="string"){const e=f.from(r);if(e.isReported)return!1;if("fileName"in r&&typeof r.fileName=="string"){const o=r.fileName;if(Z(o))return!0}return Ve(e.stack).some(Z)}return!1},Z=r=>{try{return new URL(r,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},Ve=r=>{if(!r)return[];const e=r.split(`
2
+ `),t=[],o=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(const E of e){const i=E.match(o);if(i&&i[1])t.push(i[1]);else{const A=/@(.*?):\d+:\d+$/,_=E.match(A);_&&_[1]&&t.push(_[1])}}return t};function We(r,e){const t=document.createElement(r);return Object.entries(e).forEach(([o,E])=>t.setAttribute(o,E)),t}function Gr(r,e,t){return document.querySelector(`${r}[${e}^="${t}"]`)}async function mr(r,e,t,o,E,i){const{analytics:A,name:_=e,retryConfig:s}=i;await sr(()=>new Promise((c,L)=>{const N=Gr(r,t,e)||We(r,{...o,[t]:e});N.onload=()=>{A?.sdkFunctionEvent({name:_,params:[`${r.charAt(0).toUpperCase()+r.slice(1)} loaded successfully: ${e}`]}),c()},N.onerror=()=>{N.remove(),L(new Error(`${E}: ${e}`))},N.parentNode||document.head.appendChild(N)}),s,c=>A?.messageEvent({...c,url:e}))}function $e(r,e={}){return Gr("script","src",r)&&window.__Primer?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Script already loaded"]}),Promise.resolve()):mr("script",r,"src",{...e.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",e)}function je(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()):mr("link",r,"href",{...e.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",e)}let M;async function Kr(r){return M||(M=Promise.all([$e("https://sdk.primer.io/web/v2.48.0/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),je("https://sdk.primer.io/web/v2.48.0/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{const o=window.__Primer;return delete window.__Primer,o}).catch(o=>{throw M=void 0,o}),M)}const Xe=async()=>{const r=W();try{const e=I(r);try{Fr(r,e),e.sdkFunctionEvent({name:"preloadPrimer"}),e.timerStart({id:H.preloadPrimer}),await Kr(e),e.timerEnd({id:H.preloadPrimer})}catch(t){const o=f.from(t);throw o.isReported||(B({checkoutSessionId:r,analytics:e,error:o,reporter:"preloadPrimer level 1"}),o.markAsReported()),o}}catch(e){const t=f.from(e);throw t.isReported||(Q(r,t,"preloadPrimer level 0"),t.markAsReported()),t}},ze="v2.48.0",Qe=p("createHeadless"),Ze=p("showExpressCheckout"),qe=p("showUniversalCheckout"),Je=p("showVaultManager");function p(r){return async(...[e,t,...o])=>{d(t?.experimental);const E=W();try{const i=I(E);try{Fr(E,i),i.sdkFunctionEvent({name:r,params:[e,t,...o]}),i.timerStart({id:H[r]});const[A,_]=await Promise.all([Fe(e,E,t?.clientSessionCachingEnabled?{key:e,usePrimerSessionCacheTtlHeader:!0}:void 0),Kr(i)]);return _[r](A,E,e,t,...o)}catch(A){const _=f.from(A);throw _.isReported||(B({checkoutSessionId:E,analytics:i,error:_,reporter:"lazyLoad level 1"}),_.markAsReported()),_}}catch(i){const A=f.from(i);throw A.isReported||(Q(E,A,"lazyLoad level 0"),A.markAsReported()),A}}}var ye=(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))(ye||{}),rt=(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))(rt||{}),et=(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))(et||{}),Vr=(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))(Vr||{}),Wr=(r=>(r.DEFAULT="DEFAULT",r.PREFER_VAULT="PREFER_VAULT",r))(Wr||{}),tt=(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))(tt||{}),$r=(r=>(r.SUCCESS="AUTH_SUCCESS",r.FAILED="AUTH_FAILED",r.SKIPPED="SKIPPED",r.CHALLENGE="CHALLENGE",r))($r||{}),jr=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.AUTOMATED_CLEARING_HOUSE="AUTOMATED_CLEARING_HOUSE",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))(jr||{}),q=(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))(q||{}),ot=(r=>(r.PAYMENT_CARD="PAYMENT_CARD",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r))(ot||{}),Xr=(r=>(r.SINGLE_USE="SINGLE_USE",r.MULTI_USE="MULTI_USE",r))(Xr||{});const zr={PAYPAL_BILLING_AGREEMENT:"PAYPAL",KLARNA_CUSTOMER_TOKEN:"KLARNA",AUTOMATED_CLEARING_HOUSE:"STRIPE_ACH"},ut=r=>{if(Object.values(q).includes(r))return r;if(zr[r])return zr[r]};var Qr=(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))(Qr||{});class J extends f{static fromErrorCode(e,t,o){return new J(e,t,o)}constructor(e,t,o){super(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,J),o&&(o.messageEvent({message:`${e}: ${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 it=R(56),Zr=(r=>(r.PAYMENT_METHOD="PAYMENT_METHOD",r.CHECK="CHECK",r))(Zr||{});const At=r=>{const e=r?.mandateData;return e?"fullMandateText"in e:!1};var qr=(r=>(r.CHANGE="change",r.ERROR="error",r.FOCUS="focus",r.BLUR="blur",r.CLICK="click",r.CLOSE="close",r))(qr||{}),Jr=(r=>(r.CARD="CARD",r.NATIVE="NATIVE",r.REDIRECT="REDIRECT",r.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",r.KLARNA="KLARNA",r.ACH="ACH",r))(Jr||{});const Et={SDK_VERSION:ze,createHeadless:Qe,showExpressCheckout:Ze,showUniversalCheckout:qe,showVaultManager:Je,preloadPrimer:Xe}})(),v})());
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
- // Generated by dts-bundle-generator v6.9.0
2
-
3
- export declare const preloadPrimer: () => Promise<void>;
1
+ declare const ExperimentalFlagsTypes: {
2
+ readonly API_VERSION_2_4: "api-version-2.4";
3
+ };
4
+ export type ExperimentalFlags = {
5
+ [ExperimentalFlagsTypes.API_VERSION_2_4]: boolean;
6
+ };
4
7
  declare enum PaymentIntent {
5
8
  adyenKlarna = "ADYEN_KLARNA",
6
9
  applePay = "APPLE_PAY",
@@ -200,7 +203,7 @@ export type NetworkEventProperties = {
200
203
  duration?: number;
201
204
  callType: NetworkCallType;
202
205
  };
203
- export type TimerId = "CONFIGURATION_LOADING" | "HEADLESS_LOADING" | "EXPRESS_LOADING" | "DROP_IN_LOADING" | "VAULT_MANAGER_LOADING";
206
+ export type TimerId = "CONFIGURATION_LOADING" | "HEADLESS_LOADING" | "EXPRESS_LOADING" | "DROP_IN_LOADING" | "VAULT_MANAGER_LOADING" | "PRELOAD_PRIMER_LOADING";
204
207
  export interface TimerEventProperties {
205
208
  id: TimerId;
206
209
  context?: {
@@ -330,7 +333,7 @@ export interface FormSpacings {
330
333
  betweenLabelAndInput?: string;
331
334
  betweenInputs?: string;
332
335
  }
333
- export interface FontFace {
336
+ interface FontFace$1 {
334
337
  fontFamily?: string;
335
338
  src?: string;
336
339
  unicodeRange?: string;
@@ -382,7 +385,7 @@ export interface ProcessingIndicatorStyle {
382
385
  color?: string;
383
386
  }
384
387
  export interface CheckoutStyle {
385
- fontFaces?: Array<FontFace>;
388
+ fontFaces?: Array<FontFace$1>;
386
389
  stylesheets?: Array<Stylesheet>;
387
390
  loadingScreen?: LoadingScreenStyle;
388
391
  input?: InputStyles;
@@ -437,7 +440,7 @@ export interface Observer {
437
440
  declare class Observable {
438
441
  private observers;
439
442
  constructor();
440
- onEvent(event: IFrameMessagePayload): void;
443
+ onEvent(_event: IFrameMessagePayload): void;
441
444
  on(type: string, observer: Observer): void;
442
445
  once(type: string, observer: Observer): void;
443
446
  notify(event: IFrameMessagePayload): void;
@@ -962,9 +965,9 @@ declare class BasePaymentMethod {
962
965
  setOption(key: any, value: any): void;
963
966
  setupAndValidate(): Promise<boolean>;
964
967
  mount(): Promise<boolean>;
965
- tokenize(options?: any): Promise<void>;
968
+ tokenize(_options?: any): Promise<void>;
966
969
  validate(): Promise<Validation>;
967
- setDisabled(disabled: boolean): Promise<void>;
970
+ setDisabled(_disabled: boolean): Promise<void>;
968
971
  focus(): void;
969
972
  blur(): void;
970
973
  getPaymentElement(): Element | null;
@@ -1113,8 +1116,8 @@ declare class CheckoutStore extends BaseStore<ICheckoutState> implements IOption
1113
1116
  selectVault(id: string | null): void;
1114
1117
  getSelectedVaultItem(): VaultListItem | undefined;
1115
1118
  getSelectedVaultItemState(): {
1116
- metadata?: InputMetadata | undefined;
1117
- securityCode?: string | undefined;
1119
+ metadata?: InputMetadata;
1120
+ securityCode?: string;
1118
1121
  };
1119
1122
  setSelectedVaultItemState(state: ICheckoutState["vault"]["state"]): void;
1120
1123
  removeVault(id: string): Promise<void>;
@@ -1255,7 +1258,7 @@ export type CvvInput = {
1255
1258
  };
1256
1259
  export type CvvInputOptions = CardSecurityCodeInputOptions;
1257
1260
  export type HeadlessVaultManager = ReturnType<typeof createHeadlessVaultManager>;
1258
- declare function createHeadlessVaultManager(context: ClientContext): {
1261
+ declare function createHeadlessVaultManager(context: BaseClientContext): {
1259
1262
  fetchVaultedPaymentMethods(): Promise<VaultedPaymentMethod[]>;
1260
1263
  deleteVaultedPaymentMethod(id: string): Promise<void>;
1261
1264
  startPaymentFlow(id: string, data?: {
@@ -1306,7 +1309,7 @@ declare class SDKError extends Error {
1306
1309
  static from(error: unknown, isReported?: boolean): SDKError;
1307
1310
  markAsReported(): void;
1308
1311
  }
1309
- export interface ErrorOptions<T = any> {
1312
+ interface ErrorOptions$1<T = any> {
1310
1313
  message: string;
1311
1314
  diagnosticsId?: string;
1312
1315
  severity?: MessageSeverity;
@@ -1319,8 +1322,8 @@ declare class PrimerClientError<T = any> extends SDKError {
1319
1322
  readonly diagnosticsId: string | null;
1320
1323
  readonly data?: T;
1321
1324
  readonly isFromDeveloper: boolean;
1322
- static fromErrorCode(code: ErrorCode, options: ErrorOptions, analytics?: Analytics): PrimerClientError;
1323
- constructor(code: ErrorCode, options: ErrorOptions<T>, analytics?: Analytics);
1325
+ static fromErrorCode(code: ErrorCode, options: ErrorOptions$1, analytics?: Analytics): PrimerClientError;
1326
+ constructor(code: ErrorCode, options: ErrorOptions$1<T>, analytics?: Analytics);
1324
1327
  }
1325
1328
  export interface CardMetadata {
1326
1329
  /** @deprecated Use onCardNetworksChange instead. */
@@ -1330,7 +1333,7 @@ export interface CardMetadata {
1330
1333
  cvvLength: number;
1331
1334
  cardNumberLength: number;
1332
1335
  }
1333
- export type PaymentMethodData = AdyenMultibancoPaymentData;
1336
+ type PaymentMethodData$1 = AdyenMultibancoPaymentData;
1334
1337
  export type AdyenMultibancoPaymentData = {
1335
1338
  paymentMethodType: PaymentMethodType.ADYEN_MULTIBANCO;
1336
1339
  reference: string;
@@ -1338,7 +1341,7 @@ export type AdyenMultibancoPaymentData = {
1338
1341
  entity: string;
1339
1342
  };
1340
1343
  export interface PositionalConfig {
1341
- container: string;
1344
+ container: string | Element;
1342
1345
  }
1343
1346
  export interface ApplePayOptions extends PositionalConfig {
1344
1347
  buttonType?: "plain" | "buy" | "set-up" | "donate" | "check-out" | "book" | "subscribe";
@@ -1393,6 +1396,7 @@ export interface GooglePayOptions extends PositionalConfig {
1393
1396
  shippingAddressParameters?: GooglePayShippingAddressParameters;
1394
1397
  emailRequired?: boolean;
1395
1398
  requireShippingMethod?: boolean;
1399
+ shadowRoot?: boolean;
1396
1400
  }
1397
1401
  export interface PayPalOptions extends PositionalConfig {
1398
1402
  buttonColor?: "gold" | "blue" | "silver" | "white" | "black";
@@ -1404,10 +1408,6 @@ export interface PayPalOptions extends PositionalConfig {
1404
1408
  paymentFlow?: PaymentFlow;
1405
1409
  onClick?: () => void;
1406
1410
  }
1407
- export interface TransitionDurationOptions {
1408
- enter?: number;
1409
- exit?: number;
1410
- }
1411
1411
  export interface SubmitButtonOptions {
1412
1412
  amountVisible?: boolean;
1413
1413
  useBuiltInButton?: boolean;
@@ -1544,7 +1544,7 @@ export interface KlarnaOptions {
1544
1544
  export type SupportedLocale = string;
1545
1545
  export type Alpha2CountryCode = string;
1546
1546
  export type Alpha3CurrencyCode = string;
1547
- export type ElementOrID = string | HTMLElement | null;
1547
+ export type ElementOrID = string | HTMLElement | null | undefined;
1548
1548
  export type ValidationErrorType = "required" | "invalid";
1549
1549
  export type Label<T extends Record<string, unknown> = Record<string, unknown>> = string | ((options: {
1550
1550
  locale: SupportedLocale;
@@ -1760,7 +1760,7 @@ export type PaymentHandling = "AUTO" | "MANUAL";
1760
1760
  export type Payment = {
1761
1761
  id: string;
1762
1762
  orderId: string;
1763
- paymentMethodData?: PaymentMethodData;
1763
+ paymentMethodData?: PaymentMethodData$1;
1764
1764
  };
1765
1765
  export interface onBeforePaymentCreateHandler {
1766
1766
  continuePaymentCreation: () => void;
@@ -1803,7 +1803,7 @@ export interface OnResumeSuccessHandler {
1803
1803
  }
1804
1804
  export type OnResumeSuccess = (data: ResumeToken, handler: OnResumeSuccessHandler) => void;
1805
1805
  export type onResumeError = (error: PrimerClientError) => void;
1806
- export type OnResumePending = (paymentMethodData: PaymentMethodData) => void;
1806
+ export type OnResumePending = (paymentMethodData: PaymentMethodData$1) => void;
1807
1807
  export interface TokenizationHandlers {
1808
1808
  onTokenizeShouldStart?: OnTokenizeShouldStart;
1809
1809
  onTokenizeDidNotStart?: OnTokenizeDidNotStart;
@@ -1848,6 +1848,7 @@ export interface SinglePaymentMethodCheckoutOptions extends TokenizationHandlers
1848
1848
  stripe?: StripeOptions;
1849
1849
  paymentHandling?: PaymentHandling;
1850
1850
  clientSessionCachingEnabled?: boolean;
1851
+ experimental?: ExperimentalFlags;
1851
1852
  }
1852
1853
  export interface VaultManagerOptions extends WithAllowedCardNetworks {
1853
1854
  container: string | Element;
@@ -1870,6 +1871,7 @@ export interface VaultManagerOptions extends WithAllowedCardNetworks {
1870
1871
  onTokenizeStart?: () => void;
1871
1872
  onTokenizeSuccess?: (data: PaymentMethodToken) => void;
1872
1873
  onTokenizeError?: (message: PrimerClientError) => void;
1874
+ experimental?: ExperimentalFlags;
1873
1875
  }
1874
1876
  export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers, WithAllowedCardNetworks {
1875
1877
  uxFlow?: CheckoutUXFlow.CHECKOUT;
@@ -1897,6 +1899,7 @@ export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentH
1897
1899
  paymentHandling?: PaymentHandling;
1898
1900
  advanced?: AdvancedOptions;
1899
1901
  clientSessionCachingEnabled?: boolean;
1902
+ experimental?: ExperimentalFlags;
1900
1903
  }
1901
1904
  export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers, WithAllowedCardNetworks {
1902
1905
  style?: CheckoutStyle;
@@ -1914,6 +1917,7 @@ export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers,
1914
1917
  stripe?: StripeOptions;
1915
1918
  onAvailablePaymentMethodsLoad: (paymentMethods: PaymentMethodInfo[]) => void;
1916
1919
  clientSessionCachingEnabled?: boolean;
1920
+ experimental?: ExperimentalFlags;
1917
1921
  }
1918
1922
  export type WithAllowedCardNetworks = {
1919
1923
  /** @deprecated Use `orderedAllowedCardNetworks` on your Primer Dashboard instead. */
@@ -1930,7 +1934,7 @@ export interface PrimerCheckout {
1930
1934
  */
1931
1935
  setClientToken(): Promise<boolean>;
1932
1936
  }
1933
- export type EventListener = (event?: Event) => void;
1937
+ type EventListener$1 = (event?: Event) => void;
1934
1938
  export declare enum EventTypes {
1935
1939
  CHANGE = "change",
1936
1940
  ERROR = "error",
@@ -1947,8 +1951,8 @@ export interface HeadlessHostedInputOptions {
1947
1951
  export interface IHeadlessHostedInput {
1948
1952
  getOptions(): HeadlessHostedInputOptions;
1949
1953
  setOptions(options: HeadlessHostedInputOptions): void;
1950
- render(container: string, options: HeadlessHostedInputOptions): Promise<void>;
1951
- addEventListener(event: EventTypes, callback: EventListener): void;
1954
+ render(container: string | Element | null, options: HeadlessHostedInputOptions): Promise<void>;
1955
+ addEventListener(event: EventTypes, callback: EventListener$1): void;
1952
1956
  focus(): void;
1953
1957
  blur(): void;
1954
1958
  setDisabled(status: boolean): void;
@@ -1979,6 +1983,7 @@ export interface PayPalStyles {
1979
1983
  export interface GooglePayStyles {
1980
1984
  buttonType?: "long" | "short";
1981
1985
  buttonColor?: "default" | "black" | "white";
1986
+ shadowRoot?: boolean;
1982
1987
  }
1983
1988
  export interface ApplePayStyles {
1984
1989
  buttonType?: "plain" | "buy" | "set-up" | "donate" | "check-out" | "book" | "subscribe";
@@ -1988,19 +1993,19 @@ export interface HeadlessButtonRenderOptions {
1988
1993
  style?: GooglePayStyles | PayPalStyles | ApplePayStyles | Record<string, unknown>;
1989
1994
  }
1990
1995
  export interface IHeadlessPaymentMethodButton {
1991
- render(containerId: string, options: HeadlessButtonRenderOptions): Promise<void>;
1996
+ render(containerId: string | Element, options: HeadlessButtonRenderOptions): Promise<void>;
1992
1997
  setDisabled(disabled: boolean): Promise<void>;
1993
1998
  clean(): void;
1994
1999
  focus(): void;
1995
2000
  blur(): void;
1996
- addEventListener(event: EventTypes, callback: EventListener): void;
2001
+ addEventListener(event: EventTypes, callback: EventListener$1): void;
1997
2002
  }
1998
2003
  export interface INativePaymentMethodManager {
1999
2004
  createButton(): IHeadlessPaymentMethodButton;
2000
2005
  }
2001
2006
  export interface IRedirectPaymentMethodManager {
2002
2007
  start(): Promise<void>;
2003
- addEventListener(event: EventTypes, callback: EventListener): void;
2008
+ addEventListener(event: EventTypes, callback: EventListener$1): void;
2004
2009
  }
2005
2010
  export interface IFormWithRedirectPaymentMethodManager<T> {
2006
2011
  start(): any;
@@ -2009,7 +2014,7 @@ export interface IFormWithRedirectPaymentMethodManager<T> {
2009
2014
  export interface IKlarnaPaymentMethodManager {
2010
2015
  start(paymentPayload: KlarnaPaymentPayload): Promise<KlarnaPaymentResponse>;
2011
2016
  renderCategory(renderCategoryDetails: RenderCategoryDetails): Promise<void>;
2012
- addEventListener(event: EventTypes, callback: EventListener): void;
2017
+ addEventListener(event: EventTypes, callback: EventListener$1): void;
2013
2018
  getPaymentMethod(): void;
2014
2019
  }
2015
2020
  export interface IAchPaymentMethodManager {
@@ -2107,7 +2112,7 @@ export type KlarnaPaymentResponse = {
2107
2112
  outcome: "APPROVED" | "DENIED";
2108
2113
  };
2109
2114
  export type RenderCategoryDetails = {
2110
- containerId: string;
2115
+ containerId: string | Element;
2111
2116
  paymentMethodCategoryId: string;
2112
2117
  onHeightChange: (height: number) => void;
2113
2118
  };
@@ -2159,6 +2164,12 @@ export declare const Primer: {
2159
2164
  showExpressCheckout: (clientToken: string, options: any) => Promise<Promise<PrimerCheckout>>;
2160
2165
  showUniversalCheckout: (clientToken: string, options: UniversalCheckoutOptions | SinglePaymentMethodCheckoutOptions) => Promise<Promise<PrimerCheckout>>;
2161
2166
  showVaultManager: (clientToken: string, options: VaultManagerOptions) => Promise<Promise<PrimerVaultManager>>;
2167
+ preloadPrimer: () => Promise<void>;
2168
+ };
2169
+
2170
+ export {
2171
+ EventListener$1 as EventListener,
2172
+ PaymentMethodData$1 as PaymentMethodData,
2162
2173
  };
2163
2174
 
2164
2175
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/checkout-web",
3
- "version": "2.47.0",
3
+ "version": "2.48.0",
4
4
  "description": "Primer.js for the web",
5
5
  "author": "Primer Developers <developers@primer.io>",
6
6
  "homepage": "",
@@ -18,15 +18,14 @@
18
18
  "build": "yarn clean && yarn build.compile && yarn build.types",
19
19
  "build.compile": "webpack",
20
20
  "dev": "webpack serve --config ./webpack.dev.config.js",
21
- "build.types": "tsc --project tsconfig.types.json && dts-bundle-generator --config ./dtsconfig.json ",
21
+ "build.types": "dts-bundle-generator --config ./dtsconfig.json",
22
22
  "postpublish": "clean-package restore",
23
23
  "prepublishOnly": "clean-package",
24
- "start": "node demos/server.js",
25
- "start:test": "webpack serve --env PORT=4321",
26
24
  "start:playwright:test:ui": "npx playwright test --ui",
27
25
  "start:playwright:test": "npx playwright test",
28
26
  "start:playwright:ci": "npx playwright test --project=chromium",
29
27
  "lint": "eslint ./src",
30
- "check-types": "tsc --noemit -p tsconfig.json"
28
+ "check-types": "tsc --noemit -p tsconfig.json",
29
+ "generate-ts": "npx openapi-typescript ./apis/v2-4-api/openapi.yaml --output ./typings/generated.ts"
31
30
  }
32
- }
31
+ }