Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@moneyhash/js-sdk

Package Overview
Dependencies
Maintainers
0
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@moneyhash/js-sdk - npm Package Compare versions

Comparing version 1.10.1 to 1.11.0-beta.0

dist/warnIf-30b9c76c.js

2

dist/headless.cjs.js

@@ -1,1 +0,1 @@

"use strict";var we=Object.defineProperty,fe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var q=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var j=(o,e,t)=>e in o?we(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,P=(o,e)=>{for(var t in e||(e={}))ie.call(e,t)&&j(o,t,e[t]);if(q)for(var t of q(e))re.call(e,t)&&j(o,t,e[t]);return o},_=(o,e)=>fe(o,Pe(e));var se=(o,e)=>{var t={};for(var n in o)ie.call(o,n)&&e.indexOf(n)<0&&(t[n]=o[n]);if(o!=null&&q)for(var n of q(o))e.indexOf(n)<0&&re.call(o,n)&&(t[n]=o[n]);return t};var w=(o,e,t)=>(j(o,typeof e!="symbol"?e+"":e,t),t),be=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var b=(o,e,t)=>{if(e.has(o))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(o):e.set(o,t)};var y=(o,e,t)=>(be(o,e,"access private method"),t);var h=(o,e,t)=>new Promise((n,a)=>{var r=i=>{try{s(t.next(i))}catch(c){a(c)}},d=i=>{try{s(t.throw(i))}catch(c){a(c)}},s=i=>i.done?n(i.value):Promise.resolve(i.value).then(r,d);s((t=t.apply(o,e)).next())});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("./warnIf-aa9250a6.cjs");function ke(){return typeof window!="undefined"}const k=class{constructor(){ke()&&this.initSDKCommunicationIframe()}initSDKCommunicationIframe(){if(document.getElementById("moneyhash-headless-sdk"))return;const e=l.getIframeUrl(),t=new URL(`${e}/embed/headless-sdk`);t.searchParams.set("sdk","true"),t.searchParams.set("parent",window.location.origin),t.searchParams.set("version","js@1.10.1");const n=document.createElement("iframe");n.id="moneyhash-headless-sdk",n.src=t.toString(),n.hidden=!0,document.body.appendChild(n),k.messagingService=new l.MessagingService({target:n.contentWindow,targetOrigin:e}),k.isCommunicationReady=new Promise(a=>{var d;const r=s=>{var i;s.data.type==="headlessSDK:init"&&(a(),(i=k.messagingService)==null||i.removeListener(r))};(d=k.messagingService)==null||d.onReceive(r)})}request(n){return h(this,arguments,function*({api:e,payload:t}){return yield k.isCommunicationReady,new Promise((a,r)=>{var s,i;(s=k.messagingService)==null||s.send({type:e,data:t});const d=c=>{var g;const{type:p,data:u}=c.data;p===e&&(u.status==="resolved"?a(u.payload):r(u.payload),(g=k.messagingService)==null||g.removeListener(d))};(i=k.messagingService)==null||i.onReceive(d)})})}postMessage(e){var t;(t=k.messagingService)==null||t.send({type:e})}};let C=k;w(C,"messagingService",null),w(C,"isCommunicationReady");class F{constructor(){w(this,"promise");w(this,"resolve");w(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}function Ae(){var e;return(e=window.MONEYHASH_VAULT_API_URL)!=null?e:"https://vault.moneyhash.io"}function v(){var e;return(e=window.MONEYHASH_VAULT_INPUT_IFRAME_URL)!=null?e:"https://vault-form.moneyhash.io"}function oe(o){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!o.includes(t))return t;return null}function de(o){return(Array.isArray(o)?o.length:Object.keys(o).length)===0}function O(o,e){return new Promise((t,n)=>{if(document.getElementById(e)){t(void 0);return}const r=document.createElement("script");r.src=o,r.id=e,r.addEventListener("load",()=>{t(void 0)}),r.addEventListener("error",()=>{n(new Error("Script failed to load"))}),document.body.appendChild(r)})}function Ee(o){return new Promise(e=>{setTimeout(()=>{e("done")},o*1e3)})}const le=new Set(["method","customerBalance","savedCard"]);var M,K,R,Y,H,ce,$,pe,N,ue,L,x,V,he,D,me,T,ge,W,ye;class Ie{constructor(e){b(this,M);b(this,R);b(this,H);b(this,$);b(this,N);b(this,L);b(this,V);b(this,D);b(this,T);b(this,W);w(this,"options");w(this,"sdkApiHandler",new C);w(this,"sdkEmbed");w(this,"vaultSubmitListener",{current:null});w(this,"mountedCardElements",[]);w(this,"googlePaymentsClient",null);w(this,"cardForm",{collect:()=>h(this,null,function*(){l.throwIf(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to collect card!");const e=oe(this.mountedCardElements);l.throwIf(!!e,`You must mount ${e} element!`);const t=yield this.sdkApiHandler.request({api:"sdk:generateAccessToken",payload:{publicApiKey:this.options.publicApiKey}});return y(this,R,Y).call(this,{accessToken:t})}),pay:s=>h(this,[s],function*({intentId:e,cardData:t,saveCard:n,billingData:a,shippingData:r,installmentPlanData:d}){return this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",billingData:a,shippingData:r,cardEmbed:t,saveCard:n,installmentPlanData:d}})}),createCardToken:n=>h(this,[n],function*({cardIntentId:e,cardData:t}){return this.sdkApiHandler.request({api:"sdk:createCardToken",payload:{cardIntentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",cardEmbed:t}})})});this.options=e,this.sdkEmbed=new l.SDKEmbed(_(P({},e),{headless:!0})),y(this,D,me).call(this,this.vaultSubmitListener)}getIntentDetails(e){return this.sdkApiHandler.request({api:"sdk:getIntentDetails",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getIntentMethods(e){return this.sdkApiHandler.request({api:"sdk:getIntentMethods",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getMethods(e){return"intentId"in e?this.getIntentMethods(e.intentId):(l.throwIf(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get methods!"),l.throwIf(this.options.type==="payout","getMethods is not allowed for payout!"),this.sdkApiHandler.request({api:"sdk:getMethods",payload:P({intentType:this.options.type,lang:this.sdkEmbed.lang,publicApiKey:this.options.publicApiKey},e)}))}proceedWith({intentId:e,type:t,id:n,useWalletBalance:a,metaData:r,installmentPlanData:d}){return l.throwIf(!le.has(t),`type must be a valid one (${[...le].join(" | ")})`),this.sdkApiHandler.request({api:"sdk:proceedWith",payload:{proceedWith:t,intentType:this.options.type,intentId:e,id:n,lang:this.sdkEmbed.lang,useWalletBalance:a,metaData:r,installmentPlanData:d}})}resetSelectedMethod(e){return this.sdkApiHandler.request({api:"sdk:resetSelectedMethod",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}deleteCard({cardId:e,intentSecret:t}){return l.throwIf(this.options.type==="payout","deleteCard is allowed only for payment intent!"),this.sdkApiHandler.request({api:"sdk:deleteCard",payload:{cardId:e,intentSecret:t,lang:this.sdkEmbed.lang}})}payWithApplePay(c){return h(this,arguments,function*({intentId:e,currency:t,amount:n,countryCode:a,onCancel:r=()=>{},onError:d,onComplete:s,billingData:i={}}){if(yield O("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const p=new ApplePaySession(3,{countryCode:a,currencyCode:t,supportedNetworks:["visa","masterCard","amex","discover","mada"],merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${n}`},requiredShippingContactFields:["email"]}),{state:u,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(u==="FORM_FIELDS"){if(de(i))throw new Error("Billing data is missing while calling payWithApplePay");yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"APPLE_PAY",lang:this.sdkEmbed.lang,billingData:i}})}}catch(A){throw yield this.resetSelectedMethod(e),A}const f=new F;return p.onvalidatemerchant=A=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{secret:g.secret,validationUrl:A.validationURL,parentOrigin:window.location.origin}}).then(I=>p.completeMerchantValidation(I)).catch(d),p.onpaymentauthorized=A=>{var I;return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:JSON.stringify({token:A.payment.token}),receiptBillingData:{email:(I=A.payment.shippingContact)==null?void 0:I.emailAddress}}}).then(U=>{p.completePayment(ApplePaySession.STATUS_SUCCESS),s==null||s(),f.resolve(U)}).catch(()=>{p.completePayment(ApplePaySession.STATUS_FAILURE),d==null||d(),f.reject(void 0)})},p.oncancel=r,p.begin(),f.promise})}renderGooglePayButton(n){return h(this,null,function*(){var a=n,{onClick:e}=a,t=se(a,["onClick"]);var s;const r=document.getElementById("moneyHash-google-pay-button");l.throwIf(!r,"Couldn't find an element with id moneyHash-google-pay-button to render the google pay button!"),yield O("https://pay.google.com/gp/p/js/pay.js","moneyHash-google-pay-sdk"),this.googlePaymentsClient=new window.google.payments.api.PaymentsClient({environment:((s=this.options.googlePay)==null?void 0:s.environment)||"PRODUCTION"});const d=y(this,M,K).call(this);this.googlePaymentsClient.isReadyToPay(d).then(i=>{if(i.result){const c=this.googlePaymentsClient.createButton(_(P({buttonSizeMode:"fill",buttonType:"pay"},t),{allowedPaymentMethods:d.allowedPaymentMethods,onClick:e}));r==null||r.replaceChildren(c)}else throw new Error("Google Pay is not ready to pay!")}).catch(i=>{console.dir(i)})})}generateGooglePayReceipt({nativePayData:e,onCancel:t}){return l.throwIf(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "generateGooglePayReceipt"'),l.throwIf(!e,"nativePayData is required to generate Google Pay receipt!"),l.throwIf(!e.amount,"nativePayData.amount is required to generate Google Pay receipt!"),this.googlePaymentsClient.loadPaymentData(_(P({},y(this,M,K).call(this,e)),{transactionInfo:{totalPriceStatus:"FINAL",totalPriceLabel:"Total",totalPrice:`${e.amount}`,currencyCode:e.currency_code,countryCode:e.country_code},merchantInfo:{merchantName:e.merchant_name,merchantId:e.merchant_id},emailRequired:!0})).then(n=>({receipt:n.paymentMethodData.tokenizationData.token,receiptBillingData:{email:n.email}})).catch(n=>(n.statusCode==="CANCELED"?t==null||t():console.dir(n),Promise.reject(n)))}generateApplePayReceipt(n){return h(this,arguments,function*({nativePayData:e,onCancel:t=()=>{}}){if(yield O("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),l.throwIf(!e,"nativePayData is required to generate Apple Pay receipt!"),!e)return{receipt:"",receiptBillingData:{}};if(l.throwIf(!e.amount,"nativePayData.amount is required to generate Apple Pay receipt!"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const a=new ApplePaySession(3,{countryCode:e.country_code,currencyCode:e.currency_code,supportedNetworks:e.supported_networks,merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${e.amount}`},requiredShippingContactFields:["email"]}),r=new F;return a.onvalidatemerchant=d=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{methodId:e.method_id,validationUrl:d.validationURL,parentOrigin:window.location.origin}}).then(s=>a.completeMerchantValidation(s)).catch(s=>{a.abort(),r.reject(s)}),a.onpaymentauthorized=d=>{var i;const s={receipt:JSON.stringify({token:d.payment.token}),receiptBillingData:{email:(i=d.payment.shippingContact)==null?void 0:i.emailAddress}};a.completePayment(ApplePaySession.STATUS_SUCCESS),r.resolve(s)},a.oncancel=t,a.begin(),r.promise})}submitPaymentReceipt({intentId:e,nativeReceiptData:t}){return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:t.receipt,receiptBillingData:t.receiptBillingData}})}payWithGooglePay(a){return h(this,arguments,function*({intentId:e,billingData:t={},onCancel:n}){l.throwIf(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "payWithGooglePay"');let r=yield this.proceedWith({intentId:e,type:"method",id:"GOOGLE_PAY"});try{if(r.state==="FORM_FIELDS"){if(de(t))throw new Error("Billing data is missing while calling payWithGooglePay");r=yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"GOOGLE_PAY",lang:this.sdkEmbed.lang,billingData:t}})}}catch(s){throw yield this.resetSelectedMethod(e),s}const{nativePayData:d}=r;return d?this.generateGooglePayReceipt({nativePayData:d,onCancel:n}).then(s=>this.submitPaymentReceipt({intentId:e,nativeReceiptData:s})):r})}renderForm(e){return l.throwIf(!e.selector,"selector is required for renderForm"),l.throwIf(!e.intentId,"intentId is required for renderForm"),this.sdkEmbed.render(e)}setLocale(e){l.warnIf(!!e&&!l.supportedLanguages.has(e),`Invalid locale. Supported languages (${[...l.supportedLanguages].join(" | ")})`);const t=l.supportedLanguages.has(e)?e:"en";return this.sdkEmbed.setLocale(t)}removeEventListeners(){return this.sdkEmbed.abortService()}updateIntentDiscount({intentId:e,discount:t}){return l.throwIf(!t.title.en,"English discount title is required!"),this.sdkApiHandler.request({api:"sdk:updateIntentDiscount",payload:{intentId:e,discount:t,lang:this.sdkEmbed.lang}})}updateIntentFees({intentId:e,fees:t}){return t.forEach(n=>{l.throwIf(!n.title.en,"English fee title is required!")}),this.sdkApiHandler.request({api:"sdk:updateIntentFees",payload:{intentId:e,fees:t,lang:this.sdkEmbed.lang}})}elements({styles:e,classes:t,fontSourceCss:n}){const a=[],r={},d=new Map;let s=!1;return y(this,V,he).call(this,a),{create:({elementType:i,elementOptions:c})=>{var I,U;const p=new Map;let u=null;const g=P(P({},t),c.classes),f=((I=g==null?void 0:g.focus)==null?void 0:I.split(" "))||["MoneyHashElement--focus"],A=((U=g==null?void 0:g.error)==null?void 0:U.split(" "))||["MoneyHashElement--error"];return{mount:()=>{const m=document.querySelector(c.selector);l.throwIf(!m,`Couldn't find an element with selector ${c.selector}!`),m.classList.add("MoneyHashElement"),a.push(G=>{var z,J,X,Q,Z,ee,te,ae,ne;const{type:E,data:S}=G.data;if(E===`${i}@mount`&&(r[i]=S.isValid,(z=p.get(`${i}@mount`))==null||z()),E===`${i}@focus`){m.classList.add(...f),(J=p.get(`${i}@focus`))==null||J();return}if(E===`${i}@blur`){m.classList.remove(...f),(X=p.get(`${i}@blur`))==null||X();return}if(E===`${i}@error`){S.isValid?m.classList.remove(...A):m.classList.add(...A),(Q=p.get(`${i}@error`))==null||Q(S);return}if(E===`${i}@changeInput`){if((Z=p.get(`${i}@changeInput`))==null||Z({isValid:S.isValid,length:S.length}),r[i]=S.isValid,d.get("validityChange")){const B=Object.values(r).every(Boolean);B!==s&&((ee=d.get("validityChange"))==null||ee(B),s=B)}return}if(E===`${i}@cardNumberChange`){(te=p.get(`${i}@cardNumberChange`))==null||te(S);return}if(E===`${i}@key:Backspace`){(ae=p.get(`${i}@key:Backspace`))==null||ae();return}E===`${i}@key:Enter`&&((ne=p.get(`${i}@key:Enter`))==null||ne())}),u=y(this,T,ge).call(this,{container:m,elementType:i,elementOptions:c,styles:P(P({},e),c.styles),fontSourceCss:n}),this.mountedCardElements.push(i)},on:(m,G)=>{p.set(`${i}@${m}`,G)},off:m=>p.delete(`${i}@${m}`),focus:()=>{var m;(m=u==null?void 0:u.contentWindow)==null||m.postMessage({type:"focus"},v())},blur:()=>{var m;(m=u==null?void 0:u.contentWindow)==null||m.postMessage({type:"blur"},v())},clear:()=>{var m;(m=u==null?void 0:u.contentWindow)==null||m.postMessage({type:"clear"},v())}}},on:(i,c)=>{d.set(i,c)}}}submitForm(i){return h(this,arguments,function*({intentId:e,accessToken:t,billingData:n,shippingData:a,saveCard:r,paymentMethod:d="CARD",installmentPlanData:s}){let c;if(t){const u=oe(this.mountedCardElements);l.throwIf(!!u,`You must mount ${u} element!`),c=yield y(this,R,Y).call(this,{accessToken:t})}return yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:d,lang:this.sdkEmbed.lang,billingData:n,shippingData:a,cardEmbed:c,saveCard:r,installmentPlanData:s}})})}selectInstallmentPlan(a){return h(this,arguments,function*({intentId:e,planId:t,issuerCode:n}){return this.sdkApiHandler.request({api:"sdk:selectInstallmentPlan",payload:{planId:t,intentId:e,issuerCode:n,lang:this.sdkEmbed.lang}})})}getInstallmentPlans(a){return h(this,arguments,function*({first6Digits:e,amount:t,currency:n}){return l.throwIf(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get installment plans!"),this.sdkApiHandler.request({api:"sdk:getInstallmentPlans",payload:{first6Digits:e,amount:t,currency:n,publicApiKey:this.options.publicApiKey,lang:this.sdkEmbed.lang}})})}submitCvv(a){return h(this,arguments,function*({intentId:e,cvv:t,installmentPlanData:n}){return this.sdkApiHandler.request({api:"sdk:submitCardCvv",payload:{intentId:e,cvv:t,installmentPlanData:n,lang:this.sdkEmbed.lang}})})}renderUrl(r){return h(this,arguments,function*({intentId:e,url:t,renderStrategy:n,options:a}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),n){case"IFRAME":return y(this,H,ce).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return y(this,$,pe).call(this,{url:t,intentId:e,options:a});case"REDIRECT":return y(this,N,ue).call(this,{url:t,options:a});default:return null}})}onExpiration(e,t){if(!e)return()=>{};const n=new Date(e),a=setInterval(()=>h(this,null,function*(){const r=new Date;n<r&&(clearInterval(a),t())}),1e3);return()=>clearInterval(a)}}M=new WeakSet,K=function(e){var n,a;return{apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[P({type:"CARD",parameters:{allowedAuthMethods:((n=this.options.googlePay)==null?void 0:n.allowedAuthMethods)||["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:((a=this.options.googlePay)==null?void 0:a.allowedCardNetworks)||["AMEX","DISCOVER","JCB","MASTERCARD","VISA"]}},e?{tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:e.gateway,gatewayMerchantId:e.gateway_merchant_id}}}:{})]}},R=new WeakSet,Y=function(t){return h(this,arguments,function*({accessToken:e}){const n=new F;this.vaultSubmitListener.current=d=>{const{type:s,data:i}=d.data;s==="vaultSubmit:success"&&n.resolve(i),s==="vaultSubmit:error"&&n.reject(i)};const a=y(this,W,ye).call(this,{accessToken:e}),r=yield n.promise;return a.remove(),r})},H=new WeakSet,ce=function(n){return h(this,arguments,function*({intentId:e,url:t}){const a=document.querySelector("#rendered-url-iframe-container");l.throwIf(!a,"Couldn't find an element with id rendered-url-iframe-container to render the iframe!");const r=document.createElement("iframe");r.src=t,r.style.setProperty("border","0","important"),r.style.setProperty("width","100%","important"),r.style.setProperty("height","100%","important"),a==null||a.replaceChildren(r),yield y(this,L,x).call(this,{intentId:e}),r.remove()})},$=new WeakSet,pe=function(a){return h(this,arguments,function*({intentId:e,url:t,options:n={}}){const{width:r=600,height:d=400,left:s=200,top:i=200}=n.window||{},c=window.open(t,"",`width=${r},height=${d},left=${s},top=${i}`);l.throwIf(!c,"Popup blocked by browser!"),yield y(this,L,x).call(this,{intentId:e,isUsingPopUp:!0}),c==null||c.close()})},N=new WeakSet,ue=function(n){return h(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},L=new WeakSet,x=function(n){return h(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const a=new F,r=d=>h(this,null,function*(){var i,c,p,u;if(d.origin!==l.getIframeUrl())return;const{type:s}=d.data;if(s==="intentResult"){t&&this.sdkApiHandler.postMessage("EmbedResultClose");const[g]=yield Promise.all([this.getIntentDetails(e),Ee(2)]),f=g.transaction.status.split(".")[1];f==="successful"||f.startsWith("pending")?(c=(i=this.options).onComplete)==null||c.call(i,P({type:this.options.type},g)):(u=(p=this.options).onFail)==null||u.call(p,P({type:this.options.type},g)),a.resolve(()=>null),window.removeEventListener("message",r)}});return window.addEventListener("message",r),a.promise})},V=new WeakSet,he=function(e){const t=n=>{n.origin===v()&&e.forEach(a=>{a(n)})};window.addEventListener("message",t)},D=new WeakSet,me=function(e){const t=n=>{e.current&&e.current(n)};window.addEventListener("message",t)},T=new WeakSet,ge=function({container:e,elementType:t,elementOptions:n,styles:a,fontSourceCss:r}){var c,p,u,g,f;const d=v(),s=new URL(`${d}/vaultField/vaultField.html`);r&&s.searchParams.set("fontSourceCss",r),s.searchParams.set("host",btoa(window.location.origin)),s.searchParams.set("type",t),((c=n.validation)==null?void 0:c.required)!==void 0&&s.searchParams.set("required",`${(p=n.validation)==null?void 0:p.required}`),s.searchParams.set("placeholder",(u=n.placeholder)!=null?u:""),s.searchParams.set("inputMode",(g=n.inputMode)!=null?g:""),s.searchParams.set("lang",this.sdkEmbed.lang),s.searchParams.set("direction",(a==null?void 0:a.direction)||""),s.searchParams.set("color",JSON.stringify(a!=null&&a.color?a.color:"#000")),s.searchParams.set("placeholderColor",(a==null?void 0:a.placeholderColor)||"#ccc"),s.searchParams.set("backgroundColor",(a==null?void 0:a.backgroundColor)||"transparent"),s.searchParams.set("fontSize",(a==null?void 0:a.fontSize)||""),s.searchParams.set("fontFamily",(a==null?void 0:a.fontFamily)||""),s.searchParams.set("fontWeight",`${a==null?void 0:a.fontWeight}`),s.searchParams.set("fontStyle",(a==null?void 0:a.fontStyle)||""),s.searchParams.set("padding",(a==null?void 0:a.padding)||"");const i=document.createElement("iframe");return i.src=s.toString(),i.style.height=(f=a==null?void 0:a.height)!=null?f:"40px",i.style.setProperty("overflow","hidden","important"),i.style.setProperty("display","block","important"),i.style.setProperty("width","100%","important"),i.style.setProperty("maxWidth","100%","important"),i.style.setProperty("border","0","important"),i.style.setProperty("margin","0","important"),i.style.setProperty("padding","0","important"),i.style.setProperty("userSelect","none","important"),i.style.setProperty("colorScheme","light only","important"),e.replaceChildren(i),i},W=new WeakSet,ye=function({accessToken:e}){const t=v(),n=Ae(),a=new URL(`${t}/vaultSubmit/vaultSubmit.html`);a.searchParams.set("host",btoa(window.location.origin)),a.searchParams.set("vault_api_url",`${n}/api/v1/tokens/`),a.searchParams.set("access_token",e),a.searchParams.set("lang",this.sdkEmbed.lang);const r=document.createElement("iframe");return r.id="moneyhash-submit-iframe",r.src=a.toString(),r.hidden=!0,document.body.appendChild(r),r};exports.IFrameSandboxOptions=l.IFrameSandboxOptions;exports.default=Ie;
"use strict";var we=Object.defineProperty,Pe=Object.defineProperties;var be=Object.getOwnPropertyDescriptors;var q=Object.getOwnPropertySymbols;var re=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var G=(o,e,t)=>e in o?we(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,P=(o,e)=>{for(var t in e||(e={}))re.call(e,t)&&G(o,t,e[t]);if(q)for(var t of q(e))ie.call(e,t)&&G(o,t,e[t]);return o},_=(o,e)=>Pe(o,be(e));var se=(o,e)=>{var t={};for(var r in o)re.call(o,r)&&e.indexOf(r)<0&&(t[r]=o[r]);if(o!=null&&q)for(var r of q(o))e.indexOf(r)<0&&ie.call(o,r)&&(t[r]=o[r]);return t};var f=(o,e,t)=>(G(o,typeof e!="symbol"?e+"":e,t),t),ke=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var b=(o,e,t)=>{if(e.has(o))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(o):e.set(o,t)};var y=(o,e,t)=>(ke(o,e,"access private method"),t);var h=(o,e,t)=>new Promise((r,a)=>{var i=n=>{try{s(t.next(n))}catch(l){a(l)}},d=n=>{try{s(t.throw(n))}catch(l){a(l)}},s=n=>n.done?r(n.value):Promise.resolve(n.value).then(i,d);s((t=t.apply(o,e)).next())});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("./warnIf-3557d784.cjs");function Ae(){return typeof window!="undefined"}const k=class{constructor(){Ae()&&this.initSDKCommunicationIframe()}initSDKCommunicationIframe(){if(document.getElementById("moneyhash-headless-sdk"))return;const e=c.getIframeUrl(),t=new URL(`${e}/embed/headless-sdk`);t.searchParams.set("sdk","true"),t.searchParams.set("parent",window.location.origin),t.searchParams.set("version","js@1.11.0-beta.0");const r=document.createElement("iframe");r.id="moneyhash-headless-sdk",r.src=t.toString(),r.hidden=!0,document.body.appendChild(r),k.messagingService=new c.MessagingService({target:r.contentWindow,targetOrigin:e}),k.isCommunicationReady=new Promise(a=>{var d;const i=s=>{var n;s.data.type==="headlessSDK:init"&&(a(),(n=k.messagingService)==null||n.removeListener(i))};(d=k.messagingService)==null||d.onReceive(i)})}request(r){return h(this,arguments,function*({api:e,payload:t}){return yield k.isCommunicationReady,new Promise((a,i)=>{var s,n;(s=k.messagingService)==null||s.send({type:e,data:t});const d=l=>{var g;const{type:p,data:u}=l.data;p===e&&(u.status==="resolved"?a(u.payload):i(u.payload),(g=k.messagingService)==null||g.removeListener(d))};(n=k.messagingService)==null||n.onReceive(d)})})}postMessage(e){var t;(t=k.messagingService)==null||t.send({type:e})}};let C=k;f(C,"messagingService",null),f(C,"isCommunicationReady");class F{constructor(){f(this,"promise");f(this,"resolve");f(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}function Ee(){var e;return(e=window.MONEYHASH_VAULT_API_URL)!=null?e:"https://vault.moneyhash.io"}function v(){var e;return(e=window.MONEYHASH_VAULT_INPUT_IFRAME_URL)!=null?e:"https://vault-form.moneyhash.io"}function oe(o){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!o.includes(t))return t;return null}function de(o){return(Array.isArray(o)?o.length:Object.keys(o).length)===0}function le(o){if(typeof o!="object"||o===null)return!1;const e=Object.getPrototypeOf(o);return e===Object.prototype||e===null}function B(o,e){return new Promise((t,r)=>{if(document.getElementById(e)){t(void 0);return}const i=document.createElement("script");i.src=o,i.id=e,i.addEventListener("load",()=>{t(void 0)}),i.addEventListener("error",()=>{r(new Error("Script failed to load"))}),document.body.appendChild(i)})}function Ie(o){return new Promise(e=>{setTimeout(()=>{e("done")},o*1e3)})}const ce=new Set(["method","customerBalance","savedCard"]);var M,K,R,Y,H,pe,$,ue,N,he,L,x,V,me,D,ge,j,ye,O,fe;class Se{constructor(e){b(this,M);b(this,R);b(this,H);b(this,$);b(this,N);b(this,L);b(this,V);b(this,D);b(this,j);b(this,O);f(this,"options");f(this,"sdkApiHandler",new C);f(this,"sdkEmbed");f(this,"vaultSubmitListener",{current:null});f(this,"mountedCardElements",[]);f(this,"googlePaymentsClient",null);f(this,"cardForm",{collect:()=>h(this,null,function*(){c.throwIf(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to collect card!");const e=oe(this.mountedCardElements);c.throwIf(!!e,`You must mount ${e} element!`);const t=yield this.sdkApiHandler.request({api:"sdk:generateAccessToken",payload:{publicApiKey:this.options.publicApiKey}});return y(this,R,Y).call(this,{accessToken:t})}),pay:s=>h(this,[s],function*({intentId:e,cardData:t,saveCard:r,billingData:a,shippingData:i,installmentPlanData:d}){return this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",billingData:a,shippingData:i,cardEmbed:t,saveCard:r,installmentPlanData:d}})}),createCardToken:r=>h(this,[r],function*({cardIntentId:e,cardData:t}){return this.sdkApiHandler.request({api:"sdk:createCardToken",payload:{cardIntentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",cardEmbed:t}})})});this.options=e,this.sdkEmbed=new c.SDKEmbed(_(P({},e),{headless:!0})),y(this,D,ge).call(this,this.vaultSubmitListener)}getIntentDetails(e){return this.sdkApiHandler.request({api:"sdk:getIntentDetails",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getIntentMethods(e){return this.sdkApiHandler.request({api:"sdk:getIntentMethods",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getMethods(e){return"intentId"in e?this.getIntentMethods(e.intentId):(c.throwIf(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get methods!"),c.throwIf(this.options.type==="payout","getMethods is not allowed for payout!"),this.sdkApiHandler.request({api:"sdk:getMethods",payload:P({intentType:this.options.type,lang:this.sdkEmbed.lang,publicApiKey:this.options.publicApiKey},e)}))}proceedWith({intentId:e,type:t,id:r,useWalletBalance:a,metaData:i,installmentPlanData:d}){return c.throwIf(!ce.has(t),`type must be a valid one (${[...ce].join(" | ")})`),this.sdkApiHandler.request({api:"sdk:proceedWith",payload:{proceedWith:t,intentType:this.options.type,intentId:e,id:r,lang:this.sdkEmbed.lang,useWalletBalance:a,metaData:i,installmentPlanData:d}})}resetSelectedMethod(e){return this.sdkApiHandler.request({api:"sdk:resetSelectedMethod",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}deleteCard({cardId:e,intentSecret:t}){return c.throwIf(this.options.type==="payout","deleteCard is allowed only for payment intent!"),this.sdkApiHandler.request({api:"sdk:deleteCard",payload:{cardId:e,intentSecret:t,lang:this.sdkEmbed.lang}})}payWithApplePay(l){return h(this,arguments,function*({intentId:e,currency:t,amount:r,countryCode:a,onCancel:i=()=>{},onError:d,onComplete:s,billingData:n=!0}){if(yield B("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const p=new ApplePaySession(3,{countryCode:a,currencyCode:t,supportedNetworks:["visa","masterCard","amex","discover","mada"],merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${r}`},requiredShippingContactFields:["email"]}),{state:u,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(u==="FORM_FIELDS"){if(!le(n)||de(n))throw new Error("Billing data is missing while calling payWithApplePay");yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"APPLE_PAY",lang:this.sdkEmbed.lang,billingData:n}})}}catch(A){throw yield this.resetSelectedMethod(e),A}const w=new F;return p.onvalidatemerchant=A=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{secret:g.secret,validationUrl:A.validationURL,parentOrigin:window.location.origin}}).then(I=>p.completeMerchantValidation(I)).catch(d),p.onpaymentauthorized=A=>{var I;return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:JSON.stringify({token:A.payment.token}),receiptBillingData:{email:(I=A.payment.shippingContact)==null?void 0:I.emailAddress}}}).then(U=>{p.completePayment(ApplePaySession.STATUS_SUCCESS),s==null||s(),w.resolve(U)}).catch(()=>{p.completePayment(ApplePaySession.STATUS_FAILURE),d==null||d(),w.reject(void 0)})},p.oncancel=i,p.begin(),w.promise})}renderGooglePayButton(r){return h(this,null,function*(){var a=r,{onClick:e}=a,t=se(a,["onClick"]);var s;const i=document.getElementById("moneyHash-google-pay-button");c.throwIf(!i,"Couldn't find an element with id moneyHash-google-pay-button to render the google pay button!"),yield B("https://pay.google.com/gp/p/js/pay.js","moneyHash-google-pay-sdk"),this.googlePaymentsClient=new window.google.payments.api.PaymentsClient({environment:((s=this.options.googlePay)==null?void 0:s.environment)||"PRODUCTION"});const d=y(this,M,K).call(this);this.googlePaymentsClient.isReadyToPay(d).then(n=>{if(n.result){const l=this.googlePaymentsClient.createButton(_(P({buttonSizeMode:"fill",buttonType:"pay"},t),{allowedPaymentMethods:d.allowedPaymentMethods,onClick:e}));i==null||i.replaceChildren(l)}else throw new Error("Google Pay is not ready to pay!")}).catch(n=>{console.dir(n)})})}generateGooglePayReceipt({nativePayData:e,onCancel:t,billingData:r=!0}){return c.throwIf(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "generateGooglePayReceipt"'),c.throwIf(!e,"nativePayData is required to generate Google Pay receipt!"),c.throwIf(!e.amount,"nativePayData.amount is required to generate Google Pay receipt!"),this.googlePaymentsClient.loadPaymentData(_(P({},y(this,M,K).call(this,e)),{transactionInfo:{totalPriceStatus:"FINAL",totalPriceLabel:"Total",totalPrice:`${e.amount}`,currencyCode:e.currency_code,countryCode:e.country_code},merchantInfo:{merchantName:e.merchant_name,merchantId:e.merchant_id},emailRequired:r})).then(a=>({receipt:a.paymentMethodData.tokenizationData.token,receiptBillingData:{email:a.email}})).catch(a=>(a.statusCode==="CANCELED"?t==null||t():console.dir(a),Promise.reject(a)))}generateApplePayReceipt(a){return h(this,arguments,function*({nativePayData:e,onCancel:t=()=>{},billingData:r=!0}){if(yield B("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),c.throwIf(!e,"nativePayData is required to generate Apple Pay receipt!"),!e)return{receipt:"",receiptBillingData:{}};if(c.throwIf(!e.amount,"nativePayData.amount is required to generate Apple Pay receipt!"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const i=new ApplePaySession(3,{countryCode:e.country_code,currencyCode:e.currency_code,supportedNetworks:e.supported_networks,merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${e.amount}`},requiredShippingContactFields:r?["email"]:void 0}),d=new F;return i.onvalidatemerchant=s=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{methodId:e.method_id,validationUrl:s.validationURL,parentOrigin:window.location.origin}}).then(n=>i.completeMerchantValidation(n)).catch(n=>{i.abort(),d.reject(n)}),i.onpaymentauthorized=s=>{var l;const n={receipt:JSON.stringify({token:s.payment.token}),receiptBillingData:{email:(l=s.payment.shippingContact)==null?void 0:l.emailAddress}};i.completePayment(ApplePaySession.STATUS_SUCCESS),d.resolve(n)},i.oncancel=t,i.begin(),d.promise})}submitPaymentReceipt({intentId:e,nativeReceiptData:t}){return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:t.receipt,receiptBillingData:t.receiptBillingData}})}payWithGooglePay(a){return h(this,arguments,function*({intentId:e,billingData:t=!0,onCancel:r}){c.throwIf(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "payWithGooglePay"');let i=yield this.proceedWith({intentId:e,type:"method",id:"GOOGLE_PAY"});try{if(i.state==="FORM_FIELDS"){if(!le(t)||de(t))throw new Error("Billing data is missing while calling payWithGooglePay");i=yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"GOOGLE_PAY",lang:this.sdkEmbed.lang,billingData:t}})}}catch(s){throw yield this.resetSelectedMethod(e),s}const{nativePayData:d}=i;return d?this.generateGooglePayReceipt({nativePayData:d,onCancel:r,billingData:typeof t=="boolean"?t:!1}).then(s=>this.submitPaymentReceipt({intentId:e,nativeReceiptData:s})):i})}renderForm(e){return c.throwIf(!e.selector,"selector is required for renderForm"),c.throwIf(!e.intentId,"intentId is required for renderForm"),this.sdkEmbed.render(e)}setLocale(e){c.warnIf(!!e&&!c.supportedLanguages.has(e),`Invalid locale. Supported languages (${[...c.supportedLanguages].join(" | ")})`);const t=c.supportedLanguages.has(e)?e:"en";return this.sdkEmbed.setLocale(t)}removeEventListeners(){return this.sdkEmbed.abortService()}updateIntentDiscount({intentId:e,discount:t}){return c.throwIf(!t.title.en,"English discount title is required!"),this.sdkApiHandler.request({api:"sdk:updateIntentDiscount",payload:{intentId:e,discount:t,lang:this.sdkEmbed.lang}})}updateIntentFees({intentId:e,fees:t}){return t.forEach(r=>{c.throwIf(!r.title.en,"English fee title is required!")}),this.sdkApiHandler.request({api:"sdk:updateIntentFees",payload:{intentId:e,fees:t,lang:this.sdkEmbed.lang}})}elements({styles:e,classes:t,fontSourceCss:r}){const a=[],i={},d=new Map;let s=!1;return y(this,V,me).call(this,a),{create:({elementType:n,elementOptions:l})=>{var I,U;const p=new Map;let u=null;const g=P(P({},t),l.classes),w=((I=g==null?void 0:g.focus)==null?void 0:I.split(" "))||["MoneyHashElement--focus"],A=((U=g==null?void 0:g.error)==null?void 0:U.split(" "))||["MoneyHashElement--error"];return{mount:()=>{const m=document.querySelector(l.selector);c.throwIf(!m,`Couldn't find an element with selector ${l.selector}!`),m.classList.add("MoneyHashElement"),a.push(T=>{var z,J,X,Q,Z,ee,te,ae,ne;const{type:E,data:S}=T.data;if(E===`${n}@mount`&&(i[n]=S.isValid,(z=p.get(`${n}@mount`))==null||z()),E===`${n}@focus`){m.classList.add(...w),(J=p.get(`${n}@focus`))==null||J();return}if(E===`${n}@blur`){m.classList.remove(...w),(X=p.get(`${n}@blur`))==null||X();return}if(E===`${n}@error`){S.isValid?m.classList.remove(...A):m.classList.add(...A),(Q=p.get(`${n}@error`))==null||Q(S);return}if(E===`${n}@changeInput`){if((Z=p.get(`${n}@changeInput`))==null||Z({isValid:S.isValid,length:S.length}),i[n]=S.isValid,d.get("validityChange")){const W=Object.values(i).every(Boolean);W!==s&&((ee=d.get("validityChange"))==null||ee(W),s=W)}return}if(E===`${n}@cardNumberChange`){(te=p.get(`${n}@cardNumberChange`))==null||te(S);return}if(E===`${n}@key:Backspace`){(ae=p.get(`${n}@key:Backspace`))==null||ae();return}E===`${n}@key:Enter`&&((ne=p.get(`${n}@key:Enter`))==null||ne())}),u=y(this,j,ye).call(this,{container:m,elementType:n,elementOptions:l,styles:P(P({},e),l.styles),fontSourceCss:r}),this.mountedCardElements.push(n)},on:(m,T)=>{p.set(`${n}@${m}`,T)},off:m=>p.delete(`${n}@${m}`),focus:()=>{var m;(m=u==null?void 0:u.contentWindow)==null||m.postMessage({type:"focus"},v())},blur:()=>{var m;(m=u==null?void 0:u.contentWindow)==null||m.postMessage({type:"blur"},v())},clear:()=>{var m;(m=u==null?void 0:u.contentWindow)==null||m.postMessage({type:"clear"},v())}}},on:(n,l)=>{d.set(n,l)}}}submitForm(n){return h(this,arguments,function*({intentId:e,accessToken:t,billingData:r,shippingData:a,saveCard:i,paymentMethod:d="CARD",installmentPlanData:s}){let l;if(t){const u=oe(this.mountedCardElements);c.throwIf(!!u,`You must mount ${u} element!`),l=yield y(this,R,Y).call(this,{accessToken:t})}return yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:d,lang:this.sdkEmbed.lang,billingData:r,shippingData:a,cardEmbed:l,saveCard:i,installmentPlanData:s}})})}selectInstallmentPlan(a){return h(this,arguments,function*({intentId:e,planId:t,issuerCode:r}){return this.sdkApiHandler.request({api:"sdk:selectInstallmentPlan",payload:{planId:t,intentId:e,issuerCode:r,lang:this.sdkEmbed.lang}})})}getInstallmentPlans(a){return h(this,arguments,function*({first6Digits:e,amount:t,currency:r}){return c.throwIf(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get installment plans!"),this.sdkApiHandler.request({api:"sdk:getInstallmentPlans",payload:{first6Digits:e,amount:t,currency:r,publicApiKey:this.options.publicApiKey,lang:this.sdkEmbed.lang}})})}submitCvv(a){return h(this,arguments,function*({intentId:e,cvv:t,installmentPlanData:r}){return this.sdkApiHandler.request({api:"sdk:submitCardCvv",payload:{intentId:e,cvv:t,installmentPlanData:r,lang:this.sdkEmbed.lang}})})}renderUrl(i){return h(this,arguments,function*({intentId:e,url:t,renderStrategy:r,options:a}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),r){case"IFRAME":return y(this,H,pe).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return y(this,$,ue).call(this,{url:t,intentId:e,options:a});case"REDIRECT":return y(this,N,he).call(this,{url:t,options:a});default:return null}})}onExpiration(e,t){if(!e)return()=>{};const r=new Date(e),a=setInterval(()=>h(this,null,function*(){const i=new Date;r<i&&(clearInterval(a),t())}),1e3);return()=>clearInterval(a)}}M=new WeakSet,K=function(e){var r,a;return{apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[P({type:"CARD",parameters:{allowedAuthMethods:((r=this.options.googlePay)==null?void 0:r.allowedAuthMethods)||["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:((a=this.options.googlePay)==null?void 0:a.allowedCardNetworks)||["AMEX","DISCOVER","JCB","MASTERCARD","VISA"]}},e?{tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:e.gateway,gatewayMerchantId:e.gateway_merchant_id}}}:{})]}},R=new WeakSet,Y=function(t){return h(this,arguments,function*({accessToken:e}){const r=new F;this.vaultSubmitListener.current=d=>{const{type:s,data:n}=d.data;s==="vaultSubmit:success"&&r.resolve(n),s==="vaultSubmit:error"&&r.reject(n)};const a=y(this,O,fe).call(this,{accessToken:e}),i=yield r.promise;return a.remove(),i})},H=new WeakSet,pe=function(r){return h(this,arguments,function*({intentId:e,url:t}){const a=document.querySelector("#rendered-url-iframe-container");c.throwIf(!a,"Couldn't find an element with id rendered-url-iframe-container to render the iframe!");const i=document.createElement("iframe");i.src=t,i.style.setProperty("border","0","important"),i.style.setProperty("width","100%","important"),i.style.setProperty("height","100%","important"),a==null||a.replaceChildren(i),yield y(this,L,x).call(this,{intentId:e}),i.remove()})},$=new WeakSet,ue=function(a){return h(this,arguments,function*({intentId:e,url:t,options:r={}}){const{width:i=600,height:d=400,left:s=200,top:n=200}=r.window||{},l=window.open(t,"",`width=${i},height=${d},left=${s},top=${n}`);c.throwIf(!l,"Popup blocked by browser!"),yield y(this,L,x).call(this,{intentId:e,isUsingPopUp:!0}),l==null||l.close()})},N=new WeakSet,he=function(r){return h(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},L=new WeakSet,x=function(r){return h(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const a=new F,i=d=>h(this,null,function*(){var n,l,p,u;if(d.origin!==c.getIframeUrl())return;const{type:s}=d.data;if(s==="intentResult"){t&&this.sdkApiHandler.postMessage("EmbedResultClose");const[g]=yield Promise.all([this.getIntentDetails(e),Ie(2)]),w=g.transaction.status.split(".")[1];w==="successful"||w.startsWith("pending")?(l=(n=this.options).onComplete)==null||l.call(n,P({type:this.options.type},g)):(u=(p=this.options).onFail)==null||u.call(p,P({type:this.options.type},g)),a.resolve(()=>null),window.removeEventListener("message",i)}});return window.addEventListener("message",i),a.promise})},V=new WeakSet,me=function(e){const t=r=>{r.origin===v()&&e.forEach(a=>{a(r)})};window.addEventListener("message",t)},D=new WeakSet,ge=function(e){const t=r=>{e.current&&e.current(r)};window.addEventListener("message",t)},j=new WeakSet,ye=function({container:e,elementType:t,elementOptions:r,styles:a,fontSourceCss:i}){var l,p,u,g,w;const d=v(),s=new URL(`${d}/vaultField/vaultField.html`);i&&s.searchParams.set("fontSourceCss",i),s.searchParams.set("host",btoa(window.location.origin)),s.searchParams.set("type",t),((l=r.validation)==null?void 0:l.required)!==void 0&&s.searchParams.set("required",`${(p=r.validation)==null?void 0:p.required}`),s.searchParams.set("placeholder",(u=r.placeholder)!=null?u:""),s.searchParams.set("inputMode",(g=r.inputMode)!=null?g:""),s.searchParams.set("lang",this.sdkEmbed.lang),s.searchParams.set("direction",(a==null?void 0:a.direction)||""),s.searchParams.set("color",JSON.stringify(a!=null&&a.color?a.color:"#000")),s.searchParams.set("placeholderColor",(a==null?void 0:a.placeholderColor)||"#ccc"),s.searchParams.set("backgroundColor",(a==null?void 0:a.backgroundColor)||"transparent"),s.searchParams.set("fontSize",(a==null?void 0:a.fontSize)||""),s.searchParams.set("fontFamily",(a==null?void 0:a.fontFamily)||""),s.searchParams.set("fontWeight",`${a==null?void 0:a.fontWeight}`),s.searchParams.set("fontStyle",(a==null?void 0:a.fontStyle)||""),s.searchParams.set("padding",(a==null?void 0:a.padding)||"");const n=document.createElement("iframe");return n.src=s.toString(),n.style.height=(w=a==null?void 0:a.height)!=null?w:"40px",n.style.setProperty("overflow","hidden","important"),n.style.setProperty("display","block","important"),n.style.setProperty("width","100%","important"),n.style.setProperty("maxWidth","100%","important"),n.style.setProperty("border","0","important"),n.style.setProperty("margin","0","important"),n.style.setProperty("padding","0","important"),n.style.setProperty("userSelect","none","important"),n.style.setProperty("colorScheme","light only","important"),e.replaceChildren(n),n},O=new WeakSet,fe=function({accessToken:e}){const t=v(),r=Ee(),a=new URL(`${t}/vaultSubmit/vaultSubmit.html`);a.searchParams.set("host",btoa(window.location.origin)),a.searchParams.set("vault_api_url",`${r}/api/v1/tokens/`),a.searchParams.set("access_token",e),a.searchParams.set("lang",this.sdkEmbed.lang);const i=document.createElement("iframe");return i.id="moneyhash-submit-iframe",i.src=a.toString(),i.hidden=!0,document.body.appendChild(i),i};exports.IFrameSandboxOptions=c.IFrameSandboxOptions;exports.default=Se;

@@ -617,3 +617,3 @@ export declare interface AbstractIntent {

onComplete?: () => void;
billingData?: Record<string, unknown>;
billingData?: boolean | Record<string, unknown>;
}): Promise<IntentDetails<TType>>;

@@ -647,8 +647,14 @@ /**

/**
* @param nativePayData - Native pay data from google express method
* @param onCancel - Callback to be called when user cancels the payment sheet
* @param billingData - Flag to enable/disable auto billing data collection
* @default billingData true
*
* Generate Google Payment Receipt
* @returns nativeReceiptData
*/
generateGooglePayReceipt({ nativePayData, onCancel, }: {
generateGooglePayReceipt({ nativePayData, onCancel, billingData, }: {
nativePayData: Record<string, any> | null;
onCancel?: () => void;
billingData?: boolean;
}): Promise<{

@@ -659,8 +665,14 @@ receipt: string;

/**
* Generate Google Payment Receipt
* @param nativePayData - Native pay data from apple express method
* @param onCancel - Callback to be called when user cancels the payment sheet
* @param billingData - Flag to enable/disable auto billing data collection
* @default billingData true
*
* Generate Apple Payment Receipt
* @returns nativeReceiptData
*/
generateApplePayReceipt({ nativePayData, onCancel, }: {
generateApplePayReceipt({ nativePayData, onCancel, billingData, }: {
nativePayData: Record<string, any> | null;
onCancel?: () => void;
billingData?: boolean;
}): Promise<{

@@ -685,5 +697,3 @@ receipt: string;

* intentId: paymentIntentId,
* billingData: {
* email: "test@test.com",
* },
* billingData: true | false, // enable/disable auto billing data collection
* onCancel: () => console.log("CANCEL"),

@@ -705,3 +715,3 @@ * })

intentId: string;
billingData?: Record<string, unknown>;
billingData?: Record<string, unknown> | boolean;
onCancel?: () => void;

@@ -708,0 +718,0 @@ }): Promise<IntentDetails<TType>>;

@@ -1,27 +0,27 @@

var fe = Object.defineProperty, ke = Object.defineProperties;
var be = Object.getOwnPropertyDescriptors;
var be = Object.defineProperty, ke = Object.defineProperties;
var Ae = Object.getOwnPropertyDescriptors;
var q = Object.getOwnPropertySymbols;
var se = Object.prototype.hasOwnProperty, re = Object.prototype.propertyIsEnumerable;
var j = (o, e, t) => e in o ? fe(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, f = (o, e) => {
var O = (o, e, t) => e in o ? be(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, P = (o, e) => {
for (var t in e || (e = {}))
se.call(e, t) && j(o, t, e[t]);
se.call(e, t) && O(o, t, e[t]);
if (q)
for (var t of q(e))
re.call(e, t) && j(o, t, e[t]);
re.call(e, t) && O(o, t, e[t]);
return o;
}, _ = (o, e) => ke(o, be(e));
}, _ = (o, e) => ke(o, Ae(e));
var oe = (o, e) => {
var t = {};
for (var n in o)
se.call(o, n) && e.indexOf(n) < 0 && (t[n] = o[n]);
for (var i in o)
se.call(o, i) && e.indexOf(i) < 0 && (t[i] = o[i]);
if (o != null && q)
for (var n of q(o))
e.indexOf(n) < 0 && re.call(o, n) && (t[n] = o[n]);
for (var i of q(o))
e.indexOf(i) < 0 && re.call(o, i) && (t[i] = o[i]);
return t;
};
var w = (o, e, t) => (j(o, typeof e != "symbol" ? e + "" : e, t), t), Ae = (o, e, t) => {
var f = (o, e, t) => (O(o, typeof e != "symbol" ? e + "" : e, t), t), Ee = (o, e, t) => {
if (!e.has(o))
throw TypeError("Cannot " + t);
};
var k = (o, e, t) => {
var b = (o, e, t) => {
if (e.has(o))

@@ -31,27 +31,27 @@ throw TypeError("Cannot add the same private member more than once");

};
var y = (o, e, t) => (Ae(o, e, "access private method"), t);
var m = (o, e, t) => new Promise((n, a) => {
var s = (i) => {
var y = (o, e, t) => (Ee(o, e, "access private method"), t);
var m = (o, e, t) => new Promise((i, a) => {
var s = (n) => {
try {
r(t.next(i));
r(t.next(n));
} catch (l) {
a(l);
}
}, d = (i) => {
}, d = (n) => {
try {
r(t.throw(i));
r(t.throw(n));
} catch (l) {
a(l);
}
}, r = (i) => i.done ? n(i.value) : Promise.resolve(i.value).then(s, d);
}, r = (n) => n.done ? i(n.value) : Promise.resolve(n.value).then(s, d);
r((t = t.apply(o, e)).next());
});
import { M as Ee, g as pe, S as Se, t as u, w as ve, s as O } from "./warnIf-9394d140.js";
import { I as He } from "./warnIf-9394d140.js";
function Ce() {
import { M as Se, g as ue, S as ve, t as u, w as Ce, s as B } from "./warnIf-30b9c76c.js";
import { I as $e } from "./warnIf-30b9c76c.js";
function Me() {
return typeof window != "undefined";
}
const b = class {
const k = class {
constructor() {
Ce() && this.initSDKCommunicationIframe();
Me() && this.initSDKCommunicationIframe();
}

@@ -61,18 +61,18 @@ initSDKCommunicationIframe() {

return;
const e = pe(), t = new URL(`${e}/embed/headless-sdk`);
t.searchParams.set("sdk", "true"), t.searchParams.set("parent", window.location.origin), t.searchParams.set("version", "js@1.10.1");
const n = document.createElement("iframe");
n.id = "moneyhash-headless-sdk", n.src = t.toString(), n.hidden = !0, document.body.appendChild(n), b.messagingService = new Ee({
target: n.contentWindow,
const e = ue(), t = new URL(`${e}/embed/headless-sdk`);
t.searchParams.set("sdk", "true"), t.searchParams.set("parent", window.location.origin), t.searchParams.set("version", "js@1.11.0-beta.0");
const i = document.createElement("iframe");
i.id = "moneyhash-headless-sdk", i.src = t.toString(), i.hidden = !0, document.body.appendChild(i), k.messagingService = new Se({
target: i.contentWindow,
targetOrigin: e
}), b.isCommunicationReady = new Promise((a) => {
}), k.isCommunicationReady = new Promise((a) => {
var d;
const s = (r) => {
var i;
r.data.type === "headlessSDK:init" && (a(), (i = b.messagingService) == null || i.removeListener(s));
var n;
r.data.type === "headlessSDK:init" && (a(), (n = k.messagingService) == null || n.removeListener(s));
};
(d = b.messagingService) == null || d.onReceive(s);
(d = k.messagingService) == null || d.onReceive(s);
});
}
request(n) {
request(i) {
return m(this, arguments, function* ({

@@ -82,5 +82,5 @@ api: e,

}) {
return yield b.isCommunicationReady, new Promise((a, s) => {
var r, i;
(r = b.messagingService) == null || r.send({
return yield k.isCommunicationReady, new Promise((a, s) => {
var r, n;
(r = k.messagingService) == null || r.send({
type: e,

@@ -92,5 +92,5 @@ data: t

const { type: c, data: p } = l.data;
c === e && (p.status === "resolved" ? a(p.payload) : s(p.payload), (g = b.messagingService) == null || g.removeListener(d));
c === e && (p.status === "resolved" ? a(p.payload) : s(p.payload), (g = k.messagingService) == null || g.removeListener(d));
};
(i = b.messagingService) == null || i.onReceive(d);
(n = k.messagingService) == null || n.onReceive(d);
});

@@ -101,12 +101,12 @@ });

var t;
(t = b.messagingService) == null || t.send({ type: e });
(t = k.messagingService) == null || t.send({ type: e });
}
};
let M = b;
w(M, "messagingService", null), w(M, "isCommunicationReady");
let M = k;
f(M, "messagingService", null), f(M, "isCommunicationReady");
class F {
constructor() {
w(this, "promise");
w(this, "resolve");
w(this, "reject");
f(this, "promise");
f(this, "resolve");
f(this, "reject");
this.promise = new Promise((e, t) => {

@@ -117,3 +117,3 @@ this.resolve = e, this.reject = t;

}
function Me() {
function Re() {
var e;

@@ -141,4 +141,10 @@ return (e = window.MONEYHASH_VAULT_API_URL) != null ? e : "https://vault.moneyhash.io";

}
function ce(o) {
if (typeof o != "object" || o === null)
return !1;
const e = Object.getPrototypeOf(o);
return e === Object.prototype || e === null;
}
function K(o, e) {
return new Promise((t, n) => {
return new Promise((t, i) => {
if (document.getElementById(e)) {

@@ -152,7 +158,7 @@ t(void 0);

}), s.addEventListener("error", () => {
n(new Error("Script failed to load"));
i(new Error("Script failed to load"));
}), document.body.appendChild(s);
});
}
function Re(o) {
function Ie(o) {
return new Promise((e) => {

@@ -164,3 +170,3 @@ setTimeout(() => {

}
const ce = /* @__PURE__ */ new Set([
const pe = /* @__PURE__ */ new Set([
"method",

@@ -170,24 +176,24 @@ "customerBalance",

]);
var R, Y, I, x, H, ue, $, me, N, he, L, z, V, ge, D, ye, W, we, G, Pe;
class qe {
var R, Y, I, x, H, me, $, he, N, ge, L, z, V, ye, D, fe, W, we, j, Pe;
class _e {
constructor(e) {
k(this, R);
k(this, I);
k(this, H);
k(this, $);
k(this, N);
k(this, L);
k(this, V);
k(this, D);
k(this, W);
k(this, G);
w(this, "options");
w(this, "sdkApiHandler", new M());
w(this, "sdkEmbed");
w(this, "vaultSubmitListener", {
b(this, R);
b(this, I);
b(this, H);
b(this, $);
b(this, N);
b(this, L);
b(this, V);
b(this, D);
b(this, W);
b(this, j);
f(this, "options");
f(this, "sdkApiHandler", new M());
f(this, "sdkEmbed");
f(this, "vaultSubmitListener", {
current: null
});
w(this, "mountedCardElements", []);
w(this, "googlePaymentsClient", null);
w(this, "cardForm", {
f(this, "mountedCardElements", []);
f(this, "googlePaymentsClient", null);
f(this, "cardForm", {
collect: () => m(this, null, function* () {

@@ -216,3 +222,3 @@ u(

cardData: t,
saveCard: n,
saveCard: i,
billingData: a,

@@ -231,3 +237,3 @@ shippingData: s,

cardEmbed: t,
saveCard: n,
saveCard: i,
installmentPlanData: d

@@ -237,3 +243,3 @@ }

}),
createCardToken: (n) => m(this, [n], function* ({
createCardToken: (i) => m(this, [i], function* ({
cardIntentId: e,

@@ -253,3 +259,3 @@ cardData: t

});
this.options = e, this.sdkEmbed = new Se(_(f({}, e), { headless: !0 })), y(this, D, ye).call(this, this.vaultSubmitListener);
this.options = e, this.sdkEmbed = new ve(_(P({}, e), { headless: !0 })), y(this, D, fe).call(this, this.vaultSubmitListener);
}

@@ -303,3 +309,3 @@ /**

api: "sdk:getMethods",
payload: f({
payload: P({
intentType: this.options.type,

@@ -363,3 +369,3 @@ lang: this.sdkEmbed.lang,

type: t,
id: n,
id: i,
useWalletBalance: a,

@@ -370,4 +376,4 @@ metaData: s,

return u(
!ce.has(t),
`type must be a valid one (${[...ce].join(
!pe.has(t),
`type must be a valid one (${[...pe].join(
" | "

@@ -381,3 +387,3 @@ )})`

intentId: e,
id: n,
id: i,
lang: this.sdkEmbed.lang,

@@ -483,3 +489,3 @@ useWalletBalance: a,

currency: t,
amount: n,
amount: i,
countryCode: a,

@@ -490,3 +496,3 @@ onCancel: s = () => {

onComplete: r,
billingData: i = {}
billingData: n = !0
}) {

@@ -506,3 +512,3 @@ if (yield K(

type: "final",
amount: `${n}`
amount: `${i}`
},

@@ -517,3 +523,3 @@ requiredShippingContactFields: ["email"]

if (p === "FORM_FIELDS") {
if (le(i))
if (!ce(n) || le(n))
throw new Error(

@@ -528,3 +534,3 @@ "Billing data is missing while calling payWithApplePay"

lang: this.sdkEmbed.lang,
billingData: i
billingData: n
}

@@ -536,3 +542,3 @@ });

}
const P = new F();
const w = new F();
return c.onvalidatemerchant = (A) => this.sdkApiHandler.request({

@@ -560,7 +566,7 @@ api: "sdk:applePaySession",

}).then((U) => {
c.completePayment(ApplePaySession.STATUS_SUCCESS), r == null || r(), P.resolve(U);
c.completePayment(ApplePaySession.STATUS_SUCCESS), r == null || r(), w.resolve(U);
}).catch(() => {
c.completePayment(ApplePaySession.STATUS_FAILURE), d == null || d(), P.reject(void 0);
c.completePayment(ApplePaySession.STATUS_FAILURE), d == null || d(), w.reject(void 0);
});
}, c.oncancel = s, c.begin(), P.promise;
}, c.oncancel = s, c.begin(), w.promise;
});

@@ -591,5 +597,5 @@ }

*/
renderGooglePayButton(n) {
renderGooglePayButton(i) {
return m(this, null, function* () {
var a = n, {
var a = i, {
onClick: e

@@ -611,5 +617,5 @@ } = a, t = oe(a, [

const d = y(this, R, Y).call(this);
this.googlePaymentsClient.isReadyToPay(d).then((i) => {
if (i.result) {
const l = this.googlePaymentsClient.createButton(_(f({
this.googlePaymentsClient.isReadyToPay(d).then((n) => {
if (n.result) {
const l = this.googlePaymentsClient.createButton(_(P({
buttonSizeMode: "fill",

@@ -624,4 +630,4 @@ buttonType: "pay"

throw new Error("Google Pay is not ready to pay!");
}).catch((i) => {
console.dir(i);
}).catch((n) => {
console.dir(n);
});

@@ -631,2 +637,7 @@ });

/**
* @param nativePayData - Native pay data from google express method
* @param onCancel - Callback to be called when user cancels the payment sheet
* @param billingData - Flag to enable/disable auto billing data collection
* @default billingData true
*
* Generate Google Payment Receipt

@@ -637,3 +648,4 @@ * @returns nativeReceiptData

nativePayData: e,
onCancel: t
onCancel: t,
billingData: i = !0
}) {

@@ -649,3 +661,3 @@ return u(

"nativePayData.amount is required to generate Google Pay receipt!"
), this.googlePaymentsClient.loadPaymentData(_(f({}, y(this, R, Y).call(this, e)), {
), this.googlePaymentsClient.loadPaymentData(_(P({}, y(this, R, Y).call(this, e)), {
transactionInfo: {

@@ -662,19 +674,25 @@ totalPriceStatus: "FINAL",

},
emailRequired: !0
})).then((n) => ({
receipt: n.paymentMethodData.tokenizationData.token,
emailRequired: i
})).then((a) => ({
receipt: a.paymentMethodData.tokenizationData.token,
receiptBillingData: {
email: n.email
email: a.email
}
})).catch((n) => (n.statusCode === "CANCELED" ? t == null || t() : console.dir(n), Promise.reject(n)));
})).catch((a) => (a.statusCode === "CANCELED" ? t == null || t() : console.dir(a), Promise.reject(a)));
}
/**
* Generate Google Payment Receipt
* @param nativePayData - Native pay data from apple express method
* @param onCancel - Callback to be called when user cancels the payment sheet
* @param billingData - Flag to enable/disable auto billing data collection
* @default billingData true
*
* Generate Apple Payment Receipt
* @returns nativeReceiptData
*/
generateApplePayReceipt(n) {
generateApplePayReceipt(a) {
return m(this, arguments, function* ({
nativePayData: e,
onCancel: t = () => {
}
},
billingData: i = !0
}) {

@@ -694,3 +712,3 @@ if (yield K(

throw new Error("Apple Pay is not supported!");
const a = new ApplePaySession(3, {
const s = new ApplePaySession(3, {
countryCode: e.country_code,

@@ -705,25 +723,25 @@ currencyCode: e.currency_code,

},
requiredShippingContactFields: ["email"]
}), s = new F();
return a.onvalidatemerchant = (d) => this.sdkApiHandler.request({
requiredShippingContactFields: i ? ["email"] : void 0
}), d = new F();
return s.onvalidatemerchant = (r) => this.sdkApiHandler.request({
api: "sdk:applePaySession",
payload: {
methodId: e.method_id,
validationUrl: d.validationURL,
validationUrl: r.validationURL,
parentOrigin: window.location.origin
}
}).then(
(r) => a.completeMerchantValidation(r)
).catch((r) => {
a.abort(), s.reject(r);
}), a.onpaymentauthorized = (d) => {
var i;
const r = {
receipt: JSON.stringify({ token: d.payment.token }),
(n) => s.completeMerchantValidation(n)
).catch((n) => {
s.abort(), d.reject(n);
}), s.onpaymentauthorized = (r) => {
var l;
const n = {
receipt: JSON.stringify({ token: r.payment.token }),
receiptBillingData: {
email: (i = d.payment.shippingContact) == null ? void 0 : i.emailAddress
email: (l = r.payment.shippingContact) == null ? void 0 : l.emailAddress
}
};
a.completePayment(ApplePaySession.STATUS_SUCCESS), s.resolve(r);
}, a.oncancel = t, a.begin(), s.promise;
s.completePayment(ApplePaySession.STATUS_SUCCESS), d.resolve(n);
}, s.oncancel = t, s.begin(), d.promise;
});

@@ -753,5 +771,3 @@ }

* intentId: paymentIntentId,
* billingData: {
* email: "test@test.com",
* },
* billingData: true | false, // enable/disable auto billing data collection
* onCancel: () => console.log("CANCEL"),

@@ -774,4 +790,4 @@ * })

intentId: e,
billingData: t = {},
onCancel: n
billingData: t = !0,
onCancel: i
}) {

@@ -789,3 +805,3 @@ u(

if (s.state === "FORM_FIELDS") {
if (le(t))
if (!ce(t) || le(t))
throw new Error(

@@ -810,3 +826,4 @@ "Billing data is missing while calling payWithGooglePay"

nativePayData: d,
onCancel: n
onCancel: i,
billingData: typeof t == "boolean" ? t : !1
}).then(

@@ -853,9 +870,9 @@ (r) => this.submitPaymentReceipt({

setLocale(e) {
ve(
!!e && !O.has(e),
`Invalid locale. Supported languages (${[...O].join(
Ce(
!!e && !B.has(e),
`Invalid locale. Supported languages (${[...B].join(
" | "
)})`
);
const t = O.has(e) ? e : "en";
const t = B.has(e) ? e : "en";
return this.sdkEmbed.setLocale(t);

@@ -914,4 +931,4 @@ }

updateIntentFees({ intentId: e, fees: t }) {
return t.forEach((n) => {
u(!n.title.en, "English fee title is required!");
return t.forEach((i) => {
u(!i.title.en, "English fee title is required!");
}), this.sdkApiHandler.request({

@@ -938,6 +955,6 @@ api: "sdk:updateIntentFees",

*/
elements({ styles: e, classes: t, fontSourceCss: n }) {
elements({ styles: e, classes: t, fontSourceCss: i }) {
const a = [], s = {}, d = /* @__PURE__ */ new Map();
let r = !1;
return y(this, V, ge).call(this, a), {
return y(this, V, ye).call(this, a), {
/**

@@ -964,7 +981,7 @@ * Creates card field element

*/
create: ({ elementType: i, elementOptions: l }) => {
create: ({ elementType: n, elementOptions: l }) => {
var S, U;
const c = /* @__PURE__ */ new Map();
let p = null;
const g = f(f({}, t), l.classes), P = ((S = g == null ? void 0 : g.focus) == null ? void 0 : S.split(" ")) || [
const g = P(P({}, t), l.classes), w = ((S = g == null ? void 0 : g.focus) == null ? void 0 : S.split(" ")) || [
"MoneyHashElement--focus"

@@ -982,31 +999,31 @@ ], A = ((U = g == null ? void 0 : g.error) == null ? void 0 : U.split(" ")) || [

`Couldn't find an element with selector ${l.selector}!`
), h.classList.add("MoneyHashElement"), a.push((T) => {
), h.classList.add("MoneyHashElement"), a.push((G) => {
var J, X, Q, Z, ee, te, ae, ne, ie;
const { type: E, data: v } = T.data;
if (E === `${i}@mount` && (s[i] = v.isValid, (J = c.get(`${i}@mount`)) == null || J()), E === `${i}@focus`) {
h.classList.add(...P), (X = c.get(`${i}@focus`)) == null || X();
const { type: E, data: v } = G.data;
if (E === `${n}@mount` && (s[n] = v.isValid, (J = c.get(`${n}@mount`)) == null || J()), E === `${n}@focus`) {
h.classList.add(...w), (X = c.get(`${n}@focus`)) == null || X();
return;
}
if (E === `${i}@blur`) {
h.classList.remove(...P), (Q = c.get(`${i}@blur`)) == null || Q();
if (E === `${n}@blur`) {
h.classList.remove(...w), (Q = c.get(`${n}@blur`)) == null || Q();
return;
}
if (E === `${i}@error`) {
v.isValid ? h.classList.remove(...A) : h.classList.add(...A), (Z = c.get(`${i}@error`)) == null || Z(v);
if (E === `${n}@error`) {
v.isValid ? h.classList.remove(...A) : h.classList.add(...A), (Z = c.get(`${n}@error`)) == null || Z(v);
return;
}
if (E === `${i}@changeInput`) {
if ((ee = c.get(`${i}@changeInput`)) == null || ee({
if (E === `${n}@changeInput`) {
if ((ee = c.get(`${n}@changeInput`)) == null || ee({
isValid: v.isValid,
length: v.length
}), s[i] = v.isValid, d.get("validityChange")) {
const B = Object.values(s).every(Boolean);
B !== r && ((te = d.get("validityChange")) == null || te(
B
), r = B);
}), s[n] = v.isValid, d.get("validityChange")) {
const T = Object.values(s).every(Boolean);
T !== r && ((te = d.get("validityChange")) == null || te(
T
), r = T);
}
return;
}
if (E === `${i}@cardNumberChange`) {
(ae = c.get(`${i}@cardNumberChange`)) == null || ae(
if (E === `${n}@cardNumberChange`) {
(ae = c.get(`${n}@cardNumberChange`)) == null || ae(
v

@@ -1016,19 +1033,19 @@ );

}
if (E === `${i}@key:Backspace`) {
(ne = c.get(`${i}@key:Backspace`)) == null || ne();
if (E === `${n}@key:Backspace`) {
(ne = c.get(`${n}@key:Backspace`)) == null || ne();
return;
}
E === `${i}@key:Enter` && ((ie = c.get(`${i}@key:Enter`)) == null || ie());
E === `${n}@key:Enter` && ((ie = c.get(`${n}@key:Enter`)) == null || ie());
}), p = y(this, W, we).call(this, {
container: h,
elementType: i,
elementType: n,
elementOptions: l,
styles: f(f({}, e), l.styles),
fontSourceCss: n
}), this.mountedCardElements.push(i);
styles: P(P({}, e), l.styles),
fontSourceCss: i
}), this.mountedCardElements.push(n);
},
on: (h, T) => {
c.set(`${i}@${h}`, T);
on: (h, G) => {
c.set(`${n}@${h}`, G);
},
off: (h) => c.delete(`${i}@${h}`),
off: (h) => c.delete(`${n}@${h}`),
focus: () => {

@@ -1057,4 +1074,4 @@ var h;

},
on: (i, l) => {
d.set(i, l);
on: (n, l) => {
d.set(n, l);
}

@@ -1077,7 +1094,7 @@ };

*/
submitForm(i) {
submitForm(n) {
return m(this, arguments, function* ({
intentId: e,
accessToken: t,
billingData: n,
billingData: i,
shippingData: a,

@@ -1106,3 +1123,3 @@ saveCard: s,

lang: this.sdkEmbed.lang,
billingData: n,
billingData: i,
shippingData: a,

@@ -1128,3 +1145,3 @@ cardEmbed: l,

planId: t,
issuerCode: n
issuerCode: i
}) {

@@ -1136,3 +1153,3 @@ return this.sdkApiHandler.request({

intentId: e,
issuerCode: n,
issuerCode: i,
lang: this.sdkEmbed.lang

@@ -1155,3 +1172,3 @@ }

amount: t,
currency: n
currency: i
}) {

@@ -1166,3 +1183,3 @@ return u(

amount: t,
currency: n,
currency: i,
publicApiKey: this.options.publicApiKey,

@@ -1188,3 +1205,3 @@ lang: this.sdkEmbed.lang

cvv: t,
installmentPlanData: n
installmentPlanData: i
}) {

@@ -1196,3 +1213,3 @@ return this.sdkApiHandler.request({

cvv: t,
installmentPlanData: n,
installmentPlanData: i,
lang: this.sdkEmbed.lang

@@ -1216,12 +1233,12 @@ }

url: t,
renderStrategy: n,
renderStrategy: i,
options: a
}) {
switch (this.sdkApiHandler.postMessage("SDKRenderUrl"), n) {
switch (this.sdkApiHandler.postMessage("SDKRenderUrl"), i) {
case "IFRAME":
return y(this, H, ue).call(this, { url: t, intentId: e });
return y(this, H, me).call(this, { url: t, intentId: e });
case "POPUP_IFRAME":
return y(this, $, me).call(this, { url: t, intentId: e, options: a });
return y(this, $, he).call(this, { url: t, intentId: e, options: a });
case "REDIRECT":
return y(this, N, he).call(this, { url: t, options: a });
return y(this, N, ge).call(this, { url: t, options: a });
default:

@@ -1247,5 +1264,5 @@ return null;

};
const n = new Date(e), a = setInterval(() => m(this, null, function* () {
const i = new Date(e), a = setInterval(() => m(this, null, function* () {
const s = new Date();
n < s && (clearInterval(a), t());
i < s && (clearInterval(a), t());
}), 1e3);

@@ -1256,3 +1273,3 @@ return () => clearInterval(a);

R = new WeakSet(), Y = function(e) {
var n, a;
var i, a;
return {

@@ -1262,6 +1279,6 @@ apiVersion: 2,

allowedPaymentMethods: [
f({
P({
type: "CARD",
parameters: {
allowedAuthMethods: ((n = this.options.googlePay) == null ? void 0 : n.allowedAuthMethods) || [
allowedAuthMethods: ((i = this.options.googlePay) == null ? void 0 : i.allowedAuthMethods) || [
"PAN_ONLY",

@@ -1291,13 +1308,13 @@ "CRYPTOGRAM_3DS"

return m(this, arguments, function* ({ accessToken: e }) {
const n = new F();
const i = new F();
this.vaultSubmitListener.current = (d) => {
const { type: r, data: i } = d.data;
r === "vaultSubmit:success" && n.resolve(i), r === "vaultSubmit:error" && n.reject(i);
const { type: r, data: n } = d.data;
r === "vaultSubmit:success" && i.resolve(n), r === "vaultSubmit:error" && i.reject(n);
};
const a = y(this, G, Pe).call(this, {
const a = y(this, j, Pe).call(this, {
accessToken: e
}), s = yield n.promise;
}), s = yield i.promise;
return a.remove(), s;
});
}, H = new WeakSet(), ue = function(n) {
}, H = new WeakSet(), me = function(i) {
return m(this, arguments, function* ({

@@ -1315,7 +1332,7 @@ intentId: e,

});
}, $ = new WeakSet(), me = function(a) {
}, $ = new WeakSet(), he = function(a) {
return m(this, arguments, function* ({
intentId: e,
url: t,
options: n = {}
options: i = {}
}) {

@@ -1326,11 +1343,11 @@ const {

left: r = 200,
top: i = 200
} = n.window || {}, l = window.open(
top: n = 200
} = i.window || {}, l = window.open(
t,
"",
`width=${s},height=${d},left=${r},top=${i}`
`width=${s},height=${d},left=${r},top=${n}`
);
u(!l, "Popup blocked by browser!"), yield y(this, L, z).call(this, { intentId: e, isUsingPopUp: !0 }), l == null || l.close();
});
}, N = new WeakSet(), he = function(n) {
}, N = new WeakSet(), ge = function(i) {
return m(this, arguments, function* ({

@@ -1346,3 +1363,3 @@ url: e,

});
}, L = new WeakSet(), z = function(n) {
}, L = new WeakSet(), z = function(i) {
return m(this, arguments, function* ({

@@ -1353,4 +1370,4 @@ intentId: e,

const a = new F(), s = (d) => m(this, null, function* () {
var i, l, c, p;
if (d.origin !== pe())
var n, l, c, p;
if (d.origin !== ue())
return;

@@ -1362,7 +1379,7 @@ const { type: r } = d.data;

this.getIntentDetails(e),
Re(2)
]), P = g.transaction.status.split(".")[1];
P === "successful" || P.startsWith("pending") ? (l = (i = this.options).onComplete) == null || l.call(i, f({
Ie(2)
]), w = g.transaction.status.split(".")[1];
w === "successful" || w.startsWith("pending") ? (l = (n = this.options).onComplete) == null || l.call(n, P({
type: this.options.type
}, g)) : (p = (c = this.options).onFail) == null || p.call(c, f({
}, g)) : (p = (c = this.options).onFail) == null || p.call(c, P({
type: this.options.type

@@ -1374,12 +1391,12 @@ }, g)), a.resolve(() => null), window.removeEventListener("message", s);

});
}, V = new WeakSet(), ge = function(e) {
const t = (n) => {
n.origin === C() && e.forEach((a) => {
a(n);
}, V = new WeakSet(), ye = function(e) {
const t = (i) => {
i.origin === C() && e.forEach((a) => {
a(i);
});
};
window.addEventListener("message", t);
}, D = new WeakSet(), ye = function(e) {
const t = (n) => {
e.current && e.current(n);
}, D = new WeakSet(), fe = function(e) {
const t = (i) => {
e.current && e.current(i);
};

@@ -1390,12 +1407,12 @@ window.addEventListener("message", t);

elementType: t,
elementOptions: n,
elementOptions: i,
styles: a,
fontSourceCss: s
}) {
var l, c, p, g, P;
var l, c, p, g, w;
const d = C(), r = new URL(`${d}/vaultField/vaultField.html`);
s && r.searchParams.set("fontSourceCss", s), r.searchParams.set("host", btoa(window.location.origin)), r.searchParams.set("type", t), ((l = n.validation) == null ? void 0 : l.required) !== void 0 && r.searchParams.set(
s && r.searchParams.set("fontSourceCss", s), r.searchParams.set("host", btoa(window.location.origin)), r.searchParams.set("type", t), ((l = i.validation) == null ? void 0 : l.required) !== void 0 && r.searchParams.set(
"required",
`${(c = n.validation) == null ? void 0 : c.required}`
), r.searchParams.set("placeholder", (p = n.placeholder) != null ? p : ""), r.searchParams.set("inputMode", (g = n.inputMode) != null ? g : ""), r.searchParams.set("lang", this.sdkEmbed.lang), r.searchParams.set("direction", (a == null ? void 0 : a.direction) || ""), r.searchParams.set(
`${(c = i.validation) == null ? void 0 : c.required}`
), r.searchParams.set("placeholder", (p = i.placeholder) != null ? p : ""), r.searchParams.set("inputMode", (g = i.inputMode) != null ? g : ""), r.searchParams.set("lang", this.sdkEmbed.lang), r.searchParams.set("direction", (a == null ? void 0 : a.direction) || ""), r.searchParams.set(
"color",

@@ -1410,9 +1427,9 @@ JSON.stringify(a != null && a.color ? a.color : "#000")

), r.searchParams.set("fontSize", (a == null ? void 0 : a.fontSize) || ""), r.searchParams.set("fontFamily", (a == null ? void 0 : a.fontFamily) || ""), r.searchParams.set("fontWeight", `${a == null ? void 0 : a.fontWeight}`), r.searchParams.set("fontStyle", (a == null ? void 0 : a.fontStyle) || ""), r.searchParams.set("padding", (a == null ? void 0 : a.padding) || "");
const i = document.createElement("iframe");
return i.src = r.toString(), i.style.height = (P = a == null ? void 0 : a.height) != null ? P : "40px", i.style.setProperty("overflow", "hidden", "important"), i.style.setProperty("display", "block", "important"), i.style.setProperty("width", "100%", "important"), i.style.setProperty("maxWidth", "100%", "important"), i.style.setProperty("border", "0", "important"), i.style.setProperty("margin", "0", "important"), i.style.setProperty("padding", "0", "important"), i.style.setProperty("userSelect", "none", "important"), i.style.setProperty("colorScheme", "light only", "important"), e.replaceChildren(i), i;
}, G = new WeakSet(), Pe = function({ accessToken: e }) {
const t = C(), n = Me(), a = new URL(
const n = document.createElement("iframe");
return n.src = r.toString(), n.style.height = (w = a == null ? void 0 : a.height) != null ? w : "40px", n.style.setProperty("overflow", "hidden", "important"), n.style.setProperty("display", "block", "important"), n.style.setProperty("width", "100%", "important"), n.style.setProperty("maxWidth", "100%", "important"), n.style.setProperty("border", "0", "important"), n.style.setProperty("margin", "0", "important"), n.style.setProperty("padding", "0", "important"), n.style.setProperty("userSelect", "none", "important"), n.style.setProperty("colorScheme", "light only", "important"), e.replaceChildren(n), n;
}, j = new WeakSet(), Pe = function({ accessToken: e }) {
const t = C(), i = Re(), a = new URL(
`${t}/vaultSubmit/vaultSubmit.html`
);
a.searchParams.set("host", btoa(window.location.origin)), a.searchParams.set("vault_api_url", `${n}/api/v1/tokens/`), a.searchParams.set("access_token", e), a.searchParams.set("lang", this.sdkEmbed.lang);
a.searchParams.set("host", btoa(window.location.origin)), a.searchParams.set("vault_api_url", `${i}/api/v1/tokens/`), a.searchParams.set("access_token", e), a.searchParams.set("lang", this.sdkEmbed.lang);
const s = document.createElement("iframe");

@@ -1422,4 +1439,4 @@ return s.id = "moneyhash-submit-iframe", s.src = a.toString(), s.hidden = !0, document.body.appendChild(s), s;

export {
He as IFrameSandboxOptions,
qe as default
$e as IFrameSandboxOptions,
_e as default
};

@@ -1,1 +0,1 @@

(function(d,l){typeof exports=="object"&&typeof module!="undefined"?l(exports):typeof define=="function"&&define.amd?define(["exports"],l):(d=typeof globalThis!="undefined"?globalThis:d||self,l(d.MoneyHash={}))})(this,function(d){var N,ee,V,te,B,we,W,be,j,Pe,D,ie,G,ke,K,Ae,Y,ve,x,Ee;"use strict";var Ie=Object.defineProperty,Le=Object.defineProperties;var Ue=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable;var Z=(d,l,c)=>l in d?Ie(d,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):d[l]=c,A=(d,l)=>{for(var c in l||(l={}))ge.call(l,c)&&Z(d,c,l[c]);if(z)for(var c of z(l))ye.call(l,c)&&Z(d,c,l[c]);return d},J=(d,l)=>Le(d,Ue(l));var fe=(d,l)=>{var c={};for(var E in d)ge.call(d,E)&&l.indexOf(E)<0&&(c[E]=d[E]);if(d!=null&&z)for(var E of z(d))l.indexOf(E)<0&&ye.call(d,E)&&(c[E]=d[E]);return c};var w=(d,l,c)=>(Z(d,typeof l!="symbol"?l+"":l,c),c),_e=(d,l,c)=>{if(!l.has(d))throw TypeError("Cannot "+c)};var M=(d,l,c)=>{if(l.has(d))throw TypeError("Cannot add the same private member more than once");l instanceof WeakSet?l.add(d):l.set(d,c)};var v=(d,l,c)=>(_e(d,l,"access private method"),c);var f=(d,l,c)=>new Promise((E,I)=>{var O=C=>{try{q(c.next(C))}catch(H){I(H)}},u=C=>{try{q(c.throw(C))}catch(H){I(H)}},q=C=>C.done?E(C.value):Promise.resolve(C.value).then(O,u);q((c=c.apply(d,l)).next())});class l{constructor(e){w(this,"target");w(this,"targetOrigin");w(this,"listeners");w(this,"onIncomingMessageBind",this.onIncomingMessage.bind(this));this.target=e.target,this.targetOrigin=e.targetOrigin,this.listeners=[],window.addEventListener("message",this.onIncomingMessageBind)}send(e){this.target.postMessage(e,this.targetOrigin)}onReceive(e){this.listeners.push(e)}removeListener(e){this.listeners=this.listeners.filter(t=>t!==e)}onIncomingMessage(e){e.origin===this.targetOrigin&&this.listeners.forEach(t=>{t(e,this.send.bind(this))})}abortService(){window.removeEventListener("message",this.onIncomingMessageBind)}}function c(){var e;return(e=window.MONEYHASH_IFRAME_URL)!=null?e:"https://embed.moneyhash.io"}function E(){return typeof window!="undefined"}const R=class{constructor(){E()&&this.initSDKCommunicationIframe()}initSDKCommunicationIframe(){if(document.getElementById("moneyhash-headless-sdk"))return;const e=c(),t=new URL(`${e}/embed/headless-sdk`);t.searchParams.set("sdk","true"),t.searchParams.set("parent",window.location.origin),t.searchParams.set("version","js@1.10.1");const n=document.createElement("iframe");n.id="moneyhash-headless-sdk",n.src=t.toString(),n.hidden=!0,document.body.appendChild(n),R.messagingService=new l({target:n.contentWindow,targetOrigin:e}),R.isCommunicationReady=new Promise(i=>{var o;const a=r=>{var s;r.data.type==="headlessSDK:init"&&(i(),(s=R.messagingService)==null||s.removeListener(a))};(o=R.messagingService)==null||o.onReceive(a)})}request(n){return f(this,arguments,function*({api:e,payload:t}){return yield R.isCommunicationReady,new Promise((i,a)=>{var r,s;(r=R.messagingService)==null||r.send({type:e,data:t});const o=m=>{var g;const{type:h,data:p}=m.data;h===e&&(p.status==="resolved"?i(p.payload):a(p.payload),(g=R.messagingService)==null||g.removeListener(o))};(s=R.messagingService)==null||s.onReceive(o)})})}postMessage(e){var t;(t=R.messagingService)==null||t.send({type:e})}};let I=R;w(I,"messagingService",null),w(I,"isCommunicationReady");const O=["allow-downloads","allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-storage-access-by-user-activation","allow-top-navigation","allow-top-navigation-by-user-activation"];function u(b,e){if(b)throw new Error(e)}const q=new Set(["payment","payout"]),C=new Set(["en","fr","ar"]);class H{constructor(e){w(this,"options");w(this,"messagingService",null);w(this,"iframe",null);w(this,"isCommunicationReady",null);u(!q.has(e.type),`MoneyHash constructor must be called with valid type (${[...q].join(" | ")})!`),this.options=e}get lang(){var t;return((t=this.options.locale)==null?void 0:t.split("-")[0])||"en"}render({selector:e,intentId:t,sandbox:n,onHeightChange:i}){var m,h;(m=this.messagingService)==null||m.abortService();const a=c(),o=new URL(`${a}/embed/${this.options.type}/${t}`);o.searchParams.set("sdk","true"),o.searchParams.set("parent",window.location.origin),o.searchParams.set("version","js@1.10.1"),i&&o.searchParams.set("onDimensionsChange","true");const r=(h=this.options.locale)==null?void 0:h.split("-")[0];r&&o.searchParams.set("lang",r),this.iframe=document.createElement("iframe"),this.iframe.src=o.toString(),this.iframe.style.height="100%",this.iframe.style.width="100%",this.iframe.style.border="0",n&&n.forEach(p=>{var g;O.includes(p)&&((g=this.iframe)==null||g.sandbox.add(p))});const s=document.querySelector(e);return u(!s,`Couldn't find an element with selector ${e}!`),s.replaceChildren(this.iframe),this.messagingService=new l({target:this.iframe.contentWindow,targetOrigin:a}),this.isCommunicationReady=new Promise(p=>{var P;const g=k=>{var S;k.data.type==="sdk:init"&&(p(),(S=this.messagingService)==null||S.removeListener(g))};(P=this.messagingService)==null||P.onReceive(g)}),this.messagingService.onReceive((p,g)=>{var S,U,y,$;const{type:P,data:k}=p.data;switch(P){case"sdk:init":{g({type:"sdk:init",data:{headless:Boolean(this.options.headless),styles:this.options.styles}});break}case"onComplete":{(U=(S=this.options).onComplete)==null||U.call(S,A({type:this.options.type},k)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"onFail":{($=(y=this.options).onFail)==null||$.call(y,A({type:this.options.type},k)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"dimensionsChange":{i==null||i(k.iframeHeight);break}}}),this.isCommunicationReady}setLocale(e){return f(this,null,function*(){var t;yield this==null?void 0:this.isCommunicationReady,this.options.locale=e,(t=this.messagingService)==null||t.send({type:"changeLanguage",data:{locale:e}})})}abortService(){return f(this,null,function*(){var e;yield this==null?void 0:this.isCommunicationReady,(e=this.messagingService)==null||e.abortService()})}}class T{constructor(){w(this,"promise");w(this,"resolve");w(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}function Se(){var e;return(e=window.MONEYHASH_VAULT_API_URL)!=null?e:"https://vault.moneyhash.io"}function F(){var e;return(e=window.MONEYHASH_VAULT_INPUT_IFRAME_URL)!=null?e:"https://vault-form.moneyhash.io"}function se(b){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!b.includes(t))return t;return null}function ae(b){return(Array.isArray(b)?b.length:Object.keys(b).length)===0}function X(b,e){return new Promise((t,n)=>{if(document.getElementById(e)){t(void 0);return}const a=document.createElement("script");a.src=b,a.id=e,a.addEventListener("load",()=>{t(void 0)}),a.addEventListener("error",()=>{n(new Error("Script failed to load"))}),document.body.appendChild(a)})}function Ce(b){return new Promise(e=>{setTimeout(()=>{e("done")},b*1e3)})}function Re(b,e){b&&console.warn(e)}const ne=new Set(["method","customerBalance","savedCard"]);class Me{constructor(e){M(this,N);M(this,V);M(this,B);M(this,W);M(this,j);M(this,D);M(this,G);M(this,K);M(this,Y);M(this,x);w(this,"options");w(this,"sdkApiHandler",new I);w(this,"sdkEmbed");w(this,"vaultSubmitListener",{current:null});w(this,"mountedCardElements",[]);w(this,"googlePaymentsClient",null);w(this,"cardForm",{collect:()=>f(this,null,function*(){u(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to collect card!");const e=se(this.mountedCardElements);u(!!e,`You must mount ${e} element!`);const t=yield this.sdkApiHandler.request({api:"sdk:generateAccessToken",payload:{publicApiKey:this.options.publicApiKey}});return v(this,V,te).call(this,{accessToken:t})}),pay:r=>f(this,[r],function*({intentId:e,cardData:t,saveCard:n,billingData:i,shippingData:a,installmentPlanData:o}){return this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",billingData:i,shippingData:a,cardEmbed:t,saveCard:n,installmentPlanData:o}})}),createCardToken:n=>f(this,[n],function*({cardIntentId:e,cardData:t}){return this.sdkApiHandler.request({api:"sdk:createCardToken",payload:{cardIntentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",cardEmbed:t}})})});this.options=e,this.sdkEmbed=new H(J(A({},e),{headless:!0})),v(this,K,Ae).call(this,this.vaultSubmitListener)}getIntentDetails(e){return this.sdkApiHandler.request({api:"sdk:getIntentDetails",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getIntentMethods(e){return this.sdkApiHandler.request({api:"sdk:getIntentMethods",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getMethods(e){return"intentId"in e?this.getIntentMethods(e.intentId):(u(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get methods!"),u(this.options.type==="payout","getMethods is not allowed for payout!"),this.sdkApiHandler.request({api:"sdk:getMethods",payload:A({intentType:this.options.type,lang:this.sdkEmbed.lang,publicApiKey:this.options.publicApiKey},e)}))}proceedWith({intentId:e,type:t,id:n,useWalletBalance:i,metaData:a,installmentPlanData:o}){return u(!ne.has(t),`type must be a valid one (${[...ne].join(" | ")})`),this.sdkApiHandler.request({api:"sdk:proceedWith",payload:{proceedWith:t,intentType:this.options.type,intentId:e,id:n,lang:this.sdkEmbed.lang,useWalletBalance:i,metaData:a,installmentPlanData:o}})}resetSelectedMethod(e){return this.sdkApiHandler.request({api:"sdk:resetSelectedMethod",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}deleteCard({cardId:e,intentSecret:t}){return u(this.options.type==="payout","deleteCard is allowed only for payment intent!"),this.sdkApiHandler.request({api:"sdk:deleteCard",payload:{cardId:e,intentSecret:t,lang:this.sdkEmbed.lang}})}payWithApplePay(m){return f(this,arguments,function*({intentId:e,currency:t,amount:n,countryCode:i,onCancel:a=()=>{},onError:o,onComplete:r,billingData:s={}}){if(yield X("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const h=new ApplePaySession(3,{countryCode:i,currencyCode:t,supportedNetworks:["visa","masterCard","amex","discover","mada"],merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${n}`},requiredShippingContactFields:["email"]}),{state:p,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(p==="FORM_FIELDS"){if(ae(s))throw new Error("Billing data is missing while calling payWithApplePay");yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"APPLE_PAY",lang:this.sdkEmbed.lang,billingData:s}})}}catch(k){throw yield this.resetSelectedMethod(e),k}const P=new T;return h.onvalidatemerchant=k=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{secret:g.secret,validationUrl:k.validationURL,parentOrigin:window.location.origin}}).then(S=>h.completeMerchantValidation(S)).catch(o),h.onpaymentauthorized=k=>{var S;return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:JSON.stringify({token:k.payment.token}),receiptBillingData:{email:(S=k.payment.shippingContact)==null?void 0:S.emailAddress}}}).then(U=>{h.completePayment(ApplePaySession.STATUS_SUCCESS),r==null||r(),P.resolve(U)}).catch(()=>{h.completePayment(ApplePaySession.STATUS_FAILURE),o==null||o(),P.reject(void 0)})},h.oncancel=a,h.begin(),P.promise})}renderGooglePayButton(n){return f(this,null,function*(){var i=n,{onClick:e}=i,t=fe(i,["onClick"]);var r;const a=document.getElementById("moneyHash-google-pay-button");u(!a,"Couldn't find an element with id moneyHash-google-pay-button to render the google pay button!"),yield X("https://pay.google.com/gp/p/js/pay.js","moneyHash-google-pay-sdk"),this.googlePaymentsClient=new window.google.payments.api.PaymentsClient({environment:((r=this.options.googlePay)==null?void 0:r.environment)||"PRODUCTION"});const o=v(this,N,ee).call(this);this.googlePaymentsClient.isReadyToPay(o).then(s=>{if(s.result){const m=this.googlePaymentsClient.createButton(J(A({buttonSizeMode:"fill",buttonType:"pay"},t),{allowedPaymentMethods:o.allowedPaymentMethods,onClick:e}));a==null||a.replaceChildren(m)}else throw new Error("Google Pay is not ready to pay!")}).catch(s=>{console.dir(s)})})}generateGooglePayReceipt({nativePayData:e,onCancel:t}){return u(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "generateGooglePayReceipt"'),u(!e,"nativePayData is required to generate Google Pay receipt!"),u(!e.amount,"nativePayData.amount is required to generate Google Pay receipt!"),this.googlePaymentsClient.loadPaymentData(J(A({},v(this,N,ee).call(this,e)),{transactionInfo:{totalPriceStatus:"FINAL",totalPriceLabel:"Total",totalPrice:`${e.amount}`,currencyCode:e.currency_code,countryCode:e.country_code},merchantInfo:{merchantName:e.merchant_name,merchantId:e.merchant_id},emailRequired:!0})).then(n=>({receipt:n.paymentMethodData.tokenizationData.token,receiptBillingData:{email:n.email}})).catch(n=>(n.statusCode==="CANCELED"?t==null||t():console.dir(n),Promise.reject(n)))}generateApplePayReceipt(n){return f(this,arguments,function*({nativePayData:e,onCancel:t=()=>{}}){if(yield X("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),u(!e,"nativePayData is required to generate Apple Pay receipt!"),!e)return{receipt:"",receiptBillingData:{}};if(u(!e.amount,"nativePayData.amount is required to generate Apple Pay receipt!"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const i=new ApplePaySession(3,{countryCode:e.country_code,currencyCode:e.currency_code,supportedNetworks:e.supported_networks,merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${e.amount}`},requiredShippingContactFields:["email"]}),a=new T;return i.onvalidatemerchant=o=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{methodId:e.method_id,validationUrl:o.validationURL,parentOrigin:window.location.origin}}).then(r=>i.completeMerchantValidation(r)).catch(r=>{i.abort(),a.reject(r)}),i.onpaymentauthorized=o=>{var s;const r={receipt:JSON.stringify({token:o.payment.token}),receiptBillingData:{email:(s=o.payment.shippingContact)==null?void 0:s.emailAddress}};i.completePayment(ApplePaySession.STATUS_SUCCESS),a.resolve(r)},i.oncancel=t,i.begin(),a.promise})}submitPaymentReceipt({intentId:e,nativeReceiptData:t}){return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:t.receipt,receiptBillingData:t.receiptBillingData}})}payWithGooglePay(i){return f(this,arguments,function*({intentId:e,billingData:t={},onCancel:n}){u(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "payWithGooglePay"');let a=yield this.proceedWith({intentId:e,type:"method",id:"GOOGLE_PAY"});try{if(a.state==="FORM_FIELDS"){if(ae(t))throw new Error("Billing data is missing while calling payWithGooglePay");a=yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"GOOGLE_PAY",lang:this.sdkEmbed.lang,billingData:t}})}}catch(r){throw yield this.resetSelectedMethod(e),r}const{nativePayData:o}=a;return o?this.generateGooglePayReceipt({nativePayData:o,onCancel:n}).then(r=>this.submitPaymentReceipt({intentId:e,nativeReceiptData:r})):a})}renderForm(e){return u(!e.selector,"selector is required for renderForm"),u(!e.intentId,"intentId is required for renderForm"),this.sdkEmbed.render(e)}setLocale(e){Re(!!e&&!C.has(e),`Invalid locale. Supported languages (${[...C].join(" | ")})`);const t=C.has(e)?e:"en";return this.sdkEmbed.setLocale(t)}removeEventListeners(){return this.sdkEmbed.abortService()}updateIntentDiscount({intentId:e,discount:t}){return u(!t.title.en,"English discount title is required!"),this.sdkApiHandler.request({api:"sdk:updateIntentDiscount",payload:{intentId:e,discount:t,lang:this.sdkEmbed.lang}})}updateIntentFees({intentId:e,fees:t}){return t.forEach(n=>{u(!n.title.en,"English fee title is required!")}),this.sdkApiHandler.request({api:"sdk:updateIntentFees",payload:{intentId:e,fees:t,lang:this.sdkEmbed.lang}})}elements({styles:e,classes:t,fontSourceCss:n}){const i=[],a={},o=new Map;let r=!1;return v(this,G,ke).call(this,i),{create:({elementType:s,elementOptions:m})=>{var S,U;const h=new Map;let p=null;const g=A(A({},t),m.classes),P=((S=g==null?void 0:g.focus)==null?void 0:S.split(" "))||["MoneyHashElement--focus"],k=((U=g==null?void 0:g.error)==null?void 0:U.split(" "))||["MoneyHashElement--error"];return{mount:()=>{const y=document.querySelector(m.selector);u(!y,`Couldn't find an element with selector ${m.selector}!`),y.classList.add("MoneyHashElement"),i.push($=>{var re,oe,de,le,ce,pe,he,me,ue;const{type:L,data:_}=$.data;if(L===`${s}@mount`&&(a[s]=_.isValid,(re=h.get(`${s}@mount`))==null||re()),L===`${s}@focus`){y.classList.add(...P),(oe=h.get(`${s}@focus`))==null||oe();return}if(L===`${s}@blur`){y.classList.remove(...P),(de=h.get(`${s}@blur`))==null||de();return}if(L===`${s}@error`){_.isValid?y.classList.remove(...k):y.classList.add(...k),(le=h.get(`${s}@error`))==null||le(_);return}if(L===`${s}@changeInput`){if((ce=h.get(`${s}@changeInput`))==null||ce({isValid:_.isValid,length:_.length}),a[s]=_.isValid,o.get("validityChange")){const Q=Object.values(a).every(Boolean);Q!==r&&((pe=o.get("validityChange"))==null||pe(Q),r=Q)}return}if(L===`${s}@cardNumberChange`){(he=h.get(`${s}@cardNumberChange`))==null||he(_);return}if(L===`${s}@key:Backspace`){(me=h.get(`${s}@key:Backspace`))==null||me();return}L===`${s}@key:Enter`&&((ue=h.get(`${s}@key:Enter`))==null||ue())}),p=v(this,Y,ve).call(this,{container:y,elementType:s,elementOptions:m,styles:A(A({},e),m.styles),fontSourceCss:n}),this.mountedCardElements.push(s)},on:(y,$)=>{h.set(`${s}@${y}`,$)},off:y=>h.delete(`${s}@${y}`),focus:()=>{var y;(y=p==null?void 0:p.contentWindow)==null||y.postMessage({type:"focus"},F())},blur:()=>{var y;(y=p==null?void 0:p.contentWindow)==null||y.postMessage({type:"blur"},F())},clear:()=>{var y;(y=p==null?void 0:p.contentWindow)==null||y.postMessage({type:"clear"},F())}}},on:(s,m)=>{o.set(s,m)}}}submitForm(s){return f(this,arguments,function*({intentId:e,accessToken:t,billingData:n,shippingData:i,saveCard:a,paymentMethod:o="CARD",installmentPlanData:r}){let m;if(t){const p=se(this.mountedCardElements);u(!!p,`You must mount ${p} element!`),m=yield v(this,V,te).call(this,{accessToken:t})}return yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:o,lang:this.sdkEmbed.lang,billingData:n,shippingData:i,cardEmbed:m,saveCard:a,installmentPlanData:r}})})}selectInstallmentPlan(i){return f(this,arguments,function*({intentId:e,planId:t,issuerCode:n}){return this.sdkApiHandler.request({api:"sdk:selectInstallmentPlan",payload:{planId:t,intentId:e,issuerCode:n,lang:this.sdkEmbed.lang}})})}getInstallmentPlans(i){return f(this,arguments,function*({first6Digits:e,amount:t,currency:n}){return u(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get installment plans!"),this.sdkApiHandler.request({api:"sdk:getInstallmentPlans",payload:{first6Digits:e,amount:t,currency:n,publicApiKey:this.options.publicApiKey,lang:this.sdkEmbed.lang}})})}submitCvv(i){return f(this,arguments,function*({intentId:e,cvv:t,installmentPlanData:n}){return this.sdkApiHandler.request({api:"sdk:submitCardCvv",payload:{intentId:e,cvv:t,installmentPlanData:n,lang:this.sdkEmbed.lang}})})}renderUrl(a){return f(this,arguments,function*({intentId:e,url:t,renderStrategy:n,options:i}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),n){case"IFRAME":return v(this,B,we).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return v(this,W,be).call(this,{url:t,intentId:e,options:i});case"REDIRECT":return v(this,j,Pe).call(this,{url:t,options:i});default:return null}})}onExpiration(e,t){if(!e)return()=>{};const n=new Date(e),i=setInterval(()=>f(this,null,function*(){const a=new Date;n<a&&(clearInterval(i),t())}),1e3);return()=>clearInterval(i)}}N=new WeakSet,ee=function(e){var n,i;return{apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[A({type:"CARD",parameters:{allowedAuthMethods:((n=this.options.googlePay)==null?void 0:n.allowedAuthMethods)||["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:((i=this.options.googlePay)==null?void 0:i.allowedCardNetworks)||["AMEX","DISCOVER","JCB","MASTERCARD","VISA"]}},e?{tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:e.gateway,gatewayMerchantId:e.gateway_merchant_id}}}:{})]}},V=new WeakSet,te=function(t){return f(this,arguments,function*({accessToken:e}){const n=new T;this.vaultSubmitListener.current=o=>{const{type:r,data:s}=o.data;r==="vaultSubmit:success"&&n.resolve(s),r==="vaultSubmit:error"&&n.reject(s)};const i=v(this,x,Ee).call(this,{accessToken:e}),a=yield n.promise;return i.remove(),a})},B=new WeakSet,we=function(n){return f(this,arguments,function*({intentId:e,url:t}){const i=document.querySelector("#rendered-url-iframe-container");u(!i,"Couldn't find an element with id rendered-url-iframe-container to render the iframe!");const a=document.createElement("iframe");a.src=t,a.style.setProperty("border","0","important"),a.style.setProperty("width","100%","important"),a.style.setProperty("height","100%","important"),i==null||i.replaceChildren(a),yield v(this,D,ie).call(this,{intentId:e}),a.remove()})},W=new WeakSet,be=function(i){return f(this,arguments,function*({intentId:e,url:t,options:n={}}){const{width:a=600,height:o=400,left:r=200,top:s=200}=n.window||{},m=window.open(t,"",`width=${a},height=${o},left=${r},top=${s}`);u(!m,"Popup blocked by browser!"),yield v(this,D,ie).call(this,{intentId:e,isUsingPopUp:!0}),m==null||m.close()})},j=new WeakSet,Pe=function(n){return f(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},D=new WeakSet,ie=function(n){return f(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const i=new T,a=o=>f(this,null,function*(){var s,m,h,p;if(o.origin!==c())return;const{type:r}=o.data;if(r==="intentResult"){t&&this.sdkApiHandler.postMessage("EmbedResultClose");const[g]=yield Promise.all([this.getIntentDetails(e),Ce(2)]),P=g.transaction.status.split(".")[1];P==="successful"||P.startsWith("pending")?(m=(s=this.options).onComplete)==null||m.call(s,A({type:this.options.type},g)):(p=(h=this.options).onFail)==null||p.call(h,A({type:this.options.type},g)),i.resolve(()=>null),window.removeEventListener("message",a)}});return window.addEventListener("message",a),i.promise})},G=new WeakSet,ke=function(e){const t=n=>{n.origin===F()&&e.forEach(i=>{i(n)})};window.addEventListener("message",t)},K=new WeakSet,Ae=function(e){const t=n=>{e.current&&e.current(n)};window.addEventListener("message",t)},Y=new WeakSet,ve=function({container:e,elementType:t,elementOptions:n,styles:i,fontSourceCss:a}){var m,h,p,g,P;const o=F(),r=new URL(`${o}/vaultField/vaultField.html`);a&&r.searchParams.set("fontSourceCss",a),r.searchParams.set("host",btoa(window.location.origin)),r.searchParams.set("type",t),((m=n.validation)==null?void 0:m.required)!==void 0&&r.searchParams.set("required",`${(h=n.validation)==null?void 0:h.required}`),r.searchParams.set("placeholder",(p=n.placeholder)!=null?p:""),r.searchParams.set("inputMode",(g=n.inputMode)!=null?g:""),r.searchParams.set("lang",this.sdkEmbed.lang),r.searchParams.set("direction",(i==null?void 0:i.direction)||""),r.searchParams.set("color",JSON.stringify(i!=null&&i.color?i.color:"#000")),r.searchParams.set("placeholderColor",(i==null?void 0:i.placeholderColor)||"#ccc"),r.searchParams.set("backgroundColor",(i==null?void 0:i.backgroundColor)||"transparent"),r.searchParams.set("fontSize",(i==null?void 0:i.fontSize)||""),r.searchParams.set("fontFamily",(i==null?void 0:i.fontFamily)||""),r.searchParams.set("fontWeight",`${i==null?void 0:i.fontWeight}`),r.searchParams.set("fontStyle",(i==null?void 0:i.fontStyle)||""),r.searchParams.set("padding",(i==null?void 0:i.padding)||"");const s=document.createElement("iframe");return s.src=r.toString(),s.style.height=(P=i==null?void 0:i.height)!=null?P:"40px",s.style.setProperty("overflow","hidden","important"),s.style.setProperty("display","block","important"),s.style.setProperty("width","100%","important"),s.style.setProperty("maxWidth","100%","important"),s.style.setProperty("border","0","important"),s.style.setProperty("margin","0","important"),s.style.setProperty("padding","0","important"),s.style.setProperty("userSelect","none","important"),s.style.setProperty("colorScheme","light only","important"),e.replaceChildren(s),s},x=new WeakSet,Ee=function({accessToken:e}){const t=F(),n=Se(),i=new URL(`${t}/vaultSubmit/vaultSubmit.html`);i.searchParams.set("host",btoa(window.location.origin)),i.searchParams.set("vault_api_url",`${n}/api/v1/tokens/`),i.searchParams.set("access_token",e),i.searchParams.set("lang",this.sdkEmbed.lang);const a=document.createElement("iframe");return a.id="moneyhash-submit-iframe",a.src=i.toString(),a.hidden=!0,document.body.appendChild(a),a},d.IFrameSandboxOptions=O,d.default=Me,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
(function(d,l){typeof exports=="object"&&typeof module!="undefined"?l(exports):typeof define=="function"&&define.amd?define(["exports"],l):(d=typeof globalThis!="undefined"?globalThis:d||self,l(d.MoneyHash={}))})(this,function(d){var N,ee,O,te,T,be,B,Pe,W,ke,V,ie,G,Ae,K,Ee,Y,ve,x,Se;"use strict";var Le=Object.defineProperty,Ue=Object.defineProperties;var _e=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var ye=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable;var Z=(d,l,c)=>l in d?Le(d,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):d[l]=c,A=(d,l)=>{for(var c in l||(l={}))ye.call(l,c)&&Z(d,c,l[c]);if(z)for(var c of z(l))fe.call(l,c)&&Z(d,c,l[c]);return d},J=(d,l)=>Ue(d,_e(l));var we=(d,l)=>{var c={};for(var v in d)ye.call(d,v)&&l.indexOf(v)<0&&(c[v]=d[v]);if(d!=null&&z)for(var v of z(d))l.indexOf(v)<0&&fe.call(d,v)&&(c[v]=d[v]);return c};var b=(d,l,c)=>(Z(d,typeof l!="symbol"?l+"":l,c),c),qe=(d,l,c)=>{if(!l.has(d))throw TypeError("Cannot "+c)};var M=(d,l,c)=>{if(l.has(d))throw TypeError("Cannot add the same private member more than once");l instanceof WeakSet?l.add(d):l.set(d,c)};var E=(d,l,c)=>(qe(d,l,"access private method"),c);var w=(d,l,c)=>new Promise((v,I)=>{var j=C=>{try{q(c.next(C))}catch(H){I(H)}},m=C=>{try{q(c.throw(C))}catch(H){I(H)}},q=C=>C.done?v(C.value):Promise.resolve(C.value).then(j,m);q((c=c.apply(d,l)).next())});class l{constructor(e){b(this,"target");b(this,"targetOrigin");b(this,"listeners");b(this,"onIncomingMessageBind",this.onIncomingMessage.bind(this));this.target=e.target,this.targetOrigin=e.targetOrigin,this.listeners=[],window.addEventListener("message",this.onIncomingMessageBind)}send(e){this.target.postMessage(e,this.targetOrigin)}onReceive(e){this.listeners.push(e)}removeListener(e){this.listeners=this.listeners.filter(t=>t!==e)}onIncomingMessage(e){e.origin===this.targetOrigin&&this.listeners.forEach(t=>{t(e,this.send.bind(this))})}abortService(){window.removeEventListener("message",this.onIncomingMessageBind)}}function c(){var e;return(e=window.MONEYHASH_IFRAME_URL)!=null?e:"https://embed.moneyhash.io"}function v(){return typeof window!="undefined"}const R=class{constructor(){v()&&this.initSDKCommunicationIframe()}initSDKCommunicationIframe(){if(document.getElementById("moneyhash-headless-sdk"))return;const e=c(),t=new URL(`${e}/embed/headless-sdk`);t.searchParams.set("sdk","true"),t.searchParams.set("parent",window.location.origin),t.searchParams.set("version","js@1.11.0-beta.0");const a=document.createElement("iframe");a.id="moneyhash-headless-sdk",a.src=t.toString(),a.hidden=!0,document.body.appendChild(a),R.messagingService=new l({target:a.contentWindow,targetOrigin:e}),R.isCommunicationReady=new Promise(i=>{var o;const s=r=>{var n;r.data.type==="headlessSDK:init"&&(i(),(n=R.messagingService)==null||n.removeListener(s))};(o=R.messagingService)==null||o.onReceive(s)})}request(a){return w(this,arguments,function*({api:e,payload:t}){return yield R.isCommunicationReady,new Promise((i,s)=>{var r,n;(r=R.messagingService)==null||r.send({type:e,data:t});const o=h=>{var g;const{type:u,data:p}=h.data;u===e&&(p.status==="resolved"?i(p.payload):s(p.payload),(g=R.messagingService)==null||g.removeListener(o))};(n=R.messagingService)==null||n.onReceive(o)})})}postMessage(e){var t;(t=R.messagingService)==null||t.send({type:e})}};let I=R;b(I,"messagingService",null),b(I,"isCommunicationReady");const j=["allow-downloads","allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-storage-access-by-user-activation","allow-top-navigation","allow-top-navigation-by-user-activation"];function m(y,e){if(y)throw new Error(e)}const q=new Set(["payment","payout"]),C=new Set(["en","fr","ar"]);class H{constructor(e){b(this,"options");b(this,"messagingService",null);b(this,"iframe",null);b(this,"isCommunicationReady",null);m(!q.has(e.type),`MoneyHash constructor must be called with valid type (${[...q].join(" | ")})!`),this.options=e}get lang(){var t;return((t=this.options.locale)==null?void 0:t.split("-")[0])||"en"}render({selector:e,intentId:t,sandbox:a,onHeightChange:i}){var h,u;(h=this.messagingService)==null||h.abortService();const s=c(),o=new URL(`${s}/embed/${this.options.type}/${t}`);o.searchParams.set("sdk","true"),o.searchParams.set("parent",window.location.origin),o.searchParams.set("version","js@1.11.0-beta.0"),i&&o.searchParams.set("onDimensionsChange","true");const r=(u=this.options.locale)==null?void 0:u.split("-")[0];r&&o.searchParams.set("lang",r),this.iframe=document.createElement("iframe"),this.iframe.src=o.toString(),this.iframe.style.height="100%",this.iframe.style.width="100%",this.iframe.style.border="0",a&&a.forEach(p=>{var g;j.includes(p)&&((g=this.iframe)==null||g.sandbox.add(p))});const n=document.querySelector(e);return m(!n,`Couldn't find an element with selector ${e}!`),n.replaceChildren(this.iframe),this.messagingService=new l({target:this.iframe.contentWindow,targetOrigin:s}),this.isCommunicationReady=new Promise(p=>{var P;const g=k=>{var S;k.data.type==="sdk:init"&&(p(),(S=this.messagingService)==null||S.removeListener(g))};(P=this.messagingService)==null||P.onReceive(g)}),this.messagingService.onReceive((p,g)=>{var S,U,f,$;const{type:P,data:k}=p.data;switch(P){case"sdk:init":{g({type:"sdk:init",data:{headless:Boolean(this.options.headless),styles:this.options.styles}});break}case"onComplete":{(U=(S=this.options).onComplete)==null||U.call(S,A({type:this.options.type},k)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"onFail":{($=(f=this.options).onFail)==null||$.call(f,A({type:this.options.type},k)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"dimensionsChange":{i==null||i(k.iframeHeight);break}}}),this.isCommunicationReady}setLocale(e){return w(this,null,function*(){var t;yield this==null?void 0:this.isCommunicationReady,this.options.locale=e,(t=this.messagingService)==null||t.send({type:"changeLanguage",data:{locale:e}})})}abortService(){return w(this,null,function*(){var e;yield this==null?void 0:this.isCommunicationReady,(e=this.messagingService)==null||e.abortService()})}}class D{constructor(){b(this,"promise");b(this,"resolve");b(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}function Ce(){var e;return(e=window.MONEYHASH_VAULT_API_URL)!=null?e:"https://vault.moneyhash.io"}function F(){var e;return(e=window.MONEYHASH_VAULT_INPUT_IFRAME_URL)!=null?e:"https://vault-form.moneyhash.io"}function se(y){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!y.includes(t))return t;return null}function ne(y){return(Array.isArray(y)?y.length:Object.keys(y).length)===0}function ae(y){if(typeof y!="object"||y===null)return!1;const e=Object.getPrototypeOf(y);return e===Object.prototype||e===null}function X(y,e){return new Promise((t,a)=>{if(document.getElementById(e)){t(void 0);return}const s=document.createElement("script");s.src=y,s.id=e,s.addEventListener("load",()=>{t(void 0)}),s.addEventListener("error",()=>{a(new Error("Script failed to load"))}),document.body.appendChild(s)})}function Re(y){return new Promise(e=>{setTimeout(()=>{e("done")},y*1e3)})}function Me(y,e){y&&console.warn(e)}const re=new Set(["method","customerBalance","savedCard"]);class Ie{constructor(e){M(this,N);M(this,O);M(this,T);M(this,B);M(this,W);M(this,V);M(this,G);M(this,K);M(this,Y);M(this,x);b(this,"options");b(this,"sdkApiHandler",new I);b(this,"sdkEmbed");b(this,"vaultSubmitListener",{current:null});b(this,"mountedCardElements",[]);b(this,"googlePaymentsClient",null);b(this,"cardForm",{collect:()=>w(this,null,function*(){m(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to collect card!");const e=se(this.mountedCardElements);m(!!e,`You must mount ${e} element!`);const t=yield this.sdkApiHandler.request({api:"sdk:generateAccessToken",payload:{publicApiKey:this.options.publicApiKey}});return E(this,O,te).call(this,{accessToken:t})}),pay:r=>w(this,[r],function*({intentId:e,cardData:t,saveCard:a,billingData:i,shippingData:s,installmentPlanData:o}){return this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",billingData:i,shippingData:s,cardEmbed:t,saveCard:a,installmentPlanData:o}})}),createCardToken:a=>w(this,[a],function*({cardIntentId:e,cardData:t}){return this.sdkApiHandler.request({api:"sdk:createCardToken",payload:{cardIntentId:e,lang:this.sdkEmbed.lang,paymentMethod:"CARD",cardEmbed:t}})})});this.options=e,this.sdkEmbed=new H(J(A({},e),{headless:!0})),E(this,K,Ee).call(this,this.vaultSubmitListener)}getIntentDetails(e){return this.sdkApiHandler.request({api:"sdk:getIntentDetails",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getIntentMethods(e){return this.sdkApiHandler.request({api:"sdk:getIntentMethods",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}getMethods(e){return"intentId"in e?this.getIntentMethods(e.intentId):(m(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get methods!"),m(this.options.type==="payout","getMethods is not allowed for payout!"),this.sdkApiHandler.request({api:"sdk:getMethods",payload:A({intentType:this.options.type,lang:this.sdkEmbed.lang,publicApiKey:this.options.publicApiKey},e)}))}proceedWith({intentId:e,type:t,id:a,useWalletBalance:i,metaData:s,installmentPlanData:o}){return m(!re.has(t),`type must be a valid one (${[...re].join(" | ")})`),this.sdkApiHandler.request({api:"sdk:proceedWith",payload:{proceedWith:t,intentType:this.options.type,intentId:e,id:a,lang:this.sdkEmbed.lang,useWalletBalance:i,metaData:s,installmentPlanData:o}})}resetSelectedMethod(e){return this.sdkApiHandler.request({api:"sdk:resetSelectedMethod",payload:{intentType:this.options.type,intentId:e,lang:this.sdkEmbed.lang}})}deleteCard({cardId:e,intentSecret:t}){return m(this.options.type==="payout","deleteCard is allowed only for payment intent!"),this.sdkApiHandler.request({api:"sdk:deleteCard",payload:{cardId:e,intentSecret:t,lang:this.sdkEmbed.lang}})}payWithApplePay(h){return w(this,arguments,function*({intentId:e,currency:t,amount:a,countryCode:i,onCancel:s=()=>{},onError:o,onComplete:r,billingData:n=!0}){if(yield X("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const u=new ApplePaySession(3,{countryCode:i,currencyCode:t,supportedNetworks:["visa","masterCard","amex","discover","mada"],merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${a}`},requiredShippingContactFields:["email"]}),{state:p,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(p==="FORM_FIELDS"){if(!ae(n)||ne(n))throw new Error("Billing data is missing while calling payWithApplePay");yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"APPLE_PAY",lang:this.sdkEmbed.lang,billingData:n}})}}catch(k){throw yield this.resetSelectedMethod(e),k}const P=new D;return u.onvalidatemerchant=k=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{secret:g.secret,validationUrl:k.validationURL,parentOrigin:window.location.origin}}).then(S=>u.completeMerchantValidation(S)).catch(o),u.onpaymentauthorized=k=>{var S;return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:JSON.stringify({token:k.payment.token}),receiptBillingData:{email:(S=k.payment.shippingContact)==null?void 0:S.emailAddress}}}).then(U=>{u.completePayment(ApplePaySession.STATUS_SUCCESS),r==null||r(),P.resolve(U)}).catch(()=>{u.completePayment(ApplePaySession.STATUS_FAILURE),o==null||o(),P.reject(void 0)})},u.oncancel=s,u.begin(),P.promise})}renderGooglePayButton(a){return w(this,null,function*(){var i=a,{onClick:e}=i,t=we(i,["onClick"]);var r;const s=document.getElementById("moneyHash-google-pay-button");m(!s,"Couldn't find an element with id moneyHash-google-pay-button to render the google pay button!"),yield X("https://pay.google.com/gp/p/js/pay.js","moneyHash-google-pay-sdk"),this.googlePaymentsClient=new window.google.payments.api.PaymentsClient({environment:((r=this.options.googlePay)==null?void 0:r.environment)||"PRODUCTION"});const o=E(this,N,ee).call(this);this.googlePaymentsClient.isReadyToPay(o).then(n=>{if(n.result){const h=this.googlePaymentsClient.createButton(J(A({buttonSizeMode:"fill",buttonType:"pay"},t),{allowedPaymentMethods:o.allowedPaymentMethods,onClick:e}));s==null||s.replaceChildren(h)}else throw new Error("Google Pay is not ready to pay!")}).catch(n=>{console.dir(n)})})}generateGooglePayReceipt({nativePayData:e,onCancel:t,billingData:a=!0}){return m(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "generateGooglePayReceipt"'),m(!e,"nativePayData is required to generate Google Pay receipt!"),m(!e.amount,"nativePayData.amount is required to generate Google Pay receipt!"),this.googlePaymentsClient.loadPaymentData(J(A({},E(this,N,ee).call(this,e)),{transactionInfo:{totalPriceStatus:"FINAL",totalPriceLabel:"Total",totalPrice:`${e.amount}`,currencyCode:e.currency_code,countryCode:e.country_code},merchantInfo:{merchantName:e.merchant_name,merchantId:e.merchant_id},emailRequired:a})).then(i=>({receipt:i.paymentMethodData.tokenizationData.token,receiptBillingData:{email:i.email}})).catch(i=>(i.statusCode==="CANCELED"?t==null||t():console.dir(i),Promise.reject(i)))}generateApplePayReceipt(i){return w(this,arguments,function*({nativePayData:e,onCancel:t=()=>{},billingData:a=!0}){if(yield X("https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js","moneyHash-apple-pay-sdk"),m(!e,"nativePayData is required to generate Apple Pay receipt!"),!e)return{receipt:"",receiptBillingData:{}};if(m(!e.amount,"nativePayData.amount is required to generate Apple Pay receipt!"),!ApplePaySession)throw new Error("Apple Pay is not supported!");const s=new ApplePaySession(3,{countryCode:e.country_code,currencyCode:e.currency_code,supportedNetworks:e.supported_networks,merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${e.amount}`},requiredShippingContactFields:a?["email"]:void 0}),o=new D;return s.onvalidatemerchant=r=>this.sdkApiHandler.request({api:"sdk:applePaySession",payload:{methodId:e.method_id,validationUrl:r.validationURL,parentOrigin:window.location.origin}}).then(n=>s.completeMerchantValidation(n)).catch(n=>{s.abort(),o.reject(n)}),s.onpaymentauthorized=r=>{var h;const n={receipt:JSON.stringify({token:r.payment.token}),receiptBillingData:{email:(h=r.payment.shippingContact)==null?void 0:h.emailAddress}};s.completePayment(ApplePaySession.STATUS_SUCCESS),o.resolve(n)},s.oncancel=t,s.begin(),o.promise})}submitPaymentReceipt({intentId:e,nativeReceiptData:t}){return this.sdkApiHandler.request({api:"sdk:submitReceipt",payload:{intentId:e,lang:this.sdkEmbed.lang,receipt:t.receipt,receiptBillingData:t.receiptBillingData}})}payWithGooglePay(i){return w(this,arguments,function*({intentId:e,billingData:t=!0,onCancel:a}){m(!this.googlePaymentsClient,'Google Payments Client is not initialized! Make sure to call "renderGooglePay" before calling "payWithGooglePay"');let s=yield this.proceedWith({intentId:e,type:"method",id:"GOOGLE_PAY"});try{if(s.state==="FORM_FIELDS"){if(!ae(t)||ne(t))throw new Error("Billing data is missing while calling payWithGooglePay");s=yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:"GOOGLE_PAY",lang:this.sdkEmbed.lang,billingData:t}})}}catch(r){throw yield this.resetSelectedMethod(e),r}const{nativePayData:o}=s;return o?this.generateGooglePayReceipt({nativePayData:o,onCancel:a,billingData:typeof t=="boolean"?t:!1}).then(r=>this.submitPaymentReceipt({intentId:e,nativeReceiptData:r})):s})}renderForm(e){return m(!e.selector,"selector is required for renderForm"),m(!e.intentId,"intentId is required for renderForm"),this.sdkEmbed.render(e)}setLocale(e){Me(!!e&&!C.has(e),`Invalid locale. Supported languages (${[...C].join(" | ")})`);const t=C.has(e)?e:"en";return this.sdkEmbed.setLocale(t)}removeEventListeners(){return this.sdkEmbed.abortService()}updateIntentDiscount({intentId:e,discount:t}){return m(!t.title.en,"English discount title is required!"),this.sdkApiHandler.request({api:"sdk:updateIntentDiscount",payload:{intentId:e,discount:t,lang:this.sdkEmbed.lang}})}updateIntentFees({intentId:e,fees:t}){return t.forEach(a=>{m(!a.title.en,"English fee title is required!")}),this.sdkApiHandler.request({api:"sdk:updateIntentFees",payload:{intentId:e,fees:t,lang:this.sdkEmbed.lang}})}elements({styles:e,classes:t,fontSourceCss:a}){const i=[],s={},o=new Map;let r=!1;return E(this,G,Ae).call(this,i),{create:({elementType:n,elementOptions:h})=>{var S,U;const u=new Map;let p=null;const g=A(A({},t),h.classes),P=((S=g==null?void 0:g.focus)==null?void 0:S.split(" "))||["MoneyHashElement--focus"],k=((U=g==null?void 0:g.error)==null?void 0:U.split(" "))||["MoneyHashElement--error"];return{mount:()=>{const f=document.querySelector(h.selector);m(!f,`Couldn't find an element with selector ${h.selector}!`),f.classList.add("MoneyHashElement"),i.push($=>{var oe,de,le,ce,pe,he,ue,me,ge;const{type:L,data:_}=$.data;if(L===`${n}@mount`&&(s[n]=_.isValid,(oe=u.get(`${n}@mount`))==null||oe()),L===`${n}@focus`){f.classList.add(...P),(de=u.get(`${n}@focus`))==null||de();return}if(L===`${n}@blur`){f.classList.remove(...P),(le=u.get(`${n}@blur`))==null||le();return}if(L===`${n}@error`){_.isValid?f.classList.remove(...k):f.classList.add(...k),(ce=u.get(`${n}@error`))==null||ce(_);return}if(L===`${n}@changeInput`){if((pe=u.get(`${n}@changeInput`))==null||pe({isValid:_.isValid,length:_.length}),s[n]=_.isValid,o.get("validityChange")){const Q=Object.values(s).every(Boolean);Q!==r&&((he=o.get("validityChange"))==null||he(Q),r=Q)}return}if(L===`${n}@cardNumberChange`){(ue=u.get(`${n}@cardNumberChange`))==null||ue(_);return}if(L===`${n}@key:Backspace`){(me=u.get(`${n}@key:Backspace`))==null||me();return}L===`${n}@key:Enter`&&((ge=u.get(`${n}@key:Enter`))==null||ge())}),p=E(this,Y,ve).call(this,{container:f,elementType:n,elementOptions:h,styles:A(A({},e),h.styles),fontSourceCss:a}),this.mountedCardElements.push(n)},on:(f,$)=>{u.set(`${n}@${f}`,$)},off:f=>u.delete(`${n}@${f}`),focus:()=>{var f;(f=p==null?void 0:p.contentWindow)==null||f.postMessage({type:"focus"},F())},blur:()=>{var f;(f=p==null?void 0:p.contentWindow)==null||f.postMessage({type:"blur"},F())},clear:()=>{var f;(f=p==null?void 0:p.contentWindow)==null||f.postMessage({type:"clear"},F())}}},on:(n,h)=>{o.set(n,h)}}}submitForm(n){return w(this,arguments,function*({intentId:e,accessToken:t,billingData:a,shippingData:i,saveCard:s,paymentMethod:o="CARD",installmentPlanData:r}){let h;if(t){const p=se(this.mountedCardElements);m(!!p,`You must mount ${p} element!`),h=yield E(this,O,te).call(this,{accessToken:t})}return yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:o,lang:this.sdkEmbed.lang,billingData:a,shippingData:i,cardEmbed:h,saveCard:s,installmentPlanData:r}})})}selectInstallmentPlan(i){return w(this,arguments,function*({intentId:e,planId:t,issuerCode:a}){return this.sdkApiHandler.request({api:"sdk:selectInstallmentPlan",payload:{planId:t,intentId:e,issuerCode:a,lang:this.sdkEmbed.lang}})})}getInstallmentPlans(i){return w(this,arguments,function*({first6Digits:e,amount:t,currency:a}){return m(!this.options.publicApiKey,"publicApiKey on MoneyHash instance is required to get installment plans!"),this.sdkApiHandler.request({api:"sdk:getInstallmentPlans",payload:{first6Digits:e,amount:t,currency:a,publicApiKey:this.options.publicApiKey,lang:this.sdkEmbed.lang}})})}submitCvv(i){return w(this,arguments,function*({intentId:e,cvv:t,installmentPlanData:a}){return this.sdkApiHandler.request({api:"sdk:submitCardCvv",payload:{intentId:e,cvv:t,installmentPlanData:a,lang:this.sdkEmbed.lang}})})}renderUrl(s){return w(this,arguments,function*({intentId:e,url:t,renderStrategy:a,options:i}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),a){case"IFRAME":return E(this,T,be).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return E(this,B,Pe).call(this,{url:t,intentId:e,options:i});case"REDIRECT":return E(this,W,ke).call(this,{url:t,options:i});default:return null}})}onExpiration(e,t){if(!e)return()=>{};const a=new Date(e),i=setInterval(()=>w(this,null,function*(){const s=new Date;a<s&&(clearInterval(i),t())}),1e3);return()=>clearInterval(i)}}N=new WeakSet,ee=function(e){var a,i;return{apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[A({type:"CARD",parameters:{allowedAuthMethods:((a=this.options.googlePay)==null?void 0:a.allowedAuthMethods)||["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:((i=this.options.googlePay)==null?void 0:i.allowedCardNetworks)||["AMEX","DISCOVER","JCB","MASTERCARD","VISA"]}},e?{tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:e.gateway,gatewayMerchantId:e.gateway_merchant_id}}}:{})]}},O=new WeakSet,te=function(t){return w(this,arguments,function*({accessToken:e}){const a=new D;this.vaultSubmitListener.current=o=>{const{type:r,data:n}=o.data;r==="vaultSubmit:success"&&a.resolve(n),r==="vaultSubmit:error"&&a.reject(n)};const i=E(this,x,Se).call(this,{accessToken:e}),s=yield a.promise;return i.remove(),s})},T=new WeakSet,be=function(a){return w(this,arguments,function*({intentId:e,url:t}){const i=document.querySelector("#rendered-url-iframe-container");m(!i,"Couldn't find an element with id rendered-url-iframe-container to render the iframe!");const s=document.createElement("iframe");s.src=t,s.style.setProperty("border","0","important"),s.style.setProperty("width","100%","important"),s.style.setProperty("height","100%","important"),i==null||i.replaceChildren(s),yield E(this,V,ie).call(this,{intentId:e}),s.remove()})},B=new WeakSet,Pe=function(i){return w(this,arguments,function*({intentId:e,url:t,options:a={}}){const{width:s=600,height:o=400,left:r=200,top:n=200}=a.window||{},h=window.open(t,"",`width=${s},height=${o},left=${r},top=${n}`);m(!h,"Popup blocked by browser!"),yield E(this,V,ie).call(this,{intentId:e,isUsingPopUp:!0}),h==null||h.close()})},W=new WeakSet,ke=function(a){return w(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},V=new WeakSet,ie=function(a){return w(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const i=new D,s=o=>w(this,null,function*(){var n,h,u,p;if(o.origin!==c())return;const{type:r}=o.data;if(r==="intentResult"){t&&this.sdkApiHandler.postMessage("EmbedResultClose");const[g]=yield Promise.all([this.getIntentDetails(e),Re(2)]),P=g.transaction.status.split(".")[1];P==="successful"||P.startsWith("pending")?(h=(n=this.options).onComplete)==null||h.call(n,A({type:this.options.type},g)):(p=(u=this.options).onFail)==null||p.call(u,A({type:this.options.type},g)),i.resolve(()=>null),window.removeEventListener("message",s)}});return window.addEventListener("message",s),i.promise})},G=new WeakSet,Ae=function(e){const t=a=>{a.origin===F()&&e.forEach(i=>{i(a)})};window.addEventListener("message",t)},K=new WeakSet,Ee=function(e){const t=a=>{e.current&&e.current(a)};window.addEventListener("message",t)},Y=new WeakSet,ve=function({container:e,elementType:t,elementOptions:a,styles:i,fontSourceCss:s}){var h,u,p,g,P;const o=F(),r=new URL(`${o}/vaultField/vaultField.html`);s&&r.searchParams.set("fontSourceCss",s),r.searchParams.set("host",btoa(window.location.origin)),r.searchParams.set("type",t),((h=a.validation)==null?void 0:h.required)!==void 0&&r.searchParams.set("required",`${(u=a.validation)==null?void 0:u.required}`),r.searchParams.set("placeholder",(p=a.placeholder)!=null?p:""),r.searchParams.set("inputMode",(g=a.inputMode)!=null?g:""),r.searchParams.set("lang",this.sdkEmbed.lang),r.searchParams.set("direction",(i==null?void 0:i.direction)||""),r.searchParams.set("color",JSON.stringify(i!=null&&i.color?i.color:"#000")),r.searchParams.set("placeholderColor",(i==null?void 0:i.placeholderColor)||"#ccc"),r.searchParams.set("backgroundColor",(i==null?void 0:i.backgroundColor)||"transparent"),r.searchParams.set("fontSize",(i==null?void 0:i.fontSize)||""),r.searchParams.set("fontFamily",(i==null?void 0:i.fontFamily)||""),r.searchParams.set("fontWeight",`${i==null?void 0:i.fontWeight}`),r.searchParams.set("fontStyle",(i==null?void 0:i.fontStyle)||""),r.searchParams.set("padding",(i==null?void 0:i.padding)||"");const n=document.createElement("iframe");return n.src=r.toString(),n.style.height=(P=i==null?void 0:i.height)!=null?P:"40px",n.style.setProperty("overflow","hidden","important"),n.style.setProperty("display","block","important"),n.style.setProperty("width","100%","important"),n.style.setProperty("maxWidth","100%","important"),n.style.setProperty("border","0","important"),n.style.setProperty("margin","0","important"),n.style.setProperty("padding","0","important"),n.style.setProperty("userSelect","none","important"),n.style.setProperty("colorScheme","light only","important"),e.replaceChildren(n),n},x=new WeakSet,Se=function({accessToken:e}){const t=F(),a=Ce(),i=new URL(`${t}/vaultSubmit/vaultSubmit.html`);i.searchParams.set("host",btoa(window.location.origin)),i.searchParams.set("vault_api_url",`${a}/api/v1/tokens/`),i.searchParams.set("access_token",e),i.searchParams.set("lang",this.sdkEmbed.lang);const s=document.createElement("iframe");return s.id="moneyhash-submit-iframe",s.src=i.toString(),s.hidden=!0,document.body.appendChild(s),s},d.IFrameSandboxOptions=j,d.default=Ie,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});

@@ -1,1 +0,1 @@

"use strict";var d=Object.defineProperty;var a=(t,e,s)=>e in t?d(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var n=(t,e,s)=>(a(t,typeof e!="symbol"?e+"":e,s),s);const r=require("./warnIf-aa9250a6.cjs");class o{constructor(e){n(this,"options");n(this,"sdkEmbed");this.options=e,this.sdkEmbed=new r.SDKEmbed(e)}start(e){return r.throwIf(!e.selector,"selector is required for start"),r.throwIf(!e.intentId,"intentId is required for start"),this.sdkEmbed.render(e)}setLocale(e){r.warnIf(!!e&&!r.supportedLanguages.has(e),`Invalid locale. Supported languages (${[...r.supportedLanguages].join(" | ")})`);const s=r.supportedLanguages.has(e)?e:"en";return this.sdkEmbed.setLocale(s)}removeEventListeners(){return this.sdkEmbed.abortService()}}module.exports=o;
"use strict";var d=Object.defineProperty;var a=(t,e,s)=>e in t?d(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var n=(t,e,s)=>(a(t,typeof e!="symbol"?e+"":e,s),s);const r=require("./warnIf-3557d784.cjs");class o{constructor(e){n(this,"options");n(this,"sdkEmbed");this.options=e,this.sdkEmbed=new r.SDKEmbed(e)}start(e){return r.throwIf(!e.selector,"selector is required for start"),r.throwIf(!e.intentId,"intentId is required for start"),this.sdkEmbed.render(e)}setLocale(e){r.warnIf(!!e&&!r.supportedLanguages.has(e),`Invalid locale. Supported languages (${[...r.supportedLanguages].join(" | ")})`);const s=r.supportedLanguages.has(e)?e:"en";return this.sdkEmbed.setLocale(s)}removeEventListeners(){return this.sdkEmbed.abortService()}}module.exports=o;
var n = Object.defineProperty;
var i = (t, e, s) => e in t ? n(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
var r = (t, e, s) => (i(t, typeof e != "symbol" ? e + "" : e, s), s);
import { S as o, t as d, w as u, s as a } from "./warnIf-9394d140.js";
import { S as o, t as d, w as u, s as a } from "./warnIf-30b9c76c.js";
class c {

@@ -6,0 +6,0 @@ constructor(e) {

@@ -1,1 +0,1 @@

(function(i,s){typeof exports=="object"&&typeof module!="undefined"?module.exports=s():typeof define=="function"&&define.amd?define(s):(i=typeof globalThis!="undefined"?globalThis:i||self,i.MoneyHash=s())})(this,function(){"use strict";var $=Object.defineProperty;var U=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var b=(i,s,t)=>s in i?$(i,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[s]=t,S=(i,s)=>{for(var t in s||(s={}))A.call(s,t)&&b(i,t,s[t]);if(U)for(var t of U(s))_.call(s,t)&&b(i,t,s[t]);return i};var o=(i,s,t)=>(b(i,typeof s!="symbol"?s+"":s,t),t);var E=(i,s,t)=>new Promise((l,m)=>{var g=r=>{try{u(t.next(r))}catch(a){m(a)}},v=r=>{try{u(t.throw(r))}catch(a){m(a)}},u=r=>r.done?l(r.value):Promise.resolve(r.value).then(g,v);u((t=t.apply(i,s)).next())});const i=["allow-downloads","allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-storage-access-by-user-activation","allow-top-navigation","allow-top-navigation-by-user-activation"];class s{constructor(e){o(this,"target");o(this,"targetOrigin");o(this,"listeners");o(this,"onIncomingMessageBind",this.onIncomingMessage.bind(this));this.target=e.target,this.targetOrigin=e.targetOrigin,this.listeners=[],window.addEventListener("message",this.onIncomingMessageBind)}send(e){this.target.postMessage(e,this.targetOrigin)}onReceive(e){this.listeners.push(e)}removeListener(e){this.listeners=this.listeners.filter(n=>n!==e)}onIncomingMessage(e){e.origin===this.targetOrigin&&this.listeners.forEach(n=>{n(e,this.send.bind(this))})}abortService(){window.removeEventListener("message",this.onIncomingMessageBind)}}function t(){var e;return(e=window.MONEYHASH_IFRAME_URL)!=null?e:"https://embed.moneyhash.io"}function l(a,e){if(a)throw new Error(e)}const m=new Set(["payment","payout"]),g=new Set(["en","fr","ar"]);class v{constructor(e){o(this,"options");o(this,"messagingService",null);o(this,"iframe",null);o(this,"isCommunicationReady",null);l(!m.has(e.type),`MoneyHash constructor must be called with valid type (${[...m].join(" | ")})!`),this.options=e}get lang(){var n;return((n=this.options.locale)==null?void 0:n.split("-")[0])||"en"}render({selector:e,intentId:n,sandbox:R,onHeightChange:w}){var M,O;(M=this.messagingService)==null||M.abortService();const I=t(),d=new URL(`${I}/embed/${this.options.type}/${n}`);d.searchParams.set("sdk","true"),d.searchParams.set("parent",window.location.origin),d.searchParams.set("version","js@1.10.1"),w&&d.searchParams.set("onDimensionsChange","true");const L=(O=this.options.locale)==null?void 0:O.split("-")[0];L&&d.searchParams.set("lang",L),this.iframe=document.createElement("iframe"),this.iframe.src=d.toString(),this.iframe.style.height="100%",this.iframe.style.width="100%",this.iframe.style.border="0",R&&R.forEach(h=>{var c;i.includes(h)&&((c=this.iframe)==null||c.sandbox.add(h))});const k=document.querySelector(e);return l(!k,`Couldn't find an element with selector ${e}!`),k.replaceChildren(this.iframe),this.messagingService=new s({target:this.iframe.contentWindow,targetOrigin:I}),this.isCommunicationReady=new Promise(h=>{var y;const c=p=>{var f;p.data.type==="sdk:init"&&(h(),(f=this.messagingService)==null||f.removeListener(c))};(y=this.messagingService)==null||y.onReceive(c)}),this.messagingService.onReceive((h,c)=>{var f,F,C,P;const{type:y,data:p}=h.data;switch(y){case"sdk:init":{c({type:"sdk:init",data:{headless:Boolean(this.options.headless),styles:this.options.styles}});break}case"onComplete":{(F=(f=this.options).onComplete)==null||F.call(f,S({type:this.options.type},p)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"onFail":{(P=(C=this.options).onFail)==null||P.call(C,S({type:this.options.type},p)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"dimensionsChange":{w==null||w(p.iframeHeight);break}}}),this.isCommunicationReady}setLocale(e){return E(this,null,function*(){var n;yield this==null?void 0:this.isCommunicationReady,this.options.locale=e,(n=this.messagingService)==null||n.send({type:"changeLanguage",data:{locale:e}})})}abortService(){return E(this,null,function*(){var e;yield this==null?void 0:this.isCommunicationReady,(e=this.messagingService)==null||e.abortService()})}}function u(a,e){a&&console.warn(e)}class r{constructor(e){o(this,"options");o(this,"sdkEmbed");this.options=e,this.sdkEmbed=new v(e)}start(e){return l(!e.selector,"selector is required for start"),l(!e.intentId,"intentId is required for start"),this.sdkEmbed.render(e)}setLocale(e){u(!!e&&!g.has(e),`Invalid locale. Supported languages (${[...g].join(" | ")})`);const n=g.has(e)?e:"en";return this.sdkEmbed.setLocale(n)}removeEventListeners(){return this.sdkEmbed.abortService()}}return r});
(function(i,s){typeof exports=="object"&&typeof module!="undefined"?module.exports=s():typeof define=="function"&&define.amd?define(s):(i=typeof globalThis!="undefined"?globalThis:i||self,i.MoneyHash=s())})(this,function(){"use strict";var $=Object.defineProperty;var U=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var b=(i,s,t)=>s in i?$(i,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[s]=t,S=(i,s)=>{for(var t in s||(s={}))A.call(s,t)&&b(i,t,s[t]);if(U)for(var t of U(s))_.call(s,t)&&b(i,t,s[t]);return i};var o=(i,s,t)=>(b(i,typeof s!="symbol"?s+"":s,t),t);var E=(i,s,t)=>new Promise((l,m)=>{var g=r=>{try{u(t.next(r))}catch(a){m(a)}},v=r=>{try{u(t.throw(r))}catch(a){m(a)}},u=r=>r.done?l(r.value):Promise.resolve(r.value).then(g,v);u((t=t.apply(i,s)).next())});const i=["allow-downloads","allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-same-origin","allow-scripts","allow-storage-access-by-user-activation","allow-top-navigation","allow-top-navigation-by-user-activation"];class s{constructor(e){o(this,"target");o(this,"targetOrigin");o(this,"listeners");o(this,"onIncomingMessageBind",this.onIncomingMessage.bind(this));this.target=e.target,this.targetOrigin=e.targetOrigin,this.listeners=[],window.addEventListener("message",this.onIncomingMessageBind)}send(e){this.target.postMessage(e,this.targetOrigin)}onReceive(e){this.listeners.push(e)}removeListener(e){this.listeners=this.listeners.filter(n=>n!==e)}onIncomingMessage(e){e.origin===this.targetOrigin&&this.listeners.forEach(n=>{n(e,this.send.bind(this))})}abortService(){window.removeEventListener("message",this.onIncomingMessageBind)}}function t(){var e;return(e=window.MONEYHASH_IFRAME_URL)!=null?e:"https://embed.moneyhash.io"}function l(a,e){if(a)throw new Error(e)}const m=new Set(["payment","payout"]),g=new Set(["en","fr","ar"]);class v{constructor(e){o(this,"options");o(this,"messagingService",null);o(this,"iframe",null);o(this,"isCommunicationReady",null);l(!m.has(e.type),`MoneyHash constructor must be called with valid type (${[...m].join(" | ")})!`),this.options=e}get lang(){var n;return((n=this.options.locale)==null?void 0:n.split("-")[0])||"en"}render({selector:e,intentId:n,sandbox:R,onHeightChange:w}){var M,O;(M=this.messagingService)==null||M.abortService();const I=t(),d=new URL(`${I}/embed/${this.options.type}/${n}`);d.searchParams.set("sdk","true"),d.searchParams.set("parent",window.location.origin),d.searchParams.set("version","js@1.11.0-beta.0"),w&&d.searchParams.set("onDimensionsChange","true");const L=(O=this.options.locale)==null?void 0:O.split("-")[0];L&&d.searchParams.set("lang",L),this.iframe=document.createElement("iframe"),this.iframe.src=d.toString(),this.iframe.style.height="100%",this.iframe.style.width="100%",this.iframe.style.border="0",R&&R.forEach(h=>{var c;i.includes(h)&&((c=this.iframe)==null||c.sandbox.add(h))});const k=document.querySelector(e);return l(!k,`Couldn't find an element with selector ${e}!`),k.replaceChildren(this.iframe),this.messagingService=new s({target:this.iframe.contentWindow,targetOrigin:I}),this.isCommunicationReady=new Promise(h=>{var y;const c=p=>{var f;p.data.type==="sdk:init"&&(h(),(f=this.messagingService)==null||f.removeListener(c))};(y=this.messagingService)==null||y.onReceive(c)}),this.messagingService.onReceive((h,c)=>{var f,F,C,P;const{type:y,data:p}=h.data;switch(y){case"sdk:init":{c({type:"sdk:init",data:{headless:Boolean(this.options.headless),styles:this.options.styles}});break}case"onComplete":{(F=(f=this.options).onComplete)==null||F.call(f,S({type:this.options.type},p)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"onFail":{(P=(C=this.options).onFail)==null||P.call(C,S({type:this.options.type},p)),this.options.headless&&this.iframe&&(this.iframe.hidden=!0);break}case"dimensionsChange":{w==null||w(p.iframeHeight);break}}}),this.isCommunicationReady}setLocale(e){return E(this,null,function*(){var n;yield this==null?void 0:this.isCommunicationReady,this.options.locale=e,(n=this.messagingService)==null||n.send({type:"changeLanguage",data:{locale:e}})})}abortService(){return E(this,null,function*(){var e;yield this==null?void 0:this.isCommunicationReady,(e=this.messagingService)==null||e.abortService()})}}function u(a,e){a&&console.warn(e)}class r{constructor(e){o(this,"options");o(this,"sdkEmbed");this.options=e,this.sdkEmbed=new v(e)}start(e){return l(!e.selector,"selector is required for start"),l(!e.intentId,"intentId is required for start"),this.sdkEmbed.render(e)}setLocale(e){u(!!e&&!g.has(e),`Invalid locale. Supported languages (${[...g].join(" | ")})`);const n=g.has(e)?e:"en";return this.sdkEmbed.setLocale(n)}removeEventListeners(){return this.sdkEmbed.abortService()}}return r});
{
"name": "@moneyhash/js-sdk",
"version": "1.10.1",
"version": "1.11.0-beta.0",
"description": "MoneyHash JavaScript SDK",

@@ -5,0 +5,0 @@ "type": "module",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc