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.11.2 to 1.12.0-beta.0

dist/warnIf-0aefb922.cjs

2

dist/headless.cjs.js

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

"use strict";var Ee=Object.defineProperty,Ie=Object.defineProperties;var Se=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable;var Y=(o,e,t)=>e in o?Ee(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,b=(o,e)=>{for(var t in e||(e={}))de.call(e,t)&&Y(o,t,e[t]);if(_)for(var t of _(e))le.call(e,t)&&Y(o,t,e[t]);return o},F=(o,e)=>Ie(o,Se(e));var ce=(o,e)=>{var t={};for(var i in o)de.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&_)for(var i of _(o))e.indexOf(i)<0&&le.call(o,i)&&(t[i]=o[i]);return t};var w=(o,e,t)=>(Y(o,typeof e!="symbol"?e+"":e,t),t),pe=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var H=(o,e,t)=>(pe(o,e,"read from private field"),t?t.call(o):e.get(o)),f=(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)=>(pe(o,e,"access private method"),t);var h=(o,e,t)=>new Promise((i,a)=>{var r=n=>{try{s(t.next(n))}catch(c){a(c)}},d=n=>{try{s(t.throw(n))}catch(c){a(c)}},s=n=>n.done?i(n.value):Promise.resolve(n.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-dffa6d69.cjs");function ve(){return typeof window!="undefined"}const k=class{constructor(){ve()&&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.11.2");const i=document.createElement("iframe");i.id="moneyhash-headless-sdk",i.src=t.toString(),i.hidden=!0,document.body.appendChild(i),k.messagingService=new l.MessagingService({target:i.contentWindow,targetOrigin:e}),k.isCommunicationReady=new Promise(a=>{var d;const r=s=>{var n;s.data.type==="headlessSDK:init"&&(a(),(n=k.messagingService)==null||n.removeListener(r))};(d=k.messagingService)==null||d.onReceive(r)})}request(i){return h(this,arguments,function*({api:e,payload:t}){return yield k.isCommunicationReady,new Promise((a,r)=>{var s,n;(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))};(n=k.messagingService)==null||n.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 ${constructor(){w(this,"promise");w(this,"resolve");w(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 v(){var e;return(e=window.MONEYHASH_VAULT_INPUT_IFRAME_URL)!=null?e:"https://vault-form.moneyhash.io"}function ue(o){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!o.includes(t))return t;return null}function he(o){return(Array.isArray(o)?o.length:Object.keys(o).length)===0}function x(o,e){return new Promise((t,i)=>{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",()=>{i(new Error("Script failed to load"))}),document.body.appendChild(r)})}function Me(o){return new Promise(e=>{setTimeout(()=>{e("done")},o*1e3)})}const me=new Set(["method","customerBalance","savedCard"]);var M,z,D,ge,R,J,L,X,N,ye,V,we,B,fe,U,Q,T,Pe,W,be,G,ke,j,Ae;class Re{constructor(e){f(this,M);f(this,D);f(this,R);f(this,L);f(this,N);f(this,V);f(this,B);f(this,U);f(this,T);f(this,W);f(this,G);f(this,j);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=ue(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,L,X).call(this,{accessToken:t})}),pay:s=>h(this,[s],function*({intentId:e,cardData:t,saveCard:i,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:i,installmentPlanData:d}})}),createCardToken:i=>h(this,[i],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(F(b({},e),{headless:!0})),y(this,W,be).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:b({intentType:this.options.type,lang:this.sdkEmbed.lang,publicApiKey:this.options.publicApiKey},e)}))}proceedWith({intentId:e,type:t,id:i,useWalletBalance:a,metaData:r,installmentPlanData:d}){return l.throwIf(!me.has(t),`type must be a valid one (${[...me].join(" | ")})`),this.sdkApiHandler.request({api:"sdk:proceedWith",payload:{proceedWith:t,intentType:this.options.type,intentId:e,id:i,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:i,countryCode:a,onCancel:r=()=>{},onError:d,onComplete:s,billingData:n={}}){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 p=new ApplePaySession(3,{countryCode:a,currencyCode:t,supportedNetworks:["visa","masterCard","amex","discover","mada"],merchantCapabilities:["supports3DS"],total:{label:"Apple Pay",type:"final",amount:`${i}`},requiredShippingContactFields:H(this,R,J)}),{state:u,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(u==="FORM_FIELDS"){if(he(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 P=new $;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(q=>{p.completePayment(ApplePaySession.STATUS_SUCCESS),s==null||s(),P.resolve(q)}).catch(()=>{p.completePayment(ApplePaySession.STATUS_FAILURE),d==null||d(),P.reject(void 0)})},p.oncancel=r,p.begin(),P.promise})}renderGooglePayButton(i){return h(this,null,function*(){var a=i,{onClick:e}=a,t=ce(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 x("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,z).call(this);this.googlePaymentsClient.isReadyToPay(d).then(n=>{if(n.result){const c=this.googlePaymentsClient.createButton(F(b({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(n=>{console.dir(n)})})}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(F(b({},y(this,M,z).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:H(this,D,ge).includes("email")})).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 h(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"),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:H(this,R,J)}),r=new $;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 n;const s={receipt:JSON.stringify({token:d.payment.token}),receiptBillingData:{email:(n=d.payment.shippingContact)==null?void 0:n.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:i}){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(he(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:i}).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(i=>{l.throwIf(!i.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:i}){const a=[],r={},d=new Map;let s=!1;return y(this,T,Pe).call(this,a),{create:({elementType:n,elementOptions:c})=>{var I,q;const p=new Map;let u=null;const g=b(b({},t),c.classes),P=((I=g==null?void 0:g.focus)==null?void 0:I.split(" "))||["MoneyHashElement--focus"],A=((q=g==null?void 0:g.error)==null?void 0:q.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(O=>{var Z,ee,te,ae,ie,ne,re,se,oe;const{type:E,data:S}=O.data;if(E===`${n}@mount`&&(r[n]=S.isValid,(Z=p.get(`${n}@mount`))==null||Z()),E===`${n}@focus`){m.classList.add(...P),(ee=p.get(`${n}@focus`))==null||ee();return}if(E===`${n}@blur`){m.classList.remove(...P),(te=p.get(`${n}@blur`))==null||te();return}if(E===`${n}@error`){S.isValid?m.classList.remove(...A):m.classList.add(...A),(ae=p.get(`${n}@error`))==null||ae(S);return}if(E===`${n}@changeInput`){if((ie=p.get(`${n}@changeInput`))==null||ie({isValid:S.isValid,length:S.length}),r[n]=S.isValid,d.get("validityChange")){const K=Object.values(r).every(Boolean);K!==s&&((ne=d.get("validityChange"))==null||ne(K),s=K)}return}if(E===`${n}@cardNumberChange`){(re=p.get(`${n}@cardNumberChange`))==null||re(S);return}if(E===`${n}@key:Backspace`){(se=p.get(`${n}@key:Backspace`))==null||se();return}E===`${n}@key:Enter`&&((oe=p.get(`${n}@key:Enter`))==null||oe())}),u=y(this,G,ke).call(this,{container:m,elementType:n,elementOptions:c,styles:b(b({},e),c.styles),fontSourceCss:i}),this.mountedCardElements.push(n)},on:(m,O)=>{p.set(`${n}@${m}`,O)},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,c)=>{d.set(n,c)}}}submitForm(n){return h(this,arguments,function*({intentId:e,accessToken:t,billingData:i,shippingData:a,saveCard:r,paymentMethod:d="CARD",installmentPlanData:s}){let c;if(t){const u=ue(this.mountedCardElements);l.throwIf(!!u,`You must mount ${u} element!`),c=yield y(this,L,X).call(this,{accessToken:t})}return yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:d,lang:this.sdkEmbed.lang,billingData:i,shippingData:a,cardEmbed:c,saveCard:r,installmentPlanData:s}})})}selectInstallmentPlan(a){return h(this,arguments,function*({intentId:e,planId:t,issuerCode:i}){return this.sdkApiHandler.request({api:"sdk:selectInstallmentPlan",payload:{planId:t,intentId:e,issuerCode:i,lang:this.sdkEmbed.lang}})})}getInstallmentPlans(a){return h(this,arguments,function*({first6Digits:e,amount:t,currency:i}){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:i,publicApiKey:this.options.publicApiKey,lang:this.sdkEmbed.lang}})})}submitCvv(a){return h(this,arguments,function*({intentId:e,cvv:t,installmentPlanData:i}){return this.sdkApiHandler.request({api:"sdk:submitCardCvv",payload:{intentId:e,cvv:t,installmentPlanData:i,lang:this.sdkEmbed.lang}})})}renderUrl(r){return h(this,arguments,function*({intentId:e,url:t,renderStrategy:i,options:a}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),i){case"IFRAME":return y(this,N,ye).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return y(this,V,we).call(this,{url:t,intentId:e,options:a});case"REDIRECT":return y(this,B,fe).call(this,{url:t,options:a});default:return null}})}onExpiration(e,t){if(!e)return()=>{};const i=new Date(e),a=setInterval(()=>h(this,null,function*(){const r=new Date;i<r&&(clearInterval(a),t())}),1e3);return()=>clearInterval(a)}}M=new WeakSet,z=function(e){var i,a;return{apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[b({type:"CARD",parameters:{allowedAuthMethods:((i=this.options.googlePay)==null?void 0:i.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}}}:{})]}},D=new WeakSet,ge=function(){var e;return((e=this.options.googlePay)==null?void 0:e.collectibleBillingData)||["email"]},R=new WeakSet,J=function(){var e;return((e=this.options.applePay)==null?void 0:e.collectibleBillingData)||["email"]},L=new WeakSet,X=function(t){return h(this,arguments,function*({accessToken:e}){const i=new $;this.vaultSubmitListener.current=d=>{const{type:s,data:n}=d.data;s==="vaultSubmit:success"&&i.resolve(n),s==="vaultSubmit:error"&&i.reject(n)};const a=y(this,j,Ae).call(this,{accessToken:e}),r=yield i.promise;return a.remove(),r})},N=new WeakSet,ye=function(i){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,U,Q).call(this,{intentId:e}),r.remove()})},V=new WeakSet,we=function(a){return h(this,arguments,function*({intentId:e,url:t,options:i={}}){const{width:r=600,height:d=400,left:s=200,top:n=200}=i.window||{},c=window.open(t,"",`width=${r},height=${d},left=${s},top=${n}`);l.throwIf(!c,"Popup blocked by browser!"),yield y(this,U,Q).call(this,{intentId:e,isUsingPopUp:!0}),c==null||c.close()})},B=new WeakSet,fe=function(i){return h(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},U=new WeakSet,Q=function(i){return h(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const a=new $,r=d=>h(this,null,function*(){var n,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),Me(2)]),P=g.transaction.status.split(".")[1];P==="successful"||P.startsWith("pending")?(c=(n=this.options).onComplete)==null||c.call(n,b({type:this.options.type},g)):(u=(p=this.options).onFail)==null||u.call(p,b({type:this.options.type},g)),a.resolve(()=>null),window.removeEventListener("message",r)}});return window.addEventListener("message",r),a.promise})},T=new WeakSet,Pe=function(e){const t=i=>{i.origin===v()&&e.forEach(a=>{a(i)})};window.addEventListener("message",t)},W=new WeakSet,be=function(e){const t=i=>{e.current&&e.current(i)};window.addEventListener("message",t)},G=new WeakSet,ke=function({container:e,elementType:t,elementOptions:i,styles:a,fontSourceCss:r}){var c,p,u,g,P;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=i.validation)==null?void 0:c.required)!==void 0&&s.searchParams.set("required",`${(p=i.validation)==null?void 0:p.required}`),s.searchParams.set("placeholder",(u=i.placeholder)!=null?u:""),s.searchParams.set("inputMode",(g=i.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=(P=a==null?void 0:a.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},j=new WeakSet,Ae=function({accessToken:e}){const t=v(),i=Ce(),a=new URL(`${t}/vaultSubmit/vaultSubmit.html`);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 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=Re;
"use strict";var Ee=Object.defineProperty,Ie=Object.defineProperties;var Se=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable;var Y=(o,e,t)=>e in o?Ee(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,b=(o,e)=>{for(var t in e||(e={}))de.call(e,t)&&Y(o,t,e[t]);if(_)for(var t of _(e))le.call(e,t)&&Y(o,t,e[t]);return o},F=(o,e)=>Ie(o,Se(e));var ce=(o,e)=>{var t={};for(var i in o)de.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&_)for(var i of _(o))e.indexOf(i)<0&&le.call(o,i)&&(t[i]=o[i]);return t};var w=(o,e,t)=>(Y(o,typeof e!="symbol"?e+"":e,t),t),pe=(o,e,t)=>{if(!e.has(o))throw TypeError("Cannot "+t)};var H=(o,e,t)=>(pe(o,e,"read from private field"),t?t.call(o):e.get(o)),f=(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)=>(pe(o,e,"access private method"),t);var h=(o,e,t)=>new Promise((i,a)=>{var r=n=>{try{s(t.next(n))}catch(c){a(c)}},d=n=>{try{s(t.throw(n))}catch(c){a(c)}},s=n=>n.done?i(n.value):Promise.resolve(n.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-0aefb922.cjs");function ve(){return typeof window!="undefined"}const k=class{constructor(){ve()&&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.12.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 l.MessagingService({target:i.contentWindow,targetOrigin:e}),k.isCommunicationReady=new Promise(a=>{var d;const r=s=>{var n;s.data.type==="headlessSDK:init"&&(a(),(n=k.messagingService)==null||n.removeListener(r))};(d=k.messagingService)==null||d.onReceive(r)})}request(i){return h(this,arguments,function*({api:e,payload:t}){return yield k.isCommunicationReady,new Promise((a,r)=>{var s,n;(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))};(n=k.messagingService)==null||n.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 ${constructor(){w(this,"promise");w(this,"resolve");w(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 v(){var e;return(e=window.MONEYHASH_VAULT_INPUT_IFRAME_URL)!=null?e:"https://vault-form.moneyhash.io"}function ue(o){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!o.includes(t))return t;return null}function he(o){return(Array.isArray(o)?o.length:Object.keys(o).length)===0}function x(o,e){return new Promise((t,i)=>{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",()=>{i(new Error("Script failed to load"))}),document.body.appendChild(r)})}function Me(o){return new Promise(e=>{setTimeout(()=>{e("done")},o*1e3)})}const me=new Set(["method","customerBalance","savedCard"]);var M,z,D,ge,R,J,L,X,N,ye,V,we,B,fe,U,Q,T,Pe,W,be,G,ke,j,Ae;class Re{constructor(e){f(this,M);f(this,D);f(this,R);f(this,L);f(this,N);f(this,V);f(this,B);f(this,U);f(this,T);f(this,W);f(this,G);f(this,j);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=ue(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,L,X).call(this,{accessToken:t})}),pay:s=>h(this,[s],function*({intentId:e,cardData:t,saveCard:i,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:i,installmentPlanData:d}})}),createCardToken:i=>h(this,[i],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(F(b({},e),{headless:!0})),y(this,W,be).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:b({intentType:this.options.type,lang:this.sdkEmbed.lang,publicApiKey:this.options.publicApiKey},e)}))}proceedWith({intentId:e,type:t,id:i,useWalletBalance:a,metaData:r,installmentPlanData:d}){return l.throwIf(!me.has(t),`type must be a valid one (${[...me].join(" | ")})`),this.sdkApiHandler.request({api:"sdk:proceedWith",payload:{proceedWith:t,intentType:this.options.type,intentId:e,id:i,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:i,countryCode:a,onCancel:r=()=>{},onError:d,onComplete:s,billingData:n={}}){if(yield x("https://applepay.cdn-apple.com/jsapi/1.latest/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:`${i}`},requiredShippingContactFields:H(this,R,J)}),{state:u,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(u==="FORM_FIELDS"){if(he(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 P=new $;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(q=>{p.completePayment(ApplePaySession.STATUS_SUCCESS),s==null||s(),P.resolve(q)}).catch(()=>{p.completePayment(ApplePaySession.STATUS_FAILURE),d==null||d(),P.reject(void 0)})},p.oncancel=r,p.begin(),P.promise})}renderGooglePayButton(i){return h(this,null,function*(){var a=i,{onClick:e}=a,t=ce(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 x("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,z).call(this);this.googlePaymentsClient.isReadyToPay(d).then(n=>{if(n.result){const c=this.googlePaymentsClient.createButton(F(b({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(n=>{console.dir(n)})})}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(F(b({},y(this,M,z).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:H(this,D,ge).includes("email")})).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 h(this,arguments,function*({nativePayData:e,onCancel:t=()=>{}}){if(yield x("https://applepay.cdn-apple.com/jsapi/1.latest/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:H(this,R,J)}),r=new $;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 n;const s={receipt:JSON.stringify({token:d.payment.token}),receiptBillingData:{email:(n=d.payment.shippingContact)==null?void 0:n.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:i}){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(he(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:i}).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(i=>{l.throwIf(!i.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:i}){const a=[],r={},d=new Map;let s=!1;return y(this,T,Pe).call(this,a),{create:({elementType:n,elementOptions:c})=>{var I,q;const p=new Map;let u=null;const g=b(b({},t),c.classes),P=((I=g==null?void 0:g.focus)==null?void 0:I.split(" "))||["MoneyHashElement--focus"],A=((q=g==null?void 0:g.error)==null?void 0:q.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(O=>{var Z,ee,te,ae,ie,ne,re,se,oe;const{type:E,data:S}=O.data;if(E===`${n}@mount`&&(r[n]=S.isValid,(Z=p.get(`${n}@mount`))==null||Z()),E===`${n}@focus`){m.classList.add(...P),(ee=p.get(`${n}@focus`))==null||ee();return}if(E===`${n}@blur`){m.classList.remove(...P),(te=p.get(`${n}@blur`))==null||te();return}if(E===`${n}@error`){S.isValid?m.classList.remove(...A):m.classList.add(...A),(ae=p.get(`${n}@error`))==null||ae(S);return}if(E===`${n}@changeInput`){if((ie=p.get(`${n}@changeInput`))==null||ie({isValid:S.isValid,length:S.length}),r[n]=S.isValid,d.get("validityChange")){const K=Object.values(r).every(Boolean);K!==s&&((ne=d.get("validityChange"))==null||ne(K),s=K)}return}if(E===`${n}@cardNumberChange`){(re=p.get(`${n}@cardNumberChange`))==null||re(S);return}if(E===`${n}@key:Backspace`){(se=p.get(`${n}@key:Backspace`))==null||se();return}E===`${n}@key:Enter`&&((oe=p.get(`${n}@key:Enter`))==null||oe())}),u=y(this,G,ke).call(this,{container:m,elementType:n,elementOptions:c,styles:b(b({},e),c.styles),fontSourceCss:i}),this.mountedCardElements.push(n)},on:(m,O)=>{p.set(`${n}@${m}`,O)},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,c)=>{d.set(n,c)}}}submitForm(n){return h(this,arguments,function*({intentId:e,accessToken:t,billingData:i,shippingData:a,saveCard:r,paymentMethod:d="CARD",installmentPlanData:s}){let c;if(t){const u=ue(this.mountedCardElements);l.throwIf(!!u,`You must mount ${u} element!`),c=yield y(this,L,X).call(this,{accessToken:t})}return yield this.sdkApiHandler.request({api:"sdk:submitNativeForm",payload:{intentId:e,paymentMethod:d,lang:this.sdkEmbed.lang,billingData:i,shippingData:a,cardEmbed:c,saveCard:r,installmentPlanData:s}})})}selectInstallmentPlan(a){return h(this,arguments,function*({intentId:e,planId:t,issuerCode:i}){return this.sdkApiHandler.request({api:"sdk:selectInstallmentPlan",payload:{planId:t,intentId:e,issuerCode:i,lang:this.sdkEmbed.lang}})})}getInstallmentPlans(a){return h(this,arguments,function*({first6Digits:e,amount:t,currency:i}){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:i,publicApiKey:this.options.publicApiKey,lang:this.sdkEmbed.lang}})})}submitCvv(a){return h(this,arguments,function*({intentId:e,cvv:t,installmentPlanData:i}){return this.sdkApiHandler.request({api:"sdk:submitCardCvv",payload:{intentId:e,cvv:t,installmentPlanData:i,lang:this.sdkEmbed.lang}})})}renderUrl(r){return h(this,arguments,function*({intentId:e,url:t,renderStrategy:i,options:a}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),i){case"IFRAME":return y(this,N,ye).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return y(this,V,we).call(this,{url:t,intentId:e,options:a});case"REDIRECT":return y(this,B,fe).call(this,{url:t,options:a});default:return null}})}onExpiration(e,t){if(!e)return()=>{};const i=new Date(e),a=setInterval(()=>h(this,null,function*(){const r=new Date;i<r&&(clearInterval(a),t())}),1e3);return()=>clearInterval(a)}}M=new WeakSet,z=function(e){var i,a;return{apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[b({type:"CARD",parameters:{allowedAuthMethods:((i=this.options.googlePay)==null?void 0:i.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}}}:{})]}},D=new WeakSet,ge=function(){var e;return((e=this.options.googlePay)==null?void 0:e.collectibleBillingData)||["email"]},R=new WeakSet,J=function(){var e;return((e=this.options.applePay)==null?void 0:e.collectibleBillingData)||["email"]},L=new WeakSet,X=function(t){return h(this,arguments,function*({accessToken:e}){const i=new $;this.vaultSubmitListener.current=d=>{const{type:s,data:n}=d.data;s==="vaultSubmit:success"&&i.resolve(n),s==="vaultSubmit:error"&&i.reject(n)};const a=y(this,j,Ae).call(this,{accessToken:e}),r=yield i.promise;return a.remove(),r})},N=new WeakSet,ye=function(i){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,U,Q).call(this,{intentId:e}),r.remove()})},V=new WeakSet,we=function(a){return h(this,arguments,function*({intentId:e,url:t,options:i={}}){const{width:r=600,height:d=400,left:s=200,top:n=200}=i.window||{},c=window.open(t,"",`width=${r},height=${d},left=${s},top=${n}`);l.throwIf(!c,"Popup blocked by browser!"),yield y(this,U,Q).call(this,{intentId:e,isUsingPopUp:!0}),c==null||c.close()})},B=new WeakSet,fe=function(i){return h(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},U=new WeakSet,Q=function(i){return h(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const a=new $,r=d=>h(this,null,function*(){var n,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),Me(2)]),P=g.transaction.status.split(".")[1];P==="successful"||P.startsWith("pending")?(c=(n=this.options).onComplete)==null||c.call(n,b({type:this.options.type},g)):(u=(p=this.options).onFail)==null||u.call(p,b({type:this.options.type},g)),a.resolve(()=>null),window.removeEventListener("message",r)}});return window.addEventListener("message",r),a.promise})},T=new WeakSet,Pe=function(e){const t=i=>{i.origin===v()&&e.forEach(a=>{a(i)})};window.addEventListener("message",t)},W=new WeakSet,be=function(e){const t=i=>{e.current&&e.current(i)};window.addEventListener("message",t)},G=new WeakSet,ke=function({container:e,elementType:t,elementOptions:i,styles:a,fontSourceCss:r}){var c,p,u,g,P;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=i.validation)==null?void 0:c.required)!==void 0&&s.searchParams.set("required",`${(p=i.validation)==null?void 0:p.required}`),s.searchParams.set("placeholder",(u=i.placeholder)!=null?u:""),s.searchParams.set("inputMode",(g=i.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=(P=a==null?void 0:a.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},j=new WeakSet,Ae=function({accessToken:e}){const t=v(),i=Ce(),a=new URL(`${t}/vaultSubmit/vaultSubmit.html`);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 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=Re;

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

var ve = Object.defineProperty, Ce = Object.defineProperties;
var Ce = Object.defineProperty, ve = Object.defineProperties;
var Me = Object.getOwnPropertyDescriptors;
var _ = Object.getOwnPropertySymbols;
var le = Object.prototype.hasOwnProperty, ce = Object.prototype.propertyIsEnumerable;
var Y = (o, e, t) => e in o ? ve(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, b = (o, e) => {
var Y = (o, e, t) => e in o ? Ce(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, b = (o, e) => {
for (var t in e || (e = {}))

@@ -12,3 +12,3 @@ le.call(e, t) && Y(o, t, e[t]);

return o;
}, F = (o, e) => Ce(o, Me(e));
}, F = (o, e) => ve(o, Me(e));
var pe = (o, e) => {

@@ -49,4 +49,4 @@ var t = {};

});
import { M as Re, g as ye, S as Ie, t as u, w as Le, s as x } from "./warnIf-8405bf73.js";
import { I as Be } from "./warnIf-8405bf73.js";
import { M as Re, g as ye, S as Ie, t as u, w as Le, s as x } from "./warnIf-d84f9a88.js";
import { I as Be } from "./warnIf-d84f9a88.js";
function Ue() {

@@ -63,3 +63,3 @@ return typeof window != "undefined";

const e = ye(), 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.2");
t.searchParams.set("sdk", "true"), t.searchParams.set("parent", window.location.origin), t.searchParams.set("version", "js@1.12.0-beta.0");
const i = document.createElement("iframe");

@@ -119,3 +119,3 @@ i.id = "moneyhash-headless-sdk", i.src = t.toString(), i.hidden = !0, document.body.appendChild(i), k.messagingService = new Re({

}
function C() {
function v() {
var e;

@@ -478,3 +478,3 @@ return (e = window.MONEYHASH_VAULT_INPUT_IFRAME_URL) != null ? e : "https://vault-form.moneyhash.io";

if (yield z(
"https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js",
"https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js",
"moneyHash-apple-pay-sdk"

@@ -665,3 +665,3 @@ ), !ApplePaySession)

if (yield z(
"https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js",
"https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js",
"moneyHash-apple-pay-sdk"

@@ -956,4 +956,4 @@ ), u(

var ee, te, ae, ie, ne, se, re, oe, de;
const { type: E, data: v } = O.data;
if (E === `${n}@mount` && (s[n] = v.isValid, (ee = c.get(`${n}@mount`)) == null || ee()), E === `${n}@focus`) {
const { type: E, data: C } = O.data;
if (E === `${n}@mount` && (s[n] = C.isValid, (ee = c.get(`${n}@mount`)) == null || ee()), E === `${n}@focus`) {
h.classList.add(...f), (te = c.get(`${n}@focus`)) == null || te();

@@ -967,3 +967,3 @@ return;

if (E === `${n}@error`) {
v.isValid ? h.classList.remove(...A) : h.classList.add(...A), (ie = c.get(`${n}@error`)) == null || ie(v);
C.isValid ? h.classList.remove(...A) : h.classList.add(...A), (ie = c.get(`${n}@error`)) == null || ie(C);
return;

@@ -973,5 +973,5 @@ }

if ((ne = c.get(`${n}@changeInput`)) == null || ne({
isValid: v.isValid,
length: v.length
}), s[n] = v.isValid, d.get("validityChange")) {
isValid: C.isValid,
length: C.length
}), s[n] = C.isValid, d.get("validityChange")) {
const K = Object.values(s).every(Boolean);

@@ -986,3 +986,3 @@ K !== r && ((se = d.get("validityChange")) == null || se(

(re = c.get(`${n}@cardNumberChange`)) == null || re(
v
C
);

@@ -1012,3 +1012,3 @@ return;

{ type: "focus" },
C()
v()
);

@@ -1020,3 +1020,3 @@ },

{ type: "blur" },
C()
v()
);

@@ -1028,3 +1028,3 @@ },

{ type: "clear" },
C()
v()
);

@@ -1340,3 +1340,3 @@ }

const t = (i) => {
i.origin === C() && e.forEach((a) => {
i.origin === v() && e.forEach((a) => {
a(i);

@@ -1359,3 +1359,3 @@ });

var l, c, p, g, f;
const d = C(), r = new URL(`${d}/vaultField/vaultField.html`);
const d = v(), 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 = i.validation) == null ? void 0 : l.required) !== void 0 && r.searchParams.set(

@@ -1377,3 +1377,3 @@ "required",

}, j = new WeakSet(), Se = function({ accessToken: e }) {
const t = C(), i = qe(), a = new URL(
const t = v(), i = qe(), a = new URL(
`${t}/vaultSubmit/vaultSubmit.html`

@@ -1380,0 +1380,0 @@ );

@@ -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 D,ae,W,ve,N,se,V,ne,j,Ee,G,Se,K,Ce,B,re,Y,Re,x,Me,z,Ie,J,Le;"use strict";var $e=Object.defineProperty,He=Object.defineProperties;var De=Object.getOwnPropertyDescriptors;var X=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var ie=(d,l,c)=>l in d?$e(d,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):d[l]=c,A=(d,l)=>{for(var c in l||(l={}))be.call(l,c)&&ie(d,c,l[c]);if(X)for(var c of X(l))Pe.call(l,c)&&ie(d,c,l[c]);return d},Q=(d,l)=>He(d,De(l));var ke=(d,l)=>{var c={};for(var E in d)be.call(d,E)&&l.indexOf(E)<0&&(c[E]=d[E]);if(d!=null&&X)for(var E of X(d))l.indexOf(E)<0&&Pe.call(d,E)&&(c[E]=d[E]);return c};var w=(d,l,c)=>(ie(d,typeof l!="symbol"?l+"":l,c),c),Ae=(d,l,c)=>{if(!l.has(d))throw TypeError("Cannot "+c)};var Z=(d,l,c)=>(Ae(d,l,"read from private field"),c?c.call(d):l.get(d)),C=(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)=>(Ae(d,l,"access private method"),c);var f=(d,l,c)=>new Promise((E,I)=>{var O=R=>{try{q(c.next(R))}catch(H){I(H)}},u=R=>{try{q(c.throw(R))}catch(H){I(H)}},q=R=>R.done?E(R.value):Promise.resolve(R.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 M=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.11.2");const n=document.createElement("iframe");n.id="moneyhash-headless-sdk",n.src=t.toString(),n.hidden=!0,document.body.appendChild(n),M.messagingService=new l({target:n.contentWindow,targetOrigin:e}),M.isCommunicationReady=new Promise(i=>{var o;const s=r=>{var a;r.data.type==="headlessSDK:init"&&(i(),(a=M.messagingService)==null||a.removeListener(s))};(o=M.messagingService)==null||o.onReceive(s)})}request(n){return f(this,arguments,function*({api:e,payload:t}){return yield M.isCommunicationReady,new Promise((i,s)=>{var r,a;(r=M.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):s(p.payload),(g=M.messagingService)==null||g.removeListener(o))};(a=M.messagingService)==null||a.onReceive(o)})})}postMessage(e){var t;(t=M.messagingService)==null||t.send({type:e})}};let I=M;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"]),R=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 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.2"),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 a=document.querySelector(e);return u(!a,`Couldn't find an element with selector ${e}!`),a.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,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 Ue(){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 oe(b){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!b.includes(t))return t;return null}function de(b){return(Array.isArray(b)?b.length:Object.keys(b).length)===0}function ee(b,e){return new Promise((t,n)=>{if(document.getElementById(e)){t(void 0);return}const s=document.createElement("script");s.src=b,s.id=e,s.addEventListener("load",()=>{t(void 0)}),s.addEventListener("error",()=>{n(new Error("Script failed to load"))}),document.body.appendChild(s)})}function _e(b){return new Promise(e=>{setTimeout(()=>{e("done")},b*1e3)})}function qe(b,e){b&&console.warn(e)}const le=new Set(["method","customerBalance","savedCard"]);class Fe{constructor(e){C(this,D);C(this,W);C(this,N);C(this,V);C(this,j);C(this,G);C(this,K);C(this,B);C(this,Y);C(this,x);C(this,z);C(this,J);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=oe(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,ne).call(this,{accessToken:t})}),pay:r=>f(this,[r],function*({intentId:e,cardData:t,saveCard:n,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: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(Q(A({},e),{headless:!0})),v(this,x,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):(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:s,installmentPlanData:o}){return u(!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: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 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:s=()=>{},onError:o,onComplete:r,billingData:a={}}){if(yield ee("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:Z(this,N,se)}),{state:p,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(p==="FORM_FIELDS"){if(de(a))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:a}})}}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=s,h.begin(),P.promise})}renderGooglePayButton(n){return f(this,null,function*(){var i=n,{onClick:e}=i,t=ke(i,["onClick"]);var r;const s=document.getElementById("moneyHash-google-pay-button");u(!s,"Couldn't find an element with id moneyHash-google-pay-button to render the google pay button!"),yield ee("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,D,ae).call(this);this.googlePaymentsClient.isReadyToPay(o).then(a=>{if(a.result){const m=this.googlePaymentsClient.createButton(Q(A({buttonSizeMode:"fill",buttonType:"pay"},t),{allowedPaymentMethods:o.allowedPaymentMethods,onClick:e}));s==null||s.replaceChildren(m)}else throw new Error("Google Pay is not ready to pay!")}).catch(a=>{console.dir(a)})})}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(Q(A({},v(this,D,ae).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:Z(this,W,ve).includes("email")})).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 ee("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:Z(this,N,se)}),s=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(),s.reject(r)}),i.onpaymentauthorized=o=>{var a;const r={receipt:JSON.stringify({token:o.payment.token}),receiptBillingData:{email:(a=o.payment.shippingContact)==null?void 0:a.emailAddress}};i.completePayment(ApplePaySession.STATUS_SUCCESS),s.resolve(r)},i.oncancel=t,i.begin(),s.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 s=yield this.proceedWith({intentId:e,type:"method",id:"GOOGLE_PAY"});try{if(s.state==="FORM_FIELDS"){if(de(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:n}).then(r=>this.submitPaymentReceipt({intentId:e,nativeReceiptData:r})):s})}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){qe(!!e&&!R.has(e),`Invalid locale. Supported languages (${[...R].join(" | ")})`);const t=R.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=[],s={},o=new Map;let r=!1;return v(this,Y,Re).call(this,i),{create:({elementType:a,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 ce,pe,he,me,ue,ge,ye,fe,we;const{type:L,data:_}=$.data;if(L===`${a}@mount`&&(s[a]=_.isValid,(ce=h.get(`${a}@mount`))==null||ce()),L===`${a}@focus`){y.classList.add(...P),(pe=h.get(`${a}@focus`))==null||pe();return}if(L===`${a}@blur`){y.classList.remove(...P),(he=h.get(`${a}@blur`))==null||he();return}if(L===`${a}@error`){_.isValid?y.classList.remove(...k):y.classList.add(...k),(me=h.get(`${a}@error`))==null||me(_);return}if(L===`${a}@changeInput`){if((ue=h.get(`${a}@changeInput`))==null||ue({isValid:_.isValid,length:_.length}),s[a]=_.isValid,o.get("validityChange")){const te=Object.values(s).every(Boolean);te!==r&&((ge=o.get("validityChange"))==null||ge(te),r=te)}return}if(L===`${a}@cardNumberChange`){(ye=h.get(`${a}@cardNumberChange`))==null||ye(_);return}if(L===`${a}@key:Backspace`){(fe=h.get(`${a}@key:Backspace`))==null||fe();return}L===`${a}@key:Enter`&&((we=h.get(`${a}@key:Enter`))==null||we())}),p=v(this,z,Ie).call(this,{container:y,elementType:a,elementOptions:m,styles:A(A({},e),m.styles),fontSourceCss:n}),this.mountedCardElements.push(a)},on:(y,$)=>{h.set(`${a}@${y}`,$)},off:y=>h.delete(`${a}@${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:(a,m)=>{o.set(a,m)}}}submitForm(a){return f(this,arguments,function*({intentId:e,accessToken:t,billingData:n,shippingData:i,saveCard:s,paymentMethod:o="CARD",installmentPlanData:r}){let m;if(t){const p=oe(this.mountedCardElements);u(!!p,`You must mount ${p} element!`),m=yield v(this,V,ne).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:s,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(s){return f(this,arguments,function*({intentId:e,url:t,renderStrategy:n,options:i}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),n){case"IFRAME":return v(this,j,Ee).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return v(this,G,Se).call(this,{url:t,intentId:e,options:i});case"REDIRECT":return v(this,K,Ce).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 s=new Date;n<s&&(clearInterval(i),t())}),1e3);return()=>clearInterval(i)}}D=new WeakSet,ae=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}}}:{})]}},W=new WeakSet,ve=function(){var e;return((e=this.options.googlePay)==null?void 0:e.collectibleBillingData)||["email"]},N=new WeakSet,se=function(){var e;return((e=this.options.applePay)==null?void 0:e.collectibleBillingData)||["email"]},V=new WeakSet,ne=function(t){return f(this,arguments,function*({accessToken:e}){const n=new T;this.vaultSubmitListener.current=o=>{const{type:r,data:a}=o.data;r==="vaultSubmit:success"&&n.resolve(a),r==="vaultSubmit:error"&&n.reject(a)};const i=v(this,J,Le).call(this,{accessToken:e}),s=yield n.promise;return i.remove(),s})},j=new WeakSet,Ee=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 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 v(this,B,re).call(this,{intentId:e}),s.remove()})},G=new WeakSet,Se=function(i){return f(this,arguments,function*({intentId:e,url:t,options:n={}}){const{width:s=600,height:o=400,left:r=200,top:a=200}=n.window||{},m=window.open(t,"",`width=${s},height=${o},left=${r},top=${a}`);u(!m,"Popup blocked by browser!"),yield v(this,B,re).call(this,{intentId:e,isUsingPopUp:!0}),m==null||m.close()})},K=new WeakSet,Ce=function(n){return f(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},B=new WeakSet,re=function(n){return f(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const i=new T,s=o=>f(this,null,function*(){var a,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),_e(2)]),P=g.transaction.status.split(".")[1];P==="successful"||P.startsWith("pending")?(m=(a=this.options).onComplete)==null||m.call(a,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",s)}});return window.addEventListener("message",s),i.promise})},Y=new WeakSet,Re=function(e){const t=n=>{n.origin===F()&&e.forEach(i=>{i(n)})};window.addEventListener("message",t)},x=new WeakSet,Me=function(e){const t=n=>{e.current&&e.current(n)};window.addEventListener("message",t)},z=new WeakSet,Ie=function({container:e,elementType:t,elementOptions:n,styles:i,fontSourceCss:s}){var m,h,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),((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 a=document.createElement("iframe");return a.src=r.toString(),a.style.height=(P=i==null?void 0:i.height)!=null?P:"40px",a.style.setProperty("overflow","hidden","important"),a.style.setProperty("display","block","important"),a.style.setProperty("width","100%","important"),a.style.setProperty("maxWidth","100%","important"),a.style.setProperty("border","0","important"),a.style.setProperty("margin","0","important"),a.style.setProperty("padding","0","important"),a.style.setProperty("userSelect","none","important"),a.style.setProperty("colorScheme","light only","important"),e.replaceChildren(a),a},J=new WeakSet,Le=function({accessToken:e}){const t=F(),n=Ue(),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 s=document.createElement("iframe");return s.id="moneyhash-submit-iframe",s.src=i.toString(),s.hidden=!0,document.body.appendChild(s),s},d.IFrameSandboxOptions=O,d.default=Fe,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 D,ae,W,Ee,N,se,V,ne,j,ve,G,Se,K,Ce,B,re,Y,Re,x,Me,z,Ie,J,Le;"use strict";var $e=Object.defineProperty,He=Object.defineProperties;var De=Object.getOwnPropertyDescriptors;var X=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var ie=(d,l,c)=>l in d?$e(d,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):d[l]=c,A=(d,l)=>{for(var c in l||(l={}))be.call(l,c)&&ie(d,c,l[c]);if(X)for(var c of X(l))Pe.call(l,c)&&ie(d,c,l[c]);return d},Q=(d,l)=>He(d,De(l));var ke=(d,l)=>{var c={};for(var v in d)be.call(d,v)&&l.indexOf(v)<0&&(c[v]=d[v]);if(d!=null&&X)for(var v of X(d))l.indexOf(v)<0&&Pe.call(d,v)&&(c[v]=d[v]);return c};var w=(d,l,c)=>(ie(d,typeof l!="symbol"?l+"":l,c),c),Ae=(d,l,c)=>{if(!l.has(d))throw TypeError("Cannot "+c)};var Z=(d,l,c)=>(Ae(d,l,"read from private field"),c?c.call(d):l.get(d)),C=(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)=>(Ae(d,l,"access private method"),c);var f=(d,l,c)=>new Promise((v,I)=>{var O=R=>{try{q(c.next(R))}catch(H){I(H)}},u=R=>{try{q(c.throw(R))}catch(H){I(H)}},q=R=>R.done?v(R.value):Promise.resolve(R.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 v(){return typeof window!="undefined"}const M=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.12.0-beta.0");const n=document.createElement("iframe");n.id="moneyhash-headless-sdk",n.src=t.toString(),n.hidden=!0,document.body.appendChild(n),M.messagingService=new l({target:n.contentWindow,targetOrigin:e}),M.isCommunicationReady=new Promise(i=>{var o;const s=r=>{var a;r.data.type==="headlessSDK:init"&&(i(),(a=M.messagingService)==null||a.removeListener(s))};(o=M.messagingService)==null||o.onReceive(s)})}request(n){return f(this,arguments,function*({api:e,payload:t}){return yield M.isCommunicationReady,new Promise((i,s)=>{var r,a;(r=M.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):s(p.payload),(g=M.messagingService)==null||g.removeListener(o))};(a=M.messagingService)==null||a.onReceive(o)})})}postMessage(e){var t;(t=M.messagingService)==null||t.send({type:e})}};let I=M;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"]),R=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 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.12.0-beta.0"),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 a=document.querySelector(e);return u(!a,`Couldn't find an element with selector ${e}!`),a.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,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 Ue(){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 oe(b){const e=["cardNumber","cardCvv","cardExpiryMonth","cardExpiryYear"];for(const t of e)if(!b.includes(t))return t;return null}function de(b){return(Array.isArray(b)?b.length:Object.keys(b).length)===0}function ee(b,e){return new Promise((t,n)=>{if(document.getElementById(e)){t(void 0);return}const s=document.createElement("script");s.src=b,s.id=e,s.addEventListener("load",()=>{t(void 0)}),s.addEventListener("error",()=>{n(new Error("Script failed to load"))}),document.body.appendChild(s)})}function _e(b){return new Promise(e=>{setTimeout(()=>{e("done")},b*1e3)})}function qe(b,e){b&&console.warn(e)}const le=new Set(["method","customerBalance","savedCard"]);class Fe{constructor(e){C(this,D);C(this,W);C(this,N);C(this,V);C(this,j);C(this,G);C(this,K);C(this,B);C(this,Y);C(this,x);C(this,z);C(this,J);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=oe(this.mountedCardElements);u(!!e,`You must mount ${e} element!`);const t=yield this.sdkApiHandler.request({api:"sdk:generateAccessToken",payload:{publicApiKey:this.options.publicApiKey}});return E(this,V,ne).call(this,{accessToken:t})}),pay:r=>f(this,[r],function*({intentId:e,cardData:t,saveCard:n,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: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(Q(A({},e),{headless:!0})),E(this,x,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):(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:s,installmentPlanData:o}){return u(!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: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 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:s=()=>{},onError:o,onComplete:r,billingData:a={}}){if(yield ee("https://applepay.cdn-apple.com/jsapi/1.latest/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:Z(this,N,se)}),{state:p,intent:g}=yield this.proceedWith({intentId:e,type:"method",id:"APPLE_PAY"});try{if(p==="FORM_FIELDS"){if(de(a))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:a}})}}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=s,h.begin(),P.promise})}renderGooglePayButton(n){return f(this,null,function*(){var i=n,{onClick:e}=i,t=ke(i,["onClick"]);var r;const s=document.getElementById("moneyHash-google-pay-button");u(!s,"Couldn't find an element with id moneyHash-google-pay-button to render the google pay button!"),yield ee("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,D,ae).call(this);this.googlePaymentsClient.isReadyToPay(o).then(a=>{if(a.result){const m=this.googlePaymentsClient.createButton(Q(A({buttonSizeMode:"fill",buttonType:"pay"},t),{allowedPaymentMethods:o.allowedPaymentMethods,onClick:e}));s==null||s.replaceChildren(m)}else throw new Error("Google Pay is not ready to pay!")}).catch(a=>{console.dir(a)})})}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(Q(A({},E(this,D,ae).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:Z(this,W,Ee).includes("email")})).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 ee("https://applepay.cdn-apple.com/jsapi/1.latest/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:Z(this,N,se)}),s=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(),s.reject(r)}),i.onpaymentauthorized=o=>{var a;const r={receipt:JSON.stringify({token:o.payment.token}),receiptBillingData:{email:(a=o.payment.shippingContact)==null?void 0:a.emailAddress}};i.completePayment(ApplePaySession.STATUS_SUCCESS),s.resolve(r)},i.oncancel=t,i.begin(),s.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 s=yield this.proceedWith({intentId:e,type:"method",id:"GOOGLE_PAY"});try{if(s.state==="FORM_FIELDS"){if(de(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:n}).then(r=>this.submitPaymentReceipt({intentId:e,nativeReceiptData:r})):s})}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){qe(!!e&&!R.has(e),`Invalid locale. Supported languages (${[...R].join(" | ")})`);const t=R.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=[],s={},o=new Map;let r=!1;return E(this,Y,Re).call(this,i),{create:({elementType:a,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 ce,pe,he,me,ue,ge,ye,fe,we;const{type:L,data:_}=$.data;if(L===`${a}@mount`&&(s[a]=_.isValid,(ce=h.get(`${a}@mount`))==null||ce()),L===`${a}@focus`){y.classList.add(...P),(pe=h.get(`${a}@focus`))==null||pe();return}if(L===`${a}@blur`){y.classList.remove(...P),(he=h.get(`${a}@blur`))==null||he();return}if(L===`${a}@error`){_.isValid?y.classList.remove(...k):y.classList.add(...k),(me=h.get(`${a}@error`))==null||me(_);return}if(L===`${a}@changeInput`){if((ue=h.get(`${a}@changeInput`))==null||ue({isValid:_.isValid,length:_.length}),s[a]=_.isValid,o.get("validityChange")){const te=Object.values(s).every(Boolean);te!==r&&((ge=o.get("validityChange"))==null||ge(te),r=te)}return}if(L===`${a}@cardNumberChange`){(ye=h.get(`${a}@cardNumberChange`))==null||ye(_);return}if(L===`${a}@key:Backspace`){(fe=h.get(`${a}@key:Backspace`))==null||fe();return}L===`${a}@key:Enter`&&((we=h.get(`${a}@key:Enter`))==null||we())}),p=E(this,z,Ie).call(this,{container:y,elementType:a,elementOptions:m,styles:A(A({},e),m.styles),fontSourceCss:n}),this.mountedCardElements.push(a)},on:(y,$)=>{h.set(`${a}@${y}`,$)},off:y=>h.delete(`${a}@${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:(a,m)=>{o.set(a,m)}}}submitForm(a){return f(this,arguments,function*({intentId:e,accessToken:t,billingData:n,shippingData:i,saveCard:s,paymentMethod:o="CARD",installmentPlanData:r}){let m;if(t){const p=oe(this.mountedCardElements);u(!!p,`You must mount ${p} element!`),m=yield E(this,V,ne).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:s,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(s){return f(this,arguments,function*({intentId:e,url:t,renderStrategy:n,options:i}){switch(this.sdkApiHandler.postMessage("SDKRenderUrl"),n){case"IFRAME":return E(this,j,ve).call(this,{url:t,intentId:e});case"POPUP_IFRAME":return E(this,G,Se).call(this,{url:t,intentId:e,options:i});case"REDIRECT":return E(this,K,Ce).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 s=new Date;n<s&&(clearInterval(i),t())}),1e3);return()=>clearInterval(i)}}D=new WeakSet,ae=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}}}:{})]}},W=new WeakSet,Ee=function(){var e;return((e=this.options.googlePay)==null?void 0:e.collectibleBillingData)||["email"]},N=new WeakSet,se=function(){var e;return((e=this.options.applePay)==null?void 0:e.collectibleBillingData)||["email"]},V=new WeakSet,ne=function(t){return f(this,arguments,function*({accessToken:e}){const n=new T;this.vaultSubmitListener.current=o=>{const{type:r,data:a}=o.data;r==="vaultSubmit:success"&&n.resolve(a),r==="vaultSubmit:error"&&n.reject(a)};const i=E(this,J,Le).call(this,{accessToken:e}),s=yield n.promise;return i.remove(),s})},j=new WeakSet,ve=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 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,B,re).call(this,{intentId:e}),s.remove()})},G=new WeakSet,Se=function(i){return f(this,arguments,function*({intentId:e,url:t,options:n={}}){const{width:s=600,height:o=400,left:r=200,top:a=200}=n.window||{},m=window.open(t,"",`width=${s},height=${o},left=${r},top=${a}`);u(!m,"Popup blocked by browser!"),yield E(this,B,re).call(this,{intentId:e,isUsingPopUp:!0}),m==null||m.close()})},K=new WeakSet,Ce=function(n){return f(this,arguments,function*({url:e,options:t}){if(!t||!t.redirectToNewWindow){window.location.href=e;return}window.open(e,"_blank")})},B=new WeakSet,re=function(n){return f(this,arguments,function*({intentId:e,isUsingPopUp:t=!1}){const i=new T,s=o=>f(this,null,function*(){var a,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),_e(2)]),P=g.transaction.status.split(".")[1];P==="successful"||P.startsWith("pending")?(m=(a=this.options).onComplete)==null||m.call(a,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",s)}});return window.addEventListener("message",s),i.promise})},Y=new WeakSet,Re=function(e){const t=n=>{n.origin===F()&&e.forEach(i=>{i(n)})};window.addEventListener("message",t)},x=new WeakSet,Me=function(e){const t=n=>{e.current&&e.current(n)};window.addEventListener("message",t)},z=new WeakSet,Ie=function({container:e,elementType:t,elementOptions:n,styles:i,fontSourceCss:s}){var m,h,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),((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 a=document.createElement("iframe");return a.src=r.toString(),a.style.height=(P=i==null?void 0:i.height)!=null?P:"40px",a.style.setProperty("overflow","hidden","important"),a.style.setProperty("display","block","important"),a.style.setProperty("width","100%","important"),a.style.setProperty("maxWidth","100%","important"),a.style.setProperty("border","0","important"),a.style.setProperty("margin","0","important"),a.style.setProperty("padding","0","important"),a.style.setProperty("userSelect","none","important"),a.style.setProperty("colorScheme","light only","important"),e.replaceChildren(a),a},J=new WeakSet,Le=function({accessToken:e}){const t=F(),n=Ue(),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 s=document.createElement("iframe");return s.id="moneyhash-submit-iframe",s.src=i.toString(),s.hidden=!0,document.body.appendChild(s),s},d.IFrameSandboxOptions=O,d.default=Fe,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-dffa6d69.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-0aefb922.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-8405bf73.js";
import { S as o, t as d, w as u, s as a } from "./warnIf-d84f9a88.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.11.2"),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.12.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.11.2",
"version": "1.12.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