UNPKG

@transak/transak-sdk

Version:

Transak SDK that allows you to easily integrate fiat on/off ramp

76 lines (70 loc) 8.37 kB
import O from"events";var m=(a=>(a.DEVELOPMENT="DEVELOPMENT",a.STAGING="STAGING",a.PRODUCTION="PRODUCTION",a))(m||{});var i=(s=>(s.TRANSAK_WIDGET_INITIALISED="TRANSAK_WIDGET_INITIALISED",s.TRANSAK_ORDER_CREATED="TRANSAK_ORDER_CREATED",s.TRANSAK_ORDER_SUCCESSFUL="TRANSAK_ORDER_SUCCESSFUL",s.TRANSAK_ORDER_CANCELLED="TRANSAK_ORDER_CANCELLED",s.TRANSAK_ORDER_FAILED="TRANSAK_ORDER_FAILED",s.TRANSAK_WALLET_REDIRECTION="TRANSAK_WALLET_REDIRECTION",s.TRANSAK_WIDGET_CLOSE_REQUEST="TRANSAK_WIDGET_CLOSE_REQUEST",s.TRANSAK_WIDGET_CLOSE="TRANSAK_WIDGET_CLOSE",s.TRANSAK_USER_INFO_RECEIVED="TRANSAK_USER_INFO_RECEIVED",s.TRANSAK_GET_USER_REQUEST="TRANSAK_GET_USER_REQUEST",s.TRANSAK_LOGOUT_USER_REQUEST="TRANSAK_LOGOUT_USER_REQUEST",s))(i||{});import D from"query-string";import k from"pako";var R={DEVELOPMENT:"https://localhost:5005/",STAGING:"https://global-stg.transak.com",PRODUCTION:"https://global.transak.com"};var A={name:"@transak/transak-sdk",version:"3.2.0",description:"Transak SDK that allows you to easily integrate fiat on/off ramp",type:"module",types:"lib/index.d.ts",main:"lib/index.cjs",exports:{".":{import:{types:"./lib/index.d.ts",default:"./lib/index.js"},require:{types:"./lib/index.d.cts",default:"./lib/index.cjs"}}},engines:{node:">=18.0.0"},packageManager:"pnpm@10.0.0+sha512.b8fef5494bd3fe4cbd4edabd0745df2ee5be3e4b0b8b08fa643aa3e4c6702ccc0f00d68fa8a8c9858a735a0032485a44990ed2810526c875e416f001b17df12b",files:["lib/**/*"],scripts:{eslint:"eslint . --ext .ts","eslint:fix":"pnpm eslint --fix",build:"tsc && tsup",prepack:"pnpm build",packDev:"pnpm pack"},author:"Transak",license:"ISC",homepage:"https://docs.transak.com/docs/web-integration#transak-sdk-reactvueangularts",repository:{type:"git",url:"https://github.com/Transak/transak-sdk"},dependencies:{events:"^3.3.0",pako:"^2.1.0","query-string":"^9.1.1"},devDependencies:{"@types/events":"^3.0.3","@types/pako":"^2.0.3","@typescript-eslint/eslint-plugin":"^7.18.0","@typescript-eslint/parser":"^7.18.0",eslint:"^8.57.1","eslint-config-airbnb-base":"^15.0.0","eslint-config-airbnb-typescript":"^18.0.0","eslint-config-prettier":"^10.0.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","eslint-plugin-no-relative-import-paths":"^1.6.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-promise":"^7.2.1",prettier:"^3.4.2",tsup:"^8.3.5",typescript:"5.5.4"},keywords:["crypto","cryptocurrency","fiat","on","off","ramp","sdk","ts","js"]};function c(e){let{name:n,version:t}=A,{environment:a="STAGING"}=e,r={sdkName:n,sdkVersion:t},l="";return Object.keys(e).forEach(o=>{if(!["environment","widgetWidth","widgetHeight"].includes(o)){if(["walletAddressesData","userData"].includes(o)){try{r[o]=JSON.stringify(e[o])}catch{}return}if(["nftData","sourceTokenData","cryptoCurrencyData","tokenData"].includes(o)){try{r[o]=btoa(JSON.stringify(e[o]))}catch{}return}if(["calldata"].includes(o)){try{r[o]=btoa(String.fromCharCode.apply(null,k.deflate(e[o])))}catch{}return}r[o]=e[o]}}),l=D.stringify(r,{arrayFormat:"comma"}),`${R[a]}?${l}`}function d(e){let n=document.createElement("iframe");return Object.assign(n,{id:"transakIframe",allow:"camera;microphone;payment",src:e}),n}function f(){return` #transakIframe{ width: 100%; height: 100%; border: none; } `}function _(){let e=document.createElement("style");return e.innerHTML=f(),document.getElementsByTagName("head")[0]?.appendChild(e),e}function S(e){let n=_(),t=d(c(e));if(e.containerId){let a=document.getElementById(e.containerId);if(a)a.appendChild(t);else throw new Error("[Transak SDK] => Please enter a valid containerId")}return{styleElement:n,iframeElement:t}}function I(e){return function(t){if(t?.data?.event_id)switch(t.data.event_id){case"TRANSAK_WIDGET_INITIALISED":{e.emit("TRANSAK_WIDGET_INITIALISED",{eventName:"TRANSAK_WIDGET_INITIALISED",status:t.data.data});break}case"TRANSAK_ORDER_CREATED":{e.emit("TRANSAK_ORDER_CREATED",{eventName:"TRANSAK_ORDER_CREATED",status:t.data.data});break}case"TRANSAK_ORDER_SUCCESSFUL":{e.emit("TRANSAK_ORDER_SUCCESSFUL",{eventName:"TRANSAK_ORDER_SUCCESSFUL",status:t.data.data});break}case"TRANSAK_ORDER_CANCELLED":{e.emit("TRANSAK_ORDER_CANCELLED",{eventName:"TRANSAK_ORDER_CANCELLED",status:t.data.data});break}case"TRANSAK_ORDER_FAILED":{e.emit("TRANSAK_ORDER_FAILED",{eventName:"TRANSAK_ORDER_FAILED",status:t.data.data});break}case"TRANSAK_WALLET_REDIRECTION":{e.emit("TRANSAK_WALLET_REDIRECTION",{eventName:"TRANSAK_WALLET_REDIRECTION",status:t.data.data});break}case"TRANSAK_WIDGET_CLOSE":{e.emit("TRANSAK_WIDGET_CLOSE",{eventName:"TRANSAK_WIDGET_CLOSE",status:t.data.data});break}case"TRANSAK_USER_INFO_RECEIVED":{e.emit("TRANSAK_USER_INFO_RECEIVED",{eventName:"TRANSAK_USER_INFO_RECEIVED",status:t.data.data});break}}}}var u=` <svg id="transakCloseIcon" viewBox="0 0 612 612" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M306,0C136.992,0,0,136.992,0,306s136.992,306,306,306c168.988,0,306-137.012,306-306S475.008,0,306,0z M414.19,387.147 c7.478,7.478,7.478,19.584,0,27.043c-7.479,7.478-19.584,7.478-27.043,0l-81.032-81.033l-81.588,81.588 c-7.535,7.516-19.737,7.516-27.253,0c-7.535-7.535-7.535-19.737,0-27.254l81.587-81.587l-81.033-81.033 c-7.478-7.478-7.478-19.584,0-27.042c7.478-7.478,19.584-7.478,27.042,0l81.033,81.033l82.181-82.18 c7.535-7.535,19.736-7.535,27.253,0c7.535,7.535,7.535,19.737,0,27.253l-82.181,82.181L414.19,387.147z" /> </svg> `;function g(e,n,t){return` #transakRoot { z-index: 9997; position: fixed; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0, 0, 0, 0.6); } #transakModal { z-index: 9998; position: fixed; width: ${n}; height: calc(${t} - 24px); top: 50%; left: 50%; transform: translate(-50%, calc(-50% - 12px)); margin-top: 24px; } #transakCloseIcon { z-index: 9999; position: absolute; width: 36px; height: 36px; top: -24px; right: 0; transition: 0.5s; color: #${e}; background: white; border-radius: 50%; } #transakCloseIcon:hover, #transakCloseIcon:focus { color: white; background: #${e}; cursor: pointer; } #transakIframe{ width: 100%; height: 100%; border: none; border-radius: 10px; background: white; } @media screen and (max-width: 600px) { #transakModal { width: 100%; height: calc(100% - 24px); } #transakIframe{ border-radius: 10px 10px 0 0; } } `}function h(e){let{themeColor:n="1461db",widgetWidth:t="480px",widgetHeight:a="650px"}=e,r=document.createElement("style");return r.innerHTML=g(n,t,a),document.getElementsByTagName("head")[0]?.appendChild(r),r}function N(e,n){let t=h(e),a=document.createElement("div"),r=document.createElement("div"),l=d(c(e));return Object.assign(r,{id:"transakModal",innerHTML:u}),r.appendChild(l),Object.assign(a,{id:"transakRoot",onclick:()=>n()}),a.appendChild(r),document.getElementsByTagName("body")[0].appendChild(a),document.getElementById("transakCloseIcon")?.addEventListener("click",()=>n()),{styleElement:t,rootElement:a,iframeElement:l}}var E=new O.EventEmitter,p=class{#t;#n;#o;#e;#r;#a=!1;static ENVIRONMENTS=m;static EVENTS=i;constructor(n){if(!n?.apiKey)throw new Error("[Transak SDK] => Please enter your API Key");this.#t=n,this.#r=I(E)}static on=(n,t)=>{n==="*"?Object.keys(i).forEach(a=>{E.on(i[a],t)}):i[n]&&E.on(n,t)};init=()=>{this.#a||(this.#i(),this.#a=!0)};cleanup=()=>{this.#n?.remove(),this.#s(),this.#e?.remove(),this.#a=!1};close=()=>{this.#n?.remove(),this.#o?.remove(),this.#s(),this.#e=void 0,this.#a=!1};getUser=()=>{this.#e?.contentWindow?.postMessage({event_id:"TRANSAK_GET_USER_REQUEST"},"*")};logoutUser=()=>{this.#e?.contentWindow?.postMessage({event_id:"TRANSAK_LOGOUT_USER_REQUEST"},"*")};#i=()=>{if(window.addEventListener("message",this.#r),this.#t.containerId){let{styleElement:n,iframeElement:t}=S(this.#t);this.#n=n,this.#e=t}else{let{styleElement:n,rootElement:t,iframeElement:a}=N(this.#t,this.#l);this.#n=n,this.#o=t,this.#e=a}};#l=()=>{this.#e?.contentWindow?.postMessage({event_id:"TRANSAK_WIDGET_CLOSE_REQUEST"},"*")};#s=()=>{E.removeAllListeners(),window.removeEventListener("message",this.#r)}};export{p as Transak}; //# sourceMappingURL=index.js.map