@primer-io/checkout-web 2.36.0 → 2.37.1

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 +1 @@
1
- (function(G,f){typeof exports=="object"&&typeof module=="object"?module.exports=f():typeof define=="function"&&define.amd?define([],f):typeof exports=="object"?exports.Primer=f():G.Primer=f()})(this,function(){return function(){var y={453:function(R,A,s){"use strict";var D=this&&this.__assign||function(){return D=Object.assign||function(_){for(var u,P=1,M=arguments.length;P<M;P++){u=arguments[P];for(var U in u)Object.prototype.hasOwnProperty.call(u,U)&&(_[U]=u[U])}return _},D.apply(this,arguments)},S=s(743),a=s(576),E=s(243),h=s(169),p=s(679),l={},O={VISA:"visa",MASTERCARD:"mastercard",AMERICAN_EXPRESS:"american-express",DINERS_CLUB:"diners-club",DISCOVER:"discover",JCB:"jcb",UNIONPAY:"unionpay",MAESTRO:"maestro",ELO:"elo",MIR:"mir",HIPER:"hiper",HIPERCARD:"hipercard"},v=[O.VISA,O.MASTERCARD,O.AMERICAN_EXPRESS,O.DINERS_CLUB,O.DISCOVER,O.JCB,O.UNIONPAY,O.MAESTRO,O.ELO,O.MIR,O.HIPER,O.HIPERCARD],I=p.clone(v);function k(_){return l[_]||S[_]}function m(){return I.map(function(_){return p.clone(k(_))})}function B(_,u){u===void 0&&(u=!1);var P=I.indexOf(_);if(!u&&P===-1)throw new Error('"'+_+'" is not a supported card type.');return P}function g(_){var u=[];if(!E.isValidInputType(_))return u;if(_.length===0)return m();I.forEach(function(M){var U=k(M);a.addMatchingCardsToResults(_,U,u)});var P=h.findBestMatch(u);return P?[P]:u}g.getTypeInfo=function(_){return p.clone(k(_))},g.removeCard=function(_){var u=B(_);I.splice(u,1)},g.addCard=function(_){var u=B(_.type,!0);l[_.type]=_,u===-1&&I.push(_.type)},g.updateCard=function(_,u){var P=l[_]||S[_];if(!P)throw new Error('"'+_+"\" is not a recognized type. Use `addCard` instead.'");if(u.type&&P.type!==u.type)throw new Error("Cannot overwrite type parameter.");var M=p.clone(P);M=D(D({},M),u),l[M.type]=M},g.changeOrder=function(_,u){var P=B(_);I.splice(P,1),I.splice(u,0,_)},g.resetModifications=function(){I=p.clone(v),l={}},g.types=O,R.exports=g},576:function(R,A,s){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.addMatchingCardsToResults=void 0;var D=s(679),S=s(864);function a(E,h,p){var l,O;for(l=0;l<h.patterns.length;l++){var v=h.patterns[l];if(S.matches(E,v)){var I=D.clone(h);Array.isArray(v)?O=String(v[0]).length:O=String(v).length,E.length>=O&&(I.matchStrength=O),p.push(I);break}}}A.addMatchingCardsToResults=a},743:function(R){"use strict";var A={visa:{niceType:"Visa",type:"visa",patterns:[4],gaps:[4,8,12],lengths:[16,18,19],code:{name:"CVV",size:3}},mastercard:{niceType:"Mastercard",type:"mastercard",patterns:[[51,55],[2221,2229],[223,229],[23,26],[270,271],2720],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},"american-express":{niceType:"American Express",type:"american-express",patterns:[34,37],gaps:[4,10],lengths:[15],code:{name:"CID",size:4}},"diners-club":{niceType:"Diners Club",type:"diners-club",patterns:[[300,305],36,38,39],gaps:[4,10],lengths:[14,16,19],code:{name:"CVV",size:3}},discover:{niceType:"Discover",type:"discover",patterns:[6011,[644,649],65],gaps:[4,8,12],lengths:[16,19],code:{name:"CID",size:3}},jcb:{niceType:"JCB",type:"jcb",patterns:[2131,1800,[3528,3589]],gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVV",size:3}},unionpay:{niceType:"UnionPay",type:"unionpay",patterns:[620,[624,626],[62100,62182],[62184,62187],[62185,62197],[62200,62205],[622010,622999],622018,[622019,622999],[62207,62209],[622126,622925],[623,626],6270,6272,6276,[627700,627779],[627781,627799],[6282,6289],6291,6292,810,[8110,8131],[8132,8151],[8152,8163],[8164,8171]],gaps:[4,8,12],lengths:[14,15,16,17,18,19],code:{name:"CVN",size:3}},maestro:{niceType:"Maestro",type:"maestro",patterns:[493698,[5e5,504174],[504176,506698],[506779,508999],[56,59],63,67,6],gaps:[4,8,12],lengths:[12,13,14,15,16,17,18,19],code:{name:"CVC",size:3}},elo:{niceType:"Elo",type:"elo",patterns:[401178,401179,438935,457631,457632,431274,451416,457393,504175,[506699,506778],[509e3,509999],627780,636297,636368,[650031,650033],[650035,650051],[650405,650439],[650485,650538],[650541,650598],[650700,650718],[650720,650727],[650901,650978],[651652,651679],[655e3,655019],[655021,655058]],gaps:[4,8,12],lengths:[16],code:{name:"CVE",size:3}},mir:{niceType:"Mir",type:"mir",patterns:[[2200,2204]],gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVP2",size:3}},hiper:{niceType:"Hiper",type:"hiper",patterns:[637095,63737423,63743358,637568,637599,637609,637612],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},hipercard:{niceType:"Hipercard",type:"hipercard",patterns:[606282],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}}};R.exports=A},679:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.clone=void 0;function s(D){return D?JSON.parse(JSON.stringify(D)):null}A.clone=s},169:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.findBestMatch=void 0;function s(S){var a=S.filter(function(E){return E.matchStrength}).length;return a>0&&a===S.length}function D(S){return s(S)?S.reduce(function(a,E){return!a||Number(a.matchStrength)<Number(E.matchStrength)?E:a}):null}A.findBestMatch=D},243:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.isValidInputType=void 0;function s(D){return typeof D=="string"||D instanceof String}A.isValidInputType=s},864:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.matches=void 0;function s(a,E,h){var p=String(E).length,l=a.substr(0,p),O=parseInt(l,10);return E=parseInt(String(E).substr(0,l.length),10),h=parseInt(String(h).substr(0,l.length),10),O>=E&&O<=h}function D(a,E){return E=String(E),E.substring(0,a.length)===a.substring(0,E.length)}function S(a,E){return Array.isArray(E)?s(a,E[0],E[1]):D(a,E)}A.matches=S},476:function(){},962:function(){},473:function(){}},G={};function f(R){var A=G[R];if(A!==void 0)return A.exports;var s=G[R]={exports:{}};return y[R].call(s.exports,s,s.exports,f),s.exports}(function(){f.d=function(R,A){for(var s in A)f.o(A,s)&&!f.o(R,s)&&Object.defineProperty(R,s,{enumerable:!0,get:A[s]})}})(),function(){f.o=function(R,A){return Object.prototype.hasOwnProperty.call(R,A)}}(),function(){f.r=function(R){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(R,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(R,"__esModule",{value:!0})}}();var X={};return function(){"use strict";f.r(X),f.d(X,{CheckoutUXFlow:function(){return ve},CvvInput:function(){return R.CvvInput},ErrorCode:function(){return He},EventTypes:function(){return Ge},HeadlessManagerType:function(){return me},PaymentFlow:function(){return Ue},PaymentInstrumentType:function(){return be},PaymentMethodData:function(){return Kr.PaymentMethodData},PaymentMethodType:function(){return q},Primer:function(){return zr},SuccessScreenType:function(){return xe},ThreeDSecureStatus:function(){return Be},TokenType:function(){return ke},preloadPrimer:function(){return Hr}});var R={};f.r(R);var A=f(476),s=f(962),D=(e=>(e.REQUEST_START="REQUEST_START",e.REQUEST_END="REQUEST_END",e))(D||{}),S=(e=>(e.START="START",e.END="END",e))(S||{}),a=(e=>(e.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",e.CRASH_EVENT="CRASH_EVENT",e.TIMER_EVENT="TIMER_EVENT",e.MESSAGE_EVENT="MESSAGE_EVENT",e.V1_EVENT="V1_EVENT",e.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",e))(a||{});const E={get(e,r){let t;try{switch(e){case"PRIMER_SDK_VERSION":t="v2.36.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_PCI_API_URL":t=process.env.PRIMER_PCI_API_URL;break;case"PRIMER_MODULES_URL":t=process.env.PRIMER_MODULES_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":t=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;case"SENTRY_DSN":t=process.env.SENTRY_DSN;break;default:break}}catch{}return t||r}};var h=(e=>(e.CHARGING="CHARGING",e.NOT_CHARGING="NOT_CHARGING",e))(h||{});async function p(){if(typeof navigator>"u")return;const e=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},platformVersion:navigator.platform,userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:e?.level,batteryStatus:e?.charging?"CHARGING":"NOT_CHARGING"}}const l="WEB",O=E.get("PRIMER_SDK_VERSION");async function v(e,r,t){return{...t,createdAt:Date.now(),device:await p(),eventType:e,properties:r,sdkVersion:O,sdkType:l}}const I="https://analytics.production.data.primer.io/sdk-logs",k=1024*5,m=e=>`@primer/analytics/${e}`;function B({url:e=I,...r}={}){typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&g(e)});const t=n=>async o=>{if(typeof navigator>"u")return;const i=await v(n,o,r),c=u(i,T=>P(M(T)));_(e,c)};return{crashEvent:t(a.CRASH_EVENT),messageEvent:t(a.MESSAGE_EVENT),networkCallEvent:t(a.NETWORK_CALL_EVENT),sdkFunctionEvent:t(a.SDK_FUNCTION_EVENT),timerEvent:t(a.TIMER_EVENT),v1Event:t(a.V1_EVENT)}}function g(e){const r=m(e),t=sessionStorage.getItem(r);sessionStorage.removeItem(r),t&&navigator.sendBeacon(e,t)}function _(e,r){const t=m(e);sessionStorage.setItem(t,`[${[sessionStorage.getItem(t)?.slice(1,-1),JSON.stringify(r)].filter(Boolean).join(",")}]`)}function u(e,r){const t=n=>typeof n=="object"&&n!==null?u(n,r):r(n);return Array.isArray(e)?e.map(t):Object.fromEntries(Object.entries(e).map(([n,o])=>[n,t(o)]))}function P(e){return typeof e=="string"&&e.length>k?`${e.slice(0,k)}...`:e}function M(e){return typeof e=="function"?e.name||"function":e}class U{constructor(r,t){this.type=r,this.displayName=t}get specs(){return this.constructor.specs}setOption(r,t){this.options&&(this.options[r]=t)}setupAndValidate(){return Promise.resolve(!0)}mount(){return Promise.resolve(!0)}tokenize(r){return Promise.resolve()}validate(){return Promise.resolve({valid:!0,validationErrors:[]})}setDisabled(r){return Promise.resolve()}focus(){}blur(){}getPaymentElement(){return null}getStore(){}}U.specs={key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1},U.create=(e,r,t,n)=>{throw new Error("Cannot instantiate BasePaymentMethod")};class Ke extends U{async tokenize(r){}}class We{get session(){const r=this.store.getState().clientSessionInfo;if(!r)throw new Error("Client Context Session does not exist");return r}}const je=[Array,Ke,We,Map,Set];function ze(e){const r=new Set,t=20;let n=0;for(;n++<t&&e&&e!==Object.prototype;)Object.getOwnPropertyNames(e).forEach(o=>r.add(o)),e=Object.getPrototypeOf(e);return[...r]}function ee(e,r,t,n,o){if(!t||je.some(i=>t instanceof i))return t;switch(typeof t){case"function":return new Proxy(t,{apply(i,N,c=[]){const T={name:r.replace(/^bound /,""),params:c,module:o};e?.sdkFunctionEvent(T);const Y=c.map((z,d)=>ee(e,`${d}`,z,n,[o,r,`${d}`].filter(Boolean).join(".")));return i.apply(N,Y)}});case"object":return t===n?t:Xe(e,t,[o,r].filter(Boolean).join("."));default:return t}}function Xe(e,r,t){return Object.fromEntries(ze(r).map(n=>{const o=r?.[n],i=ee(e,n,o,o,t);return[n,i]}))}const re=()=>te.randomUUID?.()||$e(),$e=()=>([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^Qe()>>e/4).toString(16)),Qe=()=>(te.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,te=typeof crypto<"u"?crypto:{},Ze=new Set(["post","get","delete"]),Je=new Set(["post"]);function qe(e,r,t,n){const o=Je.has(e);return{method:e,options:o?n:t,body:o?t:void 0,url:r}}function Xr(e,r){const t=({prop:n})=>({apply:async(o,i,N=[])=>{const c=qe(n.toString(),...N);if(c.options?.isAnalytics)return o.apply(i,N);const T=uuid();r?.networkCallEvent(prepareNetworkEventProps(T,c));const Y=await o.apply(i,N);return r?.networkCallEvent(prepareNetworkEventProps(T,c,Y)),Y}});return new Proxy(e,{get(n,o){const i=n[o];return typeof i=="function"&&Ze.has(o)?new Proxy(i,t({prop:o})):i}})}const ne=(e,r,t)=>({callType:t?D.REQUEST_END:D.REQUEST_START,id:e,errorBody:t?.error&&JSON.stringify(t.error),method:r.method,responseCode:t?.status,url:r.url}),oe="3.6.1",ye=oe,er=typeof atob=="function",rr=typeof btoa=="function",F=typeof Buffer=="function",ie=typeof TextDecoder=="function"?new TextDecoder:void 0,Ae=typeof TextEncoder=="function"?new TextEncoder:void 0,w=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],K=(e=>{let r={};return e.forEach((t,n)=>r[t]=n),r})(w),tr=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,C=String.fromCharCode.bind(String),_e=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(e,r=t=>t)=>new Uint8Array(Array.prototype.slice.call(e,0).map(r)),ce=e=>e.replace(/[+\/]/g,r=>r=="+"?"-":"_").replace(/=+$/m,""),se=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),Ee=e=>{let r,t,n,o,i="";const N=e.length%3;for(let c=0;c<e.length;){if((t=e.charCodeAt(c++))>255||(n=e.charCodeAt(c++))>255||(o=e.charCodeAt(c++))>255)throw new TypeError("invalid character found");r=t<<16|n<<8|o,i+=w[r>>18&63]+w[r>>12&63]+w[r>>6&63]+w[r&63]}return N?i.slice(0,N-3)+"===".substring(N):i},$=rr?e=>btoa(e):F?e=>Buffer.from(e,"binary").toString("base64"):Ee,Q=F?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let n=0,o=e.length;n<o;n+=4096)t.push(C.apply(null,e.subarray(n,n+4096)));return $(t.join(""))},W=(e,r=!1)=>r?ce(Q(e)):Q(e),nr=e=>{if(e.length<2){var r=e.charCodeAt(0);return r<128?e:r<2048?C(192|r>>>6)+C(128|r&63):C(224|r>>>12&15)+C(128|r>>>6&63)+C(128|r&63)}else{var r=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return C(240|r>>>18&7)+C(128|r>>>12&63)+C(128|r>>>6&63)+C(128|r&63)}},or=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,ae=e=>e.replace(or,nr),ue=F?e=>Buffer.from(e,"utf8").toString("base64"):Ae?e=>Q(Ae.encode(e)):e=>$(ae(e)),H=(e,r=!1)=>r?ce(ue(e)):ue(e),Re=e=>H(e,!0),ir=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Ar=e=>{switch(e.length){case 4:var r=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),t=r-65536;return C((t>>>10)+55296)+C((t&1023)+56320);case 3:return C((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return C((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},Oe=e=>e.replace(ir,Ar),Ne=e=>{if(e=e.replace(/\s+/g,""),!tr.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let r,t="",n,o;for(let i=0;i<e.length;)r=K[e.charAt(i++)]<<18|K[e.charAt(i++)]<<12|(n=K[e.charAt(i++)])<<6|(o=K[e.charAt(i++)]),t+=n===64?C(r>>16&255):o===64?C(r>>16&255,r>>8&255):C(r>>16&255,r>>8&255,r&255);return t},Z=er?e=>atob(se(e)):F?e=>Buffer.from(e,"base64").toString("binary"):Ne,de=F?e=>_e(Buffer.from(e,"base64")):e=>_e(Z(e),r=>r.charCodeAt(0)),De=e=>de(Te(e)),_r=F?e=>Buffer.from(e,"base64").toString("utf8"):ie?e=>ie.decode(de(e)):e=>Oe(Z(e)),Te=e=>se(e.replace(/[-_]/g,r=>r=="-"?"+":"/")),J=e=>_r(Te(e)),cr=e=>{if(typeof e!="string")return!1;const r=e.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(r)||!/[^\s0-9a-zA-Z\-_]/.test(r)},fe=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),Pe=function(){const e=(r,t)=>Object.defineProperty(String.prototype,r,fe(t));e("fromBase64",function(){return J(this)}),e("toBase64",function(r){return H(this,r)}),e("toBase64URI",function(){return H(this,!0)}),e("toBase64URL",function(){return H(this,!0)}),e("toUint8Array",function(){return De(this)})},Ce=function(){const e=(r,t)=>Object.defineProperty(Uint8Array.prototype,r,fe(t));e("toBase64",function(r){return W(this,r)}),e("toBase64URI",function(){return W(this,!0)}),e("toBase64URL",function(){return W(this,!0)})},le={version:oe,VERSION:ye,atob:Z,atobPolyfill:Ne,btoa:$,btoaPolyfill:Ee,fromBase64:J,toBase64:H,encode:H,encodeURI:Re,encodeURL:Re,utob:ae,btou:Oe,decode:J,isValid:cr,fromUint8Array:W,toUint8Array:De,extendString:Pe,extendUint8Array:Ce,extendBuiltins:()=>{Pe(),Ce()}},sr={encode:Er,decode:le.decode};function Er(e,r={}){const{urlSafe:t=!1}=r;return le.encode(e,t)}function ar(e){const r=Or(e),t=r.exp*1e3;if(Date.now()>t)throw new Error(`${ur}. Expiration date: ${new Date(t).toISOString()}`);return r}const Se="The provided `clientToken`",ur=`${Se} has expired`,Rr=`${Se} is malformed`;function Or(e){try{const[r,t]=e.split("."),n=t||r;return JSON.parse(sr.decode(n))}catch{throw new Error(Rr)}}const Nr=(e,r)=>Le("get",e,r),Zr=(e,r,t)=>Le("post",e,t,JSON.stringify(r)),dr={"content-type":"application/json"},Le=(e,r,t,n)=>fetch(r,{body:n,method:e,headers:{...dr,...t}}).then(o=>o.json().catch(()=>{})),Dr="v2.36.0",Tr=(e,r,t)=>({"primer-client-token":e,"primer-sdk-client":"WEB","primer-sdk-version":Dr,"primer-sdk-checkout-session-id":r,...t&&{"x-api-version":t}});async function fr(e,r,t){try{return await Nr(`${r}/?withDisplayMetadata=true`,Tr(e,t,"2.2"))}catch(n){throw new Error(["Failed to initialize client",JSON.stringify(n||void 0,void 0,2)].filter(Boolean).join(": "))}}const Pr=e=>document.head.appendChild(e),Cr=(e,r)=>{const t=document.createElement(e);return Object.entries(r).forEach(([n,o])=>t.setAttribute(n,o)),t},lr=(e,r)=>Pr(Cr(e,r)),Ie=(e,r,t)=>e.addEventListener(r,t),Sr=e=>document.querySelector(e),Ye="Can't load Primer SDK",Lr=`${Ye}'s Stylesheet`;function Ir(e){const r="script",t="src";return pe(r,t,e)&&window.__Primer?Promise.resolve():he(r,e,t,{async:"",crossorigin:"anonymous"},Ye)}function Yr(e){return Array.from(document.styleSheets).find(r=>r.href===e)?Promise.resolve():he("link",e,"href",{rel:"stylesheet"},Lr)}const he=(e,r,t,n,o)=>new Promise((i,N)=>{const c=pe(e,t,r)||lr(e,{...n,[t]:r});Ie(c,"load",()=>i()),Ie(c,"error",()=>{c?.remove(),N(new Error(o))})}),pe=(e,r,t)=>Sr(`${e}[${r}^="${t}"]`),hr="https://sdk.primer.io/web/v2.36.0/Checkout.css",pr="https://sdk.primer.io/web/v2.36.0/PrimerCoreSDK.min.js";let V;async function ge(){return V||(V=Promise.all([Mr(),gr()]).then(([e])=>e),V)}const gr=()=>Yr(hr),Mr=()=>Ir(pr).then(()=>{const e=window.__Primer;return delete window.__Primer,e}).catch(e=>{throw V=void 0,e}),vr="v2.36.0",Ur=j("createHeadless"),Br=j("showExpressCheckout"),br=j("showUniversalCheckout"),kr=j("showVaultManager"),Me="LOAD_PERFORMANCE",x=re();let b=B({checkoutSessionId:x});b.messageEvent({message:"parsed",messageType:Me,now:performance.now?.()});function j(e){return async(...[r,t,...n])=>{b.sdkFunctionEvent({name:e,params:[r,t,...n]}),b.messageEvent({message:"create",messageType:Me,now:performance.now?.()});const[o,i]=await Promise.all([Fr(r),ge()]);return i[e](o,x,r,t)}}async function Fr(e){const{accessToken:r,configurationUrl:t,analyticsUrlV2:n}=ar(e);b=B({checkoutSessionId:x,url:n});const o=`${t}/?withDisplayMetadata=true`,i=re(),N={method:"get",url:o};b.networkCallEvent(ne(i,N));const c=await fr(r,t,x),{primerAccountId:T}=c,{clientSessionId:Y}=c.clientSession;return b=B({checkoutSessionId:x,clientSessionId:Y,primerAccountId:T,url:n}),b.networkCallEvent(ne(i,N,{data:c})),c}const Hr=()=>ge().then(()=>{});var wr=(e=>(e.LOADING="Loading",e.THREE_DS="UniversalCheckout/3ds",e.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",e.MANAGE_PAYMENT_METHODS="VaultManager/Home",e.DIRECT_DEBIT_FORM="DirectDebit/Form",e.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",e.CREDIT_CARD_FORM="CreditCard/Form",e.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",e.SUCCESS_CHECK="UniversalCheckout/Success/Check",e))(wr||{}),Vr=(e=>(e.ROOT="primer-checkout",e.ROOT_CONTENT="primer-checkout-content",e.SUBMIT_BUTTON="primer-checkout-submit-button",e.THREE_DS_MODAL="primer-checkout-3ds-modal",e.VAULT="primer-checkout-vault",e.VAULT_INLINE="primer-checkout-vault-inline",e.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",e.DIVIDER="primer-checkout-payment-method-divider",e.APM_BUTTONS="primer-checkout-apm-button-container",e.CARDHOLDER_NAME="primer-checkout-cardholder-name",e.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",e.ACTIONS="primer-checkout-actions",e.ACTIONS_MENU="primer-checkout-actions-menu",e.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",e.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",e.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",e.CARD_FORM="primer-checkout-card-form",e.DD_SWITCH="primer-checkout-switch-dd-inputs",e.DD_IBAN_FIELD="primer-checkout-dd-iban-field",e.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",e.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",e.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",e.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",e.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",e.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",e.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",e.DD_IBAN_INPUT="primer-checkout-dd-iban-input",e.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",e.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",e.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",e.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",e.ERROR_MESSAGE="primer-checkout-error-message",e))(Vr||{}),xr=(e=>(e.TOKEN="PrimerCheckout__token",e.HIDDEN="PrimerCheckout--hidden",e.FOCUSED="PrimerCheckout--focused",e.SELECTED="PrimerCheckout--selected",e.LOADING="PrimerCheckout--loading",e.ERROR="PrimerCheckout--error",e.CARD_TYPE="PrimerCheckout__cardType",e.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",e.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",e.APM_BUTTON="PrimerCheckout__apmButton",e.EDIT_BUTTON="PrimerCheckout__editButton",e.MENU="PrimerCheckout__dropDownMenu",e.MENU_ITEM="PrimerCheckout__dropDownMenuItem",e.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",e.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",e.ENTER="PrimerCheckout--enter",e.ENTERING="PrimerCheckout--entering",e.ENTERED="PrimerCheckout--entered",e.EXIT="PrimerCheckout--exit",e.EXITING="PrimerCheckout--exiting",e.EXITED="PrimerCheckout--exited",e))(xr||{}),ve=(e=>(e.CHECKOUT="CHECKOUT",e.EXPRESS_CHECKOUT="EXPRESS_CHECKOUT",e.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",e.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",e.SINGLE_PAYMENT_METHOD_CHECKOUT="SINGLE_PAYMENT_METHOD_CHECKOUT",e))(ve||{}),Ue=(e=>(e.DEFAULT="DEFAULT",e.PREFER_VAULT="PREFER_VAULT",e))(Ue||{}),Gr=(e=>(e.TOKENIZE_STARTED="tokenize-started",e.TOKENIZE_ERROR="tokenize-error",e.TOKENIZE_SUCCESS="tokenize-success",e.TOKENIZE_DID_NOT_START="tokenize-did-not-start",e))(Gr||{}),Be=(e=>(e.SUCCESS="AUTH_SUCCESS",e.FAILED="AUTH_FAILED",e.SKIPPED="SKIPPED",e.CHALLENGE="CHALLENGE",e))(Be||{}),be=(e=>(e.WORLDPAY_IDEAL="WORLDPAY_IDEAL",e.ADYEN_KLARNA="ADYEN_KLARNA",e.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",e.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",e.ADYEN_EPS="ADYEN_EPS",e.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",e.OMISE_PROMPTPAY="OMISE_PROMPTPAY",e.OMISE_TRUEMONEY="OMISE_TRUEMONEY",e.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",e.PACYPAY_WECHAT="PACYPAY_WECHAT",e.PACYPAY_ALIPAY="PACYPAY_ALIPAY",e.ADYEN_MBWAY="ADYEN_MBWAY",e.XENDIT_DANA="XENDIT_DANA",e.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",e.ADYEN_PAYSHOP="ADYEN_PAYSHOP",e.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",e.CLEARPAY="CLEARPAY",e.RAPYD_FAST="RAPYD_FAST",e.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",e.RAPYD_GCASH="RAPYD_GCASH",e.RAPYD_POLI="RAPYD_POLI",e.RAPYD_GRABPAY="RAPYD_GRABPAY",e.PRIMER_PAYPAL="PRIMER_PAYPAL",e.TWOC2P="TWOC2P",e.NETS="NETS",e.STRIPE_GIROPAY="STRIPE_GIROPAY",e.MOLLIE_GIROPAY="MOLLIE_GIROPAY",e.MOLLIE_EPS="MOLLIE_EPS",e.PAY_NL_EPS="PAY_NL_EPS",e.PAY_NL_P24="PAY_NL_P24",e.MOLLIE_P24="MOLLIE_P24",e.MOLLIE_SOFORT="MOLLIE_SOFORT",e.COINBASE="COINBASE",e.OPENNODE="OPENNODE",e.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",e.XFERS_PAYNOW="XFERS_PAYNOW",e.CARD="PAYMENT_CARD",e.APPLE_PAY="APPLE_PAY",e.GOOGLE_PAY="GOOGLE_PAY",e.PAYPAL="PAYPAL_ORDER",e.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",e.GO_CARDLESS="GOCARDLESS",e.PAY_NL_IDEAL="PAY_NL_IDEAL",e.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",e.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",e.PAY_NL_PAYPAL="PAY_NL_PAYPAL",e.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",e.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",e.PAY_NL_GIROPAY="PAY_NL_GIROPAY",e.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",e.HOOLAH="HOOLAH",e.ADYEN_BLIK="ADYEN_BLIK",e.ADYEN_VIPPS="ADYEN_VIPPS",e.ADYEN_GIROPAY="ADYEN_GIROPAY",e.ADYEN_SOFORT="ADYEN_SOFORT",e.ADYEN_TRUSTLY="ADYEN_TRUSTLY",e.ADYEN_ALIPAY="ADYEN_ALIPAY",e.ADYEN_TWINT="ADYEN_TWINT",e.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",e.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",e.MOLLIE_IDEAL="MOLLIE_IDEAL",e.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",e.BUCKAROO_EPS="BUCKAROO_EPS",e.BUCKAROO_SOFORT="BUCKAROO_SOFORT",e.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",e.BUCKAROO_IDEAL="BUCKAROO_IDEAL",e.ATOME="ATOME",e))(be||{}),q=(e=>(e.WORLDPAY_IDEAL="WORLDPAY_IDEAL",e.STRIPE_IDEAL="STRIPE_IDEAL",e.ADYEN_KLARNA="ADYEN_KLARNA",e.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",e.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",e.ADYEN_EPS="ADYEN_EPS",e.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",e.OMISE_PROMPTPAY="OMISE_PROMPTPAY",e.OMISE_TRUEMONEY="OMISE_TRUEMONEY",e.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",e.PACYPAY_WECHAT="PACYPAY_WECHAT",e.PACYPAY_ALIPAY="PACYPAY_ALIPAY",e.ADYEN_MBWAY="ADYEN_MBWAY",e.XENDIT_DANA="XENDIT_DANA",e.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",e.ADYEN_PAYSHOP="ADYEN_PAYSHOP",e.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",e.CLEARPAY="CLEARPAY",e.RAPYD_FAST="RAPYD_FAST",e.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",e.RAPYD_GCASH="RAPYD_GCASH",e.RAPYD_POLI="RAPYD_POLI",e.RAPYD_GRABPAY="RAPYD_GRABPAY",e.PRIMER_PAYPAL="PRIMER_PAYPAL",e.TWOC2P="TWOC2P",e.NETS="NETS",e.STRIPE_GIROPAY="STRIPE_GIROPAY",e.MOLLIE_GIROPAY="MOLLIE_GIROPAY",e.MOLLIE_EPS="MOLLIE_EPS",e.PAY_NL_EPS="PAY_NL_EPS",e.PAY_NL_P24="PAY_NL_P24",e.MOLLIE_P24="MOLLIE_P24",e.MOLLIE_SOFORT="MOLLIE_SOFORT",e.COINBASE="COINBASE",e.OPENNODE="OPENNODE",e.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",e.XFERS_PAYNOW="XFERS_PAYNOW",e.PAYMENT_CARD="PAYMENT_CARD",e.APPLE_PAY="APPLE_PAY",e.GOOGLE_PAY="GOOGLE_PAY",e.PAYPAL="PAYPAL",e.GO_CARDLESS="GOCARDLESS",e.KLARNA="KLARNA",e.PAY_NL_IDEAL="PAY_NL_IDEAL",e.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",e.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",e.PAY_NL_PAYPAL="PAY_NL_PAYPAL",e.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",e.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",e.PAY_NL_GIROPAY="PAY_NL_GIROPAY",e.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",e.HOOLAH="HOOLAH",e.ADYEN_BLIK="ADYEN_BLIK",e.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",e.ADYEN_VIPPS="ADYEN_VIPPS",e.ADYEN_GIROPAY="ADYEN_GIROPAY",e.ADYEN_SOFORT="ADYEN_SOFORT",e.ADYEN_TRUSTLY="ADYEN_TRUSTLY",e.ADYEN_ALIPAY="ADYEN_ALIPAY",e.ADYEN_TWINT="ADYEN_TWINT",e.ADYEN_BANK_TRANSFER="ADYEN_BANK_TRANSFER",e.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",e.MOLLIE_IDEAL="MOLLIE_IDEAL",e.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",e.BUCKAROO_EPS="BUCKAROO_EPS",e.BUCKAROO_SOFORT="BUCKAROO_SOFORT",e.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",e.BUCKAROO_IDEAL="BUCKAROO_IDEAL",e.ATOME="ATOME",e))(q||{}),mr=(e=>(e.PAYMENT_CARD="PAYMENT_CARD",e.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",e))(mr||{}),ke=(e=>(e.SINGLE_USE="SINGLE_USE",e.MULTI_USE="MULTI_USE",e))(ke||{});const Fe={PAYPAL_BILLING_AGREEMENT:"PAYPAL"},Jr=e=>{if(Object.values(q).includes(e))return e;if(Fe[e])return Fe[e]};var He=(e=>(e.INITIALIZATION_ERROR="INITIALIZATION_ERROR",e.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",e.PRIMER_TEARDOWN="PRIMER_TEARDOWN",e.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",e.THREE_DS_SETUP_ERROR="THREE_DS_SETUP_ERROR",e.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",e.THREE_DS_NEGOTIATION_ERROR="THREE_DS_NEGOTIATION_ERROR",e.TOKENIZATION_ERROR="TOKENIZATION_ERROR",e.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",e.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",e.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",e.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",e.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",e.RESUME_ERROR="RESUME_ERROR",e.TAX_ERROR="TAX_ERROR",e.VALIDATION_ERROR="VALIDATION_ERROR",e.PAYMENT_FAILED="PAYMENT_FAILED",e.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",e.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",e.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.VAULT_FETCH="VAULT_FETCH",e.VAULT_DELETE="VAULT_DELETE",e.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",e.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",e))(He||{});class we extends Error{constructor(r,t,n){super(t.message),this.message=t.message,this.code=r,this.diagnosticsId=t.diagnosticsId||null,this.data=t.data,this.isFromDeveloper=t.isFromDeveloper??!1,n?.messageEvent?.({message:t.message,messageType:r,severity:"ERROR",...t.diagnosticsId&&{diagnosticsId:t.diagnosticsId},...t.errorId&&{errorId:t.errorId},...t.data&&{data:t.data},...t.isFromDeveloper!==void 0&&{isFromDeveloper:String(t.isFromDeveloper)},stack:this.stack})}static fromErrorCode(r,t,n){return new we(r,t,n)}}const qr=e=>{throw console.error(e.message),e};var Kr=f(473),yr=f(453);const Wr={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uFF10":"0","\uFF11":"1","\uFF12":"2","\uFF13":"3","\uFF14":"4","\uFF15":"5","\uFF16":"6","\uFF17":"7","\uFF18":"8","\uFF19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06F0":"0","\u06F1":"1","\u06F2":"2","\u06F3":"3","\u06F4":"4","\u06F5":"5","\u06F6":"6","\u06F7":"7","\u06F8":"8","\u06F9":"9"};function et(e,r){return Wr[e]}const rt={error:null,errorCode:null,valid:!1,active:!1,dirty:!1,touched:!1,submitted:!1},Ve=new Set(["change","blur","focus"]);async function tt({container:e,placement:r="append",properties:t,allowedCharactersMap:n,...o},i){let N,c={...defaultFieldMetadata};const T={},Y=await new Promise(d=>{const L=i.iframes.create({container:e,filename:"secure-input.html",meta:o,onReady:()=>d(L),placement:r,payload:{allowedCharactersMap:JSON.stringify(n),properties:t}})});return window.addEventListener("message",({data:d})=>{switch(d.type){case"metadata":c=d.metadata;break;case"change":c=d.metadata,N=d.valueToken,T.change?.forEach(L=>L(N,c));break;case"blur":T.blur?.forEach(L=>L());break;case"focus":T.focus?.forEach(L=>L());break;default:break}}),{frame:Y,get metadata(){return c},name:o.name,get valueToken(){return N},remove(){Y?.remove(),Object.values(T).forEach(d=>d.clear())},addListener(d,L){if(Ve.has(d))return T[d]||(T[d]=new Set),T[d].add(L),()=>this.removeListener(d,L);console.error(`Event not supported: supported events are ${[...Ve].join(", ")}`)},addEventListener(d,L){return this.addListener(d,L)},removeListener(d,L){T[d].delete(L)},blur(){z("blur")},focus(){z("focus")}};function z(d){Y?.contentWindow?.postMessage(d,"*")}}async function nt({cardNetwork:e,...r},t){const n=`cvv-${r.name}`,o=jr(e||""),i=getTypeInfo(o),N=!e&&"`cardNetwork` was not provided"||!i&&"could not get the code size from the provided `cardNetwork`";if(N){const Y=`CvvInput: ${N}. Defaulting validation to minLength 3 and maxLength 4.`;t.analytics.messageEvent({messageType:"CARD_SECURITY_CODE_INPUT_VALIDATION",message:Y,severity:"WARN"}),console.warn(Y)}const{size:c}=i?.code??{},T={...r.properties,maxLength:c||4,minLength:c||3};return createSecureInput({...r,name:n,properties:T,allowedCharactersMap:DIGITS},t)}function jr(e){const r=toKebabCase(e);switch(r){case"union-pay":return"unionpay";default:return r}}var xe=(e=>(e.PAYMENT_METHOD="PAYMENT_METHOD",e.CHECK="CHECK",e))(xe||{}),Ge=(e=>(e.CHANGE="change",e.ERROR="error",e.FOCUS="focus",e.BLUR="blur",e.CLICK="click",e.CLOSE="close",e))(Ge||{}),me=(e=>(e.CARD="CARD",e.NATIVE="NATIVE",e.REDIRECT="REDIRECT",e))(me||{});const zr={SDK_VERSION:vr,createHeadless:Ur,showExpressCheckout:Br,showUniversalCheckout:br,showVaultManager:kr}}(),X}()});
1
+ (function(G,f){typeof exports=="object"&&typeof module=="object"?module.exports=f():typeof define=="function"&&define.amd?define([],f):typeof exports=="object"?exports.Primer=f():G.Primer=f()})(this,function(){return function(){var y={453:function(R,A,s){"use strict";var D=this&&this.__assign||function(){return D=Object.assign||function(_){for(var u,P=1,M=arguments.length;P<M;P++){u=arguments[P];for(var U in u)Object.prototype.hasOwnProperty.call(u,U)&&(_[U]=u[U])}return _},D.apply(this,arguments)},S=s(743),a=s(576),E=s(243),h=s(169),p=s(679),l={},O={VISA:"visa",MASTERCARD:"mastercard",AMERICAN_EXPRESS:"american-express",DINERS_CLUB:"diners-club",DISCOVER:"discover",JCB:"jcb",UNIONPAY:"unionpay",MAESTRO:"maestro",ELO:"elo",MIR:"mir",HIPER:"hiper",HIPERCARD:"hipercard"},v=[O.VISA,O.MASTERCARD,O.AMERICAN_EXPRESS,O.DINERS_CLUB,O.DISCOVER,O.JCB,O.UNIONPAY,O.MAESTRO,O.ELO,O.MIR,O.HIPER,O.HIPERCARD],I=p.clone(v);function k(_){return l[_]||S[_]}function m(){return I.map(function(_){return p.clone(k(_))})}function B(_,u){u===void 0&&(u=!1);var P=I.indexOf(_);if(!u&&P===-1)throw new Error('"'+_+'" is not a supported card type.');return P}function g(_){var u=[];if(!E.isValidInputType(_))return u;if(_.length===0)return m();I.forEach(function(M){var U=k(M);a.addMatchingCardsToResults(_,U,u)});var P=h.findBestMatch(u);return P?[P]:u}g.getTypeInfo=function(_){return p.clone(k(_))},g.removeCard=function(_){var u=B(_);I.splice(u,1)},g.addCard=function(_){var u=B(_.type,!0);l[_.type]=_,u===-1&&I.push(_.type)},g.updateCard=function(_,u){var P=l[_]||S[_];if(!P)throw new Error('"'+_+"\" is not a recognized type. Use `addCard` instead.'");if(u.type&&P.type!==u.type)throw new Error("Cannot overwrite type parameter.");var M=p.clone(P);M=D(D({},M),u),l[M.type]=M},g.changeOrder=function(_,u){var P=B(_);I.splice(P,1),I.splice(u,0,_)},g.resetModifications=function(){I=p.clone(v),l={}},g.types=O,R.exports=g},576:function(R,A,s){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.addMatchingCardsToResults=void 0;var D=s(679),S=s(864);function a(E,h,p){var l,O;for(l=0;l<h.patterns.length;l++){var v=h.patterns[l];if(S.matches(E,v)){var I=D.clone(h);Array.isArray(v)?O=String(v[0]).length:O=String(v).length,E.length>=O&&(I.matchStrength=O),p.push(I);break}}}A.addMatchingCardsToResults=a},743:function(R){"use strict";var A={visa:{niceType:"Visa",type:"visa",patterns:[4],gaps:[4,8,12],lengths:[16,18,19],code:{name:"CVV",size:3}},mastercard:{niceType:"Mastercard",type:"mastercard",patterns:[[51,55],[2221,2229],[223,229],[23,26],[270,271],2720],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},"american-express":{niceType:"American Express",type:"american-express",patterns:[34,37],gaps:[4,10],lengths:[15],code:{name:"CID",size:4}},"diners-club":{niceType:"Diners Club",type:"diners-club",patterns:[[300,305],36,38,39],gaps:[4,10],lengths:[14,16,19],code:{name:"CVV",size:3}},discover:{niceType:"Discover",type:"discover",patterns:[6011,[644,649],65],gaps:[4,8,12],lengths:[16,19],code:{name:"CID",size:3}},jcb:{niceType:"JCB",type:"jcb",patterns:[2131,1800,[3528,3589]],gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVV",size:3}},unionpay:{niceType:"UnionPay",type:"unionpay",patterns:[620,[624,626],[62100,62182],[62184,62187],[62185,62197],[62200,62205],[622010,622999],622018,[622019,622999],[62207,62209],[622126,622925],[623,626],6270,6272,6276,[627700,627779],[627781,627799],[6282,6289],6291,6292,810,[8110,8131],[8132,8151],[8152,8163],[8164,8171]],gaps:[4,8,12],lengths:[14,15,16,17,18,19],code:{name:"CVN",size:3}},maestro:{niceType:"Maestro",type:"maestro",patterns:[493698,[5e5,504174],[504176,506698],[506779,508999],[56,59],63,67,6],gaps:[4,8,12],lengths:[12,13,14,15,16,17,18,19],code:{name:"CVC",size:3}},elo:{niceType:"Elo",type:"elo",patterns:[401178,401179,438935,457631,457632,431274,451416,457393,504175,[506699,506778],[509e3,509999],627780,636297,636368,[650031,650033],[650035,650051],[650405,650439],[650485,650538],[650541,650598],[650700,650718],[650720,650727],[650901,650978],[651652,651679],[655e3,655019],[655021,655058]],gaps:[4,8,12],lengths:[16],code:{name:"CVE",size:3}},mir:{niceType:"Mir",type:"mir",patterns:[[2200,2204]],gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVP2",size:3}},hiper:{niceType:"Hiper",type:"hiper",patterns:[637095,63737423,63743358,637568,637599,637609,637612],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},hipercard:{niceType:"Hipercard",type:"hipercard",patterns:[606282],gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}}};R.exports=A},679:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.clone=void 0;function s(D){return D?JSON.parse(JSON.stringify(D)):null}A.clone=s},169:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.findBestMatch=void 0;function s(S){var a=S.filter(function(E){return E.matchStrength}).length;return a>0&&a===S.length}function D(S){return s(S)?S.reduce(function(a,E){return!a||Number(a.matchStrength)<Number(E.matchStrength)?E:a}):null}A.findBestMatch=D},243:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.isValidInputType=void 0;function s(D){return typeof D=="string"||D instanceof String}A.isValidInputType=s},864:function(R,A){"use strict";Object.defineProperty(A,"__esModule",{value:!0}),A.matches=void 0;function s(a,E,h){var p=String(E).length,l=a.substr(0,p),O=parseInt(l,10);return E=parseInt(String(E).substr(0,l.length),10),h=parseInt(String(h).substr(0,l.length),10),O>=E&&O<=h}function D(a,E){return E=String(E),E.substring(0,a.length)===a.substring(0,E.length)}function S(a,E){return Array.isArray(E)?s(a,E[0],E[1]):D(a,E)}A.matches=S},476:function(){},962:function(){},473:function(){}},G={};function f(R){var A=G[R];if(A!==void 0)return A.exports;var s=G[R]={exports:{}};return y[R].call(s.exports,s,s.exports,f),s.exports}(function(){f.d=function(R,A){for(var s in A)f.o(A,s)&&!f.o(R,s)&&Object.defineProperty(R,s,{enumerable:!0,get:A[s]})}})(),function(){f.o=function(R,A){return Object.prototype.hasOwnProperty.call(R,A)}}(),function(){f.r=function(R){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(R,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(R,"__esModule",{value:!0})}}();var X={};return function(){"use strict";f.r(X),f.d(X,{CheckoutUXFlow:function(){return ve},CvvInput:function(){return R.CvvInput},ErrorCode:function(){return He},EventTypes:function(){return Ge},HeadlessManagerType:function(){return me},PaymentFlow:function(){return Ue},PaymentInstrumentType:function(){return be},PaymentMethodData:function(){return Kr.PaymentMethodData},PaymentMethodType:function(){return q},Primer:function(){return zr},SuccessScreenType:function(){return xe},ThreeDSecureStatus:function(){return Be},TokenType:function(){return ke},preloadPrimer:function(){return Hr}});var R={};f.r(R);var A=f(476),s=f(962),D=(e=>(e.REQUEST_START="REQUEST_START",e.REQUEST_END="REQUEST_END",e))(D||{}),S=(e=>(e.START="START",e.END="END",e))(S||{}),a=(e=>(e.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",e.CRASH_EVENT="CRASH_EVENT",e.TIMER_EVENT="TIMER_EVENT",e.MESSAGE_EVENT="MESSAGE_EVENT",e.V1_EVENT="V1_EVENT",e.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",e))(a||{});const E={get(e,r){let t;try{switch(e){case"PRIMER_SDK_VERSION":t="v2.37.1";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_PCI_API_URL":t=process.env.PRIMER_PCI_API_URL;break;case"PRIMER_MODULES_URL":t=process.env.PRIMER_MODULES_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":t=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;case"SENTRY_DSN":t=process.env.SENTRY_DSN;break;default:break}}catch{}return t||r}};var h=(e=>(e.CHARGING="CHARGING",e.NOT_CHARGING="NOT_CHARGING",e))(h||{});async function p(){if(typeof navigator>"u")return;const e=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},platformVersion:navigator.platform,userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:e?.level,batteryStatus:e?.charging?"CHARGING":"NOT_CHARGING"}}const l="WEB",O=E.get("PRIMER_SDK_VERSION");async function v(e,r,t){return{...t,createdAt:Date.now(),device:await p(),eventType:e,properties:r,sdkVersion:O,sdkType:l}}const I="https://analytics.production.data.primer.io/sdk-logs",k=1024*5,m=e=>`@primer/analytics/${e}`;function B({url:e=I,...r}={}){typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&g(e)});const t=n=>async o=>{if(typeof navigator>"u")return;const i=await v(n,o,r),c=u(i,T=>P(M(T)));_(e,c)};return{crashEvent:t(a.CRASH_EVENT),messageEvent:t(a.MESSAGE_EVENT),networkCallEvent:t(a.NETWORK_CALL_EVENT),sdkFunctionEvent:t(a.SDK_FUNCTION_EVENT),timerEvent:t(a.TIMER_EVENT),v1Event:t(a.V1_EVENT)}}function g(e){const r=m(e),t=sessionStorage.getItem(r);sessionStorage.removeItem(r),t&&navigator.sendBeacon(e,t)}function _(e,r){const t=m(e);sessionStorage.setItem(t,`[${[sessionStorage.getItem(t)?.slice(1,-1),JSON.stringify(r)].filter(Boolean).join(",")}]`)}function u(e,r){const t=n=>typeof n=="object"&&n!==null?u(n,r):r(n);return Array.isArray(e)?e.map(t):Object.fromEntries(Object.entries(e).map(([n,o])=>[n,t(o)]))}function P(e){return typeof e=="string"&&e.length>k?`${e.slice(0,k)}...`:e}function M(e){return typeof e=="function"?e.name||"function":e}class U{constructor(r,t){this.type=r,this.displayName=t}get specs(){return this.constructor.specs}setOption(r,t){this.options&&(this.options[r]=t)}setupAndValidate(){return Promise.resolve(!0)}mount(){return Promise.resolve(!0)}tokenize(r){return Promise.resolve()}validate(){return Promise.resolve({valid:!0,validationErrors:[]})}setDisabled(r){return Promise.resolve()}focus(){}blur(){}getPaymentElement(){return null}getStore(){}}U.specs={key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1},U.create=(e,r,t,n)=>{throw new Error("Cannot instantiate BasePaymentMethod")};class Ke extends U{async tokenize(r){}}class We{get session(){const r=this.store.getState().clientSessionInfo;if(!r)throw new Error("Client Context Session does not exist");return r}}const je=[Array,Ke,We,Map,Set];function ze(e){const r=new Set,t=20;let n=0;for(;n++<t&&e&&e!==Object.prototype;)Object.getOwnPropertyNames(e).forEach(o=>r.add(o)),e=Object.getPrototypeOf(e);return[...r]}function ee(e,r,t,n,o){if(!t||je.some(i=>t instanceof i))return t;switch(typeof t){case"function":return new Proxy(t,{apply(i,N,c=[]){const T={name:r.replace(/^bound /,""),params:c,module:o};e?.sdkFunctionEvent(T);const Y=c.map((z,d)=>ee(e,`${d}`,z,n,[o,r,`${d}`].filter(Boolean).join(".")));return i.apply(N,Y)}});case"object":return t===n?t:Xe(e,t,[o,r].filter(Boolean).join("."));default:return t}}function Xe(e,r,t){return Object.fromEntries(ze(r).map(n=>{const o=r?.[n],i=ee(e,n,o,o,t);return[n,i]}))}const re=()=>te.randomUUID?.()||$e(),$e=()=>([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^Qe()>>e/4).toString(16)),Qe=()=>(te.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,te=typeof crypto<"u"?crypto:{},Ze=new Set(["post","get","delete"]),Je=new Set(["post"]);function qe(e,r,t,n){const o=Je.has(e);return{method:e,options:o?n:t,body:o?t:void 0,url:r}}function Xr(e,r){const t=({prop:n})=>({apply:async(o,i,N=[])=>{const c=qe(n.toString(),...N);if(c.options?.isAnalytics)return o.apply(i,N);const T=uuid();r?.networkCallEvent(prepareNetworkEventProps(T,c));const Y=await o.apply(i,N);return r?.networkCallEvent(prepareNetworkEventProps(T,c,Y)),Y}});return new Proxy(e,{get(n,o){const i=n[o];return typeof i=="function"&&Ze.has(o)?new Proxy(i,t({prop:o})):i}})}const ne=(e,r,t)=>({callType:t?D.REQUEST_END:D.REQUEST_START,id:e,errorBody:t?.error&&JSON.stringify(t.error),method:r.method,responseCode:t?.status,url:r.url}),oe="3.6.1",ye=oe,er=typeof atob=="function",rr=typeof btoa=="function",F=typeof Buffer=="function",ie=typeof TextDecoder=="function"?new TextDecoder:void 0,Ae=typeof TextEncoder=="function"?new TextEncoder:void 0,w=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],K=(e=>{let r={};return e.forEach((t,n)=>r[t]=n),r})(w),tr=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,C=String.fromCharCode.bind(String),_e=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(e,r=t=>t)=>new Uint8Array(Array.prototype.slice.call(e,0).map(r)),ce=e=>e.replace(/[+\/]/g,r=>r=="+"?"-":"_").replace(/=+$/m,""),se=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),Ee=e=>{let r,t,n,o,i="";const N=e.length%3;for(let c=0;c<e.length;){if((t=e.charCodeAt(c++))>255||(n=e.charCodeAt(c++))>255||(o=e.charCodeAt(c++))>255)throw new TypeError("invalid character found");r=t<<16|n<<8|o,i+=w[r>>18&63]+w[r>>12&63]+w[r>>6&63]+w[r&63]}return N?i.slice(0,N-3)+"===".substring(N):i},$=rr?e=>btoa(e):F?e=>Buffer.from(e,"binary").toString("base64"):Ee,Q=F?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let n=0,o=e.length;n<o;n+=4096)t.push(C.apply(null,e.subarray(n,n+4096)));return $(t.join(""))},W=(e,r=!1)=>r?ce(Q(e)):Q(e),nr=e=>{if(e.length<2){var r=e.charCodeAt(0);return r<128?e:r<2048?C(192|r>>>6)+C(128|r&63):C(224|r>>>12&15)+C(128|r>>>6&63)+C(128|r&63)}else{var r=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return C(240|r>>>18&7)+C(128|r>>>12&63)+C(128|r>>>6&63)+C(128|r&63)}},or=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,ae=e=>e.replace(or,nr),ue=F?e=>Buffer.from(e,"utf8").toString("base64"):Ae?e=>Q(Ae.encode(e)):e=>$(ae(e)),H=(e,r=!1)=>r?ce(ue(e)):ue(e),Re=e=>H(e,!0),ir=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,Ar=e=>{switch(e.length){case 4:var r=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),t=r-65536;return C((t>>>10)+55296)+C((t&1023)+56320);case 3:return C((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return C((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},Oe=e=>e.replace(ir,Ar),Ne=e=>{if(e=e.replace(/\s+/g,""),!tr.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let r,t="",n,o;for(let i=0;i<e.length;)r=K[e.charAt(i++)]<<18|K[e.charAt(i++)]<<12|(n=K[e.charAt(i++)])<<6|(o=K[e.charAt(i++)]),t+=n===64?C(r>>16&255):o===64?C(r>>16&255,r>>8&255):C(r>>16&255,r>>8&255,r&255);return t},Z=er?e=>atob(se(e)):F?e=>Buffer.from(e,"base64").toString("binary"):Ne,de=F?e=>_e(Buffer.from(e,"base64")):e=>_e(Z(e),r=>r.charCodeAt(0)),De=e=>de(Te(e)),_r=F?e=>Buffer.from(e,"base64").toString("utf8"):ie?e=>ie.decode(de(e)):e=>Oe(Z(e)),Te=e=>se(e.replace(/[-_]/g,r=>r=="-"?"+":"/")),J=e=>_r(Te(e)),cr=e=>{if(typeof e!="string")return!1;const r=e.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(r)||!/[^\s0-9a-zA-Z\-_]/.test(r)},fe=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),Pe=function(){const e=(r,t)=>Object.defineProperty(String.prototype,r,fe(t));e("fromBase64",function(){return J(this)}),e("toBase64",function(r){return H(this,r)}),e("toBase64URI",function(){return H(this,!0)}),e("toBase64URL",function(){return H(this,!0)}),e("toUint8Array",function(){return De(this)})},Ce=function(){const e=(r,t)=>Object.defineProperty(Uint8Array.prototype,r,fe(t));e("toBase64",function(r){return W(this,r)}),e("toBase64URI",function(){return W(this,!0)}),e("toBase64URL",function(){return W(this,!0)})},le={version:oe,VERSION:ye,atob:Z,atobPolyfill:Ne,btoa:$,btoaPolyfill:Ee,fromBase64:J,toBase64:H,encode:H,encodeURI:Re,encodeURL:Re,utob:ae,btou:Oe,decode:J,isValid:cr,fromUint8Array:W,toUint8Array:De,extendString:Pe,extendUint8Array:Ce,extendBuiltins:()=>{Pe(),Ce()}},sr={encode:Er,decode:le.decode};function Er(e,r={}){const{urlSafe:t=!1}=r;return le.encode(e,t)}function ar(e){const r=Or(e),t=r.exp*1e3;if(Date.now()>t)throw new Error(`${ur}. Expiration date: ${new Date(t).toISOString()}`);return r}const Se="The provided `clientToken`",ur=`${Se} has expired`,Rr=`${Se} is malformed`;function Or(e){try{const[r,t]=e.split("."),n=t||r;return JSON.parse(sr.decode(n))}catch{throw new Error(Rr)}}const Nr=(e,r)=>Le("get",e,r),Zr=(e,r,t)=>Le("post",e,t,JSON.stringify(r)),dr={"content-type":"application/json"},Le=(e,r,t,n)=>fetch(r,{body:n,method:e,headers:{...dr,...t}}).then(o=>o.json().catch(()=>{})),Dr="v2.37.1",Tr=(e,r,t)=>({"primer-client-token":e,"primer-sdk-client":"WEB","primer-sdk-version":Dr,"primer-sdk-checkout-session-id":r,...t&&{"x-api-version":t}});async function fr(e,r,t){try{return await Nr(`${r}/?withDisplayMetadata=true`,Tr(e,t,"2.2"))}catch(n){throw new Error(["Failed to initialize client",JSON.stringify(n||void 0,void 0,2)].filter(Boolean).join(": "))}}const Pr=e=>document.head.appendChild(e),Cr=(e,r)=>{const t=document.createElement(e);return Object.entries(r).forEach(([n,o])=>t.setAttribute(n,o)),t},lr=(e,r)=>Pr(Cr(e,r)),Ie=(e,r,t)=>e.addEventListener(r,t),Sr=e=>document.querySelector(e),Ye="Can't load Primer SDK",Lr=`${Ye}'s Stylesheet`;function Ir(e){const r="script",t="src";return pe(r,t,e)&&window.__Primer?Promise.resolve():he(r,e,t,{async:"",crossorigin:"anonymous"},Ye)}function Yr(e){return Array.from(document.styleSheets).find(r=>r.href===e)?Promise.resolve():he("link",e,"href",{rel:"stylesheet"},Lr)}const he=(e,r,t,n,o)=>new Promise((i,N)=>{const c=pe(e,t,r)||lr(e,{...n,[t]:r});Ie(c,"load",()=>i()),Ie(c,"error",()=>{c?.remove(),N(new Error(o))})}),pe=(e,r,t)=>Sr(`${e}[${r}^="${t}"]`),hr="https://sdk.primer.io/web/v2.37.1/Checkout.css",pr="https://sdk.primer.io/web/v2.37.1/PrimerCoreSDK.min.js";let V;async function ge(){return V||(V=Promise.all([Mr(),gr()]).then(([e])=>e),V)}const gr=()=>Yr(hr),Mr=()=>Ir(pr).then(()=>{const e=window.__Primer;return delete window.__Primer,e}).catch(e=>{throw V=void 0,e}),vr="v2.37.1",Ur=j("createHeadless"),Br=j("showExpressCheckout"),br=j("showUniversalCheckout"),kr=j("showVaultManager"),Me="LOAD_PERFORMANCE",x=re();let b=B({checkoutSessionId:x});b.messageEvent({message:"parsed",messageType:Me,now:performance.now?.()});function j(e){return async(...[r,t,...n])=>{b.sdkFunctionEvent({name:e,params:[r,t,...n]}),b.messageEvent({message:"create",messageType:Me,now:performance.now?.()});const[o,i]=await Promise.all([Fr(r),ge()]);return i[e](o,x,r,t)}}async function Fr(e){const{accessToken:r,configurationUrl:t,analyticsUrlV2:n}=ar(e);b=B({checkoutSessionId:x,url:n});const o=`${t}/?withDisplayMetadata=true`,i=re(),N={method:"get",url:o};b.networkCallEvent(ne(i,N));const c=await fr(r,t,x),{primerAccountId:T}=c,{clientSessionId:Y}=c.clientSession;return b=B({checkoutSessionId:x,clientSessionId:Y,primerAccountId:T,url:n}),b.networkCallEvent(ne(i,N,{data:c})),c}const Hr=()=>ge().then(()=>{});var wr=(e=>(e.LOADING="Loading",e.THREE_DS="UniversalCheckout/3ds",e.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",e.MANAGE_PAYMENT_METHODS="VaultManager/Home",e.DIRECT_DEBIT_FORM="DirectDebit/Form",e.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",e.CREDIT_CARD_FORM="CreditCard/Form",e.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",e.SUCCESS_CHECK="UniversalCheckout/Success/Check",e))(wr||{}),Vr=(e=>(e.ROOT="primer-checkout",e.ROOT_CONTENT="primer-checkout-content",e.SUBMIT_BUTTON="primer-checkout-submit-button",e.THREE_DS_MODAL="primer-checkout-3ds-modal",e.VAULT="primer-checkout-vault",e.VAULT_INLINE="primer-checkout-vault-inline",e.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",e.DIVIDER="primer-checkout-payment-method-divider",e.APM_BUTTONS="primer-checkout-apm-button-container",e.CARDHOLDER_NAME="primer-checkout-cardholder-name",e.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",e.ACTIONS="primer-checkout-actions",e.ACTIONS_MENU="primer-checkout-actions-menu",e.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",e.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",e.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",e.CARD_FORM="primer-checkout-card-form",e.DD_SWITCH="primer-checkout-switch-dd-inputs",e.DD_IBAN_FIELD="primer-checkout-dd-iban-field",e.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",e.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",e.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",e.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",e.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",e.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",e.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",e.DD_IBAN_INPUT="primer-checkout-dd-iban-input",e.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",e.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",e.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",e.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",e.ERROR_MESSAGE="primer-checkout-error-message",e))(Vr||{}),xr=(e=>(e.TOKEN="PrimerCheckout__token",e.HIDDEN="PrimerCheckout--hidden",e.FOCUSED="PrimerCheckout--focused",e.SELECTED="PrimerCheckout--selected",e.LOADING="PrimerCheckout--loading",e.ERROR="PrimerCheckout--error",e.CARD_TYPE="PrimerCheckout__cardType",e.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",e.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",e.APM_BUTTON="PrimerCheckout__apmButton",e.EDIT_BUTTON="PrimerCheckout__editButton",e.MENU="PrimerCheckout__dropDownMenu",e.MENU_ITEM="PrimerCheckout__dropDownMenuItem",e.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",e.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",e.ENTER="PrimerCheckout--enter",e.ENTERING="PrimerCheckout--entering",e.ENTERED="PrimerCheckout--entered",e.EXIT="PrimerCheckout--exit",e.EXITING="PrimerCheckout--exiting",e.EXITED="PrimerCheckout--exited",e))(xr||{}),ve=(e=>(e.CHECKOUT="CHECKOUT",e.EXPRESS_CHECKOUT="EXPRESS_CHECKOUT",e.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",e.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",e.SINGLE_PAYMENT_METHOD_CHECKOUT="SINGLE_PAYMENT_METHOD_CHECKOUT",e))(ve||{}),Ue=(e=>(e.DEFAULT="DEFAULT",e.PREFER_VAULT="PREFER_VAULT",e))(Ue||{}),Gr=(e=>(e.TOKENIZE_STARTED="tokenize-started",e.TOKENIZE_ERROR="tokenize-error",e.TOKENIZE_SUCCESS="tokenize-success",e.TOKENIZE_DID_NOT_START="tokenize-did-not-start",e))(Gr||{}),Be=(e=>(e.SUCCESS="AUTH_SUCCESS",e.FAILED="AUTH_FAILED",e.SKIPPED="SKIPPED",e.CHALLENGE="CHALLENGE",e))(Be||{}),be=(e=>(e.WORLDPAY_IDEAL="WORLDPAY_IDEAL",e.ADYEN_KLARNA="ADYEN_KLARNA",e.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",e.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",e.ADYEN_EPS="ADYEN_EPS",e.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",e.OMISE_PROMPTPAY="OMISE_PROMPTPAY",e.OMISE_TRUEMONEY="OMISE_TRUEMONEY",e.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",e.PACYPAY_WECHAT="PACYPAY_WECHAT",e.PACYPAY_ALIPAY="PACYPAY_ALIPAY",e.ADYEN_MBWAY="ADYEN_MBWAY",e.XENDIT_DANA="XENDIT_DANA",e.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",e.ADYEN_PAYSHOP="ADYEN_PAYSHOP",e.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",e.CLEARPAY="CLEARPAY",e.RAPYD_FAST="RAPYD_FAST",e.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",e.RAPYD_GCASH="RAPYD_GCASH",e.RAPYD_POLI="RAPYD_POLI",e.RAPYD_GRABPAY="RAPYD_GRABPAY",e.PRIMER_PAYPAL="PRIMER_PAYPAL",e.TWOC2P="TWOC2P",e.NETS="NETS",e.STRIPE_GIROPAY="STRIPE_GIROPAY",e.MOLLIE_GIROPAY="MOLLIE_GIROPAY",e.MOLLIE_EPS="MOLLIE_EPS",e.PAY_NL_EPS="PAY_NL_EPS",e.PAY_NL_P24="PAY_NL_P24",e.MOLLIE_P24="MOLLIE_P24",e.MOLLIE_SOFORT="MOLLIE_SOFORT",e.COINBASE="COINBASE",e.OPENNODE="OPENNODE",e.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",e.XFERS_PAYNOW="XFERS_PAYNOW",e.CARD="PAYMENT_CARD",e.APPLE_PAY="APPLE_PAY",e.GOOGLE_PAY="GOOGLE_PAY",e.PAYPAL="PAYPAL_ORDER",e.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",e.GO_CARDLESS="GOCARDLESS",e.PAY_NL_IDEAL="PAY_NL_IDEAL",e.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",e.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",e.PAY_NL_PAYPAL="PAY_NL_PAYPAL",e.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",e.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",e.PAY_NL_GIROPAY="PAY_NL_GIROPAY",e.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",e.HOOLAH="HOOLAH",e.ADYEN_BLIK="ADYEN_BLIK",e.ADYEN_VIPPS="ADYEN_VIPPS",e.ADYEN_GIROPAY="ADYEN_GIROPAY",e.ADYEN_SOFORT="ADYEN_SOFORT",e.ADYEN_TRUSTLY="ADYEN_TRUSTLY",e.ADYEN_ALIPAY="ADYEN_ALIPAY",e.ADYEN_TWINT="ADYEN_TWINT",e.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",e.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",e.MOLLIE_IDEAL="MOLLIE_IDEAL",e.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",e.BUCKAROO_EPS="BUCKAROO_EPS",e.BUCKAROO_SOFORT="BUCKAROO_SOFORT",e.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",e.BUCKAROO_IDEAL="BUCKAROO_IDEAL",e.ATOME="ATOME",e))(be||{}),q=(e=>(e.WORLDPAY_IDEAL="WORLDPAY_IDEAL",e.STRIPE_IDEAL="STRIPE_IDEAL",e.ADYEN_KLARNA="ADYEN_KLARNA",e.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",e.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",e.ADYEN_EPS="ADYEN_EPS",e.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",e.OMISE_PROMPTPAY="OMISE_PROMPTPAY",e.OMISE_TRUEMONEY="OMISE_TRUEMONEY",e.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",e.PACYPAY_WECHAT="PACYPAY_WECHAT",e.PACYPAY_ALIPAY="PACYPAY_ALIPAY",e.ADYEN_MBWAY="ADYEN_MBWAY",e.XENDIT_DANA="XENDIT_DANA",e.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",e.ADYEN_PAYSHOP="ADYEN_PAYSHOP",e.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",e.CLEARPAY="CLEARPAY",e.RAPYD_FAST="RAPYD_FAST",e.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",e.RAPYD_GCASH="RAPYD_GCASH",e.RAPYD_POLI="RAPYD_POLI",e.RAPYD_GRABPAY="RAPYD_GRABPAY",e.PRIMER_PAYPAL="PRIMER_PAYPAL",e.TWOC2P="TWOC2P",e.NETS="NETS",e.STRIPE_GIROPAY="STRIPE_GIROPAY",e.MOLLIE_GIROPAY="MOLLIE_GIROPAY",e.MOLLIE_EPS="MOLLIE_EPS",e.PAY_NL_EPS="PAY_NL_EPS",e.PAY_NL_P24="PAY_NL_P24",e.MOLLIE_P24="MOLLIE_P24",e.MOLLIE_SOFORT="MOLLIE_SOFORT",e.COINBASE="COINBASE",e.OPENNODE="OPENNODE",e.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",e.XFERS_PAYNOW="XFERS_PAYNOW",e.PAYMENT_CARD="PAYMENT_CARD",e.APPLE_PAY="APPLE_PAY",e.GOOGLE_PAY="GOOGLE_PAY",e.PAYPAL="PAYPAL",e.GO_CARDLESS="GOCARDLESS",e.KLARNA="KLARNA",e.PAY_NL_IDEAL="PAY_NL_IDEAL",e.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",e.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",e.PAY_NL_PAYPAL="PAY_NL_PAYPAL",e.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",e.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",e.PAY_NL_GIROPAY="PAY_NL_GIROPAY",e.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",e.HOOLAH="HOOLAH",e.ADYEN_BLIK="ADYEN_BLIK",e.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",e.ADYEN_VIPPS="ADYEN_VIPPS",e.ADYEN_GIROPAY="ADYEN_GIROPAY",e.ADYEN_SOFORT="ADYEN_SOFORT",e.ADYEN_TRUSTLY="ADYEN_TRUSTLY",e.ADYEN_ALIPAY="ADYEN_ALIPAY",e.ADYEN_TWINT="ADYEN_TWINT",e.ADYEN_BANK_TRANSFER="ADYEN_BANK_TRANSFER",e.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",e.MOLLIE_IDEAL="MOLLIE_IDEAL",e.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",e.BUCKAROO_EPS="BUCKAROO_EPS",e.BUCKAROO_SOFORT="BUCKAROO_SOFORT",e.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",e.BUCKAROO_IDEAL="BUCKAROO_IDEAL",e.ATOME="ATOME",e))(q||{}),mr=(e=>(e.PAYMENT_CARD="PAYMENT_CARD",e.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",e))(mr||{}),ke=(e=>(e.SINGLE_USE="SINGLE_USE",e.MULTI_USE="MULTI_USE",e))(ke||{});const Fe={PAYPAL_BILLING_AGREEMENT:"PAYPAL"},Jr=e=>{if(Object.values(q).includes(e))return e;if(Fe[e])return Fe[e]};var He=(e=>(e.INITIALIZATION_ERROR="INITIALIZATION_ERROR",e.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",e.PRIMER_TEARDOWN="PRIMER_TEARDOWN",e.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",e.THREE_DS_SETUP_ERROR="THREE_DS_SETUP_ERROR",e.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",e.THREE_DS_NEGOTIATION_ERROR="THREE_DS_NEGOTIATION_ERROR",e.TOKENIZATION_ERROR="TOKENIZATION_ERROR",e.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",e.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",e.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",e.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",e.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",e.RESUME_ERROR="RESUME_ERROR",e.TAX_ERROR="TAX_ERROR",e.VALIDATION_ERROR="VALIDATION_ERROR",e.PAYMENT_FAILED="PAYMENT_FAILED",e.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",e.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",e.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.VAULT_FETCH="VAULT_FETCH",e.VAULT_DELETE="VAULT_DELETE",e.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",e.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",e))(He||{});class we extends Error{constructor(r,t,n){super(t.message),this.message=t.message,this.code=r,this.diagnosticsId=t.diagnosticsId||null,this.data=t.data,this.isFromDeveloper=t.isFromDeveloper??!1,n?.messageEvent?.({message:t.message,messageType:r,severity:"ERROR",...t.diagnosticsId&&{diagnosticsId:t.diagnosticsId},...t.errorId&&{errorId:t.errorId},...t.data&&{data:t.data},...t.isFromDeveloper!==void 0&&{isFromDeveloper:String(t.isFromDeveloper)},stack:this.stack})}static fromErrorCode(r,t,n){return new we(r,t,n)}}const qr=e=>{throw console.error(e.message),e};var Kr=f(473),yr=f(453);const Wr={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uFF10":"0","\uFF11":"1","\uFF12":"2","\uFF13":"3","\uFF14":"4","\uFF15":"5","\uFF16":"6","\uFF17":"7","\uFF18":"8","\uFF19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06F0":"0","\u06F1":"1","\u06F2":"2","\u06F3":"3","\u06F4":"4","\u06F5":"5","\u06F6":"6","\u06F7":"7","\u06F8":"8","\u06F9":"9"};function et(e,r){return Wr[e]}const rt={error:null,errorCode:null,valid:!1,active:!1,dirty:!1,touched:!1,submitted:!1},Ve=new Set(["change","blur","focus"]);async function tt({container:e,placement:r="append",properties:t,allowedCharactersMap:n,...o},i){let N,c={...defaultFieldMetadata};const T={},Y=await new Promise(d=>{const L=i.iframes.create({container:e,filename:"secure-input.html",meta:o,onReady:()=>d(L),placement:r,payload:{allowedCharactersMap:JSON.stringify(n),properties:t}})});return window.addEventListener("message",({data:d})=>{switch(d.type){case"metadata":c=d.metadata;break;case"change":c=d.metadata,N=d.valueToken,T.change?.forEach(L=>L(N,c));break;case"blur":T.blur?.forEach(L=>L());break;case"focus":T.focus?.forEach(L=>L());break;default:break}}),{frame:Y,get metadata(){return c},name:o.name,get valueToken(){return N},remove(){Y?.remove(),Object.values(T).forEach(d=>d.clear())},addListener(d,L){if(Ve.has(d))return T[d]||(T[d]=new Set),T[d].add(L),()=>this.removeListener(d,L);console.error(`Event not supported: supported events are ${[...Ve].join(", ")}`)},addEventListener(d,L){return this.addListener(d,L)},removeListener(d,L){T[d].delete(L)},blur(){z("blur")},focus(){z("focus")}};function z(d){Y?.contentWindow?.postMessage(d,"*")}}async function nt({cardNetwork:e,...r},t){const n=`cvv-${r.name}`,o=jr(e||""),i=getTypeInfo(o),N=!e&&"`cardNetwork` was not provided"||!i&&"could not get the code size from the provided `cardNetwork`";if(N){const Y=`CvvInput: ${N}. Defaulting validation to minLength 3 and maxLength 4.`;t.analytics.messageEvent({messageType:"CARD_SECURITY_CODE_INPUT_VALIDATION",message:Y,severity:"WARN"}),console.warn(Y)}const{size:c}=i?.code??{},T={...r.properties,maxLength:c||4,minLength:c||3};return createSecureInput({...r,name:n,properties:T,allowedCharactersMap:DIGITS},t)}function jr(e){const r=toKebabCase(e);switch(r){case"union-pay":return"unionpay";default:return r}}var xe=(e=>(e.PAYMENT_METHOD="PAYMENT_METHOD",e.CHECK="CHECK",e))(xe||{}),Ge=(e=>(e.CHANGE="change",e.ERROR="error",e.FOCUS="focus",e.BLUR="blur",e.CLICK="click",e.CLOSE="close",e))(Ge||{}),me=(e=>(e.CARD="CARD",e.NATIVE="NATIVE",e.REDIRECT="REDIRECT",e))(me||{});const zr={SDK_VERSION:vr,createHeadless:Ur,showExpressCheckout:Br,showUniversalCheckout:br,showVaultManager:kr}}(),X}()});
package/dist/index.d.ts CHANGED
@@ -416,7 +416,7 @@ export interface IFrameMessagePayloadMeta {
416
416
  css?: string;
417
417
  stylesheets?: Stylesheet[];
418
418
  ariaLabel?: string;
419
- allowedCardNetworks?: CardNetwork[];
419
+ allowedCardNetworks?: string[];
420
420
  [x: string]: unknown;
421
421
  }
422
422
  export interface IFrameInputMessagePayload<T = unknown> {
@@ -460,7 +460,7 @@ export type CreateIFrameOptionsMeta = {
460
460
  placeholder?: string;
461
461
  css?: string;
462
462
  stylesheets?: string[];
463
- allowedCardNetworks?: CardNetwork[];
463
+ allowedCardNetworks?: string[];
464
464
  };
465
465
  export interface CreateIFrameOptions {
466
466
  filename: string;
@@ -634,6 +634,7 @@ export interface ClientSessionAddress {
634
634
  }
635
635
  export interface ClientSessionPaymentMethodOptions {
636
636
  options?: PaymentMethodOption[];
637
+ orderedAllowedCardNetworks: string[];
637
638
  vaultOnSuccess: boolean;
638
639
  }
639
640
  export interface PaymentMethodOption {
@@ -667,8 +668,9 @@ export interface ClientSession {
667
668
  nationalDocumentId?: string;
668
669
  };
669
670
  paymentMethod?: {
670
- vaultOnSuccess?: boolean;
671
671
  options?: Record<string, any>;
672
+ orderedAllowedCardNetworks?: string[];
673
+ vaultOnSuccess?: boolean;
672
674
  };
673
675
  }
674
676
  export interface InternalClientSession {
@@ -752,6 +754,7 @@ export interface ClientSessionInfo {
752
754
  isTeardown: boolean;
753
755
  }
754
756
  export interface ClientConfiguration {
757
+ binDataUrl: string;
755
758
  checkoutModules: CheckoutModuleConfig[];
756
759
  clientSession: InternalClientSession;
757
760
  coreUrl: string;
@@ -1260,7 +1263,9 @@ declare class PrimerClientError extends Error {
1260
1263
  constructor(code: ErrorCode, options: ErrorOptions, analytics?: Analytics);
1261
1264
  }
1262
1265
  export interface CardMetadata {
1266
+ /** @deprecated Use onCardNetworksChange instead. */
1263
1267
  type: CardNetwork | null;
1268
+ /** @deprecated Use onCardNetworksChange instead. */
1264
1269
  possibleTypes: string[];
1265
1270
  cvvLength: number;
1266
1271
  cardNumberLength: number;
@@ -1703,7 +1708,7 @@ export interface ClientSessionHandlers {
1703
1708
  onClientSessionUpdate?: (clientSession: ClientSession) => void;
1704
1709
  onBeforeClientSessionUpdate?: () => void;
1705
1710
  }
1706
- export interface SinglePaymentMethodCheckoutOptions extends TokenizationHandlers, PaymentHandlers, ClientSessionHandlers, PaymentMethodHandlers {
1711
+ export interface SinglePaymentMethodCheckoutOptions extends TokenizationHandlers, PaymentHandlers, ClientSessionHandlers, PaymentMethodHandlers, WithAllowedCardNetworks {
1707
1712
  uxFlow: CheckoutUXFlow.SINGLE_PAYMENT_METHOD_CHECKOUT;
1708
1713
  container: string | Element;
1709
1714
  paymentMethod: PaymentMethodType;
@@ -1716,7 +1721,6 @@ export interface SinglePaymentMethodCheckoutOptions extends TokenizationHandlers
1716
1721
  form?: FormOptions;
1717
1722
  scene?: SceneOptions;
1718
1723
  vault?: VaultOptions;
1719
- allowedCardNetworks?: CardNetwork[];
1720
1724
  redirect?: RedirectOptions;
1721
1725
  card?: CheckoutCardOptions;
1722
1726
  giftCard?: CustomizablePaymentMethodButton;
@@ -1727,7 +1731,7 @@ export interface SinglePaymentMethodCheckoutOptions extends TokenizationHandlers
1727
1731
  directDebit?: DirectDebitOptions;
1728
1732
  paymentHandling?: PaymentHandling;
1729
1733
  }
1730
- export interface VaultManagerOptions {
1734
+ export interface VaultManagerOptions extends WithAllowedCardNetworks {
1731
1735
  container: string | Element;
1732
1736
  locale?: SupportedLocale;
1733
1737
  vaultOnly?: boolean;
@@ -1738,7 +1742,6 @@ export interface VaultManagerOptions {
1738
1742
  form?: FormOptions;
1739
1743
  submitButton?: SubmitButtonOptions;
1740
1744
  processingIndicator?: ProcessingIndicatorOptions;
1741
- allowedCardNetworks?: CardNetwork[];
1742
1745
  card?: CheckoutCardOptions;
1743
1746
  threeDSecure?: ThreeDSVerificationOptions;
1744
1747
  giftCard?: CustomizablePaymentMethodButton;
@@ -1750,7 +1753,7 @@ export interface VaultManagerOptions {
1750
1753
  onTokenizeSuccess?: (data: PaymentMethodToken) => void;
1751
1754
  onTokenizeError?: (message: PrimerClientError) => void;
1752
1755
  }
1753
- export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers {
1756
+ export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers, WithAllowedCardNetworks {
1754
1757
  uxFlow?: CheckoutUXFlow.CHECKOUT;
1755
1758
  container: string | Element;
1756
1759
  locale?: SupportedLocale;
@@ -1763,7 +1766,6 @@ export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentH
1763
1766
  successScreen?: SuccessScreenOptions;
1764
1767
  form?: FormOptions;
1765
1768
  allowedPaymentMethods?: PaymentMethodType[];
1766
- allowedCardNetworks?: CardNetwork[];
1767
1769
  card?: CheckoutCardOptions;
1768
1770
  redirect?: RedirectOptions;
1769
1771
  paypal?: Omit<PayPalOptions, "container">;
@@ -1775,11 +1777,10 @@ export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentH
1775
1777
  paymentHandling?: PaymentHandling;
1776
1778
  advanced?: AdvancedOptions;
1777
1779
  }
1778
- export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers {
1780
+ export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers, WithAllowedCardNetworks {
1779
1781
  style?: CheckoutStyle;
1780
1782
  paymentHandling?: PaymentHandling;
1781
1783
  locale?: SupportedLocale;
1782
- allowedCardNetworks?: CardNetwork[];
1783
1784
  card?: CheckoutCardOptions;
1784
1785
  redirect?: RedirectOptions;
1785
1786
  paypal?: Omit<PayPalOptions, "container">;
@@ -1790,6 +1791,10 @@ export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers,
1790
1791
  giftCard?: CustomizablePaymentMethodButton;
1791
1792
  onAvailablePaymentMethodsLoad: (paymentMethods: PaymentMethodInfo[]) => void;
1792
1793
  }
1794
+ export type WithAllowedCardNetworks = {
1795
+ /** @deprecated Use `orderedAllowedCardNetworks` on your Primer Dashboard instead. */
1796
+ allowedCardNetworks?: CardNetwork[];
1797
+ };
1793
1798
  export interface PrimerCheckout {
1794
1799
  teardown(): void;
1795
1800
  submit(): void;
@@ -1832,10 +1837,13 @@ export interface ICardPaymentMethodManager {
1832
1837
  };
1833
1838
  setCardholderName(cardholderName: string): void;
1834
1839
  removeHostedInputs(): void;
1835
- submit(): Promise<void>;
1840
+ submit(values?: CardPaymentMethodSubmitValues): Promise<void>;
1836
1841
  validate(): Promise<Validation>;
1837
1842
  reset(): void;
1838
1843
  }
1844
+ export type CardPaymentMethodSubmitValues = {
1845
+ cardNetwork?: string;
1846
+ };
1839
1847
  export interface PayPalStyles {
1840
1848
  buttonColor?: "gold" | "blue" | "silver" | "white" | "black";
1841
1849
  buttonShape?: "pill" | "rect";
@@ -1886,11 +1894,38 @@ export type ButtonPaymentMethodAsset = {
1886
1894
  paymentMethodName?: string;
1887
1895
  };
1888
1896
  export interface IAssetsManager {
1897
+ getCardNetworkAsset(cardNetwork: string): Promise<CardNetworkAsset>;
1889
1898
  getPaymentMethodAsset(type: PaymentMethodType): Promise<ButtonPaymentMethodAsset | null>;
1890
1899
  }
1900
+ export type CardNetworkAsset = {
1901
+ cardUrl: string;
1902
+ displayName: string;
1903
+ };
1891
1904
  export interface CardPaymentMethodManagerOptions {
1892
1905
  onCardMetadataChange?: (metadata: CardMetadata) => void;
1906
+ onCardNetworksChange?: (event: CardNetworkChangeEvent) => void;
1907
+ onCardNetworksLoading?: () => void;
1893
1908
  }
1909
+ export type CardNetworkChangeEvent = {
1910
+ detectedCardNetworks: CardNetworks;
1911
+ selectableCardNetworks?: CardNetworks;
1912
+ source: "REMOTE" | "LOCAL" | "LOCAL_FALLBACK";
1913
+ };
1914
+ export type CardNetworks = {
1915
+ items: CardNetworkDetails[];
1916
+ preferred?: CardNetworkDetails;
1917
+ };
1918
+ export type CardNetworkDetails = CardNetworkInfo & {
1919
+ allowed: boolean;
1920
+ };
1921
+ export type CardNetworkInfo = {
1922
+ displayName: string;
1923
+ network: string;
1924
+ };
1925
+ export type CardNetworksAndSource = {
1926
+ networks: CardNetworkInfo[];
1927
+ source: CardNetworkChangeEvent["source"];
1928
+ };
1894
1929
  export type PaymentMethodManagerOptions = CardPaymentMethodManagerOptions;
1895
1930
  export interface PrimerHeadlessCheckout {
1896
1931
  createPaymentMethodManager(type: "PAYMENT_CARD", options?: PaymentMethodManagerOptions): Promise<ICardPaymentMethodManager | null>;
@@ -1899,7 +1934,7 @@ export interface PrimerHeadlessCheckout {
1899
1934
  createVaultManager(): HeadlessVaultManager;
1900
1935
  configure: (options: HeadlessUniversalCheckoutOptions) => void;
1901
1936
  getAssetsManager(): IAssetsManager;
1902
- start: () => void;
1937
+ start: () => Promise<void>;
1903
1938
  }
1904
1939
  export interface PrimerSinglePaymentMethodCheckout {
1905
1940
  submit(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/checkout-web",
3
- "version": "2.36.0",
3
+ "version": "2.37.1",
4
4
  "description": "Primer.js for the web",
5
5
  "author": "Primer Developers <developers@primer.io>",
6
6
  "homepage": "",
@@ -24,5 +24,8 @@
24
24
  "start": "node demos/server.js",
25
25
  "lint": "run -T eslint ./src",
26
26
  "check-types": "run -T tsc --noemit -p tsconfig.json"
27
+ },
28
+ "msw": {
29
+ "workerDirectory": "demos/assets"
27
30
  }
28
31
  }