UNPKG

aerosync-web-sdk

Version:

This WEB SDK provides an interface to load Aerosync-UI in javascript or typescript application. Securely link your bank account through your bank’s website. Log in with a fast, secure, and tokenized connection. Your information is never shared or sold.

1 lines 19.1 kB
{"version":3,"sources":["../src/types/environment.ts","../src/types/event.interface.ts","../src/constants.ts","../src/Aerosync.ts","../src/index.ts"],"sourcesContent":["export enum AerosyncEnvironment {\n Qa = \"qa\",\n Staging = \"staging\",\n Sandbox = \"sandbox\",\n Production = \"production\",\n};\n\nexport const AerosyncUrl = {\n qa: \"https://qa-sync.aero.inc\",\n staging: \"https://staging-sync.aero.inc\",\n sandbox: \"https://sandbox.aerosync.com\",\n production: \"https://sync.aero.inc\",\n}\n","export interface WidgetEventSuccessType {\n user_id: string;\n user_password: string\n ClientName: string;\n FILoginAcctId: string;\n}\n\nexport interface WidgetEventType {\n payload: WidgetEventPayloadType;\n type: string;\n}\n\nexport interface WidgetEventPayloadType {\n pageTitle: string;\n onLoadApi: string;\n}\n\nexport interface WidgetEventBankClickType {\n type: string;\n stateCode: string;\n}\n\nexport enum WidgetMessageEventType {\n ONERROR = 'widgetError',\n ONEVENT = 'widgetPageLoaded',\n ONSUCCESS = 'pageSuccess',\n ONCLOSE = 'widgetClose',\n ONBANKCLICK = 'widgetBankClick'\n}\n\nexport interface WidgetMessageType {\n type: WidgetMessageEventType,\n payload: WidgetMessagePayloadType\n}\n\ntype WidgetMessagePayloadType = WidgetEventType | WidgetEventSuccessType | WidgetEventPayloadType | WidgetEventBankClickType | string | object\n\n","export const AEROSYNC_WIDGET_CONTAINER_ID = \"aerosync-widget-container\"\nexport const AEROSYNC_WIDGET_IFRAME_ID = \"aerosync-widget\"\nexport const AEROSYNC_EMBEDDED_IFRAME_ID = \"aerosync-embedded\"\nexport const AEROSYNC_VERSION = '2.0.0'","import { WidgetEventBankClickType, WidgetEventSuccessType, WidgetEventType, WidgetMessageEventType, WidgetMessageType } from \"./types/event.interface\";\nimport { IframePropsType, WidgetConfigs, WidgetThemeType } from \"./types/widget.interface\";\nimport { AerosyncUrl } from \"./types/environment\";\nimport { AEROSYNC_EMBEDDED_IFRAME_ID, AEROSYNC_VERSION, AEROSYNC_WIDGET_CONTAINER_ID, AEROSYNC_WIDGET_IFRAME_ID } from \"./constants\";\nimport { WidgetPostMessageEvent, WidgetPostMessageOnClose, WidgetPostMessageOnSuccess, WidgetPostMessageOnToggleTheme } from \"./types/post-message.interface\";\n\nexport class AerosyncWidget {\n private widgetConfigs: WidgetConfigs;\n private targetDocument!: ShadowRoot | Document;\n private targetElement!: HTMLElement;\n private widgetBaseURL!: string;\n private widgetStateCode!: string;\n private embeddedIframeElement!: HTMLIFrameElement;\n private hasMessageListener: boolean = false;\n\n constructor(widgetConfigs: WidgetConfigs) {\n this.widgetConfigs = widgetConfigs;\n this.widgetConfigs = {\n ...widgetConfigs,\n onLoad: widgetConfigs.onLoad ?? (() => { }),\n onClose: widgetConfigs.onClose ?? (() => { }),\n onSuccess: widgetConfigs.onSuccess ?? (() => { }),\n onEvent: widgetConfigs.onEvent ?? (() => { }),\n onError: widgetConfigs.onError ?? (() => { }),\n };\n this.addWindowEventListener();\n this.setWidgetBaseURL();\n this.showEmbeddedBanks();\n }\n\n private setWidgetBaseURL() {\n this.widgetBaseURL = AerosyncUrl[this.widgetConfigs.environment as keyof typeof AerosyncUrl] || AerosyncUrl.production;\n }\n\n private addWindowEventListener() {\n if (!this.hasMessageListener) {\n window.addEventListener(\"message\", this.handlePostMessage);\n this.hasMessageListener = true;\n }\n }\n\n private removeWindowEventListener() {\n if (this.hasMessageListener) {\n window.removeEventListener(\"message\", this.handlePostMessage);\n this.hasMessageListener = false;\n }\n }\n\n\n private constructUrl(baseUrl: string, queryParams: Record<string, string | number | boolean | undefined>): string {\n const url = new URL(baseUrl);\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(queryParams)) {\n if (value) {\n searchParams.append(key, String(value));\n }\n }\n url.search = searchParams.toString();\n return url.toString();\n }\n\n public launch(): void {\n const widgetQueryParams = {\n token: this.widgetConfigs.token,\n consumerId: this.widgetConfigs.consumerId,\n deeplink: this.widgetConfigs.deeplink,\n handleOAuthManually: this.widgetConfigs.handleOAuthManually,\n manualLinkOnly: this.widgetConfigs.manualLinkOnly,\n handleMFA: this.widgetConfigs.handleMFA,\n jobId: this.widgetConfigs.jobId,\n userId: this.widgetConfigs.userId,\n domain: this.widgetConfigs.domain,\n stateCode: this.widgetStateCode,\n defaultTheme: this.widgetConfigs.theme ?? 'light',\n version: AEROSYNC_VERSION\n }\n const widgetURL = this.constructUrl(this.widgetBaseURL, widgetQueryParams)\n let bg = this.widgetConfigs?.style?.bgColor && this.widgetConfigs?.style?.opacity\n ? this.widgetConfigs.style.bgColor + Math.floor(this.widgetConfigs.style.opacity * 255).toString(16)\n : \"#000000b2\";\n\n let widgetBox = document.createElement(\"div\");\n this.targetDocument = this.widgetConfigs.targetDocument || document;\n widgetBox.setAttribute(\"id\", AEROSYNC_WIDGET_CONTAINER_ID);\n this.targetElement = this.targetDocument.getElementById(this.widgetConfigs.elementId)!;\n this.targetElement.innerHTML = \"\";\n this.targetElement.appendChild(widgetBox);\n\n const iframeProps: IframePropsType = {\n elementId: AEROSYNC_WIDGET_IFRAME_ID,\n width: this.widgetConfigs?.style?.width ? this.widgetConfigs.style.width : \"375px\",\n height: this.widgetConfigs?.style?.height ? this.widgetConfigs.style.height : \"688px\",\n source: widgetURL\n }\n let iframeElement = this.setIframeWindow(iframeProps)\n iframeElement.setAttribute(\"width\", iframeProps.width);\n iframeElement.setAttribute(\"height\", iframeProps.height);\n\n let widgetBoxElement = this.targetDocument.getElementById(AEROSYNC_WIDGET_CONTAINER_ID);\n widgetBoxElement!.style.display = \"flex\";\n widgetBoxElement!.style.position = \"fixed\";\n widgetBoxElement!.style.width = \"100%\";\n widgetBoxElement!.style.left = \"0\";\n widgetBoxElement!.style.top = \"0\";\n widgetBoxElement!.style.backgroundColor = bg;\n widgetBoxElement!.style.zIndex = this.widgetConfigs.zIndex || \"1\";\n widgetBoxElement!.style.height = \"100%\";\n widgetBoxElement!.style.justifyContent = \"center\";\n widgetBoxElement!.style.alignItems = \"center\";\n\n if (window.matchMedia(\"(max-height: 700px)\").matches) {\n iframeElement.setAttribute(\"height\", \"95%\");\n }\n\n widgetBoxElement!.innerHTML = \"\";\n widgetBoxElement!.appendChild(iframeElement);\n }\n\n private setIframeWindow(props: IframePropsType): HTMLIFrameElement {\n let iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"id\", props.elementId);\n iframe.setAttribute(\"border\", \"0\");\n iframe.setAttribute(\"frame\", \"0\");\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"src\", props.source);\n iframe.setAttribute(\"marginheight\", \"0\");\n iframe.setAttribute(\"marginwidth\", \"0\");\n iframe.style.backgroundColor = (this.widgetConfigs?.theme === 'dark') ?\n 'hsl(240, 25%, 5.9%)' : 'hsl(0, 0%, 100%)';\n iframe.onload = () => {\n this.widgetConfigs?.embeddedBankView?.onEmbedded() ?? this.widgetConfigs.onLoad()\n }\n iframe.setAttribute(\"title\", this.widgetConfigs.iframeTitle);\n return iframe\n }\n\n private showEmbeddedBanks(): void {\n if (this.widgetConfigs?.embeddedBankView?.elementId) {\n const widgetQueryParams = {\n token: this.widgetConfigs.token,\n defaultTheme: this.widgetConfigs.theme\n }\n // container\n let iframeContainerElement = document.createElement(\"div\");\n iframeContainerElement.style.position = 'relative'\n iframeContainerElement.style.width = '100%'\n iframeContainerElement.style.overflow = 'hidden'\n iframeContainerElement.style.height = '100%'\n\n // iframe\n const widgetURL = this.constructUrl(`${this.widgetBaseURL}/embedded-view`, widgetQueryParams)\n const iframeProps: IframePropsType = {\n elementId: AEROSYNC_EMBEDDED_IFRAME_ID,\n width: this.widgetConfigs?.embeddedBankView?.width || \"100%\",\n height: this.widgetConfigs?.embeddedBankView?.height || \"100%\",\n source: widgetURL\n }\n this.embeddedIframeElement = this.setIframeWindow(iframeProps);\n this.embeddedIframeElement.setAttribute('scrolling', 'no')\n this.embeddedIframeElement.style.overflow = 'hidden';\n this.embeddedIframeElement.style.width = iframeProps.width;\n this.embeddedIframeElement.style.height = iframeProps.height;\n this.embeddedIframeElement.style.position = 'absolute';\n this.embeddedIframeElement.style.top = '0px';\n this.embeddedIframeElement.style.left = '0px';\n this.embeddedIframeElement.style.bottom = '0px';\n this.embeddedIframeElement.style.right = '0px';\n\n this.targetDocument = this.widgetConfigs.targetDocument || document;\n const embeddedElement = this.targetDocument.getElementById(this.widgetConfigs.embeddedBankView.elementId)!;\n embeddedElement.innerHTML = \"\";\n embeddedElement.appendChild(iframeContainerElement);\n iframeContainerElement.appendChild(this.embeddedIframeElement);\n }\n }\n\n public destroy(): void {\n this.removeWindowEventListener()\n }\n\n public toggleTheme(value: WidgetThemeType): void {\n const message: WidgetPostMessageOnToggleTheme = {\n type: 'embeddedView',\n payload: { name: 'onToggleTheme', theme: value }\n }\n this.sendPostMessage(AEROSYNC_EMBEDDED_IFRAME_ID, message)\n this.widgetConfigs.theme = value\n }\n\n public exit(): void {\n const removeElement = (selector: string): void => {\n const element = this.targetDocument.querySelector(selector)\n if (element) {\n element.remove()\n }\n };\n removeElement(`#${AEROSYNC_WIDGET_IFRAME_ID}`);\n removeElement(`#${AEROSYNC_WIDGET_CONTAINER_ID}`);\n this.widgetConfigs.onClose();\n }\n\n private handlePostMessage(messageEvent: MessageEvent): void {\n if (\n messageEvent.origin === window.AerosyncWidget.widgetBaseURL\n ) {\n let e: WidgetMessageType;\n try {\n e = JSON.parse(messageEvent.data);\n if (e.type) {\n window.AerosyncWidget.handleWidgetEvent(e);\n }\n } catch (err) {\n console.warn(\"Error processing event\", err);\n }\n }\n }\n\n private handleWidgetEvent(t: WidgetMessageType): void {\n switch (t.type) {\n case WidgetMessageEventType.ONSUCCESS:\n this.widgetConfigs.onSuccess(t.payload as WidgetEventSuccessType);\n const message: WidgetPostMessageOnSuccess = {\n type: 'embeddedView',\n payload: { name: 'onSuccess' }\n }\n this.sendPostMessage(AEROSYNC_EMBEDDED_IFRAME_ID, message)\n this.exit()\n break;\n case WidgetMessageEventType.ONEVENT:\n this.widgetConfigs.onEvent(t as WidgetEventType);\n break;\n case WidgetMessageEventType.ONCLOSE:\n if (this.widgetConfigs?.embeddedBankView?.elementId &&\n this.embeddedIframeElement\n ) {\n const message: WidgetPostMessageOnClose = {\n type: 'embeddedView',\n payload: { name: 'onClose' }\n }\n this.sendPostMessage(AEROSYNC_EMBEDDED_IFRAME_ID, message)\n }\n this.exit()\n break;\n case WidgetMessageEventType.ONERROR:\n this.widgetConfigs.onError(t.payload as string);\n break;\n case WidgetMessageEventType.ONBANKCLICK:\n this.widgetStateCode = (t.payload as WidgetEventBankClickType).stateCode\n this.launch()\n break;\n }\n }\n\n private sendPostMessage(elementId: string, message: WidgetPostMessageEvent): void {\n const iframe = document.getElementById(elementId) as HTMLIFrameElement;\n if (iframe) {\n iframe.contentWindow!.postMessage(\n message,\n window.AerosyncWidget.widgetBaseURL\n );\n }\n }\n\n}\n\n","import { WidgetConfigs } from './types/widget.interface';\nimport { AerosyncEnvironment } from './types/environment';\nimport { AerosyncWidget } from './Aerosync';\n\nexport function initAeroSyncWidget(widgetConfigs: WidgetConfigs): AerosyncWidget {\n const aerosyncWidget = new AerosyncWidget(widgetConfigs);\n window.AerosyncWidget = aerosyncWidget\n return aerosyncWidget;\n}\n\nexport * from './types/event.interface'\nexport * from './types/widget.interface'\nexport type { WidgetConfigs, AerosyncWidget };\nexport { AerosyncEnvironment }"],"mappings":"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","names":["AerosyncEnvironment","WidgetMessageEventType","_a","message"]}