{"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/Components/custom-container/generate-custom-container-css.ts","../src/Assets/svg/close-icon.ts","../src/Components/modal/generate-modal-css.ts"],"names":["Environments","Events","WebAppUrls","package_default","generateGlobalTransakUrl","configData","sdkName","sdkVersion","environment","queryParams","queryString","key","pako","qs"],"mappings":"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","file":"/var/lib/jenkins/workspace/npm-publish/npm-publish-by-repo/lib/index.cjs","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: Events; 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}\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};\n","{\n  \"name\": \"@transak/transak-sdk\",\n  \"version\": \"3.2.0\",\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@10.0.0+sha512.b8fef5494bd3fe4cbd4edabd0745df2ee5be3e4b0b8b08fa643aa3e4c6702ccc0f00d68fa8a8c9858a735a0032485a44990ed2810526c875e416f001b17df12b\",\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\": \"^9.1.1\"\n  },\n  \"devDependencies\": {\n    \"@types/events\": \"^3.0.3\",\n    \"@types/pako\": \"^2.0.3\",\n    \"@typescript-eslint/eslint-plugin\": \"^7.18.0\",\n    \"@typescript-eslint/parser\": \"^7.18.0\",\n    \"eslint\": \"^8.57.1\",\n    \"eslint-config-airbnb-base\": \"^15.0.0\",\n    \"eslint-config-airbnb-typescript\": \"^18.0.0\",\n    \"eslint-config-prettier\": \"^10.0.1\",\n    \"eslint-plugin-eslint-comments\": \"^3.2.0\",\n    \"eslint-plugin-import\": \"^2.31.0\",\n    \"eslint-plugin-no-relative-import-paths\": \"^1.6.1\",\n    \"eslint-plugin-prettier\": \"^5.2.3\",\n    \"eslint-plugin-promise\": \"^7.2.1\",\n    \"prettier\": \"^3.4.2\",\n    \"tsup\": \"^8.3.5\",\n    \"typescript\": \"5.5.4\"\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 generateCustomContainerCss() {\n  return `\n    #transakIframe{\n      width: 100%;\n      height: 100%;\n      border: none;\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"]}