{"version":3,"sources":["webpack:///songbird.js","webpack:///webpack/bootstrap 0a125400b09de2105a63?9504","webpack:///./main.js?7d0b","webpack:///./polyfill/polyfiller.js?4b35","webpack:///./models/cache.js?92e0","webpack:///./libraries/setupLogger.js?6a5a"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","Object","prototype","hasOwnProperty","shift","19","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","crossOrigin","src","p","appendChild","m","c","cc","configurationQueue","continueQueue","completeQueue","offQueue","onQueue","setupQueue","startQueue","triggerQueue","configure","itemToConfigure","name","arguments","setup","message","start","continue","on","eventName","trigger","off","complete","Cardinal","onerror","polyfill","pollyFillerLogger","require","_","activeEvents","active","browserUtility","cache","configs","CONST_ERRORS","generalUtility","genericEvents","htmlUtility","logger","endpointMonitor","farnsworthLabs","log","getLoggerInstance","passiveEvents","passive","RSVP","setupHandler","exectionQueue","addToLoggerCollection","error","publish","then","handleError","GENERAL","NUMBER","DESCRIPTION","info","getSystemConfig","version","init","partial","subscribe","paymentType","toUpperCase","this","removeEvent","setupSubscriptions","browser","getBrowserDetails","each","queuedEvent","processSetup","namespace","initialize","captureTiming","getCurrentScript","SetupLogger","polys","JSON","performance","bind","filter","publicMethods","completedCallback","isFinished","debug","Function","Array","key","windowVariable","apiId","bin","deviceFingerprinting","shouldRunFingerprinting","urls","base","profileBin","formFields","jwtOrderObject","merchantJwt","songbirdPostmessageValidation","orgUnitId","eventCompleted","modulesLoaded","storage","tid","transactionFlow","timers","browserRender","hostedFields","postMessageWhiteList","Logger","logNamespace","Namespace","logQueue","level","getLogQueue","getNamespace","trace","warn"],"mappings":"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","file":"songbird.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"songbirdLoader\"];\n/******/ \twindow[\"songbirdLoader\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t19:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/ \t\t\tscript.crossOrigin = 'anonymous';\n/******/ \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + \"0a125400b09de2105a63\" + \".songbird.js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"https://includestest.ccdc02.com/cardinalcruise/v1/0a125400b09de2105a63/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// INSIGHT - We pass in window and undefined to allow minifiers to shorten the vars\r\n\t(function (window, undefined) {\r\n\t var cc,\r\n\t configurationQueue = [],\r\n\t continueQueue = [],\r\n\t completeQueue = [],\r\n\t offQueue = [],\r\n\t onQueue = [],\r\n\t setupQueue = [],\r\n\t startQueue = [],\r\n\t triggerQueue = [];\r\n\t\r\n\t // Create stub methods for the time it takes to download the first chunk\r\n\t cc = {\r\n\t configure: function (itemToConfigure) {\r\n\t configurationQueue.push({\r\n\t name: itemToConfigure,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t setup: function (message) {\r\n\t setupQueue.push({\r\n\t name: message,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t start: function (message) {\r\n\t startQueue.push({\r\n\t name: message,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t continue: function (message) {\r\n\t continueQueue.push({\r\n\t name: message,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t on: function (eventName) {\r\n\t onQueue.push({\r\n\t name: eventName,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t trigger: function (eventName) {\r\n\t triggerQueue.push({\r\n\t name: eventName,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t off: function (eventName) {\r\n\t offQueue.push({\r\n\t name: eventName,\r\n\t arguments: arguments\r\n\t });\r\n\t },\r\n\t complete: function (eventName) {\r\n\t completeQueue.push({\r\n\t name: eventName,\r\n\t arguments: arguments\r\n\t });\r\n\t }\r\n\t };\r\n\t window.Cardinal = cc;\r\n\t\r\n\t // INSIGHT - JSN Logger will attempt to replace onerror event if no event currently is bound to it. This can cause very odd behavoir on a merchants site that has script errors outside of songbird. JSN will not bind to onerror if a function is already bound to it though.\r\n\t if (window.onerror === undefined || window.onerror === null) {\r\n\t window.onerror = function () { return false; }\r\n\t }\r\n\t\r\n\t __webpack_require__(2).polyfill(function (pollyFillerLogger) {\r\n\t __webpack_require__.e/* nsure */(5, function (require) {\r\n\t var _ = __webpack_require__(12),\r\n\t activeEvents = __webpack_require__(14).active,\r\n\t browserUtility = __webpack_require__(23),\r\n\t cache = __webpack_require__(3),\r\n\t configs = __webpack_require__(24),\r\n\t CONST_ERRORS = __webpack_require__(31),\r\n\t generalUtility = __webpack_require__(32),\r\n\t genericEvents = __webpack_require__(58),\r\n\t htmlUtility = __webpack_require__(67),\r\n\t logger = __webpack_require__(15),\r\n\t endpointMonitor = __webpack_require__(63),\r\n\t farnsworthLabs = __webpack_require__(113),\r\n\t log = logger.getLoggerInstance('Base.Main'),\r\n\t passiveEvents = __webpack_require__(14).passive,\r\n\t RSVP = __webpack_require__(18),\r\n\t setupHandler = __webpack_require__(114);\r\n\t\r\n\t var exectionQueue = {\r\n\t configurationQueue: configurationQueue,\r\n\t onQueue: onQueue,\r\n\t startQueue: startQueue,\r\n\t continueQueue: continueQueue\r\n\t };\r\n\t\r\n\t logger.addToLoggerCollection(pollyFillerLogger);\r\n\t\r\n\t try {\r\n\t RSVP.on('error', function (error) {\r\n\t activeEvents.publish('error.fatal')\r\n\t .then(function () {\r\n\t generalUtility.handleError(error, CONST_ERRORS.GENERAL.NUMBER, CONST_ERRORS.GENERAL.DESCRIPTION);\r\n\t });\r\n\t });\r\n\t\r\n\t log.info(\"Using Songbird.js v\" + configs.getSystemConfig().version);\r\n\t\r\n\t // By picking test groups as early as possible we allow the test group picked to be overridden by events. This allows\r\n\t // us to create tests that force a specific test group\r\n\t farnsworthLabs.init();\r\n\t\r\n\t // Overwrite stubs for full implementation\r\n\t cc.setup = _.partial(activeEvents.publish, 'setup');\r\n\t cc.on = passiveEvents.subscribe;\r\n\t cc.start = function (paymentType) {\r\n\t // Modify the first argument to include the start namespace for internal use\r\n\t arguments[0] = 'start.' + paymentType.toUpperCase();\r\n\t activeEvents.publish.apply(this, arguments);\r\n\t };\r\n\t cc.continue = function (paymentType) {\r\n\t // Modify the first argument to include the continue namespace for internal use\r\n\t arguments[0] = 'continue.' + paymentType.toUpperCase();\r\n\t activeEvents.publish.apply(this, arguments);\r\n\t };\r\n\t cc.complete = _.partial(activeEvents.publish, 'payments.completed');\r\n\t cc.trigger = activeEvents.publish;\r\n\t cc.off = passiveEvents.removeEvent;\r\n\t genericEvents.setupSubscriptions();\r\n\t\r\n\t cache.browser = browserUtility.getBrowserDetails();\r\n\t\r\n\t _.each(triggerQueue, function (queuedEvent) {\r\n\t activeEvents.publish.apply(this, queuedEvent.arguments);\r\n\t });\r\n\t\r\n\t // Create a 'setup' event listener\r\n\t activeEvents.subscribe('setup', _.partial(setupHandler.processSetup, exectionQueue));\r\n\t\r\n\t // If setup was called with the stub, we need to manually call it for them\r\n\t if (setupQueue.length > 0) {\r\n\t activeEvents.publish('setup', setupQueue[0].arguments[0], setupQueue[0].arguments[1]);\r\n\t }\r\n\t\r\n\t cache.namespace = cc;\r\n\t cache.window = window; \r\n\t\r\n\t endpointMonitor.initialize(window);\r\n\t\r\n\t endpointMonitor.captureTiming(htmlUtility.getCurrentScript());\r\n\t } catch (error) {\r\n\t log.error('Fatal Exception while processing: ' + (error.message !== undefined ? error.message : error));\r\n\t generalUtility.handleError(error, CONST_ERRORS.GENERAL.NUMBER, CONST_ERRORS.GENERAL.DESCRIPTION);\r\n\t }\r\n\t });\r\n\t });\r\n\t})(window);\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\r\n\t* Simple Utility to load any needed polyfills\r\n\t**/\r\n\tvar cache = __webpack_require__(3),\r\n\t SetupLogger = __webpack_require__(4),\r\n\t log = new SetupLogger('Base.Polyfiller');\r\n\t\r\n\tvar polys = {\r\n\t JSON: false,\r\n\t performance: false,\r\n\t bind: false,\r\n\t filter: false\r\n\t},\r\n\t callback;\r\n\t\r\n\t// INSIGHT - Webpack has a lot of trouble in doing dynamic code splitting. Due to this we have\r\n\t// to polyfill each item individually and cannot do it programatically.\r\n\tvar publicMethods = {\r\n\t polyfill: function (completedCallback) {\r\n\t // set callback to notify caller that we're done loading polyfills\r\n\t callback = completedCallback;\r\n\t\r\n\t if (!('JSON' in cache.window)) {\r\n\t log.debug('Detected JSON missing, loading polyfill');\r\n\t __webpack_require__.e/* nsure */(1, function (require) {\r\n\t __webpack_require__(5);\r\n\t log.debug('JSON polyfill loaded');\r\n\t\r\n\t polys.JSON = true;\r\n\t publicMethods.isFinished();\r\n\t\r\n\t });\r\n\t } else {\r\n\t polys.JSON = true;\r\n\t publicMethods.isFinished();\r\n\t }\r\n\t\r\n\t // NEXTREV: There is a bug that is preventing this polyfill from tracking the correct elapsed\r\n\t // time. More research needs to be done to understand why.\r\n\t if (!('performance' in cache.window && 'mark' in cache.window.performance)) {\r\n\t log.debug('Detected performance library missing in browser - loading polyfill');\r\n\t __webpack_require__.e/* nsure */(2, function (require) {\r\n\t __webpack_require__(8);\r\n\t\r\n\t log.debug('performance polyfill loaded');\r\n\t\r\n\t polys.performance = true;\r\n\t publicMethods.isFinished();\r\n\t\r\n\t });\r\n\t } else {\r\n\t polys.performance = true;\r\n\t publicMethods.isFinished();\r\n\t }\r\n\t\r\n\t if (!Function.prototype.bind) {\r\n\t log.debug(\"Detected bind is missing - loading polyfill\");\r\n\t\r\n\t __webpack_require__.e/* nsure */(3, function (require) {\r\n\t __webpack_require__(10)();\r\n\t log.debug(\"bind polyfill loaded\");\r\n\t\r\n\t polys.bind = true;\r\n\t publicMethods.isFinished();\r\n\t });\r\n\t } else {\r\n\t polys.bind = true;\r\n\t publicMethods.isFinished();\r\n\t }\r\n\t\r\n\t if (!Array.prototype.filter) {\r\n\t log.debug(\"Detected filter is missing - loading polyfill\");\r\n\t\r\n\t __webpack_require__.e/* nsure */(4, function (require) {\r\n\t __webpack_require__(11)();\r\n\t log.debug(\"filter polyfill loaded\");\r\n\t\r\n\t polys.filter = true;\r\n\t publicMethods.isFinished();\r\n\t });\r\n\t } else {\r\n\t polys.filter = true;\r\n\t publicMethods.isFinished();\r\n\t }\r\n\t },\r\n\t isFinished: function () {\r\n\t for (var key in polys) {\r\n\t if (polys.hasOwnProperty(key)) {\r\n\t if (!polys[key]) {\r\n\t return false;\r\n\t }\r\n\t }\r\n\t }\r\n\t // All polyfills are marked as completed\r\n\t callback(log);\r\n\t }\r\n\t};\r\n\t\r\n\tmodule.exports = publicMethods;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/**\r\n\t * To support server side regression tests we need to make the window var a bit flexible\r\n\t */\r\n\tvar windowVariable;\r\n\ttry {\r\n\t // Browser enviroment\r\n\t windowVariable = window;\r\n\t} catch (error) {\r\n\t // Node environment\r\n\t windowVariable = this;\r\n\t}\r\n\t\r\n\tmodule.exports = {\r\n\t apiId: undefined,\r\n\t bin: undefined,\r\n\t deviceFingerprinting: {\r\n\t shouldRunFingerprinting: false,\r\n\t urls: {\r\n\t base: undefined,\r\n\t browser: undefined,\r\n\t profileBin: undefined\r\n\t }\r\n\t },\r\n\t farnsworthLabs: {},\r\n\t formFields: {}, \r\n\t jwtOrderObject: undefined,\r\n\t merchantJwt: undefined,\r\n\t songbirdPostmessageValidation: false,\r\n\t message: undefined,\r\n\t orgUnitId: undefined,\r\n\t setup: {\r\n\t eventCompleted: false,\r\n\t modulesLoaded: undefined\r\n\t },\r\n\t /**\r\n\t * Fallback memory storage to use when cookies and local storage are disabled\r\n\t */\r\n\t storage: {}, \r\n\t tid: undefined,\r\n\t transactionFlow: undefined,\r\n\t timers: {\r\n\t browserRender: null,\r\n\t },\r\n\t urls: {\r\n\t hostedFields: undefined,\r\n\t postMessageWhiteList: []\r\n\t },\r\n\t window: windowVariable\r\n\t};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\tfunction Logger(logNamespace) {\r\n\t\tthis.Namespace = logNamespace;\r\n\t\tthis.logQueue = [];\r\n\t\tthis.log = function(level, message){\r\n\t\t\tif(!level){\r\n\t\t\t\tlevel = 'debug';\r\n\t\t\t}\r\n\t\t\tthis.logQueue.push({\r\n\t\t\t\ttype: level,\r\n\t\t\t\tmessage: message\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\t\r\n\tLogger.prototype.getLogQueue = function(){\r\n\t\treturn this.logQueue;\r\n\t};\r\n\t\r\n\tLogger.prototype.getNamespace = function(){\r\n\t\treturn this.Namespace;\r\n\t};\r\n\t\r\n\tLogger.prototype.trace = function (message) {\r\n\t\tthis.log('trace', message);\r\n\t};\r\n\t\r\n\tLogger.prototype.debug = function (message) {\r\n\t\tthis.log('debug', message);\r\n\t};\r\n\t\r\n\tLogger.prototype.info = function (message) {\r\n\t\tthis.log('info', message);\r\n\t};\r\n\t\r\n\tLogger.prototype.warn = function (message) {\r\n\t\tthis.log('warn', message);\r\n\t};\r\n\t\r\n\tLogger.prototype.error = function (message) {\r\n\t\tthis.log('error', message);\r\n\t};\r\n\t\r\n\tmodule.exports = Logger;\r\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// songbird.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"songbirdLoader\"];\n \twindow[\"songbirdLoader\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t19:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n \t\t\tscript.crossOrigin = 'anonymous';\n \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + \"0a125400b09de2105a63\" + \".songbird.js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://includestest.ccdc02.com/cardinalcruise/v1/0a125400b09de2105a63/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0a125400b09de2105a63","// INSIGHT - We pass in window and undefined to allow minifiers to shorten the vars\r\n(function (window, undefined) {\r\n var cc,\r\n configurationQueue = [],\r\n continueQueue = [],\r\n completeQueue = [],\r\n offQueue = [],\r\n onQueue = [],\r\n setupQueue = [],\r\n startQueue = [],\r\n triggerQueue = [];\r\n\r\n // Create stub methods for the time it takes to download the first chunk\r\n cc = {\r\n configure: function (itemToConfigure) {\r\n configurationQueue.push({\r\n name: itemToConfigure,\r\n arguments: arguments\r\n });\r\n },\r\n setup: function (message) {\r\n setupQueue.push({\r\n name: message,\r\n arguments: arguments\r\n });\r\n },\r\n start: function (message) {\r\n startQueue.push({\r\n name: message,\r\n arguments: arguments\r\n });\r\n },\r\n continue: function (message) {\r\n continueQueue.push({\r\n name: message,\r\n arguments: arguments\r\n });\r\n },\r\n on: function (eventName) {\r\n onQueue.push({\r\n name: eventName,\r\n arguments: arguments\r\n });\r\n },\r\n trigger: function (eventName) {\r\n triggerQueue.push({\r\n name: eventName,\r\n arguments: arguments\r\n });\r\n },\r\n off: function (eventName) {\r\n offQueue.push({\r\n name: eventName,\r\n arguments: arguments\r\n });\r\n },\r\n complete: function (eventName) {\r\n completeQueue.push({\r\n name: eventName,\r\n arguments: arguments\r\n });\r\n }\r\n };\r\n window.Cardinal = cc;\r\n\r\n // INSIGHT - JSN Logger will attempt to replace onerror event if no event currently is bound to it. This can cause very odd behavoir on a merchants site that has script errors outside of songbird. JSN will not bind to onerror if a function is already bound to it though.\r\n if (window.onerror === undefined || window.onerror === null) {\r\n window.onerror = function () { return false; }\r\n }\r\n\r\n require('./polyfill/polyfiller').polyfill(function (pollyFillerLogger) {\r\n require.ensure(['./polyfill/polyfiller'], function (require) {\r\n var _ = require('lodash'),\r\n activeEvents = require('./events/eventObserver').active,\r\n browserUtility = require('./utilities/browserUtility'),\r\n cache = require('./models/cache'),\r\n configs = require('./config/configManager'),\r\n CONST_ERRORS = require('./constants/errors'),\r\n generalUtility = require('./utilities/generalUtility'),\r\n genericEvents = require('./events/genericEvents'),\r\n htmlUtility = require('./utilities/htmlUtility'),\r\n logger = require('./libraries/logger'),\r\n endpointMonitor = require('./libraries/endpointMonitor'),\r\n farnsworthLabs = require('./libraries/farnsworthLabs'),\r\n log = logger.getLoggerInstance('Base.Main'),\r\n passiveEvents = require('./events/eventObserver').passive,\r\n RSVP = require('rsvp'),\r\n setupHandler = require('./events/setupHandler');\r\n\r\n var exectionQueue = {\r\n configurationQueue: configurationQueue,\r\n onQueue: onQueue,\r\n startQueue: startQueue,\r\n continueQueue: continueQueue\r\n };\r\n\r\n logger.addToLoggerCollection(pollyFillerLogger);\r\n\r\n try {\r\n RSVP.on('error', function (error) {\r\n activeEvents.publish('error.fatal')\r\n .then(function () {\r\n generalUtility.handleError(error, CONST_ERRORS.GENERAL.NUMBER, CONST_ERRORS.GENERAL.DESCRIPTION);\r\n });\r\n });\r\n\r\n log.info(\"Using Songbird.js v\" + configs.getSystemConfig().version);\r\n\r\n // By picking test groups as early as possible we allow the test group picked to be overridden by events. This allows\r\n // us to create tests that force a specific test group\r\n farnsworthLabs.init();\r\n\r\n // Overwrite stubs for full implementation\r\n cc.setup = _.partial(activeEvents.publish, 'setup');\r\n cc.on = passiveEvents.subscribe;\r\n cc.start = function (paymentType) {\r\n // Modify the first argument to include the start namespace for internal use\r\n arguments[0] = 'start.' + paymentType.toUpperCase();\r\n activeEvents.publish.apply(this, arguments);\r\n };\r\n cc.continue = function (paymentType) {\r\n // Modify the first argument to include the continue namespace for internal use\r\n arguments[0] = 'continue.' + paymentType.toUpperCase();\r\n activeEvents.publish.apply(this, arguments);\r\n };\r\n cc.complete = _.partial(activeEvents.publish, 'payments.completed');\r\n cc.trigger = activeEvents.publish;\r\n cc.off = passiveEvents.removeEvent;\r\n genericEvents.setupSubscriptions();\r\n\r\n cache.browser = browserUtility.getBrowserDetails();\r\n\r\n _.each(triggerQueue, function (queuedEvent) {\r\n activeEvents.publish.apply(this, queuedEvent.arguments);\r\n });\r\n\r\n // Create a 'setup' event listener\r\n activeEvents.subscribe('setup', _.partial(setupHandler.processSetup, exectionQueue));\r\n\r\n // If setup was called with the stub, we need to manually call it for them\r\n if (setupQueue.length > 0) {\r\n activeEvents.publish('setup', setupQueue[0].arguments[0], setupQueue[0].arguments[1]);\r\n }\r\n\r\n cache.namespace = cc;\r\n cache.window = window; \r\n\r\n endpointMonitor.initialize(window);\r\n\r\n endpointMonitor.captureTiming(htmlUtility.getCurrentScript());\r\n } catch (error) {\r\n log.error('Fatal Exception while processing: ' + (error.message !== undefined ? error.message : error));\r\n generalUtility.handleError(error, CONST_ERRORS.GENERAL.NUMBER, CONST_ERRORS.GENERAL.DESCRIPTION);\r\n }\r\n }, 'Framework - Main Package');\r\n });\r\n})(window);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./main.js\n// module id = 1\n// module chunks = 0 19 20","/**\r\n* Simple Utility to load any needed polyfills\r\n**/\r\nvar cache = require('../models/cache'),\r\n SetupLogger = require('../libraries/setupLogger'),\r\n log = new SetupLogger('Base.Polyfiller');\r\n\r\nvar polys = {\r\n JSON: false,\r\n performance: false,\r\n bind: false,\r\n filter: false\r\n},\r\n callback;\r\n\r\n// INSIGHT - Webpack has a lot of trouble in doing dynamic code splitting. Due to this we have\r\n// to polyfill each item individually and cannot do it programatically.\r\nvar publicMethods = {\r\n polyfill: function (completedCallback) {\r\n // set callback to notify caller that we're done loading polyfills\r\n callback = completedCallback;\r\n\r\n if (!('JSON' in cache.window)) {\r\n log.debug('Detected JSON missing, loading polyfill');\r\n require.ensure([], function (require) {\r\n require('JSON2');\r\n log.debug('JSON polyfill loaded');\r\n\r\n polys.JSON = true;\r\n publicMethods.isFinished();\r\n\r\n }, 'Polyfill - JSON');\r\n } else {\r\n polys.JSON = true;\r\n publicMethods.isFinished();\r\n }\r\n\r\n // NEXTREV: There is a bug that is preventing this polyfill from tracking the correct elapsed\r\n // time. More research needs to be done to understand why.\r\n if (!('performance' in cache.window && 'mark' in cache.window.performance)) {\r\n log.debug('Detected performance library missing in browser - loading polyfill');\r\n require.ensure([], function (require) {\r\n require('usertiming');\r\n\r\n log.debug('performance polyfill loaded');\r\n\r\n polys.performance = true;\r\n publicMethods.isFinished();\r\n\r\n }, 'Polyfill - usertiming');\r\n } else {\r\n polys.performance = true;\r\n publicMethods.isFinished();\r\n }\r\n\r\n if (!Function.prototype.bind) {\r\n log.debug(\"Detected bind is missing - loading polyfill\");\r\n\r\n require.ensure([], function (require) {\r\n require('./bind')();\r\n log.debug(\"bind polyfill loaded\");\r\n\r\n polys.bind = true;\r\n publicMethods.isFinished();\r\n }, 'Polyfill - bind');\r\n } else {\r\n polys.bind = true;\r\n publicMethods.isFinished();\r\n }\r\n\r\n if (!Array.prototype.filter) {\r\n log.debug(\"Detected filter is missing - loading polyfill\");\r\n\r\n require.ensure([], function (require) {\r\n require('./filter')();\r\n log.debug(\"filter polyfill loaded\");\r\n\r\n polys.filter = true;\r\n publicMethods.isFinished();\r\n }, 'Polyfill - filter');\r\n } else {\r\n polys.filter = true;\r\n publicMethods.isFinished();\r\n }\r\n },\r\n isFinished: function () {\r\n for (var key in polys) {\r\n if (polys.hasOwnProperty(key)) {\r\n if (!polys[key]) {\r\n return false;\r\n }\r\n }\r\n }\r\n // All polyfills are marked as completed\r\n callback(log);\r\n }\r\n};\r\n\r\nmodule.exports = publicMethods;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./polyfill/polyfiller.js\n// module id = 2\n// module chunks = 0 19 20","/**\r\n * To support server side regression tests we need to make the window var a bit flexible\r\n */\r\nvar windowVariable;\r\ntry {\r\n // Browser enviroment\r\n windowVariable = window;\r\n} catch (error) {\r\n // Node environment\r\n windowVariable = this;\r\n}\r\n\r\nmodule.exports = {\r\n apiId: undefined,\r\n bin: undefined,\r\n deviceFingerprinting: {\r\n shouldRunFingerprinting: false,\r\n urls: {\r\n base: undefined,\r\n browser: undefined,\r\n profileBin: undefined\r\n }\r\n },\r\n farnsworthLabs: {},\r\n formFields: {}, \r\n jwtOrderObject: undefined,\r\n merchantJwt: undefined,\r\n songbirdPostmessageValidation: false,\r\n message: undefined,\r\n orgUnitId: undefined,\r\n setup: {\r\n eventCompleted: false,\r\n modulesLoaded: undefined\r\n },\r\n /**\r\n * Fallback memory storage to use when cookies and local storage are disabled\r\n */\r\n storage: {}, \r\n tid: undefined,\r\n transactionFlow: undefined,\r\n timers: {\r\n browserRender: null,\r\n },\r\n urls: {\r\n hostedFields: undefined,\r\n postMessageWhiteList: []\r\n },\r\n window: windowVariable\r\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./models/cache.js\n// module id = 3\n// module chunks = 0 19 20","function Logger(logNamespace) {\r\n\tthis.Namespace = logNamespace;\r\n\tthis.logQueue = [];\r\n\tthis.log = function(level, message){\r\n\t\tif(!level){\r\n\t\t\tlevel = 'debug';\r\n\t\t}\r\n\t\tthis.logQueue.push({\r\n\t\t\ttype: level,\r\n\t\t\tmessage: message\r\n\t\t});\r\n\t};\r\n}\r\n\r\nLogger.prototype.getLogQueue = function(){\r\n\treturn this.logQueue;\r\n};\r\n\r\nLogger.prototype.getNamespace = function(){\r\n\treturn this.Namespace;\r\n};\r\n\r\nLogger.prototype.trace = function (message) {\r\n\tthis.log('trace', message);\r\n};\r\n\r\nLogger.prototype.debug = function (message) {\r\n\tthis.log('debug', message);\r\n};\r\n\r\nLogger.prototype.info = function (message) {\r\n\tthis.log('info', message);\r\n};\r\n\r\nLogger.prototype.warn = function (message) {\r\n\tthis.log('warn', message);\r\n};\r\n\r\nLogger.prototype.error = function (message) {\r\n\tthis.log('error', message);\r\n};\r\n\r\nmodule.exports = Logger;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./libraries/setupLogger.js\n// module id = 4\n// module chunks = 0 19 20"],"sourceRoot":""}