@primer-io/checkout-web 2.50.2 → 2.50.4
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/LICENSE.md +28 -0
- package/dist/Primer.js +2 -2
- package/dist/index.d.ts +6 -820
- package/package.json +2 -2
package/LICENSE.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Primer API Ltd, All rights reserved.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
- Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
- Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
- Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/dist/Primer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(M,T){typeof exports=="object"&&typeof module=="object"?module.exports=T():typeof define=="function"&&define.amd?define([],T):typeof exports=="object"?exports.Primer=T():M.Primer=T()})(this,()=>(()=>{var ee={189:()=>{},367:()=>{},56:()=>{}},M={};function T(R){var u=M[R];if(u!==void 0)return u.exports;var O=M[R]={exports:{}};return ee[R](O,O.exports,T),O.exports}T.d=(R,u)=>{for(var O in u)T.o(u,O)&&!T.o(R,O)&&Object.defineProperty(R,O,{enumerable:!0,get:u[O]})},T.o=(R,u)=>Object.prototype.hasOwnProperty.call(R,u),T.r=R=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(R,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(R,"__esModule",{value:!0})};var B={};return(()=>{"use strict";T.r(B),T.d(B,{CheckoutUXFlow:()=>Ke,ErrorCode:()=>ze,EventTypes:()=>Qe,HeadlessManagerType:()=>Ze,PaymentFlow:()=>We,PaymentInstrumentType:()=>w,PaymentMethodData:()=>nr.PaymentMethodData,PaymentMethodType:()=>p,Primer:()=>ir,SuccessScreenType:()=>Xe,ThreeDSecureStatus:()=>$e,TokenType:()=>rr,isStripeOptionsDropInWithFullMandateText:()=>or});const R={LEGACY:"legacy",V_2_4:"2.4"},u=R.LEGACY;let O=u;function qe(e){e||console.warn(`[Primer SDK] No API version was explicitly set. Defaulting to '${u}'.`),O=e??u}function Je(){return O}class D extends Error{constructor(t,r=!1){super(t),this.isReported=r,this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}static from(t,r=!1){if(t instanceof D)return t;const n=t instanceof Error?t.message:String(t),o=new D(n,r);return t instanceof Error&&t.stack&&(o.stack=t.stack,Object.assign(o,t)),o}markAsReported(){this.isReported=!0}}const te="https://analytics.production.data.primer.io/sdk-logs";var ar=T(189),Er=T(367),v=(e=>(e.REQUEST_START="REQUEST_START",e.REQUEST_END="REQUEST_END",e))(v||{}),b=(e=>(e.START="START",e.END="END",e))(b||{});const H={createHeadless:"HEADLESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING",preloadPrimer:"PRELOAD_PRIMER_LOADING"};var I=(e=>(e.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",e.CRASH_EVENT="CRASH_EVENT",e.TIMER_EVENT="TIMER_EVENT",e.MESSAGE_EVENT="MESSAGE_EVENT",e.V1_EVENT="V1_EVENT",e.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",e))(I||{});const et={get(e,t){let r;try{switch(e){case"PRIMER_SDK_VERSION":r="v2.50.2";break;case"PRIMER_ASSETS_URL":r=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":r=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;default:break}}catch{}return r||t}};var tt=(e=>(e.CHARGING="CHARGING",e.NOT_CHARGING="NOT_CHARGING",e))(tt||{});async function rt(){if(typeof navigator>"u"||typeof performance>"u")return;const e=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:e?.level,batteryStatus:e?.charging?"CHARGING":"NOT_CHARGING"}}const nt="WEB",ot=et.get("PRIMER_SDK_VERSION");async function re(e,t,r){return{...r,createdAt:Date.now(),device:await rt(),eventType:e,properties:t,sdkVersion:ot,sdkType:nt}}const ne=Symbol.for("__primerAnalytics__");let C={providers:new Map,timers:new Map,eventsQueue:new Map};if(typeof window<"u"){const e=window[ne];e?C=e:window[ne]=C}const oe=()=>C.providers,x=()=>C.timers,m=()=>C.eventsQueue,ie=500,y=new Map,Ae=64e3,it=5;function F(e,t=!1,r=1){if(y.has(e)){const i=y.get(e);clearTimeout(i),y.delete(e)}const n=()=>{const i=m().get(e);if(i?.length){let A=!0,s=[],_=0,a=0;for(;a<i.length;){const E=i[a],f=JSON.stringify(E),N=new Blob([f]).size;if(N>Ae){console.error("Event size exceeds maximum payload size and will be skipped:",E),a++;continue}if(_+N>Ae&&s.length>0){try{A=navigator.sendBeacon(e,JSON.stringify(s))}catch(P){A=!1,console.error("Unable to send events",P)}if(!A)break;s=[],_=0}s.push(E),_+=N,a++}if(s.length>0&&A)try{A=navigator.sendBeacon(e,JSON.stringify(s))}catch(E){A=!1,console.error("Unable to send events",E)}if(A)m().delete(e);else if(r<it){const E=ie*Math.pow(2,r);setTimeout(()=>F(e,t,r+1),E)}else console.error("Max retry attempts reached. Events will not be sent.")}};if(t){n();return}const o=setTimeout(n,ie);y.set(e,o)}function At(e,t){m().has(e)||m().set(e,[]),m().get(e)?.push(t),F(e)}const se=1024*5;function ae(e,t,r=new WeakSet,n=0,o=10){if(n>o||r.has(e))return e;r.add(e);const i=A=>typeof A=="object"&&A!==null?ae(A,t,r,n+1,o):t(A);return Array.isArray(e)?e.map(i):Object.fromEntries(Object.entries(e).map(([A,s])=>[A,i(s)]))}function st(e){return typeof e=="string"&&e.length>se?`${e.slice(0,se)}...`:e}function at(e){return typeof e=="function"?e.name||"function":e}let Ee=!1;function G({url:e=te,...t}){typeof document<"u"&&!Ee&&(document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden"){const o=l(t.checkoutSessionId);o.messageEvent({messageType:"VISIBILITY_CHANGE",message:"Checkout visibility is hidden (tab or window change, redirect or being closed)."}),F(o.url,!0)}}),Ee=!0);const r=o=>async i=>{if(typeof navigator>"u")return;const A=await re(o,i,t),_=ae(A,a=>st(at(a)));At(e,_)},n={crashEvent:r(I.CRASH_EVENT),messageEvent:r(I.MESSAGE_EVENT),networkCallEvent:r(I.NETWORK_CALL_EVENT),sdkFunctionEvent:r(I.SDK_FUNCTION_EVENT),timerStart:({id:o,...i})=>{const A=`${t.checkoutSessionId}|${o}`,s=performance?.now?performance.now():Date.now();return x().set(A,{start:s}),r(I.TIMER_EVENT)({...i,id:o,timerType:b.START})},timerEnd:({id:o,...i})=>{const A=`${t.checkoutSessionId}|${o}`,{start:s=void 0}=x().get(A)??{};x().delete(A);const _=performance?.now?performance.now():Date.now(),a=s?_-s:void 0;return r(I.TIMER_EVENT)({...i,id:o,timerType:b.END,duration:a})},v1Event:r(I.V1_EVENT),url:e};return oe().set(t.checkoutSessionId,n),l(t.checkoutSessionId)}function l(e){return new Proxy({},{get(t,r){return(oe().get(e)??G({checkoutSessionId:e}))[r]}})}const V=(e,t,r,n)=>({callType:r?v.REQUEST_END:v.REQUEST_START,id:e,errorBody:r?.error&&JSON.stringify(r.error,Object.getOwnPropertyNames(r.error)),method:t.method,responseCode:r?.status,url:t.url,duration:n});function Et(e){return e?new Promise(t=>{setTimeout(t,e)}):Promise.resolve()}const _t=8,ct=100,Tt=100;function Nt(e){return{enabled:e?.enabled??!1,maxRetries:_t,initialBackoff:ct,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:Tt}}function Rt(e,t,r){const n=e*Math.pow(2,t-1),o=Math.random()*r;return Math.min(n+o,Number.MAX_SAFE_INTEGER)}async function _e(e,t,r,n=Et){let o=0;const i=Nt(t);if(!i.enabled)return e();for(;;)try{const A=await e();if(o){let s=`Request succeeded after ${o} retries.`;typeof A=="object"&&A&&"status"in A&&(s+=` Status code: ${A.status}`),r?.({messageType:"RETRY_SUCCESS",message:s,severity:"INFO"})}return A}catch(A){const s=A,_=o>=i.maxRetries,a=s.isNetworkError&&!i.retryNetworkErrors,E=s.status&&s.status>=500&&!i.retry500Errors;if(_||a||E){let P=`Failed after ${o} retries. `;throw _?P+=`Reached maximum retries (${i.maxRetries}).`:a?P+="Network error encountered and retryNetworkErrors is disabled.":E&&(P+="HTTP 500 error encountered and retry500Errors is disabled."),P+=` Last error: ${s.message}`,r?.({messageType:"RETRY_FAILED",message:P,severity:"ERROR",errorBody:JSON.stringify(A,Object.getOwnPropertyNames(A))}),new Error(P,{cause:A})}o++;const f=Rt(i.initialBackoff,o,i.maxJitter);let N="Unknown error";s.isNetworkError?N="Network error":s.status&&(N=`HTTP ${s.status} error`),r?.({messageType:"RETRY",message:`Retry attempt ${o}/${i.maxRetries} due to: ${N}. Error details: ${s.message}. Waiting for ${f.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(A,Object.getOwnPropertyNames(A))}),await n(f)}}let K={cache:new Map};typeof window<"u"&&(window.__primerCache__??(window.__primerCache__=K),K=window.__primerCache__);const d=()=>K.cache,ce=1e3*60*60,dt=30,Te=50;function Ne(){if(d().size<=dt)return;const e=Date.now();for(const[t,r]of d())r.exp<e&&d().delete(t);if(d().size>Te)for(const[t]of d()){if(d().size<=Te)break;d().delete(t)}}function Pt({key:e,ttl:t=ce},r){t?d().set(e,{promise:Promise.resolve({...r,source:"CACHE"}),exp:Date.now()+t}):d().delete(e)}function ut(e){if(!e)return i=>i();const{key:t,refresh:r=!1,usePrimerSessionCacheTtlHeader:n=!1,ttl:o=ce}=e;return async i=>{const A=Date.now(),s=d().get(t);if(!r&&s&&s.exp>A)return s.promise;s&&d().delete(t);const _=i().then(a=>{let E=o;return n&&(E=(Number(a.headers.get("x-primer-session-cache-ttl"))||0)*1e3),Pt({key:t,ttl:E},a),Ne(),a},a=>{throw d().delete(t),a});return d().set(t,{promise:_,exp:A+o}),Ne(),_}}const W=()=>Re.randomUUID?.()||Ot(),Ot=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>(e^Dt()>>e/4).toString(16)),Dt=()=>(Re.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,Re=typeof crypto<"u"?crypto:{},de=15e3,It=(e,t,r)=>Pe(e,"get",t,r),ft=(e,t,r,n)=>Pe(e,"post",t,n,JSON.stringify(r)),Pe=async(e,t,r,n,o)=>{const i=W(),A=performance?.now();let s=l(e);const _={method:t,url:r,body:o};s.networkCallEvent(V(i,_));try{const a=await fetch(r,{body:o,method:t,headers:{"content-type":"application/json","x-request-id":i,...n}});if(!a.ok){const P=new Error(`HTTP error! status: ${a.status}`);throw P.status=a.status,P}const E=await a.json();if(r.includes("client-sdk/configuration")){const{primerAccountId:P,clientSession:{clientSessionId:Ar,customer:sr}}=E;s=G({checkoutSessionId:e,clientSessionId:Ar,customerId:sr?.customerId,primerAccountId:P,url:s.url})}const N=performance?.now()-A;return s.networkCallEvent(V(i,_,{data:E},N)),{data:E,headers:a.headers,status:a.status,source:"NETWORK"}}catch(a){const f=performance?.now()-A;throw Object.assign(a,{isNetworkError:a instanceof TypeError}),s.networkCallEvent(V(i,_,{error:a},f)),a}},ue=(e,t)=>new Promise((r,n)=>{const o=setTimeout(()=>{const i=new Error("Request timed out");i.isNetworkError=!0,n(i)},t);e.then(r).catch(n).finally(()=>clearTimeout(o))}),lt=(e,t)=>{const{headers:r,retryConfig:n,cacheConfig:o,timeout:i=de,checkoutSessionId:A}=t,s=l(A);return ut(o)(()=>_e(()=>ue(It(A,e,r),i),n,_=>s.messageEvent({..._,url:e})))},_r=(e,t,r)=>{const{headers:n,retryConfig:o,cacheConfig:i,timeout:A=de,checkoutSessionId:s}=r,_=getAnalytics(s);return cacheRequest(i)(()=>retryWithExponentialBackoff(()=>ue(ft(s,e,t,n),A),o,a=>_.messageEvent({...a,url:e})))},Oe="3.7.7",Lt=Oe,L=typeof Buffer=="function",De=typeof TextDecoder=="function"?new TextDecoder:void 0,Ie=typeof TextEncoder=="function"?new TextEncoder:void 0,Y=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),U=(e=>{let t={};return e.forEach((r,n)=>t[r]=n),t})(Y),St=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,c=String.fromCharCode.bind(String),fe=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),le=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),Le=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),Se=e=>{let t,r,n,o,i="";const A=e.length%3;for(let s=0;s<e.length;){if((r=e.charCodeAt(s++))>255||(n=e.charCodeAt(s++))>255||(o=e.charCodeAt(s++))>255)throw new TypeError("invalid character found");t=r<<16|n<<8|o,i+=Y[t>>18&63]+Y[t>>12&63]+Y[t>>6&63]+Y[t&63]}return A?i.slice(0,A-3)+"===".substring(A):i},$=typeof btoa=="function"?e=>btoa(e):L?e=>Buffer.from(e,"binary").toString("base64"):Se,j=L?e=>Buffer.from(e).toString("base64"):e=>{let r=[];for(let n=0,o=e.length;n<o;n+=4096)r.push(c.apply(null,e.subarray(n,n+4096)));return $(r.join(""))},g=(e,t=!1)=>t?le(j(e)):j(e),Ct=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e: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+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return c(240|t>>>18&7)+c(128|t>>>12&63)+c(128|t>>>6&63)+c(128|t&63)}},mt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Ce=e=>e.replace(mt,Ct),me=L?e=>Buffer.from(e,"utf8").toString("base64"):Ie?e=>j(Ie.encode(e)):e=>$(Ce(e)),S=(e,t=!1)=>t?le(me(e)):me(e),Ye=e=>S(e,!0),Yt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ht=e=>{switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),r=t-65536;return c((r>>>10)+55296)+c((r&1023)+56320);case 3:return c((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return c((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},he=e=>e.replace(Yt,ht),pe=e=>{if(e=e.replace(/\s+/g,""),!St.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let t,r="",n,o;for(let i=0;i<e.length;)t=U[e.charAt(i++)]<<18|U[e.charAt(i++)]<<12|(n=U[e.charAt(i++)])<<6|(o=U[e.charAt(i++)]),r+=n===64?c(t>>16&255):o===64?c(t>>16&255,t>>8&255):c(t>>16&255,t>>8&255,t&255);return r},z=typeof atob=="function"?e=>atob(Le(e)):L?e=>Buffer.from(e,"base64").toString("binary"):pe,Me=L?e=>fe(Buffer.from(e,"base64")):e=>fe(z(e).split("").map(t=>t.charCodeAt(0))),ye=e=>Me(Ue(e)),pt=L?e=>Buffer.from(e,"base64").toString("utf8"):De?e=>De.decode(Me(e)):e=>he(z(e)),Ue=e=>Le(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),X=e=>pt(Ue(e)),Mt=e=>{if(typeof e!="string")return!1;const t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},ge=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),ke=function(){const e=(t,r)=>Object.defineProperty(String.prototype,t,ge(r));e("fromBase64",function(){return X(this)}),e("toBase64",function(t){return S(this,t)}),e("toBase64URI",function(){return S(this,!0)}),e("toBase64URL",function(){return S(this,!0)}),e("toUint8Array",function(){return ye(this)})},we=function(){const e=(t,r)=>Object.defineProperty(Uint8Array.prototype,t,ge(r));e("toBase64",function(t){return g(this,t)}),e("toBase64URI",function(){return g(this,!0)}),e("toBase64URL",function(){return g(this,!0)})},Be={version:Oe,VERSION:Lt,atob:z,atobPolyfill:pe,btoa:$,btoaPolyfill:Se,fromBase64:X,toBase64:S,encode:S,encodeURI:Ye,encodeURL:Ye,utob:Ce,btou:he,decode:X,isValid:Mt,fromUint8Array:g,toUint8Array:ye,extendString:ke,extendUint8Array:we,extendBuiltins:()=>{ke(),we()}},yt={encode:Ut,decode:Be.decode};function Ut(e,t={}){const{urlSafe:r=!1}=t;return Be.encode(e,r)}function gt(e){const t=Bt(e),r=t.exp*1e3;if(Date.now()>r)throw new Error(`${kt}. Expiration date: ${new Date(r).toISOString()}`);return t}const ve="The provided `clientToken`",kt=`${ve} has expired`,wt=`${ve} is malformed`;function Bt(e){try{const[t,r]=e.split("."),n=r||t;return JSON.parse(yt.decode(n))}catch{throw new Error(wt)}}const vt="v2.50.2",bt=(e,t,r)=>({"primer-client-token":e,"primer-sdk-client":"WEB","primer-sdk-version":vt,"primer-sdk-checkout-session-id":t,...r&&{"x-api-version":r}});async function Ht(e,t,r){const{accessToken:n,configurationUrl:o,analyticsUrlV2:i}=gt(e),A=G({checkoutSessionId:t,url:i}),s=Je(),_=s!==R.LEGACY?s:"2.3";A.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:a,source:E}=await lt(`${o}/?withDisplayMetadata=true`,{checkoutSessionId:t,headers:bt(n,t,_),retryConfig:{enabled:!0},cacheConfig:r});return A.timerEnd({id:"CONFIGURATION_LOADING",context:{source:E}}),a}catch(a){const E=a instanceof Error?a.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${E}`)}}function be(e){return e instanceof Error?{errorBody:e.message,stacktrace:e.stack}:typeof e=="object"&&e!==null&&"message"in e?{errorBody:String(e.message),stacktrace:"stack"in e?String(e.stack):void 0}:{errorBody:String(e||"Unknown error")}}function k({checkoutSessionId:e,analytics:t,error:r,reporter:n}){t?.crashEvent?t.crashEvent({...be(r),reporter:n}):e&&Q(e,r,n)}async function Q(e,t,r){const n=te,o=await re(I.CRASH_EVENT,{...be(t),reporter:r},{checkoutSessionId:e});try{await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}catch(i){console.error("Failed to post crash event",i)}}const He=Symbol.for("initGlobalErrorMonitoringLoaded"),xe=(e,t)=>{typeof window<"u"&&window[He]||(window[He]=!0,window.addEventListener("error",r=>{xt(r)||Ft(r)&&k({checkoutSessionId:e,analytics:t,error:r.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",r=>{const n=r.reason||new Error("Unhandled promise rejection");Gt(n)&&k({checkoutSessionId:e,analytics:t,error:n,reporter:"unhandledrejection"})}))},xt=e=>e.message==="Script error."||!e.filename||e.lineno===0,Ft=e=>{const t=e.filename;return!!(t&&Z(t)&&new D(e.error).isReported)},Gt=e=>{if(e&&typeof e=="object"&&"stack"in e&&typeof e.stack=="string"){const t=D.from(e);if(t.isReported)return!1;if("fileName"in e&&typeof e.fileName=="string"){const n=e.fileName;if(Z(n))return!0}return Vt(t.stack).some(Z)}return!1},Z=e=>{try{return new URL(e,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},Vt=e=>{if(!e)return[];const t=e.split(`
|
|
2
|
-
`),r=[],n=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(const o of t){const i=o.match(n);if(i&&i[1])r.push(i[1]);else{const A=/@(.*?):\d+:\d+$/,s=o.match(A);s&&s[1]&&r.push(s[1])}}return r};function Kt(e,t){const r=document.createElement(e);return Object.entries(t).forEach(([n,o])=>r.setAttribute(n,o)),r}function Fe(e,t,r){return document.querySelector(`${e}[${t}^="${r}"]`)}async function Ge(e,t,r,n,o,i){const{analytics:A,name:s=t,retryConfig:_}=i;await _e(()=>new Promise((E,f)=>{const N=Fe(e,r,t)||Kt(e,{...n,[r]:t});N.onload=()=>{A?.sdkFunctionEvent({name:s,params:[`${e.charAt(0).toUpperCase()+e.slice(1)} loaded successfully: ${t}`]}),E()},N.onerror=()=>{N.remove(),f(new Error(`${o}: ${t}`))},N.parentNode||document.head.appendChild(N)}),_,E=>A?.messageEvent({...E,url:t}))}function Wt(e,t={}){return Fe("script","src",e)&&window.__Primer?(t.analytics?.sdkFunctionEvent({name:t.name??e,params:["Script already loaded"]}),Promise.resolve()):Ge("script",e,"src",{...t.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",t)}function $t(e,t={}){return Array.from(document.styleSheets).some(r=>r.href===e)?(t.analytics?.sdkFunctionEvent({name:t.name??e,params:["Stylesheet already loaded"]}),Promise.resolve()):Ge("link",e,"href",{...t.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",t)}let h;async function Ve(e){return h||(h=Promise.all([Wt("https://sdk.primer.io/web/v2.50.2/PrimerCoreSDK.min.js",{analytics:e,name:"loadPrimerScript"}),$t("https://sdk.primer.io/web/v2.50.2/Checkout.css",{analytics:e,name:"loadPrimerCss"})]).then(()=>{const n=window.__Primer;return delete window.__Primer,n}).catch(n=>{throw h=void 0,n}),h)}const jt=async()=>{const e=W();try{const t=l(e);try{xe(e,t),t.sdkFunctionEvent({name:"preloadPrimer"}),t.timerStart({id:H.preloadPrimer}),await Ve(t),t.timerEnd({id:H.preloadPrimer})}catch(r){const n=D.from(r);throw n.isReported||(k({checkoutSessionId:e,analytics:t,error:n,reporter:"preloadPrimer level 1"}),n.markAsReported()),n}}catch(t){const r=D.from(t);throw r.isReported||(Q(e,r,"preloadPrimer level 0"),r.markAsReported()),r}},zt="v2.50.2",Xt=q("createHeadless"),Qt=q("showUniversalCheckout"),Zt=q("showVaultManager");function q(e){return async(...[t,r,...n])=>{qe(r?.apiVersion);const o=W();try{const i=l(o);try{xe(o,i),i.sdkFunctionEvent({name:e,params:[t,r,...n]}),i.timerStart({id:H[e]});const[A,s]=await Promise.all([Ht(t,o,r?.clientSessionCachingEnabled?{key:t,usePrimerSessionCacheTtlHeader:!0}:void 0),Ve(i)]);return s[e](A,o,t,r,...n)}catch(A){const s=D.from(A);throw s.isReported||(k({checkoutSessionId:o,analytics:i,error:s,reporter:"lazyLoad level 1"}),s.markAsReported()),s}}catch(i){const A=D.from(i);throw A.isReported||(Q(o,A,"lazyLoad level 0"),A.markAsReported()),A}}}var qt=(e=>(e.LOADING="Loading",e.NO_PAYMENT_METHOD="NoPaymentMethod",e.THREE_DS="UniversalCheckout/3ds",e.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",e.MANAGE_PAYMENT_METHODS="VaultManager/Home",e.DIRECT_DEBIT_FORM="DirectDebit/Form",e.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",e.CREDIT_CARD_FORM="CreditCard/Form",e.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",e.SUCCESS_CHECK="UniversalCheckout/Success/Check",e))(qt||{}),Jt=(e=>(e.ROOT="primer-checkout",e.ROOT_CONTENT="primer-checkout-content",e.SUBMIT_BUTTON="primer-checkout-submit-button",e.THREE_DS_MODAL="primer-checkout-3ds-modal",e.VAULT="primer-checkout-vault",e.VAULT_INLINE="primer-checkout-vault-inline",e.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",e.DIVIDER="primer-checkout-payment-method-divider",e.APM_BUTTONS="primer-checkout-apm-button-container",e.CARDHOLDER_NAME="primer-checkout-cardholder-name",e.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",e.ACTIONS="primer-checkout-actions",e.ACTIONS_MENU="primer-checkout-actions-menu",e.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",e.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",e.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",e.CARD_FORM="primer-checkout-card-form",e.DD_SWITCH="primer-checkout-switch-dd-inputs",e.DD_IBAN_FIELD="primer-checkout-dd-iban-field",e.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",e.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",e.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",e.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",e.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",e.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",e.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",e.DD_IBAN_INPUT="primer-checkout-dd-iban-input",e.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",e.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",e.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",e.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",e.ERROR_MESSAGE="primer-checkout-error-message",e))(Jt||{}),er=(e=>(e.TOKEN="PrimerCheckout__token",e.HIDDEN="PrimerCheckout--hidden",e.FOCUSED="PrimerCheckout--focused",e.SELECTED="PrimerCheckout--selected",e.LOADING="PrimerCheckout--loading",e.ERROR="PrimerCheckout--error",e.CARD_TYPE="PrimerCheckout__cardType",e.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",e.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",e.APM_BUTTON="PrimerCheckout__apmButton",e.EDIT_BUTTON="PrimerCheckout__editButton",e.MENU="PrimerCheckout__dropDownMenu",e.MENU_ITEM="PrimerCheckout__dropDownMenuItem",e.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",e.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",e.ENTER="PrimerCheckout--enter",e.ENTERING="PrimerCheckout--entering",e.ENTERED="PrimerCheckout--entered",e.EXIT="PrimerCheckout--exit",e.EXITING="PrimerCheckout--exiting",e.EXITED="PrimerCheckout--exited",e))(er||{}),Ke=(e=>(e.CHECKOUT="CHECKOUT",e.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",e.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",e))(Ke||{}),We=(e=>(e.DEFAULT="DEFAULT",e.PREFER_VAULT="PREFER_VAULT",e))(We||{}),tr=(e=>(e.TOKENIZE_STARTED="tokenize-started",e.TOKENIZE_ERROR="tokenize-error",e.TOKENIZE_SUCCESS="tokenize-success",e.TOKENIZE_DID_NOT_START="tokenize-did-not-start",e))(tr||{}),$e=(e=>(e.SUCCESS="AUTH_SUCCESS",e.FAILED="AUTH_FAILED",e.SKIPPED="SKIPPED",e.CHALLENGE="CHALLENGE",e))($e||{});const w={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",AUTOMATED_CLEARING_HOUSE:"AUTOMATED_CLEARING_HOUSE",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_ACH:"STRIPE_ACH",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL_ORDER",PAYPAL_VAULTED:"PAYPAL_BILLING_AGREEMENT",GO_CARDLESS:"GOCARDLESS",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME",KLARNA_CUSTOMER_TOKEN:"KLARNA_CUSTOMER_TOKEN"},p={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",STRIPE_ACH:"STRIPE_ACH",STRIPE_IDEAL:"STRIPE_IDEAL",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",PAYMENT_CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL",GO_CARDLESS:"GOCARDLESS",KLARNA:"KLARNA",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_BANK_TRANSFER:"ADYEN_BANK_TRANSFER",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME"},Nr={PAYMENT_CARD:"PAYMENT_CARD",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD"},rr={SINGLE_USE:"SINGLE_USE",MULTI_USE:"MULTI_USE"},je={[w.PAYPAL_VAULTED]:p.PAYPAL,[w.KLARNA_CUSTOMER_TOKEN]:p.KLARNA,[w.AUTOMATED_CLEARING_HOUSE]:p.STRIPE_ACH},Rr=e=>{if(Object.values(p).includes(e))return e;if(je[e])return je[e]};var ze=(e=>(e.INITIALIZATION_ERROR="INITIALIZATION_ERROR",e.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",e.PRIMER_TEARDOWN="PRIMER_TEARDOWN",e.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",e.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",e.TOKENIZATION_ERROR="TOKENIZATION_ERROR",e.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",e.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",e.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",e.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",e.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",e.RESUME_ERROR="RESUME_ERROR",e.VALIDATION_ERROR="VALIDATION_ERROR",e.PAYMENT_FAILED="PAYMENT_FAILED",e.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",e.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",e.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.VAULT_FETCH="VAULT_FETCH",e.VAULT_DELETE="VAULT_DELETE",e.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",e.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",e.MISSING_FIRST_NAME_OR_LAST_NAME="MISSING_FIRST_NAME_OR_LAST_NAME",e.MISSING_EMAIL_ADDRESS="MISSING_EMAIL_ADDRESS",e.INVALID_FLOW="INVALID_FLOW",e))(ze||{});class J extends D{static fromErrorCode(t,r,n){return new J(t,r,n)}constructor(t,r,n){super(r.message),this.code=t,this.diagnosticsId=r.diagnosticsId??null,this.data=r.data,this.isFromDeveloper=r.isFromDeveloper??!1,this.name="PrimerClientError",Error.captureStackTrace&&Error.captureStackTrace(this,J),n&&(n.messageEvent({message:`${t}: ${r.message}`,messageType:t,severity:"ERROR",diagnosticsId:r.diagnosticsId??void 0,errorId:r.errorId??void 0,data:r.data??void 0,isFromDeveloper:r.isFromDeveloper?.toString(),stack:this.stack}),this.markAsReported())}}var nr=T(56),Xe=(e=>(e.PAYMENT_METHOD="PAYMENT_METHOD",e.CHECK="CHECK",e))(Xe||{});const or=e=>{const t=e?.mandateData;return t?"fullMandateText"in t:!1};var Qe=(e=>(e.CHANGE="change",e.ERROR="error",e.FOCUS="focus",e.BLUR="blur",e.CLICK="click",e.CLOSE="close",e))(Qe||{}),Ze=(e=>(e.CARD="CARD",e.NATIVE="NATIVE",e.REDIRECT="REDIRECT",e.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",e.KLARNA="KLARNA",e.ACH="ACH",e))(Ze||{});const ir={SDK_VERSION:zt,createHeadless:Xt,showUniversalCheckout:Qt,showVaultManager:Zt,preloadPrimer:jt}})(),B})());
|
|
1
|
+
(function(M,T){typeof exports=="object"&&typeof module=="object"?module.exports=T():typeof define=="function"&&define.amd?define([],T):typeof exports=="object"?exports.Primer=T():M.Primer=T()})(this,()=>(()=>{var ee={189:()=>{},367:()=>{},56:()=>{}},M={};function T(R){var u=M[R];if(u!==void 0)return u.exports;var O=M[R]={exports:{}};return ee[R](O,O.exports,T),O.exports}T.d=(R,u)=>{for(var O in u)T.o(u,O)&&!T.o(R,O)&&Object.defineProperty(R,O,{enumerable:!0,get:u[O]})},T.o=(R,u)=>Object.prototype.hasOwnProperty.call(R,u),T.r=R=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(R,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(R,"__esModule",{value:!0})};var v={};return(()=>{"use strict";T.r(v),T.d(v,{CheckoutUXFlow:()=>Ke,ErrorCode:()=>ze,EventTypes:()=>Qe,HeadlessManagerType:()=>Ze,PaymentFlow:()=>We,PaymentInstrumentType:()=>w,PaymentMethodData:()=>nr.PaymentMethodData,PaymentMethodType:()=>p,Primer:()=>ir,SuccessScreenType:()=>Xe,ThreeDSecureStatus:()=>$e,TokenType:()=>rr,isStripeOptionsDropInWithFullMandateText:()=>or});const R={LEGACY:"legacy",V_2_4:"2.4"},u=R.LEGACY;let O=u;function qe(e){e||console.warn(`[Primer SDK] No API version was explicitly set. Defaulting to '${u}'.`),O=e??u}function Je(){return O}class D extends Error{constructor(t,r=!1){super(t),this.isReported=r,this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}static from(t,r=!1){if(t instanceof D)return t;const n=t instanceof Error?t.message:String(t),o=new D(n,r);return t instanceof Error&&t.stack&&(o.stack=t.stack,Object.assign(o,t)),o}markAsReported(){this.isReported=!0}}const te="https://analytics.production.data.primer.io/sdk-logs";var ar=T(189),Er=T(367),b=(e=>(e.REQUEST_START="REQUEST_START",e.REQUEST_END="REQUEST_END",e))(b||{}),H=(e=>(e.START="START",e.END="END",e))(H||{});const x={createHeadless:"HEADLESS_LOADING",showUniversalCheckout:"DROP_IN_LOADING",showVaultManager:"VAULT_MANAGER_LOADING",preloadPrimer:"PRELOAD_PRIMER_LOADING"};var I=(e=>(e.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",e.CRASH_EVENT="CRASH_EVENT",e.TIMER_EVENT="TIMER_EVENT",e.MESSAGE_EVENT="MESSAGE_EVENT",e.V1_EVENT="V1_EVENT",e.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT",e))(I||{});const et={get(e,t){let r;try{switch(e){case"PRIMER_SDK_VERSION":r="v2.50.4";break;case"PRIMER_ASSETS_URL":r=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":r=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;default:break}}catch{}return r||t}};var tt=(e=>(e.CHARGING="CHARGING",e.NOT_CHARGING="NOT_CHARGING",e))(tt||{});async function rt(){if(typeof navigator>"u"||typeof performance>"u")return;const e=await navigator.getBattery?.();return{memoryFootprint:performance.memory?.usedJSHeapSize,screen:{height:screen?.height,width:screen?.width},userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:e?.level,batteryStatus:e?.charging?"CHARGING":"NOT_CHARGING"}}const nt="WEB",ot=et.get("PRIMER_SDK_VERSION");async function re(e,t,r){return{...r,createdAt:Date.now(),device:await rt(),eventType:e,properties:t,sdkVersion:ot,sdkType:nt}}const ne=Symbol.for("__primerAnalytics__");let C={providers:new Map,timers:new Map,eventsQueue:new Map};if(typeof window<"u"){const e=window[ne];e?C=e:window[ne]=C}const oe=()=>C.providers,F=()=>C.timers,m=()=>C.eventsQueue,ie=500,y=new Map,Ae=64e3,it=5;function G(e,t=!1,r=1){if(y.has(e)){const i=y.get(e);clearTimeout(i),y.delete(e)}const n=()=>{const i=m().get(e);if(i?.length){let A=!0,s=[],_=0,a=0;for(;a<i.length;){const E=i[a],f=JSON.stringify(E),N=new Blob([f]).size;if(N>Ae){console.error("Event size exceeds maximum payload size and will be skipped:",E),a++;continue}if(_+N>Ae&&s.length>0){try{A=navigator.sendBeacon(e,JSON.stringify(s))}catch(P){A=!1,console.error("Unable to send events",P)}if(!A)break;s=[],_=0}s.push(E),_+=N,a++}if(s.length>0&&A)try{A=navigator.sendBeacon(e,JSON.stringify(s))}catch(E){A=!1,console.error("Unable to send events",E)}if(A)m().delete(e);else if(r<it){const E=ie*Math.pow(2,r);setTimeout(()=>G(e,t,r+1),E)}else console.error("Max retry attempts reached. Events will not be sent.")}};if(t){n();return}const o=setTimeout(n,ie);y.set(e,o)}function At(e,t){m().has(e)||m().set(e,[]),m().get(e)?.push(t),G(e)}const se=1024*5;function ae(e,t,r=new WeakSet,n=0,o=10){if(n>o||r.has(e))return e;r.add(e);const i=A=>typeof A=="object"&&A!==null?ae(A,t,r,n+1,o):t(A);return Array.isArray(e)?e.map(i):Object.fromEntries(Object.entries(e).map(([A,s])=>[A,i(s)]))}function st(e){return typeof e=="string"&&e.length>se?`${e.slice(0,se)}...`:e}function at(e){return typeof e=="function"?e.name||"function":e}let Ee=!1;function V({url:e=te,...t}){typeof document<"u"&&!Ee&&(document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden"){const o=l(t.checkoutSessionId);o.messageEvent({messageType:"VISIBILITY_CHANGE",message:"Checkout visibility is hidden (tab or window change, redirect or being closed)."}),G(o.url,!0)}}),Ee=!0);const r=o=>async i=>{if(typeof navigator>"u")return;const A=await re(o,i,t),_=ae(A,a=>st(at(a)));At(e,_)},n={crashEvent:r(I.CRASH_EVENT),messageEvent:r(I.MESSAGE_EVENT),networkCallEvent:r(I.NETWORK_CALL_EVENT),sdkFunctionEvent:r(I.SDK_FUNCTION_EVENT),timerStart:({id:o,...i})=>{const A=`${t.checkoutSessionId}|${o}`,s=performance?.now?performance.now():Date.now();return F().set(A,{start:s}),r(I.TIMER_EVENT)({...i,id:o,timerType:H.START})},timerEnd:({id:o,...i})=>{const A=`${t.checkoutSessionId}|${o}`,{start:s=void 0}=F().get(A)??{};F().delete(A);const _=performance?.now?performance.now():Date.now(),a=s?_-s:void 0;return r(I.TIMER_EVENT)({...i,id:o,timerType:H.END,duration:a})},v1Event:r(I.V1_EVENT),url:e};return oe().set(t.checkoutSessionId,n),l(t.checkoutSessionId)}function l(e){return new Proxy({},{get(t,r){return(oe().get(e)??V({checkoutSessionId:e}))[r]}})}const K=(e,t,r,n)=>({callType:r?b.REQUEST_END:b.REQUEST_START,id:e,errorBody:r?.error&&JSON.stringify(r.error,Object.getOwnPropertyNames(r.error)),method:t.method,responseCode:r?.status,url:t.url,duration:n});function Et(e){return e?new Promise(t=>{setTimeout(t,e)}):Promise.resolve()}const _t=8,ct=100,Tt=100;function Nt(e){return{enabled:e?.enabled??!1,maxRetries:_t,initialBackoff:ct,retryNetworkErrors:!0,retry500Errors:!1,maxJitter:Tt}}function Rt(e,t,r){const n=e*Math.pow(2,t-1),o=Math.random()*r;return Math.min(n+o,Number.MAX_SAFE_INTEGER)}async function _e(e,t,r,n=Et){let o=0;const i=Nt(t);if(!i.enabled)return e();for(;;)try{const A=await e();if(o){let s=`Request succeeded after ${o} retries.`;typeof A=="object"&&A&&"status"in A&&(s+=` Status code: ${A.status}`),r?.({messageType:"RETRY_SUCCESS",message:s,severity:"INFO"})}return A}catch(A){const s=A,_=o>=i.maxRetries,a=s.isNetworkError&&!i.retryNetworkErrors,E=s.status&&s.status>=500&&!i.retry500Errors;if(_||a||E){let P=`Failed after ${o} retries. `;throw _?P+=`Reached maximum retries (${i.maxRetries}).`:a?P+="Network error encountered and retryNetworkErrors is disabled.":E&&(P+="HTTP 500 error encountered and retry500Errors is disabled."),P+=` Last error: ${s.message}`,r?.({messageType:"RETRY_FAILED",message:P,severity:"ERROR",errorBody:JSON.stringify(A,Object.getOwnPropertyNames(A))}),new Error(P,{cause:A})}o++;const f=Rt(i.initialBackoff,o,i.maxJitter);let N="Unknown error";s.isNetworkError?N="Network error":s.status&&(N=`HTTP ${s.status} error`),r?.({messageType:"RETRY",message:`Retry attempt ${o}/${i.maxRetries} due to: ${N}. Error details: ${s.message}. Waiting for ${f.toFixed(2)}ms before next attempt.`,severity:"WARN",errorBody:JSON.stringify(A,Object.getOwnPropertyNames(A))}),await n(f)}}let W={cache:new Map};typeof window<"u"&&(window.__primerCache__??(window.__primerCache__=W),W=window.__primerCache__);const d=()=>W.cache,ce=1e3*60*60,dt=30,Te=50;function Ne(){if(d().size<=dt)return;const e=Date.now();for(const[t,r]of d())r.exp<e&&d().delete(t);if(d().size>Te)for(const[t]of d()){if(d().size<=Te)break;d().delete(t)}}function Pt({key:e,ttl:t=ce},r){t?d().set(e,{promise:Promise.resolve({...r,source:"CACHE"}),exp:Date.now()+t}):d().delete(e)}function ut(e){if(!e)return i=>i();const{key:t,refresh:r=!1,usePrimerSessionCacheTtlHeader:n=!1,ttl:o=ce}=e;return async i=>{const A=Date.now(),s=d().get(t);if(!r&&s&&s.exp>A)return s.promise;s&&d().delete(t);const _=i().then(a=>{let E=o;return n&&(E=(Number(a.headers.get("x-primer-session-cache-ttl"))||0)*1e3),Pt({key:t,ttl:E},a),Ne(),a},a=>{throw d().delete(t),a});return d().set(t,{promise:_,exp:A+o}),Ne(),_}}const $=()=>Re.randomUUID?.()||Ot(),Ot=()=>("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>(e^Dt()>>e/4).toString(16)),Dt=()=>(Re.getRandomValues?.(new Uint8Array(1))[0]??Math.random()*16)&15,Re=typeof crypto<"u"?crypto:{},de=15e3,It=(e,t,r)=>Pe(e,"get",t,r),ft=(e,t,r,n)=>Pe(e,"post",t,n,JSON.stringify(r)),Pe=async(e,t,r,n,o)=>{const i=$(),A=performance?.now();let s=l(e);const _={method:t,url:r,body:o};s.networkCallEvent(K(i,_));try{const a=await fetch(r,{body:o,method:t,headers:{"content-type":"application/json","x-request-id":i,...n}});if(!a.ok){const P=new Error(`HTTP error! status: ${a.status}`);throw P.status=a.status,P}const E=await a.json();if(r.includes("client-sdk/configuration")){const{primerAccountId:P,clientSession:{clientSessionId:Ar,customer:sr}}=E;s=V({checkoutSessionId:e,clientSessionId:Ar,customerId:sr?.customerId,primerAccountId:P,url:s.url})}const N=performance?.now()-A;return s.networkCallEvent(K(i,_,{data:E},N)),{data:E,headers:a.headers,status:a.status,source:"NETWORK"}}catch(a){const f=performance?.now()-A;throw Object.assign(a,{isNetworkError:a instanceof TypeError}),s.networkCallEvent(K(i,_,{error:a},f)),a}},ue=(e,t)=>new Promise((r,n)=>{const o=setTimeout(()=>{const i=new Error("Request timed out");i.isNetworkError=!0,n(i)},t);e.then(r).catch(n).finally(()=>clearTimeout(o))}),lt=(e,t)=>{const{headers:r,retryConfig:n,cacheConfig:o,timeout:i=de,checkoutSessionId:A}=t,s=l(A);return ut(o)(()=>_e(()=>ue(It(A,e,r),i),n,_=>s.messageEvent({..._,url:e})))},_r=(e,t,r)=>{const{headers:n,retryConfig:o,cacheConfig:i,timeout:A=de,checkoutSessionId:s}=r,_=getAnalytics(s);return cacheRequest(i)(()=>retryWithExponentialBackoff(()=>ue(ft(s,e,t,n),A),o,a=>_.messageEvent({...a,url:e})))},Oe="3.7.7",Lt=Oe,L=typeof Buffer=="function",De=typeof TextDecoder=="function"?new TextDecoder:void 0,Ie=typeof TextEncoder=="function"?new TextEncoder:void 0,Y=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),U=(e=>{let t={};return e.forEach((r,n)=>t[r]=n),t})(Y),St=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,c=String.fromCharCode.bind(String),fe=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),le=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),Le=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),Se=e=>{let t,r,n,o,i="";const A=e.length%3;for(let s=0;s<e.length;){if((r=e.charCodeAt(s++))>255||(n=e.charCodeAt(s++))>255||(o=e.charCodeAt(s++))>255)throw new TypeError("invalid character found");t=r<<16|n<<8|o,i+=Y[t>>18&63]+Y[t>>12&63]+Y[t>>6&63]+Y[t&63]}return A?i.slice(0,A-3)+"===".substring(A):i},j=typeof btoa=="function"?e=>btoa(e):L?e=>Buffer.from(e,"binary").toString("base64"):Se,z=L?e=>Buffer.from(e).toString("base64"):e=>{let r=[];for(let n=0,o=e.length;n<o;n+=4096)r.push(c.apply(null,e.subarray(n,n+4096)));return j(r.join(""))},g=(e,t=!1)=>t?le(z(e)):z(e),Ct=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e: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+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return c(240|t>>>18&7)+c(128|t>>>12&63)+c(128|t>>>6&63)+c(128|t&63)}},mt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Ce=e=>e.replace(mt,Ct),me=L?e=>Buffer.from(e,"utf8").toString("base64"):Ie?e=>z(Ie.encode(e)):e=>j(Ce(e)),S=(e,t=!1)=>t?le(me(e)):me(e),Ye=e=>S(e,!0),Yt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ht=e=>{switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),r=t-65536;return c((r>>>10)+55296)+c((r&1023)+56320);case 3:return c((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return c((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},he=e=>e.replace(Yt,ht),pe=e=>{if(e=e.replace(/\s+/g,""),!St.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let t,r="",n,o;for(let i=0;i<e.length;)t=U[e.charAt(i++)]<<18|U[e.charAt(i++)]<<12|(n=U[e.charAt(i++)])<<6|(o=U[e.charAt(i++)]),r+=n===64?c(t>>16&255):o===64?c(t>>16&255,t>>8&255):c(t>>16&255,t>>8&255,t&255);return r},X=typeof atob=="function"?e=>atob(Le(e)):L?e=>Buffer.from(e,"base64").toString("binary"):pe,Me=L?e=>fe(Buffer.from(e,"base64")):e=>fe(X(e).split("").map(t=>t.charCodeAt(0))),ye=e=>Me(Ue(e)),pt=L?e=>Buffer.from(e,"base64").toString("utf8"):De?e=>De.decode(Me(e)):e=>he(X(e)),Ue=e=>Le(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),Q=e=>pt(Ue(e)),Mt=e=>{if(typeof e!="string")return!1;const t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},ge=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),ke=function(){const e=(t,r)=>Object.defineProperty(String.prototype,t,ge(r));e("fromBase64",function(){return Q(this)}),e("toBase64",function(t){return S(this,t)}),e("toBase64URI",function(){return S(this,!0)}),e("toBase64URL",function(){return S(this,!0)}),e("toUint8Array",function(){return ye(this)})},we=function(){const e=(t,r)=>Object.defineProperty(Uint8Array.prototype,t,ge(r));e("toBase64",function(t){return g(this,t)}),e("toBase64URI",function(){return g(this,!0)}),e("toBase64URL",function(){return g(this,!0)})},Be={version:Oe,VERSION:Lt,atob:X,atobPolyfill:pe,btoa:j,btoaPolyfill:Se,fromBase64:Q,toBase64:S,encode:S,encodeURI:Ye,encodeURL:Ye,utob:Ce,btou:he,decode:Q,isValid:Mt,fromUint8Array:g,toUint8Array:ye,extendString:ke,extendUint8Array:we,extendBuiltins:()=>{ke(),we()}},yt={encode:Ut,decode:Be.decode};function Ut(e,t={}){const{urlSafe:r=!1}=t;return Be.encode(e,r)}function gt(e){const t=Bt(e),r=t.exp*1e3;if(Date.now()>r)throw new Error(`${kt}. Expiration date: ${new Date(r).toISOString()}`);return t}const ve="The provided `clientToken`",kt=`${ve} has expired`,wt=`${ve} is malformed`;function Bt(e){try{const[t,r]=e.split("."),n=r||t;return JSON.parse(yt.decode(n))}catch{throw new Error(wt)}}const vt="v2.50.4",bt=(e,t,r)=>({"primer-client-token":e,"primer-sdk-client":"WEB","primer-sdk-version":vt,"primer-sdk-checkout-session-id":t,...r&&{"x-api-version":r}});async function Ht(e,t,r){const{accessToken:n,configurationUrl:o,analyticsUrlV2:i}=gt(e),A=V({checkoutSessionId:t,url:i}),s=Je(),_=s!==R.LEGACY?s:"2.3";A.timerStart({id:"CONFIGURATION_LOADING"});try{const{data:a,source:E}=await lt(`${o}/?withDisplayMetadata=true`,{checkoutSessionId:t,headers:bt(n,t,_),retryConfig:{enabled:!0},cacheConfig:r});return A.timerEnd({id:"CONFIGURATION_LOADING",context:{source:E}}),a}catch(a){const E=a instanceof Error?a.message:"Unknown error occurred";throw new Error(`Failed to initialize client: ${E}`)}}function be(e){return e instanceof Error?{errorBody:e.message,stacktrace:e.stack}:typeof e=="object"&&e!==null&&"message"in e?{errorBody:String(e.message),stacktrace:"stack"in e?String(e.stack):void 0}:{errorBody:String(e||"Unknown error")}}function k({checkoutSessionId:e,analytics:t,error:r,reporter:n}){t?.crashEvent?t.crashEvent({...be(r),reporter:n}):e&&Z(e,r,n)}async function Z(e,t,r){const n=te,o=await re(I.CRASH_EVENT,{...be(t),reporter:r},{checkoutSessionId:e});try{await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}catch(i){console.error("Failed to post crash event",i)}}const He=Symbol.for("initGlobalErrorMonitoringLoaded"),xe=(e,t)=>{typeof window<"u"&&window[He]||(window[He]=!0,window.addEventListener("error",r=>{xt(r)||Ft(r)&&k({checkoutSessionId:e,analytics:t,error:r.error,reporter:"window.onerror"})}),window.addEventListener("unhandledrejection",r=>{const n=r.reason||new Error("Unhandled promise rejection");Gt(n)&&k({checkoutSessionId:e,analytics:t,error:n,reporter:"unhandledrejection"})}))},xt=e=>e.message==="Script error."||!e.filename||e.lineno===0,Ft=e=>{const t=e.filename;return!!(t&&q(t)&&new D(e.error).isReported)},Gt=e=>{if(e&&typeof e=="object"&&"stack"in e&&typeof e.stack=="string"){const t=D.from(e);if(t.isReported)return!1;if("fileName"in e&&typeof e.fileName=="string"){const n=e.fileName;if(q(n))return!0}return Vt(t.stack).some(q)}return!1},q=e=>{try{return new URL(e,window.location.origin).hostname.endsWith(".primer.io")}catch{return!1}},Vt=e=>{if(!e)return[];const t=e.split(`
|
|
2
|
+
`),r=[],n=/^\s*at\s+(?:.*?\s+)?\(?(.+?):\d+:\d+\)?$/;for(const o of t){const i=o.match(n);if(i&&i[1])r.push(i[1]);else{const A=/@(.*?):\d+:\d+$/,s=o.match(A);s&&s[1]&&r.push(s[1])}}return r};function Kt(e,t){const r=document.createElement(e);return Object.entries(t).forEach(([n,o])=>r.setAttribute(n,o)),r}function Fe(e,t,r){return document.querySelector(`${e}[${t}^="${r}"]`)}async function Ge(e,t,r,n,o,i){const{analytics:A,name:s=t,retryConfig:_}=i;await _e(()=>new Promise((E,f)=>{const N=Fe(e,r,t)||Kt(e,{...n,[r]:t});N.onload=()=>{A?.sdkFunctionEvent({name:s,params:[`${e.charAt(0).toUpperCase()+e.slice(1)} loaded successfully: ${t}`]}),E()},N.onerror=()=>{N.remove(),f(new Error(`${o}: ${t}`))},N.parentNode||document.head.appendChild(N)}),_,E=>A?.messageEvent({...E,url:t}))}function Wt(e,t={}){return Fe("script","src",e)&&window.__Primer?(t.analytics?.sdkFunctionEvent({name:t.name??e,params:["Script already loaded"]}),Promise.resolve()):Ge("script",e,"src",{...t.attributes,async:"",crossorigin:"anonymous"},"Can't load Primer SDK",t)}function $t(e,t={}){return Array.from(document.styleSheets).some(r=>r.href===e)?(t.analytics?.sdkFunctionEvent({name:t.name??e,params:["Stylesheet already loaded"]}),Promise.resolve()):Ge("link",e,"href",{...t.attributes,rel:"stylesheet"},"Can't load Primer SDK's Stylesheet",t)}let h;async function Ve(e){return h||(h=Promise.all([Wt("https://sdk.primer.io/web/v2.50.4/PrimerCoreSDK.min.js",{analytics:e,name:"loadPrimerScript"}),$t("https://sdk.primer.io/web/v2.50.4/Checkout.css",{analytics:e,name:"loadPrimerCss"})]).then(()=>{const n=window.__Primer;return delete window.__Primer,n}).catch(n=>{throw h=void 0,n}),h)}const jt=async()=>{const e=$();try{const t=l(e);try{xe(e,t),t.sdkFunctionEvent({name:"preloadPrimer"}),t.timerStart({id:x.preloadPrimer}),await Ve(t),t.timerEnd({id:x.preloadPrimer})}catch(r){const n=D.from(r);throw n.isReported||(k({checkoutSessionId:e,analytics:t,error:n,reporter:"preloadPrimer level 1"}),n.markAsReported()),n}}catch(t){const r=D.from(t);throw r.isReported||(Z(e,r,"preloadPrimer level 0"),r.markAsReported()),r}},zt="v2.50.4",Xt=J("createHeadless"),Qt=J("showUniversalCheckout"),Zt=J("showVaultManager");function J(e){return async(...[t,r,...n])=>{qe(r?.apiVersion);const o=$();try{const i=l(o);try{xe(o,i),i.sdkFunctionEvent({name:e,params:[t,r,...n]}),i.timerStart({id:x[e]});const[A,s]=await Promise.all([Ht(t,o,r?.clientSessionCachingEnabled?{key:t,usePrimerSessionCacheTtlHeader:!0}:void 0),Ve(i)]);return s[e](A,o,t,r,...n)}catch(A){const s=D.from(A);throw s.isReported||(k({checkoutSessionId:o,analytics:i,error:s,reporter:"lazyLoad level 1"}),s.markAsReported()),s}}catch(i){const A=D.from(i);throw A.isReported||(Z(o,A,"lazyLoad level 0"),A.markAsReported()),A}}}var qt=(e=>(e.LOADING="Loading",e.NO_PAYMENT_METHOD="NoPaymentMethod",e.THREE_DS="UniversalCheckout/3ds",e.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",e.MANAGE_PAYMENT_METHODS="VaultManager/Home",e.DIRECT_DEBIT_FORM="DirectDebit/Form",e.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",e.CREDIT_CARD_FORM="CreditCard/Form",e.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",e.SUCCESS_CHECK="UniversalCheckout/Success/Check",e))(qt||{}),Jt=(e=>(e.ROOT="primer-checkout",e.ROOT_CONTENT="primer-checkout-content",e.SUBMIT_BUTTON="primer-checkout-submit-button",e.THREE_DS_MODAL="primer-checkout-3ds-modal",e.VAULT="primer-checkout-vault",e.VAULT_INLINE="primer-checkout-vault-inline",e.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",e.DIVIDER="primer-checkout-payment-method-divider",e.APM_BUTTONS="primer-checkout-apm-button-container",e.CARDHOLDER_NAME="primer-checkout-cardholder-name",e.CARDHOLDER_NAME_INPUT="primer-checkout-card-cardholder-name-input",e.ACTIONS="primer-checkout-actions",e.ACTIONS_MENU="primer-checkout-actions-menu",e.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",e.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",e.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",e.CARD_FORM="primer-checkout-card-form",e.DD_SWITCH="primer-checkout-switch-dd-inputs",e.DD_IBAN_FIELD="primer-checkout-dd-iban-field",e.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",e.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",e.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",e.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",e.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",e.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",e.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",e.DD_IBAN_INPUT="primer-checkout-dd-iban-input",e.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",e.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",e.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",e.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",e.ERROR_MESSAGE="primer-checkout-error-message",e))(Jt||{}),er=(e=>(e.TOKEN="PrimerCheckout__token",e.HIDDEN="PrimerCheckout--hidden",e.FOCUSED="PrimerCheckout--focused",e.SELECTED="PrimerCheckout--selected",e.LOADING="PrimerCheckout--loading",e.ERROR="PrimerCheckout--error",e.CARD_TYPE="PrimerCheckout__cardType",e.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",e.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",e.APM_BUTTON="PrimerCheckout__apmButton",e.EDIT_BUTTON="PrimerCheckout__editButton",e.MENU="PrimerCheckout__dropDownMenu",e.MENU_ITEM="PrimerCheckout__dropDownMenuItem",e.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",e.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",e.ENTER="PrimerCheckout--enter",e.ENTERING="PrimerCheckout--entering",e.ENTERED="PrimerCheckout--entered",e.EXIT="PrimerCheckout--exit",e.EXITING="PrimerCheckout--exiting",e.EXITED="PrimerCheckout--exited",e))(er||{}),Ke=(e=>(e.CHECKOUT="CHECKOUT",e.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",e.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",e))(Ke||{}),We=(e=>(e.DEFAULT="DEFAULT",e.PREFER_VAULT="PREFER_VAULT",e))(We||{}),tr=(e=>(e.TOKENIZE_STARTED="tokenize-started",e.TOKENIZE_ERROR="tokenize-error",e.TOKENIZE_SUCCESS="tokenize-success",e.TOKENIZE_DID_NOT_START="tokenize-did-not-start",e))(tr||{}),$e=(e=>(e.SUCCESS="AUTH_SUCCESS",e.FAILED="AUTH_FAILED",e.SKIPPED="SKIPPED",e.CHALLENGE="CHALLENGE",e))($e||{});const w={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",AUTOMATED_CLEARING_HOUSE:"AUTOMATED_CLEARING_HOUSE",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_ACH:"STRIPE_ACH",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL_ORDER",PAYPAL_VAULTED:"PAYPAL_BILLING_AGREEMENT",GO_CARDLESS:"GOCARDLESS",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME",KLARNA_CUSTOMER_TOKEN:"KLARNA_CUSTOMER_TOKEN"},p={WORLDPAY_IDEAL:"WORLDPAY_IDEAL",STRIPE_ACH:"STRIPE_ACH",STRIPE_IDEAL:"STRIPE_IDEAL",ADYEN_KLARNA:"ADYEN_KLARNA",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD",PAY_NL_KAARTDIRECT:"PAY_NL_KAARTDIRECT",ADYEN_EPS:"ADYEN_EPS",ADYEN_BANCONTACT_PAYCONIQ:"ADYEN_BANCONTACT_PAYCONIQ",OMISE_PROMPTPAY:"OMISE_PROMPTPAY",OMISE_TRUEMONEY:"OMISE_TRUEMONEY",ADYEN_MULTIBANCO:"ADYEN_MULTIBANCO",PACYPAY_WECHAT:"PACYPAY_WECHAT",PACYPAY_ALIPAY:"PACYPAY_ALIPAY",ADYEN_MBWAY:"ADYEN_MBWAY",XENDIT_DANA:"XENDIT_DANA",XENDIT_SHOPEEPAY:"XENDIT_SHOPEEPAY",ADYEN_PAYSHOP:"ADYEN_PAYSHOP",ADYEN_PAYTRAIL:"ADYEN_PAYTRAIL",CLEARPAY:"CLEARPAY",RAPYD_FAST:"RAPYD_FAST",RAPYD_PROMPTPAY:"RAPYD_PROMPTPAY",RAPYD_GCASH:"RAPYD_GCASH",RAPYD_POLI:"RAPYD_POLI",RAPYD_GRABPAY:"RAPYD_GRABPAY",PRIMER_PAYPAL:"PRIMER_PAYPAL",TWOC2P:"TWOC2P",NETS:"NETS",STRIPE_GIROPAY:"STRIPE_GIROPAY",MOLLIE_GIROPAY:"MOLLIE_GIROPAY",MOLLIE_EPS:"MOLLIE_EPS",PAY_NL_EPS:"PAY_NL_EPS",PAY_NL_P24:"PAY_NL_P24",MOLLIE_P24:"MOLLIE_P24",MOLLIE_SOFORT:"MOLLIE_SOFORT",COINBASE:"COINBASE",OPENNODE:"OPENNODE",MOLLIE_GIFT_CARD:"MOLLIE_GIFTCARD",XFERS_PAYNOW:"XFERS_PAYNOW",PAYMENT_CARD:"PAYMENT_CARD",APPLE_PAY:"APPLE_PAY",GOOGLE_PAY:"GOOGLE_PAY",PAYPAL:"PAYPAL",GO_CARDLESS:"GOCARDLESS",KLARNA:"KLARNA",PAY_NL_IDEAL:"PAY_NL_IDEAL",PAY_NL_SOFORT_BANKING:"PAY_NL_SOFORT_BANKING",PAY_NL_BANCONTACT:"PAY_NL_BANCONTACT",PAY_NL_PAYPAL:"PAY_NL_PAYPAL",PAY_NL_CREDIT_TRANSFER:"PAY_NL_CREDIT_TRANSFER",PAY_NL_DIRECT_DEBIT:"PAY_NL_DIRECT_DEBIT",PAY_NL_GIROPAY:"PAY_NL_GIROPAY",PAY_NL_PAYCONIQ:"PAY_NL_PAYCONIQ",HOOLAH:"HOOLAH",ADYEN_BLIK:"ADYEN_BLIK",ADYEN_MOBILEPAY:"ADYEN_MOBILEPAY",ADYEN_VIPPS:"ADYEN_VIPPS",ADYEN_GIROPAY:"ADYEN_GIROPAY",ADYEN_SOFORT:"ADYEN_SOFORT",ADYEN_IDEAL:"ADYEN_IDEAL",ADYEN_TRUSTLY:"ADYEN_TRUSTLY",ADYEN_ALIPAY:"ADYEN_ALIPAY",ADYEN_TWINT:"ADYEN_TWINT",ADYEN_BANK_TRANSFER:"ADYEN_BANK_TRANSFER",MOLLIE_BANCONTACT:"MOLLIE_BANCONTACT",MOLLIE_IDEAL:"MOLLIE_IDEAL",BUCKAROO_GIROPAY:"BUCKAROO_GIROPAY",BUCKAROO_EPS:"BUCKAROO_EPS",BUCKAROO_SOFORT:"BUCKAROO_SOFORT",BUCKAROO_BANCONTACT:"BUCKAROO_BANCONTACT",BUCKAROO_IDEAL:"BUCKAROO_IDEAL",ATOME:"ATOME"},Nr={PAYMENT_CARD:"PAYMENT_CARD",ADYEN_BANCONTACT_CARD:"ADYEN_BANCONTACT_CARD"},rr={SINGLE_USE:"SINGLE_USE",MULTI_USE:"MULTI_USE"},je={[w.PAYPAL_VAULTED]:p.PAYPAL,[w.KLARNA_CUSTOMER_TOKEN]:p.KLARNA,[w.AUTOMATED_CLEARING_HOUSE]:p.STRIPE_ACH},Rr=e=>{if(Object.values(p).includes(e))return e;if(je[e])return je[e]};var ze=(e=>(e.INITIALIZATION_ERROR="INITIALIZATION_ERROR",e.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",e.PRIMER_TEARDOWN="PRIMER_TEARDOWN",e.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",e.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",e.TOKENIZATION_ERROR="TOKENIZATION_ERROR",e.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",e.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",e.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",e.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_PROVIDED",e.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",e.RESUME_ERROR="RESUME_ERROR",e.VALIDATION_ERROR="VALIDATION_ERROR",e.PAYMENT_FAILED="PAYMENT_FAILED",e.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",e.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",e.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.VAULT_FETCH="VAULT_FETCH",e.VAULT_DELETE="VAULT_DELETE",e.HEADLESS_VAULT_MANAGER_VALIDATION="HEADLESS_VAULT_MANAGER_VALIDATION",e.CARD_FORM_VALIDATION_UNEXPECTED_FIELD="CARD_FORM_VALIDATION_UNEXPECTED_FIELD",e.MISSING_FIRST_NAME_OR_LAST_NAME="MISSING_FIRST_NAME_OR_LAST_NAME",e.MISSING_EMAIL_ADDRESS="MISSING_EMAIL_ADDRESS",e.INVALID_FLOW="INVALID_FLOW",e))(ze||{});class B extends D{static fromErrorCode(t,r){return new B(t,r)}constructor(t,r){super(r.message),this.code=t,this.diagnosticsId=r.diagnosticsId??null,this.data=r.data,this.isFromDeveloper=r.isFromDeveloper??!1,this.name="PrimerClientError",Error.captureStackTrace&&Error.captureStackTrace(this,B)}}function dr(e,t,r){const n=new B(e,t);return r&&(r.messageEvent({message:`${e}: ${t.message}`,messageType:e,severity:"ERROR",diagnosticsId:t.diagnosticsId??void 0,errorId:t.errorId??void 0,data:t.data??void 0,isFromDeveloper:t.isFromDeveloper?.toString(),stack:n.stack}),n.markAsReported()),n}var nr=T(56),Xe=(e=>(e.PAYMENT_METHOD="PAYMENT_METHOD",e.CHECK="CHECK",e))(Xe||{});const or=e=>{const t=e?.mandateData;return t?"fullMandateText"in t:!1};var Qe=(e=>(e.CHANGE="change",e.ERROR="error",e.FOCUS="focus",e.BLUR="blur",e.CLICK="click",e.CLOSE="close",e))(Qe||{}),Ze=(e=>(e.CARD="CARD",e.NATIVE="NATIVE",e.REDIRECT="REDIRECT",e.FORM_WITH_REDIRECT="FORM_WITH_REDIRECT",e.KLARNA="KLARNA",e.ACH="ACH",e))(Ze||{});const ir={SDK_VERSION:zt,createHeadless:Xt,showUniversalCheckout:Qt,showVaultManager:Zt,preloadPrimer:jt}})(),v})());
|
package/dist/index.d.ts
CHANGED
|
@@ -7,18 +7,6 @@
|
|
|
7
7
|
* ensuring backward compatibility.
|
|
8
8
|
*/
|
|
9
9
|
export type APIVersionOption = "legacy" | "2.4";
|
|
10
|
-
declare enum PaymentIntent {
|
|
11
|
-
adyenKlarna = "ADYEN_KLARNA",
|
|
12
|
-
applePay = "APPLE_PAY",
|
|
13
|
-
googlePay = "GOOGLE_PAY",
|
|
14
|
-
paypal = "PAYPAL",
|
|
15
|
-
directDebit = "DIRECT_DEBIT",
|
|
16
|
-
paymentCard = "PAYMENT_CARD",
|
|
17
|
-
klarna = "KLARNA",
|
|
18
|
-
mollieGiftCard = "MOLLIE_GIFT_CARD",
|
|
19
|
-
netsPayByCard = "NETS_PAY_BY_CARD",
|
|
20
|
-
payNlKaartdirect = "PAY_NL_KAARTDIRECT"
|
|
21
|
-
}
|
|
22
10
|
export declare const PaymentInstrumentType: {
|
|
23
11
|
readonly WORLDPAY_IDEAL: "WORLDPAY_IDEAL";
|
|
24
12
|
readonly AUTOMATED_CLEARING_HOUSE: "AUTOMATED_CLEARING_HOUSE";
|
|
@@ -172,70 +160,7 @@ export declare const TokenType: {
|
|
|
172
160
|
readonly MULTI_USE: "MULTI_USE";
|
|
173
161
|
};
|
|
174
162
|
export type TokenType = (typeof TokenType)[keyof typeof TokenType];
|
|
175
|
-
export interface AnalyticsData extends Record<string, any> {
|
|
176
|
-
sdkEnvironment?: string;
|
|
177
|
-
paymentIntent?: PaymentIntent;
|
|
178
|
-
paymentMethod?: PaymentInstrumentType;
|
|
179
|
-
amount?: number;
|
|
180
|
-
currency?: string;
|
|
181
|
-
sdkVersion?: string;
|
|
182
|
-
isVault?: boolean;
|
|
183
|
-
uxFlow?: string;
|
|
184
|
-
sessionId?: string;
|
|
185
|
-
}
|
|
186
|
-
export interface CrashEventProperties {
|
|
187
|
-
errorBody: string;
|
|
188
|
-
stacktrace?: string;
|
|
189
|
-
reporter?: string;
|
|
190
|
-
}
|
|
191
163
|
export type MessageSeverity = "ERROR" | "DEBUG" | "WARN" | "INFO";
|
|
192
|
-
export interface MessageEventProperties {
|
|
193
|
-
messageType: string;
|
|
194
|
-
message: string;
|
|
195
|
-
severity?: MessageSeverity;
|
|
196
|
-
diagnosticId?: string;
|
|
197
|
-
[k: string]: string | number | undefined;
|
|
198
|
-
}
|
|
199
|
-
declare enum NetworkCallType {
|
|
200
|
-
REQUEST_START = "REQUEST_START",
|
|
201
|
-
REQUEST_END = "REQUEST_END"
|
|
202
|
-
}
|
|
203
|
-
export type NetworkEventProperties = {
|
|
204
|
-
id: string;
|
|
205
|
-
url: string;
|
|
206
|
-
method: string;
|
|
207
|
-
errorBody?: string;
|
|
208
|
-
responseCode?: number;
|
|
209
|
-
duration?: number;
|
|
210
|
-
callType: NetworkCallType;
|
|
211
|
-
};
|
|
212
|
-
export type TimerId = "CONFIGURATION_LOADING" | "HEADLESS_LOADING" | "EXPRESS_LOADING" | "DROP_IN_LOADING" | "VAULT_MANAGER_LOADING" | "PRELOAD_PRIMER_LOADING";
|
|
213
|
-
export interface TimerEventProperties {
|
|
214
|
-
id: TimerId;
|
|
215
|
-
context?: {
|
|
216
|
-
[k: string]: string | number | undefined;
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
export interface SdkFunctionEventProperties {
|
|
220
|
-
name: string;
|
|
221
|
-
params?: object;
|
|
222
|
-
module?: string;
|
|
223
|
-
}
|
|
224
|
-
export type V1EventProperties = {
|
|
225
|
-
data?: AnalyticsData;
|
|
226
|
-
event: string;
|
|
227
|
-
};
|
|
228
|
-
export type Analytics = {
|
|
229
|
-
crashEvent(properties: CrashEventProperties): Promise<void>;
|
|
230
|
-
messageEvent(properties: MessageEventProperties): Promise<void>;
|
|
231
|
-
networkCallEvent(properties: NetworkEventProperties): Promise<void>;
|
|
232
|
-
sdkFunctionEvent(properties: SdkFunctionEventProperties): Promise<void>;
|
|
233
|
-
timerStart(properties: TimerEventProperties): Promise<void>;
|
|
234
|
-
timerEnd(properties: TimerEventProperties): Promise<void>;
|
|
235
|
-
v1Event(properties: V1EventProperties): Promise<void>;
|
|
236
|
-
url: string;
|
|
237
|
-
};
|
|
238
|
-
export type Nullable<T> = T | null;
|
|
239
164
|
export interface BorderStyle {
|
|
240
165
|
borderStyle?: string;
|
|
241
166
|
borderColor?: number | string;
|
|
@@ -361,27 +286,6 @@ export interface VaultMenuStyle {
|
|
|
361
286
|
confirmButton?: BlockStyle & TextStyle;
|
|
362
287
|
};
|
|
363
288
|
}
|
|
364
|
-
export interface SceneTransition {
|
|
365
|
-
opacity?: string | number;
|
|
366
|
-
transform?: string;
|
|
367
|
-
transition?: string;
|
|
368
|
-
}
|
|
369
|
-
export interface SceneTransitionEventStyle {
|
|
370
|
-
enter?: SceneTransition;
|
|
371
|
-
entering?: SceneTransition;
|
|
372
|
-
exit?: SceneTransition;
|
|
373
|
-
exiting?: SceneTransition;
|
|
374
|
-
}
|
|
375
|
-
export interface SceneTransitionStyle extends SceneTransitionEventStyle {
|
|
376
|
-
content: {
|
|
377
|
-
transition?: string;
|
|
378
|
-
};
|
|
379
|
-
push?: SceneTransitionEventStyle;
|
|
380
|
-
pop?: SceneTransitionEventStyle;
|
|
381
|
-
}
|
|
382
|
-
export interface InternalStyle {
|
|
383
|
-
scene?: SceneTransitionStyle;
|
|
384
|
-
}
|
|
385
289
|
export interface NetworkErrorStyles {
|
|
386
290
|
button?: {
|
|
387
291
|
base: BlockStyle & TextStyle;
|
|
@@ -416,136 +320,6 @@ export interface CheckoutStyle {
|
|
|
416
320
|
processingIndicator?: ProcessingIndicatorStyle;
|
|
417
321
|
focusCheckoutOnInit?: boolean;
|
|
418
322
|
}
|
|
419
|
-
export interface IFrameMessagePayloadMeta {
|
|
420
|
-
source: string;
|
|
421
|
-
destination: string | null;
|
|
422
|
-
name?: string;
|
|
423
|
-
id?: string;
|
|
424
|
-
replyTo?: string;
|
|
425
|
-
placeholder?: string;
|
|
426
|
-
style?: CheckoutStyle;
|
|
427
|
-
css?: string;
|
|
428
|
-
stylesheets?: Stylesheet[];
|
|
429
|
-
ariaLabel?: string;
|
|
430
|
-
allowedCardNetworks?: string[];
|
|
431
|
-
[x: string]: unknown;
|
|
432
|
-
}
|
|
433
|
-
export interface IFrameInputMessagePayload<T = unknown> {
|
|
434
|
-
type: string;
|
|
435
|
-
meta?: Partial<IFrameMessagePayloadMeta>;
|
|
436
|
-
payload?: T;
|
|
437
|
-
}
|
|
438
|
-
export interface IFrameMessagePayload<T = unknown> {
|
|
439
|
-
type: string;
|
|
440
|
-
meta: IFrameMessagePayloadMeta;
|
|
441
|
-
payload: T;
|
|
442
|
-
}
|
|
443
|
-
export interface Observer {
|
|
444
|
-
(event: IFrameMessagePayload): void;
|
|
445
|
-
}
|
|
446
|
-
declare class Observable {
|
|
447
|
-
private observers;
|
|
448
|
-
constructor();
|
|
449
|
-
onEvent(_event: IFrameMessagePayload): void;
|
|
450
|
-
on(type: string, observer: Observer): void;
|
|
451
|
-
once(type: string, observer: Observer): void;
|
|
452
|
-
notify(event: IFrameMessagePayload): void;
|
|
453
|
-
}
|
|
454
|
-
declare class IFrameMessageBus extends Observable {
|
|
455
|
-
private frames;
|
|
456
|
-
constructor();
|
|
457
|
-
onEvent(event: IFrameMessagePayload): void;
|
|
458
|
-
add(iframe: HTMLIFrameElement): void;
|
|
459
|
-
publish(name: string, event: IFrameInputMessagePayload): void;
|
|
460
|
-
rpc(name: string, evt: IFrameInputMessagePayload): Promise<IFrameMessagePayload>;
|
|
461
|
-
}
|
|
462
|
-
export type IFramePlacement = "append" | "prepend";
|
|
463
|
-
export interface IFrameFactoryOptions {
|
|
464
|
-
messageBus: IFrameMessageBus;
|
|
465
|
-
assetsUrl: string;
|
|
466
|
-
}
|
|
467
|
-
export type CreateIFrameOptionsMeta = {
|
|
468
|
-
name: string;
|
|
469
|
-
id?: string;
|
|
470
|
-
ariaLabel?: string;
|
|
471
|
-
placeholder?: string;
|
|
472
|
-
css?: string;
|
|
473
|
-
stylesheets?: string[] | Stylesheet[];
|
|
474
|
-
allowedCardNetworks?: string[];
|
|
475
|
-
};
|
|
476
|
-
export interface CreateIFrameOptions {
|
|
477
|
-
filename: string;
|
|
478
|
-
container: string | Element;
|
|
479
|
-
placement?: IFramePlacement;
|
|
480
|
-
payload?: unknown;
|
|
481
|
-
meta: CreateIFrameOptionsMeta;
|
|
482
|
-
style?: Record<string, string>;
|
|
483
|
-
onReady?: () => void;
|
|
484
|
-
}
|
|
485
|
-
declare class IFrameFactory {
|
|
486
|
-
private id;
|
|
487
|
-
private messageBus;
|
|
488
|
-
private assetsUrl;
|
|
489
|
-
constructor({ messageBus, assetsUrl }: IFrameFactoryOptions);
|
|
490
|
-
create({ filename, container, meta, payload, placement, style, onReady, }: CreateIFrameOptions): HTMLIFrameElement | null;
|
|
491
|
-
}
|
|
492
|
-
declare enum HttpMethod {
|
|
493
|
-
GET = "get",
|
|
494
|
-
POST = "post",
|
|
495
|
-
DELETE = "delete",
|
|
496
|
-
PATCH = "PATCH"
|
|
497
|
-
}
|
|
498
|
-
export interface ApiConfig {
|
|
499
|
-
accessToken: string;
|
|
500
|
-
analytics: Analytics;
|
|
501
|
-
coreUrl: string;
|
|
502
|
-
iframes: IFrameFactory;
|
|
503
|
-
pciUrl: string;
|
|
504
|
-
checkoutSessionId: string;
|
|
505
|
-
}
|
|
506
|
-
export interface RequestOptions {
|
|
507
|
-
maxAttempts?: number;
|
|
508
|
-
apiVersion?: string;
|
|
509
|
-
}
|
|
510
|
-
export interface APIRequestOptions {
|
|
511
|
-
method: "get" | "post" | HttpMethod;
|
|
512
|
-
url: string;
|
|
513
|
-
body?: unknown;
|
|
514
|
-
options?: RequestOptions;
|
|
515
|
-
}
|
|
516
|
-
export interface ValidationError {
|
|
517
|
-
description: string;
|
|
518
|
-
path: string;
|
|
519
|
-
}
|
|
520
|
-
export interface ValidationErrorDetail {
|
|
521
|
-
model: string;
|
|
522
|
-
errors: ValidationError[];
|
|
523
|
-
}
|
|
524
|
-
export interface APIErrorShape {
|
|
525
|
-
message: string;
|
|
526
|
-
validationErrors?: ValidationErrorDetail[];
|
|
527
|
-
diagnosticsId?: string;
|
|
528
|
-
errorId?: string;
|
|
529
|
-
}
|
|
530
|
-
export interface APIResponse<T = unknown> {
|
|
531
|
-
error: Nullable<APIErrorShape>;
|
|
532
|
-
data: Nullable<T>;
|
|
533
|
-
status: Nullable<number>;
|
|
534
|
-
headers: Record<string, string>;
|
|
535
|
-
}
|
|
536
|
-
declare class Api {
|
|
537
|
-
private messageBus;
|
|
538
|
-
isReady: Promise<void>;
|
|
539
|
-
private checkoutSessionId;
|
|
540
|
-
private analytics;
|
|
541
|
-
constructor(messageBus: IFrameMessageBus, { analytics, accessToken, coreUrl, iframes, pciUrl, checkoutSessionId, }: ApiConfig);
|
|
542
|
-
setAccessToken(accessToken: string): void;
|
|
543
|
-
request<T>(payload: APIRequestOptions): Promise<APIResponse<T>>;
|
|
544
|
-
post<T = unknown, U = unknown>(url: string, body: T, options?: RequestOptions): Promise<APIResponse<U>>;
|
|
545
|
-
get<T>(url: string, options?: RequestOptions): Promise<APIResponse<T>>;
|
|
546
|
-
delete<T>(url: string, options?: RequestOptions): Promise<APIResponse<T>>;
|
|
547
|
-
patch<T = unknown, U = unknown>(url: string, body: T, options?: RequestOptions): Promise<APIResponse<U>>;
|
|
548
|
-
}
|
|
549
323
|
export interface IVaultedPaymentMethod<T, U extends PaymentInstrumentType> {
|
|
550
324
|
id: string;
|
|
551
325
|
analyticsId: string;
|
|
@@ -556,44 +330,6 @@ export interface IVaultedPaymentMethod<T, U extends PaymentInstrumentType> {
|
|
|
556
330
|
userDescription?: string;
|
|
557
331
|
}
|
|
558
332
|
export type VaultedPaymentMethod = IVaultedPaymentMethod<any, any>;
|
|
559
|
-
export interface VaultServices {
|
|
560
|
-
api: Api;
|
|
561
|
-
analytics: Analytics;
|
|
562
|
-
}
|
|
563
|
-
declare class Vault {
|
|
564
|
-
private api;
|
|
565
|
-
private analytics;
|
|
566
|
-
constructor(services: VaultServices);
|
|
567
|
-
fetch(): Promise<VaultedPaymentMethod[]>;
|
|
568
|
-
delete(id: string | null): Promise<void>;
|
|
569
|
-
}
|
|
570
|
-
export type InternalFlowOptions = (UniversalCheckoutOptions | VaultManagerOptions) & HeadlessUniversalCheckoutOptions & {
|
|
571
|
-
uxFlow?: string;
|
|
572
|
-
newHeadlessOptionsParameter?: boolean;
|
|
573
|
-
};
|
|
574
|
-
/**
|
|
575
|
-
* Configuration options for the retry mechanism
|
|
576
|
-
*/
|
|
577
|
-
export interface RetryConfig {
|
|
578
|
-
/** Whether retry is enabled */
|
|
579
|
-
enabled: boolean;
|
|
580
|
-
}
|
|
581
|
-
declare class ScriptLoader {
|
|
582
|
-
private readonly scripts;
|
|
583
|
-
private readonly timeoutMilliseconds;
|
|
584
|
-
constructor();
|
|
585
|
-
load(src: string, options?: {
|
|
586
|
-
name?: string;
|
|
587
|
-
crossOrigin?: "" | "use-credentials";
|
|
588
|
-
customAttributes?: Record<string, string>;
|
|
589
|
-
retryConfig?: RetryConfig;
|
|
590
|
-
analytics?: any;
|
|
591
|
-
}): Promise<boolean>;
|
|
592
|
-
}
|
|
593
|
-
declare enum ImplementationType {
|
|
594
|
-
WEB_REDIRECT = "WEB_REDIRECT",
|
|
595
|
-
NATIVE_SDK = "NATIVE_SDK"
|
|
596
|
-
}
|
|
597
333
|
declare enum ProductType {
|
|
598
334
|
DIGITAL = "DIGITAL",
|
|
599
335
|
PHYSICAL = "PHYSICAL",
|
|
@@ -610,16 +346,6 @@ export interface ClientSessionLineItem {
|
|
|
610
346
|
taxAmount?: number;
|
|
611
347
|
taxCode?: string;
|
|
612
348
|
}
|
|
613
|
-
export interface ClientSessionOrder {
|
|
614
|
-
countryCode?: string;
|
|
615
|
-
currencyCode?: string;
|
|
616
|
-
fees?: ClientSessionFeeItem[];
|
|
617
|
-
lineItems?: ClientSessionLineItem[];
|
|
618
|
-
merchantAmount?: number;
|
|
619
|
-
orderId?: string;
|
|
620
|
-
shipping?: ClientSessionShipping;
|
|
621
|
-
totalOrderAmount: number;
|
|
622
|
-
}
|
|
623
349
|
export interface ClientSessionShipping {
|
|
624
350
|
amount: number;
|
|
625
351
|
methodId?: string;
|
|
@@ -631,16 +357,6 @@ export interface ClientSessionFeeItem {
|
|
|
631
357
|
description?: string;
|
|
632
358
|
amount: number;
|
|
633
359
|
}
|
|
634
|
-
export interface ClientSessionCustomer {
|
|
635
|
-
customerId?: string;
|
|
636
|
-
emailAddress?: string;
|
|
637
|
-
mobileNumber?: string;
|
|
638
|
-
firstName?: string;
|
|
639
|
-
lastName?: string;
|
|
640
|
-
billingAddress?: ClientSessionAddress;
|
|
641
|
-
shippingAddress?: ClientSessionAddress;
|
|
642
|
-
taxId?: string;
|
|
643
|
-
}
|
|
644
360
|
export interface ClientSessionAddress {
|
|
645
361
|
firstName?: string;
|
|
646
362
|
lastName?: string;
|
|
@@ -651,20 +367,6 @@ export interface ClientSessionAddress {
|
|
|
651
367
|
countryCode?: string;
|
|
652
368
|
postalCode?: string;
|
|
653
369
|
}
|
|
654
|
-
export interface ClientSessionPaymentMethodOptions {
|
|
655
|
-
options?: PaymentMethodOption[];
|
|
656
|
-
orderedAllowedCardNetworks: string[];
|
|
657
|
-
vaultOnSuccess: boolean;
|
|
658
|
-
}
|
|
659
|
-
export interface PaymentMethodOption {
|
|
660
|
-
type: string;
|
|
661
|
-
surcharge?: number;
|
|
662
|
-
networks?: CardNetworkOption[];
|
|
663
|
-
}
|
|
664
|
-
export interface CardNetworkOption {
|
|
665
|
-
type: string;
|
|
666
|
-
surcharge?: number;
|
|
667
|
-
}
|
|
668
370
|
export interface ClientSession {
|
|
669
371
|
orderId?: string;
|
|
670
372
|
currencyCode?: string;
|
|
@@ -692,538 +394,21 @@ export interface ClientSession {
|
|
|
692
394
|
vaultOnSuccess?: boolean;
|
|
693
395
|
};
|
|
694
396
|
}
|
|
695
|
-
export interface InternalClientSession {
|
|
696
|
-
clientSessionId: string;
|
|
697
|
-
customer: ClientSessionCustomer | null;
|
|
698
|
-
paymentMethod: ClientSessionPaymentMethodOptions;
|
|
699
|
-
order: ClientSessionOrder;
|
|
700
|
-
}
|
|
701
|
-
export interface PaymentMethodDisplayMetadata {
|
|
702
|
-
button: {
|
|
703
|
-
backgroundColor: BackgroundColor;
|
|
704
|
-
borderColor: BorderColor;
|
|
705
|
-
borderWidth: BorderWidth;
|
|
706
|
-
cornerRadius: number;
|
|
707
|
-
iconPositionRelativeToText?: "START" | "END";
|
|
708
|
-
iconUrl: IconUrl;
|
|
709
|
-
text?: string;
|
|
710
|
-
textColor?: TextColor;
|
|
711
|
-
};
|
|
712
|
-
overlay: {
|
|
713
|
-
logo: IconUrl;
|
|
714
|
-
backgroundColor: BackgroundColor;
|
|
715
|
-
};
|
|
716
|
-
popup: {
|
|
717
|
-
width: number;
|
|
718
|
-
height: number;
|
|
719
|
-
};
|
|
720
|
-
}
|
|
721
397
|
export interface BackgroundColor {
|
|
722
398
|
colored: string;
|
|
723
399
|
dark: string;
|
|
724
400
|
light: string;
|
|
725
401
|
}
|
|
726
|
-
export interface BorderColor {
|
|
727
|
-
dark: string;
|
|
728
|
-
light: string;
|
|
729
|
-
}
|
|
730
|
-
export interface BorderWidth {
|
|
731
|
-
colored: number;
|
|
732
|
-
dark: number;
|
|
733
|
-
light: number;
|
|
734
|
-
}
|
|
735
402
|
export interface IconUrl {
|
|
736
403
|
colored: string;
|
|
737
404
|
dark: string;
|
|
738
405
|
light: string;
|
|
739
406
|
}
|
|
740
|
-
export interface TextColor {
|
|
741
|
-
dark: string;
|
|
742
|
-
light: string;
|
|
743
|
-
}
|
|
744
|
-
export interface PaymentMethodConfig {
|
|
745
|
-
id: string;
|
|
746
|
-
type: PaymentMethodType;
|
|
747
|
-
name: string;
|
|
748
|
-
implementationType: ImplementationType;
|
|
749
|
-
displayMetadata: PaymentMethodDisplayMetadata;
|
|
750
|
-
options: {
|
|
751
|
-
captureVaultedCardCvv?: boolean;
|
|
752
|
-
clientId?: string;
|
|
753
|
-
threeDSecureToken?: string;
|
|
754
|
-
threeDSecureInitUrl?: string;
|
|
755
|
-
threeDSecureProvider?: string;
|
|
756
|
-
threeDSecureEnabled?: boolean;
|
|
757
|
-
};
|
|
758
|
-
forceRedirect?: boolean;
|
|
759
|
-
}
|
|
760
|
-
export interface CheckoutModuleConfig extends Record<string, any> {
|
|
761
|
-
type: string;
|
|
762
|
-
options?: Record<string, any>;
|
|
763
|
-
}
|
|
764
|
-
export interface ClientSessionInfo {
|
|
765
|
-
modulesUrl: string;
|
|
766
|
-
paymentFlow: PaymentFlow;
|
|
767
|
-
paymentMethods: PaymentMethodConfig[];
|
|
768
|
-
checkoutModules: CheckoutModuleConfig[];
|
|
769
|
-
threeDSecureToken: string | null;
|
|
770
|
-
threeDSecureInitUrl: string | null;
|
|
771
|
-
threeDSecureProvider: string | null;
|
|
772
|
-
threeDSecureEnabled: boolean;
|
|
773
|
-
clientSession: InternalClientSession;
|
|
774
|
-
env: string;
|
|
775
|
-
production: boolean;
|
|
776
|
-
isTeardown: boolean;
|
|
777
|
-
}
|
|
778
|
-
export interface ClientConfiguration {
|
|
779
|
-
binDataUrl: string;
|
|
780
|
-
checkoutModules: CheckoutModuleConfig[];
|
|
781
|
-
clientSession: InternalClientSession;
|
|
782
|
-
coreUrl: string;
|
|
783
|
-
env: string;
|
|
784
|
-
paymentMethods: PaymentMethodConfig[];
|
|
785
|
-
pciUrl: string;
|
|
786
|
-
primerAccountId: string;
|
|
787
|
-
settleOnAuth?: boolean;
|
|
788
|
-
}
|
|
789
|
-
declare class ClientConfigurationHandler {
|
|
790
|
-
private config;
|
|
791
|
-
private checkoutSessionId;
|
|
792
|
-
constructor(config: ClientConfiguration, checkoutSessionId: string);
|
|
793
|
-
fetchClientConfiguration(clientToken: string, cache?: boolean): Promise<ClientConfiguration>;
|
|
794
|
-
getCurrentClientConfiguration(): ClientConfiguration;
|
|
795
|
-
}
|
|
796
|
-
declare enum ClientTokenIntent {
|
|
797
|
-
CHECKOUT = "CHECKOUT",
|
|
798
|
-
THREEDS_AUTHENTICATION = "3DS_AUTHENTICATION",
|
|
799
|
-
PROCESSOR_3DS = "PROCESSOR_3DS",
|
|
800
|
-
REDIRECTION_END = "REDIRECTION_END",
|
|
801
|
-
STRIPE_ACH_REDIRECTION = "STRIPE_ACH_REDIRECTION"
|
|
802
|
-
}
|
|
803
|
-
export type CommonClientToken = {
|
|
804
|
-
configurationUrl: string;
|
|
805
|
-
analyticsUrl?: string;
|
|
806
|
-
analyticsUrlV2: string;
|
|
807
|
-
accessToken: string;
|
|
808
|
-
paymentFlow: PaymentFlow;
|
|
809
|
-
exp: number;
|
|
810
|
-
};
|
|
811
|
-
/**
|
|
812
|
-
* Start: Stripe ACH vaulted intent client token
|
|
813
|
-
*/
|
|
814
|
-
export type StripeACHVaultedIntentClientToken = {
|
|
815
|
-
intent: ClientTokenIntent.STRIPE_ACH_REDIRECTION;
|
|
816
|
-
sdkCompleteUrl: string;
|
|
817
|
-
};
|
|
818
|
-
/**
|
|
819
|
-
* End: Stripe ACH vaulted intent client token
|
|
820
|
-
*/
|
|
821
|
-
export type IntentClientToken = {
|
|
822
|
-
intent: ClientTokenIntent.CHECKOUT | undefined;
|
|
823
|
-
} | {
|
|
824
|
-
intent: ClientTokenIntent.THREEDS_AUTHENTICATION;
|
|
825
|
-
tokenId: string;
|
|
826
|
-
threeDSProvider: string;
|
|
827
|
-
threeDSToken: string;
|
|
828
|
-
threeDSInitUrl: string;
|
|
829
|
-
} | {
|
|
830
|
-
intent: ClientTokenIntent.REDIRECTION_END;
|
|
831
|
-
paymentId: string;
|
|
832
|
-
resumeToken: string;
|
|
833
|
-
} | StripeACHVaultedIntentClientToken | ({
|
|
834
|
-
intent: string;
|
|
835
|
-
} & Record<string, unknown>);
|
|
836
|
-
export type DecodedClientToken = CommonClientToken & IntentClientToken;
|
|
837
|
-
export type NewClientTokenListener = (decodedClientToken: DecodedClientToken) => void;
|
|
838
|
-
export interface IClientTokenHandler {
|
|
839
|
-
processClientToken(clientToken: string): DecodedClientToken;
|
|
840
|
-
getOriginalClientToken(): string | undefined;
|
|
841
|
-
getCurrentClientToken(): string | undefined;
|
|
842
|
-
getCurrentDecodedClientToken(): DecodedClientToken | undefined;
|
|
843
|
-
addNewClientTokenListener(listener: NewClientTokenListener): any;
|
|
844
|
-
removeNewClientTokenListener(listener: NewClientTokenListener): any;
|
|
845
|
-
}
|
|
846
|
-
export interface LongPollServices {
|
|
847
|
-
api: Api;
|
|
848
|
-
}
|
|
849
|
-
export interface LongPollOptions<T> {
|
|
850
|
-
url: string;
|
|
851
|
-
timeout: number;
|
|
852
|
-
pollInterval: number;
|
|
853
|
-
predicate(response: T): boolean;
|
|
854
|
-
}
|
|
855
|
-
declare class LongPoll {
|
|
856
|
-
private api;
|
|
857
|
-
private isStarted;
|
|
858
|
-
constructor(services: LongPollServices);
|
|
859
|
-
start<T>(options: LongPollOptions<T>): Promise<T | null>;
|
|
860
|
-
stop(): void;
|
|
861
|
-
private request;
|
|
862
|
-
private tick;
|
|
863
|
-
}
|
|
864
|
-
export type Listener<K> = (state: K, action?: Action<K>) => void;
|
|
865
|
-
export type Unsubscribe = () => void;
|
|
866
|
-
export type Action<K> = (state: K, ...args: any[]) => void;
|
|
867
|
-
export type BoundAction = (...args: any[]) => void;
|
|
868
|
-
export interface IStore<K> {
|
|
869
|
-
action(action: Action<K>): BoundAction;
|
|
870
|
-
setState<U extends keyof K>(update: Pick<K, U>, overwrite?: boolean, action?: Action<K>): void;
|
|
871
|
-
subscribe(f: Listener<K>): Unsubscribe;
|
|
872
|
-
unsubscribe(f: Listener<K>): void;
|
|
873
|
-
getState(): K;
|
|
874
|
-
}
|
|
875
|
-
export interface NodeLike {
|
|
876
|
-
id: string;
|
|
877
|
-
}
|
|
878
|
-
declare enum SceneStage {
|
|
879
|
-
Init = "init",
|
|
880
|
-
Mounting = "mounting",
|
|
881
|
-
Entering = "entering",
|
|
882
|
-
Entered = "entered",
|
|
883
|
-
Exiting = "exiting",
|
|
884
|
-
Exited = "exited"
|
|
885
|
-
}
|
|
886
|
-
export type SceneState = {
|
|
887
|
-
stage: SceneStage;
|
|
888
|
-
promise: {
|
|
889
|
-
resolve: () => void;
|
|
890
|
-
reject: () => void;
|
|
891
|
-
};
|
|
892
|
-
};
|
|
893
|
-
export interface IBaseState extends Record<string, any> {
|
|
894
|
-
}
|
|
895
|
-
export interface IBaseStore {
|
|
896
|
-
getState(): IBaseState;
|
|
897
|
-
subscribe(listener: any): any;
|
|
898
|
-
}
|
|
899
|
-
export type PrimitiveType = number | string | boolean;
|
|
900
|
-
export type AtomicObject = Function | Promise<any> | Date | RegExp;
|
|
901
|
-
export type IfAvailable<T, Fallback = void> = true | false extends (T extends never ? true : false) ? Fallback : keyof T extends never ? Fallback : T;
|
|
902
|
-
export type WeakReferences = IfAvailable<WeakMap<any, any>> | IfAvailable<WeakSet<any>>;
|
|
903
|
-
export type WritableDraft<T> = {
|
|
904
|
-
-readonly [K in keyof T]: Draft<T[K]>;
|
|
905
|
-
};
|
|
906
|
-
export type Draft<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : T extends IfAvailable<ReadonlyMap<infer K, infer V>> ? Map<Draft<K>, Draft<V>> : T extends IfAvailable<ReadonlySet<infer V>> ? Set<Draft<V>> : T extends WeakReferences ? T : T extends object ? WritableDraft<T> : T;
|
|
907
|
-
declare class BaseStore<K extends IBaseState> implements IBaseStore {
|
|
908
|
-
readonly stateType: K;
|
|
909
|
-
readonly state: IStore<K>;
|
|
910
|
-
readonly subStores: Record<string, IBaseStore>;
|
|
911
|
-
private eventHandlers;
|
|
912
|
-
constructor(defaultState: K);
|
|
913
|
-
setState<U extends keyof K>(update: Pick<K, U>, overwrite?: boolean, action?: Action<K>): void;
|
|
914
|
-
produceState(recipe: (draft: Draft<K>) => Pick<K, never> | void): void;
|
|
915
|
-
subscribe(f: Listener<K>): Unsubscribe;
|
|
916
|
-
unsubscribe(f: Listener<K>): void;
|
|
917
|
-
getState(): K;
|
|
918
|
-
registerStore<U extends IBaseStore>(id: string, store: U): void;
|
|
919
|
-
getStore<U extends IBaseStore>(id: string): U | undefined;
|
|
920
|
-
protected registerEventHandler<T extends IBaseStore>(eventId: string, eventHandler: (store: T) => any): void;
|
|
921
|
-
protected registerEventHandlers<T extends IBaseStore>(eventHandlers: Record<string, (store: T) => any>): void;
|
|
922
|
-
on(eventName: string, listener: () => void): void;
|
|
923
|
-
off(eventName: string, listener: () => void): void;
|
|
924
|
-
}
|
|
925
|
-
declare enum SceneEnum {
|
|
926
|
-
LOADING = "Loading",
|
|
927
|
-
NO_PAYMENT_METHOD = "NoPaymentMethod",
|
|
928
|
-
THREE_DS = "UniversalCheckout/3ds",
|
|
929
|
-
CHOOSE_PAYMENT_METHOD = "UniversalCheckout/Home",
|
|
930
|
-
MANAGE_PAYMENT_METHODS = "VaultManager/Home",
|
|
931
|
-
DIRECT_DEBIT_FORM = "DirectDebit/Form",
|
|
932
|
-
DIRECT_DEBIT_MANDATE = "DirectDebit/Mandate",
|
|
933
|
-
CREDIT_CARD_FORM = "CreditCard/Form",
|
|
934
|
-
SUCCESS_PAYMENT_METHOD = "UniversalCheckout/Success/PaymentMethod",
|
|
935
|
-
SUCCESS_CHECK = "UniversalCheckout/Success/Check"
|
|
936
|
-
}
|
|
937
407
|
export declare enum CheckoutUXFlow {
|
|
938
408
|
CHECKOUT = "CHECKOUT",
|
|
939
409
|
HEADLESS_CHECKOUT = "HEADLESS_CHECKOUT",
|
|
940
410
|
MANAGE_PAYMENT_METHODS = "MANAGE_PAYMENT_METHODS"
|
|
941
411
|
}
|
|
942
|
-
export interface IStyleManagerOptions {
|
|
943
|
-
isRtlLocale?: boolean;
|
|
944
|
-
}
|
|
945
|
-
export interface IStyleManager {
|
|
946
|
-
setStyle(style?: CheckoutStyle, internalStyle?: InternalStyle, options?: IStyleManagerOptions): void;
|
|
947
|
-
getStyle(): CheckoutStyle | undefined;
|
|
948
|
-
getHostedFieldStyle(): string | null;
|
|
949
|
-
getApmButtonStyle(): PaymentMethodButtonStyle | null;
|
|
950
|
-
}
|
|
951
|
-
export type PaymentMethodSpecs = {
|
|
952
|
-
key: string;
|
|
953
|
-
buttonManagedByPaymentMethod: boolean;
|
|
954
|
-
canVault: boolean;
|
|
955
|
-
hasExportedButtonOptions: boolean;
|
|
956
|
-
homeScene?: string;
|
|
957
|
-
implementationType?: ImplementationType;
|
|
958
|
-
};
|
|
959
|
-
declare class BasePaymentMethod {
|
|
960
|
-
static specs: PaymentMethodSpecs;
|
|
961
|
-
readonly type: PaymentMethodType;
|
|
962
|
-
displayName: string;
|
|
963
|
-
container: Element | null;
|
|
964
|
-
remoteConfig: any;
|
|
965
|
-
protected options: Record<string, any> | undefined;
|
|
966
|
-
protected constructor(type: PaymentMethodType, name: string);
|
|
967
|
-
static create: (_context: any, _options: Record<string, any>, _remoteConfig: any, _styleManager?: IStyleManager) => BasePaymentMethod;
|
|
968
|
-
get specs(): PaymentMethodSpecs;
|
|
969
|
-
setOption(key: any, value: any): void;
|
|
970
|
-
setupAndValidate(): Promise<boolean>;
|
|
971
|
-
mount(): Promise<boolean>;
|
|
972
|
-
tokenize(_options?: any): Promise<void>;
|
|
973
|
-
validate(): Promise<Validation>;
|
|
974
|
-
setDisabled(_disabled: boolean): Promise<void>;
|
|
975
|
-
focus(): void;
|
|
976
|
-
blur(): void;
|
|
977
|
-
getPaymentElement(): Element | null;
|
|
978
|
-
getStore(): IBaseStore | undefined;
|
|
979
|
-
getCustomButtonText(): string | undefined;
|
|
980
|
-
}
|
|
981
|
-
export interface ITranslation {
|
|
982
|
-
_(key: string, options?: {
|
|
983
|
-
defaultMessage: string;
|
|
984
|
-
} & Record<string, unknown>): any;
|
|
985
|
-
}
|
|
986
|
-
declare class Translation implements ITranslation {
|
|
987
|
-
private translator;
|
|
988
|
-
private defaultTranslation?;
|
|
989
|
-
constructor(translator?: any, defaultTranslation?: TranslationUnit);
|
|
990
|
-
_(key: string, options?: {
|
|
991
|
-
defaultMessage?: string;
|
|
992
|
-
} & Record<string, unknown>): string;
|
|
993
|
-
}
|
|
994
|
-
export type TranslationUnit = Translation & Record<string, any>;
|
|
995
|
-
export interface IClientSessionStore {
|
|
996
|
-
setClientSession(clientSession: InternalClientSession): any;
|
|
997
|
-
getClientSession(): InternalClientSession | null;
|
|
998
|
-
}
|
|
999
|
-
export type OptionStoreListenerEventName = "options.purchaseInfo" | "options.customerDetails" | "options.businessDetails" | "options.orderDetails";
|
|
1000
|
-
export type OrderDetailsWithInitiator = {
|
|
1001
|
-
orderDetails: ClientSessionOrder | null;
|
|
1002
|
-
orderDetailsInitiator: string | null;
|
|
1003
|
-
};
|
|
1004
|
-
export interface IOptionStoreSetter {
|
|
1005
|
-
setPurchaseInfo(purchaseInfo: PurchaseInformation | VaultInformation | null): any;
|
|
1006
|
-
setCustomerDetails(customerDetails: ClientSessionCustomer | null, initiator: string | null): any;
|
|
1007
|
-
setBusinessDetails(businessDetails: BusinessDetails | null, initiator: string | null): any;
|
|
1008
|
-
setOrderDetails(orderDetails: ClientSessionOrder | null, initiator: string | null): any;
|
|
1009
|
-
}
|
|
1010
|
-
export interface IOptionStoreListener {
|
|
1011
|
-
getPurchaseInfo(): PurchaseInformation | VaultInformation | null;
|
|
1012
|
-
getCustomerDetails(): ClientSessionCustomer | null;
|
|
1013
|
-
getBusinessDetails(): BusinessDetails | null;
|
|
1014
|
-
getOrderDetails(): OrderDetailsWithInitiator;
|
|
1015
|
-
on(eventName: OptionStoreListenerEventName, listener: () => void): any;
|
|
1016
|
-
off(eventName: OptionStoreListenerEventName, listener: () => void): any;
|
|
1017
|
-
}
|
|
1018
|
-
export interface ICheckoutState extends IBaseState {
|
|
1019
|
-
isLoading: boolean;
|
|
1020
|
-
isProcessing: boolean;
|
|
1021
|
-
locale: SupportedLocale;
|
|
1022
|
-
tokens: VaultedPaymentMethod[];
|
|
1023
|
-
translation: TranslationUnit;
|
|
1024
|
-
paymentResponse: any;
|
|
1025
|
-
currentToken: PaymentMethodToken | null;
|
|
1026
|
-
scene: {
|
|
1027
|
-
onEntering?: (sceneId: string) => void;
|
|
1028
|
-
transition: SceneTransitionOptions | false;
|
|
1029
|
-
};
|
|
1030
|
-
apms: {
|
|
1031
|
-
selected: string | null;
|
|
1032
|
-
items: NodeLike[];
|
|
1033
|
-
};
|
|
1034
|
-
vault: {
|
|
1035
|
-
items: VaultListItem[];
|
|
1036
|
-
selected: string | null;
|
|
1037
|
-
state: {
|
|
1038
|
-
metadata?: InputMetadata;
|
|
1039
|
-
securityCode?: string;
|
|
1040
|
-
};
|
|
1041
|
-
};
|
|
1042
|
-
options: {
|
|
1043
|
-
purchaseInfo: PurchaseInformation | VaultInformation | null;
|
|
1044
|
-
customerDetails: CustomerDetails | null;
|
|
1045
|
-
businessDetails: BusinessDetails | null;
|
|
1046
|
-
orderDetails: ClientSessionOrder | null;
|
|
1047
|
-
orderDetailsInitiator: string | null;
|
|
1048
|
-
showSavePaymentMethod: boolean;
|
|
1049
|
-
};
|
|
1050
|
-
isTokenizationEnabled: boolean;
|
|
1051
|
-
clientSession: InternalClientSession | null;
|
|
1052
|
-
clientSessionInfo: ClientSessionInfo | null;
|
|
1053
|
-
sceneStates: Partial<Record<SceneEnum, SceneState>>;
|
|
1054
|
-
sceneAction?: string;
|
|
1055
|
-
selectedVaultedPaymentMethod?: string;
|
|
1056
|
-
error: {
|
|
1057
|
-
message: string | null;
|
|
1058
|
-
hideOnScreenEntered: boolean;
|
|
1059
|
-
};
|
|
1060
|
-
smallPrint: {
|
|
1061
|
-
message: string | null;
|
|
1062
|
-
};
|
|
1063
|
-
paymentMethods: Record<string, BasePaymentMethod>;
|
|
1064
|
-
checkoutModules: any[];
|
|
1065
|
-
submitButton: {
|
|
1066
|
-
isDisabled: boolean;
|
|
1067
|
-
isVisible: boolean;
|
|
1068
|
-
message: string;
|
|
1069
|
-
canDisplayAmount: boolean;
|
|
1070
|
-
};
|
|
1071
|
-
form: {
|
|
1072
|
-
inputLabelsVisible: boolean;
|
|
1073
|
-
};
|
|
1074
|
-
card: {
|
|
1075
|
-
flow: CardPreferredFlow;
|
|
1076
|
-
};
|
|
1077
|
-
}
|
|
1078
|
-
declare class CheckoutStore extends BaseStore<ICheckoutState> implements IOptionStoreSetter, IOptionStoreListener, IClientSessionStore {
|
|
1079
|
-
private submitButtonEventListener;
|
|
1080
|
-
private vault;
|
|
1081
|
-
private options;
|
|
1082
|
-
constructor(defaultState: ICheckoutState, options: UniversalCheckoutOptions | VaultManagerOptions);
|
|
1083
|
-
setVault(vault: Vault): void;
|
|
1084
|
-
setIsLoading(isLoading: boolean): void;
|
|
1085
|
-
setIsProcessing(isProcessing: boolean): void;
|
|
1086
|
-
setLocale(locale: SupportedLocale): void;
|
|
1087
|
-
setPaymentResponse(paymentResponse: any): void;
|
|
1088
|
-
getLocale(): SupportedLocale;
|
|
1089
|
-
getIsRtlLocale(): boolean;
|
|
1090
|
-
getPaymentResponse(): any;
|
|
1091
|
-
setIsTokenizationEnabled(isEnabled: boolean): void;
|
|
1092
|
-
getIsTokenizationEnabled(): boolean;
|
|
1093
|
-
setScene(scene: string, action?: string): Promise<void>;
|
|
1094
|
-
setSceneTransition(transitionOptions: SceneTransitionOptions | false | undefined): void;
|
|
1095
|
-
handleSceneEntering(scene: string): void;
|
|
1096
|
-
handleSceneEntered(scene: string): void;
|
|
1097
|
-
handleSceneExited(scene: string): void;
|
|
1098
|
-
handleSceneMounted(scene: string): void;
|
|
1099
|
-
getCurrentScene(): string;
|
|
1100
|
-
setCurrentToken(token: PaymentMethodToken | null): void;
|
|
1101
|
-
triggerSubmitButtonClick(): void;
|
|
1102
|
-
addSubmitButtonClickListener(listener: EventListener | EventListenerObject | null): void;
|
|
1103
|
-
removeSubmitButtonClickListener(listener: EventListener | EventListenerObject | null): void;
|
|
1104
|
-
setSubmitButtonDisabled(disabled: boolean): void;
|
|
1105
|
-
setSubmitButtonVisible(isVisible: boolean): void;
|
|
1106
|
-
setSubmitButtonContent(content: string): void;
|
|
1107
|
-
setSubmitButtonCanDisplayAmount(isVisible: boolean): void;
|
|
1108
|
-
setCardFlow(flow: CardPreferredFlow): void;
|
|
1109
|
-
setInputLabelsVisible(visible: boolean): void;
|
|
1110
|
-
setErrorMessage(content: string | null): void;
|
|
1111
|
-
setHideErrorMessageOnSceneEntered(hideOnSceneEntered: boolean): void;
|
|
1112
|
-
addAPM(apm: NodeLike): void;
|
|
1113
|
-
setPaymentMethods(paymentMethods: Record<string, BasePaymentMethod>): void;
|
|
1114
|
-
setSelectedPaymentMethod(paymentMethodType: PaymentMethodType | string | null): void;
|
|
1115
|
-
setCheckoutModules(checkoutModules: any): void;
|
|
1116
|
-
getCheckoutModules(): any[];
|
|
1117
|
-
getCheckoutModuleWithType<CheckoutModule>(type: string): CheckoutModule | undefined;
|
|
1118
|
-
selectFirstVault(): void;
|
|
1119
|
-
addVault(vault: VaultedPaymentMethod): VaultListItem | null;
|
|
1120
|
-
selectVault(id: string | null): void;
|
|
1121
|
-
getSelectedVaultItem(): VaultListItem | undefined;
|
|
1122
|
-
getSelectedVaultItemState(): {
|
|
1123
|
-
metadata?: InputMetadata;
|
|
1124
|
-
securityCode?: string;
|
|
1125
|
-
};
|
|
1126
|
-
setSelectedVaultItemState(state: ICheckoutState["vault"]["state"]): void;
|
|
1127
|
-
removeVault(id: string): Promise<void>;
|
|
1128
|
-
setSmallPrintMessage(message: string | null): void;
|
|
1129
|
-
setTranslation(translation: TranslationUnit): void;
|
|
1130
|
-
setShowSavedPaymentMethods(show: boolean): void;
|
|
1131
|
-
setPurchaseInfo(purchaseInfo: PurchaseInformation | null): void;
|
|
1132
|
-
setCustomerDetails(customerDetails: CustomerDetails | null, orderDetailsInitiator: string | null): void;
|
|
1133
|
-
setBusinessDetails(businessDetails: BusinessDetails | null, orderDetailsInitiator: string | null): void;
|
|
1134
|
-
setOrderDetails(orderDetails: ClientSessionOrder | null, orderDetailsInitiator: string | null): void;
|
|
1135
|
-
setClientSession(clientSession: InternalClientSession): void;
|
|
1136
|
-
setClientSessionInfo(clientSessionInfo: ClientSessionInfo): void;
|
|
1137
|
-
setIsTeardown(isTeardown: boolean): void;
|
|
1138
|
-
getIsTeardown(): boolean | undefined;
|
|
1139
|
-
getPurchaseInfo(): PurchaseInformation | VaultInformation | null;
|
|
1140
|
-
getCustomerDetails(): CustomerDetails | null;
|
|
1141
|
-
getBusinessDetails(): BusinessDetails | null;
|
|
1142
|
-
getOrderDetails(): {
|
|
1143
|
-
orderDetails: ClientSessionOrder | null;
|
|
1144
|
-
orderDetailsInitiator: string | null;
|
|
1145
|
-
};
|
|
1146
|
-
getClientSession(): InternalClientSession | null;
|
|
1147
|
-
get hasAPMs(): boolean;
|
|
1148
|
-
get selectedAPM(): string | null;
|
|
1149
|
-
get hasVault(): boolean;
|
|
1150
|
-
get hasCard(): boolean;
|
|
1151
|
-
get hasCreditCardScene(): boolean;
|
|
1152
|
-
get hasDirectDebit(): boolean;
|
|
1153
|
-
get hasSurcharge(): boolean;
|
|
1154
|
-
get hasCardSurcharge(): boolean;
|
|
1155
|
-
get selectedVault(): string | null;
|
|
1156
|
-
get savePaymentMethodVisible(): boolean;
|
|
1157
|
-
get hasClientSession(): boolean;
|
|
1158
|
-
get hasSelectedPaymentMethod(): PaymentMethodType | string | null;
|
|
1159
|
-
get currentCardNetwork(): string | null;
|
|
1160
|
-
get UIOrderAmount(): string | null;
|
|
1161
|
-
get selectedPaymentMethod(): PaymentMethodType | string | null;
|
|
1162
|
-
getSelectedVaultToken(): VaultedPaymentMethod | null;
|
|
1163
|
-
getAllAPMs(): NodeLike[];
|
|
1164
|
-
getAllVaulted(): VaultListItem[];
|
|
1165
|
-
getTranslations(): Translation & Record<string, string>;
|
|
1166
|
-
getPaymentMethodWithType<T extends BasePaymentMethod>(paymentMethodType: string): T | undefined;
|
|
1167
|
-
getPaymentMethodStoreWithType<T extends IBaseStore>(paymentMethodType: string): T | undefined;
|
|
1168
|
-
getPaymentMethods(): Record<string, BasePaymentMethod>;
|
|
1169
|
-
hasVaultedToken(token: PaymentMethodToken): boolean;
|
|
1170
|
-
}
|
|
1171
|
-
export interface PackageDeclaration {
|
|
1172
|
-
getModuleIdFromSceneId?: (sceneId: string) => string | null;
|
|
1173
|
-
modules: {
|
|
1174
|
-
PaymentMethod?: new (...args: unknown[]) => void;
|
|
1175
|
-
} & Record<string, () => Promise<any>>;
|
|
1176
|
-
}
|
|
1177
|
-
export type ModuleKey = {
|
|
1178
|
-
moduleId: string;
|
|
1179
|
-
packageId: string;
|
|
1180
|
-
};
|
|
1181
|
-
export type Module = {
|
|
1182
|
-
id: string;
|
|
1183
|
-
packageId: string;
|
|
1184
|
-
import(exportName?: string): Promise<unknown>;
|
|
1185
|
-
};
|
|
1186
|
-
export type Package = {
|
|
1187
|
-
id: string;
|
|
1188
|
-
getDeclaration(): PackageDeclaration;
|
|
1189
|
-
getModule(string: any): Module;
|
|
1190
|
-
};
|
|
1191
|
-
export type ModuleFactory = {
|
|
1192
|
-
getPackages(): Array<Package>;
|
|
1193
|
-
getPackage(id: string): Package;
|
|
1194
|
-
getModule(moduleKey: ModuleKey): Module;
|
|
1195
|
-
};
|
|
1196
|
-
export interface ClientContext {
|
|
1197
|
-
clientTokenHandler: IClientTokenHandler;
|
|
1198
|
-
clientConfigurationHandler: ClientConfigurationHandler;
|
|
1199
|
-
iframes: IFrameFactory;
|
|
1200
|
-
messageBus: IFrameMessageBus;
|
|
1201
|
-
api: Api;
|
|
1202
|
-
longPoll: LongPoll;
|
|
1203
|
-
analytics: Analytics;
|
|
1204
|
-
scriptLoader: ScriptLoader;
|
|
1205
|
-
session: ClientSessionInfo;
|
|
1206
|
-
moduleFactory: ModuleFactory;
|
|
1207
|
-
clientOptions: InternalFlowOptions;
|
|
1208
|
-
store: CheckoutStore;
|
|
1209
|
-
}
|
|
1210
|
-
declare class BaseClientContext implements ClientContext {
|
|
1211
|
-
clientTokenHandler: IClientTokenHandler;
|
|
1212
|
-
clientConfigurationHandler: ClientConfigurationHandler;
|
|
1213
|
-
iframes: IFrameFactory;
|
|
1214
|
-
messageBus: IFrameMessageBus;
|
|
1215
|
-
api: Api;
|
|
1216
|
-
longPoll: LongPoll;
|
|
1217
|
-
analytics: Analytics;
|
|
1218
|
-
scriptLoader: ScriptLoader;
|
|
1219
|
-
moduleFactory: ModuleFactory;
|
|
1220
|
-
clientOptions: InternalFlowOptions;
|
|
1221
|
-
store: CheckoutStore;
|
|
1222
|
-
/**
|
|
1223
|
-
* @deprecated use context.store instead
|
|
1224
|
-
*/
|
|
1225
|
-
get session(): ClientSessionInfo;
|
|
1226
|
-
}
|
|
1227
412
|
export type SecureInputOptions = {
|
|
1228
413
|
ariaLabel?: string;
|
|
1229
414
|
container: string;
|
|
@@ -1261,15 +446,14 @@ export type CvvInput = {
|
|
|
1261
446
|
remove: () => void;
|
|
1262
447
|
};
|
|
1263
448
|
export type CvvInputOptions = CardSecurityCodeInputOptions;
|
|
1264
|
-
export
|
|
1265
|
-
declare function createHeadlessVaultManager(context: BaseClientContext): {
|
|
449
|
+
export interface HeadlessVaultManager {
|
|
1266
450
|
fetchVaultedPaymentMethods(): Promise<VaultedPaymentMethod[]>;
|
|
1267
451
|
deleteVaultedPaymentMethod(id: string): Promise<void>;
|
|
1268
452
|
startPaymentFlow(id: string, data?: {
|
|
1269
453
|
cvv?: string;
|
|
1270
454
|
}): Promise<void>;
|
|
1271
455
|
createCvvInput(options: CvvInputOptions): Promise<CvvInput | null>;
|
|
1272
|
-
}
|
|
456
|
+
}
|
|
1273
457
|
export declare enum PaymentFlow {
|
|
1274
458
|
DEFAULT = "DEFAULT",
|
|
1275
459
|
PREFER_VAULT = "PREFER_VAULT"
|
|
@@ -1326,8 +510,8 @@ declare class PrimerClientError<T = any> extends SDKError {
|
|
|
1326
510
|
readonly diagnosticsId: string | null;
|
|
1327
511
|
readonly data?: T;
|
|
1328
512
|
readonly isFromDeveloper: boolean;
|
|
1329
|
-
static fromErrorCode(code: ErrorCode, options: ErrorOptions$1
|
|
1330
|
-
constructor(code: ErrorCode, options: ErrorOptions$1<T
|
|
513
|
+
static fromErrorCode(code: ErrorCode, options: ErrorOptions$1): PrimerClientError;
|
|
514
|
+
constructor(code: ErrorCode, options: ErrorOptions$1<T>);
|
|
1331
515
|
}
|
|
1332
516
|
export interface CardMetadata {
|
|
1333
517
|
/** @deprecated Use onCardNetworksChange instead. */
|
|
@@ -1964,6 +1148,7 @@ export interface GooglePayStyles {
|
|
|
1964
1148
|
}
|
|
1965
1149
|
export interface ApplePayStyles {
|
|
1966
1150
|
buttonType?: "plain" | "buy" | "set-up" | "donate" | "check-out" | "book" | "subscribe";
|
|
1151
|
+
buttonHeight?: number;
|
|
1967
1152
|
buttonStyle?: "white" | "white-outline" | "black";
|
|
1968
1153
|
}
|
|
1969
1154
|
export interface HeadlessButtonRenderOptions {
|
|
@@ -2033,6 +1218,7 @@ export type CardNetworkAsset = {
|
|
|
2033
1218
|
displayName: string;
|
|
2034
1219
|
};
|
|
2035
1220
|
export interface CardPaymentMethodManagerOptions {
|
|
1221
|
+
/** @deprecated Use onCardNetworksChange instead. */
|
|
2036
1222
|
onCardMetadataChange?: (metadata: CardMetadata) => void;
|
|
2037
1223
|
onCardNetworksChange?: (event: CardNetworkChangeEvent) => void;
|
|
2038
1224
|
onCardNetworksLoading?: () => void;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primer-io/checkout-web",
|
|
3
|
-
"version": "2.50.
|
|
3
|
+
"version": "2.50.4",
|
|
4
4
|
"description": "Primer.js for the web",
|
|
5
5
|
"author": "Primer Developers <developers@primer.io>",
|
|
6
6
|
"homepage": "",
|
|
7
|
-
"license": "
|
|
7
|
+
"license": "BSD-3-Clause",
|
|
8
8
|
"main": "dist/Primer.js",
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/Primer.js",
|