@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 +2 -2
- package/dist/index.d.ts +43 -32
- package/package.json +5 -6
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
968
|
+
tokenize(_options?: any): Promise<void>;
|
|
966
969
|
validate(): Promise<Validation>;
|
|
967
|
-
setDisabled(
|
|
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
|
|
1117
|
-
securityCode?: string
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
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
|
+
}
|