@primer-io/checkout-web 2.44.1 → 2.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Primer.js +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(l,R){typeof exports=="object"&&typeof module=="object"?module.exports=R():typeof define=="function"&&define.amd?define([],R):typeof exports=="object"?exports.Primer=R():l.Primer=R()})(this,()=>(()=>{var W={476:()=>{},962:()=>{},473:()=>{}},l={};function R(D){var P=l[D];if(P!==void 0)return P.exports;var d=l[D]={exports:{}};return W[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 g={};return(()=>{"use strict";R.r(g),R.d(g,{CheckoutUXFlow:()=>Ur,ErrorCode:()=>vr,EventTypes:()=>Hr,HeadlessManagerType:()=>Fr,PaymentFlow:()=>Br,PaymentInstrumentType:()=>gr,PaymentMethodData:()=>Qe.PaymentMethodData,PaymentMethodType:()=>V,Primer:()=>qe,SuccessScreenType:()=>br,ThreeDSecureStatus:()=>wr,TokenType:()=>kr,isStripeOptionsDropInWithFullMandateText:()=>Ze,preloadPrimer:()=>Ve});function D(r){return r?new Promise(e=>{setTimeout(e,r)}):Promise.resolve()}const P=8,d=100,Gr=100;function Kr(r){return{enabled:r?.enabled??!1,maxRetries:P,initialBackoff:d,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:Gr}}function mr(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 $(r,e,t,o=D){let A=0;const _=Kr(e);if(!_.enabled)return r();for(;;)try{const i=await r();if(A){let E=`Request succeeded after ${A} retries.`;typeof i=="object"&&i&&"status"in i&&(E+=` Status code: ${i.status}`),t?.({messageType:"RETRY_SUCCESS",message:E,severity:"INFO"})}return i}catch(i){const E=i,n=A>=_.maxRetries,s=E.isNetworkError&&!_.retryNetworkErrors,c=E.status&&E.status>=500&&!_.retry500Errors;if(n||s||c){let T=`Failed after ${A} retries. `;throw n?T+=`Reached maximum retries (${_.maxRetries}).`:s?T+="Network error encountered and retryNetworkErrors is disabled.":c&&(T+="HTTP 500 error encountered and retry500Errors is disabled."),T+=` Last error: ${E.message}`,t?.({messageType:"RETRY_FAILED",message:T,severity:"ERROR"}),new Error(T,{cause:i})}A++;const O=mr(_.initialBackoff,A,_.maxJitter);let a="Unknown error";E.isNetworkError?a="Network error":E.status&&(a=`HTTP ${E.status} error`),t?.({messageType:"RETRY",message:`Retry attempt ${A}/${_.maxRetries} due to: ${a}. Error details: ${E.message}. Waiting for ${O.toFixed(2)}ms before next attempt.`,severity:"WARN"}),await o(O)}}function Vr(r,e){const t=document.createElement(r);return Object.entries(e).forEach(([o,A])=>t.setAttribute(o,A)),t}function X(r,e,t){return document.querySelector(`${r}[${e}^="${t}"]`)}async function j(r,e,t,o,A,_){const{analytics:i,name:E=e,retryConfig:n}=_;await $(()=>new Promise((c,O)=>{const a=X(r,t,e)||Vr(r,{...o,[t]:e});a.onload=()=>{i?.sdkFunctionEvent({name:E,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)}),n,c=>i?.messageEvent({...c,url:e}))}function Wr(r,e={}){return X("script","src",r)&&window.__Primer?(e.analytics?.sdkFunctionEvent({name:e.name??r,params:["Script already loaded"]}),Promise.resolve()):j("script",r,"src",{...e.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",e)}function $r(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()):j("link",r,"href",{...e.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",e)}let I;async function z(r){return I||(I=Promise.all([Wr("https://sdk.primer.io/web/v2.45.0/PrimerCoreSDK.min.js",{analytics:r,name:"loadPrimerScript"}),$r("https://sdk.primer.io/web/v2.45.0/Checkout.css",{analytics:r,name:"loadPrimerCss"})]).then(()=>{const o=window.__Primer;return delete window.__Primer,o}).catch(o=>{throw I=void 0,o}),I)}window.__primerCache__??(window.__primerCache__=new Map);const u=()=>window.__primerCache__,Q=1e3*60*60,Xr=30,Z=50;function q(){if(u().size<=Xr)return;const r=Date.now();for(const[e,t]of u())t.exp<r&&u().delete(e);if(u().size>Z)for(const[e]of u()){if(u().size<=Z)break;u().delete(e)}}function rt({key:r,ttl:e=Q},t){e?u().set(r,{promise:Promise.resolve(t),exp:Date.now()+e}):u().delete(r)}function jr(r){if(!r)return _=>_();const{key:e,refresh:t=!1,usePrimerSessionCacheTtlHeader:o=!1,ttl:A=Q}=r;return async _=>{const i=Date.now(),E=u().get(e);if(!t&&E&&E.exp>i)return E.promise;E&&u().delete(e);const n=_().then(s=>{const c=Date.now();let O=A;return o&&(O=(Number(s.headers.get("x-primer-session-cache-ttl"))||0)*1e3),O?u().set(e,{promise:Promise.resolve({...s,source:"CACHE"}),exp:c+O}):u().delete(e),q(),s},s=>{throw u().delete(e),s});return u().set(e,{promise:n,exp:i+A}),q(),n}}const J=()=>y.randomUUID?.()||zr(),zr=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,r=>(r^Qr()>>r/4).toString(16)),Qr=()=>(y.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,y=typeof crypto<"u"?crypto:{};var et=R(476),tt=R(962),k=(r=>(r.REQUEST_START="REQUEST_START",r.REQUEST_END="REQUEST_END",r))(k||{}),p=(r=>(r.START="START",r.END="END",r))(p||{});const Zr={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 qr={get(r,e){let t;try{switch(r){case"PRIMER_SDK_VERSION":t="v2.45.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||e}};var Jr=(r=>(r.CHARGING="CHARGING",r.NOT_CHARGING="NOT_CHARGING",r))(Jr||{});async function yr(){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 re="WEB",ee=qr.get("PRIMER_SDK_VERSION");async function te(r,e,t){return{...t,createdAt:Date.now(),device:await yr(),eventType:r,properties:e,sdkVersion:ee,sdkType:re}}const rr="https://analytics.production.data.primer.io/sdk-logs",oe=rr==="https://analytics.sandbox.data.primer.io/playwright";window.__primerAnalytics__??(window.__primerAnalytics__={providers:new Map,timers:new Map,eventsQueue:new Map});const er=()=>window.__primerAnalytics__.providers,v=()=>window.__primerAnalytics__.timers,Y=()=>window.__primerAnalytics__.eventsQueue,tr=1024*5,Ae=500,h=new Map;function x({url:r=rr,...e}){typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&or(r,!0)});const t=A=>async _=>{if(typeof navigator>"u")return;const i=await te(A,_,e),E=s=>Ee(ie(s));if(oe)return;const n=Ar(i,E);_e(r,n)},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 i=`${e.checkoutSessionId}|${A}`;return v().set(i,{start:performance?.now()}),t(L.TIMER_EVENT)({..._,id:A,timerType:p.START})},timerEnd:({id:A,..._})=>{const i=`${e.checkoutSessionId}|${A}`,{start:E=void 0}=v().get(i)??{};v().delete(i);const n=performance?.now(),s=E?n-E:void 0;return t(L.TIMER_EVENT)({..._,id:A,timerType:p.END,duration:s})},v1Event:t(L.V1_EVENT),url:r};return er().set(e.checkoutSessionId,o),o}function b(r){return new Proxy({},{get(e,t){return(er().get(r)??x({checkoutSessionId:r}))[t]}})}function or(r,e=!1){if(h.has(r)){const A=h.get(r);clearTimeout(A),h.delete(r)}const t=()=>{const A=Y().get(r);let _=!1;if(A?.length){try{_=navigator.sendBeacon(r,JSON.stringify(A))}catch(i){_=!0,console.error("Unable to access navigator",i)}_&&Y().delete(r)}};if(e){t();return}const o=setTimeout(t,Ae);h.set(r,o)}function _e(r,e){Y().has(r)||Y().set(r,[]),Y().get(r)?.push(e),or(r)}function Ar(r,e){const t=o=>typeof o=="object"&&o!==null?Ar(o,e):e(o);return Array.isArray(r)?r.map(t):Object.fromEntries(Object.entries(r).map(([o,A])=>[o,t(A)]))}function Ee(r){return typeof r=="string"&&r.length>tr?`${r.slice(0,tr)}...`:r}function ie(r){return typeof r=="function"?r.name||"function":r}class H{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(){}}H.specs={key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1},H.create=(r,e,t,o)=>{throw new Error("Cannot instantiate BasePaymentMethod")};class se extends H{async tokenize(e){}}class ne{get session(){const e=this.store.getState().clientSessionInfo;if(!e)throw new Error("Client Context Session does not exist");return e}}const ce=[Array,se,ne,Map,Set];function ae(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 _r(r,e,t,o,A){if(!t||ce.some(_=>t instanceof _))return t;switch(typeof t){case"function":return new Proxy(t,{apply(_,i,E=[]){const n={name:e.replace(/^bound /,""),params:E,module:A};r?.sdkFunctionEvent(n);const s=E.map((c,O)=>_r(r,`${O}`,c,o,[A,e,`${O}`].filter(Boolean).join(".")));return _.apply(i,s)}});case"object":return t===o?t:Ne(r,t,[A,e].filter(Boolean).join("."));default:return t}}function Ne(r,e,t){return Object.fromEntries(ae(e).map(o=>{const A=e?.[o],_=_r(r,o,A,A,t);return[o,_]}))}const Re=new Set(["post","get","delete"]),Oe=new Set(["post"]);function ue(r,e,t,o){const A=Oe.has(r);return{method:r,options:A?o:t,body:A?t:void 0,url:e}}function ot(r,e){const t=({prop:o})=>({apply:async(A,_,i=[])=>{const E=ue(o.toString(),...i);if(E.options?.isAnalytics)return A.apply(_,i);const n=uuid();e?.networkCallEvent(prepareNetworkEventProps(n,E));const s=performance?.now(),c=await A.apply(_,i),a=performance?.now()-s;return e?.networkCallEvent(prepareNetworkEventProps(n,E,c,a)),c}});return new Proxy(r,{get(o,A){const _=o[A];return typeof _=="function"&&Re.has(A)?new Proxy(_,t({prop:A})):_}})}const M=(r,e,t,o)=>({callType:t?k.REQUEST_END:k.REQUEST_START,id:r,errorBody:t?.error&&JSON.stringify(t.error),method:e.method,responseCode:t?.status,url:e.url,duration:o}),Er=15e3,De=(r,e,t)=>ir(r,"get",e,t),Te=(r,e,t,o)=>ir(r,"post",e,o,JSON.stringify(t)),ir=async(r,e,t,o,A)=>{const _=J(),i=performance?.now();let E=b(r);const n={method:e,url:t,body:A};E.networkCallEvent(M(_,n));try{const s=await fetch(t,{body:A,method:e,headers:{"content-type":"application/json",...o}});if(!s.ok){const T=new Error(`HTTP error! status: ${s.status}`);throw T.status=s.status,T}const c=await s.json();if(t.includes("client-sdk/configuration")){const{primerAccountId:T,clientSession:{clientSessionId:Je,customer:ye}}=c;E=x({checkoutSessionId:r,clientSessionId:Je,customerId:ye?.customerId,primerAccountId:T,url:E.url})}const a=performance?.now()-i;return E.networkCallEvent(M(_,n,{data:c},a)),{data:c,headers:s.headers,status:s.status,source:"NETWORK"}}catch(s){const O=performance?.now()-i;let a;throw s instanceof TypeError?(a=new Error("Network error"),a.isNetworkError=!0,E.networkCallEvent(M(_,n,{error:a},O)),a):(E.networkCallEvent(M(_,n,{error:s},O)),s)}},sr=(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))}),Pe=(r,e)=>{const{headers:t,retryConfig:o,cacheConfig:A,timeout:_=Er,checkoutSessionId:i}=e,E=b(i);return jr(A)(()=>$(()=>sr(De(i,r,t),_),o,n=>E.messageEvent({...n,url:r})))},At=(r,e,t)=>{const{headers:o,retryConfig:A,cacheConfig:_,timeout:i=Er,checkoutSessionId:E}=t,n=getAnalytics(E);return cacheRequest(_)(()=>retryWithExponentialBackoff(()=>sr(Te(E,r,e,o),i),A,s=>n.messageEvent({...s,url:r})))},nr="3.6.1",de=nr,Le=typeof atob=="function",Se=typeof btoa=="function",S=typeof Buffer=="function",cr=typeof TextDecoder=="function"?new TextDecoder:void 0,ar=typeof TextEncoder=="function"?new TextEncoder:void 0,f=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],U=(r=>{let e={};return r.forEach((t,o)=>e[t]=o),e})(f),Ce=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,N=String.fromCharCode.bind(String),Nr=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(r,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(r,0).map(e)),Rr=r=>r.replace(/[+\/]/g,e=>e=="+"?"-":"_").replace(/=+$/m,""),Or=r=>r.replace(/[^A-Za-z0-9\+\/]/g,""),ur=r=>{let e,t,o,A,_="";const i=r.length%3;for(let E=0;E<r.length;){if((t=r.charCodeAt(E++))>255||(o=r.charCodeAt(E++))>255||(A=r.charCodeAt(E++))>255)throw new TypeError("invalid character found");e=t<<16|o<<8|A,_+=f[e>>18&63]+f[e>>12&63]+f[e>>6&63]+f[e&63]}return i?_.slice(0,i-3)+"===".substring(i):_},F=Se?r=>btoa(r):S?r=>Buffer.from(r,"binary").toString("base64"):ur,G=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 F(t.join(""))},B=(r,e=!1)=>e?Rr(G(r)):G(r),Ie=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)}},Ye=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Dr=r=>r.replace(Ye,Ie),Tr=S?r=>Buffer.from(r,"utf8").toString("base64"):ar?r=>G(ar.encode(r)):r=>F(Dr(r)),C=(r,e=!1)=>e?Rr(Tr(r)):Tr(r),Pr=r=>C(r,!0),fe=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,le=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))}},dr=r=>r.replace(fe,le),Lr=r=>{if(r=r.replace(/\s+/g,""),!Ce.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(r.length&3));let e,t="",o,A;for(let _=0;_<r.length;)e=U[r.charAt(_++)]<<18|U[r.charAt(_++)]<<12|(o=U[r.charAt(_++)])<<6|(A=U[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},K=Le?r=>atob(Or(r)):S?r=>Buffer.from(r,"base64").toString("binary"):Lr,Sr=S?r=>Nr(Buffer.from(r,"base64")):r=>Nr(K(r),e=>e.charCodeAt(0)),Cr=r=>Sr(Ir(r)),he=S?r=>Buffer.from(r,"base64").toString("utf8"):cr?r=>cr.decode(Sr(r)):r=>dr(K(r)),Ir=r=>Or(r.replace(/[-_]/g,e=>e=="-"?"+":"/")),m=r=>he(Ir(r)),Me=r=>{if(typeof r!="string")return!1;const e=r.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},Yr=r=>({value:r,enumerable:!1,writable:!0,configurable:!0}),fr=function(){const r=(e,t)=>Object.defineProperty(String.prototype,e,Yr(t));r("fromBase64",function(){return m(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 Cr(this)})},lr=function(){const r=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,Yr(t));r("toBase64",function(e){return B(this,e)}),r("toBase64URI",function(){return B(this,!0)}),r("toBase64URL",function(){return B(this,!0)})},hr={version:nr,VERSION:de,atob:K,atobPolyfill:Lr,btoa:F,btoaPolyfill:ur,fromBase64:m,toBase64:C,encode:C,encodeURI:Pr,encodeURL:Pr,utob:Dr,btou:dr,decode:m,isValid:Me,fromUint8Array:B,toUint8Array:Cr,extendString:fr,extendUint8Array:lr,extendBuiltins:()=>{fr(),lr()}},Ue={encode:Be,decode:hr.decode};function Be(r,e={}){const{urlSafe:t=!1}=e;return hr.encode(r,t)}function we(r){const e=pe(r),t=e.exp*1e3;if(Date.now()>t)throw new Error(`${ge}. Expiration date: ${new Date(t).toISOString()}`);return e}const Mr="The provided `clientToken`",ge=`${Mr} has expired`,ke=`${Mr} is malformed`;function pe(r){try{const[e,t]=r.split("."),o=t||e;return JSON.parse(Ue.decode(o))}catch{throw new Error(ke)}}const ve="v2.45.0",xe=(r,e,t)=>({"primer-client-token":r,"primer-sdk-client":"WEB","primer-sdk-version":ve,"primer-sdk-checkout-session-id":e,...t&&{"x-api-version":t}});async function be(r,e,t){const{accessToken:o,configurationUrl:A,analyticsUrlV2:_}=we(r),i=x({checkoutSessionId:e,url:_});i.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:E,source:n}=await Pe(`${A}/?withDisplayMetadata=true`,{checkoutSessionId:e,headers:xe(o,e,"2.3"),retryConfig:{enabled:!0},cacheConfig:t});return i.timerEnd({id:"CONFIGURATION_LOADING",source:n}),E}catch(E){const n=E instanceof Error?E.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${n}`)}}const He="v2.45.0",Fe=w("createHeadless"),Ge=w("showExpressCheckout"),Ke=w("showUniversalCheckout"),me=w("showVaultManager");function w(r){return async(...[e,t,...o])=>{const A=J(),_=b(A);_.sdkFunctionEvent({name:r,params:[e,t,...o]}),_.timerStart({id:Zr[r]});const[i,E]=await Promise.all([be(e,A,t?.clientSessionCachingEnabled?{key:e,usePrimerSessionCacheTtlHeader:!0}:void 0),z(_)]);return E[r](i,A,e,t)}}const Ve=()=>z().then(()=>{});var We=(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))(We||{}),$e=(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))($e||{}),Xe=(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))(Xe||{}),Ur=(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))(Ur||{}),Br=(r=>(r.DEFAULT="DEFAULT",r.PREFER_VAULT="PREFER_VAULT",r))(Br||{}),je=(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))(je||{}),wr=(r=>(r.SUCCESS="AUTH_SUCCESS",r.FAILED="AUTH_FAILED",r.SKIPPED="SKIPPED",r.CHALLENGE="CHALLENGE",r))(wr||{}),gr=(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))(gr||{}),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||{}),ze=(r=>(r.PAYMENT_CARD="PAYMENT_CARD",r.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",r))(ze||{}),kr=(r=>(r.SINGLE_USE="SINGLE_USE",r.MULTI_USE="MULTI_USE",r))(kr||{});const pr={PAYPAL_BILLING_AGREEMENT:"PAYPAL",KLARNA_CUSTOMER_TOKEN:"KLARNA"},it=r=>{if(Object.values(V).includes(r))return r;if(pr[r])return pr[r]};var vr=(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))(vr||{});class xr extends Error{static fromErrorCode(e,t,o){return new xr(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 st=r=>{throw console.error(r.message),r};var Qe=R(473),br=(r=>(r.PAYMENT_METHOD="PAYMENT_METHOD",r.CHECK="CHECK",r))(br||{});const Ze=r=>"fullMandateText"in r?.mandateData;var Hr=(r=>(r.CHANGE="change",r.ERROR="error",r.FOCUS="focus",r.BLUR="blur",r.CLICK="click",r.CLOSE="close",r))(Hr||{}),Fr=(r=>(r.CARD="CARD",r.NATIVE="NATIVE",r.REDIRECT="REDIRECT",r.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",r.KLARNA="KLARNA",r.ACH="ACH",r))(Fr||{});const qe={SDK_VERSION:He,createHeadless:Fe,showExpressCheckout:Ge,showUniversalCheckout:Ke,showVaultManager:me}})(),g})());
|
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>;
|