@primer-io/checkout-web 2.44.1 → 2.45.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 +1 -2
- package/dist/index.d.ts +32 -20
- package/package.json +1 -1
package/dist/Primer.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
(function(h,s){typeof exports=="object"&&typeof module=="object"?module.exports=s():typeof define=="function"&&define.amd?define([],s):typeof exports=="object"?exports.Primer=s():h.Primer=s()})(this,()=>(()=>{var W={476:()=>{},962:()=>{},473:()=>{}},h={};function s(a){var O=h[a];if(O!==void 0)return O.exports;var D=h[a]={exports:{}};return W[a](D,D.exports,s),D.exports}s.d=(a,O)=>{for(var D in O)s.o(O,D)&&!s.o(a,D)&&Object.defineProperty(a,D,{enumerable:!0,get:O[D]})},s.o=(a,O)=>Object.prototype.hasOwnProperty.call(a,O),s.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var w={};return(()=>{"use strict";s.r(w),s.d(w,{CheckoutUXFlow:()=>fr,ErrorCode:()=>gr,EventTypes:()=>br,HeadlessManagerType:()=>vr,PaymentFlow:()=>lr,PaymentInstrumentType:()=>hr,PaymentMethodData:()=>$t.PaymentMethodData,PaymentMethodType:()=>V,Primer:()=>Xt,SuccessScreenType:()=>wr,ThreeDSecureStatus:()=>Mr,TokenType:()=>Ur,isStripeOptionsDropInWithFullMandateText:()=>jt,preloadPrimer:()=>pt});const a=8,O=100,D=100,xr=r=>new Promise(t=>setTimeout(t,r));function Hr(r){return{enabled:r?.enabled??!1,maxRetries:a,initialBackoff:O,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:D}}function Fr(r,t,e){const o=r*Math.pow(2,t-1),A=Math.random()*e;return Math.min(o+A,Number.MAX_SAFE_INTEGER)}async function m(r,t,e,o,A=xr){let _=0;const E=Hr(t);if(!E.enabled)return r();for(;;)try{const i=await r();return o&&o(),i}catch(i){const n=i,T=_>=E.maxRetries,R=n.isNetworkError&&!E.retryNetworkErrors,N=n.status&&n.status>=500&&!E.retry500Errors;if(T||R||N){let C=`Failed after ${_} retries. `;throw T?C+=`Reached maximum retries (${E.maxRetries}).`:R?C+="Network error encountered and retryNetworkErrors is disabled.":N&&(C+="HTTP 500 error encountered and retry500Errors is disabled."),C+=` Last error: ${n.message}`,e&&e(C),new Error(C,{cause:i})}_++;const Y=Fr(E.initialBackoff,_,E.maxJitter);let M="Unknown error";n.isNetworkError?M="Network error":n.status&&(M=`HTTP ${n.status} error`),e&&e(`Retry attempt ${_}/${E.maxRetries} due to: ${M}. Error details: ${n.message}. Waiting for ${Y.toFixed(2)}ms before next attempt.`),await A(Y)}}function pr(r,t){const e=document.createElement(r);return Object.entries(t).forEach(([o,A])=>e.setAttribute(o,A)),e}function $(r,t,e){return document.querySelector(`${r}[${t}^="${e}"]`)}async function j(r,t,e,o,A,_){const{logger:E,retryConfig:i}=_;await m(()=>new Promise((T,R)=>{const N=$(r,e,t)||pr(r,{...o,[e]:t});N.onload=()=>{E?.(`${r.charAt(0).toUpperCase()+r.slice(1)} loaded successfully: ${t}`),T()},N.onerror=()=>{N.remove(),R(new Error(`${A}: ${t}`))},N.parentNode||document.head.appendChild(N)}),i,E)}function Gr(r,t={}){return $("script","src",r)&&window.__Primer?(t.logger?.("Script already loaded"),Promise.resolve()):j("script",r,"src",{...t.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",t)}function Kr(r,t={}){return Array.from(document.styleSheets).some(e=>e.href===r)?(t.logger?.("Stylesheet already loaded"),Promise.resolve()):j("link",r,"href",{...t.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",t)}let d;async function X(r){return d||(d=Promise.all([Gr("https://sdk.primer.io/web/v2.44.1/PrimerCoreSDK.min.js",{logger:o=>{r?.sdkFunctionEvent({name:"loadPrimerScript",params:[o]})}}),Kr("https://sdk.primer.io/web/v2.44.1/Checkout.css",{logger:o=>{r?.sdkFunctionEvent({name:"loadPrimerCss",params:[o]})}})]).then(()=>{const o=window.__Primer;return delete window.__Primer,o}).catch(o=>{throw d=void 0,o}),d)}var zt=s(476),Qt=s(962),b=(r=>(r.REQUEST_START="REQUEST_START",r.REQUEST_END="REQUEST_END",r))(b||{}),Vr=(r=>(r.START="START",r.END="END",r))(Vr||{}),P=(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))(P||{});const Wr={get(r,t){let e;try{switch(r){case"PRIMER_SDK_VERSION":e="v2.44.1";break;case"PRIMER_ASSETS_URL":e=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_CORE_API_URL":e=process.env.PRIMER_CORE_API_URL;break;case"PRIMER_PCI_API_URL":e=process.env.PRIMER_PCI_API_URL;break;case"PRIMER_MODULES_URL":e=process.env.PRIMER_MODULES_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":e=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;case"SENTRY_DSN":e=process.env.SENTRY_DSN;break;default:break}}catch{}return e||t}};var mr=(r=>(r.CHARGING="CHARGING",r.NOT_CHARGING="NOT_CHARGING",r))(mr||{});async function $r(){if(typeof navigator>"u")return;const r=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:r?.level,batteryStatus:r?.charging?"CHARGING":"NOT_CHARGING"}}const jr="WEB",Xr=Wr.get("PRIMER_SDK_VERSION");async function zr(r,t,e){return{...e,createdAt:Date.now(),device:await $r(),eventType:r,properties:t,sdkVersion:Xr,sdkType:jr}}const z="https://analytics.production.data.primer.io/sdk-logs",Qr=z==="https://analytics.sandbox.data.primer.io/playwright",Q=1024*5,Zr=500,U=new Map,I=new Map;function v({url:r=z,...t}={}){typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Z(r,!0)});const e=o=>async A=>{if(typeof navigator>"u")return;const _=await zr(o,A,t),E=n=>qr(yr(n));if(Qr)return;const i=J(_,E);Jr(r,i)};return{crashEvent:e(P.CRASH_EVENT),messageEvent:e(P.MESSAGE_EVENT),networkCallEvent:e(P.NETWORK_CALL_EVENT),sdkFunctionEvent:e(P.SDK_FUNCTION_EVENT),timerEvent:e(P.TIMER_EVENT),v1Event:e(P.V1_EVENT)}}function Z(r,t=!1){if(U.has(r)){const A=U.get(r);clearTimeout(A),U.delete(r)}const e=()=>{const A=I.get(r);if(A?.length){try{navigator.sendBeacon(r,JSON.stringify(A))}catch(_){console.error("Unable to access navigator",_)}I.delete(r)}};if(t){e();return}const o=setTimeout(e,Zr);U.set(r,o)}function Jr(r,t){I.has(r)||I.set(r,[]),I.get(r)?.push(t),Z(r)}function J(r,t){const e=o=>typeof o=="object"&&o!==null?J(o,t):t(o);return Array.isArray(r)?r.map(e):Object.fromEntries(Object.entries(r).map(([o,A])=>[o,e(A)]))}function qr(r){return typeof r=="string"&&r.length>Q?`${r.slice(0,Q)}...`:r}function yr(r){return typeof r=="function"?r.name||"function":r}class x{constructor(t,e){this.type=t,this.displayName=e}get specs(){return this.constructor.specs}setOption(t,e){this.options&&(this.options[t]=e)}setupAndValidate(){return Promise.resolve(!0)}mount(){return Promise.resolve(!0)}tokenize(t){return Promise.resolve()}validate(){return Promise.resolve({valid:!0,validationErrors:[]})}setDisabled(t){return Promise.resolve()}focus(){}blur(){}getPaymentElement(){return null}getStore(){}}x.specs={key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1},x.create=(r,t,e,o)=>{throw new Error("Cannot instantiate BasePaymentMethod")};class rt extends x{async tokenize(t){}}class tt{get session(){const t=this.store.getState().clientSessionInfo;if(!t)throw new Error("Client Context Session does not exist");return t}}const et=[Array,rt,tt,Map,Set];function ot(r){const t=new Set,e=20;let o=0;for(;o++<e&&r&&r!==Object.prototype;)Object.getOwnPropertyNames(r).forEach(A=>t.add(A)),r=Object.getPrototypeOf(r);return[...t]}function q(r,t,e,o,A){if(!e||et.some(_=>e instanceof _))return e;switch(typeof e){case"function":return new Proxy(e,{apply(_,E,i=[]){const n={name:t.replace(/^bound /,""),params:i,module:A};r?.sdkFunctionEvent(n);const T=i.map((R,N)=>q(r,`${N}`,R,o,[A,t,`${N}`].filter(Boolean).join(".")));return _.apply(E,T)}});case"object":return e===o?e:At(r,e,[A,t].filter(Boolean).join("."));default:return e}}function At(r,t,e){return Object.fromEntries(ot(t).map(o=>{const A=t?.[o],_=q(r,o,A,A,e);return[o,_]}))}const y=()=>rr.randomUUID?.()||_t(),_t=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,r=>(r^Et()>>r/4).toString(16)),Et=()=>(rr.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,rr=typeof crypto<"u"?crypto:{},it=new Set(["post","get","delete"]),nt=new Set(["post"]);function ct(r,t,e,o){const A=nt.has(r);return{method:r,options:A?o:e,body:A?e:void 0,url:t}}function Zt(r,t){const e=({prop:o})=>({apply:async(A,_,E=[])=>{const i=ct(o.toString(),...E);if(i.options?.isAnalytics)return A.apply(_,E);const n=uuid();t?.networkCallEvent(prepareNetworkEventProps(n,i));const T=Date.now(),R=await A.apply(_,E),Y=Date.now()-T;return t?.networkCallEvent(prepareNetworkEventProps(n,i,R,Y)),R}});return new Proxy(r,{get(o,A){const _=o[A];return typeof _=="function"&&it.has(A)?new Proxy(_,e({prop:A})):_}})}const H=(r,t,e,o)=>({callType:e?b.REQUEST_END:b.REQUEST_START,id:r,errorBody:e?.error&&JSON.stringify(e.error),method:t.method,responseCode:e?.status,url:t.url,duration:o}),tr="3.6.1",st=tr,at=typeof atob=="function",Nt=typeof btoa=="function",L=typeof Buffer=="function",er=typeof TextDecoder=="function"?new TextDecoder:void 0,or=typeof TextEncoder=="function"?new TextEncoder:void 0,f=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],B=(r=>{let t={};return r.forEach((e,o)=>t[e]=o),t})(f),Rt=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,c=String.fromCharCode.bind(String),Ar=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(r,t=e=>e)=>new Uint8Array(Array.prototype.slice.call(r,0).map(t)),_r=r=>r.replace(/[+\/]/g,t=>t=="+"?"-":"_").replace(/=+$/m,""),Er=r=>r.replace(/[^A-Za-z0-9\+\/]/g,""),ir=r=>{let t,e,o,A,_="";const E=r.length%3;for(let i=0;i<r.length;){if((e=r.charCodeAt(i++))>255||(o=r.charCodeAt(i++))>255||(A=r.charCodeAt(i++))>255)throw new TypeError("invalid character found");t=e<<16|o<<8|A,_+=f[t>>18&63]+f[t>>12&63]+f[t>>6&63]+f[t&63]}return E?_.slice(0,E-3)+"===".substring(E):_},F=Nt?r=>btoa(r):L?r=>Buffer.from(r,"binary").toString("base64"):ir,p=L?r=>Buffer.from(r).toString("base64"):r=>{let e=[];for(let o=0,A=r.length;o<A;o+=4096)e.push(c.apply(null,r.subarray(o,o+4096)));return F(e.join(""))},g=(r,t=!1)=>t?_r(p(r)):p(r),Ot=r=>{if(r.length<2){var t=r.charCodeAt(0);return t<128?r:t<2048?c(192|t>>>6)+c(128|t&63):c(224|t>>>12&15)+c(128|t>>>6&63)+c(128|t&63)}else{var t=65536+(r.charCodeAt(0)-55296)*1024+(r.charCodeAt(1)-56320);return c(240|t>>>18&7)+c(128|t>>>12&63)+c(128|t>>>6&63)+c(128|t&63)}},Dt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,nr=r=>r.replace(Dt,Ot),cr=L?r=>Buffer.from(r,"utf8").toString("base64"):or?r=>p(or.encode(r)):r=>F(nr(r)),S=(r,t=!1)=>t?_r(cr(r)):cr(r),sr=r=>S(r,!0),Tt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ut=r=>{switch(r.length){case 4:var t=(7&r.charCodeAt(0))<<18|(63&r.charCodeAt(1))<<12|(63&r.charCodeAt(2))<<6|63&r.charCodeAt(3),e=t-65536;return c((e>>>10)+55296)+c((e&1023)+56320);case 3:return c((15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2));default:return c((31&r.charCodeAt(0))<<6|63&r.charCodeAt(1))}},ar=r=>r.replace(Tt,ut),Nr=r=>{if(r=r.replace(/\s+/g,""),!Rt.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(r.length&3));let t,e="",o,A;for(let _=0;_<r.length;)t=B[r.charAt(_++)]<<18|B[r.charAt(_++)]<<12|(o=B[r.charAt(_++)])<<6|(A=B[r.charAt(_++)]),e+=o===64?c(t>>16&255):A===64?c(t>>16&255,t>>8&255):c(t>>16&255,t>>8&255,t&255);return e},G=at?r=>atob(Er(r)):L?r=>Buffer.from(r,"base64").toString("binary"):Nr,Rr=L?r=>Ar(Buffer.from(r,"base64")):r=>Ar(G(r),t=>t.charCodeAt(0)),Or=r=>Rr(Dr(r)),Pt=L?r=>Buffer.from(r,"base64").toString("utf8"):er?r=>er.decode(Rr(r)):r=>ar(G(r)),Dr=r=>Er(r.replace(/[-_]/g,t=>t=="-"?"+":"/")),K=r=>Pt(Dr(r)),Lt=r=>{if(typeof r!="string")return!1;const t=r.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},Tr=r=>({value:r,enumerable:!1,writable:!0,configurable:!0}),ur=function(){const r=(t,e)=>Object.defineProperty(String.prototype,t,Tr(e));r("fromBase64",function(){return K(this)}),r("toBase64",function(t){return S(this,t)}),r("toBase64URI",function(){return S(this,!0)}),r("toBase64URL",function(){return S(this,!0)}),r("toUint8Array",function(){return Or(this)})},Pr=function(){const r=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,Tr(e));r("toBase64",function(t){return g(this,t)}),r("toBase64URI",function(){return g(this,!0)}),r("toBase64URL",function(){return g(this,!0)})},Lr={version:tr,VERSION:st,atob:G,atobPolyfill:Nr,btoa:F,btoaPolyfill:ir,fromBase64:K,toBase64:S,encode:S,encodeURI:sr,encodeURL:sr,utob:nr,btou:ar,decode:K,isValid:Lt,fromUint8Array:g,toUint8Array:Or,extendString:ur,extendUint8Array:Pr,extendBuiltins:()=>{ur(),Pr()}},St={encode:Yt,decode:Lr.decode};function Yt(r,t={}){const{urlSafe:e=!1}=t;return Lr.encode(r,e)}function Ct(r){const t=ft(r),e=t.exp*1e3;if(Date.now()>e)throw new Error(`${dt}. Expiration date: ${new Date(e).toISOString()}`);return t}const Sr="The provided `clientToken`",dt=`${Sr} has expired`,It=`${Sr} is malformed`;function ft(r){try{const[t,e]=r.split("."),o=e||t;return JSON.parse(St.decode(o))}catch{throw new Error(It)}}const Yr=15e3,lt={"content-type":"application/json"},Mt=(r,t)=>Cr("get",r,t),ht=(r,t,e)=>Cr("post",r,e,JSON.stringify(t)),Cr=(r,t,e,o)=>fetch(t,{body:o,method:r,headers:{...lt,...e}}).then(async A=>{if(!A.ok){const _=new Error(`HTTP error! status: ${A.status}`);throw _.status=A.status,_}return A.json()}).catch(A=>{if(A instanceof TypeError){const _=new Error("Network error");throw _.isNetworkError=!0,_}throw A}),dr=(r,t)=>new Promise((e,o)=>{const A=setTimeout(()=>{const _=new Error("Request timed out");_.isNetworkError=!0,o(_)},t);r.then(e).catch(o).finally(()=>clearTimeout(A))}),Ut=(r,t={})=>{const{headers:e,log:o,retryConfig:A,timeout:_=Yr}=t;return m(()=>dr(Mt(r,e),_),A,o)},yt=(r,t,e={})=>{const{headers:o,log:A,retryConfig:_,timeout:E=Yr}=e;return retryWithExponentialBackoff(()=>dr(ht(r,t,o),E),_,A)},Bt="v2.44.1",gt=(r,t,e)=>({"primer-client-token":r,"primer-sdk-client":"WEB","primer-sdk-version":Bt,"primer-sdk-checkout-session-id":t,...e&&{"x-api-version":e}});async function kt(r,t,e,o){try{return await Ut(`${t}/?withDisplayMetadata=true`,{headers:gt(r,e,"2.2"),log:o,retryConfig:{enabled:!0}})}catch(A){const _=A instanceof Error?A.message:"Unknown error occurred",E=A instanceof Error&&A.stack?A.stack:JSON.stringify(A);throw o?.(`Failed to initialize client: ${_}
|
|
2
|
-
Error details: ${E}`),new Error(`Failed to initialize client: ${_}`)}}const wt="v2.44.1",bt=k("createHeadless"),vt=k("showExpressCheckout"),xt=k("showUniversalCheckout"),Ht=k("showVaultManager"),Ir="LOAD_PERFORMANCE",l=y();let u=v({checkoutSessionId:l});u.messageEvent({message:"parsed",messageType:Ir,now:performance.now?.()});function k(r){return async(...[t,e,...o])=>{u.sdkFunctionEvent({name:r,params:[t,e,...o]}),u.messageEvent({message:"create",messageType:Ir,now:performance.now?.()});const[A,_]=await Promise.all([Ft(t),X(u)]);return _[r](A,l,t,e)}}async function Ft(r){const{accessToken:t,configurationUrl:e,analyticsUrlV2:o}=Ct(r);u=v({checkoutSessionId:l,url:o});const A=`${e}/?withDisplayMetadata=true`,_=y(),E={method:"get",url:A},i=Date.now();u.networkCallEvent(H(_,E));const n=await kt(t,e,l,M=>{u.networkCallEvent(H(_,E,{error:M}))}),{primerAccountId:T}=n,{clientSessionId:R}=n.clientSession;u=v({checkoutSessionId:l,clientSessionId:R,primerAccountId:T,url:o});const Y=Date.now()-i;return u.networkCallEvent(H(_,E,{data:n},Y)),n}const pt=()=>X().then(()=>{});var Gt=(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))(Gt||{}),Kt=(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))(Kt||{}),Vt=(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))(Vt||{}),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||{}),lr=(r=>(r.DEFAULT="DEFAULT",r.PREFER_VAULT="PREFER_VAULT",r))(lr||{}),Wt=(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))(Wt||{}),Mr=(r=>(r.SUCCESS="AUTH_SUCCESS",r.FAILED="AUTH_FAILED",r.SKIPPED="SKIPPED",r.CHALLENGE="CHALLENGE",r))(Mr||{}),hr=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.ADYEN_KLARNA="ADYEN_KLARNA",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",r.ADYEN_EPS="ADYEN_EPS",r.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",r.OMISE_PROMPTPAY="OMISE_PROMPTPAY",r.OMISE_TRUEMONEY="OMISE_TRUEMONEY",r.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",r.PACYPAY_WECHAT="PACYPAY_WECHAT",r.PACYPAY_ALIPAY="PACYPAY_ALIPAY",r.ADYEN_MBWAY="ADYEN_MBWAY",r.XENDIT_DANA="XENDIT_DANA",r.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",r.ADYEN_PAYSHOP="ADYEN_PAYSHOP",r.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",r.CLEARPAY="CLEARPAY",r.RAPYD_FAST="RAPYD_FAST",r.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",r.RAPYD_GCASH="RAPYD_GCASH",r.RAPYD_POLI="RAPYD_POLI",r.RAPYD_GRABPAY="RAPYD_GRABPAY",r.PRIMER_PAYPAL="PRIMER_PAYPAL",r.TWOC2P="TWOC2P",r.NETS="NETS",r.STRIPE_ACH="STRIPE_ACH",r.STRIPE_GIROPAY="STRIPE_GIROPAY",r.MOLLIE_GIROPAY="MOLLIE_GIROPAY",r.MOLLIE_EPS="MOLLIE_EPS",r.PAY_NL_EPS="PAY_NL_EPS",r.PAY_NL_P24="PAY_NL_P24",r.MOLLIE_P24="MOLLIE_P24",r.MOLLIE_SOFORT="MOLLIE_SOFORT",r.COINBASE="COINBASE",r.OPENNODE="OPENNODE",r.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",r.XFERS_PAYNOW="XFERS_PAYNOW",r.CARD="PAYMENT_CARD",r.APPLE_PAY="APPLE_PAY",r.GOOGLE_PAY="GOOGLE_PAY",r.PAYPAL="PAYPAL_ORDER",r.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",r.GO_CARDLESS="GOCARDLESS",r.PAY_NL_IDEAL="PAY_NL_IDEAL",r.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",r.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",r.PAY_NL_PAYPAL="PAY_NL_PAYPAL",r.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",r.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",r.PAY_NL_GIROPAY="PAY_NL_GIROPAY",r.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",r.HOOLAH="HOOLAH",r.ADYEN_BLIK="ADYEN_BLIK",r.ADYEN_VIPPS="ADYEN_VIPPS",r.ADYEN_GIROPAY="ADYEN_GIROPAY",r.ADYEN_SOFORT="ADYEN_SOFORT",r.ADYEN_IDEAL="ADYEN_IDEAL",r.ADYEN_TRUSTLY="ADYEN_TRUSTLY",r.ADYEN_ALIPAY="ADYEN_ALIPAY",r.ADYEN_TWINT="ADYEN_TWINT",r.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",r.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",r.MOLLIE_IDEAL="MOLLIE_IDEAL",r.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",r.BUCKAROO_EPS="BUCKAROO_EPS",r.BUCKAROO_SOFORT="BUCKAROO_SOFORT",r.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",r.BUCKAROO_IDEAL="BUCKAROO_IDEAL",r.ATOME="ATOME",r.KLARNA_CUSTOMER_TOKEN="KLARNA_CUSTOMER_TOKEN",r))(hr||{}),V=(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))(V||{}),mt=(r=>(r.PAYMENT_CARD="PAYMENT_CARD",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r))(mt||{}),Ur=(r=>(r.SINGLE_USE="SINGLE_USE",r.MULTI_USE="MULTI_USE",r))(Ur||{});const Br={PAYPAL_BILLING_AGREEMENT:"PAYPAL",KLARNA_CUSTOMER_TOKEN:"KLARNA"},re=r=>{if(Object.values(V).includes(r))return r;if(Br[r])return Br[r]};var gr=(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))(gr||{});class kr extends Error{static fromErrorCode(t,e,o){return new kr(t,e,o)}constructor(t,e,o){super(e.message),this.message=e.message,this.code=t,this.diagnosticsId=e.diagnosticsId||null,this.data=e.data,this.isFromDeveloper=e.isFromDeveloper??!1,o?.messageEvent?.({message:e.message,messageType:t,severity:"ERROR",...e.diagnosticsId&&{diagnosticsId:e.diagnosticsId},...e.errorId&&{errorId:e.errorId},...e.data&&{data:e.data},...e.isFromDeveloper!==void 0&&{isFromDeveloper:String(e.isFromDeveloper)},stack:this.stack})}}const te=r=>{throw console.error(r.message),r};var $t=s(473),wr=(r=>(r.PAYMENT_METHOD="PAYMENT_METHOD",r.CHECK="CHECK",r))(wr||{});const jt=r=>"fullMandateText"in r?.mandateData;var br=(r=>(r.CHANGE="change",r.ERROR="error",r.FOCUS="focus",r.BLUR="blur",r.CLICK="click",r.CLOSE="close",r))(br||{}),vr=(r=>(r.CARD="CARD",r.NATIVE="NATIVE",r.REDIRECT="REDIRECT",r.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",r.KLARNA="KLARNA",r.ACH="ACH",r))(vr||{});const Xt={SDK_VERSION:wt,createHeadless:bt,showExpressCheckout:vt,showUniversalCheckout:xt,showVaultManager:Ht}})(),w})());
|
|
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 X={476:()=>{},962:()=>{},473:()=>{}},h={};function R(D){var P=h[D];if(P!==void 0)return P.exports;var d=h[D]={exports:{}};return X[D](d,d.exports,R),d.exports}R.d=(D,P)=>{for(var d in P)R.o(P,d)&&!R.o(D,d)&&Object.defineProperty(D,d,{enumerable:!0,get:P[d]})},R.o=(D,P)=>Object.prototype.hasOwnProperty.call(D,P),R.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var k={};return(()=>{"use strict";R.r(k),R.d(k,{CheckoutUXFlow:()=>wr,ErrorCode:()=>br,EventTypes:()=>Gr,HeadlessManagerType:()=>Kr,PaymentFlow:()=>gr,PaymentInstrumentType:()=>pr,PaymentMethodData:()=>qe.PaymentMethodData,PaymentMethodType:()=>$,Primer:()=>ye,SuccessScreenType:()=>Fr,ThreeDSecureStatus:()=>kr,TokenType:()=>vr,isStripeOptionsDropInWithFullMandateText:()=>Je,preloadPrimer:()=>$e});function D(r){return r?new Promise(e=>{setTimeout(e,r)}):Promise.resolve()}const P=8,d=100,mr=100;function Vr(r){return{enabled:r?.enabled??!1,maxRetries:P,initialBackoff:d,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:mr}}function Wr(r,e,t){const o=r*Math.pow(2,e-1),A=Math.random()*t;return Math.min(o+A,Number.MAX_SAFE_INTEGER)}async function j(r,e,t,o=D){let A=0;const _=Vr(e);if(!_.enabled)return r();for(;;)try{const E=await r();if(A){let i=`Request succeeded after ${A} retries.`;typeof E=="object"&&E&&"status"in E&&(i+=` Status code: ${E.status}`),t?.({messageType:"RETRY_SUCCESS",message:i,severity:"INFO"})}return E}catch(E){const i=E,s=A>=_.maxRetries,n=i.isNetworkError&&!_.retryNetworkErrors,c=i.status&&i.status>=500&&!_.retry500Errors;if(s||n||c){let T=`Failed after ${A} retries. `;throw s?T+=`Reached maximum retries (${_.maxRetries}).`:n?T+="Network error encountered and retryNetworkErrors is disabled.":c&&(T+="HTTP 500 error encountered and retry500Errors is disabled."),T+=` Last error: ${i.message}`,t?.({messageType:"RETRY_FAILED",message:T,severity:"ERROR"}),new Error(T,{cause:E})}A++;const O=Wr(_.initialBackoff,A,_.maxJitter);let a="Unknown error";i.isNetworkError?a="Network error":i.status&&(a=`HTTP ${i.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${A}/${_.maxRetries} due to: ${a}. Error details: ${i.message}. Waiting for ${O.toFixed(2)}ms before next attempt.`,severity:"WARN"}),await o(O)}}function $r(r,e){const t=document.createElement(r);return Object.entries(e).forEach(([o,A])=>t.setAttribute(o,A)),t}function z(r,e,t){return document.querySelector(`${r}[${e}^="${t}"]`)}async function Q(r,e,t,o,A,_){const{analytics:E,name:i=e,retryConfig:s}=_;await j(()=>new Promise((c,O)=>{const a=z(r,t,e)||$r(r,{...o,[t]:e});a.onload=()=>{E?.sdkFunctionEvent({name:i,params:[`${r.charAt(0).toUpperCase()+r.slice(1)} loaded successfully: ${e}`]}),c()},a.onerror=()=>{a.remove(),O(new Error(`${A}: ${e}`))},a.parentNode||document.head.appendChild(a)}),s,c=>E?.messageEvent({...c,url:e}))}function Xr(r,e={}){return z("script","src",r)&&window.__Primer?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Script already loaded"]}),Promise.resolve()):Q("script",r,"src",{...e.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",e)}function jr(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()):Q("link",r,"href",{...e.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",e)}let f;async function Z(r){return f||(f=Promise.all([Xr("https://sdk.primer.io/web/v2.45.1/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),jr("https://sdk.primer.io/web/v2.45.1/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{const o=window.__Primer;return delete window.__Primer,o}).catch(o=>{throw f=void 0,o}),f)}let p={cache:new Map};typeof window<"u"&&(window.__primerCache__??(window.__primerCache__=p),p=window.__primerCache__);const u=()=>p.cache,q=1e3*60*60,zr=30,J=50;function y(){if(u().size<=zr)return;const r=Date.now();for(const[e,t]of u())t.exp<r&&u().delete(e);if(u().size>J)for(const[e]of u()){if(u().size<=J)break;u().delete(e)}}function tt({key:r,ttl:e=q},t){e?u().set(r,{promise:Promise.resolve(t),exp:Date.now()+e}):u().delete(r)}function Qr(r){if(!r)return _=>_();const{key:e,refresh:t=!1,usePrimerSessionCacheTtlHeader:o=!1,ttl:A=q}=r;return async _=>{const E=Date.now(),i=u().get(e);if(!t&&i&&i.exp>E)return i.promise;i&&u().delete(e);const s=_().then(n=>{const c=Date.now();let O=A;return o&&(O=(Number(n.headers.get("x-primer-session-cache-ttl"))||0)*1e3),O?u().set(e,{promise:Promise.resolve({...n,source:"CACHE"}),exp:c+O}):u().delete(e),y(),n},n=>{throw u().delete(e),n});return u().set(e,{promise:s,exp:E+A}),y(),s}}const rr=()=>er.randomUUID?.()||Zr(),Zr=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,r=>(r^qr()>>r/4).toString(16)),qr=()=>(er.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,er=typeof crypto<"u"?crypto:{};var ot=R(476),At=R(962),v=(r=>(r.REQUEST_START="REQUEST_START",r.REQUEST_END="REQUEST_END",r))(v||{}),x=(r=>(r.START="START",r.END="END",r))(x||{});const Jr={createHeadless:"HEADLESS_LOADING",showExpressCheckout:"EXPRESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_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 yr={get(r,e){let t;try{switch(r){case"PRIMER_SDK_VERSION":t="v2.45.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||e}};var re=(r=>(r.CHARGING="CHARGING",r.NOT_CHARGING="NOT_CHARGING",r))(re||{});async function ee(){if(typeof navigator>"u")return;const r=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:r?.level,batteryStatus:r?.charging?"CHARGING":"NOT_CHARGING"}}const te="WEB",oe=yr.get("PRIMER_SDK_VERSION");async function Ae(r,e,t){return{...t,createdAt:Date.now(),device:await ee(),eventType:r,properties:e,sdkVersion:oe,sdkType:te}}const tr="https://analytics.production.data.primer.io/sdk-logs",_e=tr==="https://analytics.sandbox.data.primer.io/playwright";let I={providers:new Map,timers:new Map,eventsQueue:new Map};typeof window<"u"&&(window.__primerAnalytics__??(window.__primerAnalytics__=I),I=window.__primerAnalytics__);const or=()=>I.providers,b=()=>I.timers,Y=()=>I.eventsQueue,Ar=1024*5,ie=500,M=new Map;function H({url:r=tr,...e}){typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&_r(r,!0)});const t=A=>async _=>{if(typeof navigator>"u")return;const E=await Ae(A,_,e),i=n=>ne(se(n));if(_e)return;const s=ir(E,i);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:A,..._})=>{const E=`${e.checkoutSessionId}|${A}`;return b().set(E,{start:performance?.now()}),t(L.TIMER_EVENT)({..._,id:A,timerType:x.START})},timerEnd:({id:A,..._})=>{const E=`${e.checkoutSessionId}|${A}`,{start:i=void 0}=b().get(E)??{};b().delete(E);const s=performance?.now(),n=i?s-i:void 0;return t(L.TIMER_EVENT)({..._,id:A,timerType:x.END,duration:n})},v1Event:t(L.V1_EVENT),url:r};return or().set(e.checkoutSessionId,o),o}function F(r){return new Proxy({},{get(e,t){return(or().get(r)??H({checkoutSessionId:r}))[t]}})}function _r(r,e=!1){if(M.has(r)){const A=M.get(r);clearTimeout(A),M.delete(r)}const t=()=>{const A=Y().get(r);let _=!1;if(A?.length){try{_=navigator.sendBeacon(r,JSON.stringify(A))}catch(E){_=!0,console.error("Unable to access navigator",E)}_&&Y().delete(r)}};if(e){t();return}const o=setTimeout(t,ie);M.set(r,o)}function Ee(r,e){Y().has(r)||Y().set(r,[]),Y().get(r)?.push(e),_r(r)}function ir(r,e){const t=o=>typeof o=="object"&&o!==null?ir(o,e):e(o);return Array.isArray(r)?r.map(t):Object.fromEntries(Object.entries(r).map(([o,A])=>[o,t(A)]))}function ne(r){return typeof r=="string"&&r.length>Ar?`${r.slice(0,Ar)}...`:r}function se(r){return typeof r=="function"?r.name||"function":r}class G{constructor(e,t){this.type=e,this.displayName=t}get specs(){return this.constructor.specs}setOption(e,t){this.options&&(this.options[e]=t)}setupAndValidate(){return Promise.resolve(!0)}mount(){return Promise.resolve(!0)}tokenize(e){return Promise.resolve()}validate(){return Promise.resolve({valid:!0,validationErrors:[]})}setDisabled(e){return Promise.resolve()}focus(){}blur(){}getPaymentElement(){return null}getStore(){}}G.specs={key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1},G.create=(r,e,t,o)=>{throw new Error("Cannot instantiate BasePaymentMethod")};class ce extends G{async tokenize(e){}}class ae{get session(){const e=this.store.getState().clientSessionInfo;if(!e)throw new Error("Client Context Session does not exist");return e}}const Ne=[Array,ce,ae,Map,Set];function Re(r){const e=new Set,t=20;let o=0;for(;o++<t&&r&&r!==Object.prototype;)Object.getOwnPropertyNames(r).forEach(A=>e.add(A)),r=Object.getPrototypeOf(r);return[...e]}function Er(r,e,t,o,A){if(!t||Ne.some(_=>t instanceof _))return t;switch(typeof t){case"function":return new Proxy(t,{apply(_,E,i=[]){const s={name:e.replace(/^bound /,""),params:i,module:A};r?.sdkFunctionEvent(s);const n=i.map((c,O)=>Er(r,`${O}`,c,o,[A,e,`${O}`].filter(Boolean).join(".")));return _.apply(E,n)}});case"object":return t===o?t:Oe(r,t,[A,e].filter(Boolean).join("."));default:return t}}function Oe(r,e,t){return Object.fromEntries(Re(e).map(o=>{const A=e?.[o],_=Er(r,o,A,A,t);return[o,_]}))}const ue=new Set(["post","get","delete"]),De=new Set(["post"]);function Te(r,e,t,o){const A=De.has(r);return{method:r,options:A?o:t,body:A?t:void 0,url:e}}function _t(r,e){const t=({prop:o})=>({apply:async(A,_,E=[])=>{const i=Te(o.toString(),...E);if(i.options?.isAnalytics)return A.apply(_,E);const s=uuid();e?.networkCallEvent(prepareNetworkEventProps(s,i));const n=performance?.now(),c=await A.apply(_,E),a=performance?.now()-n;return e?.networkCallEvent(prepareNetworkEventProps(s,i,c,a)),c}});return new Proxy(r,{get(o,A){const _=o[A];return typeof _=="function"&&ue.has(A)?new Proxy(_,t({prop:A})):_}})}const U=(r,e,t,o)=>({callType:t?v.REQUEST_END:v.REQUEST_START,id:r,errorBody:t?.error&&JSON.stringify(t.error),method:e.method,responseCode:t?.status,url:e.url,duration:o}),nr=15e3,Pe=(r,e,t)=>sr(r,"get",e,t),de=(r,e,t,o)=>sr(r,"post",e,o,JSON.stringify(t)),sr=async(r,e,t,o,A)=>{const _=rr(),E=performance?.now();let i=F(r);const s={method:e,url:t,body:A};i.networkCallEvent(U(_,s));try{const n=await fetch(t,{body:A,method:e,headers:{"content-type":"application/json",...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:rt,customer:et}}=c;i=H({checkoutSessionId:r,clientSessionId:rt,customerId:et?.customerId,primerAccountId:T,url:i.url})}const a=performance?.now()-E;return i.networkCallEvent(U(_,s,{data:c},a)),{data:c,headers:n.headers,status:n.status,source:"NETWORK"}}catch(n){const O=performance?.now()-E;let a;throw n instanceof TypeError?(a=new Error("Network error"),a.isNetworkError=!0,i.networkCallEvent(U(_,s,{error:a},O)),a):(i.networkCallEvent(U(_,s,{error:n},O)),n)}},cr=(r,e)=>new Promise((t,o)=>{const A=setTimeout(()=>{const _=new Error("Request timed out");_.isNetworkError=!0,o(_)},e);r.then(t).catch(o).finally(()=>clearTimeout(A))}),Le=(r,e)=>{const{headers:t,retryConfig:o,cacheConfig:A,timeout:_=nr,checkoutSessionId:E}=e,i=F(E);return Qr(A)(()=>j(()=>cr(Pe(E,r,t),_),o,s=>i.messageEvent({...s,url:r})))},it=(r,e,t)=>{const{headers:o,retryConfig:A,cacheConfig:_,timeout:E=nr,checkoutSessionId:i}=t,s=getAnalytics(i);return cacheRequest(_)(()=>retryWithExponentialBackoff(()=>cr(de(i,r,e,o),E),A,n=>s.messageEvent({...n,url:r})))},ar="3.6.1",Se=ar,Ce=typeof atob=="function",fe=typeof btoa=="function",S=typeof Buffer=="function",Nr=typeof TextDecoder=="function"?new TextDecoder:void 0,Rr=typeof TextEncoder=="function"?new TextEncoder:void 0,l=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],B=(r=>{let e={};return r.forEach((t,o)=>e[t]=o),e})(l),Ie=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,N=String.fromCharCode.bind(String),Or=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(r,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(r,0).map(e)),ur=r=>r.replace(/[+\/]/g,e=>e=="+"?"-":"_").replace(/=+$/m,""),Dr=r=>r.replace(/[^A-Za-z0-9\+\/]/g,""),Tr=r=>{let e,t,o,A,_="";const E=r.length%3;for(let i=0;i<r.length;){if((t=r.charCodeAt(i++))>255||(o=r.charCodeAt(i++))>255||(A=r.charCodeAt(i++))>255)throw new TypeError("invalid character found");e=t<<16|o<<8|A,_+=l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[e&63]}return E?_.slice(0,E-3)+"===".substring(E):_},K=fe?r=>btoa(r):S?r=>Buffer.from(r,"binary").toString("base64"):Tr,m=S?r=>Buffer.from(r).toString("base64"):r=>{let t=[];for(let o=0,A=r.length;o<A;o+=4096)t.push(N.apply(null,r.subarray(o,o+4096)));return K(t.join(""))},w=(r,e=!1)=>e?ur(m(r)):m(r),Ye=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)}},le=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Pr=r=>r.replace(le,Ye),dr=S?r=>Buffer.from(r,"utf8").toString("base64"):Rr?r=>m(Rr.encode(r)):r=>K(Pr(r)),C=(r,e=!1)=>e?ur(dr(r)):dr(r),Lr=r=>C(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 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))}},Sr=r=>r.replace(he,Me),Cr=r=>{if(r=r.replace(/\s+/g,""),!Ie.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(r.length&3));let e,t="",o,A;for(let _=0;_<r.length;)e=B[r.charAt(_++)]<<18|B[r.charAt(_++)]<<12|(o=B[r.charAt(_++)])<<6|(A=B[r.charAt(_++)]),t+=o===64?N(e>>16&255):A===64?N(e>>16&255,e>>8&255):N(e>>16&255,e>>8&255,e&255);return t},V=Ce?r=>atob(Dr(r)):S?r=>Buffer.from(r,"base64").toString("binary"):Cr,fr=S?r=>Or(Buffer.from(r,"base64")):r=>Or(V(r),e=>e.charCodeAt(0)),Ir=r=>fr(Yr(r)),Ue=S?r=>Buffer.from(r,"base64").toString("utf8"):Nr?r=>Nr.decode(fr(r)):r=>Sr(V(r)),Yr=r=>Dr(r.replace(/[-_]/g,e=>e=="-"?"+":"/")),W=r=>Ue(Yr(r)),Be=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)},lr=r=>({value:r,enumerable:!1,writable:!0,configurable:!0}),hr=function(){const r=(e,t)=>Object.defineProperty(String.prototype,e,lr(t));r("fromBase64",function(){return W(this)}),r("toBase64",function(e){return C(this,e)}),r("toBase64URI",function(){return C(this,!0)}),r("toBase64URL",function(){return C(this,!0)}),r("toUint8Array",function(){return Ir(this)})},Mr=function(){const r=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,lr(t));r("toBase64",function(e){return w(this,e)}),r("toBase64URI",function(){return w(this,!0)}),r("toBase64URL",function(){return w(this,!0)})},Ur={version:ar,VERSION:Se,atob:V,atobPolyfill:Cr,btoa:K,btoaPolyfill:Tr,fromBase64:W,toBase64:C,encode:C,encodeURI:Lr,encodeURL:Lr,utob:Pr,btou:Sr,decode:W,isValid:Be,fromUint8Array:w,toUint8Array:Ir,extendString:hr,extendUint8Array:Mr,extendBuiltins:()=>{hr(),Mr()}},we={encode:ge,decode:Ur.decode};function ge(r,e={}){const{urlSafe:t=!1}=e;return Ur.encode(r,t)}function ke(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 Br="The provided `clientToken`",pe=`${Br} has expired`,ve=`${Br} is malformed`;function xe(r){try{const[e,t]=r.split("."),o=t||e;return JSON.parse(we.decode(o))}catch{throw new Error(ve)}}const be="v2.45.1",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:A,analyticsUrlV2:_}=ke(r),E=H({checkoutSessionId:e,url:_});E.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:i,source:s}=await Le(`${A}/?withDisplayMetadata=true`,{checkoutSessionId:e,headers:He(o,e,"2.3"),retryConfig:{enabled:!0},cacheConfig:t});return E.timerEnd({id:"CONFIGURATION_LOADING",source:s}),i}catch(i){const s=i instanceof Error?i.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${s}`)}}const Ge="v2.45.1",Ke=g("createHeadless"),me=g("showExpressCheckout"),Ve=g("showUniversalCheckout"),We=g("showVaultManager");function g(r){return async(...[e,t,...o])=>{const A=rr(),_=F(A);_.sdkFunctionEvent({name:r,params:[e,t,...o]}),_.timerStart({id:Jr[r]});const[E,i]=await Promise.all([Fe(e,A,t?.clientSessionCachingEnabled?{key:e,usePrimerSessionCacheTtlHeader:!0}:void 0),Z(_)]);return i[r](E,A,e,t)}}const $e=()=>Z().then(()=>{});var Xe=(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))(Xe||{}),je=(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))(je||{}),ze=(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))(ze||{}),wr=(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))(wr||{}),gr=(r=>(r.DEFAULT="DEFAULT",r.PREFER_VAULT="PREFER_VAULT",r))(gr||{}),Qe=(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))(Qe||{}),kr=(r=>(r.SUCCESS="AUTH_SUCCESS",r.FAILED="AUTH_FAILED",r.SKIPPED="SKIPPED",r.CHALLENGE="CHALLENGE",r))(kr||{}),pr=(r=>(r.WORLDPAY_IDEAL="WORLDPAY_IDEAL",r.ADYEN_KLARNA="ADYEN_KLARNA",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",r.ADYEN_EPS="ADYEN_EPS",r.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",r.OMISE_PROMPTPAY="OMISE_PROMPTPAY",r.OMISE_TRUEMONEY="OMISE_TRUEMONEY",r.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",r.PACYPAY_WECHAT="PACYPAY_WECHAT",r.PACYPAY_ALIPAY="PACYPAY_ALIPAY",r.ADYEN_MBWAY="ADYEN_MBWAY",r.XENDIT_DANA="XENDIT_DANA",r.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",r.ADYEN_PAYSHOP="ADYEN_PAYSHOP",r.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",r.CLEARPAY="CLEARPAY",r.RAPYD_FAST="RAPYD_FAST",r.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",r.RAPYD_GCASH="RAPYD_GCASH",r.RAPYD_POLI="RAPYD_POLI",r.RAPYD_GRABPAY="RAPYD_GRABPAY",r.PRIMER_PAYPAL="PRIMER_PAYPAL",r.TWOC2P="TWOC2P",r.NETS="NETS",r.STRIPE_ACH="STRIPE_ACH",r.STRIPE_GIROPAY="STRIPE_GIROPAY",r.MOLLIE_GIROPAY="MOLLIE_GIROPAY",r.MOLLIE_EPS="MOLLIE_EPS",r.PAY_NL_EPS="PAY_NL_EPS",r.PAY_NL_P24="PAY_NL_P24",r.MOLLIE_P24="MOLLIE_P24",r.MOLLIE_SOFORT="MOLLIE_SOFORT",r.COINBASE="COINBASE",r.OPENNODE="OPENNODE",r.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",r.XFERS_PAYNOW="XFERS_PAYNOW",r.CARD="PAYMENT_CARD",r.APPLE_PAY="APPLE_PAY",r.GOOGLE_PAY="GOOGLE_PAY",r.PAYPAL="PAYPAL_ORDER",r.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",r.GO_CARDLESS="GOCARDLESS",r.PAY_NL_IDEAL="PAY_NL_IDEAL",r.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",r.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",r.PAY_NL_PAYPAL="PAY_NL_PAYPAL",r.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",r.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",r.PAY_NL_GIROPAY="PAY_NL_GIROPAY",r.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",r.HOOLAH="HOOLAH",r.ADYEN_BLIK="ADYEN_BLIK",r.ADYEN_VIPPS="ADYEN_VIPPS",r.ADYEN_GIROPAY="ADYEN_GIROPAY",r.ADYEN_SOFORT="ADYEN_SOFORT",r.ADYEN_IDEAL="ADYEN_IDEAL",r.ADYEN_TRUSTLY="ADYEN_TRUSTLY",r.ADYEN_ALIPAY="ADYEN_ALIPAY",r.ADYEN_TWINT="ADYEN_TWINT",r.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",r.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",r.MOLLIE_IDEAL="MOLLIE_IDEAL",r.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",r.BUCKAROO_EPS="BUCKAROO_EPS",r.BUCKAROO_SOFORT="BUCKAROO_SOFORT",r.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",r.BUCKAROO_IDEAL="BUCKAROO_IDEAL",r.ATOME="ATOME",r.KLARNA_CUSTOMER_TOKEN="KLARNA_CUSTOMER_TOKEN",r))(pr||{}),$=(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))($||{}),Ze=(r=>(r.PAYMENT_CARD="PAYMENT_CARD",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r))(Ze||{}),vr=(r=>(r.SINGLE_USE="SINGLE_USE",r.MULTI_USE="MULTI_USE",r))(vr||{});const xr={PAYPAL_BILLING_AGREEMENT:"PAYPAL",KLARNA_CUSTOMER_TOKEN:"KLARNA"},st=r=>{if(Object.values($).includes(r))return r;if(xr[r])return xr[r]};var br=(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))(br||{});class Hr extends Error{static fromErrorCode(e,t,o){return new Hr(e,t,o)}constructor(e,t,o){super(t.message),this.message=t.message,this.code=e,this.diagnosticsId=t.diagnosticsId||null,this.data=t.data,this.isFromDeveloper=t.isFromDeveloper??!1,o?.messageEvent?.({message:t.message,messageType:e,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})}}const ct=r=>{throw console.error(r.message),r};var qe=R(473),Fr=(r=>(r.PAYMENT_METHOD="PAYMENT_METHOD",r.CHECK="CHECK",r))(Fr||{});const Je=r=>"fullMandateText"in r?.mandateData;var Gr=(r=>(r.CHANGE="change",r.ERROR="error",r.FOCUS="focus",r.BLUR="blur",r.CLICK="click",r.CLOSE="close",r))(Gr||{}),Kr=(r=>(r.CARD="CARD",r.NATIVE="NATIVE",r.REDIRECT="REDIRECT",r.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",r.KLARNA="KLARNA",r.ACH="ACH",r))(Kr||{});const ye={SDK_VERSION:Ge,createHeadless:Ke,showExpressCheckout:me,showUniversalCheckout:Ve,showVaultManager:We}})(),k})());
|
package/dist/index.d.ts
CHANGED
|
@@ -205,13 +205,10 @@ export type NetworkEventProperties = {
|
|
|
205
205
|
duration?: number;
|
|
206
206
|
callType: NetworkCallType;
|
|
207
207
|
};
|
|
208
|
-
|
|
209
|
-
START = "START",
|
|
210
|
-
END = "END"
|
|
211
|
-
}
|
|
208
|
+
export type TimerId = "CONFIGURATION_LOADING" | "HEADLESS_LOADING" | "EXPRESS_LOADING" | "DROP_IN_LOADING" | "VAULT_MANAGER_LOADING";
|
|
212
209
|
export interface TimerEventProperties {
|
|
213
|
-
id:
|
|
214
|
-
|
|
210
|
+
id: TimerId;
|
|
211
|
+
[k: string]: string | number | undefined;
|
|
215
212
|
}
|
|
216
213
|
export interface SdkFunctionEventProperties {
|
|
217
214
|
name: string;
|
|
@@ -227,8 +224,10 @@ export type Analytics = {
|
|
|
227
224
|
messageEvent(properties: MessageEventProperties): Promise<void>;
|
|
228
225
|
networkCallEvent(properties: NetworkEventProperties): Promise<void>;
|
|
229
226
|
sdkFunctionEvent(properties: SdkFunctionEventProperties): Promise<void>;
|
|
230
|
-
|
|
227
|
+
timerStart(properties: TimerEventProperties): Promise<void>;
|
|
228
|
+
timerEnd(properties: TimerEventProperties): Promise<void>;
|
|
231
229
|
v1Event(properties: V1EventProperties): Promise<void>;
|
|
230
|
+
url: string;
|
|
232
231
|
};
|
|
233
232
|
export type Nullable<T> = T | null;
|
|
234
233
|
export interface BorderStyle {
|
|
@@ -504,7 +503,7 @@ export interface RequestOptions {
|
|
|
504
503
|
isAnalytics?: boolean;
|
|
505
504
|
}
|
|
506
505
|
export interface APIRequestOptions {
|
|
507
|
-
method: HttpMethod;
|
|
506
|
+
method: "get" | "post" | HttpMethod;
|
|
508
507
|
url: string;
|
|
509
508
|
body?: unknown;
|
|
510
509
|
options?: RequestOptions;
|
|
@@ -519,7 +518,7 @@ export interface ValidationErrorDetail {
|
|
|
519
518
|
}
|
|
520
519
|
export interface APIErrorShape {
|
|
521
520
|
message: string;
|
|
522
|
-
validationErrors
|
|
521
|
+
validationErrors?: ValidationErrorDetail[];
|
|
523
522
|
diagnosticsId?: string;
|
|
524
523
|
errorId?: string;
|
|
525
524
|
}
|
|
@@ -527,6 +526,7 @@ export interface APIResponse<T = unknown> {
|
|
|
527
526
|
error: Nullable<APIErrorShape>;
|
|
528
527
|
data: Nullable<T>;
|
|
529
528
|
status: Nullable<number>;
|
|
529
|
+
headers: Record<string, string>;
|
|
530
530
|
}
|
|
531
531
|
declare class Api {
|
|
532
532
|
private messageBus;
|
|
@@ -563,6 +563,7 @@ declare class Vault {
|
|
|
563
563
|
}
|
|
564
564
|
export type InternalFlowOptions = (UniversalCheckoutOptions | VaultManagerOptions | SinglePaymentMethodCheckoutOptions) & HeadlessUniversalCheckoutOptions & {
|
|
565
565
|
uxFlow?: string;
|
|
566
|
+
newHeadlessOptionsParameter?: boolean;
|
|
566
567
|
};
|
|
567
568
|
export interface ErrorMonitoring {
|
|
568
569
|
captureException(error: Error): any;
|
|
@@ -574,16 +575,16 @@ export interface RetryConfig {
|
|
|
574
575
|
/** Whether retry is enabled */
|
|
575
576
|
enabled: boolean;
|
|
576
577
|
}
|
|
577
|
-
export type Logger = (error: string | Error) => void;
|
|
578
578
|
declare class ScriptLoader {
|
|
579
579
|
private readonly scripts;
|
|
580
580
|
private readonly timeoutMilliseconds;
|
|
581
581
|
constructor();
|
|
582
582
|
load(src: string, options?: {
|
|
583
|
+
name?: string;
|
|
583
584
|
crossOrigin?: "" | "use-credentials";
|
|
584
585
|
customAttributes?: Record<string, string>;
|
|
585
586
|
retryConfig?: RetryConfig;
|
|
586
|
-
|
|
587
|
+
analytics?: any;
|
|
587
588
|
}): Promise<boolean>;
|
|
588
589
|
}
|
|
589
590
|
declare enum ImplementationType {
|
|
@@ -782,6 +783,13 @@ export interface ClientConfiguration {
|
|
|
782
783
|
primerAccountId: string;
|
|
783
784
|
settleOnAuth?: boolean;
|
|
784
785
|
}
|
|
786
|
+
declare class ClientConfigurationHandler {
|
|
787
|
+
private config;
|
|
788
|
+
private checkoutSessionId;
|
|
789
|
+
constructor(config: ClientConfiguration, checkoutSessionId: string);
|
|
790
|
+
fetchClientConfiguration(clientToken: string, cache?: boolean): Promise<ClientConfiguration>;
|
|
791
|
+
getCurrentClientConfiguration(): ClientConfiguration;
|
|
792
|
+
}
|
|
785
793
|
declare enum ClientTokenIntent {
|
|
786
794
|
CHECKOUT = "CHECKOUT",
|
|
787
795
|
THREEDS_AUTHENTICATION = "3DS_AUTHENTICATION",
|
|
@@ -821,13 +829,6 @@ export interface IClientTokenHandler {
|
|
|
821
829
|
addNewClientTokenListener(listener: NewClientTokenListener): any;
|
|
822
830
|
removeNewClientTokenListener(listener: NewClientTokenListener): any;
|
|
823
831
|
}
|
|
824
|
-
declare class ClientConfigurationHandler {
|
|
825
|
-
private config;
|
|
826
|
-
private checkoutSessionId;
|
|
827
|
-
constructor(config: ClientConfiguration, checkoutSessionId: string);
|
|
828
|
-
fetchClientConfiguration({ accessToken, configurationUrl, }: Pick<DecodedClientToken, "accessToken" | "configurationUrl">): Promise<ClientConfiguration>;
|
|
829
|
-
getCurrentClientConfiguration(): ClientConfiguration;
|
|
830
|
-
}
|
|
831
832
|
export interface LongPollServices {
|
|
832
833
|
api: Api;
|
|
833
834
|
}
|
|
@@ -1791,6 +1792,7 @@ export interface SinglePaymentMethodCheckoutOptions extends TokenizationHandlers
|
|
|
1791
1792
|
directDebit?: DirectDebitOptions;
|
|
1792
1793
|
stripe?: StripeOptions;
|
|
1793
1794
|
paymentHandling?: PaymentHandling;
|
|
1795
|
+
clientSessionCachingEnabled?: boolean;
|
|
1794
1796
|
}
|
|
1795
1797
|
export interface VaultManagerOptions extends WithAllowedCardNetworks {
|
|
1796
1798
|
container: string | Element;
|
|
@@ -1838,6 +1840,7 @@ export interface UniversalCheckoutOptions extends TokenizationHandlers, PaymentH
|
|
|
1838
1840
|
stripe?: StripeOptionsDropIn;
|
|
1839
1841
|
paymentHandling?: PaymentHandling;
|
|
1840
1842
|
advanced?: AdvancedOptions;
|
|
1843
|
+
clientSessionCachingEnabled?: boolean;
|
|
1841
1844
|
}
|
|
1842
1845
|
export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers, PaymentHandlers, PaymentMethodHandlers, ClientSessionHandlers, WithAllowedCardNetworks {
|
|
1843
1846
|
style?: CheckoutStyle;
|
|
@@ -1853,6 +1856,7 @@ export interface HeadlessUniversalCheckoutOptions extends TokenizationHandlers,
|
|
|
1853
1856
|
giftCard?: CustomizablePaymentMethodButton;
|
|
1854
1857
|
stripe?: StripeOptions;
|
|
1855
1858
|
onAvailablePaymentMethodsLoad: (paymentMethods: PaymentMethodInfo[]) => void;
|
|
1859
|
+
clientSessionCachingEnabled?: boolean;
|
|
1856
1860
|
}
|
|
1857
1861
|
export type WithAllowedCardNetworks = {
|
|
1858
1862
|
/** @deprecated Use `orderedAllowedCardNetworks` on your Primer Dashboard instead. */
|
|
@@ -2058,9 +2062,17 @@ export interface PrimerHeadlessCheckout {
|
|
|
2058
2062
|
createPaymentMethodManager(type: "STRIPE_ACH", options?: AchPaymentMethodManagerOptions): Promise<IAchPaymentMethodManager | null>;
|
|
2059
2063
|
createPaymentMethodManager(type: PaymentMethodType, options?: PaymentMethodManagerOptions): Promise<IRedirectPaymentMethodManager | null>;
|
|
2060
2064
|
createVaultManager(): HeadlessVaultManager;
|
|
2061
|
-
|
|
2065
|
+
/**
|
|
2066
|
+
* @deprecated
|
|
2067
|
+
* The options should be set on the `createHeadless` second parameter instead:
|
|
2068
|
+
* ```
|
|
2069
|
+
* Primer.createHeadless('clientToken', options);
|
|
2070
|
+
* ```
|
|
2071
|
+
*/
|
|
2072
|
+
configure: (options: Omit<HeadlessUniversalCheckoutOptions, "clientSessionCachingEnabled">) => void;
|
|
2062
2073
|
getAssetsManager(): IAssetsManager;
|
|
2063
2074
|
start: () => Promise<void>;
|
|
2075
|
+
refreshClientSession(): Promise<boolean>;
|
|
2064
2076
|
}
|
|
2065
2077
|
export interface PrimerSinglePaymentMethodCheckout {
|
|
2066
2078
|
submit(): void;
|
|
@@ -2085,7 +2097,7 @@ export interface RemotePaymentMethodConfiguration<T> {
|
|
|
2085
2097
|
}
|
|
2086
2098
|
export declare const Primer: {
|
|
2087
2099
|
SDK_VERSION: string;
|
|
2088
|
-
createHeadless: (clientToken: string) => Promise<PrimerHeadlessCheckout>;
|
|
2100
|
+
createHeadless: (clientToken: string, options?: HeadlessUniversalCheckoutOptions | undefined) => Promise<PrimerHeadlessCheckout>;
|
|
2089
2101
|
showExpressCheckout: (clientToken: string, options: any) => Promise<PrimerCheckout>;
|
|
2090
2102
|
showUniversalCheckout: (clientToken: string, options: UniversalCheckoutOptions | SinglePaymentMethodCheckoutOptions) => Promise<PrimerCheckout>;
|
|
2091
2103
|
showVaultManager: (clientToken: string, options: VaultManagerOptions) => Promise<PrimerVaultManager>;
|