{"version":3,"file":"v1.js","sources":["../config/env.ts","../index.ts"],"sourcesContent":["/* ENV variables for local env */\nconst ENV = {\n NEXT_PUBLIC_API_BASE: 'https://treezpay-api.dev.swifterhq.com/checkout/v2.0',\n NEXT_PUBLIC_AMPLIFY_REGION: 'us-west-2',\n NEXT_PUBLIC_AMPLIFY_USER_POOL_ID: 'us-west-2_ZmTnZlnbj',\n NEXT_PUBLIC_AMPLIFY_WEB_CLIENT_ID: 'k2i7fvjqm9hfp37b5b0ppr3fq',\n NEXT_PUBLIC_PENDO_KEY: '',\n NEXT_PUBLIC_SENTRY_ENV: 'LOCAL',\n NEXT_PUBLIC_SENTRY_DSN:\n 'https://c20667c510d043afbf77594861f145ea@o507283.ingest.sentry.io/5968487',\n NEXT_PUBLIC_FULLSTORY_ORG_ID: '',\n BASE_URL: 'http://localhost:3000',\n};\n\n/* Set variables for dev, prod in AWS Amplify console */\nconst vars = process.env.NODE_ENV !== 'production' ? ENV : process.env;\n\nexport const {\n NEXT_PUBLIC_API_BASE: API_BASE,\n NEXT_PUBLIC_AMPLIFY_REGION: AMPLIFY_REGION,\n NEXT_PUBLIC_AMPLIFY_USER_POOL_ID: AMPLIFY_USER_POOL_ID,\n NEXT_PUBLIC_AMPLIFY_WEB_CLIENT_ID: AMPLIFY_WEB_CLIENT_ID,\n NEXT_PUBLIC_PENDO_KEY: PENDO_KEY,\n NEXT_PUBLIC_SENTRY_DSN: SENTRY_DSN,\n NEXT_PUBLIC_SENTRY_ENV: SENTRY_ENV,\n NEXT_PUBLIC_FULLSTORY_ORG_ID: FULLSTORY_ORG_ID,\n BASE_URL,\n} = vars;\n","import { BASE_URL } from './config/env';\n\nconst style = document.createElement('link');\nstyle.href = `${BASE_URL}/styles/pay.css`;\nstyle.type = 'text/css';\nstyle.rel = 'stylesheet';\ndocument.getElementsByTagName('head')[0].appendChild(style);\n\nfunction closeSwifterPayModal() {\n document.querySelector('#swifter-pay-iframe')?.remove();\n document.querySelector('#swifter-pay-loader')?.remove();\n}\n\nfunction onIframeLoaded() {\n document.querySelector('#swifter-pay-loader')?.remove();\n return null;\n}\n\n/*\n * Payment widget flow\n * sessionID _required_\n */\nfunction _init(\n sessionID: string,\n selector: string,\n renderInModal: boolean,\n env: IEnv,\n themeID?: string\n) {\n console.log('Will anchor to this selector: ', selector); // skipcq: JS-0002\n const hasIframe = document.getElementById('swifter-pay-iframe');\n if (hasIframe) return;\n const el = document.querySelector(selector);\n const loader = document.createElement('div');\n loader.className = 'loader';\n loader.id = 'swifter-pay-loader';\n if (el) {\n el.append(loader);\n }\n const iframe = document.createElement('iframe');\n iframe.frameBorder = '0';\n iframe.width = '375';\n iframe.id = 'swifter-pay-iframe';\n iframe.src = `${BASE_URL}/?sessionID=${sessionID}&renderInModal=${renderInModal}${\n env ? `&env=${env}` : ''\n }${themeID ? `&themeID=${themeID}` : ''}`;\n iframe.className = renderInModal ? 'isModal' : '';\n iframe.onload = onIframeLoaded();\n if (el) {\n el.append(iframe);\n }\n}\n\n/*\n * Signup widget flow\n * sessionID _required_\n */\nfunction _initRegistration(\n selector: string,\n renderInModal: boolean,\n env: IEnv,\n themeID?: string\n) {\n console.log('Will anchor to this selector: ', selector); // skipcq: JS-0002\n const hasIframe = document.getElementById('swifter-pay-iframe');\n if (hasIframe) return;\n const el = document.querySelector(selector);\n const loader = document.createElement('div');\n loader.className = 'loader';\n loader.id = 'swifter-pay-loader';\n if (el) {\n el.append(loader);\n }\n const iframe = document.createElement('iframe');\n iframe.frameBorder = '0';\n iframe.width = '375';\n iframe.id = 'swifter-pay-iframe';\n iframe.src = `${BASE_URL}/register?renderInModal=${renderInModal}${\n env ? `&env=${env}` : ''\n }${themeID ? `&themeID=${themeID}` : ''}`;\n iframe.className = renderInModal ? 'isModal' : '';\n iframe.onload = onIframeLoaded();\n if (el) {\n el.append(iframe);\n }\n}\n\nfunction respondToIframeMessage(obj: ISwifterPay, event: MessageEvent) {\n if (event.origin.startsWith(BASE_URL as string)) {\n // The data was sent from your site.\n if (\n event.data &&\n event.data.type &&\n event.data.type.startsWith('sp-exit')\n ) {\n const { message } = event.data;\n console.log('Swifter Pay exited due to an error or the user.'); // skipcq: JS-0002\n if (obj && obj.onExit) {\n obj.onExit(message);\n }\n } else if (\n event.data &&\n event.data.type &&\n event.data.type.startsWith('sp-success')\n ) {\n const { message } = event.data;\n console.log('Paid successfully!'); // skipcq: JS-0002\n if (obj && obj.onComplete) {\n obj.onComplete(message);\n }\n }\n } else {\n // The data was not sent from your site!\n console.log(event.origin); // skipcq: JS-0002\n }\n}\n\nclass SwifterPay {\n sessionID?: string;\n onComplete?: (message: string) => void;\n onExit?: (response: ISessionError) => void;\n selector: string;\n renderInModal: boolean;\n messageListenerFunction?: (event: MessageEvent) => void;\n env: IEnv;\n themeID?: string;\n\n constructor() {\n this.sessionID = undefined;\n this.onComplete = undefined;\n this.onExit = undefined;\n this.selector = 'body';\n this.renderInModal = true;\n this.messageListenerFunction = respondToIframeMessage.bind(null, this);\n this.env = null;\n this.themeID = undefined;\n }\n\n _registerMethods(startObj: ISession) {\n const user_defined_complete_func = startObj.onComplete;\n this.onComplete = function (message: string) {\n if (!user_defined_complete_func) return;\n user_defined_complete_func(message);\n closeSwifterPayModal();\n if (this.messageListenerFunction) {\n window.removeEventListener(\n 'message',\n this.messageListenerFunction,\n false\n );\n }\n };\n const user_defined_exit_func = startObj.onExit;\n this.onExit = function (response: ISessionError) {\n if (!user_defined_exit_func) return;\n user_defined_exit_func(response);\n closeSwifterPayModal();\n\n if (this.messageListenerFunction) {\n window.removeEventListener(\n 'message',\n this.messageListenerFunction,\n false\n );\n }\n };\n\n if (this.messageListenerFunction) {\n window.addEventListener('message', this.messageListenerFunction);\n }\n }\n\n // skipcq: JS-0045\n startSession(startObj: ISession) {\n this.sessionID = startObj.sessionID;\n this.env = startObj.env || null;\n this.themeID = startObj.themeID;\n\n if (startObj.selector !== undefined) {\n this.selector = startObj.selector;\n }\n\n if (startObj.renderInModal !== undefined) {\n this.renderInModal = startObj.renderInModal;\n }\n\n this._registerMethods(startObj);\n\n if (!this.sessionID) {\n console.error('The session is missing. Please notify the admin.'); // skipcq: JS-0002\n if (this.onExit) {\n return this.onExit({ code: 'init_error' });\n }\n return false;\n }\n\n _init(\n this.sessionID,\n this.selector,\n this.renderInModal,\n this.env,\n this.themeID\n );\n }\n\n signup(startObj: ISignup) {\n this.env = startObj.env || null;\n this.themeID = startObj.themeID;\n\n if (startObj.selector !== undefined) {\n this.selector = startObj.selector;\n }\n\n if (startObj.renderInModal !== undefined) {\n this.renderInModal = startObj.renderInModal;\n }\n\n this._registerMethods(startObj);\n\n _initRegistration(\n this.selector,\n this.renderInModal,\n this.env,\n this.themeID\n );\n }\n}\n\ndeclare global {\n interface Window {\n SwifterPay: ISwifterPayConstructor;\n SparcPay: ISwifterPayConstructor;\n }\n}\n\nwindow.SwifterPay = SwifterPay;\nwindow.SparcPay = SwifterPay; //Fallback to support older version\n"],"names":["BASE_URL","style","document","createElement","closeSwifterPayModal","querySelector","remove","onIframeLoaded","respondToIframeMessage","obj","event","origin","startsWith","data","type","message","console","log","onExit","onComplete","href","rel","getElementsByTagName","appendChild","SwifterPay","sessionID","undefined","selector","renderInModal","messageListenerFunction","bind","this","env","themeID","_registerMethods","startObj","user_defined_complete_func","window","removeEventListener","user_defined_exit_func","response","addEventListener","startSession","error","code","getElementById","el","loader","className","id","append","iframe","frameBorder","width","src","onload","_init","signup","_initRegistration","SparcPay"],"mappings":"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"}