{"version":3,"sources":["../src/Constants/environments.ts","../src/Constants/events.ts","../src/TransakWebView.tsx","../src/Utils/generate-global-transak-url.ts","../src/Constants/web-app-urls.ts","../package.json"],"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":["export enum Environments {\n  STAGING = 'STAGING',\n  PRODUCTION = 'PRODUCTION',\n}\n","export enum Events {\n  ORDER_CREATED = 'ORDER_CREATED',\n  ORDER_PAYMENT_VERIFYING = 'ORDER_PAYMENT_VERIFYING',\n  ORDER_PROCESSING = 'ORDER_PROCESSING',\n  ORDER_COMPLETED = 'ORDER_COMPLETED',\n  ORDER_FAILED = 'ORDER_FAILED',\n}\n","import { useEffect, forwardRef } from 'react';\nimport { Alert, Linking } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { generateGlobalTransakUrl } from 'Utils/generate-global-transak-url';\nimport { eventListener } from 'Utils/event-listener';\nimport { TransakWebViewInputs } from 'Types/sdk-config.types';\n\nconst TransakWebView = forwardRef<WebView, TransakWebViewInputs>(({ transakConfig, onTransakEvent, ...webviewProps }, ref) => {\n  const transakUrl = generateGlobalTransakUrl(transakConfig);\n  const currentWebviewProps = { ...webviewProps };\n\n  delete currentWebviewProps.sharedCookiesEnabled;\n  delete currentWebviewProps.injectedJavaScript;\n  delete currentWebviewProps.injectedJavaScriptBeforeContentLoaded;\n  delete currentWebviewProps.onMessage;\n  delete currentWebviewProps.mediaPlaybackRequiresUserAction;\n\n  const openInAppBrowser = async (url: string) => {\n    try {\n      if (await InAppBrowser.isAvailable()) {\n        await InAppBrowser.open(url, {\n          // Android Properties\n          showTitle: false,\n          toolbarColor: transakConfig.themeColor ? `#${transakConfig.themeColor}` : '#2575fc',\n          secondaryToolbarColor: '#ffffff',\n          enableUrlBarHiding: true,\n          enableDefaultShare: false,\n          forceCloseOnRedirection: false,\n          hasBackButton: false,\n          showInRecents: false,\n          // iOS Properties\n          dismissButtonStyle: 'done',\n          preferredBarTintColor: transakConfig.themeColor ? `#${transakConfig.themeColor}` : '#2575fc',\n          preferredControlTintColor: '#ffffff',\n          readerMode: false,\n          animated: true,\n          modalPresentationStyle: 'fullScreen',\n          modalTransitionStyle: 'coverVertical',\n          modalEnabled: true,\n          enableBarCollapsing: false,\n        });\n      } else {\n        await Linking.openURL(url);\n      }\n    } catch (error) {\n      if (error instanceof Error) {\n        Alert.alert(error.message);\n      }\n    }\n  };\n\n  const onMessageHandler = (event: WebViewMessageEvent) => {\n    if (webviewProps.onMessage) {\n      webviewProps.onMessage(event);\n    }\n\n    const url = event.nativeEvent.data;\n\n    if (url.includes('/googlepay')) {\n      // eslint-disable-next-line @typescript-eslint/no-floating-promises\n      openInAppBrowser(url.replace('isWebView', 'useAsExternalPayment'));\n    }\n\n    if (url.startsWith('https://secure.plaid.com')) {\n      // eslint-disable-next-line @typescript-eslint/no-floating-promises\n      openInAppBrowser(url);\n    }\n  };\n\n  useEffect(() => {\n    const { unbindListener } = eventListener(transakConfig, onTransakEvent);\n\n    return () => {\n      unbindListener();\n    };\n  }, []);\n\n  return (\n    <WebView\n      ref={ref}\n      {...currentWebviewProps}\n      originWhitelist={['*']}\n      source={{ uri: transakUrl }}\n      enableApplePay\n      allowsInlineMediaPlayback\n      mediaPlaybackRequiresUserAction={false}\n      onMessage={onMessageHandler}\n    />\n  );\n});\n\nexport { TransakWebView };\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  DEVELOPMENT: 'https://<enter-system-ip>:5005/',\n  DEV: 'https://global-dev.transak.com',\n  DEV_IFRAME: 'https://global-iframe-dev.transak.com',\n  BETA: 'https://global-beta.transak.com',\n  [Environments.STAGING]: 'https://global-stg.transak.com',\n  [Environments.PRODUCTION]: 'https://global.transak.com',\n};\n","{\n  \"name\": \"@transak/react-native-sdk\",\n  \"version\": \"2.1.1\",\n  \"description\": \"A React Native SDK for decentralised applications to onboard their global user base with fiat currency\",\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+sha512.140036830124618d624a2187b50d04289d5a087f326c9edfc0ccd733d76c4f52c3a313d4fc148794a2a9d81553016004e6742e8cf850670268a7387fc220c903\",\n  \"files\": [\n    \"lib/**/*\"\n  ],\n  \"scripts\": {\n    \"eslint\": \"eslint . --ext .ts,.tsx\",\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/react-native-integration#transak-react-native-sdk\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/Transak/react-native-sdk\"\n  },\n  \"peerDependencies\": {\n    \"@react-native-community/netinfo\": \"*\",\n    \"@types/react\": \"*\",\n    \"react\": \"*\",\n    \"react-native\": \"*\",\n    \"react-native-inappbrowser-reborn\": \"*\",\n    \"react-native-webview\": \"*\"\n  },\n  \"dependencies\": {\n    \"pako\": \"^2.1.0\",\n    \"pusher-js\": \"^8.3.0\",\n    \"query-string\": \"^8.2.0\"\n  },\n  \"devDependencies\": {\n    \"@types/pako\": \"^2.0.3\",\n    \"@types/react\": \"^18.2.57\",\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    \"react-native\"\n  ]\n}\n"]}