UNPKG

@mastercard/connect-components-web-sdk

Version:
1 lines 31.7 kB
{"version":3,"file":"sdk.mjs","mappings":"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","sources":["webpack://@mastercard/connect-components-web-sdk/webpack/bootstrap","webpack://@mastercard/connect-components-web-sdk/webpack/runtime/define property getters","webpack://@mastercard/connect-components-web-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@mastercard/connect-components-web-sdk/./src/elements/MastercardForm/MastercardForm.element.js","webpack://@mastercard/connect-components-web-sdk/./src/config/app/app.config.js","webpack://@mastercard/connect-components-web-sdk/./src/config/app/index.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/MastercardForm/index.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/BaseInputElement/BaseInputElement.element.js","webpack://@mastercard/connect-components-web-sdk/./src/core/Sleep/sleep.js","webpack://@mastercard/connect-components-web-sdk/./src/core/Sleep/index.js","webpack://@mastercard/connect-components-web-sdk/./src/core/MastercardEventEmitter/MastercardEventEmitter.class.js","webpack://@mastercard/connect-components-web-sdk/./src/core/MastercardEventEmitter/index.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/BaseInputElement/index.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/MastercardInput/MastercardInput.element.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/MastercardInput/index.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/MastercardMFAChoice/MastercardMFAChoice.element.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/MastercardMFAChoice/index.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/EventStream/EventStream.element.js","webpack://@mastercard/connect-components-web-sdk/./src/elements/EventStream/index.js","webpack://@mastercard/connect-components-web-sdk/./src/index.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/** @param {import('./types').ElementImports} $inject */\nfunction mastercardForm_injector($inject) {\n const { appConfig, HTMLElement, crypto, logger, document, MutationObserver } =\n $inject;\n\n return class MastercardForm extends HTMLElement {\n /**\n * @type {import('./types').ElementExports['constructor']}\n */\n constructor() {\n super();\n this.eventStream = null;\n this.events = null;\n }\n\n // - Lifecycle events\n /**\n * @type {import('./types').ElementExports['connectedCallback']}\n */\n connectedCallback() {\n const existingEventStream = this.querySelector('mastercard-event-stream');\n if (existingEventStream) {\n this.eventStream = existingEventStream;\n } else if (this.getAttribute('event-stream-id')?.length) {\n /** @type {string} */\n // @ts-ignore\n const streamId = this.getAttribute('event-stream-id');\n this.eventStream = document.createElement('mastercard-event-stream');\n this.eventStream.setAttribute('event-stream-id', streamId);\n this.appendChild(this.eventStream);\n this.events = this.eventStream.events;\n }\n // Proxy this to make it easier to access\n this.observer = new MutationObserver(() => {\n Array.from(this.querySelectorAll('mastercard-input'))\n .filter((elem) => {\n return elem.getAttribute('form-id') !== this.id;\n })\n .forEach((elem) => {\n elem.setAttribute('form-id', this.id);\n });\n Array.from(this.querySelectorAll('mastercard-mfa-choice'))\n .filter((elem) => {\n return elem.getAttribute('form-id') !== this.id;\n })\n .forEach((elem) => {\n elem.setAttribute('form-id', this.id);\n });\n });\n\n // @ts-ignore\n this.observer.observe(this, {\n subtree: true,\n childList: true,\n characterData: false,\n });\n }\n\n // - Custom methods\n /**\n * This method is used to intercept native onSubmit calls and forward them to our own custom\n * submit function\n * @type {import('./types').ElementExports['onSubmit']}\n */\n onSubmit(event) {\n event.preventDefault();\n this.submit();\n }\n\n /**\n * Sends a message to the orchestration service, which lives in the event stream iframe\n * @type {import('./types').ElementExports['submit']}\n */\n submit() {\n const requestId = crypto.randomUUID();\n const targetOrigin = appConfig.getSDKBase();\n const message = {\n formId: this.getAttribute('id'),\n eventType: 'submitRequest',\n requestId,\n };\n if (this.eventStream) {\n // @ts-ignore\n message.eventStreamId =\n this.eventStream.getAttribute('event-stream-id');\n // @ts-ignore\n this.eventStream\n .querySelector('iframe')\n .contentWindow.postMessage(message, targetOrigin);\n } else {\n logger.warn(`No event stream registered!`);\n }\n }\n };\n}\n\nexport { mastercardForm_injector };\n","/** @param {import('../types').ConfigImports} $inject */\nfunction appConfig_injector($inject) {\n const { APP_SDK_BASE } = $inject;\n /** @type {URL} */\n let sdkBase;\n\n /**\n * For local testing. This does not need to be documented, and customers should not\n * use this.\n * @type {import('../types').AppConfig['setSDKBase']}\n */\n function setSDKBase(newBase) {\n sdkBase = new URL(newBase);\n }\n\n /**\n * @type {import('../types').AppConfig['getSDKBase']}\n */\n function getSDKBase() {\n // Always fall back to default if the sdk base gets clobbered\n if (!sdkBase) {\n sdkBase = new URL(APP_SDK_BASE);\n }\n let base = sdkBase.toString();\n if (base.charAt(base.length - 1) === '/') {\n base = base.substring(0, base.length - 1);\n }\n return base;\n }\n\n /**\n * @type {import('../types').AppConfig['getFrameOrigin']}\n */\n function getFrameOrigin() {\n // Always fall back to default if the sdk base gets clobbered\n if (!sdkBase) {\n sdkBase = new URL(APP_SDK_BASE);\n }\n return sdkBase.origin;\n }\n\n /**\n * @type {import('../types').AppConfig}\n */\n return {\n // sdkBase: sdkBase.toString(),\n // frameOrigin: sdkBase.origin,\n setSDKBase,\n getSDKBase,\n getFrameOrigin,\n };\n}\n\nexport { appConfig_injector };\n","import { appConfig_injector } from './app.config';\nconst $inject = {\n APP_SDK_BASE: process.env.APP_SDK_BASE || 'https://components.finicity.com',\n};\n\nexport default appConfig_injector($inject);","import { mastercardForm_injector } from './MastercardForm.element';\nimport appConfig from '../../config/app';\n\nconst $inject = {\n appConfig,\n crypto,\n HTMLElement,\n document,\n MutationObserver,\n logger: console,\n};\n\nexport default mastercardForm_injector($inject);\n","/** @param {import('./types').ElementImports} $inject */\nfunction baseInputElement_injector($inject) {\n const {\n HTMLElement,\n window,\n document,\n MastercardEventEmitter,\n appConfig,\n logger,\n sleep,\n } = $inject;\n\n /** @type {HTMLElement} */\n // @ts-ignore\n return class BaseInputElement extends HTMLElement {\n /**\n * @type {import('./types').ElementExports['constructor']}\n */\n constructor() {\n super();\n this.frameReady = false; // Let's us know when the inner iframe has finished loading\n // this.isConnected = <this comes from HTMLElement>;\n this.innerFrame = document.createElement('iframe');\n // This is our internal emitter. Events here are exposed via this\n // class' addEventListener and removeEventListener methods\n // @ts-ignore\n this.emitter = new MastercardEventEmitter();\n this.elemId = null;\n this.formId = null;\n this._hasChanged = false;\n this.componentStyles = JSON.stringify({\n input: {},\n radio: {},\n image: {},\n label: {},\n });\n }\n\n // - Static methods\n /**\n * @static\n * @type {import('./types').ElementExports['observedAttributes']}\n */\n static get observedAttributes() {\n return ['id', 'form-id', 'component-styles'];\n }\n\n /** @type {import('./types').ElementExports['addEventListener']} */\n addEventListener(eventName, callback) {\n this.emitter.on(eventName, callback);\n }\n\n /** @type {import('./types').ElementExports['removeEventListener']} */\n removeEventListener(eventName, callback) {\n this.emitter.off(eventName, callback);\n }\n\n /**\n * @type {import('./types').ElementExports['attributeChangedCallback']}\n */\n async attributeChangedCallback(name, oldValue, newValue) {\n if (name === 'component-styles') {\n this.componentStyles = newValue;\n this._hasChanged = true;\n } else if (name === 'id' && oldValue !== newValue) {\n this.elemId = newValue;\n this._hasChanged = true;\n } else if (name === 'form-id' && oldValue !== newValue) {\n this.formId = newValue;\n this._hasChanged = true;\n }\n if (!this.elemId || !this.formId) {\n return;\n }\n if (this._hasChanged) {\n this._hasChanged = false;\n this.render();\n }\n }\n\n /**\n * @type {import('./types').ElementExports['connectedCallback']}\n */\n connectedCallback() {\n this.formId = this.getAttribute('form-id');\n this.elemId = this.getAttribute('id');\n this.componentStyles = this.getAttribute('component-styles');\n this.appendChild(this.innerFrame);\n\n const src = this.generateIframeURL(this.formId, this.elemId);\n this.innerFrame.setAttribute('src', src);\n Object.assign(this.innerFrame.style, {\n width: '100%',\n height: '100%',\n border: 'none',\n });\n this.registerInputEvents();\n }\n\n /**\n * @type {import('./types').ElementExports['render']}\n */\n async render() {\n while (this.isConnected === false || this.frameReady === false) {\n await sleep();\n }\n if (typeof this.componentStyles !== 'string') {\n return;\n }\n try {\n const eventData = {\n eventType: 'updateStyle',\n data: this.componentStyles,\n };\n this.innerFrame.contentWindow.postMessage(\n eventData,\n appConfig.getFrameOrigin()\n );\n } catch (err) {\n logger.error('Unable to postMessage to inner frame');\n }\n }\n\n /**\n * @interface\n * @param {string} formId\n * @param {string} elemId\n * @returns {string}\n */\n generateIframeURL(formId, elemId) {\n return `${formId}${elemId}`;\n }\n\n registerInputEvents() {\n window.addEventListener(\n 'message',\n (\n /** @type {{ origin: any; data: { eventType: any; elementId: any; }; }} */ evt\n ) => {\n if (evt.origin !== appConfig.getFrameOrigin()) {\n logger.warn('Ignoring message from unknown origin');\n return;\n }\n const eventType = evt.data.eventType;\n switch (eventType) {\n case 'inputReady': {\n this.frameReady = true;\n this.render();\n this.emitter.emit('ready');\n break;\n }\n case 'inputBlur': {\n if (evt.data.elementId !== this.elemId) {\n return;\n }\n this.emitter.emit('blur', evt.data);\n break;\n }\n case 'inputFocus': {\n if (evt.data.elementId !== this.elemId) {\n return;\n }\n this.emitter.emit('focus', evt.data);\n break;\n }\n }\n }\n );\n }\n };\n}\n\nexport { baseInputElement_injector };\n","/**\n * @param {import('./types').ServiceImports} $inject \n * @returns {import('./types').ServiceExports}\n */\nfunction sleep_injector($inject) {\n const { Promise } = $inject;\n /**\n * @param {number} time\n * @returns Promise<void>\n */\n return function sleep(time = 1) {\n return new Promise((/** @type {(arg0: null) => void} */ resolve) => {\n setTimeout(() => {\n resolve(null);\n }, time);\n });\n }\n\n}\n\nexport { sleep_injector };","import { sleep_injector } from './sleep';\nconst $inject = {\n Promise\n};\nexport default sleep_injector($inject)","function mastercardEventEmitter_injector() {\n /** @type {import('./types').MastercardEventEmitter} */\n return class MastercardEventEmitter {\n constructor () {\n this._emitter = new EventTarget();\n this._eventData = new WeakMap();\n this._callbacks = new Map();\n }\n /** @type {import('./types').MastercardEventEmitter['on']} */\n on(eventName, callback) {\n const proxiedEventHandler = (/** @type {object} */ event) => {\n callback(this._eventData.get(event));\n }\n if (!this._callbacks.has(eventName)) {\n this._callbacks.set(eventName, new WeakMap());\n }\n if (this._callbacks.get(eventName).has(callback)) {\n // Don't double register!\n return;\n }\n // This is so we can look up the actual event handler when calling .off\n this._callbacks.get(eventName).set(callback, proxiedEventHandler);\n this._emitter.addEventListener(eventName, proxiedEventHandler);\n }\n\n /** @type {import('./types').MastercardEventEmitter['off']} */\n off(eventName, callback) {\n const proxiedEventHandler = this._callbacks.get(eventName)?.get(callback);\n if (proxiedEventHandler) {\n this._emitter.removeEventListener(eventName, proxiedEventHandler);\n this._callbacks.get(eventName)?.delete(callback);\n }\n }\n\n /** @type {import('./types').MastercardEventEmitter['emit']} */\n emit(eventName, eventData) {\n const newEvent = new Event(eventName);\n this._eventData.set(newEvent, eventData);\n this._emitter.dispatchEvent(newEvent);\n }\n }\n}\nexport { mastercardEventEmitter_injector };","import { mastercardEventEmitter_injector } from './MastercardEventEmitter.class';\nexport default mastercardEventEmitter_injector();","import { baseInputElement_injector } from './BaseInputElement.element';\nimport { MastercardEventEmitter } from '../../core';\nimport appConfig from '../../config/app';\nimport { sleep } from '../../core';\nconst $inject = {\n appConfig,\n HTMLElement,\n document,\n window,\n MastercardEventEmitter,\n logger: console,\n sleep,\n};\n// @ts-ignore\nexport default baseInputElement_injector($inject);\n","/** @param {import('./types').ElementImports} $inject */\nfunction mastercardInput_injector($inject) {\n const { appConfig, BaseInputElement } = $inject;\n\n // @ts-ignore\n return class MastercardInput extends BaseInputElement {\n /**\n * @type {import('./types').ElementExports['generateIframeURL']}\n */\n generateIframeURL(formId, elementId) {\n return `${appConfig.getSDKBase()}/frames/parent/login-forms/${formId}/elements/${elementId}/contents.html`;\n }\n };\n}\n\nexport { mastercardInput_injector };\n","import appConfig from '../../config/app';\nimport BaseInputElement from '../BaseInputElement/index';\nimport { mastercardInput_injector } from './MastercardInput.element';\nimport { sleep } from '../../core';\n\nconst $inject = {\n appConfig,\n BaseInputElement,\n sleep,\n window,\n document,\n logger: console,\n};\n\n// @ts-ignore\nexport default mastercardInput_injector($inject);\n","/** @param {import('./types').ElementImports} $inject */\nfunction mastercardMfaChoice_injector($inject) {\n const { appConfig, BaseInputElement } = $inject;\n\n return class MastercardInput extends BaseInputElement {\n /**\n * @type {import('./types').ElementExports['generateIframeURL']}\n */\n generateIframeURL(formId, elementId) {\n return `${appConfig.getSDKBase()}/frames/parent/mfa/${formId}/elements/${elementId}/contents.html`;\n }\n };\n}\n\nexport { mastercardMfaChoice_injector };\n","import appConfig from '../../config/app';\nimport { mastercardMfaChoice_injector } from './MastercardMFAChoice.element';\nimport { sleep, MastercardEventEmitter } from '../../core';\nimport BaseInputElement from '../BaseInputElement/index';\n\nconst $inject = {\n appConfig,\n BaseInputElement,\n sleep,\n document,\n window,\n logger: console,\n MastercardEventEmitter,\n};\n// @ts-ignore\nexport default mastercardMfaChoice_injector($inject);\n","/**\n * @param {import('./types').ElementImports} $inject\n */\nfunction eventStream_injector($inject) {\n const { appConfig, HTMLElement, logger, document, window } = $inject;\n\n return class MastercardEventStream extends HTMLElement {\n /**\n * @constructor\n * @type {import('./types').ElementExports['constructor']}\n */\n constructor() {\n super();\n this.eventStreamId = null;\n this.formId = null;\n this.events = new EventTarget();\n }\n // - Static methods\n /**\n * @static\n * @type {import('./types').ElementExports['observedAttributes']}\n */\n static get observedAttributes() {\n // @ts-ignore\n return ['event-stream-id', 'form-id'];\n }\n\n // - Lifecycle Events\n /**\n * @type {import('./types').ElementExports['connectedCallback']}\n */\n connectedCallback() {\n const $elem = this;\n if (!this.eventStreamId) {\n this.eventStreamId = $elem.getAttribute('event-stream-id');\n }\n if (!this.formId && $elem.getAttribute('form-id')) {\n this.formId = $elem.getAttribute('form-id');\n } else if (!this.formId) {\n try {\n // This doesn't exist in the oauth rediretion flow\n this.formId = $elem.closest('mastercard-form').getAttribute('id');\n } catch (err) {\n this.formId = 'default';\n }\n }\n this.iframe = document.createElement('iframe');\n $elem.append(this.iframe);\n $elem.style.display = 'none';\n if (this.eventStreamId) {\n this._bindFrameSource();\n this._registerEventListener();\n }\n }\n /**\n * @type {import('./types').ElementExports['attributeChangedCallback']}\n */\n attributeChangedCallback(name, _oldValue, newValue) {\n if (!this.isConnected) {\n return;\n }\n if (name === 'event-stream-id') {\n this.eventStreamId = newValue;\n this._bindFrameSource();\n this._registerEventListener();\n }\n }\n\n // - Custom Methods\n\n /**\n * @access private\n * @type {import('./types').ElementExports['_bindFrameSource']}\n */\n _bindFrameSource() {\n const frameSource = `${appConfig.getSDKBase()}/frames/parent/forms/event-stream.html?event-stream-id=${\n this.eventStreamId\n }&form-id=${this.formId}`;\n // @ts-ignore\n this.iframe.setAttribute('src', frameSource);\n }\n\n /**\n * @access private\n * @type {import('./types').ElementExports['_registerEventListener']}\n */\n _registerEventListener() {\n // @ts-ignore\n window.addEventListener('message', (event) => {\n if (event.origin !== appConfig.getFrameOrigin()) {\n logger.warn(`Skipping message from ${event.origin}`);\n return;\n }\n /*\n There is some conversion that needs to happen here to make this event not look really messy.\n First, we create a local event (instead of an SSE event), then we use the eventType from the\n payload to determine the kind of event to send. Then we add the id of the event. Then we clear\n out the payload of those values so we don't have duplicates\n */\n const newEvent = new Event(event.data.eventType);\n // @ts-ignore\n newEvent.data = (event.data || {}).data;\n // @ts-ignore\n newEvent.id = (event.data || {}).id;\n try {\n // @ts-ignore\n delete newEvent.data.isPublic;\n // @ts-ignore\n delete newEvent.data.eventType;\n // @ts-ignore\n delete newEvent.data.id;\n } catch (err) {\n logger.warn(err);\n }\n this.events.dispatchEvent(newEvent);\n });\n }\n\n /**\n * @method\n * @type {import('./types').ElementExports['_isValidEventStreamId']}\n */\n _isValidEventStreamId(id) {\n const isValid =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return isValid.test(id);\n }\n };\n}\n\nexport { eventStream_injector };\n","import { eventStream_injector } from './EventStream.element';\nimport appConfig from '../../config/app';\n\nconst $inject = {\n appConfig,\n // From global browser scope\n HTMLElement,\n document,\n window,\n logger: console,\n};\n\nexport default eventStream_injector($inject);\n","import MastercardForm from './elements/MastercardForm';\nimport MastercardInput from './elements/MastercardInput';\nimport MastercardMFAChoice from './elements/MastercardMFAChoice';\nimport MastercardEventStream from './elements/EventStream';\nimport appConfig from './config/app';\n\n// @ts-ignore\ncustomElements.define('mastercard-form', MastercardForm);\n// @ts-ignore\ncustomElements.define('mastercard-input', MastercardInput);\n// @ts-ignore\ncustomElements.define('mastercard-mfa-choice', MastercardMFAChoice);\n// @ts-ignore\ncustomElements.define('mastercard-event-stream', MastercardEventStream);\n\nexport { appConfig };"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","mastercardForm_injector","$inject","appConfig","HTMLElement","crypto","logger","document","MutationObserver","constructor","super","this","eventStream","events","connectedCallback","existingEventStream","querySelector","getAttribute","length","streamId","createElement","setAttribute","appendChild","observer","Array","from","querySelectorAll","filter","elem","id","forEach","observe","subtree","childList","characterData","onSubmit","event","preventDefault","submit","requestId","randomUUID","targetOrigin","getSDKBase","message","formId","eventType","eventStreamId","contentWindow","postMessage","warn","appConfig_injector","APP_SDK_BASE","sdkBase","setSDKBase","newBase","URL","let","base","toString","charAt","substring","getFrameOrigin","origin","console","baseInputElement_injector","window","MastercardEventEmitter","sleep","frameReady","innerFrame","emitter","elemId","_hasChanged","componentStyles","JSON","stringify","input","radio","image","label","addEventListener","eventName","callback","on","removeEventListener","off","name","oldValue","newValue","render","src","generateIframeURL","assign","style","width","height","border","registerInputEvents","isConnected","await","eventData","data","err","error","evt","emit","elementId","sleep_injector","Promise","time","setTimeout","resolve","mastercardEventEmitter_injector","_emitter","EventTarget","_eventData","WeakMap","_callbacks","Map","proxiedEventHandler","has","set","delete","newEvent","Event","dispatchEvent","mastercardInput_injector","BaseInputElement","mastercardMfaChoice_injector","eventStream_injector","$elem","closest","iframe","append","display","_bindFrameSource","_registerEventListener","attributeChangedCallback","_oldValue","frameSource","isPublic","_isValidEventStreamId","test","customElements","define","MastercardForm","MastercardInput","MastercardMFAChoice"],"sourceRoot":""}