{"version":3,"sources":["../src/transak.ts","../src/Constants/environments.ts","../src/Constants/events.ts","../src/Utils/generate-global-transak-url.ts","../src/Constants/web-app-urls.ts","../package.json","../src/Utils/create-iframe.ts","../src/Components/custom-container/generate-custom-container-css.ts","../src/Components/custom-container/insert-custom-container-style-to-html-head.ts","../src/Components/custom-container/render-iframe-in-custom-container.ts","../src/Utils/handle-events.ts","../src/Assets/svg/close-icon.ts","../src/Components/modal/generate-modal-css.ts","../src/Components/modal/insert-modal-style-to-html-head.ts","../src/Components/modal/render-iframe-in-modal.ts"],"names":["events","Environments","Events","qs","pako","WebAppUrls","package_default","generateGlobalTransakUrl","configData","sdkName","sdkVersion","environment","queryParams","queryString","key","createIframe","src","iframe","generateCustomContainerCss","insertCustomContainerStyleToHtmlHead","style","renderIframeInCustomContainer","config","styleElement","iframeElement","containerIdElement","makeHandleEvents","eventEmitter","event","closeIcon","generateModalCss","themeColor","width","height","insertModalStyleToHtmlHead","widgetWidth","widgetHeight","renderIframeInModal","closeRequest","rootElement","modal","Transak","#config","#styleElement","#rootElement","#iframeElement","#handleMessage","#isInitialized","transakConfig","type","cb","eventName","#renderIframe","#removeEventListener","#closeRequest"],"mappings":"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","sourcesContent":["import events from 'events';\nimport { Environments } from 'Constants/environments';\nimport { Events } from 'Constants/events';\nimport { renderIframeInCustomContainer } from 'Components/custom-container/render-iframe-in-custom-container';\nimport { makeHandleEvents } from 'Utils/handle-events';\nimport { renderIframeInModal } from 'Components/modal/render-iframe-in-modal';\nimport { TransakConfig } from 'Types/sdk-config.types';\n\nconst eventEmitter = new events.EventEmitter();\n\nclass Transak {\n  readonly #config: TransakConfig;\n\n  #styleElement?: HTMLStyleElement;\n\n  #rootElement?: HTMLDivElement;\n\n  #iframeElement?: HTMLIFrameElement;\n\n  #handleMessage: (event: MessageEvent<{ event_id: unknown; data: unknown }>) => void;\n\n  #isInitialized = false;\n\n  static readonly ENVIRONMENTS = Environments;\n\n  static readonly EVENTS = Events;\n\n  constructor(transakConfig: TransakConfig) {\n    if (!transakConfig?.apiKey) throw new Error('[Transak SDK] => Please enter your API Key');\n\n    this.#config = transakConfig;\n    this.#handleMessage = makeHandleEvents(eventEmitter);\n  }\n\n  static on = (type: '*' | keyof typeof Events, cb: (data: unknown) => void) => {\n    if (type === '*') {\n      (Object.keys(Events) as (keyof typeof Events)[]).forEach((eventName) => {\n        eventEmitter.on(Events[eventName], cb);\n      });\n    } else if (Events[type]) {\n      eventEmitter.on(type, cb);\n    }\n  };\n\n  init = () => {\n    if (!this.#isInitialized) {\n      this.#renderIframe();\n      this.#isInitialized = true;\n    }\n  };\n\n  cleanup = () => {\n    this.#styleElement?.remove();\n    this.#removeEventListener();\n    this.#iframeElement?.remove();\n    this.#isInitialized = false;\n  };\n\n  close = () => {\n    this.#styleElement?.remove();\n    this.#rootElement?.remove();\n    this.#removeEventListener();\n    this.#iframeElement = undefined;\n    this.#isInitialized = false;\n  };\n\n  getUser = () => {\n    this.#iframeElement?.contentWindow?.postMessage({ event_id: Events.TRANSAK_GET_USER_REQUEST }, '*');\n  };\n\n  logoutUser = () => {\n    this.#iframeElement?.contentWindow?.postMessage({ event_id: Events.TRANSAK_LOGOUT_USER_REQUEST }, '*');\n  };\n\n  #renderIframe = () => {\n    window.addEventListener('message', this.#handleMessage);\n\n    if (this.#config.containerId) {\n      const { styleElement, iframeElement } = renderIframeInCustomContainer(this.#config);\n\n      this.#styleElement = styleElement;\n      this.#iframeElement = iframeElement;\n    } else {\n      const { styleElement, rootElement, iframeElement } = renderIframeInModal(this.#config, this.#closeRequest);\n\n      this.#styleElement = styleElement;\n      this.#rootElement = rootElement;\n      this.#iframeElement = iframeElement;\n    }\n  };\n\n  #closeRequest = () => {\n    this.#iframeElement?.contentWindow?.postMessage({ event_id: Events.TRANSAK_WIDGET_CLOSE_REQUEST }, '*');\n  };\n\n  #removeEventListener = () => {\n    eventEmitter.removeAllListeners();\n    window.removeEventListener('message', this.#handleMessage);\n  };\n}\n\nexport { Transak };\n","export enum Environments {\n  DEVELOPMENT = 'DEVELOPMENT',\n  STAGING = 'STAGING',\n  PRODUCTION = 'PRODUCTION',\n  STAGING_ORDERS = 'STAGING_ORDERS',\n  PRODUCTION_ORDERS = 'PRODUCTION_ORDERS',\n  STAGING_ORDERS_NOT_LOGGED_IN = 'STAGING_ORDERS_NOT_LOGGED_IN',\n  PRODUCTION_ORDERS_NOT_LOGGED_IN = 'PRODUCTION_ORDERS_NOT_LOGGED_IN',\n}\n","export enum Events {\n  TRANSAK_WIDGET_INITIALISED = 'TRANSAK_WIDGET_INITIALISED',\n  TRANSAK_ORDER_CREATED = 'TRANSAK_ORDER_CREATED',\n  TRANSAK_ORDER_SUCCESSFUL = 'TRANSAK_ORDER_SUCCESSFUL',\n  TRANSAK_ORDER_CANCELLED = 'TRANSAK_ORDER_CANCELLED',\n  TRANSAK_ORDER_FAILED = 'TRANSAK_ORDER_FAILED',\n  TRANSAK_WALLET_REDIRECTION = 'TRANSAK_WALLET_REDIRECTION',\n  TRANSAK_WIDGET_CLOSE_REQUEST = 'TRANSAK_WIDGET_CLOSE_REQUEST',\n  TRANSAK_WIDGET_CLOSE = 'TRANSAK_WIDGET_CLOSE',\n  TRANSAK_USER_INFO_RECEIVED = 'TRANSAK_USER_INFO_RECEIVED',\n  TRANSAK_GET_USER_REQUEST = 'TRANSAK_GET_USER_REQUEST',\n  TRANSAK_LOGOUT_USER_REQUEST = 'TRANSAK_LOGOUT_USER_REQUEST',\n}\n","import qs from 'query-string';\nimport pako from 'pako';\nimport { WebAppUrls } from 'Constants/web-app-urls';\nimport { TransakConfig } from 'Types/sdk-config.types';\nimport { Environments } from 'Constants/environments';\nimport packageJson from 'package.json';\n\nexport function generateGlobalTransakUrl(configData: TransakConfig) {\n  const { name: sdkName, version: sdkVersion } = packageJson;\n  const { environment = Environments.STAGING } = configData;\n  const queryParams = { sdkName, sdkVersion };\n  let queryString = '';\n\n  (Object.keys(configData) as (keyof TransakConfig)[]).forEach((key) => {\n    if (['environment', 'widgetWidth', 'widgetHeight'].includes(key)) return;\n\n    if (['walletAddressesData', 'userData'].includes(key)) {\n      try {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        queryParams[key] = JSON.stringify(configData[key]);\n      } catch (e) {\n        /* empty */\n      }\n\n      return;\n    }\n\n    if (['nftData', 'sourceTokenData', 'cryptoCurrencyData', 'tokenData'].includes(key)) {\n      try {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        queryParams[key] = btoa(JSON.stringify(configData[key]));\n      } catch (e) {\n        /* empty */\n      }\n\n      return;\n    }\n\n    if (['calldata'].includes(key)) {\n      try {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        queryParams[key] = btoa(String.fromCharCode.apply(null, pako.deflate(configData[key])));\n      } catch (e) {\n        /* empty */\n      }\n\n      return;\n    }\n\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    queryParams[key] = configData[key];\n  });\n\n  queryString = qs.stringify(queryParams, { arrayFormat: 'comma' });\n\n  return `${WebAppUrls[environment]}?${queryString}`;\n}\n","import { Environments } from './environments';\n\nexport const WebAppUrls = {\n  [Environments.DEVELOPMENT]: 'https://localhost:5005/',\n  [Environments.STAGING]: 'https://global-stg.transak.com',\n  [Environments.PRODUCTION]: 'https://global.transak.com',\n  [Environments.STAGING_ORDERS]: 'https://global-stg.transak.com/user/orders',\n  [Environments.PRODUCTION_ORDERS]: 'https://global.transak.com/user/orders',\n  [Environments.STAGING_ORDERS_NOT_LOGGED_IN]: 'https://global-stg.transak.com/login/email',\n  [Environments.PRODUCTION_ORDERS_NOT_LOGGED_IN]: 'https://global.transak.com/login/email',\n};\n","{\n  \"name\": \"@scalingparrots/transak-sdk\",\n  \"version\": \"3.1.11\",\n  \"description\": \"Transak SDK that allows you to easily integrate fiat on/off ramp\",\n  \"type\": \"module\",\n  \"types\": \"lib/index.d.ts\",\n  \"main\": \"lib/index.cjs\",\n  \"exports\": {\n    \".\": {\n      \"import\": {\n        \"types\": \"./lib/index.d.ts\",\n        \"default\": \"./lib/index.js\"\n      },\n      \"require\": {\n        \"types\": \"./lib/index.d.cts\",\n        \"default\": \"./lib/index.cjs\"\n      }\n    }\n  },\n  \"engines\": {\n    \"node\": \">=18.0.0\"\n  },\n  \"packageManager\": \"pnpm@9.5.0+sha256.fc4a49bd609550a41e14d20efbce802a4b892aa4cac877322de2f0924f122991\",\n  \"files\": [\n    \"lib/**/*\"\n  ],\n  \"scripts\": {\n    \"eslint\": \"eslint . --ext .ts\",\n    \"eslint:fix\": \"pnpm eslint --fix\",\n    \"build\": \"tsc && tsup\",\n    \"prepack\": \"pnpm build\",\n    \"packDev\": \"pnpm pack\"\n  },\n  \"author\": \"Transak\",\n  \"license\": \"ISC\",\n  \"homepage\": \"https://docs.transak.com/docs/web-integration#transak-sdk-reactvueangularts\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/Transak/transak-sdk\"\n  },\n  \"dependencies\": {\n    \"events\": \"^3.3.0\",\n    \"pako\": \"^2.1.0\",\n    \"query-string\": \"^8.2.0\"\n  },\n  \"devDependencies\": {\n    \"@types/events\": \"^3.0.3\",\n    \"@types/pako\": \"^2.0.3\",\n    \"eslint\": \"^8.56.0\",\n    \"eslint-config-airbnb-base\": \"^15.0.0\",\n    \"eslint-config-airbnb-typescript\": \"^17.1.0\",\n    \"eslint-config-prettier\": \"^9.1.0\",\n    \"eslint-plugin-eslint-comments\": \"^3.2.0\",\n    \"eslint-plugin-import\": \"^2.29.1\",\n    \"eslint-plugin-no-relative-import-paths\": \"^1.5.3\",\n    \"eslint-plugin-prettier\": \"^5.1.3\",\n    \"eslint-plugin-promise\": \"^6.1.1\",\n    \"prettier\": \"^3.2.5\",\n    \"tsup\": \"^8.0.2\",\n    \"typescript\": \"^5.3.3\"\n  },\n  \"keywords\": [\n    \"crypto\",\n    \"cryptocurrency\",\n    \"fiat\",\n    \"on\",\n    \"off\",\n    \"ramp\",\n    \"sdk\",\n    \"ts\",\n    \"js\"\n  ]\n}\n","export function createIframe(src: string) {\n  const iframe = document.createElement('iframe');\n\n  Object.assign(iframe, {\n    id: 'transakIframe',\n    allow: 'camera;microphone;payment',\n    src,\n  });\n\n  return iframe;\n}\n","export function generateCustomContainerCss() {\n  return `\n    #transakIframe{\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  `;\n}\n","import { generateCustomContainerCss } from './generate-custom-container-css';\n\nexport function insertCustomContainerStyleToHtmlHead() {\n  const style = document.createElement('style');\n\n  style.innerHTML = generateCustomContainerCss();\n\n  document.getElementsByTagName('head')[0]?.appendChild(style);\n\n  return style;\n}\n","import { generateGlobalTransakUrl } from 'Utils/generate-global-transak-url';\nimport { createIframe } from 'Utils/create-iframe';\nimport { TransakConfig } from 'Types/sdk-config.types';\nimport { insertCustomContainerStyleToHtmlHead } from './insert-custom-container-style-to-html-head';\n\nexport function renderIframeInCustomContainer(config: TransakConfig) {\n  const styleElement = insertCustomContainerStyleToHtmlHead();\n  const iframeElement = createIframe(generateGlobalTransakUrl(config));\n\n  if (config.containerId) {\n    const containerIdElement = document.getElementById(config.containerId);\n\n    if (containerIdElement) {\n      containerIdElement.appendChild(iframeElement);\n    } else {\n      throw new Error('[Transak SDK] => Please enter a valid containerId');\n    }\n  }\n\n  return { styleElement, iframeElement };\n}\n","import { EventEmitter } from 'events';\nimport { Events } from 'Constants/events';\n\nexport function makeHandleEvents(eventEmitter: EventEmitter) {\n  return function handleEvents(event: MessageEvent<{ event_id: unknown; data: unknown }>) {\n    if (event?.data?.event_id) {\n      console.log(JSON.stringify(event));\n      // eslint-disable-next-line default-case\n      switch (event.data.event_id) {\n        case Events.TRANSAK_WIDGET_INITIALISED: {\n          eventEmitter.emit(Events.TRANSAK_WIDGET_INITIALISED, {\n            eventName: Events.TRANSAK_WIDGET_INITIALISED,\n            status: true,\n          });\n\n          break;\n        }\n\n        case Events.TRANSAK_ORDER_CREATED: {\n          eventEmitter.emit(Events.TRANSAK_ORDER_CREATED, {\n            eventName: Events.TRANSAK_ORDER_CREATED,\n            status: event.data.data,\n          });\n\n          break;\n        }\n\n        case Events.TRANSAK_ORDER_SUCCESSFUL: {\n          eventEmitter.emit(Events.TRANSAK_ORDER_SUCCESSFUL, {\n            eventName: Events.TRANSAK_ORDER_SUCCESSFUL,\n            status: event.data.data,\n          });\n\n          break;\n        }\n\n        case Events.TRANSAK_ORDER_CANCELLED: {\n          eventEmitter.emit(Events.TRANSAK_ORDER_CANCELLED, {\n            eventName: Events.TRANSAK_ORDER_CANCELLED,\n            status: event.data.data,\n          });\n\n          break;\n        }\n\n        case Events.TRANSAK_ORDER_FAILED: {\n          eventEmitter.emit(Events.TRANSAK_ORDER_FAILED, {\n            eventName: Events.TRANSAK_ORDER_FAILED,\n            status: event.data.data,\n          });\n\n          break;\n        }\n\n        case Events.TRANSAK_WALLET_REDIRECTION: {\n          eventEmitter.emit(Events.TRANSAK_WALLET_REDIRECTION, {\n            eventName: Events.TRANSAK_WALLET_REDIRECTION,\n            status: event.data.data,\n          });\n\n          break;\n        }\n\n        case Events.TRANSAK_WIDGET_CLOSE: {\n          eventEmitter.emit(Events.TRANSAK_WIDGET_CLOSE, {\n            eventName: Events.TRANSAK_WIDGET_CLOSE,\n            status: true,\n          });\n          break;\n        }\n\n        case Events.TRANSAK_USER_INFO_RECEIVED: {\n          eventEmitter.emit(Events.TRANSAK_USER_INFO_RECEIVED, {\n            eventName: Events.TRANSAK_USER_INFO_RECEIVED,\n            status: event.data.data,\n          });\n\n          break;\n        }\n      }\n    }\n  };\n}\n","const closeIcon = `\n  <svg id=\"transakCloseIcon\" viewBox=\"0 0 612 612\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n    <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\n    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\n    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\n    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\n    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\" />\n  </svg>\n`;\n\nexport { closeIcon };\n","export function generateModalCss(themeColor: string, width: string, height: string) {\n  const closeIconHeight = 36;\n  const closeIconHeightOnePart = 36 / 3;\n  const closeIconHeightTwoParts = (36 / 3) * 2;\n\n  return `\n    #transakRoot {\n      z-index: 9997;\n      position: fixed;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      background: rgba(0, 0, 0, 0.6);\n    }\n\n    #transakModal {\n      z-index: 9998;\n      position: fixed;\n      width: ${width};\n      height: calc(${height} - ${closeIconHeightTwoParts}px);\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, calc(-50% - ${closeIconHeightOnePart}px));\n      margin-top: ${closeIconHeightTwoParts}px;\n    }\n\n    #transakCloseIcon {\n      z-index: 9999;\n      position: absolute;\n      width: 36px;\n      height: ${closeIconHeight}px;\n      top: -${closeIconHeightTwoParts}px;\n      right: 0;\n      transition: 0.5s;\n      color: #${themeColor};\n      background: white;\n      border-radius: 50%;\n    }\n\n    #transakCloseIcon:hover,\n    #transakCloseIcon:focus {\n      color: white;\n      background: #${themeColor};\n      cursor: pointer;\n    }\n\n    #transakIframe{\n      width: 100%;\n      height: 100%;\n      border: none;\n      border-radius: 10px;\n      background: white;\n    }\n\n    @media screen and (max-width: 600px) {\n      #transakModal {\n        width: 100%;\n        height: calc(100% - ${closeIconHeightTwoParts}px);\n      }\n\n      #transakIframe{\n        border-radius: 10px 10px 0 0;\n      }\n    }\n  `;\n}\n","import { TransakConfig } from 'Types/sdk-config.types';\nimport { generateModalCss } from './generate-modal-css';\n\nexport function insertModalStyleToHtmlHead(config: TransakConfig) {\n  const { themeColor = '1461db', widgetWidth = '480px', widgetHeight = '650px' } = config;\n  const style = document.createElement('style');\n\n  style.innerHTML = generateModalCss(themeColor, widgetWidth, widgetHeight);\n\n  document.getElementsByTagName('head')[0]?.appendChild(style);\n\n  return style;\n}\n","import { closeIcon } from 'Assets/svg/close-icon';\nimport { generateGlobalTransakUrl } from 'Utils/generate-global-transak-url';\nimport { createIframe } from 'Utils/create-iframe';\nimport { TransakConfig } from 'Types/sdk-config.types';\nimport { insertModalStyleToHtmlHead } from './insert-modal-style-to-html-head';\n\nexport function renderIframeInModal(config: TransakConfig, closeRequest: () => void) {\n  const styleElement = insertModalStyleToHtmlHead(config);\n  const rootElement = document.createElement('div');\n  const modal = document.createElement('div');\n  const iframeElement = createIframe(generateGlobalTransakUrl(config));\n\n  Object.assign(modal, {\n    id: 'transakModal',\n    innerHTML: closeIcon,\n  });\n\n  modal.appendChild(iframeElement);\n\n  Object.assign(rootElement, {\n    id: 'transakRoot',\n    onclick: () => closeRequest(),\n  });\n\n  rootElement.appendChild(modal);\n\n  document.getElementsByTagName('body')[0].appendChild(rootElement);\n\n  document.getElementById('transakCloseIcon')?.addEventListener('click', () => closeRequest());\n\n  return { styleElement, rootElement, iframeElement };\n}\n"]}