{"version":3,"file":"chunk.26fb4ba55125815a8989.js","mappings":"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","sources":["webpack://www.bowling.com/./node_modules/braintree-web/dist/browser/index.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.braintree = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i -1;\n}\nfunction isFacebook(ua) {\n return ua.indexOf(\"FBAN\") > -1;\n}\nmodule.exports = function isIosSafari(ua) {\n ua = ua || window.navigator.userAgent;\n return (isIos(ua) &&\n isWebkit(ua) &&\n !isIosChrome(ua) &&\n !isIosFirefox(ua) &&\n !isFacebook(ua));\n};\n\n},{\"./is-ios\":16,\"./is-ios-firefox\":11}],14:[function(_dereq_,module,exports){\n\"use strict\";\nvar isIos = _dereq_(\"./is-ios\");\nvar isIosGoogleSearchApp = _dereq_(\"./is-ios-google-search-app\");\nmodule.exports = function isIosWebview(ua) {\n ua = ua || window.navigator.userAgent;\n if (isIos(ua)) {\n // The Google Search iOS app is technically a webview and doesn't support popups.\n if (isIosGoogleSearchApp(ua)) {\n return true;\n }\n // Historically, a webview could be identified by the presence of AppleWebKit and _no_ presence of Safari after.\n return /.+AppleWebKit(?!.*Safari)/i.test(ua);\n }\n return false;\n};\n\n},{\"./is-ios\":16,\"./is-ios-google-search-app\":12}],15:[function(_dereq_,module,exports){\n\"use strict\";\nvar isIosWebview = _dereq_(\"./is-ios-webview\");\nmodule.exports = function isIosWKWebview(ua, statusBarVisible) {\n statusBarVisible =\n typeof statusBarVisible !== \"undefined\"\n ? statusBarVisible\n : window.statusbar.visible;\n return isIosWebview(ua) && statusBarVisible;\n};\n\n},{\"./is-ios-webview\":14}],16:[function(_dereq_,module,exports){\n\"use strict\";\nvar isIpadOS = _dereq_(\"./is-ipados\");\nmodule.exports = function isIos(ua, checkIpadOS, document) {\n if (checkIpadOS === void 0) { checkIpadOS = true; }\n ua = ua || window.navigator.userAgent;\n var iOsTest = /iPhone|iPod|iPad/i.test(ua);\n return checkIpadOS ? iOsTest || isIpadOS(ua, document) : iOsTest;\n};\n\n},{\"./is-ipados\":17}],17:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isIpadOS(ua, document) {\n ua = ua || window.navigator.userAgent;\n document = document || window.document;\n // \"ontouchend\" is used to determine if a browser is on an iPad, otherwise\n // user-agents for iPadOS behave/identify as a desktop browser\n return /Mac|iPad/i.test(ua) && \"ontouchend\" in document;\n};\n\n},{}],18:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isOpera(ua) {\n ua = ua || window.navigator.userAgent;\n return (ua.indexOf(\"OPR/\") !== -1 ||\n ua.indexOf(\"Opera/\") !== -1 ||\n ua.indexOf(\"OPT/\") !== -1);\n};\n\n},{}],19:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isSamsungBrowser(ua) {\n ua = ua || window.navigator.userAgent;\n return /SamsungBrowser/i.test(ua);\n};\n\n},{}],20:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function isSilk(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"Silk/\") !== -1;\n};\n\n},{}],21:[function(_dereq_,module,exports){\n\"use strict\";\nvar MINIMUM_SUPPORTED_CHROME_IOS_VERSION = 48;\nvar isAndroid = _dereq_(\"./is-android\");\nvar isIosFirefox = _dereq_(\"./is-ios-firefox\");\nvar isIosWebview = _dereq_(\"./is-ios-webview\");\nvar isChrome = _dereq_(\"./is-chrome\");\nvar isSamsungBrowser = _dereq_(\"./is-samsung\");\nvar isDuckDuckGo = _dereq_(\"./is-duckduckgo\");\nfunction isUnsupportedIosChrome(ua) {\n ua = ua || window.navigator.userAgent;\n var match = ua.match(/CriOS\\/(\\d+)\\./);\n if (!match) {\n return false;\n }\n var version = parseInt(match[1], 10);\n return version < MINIMUM_SUPPORTED_CHROME_IOS_VERSION;\n}\nfunction isOperaMini(ua) {\n ua = ua || window.navigator.userAgent;\n return ua.indexOf(\"Opera Mini\") > -1;\n}\nfunction isAndroidWebview(ua) {\n var androidWebviewRegExp = /Version\\/[\\d.]+/i;\n ua = ua || window.navigator.userAgent;\n if (isAndroid(ua)) {\n return (androidWebviewRegExp.test(ua) && !isOperaMini(ua) && !isDuckDuckGo(ua));\n }\n return false;\n}\nfunction isOldSamsungBrowserOrSamsungWebview(ua) {\n return !isChrome(ua) && !isSamsungBrowser(ua) && /samsung/i.test(ua);\n}\nmodule.exports = function supportsPopups(ua) {\n ua = ua || window.navigator.userAgent;\n return !(isIosWebview(ua) ||\n isIosFirefox(ua) ||\n isAndroidWebview(ua) ||\n isOperaMini(ua) ||\n isUnsupportedIosChrome(ua) ||\n isOldSamsungBrowserOrSamsungWebview(ua));\n};\n\n},{\"./is-android\":4,\"./is-chrome\":6,\"./is-duckduckgo\":7,\"./is-ios-firefox\":11,\"./is-ios-webview\":14,\"./is-samsung\":19}],22:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-android\");\n\n},{\"./dist/is-android\":4}],23:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-chrome-os\");\n\n},{\"./dist/is-chrome-os\":5}],24:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-chrome\");\n\n},{\"./dist/is-chrome\":6}],25:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-firefox\");\n\n},{\"./dist/is-firefox\":9}],26:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ie9\");\n\n},{\"./dist/is-ie9\":10}],27:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios-safari\");\n\n},{\"./dist/is-ios-safari\":13}],28:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios-webview\");\n\n},{\"./dist/is-ios-webview\":14}],29:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios-wkwebview\");\n\n},{\"./dist/is-ios-wkwebview\":15}],30:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-ios\");\n\n},{\"./dist/is-ios\":16}],31:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/is-samsung\");\n\n},{\"./dist/is-samsung\":19}],32:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/supports-popups\");\n\n},{\"./dist/supports-popups\":21}],33:[function(_dereq_,module,exports){\n\"use strict\";\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n this._events = {};\n }\n EventEmitter.prototype.on = function (event, callback) {\n if (this._events[event]) {\n this._events[event].push(callback);\n }\n else {\n this._events[event] = [callback];\n }\n };\n EventEmitter.prototype.off = function (event, callback) {\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return;\n }\n var indexOfCallback = eventCallbacks.indexOf(callback);\n eventCallbacks.splice(indexOfCallback, 1);\n };\n EventEmitter.prototype._emit = function (event) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return;\n }\n eventCallbacks.forEach(function (callback) {\n callback.apply(void 0, args);\n });\n };\n EventEmitter.prototype.hasListener = function (event) {\n var eventCallbacks = this._events[event];\n if (!eventCallbacks) {\n return false;\n }\n return eventCallbacks.length > 0;\n };\n EventEmitter.createChild = function (ChildObject) {\n ChildObject.prototype = Object.create(EventEmitter.prototype, {\n constructor: ChildObject,\n });\n };\n return EventEmitter;\n}());\nmodule.exports = EventEmitter;\n\n},{}],34:[function(_dereq_,module,exports){\n\"use strict\";\nvar GlobalPromise = (typeof Promise !== \"undefined\"\n ? Promise // eslint-disable-line no-undef\n : null);\nvar ExtendedPromise = /** @class */ (function () {\n function ExtendedPromise(options) {\n var _this = this;\n if (typeof options === \"function\") {\n this._promise = new ExtendedPromise.Promise(options);\n return;\n }\n this._promise = new ExtendedPromise.Promise(function (resolve, reject) {\n _this._resolveFunction = resolve;\n _this._rejectFunction = reject;\n });\n options = options || {};\n this._onResolve = options.onResolve || ExtendedPromise.defaultOnResolve;\n this._onReject = options.onReject || ExtendedPromise.defaultOnReject;\n if (ExtendedPromise.shouldCatchExceptions(options)) {\n this._promise.catch(function () {\n // prevents unhandled promise rejection warning\n // in the console for extended promises that\n // that catch the error in an asynchronous manner\n });\n }\n this._resetState();\n }\n ExtendedPromise.defaultOnResolve = function (result) {\n return ExtendedPromise.Promise.resolve(result);\n };\n ExtendedPromise.defaultOnReject = function (err) {\n return ExtendedPromise.Promise.reject(err);\n };\n ExtendedPromise.setPromise = function (PromiseClass) {\n ExtendedPromise.Promise = PromiseClass;\n };\n ExtendedPromise.shouldCatchExceptions = function (options) {\n if (options.hasOwnProperty(\"suppressUnhandledPromiseMessage\")) {\n return Boolean(options.suppressUnhandledPromiseMessage);\n }\n return Boolean(ExtendedPromise.suppressUnhandledPromiseMessage);\n };\n // start Promise methods documented in:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Methods\n ExtendedPromise.all = function (args) {\n return ExtendedPromise.Promise.all(args);\n };\n ExtendedPromise.allSettled = function (args) {\n return ExtendedPromise.Promise.allSettled(args);\n };\n ExtendedPromise.race = function (args) {\n return ExtendedPromise.Promise.race(args);\n };\n ExtendedPromise.reject = function (arg) {\n return ExtendedPromise.Promise.reject(arg);\n };\n ExtendedPromise.resolve = function (arg) {\n return ExtendedPromise.Promise.resolve(arg);\n };\n ExtendedPromise.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n ExtendedPromise.prototype.catch = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).catch.apply(_a, args);\n };\n ExtendedPromise.prototype.resolve = function (arg) {\n var _this = this;\n if (this.isFulfilled) {\n return this;\n }\n this._setResolved();\n ExtendedPromise.Promise.resolve()\n .then(function () {\n return _this._onResolve(arg);\n })\n .then(function (argForResolveFunction) {\n _this._resolveFunction(argForResolveFunction);\n })\n .catch(function (err) {\n _this._resetState();\n _this.reject(err);\n });\n return this;\n };\n ExtendedPromise.prototype.reject = function (arg) {\n var _this = this;\n if (this.isFulfilled) {\n return this;\n }\n this._setRejected();\n ExtendedPromise.Promise.resolve()\n .then(function () {\n return _this._onReject(arg);\n })\n .then(function (result) {\n _this._setResolved();\n _this._resolveFunction(result);\n })\n .catch(function (err) {\n return _this._rejectFunction(err);\n });\n return this;\n };\n ExtendedPromise.prototype._resetState = function () {\n this.isFulfilled = false;\n this.isResolved = false;\n this.isRejected = false;\n };\n ExtendedPromise.prototype._setResolved = function () {\n this.isFulfilled = true;\n this.isResolved = true;\n this.isRejected = false;\n };\n ExtendedPromise.prototype._setRejected = function () {\n this.isFulfilled = true;\n this.isResolved = false;\n this.isRejected = true;\n };\n ExtendedPromise.Promise = GlobalPromise;\n return ExtendedPromise;\n}());\nmodule.exports = ExtendedPromise;\n\n},{}],35:[function(_dereq_,module,exports){\n\"use strict\";\nvar set_attributes_1 = _dereq_(\"./lib/set-attributes\");\nvar default_attributes_1 = _dereq_(\"./lib/default-attributes\");\nvar assign_1 = _dereq_(\"./lib/assign\");\nmodule.exports = function createFrame(options) {\n if (options === void 0) { options = {}; }\n var iframe = document.createElement(\"iframe\");\n var config = assign_1.assign({}, default_attributes_1.defaultAttributes, options);\n if (config.style && typeof config.style !== \"string\") {\n assign_1.assign(iframe.style, config.style);\n delete config.style;\n }\n set_attributes_1.setAttributes(iframe, config);\n if (!iframe.getAttribute(\"id\")) {\n iframe.id = iframe.name;\n }\n return iframe;\n};\n\n},{\"./lib/assign\":36,\"./lib/default-attributes\":37,\"./lib/set-attributes\":38}],36:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assign = void 0;\nfunction assign(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntarget) {\n var objs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n objs[_i - 1] = arguments[_i];\n }\n objs.forEach(function (obj) {\n if (typeof obj !== \"object\") {\n return;\n }\n Object.keys(obj).forEach(function (key) {\n target[key] = obj[key];\n });\n });\n return target;\n}\nexports.assign = assign;\n\n},{}],37:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultAttributes = void 0;\nexports.defaultAttributes = {\n src: \"about:blank\",\n frameBorder: 0,\n allowtransparency: true,\n scrolling: \"no\",\n};\n\n},{}],38:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setAttributes = void 0;\nfunction setAttributes(element, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nattributes) {\n for (var key in attributes) {\n if (attributes.hasOwnProperty(key)) {\n var value = attributes[key];\n if (value == null) {\n element.removeAttribute(key);\n }\n else {\n element.setAttribute(key, value);\n }\n }\n }\n}\nexports.setAttributes = setAttributes;\n\n},{}],39:[function(_dereq_,module,exports){\n'use strict';\n\nfunction uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n\n return v.toString(16);\n });\n}\n\nmodule.exports = uuid;\n\n},{}],40:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction deferred(fn) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n setTimeout(function () {\n try {\n fn.apply(void 0, args);\n }\n catch (err) {\n /* eslint-disable no-console */\n console.log(\"Error in callback function\");\n console.log(err);\n /* eslint-enable no-console */\n }\n }, 1);\n };\n}\nexports.deferred = deferred;\n\n},{}],41:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction once(fn) {\n var called = false;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n fn.apply(void 0, args);\n }\n };\n}\nexports.once = once;\n\n},{}],42:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable consistent-return */\nfunction promiseOrCallback(promise, callback) {\n if (!callback) {\n return promise;\n }\n promise.then(function (data) { return callback(null, data); }).catch(function (err) { return callback(err); });\n}\nexports.promiseOrCallback = promiseOrCallback;\n\n},{}],43:[function(_dereq_,module,exports){\n\"use strict\";\nvar deferred_1 = _dereq_(\"./lib/deferred\");\nvar once_1 = _dereq_(\"./lib/once\");\nvar promise_or_callback_1 = _dereq_(\"./lib/promise-or-callback\");\nfunction wrapPromise(fn) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback;\n var lastArg = args[args.length - 1];\n if (typeof lastArg === \"function\") {\n callback = args.pop();\n callback = once_1.once(deferred_1.deferred(callback));\n }\n // I know, I know, this looks bad. But it's a quirk of the library that\n // we need to allow passing the this context to the original function\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore: this has an implicit any\n return promise_or_callback_1.promiseOrCallback(fn.apply(this, args), callback); // eslint-disable-line no-invalid-this\n };\n}\nwrapPromise.wrapPrototype = function (target, options) {\n if (options === void 0) { options = {}; }\n var ignoreMethods = options.ignoreMethods || [];\n var includePrivateMethods = options.transformPrivateMethods === true;\n var methods = Object.getOwnPropertyNames(target.prototype).filter(function (method) {\n var isNotPrivateMethod;\n var isNonConstructorFunction = method !== \"constructor\" &&\n typeof target.prototype[method] === \"function\";\n var isNotAnIgnoredMethod = ignoreMethods.indexOf(method) === -1;\n if (includePrivateMethods) {\n isNotPrivateMethod = true;\n }\n else {\n isNotPrivateMethod = method.charAt(0) !== \"_\";\n }\n return (isNonConstructorFunction && isNotPrivateMethod && isNotAnIgnoredMethod);\n });\n methods.forEach(function (method) {\n var original = target.prototype[method];\n target.prototype[method] = wrapPromise(original);\n });\n return target;\n};\nmodule.exports = wrapPromise;\n\n},{\"./lib/deferred\":40,\"./lib/once\":41,\"./lib/promise-or-callback\":42}],44:[function(_dereq_,module,exports){\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar cardTypes = _dereq_(\"./lib/card-types\");\nvar add_matching_cards_to_results_1 = _dereq_(\"./lib/add-matching-cards-to-results\");\nvar is_valid_input_type_1 = _dereq_(\"./lib/is-valid-input-type\");\nvar find_best_match_1 = _dereq_(\"./lib/find-best-match\");\nvar clone_1 = _dereq_(\"./lib/clone\");\nvar customCards = {};\nvar cardNames = {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n AMERICAN_EXPRESS: \"american-express\",\n DINERS_CLUB: \"diners-club\",\n DISCOVER: \"discover\",\n JCB: \"jcb\",\n UNIONPAY: \"unionpay\",\n MAESTRO: \"maestro\",\n ELO: \"elo\",\n MIR: \"mir\",\n HIPER: \"hiper\",\n HIPERCARD: \"hipercard\",\n};\nvar ORIGINAL_TEST_ORDER = [\n cardNames.VISA,\n cardNames.MASTERCARD,\n cardNames.AMERICAN_EXPRESS,\n cardNames.DINERS_CLUB,\n cardNames.DISCOVER,\n cardNames.JCB,\n cardNames.UNIONPAY,\n cardNames.MAESTRO,\n cardNames.ELO,\n cardNames.MIR,\n cardNames.HIPER,\n cardNames.HIPERCARD,\n];\nvar testOrder = clone_1.clone(ORIGINAL_TEST_ORDER);\nfunction findType(cardType) {\n return customCards[cardType] || cardTypes[cardType];\n}\nfunction getAllCardTypes() {\n return testOrder.map(function (cardType) { return clone_1.clone(findType(cardType)); });\n}\nfunction getCardPosition(name, ignoreErrorForNotExisting) {\n if (ignoreErrorForNotExisting === void 0) { ignoreErrorForNotExisting = false; }\n var position = testOrder.indexOf(name);\n if (!ignoreErrorForNotExisting && position === -1) {\n throw new Error('\"' + name + '\" is not a supported card type.');\n }\n return position;\n}\nfunction creditCardType(cardNumber) {\n var results = [];\n if (!is_valid_input_type_1.isValidInputType(cardNumber)) {\n return results;\n }\n if (cardNumber.length === 0) {\n return getAllCardTypes();\n }\n testOrder.forEach(function (cardType) {\n var cardConfiguration = findType(cardType);\n add_matching_cards_to_results_1.addMatchingCardsToResults(cardNumber, cardConfiguration, results);\n });\n var bestMatch = find_best_match_1.findBestMatch(results);\n if (bestMatch) {\n return [bestMatch];\n }\n return results;\n}\ncreditCardType.getTypeInfo = function (cardType) {\n return clone_1.clone(findType(cardType));\n};\ncreditCardType.removeCard = function (name) {\n var position = getCardPosition(name);\n testOrder.splice(position, 1);\n};\ncreditCardType.addCard = function (config) {\n var existingCardPosition = getCardPosition(config.type, true);\n customCards[config.type] = config;\n if (existingCardPosition === -1) {\n testOrder.push(config.type);\n }\n};\ncreditCardType.updateCard = function (cardType, updates) {\n var originalObject = customCards[cardType] || cardTypes[cardType];\n if (!originalObject) {\n throw new Error(\"\\\"\" + cardType + \"\\\" is not a recognized type. Use `addCard` instead.'\");\n }\n if (updates.type && originalObject.type !== updates.type) {\n throw new Error(\"Cannot overwrite type parameter.\");\n }\n var clonedCard = clone_1.clone(originalObject);\n clonedCard = __assign(__assign({}, clonedCard), updates);\n customCards[clonedCard.type] = clonedCard;\n};\ncreditCardType.changeOrder = function (name, position) {\n var currentPosition = getCardPosition(name);\n testOrder.splice(currentPosition, 1);\n testOrder.splice(position, 0, name);\n};\ncreditCardType.resetModifications = function () {\n testOrder = clone_1.clone(ORIGINAL_TEST_ORDER);\n customCards = {};\n};\ncreditCardType.types = cardNames;\nmodule.exports = creditCardType;\n\n},{\"./lib/add-matching-cards-to-results\":45,\"./lib/card-types\":46,\"./lib/clone\":47,\"./lib/find-best-match\":48,\"./lib/is-valid-input-type\":49}],45:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addMatchingCardsToResults = void 0;\nvar clone_1 = _dereq_(\"./clone\");\nvar matches_1 = _dereq_(\"./matches\");\nfunction addMatchingCardsToResults(cardNumber, cardConfiguration, results) {\n var i, patternLength;\n for (i = 0; i < cardConfiguration.patterns.length; i++) {\n var pattern = cardConfiguration.patterns[i];\n if (!matches_1.matches(cardNumber, pattern)) {\n continue;\n }\n var clonedCardConfiguration = clone_1.clone(cardConfiguration);\n if (Array.isArray(pattern)) {\n patternLength = String(pattern[0]).length;\n }\n else {\n patternLength = String(pattern).length;\n }\n if (cardNumber.length >= patternLength) {\n clonedCardConfiguration.matchStrength = patternLength;\n }\n results.push(clonedCardConfiguration);\n break;\n }\n}\nexports.addMatchingCardsToResults = addMatchingCardsToResults;\n\n},{\"./clone\":47,\"./matches\":50}],46:[function(_dereq_,module,exports){\n\"use strict\";\nvar cardTypes = {\n visa: {\n niceType: \"Visa\",\n type: \"visa\",\n patterns: [4],\n gaps: [4, 8, 12],\n lengths: [16, 18, 19],\n code: {\n name: \"CVV\",\n size: 3,\n },\n },\n mastercard: {\n niceType: \"Mastercard\",\n type: \"mastercard\",\n patterns: [[51, 55], [2221, 2229], [223, 229], [23, 26], [270, 271], 2720],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n \"american-express\": {\n niceType: \"American Express\",\n type: \"american-express\",\n patterns: [34, 37],\n gaps: [4, 10],\n lengths: [15],\n code: {\n name: \"CID\",\n size: 4,\n },\n },\n \"diners-club\": {\n niceType: \"Diners Club\",\n type: \"diners-club\",\n patterns: [[300, 305], 36, 38, 39],\n gaps: [4, 10],\n lengths: [14, 16, 19],\n code: {\n name: \"CVV\",\n size: 3,\n },\n },\n discover: {\n niceType: \"Discover\",\n type: \"discover\",\n patterns: [6011, [644, 649], 65],\n gaps: [4, 8, 12],\n lengths: [16, 19],\n code: {\n name: \"CID\",\n size: 3,\n },\n },\n jcb: {\n niceType: \"JCB\",\n type: \"jcb\",\n patterns: [2131, 1800, [3528, 3589]],\n gaps: [4, 8, 12],\n lengths: [16, 17, 18, 19],\n code: {\n name: \"CVV\",\n size: 3,\n },\n },\n unionpay: {\n niceType: \"UnionPay\",\n type: \"unionpay\",\n patterns: [\n 620,\n [624, 626],\n [62100, 62182],\n [62184, 62187],\n [62185, 62197],\n [62200, 62205],\n [622010, 622999],\n 622018,\n [622019, 622999],\n [62207, 62209],\n [622126, 622925],\n [623, 626],\n 6270,\n 6272,\n 6276,\n [627700, 627779],\n [627781, 627799],\n [6282, 6289],\n 6291,\n 6292,\n 810,\n [8110, 8131],\n [8132, 8151],\n [8152, 8163],\n [8164, 8171],\n ],\n gaps: [4, 8, 12],\n lengths: [14, 15, 16, 17, 18, 19],\n code: {\n name: \"CVN\",\n size: 3,\n },\n },\n maestro: {\n niceType: \"Maestro\",\n type: \"maestro\",\n patterns: [\n 493698,\n [500000, 504174],\n [504176, 506698],\n [506779, 508999],\n [56, 59],\n 63,\n 67,\n 6,\n ],\n gaps: [4, 8, 12],\n lengths: [12, 13, 14, 15, 16, 17, 18, 19],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n elo: {\n niceType: \"Elo\",\n type: \"elo\",\n patterns: [\n 401178,\n 401179,\n 438935,\n 457631,\n 457632,\n 431274,\n 451416,\n 457393,\n 504175,\n [506699, 506778],\n [509000, 509999],\n 627780,\n 636297,\n 636368,\n [650031, 650033],\n [650035, 650051],\n [650405, 650439],\n [650485, 650538],\n [650541, 650598],\n [650700, 650718],\n [650720, 650727],\n [650901, 650978],\n [651652, 651679],\n [655000, 655019],\n [655021, 655058],\n ],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVE\",\n size: 3,\n },\n },\n mir: {\n niceType: \"Mir\",\n type: \"mir\",\n patterns: [[2200, 2204]],\n gaps: [4, 8, 12],\n lengths: [16, 17, 18, 19],\n code: {\n name: \"CVP2\",\n size: 3,\n },\n },\n hiper: {\n niceType: \"Hiper\",\n type: \"hiper\",\n patterns: [637095, 63737423, 63743358, 637568, 637599, 637609, 637612],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n hipercard: {\n niceType: \"Hipercard\",\n type: \"hipercard\",\n patterns: [606282],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: \"CVC\",\n size: 3,\n },\n },\n};\nmodule.exports = cardTypes;\n\n},{}],47:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = void 0;\nfunction clone(originalObject) {\n if (!originalObject) {\n return null;\n }\n return JSON.parse(JSON.stringify(originalObject));\n}\nexports.clone = clone;\n\n},{}],48:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findBestMatch = void 0;\nfunction hasEnoughResultsToDetermineBestMatch(results) {\n var numberOfResultsWithMaxStrengthProperty = results.filter(function (result) { return result.matchStrength; }).length;\n /*\n * if all possible results have a maxStrength property that means the card\n * number is sufficiently long enough to determine conclusively what the card\n * type is\n * */\n return (numberOfResultsWithMaxStrengthProperty > 0 &&\n numberOfResultsWithMaxStrengthProperty === results.length);\n}\nfunction findBestMatch(results) {\n if (!hasEnoughResultsToDetermineBestMatch(results)) {\n return null;\n }\n return results.reduce(function (bestMatch, result) {\n if (!bestMatch) {\n return result;\n }\n /*\n * If the current best match pattern is less specific than this result, set\n * the result as the new best match\n * */\n if (Number(bestMatch.matchStrength) < Number(result.matchStrength)) {\n return result;\n }\n return bestMatch;\n });\n}\nexports.findBestMatch = findBestMatch;\n\n},{}],49:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidInputType = void 0;\nfunction isValidInputType(cardNumber) {\n return typeof cardNumber === \"string\" || cardNumber instanceof String;\n}\nexports.isValidInputType = isValidInputType;\n\n},{}],50:[function(_dereq_,module,exports){\n\"use strict\";\n/*\n * Adapted from https://github.com/polvo-labs/card-type/blob/aaab11f80fa1939bccc8f24905a06ae3cd864356/src/cardType.js#L37-L42\n * */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matches = void 0;\nfunction matchesRange(cardNumber, min, max) {\n var maxLengthToCheck = String(min).length;\n var substr = cardNumber.substr(0, maxLengthToCheck);\n var integerRepresentationOfCardNumber = parseInt(substr, 10);\n min = parseInt(String(min).substr(0, substr.length), 10);\n max = parseInt(String(max).substr(0, substr.length), 10);\n return (integerRepresentationOfCardNumber >= min &&\n integerRepresentationOfCardNumber <= max);\n}\nfunction matchesPattern(cardNumber, pattern) {\n pattern = String(pattern);\n return (pattern.substring(0, cardNumber.length) ===\n cardNumber.substring(0, pattern.length));\n}\nfunction matches(cardNumber, pattern) {\n if (Array.isArray(pattern)) {\n return matchesRange(cardNumber, pattern[0], pattern[1]);\n }\n return matchesPattern(cardNumber, pattern);\n}\nexports.matches = matches;\n\n},{}],51:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Framebus = void 0;\nvar lib_1 = _dereq_(\"./lib\");\nvar DefaultPromise = (typeof window !== \"undefined\" &&\n window.Promise);\nvar Framebus = /** @class */ (function () {\n function Framebus(options) {\n if (options === void 0) { options = {}; }\n this.origin = options.origin || \"*\";\n this.channel = options.channel || \"\";\n this.verifyDomain = options.verifyDomain;\n // if a targetFrames configuration is not passed in,\n // the default behavior is to broadcast the payload\n // to the top level window or to the frame itself.\n // By default, the broadcast function will loop through\n // all the known siblings and children of the window.\n // If a targetFrames array is passed, it will instead\n // only broadcast to those specified targetFrames\n this.targetFrames = options.targetFrames || [];\n this.limitBroadcastToFramesArray = Boolean(options.targetFrames);\n this.isDestroyed = false;\n this.listeners = [];\n this.hasAdditionalChecksForOnListeners = Boolean(this.verifyDomain || this.limitBroadcastToFramesArray);\n }\n Framebus.setPromise = function (PromiseGlobal) {\n Framebus.Promise = PromiseGlobal;\n };\n Framebus.target = function (options) {\n return new Framebus(options);\n };\n Framebus.prototype.addTargetFrame = function (frame) {\n if (!this.limitBroadcastToFramesArray) {\n return;\n }\n this.targetFrames.push(frame);\n };\n Framebus.prototype.include = function (childWindow) {\n if (childWindow == null) {\n return false;\n }\n if (childWindow.Window == null) {\n return false;\n }\n if (childWindow.constructor !== childWindow.Window) {\n return false;\n }\n lib_1.childWindows.push(childWindow);\n return true;\n };\n Framebus.prototype.target = function (options) {\n return Framebus.target(options);\n };\n Framebus.prototype.emit = function (eventName, data, reply) {\n if (this.isDestroyed) {\n return false;\n }\n var origin = this.origin;\n eventName = this.namespaceEvent(eventName);\n if ((0, lib_1.isntString)(eventName)) {\n return false;\n }\n if ((0, lib_1.isntString)(origin)) {\n return false;\n }\n if (typeof data === \"function\") {\n reply = data;\n data = undefined; // eslint-disable-line no-undefined\n }\n var payload = (0, lib_1.packagePayload)(eventName, origin, data, reply);\n if (!payload) {\n return false;\n }\n if (this.limitBroadcastToFramesArray) {\n this.targetFramesAsWindows().forEach(function (frame) {\n (0, lib_1.sendMessage)(frame, payload, origin);\n });\n }\n else {\n (0, lib_1.broadcast)(payload, {\n origin: origin,\n frame: window.top || window.self,\n });\n }\n return true;\n };\n Framebus.prototype.emitAsPromise = function (eventName, data) {\n var _this = this;\n return new Framebus.Promise(function (resolve, reject) {\n var didAttachListener = _this.emit(eventName, data, function (payload) {\n resolve(payload);\n });\n if (!didAttachListener) {\n reject(new Error(\"Listener not added for \\\"\".concat(eventName, \"\\\"\")));\n }\n });\n };\n Framebus.prototype.on = function (eventName, originalHandler) {\n if (this.isDestroyed) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var origin = this.origin;\n var handler = originalHandler;\n eventName = this.namespaceEvent(eventName);\n if ((0, lib_1.subscriptionArgsInvalid)(eventName, handler, origin)) {\n return false;\n }\n if (this.hasAdditionalChecksForOnListeners) {\n /* eslint-disable no-invalid-this, @typescript-eslint/ban-ts-comment */\n handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // @ts-ignore\n if (!self.passesVerifyDomainCheck(this && this.origin)) {\n return;\n }\n // @ts-ignore\n if (!self.hasMatchingTargetFrame(this && this.source)) {\n return;\n }\n originalHandler.apply(void 0, args);\n };\n /* eslint-enable no-invalid-this, @typescript-eslint/ban-ts-comment */\n }\n this.listeners.push({\n eventName: eventName,\n handler: handler,\n originalHandler: originalHandler,\n });\n lib_1.subscribers[origin] = lib_1.subscribers[origin] || {};\n lib_1.subscribers[origin][eventName] = lib_1.subscribers[origin][eventName] || [];\n lib_1.subscribers[origin][eventName].push(handler);\n return true;\n };\n Framebus.prototype.off = function (eventName, originalHandler) {\n var handler = originalHandler;\n if (this.isDestroyed) {\n return false;\n }\n if (this.verifyDomain) {\n for (var i = 0; i < this.listeners.length; i++) {\n var listener = this.listeners[i];\n if (listener.originalHandler === originalHandler) {\n handler = listener.handler;\n }\n }\n }\n eventName = this.namespaceEvent(eventName);\n var origin = this.origin;\n if ((0, lib_1.subscriptionArgsInvalid)(eventName, handler, origin)) {\n return false;\n }\n var subscriberList = lib_1.subscribers[origin] && lib_1.subscribers[origin][eventName];\n if (!subscriberList) {\n return false;\n }\n for (var i = 0; i < subscriberList.length; i++) {\n if (subscriberList[i] === handler) {\n subscriberList.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n Framebus.prototype.teardown = function () {\n if (this.isDestroyed) {\n return;\n }\n this.isDestroyed = true;\n for (var i = 0; i < this.listeners.length; i++) {\n var listener = this.listeners[i];\n this.off(listener.eventName, listener.handler);\n }\n this.listeners.length = 0;\n };\n Framebus.prototype.passesVerifyDomainCheck = function (origin) {\n if (!this.verifyDomain) {\n // always pass this check if no verifyDomain option was set\n return true;\n }\n return this.checkOrigin(origin);\n };\n Framebus.prototype.targetFramesAsWindows = function () {\n if (!this.limitBroadcastToFramesArray) {\n return [];\n }\n return this.targetFrames\n .map(function (frame) {\n // we can't pull off the contentWindow\n // when the iframe is originally added\n // to the array, because if it is not\n // in the DOM at that time, it will have\n // a contentWindow of `null`\n if (frame instanceof HTMLIFrameElement) {\n return frame.contentWindow;\n }\n return frame;\n })\n .filter(function (win) {\n // just in case an iframe element\n // was removed from the DOM\n // and the contentWindow property\n // is null\n return win;\n });\n };\n Framebus.prototype.hasMatchingTargetFrame = function (source) {\n if (!this.limitBroadcastToFramesArray) {\n // always pass this check if we aren't limiting to the target frames\n return true;\n }\n var matchingFrame = this.targetFramesAsWindows().find(function (frame) {\n return frame === source;\n });\n return Boolean(matchingFrame);\n };\n Framebus.prototype.checkOrigin = function (postMessageOrigin) {\n var merchantHost;\n var a = document.createElement(\"a\");\n a.href = location.href;\n if (a.protocol === \"https:\") {\n merchantHost = a.host.replace(/:443$/, \"\");\n }\n else if (a.protocol === \"http:\") {\n merchantHost = a.host.replace(/:80$/, \"\");\n }\n else {\n merchantHost = a.host;\n }\n var merchantOrigin = a.protocol + \"//\" + merchantHost;\n if (merchantOrigin === postMessageOrigin) {\n return true;\n }\n if (this.verifyDomain) {\n return this.verifyDomain(postMessageOrigin);\n }\n return true;\n };\n Framebus.prototype.namespaceEvent = function (eventName) {\n if (!this.channel) {\n return eventName;\n }\n return \"\".concat(this.channel, \":\").concat(eventName);\n };\n Framebus.Promise = DefaultPromise;\n return Framebus;\n}());\nexports.Framebus = Framebus;\n\n},{\"./lib\":59}],52:[function(_dereq_,module,exports){\n\"use strict\";\nvar lib_1 = _dereq_(\"./lib\");\nvar framebus_1 = _dereq_(\"./framebus\");\n(0, lib_1.attach)();\nmodule.exports = framebus_1.Framebus;\n\n},{\"./framebus\":51,\"./lib\":59}],53:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.detach = exports.attach = void 0;\nvar _1 = _dereq_(\"./\");\nvar isAttached = false;\nfunction attach() {\n if (isAttached || typeof window === \"undefined\") {\n return;\n }\n isAttached = true;\n window.addEventListener(\"message\", _1.onMessage, false);\n}\nexports.attach = attach;\n// removeIf(production)\nfunction detach() {\n isAttached = false;\n window.removeEventListener(\"message\", _1.onMessage, false);\n}\nexports.detach = detach;\n// endRemoveIf(production)\n\n},{\"./\":59}],54:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.broadcastToChildWindows = void 0;\nvar _1 = _dereq_(\"./\");\nfunction broadcastToChildWindows(payload, origin, source) {\n for (var i = _1.childWindows.length - 1; i >= 0; i--) {\n var childWindow = _1.childWindows[i];\n if (childWindow.closed) {\n _1.childWindows.splice(i, 1);\n }\n else if (source !== childWindow) {\n (0, _1.broadcast)(payload, {\n origin: origin,\n frame: childWindow.top,\n });\n }\n }\n}\nexports.broadcastToChildWindows = broadcastToChildWindows;\n\n},{\"./\":59}],55:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.broadcast = void 0;\nvar _1 = _dereq_(\"./\");\nfunction broadcast(payload, options) {\n var i = 0;\n var frameToBroadcastTo;\n var origin = options.origin, frame = options.frame;\n try {\n frame.postMessage(payload, origin);\n if ((0, _1.hasOpener)(frame) && frame.opener.top !== window.top) {\n broadcast(payload, {\n origin: origin,\n frame: frame.opener.top,\n });\n }\n // previously, our max value was frame.frames.length\n // but frames.length inherits from window.length\n // which can be overwritten if a developer does\n // `var length = value;` outside of a function\n // scope, it'll prevent us from looping through\n // all the frames. With this, we loop through\n // until there are no longer any frames\n // eslint-disable-next-line no-cond-assign\n while ((frameToBroadcastTo = frame.frames[i])) {\n broadcast(payload, {\n origin: origin,\n frame: frameToBroadcastTo,\n });\n i++;\n }\n }\n catch (_) {\n /* ignored */\n }\n}\nexports.broadcast = broadcast;\n\n},{\"./\":59}],56:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscribers = exports.childWindows = exports.prefix = void 0;\nexports.prefix = \"/*framebus*/\";\nexports.childWindows = [];\nexports.subscribers = {};\n\n},{}],57:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dispatch = void 0;\nvar _1 = _dereq_(\"./\");\nfunction dispatch(origin, event, data, reply, e) {\n if (!_1.subscribers[origin]) {\n return;\n }\n if (!_1.subscribers[origin][event]) {\n return;\n }\n var args = [];\n if (data) {\n args.push(data);\n }\n if (reply) {\n args.push(reply);\n }\n for (var i = 0; i < _1.subscribers[origin][event].length; i++) {\n _1.subscribers[origin][event][i].apply(e, args);\n }\n}\nexports.dispatch = dispatch;\n\n},{\"./\":59}],58:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasOpener = void 0;\nfunction hasOpener(frame) {\n if (frame.top !== frame) {\n return false;\n }\n if (frame.opener == null) {\n return false;\n }\n if (frame.opener === frame) {\n return false;\n }\n if (frame.opener.closed === true) {\n return false;\n }\n return true;\n}\nexports.hasOpener = hasOpener;\n\n},{}],59:[function(_dereq_,module,exports){\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(_dereq_(\"./attach\"), exports);\n__exportStar(_dereq_(\"./broadcast-to-child-windows\"), exports);\n__exportStar(_dereq_(\"./broadcast\"), exports);\n__exportStar(_dereq_(\"./constants\"), exports);\n__exportStar(_dereq_(\"./dispatch\"), exports);\n__exportStar(_dereq_(\"./has-opener\"), exports);\n__exportStar(_dereq_(\"./is-not-string\"), exports);\n__exportStar(_dereq_(\"./message\"), exports);\n__exportStar(_dereq_(\"./package-payload\"), exports);\n__exportStar(_dereq_(\"./send-message\"), exports);\n__exportStar(_dereq_(\"./subscribe-replier\"), exports);\n__exportStar(_dereq_(\"./subscription-args-invalid\"), exports);\n__exportStar(_dereq_(\"./types\"), exports);\n__exportStar(_dereq_(\"./unpack-payload\"), exports);\n\n},{\"./attach\":53,\"./broadcast\":55,\"./broadcast-to-child-windows\":54,\"./constants\":56,\"./dispatch\":57,\"./has-opener\":58,\"./is-not-string\":60,\"./message\":61,\"./package-payload\":62,\"./send-message\":63,\"./subscribe-replier\":64,\"./subscription-args-invalid\":65,\"./types\":66,\"./unpack-payload\":67}],60:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isntString = void 0;\nfunction isntString(str) {\n return typeof str !== \"string\";\n}\nexports.isntString = isntString;\n\n},{}],61:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onMessage = void 0;\nvar _1 = _dereq_(\"./\");\nfunction onMessage(e) {\n if ((0, _1.isntString)(e.data)) {\n return;\n }\n var payload = (0, _1.unpackPayload)(e);\n if (!payload) {\n return;\n }\n var data = payload.eventData;\n var reply = payload.reply;\n (0, _1.dispatch)(\"*\", payload.event, data, reply, e);\n (0, _1.dispatch)(e.origin, payload.event, data, reply, e);\n (0, _1.broadcastToChildWindows)(e.data, payload.origin, e.source);\n}\nexports.onMessage = onMessage;\n\n},{\"./\":59}],62:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.packagePayload = void 0;\nvar _1 = _dereq_(\"./\");\nfunction packagePayload(event, origin, data, reply) {\n var packaged;\n var payload = {\n event: event,\n origin: origin,\n };\n if (typeof reply === \"function\") {\n payload.reply = (0, _1.subscribeReplier)(reply, origin);\n }\n payload.eventData = data;\n try {\n packaged = _1.prefix + JSON.stringify(payload);\n }\n catch (e) {\n throw new Error(\"Could not stringify event: \".concat(e.message));\n }\n return packaged;\n}\nexports.packagePayload = packagePayload;\n\n},{\"./\":59}],63:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sendMessage = void 0;\n/**\n * A basic function for wrapping the sending of postMessages to frames.\n */\nfunction sendMessage(frame, payload, origin) {\n try {\n frame.postMessage(payload, origin);\n }\n catch (error) {\n /* ignored */\n }\n}\nexports.sendMessage = sendMessage;\n\n},{}],64:[function(_dereq_,module,exports){\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscribeReplier = void 0;\nvar framebus_1 = _dereq_(\"../framebus\");\nvar uuid_1 = __importDefault(_dereq_(\"@braintree/uuid\"));\nfunction subscribeReplier(fn, origin) {\n var uuid = (0, uuid_1.default)();\n function replier(data, replyOriginHandler) {\n fn(data, replyOriginHandler);\n framebus_1.Framebus.target({\n origin: origin,\n }).off(uuid, replier);\n }\n framebus_1.Framebus.target({\n origin: origin,\n }).on(uuid, replier);\n return uuid;\n}\nexports.subscribeReplier = subscribeReplier;\n\n},{\"../framebus\":51,\"@braintree/uuid\":39}],65:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscriptionArgsInvalid = void 0;\nvar _1 = _dereq_(\"./\");\nfunction subscriptionArgsInvalid(event, fn, origin) {\n if ((0, _1.isntString)(event)) {\n return true;\n }\n if (typeof fn !== \"function\") {\n return true;\n }\n return (0, _1.isntString)(origin);\n}\nexports.subscriptionArgsInvalid = subscriptionArgsInvalid;\n\n},{\"./\":59}],66:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n},{}],67:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unpackPayload = void 0;\nvar _1 = _dereq_(\"./\");\nfunction unpackPayload(e) {\n var payload;\n if (e.data.slice(0, _1.prefix.length) !== _1.prefix) {\n return false;\n }\n try {\n payload = JSON.parse(e.data.slice(_1.prefix.length));\n }\n catch (err) {\n return false;\n }\n if (payload.reply) {\n var replyOrigin_1 = e.origin;\n var replySource_1 = e.source;\n var replyEvent_1 = payload.reply;\n payload.reply = function reply(replyData) {\n if (!replySource_1) {\n return;\n }\n var replyPayload = (0, _1.packagePayload)(replyEvent_1, replyOrigin_1, replyData);\n if (!replyPayload) {\n return;\n }\n replySource_1.postMessage(replyPayload, replyOrigin_1);\n };\n }\n return payload;\n}\nexports.unpackPayload = unpackPayload;\n\n},{\"./\":59}],68:[function(_dereq_,module,exports){\n'use strict';\n\n/**\n * @this {Promise}\n */\nfunction finallyConstructor(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n // @ts-ignore\n return constructor.reject(reason);\n });\n }\n );\n}\n\nfunction allSettled(arr) {\n var P = this;\n return new P(function(resolve, reject) {\n if (!(arr && typeof arr.length !== 'undefined')) {\n return reject(\n new TypeError(\n typeof arr +\n ' ' +\n arr +\n ' is not iterable(cannot read property Symbol(Symbol.iterator))'\n )\n );\n }\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n function(e) {\n args[i] = { status: 'rejected', reason: e };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n );\n return;\n }\n }\n args[i] = { status: 'fulfilled', value: val };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n}\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction isArray(x) {\n return Boolean(x && typeof x.length !== 'undefined');\n}\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n /** @type {!number} */\n this._state = 0;\n /** @type {!boolean} */\n this._handled = false;\n /** @type {Promise|undefined} */\n this._value = undefined;\n /** @type {!Array} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = finallyConstructor;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.all accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.allSettled = allSettled;\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.race accepts an array'));\n }\n\n for (var i = 0, len = arr.length; i < len; i++) {\n Promise.resolve(arr[i]).then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n // @ts-ignore\n (typeof setImmediate === 'function' &&\n function(fn) {\n // @ts-ignore\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nmodule.exports = Promise;\n\n},{}],69:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isIos = exports.isIE9 = exports.isSamsungBrowser = exports.isAndroidChrome = exports.isKitKatWebview = void 0;\n// server side rendering check\nvar UA = (typeof window !== \"undefined\" &&\n window.navigator &&\n window.navigator.userAgent);\n// TODO remove this when browser detection is converted to typescript\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-ignore\nvar isAndroid = _dereq_(\"@braintree/browser-detection/is-android\");\n// @ts-ignore\nvar isChromeOs = _dereq_(\"@braintree/browser-detection/is-chrome-os\");\n// @ts-ignore\nvar isChrome = _dereq_(\"@braintree/browser-detection/is-chrome\");\n// @ts-ignore\nvar isIos = _dereq_(\"@braintree/browser-detection/is-ios\");\nexports.isIos = isIos;\n// @ts-ignore\nvar isIE9 = _dereq_(\"@braintree/browser-detection/is-ie9\");\nexports.isIE9 = isIE9;\n/* eslint-enable @typescript-eslint/ban-ts-comment */\n// Old Android Webviews used specific versions of Chrome with 0.0.0 as their version suffix\n// https://developer.chrome.com/multidevice/user-agent#webview_user_agent\nvar KITKAT_WEBVIEW_REGEX = /Version\\/\\d\\.\\d* Chrome\\/\\d*\\.0\\.0\\.0/;\nfunction isOldSamsungBrowserOrSamsungWebview(ua) {\n return !isChrome(ua) && ua.indexOf(\"Samsung\") > -1;\n}\nfunction isKitKatWebview(ua) {\n if (ua === void 0) { ua = UA; }\n return isAndroid(ua) && KITKAT_WEBVIEW_REGEX.test(ua);\n}\nexports.isKitKatWebview = isKitKatWebview;\nfunction isAndroidChrome(ua) {\n if (ua === void 0) { ua = UA; }\n return (isAndroid(ua) || isChromeOs(ua)) && isChrome(ua);\n}\nexports.isAndroidChrome = isAndroidChrome;\nfunction isSamsungBrowser(ua) {\n if (ua === void 0) { ua = UA; }\n return /SamsungBrowser/.test(ua) || isOldSamsungBrowserOrSamsungWebview(ua);\n}\nexports.isSamsungBrowser = isSamsungBrowser;\n\n},{\"@braintree/browser-detection/is-android\":22,\"@braintree/browser-detection/is-chrome\":24,\"@braintree/browser-detection/is-chrome-os\":23,\"@braintree/browser-detection/is-ie9\":26,\"@braintree/browser-detection/is-ios\":30}],70:[function(_dereq_,module,exports){\n\"use strict\";\nvar device_1 = _dereq_(\"./lib/device\");\nmodule.exports = function supportsInputFormatting() {\n // Digits get dropped in samsung browser\n return !(0, device_1.isSamsungBrowser)();\n};\n\n},{\"./lib/device\":69}],71:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/supports-input-formatting\");\n\n},{\"./dist/supports-input-formatting\":70}],72:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar errors = _dereq_(\"./errors\");\nvar assign = _dereq_(\"../lib/assign\").assign;\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @class\n * @param {object} options Options\n * @description You cannot use this constructor directly. Use {@link module:braintree-web/american-express.create|braintree.american-express.create} instead.\n * @classdesc This class allows you use a nonce to interact with American Express Checkout. To accept American Express cards, use Hosted Fields.\n */\nfunction AmericanExpress(options) {\n this._client = options.client;\n}\n\n/**\n * Gets the rewards balance associated with a Braintree nonce.\n * @public\n * @param {object} options Request options\n * @param {string} options.nonce An existing Braintree nonce.\n * @param {callback} [callback] The second argument, data, is the returned server data. If no callback is provided, `getRewardsBalance` returns a promise that resolves with the server data.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var americanExpress = require('braintree-web/american-express');\n *\n * americanExpress.create({client: clientInstance}, function (createErr, americanExpressInstance) {\n * var options = {nonce: existingBraintreeNonce};\n * americanExpressInstance.getRewardsBalance(options, function (getErr, payload) {\n * if (getErr || payload.error) {\n * // Handle error\n * return;\n * }\n *\n * console.log('Rewards amount: ' + payload.rewardsAmount);\n * });\n * });\n */\nAmericanExpress.prototype.getRewardsBalance = function (options) {\n var nonce = options.nonce;\n var data;\n\n if (!nonce) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NONCE_REQUIRED.type,\n code: errors.AMEX_NONCE_REQUIRED.code,\n message: \"getRewardsBalance must be called with a nonce.\",\n })\n );\n }\n\n data = assign(\n {\n _meta: { source: \"american-express\" },\n paymentMethodNonce: nonce,\n },\n options\n );\n\n delete data.nonce;\n\n return this._client\n .request({\n method: \"get\",\n endpoint: \"payment_methods/amex_rewards_balance\",\n data: data,\n })\n .catch(function (err) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NETWORK_ERROR.type,\n code: errors.AMEX_NETWORK_ERROR.code,\n message:\n \"A network error occurred when getting the American Express rewards balance.\",\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Gets the Express Checkout nonce profile given a nonce from American Express.\n * @public\n * @param {object} options Request options\n * @param {string} options.nonce An existing nonce from American Express (note that this is not a nonce from Braintree).\n * @param {callback} [callback] The second argument, data, is the returned server data. If no callback is provided, `getExpressCheckoutProfile` returns a promise that resolves with the server data.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var americanExpress = require('braintree-web/american-express');\n *\n * americanExpress.create({client: clientInstance}, function (createErr, americanExpressInstance) {\n * var options = {nonce: existingAmericanExpressNonce};\n * americanExpressInstance.getExpressCheckoutProfile(options, function (getErr, payload) {\n * if (getErr) {\n * // Handle error\n * return;\n * }\n *\n * console.log('Number of cards: ' + payload.amexExpressCheckoutCards.length);\n * });\n * });\n */\nAmericanExpress.prototype.getExpressCheckoutProfile = function (options) {\n if (!options.nonce) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NONCE_REQUIRED.type,\n code: errors.AMEX_NONCE_REQUIRED.code,\n message: \"getExpressCheckoutProfile must be called with a nonce.\",\n })\n );\n }\n\n return this._client\n .request({\n method: \"get\",\n endpoint: \"payment_methods/amex_express_checkout_cards/\" + options.nonce,\n data: {\n _meta: { source: \"american-express\" },\n paymentMethodNonce: options.nonce,\n },\n })\n .catch(function (err) {\n return Promise.reject(\n new BraintreeError({\n type: errors.AMEX_NETWORK_ERROR.type,\n code: errors.AMEX_NETWORK_ERROR.code,\n message:\n \"A network error occurred when getting the American Express Checkout nonce profile.\",\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/american-express.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * americanExpressInstance.teardown();\n * @example With callback\n * americanExpressInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nAmericanExpress.prototype.teardown = function () {\n convertMethodsToError(this, methods(AmericanExpress.prototype));\n\n return Promise.resolve();\n};\n\nmodule.exports = wrapPromise.wrapPrototype(AmericanExpress);\n\n},{\"../lib/assign\":121,\"../lib/braintree-error\":124,\"../lib/convert-methods-to-error\":127,\"../lib/methods\":155,\"./errors\":73,\"@braintree/wrap-promise\":43}],73:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.American Express - getRewardsBalance Error Codes\n * @description Errors that occur when creating components.\n * @property {MERCHANT} AMEX_NONCE_REQUIRED Occurs when a nonce is not provided to method.\n * @property {NETWORK} AMEX_NETWORK_ERROR Occurs when there is an error communicating with the Braintree gateway.\n */\n\n/**\n * @name BraintreeError.American Express - getExpressCheckoutProfile Error Codes\n * @description Errors that occur when creating components.\n * @property {MERCHANT} AMEX_NONCE_REQUIRED Occurs when a nonce is not provided to method.\n * @property {NETWORK} AMEX_NETWORK_ERROR Occurs when there is an error communicating with the Braintree gateway.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n AMEX_NONCE_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"AMEX_NONCE_REQUIRED\",\n },\n AMEX_NETWORK_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"AMEX_NETWORK_ERROR\",\n },\n};\n\n},{\"../lib/braintree-error\":124}],74:[function(_dereq_,module,exports){\n\"use strict\";\n/**\n * @module braintree-web/american-express\n * @description This module is for use with Amex Express Checkout. To accept American Express cards, use Hosted Fields.\n */\n\nvar AmericanExpress = _dereq_(\"./american-express\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar VERSION = \"3.100.0\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {callback} [callback] The second argument, `data`, is the {@link AmericanExpress} instance. If no callback is provided, `create` returns a promise that resolves with the {@link AmericanExpress} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"American Express\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n return createDeferredClient.create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n });\n })\n .then(function (client) {\n options.client = client;\n\n return new AmericanExpress(options);\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":122,\"../lib/create-assets-url\":129,\"../lib/create-deferred-client\":131,\"./american-express\":72,\"@braintree/wrap-promise\":43}],75:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar analytics = _dereq_(\"../lib/analytics\");\nvar errors = _dereq_(\"./errors\");\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @typedef {object} ApplePay~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} details Additional details.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.cardHolderName The name of the card holder.\n * @property {string} details.dpanLastTwo Last two digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `ApplePayCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * An Apple Pay Payment Authorization Event object.\n * @typedef {object} ApplePayPaymentAuthorizedEvent\n * @external ApplePayPaymentAuthorizedEvent\n * @see {@link https://developer.apple.com/reference/applepayjs/applepaypaymentauthorizedevent ApplePayPaymentAuthorizedEvent}\n */\n\n/**\n * An Apple Pay Payment Request object.\n * @typedef {object} ApplePayPaymentRequest\n * @external ApplePayPaymentRequest\n * @see {@link https://developer.apple.com/reference/applepayjs/1916082-applepay_js_data_types/paymentrequest PaymentRequest}\n */\n\n/**\n * @class\n * @param {object} options Options\n * @description You cannot use this constructor directly. Use {@link module:braintree-web/apple-pay.create|braintree.applePay.create} instead.\n * @classdesc This class represents an Apple Pay component. Instances of this class have methods for validating the merchant server and tokenizing payments.\n */\nfunction ApplePay(options) {\n this._instantiatedWithClient = Boolean(!options.useDeferredClient);\n this._client = options.client;\n this._createPromise = options.createPromise;\n\n if (this._client) {\n this._setMerchantIdentifier();\n }\n}\n\nApplePay.prototype._waitForClient = function () {\n if (this._client) {\n return Promise.resolve();\n }\n\n return this._createPromise.then(\n function (client) {\n this._client = client;\n\n this._setMerchantIdentifier();\n }.bind(this)\n );\n};\n\nApplePay.prototype._setMerchantIdentifier = function () {\n var applePayConfig =\n this._client.getConfiguration().gatewayConfiguration.applePayWeb;\n\n if (!applePayConfig) {\n return;\n }\n /**\n * @name ApplePay#merchantIdentifier\n * @description A special merchant ID which represents the merchant association with Braintree. Required when using `ApplePaySession.canMakePaymentsWithActiveCard`.\n * @example\n * var promise = ApplePaySession.canMakePaymentsWithActiveCard(applePayInstance.merchantIdentifier);\n * promise.then(function (canMakePaymentsWithActiveCard) {\n * if (canMakePaymentsWithActiveCard) {\n * // Set up Apple Pay buttons\n * }\n * });\n */\n Object.defineProperty(this, \"merchantIdentifier\", {\n value: applePayConfig.merchantIdentifier,\n configurable: false,\n writable: false,\n });\n};\n\n/**\n * Merges a payment request with Braintree defaults to return an {external:ApplePayPaymentRequest}.\n *\n * The following properties are assigned to `paymentRequest` if not already defined. Their default values come from the Braintree gateway.\n * - `countryCode`\n * - `currencyCode`\n * - `merchantCapabilities`\n * - `supportedNetworks`\n * @public\n * @param {external:ApplePayPaymentRequest} paymentRequest The payment request details to apply on top of those from Braintree.\n * @returns {external:ApplePayPaymentRequest|Promise} The decorated `paymentRequest` object. If `useDeferredClient` is used along with an `authorization`, this method will return a promise that resolves with the `paymentRequest` object.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n *\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * // ...\n * @example With deferred client\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({\n * authorization: 'client-token-or-tokenization-key',\n * useDeferredClient: true\n * }, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * }).then(function (paymentRequest) {\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * // ...\n * });\n */\nApplePay.prototype.createPaymentRequest = function (paymentRequest) {\n if (this._instantiatedWithClient) {\n return this._createPaymentRequestSynchronously(paymentRequest);\n }\n\n return this._waitForClient().then(\n function () {\n return this._createPaymentRequestSynchronously(paymentRequest);\n }.bind(this)\n );\n};\n\nApplePay.prototype._createPaymentRequestSynchronously = function (\n paymentRequest\n) {\n var applePay =\n this._client.getConfiguration().gatewayConfiguration.applePayWeb;\n var defaults = {\n countryCode: applePay.countryCode,\n currencyCode: applePay.currencyCode,\n merchantCapabilities: applePay.merchantCapabilities || [\"supports3DS\"],\n supportedNetworks: applePay.supportedNetworks.map(function (network) {\n return network === \"mastercard\" ? \"masterCard\" : network;\n }),\n };\n\n return Object.assign({}, defaults, paymentRequest);\n};\n\n/**\n * Validates your merchant website, as required by `ApplePaySession` before payment can be authorized.\n * @public\n * @param {object} options Options\n * @param {string} options.validationURL The validationURL from an `ApplePayValidateMerchantEvent`.\n * @param {string} options.displayName The canonical name for your store. Use a non-localized name. This parameter should be a UTF-8 string that is a maximum of 64 characters. The system may display this name to the user.\n * @param {callback} [callback] The second argument, data, is the Apple Pay merchant session object. If no callback is provided, `performValidation` returns a promise.\n * Pass the merchant session to your Apple Pay session's `completeMerchantValidation` method.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * session.onvalidatemerchant = function (event) {\n * applePayInstance.performValidation({\n * validationURL: event.validationURL,\n * displayName: 'My Great Store'\n * }, function (validationErr, validationData) {\n * if (validationErr) {\n * console.error(validationErr);\n * session.abort();\n * return;\n * }\n *\n * session.completeMerchantValidation(validationData);\n * });\n * };\n * });\n */\nApplePay.prototype.performValidation = function (options) {\n var self = this;\n\n if (!options || !options.validationURL) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_VALIDATION_URL_REQUIRED)\n );\n }\n\n return this._waitForClient()\n .then(function () {\n var applePayWebSession = {\n validationUrl: options.validationURL,\n domainName: options.domainName || window.location.hostname,\n merchantIdentifier:\n options.merchantIdentifier || self.merchantIdentifier,\n };\n\n if (options.displayName != null) {\n applePayWebSession.displayName = options.displayName;\n }\n\n return self._client.request({\n method: \"post\",\n endpoint: \"apple_pay_web/sessions\",\n data: {\n _meta: { source: \"apple-pay\" },\n applePayWebSession: applePayWebSession,\n },\n });\n })\n .then(function (response) {\n analytics.sendEvent(self._client, \"applepay.performValidation.succeeded\");\n\n return Promise.resolve(response);\n })\n .catch(function (err) {\n analytics.sendEvent(self._client, \"applepay.performValidation.failed\");\n\n if (err.code === \"CLIENT_REQUEST_ERROR\") {\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.type,\n code: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.code,\n message: errors.APPLE_PAY_MERCHANT_VALIDATION_FAILED.message,\n details: {\n originalError: err.details.originalError,\n },\n })\n );\n }\n\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.type,\n code: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.code,\n message: errors.APPLE_PAY_MERCHANT_VALIDATION_NETWORK.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Tokenizes an Apple Pay payment. This will likely be called in your `ApplePaySession`'s `onpaymentauthorized` callback.\n * @public\n * @param {object} options Options\n * @param {object} options.token The `payment.token` property of an {@link external:ApplePayPaymentAuthorizedEvent}.\n * @param {callback} [callback] The second argument, data, is a {@link ApplePay~tokenizePayload|tokenizePayload}. If no callback is provided, `tokenize` returns a promise that resolves with a {@link ApplePay~tokenizePayload|tokenizePayload}.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var applePay = require('braintree-web/apple-pay');\n *\n * applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) {\n * if (applePayErr) {\n * // Handle error here\n * return;\n * }\n *\n * var paymentRequest = applePayInstance.createPaymentRequest({\n * total: {\n * label: 'My Company',\n * amount: '19.99'\n * }\n * });\n * var session = new ApplePaySession(3, paymentRequest);\n *\n * session.onpaymentauthorized = function (event) {\n * applePayInstance.tokenize({\n * token: event.payment.token\n * }, function (tokenizeErr, tokenizedPayload) {\n * if (tokenizeErr) {\n * session.completePayment(ApplePaySession.STATUS_FAILURE);\n * return;\n * }\n * // Send the tokenizedPayload to your server here!\n *\n * // Once the transaction is complete, call completePayment\n * // to close the Apple Pay sheet\n * session.completePayment(ApplePaySession.STATUS_SUCCESS);\n * });\n * };\n *\n * // ...\n * });\n */\nApplePay.prototype.tokenize = function (options) {\n var self = this;\n\n if (!options.token) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_PAYMENT_TOKEN_REQUIRED)\n );\n }\n\n return this._waitForClient()\n .then(function () {\n return self._client.request({\n method: \"post\",\n endpoint: \"payment_methods/apple_payment_tokens\",\n data: {\n _meta: {\n source: \"apple-pay\",\n },\n applePaymentToken: Object.assign({}, options.token, {\n // The gateway requires this key to be base64-encoded.\n paymentData: btoa(JSON.stringify(options.token.paymentData)),\n }),\n },\n });\n })\n .then(function (response) {\n analytics.sendEvent(self._client, \"applepay.tokenize.succeeded\");\n\n return Promise.resolve(response.applePayCards[0]);\n })\n .catch(function (err) {\n analytics.sendEvent(self._client, \"applepay.tokenize.failed\");\n\n return Promise.reject(\n new BraintreeError({\n type: errors.APPLE_PAY_TOKENIZATION.type,\n code: errors.APPLE_PAY_TOKENIZATION.code,\n message: errors.APPLE_PAY_TOKENIZATION.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/apple-pay.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * applePayInstance.teardown();\n * @example With callback\n * applePayInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nApplePay.prototype.teardown = function () {\n convertMethodsToError(this, methods(ApplePay.prototype));\n\n return Promise.resolve();\n};\n\nmodule.exports = wrapPromise.wrapPrototype(ApplePay);\n\n},{\"../lib/analytics\":119,\"../lib/braintree-error\":124,\"../lib/convert-methods-to-error\":127,\"../lib/methods\":155,\"./errors\":76,\"@braintree/wrap-promise\":43}],76:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Apple Pay - Creation Error Codes\n * @description Errors that occur when [creating the Apple Pay component](./module-braintree-web_apple-pay.html#.create).\n * @property {MERCHANT} APPLE_PAY_NOT_ENABLED Occurs when the authorization used is not authorized to process Apple Pay.\n */\n\n/**\n * @name BraintreeError.Apple Pay - performValidation Error Codes\n * @description Errors that occur when [validating](./ApplePay.html#performValidation).\n * @property {MERCHANT} APPLE_PAY_VALIDATION_URL_REQUIRED Occurs when the `validationURL` option is not passed in.\n * @property {MERCHANT} APPLE_PAY_MERCHANT_VALIDATION_FAILED Occurs when the website domain has not been registered in the Braintree control panel.\n * @property {NETWORK} APPLE_PAY_MERCHANT_VALIDATION_NETWORK Occurs when an unknown network error occurs.\n */\n\n/**\n * @name BraintreeError.Apple Pay - tokenize Error Codes\n * @description Errors that occur when [tokenizing](./ApplePay.html#tokenize).\n * @property {MERCHANT} APPLE_PAY_PAYMENT_TOKEN_REQUIRED Occurs when the `token` option is not passed in.\n * @property {NETWORK} APPLE_PAY_TOKENIZATION Occurs when an unknown network error occurs.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n APPLE_PAY_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_NOT_ENABLED\",\n message: \"Apple Pay is not enabled for this merchant.\",\n },\n APPLE_PAY_VALIDATION_URL_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_VALIDATION_URL_REQUIRED\",\n message: \"performValidation must be called with a validationURL.\",\n },\n APPLE_PAY_MERCHANT_VALIDATION_NETWORK: {\n type: BraintreeError.types.NETWORK,\n code: \"APPLE_PAY_MERCHANT_VALIDATION_NETWORK\",\n message: \"A network error occurred when validating the Apple Pay merchant.\",\n },\n APPLE_PAY_MERCHANT_VALIDATION_FAILED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_MERCHANT_VALIDATION_FAILED\",\n message:\n \"Make sure you have registered your domain name in the Braintree Control Panel.\",\n },\n APPLE_PAY_PAYMENT_TOKEN_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"APPLE_PAY_PAYMENT_TOKEN_REQUIRED\",\n message: \"tokenize must be called with a payment token.\",\n },\n APPLE_PAY_TOKENIZATION: {\n type: BraintreeError.types.NETWORK,\n code: \"APPLE_PAY_TOKENIZATION\",\n message: \"A network error occurred when processing the Apple Pay payment.\",\n },\n};\n\n},{\"../lib/braintree-error\":124}],77:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @module braintree-web/apple-pay\n * @description Accept Apple Pay on the Web. *This component is currently in beta and is subject to change.*\n */\n\nvar ApplePay = _dereq_(\"./apple-pay\");\nvar analytics = _dereq_(\"../lib/analytics\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar errors = _dereq_(\"./errors\");\nvar VERSION = \"3.100.0\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Apple Pay instance to be available right away by fetching the client configuration in the background. When this option is used, {@link ApplePay#createPaymentRequest} will return a promise that resolves with the configuration instead of returning synchronously.\n * @param {callback} [callback] The second argument, `data`, is the {@link ApplePay} instance. If no callback is provided, `create` returns a promise that resolves with the {@link ApplePay} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"Apple Pay\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n var applePayInstance;\n var createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n if (!client.getConfiguration().gatewayConfiguration.applePayWeb) {\n return Promise.reject(\n new BraintreeError(errors.APPLE_PAY_NOT_ENABLED)\n );\n }\n\n analytics.sendEvent(client, \"applepay.initialized\");\n\n return client;\n });\n\n options.createPromise = createPromise;\n applePayInstance = new ApplePay(options);\n\n if (!options.useDeferredClient) {\n return createPromise.then(function (client) {\n applePayInstance._client = client;\n\n return applePayInstance;\n });\n }\n\n return applePayInstance;\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/analytics\":119,\"../lib/basic-component-verification\":122,\"../lib/braintree-error\":124,\"../lib/create-assets-url\":129,\"../lib/create-deferred-client\":131,\"./apple-pay\":75,\"./errors\":76,\"@braintree/wrap-promise\":43}],78:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BRAINTREE_VERSION = _dereq_(\"./constants\").BRAINTREE_VERSION;\n\nvar GraphQL = _dereq_(\"./request/graphql\");\nvar request = _dereq_(\"./request\");\nvar isVerifiedDomain = _dereq_(\"../lib/is-verified-domain\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar convertToBraintreeError = _dereq_(\"../lib/convert-to-braintree-error\");\nvar getGatewayConfiguration = _dereq_(\"./get-configuration\").getConfiguration;\nvar createAuthorizationData = _dereq_(\"../lib/create-authorization-data\");\nvar addMetadata = _dereq_(\"../lib/add-metadata\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar once = _dereq_(\"../lib/once\");\nvar deferred = _dereq_(\"../lib/deferred\");\nvar assign = _dereq_(\"../lib/assign\").assign;\nvar analytics = _dereq_(\"../lib/analytics\");\nvar errors = _dereq_(\"./errors\");\nvar VERSION = _dereq_(\"../lib/constants\").VERSION;\nvar GRAPHQL_URLS = _dereq_(\"../lib/constants\").GRAPHQL_URLS;\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar assets = _dereq_(\"../lib/assets\");\nvar FRAUDNET_FNCLS = _dereq_(\"../lib/constants\").FRAUDNET_FNCLS;\nvar FRAUDNET_SOURCE = _dereq_(\"../lib/constants\").FRAUDNET_SOURCE;\nvar FRAUDNET_URL = _dereq_(\"../lib/constants\").FRAUDNET_URL;\n\nvar cachedClients = {};\n\n/**\n * This object is returned by {@link Client#getConfiguration|getConfiguration}. This information is used extensively by other Braintree modules to properly configure themselves.\n * @typedef {object} Client~configuration\n * @property {object} client The braintree-web/client parameters.\n * @property {string} client.authorization A tokenizationKey or clientToken.\n * @property {object} gatewayConfiguration Gateway-supplied configuration.\n * @property {object} analyticsMetadata Analytics-specific data.\n * @property {string} analyticsMetadata.sessionId Uniquely identifies a browsing session.\n * @property {string} analyticsMetadata.sdkVersion The braintree.js version.\n * @property {string} analyticsMetadata.merchantAppId Identifies the merchant's web app.\n */\n\n/**\n * @class\n * @param {Client~configuration} configuration Options\n * @description Do not use this constructor directly. Use {@link module:braintree-web/client.create|braintree.client.create} instead.\n * @classdesc This class is required by many other Braintree components. It serves as the base API layer that communicates with our servers. It is also capable of being used to formulate direct calls to our servers, such as direct credit card tokenization. See {@link Client#request}.\n */\nfunction Client(configuration) {\n var configurationJSON, gatewayConfiguration;\n\n configuration = configuration || {};\n\n configurationJSON = JSON.stringify(configuration);\n gatewayConfiguration = configuration.gatewayConfiguration;\n\n if (!gatewayConfiguration) {\n throw new BraintreeError(errors.CLIENT_MISSING_GATEWAY_CONFIGURATION);\n }\n\n [\"assetsUrl\", \"clientApiUrl\", \"configUrl\"].forEach(function (property) {\n if (\n property in gatewayConfiguration &&\n !isVerifiedDomain(gatewayConfiguration[property])\n ) {\n throw new BraintreeError({\n type: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,\n code: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,\n message: property + \" property is on an invalid domain.\",\n });\n }\n });\n\n /**\n * Returns a copy of the configuration values.\n * @public\n * @returns {Client~configuration} configuration\n */\n this.getConfiguration = function () {\n return JSON.parse(configurationJSON);\n };\n\n this._request = request;\n this._configuration = this.getConfiguration();\n\n this._clientApiBaseUrl = gatewayConfiguration.clientApiUrl + \"/v1/\";\n\n if (gatewayConfiguration.graphQL) {\n if (!isVerifiedDomain(gatewayConfiguration.graphQL.url)) {\n throw new BraintreeError({\n type: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,\n code: errors.CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,\n message: \"graphQL.url property is on an invalid domain.\",\n });\n }\n\n this._graphQL = new GraphQL({\n graphQL: gatewayConfiguration.graphQL,\n });\n }\n}\n\nClient.initialize = function (options) {\n var clientInstance, authData;\n var promise = cachedClients[options.authorization];\n\n if (promise) {\n analytics.sendEvent(promise, \"custom.client.load.cached\");\n\n return promise;\n }\n\n try {\n authData = createAuthorizationData(options.authorization);\n } catch (err) {\n return Promise.reject(\n new BraintreeError(errors.CLIENT_INVALID_AUTHORIZATION)\n );\n }\n\n promise = getGatewayConfiguration(authData).then(function (configuration) {\n if (options.debug) {\n configuration.isDebug = true;\n }\n\n configuration.authorization = options.authorization;\n\n clientInstance = new Client(configuration);\n\n return clientInstance;\n });\n\n cachedClients[options.authorization] = promise;\n\n analytics.sendEvent(promise, \"custom.client.load.initialized\");\n\n return promise\n .then(function (client) {\n analytics.sendEvent(clientInstance, \"custom.client.load.succeeded\");\n\n return client;\n })\n .catch(function (err) {\n delete cachedClients[options.authorization];\n\n return Promise.reject(err);\n });\n};\n\n// Primarily used for testing the client initalization call\nClient.clearCache = function () {\n cachedClients = {};\n};\n\nClient.prototype._findOrCreateFraudnetJSON = function (clientMetadataId) {\n var el = document.querySelector('script[fncls=\"' + FRAUDNET_FNCLS + '\"]');\n var config, additionalData, authorizationFingerprint, parameters;\n\n if (!el) {\n el = document.body.appendChild(document.createElement(\"script\"));\n el.type = \"application/json\";\n el.setAttribute(\"fncls\", FRAUDNET_FNCLS);\n }\n\n config = this.getConfiguration();\n additionalData = {\n rda_tenant: \"bt_card\", // eslint-disable-line camelcase\n mid: config.gatewayConfiguration.merchantId,\n };\n authorizationFingerprint = config.authorizationFingerprint;\n\n if (authorizationFingerprint) {\n authorizationFingerprint.split(\"&\").forEach(function (pieces) {\n var component = pieces.split(\"=\");\n\n if (component[0] === \"customer_id\" && component.length > 1) {\n additionalData.cid = component[1];\n }\n });\n }\n\n parameters = {\n f: clientMetadataId.substr(0, 32),\n fp: additionalData,\n bu: false,\n s: FRAUDNET_SOURCE,\n };\n el.text = JSON.stringify(parameters);\n};\n\n/**\n * Used by other modules to formulate all network requests to the Braintree gateway. It is also capable of being used directly from your own form to tokenize credit card information. However, be sure to satisfy PCI compliance if you use direct card tokenization.\n * @public\n * @param {object} options Request options:\n * @param {string} options.method HTTP method, e.g. \"get\" or \"post\".\n * @param {string} options.endpoint Endpoint path, e.g. \"payment_methods\".\n * @param {object} options.data Data to send with the request.\n * @param {number} [options.timeout=60000] Set a timeout (in milliseconds) for the request.\n * @param {callback} [callback] The second argument, data, is the returned server data.\n * @example\n * Direct Credit Card Tokenization\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * var form = document.getElementById('my-form-id');\n * var data = {\n * creditCard: {\n * number: form['cc-number'].value,\n * cvv: form['cc-cvv'].value,\n * expirationDate: form['cc-expiration-date'].value,\n * billingAddress: {\n * postalCode: form['cc-postal-code'].value\n * },\n * options: {\n * validate: false\n * }\n * }\n * };\n *\n * // Warning: For a merchant to be eligible for the easiest level of PCI compliance (SAQ A),\n * // payment fields cannot be hosted on your checkout page.\n * // For an alternative to the following, use Hosted Fields.\n * clientInstance.request({\n * endpoint: 'payment_methods/credit_cards',\n * method: 'post',\n * data: data\n * }, function (requestErr, response) {\n * // More detailed example of handling API errors: https://codepen.io/braintree/pen/MbwjdM\n * if (requestErr) { throw new Error(requestErr); }\n *\n * console.log('Got nonce:', response.creditCards[0].nonce);\n * });\n * });\n * @example\n * Tokenizing Fields for AVS Checks\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * var form = document.getElementById('my-form-id');\n * var data = {\n * creditCard: {\n * number: form['cc-number'].value,\n * cvv: form['cc-cvv'].value,\n * expirationDate: form['cc-date'].value,\n * // The billing address can be checked with AVS rules.\n * // See: https://articles.braintreepayments.com/support/guides/fraud-tools/basic/avs-cvv-rules\n * billingAddress: {\n * postalCode: form['cc-postal-code'].value,\n * streetAddress: form['cc-street-address'].value,\n * countryName: form['cc-country-name'].value,\n * countryCodeAlpha2: form['cc-country-alpha2'].value,\n * countryCodeAlpha3: form['cc-country-alpha3'].value,\n * countryCodeNumeric: form['cc-country-numeric'].value\n * },\n * options: {\n * validate: false\n * }\n * }\n * };\n *\n * // Warning: For a merchant to be eligible for the easiest level of PCI compliance (SAQ A),\n * // payment fields cannot be hosted on your checkout page.\n * // For an alternative to the following, use Hosted Fields.\n * clientInstance.request({\n * endpoint: 'payment_methods/credit_cards',\n * method: 'post',\n * data: data\n * }, function (requestErr, response) {\n * // More detailed example of handling API errors: https://codepen.io/braintree/pen/MbwjdM\n * if (requestErr) { throw new Error(requestErr); }\n *\n * console.log('Got nonce:', response.creditCards[0].nonce);\n * });\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nClient.prototype.request = function (options, callback) {\n var self = this; // eslint-disable-line no-invalid-this\n var requestPromise = new Promise(function (resolve, reject) {\n var optionName, api, baseUrl, requestOptions;\n var shouldCollectData = Boolean(\n options.endpoint === \"payment_methods/credit_cards\" &&\n self.getConfiguration().gatewayConfiguration.creditCards\n .collectDeviceData\n );\n\n if (options.api !== \"graphQLApi\") {\n if (!options.method) {\n optionName = \"options.method\";\n } else if (!options.endpoint) {\n optionName = \"options.endpoint\";\n }\n }\n\n if (optionName) {\n throw new BraintreeError({\n type: errors.CLIENT_OPTION_REQUIRED.type,\n code: errors.CLIENT_OPTION_REQUIRED.code,\n message: optionName + \" is required when making a request.\",\n });\n }\n\n if (\"api\" in options) {\n api = options.api;\n } else {\n api = \"clientApi\";\n }\n\n requestOptions = {\n method: options.method,\n graphQL: self._graphQL,\n timeout: options.timeout,\n metadata: self._configuration.analyticsMetadata,\n };\n\n if (api === \"clientApi\") {\n baseUrl = self._clientApiBaseUrl;\n\n requestOptions.data = addMetadata(self._configuration, options.data);\n } else if (api === \"graphQLApi\") {\n baseUrl =\n GRAPHQL_URLS[self._configuration.gatewayConfiguration.environment];\n options.endpoint = \"\";\n requestOptions.method = \"post\";\n requestOptions.data = assign(\n {\n clientSdkMetadata: {\n platform: self._configuration.analyticsMetadata.platform,\n source: self._configuration.analyticsMetadata.source,\n integration: self._configuration.analyticsMetadata.integration,\n sessionId: self._configuration.analyticsMetadata.sessionId,\n version: VERSION,\n },\n },\n options.data\n );\n\n requestOptions.headers = getAuthorizationHeadersForGraphQL(\n self._configuration\n );\n } else {\n throw new BraintreeError({\n type: errors.CLIENT_OPTION_INVALID.type,\n code: errors.CLIENT_OPTION_INVALID.code,\n message: \"options.api is invalid.\",\n });\n }\n\n requestOptions.url = baseUrl + options.endpoint;\n requestOptions.sendAnalyticsEvent = function (kind) {\n analytics.sendEvent(self, kind);\n };\n\n self._request(requestOptions, function (err, data, status) {\n var resolvedData, requestError;\n\n requestError = formatRequestError(status, err);\n\n if (requestError) {\n reject(requestError);\n\n return;\n }\n\n if (api === \"graphQLApi\" && data.errors) {\n reject(\n convertToBraintreeError(data.errors, {\n type: errors.CLIENT_GRAPHQL_REQUEST_ERROR.type,\n code: errors.CLIENT_GRAPHQL_REQUEST_ERROR.code,\n message: errors.CLIENT_GRAPHQL_REQUEST_ERROR.message,\n })\n );\n\n return;\n }\n\n resolvedData = assign({ _httpStatus: status }, data);\n\n if (\n shouldCollectData &&\n resolvedData.creditCards &&\n resolvedData.creditCards.length > 0\n ) {\n self._findOrCreateFraudnetJSON(resolvedData.creditCards[0].nonce);\n\n assets.loadScript({\n src: FRAUDNET_URL,\n forceScriptReload: true,\n });\n }\n resolve(resolvedData);\n });\n });\n\n if (typeof callback === \"function\") {\n callback = once(deferred(callback));\n\n requestPromise\n .then(function (response) {\n callback(null, response, response._httpStatus);\n })\n .catch(function (err) {\n var status = err && err.details && err.details.httpStatus;\n\n callback(err, null, status);\n });\n\n return;\n }\n\n return requestPromise; // eslint-disable-line consistent-return\n};\n\n// eslint-disable-next-line consistent-return\nfunction formatRequestError(status, err) {\n var requestError;\n\n if (status === -1) {\n requestError = new BraintreeError(errors.CLIENT_REQUEST_TIMEOUT);\n } else if (status === 401) {\n requestError = new BraintreeError(errors.CLIENT_AUTHORIZATION_INVALID);\n } else if (status === 403) {\n requestError = new BraintreeError(errors.CLIENT_AUTHORIZATION_INSUFFICIENT);\n } else if (status === 429) {\n requestError = new BraintreeError(errors.CLIENT_RATE_LIMITED);\n } else if (status >= 500) {\n requestError = new BraintreeError(errors.CLIENT_GATEWAY_NETWORK);\n } else if (status < 200 || status >= 400) {\n requestError = convertToBraintreeError(err, {\n type: errors.CLIENT_REQUEST_ERROR.type,\n code: errors.CLIENT_REQUEST_ERROR.code,\n message: errors.CLIENT_REQUEST_ERROR.message,\n });\n }\n\n if (requestError) {\n requestError.details = requestError.details || {};\n requestError.details.httpStatus = status;\n\n return requestError;\n }\n}\n\nClient.prototype.toJSON = function () {\n return this.getConfiguration();\n};\n\n/**\n * Returns the Client version.\n * @public\n * @returns {String} The created client's version.\n * @example\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * console.log(clientInstance.getVersion()); // Ex: 1.0.0\n * });\n * @returns {void}\n */\nClient.prototype.getVersion = function () {\n return VERSION;\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/client.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * clientInstance.teardown();\n * @example With callback\n * clientInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nClient.prototype.teardown = wrapPromise(function () {\n var self = this; // eslint-disable-line no-invalid-this\n\n delete cachedClients[self.getConfiguration().authorization];\n convertMethodsToError(self, methods(Client.prototype));\n\n return Promise.resolve();\n});\n\nfunction getAuthorizationHeadersForGraphQL(configuration) {\n var token =\n configuration.authorizationFingerprint || configuration.authorization;\n\n return {\n Authorization: \"Bearer \" + token,\n \"Braintree-Version\": BRAINTREE_VERSION,\n };\n}\n\nmodule.exports = Client;\n\n},{\"../lib/add-metadata\":118,\"../lib/analytics\":119,\"../lib/assets\":120,\"../lib/assign\":121,\"../lib/braintree-error\":124,\"../lib/constants\":126,\"../lib/convert-methods-to-error\":127,\"../lib/convert-to-braintree-error\":128,\"../lib/create-authorization-data\":130,\"../lib/deferred\":132,\"../lib/is-verified-domain\":153,\"../lib/methods\":155,\"../lib/once\":156,\"./constants\":79,\"./errors\":80,\"./get-configuration\":81,\"./request\":92,\"./request/graphql\":90,\"@braintree/wrap-promise\":43}],79:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = {\n BRAINTREE_VERSION: \"2018-05-10\",\n};\n\n},{}],80:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Client - Internal Error Codes\n * @ignore\n * @description These codes should never be experienced by the merchant directly.\n * @property {MERCHANT} CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN An error to prevent client creation for domains that are not allowed in the JS.\n * @property {INTERNAL} CLIENT_MISSING_GATEWAY_CONFIGURATION Occurs when the client is created without a gateway configuration. Should never happen.\n */\n\n/**\n * @name BraintreeError.Client - Create Error Codes\n * @description Errors that may occur when [creating the client](./module-braintree-web_client.html#.create)\n * @property {MERCHANT} CLIENT_INVALID_AUTHORIZATION Occurs when client token cannot be parsed.\n */\n\n/**\n * @name BraintreeError.Client - Request Error Codes\n * @description Errors that may occur when [using the request method](./Client.html#request)\n * @property {MERCHANT} CLIENT_OPTION_REQUIRED An option required in the request method was not provided. Usually `options.method` or `options.endpoint`\n * @property {MERCHANT} CLIENT_OPTION_INVALID The request option provided is invalid.\n * @property {MERCHANT} CLIENT_GATEWAY_NETWORK The Braintree gateway could not be contacted.\n * @property {NETWORK} CLIENT_REQUEST_TIMEOUT The request took too long to complete and timed out.\n * @property {NETWORK} CLIENT_REQUEST_ERROR The response from a request had status 400 or greater.\n * @property {NETWORK} CLIENT_GRAPHQL_REQUEST_ERROR The response from a request to GraphQL contained an error.\n * @property {MERCHANT} CLIENT_RATE_LIMITED The response from a request had a status of 429, indicating rate limiting.\n * @property {MERCHANT} CLIENT_AUTHORIZATION_INSUFFICIENT The user associated with the client token or tokenization key does not have permissions to make the request.\n * @property {MERCHANT} CLIENT_AUTHORIZATION_INVALID The provided authorization could not be found. Either the client token has expired and a new client token must be generated or the tokenization key used is set to be inactive or has been deleted.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_GATEWAY_CONFIGURATION_INVALID_DOMAIN\",\n },\n CLIENT_OPTION_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_OPTION_REQUIRED\",\n },\n CLIENT_OPTION_INVALID: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_OPTION_INVALID\",\n },\n CLIENT_MISSING_GATEWAY_CONFIGURATION: {\n type: BraintreeError.types.INTERNAL,\n code: \"CLIENT_MISSING_GATEWAY_CONFIGURATION\",\n message: \"Missing gatewayConfiguration.\",\n },\n CLIENT_INVALID_AUTHORIZATION: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_INVALID_AUTHORIZATION\",\n message:\n \"Authorization is invalid. Make sure your client token or tokenization key is valid.\",\n },\n CLIENT_GATEWAY_NETWORK: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_GATEWAY_NETWORK\",\n message: \"Cannot contact the gateway at this time.\",\n },\n CLIENT_REQUEST_TIMEOUT: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_REQUEST_TIMEOUT\",\n message: \"Request timed out waiting for a reply.\",\n },\n CLIENT_REQUEST_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_REQUEST_ERROR\",\n message: \"There was a problem with your request.\",\n },\n CLIENT_GRAPHQL_REQUEST_ERROR: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_GRAPHQL_REQUEST_ERROR\",\n message: \"There was a problem with your request.\",\n },\n CLIENT_RATE_LIMITED: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_RATE_LIMITED\",\n message: \"You are being rate-limited; please try again in a few minutes.\",\n },\n CLIENT_AUTHORIZATION_INSUFFICIENT: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_AUTHORIZATION_INSUFFICIENT\",\n message: \"The authorization used has insufficient privileges.\",\n },\n CLIENT_AUTHORIZATION_INVALID: {\n type: BraintreeError.types.MERCHANT,\n code: \"CLIENT_AUTHORIZATION_INVALID\",\n message:\n \"Either the client token has expired and a new one should be generated or the tokenization key has been deactivated or deleted.\",\n },\n};\n\n},{\"../lib/braintree-error\":124}],81:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar request = _dereq_(\"./request\");\nvar uuid = _dereq_(\"@braintree/uuid\");\nvar constants = _dereq_(\"../lib/constants\");\nvar errors = _dereq_(\"./errors\");\nvar GraphQL = _dereq_(\"./request/graphql\");\nvar GRAPHQL_URLS = _dereq_(\"../lib/constants\").GRAPHQL_URLS;\nvar isDateStringBeforeOrOn = _dereq_(\"../lib/is-date-string-before-or-on\");\n\nvar BRAINTREE_VERSION = _dereq_(\"./constants\").BRAINTREE_VERSION;\n\nfunction getConfiguration(authData) {\n return new Promise(function (resolve, reject) {\n var configuration, attrs, configUrl, reqOptions;\n var sessionId = uuid();\n var analyticsMetadata = {\n merchantAppId: window.location.host,\n platform: constants.PLATFORM,\n sdkVersion: constants.VERSION,\n source: constants.SOURCE,\n // NEXT_MAJOR_VERSION remove one of these to not duplicate data. Target parity with mobile platforms approach.\n integration: constants.INTEGRATION,\n integrationType: constants.INTEGRATION,\n sessionId: sessionId,\n };\n\n attrs = authData.attrs;\n configUrl = authData.configUrl;\n\n attrs._meta = analyticsMetadata;\n attrs.braintreeLibraryVersion = constants.BRAINTREE_LIBRARY_VERSION;\n attrs.configVersion = \"3\";\n\n reqOptions = {\n url: configUrl,\n method: \"GET\",\n data: attrs,\n };\n\n if (attrs.authorizationFingerprint && authData.graphQL) {\n if (isDateStringBeforeOrOn(authData.graphQL.date, BRAINTREE_VERSION)) {\n reqOptions.graphQL = new GraphQL({\n graphQL: {\n url: authData.graphQL.url,\n features: [\"configuration\"],\n },\n });\n }\n\n reqOptions.metadata = analyticsMetadata;\n } else if (attrs.tokenizationKey) {\n reqOptions.graphQL = new GraphQL({\n graphQL: {\n url: GRAPHQL_URLS[authData.environment],\n features: [\"configuration\"],\n },\n });\n\n reqOptions.metadata = analyticsMetadata;\n }\n\n // NEXT_MAJOR_VERSION\n // there are various issues with the config endpoint where the values returned\n // do not match the values from the merchant account id passed into a client token\n // we need to update the configuration request endpoint to be able to pass the\n // correct values. The following ones are incorrect\n // * applePayWeb - definitely supportedNetworks, which compiles all the card\n // networks from all the merchant accounts instead of providing just the\n // ones from the specified one. The same is probably true for ios apple pay\n // Also the merchantidentifier\n // NEXT_MAJOR_VERSION Allow passing in merchant account id when creating the component\n // to fetch the config for that merchant account id (particularly helpful when using\n // a tokenization key for authorization)\n request(reqOptions, function (err, response, status) {\n var errorTemplate;\n\n if (err) {\n if (status === 403) {\n errorTemplate = errors.CLIENT_AUTHORIZATION_INSUFFICIENT;\n } else if (status === 401) {\n errorTemplate = errors.CLIENT_AUTHORIZATION_INVALID;\n } else {\n errorTemplate = errors.CLIENT_GATEWAY_NETWORK;\n }\n\n reject(\n new BraintreeError({\n type: errorTemplate.type,\n code: errorTemplate.code,\n message: errorTemplate.message,\n details: {\n originalError: err,\n },\n })\n );\n\n return;\n }\n\n configuration = {\n authorizationType: attrs.tokenizationKey\n ? \"TOKENIZATION_KEY\"\n : \"CLIENT_TOKEN\",\n authorizationFingerprint: attrs.authorizationFingerprint,\n analyticsMetadata: analyticsMetadata,\n gatewayConfiguration: response,\n };\n\n resolve(configuration);\n });\n });\n}\n\nmodule.exports = {\n getConfiguration: wrapPromise(getConfiguration),\n};\n\n},{\"../lib/braintree-error\":124,\"../lib/constants\":126,\"../lib/is-date-string-before-or-on\":151,\"./constants\":79,\"./errors\":80,\"./request\":92,\"./request/graphql\":90,\"@braintree/uuid\":39,\"@braintree/wrap-promise\":43}],82:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar Client = _dereq_(\"./client\");\nvar VERSION = \"3.100.0\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar sharedErrors = _dereq_(\"../lib/errors\");\n\n/** @module braintree-web/client */\n\n/**\n * @function create\n * @description This function is the entry point for the braintree.client module. It is used for creating {@link Client} instances that service communication to Braintree servers.\n * @param {object} options Object containing all {@link Client} options:\n * @param {string} options.authorization A tokenizationKey or clientToken.\n * @param {callback} [callback] The second argument, data, is the {@link Client} instance.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * var createClient = require('braintree-web/client').create;\n *\n * createClient({\n * authorization: CLIENT_AUTHORIZATION\n * }, function (createErr, clientInstance) {\n * if (createErr) {\n * if (createErr.code === 'CLIENT_AUTHORIZATION_INVALID') {\n * // either the client token has expired, and a new one should be generated\n * // or the tokenization key was deactivated or deleted\n * } else {\n * console.log('something went wrong creating the client instance', createErr);\n * }\n * return;\n * }\n *\n * // set up other components\n * });\n * @static\n */\nfunction create(options) {\n if (!options.authorization) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n message:\n \"options.authorization is required when instantiating a client.\",\n })\n );\n }\n\n return Client.initialize(options);\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/braintree-error\":124,\"../lib/errors\":135,\"./client\":78,\"@braintree/wrap-promise\":43}],83:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar querystring = _dereq_(\"../../lib/querystring\");\nvar assign = _dereq_(\"../../lib/assign\").assign;\nvar prepBody = _dereq_(\"./prep-body\");\nvar parseBody = _dereq_(\"./parse-body\");\nvar xhr = _dereq_(\"./xhr\");\nvar isXHRAvailable = xhr.isAvailable;\nvar GraphQLRequest = _dereq_(\"./graphql/request\");\nvar DefaultRequest = _dereq_(\"./default-request\");\n\nvar MAX_TCP_RETRYCOUNT = 1;\nvar TCP_PRECONNECT_BUG_STATUS_CODE = 408;\n\nfunction requestShouldRetry(status) {\n return !status || status === TCP_PRECONNECT_BUG_STATUS_CODE;\n}\n\nfunction graphQLRequestShouldRetryWithClientApi(body) {\n var errorClass =\n !body.data &&\n body.errors &&\n body.errors[0] &&\n body.errors[0].extensions &&\n body.errors[0].extensions.errorClass;\n\n return errorClass === \"UNKNOWN\" || errorClass === \"INTERNAL\";\n}\n\nfunction _requestWithRetry(options, tcpRetryCount, cb) {\n var status, resBody, ajaxRequest, body, method, headers, parsedBody;\n var url = options.url;\n var graphQL = options.graphQL;\n var timeout = options.timeout;\n var req = xhr.getRequestObject();\n var callback = cb;\n var isGraphQLRequest = Boolean(\n graphQL && graphQL.isGraphQLRequest(url, options.data)\n );\n\n options.headers = assign(\n { \"Content-Type\": \"application/json\" },\n options.headers\n );\n\n if (isGraphQLRequest) {\n ajaxRequest = new GraphQLRequest(options);\n } else {\n ajaxRequest = new DefaultRequest(options);\n }\n\n url = ajaxRequest.getUrl();\n body = ajaxRequest.getBody();\n method = ajaxRequest.getMethod();\n headers = ajaxRequest.getHeaders();\n\n if (method === \"GET\") {\n url = querystring.queryify(url, body);\n body = null;\n }\n\n if (isXHRAvailable) {\n req.onreadystatechange = function () {\n if (req.readyState !== 4) {\n return;\n }\n\n if (req.status === 0 && isGraphQLRequest) {\n // If a merchant experiences a connection\n // issue to the GraphQL endpoint (possibly\n // due to a Content Security Policy), retry\n // the request against the old client API.\n delete options.graphQL;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n parsedBody = parseBody(req.responseText);\n resBody = ajaxRequest.adaptResponseBody(parsedBody);\n status = ajaxRequest.determineStatus(req.status, parsedBody);\n\n if (status >= 400 || status < 200) {\n if (\n isGraphQLRequest &&\n graphQLRequestShouldRetryWithClientApi(parsedBody)\n ) {\n delete options.graphQL;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n if (tcpRetryCount < MAX_TCP_RETRYCOUNT && requestShouldRetry(status)) {\n tcpRetryCount++;\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n callback(resBody || \"error\", null, status || 500);\n } else {\n callback(null, resBody, status);\n }\n };\n } else {\n if (options.headers) {\n url = querystring.queryify(url, headers);\n }\n\n req.onload = function () {\n callback(null, parseBody(req.responseText), req.status);\n };\n\n req.onerror = function () {\n // XDomainRequest does not report a body or status for errors, so\n // hardcode to 'error' and 500, respectively\n callback(\"error\", null, 500);\n };\n\n // This must remain for IE9 to work\n req.onprogress = function () {};\n\n req.ontimeout = function () {\n callback(\"timeout\", null, -1);\n };\n }\n\n try {\n req.open(method, url, true);\n } catch (requestOpenError) {\n // If a merchant has a Content Security Policy and they have\n // not allowed our endpoints, some browsers may\n // synchronously throw an error. If it is not a GraphQL\n // request, we throw the error. If it is a GraphQL request\n // we remove the GraphQL option and try the request against\n // the old client API.\n if (!isGraphQLRequest) {\n throw requestOpenError;\n }\n\n delete options.graphQL;\n\n _requestWithRetry(options, tcpRetryCount, cb);\n\n return;\n }\n\n req.timeout = timeout;\n\n if (isXHRAvailable) {\n Object.keys(headers).forEach(function (headerKey) {\n req.setRequestHeader(headerKey, headers[headerKey]);\n });\n }\n\n try {\n req.send(prepBody(method, body));\n } catch (e) {\n /* ignored */\n }\n}\n\nfunction request(options, cb) {\n _requestWithRetry(options, 0, cb);\n}\n\nmodule.exports = {\n request: request,\n};\n\n},{\"../../lib/assign\":121,\"../../lib/querystring\":157,\"./default-request\":84,\"./graphql/request\":91,\"./parse-body\":93,\"./prep-body\":94,\"./xhr\":95}],84:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction DefaultRequest(options) {\n this._url = options.url;\n this._data = options.data;\n this._method = options.method;\n this._headers = options.headers;\n}\n\nDefaultRequest.prototype.getUrl = function () {\n return this._url;\n};\n\nDefaultRequest.prototype.getBody = function () {\n return this._data;\n};\n\nDefaultRequest.prototype.getMethod = function () {\n return this._method;\n};\n\nDefaultRequest.prototype.getHeaders = function () {\n return this._headers;\n};\n\nDefaultRequest.prototype.adaptResponseBody = function (parsedBody) {\n return parsedBody;\n};\n\nDefaultRequest.prototype.determineStatus = function (status) {\n return status;\n};\n\nmodule.exports = DefaultRequest;\n\n},{}],85:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = _dereq_(\"./error\");\nvar assign = _dereq_(\"../../../../lib/assign\").assign;\n\n/* eslint-disable camelcase */\nvar cardTypeTransforms = {\n creditCard: {\n AMERICAN_EXPRESS: \"American Express\",\n DISCOVER: \"Discover\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n SOLO: \"Solo\",\n UK_MAESTRO: \"UK Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n },\n applePayWeb: {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n ELO: \"elo\",\n },\n visaCheckout: {\n VISA: \"Visa\",\n MASTERCARD: \"MasterCard\",\n DISCOVER: \"Discover\",\n AMERICAN_EXPRESS: \"American Express\",\n },\n googlePay: {\n VISA: \"visa\",\n MASTERCARD: \"mastercard\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n ELO: \"elo\",\n },\n masterpass: {\n VISA: \"visa\",\n MASTERCARD: \"master\",\n DISCOVER: \"discover\",\n AMERICAN_EXPRESS: \"amex\",\n DINERS: \"diners\",\n INTERNATIONAL_MAESTRO: \"maestro\",\n JCB: \"jcb\",\n },\n};\n/* eslint-enable camelcase */\n\nfunction configurationResponseAdapter(responseBody, ctx) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse = adaptConfigurationResponseBody(responseBody, ctx);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptConfigurationResponseBody(body, ctx) {\n var configuration = body.data.clientConfiguration;\n var response;\n\n response = {\n environment: configuration.environment.toLowerCase(),\n clientApiUrl: configuration.clientApiUrl,\n assetsUrl: configuration.assetsUrl,\n analytics: {\n url: configuration.analyticsUrl,\n },\n merchantId: configuration.merchantId,\n venmo: \"off\",\n };\n\n if (configuration.supportedFeatures) {\n response.graphQL = {\n url: ctx._graphQL._config.url,\n features: configuration.supportedFeatures.map(function (feature) {\n return feature.toLowerCase();\n }),\n };\n }\n\n if (configuration.braintreeApi) {\n response.braintreeApi = configuration.braintreeApi;\n }\n\n if (configuration.applePayWeb) {\n response.applePayWeb = configuration.applePayWeb;\n response.applePayWeb.supportedNetworks = mapCardTypes(\n configuration.applePayWeb.supportedCardBrands,\n cardTypeTransforms.applePayWeb\n );\n\n delete response.applePayWeb.supportedCardBrands;\n }\n\n if (configuration.ideal) {\n response.ideal = configuration.ideal;\n }\n\n if (configuration.kount) {\n response.kount = {\n kountMerchantId: configuration.kount.merchantId,\n };\n }\n\n if (configuration.creditCard) {\n response.challenges = configuration.creditCard.challenges.map(function (\n challenge\n ) {\n return challenge.toLowerCase();\n });\n\n response.creditCards = {\n supportedCardTypes: mapCardTypes(\n configuration.creditCard.supportedCardBrands,\n cardTypeTransforms.creditCard\n ),\n };\n response.threeDSecureEnabled = configuration.creditCard.threeDSecureEnabled;\n response.threeDSecure = configuration.creditCard.threeDSecure;\n } else {\n response.challenges = [];\n response.creditCards = {\n supportedCardTypes: [],\n };\n response.threeDSecureEnabled = false;\n }\n\n if (configuration.googlePay) {\n response.androidPay = {\n displayName: configuration.googlePay.displayName,\n enabled: true,\n environment: configuration.googlePay.environment.toLowerCase(),\n googleAuthorizationFingerprint:\n configuration.googlePay.googleAuthorization,\n paypalClientId: configuration.googlePay.paypalClientId,\n supportedNetworks: mapCardTypes(\n configuration.googlePay.supportedCardBrands,\n cardTypeTransforms.googlePay\n ),\n };\n }\n\n if (configuration.venmo) {\n response.payWithVenmo = {\n merchantId: configuration.venmo.merchantId,\n accessToken: configuration.venmo.accessToken,\n environment: configuration.venmo.environment.toLowerCase(),\n enrichedCustomerDataEnabled:\n configuration.venmo.enrichedCustomerDataEnabled,\n };\n }\n\n if (configuration.paypal) {\n response.paypalEnabled = true;\n response.paypal = assign({}, configuration.paypal);\n response.paypal.currencyIsoCode = response.paypal.currencyCode;\n response.paypal.environment = response.paypal.environment.toLowerCase();\n\n delete response.paypal.currencyCode;\n } else {\n response.paypalEnabled = false;\n }\n\n if (configuration.unionPay) {\n response.unionPay = {\n enabled: true,\n merchantAccountId: configuration.unionPay.merchantAccountId,\n };\n }\n\n if (configuration.visaCheckout) {\n response.visaCheckout = {\n apikey: configuration.visaCheckout.apiKey,\n encryptionKey: configuration.visaCheckout.encryptionKey,\n externalClientId: configuration.visaCheckout.externalClientId,\n supportedCardTypes: mapCardTypes(\n configuration.visaCheckout.supportedCardBrands,\n cardTypeTransforms.visaCheckout\n ),\n };\n }\n\n if (configuration.masterpass) {\n response.masterpass = {\n merchantCheckoutId: configuration.masterpass.merchantCheckoutId,\n supportedNetworks: mapCardTypes(\n configuration.masterpass.supportedCardBrands,\n cardTypeTransforms.masterpass\n ),\n };\n }\n\n if (configuration.usBankAccount) {\n response.usBankAccount = {\n routeId: configuration.usBankAccount.routeId,\n plaid: {\n publicKey: configuration.usBankAccount.plaidPublicKey,\n },\n };\n }\n\n return response;\n}\n\nfunction mapCardTypes(cardTypes, cardTypeTransformMap) {\n return cardTypes.reduce(function (acc, type) {\n if (cardTypeTransformMap.hasOwnProperty(type)) {\n return acc.concat(cardTypeTransformMap[type]);\n }\n\n return acc;\n }, []);\n}\n\nmodule.exports = configurationResponseAdapter;\n\n},{\"../../../../lib/assign\":121,\"./error\":87}],86:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar errorResponseAdapter = _dereq_(\"./error\");\n\nvar CARD_BRAND_MAP = {\n /* eslint-disable camelcase */\n AMERICAN_EXPRESS: \"American Express\",\n DINERS: \"Discover\",\n DISCOVER: \"Discover\",\n ELO: \"Elo\",\n HIPER: \"Hiper\",\n HIPERCARD: \"Hipercard\",\n INTERNATIONAL_MAESTRO: \"Maestro\",\n JCB: \"JCB\",\n MASTERCARD: \"MasterCard\",\n UK_MAESTRO: \"Maestro\",\n UNION_PAY: \"UnionPay\",\n VISA: \"Visa\",\n /* eslint-enable camelcase */\n};\n\nvar BIN_DATA_MAP = {\n YES: \"Yes\",\n NO: \"No\",\n UNKNOWN: \"Unknown\",\n};\n\nvar AUTHENTICATION_INSIGHT_MAP = {\n PSDTWO: \"psd2\",\n};\n\nfunction creditCardTokenizationResponseAdapter(responseBody) {\n var adaptedResponse;\n\n if (responseBody.data && !responseBody.errors) {\n adaptedResponse = adaptTokenizeCreditCardResponseBody(responseBody);\n } else {\n adaptedResponse = errorResponseAdapter(responseBody);\n }\n\n return adaptedResponse;\n}\n\nfunction adaptTokenizeCreditCardResponseBody(body) {\n var data = body.data.tokenizeCreditCard;\n var creditCard = data.creditCard;\n var lastTwo = creditCard.last4 ? creditCard.last4.substr(2, 4) : \"\";\n var binData = creditCard.binData;\n var response, regulationEnvironment;\n\n if (binData) {\n [\n \"commercial\",\n \"debit\",\n \"durbinRegulated\",\n \"healthcare\",\n \"payroll\",\n \"prepaid\",\n ].forEach(function (key) {\n if (binData[key]) {\n binData[key] = BIN_DATA_MAP[binData[key]];\n } else {\n binData[key] = \"Unknown\";\n }\n });\n\n [\"issuingBank\", \"countryOfIssuance\", \"productId\"].forEach(function (key) {\n if (!binData[key]) {\n binData[key] = \"Unknown\";\n }\n });\n }\n\n response = {\n creditCards: [\n {\n binData: binData,\n consumed: false,\n description: lastTwo ? \"ending in \" + lastTwo : \"\",\n nonce: data.token,\n details: {\n cardholderName: creditCard.cardholderName,\n expirationMonth: creditCard.expirationMonth,\n expirationYear: creditCard.expirationYear,\n bin: creditCard.bin || \"\",\n cardType: CARD_BRAND_MAP[creditCard.brandCode] || \"Unknown\",\n lastFour: creditCard.last4 || \"\",\n lastTwo: lastTwo,\n },\n type: \"CreditCard\",\n threeDSecureInfo: null,\n },\n ],\n };\n\n if (data.authenticationInsight) {\n regulationEnvironment =\n data.authenticationInsight.customerAuthenticationRegulationEnvironment;\n response.creditCards[0].authenticationInsight = {\n regulationEnvironment:\n AUTHENTICATION_INSIGHT_MAP[regulationEnvironment] ||\n regulationEnvironment.toLowerCase(),\n };\n }\n\n return response;\n}\n\nmodule.exports = creditCardTokenizationResponseAdapter;\n\n},{\"./error\":87}],87:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction errorResponseAdapter(responseBody) {\n var response;\n var errorClass =\n responseBody.errors &&\n responseBody.errors[0] &&\n responseBody.errors[0].extensions &&\n responseBody.errors[0].extensions.errorClass;\n\n if (errorClass === \"VALIDATION\") {\n response = userErrorResponseAdapter(responseBody);\n } else if (errorClass) {\n response = errorWithClassResponseAdapter(responseBody);\n } else {\n response = {\n error: { message: \"There was a problem serving your request\" },\n fieldErrors: [],\n };\n }\n\n return response;\n}\n\nfunction errorWithClassResponseAdapter(responseBody) {\n return {\n error: { message: responseBody.errors[0].message },\n fieldErrors: [],\n };\n}\n\nfunction userErrorResponseAdapter(responseBody) {\n var fieldErrors = buildFieldErrors(responseBody.errors);\n\n if (fieldErrors.length === 0) {\n return { error: { message: responseBody.errors[0].message } };\n }\n\n return {\n error: { message: getLegacyMessage(fieldErrors) },\n fieldErrors: fieldErrors,\n };\n}\n\nfunction buildFieldErrors(errors) {\n var fieldErrors = [];\n\n errors.forEach(function (error) {\n if (!(error.extensions && error.extensions.inputPath)) {\n return;\n }\n addFieldError(error.extensions.inputPath.slice(1), error, fieldErrors);\n });\n\n return fieldErrors;\n}\n\nfunction addFieldError(inputPath, errorDetail, fieldErrors) {\n var fieldError;\n var legacyCode = errorDetail.extensions.legacyCode;\n var inputField = inputPath[0];\n\n if (inputPath.length === 1) {\n fieldErrors.push({\n code: legacyCode,\n field: inputField,\n message: errorDetail.message,\n });\n\n return;\n }\n\n fieldErrors.forEach(function (candidate) {\n if (candidate.field === inputField) {\n fieldError = candidate;\n }\n });\n\n if (!fieldError) {\n fieldError = { field: inputField, fieldErrors: [] };\n fieldErrors.push(fieldError);\n }\n\n addFieldError(inputPath.slice(1), errorDetail, fieldError.fieldErrors);\n}\n\nfunction getLegacyMessage(errors) {\n var legacyMessages = {\n creditCard: \"Credit card is invalid\",\n };\n\n var field = errors[0].field;\n\n return legacyMessages[field];\n}\n\nmodule.exports = errorResponseAdapter;\n\n},{}],88:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar CONFIGURATION_QUERY =\n \"query ClientConfiguration { \" +\n \" clientConfiguration { \" +\n \" analyticsUrl \" +\n \" environment \" +\n \" merchantId \" +\n \" assetsUrl \" +\n \" clientApiUrl \" +\n \" creditCard { \" +\n \" supportedCardBrands \" +\n \" challenges \" +\n \" threeDSecureEnabled \" +\n \" threeDSecure { \" +\n \" cardinalAuthenticationJWT \" +\n \" } \" +\n \" } \" +\n \" applePayWeb { \" +\n \" countryCode \" +\n \" currencyCode \" +\n \" merchantIdentifier \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" googlePay { \" +\n \" displayName \" +\n \" supportedCardBrands \" +\n \" environment \" +\n \" googleAuthorization \" +\n \" paypalClientId \" +\n \" } \" +\n \" ideal { \" +\n \" routeId \" +\n \" assetsUrl \" +\n \" } \" +\n \" kount { \" +\n \" merchantId \" +\n \" } \" +\n \" masterpass { \" +\n \" merchantCheckoutId \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" paypal { \" +\n \" displayName \" +\n \" clientId \" +\n \" assetsUrl \" +\n \" environment \" +\n \" environmentNoNetwork \" +\n \" unvettedMerchant \" +\n \" braintreeClientId \" +\n \" billingAgreementsEnabled \" +\n \" merchantAccountId \" +\n \" currencyCode \" +\n \" payeeEmail \" +\n \" } \" +\n \" unionPay { \" +\n \" merchantAccountId \" +\n \" } \" +\n \" usBankAccount { \" +\n \" routeId \" +\n \" plaidPublicKey \" +\n \" } \" +\n \" venmo { \" +\n \" merchantId \" +\n \" accessToken \" +\n \" environment \" +\n \" enrichedCustomerDataEnabled\" +\n \" } \" +\n \" visaCheckout { \" +\n \" apiKey \" +\n \" externalClientId \" +\n \" supportedCardBrands \" +\n \" } \" +\n \" braintreeApi { \" +\n \" accessToken \" +\n \" url \" +\n \" } \" +\n \" supportedFeatures \" +\n \" } \" +\n \"}\";\n\nfunction configuration() {\n return {\n query: CONFIGURATION_QUERY,\n operationName: \"ClientConfiguration\",\n };\n}\n\nmodule.exports = configuration;\n\n},{}],89:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar assign = _dereq_(\"../../../../lib/assign\").assign;\n\nfunction createMutation(config) {\n var hasAuthenticationInsight = config.hasAuthenticationInsight;\n var mutation = \"mutation TokenizeCreditCard($input: TokenizeCreditCardInput!\";\n\n if (hasAuthenticationInsight) {\n mutation += \", $authenticationInsightInput: AuthenticationInsightInput!\";\n }\n\n mutation +=\n \") { \" +\n \" tokenizeCreditCard(input: $input) { \" +\n \" token \" +\n \" creditCard { \" +\n \" bin \" +\n \" brandCode \" +\n \" last4 \" +\n \" cardholderName \" +\n \" expirationMonth\" +\n \" expirationYear\" +\n \" binData { \" +\n \" prepaid \" +\n \" healthcare \" +\n \" debit \" +\n \" durbinRegulated \" +\n \" commercial \" +\n \" payroll \" +\n \" issuingBank \" +\n \" countryOfIssuance \" +\n \" productId \" +\n \" } \" +\n \" } \";\n\n if (hasAuthenticationInsight) {\n mutation +=\n \" authenticationInsight(input: $authenticationInsightInput) {\" +\n \" customerAuthenticationRegulationEnvironment\" +\n \" }\";\n }\n\n mutation += \" } }\";\n\n return mutation;\n}\n\nfunction createCreditCardTokenizationBody(body, options) {\n var cc = body.creditCard;\n var billingAddress = cc && cc.billingAddress;\n var expDate = cc && cc.expirationDate;\n var expirationMonth =\n cc && (cc.expirationMonth || (expDate && expDate.split(\"/\")[0].trim()));\n var expirationYear =\n cc && (cc.expirationYear || (expDate && expDate.split(\"/\")[1].trim()));\n var variables = {\n input: {\n creditCard: {\n number: cc && cc.number,\n expirationMonth: expirationMonth,\n expirationYear: expirationYear,\n cvv: cc && cc.cvv,\n cardholderName: cc && cc.cardholderName,\n },\n options: {},\n },\n };\n\n if (options.hasAuthenticationInsight) {\n variables.authenticationInsightInput = {\n merchantAccountId: body.merchantAccountId,\n };\n }\n\n if (billingAddress) {\n variables.input.creditCard.billingAddress = billingAddress;\n }\n\n variables.input = addValidationRule(body, variables.input);\n\n return variables;\n}\n\nfunction addValidationRule(body, input) {\n var validate;\n\n if (\n body.creditCard &&\n body.creditCard.options &&\n typeof body.creditCard.options.validate === \"boolean\"\n ) {\n validate = body.creditCard.options.validate;\n } else if (\n (body.authorizationFingerprint && body.tokenizationKey) ||\n body.authorizationFingerprint\n ) {\n validate = true;\n } else if (body.tokenizationKey) {\n validate = false;\n }\n\n if (typeof validate === \"boolean\") {\n input.options = assign(\n {\n validate: validate,\n },\n input.options\n );\n }\n\n return input;\n}\n\nfunction creditCardTokenization(body) {\n var options = {\n hasAuthenticationInsight: Boolean(\n body.authenticationInsight && body.merchantAccountId\n ),\n };\n\n return {\n query: createMutation(options),\n variables: createCreditCardTokenizationBody(body, options),\n operationName: \"TokenizeCreditCard\",\n };\n}\n\nmodule.exports = creditCardTokenization;\n\n},{\"../../../../lib/assign\":121}],90:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar features = {\n tokenize_credit_cards: \"payment_methods/credit_cards\", // eslint-disable-line camelcase\n configuration: \"configuration\",\n};\n\nvar disallowedInputPaths = [\"creditCard.options.unionPayEnrollment\"];\n\nfunction GraphQL(config) {\n this._config = config.graphQL;\n}\n\nGraphQL.prototype.getGraphQLEndpoint = function () {\n return this._config.url;\n};\n\nGraphQL.prototype.isGraphQLRequest = function (url, body) {\n var featureEnabled;\n var path = this.getClientApiPath(url);\n\n if (!this._isGraphQLEnabled() || !path) {\n return false;\n }\n\n featureEnabled = this._config.features.some(function (feature) {\n return features[feature] === path;\n });\n\n if (containsDisallowedlistedKeys(body)) {\n return false;\n }\n\n return featureEnabled;\n};\n\nGraphQL.prototype.getClientApiPath = function (url) {\n var path;\n var clientApiPrefix = \"/client_api/v1/\";\n var pathParts = url.split(clientApiPrefix);\n\n if (pathParts.length > 1) {\n path = pathParts[1].split(\"?\")[0];\n }\n\n return path;\n};\n\nGraphQL.prototype._isGraphQLEnabled = function () {\n return Boolean(this._config);\n};\n\nfunction containsDisallowedlistedKeys(body) {\n return disallowedInputPaths.some(function (keys) {\n var value = keys.split(\".\").reduce(function (accumulator, key) {\n return accumulator && accumulator[key];\n }, body);\n\n return value !== undefined; // eslint-disable-line no-undefined\n });\n}\n\nmodule.exports = GraphQL;\n\n},{}],91:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BRAINTREE_VERSION = _dereq_(\"../../constants\").BRAINTREE_VERSION;\n\nvar assign = _dereq_(\"../../../lib/assign\").assign;\nvar snakeCaseToCamelCase = _dereq_(\"../../../lib/snake-case-to-camel-case\");\n\nvar creditCardTokenizationBodyGenerator = _dereq_(\"./generators/credit-card-tokenization\");\nvar creditCardTokenizationResponseAdapter = _dereq_(\"./adapters/credit-card-tokenization\");\n\nvar configurationBodyGenerator = _dereq_(\"./generators/configuration\");\nvar configurationResponseAdapter = _dereq_(\"./adapters/configuration\");\n\nvar generators = {\n \"payment_methods/credit_cards\": creditCardTokenizationBodyGenerator,\n configuration: configurationBodyGenerator,\n};\nvar adapters = {\n \"payment_methods/credit_cards\": creditCardTokenizationResponseAdapter,\n configuration: configurationResponseAdapter,\n};\n\nfunction GraphQLRequest(options) {\n var clientApiPath = options.graphQL.getClientApiPath(options.url);\n\n this._graphQL = options.graphQL;\n this._data = options.data;\n this._method = options.method;\n this._headers = options.headers;\n this._clientSdkMetadata = {\n source: options.metadata.source,\n integration: options.metadata.integration,\n sessionId: options.metadata.sessionId,\n };\n this._sendAnalyticsEvent = options.sendAnalyticsEvent || Function.prototype;\n\n this._generator = generators[clientApiPath];\n this._adapter = adapters[clientApiPath];\n\n this._sendAnalyticsEvent(\"graphql.init\");\n}\n\nGraphQLRequest.prototype.getUrl = function () {\n return this._graphQL.getGraphQLEndpoint();\n};\n\nGraphQLRequest.prototype.getBody = function () {\n var formattedBody = formatBodyKeys(this._data);\n var generatedBody = this._generator(formattedBody);\n var body = assign(\n { clientSdkMetadata: this._clientSdkMetadata },\n generatedBody\n );\n\n return JSON.stringify(body);\n};\n\nGraphQLRequest.prototype.getMethod = function () {\n return \"POST\";\n};\n\nGraphQLRequest.prototype.getHeaders = function () {\n var authorization, headers;\n\n if (this._data.authorizationFingerprint) {\n this._sendAnalyticsEvent(\"graphql.authorization-fingerprint\");\n authorization = this._data.authorizationFingerprint;\n } else {\n this._sendAnalyticsEvent(\"graphql.tokenization-key\");\n authorization = this._data.tokenizationKey;\n }\n\n headers = {\n Authorization: \"Bearer \" + authorization,\n \"Braintree-Version\": BRAINTREE_VERSION,\n };\n\n return assign({}, this._headers, headers);\n};\n\nGraphQLRequest.prototype.adaptResponseBody = function (parsedBody) {\n return this._adapter(parsedBody, this);\n};\n\nGraphQLRequest.prototype.determineStatus = function (\n httpStatus,\n parsedResponse\n) {\n var status, errorClass;\n\n if (httpStatus === 200) {\n errorClass =\n parsedResponse.errors &&\n parsedResponse.errors[0] &&\n parsedResponse.errors[0].extensions &&\n parsedResponse.errors[0].extensions.errorClass;\n\n if (parsedResponse.data && !parsedResponse.errors) {\n status = 200;\n } else if (errorClass === \"VALIDATION\") {\n status = 422;\n } else if (errorClass === \"AUTHORIZATION\") {\n status = 403;\n } else if (errorClass === \"AUTHENTICATION\") {\n status = 401;\n } else if (isGraphQLError(errorClass, parsedResponse)) {\n status = 403;\n } else {\n status = 500;\n }\n } else if (!httpStatus) {\n status = 500;\n } else {\n status = httpStatus;\n }\n\n this._sendAnalyticsEvent(\"graphql.status.\" + httpStatus);\n this._sendAnalyticsEvent(\"graphql.determinedStatus.\" + status);\n\n return status;\n};\n\nfunction isGraphQLError(errorClass, parsedResponse) {\n return !errorClass && parsedResponse.errors[0].message;\n}\n\nfunction formatBodyKeys(originalBody) {\n var body = {};\n\n Object.keys(originalBody).forEach(function (key) {\n var camelCaseKey = snakeCaseToCamelCase(key);\n\n if (typeof originalBody[key] === \"object\") {\n body[camelCaseKey] = formatBodyKeys(originalBody[key]);\n } else if (typeof originalBody[key] === \"number\") {\n body[camelCaseKey] = String(originalBody[key]);\n } else {\n body[camelCaseKey] = originalBody[key];\n }\n });\n\n return body;\n}\n\nmodule.exports = GraphQLRequest;\n\n},{\"../../../lib/assign\":121,\"../../../lib/snake-case-to-camel-case\":159,\"../../constants\":79,\"./adapters/configuration\":85,\"./adapters/credit-card-tokenization\":86,\"./generators/configuration\":88,\"./generators/credit-card-tokenization\":89}],92:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar once = _dereq_(\"../../lib/once\");\nvar AJAXDriver = _dereq_(\"./ajax-driver\");\n\nmodule.exports = function (options, cb) {\n cb = once(cb || Function.prototype);\n options.method = (options.method || \"GET\").toUpperCase();\n options.timeout = options.timeout == null ? 60000 : options.timeout;\n options.data = options.data || {};\n\n AJAXDriver.request(options, cb);\n};\n\n},{\"../../lib/once\":156,\"./ajax-driver\":83}],93:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (body) {\n try {\n body = JSON.parse(body);\n } catch (e) {\n /* ignored */\n }\n\n return body;\n};\n\n},{}],94:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (method, body) {\n if (typeof method !== \"string\") {\n throw new Error(\"Method must be a string\");\n }\n\n if (method.toLowerCase() !== \"get\" && body != null) {\n body = typeof body === \"string\" ? body : JSON.stringify(body);\n }\n\n return body;\n};\n\n},{}],95:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar isXHRAvailable =\n typeof window !== \"undefined\" &&\n window.XMLHttpRequest &&\n \"withCredentials\" in new window.XMLHttpRequest();\n\nfunction getRequestObject() {\n return isXHRAvailable\n ? new window.XMLHttpRequest()\n : new window.XDomainRequest();\n}\n\nmodule.exports = {\n isAvailable: isXHRAvailable,\n getRequestObject: getRequestObject,\n};\n\n},{}],96:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Data Collector - Creation Error Codes\n * @description Errors that occur when [creating the Data Collector component](./module-braintree-web_data-collector.html#.create).\n * @property {MERCHANT} DATA_COLLECTOR_KOUNT_NOT_ENABLED Occurs when Kount is enabled in creation options but is not enabled on the Braintree control panel.\n * @property {MERCHANT} DATA_COLLECTOR_KOUNT_ERROR Occurs when Kount errors while setting up.\n * @property {MERCHANT} DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS Occurs when Kount or PayPal Fraudnet could not be enabled.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n DATA_COLLECTOR_KOUNT_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"DATA_COLLECTOR_KOUNT_NOT_ENABLED\",\n message: \"Kount is not enabled for this merchant.\",\n },\n DATA_COLLECTOR_KOUNT_ERROR: {\n type: BraintreeError.types.MERCHANT,\n code: \"DATA_COLLECTOR_KOUNT_ERROR\",\n },\n DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS: {\n type: BraintreeError.types.MERCHANT,\n code: \"DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS\",\n message: \"Data Collector must be created with Kount and/or PayPal.\",\n },\n};\n\n},{\"../lib/braintree-error\":124}],97:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar FRAUDNET_FNCLS = _dereq_(\"../lib/constants\").FRAUDNET_FNCLS;\nvar FRAUDNET_SOURCE = _dereq_(\"../lib/constants\").FRAUDNET_SOURCE;\nvar FRAUDNET_URL = _dereq_(\"../lib/constants\").FRAUDNET_URL;\nvar loadScript = _dereq_(\"../lib/assets\").loadScript;\n\nvar cachedSessionId;\n\nfunction setup(options) {\n var fraudNet = new Fraudnet();\n\n options = options || {};\n\n if (!options.sessionId && cachedSessionId) {\n fraudNet.sessionId = cachedSessionId;\n\n return Promise.resolve(fraudNet);\n }\n\n return fraudNet.initialize(options);\n}\n\nfunction clearSessionIdCache() {\n cachedSessionId = null;\n}\n\nfunction Fraudnet() {}\n\nFraudnet.prototype.initialize = function (options) {\n var environment = options.environment;\n var self = this;\n\n this.sessionId = options.sessionId || _generateSessionId();\n if (!options.sessionId) {\n cachedSessionId = this.sessionId;\n }\n this._beaconId = _generateBeaconId(this.sessionId);\n this._parameterBlock = _createParameterBlock(\n this.sessionId,\n this._beaconId,\n environment\n );\n\n return loadScript({\n src: FRAUDNET_URL,\n })\n .then(function (block) {\n self._thirdPartyBlock = block;\n\n return self;\n })\n .catch(function () {\n // if the fraudnet script fails to load\n // we just resolve with nothing\n // and data collector ignores it\n return null;\n });\n};\n\nFraudnet.prototype.teardown = function () {\n removeElementIfOnPage(document.querySelector('iframe[title=\"ppfniframe\"]'));\n removeElementIfOnPage(document.querySelector('iframe[title=\"pbf\"]'));\n\n removeElementIfOnPage(this._parameterBlock);\n removeElementIfOnPage(this._thirdPartyBlock);\n};\n\nfunction removeElementIfOnPage(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n\nfunction _generateSessionId() {\n var i;\n var id = \"\";\n\n for (i = 0; i < 32; i++) {\n id += Math.floor(Math.random() * 16).toString(16);\n }\n\n return id;\n}\n\nfunction _generateBeaconId(sessionId) {\n var timestamp = new Date().getTime() / 1000;\n\n return (\n \"https://b.stats.paypal.com/counter.cgi\" +\n \"?i=127.0.0.1\" +\n \"&p=\" +\n sessionId +\n \"&t=\" +\n timestamp +\n \"&a=14\"\n );\n}\n\nfunction _createParameterBlock(sessionId, beaconId, environment) {\n var el = document.body.appendChild(document.createElement(\"script\"));\n var config = {\n f: sessionId,\n s: FRAUDNET_SOURCE,\n b: beaconId,\n };\n\n // for some reason, the presence of the sandbox\n // attribute in a production environment causes\n // some weird behavior with what url paths are\n // hit, so instead, we only apply this attribute\n // when it is not a production environment\n if (environment !== \"production\") {\n config.sandbox = true;\n }\n\n el.type = \"application/json\";\n el.setAttribute(\"fncls\", FRAUDNET_FNCLS);\n el.text = JSON.stringify(config);\n\n return el;\n}\n\nmodule.exports = {\n setup: setup,\n clearSessionIdCache: clearSessionIdCache,\n};\n\n},{\"../lib/assets\":120,\"../lib/constants\":126}],98:[function(_dereq_,module,exports){\n\"use strict\";\n/** @module braintree-web/data-collector */\n\nvar kount = _dereq_(\"./kount\");\nvar fraudnet = _dereq_(\"./fraudnet\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar methods = _dereq_(\"../lib/methods\");\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar VERSION = \"3.100.0\";\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar errors = _dereq_(\"./errors\");\n\n/**\n * @class\n * @global\n * @name DataCollector\n * @description Do not use this constructor directly. Use {@link module:braintree-web/data-collector.create|braintree-web.data-collector.create} instead.\n * @classdesc This class is used for fraud integration with PayPal and Kount. Instances of this class have {@link DataCollector#deviceData|deviceData} which is used to correlate user sessions with server transactions.\n */\n\n/**\n * @memberof DataCollector\n * @name deviceData\n * @type string\n * @description JSON string to pass with server transactions.\n * @instance\n */\n\n/**\n * @memberof DataCollector\n * @name rawDeviceData\n * @type object\n * @description The device data as an object instead of a string.\n * @instance\n */\n\n/**\n * @memberof DataCollector\n * @name teardown\n * @function\n * @description Cleanly remove anything set up by {@link module:braintree-web/data-collector.create|create}.\n * @param {callback} [callback] Called on completion. If no callback is provided, `teardown` returns a promise.\n * @instance\n * @example\n * dataCollectorInstance.teardown();\n * @example With callback\n * dataCollectorInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\n\n/**\n * @memberof DataCollector\n * @name getDeviceData\n * @function\n * @description Resolves with device data once it is ready.\n * @param {object} [options] Options for how device data is resolved.\n * @param {boolean} [options.raw=false] When set to true, the device data will resolve as an object instead of a JSON string.\n * @param {callback} [callback] Called on completion. If no callback is provided, `getDeviceData` returns a promise.\n * @instance\n * @example\n * dataCollectorInstance.getDeviceData();\n * @example Without options\n * dataCollectorInstance.getDeviceData().then(function (deviceData) {\n * // typeof deviceData === 'string'\n * // pass onto your server with the payment method nonce\n * });\n * @example With options\n * dataCollectorInstance.getDeviceData({\n * raw: true\n * }).then(function (deviceData) {\n * // typeof deviceData === 'object'\n * // for if you'd like to parse the data before sending it to your server\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\n\n/**\n * @static\n * @function create\n * @description Creates a DataCollector instance and collects device data based on your merchant configuration. We recommend that you call this method as early as possible, e.g. as soon as your website loads. If that's too early, call it at the beginning of customer checkout.\n * **Note:** To use your own Kount ID, contact our support team ([support@braintreepayments.com](mailto:support@braintreepayments.com) or [877.434.2894](tel:877.434.2894)).\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Data Collector instance to be available right away by fetching the client configuration in the background. When this option is used, {@link GooglePayment#getDeviceData} must be used to collect the device data.\n * @param {boolean} [options.kount] Kount fraud data collection will occur if the merchant configuration has it enabled.\n * **Note:** the data sent to Kount is asynchronous and may not have completed by the time the data collector create call is complete. In most cases, this will not matter, but if you create the data collector instance and immediately navigate away from the page, the device information may fail to be sent to Kount.\n * @param {boolean} [options.paypal] *Deprecated:* PayPal fraud data collection will occur when the DataCollector instance is created.\n * @param {string} [options.riskCorrelationId] Pass a custom risk correlation id when creating the data collector.\n * @param {string} [options.clientMetadataId] Deprecated. Use `options.riskCorrelationId` instead.\n * @param {string} [options.correlationId] Deprecated. Use `options.riskCorrelationId` instead.\n * @param {callback} [callback] The second argument, `data`, is the {@link DataCollector} instance.\n * @returns {(Promise|void)} Returns a promise that resolves the {@link DataCollector} instance if no callback is provided.\n */\nfunction create(options) {\n var name = \"Data Collector\";\n var result = {\n _instances: [],\n };\n var data;\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n result._instantiatedWithAClient = !options.useDeferredClient;\n result._createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n var kountInstance;\n var config = client.getConfiguration();\n\n if (options.kount === true && config.gatewayConfiguration.kount) {\n try {\n kountInstance = kount.setup({\n environment: config.gatewayConfiguration.environment,\n merchantId: config.gatewayConfiguration.kount.kountMerchantId,\n });\n } catch (err) {\n return Promise.reject(\n new BraintreeError({\n type: errors.DATA_COLLECTOR_KOUNT_ERROR.type,\n code: errors.DATA_COLLECTOR_KOUNT_ERROR.code,\n message: err.message,\n })\n );\n }\n\n data = kountInstance.deviceData;\n result._instances.push(kountInstance);\n } else {\n data = {};\n }\n\n return Promise.resolve(client);\n })\n .then(function (client) {\n return fraudnet\n .setup({\n sessionId:\n options.riskCorrelationId ||\n options.clientMetadataId ||\n options.correlationId,\n environment:\n client.getConfiguration().gatewayConfiguration.environment,\n })\n .then(function (fraudnetInstance) {\n if (fraudnetInstance) {\n data.correlation_id = fraudnetInstance.sessionId; // eslint-disable-line camelcase\n result._instances.push(fraudnetInstance);\n }\n });\n })\n .then(function () {\n if (result._instances.length === 0) {\n // NEXT_MAJOR_VERSION either this should error with a specific error that\n // no data collector instances could be set up, or we should just swallow\n // the error and document that no device data will be returned if\n // data collector cannot be instantiated. We can't change the error code here\n // without possibly breaking merchant integrations relying on this inccorrect\n // behavior.\n return Promise.reject(\n new BraintreeError(errors.DATA_COLLECTOR_REQUIRES_CREATE_OPTIONS)\n );\n }\n\n result.deviceData = JSON.stringify(data);\n result.rawDeviceData = data;\n\n return result;\n });\n\n result.teardown = createTeardownMethod(result);\n result.getDeviceData = createGetDeviceDataMethod(result);\n\n if (result._instantiatedWithAClient) {\n return result._createPromise;\n }\n\n return result;\n });\n}\n\nfunction createTeardownMethod(result) {\n return wrapPromise(function teardown() {\n return result._createPromise.then(function () {\n result._instances.forEach(function (instance) {\n if (instance) {\n instance.teardown();\n }\n });\n\n convertMethodsToError(result, methods(result));\n });\n });\n}\n\nfunction createGetDeviceDataMethod(result) {\n return wrapPromise(function getDeviceData(options) {\n options = options || {};\n\n return result._createPromise.then(function () {\n if (options.raw) {\n return Promise.resolve(result.rawDeviceData);\n }\n\n return Promise.resolve(result.deviceData);\n });\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":122,\"../lib/braintree-error\":124,\"../lib/convert-methods-to-error\":127,\"../lib/create-assets-url\":129,\"../lib/create-deferred-client\":131,\"../lib/methods\":155,\"./errors\":96,\"./fraudnet\":97,\"./kount\":99,\"@braintree/wrap-promise\":43}],99:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar sjcl = _dereq_(\"./vendor/sjcl\");\nvar camelCaseToSnakeCase = _dereq_(\"../lib/camel-case-to-snake-case\");\n\nvar QA_URL = \"https://assets.qa.braintreepayments.com/data\";\nvar IFRAME_ID_PREFIX = \"braintreeDataFrame-\";\nvar environmentUrls = {\n development: QA_URL,\n qa: QA_URL,\n sandbox: \"https://assets.braintreegateway.com/sandbox/data\",\n production: \"https://assets.braintreegateway.com/data\",\n};\nvar cachedDeviceData = {};\n\nfunction setup(o) {\n var options = o != null ? o : {};\n\n return new Kount(options);\n}\n\nfunction Kount(options) {\n var previouslyInitializedDeviceData = Kount.getCachedDeviceData(\n options.merchantId\n );\n\n if (previouslyInitializedDeviceData) {\n this.deviceData = previouslyInitializedDeviceData;\n this._isCached = true;\n\n return;\n }\n\n this._currentEnvironment = this._initializeEnvironment(options);\n\n sjcl.random.startCollectors();\n\n this._deviceSessionId = this._generateDeviceSessionId();\n this.deviceData = this._getDeviceData();\n\n Kount.setCachedDeviceData(options.merchantId, this.deviceData);\n\n this._iframe = this._setupIFrame();\n}\n\nKount.getCachedDeviceData = function (merchantId) {\n return cachedDeviceData[merchantId];\n};\n\nKount.setCachedDeviceData = function (merchantId, data) {\n cachedDeviceData[merchantId] = data;\n};\n\nKount.prototype.teardown = function () {\n if (!this._isCached) {\n sjcl.random.stopCollectors();\n\n this._removeIframe();\n }\n};\n\nKount.prototype._removeIframe = function () {\n this._iframe.parentNode.removeChild(this._iframe);\n};\n\nKount.prototype._getDeviceData = function () {\n return camelCaseToSnakeCase({\n deviceSessionId: this._deviceSessionId,\n fraudMerchantId: this._currentEnvironment.id,\n });\n};\n\nKount.prototype._generateDeviceSessionId = function () {\n var bits, hexString;\n\n bits = sjcl.random.randomWords(4, 0);\n hexString = sjcl.codec.hex.fromBits(bits);\n\n return hexString;\n};\n\nKount.prototype._setupIFrame = function () {\n var params, iframe;\n var self = this;\n\n params = \"?m=\" + this._currentEnvironment.id + \"&s=\" + this._deviceSessionId;\n\n iframe = document.createElement(\"iframe\");\n iframe.width = 1;\n iframe.id = IFRAME_ID_PREFIX + this._deviceSessionId;\n iframe.height = 1;\n iframe.frameBorder = 0;\n iframe.scrolling = \"no\";\n iframe.style.position = \"fixed\";\n iframe.style.left = \"-999999px\";\n iframe.style.top = \"-999999px\";\n iframe.title = \"Braintree-Kount-iframe\";\n iframe.setAttribute(\"aria-hidden\", \"true\");\n\n document.body.appendChild(iframe);\n setTimeout(function () {\n iframe.src = self._currentEnvironment.url + \"/logo.htm\" + params;\n iframe.innerHTML =\n '\"\"';\n }, 10);\n\n return iframe;\n};\n\nKount.prototype._initializeEnvironment = function (options) {\n var url = environmentUrls[options.environment];\n\n if (url == null) {\n throw new Error(\n options.environment + \" is not a valid environment for kount.environment\"\n );\n }\n\n return {\n url: url,\n name: options.environment,\n id: options.merchantId,\n };\n};\n\nmodule.exports = {\n setup: setup,\n Kount: Kount,\n environmentUrls: environmentUrls,\n};\n\n},{\"../lib/camel-case-to-snake-case\":125,\"./vendor/sjcl\":100}],100:[function(_dereq_,module,exports){\n\"use strict\";\nvar sjcl = {\n cipher: {},\n hash: {},\n keyexchange: {},\n mode: {},\n misc: {},\n codec: {},\n exception: {\n corrupt: function (a) {\n this.toString = function () {\n return \"CORRUPT: \" + this.message;\n };\n this.message = a;\n },\n invalid: function (a) {\n this.toString = function () {\n return \"INVALID: \" + this.message;\n };\n this.message = a;\n },\n bug: function (a) {\n this.toString = function () {\n return \"BUG: \" + this.message;\n };\n this.message = a;\n },\n notReady: function (a) {\n this.toString = function () {\n return \"NOT READY: \" + this.message;\n };\n this.message = a;\n },\n },\n};\nsjcl.cipher.aes = function (a) {\n this.l[0][0][0] || this.G();\n var b,\n c,\n d,\n e,\n f = this.l[0][4],\n g = this.l[1];\n b = a.length;\n var k = 1;\n if (4 !== b && 6 !== b && 8 !== b)\n throw new sjcl.exception.invalid(\"invalid aes key size\");\n this.b = [(d = a.slice(0)), (e = [])];\n for (a = b; a < 4 * b + 28; a++) {\n c = d[a - 1];\n if (0 === a % b || (8 === b && 4 === a % b))\n (c =\n (f[c >>> 24] << 24) ^\n (f[(c >> 16) & 255] << 16) ^\n (f[(c >> 8) & 255] << 8) ^\n f[c & 255]),\n 0 === a % b &&\n ((c = (c << 8) ^ (c >>> 24) ^ (k << 24)),\n (k = (k << 1) ^ (283 * (k >> 7))));\n d[a] = d[a - b] ^ c;\n }\n for (b = 0; a; b++, a--)\n (c = d[b & 3 ? a : a - 4]),\n (e[b] =\n 4 >= a || 4 > b\n ? c\n : g[0][f[c >>> 24]] ^\n g[1][f[(c >> 16) & 255]] ^\n g[2][f[(c >> 8) & 255]] ^\n g[3][f[c & 255]]);\n};\nsjcl.cipher.aes.prototype = {\n encrypt: function (a) {\n return t(this, a, 0);\n },\n decrypt: function (a) {\n return t(this, a, 1);\n },\n l: [\n [[], [], [], [], []],\n [[], [], [], [], []],\n ],\n G: function () {\n var a = this.l[0],\n b = this.l[1],\n c = a[4],\n d = b[4],\n e,\n f,\n g,\n k = [],\n l = [],\n p,\n n,\n h,\n m;\n for (e = 0; 0x100 > e; e++) l[(k[e] = (e << 1) ^ (283 * (e >> 7))) ^ e] = e;\n for (f = g = 0; !c[f]; f ^= p || 1, g = l[g] || 1)\n for (\n h = g ^ (g << 1) ^ (g << 2) ^ (g << 3) ^ (g << 4),\n h = (h >> 8) ^ (h & 255) ^ 99,\n c[f] = h,\n d[h] = f,\n n = k[(e = k[(p = k[f])])],\n m = (0x1010101 * n) ^ (0x10001 * e) ^ (0x101 * p) ^ (0x1010100 * f),\n n = (0x101 * k[h]) ^ (0x1010100 * h),\n e = 0;\n 4 > e;\n e++\n )\n (a[e][f] = n = (n << 24) ^ (n >>> 8)),\n (b[e][h] = m = (m << 24) ^ (m >>> 8));\n for (e = 0; 5 > e; e++) (a[e] = a[e].slice(0)), (b[e] = b[e].slice(0));\n },\n};\nfunction t(a, b, c) {\n if (4 !== b.length)\n throw new sjcl.exception.invalid(\"invalid aes block size\");\n var d = a.b[c],\n e = b[0] ^ d[0],\n f = b[c ? 3 : 1] ^ d[1],\n g = b[2] ^ d[2];\n b = b[c ? 1 : 3] ^ d[3];\n var k,\n l,\n p,\n n = d.length / 4 - 2,\n h,\n m = 4,\n q = [0, 0, 0, 0];\n k = a.l[c];\n a = k[0];\n var r = k[1],\n v = k[2],\n w = k[3],\n x = k[4];\n for (h = 0; h < n; h++)\n (k =\n a[e >>> 24] ^ r[(f >> 16) & 255] ^ v[(g >> 8) & 255] ^ w[b & 255] ^ d[m]),\n (l =\n a[f >>> 24] ^\n r[(g >> 16) & 255] ^\n v[(b >> 8) & 255] ^\n w[e & 255] ^\n d[m + 1]),\n (p =\n a[g >>> 24] ^\n r[(b >> 16) & 255] ^\n v[(e >> 8) & 255] ^\n w[f & 255] ^\n d[m + 2]),\n (b =\n a[b >>> 24] ^\n r[(e >> 16) & 255] ^\n v[(f >> 8) & 255] ^\n w[g & 255] ^\n d[m + 3]),\n (m += 4),\n (e = k),\n (f = l),\n (g = p);\n for (h = 0; 4 > h; h++)\n (q[c ? 3 & -h : h] =\n (x[e >>> 24] << 24) ^\n (x[(f >> 16) & 255] << 16) ^\n (x[(g >> 8) & 255] << 8) ^\n x[b & 255] ^\n d[m++]),\n (k = e),\n (e = f),\n (f = g),\n (g = b),\n (b = k);\n return q;\n}\nsjcl.bitArray = {\n bitSlice: function (a, b, c) {\n a = sjcl.bitArray.M(a.slice(b / 32), 32 - (b & 31)).slice(1);\n return void 0 === c ? a : sjcl.bitArray.clamp(a, c - b);\n },\n extract: function (a, b, c) {\n var d = Math.floor((-b - c) & 31);\n return (\n (((b + c - 1) ^ b) & -32\n ? (a[(b / 32) | 0] << (32 - d)) ^ (a[(b / 32 + 1) | 0] >>> d)\n : a[(b / 32) | 0] >>> d) &\n ((1 << c) - 1)\n );\n },\n concat: function (a, b) {\n if (0 === a.length || 0 === b.length) return a.concat(b);\n var c = a[a.length - 1],\n d = sjcl.bitArray.getPartial(c);\n return 32 === d\n ? a.concat(b)\n : sjcl.bitArray.M(b, d, c | 0, a.slice(0, a.length - 1));\n },\n bitLength: function (a) {\n var b = a.length;\n return 0 === b ? 0 : 32 * (b - 1) + sjcl.bitArray.getPartial(a[b - 1]);\n },\n clamp: function (a, b) {\n if (32 * a.length < b) return a;\n a = a.slice(0, Math.ceil(b / 32));\n var c = a.length;\n b = b & 31;\n 0 < c &&\n b &&\n (a[c - 1] = sjcl.bitArray.partial(\n b,\n a[c - 1] & (2147483648 >> (b - 1)),\n 1\n ));\n return a;\n },\n partial: function (a, b, c) {\n return 32 === a ? b : (c ? b | 0 : b << (32 - a)) + 0x10000000000 * a;\n },\n getPartial: function (a) {\n return Math.round(a / 0x10000000000) || 32;\n },\n equal: function (a, b) {\n if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) return !1;\n var c = 0,\n d;\n for (d = 0; d < a.length; d++) c |= a[d] ^ b[d];\n return 0 === c;\n },\n M: function (a, b, c, d) {\n var e;\n e = 0;\n for (void 0 === d && (d = []); 32 <= b; b -= 32) d.push(c), (c = 0);\n if (0 === b) return d.concat(a);\n for (e = 0; e < a.length; e++)\n d.push(c | (a[e] >>> b)), (c = a[e] << (32 - b));\n e = a.length ? a[a.length - 1] : 0;\n a = sjcl.bitArray.getPartial(e);\n d.push(sjcl.bitArray.partial((b + a) & 31, 32 < b + a ? c : d.pop(), 1));\n return d;\n },\n Y: function (a, b) {\n return [a[0] ^ b[0], a[1] ^ b[1], a[2] ^ b[2], a[3] ^ b[3]];\n },\n byteswapM: function (a) {\n var b, c;\n for (b = 0; b < a.length; ++b)\n (c = a[b]),\n (a[b] =\n (c >>> 24) | ((c >>> 8) & 0xff00) | ((c & 0xff00) << 8) | (c << 24));\n return a;\n },\n};\nsjcl.codec.utf8String = {\n fromBits: function (a) {\n var b = \"\",\n c = sjcl.bitArray.bitLength(a),\n d,\n e;\n for (d = 0; d < c / 8; d++)\n 0 === (d & 3) && (e = a[d / 4]),\n (b += String.fromCharCode(((e >>> 8) >>> 8) >>> 8)),\n (e <<= 8);\n return decodeURIComponent(escape(b));\n },\n toBits: function (a) {\n a = unescape(encodeURIComponent(a));\n var b = [],\n c,\n d = 0;\n for (c = 0; c < a.length; c++)\n (d = (d << 8) | a.charCodeAt(c)), 3 === (c & 3) && (b.push(d), (d = 0));\n c & 3 && b.push(sjcl.bitArray.partial(8 * (c & 3), d));\n return b;\n },\n};\nsjcl.codec.hex = {\n fromBits: function (a) {\n var b = \"\",\n c;\n for (c = 0; c < a.length; c++)\n b += ((a[c] | 0) + 0xf00000000000).toString(16).substr(4);\n return b.substr(0, sjcl.bitArray.bitLength(a) / 4);\n },\n toBits: function (a) {\n var b,\n c = [],\n d;\n a = a.replace(/\\s|0x/g, \"\");\n d = a.length;\n a = a + \"00000000\";\n for (b = 0; b < a.length; b += 8) c.push(parseInt(a.substr(b, 8), 16) ^ 0);\n return sjcl.bitArray.clamp(c, 4 * d);\n },\n};\nsjcl.hash.sha256 = function (a) {\n this.b[0] || this.G();\n a\n ? ((this.u = a.u.slice(0)), (this.o = a.o.slice(0)), (this.h = a.h))\n : this.reset();\n};\nsjcl.hash.sha256.hash = function (a) {\n return new sjcl.hash.sha256().update(a).finalize();\n};\nsjcl.hash.sha256.prototype = {\n blockSize: 512,\n reset: function () {\n this.u = this.K.slice(0);\n this.o = [];\n this.h = 0;\n return this;\n },\n update: function (a) {\n \"string\" === typeof a && (a = sjcl.codec.utf8String.toBits(a));\n var b,\n c = (this.o = sjcl.bitArray.concat(this.o, a));\n b = this.h;\n a = this.h = b + sjcl.bitArray.bitLength(a);\n if (0x1fffffffffffff < a)\n throw new sjcl.exception.invalid(\"Cannot hash more than 2^53 - 1 bits\");\n if (\"undefined\" !== typeof Uint32Array) {\n var d = new Uint32Array(c),\n e = 0;\n for (b = 512 + b - ((512 + b) & 0x1ff); b <= a; b += 512)\n u(this, d.subarray(16 * e, 16 * (e + 1))), (e += 1);\n c.splice(0, 16 * e);\n } else\n for (b = 512 + b - ((512 + b) & 0x1ff); b <= a; b += 512)\n u(this, c.splice(0, 16));\n return this;\n },\n finalize: function () {\n var a,\n b = this.o,\n c = this.u,\n b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(1, 1)]);\n for (a = b.length + 2; a & 15; a++) b.push(0);\n b.push(Math.floor(this.h / 0x100000000));\n for (b.push(this.h | 0); b.length; ) u(this, b.splice(0, 16));\n this.reset();\n return c;\n },\n K: [],\n b: [],\n G: function () {\n function a(a) {\n return (0x100000000 * (a - Math.floor(a))) | 0;\n }\n for (var b = 0, c = 2, d, e; 64 > b; c++) {\n e = !0;\n for (d = 2; d * d <= c; d++)\n if (0 === c % d) {\n e = !1;\n break;\n }\n e &&\n (8 > b && (this.K[b] = a(Math.pow(c, 0.5))),\n (this.b[b] = a(Math.pow(c, 1 / 3))),\n b++);\n }\n },\n};\nfunction u(a, b) {\n var c,\n d,\n e,\n f = a.u,\n g = a.b,\n k = f[0],\n l = f[1],\n p = f[2],\n n = f[3],\n h = f[4],\n m = f[5],\n q = f[6],\n r = f[7];\n for (c = 0; 64 > c; c++)\n 16 > c\n ? (d = b[c])\n : ((d = b[(c + 1) & 15]),\n (e = b[(c + 14) & 15]),\n (d = b[c & 15] =\n (((d >>> 7) ^ (d >>> 18) ^ (d >>> 3) ^ (d << 25) ^ (d << 14)) +\n ((e >>> 17) ^ (e >>> 19) ^ (e >>> 10) ^ (e << 15) ^ (e << 13)) +\n b[c & 15] +\n b[(c + 9) & 15]) |\n 0)),\n (d =\n d +\n r +\n ((h >>> 6) ^\n (h >>> 11) ^\n (h >>> 25) ^\n (h << 26) ^\n (h << 21) ^\n (h << 7)) +\n (q ^ (h & (m ^ q))) +\n g[c]),\n (r = q),\n (q = m),\n (m = h),\n (h = (n + d) | 0),\n (n = p),\n (p = l),\n (l = k),\n (k =\n (d +\n ((l & p) ^ (n & (l ^ p))) +\n ((l >>> 2) ^\n (l >>> 13) ^\n (l >>> 22) ^\n (l << 30) ^\n (l << 19) ^\n (l << 10))) |\n 0);\n f[0] = (f[0] + k) | 0;\n f[1] = (f[1] + l) | 0;\n f[2] = (f[2] + p) | 0;\n f[3] = (f[3] + n) | 0;\n f[4] = (f[4] + h) | 0;\n f[5] = (f[5] + m) | 0;\n f[6] = (f[6] + q) | 0;\n f[7] = (f[7] + r) | 0;\n}\nsjcl.prng = function (a) {\n this.c = [new sjcl.hash.sha256()];\n this.i = [0];\n this.H = 0;\n this.v = {};\n this.F = 0;\n this.J = {};\n this.L = this.f = this.j = this.T = 0;\n this.b = [0, 0, 0, 0, 0, 0, 0, 0];\n this.g = [0, 0, 0, 0];\n this.C = void 0;\n this.D = a;\n this.s = !1;\n this.B = { progress: {}, seeded: {} };\n this.m = this.S = 0;\n this.w = 1;\n this.A = 2;\n this.O = 0x10000;\n this.I = [0, 48, 64, 96, 128, 192, 0x100, 384, 512, 768, 1024];\n this.P = 3e4;\n this.N = 80;\n};\nsjcl.prng.prototype = {\n randomWords: function (a, b) {\n var c = [],\n d;\n d = this.isReady(b);\n var e;\n if (d === this.m)\n throw new sjcl.exception.notReady(\"generator isn't seeded\");\n if (d & this.A) {\n d = !(d & this.w);\n e = [];\n var f = 0,\n g;\n this.L = e[0] = new Date().valueOf() + this.P;\n for (g = 0; 16 > g; g++) e.push((0x100000000 * Math.random()) | 0);\n for (\n g = 0;\n g < this.c.length &&\n ((e = e.concat(this.c[g].finalize())),\n (f += this.i[g]),\n (this.i[g] = 0),\n d || !(this.H & (1 << g)));\n g++\n );\n this.H >= 1 << this.c.length &&\n (this.c.push(new sjcl.hash.sha256()), this.i.push(0));\n this.f -= f;\n f > this.j && (this.j = f);\n this.H++;\n this.b = sjcl.hash.sha256.hash(this.b.concat(e));\n this.C = new sjcl.cipher.aes(this.b);\n for (\n d = 0;\n 4 > d && ((this.g[d] = (this.g[d] + 1) | 0), !this.g[d]);\n d++\n );\n }\n for (d = 0; d < a; d += 4)\n 0 === (d + 1) % this.O && y(this),\n (e = z(this)),\n c.push(e[0], e[1], e[2], e[3]);\n y(this);\n return c.slice(0, a);\n },\n setDefaultParanoia: function (a, b) {\n if (\n 0 === a &&\n \"Setting paranoia=0 will ruin your security; use it only for testing\" !==\n b\n )\n throw new sjcl.exception.invalid(\n \"Setting paranoia=0 will ruin your security; use it only for testing\"\n );\n this.D = a;\n },\n addEntropy: function (a, b, c) {\n c = c || \"user\";\n var d,\n e,\n f = new Date().valueOf(),\n g = this.v[c],\n k = this.isReady(),\n l = 0;\n d = this.J[c];\n void 0 === d && (d = this.J[c] = this.T++);\n void 0 === g && (g = this.v[c] = 0);\n this.v[c] = (this.v[c] + 1) % this.c.length;\n switch (typeof a) {\n case \"number\":\n void 0 === b && (b = 1);\n this.c[g].update([d, this.F++, 1, b, f, 1, a | 0]);\n break;\n case \"object\":\n c = Object.prototype.toString.call(a);\n if (\"[object Uint32Array]\" === c) {\n e = [];\n for (c = 0; c < a.length; c++) e.push(a[c]);\n a = e;\n } else\n for (\n \"[object Array]\" !== c && (l = 1), c = 0;\n c < a.length && !l;\n c++\n )\n \"number\" !== typeof a[c] && (l = 1);\n if (!l) {\n if (void 0 === b)\n for (c = b = 0; c < a.length; c++)\n for (e = a[c]; 0 < e; ) b++, (e = e >>> 1);\n this.c[g].update([d, this.F++, 2, b, f, a.length].concat(a));\n }\n break;\n case \"string\":\n void 0 === b && (b = a.length);\n this.c[g].update([d, this.F++, 3, b, f, a.length]);\n this.c[g].update(a);\n break;\n default:\n l = 1;\n }\n if (l)\n throw new sjcl.exception.bug(\n \"random: addEntropy only supports number, array of numbers or string\"\n );\n this.i[g] += b;\n this.f += b;\n k === this.m &&\n (this.isReady() !== this.m && A(\"seeded\", Math.max(this.j, this.f)),\n A(\"progress\", this.getProgress()));\n },\n isReady: function (a) {\n a = this.I[void 0 !== a ? a : this.D];\n return this.j && this.j >= a\n ? this.i[0] > this.N && new Date().valueOf() > this.L\n ? this.A | this.w\n : this.w\n : this.f >= a\n ? this.A | this.m\n : this.m;\n },\n getProgress: function (a) {\n a = this.I[a ? a : this.D];\n return this.j >= a ? 1 : this.f > a ? 1 : this.f / a;\n },\n startCollectors: function () {\n if (!this.s) {\n this.a = {\n loadTimeCollector: B(this, this.V),\n mouseCollector: B(this, this.W),\n keyboardCollector: B(this, this.U),\n accelerometerCollector: B(this, this.R),\n touchCollector: B(this, this.X),\n };\n if (window.addEventListener)\n window.addEventListener(\"load\", this.a.loadTimeCollector, !1),\n window.addEventListener(\"mousemove\", this.a.mouseCollector, !1),\n window.addEventListener(\"keypress\", this.a.keyboardCollector, !1),\n window.addEventListener(\n \"devicemotion\",\n this.a.accelerometerCollector,\n !1\n ),\n window.addEventListener(\"touchmove\", this.a.touchCollector, !1);\n else if (document.attachEvent)\n document.attachEvent(\"onload\", this.a.loadTimeCollector),\n document.attachEvent(\"onmousemove\", this.a.mouseCollector),\n document.attachEvent(\"keypress\", this.a.keyboardCollector);\n else throw new sjcl.exception.bug(\"can't attach event\");\n this.s = !0;\n }\n },\n stopCollectors: function () {\n this.s &&\n (window.removeEventListener\n ? (window.removeEventListener(\"load\", this.a.loadTimeCollector, !1),\n window.removeEventListener(\"mousemove\", this.a.mouseCollector, !1),\n window.removeEventListener(\"keypress\", this.a.keyboardCollector, !1),\n window.removeEventListener(\n \"devicemotion\",\n this.a.accelerometerCollector,\n !1\n ),\n window.removeEventListener(\"touchmove\", this.a.touchCollector, !1))\n : document.detachEvent &&\n (document.detachEvent(\"onload\", this.a.loadTimeCollector),\n document.detachEvent(\"onmousemove\", this.a.mouseCollector),\n document.detachEvent(\"keypress\", this.a.keyboardCollector)),\n (this.s = !1));\n },\n addEventListener: function (a, b) {\n this.B[a][this.S++] = b;\n },\n removeEventListener: function (a, b) {\n var c,\n d,\n e = this.B[a],\n f = [];\n for (d in e) e.hasOwnProperty(d) && e[d] === b && f.push(d);\n for (c = 0; c < f.length; c++) (d = f[c]), delete e[d];\n },\n U: function () {\n C(this, 1);\n },\n W: function (a) {\n var b, c;\n try {\n (b = a.x || a.clientX || a.offsetX || 0),\n (c = a.y || a.clientY || a.offsetY || 0);\n } catch (d) {\n c = b = 0;\n }\n 0 != b && 0 != c && this.addEntropy([b, c], 2, \"mouse\");\n C(this, 0);\n },\n X: function (a) {\n a = a.touches[0] || a.changedTouches[0];\n this.addEntropy([a.pageX || a.clientX, a.pageY || a.clientY], 1, \"touch\");\n C(this, 0);\n },\n V: function () {\n C(this, 2);\n },\n R: function (a) {\n a =\n a.accelerationIncludingGravity.x ||\n a.accelerationIncludingGravity.y ||\n a.accelerationIncludingGravity.z;\n if (window.orientation) {\n var b = window.orientation;\n \"number\" === typeof b && this.addEntropy(b, 1, \"accelerometer\");\n }\n a && this.addEntropy(a, 2, \"accelerometer\");\n C(this, 0);\n },\n};\nfunction A(a, b) {\n var c,\n d = sjcl.random.B[a],\n e = [];\n for (c in d) d.hasOwnProperty(c) && e.push(d[c]);\n for (c = 0; c < e.length; c++) e[c](b);\n}\nfunction C(a, b) {\n \"undefined\" !== typeof window &&\n window.performance &&\n \"function\" === typeof window.performance.now\n ? a.addEntropy(window.performance.now(), b, \"loadtime\")\n : a.addEntropy(new Date().valueOf(), b, \"loadtime\");\n}\nfunction y(a) {\n a.b = z(a).concat(z(a));\n a.C = new sjcl.cipher.aes(a.b);\n}\nfunction z(a) {\n for (var b = 0; 4 > b && ((a.g[b] = (a.g[b] + 1) | 0), !a.g[b]); b++);\n return a.C.encrypt(a.g);\n}\nfunction B(a, b) {\n return function () {\n b.apply(a, arguments);\n };\n}\nsjcl.random = new sjcl.prng(6);\na: try {\n var D, E, F, G;\n if ((G = \"undefined\" !== typeof module && module.exports)) {\n var H;\n try {\n H = _dereq_(\"crypto\");\n } catch (a) {\n H = null;\n }\n G = E = H;\n }\n if (G && E.randomBytes)\n (D = E.randomBytes(128)),\n (D = new Uint32Array(new Uint8Array(D).buffer)),\n sjcl.random.addEntropy(D, 1024, \"crypto['randomBytes']\");\n else if (\n \"undefined\" !== typeof window &&\n \"undefined\" !== typeof Uint32Array\n ) {\n F = new Uint32Array(32);\n if (window.crypto && window.crypto.getRandomValues)\n window.crypto.getRandomValues(F);\n else if (window.msCrypto && window.msCrypto.getRandomValues)\n window.msCrypto.getRandomValues(F);\n else break a;\n sjcl.random.addEntropy(F, 1024, \"crypto['getRandomValues']\");\n }\n} catch (a) {\n \"undefined\" !== typeof window &&\n window.console &&\n (console.log(\"There was an error collecting entropy from the browser:\"),\n console.log(a));\n}\n\"undefined\" !== typeof module && module.exports && (module.exports = sjcl);\n\"function\" === typeof define &&\n define([], function () {\n return sjcl;\n });\n\n},{\"crypto\":undefined}],101:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Google Payment - Creation Error Codes\n * @description Errors that occur when [creating the Google Payment component](./module-braintree-web_google-payment.html#.create).\n * @property {MERCHANT} GOOGLE_PAYMENT_NOT_ENABLED Occurs when Google Pay is not enabled on the Braintree control panel.\n * @property {MERCHANT} GOOGLE_PAYMENT_UNSUPPORTED_VERSION Occurs when a Google Pay version is used that is not supported by the Braintree SDK.\n */\n\n/**\n * @name BraintreeError.Google Payment - parseResponse Error Codes\n * @description Errors that occur when [parsing the response from Google](./GooglePayment.html#parseResponse).\n * @property {UNKNOWN} GOOGLE_PAYMENT_GATEWAY_ERROR Occurs when Google Pay could not be tokenized.\n */\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\n\nmodule.exports = {\n GOOGLE_PAYMENT_NOT_ENABLED: {\n type: BraintreeError.types.MERCHANT,\n code: \"GOOGLE_PAYMENT_NOT_ENABLED\",\n message: \"Google Pay is not enabled for this merchant.\",\n },\n GOOGLE_PAYMENT_GATEWAY_ERROR: {\n code: \"GOOGLE_PAYMENT_GATEWAY_ERROR\",\n message:\n \"There was an error when tokenizing the Google Pay payment method.\",\n type: BraintreeError.types.UNKNOWN,\n },\n GOOGLE_PAYMENT_UNSUPPORTED_VERSION: {\n code: \"GOOGLE_PAYMENT_UNSUPPORTED_VERSION\",\n type: BraintreeError.types.MERCHANT,\n },\n};\n\n},{\"../lib/braintree-error\":124}],102:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar analytics = _dereq_(\"../lib/analytics\");\nvar assign = _dereq_(\"../lib/assign\").assign;\nvar convertMethodsToError = _dereq_(\"../lib/convert-methods-to-error\");\nvar find = _dereq_(\"../lib/find\");\nvar generateGooglePayConfiguration = _dereq_(\"../lib/generate-google-pay-configuration\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar errors = _dereq_(\"./errors\");\nvar methods = _dereq_(\"../lib/methods\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\n\nvar CREATE_PAYMENT_DATA_REQUEST_METHODS = {\n 1: \"_createV1PaymentDataRequest\",\n 2: \"_createV2PaymentDataRequest\",\n};\n\n/**\n * @typedef {object} GooglePayment~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} details Additional account details.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.lastFour Last four digits of card number.\n * @property {string} details.lastTwo Last two digits of card number.\n * @property {boolean} details.isNetworkTokenized True if the card is network tokenized.\n * @property {string} details.bin First six digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, `CreditCard` or `AndroidPayCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * @class GooglePayment\n * @param {object} options Google Payment {@link module:braintree-web/google-payment.create create} options.\n * @description Do not use this constructor directly. Use {@link module:braintree-web/google-payment.create|braintree-web.google-payment.create} instead.\n * @classdesc This class represents a Google Payment component produced by {@link module:braintree-web/google-payment.create|braintree-web/google-payment.create}. Instances of this class have methods for initializing the Google Pay flow.\n */\nfunction GooglePayment(options) {\n this._createPromise = options.createPromise;\n this._client = options.client;\n this._useDeferredClient = options.useDeferredClient;\n // NEXT_MAJOR_VERSION this should be updated to 2 (or whatever the current latest version is)\n this._googlePayVersion = options.googlePayVersion || 1;\n this._googleMerchantId = options.googleMerchantId;\n\n if (this._isUnsupportedGooglePayAPIVersion()) {\n throw new BraintreeError({\n code: errors.GOOGLE_PAYMENT_UNSUPPORTED_VERSION.code,\n message:\n \"The Braintree SDK does not support Google Pay version \" +\n this._googlePayVersion +\n \". Please upgrade the version of your Braintree SDK and contact support if this error persists.\",\n type: errors.GOOGLE_PAYMENT_UNSUPPORTED_VERSION.type,\n });\n }\n}\n\nGooglePayment.prototype._waitForClient = function () {\n if (this._client) {\n return Promise.resolve();\n }\n\n return this._createPromise.then(\n function (client) {\n this._client = client;\n }.bind(this)\n );\n};\n\nGooglePayment.prototype._isUnsupportedGooglePayAPIVersion = function () {\n // if we don't have createPaymentDatqRequest method for the specific\n // API version, then the version is not supported\n return !(this._googlePayVersion in CREATE_PAYMENT_DATA_REQUEST_METHODS);\n};\n\nGooglePayment.prototype._getDefaultConfig = function () {\n if (!this._defaultConfig) {\n this._defaultConfig = generateGooglePayConfiguration(\n this._client.getConfiguration(),\n this._googlePayVersion,\n this._googleMerchantId\n );\n }\n\n return this._defaultConfig;\n};\n\nGooglePayment.prototype._createV1PaymentDataRequest = function (\n paymentDataRequest\n) {\n var defaultConfig = this._getDefaultConfig();\n var overrideCardNetworks =\n paymentDataRequest.cardRequirements &&\n paymentDataRequest.cardRequirements.allowedCardNetworks;\n var defaultConfigCardNetworks =\n defaultConfig.cardRequirements.allowedCardNetworks;\n var allowedCardNetworks = overrideCardNetworks || defaultConfigCardNetworks;\n\n paymentDataRequest = assign({}, defaultConfig, paymentDataRequest);\n\n // this way we can preserve allowedCardNetworks from default integration\n // if merchant did not pass any in `cardRequirements`\n paymentDataRequest.cardRequirements.allowedCardNetworks = allowedCardNetworks;\n\n return paymentDataRequest;\n};\n\nGooglePayment.prototype._createV2PaymentDataRequest = function (\n paymentDataRequest\n) {\n var defaultConfig = this._getDefaultConfig();\n\n if (paymentDataRequest.allowedPaymentMethods) {\n paymentDataRequest.allowedPaymentMethods.forEach(function (paymentMethod) {\n var defaultPaymentMethod = find(\n defaultConfig.allowedPaymentMethods,\n \"type\",\n paymentMethod.type\n );\n\n if (defaultPaymentMethod) {\n applyDefaultsToPaymentMethodConfiguration(\n paymentMethod,\n defaultPaymentMethod\n );\n }\n });\n }\n\n paymentDataRequest = assign({}, defaultConfig, paymentDataRequest);\n\n return paymentDataRequest;\n};\n\n/**\n * Create a configuration object for use in the `loadPaymentData` method.\n *\n * **Note**: Version 1 of the Google Pay Api is deprecated and will become unsupported in a future version. Until then, version 1 will continue to be used by default, and version 1 schema parameters and overrides will remain functional on existing integrations. However, new integrations and all following examples will be presented in the GooglePay version 2 schema. See [Google Pay's upgrade guide](https://developers.google.com/pay/api/web/guides/resources/update-to-latest-version) to see how to update your integration.\n *\n * If `options.googlePayVersion === 2` was set during the initial {@link module:braintree-web/google-payment.create|create} call, overrides must match the Google Pay v2 schema to be valid.\n *\n * @public\n * @param {object} overrides The supplied parameters for creating the PaymentDataRequest object. Required parameters are:\n * @param {object} overrides.transactionInfo Object according to the [Google Pay Transaction Info](https://developers.google.com/pay/api/web/reference/object#TransactionInfo) spec.\n * Optionally, any of the parameters in the [PaymentDataRequest](https://developers.google.com/pay/api/web/reference/object#PaymentDataRequest) parameters can be overridden, but note that it is recommended only to override top level parameters to avoid squashing deeply nested configuration objects. An example can be found below showing how to safely edit these deeply nested objects.\n * @example\n * var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * merchantInfo: {\n * merchantId: 'my-merchant-id-from-google'\n * },\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * });\n *\n * // Update card payment methods to require billing address\n * var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods;\n * cardPaymentMethod.parameters.billingAddressRequired = true;\n * cardPaymentMethod.parameters.billingAddressParameters = {\n * format: 'FULL',\n * phoneNumberRequired: true\n * };\n *\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (response) {\n * // handle response with googlePaymentInstance.parseResponse\n * // (see below)\n * });\n * @example With deferred client\n * googlePaymentInstance.createPaymentDataRequest({\n * merchantInfo: {\n * merchantId: 'my-merchant-id-from-google'\n * },\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * }).then(function (paymentDataRequest) {\n * // Update card payment methods to require billing address\n * var cardPaymentMethod = paymentDataRequest.allowedPaymentMethods;\n * cardPaymentMethod.parameters.billingAddressRequired = true;\n * cardPaymentMethod.parameters.billingAddressParameters = {\n * format: 'FULL',\n * phoneNumberRequired: true\n * };\n *\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * return paymentsClient.loadPaymentData(paymentDataRequest);\n * }).then(function (response) {\n * // handle response with googlePaymentInstance.parseResponse\n * // (see below)\n * });\n * @returns {object|Promise} Returns a configuration object for Google PaymentDataRequest. If instantiated with `useDeferredClient` and an `authorization` it will return a promise that resolves with the configuration.\n */\nGooglePayment.prototype.createPaymentDataRequest = function (overrides) {\n if (!this._useDeferredClient) {\n return this._createPaymentDataRequestSyncronously(overrides);\n }\n\n return this._waitForClient().then(\n function () {\n return this._createPaymentDataRequestSyncronously(overrides);\n }.bind(this)\n );\n};\n\nGooglePayment.prototype._createPaymentDataRequestSyncronously = function (\n overrides\n) {\n var paymentDataRequest = assign({}, overrides);\n var version = this._googlePayVersion;\n var createPaymentDataRequestMethod =\n CREATE_PAYMENT_DATA_REQUEST_METHODS[version];\n\n analytics.sendEvent(\n this._createPromise,\n \"google-payment.v\" + version + \".createPaymentDataRequest\"\n );\n\n return this[createPaymentDataRequestMethod](paymentDataRequest);\n};\n\n/**\n * Parse the response from the tokenization.\n * @public\n * @param {object} response The response back from the Google Pay tokenization.\n * @param {callback} [callback] The second argument, data, is a {@link GooglePay~tokenizePayload|tokenizePayload}. If no callback is provided, `parseResponse` returns a promise that resolves with a {@link GooglePayment~tokenizePayload|tokenizePayload}.\n * @example with callback\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequestFromCreatePaymentDataRequest).then(function (response) {\n * googlePaymentInstance.parseResponse(response, function (err, data) {\n * if (err) {\n * // handle errors\n * }\n * // send parsedResponse.nonce to your server\n * });\n * });\n * @example with promise\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * })\n *\n * paymentsClient.loadPaymentData(paymentDataRequestFromCreatePaymentDataRequest).then(function (response) {\n * return googlePaymentInstance.parseResponse(response);\n * }).then(function (parsedResponse) {\n * // send parsedResponse.nonce to your server\n * }).catch(function (err) {\n * // handle errors\n * });\n * @returns {(Promise|void)} Returns a promise that resolves the parsed response if no callback is provided.\n */\nGooglePayment.prototype.parseResponse = function (response) {\n var self = this;\n\n return Promise.resolve()\n .then(function () {\n var payload;\n var rawResponse =\n response.apiVersion === 2\n ? response.paymentMethodData.tokenizationData.token\n : response.paymentMethodToken.token;\n var parsedResponse = JSON.parse(rawResponse);\n var error = parsedResponse.error;\n\n if (error) {\n return Promise.reject(error);\n }\n\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded\"\n );\n\n if (parsedResponse.paypalAccounts) {\n payload = parsedResponse.paypalAccounts[0];\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded.paypal\"\n );\n\n return Promise.resolve({\n nonce: payload.nonce,\n type: payload.type,\n description: payload.description,\n });\n }\n payload = parsedResponse.androidPayCards[0];\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.succeeded.google-payment\"\n );\n\n return Promise.resolve({\n nonce: payload.nonce,\n type: payload.type,\n description: payload.description,\n details: {\n cardType: payload.details.cardType,\n lastFour: payload.details.lastFour,\n lastTwo: payload.details.lastTwo,\n isNetworkTokenized: payload.details.isNetworkTokenized,\n bin: payload.details.bin,\n },\n binData: payload.binData,\n });\n })\n .catch(function (error) {\n analytics.sendEvent(\n self._createPromise,\n \"google-payment.parseResponse.failed\"\n );\n\n return Promise.reject(\n new BraintreeError({\n code: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.code,\n message: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.message,\n type: errors.GOOGLE_PAYMENT_GATEWAY_ERROR.type,\n details: {\n originalError: error,\n },\n })\n );\n });\n};\n\n/**\n * Cleanly tear down anything set up by {@link module:braintree-web/google-payment.create|create}.\n * @public\n * @param {callback} [callback] Called once teardown is complete. No data is returned if teardown completes successfully.\n * @example\n * googlePaymentInstance.teardown();\n * @example With callback\n * googlePaymentInstance.teardown(function () {\n * // teardown is complete\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nGooglePayment.prototype.teardown = function () {\n convertMethodsToError(this, methods(GooglePayment.prototype));\n\n return Promise.resolve();\n};\n\nfunction applyDefaultsToPaymentMethodConfiguration(\n merchantSubmittedPaymentMethod,\n defaultPaymentMethod\n) {\n Object.keys(defaultPaymentMethod).forEach(function (parameter) {\n if (typeof defaultPaymentMethod[parameter] === \"object\") {\n merchantSubmittedPaymentMethod[parameter] = assign(\n {},\n defaultPaymentMethod[parameter],\n merchantSubmittedPaymentMethod[parameter]\n );\n } else {\n merchantSubmittedPaymentMethod[parameter] =\n merchantSubmittedPaymentMethod[parameter] ||\n defaultPaymentMethod[parameter];\n }\n });\n}\n\nmodule.exports = wrapPromise.wrapPrototype(GooglePayment);\n\n},{\"../lib/analytics\":119,\"../lib/assign\":121,\"../lib/braintree-error\":124,\"../lib/convert-methods-to-error\":127,\"../lib/find\":137,\"../lib/generate-google-pay-configuration\":149,\"../lib/methods\":155,\"./errors\":101,\"@braintree/wrap-promise\":43}],103:[function(_dereq_,module,exports){\n\"use strict\";\n/**\n * @module braintree-web/google-payment\n * @description A component to integrate with Google Pay. The majority of the integration uses [Google's pay.js JavaScript file](https://pay.google.com/gp/p/js/pay.js). The Braintree component generates the configuration object necessary for Google Pay to initiate the Payment Request and parse the returned data to retrieve the payment method nonce which is used to process the transaction on the server.\n */\n\nvar GooglePayment = _dereq_(\"./google-payment\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar createAssetsUrl = _dereq_(\"../lib/create-assets-url\");\nvar createDeferredClient = _dereq_(\"../lib/create-deferred-client\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar VERSION = \"3.100.0\";\nvar errors = _dereq_(\"./errors\");\n\n/**\n * @static\n * @function create\n * @param {object} options Creation options:\n * @param {Client} [options.client] A {@link Client} instance.\n * @param {string} [options.authorization] A tokenizationKey or clientToken. Can be used in place of `options.client`.\n * @param {boolean} [options.useDeferredClient] Used in conjunction with `authorization`, allows the Google Payment instance to be available right away by fetching the client configuration in the background. When this option is used, {@link GooglePayment#createPaymentDataRequest} will return a promise that resolves with the configuration instead of returning synchronously.\n * @param {number} [options.googlePayVersion] The version of the Google Pay API to use. Value of 2 is required to accept parameters documented [by Google](https://developers.google.com/pay/api/web/reference/object). Omit this parameter to use the deprecated Google Pay Version 1.\n * @param {string} [options.googleMerchantId] A Google merchant identifier issued after your website is approved by Google. Required when PaymentsClient is initialized with an environment property of PRODUCTION, but may be omitted in TEST environment.\n * @param {callback} [callback] The second argument, `data`, is the {@link GooglePayment} instance. If no callback is provided, `create` returns a promise that resolves with the {@link GooglePayment} instance.\n * @example Simple Example\n * // include https://pay.google.com/gp/p/js/pay.js in a script tag\n * // on your page to load the `google.payments.api.PaymentsClient` global object.\n *\n * var paymentButton = document.querySelector('#google-pay-button');\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * });\n *\n * braintree.client.create({\n * authorization: 'tokenization-key-or-client-token'\n * }).then(function (clientInstance) {\n * return braintree.googlePayment.create({\n * client: clientInstance,\n * googlePayVersion: 2,\n * googleMerchantId: 'your-merchant-id-from-google'\n * });\n * }).then(function (googlePaymentInstance) {\n * paymentButton.addEventListener('click', function (event) {\n * var paymentDataRequest;\n *\n * event.preventDefault();\n *\n * paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00'\n * }\n * });\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n * return googlePaymentInstance.parseResponse(paymentData);\n * }).then(function (result) {\n * // send result.nonce to your server\n * }).catch(function (err) {\n * // handle err\n * });\n * });\n * });\n * @example Check Browser and Customer Compatibility\n * var paymentsClient = new google.payments.api.PaymentsClient({\n * environment: 'TEST' // or 'PRODUCTION'\n * });\n *\n * function setupGooglePayButton(googlePaymentInstance) {\n * var button = document.createElement('button');\n *\n * button.id = 'google-pay';\n * button.appendChild(document.createTextNode('Google Pay'));\n * button.addEventListener('click', function (event) {\n * var paymentRequestData;\n *\n * event.preventDefault();\n *\n * paymentDataRequest = googlePaymentInstance.createPaymentDataRequest({\n * transactionInfo: {\n * currencyCode: 'USD',\n * totalPriceStatus: 'FINAL',\n * totalPrice: '100.00' // your amount\n * }\n * });\n *\n * paymentsClient.loadPaymentData(paymentDataRequest).then(function (paymentData) {\n * return googlePaymentInstance.parseResponse(paymentData);\n * }).then(function (result) {\n * // send result.nonce to your server\n * }).catch(function (err) {\n * // handle errors\n * });\n * });\n *\n * document.getElementById('container').appendChild(button);\n * }\n *\n * braintree.client.create({\n * authorization: 'tokenization-key-or-client-token'\n * }).then(function (clientInstance) {\n * return braintree.googlePayment.create({\n * client: clientInstance,\n * googlePayVersion: 2,\n * googleMerchantId: 'your-merchant-id-from-google'\n * });\n * }).then(function (googlePaymentInstance) {\n *\n * return paymentsClient.isReadyToPay({\n * // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options\n * apiVersion: 2,\n * apiVersionMinor: 0,\n * allowedPaymentMethods: googlePaymentInstance.createPaymentDataRequest().allowedPaymentMethods,\n * existingPaymentMethodRequired: true\n * });\n * }).then(function (response) {\n * if (response.result) {\n * setupGooglePayButton(googlePaymentInstance);\n * }\n * }).catch(function (err) {\n * // handle setup errors\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nfunction create(options) {\n var name = \"Google Pay\";\n\n return basicComponentVerification\n .verify({\n name: name,\n client: options.client,\n authorization: options.authorization,\n })\n .then(function () {\n var createPromise, instance;\n\n createPromise = createDeferredClient\n .create({\n authorization: options.authorization,\n client: options.client,\n debug: options.debug,\n assetsUrl: createAssetsUrl.create(options.authorization),\n name: name,\n })\n .then(function (client) {\n var configuration = client.getConfiguration();\n\n options.client = client;\n if (!configuration.gatewayConfiguration.androidPay) {\n return Promise.reject(\n new BraintreeError(errors.GOOGLE_PAYMENT_NOT_ENABLED)\n );\n }\n\n return client;\n });\n\n options.createPromise = createPromise;\n instance = new GooglePayment(options);\n\n if (!options.useDeferredClient) {\n return createPromise.then(function (client) {\n instance._client = client;\n\n return instance;\n });\n }\n\n return instance;\n });\n}\n\nmodule.exports = {\n create: wrapPromise(create),\n /**\n * @description The current version of the SDK, i.e. `{@pkg version}`.\n * @type {string}\n */\n VERSION: VERSION,\n};\n\n},{\"../lib/basic-component-verification\":122,\"../lib/braintree-error\":124,\"../lib/create-assets-url\":129,\"../lib/create-deferred-client\":131,\"./errors\":101,\"./google-payment\":102,\"@braintree/wrap-promise\":43}],104:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../../lib/braintree-error\");\nvar errors = _dereq_(\"../shared/errors\");\nvar allowedAttributes = _dereq_(\"../shared/constants\").allowedAttributes;\n\nfunction attributeValidationError(attribute, value) {\n var err;\n\n if (!allowedAttributes.hasOwnProperty(attribute)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_ATTRIBUTE_NOT_SUPPORTED.type,\n code: errors.HOSTED_FIELDS_ATTRIBUTE_NOT_SUPPORTED.code,\n message:\n 'The \"' + attribute + '\" attribute is not supported in Hosted Fields.',\n });\n } else if (value != null && !_isValid(attribute, value)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_ATTRIBUTE_VALUE_NOT_ALLOWED.type,\n code: errors.HOSTED_FIELDS_ATTRIBUTE_VALUE_NOT_ALLOWED.code,\n message:\n 'Value \"' +\n value +\n '\" is not allowed for \"' +\n attribute +\n '\" attribute.',\n });\n }\n\n return err;\n}\n\nfunction _isValid(attribute, value) {\n if (allowedAttributes[attribute] === \"string\") {\n return typeof value === \"string\" || typeof value === \"number\";\n } else if (allowedAttributes[attribute] === \"boolean\") {\n return String(value) === \"true\" || String(value) === \"false\";\n }\n\n return false;\n}\n\nmodule.exports = attributeValidationError;\n\n},{\"../../lib/braintree-error\":124,\"../shared/constants\":112,\"../shared/errors\":113}],105:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar constants = _dereq_(\"../shared/constants\");\nvar useMin = _dereq_(\"../../lib/use-min\");\n\nmodule.exports = function composeUrl(assetsUrl, componentId, isDebug) {\n return (\n assetsUrl +\n \"/web/\" +\n constants.VERSION +\n \"/html/hosted-fields-frame\" +\n useMin(isDebug) +\n \".html#\" +\n componentId\n );\n};\n\n},{\"../../lib/use-min\":160,\"../shared/constants\":112}],106:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar directions = _dereq_(\"../shared/constants\").navigationDirections;\nvar browserDetection = _dereq_(\"../shared/browser-detection\");\nvar focusIntercept = _dereq_(\"../shared/focus-intercept\");\nvar findParentTags = _dereq_(\"../shared/find-parent-tags\");\nvar userFocusableTagNames = [\"INPUT\", \"SELECT\", \"TEXTAREA\"];\n// Devices with software keyboards do not or cannot focus on input types\n// that do not require keyboard-based interaction.\nvar unfocusedInputTypes = [\n \"hidden\",\n \"button\",\n \"reset\",\n \"submit\",\n \"checkbox\",\n \"radio\",\n \"file\",\n];\n\nfunction _isUserFocusableElement(element) {\n if (!browserDetection.hasSoftwareKeyboard()) {\n // on desktop browsers, the only input type that isn't focusable\n // is the hidden input\n return element.type !== \"hidden\";\n }\n\n return (\n userFocusableTagNames.indexOf(element.tagName) > -1 &&\n unfocusedInputTypes.indexOf(element.type) < 0\n );\n}\n\nfunction _createNavigationHelper(direction, numberOfElementsInForm) {\n switch (direction) {\n case directions.BACK:\n return {\n checkIndexBounds: function (index) {\n return index < 0;\n },\n indexChange: -1,\n };\n case directions.FORWARD:\n return {\n checkIndexBounds: function (index) {\n return index > numberOfElementsInForm - 1;\n },\n indexChange: 1,\n };\n default:\n }\n\n return {};\n}\n\nfunction _findFirstFocusableElement(elementsInForm) {\n var elementsIndex, element;\n\n for (\n elementsIndex = 0;\n elementsIndex < elementsInForm.length;\n elementsIndex++\n ) {\n element = elementsInForm[elementsIndex];\n\n if (_isUserFocusableElement(element)) {\n return element;\n }\n }\n\n return null;\n}\n\nmodule.exports = {\n removeExtraFocusElements: function (checkoutForm, onRemoveFocusIntercepts) {\n var elements = Array.prototype.slice.call(checkoutForm.elements);\n var firstFocusableInput = _findFirstFocusableElement(elements);\n var lastFocusableInput = _findFirstFocusableElement(elements.reverse());\n\n // these should never be identical, because there will at least be the\n // before and the after input\n [firstFocusableInput, lastFocusableInput].forEach(function (input) {\n if (!input) {\n return;\n }\n\n if (focusIntercept.matchFocusElement(input.getAttribute(\"id\"))) {\n onRemoveFocusIntercepts(input.getAttribute(\"id\"));\n }\n });\n },\n\n createFocusChangeHandler: function (hostedFieldsId, callbacks) {\n return function (data) {\n var currentIndex, targetElement, checkoutForm, navHelper;\n var sourceElement = document.getElementById(\n \"bt-\" + data.field + \"-\" + data.direction + \"-\" + hostedFieldsId\n );\n\n if (!sourceElement) {\n return;\n }\n\n checkoutForm = findParentTags(sourceElement, \"form\")[0];\n\n if (document.forms.length < 1 || !checkoutForm) {\n callbacks.onRemoveFocusIntercepts();\n\n return;\n }\n\n checkoutForm = [].slice.call(checkoutForm.elements);\n currentIndex = checkoutForm.indexOf(sourceElement);\n navHelper = _createNavigationHelper(data.direction, checkoutForm.length);\n\n do {\n currentIndex += navHelper.indexChange;\n if (navHelper.checkIndexBounds(currentIndex)) {\n return;\n }\n targetElement = checkoutForm[currentIndex];\n } while (!_isUserFocusableElement(targetElement));\n\n if (focusIntercept.matchFocusElement(targetElement.getAttribute(\"id\"))) {\n callbacks.onTriggerInputFocus(\n targetElement.getAttribute(\"data-braintree-type\")\n );\n } else {\n targetElement.focus();\n }\n };\n },\n};\n\n},{\"../shared/browser-detection\":111,\"../shared/constants\":112,\"../shared/find-parent-tags\":114,\"../shared/focus-intercept\":115}],107:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar allowedStyles = _dereq_(\"../shared/constants\").allowedStyles;\n\nmodule.exports = function getStylesFromClass(cssClass) {\n var element = document.createElement(\"input\");\n var styles = {};\n var computedStyles;\n\n if (cssClass[0] === \".\") {\n cssClass = cssClass.substring(1);\n }\n\n element.className = cssClass;\n element.style.display = \"none !important\";\n element.style.position = \"fixed !important\";\n element.style.left = \"-99999px !important\";\n element.style.top = \"-99999px !important\";\n document.body.appendChild(element);\n\n computedStyles = window.getComputedStyle(element);\n\n allowedStyles.forEach(function (style) {\n var value = computedStyles[style];\n\n if (value) {\n styles[style] = value;\n }\n });\n\n document.body.removeChild(element);\n\n return styles;\n};\n\n},{\"../shared/constants\":112}],108:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar assign = _dereq_(\"../../lib/assign\").assign;\nvar createAssetsUrl = _dereq_(\"../../lib/create-assets-url\");\nvar isVerifiedDomain = _dereq_(\"../../lib/is-verified-domain\");\nvar Destructor = _dereq_(\"../../lib/destructor\");\nvar iFramer = _dereq_(\"@braintree/iframer\");\nvar Bus = _dereq_(\"framebus\");\nvar createDeferredClient = _dereq_(\"../../lib/create-deferred-client\");\nvar BraintreeError = _dereq_(\"../../lib/braintree-error\");\nvar composeUrl = _dereq_(\"./compose-url\");\nvar getStylesFromClass = _dereq_(\"./get-styles-from-class\");\nvar constants = _dereq_(\"../shared/constants\");\nvar errors = _dereq_(\"../shared/errors\");\nvar INTEGRATION_TIMEOUT_MS =\n _dereq_(\"../../lib/constants\").INTEGRATION_TIMEOUT_MS;\nvar uuid = _dereq_(\"@braintree/uuid\");\nvar findParentTags = _dereq_(\"../shared/find-parent-tags\");\nvar browserDetection = _dereq_(\"../shared/browser-detection\");\nvar events = constants.events;\nvar EventEmitter = _dereq_(\"@braintree/event-emitter\");\nvar injectFrame = _dereq_(\"./inject-frame\");\nvar analytics = _dereq_(\"../../lib/analytics\");\nvar allowedFields = constants.allowedFields;\nvar methods = _dereq_(\"../../lib/methods\");\nvar shadow = _dereq_(\"../../lib/shadow\");\nvar findRootNode = _dereq_(\"../../lib/find-root-node\");\nvar convertMethodsToError = _dereq_(\"../../lib/convert-methods-to-error\");\nvar sharedErrors = _dereq_(\"../../lib/errors\");\nvar getCardTypes = _dereq_(\"../shared/get-card-types\");\nvar attributeValidationError = _dereq_(\"./attribute-validation-error\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar focusChange = _dereq_(\"./focus-change\");\nvar destroyFocusIntercept = _dereq_(\"../shared/focus-intercept\").destroy;\n\nvar SAFARI_FOCUS_TIMEOUT = 5;\n\n/**\n * @typedef {object} HostedFields~tokenizePayload\n * @property {string} nonce The payment method nonce.\n * @property {object} authenticationInsight Info about the [regulatory environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) of the tokenized card. Only available if `authenticationInsight.merchantAccountId` is passed in the `tokenize` method options.\n * @property {string} authenticationInsight.regulationEnvironment The [regulation environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) for the tokenized card.\n * @property {object} details Additional account details.\n * @property {string} details.bin The BIN number of the card.\n * @property {string} details.cardType Type of card, ex: Visa, MasterCard.\n * @property {string} details.expirationMonth The expiration month of the card.\n * @property {string} details.expirationYear The expiration year of the card.\n * @property {string} details.cardholderName The cardholder name tokenized with the card.\n * @property {string} details.lastFour Last four digits of card number.\n * @property {string} details.lastTwo Last two digits of card number.\n * @property {string} description A human-readable description.\n * @property {string} type The payment method type, always `CreditCard`.\n * @property {object} binData Information about the card based on the bin.\n * @property {string} binData.commercial Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.countryOfIssuance The country of issuance.\n * @property {string} binData.debit Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.durbinRegulated Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.healthcare Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.issuingBank The issuing bank.\n * @property {string} binData.payroll Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.prepaid Possible values: 'Yes', 'No', 'Unknown'.\n * @property {string} binData.productId The product id.\n */\n\n/**\n * @typedef {object} HostedFields~stateObject\n * @description The event payload sent from {@link HostedFields#on|on} or {@link HostedFields#getState|getState}.\n * @property {HostedFields~hostedFieldsCard[]} cards\n * This will return an array of potential {@link HostedFields~hostedFieldsCard|cards}. If the card type has been determined, the array will contain only one card.\n * Internally, Hosted Fields uses credit-card-type,\n * an open-source card detection library.\n * @property {string} emittedBy\n * The name of the field associated with an event. This will not be included if returned by {@link HostedFields#getState|getState}. It will be one of the following strings:
\n * - `\"number\"`\n * - `\"cvv\"`\n * - `\"expirationDate\"`\n * - `\"expirationMonth\"`\n * - `\"expirationYear\"`\n * - `\"postalCode\"`\n * - `\"cardholderName\"`\n * @property {object} fields\n * @property {?HostedFields~hostedFieldsFieldData} fields.number {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the number field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.cvv {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the CVV field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationDate {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration date field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationMonth {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration month field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.expirationYear {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the expiration year field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.postalCode {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the postal code field, if it is present.\n * @property {?HostedFields~hostedFieldsFieldData} fields.cardholderName {@link HostedFields~hostedFieldsFieldData|hostedFieldsFieldData} for the cardholder name field, if it is present.\n */\n\n/**\n * @typedef {object} HostedFields~binPayload\n * @description The event payload sent from {@link HostedFields#on|on} when the {@link HostedFields#event:binAvailable|binAvailable} event is emitted.\n * @property {string} bin The first 6 digits of the card number.\n */\n\n/**\n * @typedef {object} HostedFields~hostedFieldsFieldData\n * @description Data about Hosted Fields fields, sent in {@link HostedFields~stateObject|stateObjects}.\n * @property {HTMLElement} container Reference to the container DOM element on your page associated with the current event.\n * @property {boolean} isFocused Whether or not the input is currently focused.\n * @property {boolean} isEmpty Whether or not the user has entered a value in the input.\n * @property {boolean} isPotentiallyValid\n * A determination based on the future validity of the input value.\n * This is helpful when a user is entering a card number and types \"41\".\n * While that value is not valid for submission, it is still possible for\n * it to become a fully qualified entry. However, if the user enters \"4x\"\n * it is clear that the card number can never become valid and isPotentiallyValid will\n * return false.\n * @property {boolean} isValid Whether or not the value of the associated input is fully qualified for submission.\n */\n\n/**\n * @typedef {object} HostedFields~hostedFieldsCard\n * @description Information about the card type, sent in {@link HostedFields~stateObject|stateObjects}.\n * @property {string} type The code-friendly representation of the card type. It will be one of the following strings:\n * - `american-express`\n * - `diners-club`\n * - `discover`\n * - `jcb`\n * - `maestro`\n * - `master-card`\n * - `unionpay`\n * - `visa`\n * @property {string} niceType The pretty-printed card type. It will be one of the following strings:\n * - `American Express`\n * - `Diners Club`\n * - `Discover`\n * - `JCB`\n * - `Maestro`\n * - `MasterCard`\n * - `UnionPay`\n * - `Visa`\n * @property {object} code\n * This object contains data relevant to the security code requirements of the card brand.\n * For example, on a Visa card there will be a CVV of 3 digits, whereas an\n * American Express card requires a 4-digit CID.\n * @property {string} code.name \"CVV\" \"CID\" \"CVC\"\n * @property {number} code.size The expected length of the security code. Typically, this is 3 or 4.\n */\n\n/**\n * @name HostedFields#on\n * @function\n * @param {string} event The name of the event to which you are subscribing.\n * @param {function} handler A callback to handle the event.\n * @description Subscribes a handler function to a named event.\n *\n * **Events that emit a {@link HostedFields~stateObject|stateObject}.**\n * * {@link HostedFields#event:blur|blur}\n * * {@link HostedFields#event:focus|focus}\n * * {@link HostedFields#event:empty|empty}\n * * {@link HostedFields#event:notEmpty|notEmpty}\n * * {@link HostedFields#event:cardTypeChange|cardTypeChange}\n * * {@link HostedFields#event:validityChange|validityChange}\n * * {@link HostedFields#event:inputSubmitRequest|inputSubmitRequest}\n *\n * **Other Events**\n * * {@link HostedFields#event:binAvailable|binAvailable} - emits a {@link HostedFields~binPayload|bin payload}. Note: If you are using a [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) header that prevents the origin from being sent, this event will not fire.\n * @example\n * Listening to a Hosted Field event, in this case 'focus'\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('focus', function (event) {\n * console.log(event.emittedBy, 'has been focused');\n * });\n * });\n * @returns {void}\n */\n\n/**\n * @name HostedFields#off\n * @function\n * @param {string} event The name of the event to which you are unsubscribing.\n * @param {function} handler The callback for the event you are unsubscribing from.\n * @description Unsubscribes the handler function to a named event.\n * @example\n * Subscribing and then unsubscribing from a Hosted Field event, in this case 'focus'\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * var callback = function (event) {\n * console.log(event.emittedBy, 'has been focused');\n * };\n * hostedFieldsInstance.on('focus', callback);\n *\n * // later on\n * hostedFieldsInstance.off('focus', callback);\n * });\n * @returns {void}\n */\n\n/**\n * This event is emitted when the user requests submission of an input field, such as by pressing the Enter or Return key on their keyboard, or mobile equivalent.\n * @event HostedFields#inputSubmitRequest\n * @type {HostedFields~stateObject}\n * @example\n * Clicking a submit button upon hitting Enter (or equivalent) within a Hosted Field\n * var hostedFields = require('braintree-web/hosted-fields');\n * var submitButton = document.querySelector('input[type=\"submit\"]');\n *\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('inputSubmitRequest', function () {\n * // User requested submission, e.g. by pressing Enter or equivalent\n * submitButton.click();\n * });\n * });\n */\n\n/**\n * This event is emitted when a field transitions from having data to being empty.\n * @event HostedFields#empty\n * @type {HostedFields~stateObject}\n * @example\n * Listening to an empty event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('empty', function (event) {\n * console.log(event.emittedBy, 'is now empty');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field transitions from being empty to having data.\n * @event HostedFields#notEmpty\n * @type {HostedFields~stateObject}\n * @example\n * Listening to an notEmpty event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('notEmpty', function (event) {\n * console.log(event.emittedBy, 'is now not empty');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field loses focus.\n * @event HostedFields#blur\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a blur event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('blur', function (event) {\n * console.log(event.emittedBy, 'lost focus');\n * });\n * });\n */\n\n/**\n * This event is emitted when a field gains focus.\n * @event HostedFields#focus\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a focus event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('focus', function (event) {\n * console.log(event.emittedBy, 'gained focus');\n * });\n * });\n */\n\n/**\n * This event is emitted when activity within the number field has changed such that the possible card type has changed.\n * @event HostedFields#cardTypeChange\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a cardTypeChange event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('cardTypeChange', function (event) {\n * if (event.cards.length === 1) {\n * console.log(event.cards[0].type);\n * } else {\n * console.log('Type of card not yet known');\n * }\n * });\n * });\n */\n\n/**\n * This event is emitted when the validity of a field has changed. Validity is represented in the {@link HostedFields~stateObject|stateObject} as two booleans: `isValid` and `isPotentiallyValid`.\n * @event HostedFields#validityChange\n * @type {HostedFields~stateObject}\n * @example\n * Listening to a validityChange event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('validityChange', function (event) {\n * var field = event.fields[event.emittedBy];\n *\n * if (field.isValid) {\n * console.log(event.emittedBy, 'is fully valid');\n * } else if (field.isPotentiallyValid) {\n * console.log(event.emittedBy, 'is potentially valid');\n * } else {\n * console.log(event.emittedBy, 'is not valid');\n * }\n * });\n * });\n */\n\n/**\n * This event is emitted when the first 6 digits of the card number have been entered by the customer.\n * @event HostedFields#binAvailable\n * @type {string}\n * @example\n * Listening to a `binAvailable` event\n * hostedFields.create({ ... }, function (createErr, hostedFieldsInstance) {\n * hostedFieldsInstance.on('binAvailable', function (event) {\n * event.bin // send bin to 3rd party bin service\n * });\n * });\n */\n\nfunction createInputEventHandler(fields) {\n return function (eventData) {\n var field;\n var merchantPayload = eventData.merchantPayload;\n var emittedBy = merchantPayload.emittedBy;\n var container = fields[emittedBy].containerElement;\n\n Object.keys(merchantPayload.fields).forEach(function (key) {\n merchantPayload.fields[key].container = fields[key].containerElement;\n });\n\n field = merchantPayload.fields[emittedBy];\n\n container.classList.toggle(\n constants.externalClasses.FOCUSED,\n field.isFocused\n );\n container.classList.toggle(constants.externalClasses.VALID, field.isValid);\n\n container.classList.toggle(\n constants.externalClasses.INVALID,\n !field.isPotentiallyValid\n );\n\n // eslint-disable-next-line no-invalid-this\n this._state = {\n cards: merchantPayload.cards,\n fields: merchantPayload.fields,\n };\n\n this._emit(eventData.type, merchantPayload); // eslint-disable-line no-invalid-this\n };\n}\n\nfunction isVisibleEnough(node) {\n var boundingBox = node.getBoundingClientRect();\n var verticalMidpoint = Math.floor(boundingBox.height / 2);\n var horizontalMidpoint = Math.floor(boundingBox.width / 2);\n\n return (\n boundingBox.top <\n (window.innerHeight - verticalMidpoint ||\n document.documentElement.clientHeight - verticalMidpoint) &&\n boundingBox.right > horizontalMidpoint &&\n boundingBox.bottom > verticalMidpoint &&\n boundingBox.left <\n (window.innerWidth - horizontalMidpoint ||\n document.documentElement.clientWidth - horizontalMidpoint)\n );\n}\n\n/**\n * @class HostedFields\n * @param {object} options The Hosted Fields {@link module:braintree-web/hosted-fields.create create} options.\n * @description Do not use this constructor directly. Use {@link module:braintree-web/hosted-fields.create|braintree-web.hosted-fields.create} instead.\n * @classdesc This class represents a Hosted Fields component produced by {@link module:braintree-web/hosted-fields.create|braintree-web/hosted-fields.create}. Instances of this class have methods for interacting with the input fields within Hosted Fields' iframes.\n */\nfunction HostedFields(options) {\n var failureTimeout, clientConfig, assetsUrl, isDebug, hostedFieldsUrl;\n var self = this;\n var fields = {};\n var frameReadyPromiseResolveFunctions = {};\n var frameReadyPromises = [];\n var componentId = uuid();\n\n this._merchantConfigurationOptions = assign({}, options);\n\n if (options.client) {\n clientConfig = options.client.getConfiguration();\n assetsUrl = clientConfig.gatewayConfiguration.assetsUrl;\n isDebug = clientConfig.isDebug;\n } else {\n assetsUrl = createAssetsUrl.create(options.authorization);\n isDebug = Boolean(options.isDebug);\n }\n\n this._clientPromise = createDeferredClient.create({\n client: options.client,\n authorization: options.authorization,\n debug: isDebug,\n assetsUrl: assetsUrl,\n name: \"Hosted Fields\",\n });\n\n hostedFieldsUrl = composeUrl(assetsUrl, componentId, isDebug);\n\n if (!options.fields || Object.keys(options.fields).length === 0) {\n throw new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n message: \"options.fields is required when instantiating Hosted Fields.\",\n });\n }\n\n EventEmitter.call(this);\n\n this._injectedNodes = [];\n this._destructor = new Destructor();\n this._fields = fields;\n this._state = {\n fields: {},\n cards: getCardTypes(\"\"),\n };\n\n this._bus = new Bus({\n channel: componentId,\n verifyDomain: isVerifiedDomain,\n targetFrames: [window],\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n self._bus.teardown();\n });\n\n // NEXT_MAJOR_VERSION analytics events should have present tense verbs\n if (!options.client) {\n analytics.sendEvent(\n this._clientPromise,\n \"custom.hosted-fields.initialized.deferred-client\"\n );\n } else {\n analytics.sendEvent(\n this._clientPromise,\n \"custom.hosted-fields.initialized\"\n );\n }\n\n Object.keys(options.fields).forEach(\n function (key) {\n var field, externalContainer, internalContainer, frame, frameReadyPromise;\n\n if (!constants.allowedFields.hasOwnProperty(key)) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_INVALID_FIELD_KEY.type,\n code: errors.HOSTED_FIELDS_INVALID_FIELD_KEY.code,\n message: '\"' + key + '\" is not a valid field.',\n });\n }\n\n field = options.fields[key];\n // NEXT_MAJOR_VERSION remove selector as an option\n // and simply make the API take a container\n externalContainer = field.container || field.selector;\n\n if (typeof externalContainer === \"string\") {\n externalContainer = document.querySelector(externalContainer);\n }\n\n if (!externalContainer || externalContainer.nodeType !== 1) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.type,\n code: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.code,\n message: errors.HOSTED_FIELDS_INVALID_FIELD_SELECTOR.message,\n details: {\n fieldSelector: field.selector,\n fieldContainer: field.container,\n fieldKey: key,\n },\n });\n } else if (\n externalContainer.querySelector('iframe[name^=\"braintree-\"]')\n ) {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.type,\n code: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.code,\n message: errors.HOSTED_FIELDS_FIELD_DUPLICATE_IFRAME.message,\n details: {\n fieldSelector: field.selector,\n fieldContainer: field.container,\n fieldKey: key,\n },\n });\n }\n\n internalContainer = externalContainer;\n\n if (shadow.isShadowElement(internalContainer)) {\n internalContainer = shadow.transformToSlot(\n internalContainer,\n \"height: 100%\"\n );\n }\n\n if (field.maxlength && typeof field.maxlength !== \"number\") {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: \"The value for maxlength must be a number.\",\n details: {\n fieldKey: key,\n },\n });\n }\n\n if (field.minlength && typeof field.minlength !== \"number\") {\n throw new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: \"The value for minlength must be a number.\",\n details: {\n fieldKey: key,\n },\n });\n }\n\n frame = iFramer({\n type: key,\n name: \"braintree-hosted-field-\" + key,\n style: constants.defaultIFrameStyle,\n title:\n field.iframeTitle ||\n \"Secure Credit Card Frame - \" + constants.allowedFields[key].label,\n });\n this._bus.addTargetFrame(frame);\n\n this._injectedNodes.push.apply(\n this._injectedNodes,\n injectFrame(componentId, frame, internalContainer, function () {\n self.focus(key);\n })\n );\n\n this._setupLabelFocus(key, externalContainer);\n fields[key] = {\n frameElement: frame,\n containerElement: externalContainer,\n };\n frameReadyPromise = new Promise(function (resolve) {\n frameReadyPromiseResolveFunctions[key] = resolve;\n });\n frameReadyPromises.push(frameReadyPromise);\n\n this._state.fields[key] = {\n isEmpty: true,\n isValid: false,\n isPotentiallyValid: true,\n isFocused: false,\n container: externalContainer,\n };\n\n // prevents loading the iframe from blocking the code\n setTimeout(function () {\n frame.src = hostedFieldsUrl;\n }, 0);\n }.bind(this)\n );\n\n if (this._merchantConfigurationOptions.styles) {\n Object.keys(this._merchantConfigurationOptions.styles).forEach(function (\n selector\n ) {\n var className = self._merchantConfigurationOptions.styles[selector];\n\n if (typeof className === \"string\") {\n self._merchantConfigurationOptions.styles[selector] =\n getStylesFromClass(className);\n }\n });\n }\n\n this._bus.on(events.REMOVE_FOCUS_INTERCEPTS, function (data) {\n destroyFocusIntercept(data && data.id);\n });\n\n this._bus.on(\n events.TRIGGER_FOCUS_CHANGE,\n focusChange.createFocusChangeHandler(componentId, {\n onRemoveFocusIntercepts: function (element) {\n self._bus.emit(events.REMOVE_FOCUS_INTERCEPTS, {\n id: element,\n });\n },\n onTriggerInputFocus: function (targetType) {\n self.focus(targetType);\n },\n })\n );\n\n this._bus.on(events.READY_FOR_CLIENT, function (reply) {\n self._clientPromise.then(function (client) {\n reply(client);\n });\n });\n\n this._bus.on(events.CARD_FORM_ENTRY_HAS_BEGUN, function () {\n analytics.sendEvent(self._clientPromise, \"hosted-fields.input.started\");\n });\n\n this._bus.on(events.BIN_AVAILABLE, function (bin) {\n self._emit(\"binAvailable\", {\n bin: bin,\n });\n });\n\n failureTimeout = setTimeout(function () {\n analytics.sendEvent(\n self._clientPromise,\n \"custom.hosted-fields.load.timed-out\"\n );\n self._emit(\"timeout\");\n }, INTEGRATION_TIMEOUT_MS);\n\n Promise.all(frameReadyPromises).then(function (results) {\n var reply = results[0];\n\n clearTimeout(failureTimeout);\n reply(\n formatMerchantConfigurationForIframes(self._merchantConfigurationOptions)\n );\n\n self._cleanUpFocusIntercepts();\n\n self._emit(\"ready\");\n });\n\n this._bus.on(events.FRAME_READY, function (data, reply) {\n frameReadyPromiseResolveFunctions[data.field](reply);\n });\n\n this._bus.on(events.INPUT_EVENT, createInputEventHandler(fields).bind(this));\n\n this._destructor.registerFunctionForTeardown(function () {\n var j, node, parent;\n\n for (j = 0; j < self._injectedNodes.length; j++) {\n node = self._injectedNodes[j];\n parent = node.parentNode;\n\n parent.removeChild(node);\n\n parent.classList.remove(\n constants.externalClasses.FOCUSED,\n constants.externalClasses.INVALID,\n constants.externalClasses.VALID\n );\n }\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n destroyFocusIntercept();\n });\n\n this._destructor.registerFunctionForTeardown(function () {\n var methodNames = methods(HostedFields.prototype).concat(\n methods(EventEmitter.prototype)\n );\n\n convertMethodsToError(self, methodNames);\n });\n}\n\nEventEmitter.createChild(HostedFields);\n\nHostedFields.prototype._setupLabelFocus = function (type, container) {\n var labels, i;\n var self = this;\n var rootNode = findRootNode(container);\n\n if (container.id == null) {\n return;\n }\n\n function triggerFocus() {\n self.focus(type);\n }\n\n // find any labels in the normal DOM\n labels = Array.prototype.slice.call(\n document.querySelectorAll('label[for=\"' + container.id + '\"]')\n );\n if (rootNode !== document) {\n // find any labels within the shadow dom\n labels = labels.concat(\n Array.prototype.slice.call(\n rootNode.querySelectorAll('label[for=\"' + container.id + '\"]')\n )\n );\n }\n // find any labels surrounding the container that don't also have the `for` attribute\n labels = labels.concat(findParentTags(container, \"label\"));\n // filter out any accidental duplicates\n labels = labels.filter(function (label, index, arr) {\n return arr.indexOf(label) === index;\n });\n\n for (i = 0; i < labels.length; i++) {\n labels[i].addEventListener(\"click\", triggerFocus, false);\n }\n\n this._destructor.registerFunctionForTeardown(function () {\n for (i = 0; i < labels.length; i++) {\n labels[i].removeEventListener(\"click\", triggerFocus, false);\n }\n });\n};\n\nHostedFields.prototype._getAnyFieldContainer = function () {\n var self = this;\n\n return Object.keys(this._fields).reduce(function (found, field) {\n return found || self._fields[field].containerElement;\n }, null);\n};\n\nHostedFields.prototype._cleanUpFocusIntercepts = function () {\n var iframeContainer, checkoutForm;\n\n if (document.forms.length < 1) {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS);\n } else {\n iframeContainer = this._getAnyFieldContainer();\n checkoutForm = findParentTags(iframeContainer, \"form\")[0];\n\n if (checkoutForm) {\n focusChange.removeExtraFocusElements(\n checkoutForm,\n function (id) {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS, {\n id: id,\n });\n }.bind(this)\n );\n } else {\n this._bus.emit(events.REMOVE_FOCUS_INTERCEPTS);\n }\n }\n};\n\nHostedFields.prototype._attachInvalidFieldContainersToError = function (err) {\n if (\n !(\n err.details &&\n err.details.invalidFieldKeys &&\n err.details.invalidFieldKeys.length > 0\n )\n ) {\n return;\n }\n err.details.invalidFields = {};\n err.details.invalidFieldKeys.forEach(\n function (field) {\n err.details.invalidFields[field] = this._fields[field].containerElement;\n }.bind(this)\n );\n};\n\n/**\n * Get card verification challenges, such as requirements for cvv and postal code.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. If no callback is provided, `getChallenges` returns a promise.\n * @example\n * hostedFieldsInstance.getChallenges().then(function (challenges) {\n * challenges // ['cvv', 'postal_code']\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.getChallenges = function () {\n return this._clientPromise.then(function (client) {\n return client.getConfiguration().gatewayConfiguration.challenges;\n });\n};\n\n/**\n * Get supported card types configured in the Braintree Control Panel\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. If no callback is provided, `getSupportedCardTypes` returns a promise.\n * @example\n * hostedFieldsInstance.getSupportedCardTypes().then(function (cardTypes) {\n * cardTypes // ['Visa', 'American Express', 'Mastercard']\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.getSupportedCardTypes = function () {\n return this._clientPromise.then(function (client) {\n var cards = client\n .getConfiguration()\n .gatewayConfiguration.creditCards.supportedCardTypes.map(function (\n cardType\n ) {\n if (cardType === \"MasterCard\") {\n // Mastercard changed their branding. We can't update our\n // config without creating a breaking change, so we just\n // hard code the change here\n return \"Mastercard\";\n }\n\n return cardType;\n });\n\n return cards;\n });\n};\n\n/**\n * Cleanly remove anything set up by {@link module:braintree-web/hosted-fields.create|create}.\n * @public\n * @param {callback} [callback] Called on completion, containing an error if one occurred. No data is returned if teardown completes successfully. If no callback is provided, `teardown` returns a promise.\n * @example\n * hostedFieldsInstance.teardown(function (teardownErr) {\n * if (teardownErr) {\n * console.error('Could not tear down Hosted Fields!');\n * } else {\n * console.info('Hosted Fields has been torn down!');\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.teardown = function () {\n var self = this;\n\n return new Promise(function (resolve, reject) {\n self._destructor.teardown(function (err) {\n analytics.sendEvent(\n self._clientPromise,\n \"custom.hosted-fields.teardown-completed\"\n );\n\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n};\n\n/**\n * Tokenizes fields and returns a nonce payload.\n * @public\n * @param {object} [options] All tokenization options for the Hosted Fields component.\n * @param {boolean} [options.vault=false] When true, will vault the tokenized card. Cards will only be vaulted when using a client created with a client token that includes a customer ID. Note: merchants using Advanced Fraud Tools should not use this option, as device data will not be included.\n * @param {object} [options.authenticationInsight] Options for checking authentication insight - the [regulatory environment](https://developer.paypal.com/braintree/docs/guides/3d-secure/advanced-options/javascript/v3#authentication-insight) of the tokenized card.\n * @param {string} options.authenticationInsight.merchantAccountId The Braintree merchant account id to use to look up the authentication insight information.\n * @param {array} [options.fieldsToTokenize] By default, all fields will be tokenized. You may specify which fields specifically you wish to tokenize with this property. Valid options are `'number'`, `'cvv'`, `'expirationDate'`, `'expirationMonth'`, `'expirationYear'`, `'postalCode'`, `'cardholderName'`.\n * @param {string} [options.cardholderName] When supplied, the cardholder name to be tokenized with the contents of the fields.\n * @param {string} [options.billingAddress.postalCode] When supplied, this postal code will be tokenized along with the contents of the fields. If a postal code is provided as part of the Hosted Fields configuration, the value of the field will be tokenized and this value will be ignored.\n * @param {string} [options.billingAddress.firstName] When supplied, this customer first name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.lastName] When supplied, this customer last name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.company] When supplied, this company name will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.streetAddress] When supplied, this street address will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.extendedAddress] When supplied, this extended address will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.locality] When supplied, this locality (the city) will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.region] When supplied, this region (the state) will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeNumeric] When supplied, this numeric country code will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeAlpha2] When supplied, this alpha 2 representation of a country will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryCodeAlpha3] When supplied, this alpha 3 representation of a country will be tokenized along with the contents of the fields.\n * @param {string} [options.billingAddress.countryName] When supplied, this country name will be tokenized along with the contents of the fields.\n *\n * @param {callback} [callback] May be used as the only parameter of the function if no options are passed in. The second argument, data, is a {@link HostedFields~tokenizePayload|tokenizePayload}. If no callback is provided, `tokenize` returns a function that resolves with a {@link HostedFields~tokenizePayload|tokenizePayload}.\n * @example Tokenize a card\n * hostedFieldsInstance.tokenize(function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * switch (tokenizeErr.code) {\n * case 'HOSTED_FIELDS_FIELDS_EMPTY':\n * // occurs when none of the fields are filled in\n * console.error('All fields are empty! Please fill out the form.');\n * break;\n * case 'HOSTED_FIELDS_FIELDS_INVALID':\n * // occurs when certain fields do not pass client side validation\n * console.error('Some fields are invalid:', tokenizeErr.details.invalidFieldKeys);\n *\n * // you can also programmatically access the field containers for the invalid fields\n * tokenizeErr.details.invalidFields.forEach(function (fieldContainer) {\n * fieldContainer.className = 'invalid';\n * });\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_FAIL_ON_DUPLICATE':\n * // occurs when:\n * // * the client token used for client authorization was generated\n * // with a customer ID and the fail on duplicate payment method\n * // option is set to true\n * // * the card being tokenized has previously been vaulted (with any customer)\n * // See: https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#options.fail_on_duplicate_payment_method\n * console.error('This payment method already exists in your vault.');\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_CVV_VERIFICATION_FAILED':\n * // occurs when:\n * // * the client token used for client authorization was generated\n * // with a customer ID and the verify card option is set to true\n * // and you have credit card verification turned on in the Braintree\n * // control panel\n * // * the cvv does not pass verification (https://developer.paypal.com/braintree/docs/reference/general/testing#avs-and-cvv/cid-responses)\n * // See: https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#options.verify_card\n * console.error('CVV did not pass verification');\n * break;\n * case 'HOSTED_FIELDS_FAILED_TOKENIZATION':\n * // occurs for any other tokenization error on the server\n * console.error('Tokenization failed server side. Is the card valid?');\n * break;\n * case 'HOSTED_FIELDS_TOKENIZATION_NETWORK_ERROR':\n * // occurs when the Braintree gateway cannot be contacted\n * console.error('Network error occurred when tokenizing.');\n * break;\n * default:\n * console.error('Something bad happened!', tokenizeErr);\n * }\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize and vault a card\n * hostedFieldsInstance.tokenize({\n * vault: true\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with non-Hosted Fields cardholder name\n * hostedFieldsInstance.tokenize({\n * cardholderName: 'First Last'\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with non-Hosted Fields postal code option\n * hostedFieldsInstance.tokenize({\n * billingAddress: {\n * postalCode: '11111'\n * }\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Tokenize a card with additional billing address options\n * hostedFieldsInstance.tokenize({\n * billingAddress: {\n * firstName: 'First',\n * lastName: 'Last',\n * company: 'Company',\n * streetAddress: '123 Street',\n * extendedAddress: 'Unit 1',\n * // passing just one of the country options is sufficient to\n * // associate the card details with a particular country\n * // valid country names and codes can be found here:\n * // https://developer.paypal.com/braintree/docs/reference/general/countries/ruby#list-of-countries\n * countryName: 'United States',\n * countryCodeAlpha2: 'US',\n * countryCodeAlpha3: 'USA',\n * countryCodeNumeric: '840'\n * }\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @example Allow tokenization with empty cardholder name field\n * var state = hostedFieldsInstance.getState();\n * var fields = Object.keys(state.fields);\n *\n * // normally, if you tried to tokenize an empty cardholder name field\n * // you would get an error, to allow making this field optional,\n * // tokenize all the fields except for the cardholder name field\n * // when the cardholder name field is empty. Otherwise, tokenize\n * // all the fields\n * if (state.fields.cardholderName.isEmpty) {\n * fields = fields.filter(function (field) {\n * return field !== 'cardholderName';\n * });\n * }\n *\n * hostedFieldsInstance.tokenize({\n * fieldsToTokenize: fields\n * }, function (tokenizeErr, payload) {\n * if (tokenizeErr) {\n * console.error(tokenizeErr);\n * } else {\n * console.log('Got nonce:', payload.nonce);\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.tokenize = function (options) {\n var self = this;\n\n if (!options) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n self._bus.emit(events.TOKENIZATION_REQUEST, options, function (response) {\n var err = response[0];\n var payload = response[1];\n\n if (err) {\n self._attachInvalidFieldContainersToError(err);\n reject(new BraintreeError(err));\n } else {\n resolve(payload);\n }\n });\n });\n};\n\n/**\n * Add a class to a {@link module:braintree-web/hosted-fields~field field}. Useful for updating field styles when events occur elsewhere in your checkout.\n * @public\n * @param {string} field The field you wish to add a class to. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} classname The class to be added.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the class is added successfully.\n *\n * @example\n * hostedFieldsInstance.addClass('number', 'custom-class', function (addClassErr) {\n * if (addClassErr) {\n * console.error(addClassErr);\n * }\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.addClass = function (field, classname) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when adding a class.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot add class to \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.ADD_CLASS, {\n field: field,\n classname: classname,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Removes a class to a {@link module:braintree-web/hosted-fields~field field}. Useful for updating field styles when events occur elsewhere in your checkout.\n * @public\n * @param {string} field The field you wish to remove a class from. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} classname The class to be removed.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the class is removed successfully.\n *\n * @example\n * hostedFieldsInstance.addClass('number', 'custom-class', function (addClassErr) {\n * if (addClassErr) {\n * console.error(addClassErr);\n * return;\n * }\n *\n * // some time later...\n * hostedFieldsInstance.removeClass('number', 'custom-class');\n * });\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.removeClass = function (field, classname) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when removing a class.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot remove class from \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.REMOVE_CLASS, {\n field: field,\n classname: classname,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Sets an attribute of a {@link module:braintree-web/hosted-fields~field field}.\n * Supported attributes are `aria-invalid`, `aria-required`, `disabled`, and `placeholder`.\n *\n * @public\n * @param {object} options The options for the attribute you wish to set.\n * @param {string} options.field The field to which you wish to add an attribute. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} options.attribute The name of the attribute you wish to add to the field.\n * @param {string} options.value The value for the attribute.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the attribute is set successfully.\n *\n * @example Set the placeholder attribute of a field\n * hostedFieldsInstance.setAttribute({\n * field: 'number',\n * attribute: 'placeholder',\n * value: '1111 1111 1111 1111'\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @example Set the aria-required attribute of a field\n * hostedFieldsInstance.setAttribute({\n * field: 'number',\n * attribute: 'aria-required',\n * value: true\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setAttribute = function (options) {\n var attributeErr, err;\n\n if (!allowedFields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n options.field +\n '\" is not a valid field. You must use a valid field option when setting an attribute.',\n });\n } else if (!this._fields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot set attribute for \"' +\n options.field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n attributeErr = attributeValidationError(options.attribute, options.value);\n\n if (attributeErr) {\n err = attributeErr;\n } else {\n this._bus.emit(events.SET_ATTRIBUTE, {\n field: options.field,\n attribute: options.attribute,\n value: options.value,\n });\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Sets the month options for the expiration month field when presented as a select element.\n *\n * @public\n * @param {array} options An array of 12 entries corresponding to the 12 months.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the options are updated successfully. Errors if expirationMonth is not configured on the Hosted Fields instance or if the expirationMonth field is not configured to be a select input.\n *\n * @example Update the month options to spanish\n * hostedFieldsInstance.setMonthOptions([\n * '01 - enero',\n * '02 - febrero',\n * '03 - marzo',\n * '04 - abril',\n * '05 - mayo',\n * '06 - junio',\n * '07 - julio',\n * '08 - agosto',\n * '09 - septiembre',\n * '10 - octubre',\n * '11 - noviembre',\n * '12 - diciembre'\n * ]);\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setMonthOptions = function (options) {\n var self = this;\n var merchantOptions = this._merchantConfigurationOptions.fields;\n var errorMessage;\n\n if (!merchantOptions.expirationMonth) {\n errorMessage = \"Expiration month field must exist to use setMonthOptions.\";\n } else if (!merchantOptions.expirationMonth.select) {\n errorMessage = \"Expiration month field must be a select element.\";\n }\n\n if (errorMessage) {\n return Promise.reject(\n new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_PROPERTY_INVALID.code,\n message: errorMessage,\n })\n );\n }\n\n return new Promise(function (resolve) {\n self._bus.emit(events.SET_MONTH_OPTIONS, options, resolve);\n });\n};\n\n/**\n * Sets a visually hidden message (for screen readers) on a {@link module:braintree-web/hosted-fields~field field}.\n *\n * @public\n * @param {object} options The options for the attribute you wish to set.\n * @param {string} options.field The field to which you wish to add an attribute. Must be a valid {@link module:braintree-web/hosted-fields~field field}.\n * @param {string} options.message The message to set.\n *\n * @example Set an error message on a field\n * hostedFieldsInstance.setMessage({\n * field: 'number',\n * message: 'Invalid card number'\n * });\n *\n * @example Remove the message on a field\n * hostedFieldsInstance.setMessage({\n * field: 'number',\n * message: ''\n * });\n *\n * @returns {void}\n */\nHostedFields.prototype.setMessage = function (options) {\n this._bus.emit(events.SET_MESSAGE, {\n field: options.field,\n message: options.message,\n });\n};\n\n/**\n * Removes a supported attribute from a {@link module:braintree-web/hosted-fields~field field}.\n *\n * @public\n * @param {object} options The options for the attribute you wish to remove.\n * @param {string} options.field The field from which you wish to remove an attribute. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} options.attribute The name of the attribute you wish to remove from the field.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the attribute is removed successfully.\n *\n * @example Remove the placeholder attribute of a field\n * hostedFieldsInstance.removeAttribute({\n * field: 'number',\n * attribute: 'placeholder'\n * }, function (attributeErr) {\n * if (attributeErr) {\n * console.error(attributeErr);\n * }\n * });\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.removeAttribute = function (options) {\n var attributeErr, err;\n\n if (!allowedFields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n options.field +\n '\" is not a valid field. You must use a valid field option when removing an attribute.',\n });\n } else if (!this._fields.hasOwnProperty(options.field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot remove attribute for \"' +\n options.field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n attributeErr = attributeValidationError(options.attribute);\n\n if (attributeErr) {\n err = attributeErr;\n } else {\n this._bus.emit(events.REMOVE_ATTRIBUTE, {\n field: options.field,\n attribute: options.attribute,\n });\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * @deprecated since version 3.8.0. Use {@link HostedFields#setAttribute|setAttribute} instead.\n *\n * @public\n * @param {string} field The field whose placeholder you wish to change. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {string} placeholder Will be used as the `placeholder` attribute of the input.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the placeholder updated successfully.\n *\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n */\nHostedFields.prototype.setPlaceholder = function (field, placeholder) {\n return this.setAttribute({\n field: field,\n attribute: \"placeholder\",\n value: placeholder,\n });\n};\n\n/**\n * Clear the value of a {@link module:braintree-web/hosted-fields~field field}.\n * @public\n * @param {string} field The field you wish to clear. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the field cleared successfully.\n * @returns {(Promise|void)} Returns a promise if no callback is provided.\n * @example\n * hostedFieldsInstance.clear('number', function (clearErr) {\n * if (clearErr) {\n * console.error(clearErr);\n * }\n * });\n *\n * @example Clear several fields\n * hostedFieldsInstance.clear('number');\n * hostedFieldsInstance.clear('cvv');\n * hostedFieldsInstance.clear('expirationDate');\n */\nHostedFields.prototype.clear = function (field) {\n var err;\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when clearing a field.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot clear \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n this._bus.emit(events.CLEAR_FIELD, {\n field: field,\n });\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Programmatically focus a {@link module:braintree-web/hosted-fields~field field}.\n * @public\n * @param {string} field The field you want to focus. Must be a valid {@link module:braintree-web/hosted-fields~fieldOptions fieldOption}.\n * @param {callback} [callback] Callback executed on completion, containing an error if one occurred. No data is returned if the field focused successfully.\n * @returns {void}\n * @example\n * hostedFieldsInstance.focus('number', function (focusErr) {\n * if (focusErr) {\n * console.error(focusErr);\n * }\n * });\n * @example Using an event listener\n * myElement.addEventListener('click', function (e) {\n * // In Firefox, the focus method can be suppressed\n * // if the element has a tabindex property or the element\n * // is an anchor link with an href property.\n * e.preventDefault();\n * hostedFieldsInstance.focus('number');\n * });\n */\nHostedFields.prototype.focus = function (field) {\n var err;\n var fieldConfig = this._fields[field];\n\n if (!allowedFields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_INVALID.type,\n code: errors.HOSTED_FIELDS_FIELD_INVALID.code,\n message:\n '\"' +\n field +\n '\" is not a valid field. You must use a valid field option when focusing a field.',\n });\n } else if (!this._fields.hasOwnProperty(field)) {\n err = new BraintreeError({\n type: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.type,\n code: errors.HOSTED_FIELDS_FIELD_NOT_PRESENT.code,\n message:\n 'Cannot focus \"' +\n field +\n '\" field because it is not part of the current Hosted Fields options.',\n });\n } else {\n fieldConfig.frameElement.focus();\n\n this._bus.emit(events.TRIGGER_INPUT_FOCUS, {\n field: field,\n });\n\n if (browserDetection.isIos()) {\n // Inputs outside of the viewport don't always scroll into view on\n // focus in iOS Safari. 5ms timeout gives the browser a chance to\n // do the right thing and prevents stuttering.\n setTimeout(function () {\n if (!isVisibleEnough(fieldConfig.containerElement)) {\n fieldConfig.containerElement.scrollIntoView();\n }\n }, SAFARI_FOCUS_TIMEOUT);\n }\n }\n\n if (err) {\n return Promise.reject(err);\n }\n\n return Promise.resolve();\n};\n\n/**\n * Returns an {@link HostedFields~stateObject|object} that includes the state of all fields and possible card types.\n * @public\n * @returns {object} {@link HostedFields~stateObject|stateObject}\n * @example Check if all fields are valid\n * var state = hostedFieldsInstance.getState();\n *\n * var formValid = Object.keys(state.fields).every(function (key) {\n * return state.fields[key].isValid;\n * });\n */\nHostedFields.prototype.getState = function () {\n return this._state;\n};\n\n// React adds decorations to DOM nodes that cause\n// circular dependencies, so we remove them from the\n// config before sending it to the iframes. However,\n// we don't want to mutate the original object that\n// was passed in, so we create fresh objects via assign\nfunction formatMerchantConfigurationForIframes(config) {\n var formattedConfig = assign({}, config);\n\n formattedConfig.fields = assign({}, formattedConfig.fields);\n Object.keys(formattedConfig.fields).forEach(function (field) {\n formattedConfig.fields[field] = assign({}, formattedConfig.fields[field]);\n delete formattedConfig.fields[field].container;\n });\n\n return formattedConfig;\n}\n\nmodule.exports = wrapPromise.wrapPrototype(HostedFields);\n\n},{\"../../lib/analytics\":119,\"../../lib/assign\":121,\"../../lib/braintree-error\":124,\"../../lib/constants\":126,\"../../lib/convert-methods-to-error\":127,\"../../lib/create-assets-url\":129,\"../../lib/create-deferred-client\":131,\"../../lib/destructor\":133,\"../../lib/errors\":135,\"../../lib/find-root-node\":136,\"../../lib/is-verified-domain\":153,\"../../lib/methods\":155,\"../../lib/shadow\":158,\"../shared/browser-detection\":111,\"../shared/constants\":112,\"../shared/errors\":113,\"../shared/find-parent-tags\":114,\"../shared/focus-intercept\":115,\"../shared/get-card-types\":116,\"./attribute-validation-error\":104,\"./compose-url\":105,\"./focus-change\":106,\"./get-styles-from-class\":107,\"./inject-frame\":109,\"@braintree/event-emitter\":33,\"@braintree/iframer\":35,\"@braintree/uuid\":39,\"@braintree/wrap-promise\":43,\"framebus\":52}],109:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar focusIntercept = _dereq_(\"../shared/focus-intercept\");\nvar directions = _dereq_(\"../shared/constants\").navigationDirections;\n\nmodule.exports = function injectFrame(id, frame, container, focusHandler) {\n var frameType = frame.getAttribute(\"type\");\n var clearboth = document.createElement(\"div\");\n var fragment = document.createDocumentFragment();\n var focusInterceptBefore = focusIntercept.generate(\n id,\n frameType,\n directions.BACK,\n focusHandler\n );\n var focusInterceptAfter = focusIntercept.generate(\n id,\n frameType,\n directions.FORWARD,\n focusHandler\n );\n\n clearboth.style.clear = \"both\";\n\n fragment.appendChild(focusInterceptBefore);\n fragment.appendChild(frame);\n fragment.appendChild(focusInterceptAfter);\n fragment.appendChild(clearboth);\n\n container.appendChild(fragment);\n\n return [frame, clearboth];\n};\n\n},{\"../shared/constants\":112,\"../shared/focus-intercept\":115}],110:[function(_dereq_,module,exports){\n\"use strict\";\n/** @module braintree-web/hosted-fields */\n\nvar HostedFields = _dereq_(\"./external/hosted-fields\");\nvar basicComponentVerification = _dereq_(\"../lib/basic-component-verification\");\nvar errors = _dereq_(\"./shared/errors\");\nvar supportsInputFormatting = _dereq_(\"restricted-input/supports-input-formatting\");\nvar wrapPromise = _dereq_(\"@braintree/wrap-promise\");\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar VERSION = \"3.100.0\";\n\n/**\n * Fields used in {@link module:braintree-web/hosted-fields~fieldOptions fields options}\n * @typedef {object} field\n * @property {string} selector Deprecated: Now an alias for `options.container`.\n * @property {(string|HTMLElement)} container A DOM node or CSS selector to find the container where the hosted field will be inserted.\n * @property {string} [placeholder] Will be used as the `placeholder` attribute of the input. If `placeholder` is not natively supported by the browser, it will be polyfilled.\n * @property {string} [type] Will be used as the `type` attribute of the input. To mask `cvv` input, for instance, `type: \"password\"` can be used.\n * @property {string} [iframeTitle] The title used for the iframe containing the credit card input. By default, this will be `Secure Credit Card Frame - `.\n * @property {string} [internalLabel] Each Hosted Field iframe has a hidden label that is used by screen readers to identify the input. The `internalLabel` property can be used to customize the field for localization purposes. The default values are:\n * * number: Credit Card Number\n * * cvv: CVV\n * * expirationDate: Expiration Date\n * * expirationMonth: Expiration Month\n * * expirationYear: Expiration Year\n * * postalCode: Postal Code\n * * cardholderName: Cardholder Name\n * @property {boolean} [formatInput=true] Enable or disable automatic formatting on this field.\n * @property {(object|boolean)} [maskInput=false] Enable or disable input masking when input is not focused. If set to `true` instead of an object, the defaults for the `maskInput` parameters will be used.\n * @property {string} [maskInput.character=•] The character to use when masking the input. The default character ('•') uses a unicode symbol, so the webpage must support UTF-8 characters when using the default.\n * @property {Boolean} [maskInput.showLastFour=false] Only applicable for the credit card field. Whether or not to show the last 4 digits of the card when masking.\n * @property {(object|boolean)} [select] If truthy, this field becomes a `