@starfish-codes/hellgate 3.7.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1 @@
1
- (function(v,ae){typeof exports=="object"&&typeof module<"u"?ae(exports):typeof define=="function"&&define.amd?define(["exports"],ae):(v=typeof globalThis<"u"?globalThis:v||self,ae(v.HellgateSDK={}))})(this,function(v){"use strict";function ae(e){return Array.isArray(e)?e.filter(Boolean):Object.fromEntries(Object.entries(e).map(([t,r])=>[t,typeof r=="object"&&r&&!Array.isArray(r)?ae(r):r]).filter(([t,r])=>typeof r=="object"&&r&&!Array.isArray(r)?!!Object.keys(r).length:r!=null&&r!=null))}function oe(e,t){const r={...e,...t},n=Object.keys(r);for(const s of n){const i=e[s],a=t[s];typeof i=="object"&&!Array.isArray(i)&&i&&typeof a=="object"&&!Array.isArray(a)&&a&&(r[s]=oe(i,a))}return r}function bt(e){if(!e.ok)throw e;return e.json()}const os=2e3;class pr{constructor(t,r){Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"iframeId",{enumerable:!0,configurable:!0,writable:!0,value:String(Math.floor(1e5+Math.random()*9e5))}),Object.defineProperty(this,"resultPollingTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"transactionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"decoupledAuthHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"check3dsIframeDisposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"domContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"labelText",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onStartHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFinishHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onDecoupledAuth",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.decoupledAuthHandlers.push(n)}}),Object.defineProperty(this,"onStartChallenge",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.onStartHandler=n}}),Object.defineProperty(this,"onChallengeFinished",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.onFinishHandler=n}}),Object.defineProperty(this,"sessionStateHandle",{enumerable:!0,configurable:!0,writable:!0,value:n=>{var s,i;switch(n.next_action){case"3ds_check":{this.initCheck3DSIframes(n.data.threeds_server_callback_url,n.data.mon_url);break}case"3ds_challenge":{(s=this.onStartHandler)==null||s.call(this),this.disposeCheck3DSIframe(),this.startChallenge(n.data.challenge_url,n.data.result_mon_url);break}case"3ds_challenge_decoupled":{this.startDecoupledAuth(n.data.cardholder_info,n.data.result_mon_url,n.data.transaction_id);break}case null:{this.dispose(),(i=this.onFinishHandler)==null||i.call(this);break}}}}),this.domContainer=r.domContainer??_t(),this.disposers.push(this.session.onStateChange(this.sessionStateHandle)),this.labelText=r.labelText}dispose(){this.disposers.forEach(t=>t()),this.check3dsIframeDisposers.forEach(t=>t())}initCheck3DSIframes(t,r){const n=_t();n.insertAdjacentHTML("beforeend",`<iframe id="check_3ds_${this.iframeId}" width="0" height="0" style="border:0;visibility: hidden;" src="${t}"></iframe>`);const s=n.querySelector(`#check_3ds_${this.iframeId}`);if(s){const i=a=>{a.source===s.contentWindow&&this.session.completeAction({action:"3ds_check",result:a.data})};window.addEventListener("message",i),this.check3dsIframeDisposers.push(()=>window.removeEventListener("message",i),()=>s.remove())}if(r){n.insertAdjacentHTML("beforeend",`<iframe id="mon_${this.iframeId}" width="0" height="0" style="border:0;visibility: hidden;" src="${r}"></iframe>`);const i=n.querySelector(`#mon_${this.iframeId}`);i&&this.disposers.push(()=>i.remove())}}disposeCheck3DSIframe(){this.check3dsIframeDisposers.forEach(t=>t()),this.check3dsIframeDisposers=[]}startChallenge(t,r){const n=_t(),s=`<div style="display: flex; flex-direction: column; gap: 10px; align-items: center; ${this.domContainer===n?'border:0; max-width: 800px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width:100% " ':'border:0;" width="100%" height="100%"'}><iframe id="cha_${this.iframeId}" src="${t}" width="100%" height="500"></iframe>${this.labelText?'<span id="tds_label_text" style="font-size: large;">'+this.labelText+"</span>":""}<div>`;this.domContainer.insertAdjacentHTML("beforeend",this.domContainer===n?`<div id="cha_${this.iframeId}_wrap" style="background: #fff; position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 10000;">${s}</div>`:s);const i=this.domContainer.querySelector(`#cha_${this.iframeId}`),a=this.domContainer.querySelector(`#cha_${this.iframeId}_wrap`);if(!i)throw new Error("3DS Challenge Iframe initialization failed");this.disposers.push(()=>{i.remove(),a==null||a.remove()});const o=new Promise(u=>{const l=f=>{f.source!==i.contentWindow||f.data.event!=="AuthResultReady"||u(f.data)};window.addEventListener("message",l),this.disposers.push(()=>window.removeEventListener("message",l))}),d=new Promise(u=>{const l=this.startAuthResultPolling(r,f=>{f.event==="AuthResultReady"&&(l(),u({requestor_trans_id:f.threeDSRequestorTransID,event:f.event}))})});Promise.any([o,d]).then(u=>{this.session.completeAction({action:"3ds_challenge",result:u})})}startDecoupledAuth(t,r,n){this.transactionId||(this.transactionId=n),this.decoupledAuthHandlers.forEach(i=>i(t));const s=this.startAuthResultPolling(r,i=>{i.event==="AuthResultReady"&&(this.session.completeAction({action:"3ds_challenge_decoupled",result:{...i,event:i.event}}),s())})}startAuthResultPolling(t,r){return window.clearTimeout(this.resultPollingTimer),this.resultPollingTimer=window.setTimeout(()=>fetch(t).then(n=>bt(n)).then(n=>{this.startAuthResultPolling(t,r),r(n)}).catch(()=>{}),os),()=>window.clearTimeout(this.resultPollingTimer)}}function _t(){return document.body}var cs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function us(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),r}var mr={},ve={},ce={};Object.defineProperty(ce,"__esModule",{value:!0}),ce.makeRequestWithoutElementsPayloadCheck=ce.makeRequestWithElementsPayloadCheck=void 0;function ls(e){function t(){var r=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}class Er extends ls(Error){constructor(t){super(t),this.name="NoElementsError"}}const ds=(e,t,r,n,s={})=>{if(e!=null&&e.hasElement(n))return e.client[t](r,n,s);let i="Elements not initialized.";throw e&&(i="Element not found in payload."),new Er(`${i} Use a regular HTTP client if no elements are needed.`)};ce.makeRequestWithElementsPayloadCheck=ds;const fs=(e,t,r,n={})=>{if(e)return e.client[t](r,n);throw new Er("Elements not initialized. Use a regular HTTP client if no elements are needed.")};ce.makeRequestWithoutElementsPayloadCheck=fs;var yr={},Ce={},D={},_={};Object.defineProperty(_,"__esModule",{value:!0}),_.USER_AGENT_HEADER=_.USER_AGENT_CLIENT=_.MERGE_CONTENT_TYPE=_.DEFAULT_ELEMENTS_BASE_URL=_.DEFAULT_BASE_URL=_.CONTENT_TYPE_HEADER=_.CLIENT_USER_AGENT_HEADER=_.CLIENT_BASE_PATHS=_.BT_TRANSACTION_ID_HEADER=_.BT_TRACE_ID_HEADER=_.BT_IDEMPOTENCY_KEY_HEADER=_.BT_EXPOSE_PROXY_RESPONSE_HEADER=_.BROWSER_LIST=_.API_KEY_HEADER=void 0;const hs="BT-API-KEY";_.API_KEY_HEADER=hs;const ps="bt-trace-id";_.BT_TRACE_ID_HEADER=ps;const ms="bt-idempotency-key";_.BT_IDEMPOTENCY_KEY_HEADER=ms;const Es="BT-EXPOSE-RAW-PROXY-RESPONSE";_.BT_EXPOSE_PROXY_RESPONSE_HEADER=Es;const ys="BT-TRANSACTION-ID";_.BT_TRANSACTION_ID_HEADER=ys;const bs="Content-Type";_.CONTENT_TYPE_HEADER=bs;const _s="application/merge-patch+json";_.MERGE_CONTENT_TYPE=_s;const gs="User-Agent";_.USER_AGENT_HEADER=gs;const ws="BT-CLIENT-USER-AGENT";_.CLIENT_USER_AGENT_HEADER=ws;const Ss="BasisTheoryJS";_.USER_AGENT_CLIENT=Ss;const Ts="https://api.basistheory.com";_.DEFAULT_BASE_URL=Ts;const Rs="https://js.basistheory.com/hosted-elements";_.DEFAULT_ELEMENTS_BASE_URL=Rs;const As={tokens:"tokens",tokenize:"tokenize",applications:"applications",tenants:"tenants/self",logs:"logs",reactorFormulas:"reactor-formulas",reactors:"reactors",permissions:"permissions",proxies:"proxies",proxy:"proxy",sessions:"sessions",transactions:"transactions"};_.CLIENT_BASE_PATHS=As;const vs=[{browserName:"Firefox",browserUA:"Firefox"},{browserName:"SamsungBrowser",browserUA:"SamsungBrowser"},{browserName:"Opera",browserUA:"Opera"},{browserName:"Opera",browserUA:"OPR"},{browserName:"Microsoft Internet Explorer",browserUA:"Trident"},{browserName:"Microsoft Edge (Legacy)",browserUA:"Edge"},{browserName:"Microsoft Edge (Chromium)",browserUA:"Edg"},{browserName:"Google Chrome/Chromium",browserUA:"Chrome"},{browserName:"Safari",browserUA:"Safari"}];_.BROWSER_LIST=vs;var m={};/*! Axios v1.8.2 Copyright (c) 2025 Matt Zabriskie and contributors */function br(e,t){return function(){return e.apply(t,arguments)}}const{toString:Cs}=Object.prototype,{getPrototypeOf:gt}=Object,Oe=(e=>t=>{const r=Cs.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),M=e=>(e=e.toLowerCase(),t=>Oe(t)===e),Pe=e=>t=>typeof t===e,{isArray:ue}=Array,Ee=Pe("undefined");function Os(e){return e!==null&&!Ee(e)&&e.constructor!==null&&!Ee(e.constructor)&&U(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const _r=M("ArrayBuffer");function Ps(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&_r(e.buffer),t}const Bs=Pe("string"),U=Pe("function"),gr=Pe("number"),Be=e=>e!==null&&typeof e=="object",xs=e=>e===!0||e===!1,xe=e=>{if(Oe(e)!=="object")return!1;const t=gt(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Ns=M("Date"),js=M("File"),Ds=M("Blob"),Us=M("FileList"),Hs=e=>Be(e)&&U(e.pipe),Ls=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||U(e.append)&&((t=Oe(e))==="formdata"||t==="object"&&U(e.toString)&&e.toString()==="[object FormData]"))},Ms=M("URLSearchParams"),[Is,$s,qs,Ks]=["ReadableStream","Request","Response","Headers"].map(M),Fs=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ye(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,s;if(typeof e!="object"&&(e=[e]),ue(e))for(n=0,s=e.length;n<s;n++)t.call(null,e[n],n,e);else{const i=r?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length;let o;for(n=0;n<a;n++)o=i[n],t.call(null,e[o],o,e)}}function wr(e,t){t=t.toLowerCase();const r=Object.keys(e);let n=r.length,s;for(;n-- >0;)if(s=r[n],t===s.toLowerCase())return s;return null}const Q=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:cs,Sr=e=>!Ee(e)&&e!==Q;function wt(){const{caseless:e}=Sr(this)&&this||{},t={},r=(n,s)=>{const i=e&&wr(t,s)||s;xe(t[i])&&xe(n)?t[i]=wt(t[i],n):xe(n)?t[i]=wt({},n):ue(n)?t[i]=n.slice():t[i]=n};for(let n=0,s=arguments.length;n<s;n++)arguments[n]&&ye(arguments[n],r);return t}const zs=(e,t,r,{allOwnKeys:n}={})=>(ye(t,(s,i)=>{r&&U(s)?e[i]=br(s,r):e[i]=s},{allOwnKeys:n}),e),Ws=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),ks=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},Vs=(e,t,r,n)=>{let s,i,a;const o={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],(!n||n(a,e,t))&&!o[a]&&(t[a]=e[a],o[a]=!0);e=r!==!1&&gt(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},Gs=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},Js=e=>{if(!e)return null;if(ue(e))return e;let t=e.length;if(!gr(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},Xs=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&gt(Uint8Array)),Ys=(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=n.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},Zs=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},Qs=M("HTMLFormElement"),ei=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,s){return n.toUpperCase()+s}),Tr=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),ti=M("RegExp"),Rr=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};ye(r,(s,i)=>{let a;(a=t(s,i,e))!==!1&&(n[i]=a||s)}),Object.defineProperties(e,n)},ri=e=>{Rr(e,(t,r)=>{if(U(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(U(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},ni=(e,t)=>{const r={},n=s=>{s.forEach(i=>{r[i]=!0})};return ue(e)?n(e):n(String(e).split(t)),r},si=()=>{},ii=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function ai(e){return!!(e&&U(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const oi=e=>{const t=new Array(10),r=(n,s)=>{if(Be(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[s]=n;const i=ue(n)?[]:{};return ye(n,(a,o)=>{const d=r(a,s+1);!Ee(d)&&(i[o]=d)}),t[s]=void 0,i}}return n};return r(e,0)},ci=M("AsyncFunction"),ui=e=>e&&(Be(e)||U(e))&&U(e.then)&&U(e.catch),Ar=((e,t)=>e?setImmediate:t?((r,n)=>(Q.addEventListener("message",({source:s,data:i})=>{s===Q&&i===r&&n.length&&n.shift()()},!1),s=>{n.push(s),Q.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",U(Q.postMessage)),li=typeof queueMicrotask<"u"?queueMicrotask.bind(Q):typeof process<"u"&&process.nextTick||Ar;var c={isArray:ue,isArrayBuffer:_r,isBuffer:Os,isFormData:Ls,isArrayBufferView:Ps,isString:Bs,isNumber:gr,isBoolean:xs,isObject:Be,isPlainObject:xe,isReadableStream:Is,isRequest:$s,isResponse:qs,isHeaders:Ks,isUndefined:Ee,isDate:Ns,isFile:js,isBlob:Ds,isRegExp:ti,isFunction:U,isStream:Hs,isURLSearchParams:Ms,isTypedArray:Xs,isFileList:Us,forEach:ye,merge:wt,extend:zs,trim:Fs,stripBOM:Ws,inherits:ks,toFlatObject:Vs,kindOf:Oe,kindOfTest:M,endsWith:Gs,toArray:Js,forEachEntry:Ys,matchAll:Zs,isHTMLForm:Qs,hasOwnProperty:Tr,hasOwnProp:Tr,reduceDescriptors:Rr,freezeMethods:ri,toObjectSet:ni,toCamelCase:ei,noop:si,toFiniteNumber:ii,findKey:wr,global:Q,isContextDefined:Sr,isSpecCompliantForm:ai,toJSONObject:oi,isAsyncFn:ci,isThenable:ui,setImmediate:Ar,asap:li};function y(e,t,r,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),s&&(this.response=s,this.status=s.status?s.status:null)}c.inherits(y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:c.toJSONObject(this.config),code:this.code,status:this.status}}});const vr=y.prototype,Cr={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Cr[e]={value:e}}),Object.defineProperties(y,Cr),Object.defineProperty(vr,"isAxiosError",{value:!0}),y.from=(e,t,r,n,s,i)=>{const a=Object.create(vr);return c.toFlatObject(e,a,function(d){return d!==Error.prototype},o=>o!=="isAxiosError"),y.call(a,e.message,t,r,n,s),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};var di=null;function St(e){return c.isPlainObject(e)||c.isArray(e)}function Or(e){return c.endsWith(e,"[]")?e.slice(0,-2):e}function Pr(e,t,r){return e?e.concat(t).map(function(s,i){return s=Or(s),!r&&i?"["+s+"]":s}).join(r?".":""):t}function fi(e){return c.isArray(e)&&!e.some(St)}const hi=c.toFlatObject(c,{},null,function(t){return/^is[A-Z]/.test(t)});function Ne(e,t,r){if(!c.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=c.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(E,p){return!c.isUndefined(p[E])});const n=r.metaTokens,s=r.visitor||l,i=r.dots,a=r.indexes,d=(r.Blob||typeof Blob<"u"&&Blob)&&c.isSpecCompliantForm(t);if(!c.isFunction(s))throw new TypeError("visitor must be a function");function u(h){if(h===null)return"";if(c.isDate(h))return h.toISOString();if(!d&&c.isBlob(h))throw new y("Blob is not supported. Use a Buffer instead.");return c.isArrayBuffer(h)||c.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function l(h,E,p){let S=h;if(h&&!p&&typeof h=="object"){if(c.endsWith(E,"{}"))E=n?E:E.slice(0,-2),h=JSON.stringify(h);else if(c.isArray(h)&&fi(h)||(c.isFileList(h)||c.endsWith(E,"[]"))&&(S=c.toArray(h)))return E=Or(E),S.forEach(function(O,G){!(c.isUndefined(O)||O===null)&&t.append(a===!0?Pr([E],G,i):a===null?E:E+"[]",u(O))}),!1}return St(h)?!0:(t.append(Pr(p,E,i),u(h)),!1)}const f=[],b=Object.assign(hi,{defaultVisitor:l,convertValue:u,isVisitable:St});function w(h,E){if(!c.isUndefined(h)){if(f.indexOf(h)!==-1)throw Error("Circular reference detected in "+E.join("."));f.push(h),c.forEach(h,function(S,C){(!(c.isUndefined(S)||S===null)&&s.call(t,S,c.isString(C)?C.trim():C,E,b))===!0&&w(S,E?E.concat(C):[C])}),f.pop()}}if(!c.isObject(e))throw new TypeError("data must be an object");return w(e),t}function Br(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function Tt(e,t){this._pairs=[],e&&Ne(e,this,t)}const xr=Tt.prototype;xr.append=function(t,r){this._pairs.push([t,r])},xr.toString=function(t){const r=t?function(n){return t.call(this,n,Br)}:Br;return this._pairs.map(function(s){return r(s[0])+"="+r(s[1])},"").join("&")};function pi(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Nr(e,t,r){if(!t)return e;const n=r&&r.encode||pi;c.isFunction(r)&&(r={serialize:r});const s=r&&r.serialize;let i;if(s?i=s(t,r):i=c.isURLSearchParams(t)?t.toString():new Tt(t,r).toString(n),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class mi{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){c.forEach(this.handlers,function(n){n!==null&&t(n)})}}var jr=mi,Dr={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ei=typeof URLSearchParams<"u"?URLSearchParams:Tt,yi=typeof FormData<"u"?FormData:null,bi=typeof Blob<"u"?Blob:null,_i={isBrowser:!0,classes:{URLSearchParams:Ei,FormData:yi,Blob:bi},protocols:["http","https","file","blob","url","data"]};const Rt=typeof window<"u"&&typeof document<"u",At=typeof navigator=="object"&&navigator||void 0,gi=Rt&&(!At||["ReactNative","NativeScript","NS"].indexOf(At.product)<0),wi=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Si=Rt&&window.location.href||"http://localhost";var Ti=Object.freeze({__proto__:null,hasBrowserEnv:Rt,hasStandardBrowserWebWorkerEnv:wi,hasStandardBrowserEnv:gi,navigator:At,origin:Si}),B={...Ti,..._i};function Ri(e,t){return Ne(e,new B.classes.URLSearchParams,Object.assign({visitor:function(r,n,s,i){return B.isNode&&c.isBuffer(r)?(this.append(n,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function Ai(e){return c.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function vi(e){const t={},r=Object.keys(e);let n;const s=r.length;let i;for(n=0;n<s;n++)i=r[n],t[i]=e[i];return t}function Ur(e){function t(r,n,s,i){let a=r[i++];if(a==="__proto__")return!0;const o=Number.isFinite(+a),d=i>=r.length;return a=!a&&c.isArray(s)?s.length:a,d?(c.hasOwnProp(s,a)?s[a]=[s[a],n]:s[a]=n,!o):((!s[a]||!c.isObject(s[a]))&&(s[a]=[]),t(r,n,s[a],i)&&c.isArray(s[a])&&(s[a]=vi(s[a])),!o)}if(c.isFormData(e)&&c.isFunction(e.entries)){const r={};return c.forEachEntry(e,(n,s)=>{t(Ai(n),s,r,0)}),r}return null}function Ci(e,t,r){if(c.isString(e))try{return(t||JSON.parse)(e),c.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const vt={transitional:Dr,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const n=r.getContentType()||"",s=n.indexOf("application/json")>-1,i=c.isObject(t);if(i&&c.isHTMLForm(t)&&(t=new FormData(t)),c.isFormData(t))return s?JSON.stringify(Ur(t)):t;if(c.isArrayBuffer(t)||c.isBuffer(t)||c.isStream(t)||c.isFile(t)||c.isBlob(t)||c.isReadableStream(t))return t;if(c.isArrayBufferView(t))return t.buffer;if(c.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let o;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return Ri(t,this.formSerializer).toString();if((o=c.isFileList(t))||n.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Ne(o?{"files[]":t}:t,d&&new d,this.formSerializer)}}return i||s?(r.setContentType("application/json",!1),Ci(t)):t}],transformResponse:[function(t){const r=this.transitional||vt.transitional,n=r&&r.forcedJSONParsing,s=this.responseType==="json";if(c.isResponse(t)||c.isReadableStream(t))return t;if(t&&c.isString(t)&&(n&&!this.responseType||s)){const a=!(r&&r.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(o){if(a)throw o.name==="SyntaxError"?y.from(o,y.ERR_BAD_RESPONSE,this,null,this.response):o}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:B.classes.FormData,Blob:B.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};c.forEach(["delete","get","head","post","put","patch"],e=>{vt.headers[e]={}});var Ct=vt;const Oi=c.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Pi=e=>{const t={};let r,n,s;return e&&e.split(`
2
- `).forEach(function(a){s=a.indexOf(":"),r=a.substring(0,s).trim().toLowerCase(),n=a.substring(s+1).trim(),!(!r||t[r]&&Oi[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t};const Hr=Symbol("internals");function be(e){return e&&String(e).trim().toLowerCase()}function je(e){return e===!1||e==null?e:c.isArray(e)?e.map(je):String(e)}function Bi(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const xi=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ot(e,t,r,n,s){if(c.isFunction(n))return n.call(this,t,r);if(s&&(t=r),!!c.isString(t)){if(c.isString(n))return t.indexOf(n)!==-1;if(c.isRegExp(n))return n.test(t)}}function Ni(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function ji(e,t){const r=c.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(s,i,a){return this[n].call(this,t,s,i,a)},configurable:!0})})}class De{constructor(t){t&&this.set(t)}set(t,r,n){const s=this;function i(o,d,u){const l=be(d);if(!l)throw new Error("header name must be a non-empty string");const f=c.findKey(s,l);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||d]=je(o))}const a=(o,d)=>c.forEach(o,(u,l)=>i(u,l,d));if(c.isPlainObject(t)||t instanceof this.constructor)a(t,r);else if(c.isString(t)&&(t=t.trim())&&!xi(t))a(Pi(t),r);else if(c.isHeaders(t))for(const[o,d]of t.entries())i(d,o,n);else t!=null&&i(r,t,n);return this}get(t,r){if(t=be(t),t){const n=c.findKey(this,t);if(n){const s=this[n];if(!r)return s;if(r===!0)return Bi(s);if(c.isFunction(r))return r.call(this,s,n);if(c.isRegExp(r))return r.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=be(t),t){const n=c.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||Ot(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let s=!1;function i(a){if(a=be(a),a){const o=c.findKey(n,a);o&&(!r||Ot(n,n[o],o,r))&&(delete n[o],s=!0)}}return c.isArray(t)?t.forEach(i):i(t),s}clear(t){const r=Object.keys(this);let n=r.length,s=!1;for(;n--;){const i=r[n];(!t||Ot(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const r=this,n={};return c.forEach(this,(s,i)=>{const a=c.findKey(n,i);if(a){r[a]=je(s),delete r[i];return}const o=t?Ni(i):String(i).trim();o!==i&&delete r[i],r[o]=je(s),n[o]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return c.forEach(this,(n,s)=>{n!=null&&n!==!1&&(r[s]=t&&c.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(`
3
- `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(s=>n.set(s)),n}static accessor(t){const n=(this[Hr]=this[Hr]={accessors:{}}).accessors,s=this.prototype;function i(a){const o=be(a);n[o]||(ji(s,a),n[o]=!0)}return c.isArray(t)?t.forEach(i):i(t),this}}De.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),c.reduceDescriptors(De.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}}),c.freezeMethods(De);var I=De;function Pt(e,t){const r=this||Ct,n=t||r,s=I.from(n.headers);let i=n.data;return c.forEach(e,function(o){i=o.call(r,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function Lr(e){return!!(e&&e.__CANCEL__)}function le(e,t,r){y.call(this,e??"canceled",y.ERR_CANCELED,t,r),this.name="CanceledError"}c.inherits(le,y,{__CANCEL__:!0});function Mr(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new y("Request failed with status code "+r.status,[y.ERR_BAD_REQUEST,y.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function Di(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Ui(e,t){e=e||10;const r=new Array(e),n=new Array(e);let s=0,i=0,a;return t=t!==void 0?t:1e3,function(d){const u=Date.now(),l=n[i];a||(a=u),r[s]=d,n[s]=u;let f=i,b=0;for(;f!==s;)b+=r[f++],f=f%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),u-a<t)return;const w=l&&u-l;return w?Math.round(b*1e3/w):void 0}}function Hi(e,t){let r=0,n=1e3/t,s,i;const a=(u,l=Date.now())=>{r=l,s=null,i&&(clearTimeout(i),i=null),e.apply(null,u)};return[(...u)=>{const l=Date.now(),f=l-r;f>=n?a(u,l):(s=u,i||(i=setTimeout(()=>{i=null,a(s)},n-f)))},()=>s&&a(s)]}const Ue=(e,t,r=3)=>{let n=0;const s=Ui(50,250);return Hi(i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,d=a-n,u=s(d),l=a<=o;n=a;const f={loaded:a,total:o,progress:o?a/o:void 0,bytes:d,rate:u||void 0,estimated:u&&o&&l?(o-a)/u:void 0,event:i,lengthComputable:o!=null,[t?"download":"upload"]:!0};e(f)},r)},Ir=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},$r=e=>(...t)=>c.asap(()=>e(...t));var Li=B.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,B.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(B.origin),B.navigator&&/(msie|trident)/i.test(B.navigator.userAgent)):()=>!0,Mi=B.hasStandardBrowserEnv?{write(e,t,r,n,s,i){const a=[e+"="+encodeURIComponent(t)];c.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),c.isString(n)&&a.push("path="+n),c.isString(s)&&a.push("domain="+s),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Ii(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function $i(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function qr(e,t,r){let n=!Ii(t);return e&&n||r==!1?$i(e,t):t}const Kr=e=>e instanceof I?{...e}:e;function ee(e,t){t=t||{};const r={};function n(u,l,f,b){return c.isPlainObject(u)&&c.isPlainObject(l)?c.merge.call({caseless:b},u,l):c.isPlainObject(l)?c.merge({},l):c.isArray(l)?l.slice():l}function s(u,l,f,b){if(c.isUndefined(l)){if(!c.isUndefined(u))return n(void 0,u,f,b)}else return n(u,l,f,b)}function i(u,l){if(!c.isUndefined(l))return n(void 0,l)}function a(u,l){if(c.isUndefined(l)){if(!c.isUndefined(u))return n(void 0,u)}else return n(void 0,l)}function o(u,l,f){if(f in t)return n(u,l);if(f in e)return n(void 0,u)}const d={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:o,headers:(u,l,f)=>s(Kr(u),Kr(l),f,!0)};return c.forEach(Object.keys(Object.assign({},e,t)),function(l){const f=d[l]||s,b=f(e[l],t[l],l);c.isUndefined(b)&&f!==o||(r[l]=b)}),r}var Fr=e=>{const t=ee({},e);let{data:r,withXSRFToken:n,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:o}=t;t.headers=a=I.from(a),t.url=Nr(qr(t.baseURL,t.url),e.params,e.paramsSerializer),o&&a.set("Authorization","Basic "+btoa((o.username||"")+":"+(o.password?unescape(encodeURIComponent(o.password)):"")));let d;if(c.isFormData(r)){if(B.hasStandardBrowserEnv||B.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((d=a.getContentType())!==!1){const[u,...l]=d?d.split(";").map(f=>f.trim()).filter(Boolean):[];a.setContentType([u||"multipart/form-data",...l].join("; "))}}if(B.hasStandardBrowserEnv&&(n&&c.isFunction(n)&&(n=n(t)),n||n!==!1&&Li(t.url))){const u=s&&i&&Mi.read(i);u&&a.set(s,u)}return t},qi=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(r,n){const s=Fr(e);let i=s.data;const a=I.from(s.headers).normalize();let{responseType:o,onUploadProgress:d,onDownloadProgress:u}=s,l,f,b,w,h;function E(){w&&w(),h&&h(),s.cancelToken&&s.cancelToken.unsubscribe(l),s.signal&&s.signal.removeEventListener("abort",l)}let p=new XMLHttpRequest;p.open(s.method.toUpperCase(),s.url,!0),p.timeout=s.timeout;function S(){if(!p)return;const O=I.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),j={data:!o||o==="text"||o==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:O,config:e,request:p};Mr(function(ie){r(ie),E()},function(ie){n(ie),E()},j),p=null}"onloadend"in p?p.onloadend=S:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(S)},p.onabort=function(){p&&(n(new y("Request aborted",y.ECONNABORTED,e,p)),p=null)},p.onerror=function(){n(new y("Network Error",y.ERR_NETWORK,e,p)),p=null},p.ontimeout=function(){let G=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const j=s.transitional||Dr;s.timeoutErrorMessage&&(G=s.timeoutErrorMessage),n(new y(G,j.clarifyTimeoutError?y.ETIMEDOUT:y.ECONNABORTED,e,p)),p=null},i===void 0&&a.setContentType(null),"setRequestHeader"in p&&c.forEach(a.toJSON(),function(G,j){p.setRequestHeader(j,G)}),c.isUndefined(s.withCredentials)||(p.withCredentials=!!s.withCredentials),o&&o!=="json"&&(p.responseType=s.responseType),u&&([b,h]=Ue(u,!0),p.addEventListener("progress",b)),d&&p.upload&&([f,w]=Ue(d),p.upload.addEventListener("progress",f),p.upload.addEventListener("loadend",w)),(s.cancelToken||s.signal)&&(l=O=>{p&&(n(!O||O.type?new le(null,e,p):O),p.abort(),p=null)},s.cancelToken&&s.cancelToken.subscribe(l),s.signal&&(s.signal.aborted?l():s.signal.addEventListener("abort",l)));const C=Di(s.url);if(C&&B.protocols.indexOf(C)===-1){n(new y("Unsupported protocol "+C+":",y.ERR_BAD_REQUEST,e));return}p.send(i||null)})},Ki=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let n=new AbortController,s;const i=function(u){if(!s){s=!0,o();const l=u instanceof Error?u:this.reason;n.abort(l instanceof y?l:new le(l instanceof Error?l.message:l))}};let a=t&&setTimeout(()=>{a=null,i(new y(`timeout ${t} of ms exceeded`,y.ETIMEDOUT))},t);const o=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:d}=n;return d.unsubscribe=()=>c.asap(o),d}};const Fi=function*(e,t){let r=e.byteLength;if(r<t){yield e;return}let n=0,s;for(;n<r;)s=n+t,yield e.slice(n,s),n=s},zi=async function*(e,t){for await(const r of Wi(e))yield*Fi(r,t)},Wi=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:r,value:n}=await t.read();if(r)break;yield n}}finally{await t.cancel()}},zr=(e,t,r,n)=>{const s=zi(e,t);let i=0,a,o=d=>{a||(a=!0,n&&n(d))};return new ReadableStream({async pull(d){try{const{done:u,value:l}=await s.next();if(u){o(),d.close();return}let f=l.byteLength;if(r){let b=i+=f;r(b)}d.enqueue(new Uint8Array(l))}catch(u){throw o(u),u}},cancel(d){return o(d),s.return()}},{highWaterMark:2})},He=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Wr=He&&typeof ReadableStream=="function",ki=He&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),kr=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Vi=Wr&&kr(()=>{let e=!1;const t=new Request(B.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),Vr=64*1024,Bt=Wr&&kr(()=>c.isReadableStream(new Response("").body)),Le={stream:Bt&&(e=>e.body)};He&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Le[t]&&(Le[t]=c.isFunction(e[t])?r=>r[t]():(r,n)=>{throw new y(`Response type '${t}' is not supported`,y.ERR_NOT_SUPPORT,n)})})})(new Response);const Gi=async e=>{if(e==null)return 0;if(c.isBlob(e))return e.size;if(c.isSpecCompliantForm(e))return(await new Request(B.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(c.isArrayBufferView(e)||c.isArrayBuffer(e))return e.byteLength;if(c.isURLSearchParams(e)&&(e=e+""),c.isString(e))return(await ki(e)).byteLength},Ji=async(e,t)=>{const r=c.toFiniteNumber(e.getContentLength());return r??Gi(t)};var Xi=He&&(async e=>{let{url:t,method:r,data:n,signal:s,cancelToken:i,timeout:a,onDownloadProgress:o,onUploadProgress:d,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:b}=Fr(e);u=u?(u+"").toLowerCase():"text";let w=Ki([s,i&&i.toAbortSignal()],a),h;const E=w&&w.unsubscribe&&(()=>{w.unsubscribe()});let p;try{if(d&&Vi&&r!=="get"&&r!=="head"&&(p=await Ji(l,n))!==0){let j=new Request(t,{method:"POST",body:n,duplex:"half"}),Z;if(c.isFormData(n)&&(Z=j.headers.get("content-type"))&&l.setContentType(Z),j.body){const[ie,yt]=Ir(p,Ue($r(d)));n=zr(j.body,Vr,ie,yt)}}c.isString(f)||(f=f?"include":"omit");const S="credentials"in Request.prototype;h=new Request(t,{...b,signal:w,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:S?f:void 0});let C=await fetch(h);const O=Bt&&(u==="stream"||u==="response");if(Bt&&(o||O&&E)){const j={};["status","statusText","headers"].forEach(as=>{j[as]=C[as]});const Z=c.toFiniteNumber(C.headers.get("content-length")),[ie,yt]=o&&Ir(Z,Ue($r(o),!0))||[];C=new Response(zr(C.body,Vr,ie,()=>{yt&&yt(),E&&E()}),j)}u=u||"text";let G=await Le[c.findKey(Le,u)||"text"](C,e);return!O&&E&&E(),await new Promise((j,Z)=>{Mr(j,Z,{data:G,headers:I.from(C.headers),status:C.status,statusText:C.statusText,config:e,request:h})})}catch(S){throw E&&E(),S&&S.name==="TypeError"&&/fetch/i.test(S.message)?Object.assign(new y("Network Error",y.ERR_NETWORK,e,h),{cause:S.cause||S}):y.from(S,S&&S.code,e,h)}});const xt={http:di,xhr:qi,fetch:Xi};c.forEach(xt,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Gr=e=>`- ${e}`,Yi=e=>c.isFunction(e)||e===null||e===!1;var Jr={getAdapter:e=>{e=c.isArray(e)?e:[e];const{length:t}=e;let r,n;const s={};for(let i=0;i<t;i++){r=e[i];let a;if(n=r,!Yi(r)&&(n=xt[(a=String(r)).toLowerCase()],n===void 0))throw new y(`Unknown adapter '${a}'`);if(n)break;s[a||"#"+i]=n}if(!n){const i=Object.entries(s).map(([o,d])=>`adapter ${o} `+(d===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since :
4
- `+i.map(Gr).join(`
5
- `):" "+Gr(i[0]):"as no adapter specified";throw new y("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n},adapters:xt};function Nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new le(null,e)}function Xr(e){return Nt(e),e.headers=I.from(e.headers),e.data=Pt.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Jr.getAdapter(e.adapter||Ct.adapter)(e).then(function(n){return Nt(e),n.data=Pt.call(e,e.transformResponse,n),n.headers=I.from(n.headers),n},function(n){return Lr(n)||(Nt(e),n&&n.response&&(n.response.data=Pt.call(e,e.transformResponse,n.response),n.response.headers=I.from(n.response.headers))),Promise.reject(n)})}const Yr="1.8.2",Me={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Me[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Zr={};Me.transitional=function(t,r,n){function s(i,a){return"[Axios v"+Yr+"] Transitional option '"+i+"'"+a+(n?". "+n:"")}return(i,a,o)=>{if(t===!1)throw new y(s(a," has been removed"+(r?" in "+r:"")),y.ERR_DEPRECATED);return r&&!Zr[a]&&(Zr[a]=!0,console.warn(s(a," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,a,o):!0}},Me.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function Zi(e,t,r){if(typeof e!="object")throw new y("options must be an object",y.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let s=n.length;for(;s-- >0;){const i=n[s],a=t[i];if(a){const o=e[i],d=o===void 0||a(o,i,e);if(d!==!0)throw new y("option "+i+" must be "+d,y.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new y("Unknown option "+i,y.ERR_BAD_OPTION)}}var Ie={assertOptions:Zi,validators:Me};const q=Ie.validators;class $e{constructor(t){this.defaults=t,this.interceptors={request:new jr,response:new jr}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{n.stack?i&&!String(n.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(n.stack+=`
6
- `+i):n.stack=i}catch{}}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=ee(this.defaults,r);const{transitional:n,paramsSerializer:s,headers:i}=r;n!==void 0&&Ie.assertOptions(n,{silentJSONParsing:q.transitional(q.boolean),forcedJSONParsing:q.transitional(q.boolean),clarifyTimeoutError:q.transitional(q.boolean)},!1),s!=null&&(c.isFunction(s)?r.paramsSerializer={serialize:s}:Ie.assertOptions(s,{encode:q.function,serialize:q.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),Ie.assertOptions(r,{baseUrl:q.spelling("baseURL"),withXsrfToken:q.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let a=i&&c.merge(i.common,i[r.method]);i&&c.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),r.headers=I.concat(a,i);const o=[];let d=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(r)===!1||(d=d&&E.synchronous,o.unshift(E.fulfilled,E.rejected))});const u=[];this.interceptors.response.forEach(function(E){u.push(E.fulfilled,E.rejected)});let l,f=0,b;if(!d){const h=[Xr.bind(this),void 0];for(h.unshift.apply(h,o),h.push.apply(h,u),b=h.length,l=Promise.resolve(r);f<b;)l=l.then(h[f++],h[f++]);return l}b=o.length;let w=r;for(f=0;f<b;){const h=o[f++],E=o[f++];try{w=h(w)}catch(p){E.call(this,p);break}}try{l=Xr.call(this,w)}catch(h){return Promise.reject(h)}for(f=0,b=u.length;f<b;)l=l.then(u[f++],u[f++]);return l}getUri(t){t=ee(this.defaults,t);const r=qr(t.baseURL,t.url,t.allowAbsoluteUrls);return Nr(r,t.params,t.paramsSerializer)}}c.forEach(["delete","get","head","options"],function(t){$e.prototype[t]=function(r,n){return this.request(ee(n||{},{method:t,url:r,data:(n||{}).data}))}}),c.forEach(["post","put","patch"],function(t){function r(n){return function(i,a,o){return this.request(ee(o||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:i,data:a}))}}$e.prototype[t]=r(),$e.prototype[t+"Form"]=r(!0)});var qe=$e;class jt{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(function(i){r=i});const n=this;this.promise.then(s=>{if(!n._listeners)return;let i=n._listeners.length;for(;i-- >0;)n._listeners[i](s);n._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(o=>{n.subscribe(o),i=o}).then(s);return a.cancel=function(){n.unsubscribe(i)},a},t(function(i,a,o){n.reason||(n.reason=new le(i,a,o),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new jt(function(s){t=s}),cancel:t}}}var Qi=jt;function ea(e){return function(r){return e.apply(null,r)}}function ta(e){return c.isObject(e)&&e.isAxiosError===!0}const Dt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Dt).forEach(([e,t])=>{Dt[t]=e});var ra=Dt;function Qr(e){const t=new qe(e),r=br(qe.prototype.request,t);return c.extend(r,qe.prototype,t,{allOwnKeys:!0}),c.extend(r,t,null,{allOwnKeys:!0}),r.create=function(s){return Qr(ee(e,s))},r}const A=Qr(Ct);A.Axios=qe,A.CanceledError=le,A.CancelToken=Qi,A.isCancel=Lr,A.VERSION=Yr,A.toFormData=Ne,A.AxiosError=y,A.Cancel=A.CanceledError,A.all=function(t){return Promise.all(t)},A.spread=ea,A.isAxiosError=ta,A.mergeConfig=ee,A.AxiosHeaders=I,A.formToJSON=e=>Ur(c.isHTMLForm(e)?new FormData(e):e),A.getAdapter=Jr.getAdapter,A.HttpStatusCode=ra,A.default=A;var en=A,Ut={exports:{}};const tn=e=>typeof e=="object"&&e!==null,rn=Symbol("skip"),nn=e=>tn(e)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),Ht=(e,t,r,n=new WeakMap)=>{if(r={deep:!1,target:{},...r},n.has(e))return n.get(e);n.set(e,r.target);const{target:s}=r;delete r.target;const i=a=>a.map(o=>nn(o)?Ht(o,t,r,n):o);if(Array.isArray(e))return i(e);for(const[a,o]of Object.entries(e)){const d=t(a,o,e);if(d===rn)continue;let[u,l,{shouldRecurse:f=!0}={}]=d;u!=="__proto__"&&(r.deep&&f&&nn(l)&&(l=Array.isArray(l)?i(l):Ht(l,t,r,n)),s[u]=l)}return s};Ut.exports=(e,t,r)=>{if(!tn(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);return Ht(e,t,r)},Ut.exports.mapObjectSkip=rn;var sn=Ut.exports,Lt={exports:{}};const na=e=>{let t=!1,r=!1,n=!1;for(let s=0;s<e.length;s++){const i=e[s];t&&/[a-zA-Z]/.test(i)&&i.toUpperCase()===i?(e=e.slice(0,s)+"-"+e.slice(s),t=!1,n=r,r=!0,s++):r&&n&&/[a-zA-Z]/.test(i)&&i.toLowerCase()===i?(e=e.slice(0,s-1)+"-"+e.slice(s-1),n=r,r=!1,t=!0):(t=i.toLowerCase()===i&&i.toUpperCase()!==i,n=r,r=i.toUpperCase()===i&&i.toLowerCase()!==i)}return e},an=(e,t)=>{if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);const r=s=>t.pascalCase?s.charAt(0).toUpperCase()+s.slice(1):s;return Array.isArray(e)?e=e.map(s=>s.trim()).filter(s=>s.length).join("-"):e=e.trim(),e.length===0?"":e.length===1?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=na(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(s,i)=>i.toUpperCase()).replace(/\d+(\w|$)/g,s=>s.toUpperCase()),r(e))};Lt.exports=an,Lt.exports.default=an;var sa=Lt.exports;class ia{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,r){this.cache.set(t,r),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){const r=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,r),r}}set(t,r){return this.cache.has(t)?this.cache.set(t,r):this._set(t,r),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){const r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache)yield t;for(const t of this.oldCache){const[r]=t;this.cache.has(r)||(yield t)}}get size(){let t=0;for(const r of this.oldCache.keys())this.cache.has(r)||t++;return this._size+t}}var aa=ia;const on=sn,oa=sa,ca=aa,ua=(e,t)=>e.some(r=>typeof r=="string"?r===t:(r.lastIndex=0,r.test(t))),Mt=new ca({maxSize:1e5}),cn=e=>typeof e=="object"&&e!==null&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Date),un=(e,t)=>{if(!cn(e))return e;t={deep:!1,pascalCase:!1,...t};const{exclude:r,pascalCase:n,stopPaths:s,deep:i}=t,a=new Set(s),o=d=>(u,l)=>{if(i&&cn(l)){const f=d===void 0?u:`${d}.${u}`;a.has(f)||(l=on(l,o(f)))}if(!(r&&ua(r,u))){const f=n?`${u}_`:u;if(Mt.has(f))u=Mt.get(f);else{const b=oa(u,{pascalCase:n});u.length<100&&Mt.set(f,b),u=b}}return[u,l]};return on(e,o(void 0))};var la=(e,t)=>Array.isArray(e)?Object.keys(e).map(r=>un(e[r],t)):un(e,t),It,ln;function dn(){return ln||(ln=1,It=dn()),It}var Ke=function(){return Ke=Object.assign||function(t){for(var r,n=1,s=arguments.length;n<s;n++){r=arguments[n];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},Ke.apply(this,arguments)};typeof SuppressedError=="function"&&SuppressedError;function da(e){return e.toLowerCase()}var fa=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],ha=/[^A-Z0-9]+/gi;function pa(e,t){t===void 0&&(t={});for(var r=t.splitRegexp,n=r===void 0?fa:r,s=t.stripRegexp,i=s===void 0?ha:s,a=t.transform,o=a===void 0?da:a,d=t.delimiter,u=d===void 0?" ":d,l=fn(fn(e,n,"$1\0$2"),i,"\0"),f=0,b=l.length;l.charAt(f)==="\0";)f++;for(;l.charAt(b-1)==="\0";)b--;return l.slice(f,b).split("\0").map(o).join(u)}function fn(e,t,r){return t instanceof RegExp?e.replace(t,r):t.reduce(function(n,s){return n.replace(s,r)},e)}function ma(e,t){return t===void 0&&(t={}),pa(e,Ke({delimiter:"."},t))}function Ea(e,t){return t===void 0&&(t={}),ma(e,Ke({delimiter:"_"},t))}const ya=us(Object.freeze(Object.defineProperty({__proto__:null,snakeCase:Ea},Symbol.toStringTag,{value:"Module"})));var ba=Sa,_a=/\s/,ga=/(_|-|\.|:)/,wa=/([a-z][A-Z]|[A-Z][a-z])/;function Sa(e){return _a.test(e)?e.toLowerCase():ga.test(e)?(Ra(e)||e).toLowerCase():wa.test(e)?va(e).toLowerCase():e.toLowerCase()}var Ta=/[\W_]+(.|$)/g;function Ra(e){return e.replace(Ta,function(t,r){return r?" "+r:""})}var Aa=/(.)([A-Z]+)/g;function va(e){return e.replace(Aa,function(t,r,n){return r+" "+n.toLowerCase().split("").join(" ")})}var Ca=ba,Oa=Pa;function Pa(e){return Ca(e).replace(/[\W_]+(.|$)/g,function(t,r){return r?" "+r:""}).trim()}var Ba=Oa,xa=Na;function Na(e){return Ba(e).replace(/\s/g,"_")}const ja=sn,Da=xa;var Ua=function(e,t){return t=Object.assign({deep:!0,exclude:[]},t),ja(e,function(r,n){return[Ha(t.exclude,r)?r:Da(r),n]},t)};function Ha(e,t){return e.some(function(r){return typeof r=="string"?r===t:r.test(t)})}var _e={};Object.defineProperty(_e,"__esModule",{value:!0}),_e.BasisTheoryApiError=void 0;function La(e){function t(){var r=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}class $t extends La(Error){constructor(t,r,n){super(t),this.status=r,this.data=n,this.name="BasisTheoryApiError",Object.setPrototypeOf(this,$t.prototype)}}_e.BasisTheoryApiError=$t,Object.defineProperty(m,"__esModule",{value:!0}),m.transformTokenResponseCamelCase=m.transformTokenRequestSnakeCase=m.transformResponseCamelCase=m.transformRequestSnakeCase=m.transformReactorResponseCamelCase=m.transformReactorRequestSnakeCase=m.transformProxyResponseCamelCase=m.transformProxyRequestSnakeCase=m.proxyRaw=m.getRuntime=m.getQueryParams=m.getOSVersion=m.getBrowser=m.errorInterceptor=m.dataExtractor=m.dataAndHeadersExtractor=m.createRequestConfig=m.concatResponseTransformerWithDefault=m.concatRequestTransformerWithDefault=m.buildUserAgentString=m.buildClientUserAgentString=m.assertInit=void 0;var hn=Fe(en),K=Fe(la),pn=Fe(dn()),Ma=ya,ge=Fe(Ua),Ia=_e,te=_;function Fe(e){return e&&e.__esModule?e:{default:e}}const $a=e=>{if(e==null)throw new Error("BasisTheory has not yet been properly initialized.");return e};m.assertInit=$a;const qa=e=>{if(!(typeof e>"u"))return(0,ge.default)(e,{deep:!0})};m.transformRequestSnakeCase=qa;const Ka=e=>e;m.proxyRaw=Ka;const Fa=e=>{if(!(typeof e>"u"))return{...(0,ge.default)(e,{deep:!0}),...e.configuration!==void 0?{configuration:e.configuration}:{}}};m.transformReactorRequestSnakeCase=Fa;const za=e=>{if(!(typeof e>"u"))return{...(0,ge.default)(e,{deep:!0}),...e.configuration!==void 0?{configuration:e.configuration}:{}}};m.transformProxyRequestSnakeCase=za;const Wa=e=>{if(!(typeof e>"u"))return{...(0,ge.default)(e,{deep:!0}),...e.data!==void 0?{data:e.data}:{},...e.metadata!==void 0?{metadata:e.metadata}:{}}};m.transformTokenRequestSnakeCase=Wa;const qt=e=>e&&(e==null?void 0:e.pagination)!==void 0&&(e==null?void 0:e.data)!==void 0,ka=e=>{if(!(typeof e>"u"))return qt(e)?{data:e.data.map(n=>({...(0,K.default)(n,{deep:!0}),...n.data!==void 0?{data:n.data}:{},...n.metadata!==void 0?{metadata:n.metadata}:{}})),pagination:(0,K.default)(e.pagination,{deep:!0})}:{...(0,K.default)(e,{deep:!0}),...e.data!==void 0?{data:e.data}:{},...e.metadata!==void 0?{metadata:e.metadata}:{}}};m.transformTokenResponseCamelCase=ka;const Va=e=>{if(!(typeof e>"u"))return qt(e)?{data:e.data.map(n=>({...(0,K.default)(n,{deep:!0}),...n.configuration!==void 0?{configuration:n.configuration}:{}})),pagination:(0,K.default)(e.pagination,{deep:!0})}:{...(0,K.default)(e,{deep:!0}),...e.configuration!==void 0?{configuration:e.configuration}:{}}};m.transformReactorResponseCamelCase=Va;const Ga=e=>{if(!(typeof e>"u"))return qt(e)?{data:e.data.map(n=>({...(0,K.default)(n,{deep:!0}),...n.configuration!==void 0?{configuration:n.configuration}:{}})),pagination:(0,K.default)(e.pagination,{deep:!0})}:{...(0,K.default)(e,{deep:!0}),...e.configuration!==void 0?{configuration:e.configuration}:{}}};m.transformProxyResponseCamelCase=Ga;const Ja=e=>{if(!(typeof e>"u"))return(0,K.default)(e,{deep:!0})};m.transformResponseCamelCase=Ja;const Xa=e=>e==null?void 0:e.data;m.dataExtractor=Xa;const Ya=e=>({data:e==null?void 0:e.data,headers:e==null?void 0:e.headers});m.dataAndHeadersExtractor=Ya;const Kt=e=>[e,...hn.default.defaults.transformRequest];m.concatRequestTransformerWithDefault=Kt;const Ft=e=>[...hn.default.defaults.transformResponse,e];m.concatResponseTransformerWithDefault=Ft;const Za=(e,t)=>{if(!e)return t?{...t.transformRequest!==void 0?{transformRequest:Kt(t.transformRequest)}:{},...t.transformResponse!==void 0?{transformResponse:Ft(t.transformResponse)}:{}}:void 0;const{apiKey:r,correlationId:n,idempotencyKey:s,transactionId:i,query:a,headers:o}=e,d=r?{[te.API_KEY_HEADER]:r}:{},u=n?{[te.BT_TRACE_ID_HEADER]:n}:{},l=s?{[te.BT_IDEMPOTENCY_KEY_HEADER]:s}:{},f=i?{[te.BT_TRANSACTION_ID_HEADER]:i}:{};return{headers:{...d,...u,...l,...f,...typeof o<"u"&&{...o}},...typeof a<"u"&&{params:a},...(t==null?void 0:t.transformRequest)!==void 0?{transformRequest:Kt(t.transformRequest)}:{},...(t==null?void 0:t.transformResponse)!==void 0?{transformResponse:Ft(t.transformResponse)}:{}}};m.createRequestConfig=Za;const Qa=e=>{var t,r;const n=((t=e.response)===null||t===void 0?void 0:t.status)||-1,s=(r=e.response)===null||r===void 0?void 0:r.data;throw new Ia.BasisTheoryApiError(e.message,n,s)};m.errorInterceptor=Qa;const eo=(e={})=>{const t=Object.keys(e);if(t.length){const r=new URLSearchParams,n=(s,i,a=!1)=>{const o=typeof i,d=a?s:(0,Ma.snakeCase)(s);(i===null||["boolean","number","string"].includes(o))&&r.append(d,i)};return t.forEach(s=>{const i=e[s];Array.isArray(i)?i.forEach(a=>{n(String(s),a)}):i&&typeof i=="object"?Object.keys(i).forEach(o=>{n(`${String(s)}.${o}`,i[o],!0)}):n(String(s),i)}),`?${r.toString()}`}return""};m.getQueryParams=eo;const to=e=>`(${e.name||""}; ${e.version||""}; ${e.url||""})`,ro=e=>{let t=`${te.USER_AGENT_CLIENT}/unknown`;return e&&Object.keys(e||{}).length&&(t+=` ${to(e)}`),t};m.buildUserAgentString=ro;const mn=()=>{const{userAgent:e}=window.navigator;let t="unknown";const r=te.BROWSER_LIST.find(n=>e.includes(n.browserUA));if(r)try{t=e.split(`${r.browserUA}/`)[1]}catch{t="unknown"}return`${(r==null?void 0:r.browserName)||"unknown"}/${t}`};m.getBrowser=mn;const En=()=>typeof window=="object"&&window.navigator.product==="ReactNative",yn=()=>{if(En())return"ReactNative";if(typeof window>"u")try{return`${pn.default.type()}/${pn.default.version()}`}catch{return"unknown"}try{const t=window.navigator.appVersion.match(/\(([^)]+)\)/u);return t&&t.length>1?t[1]:"unknown"}catch{return"unknown"}};m.getOSVersion=yn;const bn=()=>En()?"ReactNative":typeof window>"u"?`NodeJS/${process.version}`:mn();m.getRuntime=bn;const no=e=>{const t={client:te.USER_AGENT_CLIENT,clientVersion:"unknown",osVersion:yn(),runtimeVersion:bn(),application:{}};return e&&(t.application=e),JSON.stringify((0,ge.default)(t))};m.buildClientUserAgentString=no;var ze={};Object.defineProperty(ze,"__esModule",{value:!0}),ze.BasisTheoryValidationError=void 0;function so(e){function t(){var r=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}class zt extends so(Error){constructor(t,r,n){super(t),this.details=r,this.validation=n,this.name="BasisTheoryValidationError",Object.setPrototypeOf(this,zt.prototype)}}ze.BasisTheoryValidationError=zt;var We={};Object.defineProperty(We,"__esModule",{value:!0}),We.HttpClientError=void 0;function io(e){function t(){var r=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}class Wt extends io(Error){constructor(t,r,n,s){super(t),this.name="HttpClientError",this.status=r,this.data=n,this.headers=s,Object.setPrototypeOf(this,Wt.prototype)}}We.HttpClientError=Wt,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t={BasisTheoryApiError:!0,BasisTheoryValidationError:!0,HttpClientError:!0};Object.defineProperty(e,"BasisTheoryApiError",{enumerable:!0,get:function(){return s.BasisTheoryApiError}}),Object.defineProperty(e,"BasisTheoryValidationError",{enumerable:!0,get:function(){return i.BasisTheoryValidationError}}),Object.defineProperty(e,"HttpClientError",{enumerable:!0,get:function(){return a.HttpClientError}});var r=_;Object.keys(r).forEach(function(o){o==="default"||o==="__esModule"||Object.prototype.hasOwnProperty.call(t,o)||o in e&&e[o]===r[o]||Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[o]}})});var n=m;Object.keys(n).forEach(function(o){o==="default"||o==="__esModule"||Object.prototype.hasOwnProperty.call(t,o)||o in e&&e[o]===n[o]||Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[o]}})});var s=_e,i=ze,a=We}(D);var H={},ao={},ke={};Object.defineProperty(ke,"__esModule",{value:!0}),ke.BasisTheoryService=void 0;var Ve=oo(en),J=D;function oo(e){return e&&e.__esModule?e:{default:e}}class co{constructor(t){const{apiKey:r,baseURL:n,transformRequest:s,transformResponse:i,appInfo:a}=t;if(typeof Ve.default=="string")throw new Error("basis-theory-js@1.77.0+ and basis-theory-react@1.12.1+ are not supported with CRA 5, go to https://github.com/Basis-Theory/basis-theory-js/issues/365#issuecomment-1662883062 for workarounds.");this.client=Ve.default.create({baseURL:n,headers:{[J.API_KEY_HEADER]:r,[J.CLIENT_USER_AGENT_HEADER]:(0,J.buildClientUserAgentString)(a),...typeof window>"u"&&{[J.USER_AGENT_HEADER]:(0,J.buildUserAgentString)(a)}},transformRequest:[].concat(s||J.transformRequestSnakeCase,Ve.default.defaults.transformRequest),transformResponse:Ve.default.defaults.transformResponse.concat(i||J.transformResponseCamelCase)}),this.client.interceptors.response.use(void 0,J.errorInterceptor)}}ke.BasisTheoryService=co,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=ao;Object.keys(t).forEach(function(n){n==="default"||n==="__esModule"||n in e&&e[n]===t[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var r=ke;Object.keys(r).forEach(function(n){n==="default"||n==="__esModule"||n in e&&e[n]===r[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r[n]}})})}(H),Object.defineProperty(Ce,"__esModule",{value:!0}),Ce.BasisTheoryTransactions=void 0;var kt=D,we=m,uo=H;class lo extends uo.BasisTheoryService{constructor(t){const r={...t};r.transformRequest=[].concat(we.transformProxyRequestSnakeCase,t.transformRequest||[]),r.transformResponse=[].concat(we.transformProxyResponseCamelCase,t.transformResponse||[]),super(r)}create(t={}){return this.client.post("/",void 0,(0,kt.createRequestConfig)(t)).then(we.dataExtractor)}commit(t,r={}){const n=`/${t}/commit`;return this.client.post(n,void 0,(0,kt.createRequestConfig)(r)).then(we.dataExtractor)}rollback(t,r={}){const n=`/${t}/rollback`;return this.client.post(n,void 0,(0,kt.createRequestConfig)(r)).then(we.dataExtractor)}}Ce.BasisTheoryTransactions=lo,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ce;Object.keys(t).forEach(function(r){r==="default"||r==="__esModule"||r in e&&e[r]===t[r]||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})}(yr);var Vt={},Ge={},F={};Object.defineProperty(F,"__esModule",{value:!0}),F.CrudBuilder=void 0;var x=D;const fo=e=>class extends e{create(r,n){return this.client.post("/",r,(0,x.createRequestConfig)(n)).then(x.dataExtractor)}},ho=e=>class extends e{retrieve(r,n){return this.client.get(r,(0,x.createRequestConfig)(n)).then(x.dataExtractor)}},po=e=>class extends e{update(r,n,s){return this.client.put(r,n,(0,x.createRequestConfig)(s)).then(x.dataExtractor)}},mo=e=>class extends e{patch(r,n,s){const i=(0,x.createRequestConfig)(s);return this.client.patch(r,n,{...i,headers:{...(i==null?void 0:i.headers)||{},[x.CONTENT_TYPE_HEADER]:x.MERGE_CONTENT_TYPE}}).then(x.dataExtractor)}},Eo=e=>class extends e{async delete(r,n){await this.client.delete(r,(0,x.createRequestConfig)(n))}},yo=e=>class extends e{list(r={},n={}){const s=`/${(0,x.getQueryParams)(r)}`;return this.client.get(s,(0,x.createRequestConfig)(n)).then(x.dataExtractor)}};class bo{constructor(t){this.BaseService=t}create(){return this.BaseService=fo(this.BaseService),this}retrieve(){return this.BaseService=ho(this.BaseService),this}update(){return this.BaseService=po(this.BaseService),this}patch(){return this.BaseService=mo(this.BaseService),this}delete(){return this.BaseService=Eo(this.BaseService),this}list(){return this.BaseService=yo(this.BaseService),this}build(){return this.BaseService}}F.CrudBuilder=bo,Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.BasisTheoryApplications=void 0;var Je=D,_o=H,go=F;const wo=new go.CrudBuilder(class extends _o.BasisTheoryService{getApplicationByKey(){return this.retrieveByKey()}retrieveByKey(t){return this.client.get("/key",(0,Je.createRequestConfig)(t)).then(Je.dataExtractor)}regenerateKey(t,r){return this.client.post(`${t}/regenerate`,void 0,(0,Je.createRequestConfig)(r)).then(Je.dataExtractor)}}).create().retrieve().update().delete().list().build();Ge.BasisTheoryApplications=wo,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryApplications",{enumerable:!0,get:function(){return t.BasisTheoryApplications}});var t=Ge}(Vt);var _n={},gn={},Xe={},wn={},Ye={};Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.BasisTheoryTokenize=void 0;var Ze=D,So=H;class To extends So.BasisTheoryService{tokenize(t,r={}){return this.client.post("/",t,(0,Ze.createRequestConfig)(r,{transformRequest:Ze.proxyRaw,transformResponse:Ze.proxyRaw})).then(Ze.dataExtractor)}}Ye.BasisTheoryTokenize=To,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryTokenize",{enumerable:!0,get:function(){return t.BasisTheoryTokenize}});var t=Ye}(wn),Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.delegateTokenize=void 0;var Ro=wn;const Ao=e=>class extends Ro.BasisTheoryTokenize{tokenize(r,n){return e!=null&&e.hasElement(r)?e.tokenize(r,n):super.tokenize(r,n)}};Xe.delegateTokenize=Ao;var Qe={},Gt={},et={};Object.defineProperty(et,"__esModule",{value:!0}),et.BasisTheoryTokens=void 0;var z=D,re=m,vo=H,Co=F;const Oo=new Co.CrudBuilder(class extends vo.BasisTheoryService{constructor(t){const r=t;r.transformRequest=[].concat(re.transformTokenRequestSnakeCase,t.transformRequest||[]),r.transformResponse=[].concat(re.transformTokenResponseCamelCase,t.transformResponse||[]),super(r)}retrieve(t,r={}){const n=`/${t}`;return this.client.get(n,(0,z.createRequestConfig)(r)).then(re.dataExtractor)}update(t,r,n={}){const s=`/${t}`,i=(0,z.createRequestConfig)(n);return this.client.patch(s,r,{...i,headers:{...(i==null?void 0:i.headers)||{},[z.CONTENT_TYPE_HEADER]:z.MERGE_CONTENT_TYPE}}).then(re.dataExtractor)}async createAssociation(t,r,n){const s=`/${t}/children/${r}`;await this.client.post(s,{},(0,z.createRequestConfig)(n))}async deleteAssociation(t,r,n){const s=`/${t}/children/${r}`;await this.client.delete(s,(0,z.createRequestConfig)(n))}createChild(t,r,n){const s=`/${t}/children`;return this.client.post(s,r,(0,z.createRequestConfig)(n)).then(re.dataExtractor)}listChildren(t,r={},n={}){const s=`/${t}/children${(0,z.getQueryParams)(r)}`;return this.client.get(s,(0,z.createRequestConfig)(n)).then(re.dataExtractor)}search(t,r){return this.client.post("/search",t,(0,z.createRequestConfig)(r)).then(re.dataExtractor)}}).create().delete().list().build();et.BasisTheoryTokens=Oo,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryTokens",{enumerable:!0,get:function(){return t.BasisTheoryTokens}});var t=et}(Gt),Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.delegateTokens=void 0;var Po=Gt;const Bo=e=>class extends Po.BasisTheoryTokens{create(r,n){return e!=null&&e.hasElement(r)?e.tokens.create(r,n):super.create(r,n)}update(r,n,s){return e!=null&&e.hasElement(n)?e.tokens.update(r,n,s):super.update(r,n,s)}retrieve(r,n){return e!==void 0?e.tokens.retrieve(r,n):super.retrieve(r,n)}};Qe.delegateTokens=Bo;var tt={},Sn={},rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.BasisTheoryProxy=void 0;var V=D,xo=H;class No extends xo.BasisTheoryService{get(t){return this.proxyRequest("get",t)}post(t){return this.proxyRequest("post",t)}put(t){return this.proxyRequest("put",t)}patch(t){return this.proxyRequest("patch",t)}delete(t){return this.proxyRequest("delete",t)}proxyRequest(t,r){var n;if(t==="post"||t==="put"||t==="patch"){var s,i;const a=r!=null&&r.includeResponseHeaders&&t==="post"?V.dataAndHeadersExtractor:V.dataExtractor;return this.client[t]((s=r==null?void 0:r.path)!==null&&s!==void 0?s:"",(i=r==null?void 0:r.body)!==null&&i!==void 0?i:void 0,(0,V.createRequestConfig)(r,{transformRequest:V.proxyRaw,transformResponse:V.proxyRaw})).then(a)}return this.client[t]((n=r==null?void 0:r.path)!==null&&n!==void 0?n:"/",(0,V.createRequestConfig)(r,{transformRequest:V.proxyRaw,transformResponse:V.proxyRaw})).then(V.dataExtractor)}}rt.BasisTheoryProxy=No,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=rt;Object.keys(t).forEach(function(r){r==="default"||r==="__esModule"||r in e&&e[r]===t[r]||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})}(Sn),Object.defineProperty(tt,"__esModule",{value:!0}),tt.delegateProxy=void 0;var jo=Sn;const Do=e=>class extends jo.BasisTheoryProxy{get(r){return e!==void 0?e.proxy.get(r):super.get(r)}post(r){return e!==void 0?e.proxy.post(r):super.post(r)}put(r){return e!==void 0?e.proxy.put(r):super.put(r)}patch(r){return e!==void 0?e.proxy.patch(r):super.patch(r)}delete(r){return e!==void 0?e.proxy.delete(r):super.delete(r)}};tt.delegateProxy=Do,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Xe;Object.keys(t).forEach(function(s){s==="default"||s==="__esModule"||s in e&&e[s]===t[s]||Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[s]}})});var r=Qe;Object.keys(r).forEach(function(s){s==="default"||s==="__esModule"||s in e&&e[s]===r[s]||Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[s]}})});var n=tt;Object.keys(n).forEach(function(s){s==="default"||s==="__esModule"||s in e&&e[s]===n[s]||Object.defineProperty(e,s,{enumerable:!0,get:function(){return n[s]}})})}(gn);var ne={};Object.defineProperty(ne,"__esModule",{value:!0}),ne.injectScript=ne.findScript=void 0;const Uo=e=>document.querySelector(`script[src^="${e}"]`);ne.findScript=Uo;const Ho=e=>{const t=document.createElement("script");t.src=e;const r=document.head||document.body;if(!r)throw new Error("No <head> or <body> elements found in document.");return r.append(t),t};ne.injectScript=Ho;var nt={},P={};Object.defineProperty(P,"__esModule",{value:!0}),P.ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE=P.ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE=P.ELEMENTS_NOM_DOM_ERROR_MESSAGE=P.ELEMENTS_INIT_ERROR_MESSAGE=P.CARD_ICON_POSITIONS=P.CARD_BRANDS=P.AUTOCOMPLETE_VALUES=void 0;const Lo="BasisTheory Elements was not properly initialized.";P.ELEMENTS_INIT_ERROR_MESSAGE=Lo;const Mo="Tried to load BasisTheoryElements in a non-DOM environment.";P.ELEMENTS_NOM_DOM_ERROR_MESSAGE=Mo;const Io="Basis Theory Elements did not load properly.";P.ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE=Io;const $o="There was an unknown error when loading Basis Theory Elements. Check the console for details.";P.ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE=$o;const qo=["visa","mastercard","american-express","discover","diners-club","jcb","unionpay","maestro","elo","hiper","hipercard","mir","unknown"];P.CARD_BRANDS=qo;const Ko=["left","right","none"];P.CARD_ICON_POSITIONS=Ko;const Fo=["off","on"];P.AUTOCOMPLETE_VALUES=Fo,Object.defineProperty(nt,"__esModule",{value:!0}),nt.loadElements=void 0;var Jt=P,Tn=ne;let Xt;const zo=e=>(Xt||(Xt=new Promise((t,r)=>{if(typeof window!="object"){r(new Error(Jt.ELEMENTS_NOM_DOM_ERROR_MESSAGE));return}if(window.BasisTheoryElements){t(window.BasisTheoryElements);return}try{let n="https://js.basistheory.com/elements";if(typeof e<"u")try{n=new URL(e).toString().replace(/\/$/u,"")}catch{throw new Error("Invalid format for the given Elements client url.")}let s=(0,Tn.findScript)(n);s||(s=(0,Tn.injectScript)(n)),s.addEventListener("load",()=>{window.BasisTheoryElements?t(window.BasisTheoryElements):r(new Error(Jt.ELEMENTS_SCRIPT_LOAD_ERROR_MESSAGE))}),s.addEventListener("error",i=>{r((i==null?void 0:i.error)||new Error(Jt.ELEMENTS_SCRIPT_UNKNOWN_ERROR_MESSAGE))})}catch(n){r(n);return}})),Xt);nt.loadElements=zo,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=gn;Object.keys(t).forEach(function(s){s==="default"||s==="__esModule"||s in e&&e[s]===t[s]||Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[s]}})});var r=ne;Object.keys(r).forEach(function(s){s==="default"||s==="__esModule"||s in e&&e[s]===r[s]||Object.defineProperty(e,s,{enumerable:!0,get:function(){return r[s]}})});var n=nt;Object.keys(n).forEach(function(s){s==="default"||s==="__esModule"||s in e&&e[s]===n[s]||Object.defineProperty(e,s,{enumerable:!0,get:function(){return n[s]}})})}(_n);var Rn={},st={};Object.defineProperty(st,"__esModule",{value:!0}),st.BasisTheoryLogs=void 0;var Wo=H,ko=F;const Vo=new ko.CrudBuilder(class extends Wo.BasisTheoryService{}).list().build();st.BasisTheoryLogs=Vo,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryLogs",{enumerable:!0,get:function(){return t.BasisTheoryLogs}});var t=st}(Rn);var An={},it={};Object.defineProperty(it,"__esModule",{value:!0}),it.BasisTheoryPermissions=void 0;var vn=D,Go=H;class Jo extends Go.BasisTheoryService{list(t){return this.client.get("/",(0,vn.createRequestConfig)(t)).then(vn.dataExtractor)}}it.BasisTheoryPermissions=Jo,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryPermissions",{enumerable:!0,get:function(){return t.BasisTheoryPermissions}});var t=it}(An);var Cn={},at={};Object.defineProperty(at,"__esModule",{value:!0}),at.BasisTheoryProxies=void 0;var On=m,Xo=H,Yo=F;const Zo=new Yo.CrudBuilder(class extends Xo.BasisTheoryService{constructor(t){const r={...t};r.transformRequest=[].concat(On.transformProxyRequestSnakeCase,t.transformRequest||[]),r.transformResponse=[].concat(On.transformProxyResponseCamelCase,t.transformResponse||[]),super(r)}}).create().retrieve().update().patch().delete().list().build();at.BasisTheoryProxies=Zo,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=at;Object.keys(t).forEach(function(r){r==="default"||r==="__esModule"||r in e&&e[r]===t[r]||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})}(Cn);var Pn={},ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.BasisTheoryReactorFormulas=void 0;var Qo=H,ec=F;const tc=new ec.CrudBuilder(class extends Qo.BasisTheoryService{}).create().retrieve().update().delete().list().build();ot.BasisTheoryReactorFormulas=tc,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryReactorFormulas",{enumerable:!0,get:function(){return t.BasisTheoryReactorFormulas}});var t=ot}(Pn);var Bn={},ct={};Object.defineProperty(ct,"__esModule",{value:!0}),ct.BasisTheoryReactors=void 0;var ut=D,xn=m,rc=H,nc=F;const sc=new nc.CrudBuilder(class extends rc.BasisTheoryService{constructor(t){const r={...t};r.transformRequest=[].concat(xn.transformReactorRequestSnakeCase,t.transformRequest||[]),r.transformResponse=[].concat(xn.transformReactorResponseCamelCase,t.transformResponse||[]),super(r)}react(t,r,n){return this.client.post(`/${t}/react`,r,(0,ut.createRequestConfig)(n,{transformRequest:ut.proxyRaw,transformResponse:ut.proxyRaw})).then(ut.dataExtractor)}}).create().retrieve().update().patch().delete().list().build();ct.BasisTheoryReactors=sc,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryReactors",{enumerable:!0,get:function(){return t.BasisTheoryReactors}});var t=ct}(Bn);var Nn={},lt={};Object.defineProperty(lt,"__esModule",{value:!0}),lt.BasisTheorySessions=void 0;var jn=D,dt=m,ic=H;class ac extends ic.BasisTheoryService{constructor(t){const r={...t};r.transformRequest=[].concat(dt.transformProxyRequestSnakeCase,t.transformRequest||[]),r.transformResponse=[].concat(dt.transformProxyResponseCamelCase,t.transformResponse||[]),super(r)}create(t={}){return this.client.post("/",void 0,(0,jn.createRequestConfig)(t)).then(dt.dataExtractor)}authorize(t,r={}){return this.client.post("/authorize",t,(0,jn.createRequestConfig)(r)).then(dt.dataExtractor)}}lt.BasisTheorySessions=ac,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheorySessions",{enumerable:!0,get:function(){return t.BasisTheorySessions}});var t=lt}(Nn);var Dn={},ft={};Object.defineProperty(ft,"__esModule",{value:!0}),ft.BasisTheoryTenants=void 0;var R=D,oc=H,cc=F;const uc=new cc.CrudBuilder(class extends oc.BasisTheoryService{retrieve(t){return this.client.get("/",(0,R.createRequestConfig)(t)).then(R.dataExtractor)}update(t,r){return this.client.put("/",t,(0,R.createRequestConfig)(r)).then(R.dataExtractor)}async delete(t){await this.client.delete("/",(0,R.createRequestConfig)(t))}retrieveUsageReport(t){return this.client.get("/reports/usage",(0,R.createRequestConfig)(t)).then(R.dataExtractor)}createInvitation(t,r){return this.client.post("/invitations",t,(0,R.createRequestConfig)(r)).then(R.dataExtractor)}resendInvitation(t,r){return this.client.post(`/invitations/${t}/resend`,{},(0,R.createRequestConfig)(r)).then(R.dataExtractor)}listInvitations(t,r){const n=`/invitations${(0,R.getQueryParams)(t)}`;return this.client.get(n,(0,R.createRequestConfig)(r)).then(R.dataExtractor)}retrieveInvitation(t,r){return this.client.get(`/invitations/${t}`,(0,R.createRequestConfig)(r)).then(R.dataExtractor)}async deleteInvitation(t,r){await this.client.delete(`/invitations/${t}`,(0,R.createRequestConfig)(r))}listMembers(t,r){const n=`/members${(0,R.getQueryParams)(t)}`;return this.client.get(n,(0,R.createRequestConfig)(r)).then(R.dataExtractor)}async deleteMember(t,r){await this.client.delete(`/members/${t}`,(0,R.createRequestConfig)(r))}}).build();ft.BasisTheoryTenants=uc,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BasisTheoryTenants",{enumerable:!0,get:function(){return t.BasisTheoryTenants}});var t=ft}(Dn),Object.defineProperty(ve,"__esModule",{value:!0}),ve.BasisTheory=void 0;var Se=ce,lc=yr,dc=Vt,g=D,ht=_n,fc=P,hc=Rn,pc=An,mc=Cn,Ec=Pn,yc=Bn,bc=Nn,_c=Dn;function gc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const wc={apiBaseUrl:g.DEFAULT_BASE_URL,elements:!1,appInfo:{}};class Sc{constructor(){gc(this,"_initStatus","not-started")}async init(t,r={}){if(this._initStatus!=="not-started"&&this._initStatus!=="error")throw new Error("This BasisTheory instance has been already initialized.");this._initStatus="in-progress";try{this._initOptions=Object.freeze({...wc,...r});let n=this._initOptions.apiBaseUrl;try{const i=new URL(this.initOptions.apiBaseUrl);i.hostname==="localhost"?i.protocol="http":i.protocol="https",n=i.toString().replace(/\/$/u,"")}catch{throw new Error("Invalid format for the given API base url.")}const s=this._initOptions.appInfo;this._initOptions.elements&&await this.loadElements(t),this._tokens=new((0,ht.delegateTokens)(this._elements))({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.tokens,n).toString(),appInfo:s}),this._tokenize=new((0,ht.delegateTokenize)(this._elements))({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.tokenize,n).toString(),appInfo:s}),this._applications=new dc.BasisTheoryApplications({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.applications,n).toString(),appInfo:s}),this._tenants=new _c.BasisTheoryTenants({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.tenants,n).toString(),appInfo:s}),this._logs=new hc.BasisTheoryLogs({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.logs,n).toString(),appInfo:s}),this._reactorFormulas=new Ec.BasisTheoryReactorFormulas({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.reactorFormulas,n).toString(),appInfo:s}),this._reactors=new yc.BasisTheoryReactors({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.reactors,n).toString(),appInfo:s}),this._permissions=new pc.BasisTheoryPermissions({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.permissions,n).toString(),appInfo:s}),this._proxies=new mc.BasisTheoryProxies({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.proxies,n).toString(),appInfo:s}),this._proxy=new((0,ht.delegateProxy)(this._elements))({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.proxy,n).toString(),appInfo:s}),this._sessions=new bc.BasisTheorySessions({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.sessions,n).toString(),appInfo:s}),this._transactions=new lc.BasisTheoryTransactions({apiKey:t,baseURL:new URL(g.CLIENT_BASE_PATHS.transactions,n).toString(),appInfo:s}),this._initStatus="done"}catch(n){throw this._initStatus="error",n}return this}createElement(t,r){if(!this._elements)throw new Error(fc.ELEMENTS_INIT_ERROR_MESSAGE);return this._elements.createElement(t,r)}tokenize(t,r){return(0,g.assertInit)(this._tokenize).tokenize(t,r)}post(t,r,n){return(0,Se.makeRequestWithElementsPayloadCheck)(this._elements,"post",t,r,n)}put(t,r,n){return(0,Se.makeRequestWithElementsPayloadCheck)(this._elements,"put",t,r,n)}patch(t,r,n){return(0,Se.makeRequestWithElementsPayloadCheck)(this._elements,"patch",t,r,n)}get(t,r){return(0,Se.makeRequestWithoutElementsPayloadCheck)(this._elements,"get",t,r)}delete(t,r){return(0,Se.makeRequestWithoutElementsPayloadCheck)(this._elements,"delete",t,r)}async loadElements(t){let r;try{r=new URL(this.initOptions.elementsBaseUrl||g.DEFAULT_ELEMENTS_BASE_URL)}catch{throw new Error("Invalid format for the given Elements base url.")}const n=await(0,ht.loadElements)(this.initOptions.elementsClientUrl);await n.init(t,r.toString().replace(/\/$/u,"")),this.elements=n}get initOptions(){return(0,g.assertInit)(this._initOptions)}get tokens(){return(0,g.assertInit)(this._tokens)}get applications(){return(0,g.assertInit)(this._applications)}get tenants(){return(0,g.assertInit)(this._tenants)}get logs(){return(0,g.assertInit)(this._logs)}get reactorFormulas(){return(0,g.assertInit)(this._reactorFormulas)}get reactors(){return(0,g.assertInit)(this._reactors)}get permissions(){return(0,g.assertInit)(this._permissions)}get proxies(){return(0,g.assertInit)(this._proxies)}get proxy(){return(0,g.assertInit)(this._proxy)}get sessions(){return(0,g.assertInit)(this._sessions)}get transactions(){return(0,g.assertInit)(this._transactions)}get elements(){return(0,g.assertInit)(this._elements)}set elements(t){this._elements=t}}ve.BasisTheory=Sc,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t={_instance:!0};e._instance=void 0;var r=ve;Object.keys(r).forEach(function(a){a==="default"||a==="__esModule"||Object.prototype.hasOwnProperty.call(t,a)||a in e&&e[a]===r[a]||Object.defineProperty(e,a,{enumerable:!0,get:function(){return r[a]}})});var n=Vt;Object.keys(n).forEach(function(a){a==="default"||a==="__esModule"||Object.prototype.hasOwnProperty.call(t,a)||a in e&&e[a]===n[a]||Object.defineProperty(e,a,{enumerable:!0,get:function(){return n[a]}})});var s=Gt;Object.keys(s).forEach(function(a){a==="default"||a==="__esModule"||Object.prototype.hasOwnProperty.call(t,a)||a in e&&e[a]===s[a]||Object.defineProperty(e,a,{enumerable:!0,get:function(){return s[a]}})});const i=new r.BasisTheory;e._instance=i}(mr);const T=crypto,W=e=>e instanceof CryptoKey,Tc=async(e,t)=>{const r=`SHA-${e.slice(-3)}`;return new Uint8Array(await T.subtle.digest(r,t))},se=new TextEncoder,Un=new TextDecoder,pt=2**32;function Te(...e){const t=e.reduce((s,{length:i})=>s+i,0),r=new Uint8Array(t);let n=0;for(const s of e)r.set(s,n),n+=s.length;return r}function Rc(e,t){return Te(se.encode(e),new Uint8Array([0]),t)}function Yt(e,t,r){if(t<0||t>=pt)throw new RangeError(`value must be >= 0 and <= ${pt-1}. Received ${t}`);e.set([t>>>24,t>>>16,t>>>8,t&255],r)}function Ac(e){const t=Math.floor(e/pt),r=e%pt,n=new Uint8Array(8);return Yt(n,t,0),Yt(n,r,4),n}function Zt(e){const t=new Uint8Array(4);return Yt(t,e),t}function Qt(e){return Te(Zt(e.length),e)}async function vc(e,t,r){const n=Math.ceil((t>>3)/32),s=new Uint8Array(n*32);for(let i=0;i<n;i++){const a=new Uint8Array(4+e.length+r.length);a.set(Zt(i+1)),a.set(e,4),a.set(r,4+e.length),s.set(await Tc("sha256",a),i*32)}return s.slice(0,t>>3)}const Cc=e=>{let t=e;typeof t=="string"&&(t=se.encode(t));const r=32768,n=[];for(let s=0;s<t.length;s+=r)n.push(String.fromCharCode.apply(null,t.subarray(s,s+r)));return btoa(n.join(""))},L=e=>Cc(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),Oc=e=>{const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r},Hn=e=>{let t=e;t instanceof Uint8Array&&(t=Un.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return Oc(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}};class Ln extends Error{static get code(){return"ERR_JOSE_GENERIC"}constructor(t){var r;super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,(r=Error.captureStackTrace)==null||r.call(Error,this,this.constructor)}}class N extends Ln{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}}class X extends Ln{constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}static get code(){return"ERR_JWE_INVALID"}}const er=T.getRandomValues.bind(T);function Mn(e){switch(e){case"A128GCM":case"A128GCMKW":case"A192GCM":case"A192GCMKW":case"A256GCM":case"A256GCMKW":return 96;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return 128;default:throw new N(`Unsupported JWE Algorithm: ${e}`)}}const Pc=e=>er(new Uint8Array(Mn(e)>>3)),Bc=(e,t)=>{if(t.length<<3!==Mn(e))throw new X("Invalid Initialization Vector length")},In=(e,t)=>{const r=e.byteLength<<3;if(r!==t)throw new X(`Invalid Content Encryption Key length. Expected ${t} bits, got ${r} bits`)};function Y(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function mt(e,t){return e.name===t}function xc(e){return parseInt(e.name.slice(4),10)}function Nc(e,t){if(t.length&&!t.some(r=>e.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(t.length>2){const n=t.pop();r+=`one of ${t.join(", ")}, or ${n}.`}else t.length===2?r+=`one of ${t[0]} or ${t[1]}.`:r+=`${t[0]}.`;throw new TypeError(r)}}function de(e,t,...r){switch(t){case"A128GCM":case"A192GCM":case"A256GCM":{if(!mt(e.algorithm,"AES-GCM"))throw Y("AES-GCM");const n=parseInt(t.slice(1,4),10);if(e.algorithm.length!==n)throw Y(n,"algorithm.length");break}case"A128KW":case"A192KW":case"A256KW":{if(!mt(e.algorithm,"AES-KW"))throw Y("AES-KW");const n=parseInt(t.slice(1,4),10);if(e.algorithm.length!==n)throw Y(n,"algorithm.length");break}case"ECDH":{switch(e.algorithm.name){case"ECDH":case"X25519":case"X448":break;default:throw Y("ECDH, X25519, or X448")}break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":if(!mt(e.algorithm,"PBKDF2"))throw Y("PBKDF2");break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{if(!mt(e.algorithm,"RSA-OAEP"))throw Y("RSA-OAEP");const n=parseInt(t.slice(9),10)||1;if(xc(e.algorithm.hash)!==n)throw Y(`SHA-${n}`,"algorithm.hash");break}default:throw new TypeError("CryptoKey does not support this operation")}Nc(e,r)}function $n(e,t,...r){var n;if(r.length>2){const s=r.pop();e+=`one of type ${r.join(", ")}, or ${s}.`}else r.length===2?e+=`one of type ${r[0]} or ${r[1]}.`:e+=`of type ${r[0]}.`;return t==null?e+=` Received ${t}`:typeof t=="function"&&t.name?e+=` Received function ${t.name}`:typeof t=="object"&&t!=null&&(n=t.constructor)!=null&&n.name&&(e+=` Received an instance of ${t.constructor.name}`),e}const k=(e,...t)=>$n("Key must be ",e,...t);function qn(e,t,...r){return $n(`Key for the ${e} algorithm must be `,t,...r)}const Kn=e=>W(e)?!0:(e==null?void 0:e[Symbol.toStringTag])==="KeyObject",$=["CryptoKey"],jc=(...e)=>{const t=e.filter(Boolean);if(t.length===0||t.length===1)return!0;let r;for(const n of t){const s=Object.keys(n);if(!r||r.size===0){r=new Set(s);continue}for(const i of s){if(r.has(i))return!1;r.add(i)}}return!0};function Dc(e){return typeof e=="object"&&e!==null}function Uc(e){if(!Dc(e)||Object.prototype.toString.call(e)!=="[object Object]")return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}const Fn=[{hash:"SHA-256",name:"HMAC"},!0,["sign"]];function Hc(e,t){if(e.algorithm.length!==parseInt(t.slice(1,4),10))throw new TypeError(`Invalid key size for alg: ${t}`)}function Lc(e,t,r){if(W(e))return de(e,t,r),e;if(e instanceof Uint8Array)return T.subtle.importKey("raw",e,"AES-KW",!0,[r]);throw new TypeError(k(e,...$,"Uint8Array"))}const tr=async(e,t,r)=>{const n=await Lc(t,e,"wrapKey");Hc(n,e);const s=await T.subtle.importKey("raw",r,...Fn);return new Uint8Array(await T.subtle.wrapKey("raw",s,n,"AES-KW"))};async function Mc(e,t,r,n,s=new Uint8Array(0),i=new Uint8Array(0)){if(!W(e))throw new TypeError(k(e,...$));if(de(e,"ECDH"),!W(t))throw new TypeError(k(t,...$));de(t,"ECDH","deriveBits");const a=Te(Qt(se.encode(r)),Qt(s),Qt(i),Zt(n));let o;e.algorithm.name==="X25519"?o=256:e.algorithm.name==="X448"?o=448:o=Math.ceil(parseInt(e.algorithm.namedCurve.substr(-3),10)/8)<<3;const d=new Uint8Array(await T.subtle.deriveBits({name:e.algorithm.name,public:e},t,o));return vc(d,n,a)}async function Ic(e){if(!W(e))throw new TypeError(k(e,...$));return T.subtle.generateKey(e.algorithm,!0,["deriveBits"])}function $c(e){if(!W(e))throw new TypeError(k(e,...$));return["P-256","P-384","P-521"].includes(e.algorithm.namedCurve)||e.algorithm.name==="X25519"||e.algorithm.name==="X448"}function qc(e){if(!(e instanceof Uint8Array)||e.length<8)throw new X("PBES2 Salt Input must be 8 or more octets")}function Kc(e,t){if(e instanceof Uint8Array)return T.subtle.importKey("raw",e,"PBKDF2",!1,["deriveBits"]);if(W(e))return de(e,t,"deriveBits","deriveKey"),e;throw new TypeError(k(e,...$,"Uint8Array"))}async function Fc(e,t,r,n){qc(e);const s=Rc(t,e),i=parseInt(t.slice(13,16),10),a={hash:`SHA-${t.slice(8,11)}`,iterations:r,name:"PBKDF2",salt:s},o={length:i,name:"AES-KW"},d=await Kc(n,t);if(d.usages.includes("deriveBits"))return new Uint8Array(await T.subtle.deriveBits(a,d,i));if(d.usages.includes("deriveKey"))return T.subtle.deriveKey(a,d,o,!1,["wrapKey","unwrapKey"]);throw new TypeError('PBKDF2 key "usages" must include "deriveBits" or "deriveKey"')}const zc=async(e,t,r,n=2048,s=er(new Uint8Array(16)))=>{const i=await Fc(s,e,n,t);return{encryptedKey:await tr(e.slice(-6),i,r),p2c:n,p2s:L(s)}};function zn(e){switch(e){case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":return"RSA-OAEP";default:throw new N(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}const Wc=(e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:r}=t.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}},kc=async(e,t,r)=>{if(!W(t))throw new TypeError(k(t,...$));if(de(t,e,"encrypt","wrapKey"),Wc(e,t),t.usages.includes("encrypt"))return new Uint8Array(await T.subtle.encrypt(zn(e),t,r));if(t.usages.includes("wrapKey")){const n=await T.subtle.importKey("raw",r,...Fn);return new Uint8Array(await T.subtle.wrapKey("raw",n,t,zn(e)))}throw new TypeError('RSA-OAEP key "usages" must include "encrypt" or "wrapKey" for this operation')};function Vc(e){let t,r;switch(e.kty){case"RSA":{switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},r=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new N('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"EC":{switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},r=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},r=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new N('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"OKP":{switch(e.alg){case"EdDSA":t={name:e.crv},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new N('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new N('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:r}}const Wn=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:r}=Vc(e),n=[t,e.ext??!1,e.key_ops??r],s={...e};return delete s.alg,delete s.use,T.subtle.importKey("jwk",s,...n)},kn=e=>Hn(e);let rr,nr;const Vn=e=>(e==null?void 0:e[Symbol.toStringTag])==="KeyObject",Gn=async(e,t,r,n)=>{let s=e.get(t);if(s!=null&&s[n])return s[n];const i=await Wn({...r,alg:n});return s?s[n]=i:e.set(t,{[n]:i}),i},sr={normalizePublicKey:(e,t)=>{if(Vn(e)){let r=e.export({format:"jwk"});return delete r.d,delete r.dp,delete r.dq,delete r.p,delete r.q,delete r.qi,r.k?kn(r.k):(nr||(nr=new WeakMap),Gn(nr,e,r,t))}return e},normalizePrivateKey:(e,t)=>{if(Vn(e)){let r=e.export({format:"jwk"});return r.k?kn(r.k):(rr||(rr=new WeakMap),Gn(rr,e,r,t))}return e}};function Jn(e){switch(e){case"A128GCM":return 128;case"A192GCM":return 192;case"A256GCM":case"A128CBC-HS256":return 256;case"A192CBC-HS384":return 384;case"A256CBC-HS512":return 512;default:throw new N(`Unsupported JWE Algorithm: ${e}`)}}const Re=e=>er(new Uint8Array(Jn(e)>>3));async function Gc(e,t){if(!Uc(e))throw new TypeError("JWK must be an object");switch(e.kty){case"oct":if(typeof e.k!="string"||!e.k)throw new TypeError('missing "k" (Key Value) Parameter value');return Hn(e.k);case"RSA":if(e.oth!==void 0)throw new N('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return Wn({...e,alg:t});default:throw new N('Unsupported "kty" (Key Type) Parameter value')}}const ir=e=>e==null?void 0:e[Symbol.toStringTag],Jc=(e,t)=>{if(!(t instanceof Uint8Array)){if(!Kn(t))throw new TypeError(qn(e,t,...$,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${ir(t)} instances for symmetric algorithms must be of type "secret"`)}},Xc=(e,t,r)=>{if(!Kn(t))throw new TypeError(qn(e,t,...$));if(t.type==="secret")throw new TypeError(`${ir(t)} instances for asymmetric algorithms must not be of type "secret"`);if(t.algorithm,t.algorithm&&r==="encrypt"&&t.type==="private")throw new TypeError(`${ir(t)} instances for asymmetric algorithm encryption must be of type "public"`)},Yc=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?Jc(e,t):Xc(e,t,r)};async function Zc(e,t,r,n,s){if(!(r instanceof Uint8Array))throw new TypeError(k(r,"Uint8Array"));const i=parseInt(e.slice(1,4),10),a=await T.subtle.importKey("raw",r.subarray(i>>3),"AES-CBC",!1,["encrypt"]),o=await T.subtle.importKey("raw",r.subarray(0,i>>3),{hash:`SHA-${i<<1}`,name:"HMAC"},!1,["sign"]),d=new Uint8Array(await T.subtle.encrypt({iv:n,name:"AES-CBC"},a,t)),u=Te(s,n,d,Ac(s.length<<3)),l=new Uint8Array((await T.subtle.sign("HMAC",o,u)).slice(0,i>>3));return{ciphertext:d,tag:l,iv:n}}async function Qc(e,t,r,n,s){let i;r instanceof Uint8Array?i=await T.subtle.importKey("raw",r,"AES-GCM",!1,["encrypt"]):(de(r,e,"encrypt"),i=r);const a=new Uint8Array(await T.subtle.encrypt({additionalData:s,iv:n,name:"AES-GCM",tagLength:128},i,t)),o=a.slice(-16);return{ciphertext:a.slice(0,-16),tag:o,iv:n}}const Xn=async(e,t,r,n,s)=>{if(!W(r)&&!(r instanceof Uint8Array))throw new TypeError(k(r,...$,"Uint8Array"));switch(n?Bc(e,n):n=Pc(e),e){case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return r instanceof Uint8Array&&In(r,parseInt(e.slice(-3),10)),Zc(e,t,r,n,s);case"A128GCM":case"A192GCM":case"A256GCM":return r instanceof Uint8Array&&In(r,parseInt(e.slice(1,4),10)),Qc(e,t,r,n,s);default:throw new N("Unsupported JWE Content Encryption Algorithm")}};async function eu(e,t,r,n){const s=e.slice(0,7),i=await Xn(s,r,t,n,new Uint8Array(0));return{encryptedKey:i.ciphertext,iv:L(i.iv),tag:L(i.tag)}}function tu(e,t,r,n,s){if(s.crit!==void 0&&(n==null?void 0:n.crit)===void 0)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!n||n.crit===void 0)return new Set;if(!Array.isArray(n.crit)||n.crit.length===0||n.crit.some(a=>typeof a!="string"||a.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let i;r!==void 0?i=new Map([...Object.entries(r),...t.entries()]):i=t;for(const a of n.crit){if(!i.has(a))throw new N(`Extension Header Parameter "${a}" is not recognized`);if(s[a]===void 0)throw new e(`Extension Header Parameter "${a}" is missing`);if(i.get(a)&&n[a]===void 0)throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`)}return new Set(n.crit)}const ru=async e=>{if(e instanceof Uint8Array)return{kty:"oct",k:L(e)};if(!W(e))throw new TypeError(k(e,...$,"Uint8Array"));if(!e.extractable)throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");const{ext:t,key_ops:r,alg:n,use:s,...i}=await T.subtle.exportKey("jwk",e);return i};async function nu(e){return ru(e)}async function su(e,t,r,n,s={}){var d;let i,a,o;switch(Yc(e,r,"encrypt"),r=await((d=sr.normalizePublicKey)==null?void 0:d.call(sr,r,e))||r,e){case"dir":{o=r;break}case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{if(!$c(r))throw new N("ECDH with the provided key is not allowed or not supported by your javascript runtime");const{apu:u,apv:l}=s;let{epk:f}=s;f||(f=(await Ic(r)).privateKey);const{x:b,y:w,crv:h,kty:E}=await nu(f),p=await Mc(r,f,e==="ECDH-ES"?t:e,e==="ECDH-ES"?Jn(t):parseInt(e.slice(-5,-2),10),u,l);if(a={epk:{x:b,crv:h,kty:E}},E==="EC"&&(a.epk.y=w),u&&(a.apu=L(u)),l&&(a.apv=L(l)),e==="ECDH-ES"){o=p;break}o=n||Re(t);const S=e.slice(-6);i=await tr(S,p,o);break}case"RSA1_5":case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{o=n||Re(t),i=await kc(e,r,o);break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":{o=n||Re(t);const{p2c:u,p2s:l}=s;({encryptedKey:i,...a}=await zc(e,r,o,u,l));break}case"A128KW":case"A192KW":case"A256KW":{o=n||Re(t),i=await tr(e,r,o);break}case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":{o=n||Re(t);const{iv:u}=s;({encryptedKey:i,...a}=await eu(e,r,o,u));break}default:throw new N('Invalid or unsupported "alg" (JWE Algorithm) header value')}return{cek:o,encryptedKey:i,parameters:a}}const iu=Symbol();class au{constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("plaintext must be an instance of Uint8Array");this._plaintext=t}setKeyManagementParameters(t){if(this._keyManagementParameters)throw new TypeError("setKeyManagementParameters can only be called once");return this._keyManagementParameters=t,this}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setSharedUnprotectedHeader(t){if(this._sharedUnprotectedHeader)throw new TypeError("setSharedUnprotectedHeader can only be called once");return this._sharedUnprotectedHeader=t,this}setUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}setAdditionalAuthenticatedData(t){return this._aad=t,this}setContentEncryptionKey(t){if(this._cek)throw new TypeError("setContentEncryptionKey can only be called once");return this._cek=t,this}setInitializationVector(t){if(this._iv)throw new TypeError("setInitializationVector can only be called once");return this._iv=t,this}async encrypt(t,r){if(!this._protectedHeader&&!this._unprotectedHeader&&!this._sharedUnprotectedHeader)throw new X("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");if(!jc(this._protectedHeader,this._unprotectedHeader,this._sharedUnprotectedHeader))throw new X("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");const n={...this._protectedHeader,...this._unprotectedHeader,...this._sharedUnprotectedHeader};if(tu(X,new Map,r==null?void 0:r.crit,this._protectedHeader,n),n.zip!==void 0)throw new N('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');const{alg:s,enc:i}=n;if(typeof s!="string"||!s)throw new X('JWE "alg" (Algorithm) Header Parameter missing or invalid');if(typeof i!="string"||!i)throw new X('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');let a;if(this._cek&&(s==="dir"||s==="ECDH-ES"))throw new TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${s}`);let o;{let E;({cek:o,encryptedKey:a,parameters:E}=await su(s,i,t,this._cek,this._keyManagementParameters)),E&&(r&&iu in r?this._unprotectedHeader?this._unprotectedHeader={...this._unprotectedHeader,...E}:this.setUnprotectedHeader(E):this._protectedHeader?this._protectedHeader={...this._protectedHeader,...E}:this.setProtectedHeader(E))}let d,u,l;this._protectedHeader?u=se.encode(L(JSON.stringify(this._protectedHeader))):u=se.encode(""),this._aad?(l=L(this._aad),d=Te(u,se.encode("."),se.encode(l))):d=u;const{ciphertext:f,tag:b,iv:w}=await Xn(i,this._plaintext,o,this._iv,d),h={ciphertext:L(f)};return w&&(h.iv=L(w)),b&&(h.tag=L(b)),a&&(h.encrypted_key=L(a)),l&&(h.aad=l),this._protectedHeader&&(h.protected=Un.decode(u)),this._sharedUnprotectedHeader&&(h.unprotected=this._sharedUnprotectedHeader),this._unprotectedHeader&&(h.header=this._unprotectedHeader),h}}class ou{constructor(t){this._flattened=new au(t)}setContentEncryptionKey(t){return this._flattened.setContentEncryptionKey(t),this}setInitializationVector(t){return this._flattened.setInitializationVector(t),this}setProtectedHeader(t){return this._flattened.setProtectedHeader(t),this}setKeyManagementParameters(t){return this._flattened.setKeyManagementParameters(t),this}async encrypt(t,r){const n=await this._flattened.encrypt(t,r);return[n.protected,n.encrypted_key,n.iv,n.ciphertext,n.tag].join(".")}}const ar={base:{":disabled":{backgroundColor:"transparent"}}},cu={mask:{number:"{{ data.number | card_mask: 'true', 'true' }}",expiration_month:"{{ data.expiration_month }}",expiration_year:"{{ data.expiration_year }}"}},uu="DOM Element was not found";var Yn;(function(e){e.NOT_COMPLETE="NOT_COMPLETE",e.SCHEME_NOT_SUPPORTED="SCHEME_NOT_SUPPORTED",e.LUHN_CHECK_FAILED="LUHN_CHECK_FAILED",e.INVALID_EXPIRY_DATE="INVALID_EXPIRY_DATE"})(Yn||(Yn={}));const Zn=e=>e!=null,lu="v3.7.0";class Ae{constructor(t,r){if(Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"IFRAME_BASE_URL",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"iframe",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"subscriptions",{enumerable:!0,configurable:!0,writable:!0,value:{ready:[],blur:[],focus:[],keydown:[],change:[]}}),Object.defineProperty(this,"update",{enumerable:!0,configurable:!0,writable:!0,value:async({...n})=>{this.iframe&&Zn(n.height)&&(this.iframe.height=n.height),this.iframePostMessage({type:"update",data:{...n,value:n.value?this.putValue(n.value)??void 0:void 0}})}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.iframePostMessage({type:"clear"})}}),Object.defineProperty(this,"focus",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.iframePostMessage({type:"focus"})}}),Object.defineProperty(this,"blur",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.iframePostMessage({type:"blur"})}}),Object.defineProperty(this,"unmount",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var n;(n=this.iframe)==null||n.remove(),this.iframe=null}}),this.IFRAME_BASE_URL=du(lu),!this.IFRAME_BASE_URL)throw new Error("IFRAME_BASE_URL not found");r&&or.set(this,{key:r})}mount(t){const r=typeof t=="string"?document.querySelector(t):t;if(!r)throw new Error(uu);r.innerHTML=`<iframe width="100%" height="29" src="${this.IFRAME_BASE_URL}?field=${this.type}&origin=${location.origin}"></iframe>`,this.iframe=r.querySelector("iframe");const n=s=>{var i;if(!(s.source!==((i=this.iframe)==null?void 0:i.contentWindow)||s.data.element!==this.type))if(s.data.type==="change"){const a=this.extractValue(s.data.data.value),o={...s.data.data};delete o.value;const d=or.get(this);d&&(d.value=a),this.emitEvent({...s.data,data:o})}else this.emitEvent(s.data)};return window.addEventListener("message",n),new Promise(s=>{this.on("ready",()=>{this.update(this.options),s()})})}on(t,r){return this.subscriptions[t].push(r),{unsubscribe:()=>this.subscriptions[t].splice(this.subscriptions[t].indexOf(r),1)}}secureValue(t){const r=or.get(this);return(r==null?void 0:r.key)!==t?null:(r==null?void 0:r.value)??null}emitEvent(t){var r;(r=this.subscriptions[t.type])==null||r.forEach(n=>n(t.data))}iframePostMessage(t){var r,n;(n=(r=this.iframe)==null?void 0:r.contentWindow)==null||n.postMessage(t,this.IFRAME_BASE_URL)}}function du(e){return`https://${window.HG_IFRAME_HOST??"sdk.hellgate.io"}/web/${e}/iframe/`}const or=new Map;function cr(e){const[t=null,r=null]=(e??"").split("/").map(n=>Number(n.trim()));return{month:t,year:r&&r>10?+`20${r}`:null}}function ur(e){if(!e)return null;const{month:t,year:r}=e;return[t&&t<10?`0${t}`:t,r&&r>=100?String(r).slice(-2):r].filter(Zn).join(" / ")}class Qn extends Ae{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"cardExpirationDate"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:cr}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:ur})}}function lr(e){return(e==null?void 0:e.replaceAll(" ",""))??null}function es(e){return e}class ts extends Ae{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"cardNumber"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:lr}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:es})}}class rs extends Ae{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"card"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:t=>t?{number:t.cardNumber?lr(t.cardNumber):null,expiry_date:t.cardExpirationDate?cr(t.cardExpirationDate):null,cvc:t.cardVerificationCode??null}:null}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:t=>t?{cardNumber:t.number?t.number:null,cardExpirationDate:t.expiry_date?ur(t.expiry_date):null,cardVerificationCode:t.cvc??null}:null})}}class ns extends Ae{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"cardVerificationCode"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:t=>t}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:t=>t})}}class dr extends Ae{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"text"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:t=>t}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:t=>t})}}function fe(e,t,r){switch(e){case"card":return new rs(t,r);case"cardNumber":return new ts(t,r);case"cardExpirationDate":return new Qn(t,r);case"cardVerificationCode":return new ns(t,r);case"text":return new dr(t,r);default:ASSERT_EXHAUSTIVE(e)}}function ss(){return Date.now().toString(36)+Math.random().toString(36).slice(2)}function is(e){return[e.issuer_identification_number,"".padEnd(e.account_number_length-e.issuer_identification_number.length-e.account_number_last_four.length,"*"),e.account_number_last_four].join(" ")}class Et{static async init(t){var n;const r=t.isNextAction("tokenize_card")&&((n=t.state)==null?void 0:n.data.provider)==="basis_theory"?await new mr.BasisTheory().init(t.state.data.api_key,{elements:!1}):void 0;return new Et(t,r)}constructor(t,r){Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"bt",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:this.createFieldDefaultState()}),Object.defineProperty(this,"cardElements",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"textElements",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"stateChangeHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"cvcOnlyEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"createForm",{enumerable:!0,configurable:!0,writable:!0,value:(n={})=>{var o;if(this.hasFormElements())throw new Error("Form elements can't be initialized twice. You can call `reset()` method or create new Hellgate client.");const s=he.get(this);if(!s)throw new Error("Secure key not found");const i=oe({disabled:!1,autocomplete:"on",style:{...ar}},n);if(this.session.isNextAction("refresh_security_code")&&((o=this.session.state)!=null&&o.data)){const d=this.session.state.data;i.cvcOnly=!0,i.value={number:is(d),expiry_date:{month:(d==null?void 0:d.expiry_month)??null,year:(d==null?void 0:d.expiry_year)??null},cvc:null}}const a=fe("card",i,s);return this.cardElements.card={element:a,state:this.createFieldDefaultState()},this.addElementStateListener("card"),a}}),Object.defineProperty(this,"createFormFields",{enumerable:!0,configurable:!0,writable:!0,value:(n={})=>{var w,h;if(this.hasFormElements())throw new Error("Form elements can't be initialized twice. You can call `reset()` method or create new Hellgate client.");const s=he.get(this);if(!s)throw new Error("Secure key not found");const i={disabled:this.cvcOnlyEnabled,autocomplete:"on",style:{...ar}},{cardNumber:a={},expiryDate:o={},securityCode:d={},...u}=n,l=fe("cardNumber",{...oe(i,{...u,...a,cvcOnly:this.cvcOnlyEnabled,value:this.session.isNextAction("refresh_security_code")&&((w=this.session.state)!=null&&w.data)?is(this.session.state.data):null})},s),f=fe("cardExpirationDate",{...oe(i,{...u,...o,value:this.session.isNextAction("refresh_security_code")&&((h=this.session.state)!=null&&h.data)?{month:this.session.state.data.expiry_month,year:this.session.state.data.expiry_year}:null})},s),b=fe("cardVerificationCode",{...oe({...i,disabled:!1,autofocus:this.cvcOnlyEnabled},{...u,...d})},s);return this.cardElements={cardNumber:{element:l,state:this.createFieldDefaultState()},cardExpirationDate:{element:f,state:this.createFieldDefaultState()},cardVerificationCode:{element:b,state:this.createFieldDefaultState()}},this.addElementStateListener("cardNumber"),this.addElementStateListener("cardExpirationDate"),this.addElementStateListener("cardVerificationCode"),{cardNumber:l,expiryDate:f,securityCode:b}}}),Object.defineProperty(this,"createTextField",{enumerable:!0,configurable:!0,writable:!0,value:(n={})=>{const s=he.get(this);if(!s)throw new Error("Secure key not found");const i={disabled:!1,autocomplete:"on",style:{...ar}},a=fe("text",{...oe(i,{...n})},s);return this.textElements.push(a),a}}),Object.defineProperty(this,"tokenize",{enumerable:!0,configurable:!0,writable:!0,value:async n=>{var d,u;if(((d=this.session.state)==null?void 0:d.next_action)!=="tokenize_card")throw new Error(`The session's next_action='${(u=this.session.state)==null?void 0:u.next_action}'. tokenize() is available only if next_action='tokenize_card'`);const s=this.getFormValue(),i=this.extractAdditionalData(n);if(!s)throw new Error("Form elements must be initialized before tokenization");const a=this.getCardDataValidationError();if(a)throw a;if(!s.number||!s.expiration_month||!s.expiration_year||!s.cvc)throw new Error("Card data is not complete");const o=this.session.state.data;switch(o.provider){case"basis_theory":{if(!this.bt)throw new Error("basis_theory SDK not found");return this.bt.tokenize({type:"card",data:s,...cu}).then(l=>Array.isArray(l)?null:{token_id:l.id,additional_data:i})}case"guardian":return this.encryptCardData({account_number:s.number,expiry_month:s.expiration_month,expiry_year:s.expiration_year,security_code:s.cvc,additional_data:i},o.jwk);default:ASSERT_EXHAUSTIVE(o)}}}),Object.defineProperty(this,"onStateChange",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.stateChangeHandlers.push(n),n(this.state)}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:()=>{Object.values(this.cardElements).forEach(n=>n==null?void 0:n.element.clear()),this.textElements.forEach(n=>n==null?void 0:n.clear())}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:()=>{Object.values(this.cardElements).forEach(n=>n==null?void 0:n.element.unmount()),this.textElements.forEach(n=>n==null?void 0:n.unmount()),this.cardElements={},this.textElements=[]}}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.reset()}}),Object.defineProperty(this,"process",{enumerable:!0,configurable:!0,writable:!0,value:async(n={})=>{if(!this.hasFormElements())throw new Error("Card form must be initialized and completed before processing");if(this.session.isNextAction("refresh_security_code"))return this.refreshSecurityCode();this.disableFormElements(!0);try{const s=await this.tokenize(n);if(!s)throw new Error("Tokenization failed");return await this.session.completeAction({action:"tokenize_card",result:s})}catch(s){throw this.disableFormElements(!1),s}}}),he.set(this,ss()),this.cvcOnlyEnabled=this.session.isNextAction("refresh_security_code")}async refreshSecurityCode(){const t=this.getFormValue();if(!(t!=null&&t.cvc))throw new Error("cvc field was not filled");if(!this.session.isNextAction("refresh_security_code")||!this.session.state)throw new Error("refreshSecurityCode() is available only if next_action=refresh_security_code");this.disableFormElements(!0);const r=await this.encryptCardData({security_code:t.cvc},this.session.state.data.jwk);return this.session.completeAction({action:"refresh_security_code",result:{...r}}).catch(n=>{if(this.disableFormElements(!1),n instanceof Error)throw n;return{status:"failure",data:n}})}getFormValue(){var a,o,d,u,l;const{card:t,cardNumber:r,cardExpirationDate:n,cardVerificationCode:s}=this.cardElements;let i;if(t){const f=pe(this,t.element);i={number:(f==null?void 0:f.number)??null,expiration_month:((a=f==null?void 0:f.expiry_date)==null?void 0:a.month)??null,expiration_year:((o=f==null?void 0:f.expiry_date)==null?void 0:o.year)??null,cvc:(f==null?void 0:f.cvc)??null}}return r&&n&&s&&(i={number:((d=pe(this,r.element))==null?void 0:d.replaceAll(" ",""))??null,expiration_month:((u=pe(this,n.element))==null?void 0:u.month)??null,expiration_year:((l=pe(this,n.element))==null?void 0:l.year)??null,cvc:pe(this,s.element)}),i}hasFormElements(){return!!Object.keys(this.cardElements).length}disableFormElements(t){Object.values(this.cardElements).forEach(({element:r})=>{r.update({disabled:t})})}extractAdditionalData({cardholder_name:t,billing_address:r={}}){return ae({cardholder_name:me(this,t),billing_address:{line1:me(this,r.line1),line2:me(this,r.line2),line3:me(this,r.line3),city:me(this,r.city),postal_code:me(this,r.postal_code)}})}async encryptCardData(t,r){const n=await Gc(r,"RSA-OAEP"),s=JSON.stringify(t),i=new TextEncoder().encode(s);return{enc_payload:await new ou(i).setProtectedHeader({alg:"RSA-OAEP",enc:"A256GCM"}).encrypt(n)}}addElementStateListener(t){const r=this.cardElements[t];r&&r.element.on("change",n=>{r.state=n,this.updateFormState()})}updateFormState(){const t=this.cvcOnlyEnabled&&this.cardElements.cardVerificationCode?[this.cardElements.cardVerificationCode]:Object.values(this.cardElements);t.length?this.state=t.reduce((r,{state:n})=>(r.valid=!!r.valid&&!!n.valid,r.complete=!!r.complete&&!!n.complete,r.empty=!!r.empty&&!!n.empty,r.error=r.error||n.error,r.errorCode=r.errorCode||n.errorCode,r),{valid:!0,complete:!0,empty:!0}):this.state=this.createFieldDefaultState(),this.stateChangeHandlers.forEach(r=>r(this.state))}createFieldDefaultState(){return{empty:!0,complete:!1,valid:!1}}getCardDataValidationError(){if(!this.state.complete)return new Error(this.state.error??"Card data is not complete");if(!this.state.valid)return new Error(`Card data is not valid. ${this.state.error}`)}}const he=new Map;function pe(e,t){const r=he.get(e);return r?t.secureValue(r):null}function me(e,t){const r=he.get(e);return t instanceof dr&&r?pe(e,t)??void 0:t}class fu{constructor(t="https://api.hellgate.io",r=new AbortController){Object.defineProperty(this,"abortCtrl",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.baseUrl=t.endsWith("/")?t.substring(0,t.length-1):t}getSession(t){return fetch(`${this.baseUrl}/sessions/${t}`,{signal:this.abortCtrl.signal}).then(r=>bt(r))}completeAction(t,r){return fetch(`${this.baseUrl}/sessions/${t}/complete-action`,{method:"POST",headers:{"Content-Type":"application/json"},mode:"cors",body:JSON.stringify(r),signal:this.abortCtrl.signal}).then(n=>bt(n))}cancelAll(){this.abortCtrl.abort()}}const hu=2e3;class pu{constructor(t,r){Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"api",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"stateChangeHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"onCloseHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pollingTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"init",{enumerable:!0,configurable:!0,writable:!0,value:async()=>new Promise((n,s)=>{const i=this.onStateChange(a=>{a.next_action!=="wait"&&(n(a),i())});this.updateSessionState().catch(a=>{a instanceof Response&&a.status===404&&s(new Error(`Session ${this.id} doesn't exist or has expired`)),s(a)})})}),Object.defineProperty(this,"onStateChange",{enumerable:!0,configurable:!0,writable:!0,value:n=>(this.stateChangeHandlers.push(n),this.state&&n(this.state),()=>this.stateChangeHandlers=this.stateChangeHandlers.filter(s=>s!==n))}),Object.defineProperty(this,"onClose",{enumerable:!0,configurable:!0,writable:!0,value:n=>{var s;return((s=this.state)==null?void 0:s.next_action)===null?(n(fr(this.state)),()=>{}):(this.onCloseHandlers.push(n),()=>this.onCloseHandlers=this.onCloseHandlers.filter(i=>i!==n))}}),Object.defineProperty(this,"completeAction",{enumerable:!0,configurable:!0,writable:!0,value:async n=>{const s=this.state;return new Promise((i,a)=>{const o=this.onStateChange(d=>{d.next_action!==(s==null?void 0:s.next_action)&&d.next_action===null&&(i(fr(d)),o())});this.api.completeAction(this.id,n).then(d=>this.newStateHandle(d,a)).catch(async d=>a(await mu(d)))})}}),Object.defineProperty(this,"completeSession",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.onCloseHandlers.forEach(s=>s(n)),this.stop()}}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.stop(),this.api.cancelAll()}})}isNextAction(t){var r;return((r=this.state)==null?void 0:r.next_action)===t}stop(){window.clearTimeout(this.pollingTimer),this.stateChangeHandlers=[],this.onCloseHandlers=[]}async updateSessionState(t){const r=await this.api.getSession(this.id);this.newStateHandle(r,t)}newStateHandle(t,r){var n;switch(!t.next_action&&t.status&&(t.next_action=null),t.next_action){case"wait":{window.clearTimeout(this.pollingTimer),this.pollingTimer=window.setTimeout(()=>this.updateSessionState(r).catch(s=>{s instanceof Response&&s.status===404&&(r==null||r(new Error(`Session ${this.id} has expired`)))}),hu);break}}t.next_action!==((n=this.state)==null?void 0:n.next_action)&&this.stateChangeHandlers.forEach(s=>s(t)),t.next_action===null&&this.completeSession(fr(t)),this.state=t}}async function mu(e){return!e.ok&&e.status>=400&&e.status<=500?e.json():e}function fr(e){const t={...e};return delete t.next_action,t}const Eu={base_url:"https://api.hellgate.io"};class hr{constructor(t,r){Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"paymentFlowHandlers",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.session.dispose(),Object.values(this.paymentFlowHandlers).forEach(n=>n==null?void 0:n.dispose())}}),Object.defineProperty(this,"onSessionComplete",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.session.onClose(n)}})}use(t){return this.paymentFlowHandlers[t]}static async init(t,r={}){const{session:n,cardHandler:s,handler3DS:i}=await this.initHandlers(t,r);return new hr(n,{CARD:s,"3DS":i})}static async initHandlers(t,r){const n={...Eu,...r},s=new fu(n.base_url,n.abortCtrl),i=new pu(t,s);await i.init();const a=i.isNextAction("tokenize_card")||i.isNextAction("refresh_security_code")?await this.createCardHandler(i):void 0,o=this.create3DSHandler(i,r);return{session:i,cardHandler:a,handler3DS:o}}static createCardHandler(t){return Et.init(t)}static create3DSHandler(t,r){return new pr(t,{domContainer:r.challenge_3ds_container,labelText:r.challenge_3ds_label_text})}}v.CardElement=rs,v.CardExpirationDateElement=Qn,v.CardNumberElement=ts,v.CardVerificationCodeElement=ns,v.Hellgate=hr,v.Hellgate3DSHandler=pr,v.HellgateCardHandler=Et,v.TextElement=dr,v.createElement=fe,v.extractCardNumberValue=lr,v.extractExpiryDateValue=cr,v.putCardNumberValue=es,v.putExpiryDateValue=ur,v.uid=ss,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});globalThis.HellgateSDK&&(globalThis.Hellgate=globalThis.HellgateSDK.Hellgate,delete globalThis.HellgateSDK);
1
+ (function(f,v){typeof exports=="object"&&typeof module<"u"?v(exports):typeof define=="function"&&define.amd?define(["exports"],v):(f=typeof globalThis<"u"?globalThis:f||self,v(f.HellgateSDK={}))})(this,function(f){"use strict";function v(t){return Array.isArray(t)?t.filter(Boolean):Object.fromEntries(Object.entries(t).map(([e,r])=>[e,typeof r=="object"&&r&&!Array.isArray(r)?v(r):r]).filter(([e,r])=>typeof r=="object"&&r&&!Array.isArray(r)?!!Object.keys(r).length:r!=null&&r!=null))}function O(t,e){const r={...t,...e},n=Object.keys(r);for(const i of n){const a=t[i],s=e[i];typeof a=="object"&&!Array.isArray(a)&&a&&typeof s=="object"&&!Array.isArray(s)&&s&&(r[i]=O(a,s))}return r}function W(t){if(!t.ok)throw t;return t.json()}const Te=2e3;class ie{constructor(e,r){Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"iframeId",{enumerable:!0,configurable:!0,writable:!0,value:String(Math.floor(1e5+Math.random()*9e5))}),Object.defineProperty(this,"resultPollingTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"transactionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"decoupledAuthHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"check3dsIframeDisposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"domContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"labelText",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onStartHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFinishHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onDecoupledAuth",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.decoupledAuthHandlers.push(n)}}),Object.defineProperty(this,"onStartChallenge",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.onStartHandler=n}}),Object.defineProperty(this,"onChallengeFinished",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.onFinishHandler=n}}),Object.defineProperty(this,"sessionStateHandle",{enumerable:!0,configurable:!0,writable:!0,value:n=>{var i,a;switch(n.next_action){case"3ds_check":{this.initCheck3DSIframes(n.data.threeds_server_callback_url,n.data.mon_url);break}case"3ds_challenge":{(i=this.onStartHandler)==null||i.call(this),this.disposeCheck3DSIframe(),this.startChallenge(n.data.challenge_url,n.data.result_mon_url);break}case"3ds_challenge_decoupled":{this.startDecoupledAuth(n.data.cardholder_info,n.data.result_mon_url,n.data.transaction_id);break}case null:{this.dispose(),(a=this.onFinishHandler)==null||a.call(this);break}}}}),this.domContainer=r.domContainer??N(),this.disposers.push(this.session.onStateChange(this.sessionStateHandle)),this.labelText=r.labelText}dispose(){this.disposers.forEach(e=>e()),this.check3dsIframeDisposers.forEach(e=>e())}initCheck3DSIframes(e,r){const n=N();n.insertAdjacentHTML("beforeend",`<iframe id="check_3ds_${this.iframeId}" width="0" height="0" style="border:0;visibility: hidden;" src="${e}"></iframe>`);const i=n.querySelector(`#check_3ds_${this.iframeId}`);if(i){const a=s=>{s.source===i.contentWindow&&this.session.completeAction({action:"3ds_check",result:s.data})};window.addEventListener("message",a),this.check3dsIframeDisposers.push(()=>window.removeEventListener("message",a),()=>i.remove())}if(r){n.insertAdjacentHTML("beforeend",`<iframe id="mon_${this.iframeId}" width="0" height="0" style="border:0;visibility: hidden;" src="${r}"></iframe>`);const a=n.querySelector(`#mon_${this.iframeId}`);a&&this.disposers.push(()=>a.remove())}}disposeCheck3DSIframe(){this.check3dsIframeDisposers.forEach(e=>e()),this.check3dsIframeDisposers=[]}startChallenge(e,r){const n=N(),i=`<div style="display: flex; flex-direction: column; gap: 10px; align-items: center; ${this.domContainer===n?'border:0; max-width: 800px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width:100% " ':'border:0;" width="100%" height="100%"'}><iframe id="cha_${this.iframeId}" src="${e}" width="100%" height="500"></iframe>${this.labelText?'<span id="tds_label_text" style="font-size: large;">'+this.labelText+"</span>":""}<div>`;this.domContainer.insertAdjacentHTML("beforeend",this.domContainer===n?`<div id="cha_${this.iframeId}_wrap" style="background: #fff; position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 10000;">${i}</div>`:i);const a=this.domContainer.querySelector(`#cha_${this.iframeId}`),s=this.domContainer.querySelector(`#cha_${this.iframeId}_wrap`);if(!a)throw new Error("3DS Challenge Iframe initialization failed");this.disposers.push(()=>{a.remove(),s==null||s.remove()});const o=new Promise(u=>{const d=l=>{l.source!==a.contentWindow||l.data.event!=="AuthResultReady"||u(l.data)};window.addEventListener("message",d),this.disposers.push(()=>window.removeEventListener("message",d))}),c=new Promise(u=>{const d=this.startAuthResultPolling(r,l=>{l.event==="AuthResultReady"&&(d(),u({requestor_trans_id:l.threeDSRequestorTransID,event:l.event}))})});Promise.any([o,c]).then(u=>{this.session.completeAction({action:"3ds_challenge",result:u})})}startDecoupledAuth(e,r,n){this.transactionId||(this.transactionId=n),this.decoupledAuthHandlers.forEach(a=>a(e));const i=this.startAuthResultPolling(r,a=>{a.event==="AuthResultReady"&&(this.session.completeAction({action:"3ds_challenge_decoupled",result:{...a,event:a.event}}),i())})}startAuthResultPolling(e,r){return window.clearTimeout(this.resultPollingTimer),this.resultPollingTimer=window.setTimeout(()=>fetch(e).then(n=>W(n)).then(n=>{this.startAuthResultPolling(e,r),r(n)}).catch(()=>{}),Te),()=>window.clearTimeout(this.resultPollingTimer)}}function N(){return document.body}const h=crypto,g=t=>t instanceof CryptoKey,De=async(t,e)=>{const r=`SHA-${t.slice(-3)}`;return new Uint8Array(await h.subtle.digest(r,e))},S=new TextEncoder,ae=new TextDecoder,M=2**32;function R(...t){const e=t.reduce((i,{length:a})=>i+a,0),r=new Uint8Array(e);let n=0;for(const i of t)r.set(i,n),n+=i.length;return r}function Re(t,e){return R(S.encode(t),new Uint8Array([0]),e)}function L(t,e,r){if(e<0||e>=M)throw new RangeError(`value must be >= 0 and <= ${M-1}. Received ${e}`);t.set([e>>>24,e>>>16,e>>>8,e&255],r)}function je(t){const e=Math.floor(t/M),r=t%M,n=new Uint8Array(8);return L(n,e,0),L(n,r,4),n}function F(t){const e=new Uint8Array(4);return L(e,t),e}function B(t){return R(F(t.length),t)}async function Ie(t,e,r){const n=Math.ceil((e>>3)/32),i=new Uint8Array(n*32);for(let a=0;a<n;a++){const s=new Uint8Array(4+t.length+r.length);s.set(F(a+1)),s.set(t,4),s.set(r,4+t.length),i.set(await De("sha256",s),a*32)}return i.slice(0,e>>3)}const Me=t=>{let e=t;typeof e=="string"&&(e=S.encode(e));const r=32768,n=[];for(let i=0;i<e.length;i+=r)n.push(String.fromCharCode.apply(null,e.subarray(i,i+r)));return btoa(n.join(""))},m=t=>Me(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),Ue=t=>{const e=atob(t),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r},se=t=>{let e=t;e instanceof Uint8Array&&(e=ae.decode(e)),e=e.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return Ue(e)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}};class oe extends Error{static get code(){return"ERR_JOSE_GENERIC"}constructor(e){var r;super(e),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,(r=Error.captureStackTrace)==null||r.call(Error,this,this.constructor)}}class p extends oe{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}}class A extends oe{constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}static get code(){return"ERR_JWE_INVALID"}}const V=h.getRandomValues.bind(h);function ce(t){switch(t){case"A128GCM":case"A128GCMKW":case"A192GCM":case"A192GCMKW":case"A256GCM":case"A256GCMKW":return 96;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return 128;default:throw new p(`Unsupported JWE Algorithm: ${t}`)}}const $e=t=>V(new Uint8Array(ce(t)>>3)),We=(t,e)=>{if(e.length<<3!==ce(t))throw new A("Invalid Initialization Vector length")},le=(t,e)=>{const r=t.byteLength<<3;if(r!==e)throw new A(`Invalid Content Encryption Key length. Expected ${e} bits, got ${r} bits`)};function _(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function U(t,e){return t.name===e}function Ne(t){return parseInt(t.name.slice(4),10)}function Le(t,e){if(e.length&&!e.some(r=>t.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(e.length>2){const n=e.pop();r+=`one of ${e.join(", ")}, or ${n}.`}else e.length===2?r+=`one of ${e[0]} or ${e[1]}.`:r+=`${e[0]}.`;throw new TypeError(r)}}function H(t,e,...r){switch(e){case"A128GCM":case"A192GCM":case"A256GCM":{if(!U(t.algorithm,"AES-GCM"))throw _("AES-GCM");const n=parseInt(e.slice(1,4),10);if(t.algorithm.length!==n)throw _(n,"algorithm.length");break}case"A128KW":case"A192KW":case"A256KW":{if(!U(t.algorithm,"AES-KW"))throw _("AES-KW");const n=parseInt(e.slice(1,4),10);if(t.algorithm.length!==n)throw _(n,"algorithm.length");break}case"ECDH":{switch(t.algorithm.name){case"ECDH":case"X25519":case"X448":break;default:throw _("ECDH, X25519, or X448")}break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":if(!U(t.algorithm,"PBKDF2"))throw _("PBKDF2");break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{if(!U(t.algorithm,"RSA-OAEP"))throw _("RSA-OAEP");const n=parseInt(e.slice(9),10)||1;if(Ne(t.algorithm.hash)!==n)throw _(`SHA-${n}`,"algorithm.hash");break}default:throw new TypeError("CryptoKey does not support this operation")}Le(t,r)}function ue(t,e,...r){var n;if(r.length>2){const i=r.pop();t+=`one of type ${r.join(", ")}, or ${i}.`}else r.length===2?t+=`one of type ${r[0]} or ${r[1]}.`:t+=`of type ${r[0]}.`;return e==null?t+=` Received ${e}`:typeof e=="function"&&e.name?t+=` Received function ${e.name}`:typeof e=="object"&&e!=null&&(n=e.constructor)!=null&&n.name&&(t+=` Received an instance of ${e.constructor.name}`),t}const E=(t,...e)=>ue("Key must be ",t,...e);function de(t,e,...r){return ue(`Key for the ${t} algorithm must be `,e,...r)}const he=t=>g(t)?!0:(t==null?void 0:t[Symbol.toStringTag])==="KeyObject",y=["CryptoKey"],Fe=(...t)=>{const e=t.filter(Boolean);if(e.length===0||e.length===1)return!0;let r;for(const n of e){const i=Object.keys(n);if(!r||r.size===0){r=new Set(i);continue}for(const a of i){if(r.has(a))return!1;r.add(a)}}return!0};function Be(t){return typeof t=="object"&&t!==null}function Ve(t){if(!Be(t)||Object.prototype.toString.call(t)!=="[object Object]")return!1;if(Object.getPrototypeOf(t)===null)return!0;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}const fe=[{hash:"SHA-256",name:"HMAC"},!0,["sign"]];function ze(t,e){if(t.algorithm.length!==parseInt(e.slice(1,4),10))throw new TypeError(`Invalid key size for alg: ${e}`)}function Je(t,e,r){if(g(t))return H(t,e,r),t;if(t instanceof Uint8Array)return h.subtle.importKey("raw",t,"AES-KW",!0,[r]);throw new TypeError(E(t,...y,"Uint8Array"))}const z=async(t,e,r)=>{const n=await Je(e,t,"wrapKey");ze(n,t);const i=await h.subtle.importKey("raw",r,...fe);return new Uint8Array(await h.subtle.wrapKey("raw",i,n,"AES-KW"))};async function Ge(t,e,r,n,i=new Uint8Array(0),a=new Uint8Array(0)){if(!g(t))throw new TypeError(E(t,...y));if(H(t,"ECDH"),!g(e))throw new TypeError(E(e,...y));H(e,"ECDH","deriveBits");const s=R(B(S.encode(r)),B(i),B(a),F(n));let o;t.algorithm.name==="X25519"?o=256:t.algorithm.name==="X448"?o=448:o=Math.ceil(parseInt(t.algorithm.namedCurve.substr(-3),10)/8)<<3;const c=new Uint8Array(await h.subtle.deriveBits({name:t.algorithm.name,public:t},e,o));return Ie(c,n,s)}async function ke(t){if(!g(t))throw new TypeError(E(t,...y));return h.subtle.generateKey(t.algorithm,!0,["deriveBits"])}function qe(t){if(!g(t))throw new TypeError(E(t,...y));return["P-256","P-384","P-521"].includes(t.algorithm.namedCurve)||t.algorithm.name==="X25519"||t.algorithm.name==="X448"}function Xe(t){if(!(t instanceof Uint8Array)||t.length<8)throw new A("PBES2 Salt Input must be 8 or more octets")}function Ye(t,e){if(t instanceof Uint8Array)return h.subtle.importKey("raw",t,"PBKDF2",!1,["deriveBits"]);if(g(t))return H(t,e,"deriveBits","deriveKey"),t;throw new TypeError(E(t,...y,"Uint8Array"))}async function Ze(t,e,r,n){Xe(t);const i=Re(e,t),a=parseInt(e.slice(13,16),10),s={hash:`SHA-${e.slice(8,11)}`,iterations:r,name:"PBKDF2",salt:i},o={length:a,name:"AES-KW"},c=await Ye(n,e);if(c.usages.includes("deriveBits"))return new Uint8Array(await h.subtle.deriveBits(s,c,a));if(c.usages.includes("deriveKey"))return h.subtle.deriveKey(s,c,o,!1,["wrapKey","unwrapKey"]);throw new TypeError('PBKDF2 key "usages" must include "deriveBits" or "deriveKey"')}const Qe=async(t,e,r,n=2048,i=V(new Uint8Array(16)))=>{const a=await Ze(i,t,n,e);return{encryptedKey:await z(t.slice(-6),a,r),p2c:n,p2s:m(i)}};function pe(t){switch(t){case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":return"RSA-OAEP";default:throw new p(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}const et=(t,e)=>{if(t.startsWith("RS")||t.startsWith("PS")){const{modulusLength:r}=e.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`)}},tt=async(t,e,r)=>{if(!g(e))throw new TypeError(E(e,...y));if(H(e,t,"encrypt","wrapKey"),et(t,e),e.usages.includes("encrypt"))return new Uint8Array(await h.subtle.encrypt(pe(t),e,r));if(e.usages.includes("wrapKey")){const n=await h.subtle.importKey("raw",r,...fe);return new Uint8Array(await h.subtle.wrapKey("raw",n,e,pe(t)))}throw new TypeError('RSA-OAEP key "usages" must include "encrypt" or "wrapKey" for this operation')};function rt(t){let e,r;switch(t.kty){case"RSA":{switch(t.alg){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${t.alg.slice(-3)}`},r=t.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${t.alg.slice(-3)}`},r=t.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(t.alg.slice(-3),10)||1}`},r=t.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new p('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"EC":{switch(t.alg){case"ES256":e={name:"ECDSA",namedCurve:"P-256"},r=t.d?["sign"]:["verify"];break;case"ES384":e={name:"ECDSA",namedCurve:"P-384"},r=t.d?["sign"]:["verify"];break;case"ES512":e={name:"ECDSA",namedCurve:"P-521"},r=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:"ECDH",namedCurve:t.crv},r=t.d?["deriveBits"]:[];break;default:throw new p('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"OKP":{switch(t.alg){case"EdDSA":e={name:t.crv},r=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:t.crv},r=t.d?["deriveBits"]:[];break;default:throw new p('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new p('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:e,keyUsages:r}}const me=async t=>{if(!t.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:e,keyUsages:r}=rt(t),n=[e,t.ext??!1,t.key_ops??r],i={...t};return delete i.alg,delete i.use,h.subtle.importKey("jwk",i,...n)},be=t=>se(t);let J,G;const ye=t=>(t==null?void 0:t[Symbol.toStringTag])==="KeyObject",we=async(t,e,r,n)=>{let i=t.get(e);if(i!=null&&i[n])return i[n];const a=await me({...r,alg:n});return i?i[n]=a:t.set(e,{[n]:a}),a},k={normalizePublicKey:(t,e)=>{if(ye(t)){let r=t.export({format:"jwk"});return delete r.d,delete r.dp,delete r.dq,delete r.p,delete r.q,delete r.qi,r.k?be(r.k):(G||(G=new WeakMap),we(G,t,r,e))}return t},normalizePrivateKey:(t,e)=>{if(ye(t)){let r=t.export({format:"jwk"});return r.k?be(r.k):(J||(J=new WeakMap),we(J,t,r,e))}return t}};function ge(t){switch(t){case"A128GCM":return 128;case"A192GCM":return 192;case"A256GCM":case"A128CBC-HS256":return 256;case"A192CBC-HS384":return 384;case"A256CBC-HS512":return 512;default:throw new p(`Unsupported JWE Algorithm: ${t}`)}}const j=t=>V(new Uint8Array(ge(t)>>3));async function nt(t,e){if(!Ve(t))throw new TypeError("JWK must be an object");switch(t.kty){case"oct":if(typeof t.k!="string"||!t.k)throw new TypeError('missing "k" (Key Value) Parameter value');return se(t.k);case"RSA":if(t.oth!==void 0)throw new p('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return me({...t,alg:e});default:throw new p('Unsupported "kty" (Key Type) Parameter value')}}const q=t=>t==null?void 0:t[Symbol.toStringTag],it=(t,e)=>{if(!(e instanceof Uint8Array)){if(!he(e))throw new TypeError(de(t,e,...y,"Uint8Array"));if(e.type!=="secret")throw new TypeError(`${q(e)} instances for symmetric algorithms must be of type "secret"`)}},at=(t,e,r)=>{if(!he(e))throw new TypeError(de(t,e,...y));if(e.type==="secret")throw new TypeError(`${q(e)} instances for asymmetric algorithms must not be of type "secret"`);if(e.algorithm,e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${q(e)} instances for asymmetric algorithm encryption must be of type "public"`)},st=(t,e,r)=>{t.startsWith("HS")||t==="dir"||t.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(t)?it(t,e):at(t,e,r)};async function ot(t,e,r,n,i){if(!(r instanceof Uint8Array))throw new TypeError(E(r,"Uint8Array"));const a=parseInt(t.slice(1,4),10),s=await h.subtle.importKey("raw",r.subarray(a>>3),"AES-CBC",!1,["encrypt"]),o=await h.subtle.importKey("raw",r.subarray(0,a>>3),{hash:`SHA-${a<<1}`,name:"HMAC"},!1,["sign"]),c=new Uint8Array(await h.subtle.encrypt({iv:n,name:"AES-CBC"},s,e)),u=R(i,n,c,je(i.length<<3)),d=new Uint8Array((await h.subtle.sign("HMAC",o,u)).slice(0,a>>3));return{ciphertext:c,tag:d,iv:n}}async function ct(t,e,r,n,i){let a;r instanceof Uint8Array?a=await h.subtle.importKey("raw",r,"AES-GCM",!1,["encrypt"]):(H(r,t,"encrypt"),a=r);const s=new Uint8Array(await h.subtle.encrypt({additionalData:i,iv:n,name:"AES-GCM",tagLength:128},a,e)),o=s.slice(-16);return{ciphertext:s.slice(0,-16),tag:o,iv:n}}const Ee=async(t,e,r,n,i)=>{if(!g(r)&&!(r instanceof Uint8Array))throw new TypeError(E(r,...y,"Uint8Array"));switch(n?We(t,n):n=$e(t),t){case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return r instanceof Uint8Array&&le(r,parseInt(t.slice(-3),10)),ot(t,e,r,n,i);case"A128GCM":case"A192GCM":case"A256GCM":return r instanceof Uint8Array&&le(r,parseInt(t.slice(1,4),10)),ct(t,e,r,n,i);default:throw new p("Unsupported JWE Content Encryption Algorithm")}};async function lt(t,e,r,n){const i=t.slice(0,7),a=await Ee(i,r,e,n,new Uint8Array(0));return{encryptedKey:a.ciphertext,iv:m(a.iv),tag:m(a.tag)}}function ut(t,e,r,n,i){if(i.crit!==void 0&&(n==null?void 0:n.crit)===void 0)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!n||n.crit===void 0)return new Set;if(!Array.isArray(n.crit)||n.crit.length===0||n.crit.some(s=>typeof s!="string"||s.length===0))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a;r!==void 0?a=new Map([...Object.entries(r),...e.entries()]):a=e;for(const s of n.crit){if(!a.has(s))throw new p(`Extension Header Parameter "${s}" is not recognized`);if(i[s]===void 0)throw new t(`Extension Header Parameter "${s}" is missing`);if(a.get(s)&&n[s]===void 0)throw new t(`Extension Header Parameter "${s}" MUST be integrity protected`)}return new Set(n.crit)}const dt=async t=>{if(t instanceof Uint8Array)return{kty:"oct",k:m(t)};if(!g(t))throw new TypeError(E(t,...y,"Uint8Array"));if(!t.extractable)throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");const{ext:e,key_ops:r,alg:n,use:i,...a}=await h.subtle.exportKey("jwk",t);return a};async function ht(t){return dt(t)}async function ft(t,e,r,n,i={}){var c;let a,s,o;switch(st(t,r,"encrypt"),r=await((c=k.normalizePublicKey)==null?void 0:c.call(k,r,t))||r,t){case"dir":{o=r;break}case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{if(!qe(r))throw new p("ECDH with the provided key is not allowed or not supported by your javascript runtime");const{apu:u,apv:d}=i;let{epk:l}=i;l||(l=(await ke(r)).privateKey);const{x:C,y:P,crv:b,kty:w}=await ht(l),xe=await Ge(r,l,t==="ECDH-ES"?e:t,t==="ECDH-ES"?ge(e):parseInt(t.slice(-5,-2),10),u,d);if(s={epk:{x:C,crv:b,kty:w}},w==="EC"&&(s.epk.y=P),u&&(s.apu=m(u)),d&&(s.apv=m(d)),t==="ECDH-ES"){o=xe;break}o=n||j(e);const Pt=t.slice(-6);a=await z(Pt,xe,o);break}case"RSA1_5":case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{o=n||j(e),a=await tt(t,r,o);break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":{o=n||j(e);const{p2c:u,p2s:d}=i;({encryptedKey:a,...s}=await Qe(t,r,o,u,d));break}case"A128KW":case"A192KW":case"A256KW":{o=n||j(e),a=await z(t,r,o);break}case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":{o=n||j(e);const{iv:u}=i;({encryptedKey:a,...s}=await lt(t,r,o,u));break}default:throw new p('Invalid or unsupported "alg" (JWE Algorithm) header value')}return{cek:o,encryptedKey:a,parameters:s}}const pt=Symbol();class mt{constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("plaintext must be an instance of Uint8Array");this._plaintext=e}setKeyManagementParameters(e){if(this._keyManagementParameters)throw new TypeError("setKeyManagementParameters can only be called once");return this._keyManagementParameters=e,this}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setSharedUnprotectedHeader(e){if(this._sharedUnprotectedHeader)throw new TypeError("setSharedUnprotectedHeader can only be called once");return this._sharedUnprotectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}setAdditionalAuthenticatedData(e){return this._aad=e,this}setContentEncryptionKey(e){if(this._cek)throw new TypeError("setContentEncryptionKey can only be called once");return this._cek=e,this}setInitializationVector(e){if(this._iv)throw new TypeError("setInitializationVector can only be called once");return this._iv=e,this}async encrypt(e,r){if(!this._protectedHeader&&!this._unprotectedHeader&&!this._sharedUnprotectedHeader)throw new A("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");if(!Fe(this._protectedHeader,this._unprotectedHeader,this._sharedUnprotectedHeader))throw new A("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");const n={...this._protectedHeader,...this._unprotectedHeader,...this._sharedUnprotectedHeader};if(ut(A,new Map,r==null?void 0:r.crit,this._protectedHeader,n),n.zip!==void 0)throw new p('JWE "zip" (Compression Algorithm) Header Parameter is not supported.');const{alg:i,enc:a}=n;if(typeof i!="string"||!i)throw new A('JWE "alg" (Algorithm) Header Parameter missing or invalid');if(typeof a!="string"||!a)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');let s;if(this._cek&&(i==="dir"||i==="ECDH-ES"))throw new TypeError(`setContentEncryptionKey cannot be called with JWE "alg" (Algorithm) Header ${i}`);let o;{let w;({cek:o,encryptedKey:s,parameters:w}=await ft(i,a,e,this._cek,this._keyManagementParameters)),w&&(r&&pt in r?this._unprotectedHeader?this._unprotectedHeader={...this._unprotectedHeader,...w}:this.setUnprotectedHeader(w):this._protectedHeader?this._protectedHeader={...this._protectedHeader,...w}:this.setProtectedHeader(w))}let c,u,d;this._protectedHeader?u=S.encode(m(JSON.stringify(this._protectedHeader))):u=S.encode(""),this._aad?(d=m(this._aad),c=R(u,S.encode("."),S.encode(d))):c=u;const{ciphertext:l,tag:C,iv:P}=await Ee(a,this._plaintext,o,this._iv,c),b={ciphertext:m(l)};return P&&(b.iv=m(P)),C&&(b.tag=m(C)),s&&(b.encrypted_key=m(s)),d&&(b.aad=d),this._protectedHeader&&(b.protected=ae.decode(u)),this._sharedUnprotectedHeader&&(b.unprotected=this._sharedUnprotectedHeader),this._unprotectedHeader&&(b.header=this._unprotectedHeader),b}}class bt{constructor(e){this._flattened=new mt(e)}setContentEncryptionKey(e){return this._flattened.setContentEncryptionKey(e),this}setInitializationVector(e){return this._flattened.setInitializationVector(e),this}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}setKeyManagementParameters(e){return this._flattened.setKeyManagementParameters(e),this}async encrypt(e,r){const n=await this._flattened.encrypt(e,r);return[n.protected,n.encrypted_key,n.iv,n.ciphertext,n.tag].join(".")}}const X={base:{":disabled":{backgroundColor:"transparent"}}},yt="DOM Element was not found";var Ae;(function(t){t.NOT_COMPLETE="NOT_COMPLETE",t.SCHEME_NOT_SUPPORTED="SCHEME_NOT_SUPPORTED",t.LUHN_CHECK_FAILED="LUHN_CHECK_FAILED",t.INVALID_EXPIRY_DATE="INVALID_EXPIRY_DATE"})(Ae||(Ae={}));const _e=t=>t!=null,wt="v3.8.1";class I{constructor(e,r){if(Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"IFRAME_BASE_URL",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"iframe",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"subscriptions",{enumerable:!0,configurable:!0,writable:!0,value:{ready:[],blur:[],focus:[],keydown:[],change:[]}}),Object.defineProperty(this,"update",{enumerable:!0,configurable:!0,writable:!0,value:async({...n})=>{this.iframe&&_e(n.height)&&(this.iframe.height=n.height),this.iframePostMessage({type:"update",data:{...n,value:n.value?this.putValue(n.value)??void 0:void 0}})}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.iframePostMessage({type:"clear"})}}),Object.defineProperty(this,"focus",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.iframePostMessage({type:"focus"})}}),Object.defineProperty(this,"blur",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.iframePostMessage({type:"blur"})}}),Object.defineProperty(this,"unmount",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var n;(n=this.iframe)==null||n.remove(),this.iframe=null}}),this.IFRAME_BASE_URL=gt(wt),!this.IFRAME_BASE_URL)throw new Error("IFRAME_BASE_URL not found");r&&Y.set(this,{key:r})}mount(e){const r=typeof e=="string"?document.querySelector(e):e;if(!r)throw new Error(yt);r.innerHTML=`<iframe width="100%" height="29" src="${this.IFRAME_BASE_URL}?field=${this.type}&origin=${location.origin}"></iframe>`,this.iframe=r.querySelector("iframe");const n=i=>{var a;if(!(i.source!==((a=this.iframe)==null?void 0:a.contentWindow)||i.data.element!==this.type))if(i.data.type==="change"){const s=this.extractValue(i.data.data.value),o={...i.data.data};delete o.value;const c=Y.get(this);c&&(c.value=s),this.emitEvent({...i.data,data:o})}else this.emitEvent(i.data)};return window.addEventListener("message",n),new Promise(i=>{this.on("ready",()=>{this.update(this.options),i()})})}on(e,r){return this.subscriptions[e].push(r),{unsubscribe:()=>this.subscriptions[e].splice(this.subscriptions[e].indexOf(r),1)}}secureValue(e){const r=Y.get(this);return(r==null?void 0:r.key)!==e?null:(r==null?void 0:r.value)??null}emitEvent(e){var r;(r=this.subscriptions[e.type])==null||r.forEach(n=>n(e.data))}iframePostMessage(e){var r,n;(n=(r=this.iframe)==null?void 0:r.contentWindow)==null||n.postMessage(e,this.IFRAME_BASE_URL)}}function gt(t){return`https://${window.HG_IFRAME_HOST??"sdk.hellgate.io"}/web/${t}/iframe/`}const Y=new Map;function Z(t){const[e=null,r=null]=(t??"").split("/").map(n=>Number(n.trim()));return{month:e,year:r&&r>10?+`20${r}`:null}}function Q(t){if(!t)return null;const{month:e,year:r}=t;return[e&&e<10?`0${e}`:e,r&&r>=100?String(r).slice(-2):r].filter(_e).join(" / ")}class Se extends I{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"cardExpirationDate"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:Z}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:Q})}}function ee(t){return(t==null?void 0:t.replaceAll(" ",""))??null}function Ce(t){return t}class Pe extends I{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"cardNumber"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:ee}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:Ce})}}class ve extends I{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"card"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>e?{number:e.cardNumber?ee(e.cardNumber):null,expiry_date:e.cardExpirationDate?Z(e.cardExpirationDate):null,cvc:e.cardVerificationCode??null}:null}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>e?{cardNumber:e.number?e.number:null,cardExpirationDate:e.expiry_date?Q(e.expiry_date):null,cardVerificationCode:e.cvc??null}:null})}}class Oe extends I{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"cardVerificationCode"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>e}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>e})}}class te extends I{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"text"}),Object.defineProperty(this,"extractValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>e}),Object.defineProperty(this,"putValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>e})}}function K(t,e,r){switch(t){case"card":return new ve(e,r);case"cardNumber":return new Pe(e,r);case"cardExpirationDate":return new Se(e,r);case"cardVerificationCode":return new Oe(e,r);case"text":return new te(e,r);default:ASSERT_EXHAUSTIVE(t)}}function He(){return Date.now().toString(36)+Math.random().toString(36).slice(2)}function Ke(t){return[t.issuer_identification_number,"".padEnd(t.account_number_length-t.issuer_identification_number.length-t.account_number_last_four.length,"*"),t.account_number_last_four].join(" ")}class ${static async init(e){return new $(e)}constructor(e){Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:this.createFieldDefaultState()}),Object.defineProperty(this,"cardElements",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"textElements",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"stateChangeHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"cvcOnlyEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"createForm",{enumerable:!0,configurable:!0,writable:!0,value:(r={})=>{var s;if(this.hasFormElements())throw new Error("Form elements can't be initialized twice. You can call `reset()` method or create new Hellgate client.");const n=x.get(this);if(!n)throw new Error("Secure key not found");const i=O({disabled:!1,autocomplete:"on",style:{...X}},r);if(this.session.isNextAction("refresh_security_code")&&((s=this.session.state)!=null&&s.data)){const o=this.session.state.data;i.cvcOnly=!0,i.value={number:Ke(o),expiry_date:{month:(o==null?void 0:o.expiry_month)??null,year:(o==null?void 0:o.expiry_year)??null},cvc:null}}const a=K("card",i,n);return this.cardElements.card={element:a,state:this.createFieldDefaultState()},this.addElementStateListener("card"),a}}),Object.defineProperty(this,"createFormFields",{enumerable:!0,configurable:!0,writable:!0,value:(r={})=>{var C,P;if(this.hasFormElements())throw new Error("Form elements can't be initialized twice. You can call `reset()` method or create new Hellgate client.");const n=x.get(this);if(!n)throw new Error("Secure key not found");const i={disabled:this.cvcOnlyEnabled,autocomplete:"on",style:{...X}},{cardNumber:a={},expiryDate:s={},securityCode:o={},...c}=r,u=K("cardNumber",{...O(i,{...c,...a,cvcOnly:this.cvcOnlyEnabled,value:this.session.isNextAction("refresh_security_code")&&((C=this.session.state)!=null&&C.data)?Ke(this.session.state.data):null})},n),d=K("cardExpirationDate",{...O(i,{...c,...s,value:this.session.isNextAction("refresh_security_code")&&((P=this.session.state)!=null&&P.data)?{month:this.session.state.data.expiry_month,year:this.session.state.data.expiry_year}:null})},n),l=K("cardVerificationCode",{...O({...i,disabled:!1,autofocus:this.cvcOnlyEnabled},{...c,...o})},n);return u.on("change",b=>{const w=b.cardBrand;l.update({cardType:w})}),this.cardElements={cardNumber:{element:u,state:this.createFieldDefaultState()},cardExpirationDate:{element:d,state:this.createFieldDefaultState()},cardVerificationCode:{element:l,state:this.createFieldDefaultState()}},this.addElementStateListener("cardNumber"),this.addElementStateListener("cardExpirationDate"),this.addElementStateListener("cardVerificationCode"),{cardNumber:u,expiryDate:d,securityCode:l}}}),Object.defineProperty(this,"createTextField",{enumerable:!0,configurable:!0,writable:!0,value:(r={})=>{const n=x.get(this);if(!n)throw new Error("Secure key not found");const i={disabled:!1,autocomplete:"on",style:{...X}},a=K("text",{...O(i,{...r})},n);return this.textElements.push(a),a}}),Object.defineProperty(this,"tokenize",{enumerable:!0,configurable:!0,writable:!0,value:async r=>{var o,c;if(((o=this.session.state)==null?void 0:o.next_action)!=="tokenize_card")throw new Error(`The session's next_action='${(c=this.session.state)==null?void 0:c.next_action}'. tokenize() is available only if next_action='tokenize_card'`);const n=this.getFormValue(),i=this.extractAdditionalData(r);if(!n)throw new Error("Form elements must be initialized before tokenization");const a=this.getCardDataValidationError();if(a)throw a;if(!n.number||!n.expiration_month||!n.expiration_year||!n.cvc)throw new Error("Card data is not complete");const s=this.session.state.data;return this.encryptCardData({account_number:n.number,expiry_month:n.expiration_month,expiry_year:n.expiration_year,security_code:n.cvc,additional_data:i},s.jwk)}}),Object.defineProperty(this,"onStateChange",{enumerable:!0,configurable:!0,writable:!0,value:r=>{this.stateChangeHandlers.push(r),r(this.state)}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:()=>{Object.values(this.cardElements).forEach(r=>r==null?void 0:r.element.clear()),this.textElements.forEach(r=>r==null?void 0:r.clear())}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:()=>{Object.values(this.cardElements).forEach(r=>r==null?void 0:r.element.unmount()),this.textElements.forEach(r=>r==null?void 0:r.unmount()),this.cardElements={},this.textElements=[]}}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.reset()}}),Object.defineProperty(this,"process",{enumerable:!0,configurable:!0,writable:!0,value:async(r={})=>{if(!this.hasFormElements())throw new Error("Card form must be initialized and completed before processing");if(this.session.isNextAction("refresh_security_code"))return this.refreshSecurityCode();this.disableFormElements(!0);try{const n=await this.tokenize(r);if(!n)throw new Error("Tokenization failed");return await this.session.completeAction({action:"tokenize_card",result:n})}catch(n){throw this.disableFormElements(!1),n}}}),x.set(this,He()),this.cvcOnlyEnabled=this.session.isNextAction("refresh_security_code")}async refreshSecurityCode(){const e=this.getFormValue();if(!(e!=null&&e.cvc))throw new Error("cvc field was not filled");if(!this.session.isNextAction("refresh_security_code")||!this.session.state)throw new Error("refreshSecurityCode() is available only if next_action=refresh_security_code");this.disableFormElements(!0);const r=await this.encryptCardData({security_code:e.cvc},this.session.state.data.jwk);return this.session.completeAction({action:"refresh_security_code",result:{...r}}).catch(n=>{if(this.disableFormElements(!1),n instanceof Error)throw n;return{status:"failure",data:n}})}getFormValue(){var s,o,c,u,d;const{card:e,cardNumber:r,cardExpirationDate:n,cardVerificationCode:i}=this.cardElements;let a;if(e){const l=T(this,e.element);a={number:(l==null?void 0:l.number)??null,expiration_month:((s=l==null?void 0:l.expiry_date)==null?void 0:s.month)??null,expiration_year:((o=l==null?void 0:l.expiry_date)==null?void 0:o.year)??null,cvc:(l==null?void 0:l.cvc)??null}}return r&&n&&i&&(a={number:((c=T(this,r.element))==null?void 0:c.replaceAll(" ",""))??null,expiration_month:((u=T(this,n.element))==null?void 0:u.month)??null,expiration_year:((d=T(this,n.element))==null?void 0:d.year)??null,cvc:T(this,i.element)}),a}hasFormElements(){return!!Object.keys(this.cardElements).length}disableFormElements(e){Object.values(this.cardElements).forEach(({element:r})=>{r.update({disabled:e})})}extractAdditionalData({cardholder_name:e,billing_address:r={}}){return v({cardholder_name:D(this,e),billing_address:{line1:D(this,r.line1),line2:D(this,r.line2),line3:D(this,r.line3),city:D(this,r.city),postal_code:D(this,r.postal_code)}})}async encryptCardData(e,r){const n=await nt(r,"RSA-OAEP"),i=JSON.stringify(e),a=new TextEncoder().encode(i);return{enc_payload:await new bt(a).setProtectedHeader({alg:"RSA-OAEP",enc:"A256GCM"}).encrypt(n)}}addElementStateListener(e){const r=this.cardElements[e];r&&r.element.on("change",n=>{r.state=n,this.updateFormState()})}updateFormState(){const e=this.cvcOnlyEnabled&&this.cardElements.cardVerificationCode?[this.cardElements.cardVerificationCode]:Object.values(this.cardElements);e.length?this.state=e.reduce((r,{state:n})=>(r.valid=!!r.valid&&!!n.valid,r.complete=!!r.complete&&!!n.complete,r.empty=!!r.empty&&!!n.empty,r.error=r.error||n.error,r.errorCode=r.errorCode||n.errorCode,r),{valid:!0,complete:!0,empty:!0}):this.state=this.createFieldDefaultState(),this.stateChangeHandlers.forEach(r=>r(this.state))}createFieldDefaultState(){return{empty:!0,complete:!1,valid:!1}}getCardDataValidationError(){if(!this.state.complete)return new Error(this.state.error??"Card data is not complete");if(!this.state.valid)return new Error(`Card data is not valid. ${this.state.error}`)}}const x=new Map;function T(t,e){const r=x.get(t);return r?e.secureValue(r):null}function D(t,e){const r=x.get(t);return e instanceof te&&r?T(t,e)??void 0:e}class Et{constructor(e="https://api.hellgate.io",r=new AbortController){Object.defineProperty(this,"abortCtrl",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.baseUrl=e.endsWith("/")?e.substring(0,e.length-1):e}getSession(e){return fetch(`${this.baseUrl}/sessions/${e}`,{signal:this.abortCtrl.signal}).then(r=>W(r))}completeAction(e,r){return fetch(`${this.baseUrl}/sessions/${e}/complete-action`,{method:"POST",headers:{"Content-Type":"application/json"},mode:"cors",body:JSON.stringify(r),signal:this.abortCtrl.signal}).then(n=>W(n))}cancelAll(){this.abortCtrl.abort()}}const At=2e3;class _t{constructor(e,r){Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"api",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"stateChangeHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"onCloseHandlers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pollingTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"init",{enumerable:!0,configurable:!0,writable:!0,value:async()=>new Promise((n,i)=>{const a=this.onStateChange(s=>{s.next_action!=="wait"&&(n(s),a())});this.updateSessionState().catch(s=>{s instanceof Response&&s.status===404&&i(new Error(`Session ${this.id} doesn't exist or has expired`)),i(s)})})}),Object.defineProperty(this,"onStateChange",{enumerable:!0,configurable:!0,writable:!0,value:n=>(this.stateChangeHandlers.push(n),this.state&&n(this.state),()=>this.stateChangeHandlers=this.stateChangeHandlers.filter(i=>i!==n))}),Object.defineProperty(this,"onClose",{enumerable:!0,configurable:!0,writable:!0,value:n=>{var i;return((i=this.state)==null?void 0:i.next_action)===null?(n(re(this.state)),()=>{}):(this.onCloseHandlers.push(n),()=>this.onCloseHandlers=this.onCloseHandlers.filter(a=>a!==n))}}),Object.defineProperty(this,"completeAction",{enumerable:!0,configurable:!0,writable:!0,value:async n=>{const i=this.state;return new Promise((a,s)=>{const o=this.onStateChange(c=>{c.next_action!==(i==null?void 0:i.next_action)&&c.next_action===null&&(a(re(c)),o())});this.api.completeAction(this.id,n).then(c=>this.newStateHandle(c,s)).catch(async c=>s(await St(c)))})}}),Object.defineProperty(this,"completeSession",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.onCloseHandlers.forEach(i=>i(n)),this.stop()}}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.stop(),this.api.cancelAll()}})}isNextAction(e){var r;return((r=this.state)==null?void 0:r.next_action)===e}stop(){window.clearTimeout(this.pollingTimer),this.stateChangeHandlers=[],this.onCloseHandlers=[]}async updateSessionState(e){const r=await this.api.getSession(this.id);this.newStateHandle(r,e)}newStateHandle(e,r){var n;switch(!e.next_action&&e.status&&(e.next_action=null),e.next_action){case"wait":{window.clearTimeout(this.pollingTimer),this.pollingTimer=window.setTimeout(()=>this.updateSessionState(r).catch(i=>{i instanceof Response&&i.status===404&&(r==null||r(new Error(`Session ${this.id} has expired`)))}),At);break}}e.next_action!==((n=this.state)==null?void 0:n.next_action)&&this.stateChangeHandlers.forEach(i=>i(e)),e.next_action===null&&this.completeSession(re(e)),this.state=e}}async function St(t){return!t.ok&&t.status>=400&&t.status<=500?t.json():t}function re(t){const e={...t};return delete e.next_action,e}const Ct={base_url:"https://api.hellgate.io"};class ne{constructor(e,r){Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"paymentFlowHandlers",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.session.dispose(),Object.values(this.paymentFlowHandlers).forEach(n=>n==null?void 0:n.dispose())}}),Object.defineProperty(this,"onSessionComplete",{enumerable:!0,configurable:!0,writable:!0,value:n=>{this.session.onClose(n)}})}use(e){return this.paymentFlowHandlers[e]}static async init(e,r={}){const{session:n,cardHandler:i,handler3DS:a}=await this.initHandlers(e,r);return new ne(n,{CARD:i,"3DS":a})}static async initHandlers(e,r){const n={...Ct,...r},i=new Et(n.base_url,n.abortCtrl),a=new _t(e,i);await a.init();const s=a.isNextAction("tokenize_card")||a.isNextAction("refresh_security_code")?await this.createCardHandler(a):void 0,o=this.create3DSHandler(a,r);return{session:a,cardHandler:s,handler3DS:o}}static createCardHandler(e){return $.init(e)}static create3DSHandler(e,r){return new ie(e,{domContainer:r.challenge_3ds_container,labelText:r.challenge_3ds_label_text})}}f.CardElement=ve,f.CardExpirationDateElement=Se,f.CardNumberElement=Pe,f.CardVerificationCodeElement=Oe,f.Hellgate=ne,f.Hellgate3DSHandler=ie,f.HellgateCardHandler=$,f.TextElement=te,f.createElement=K,f.extractCardNumberValue=ee,f.extractExpiryDateValue=Z,f.putCardNumberValue=Ce,f.putExpiryDateValue=Q,f.uid=He,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});globalThis.HellgateSDK&&(globalThis.Hellgate=globalThis.HellgateSDK.Hellgate,delete globalThis.HellgateSDK);
@@ -1,5 +1,5 @@
1
1
  import { SessionStateDTO } from '../typings';
2
- export declare const sessionBTTokenizeCardActionStateDTOMock: SessionStateDTO;
2
+ export declare const sessionGuardianTokenizeCardActionStateDTOMock: SessionStateDTO;
3
3
  export declare const sessionWaitActionStateDTOMock: SessionStateDTO;
4
4
  export declare const sessionPendingResultStateDTOMock: SessionStateDTO;
5
5
  export declare const sessionSuccessResultStateDTOMock: SessionStateDTO;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starfish-codes/hellgate",
3
- "version": "3.7.0",
3
+ "version": "3.8.1",
4
4
  "license": "Apache-2.0",
5
5
  "author": {
6
6
  "name": "Starfish GmbH & Co. KG",
@@ -45,9 +45,9 @@
45
45
  "@types/react-dom": "^18.2.22",
46
46
  "@typescript-eslint/eslint-plugin": "^7.2.0",
47
47
  "@typescript-eslint/parser": "^7.2.0",
48
- "@vitest/browser": "^1.4.0",
49
- "@vitest/coverage-istanbul": "^1.4.0",
50
- "@vitest/ui": "^1.4.0",
48
+ "@vitest/browser": "^3.1.3",
49
+ "@vitest/coverage-istanbul": "^3.1.3",
50
+ "@vitest/ui": "^3.1.3",
51
51
  "autoprefixer": "^10.4.18",
52
52
  "clsx": "^2.1.0",
53
53
  "commitizen": "^4.3.0",
@@ -61,33 +61,36 @@
61
61
  "mobx-react": "^9.1.0",
62
62
  "mobx-react-viewmodel": "^0.2.0",
63
63
  "playwright": "^1.49.1",
64
- "postcss": "^8.4.36",
65
- "postcss-nesting": "^12.1.0",
64
+ "postcss": "^8.5.3",
65
+ "postcss-nesting": "^13.0.1",
66
66
  "prettier": "^3.2.5",
67
67
  "react": "^18.2.0",
68
68
  "react-dom": "^18.2.0",
69
69
  "react-hook-form": "^7.51.1",
70
70
  "react-router-dom": "^6.22.3",
71
71
  "rollup-plugin-typescript-paths": "^1.5.0",
72
- "semantic-release": "^23.0.4",
72
+ "semantic-release": "^24.2.3",
73
73
  "tailwindcss": "^3.4.1",
74
74
  "tailwindcss-animate": "^1.0.7",
75
75
  "typescript": "^5.4.2",
76
- "vite": "^5.4.12",
77
- "vite-plugin-checker": "^0.6.4",
78
- "vite-plugin-svg-icons": "^2.0.1",
79
- "vite-plugin-top-level-await": "^1.4.1",
80
- "vitest": "^1.4.0",
76
+ "vite": "^6.3.5",
77
+ "vite-plugin-checker": "^0.9.3",
78
+ "vite-plugin-svg-icons-ng": "^1.4.0",
79
+ "vite-plugin-top-level-await": "^1.5.0",
80
+ "vitest": "^3.1.3",
81
81
  "vitest-fetch-mock": "^0.2.2",
82
- "webdriverio": "^8.34.1"
82
+ "webdriverio": "^9.12.7"
83
83
  },
84
84
  "dependencies": {
85
- "@basis-theory/basis-theory-js": "^1.79.2",
86
85
  "credit-card-type": "^10.0.0",
87
86
  "fast-luhn": "^2.0.2",
88
87
  "imask": "^7.5.0",
89
88
  "jose": "^5.6.3"
90
89
  },
90
+ "resolutions": {
91
+ "braces": "3.0.3",
92
+ "ws": "8.17.1"
93
+ },
91
94
  "lint-staged": {
92
95
  "*.ts*": [
93
96
  "prettier --config .prettierrc --write",