{"version":3,"file":"js/90-6e792056d9971a292291.chunk.js","mappings":"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","sources":["webpack://app/./node_modules/braintree-web/dist/browser/client.js","webpack://app/./node_modules/braintree-web/dist/browser/data-collector.js","webpack://app/./node_modules/braintree-web/dist/browser/hosted-fields.js","webpack://app/./node_modules/braintree-web/dist/browser/paypal.js","webpack://app/./node_modules/decode-uri-component/index.js","webpack://app/./node_modules/filter-obj/index.js","webpack://app/./node_modules/js-cookie/src/js.cookie.js","webpack://app/./node_modules/query-string/index.js","webpack://app/./node_modules/split-on-first/index.js","webpack://app/./node_modules/strict-uri-encode/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 || (g.braintree = {})).client = 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} */\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},{}],10:[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\":28,\"../lib/analytics\":29,\"../lib/assets\":30,\"../lib/assign\":31,\"../lib/braintree-error\":32,\"../lib/constants\":33,\"../lib/convert-methods-to-error\":34,\"../lib/convert-to-braintree-error\":35,\"../lib/create-authorization-data\":36,\"../lib/deferred\":37,\"../lib/is-verified-domain\":41,\"../lib/methods\":43,\"../lib/once\":44,\"./constants\":11,\"./errors\":12,\"./get-configuration\":13,\"./request\":24,\"./request/graphql\":22,\"@braintree/wrap-promise\":8}],11:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = {\n BRAINTREE_VERSION: \"2018-05-10\",\n};\n\n},{}],12:[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\":32}],13:[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\":32,\"../lib/constants\":33,\"../lib/is-date-string-before-or-on\":40,\"./constants\":11,\"./errors\":12,\"./request\":24,\"./request/graphql\":22,\"@braintree/uuid\":4,\"@braintree/wrap-promise\":8}],14:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"../lib/braintree-error\");\nvar Client = _dereq_(\"./client\");\nvar VERSION = \"3.97.4\";\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\":32,\"../lib/errors\":39,\"./client\":10,\"@braintree/wrap-promise\":8}],15:[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\":31,\"../../lib/querystring\":45,\"./default-request\":16,\"./graphql/request\":23,\"./parse-body\":25,\"./prep-body\":26,\"./xhr\":27}],16:[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},{}],17:[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\":31,\"./error\":19}],18:[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\":19}],19:[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},{}],20:[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},{}],21:[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\":31}],22:[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},{}],23:[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\":31,\"../../../lib/snake-case-to-camel-case\":46,\"../../constants\":11,\"./adapters/configuration\":17,\"./adapters/credit-card-tokenization\":18,\"./generators/configuration\":20,\"./generators/credit-card-tokenization\":21}],24:[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\":44,\"./ajax-driver\":15}],25:[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},{}],26:[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},{}],27:[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},{}],28:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar createAuthorizationData = _dereq_(\"./create-authorization-data\");\nvar jsonClone = _dereq_(\"./json-clone\");\nvar constants = _dereq_(\"./constants\");\n\nfunction addMetadata(configuration, data) {\n var key;\n var attrs = data ? jsonClone(data) : {};\n var authAttrs = createAuthorizationData(configuration.authorization).attrs;\n var _meta = jsonClone(configuration.analyticsMetadata);\n\n attrs.braintreeLibraryVersion = constants.BRAINTREE_LIBRARY_VERSION;\n\n for (key in attrs._meta) {\n if (attrs._meta.hasOwnProperty(key)) {\n _meta[key] = attrs._meta[key];\n }\n }\n\n attrs._meta = _meta;\n\n if (authAttrs.tokenizationKey) {\n attrs.tokenizationKey = authAttrs.tokenizationKey;\n } else {\n attrs.authorizationFingerprint = authAttrs.authorizationFingerprint;\n }\n\n return attrs;\n}\n\nmodule.exports = addMetadata;\n\n},{\"./constants\":33,\"./create-authorization-data\":36,\"./json-clone\":42}],29:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar constants = _dereq_(\"./constants\");\nvar addMetadata = _dereq_(\"./add-metadata\");\n\nfunction sendAnalyticsEvent(clientInstanceOrPromise, kind, callback) {\n var timestamp = Date.now(); // milliseconds\n\n return Promise.resolve(clientInstanceOrPromise)\n .then(function (client) {\n var timestampInPromise = Date.now();\n var configuration = client.getConfiguration();\n var request = client._request;\n var url = configuration.gatewayConfiguration.analytics.url;\n var data = {\n analytics: [\n {\n kind: constants.ANALYTICS_PREFIX + kind,\n isAsync:\n Math.floor(timestampInPromise / 1000) !==\n Math.floor(timestamp / 1000),\n timestamp: timestamp,\n },\n ],\n };\n\n request(\n {\n url: url,\n method: \"post\",\n data: addMetadata(configuration, data),\n timeout: constants.ANALYTICS_REQUEST_TIMEOUT_MS,\n },\n callback\n );\n })\n .catch(function (err) {\n // for all non-test cases, we don't provide a callback,\n // so this error will always be swallowed. In this case,\n // that's fine, it should only error when the deferred\n // client fails to set up, in which case we don't want\n // that error to report over and over again via these\n // deferred analytics events\n if (callback) {\n callback(err);\n }\n });\n}\n\nmodule.exports = {\n sendEvent: sendAnalyticsEvent,\n};\n\n},{\"./add-metadata\":28,\"./constants\":33}],30:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar loadScript = _dereq_(\"@braintree/asset-loader/load-script\");\n\nmodule.exports = {\n loadScript: loadScript,\n};\n\n},{\"@braintree/asset-loader/load-script\":3}],31:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar assignNormalized =\n typeof Object.assign === \"function\" ? Object.assign : assignPolyfill;\n\nfunction assignPolyfill(destination) {\n var i, source, key;\n\n for (i = 1; i < arguments.length; i++) {\n source = arguments[i];\n for (key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n }\n\n return destination;\n}\n\nmodule.exports = {\n assign: assignNormalized,\n _assign: assignPolyfill,\n};\n\n},{}],32:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar enumerate = _dereq_(\"./enumerate\");\n\n/**\n * @class\n * @global\n * @param {object} options Construction options\n * @classdesc This class is used to report error conditions, frequently as the first parameter to callbacks throughout the Braintree SDK.\n * @description You cannot use this constructor directly. Interact with instances of this class through {@link callback callbacks}.\n */\nfunction BraintreeError(options) {\n if (!BraintreeError.types.hasOwnProperty(options.type)) {\n throw new Error(options.type + \" is not a valid type.\");\n }\n\n if (!options.code) {\n throw new Error(\"Error code required.\");\n }\n\n if (!options.message) {\n throw new Error(\"Error message required.\");\n }\n\n this.name = \"BraintreeError\";\n\n /**\n * @type {string}\n * @description A code that corresponds to specific errors.\n */\n this.code = options.code;\n\n /**\n * @type {string}\n * @description A short description of the error.\n */\n this.message = options.message;\n\n /**\n * @type {BraintreeError.types}\n * @description The type of error.\n */\n this.type = options.type;\n\n /**\n * @type {object=}\n * @description Additional information about the error, such as an underlying network error response.\n */\n this.details = options.details;\n}\n\nBraintreeError.prototype = Object.create(Error.prototype);\nBraintreeError.prototype.constructor = BraintreeError;\n\n/**\n * Enum for {@link BraintreeError} types.\n * @name BraintreeError.types\n * @enum\n * @readonly\n * @memberof BraintreeError\n * @property {string} CUSTOMER An error caused by the customer.\n * @property {string} MERCHANT An error that is actionable by the merchant.\n * @property {string} NETWORK An error due to a network problem.\n * @property {string} INTERNAL An error caused by Braintree code.\n * @property {string} UNKNOWN An error where the origin is unknown.\n */\nBraintreeError.types = enumerate([\n \"CUSTOMER\",\n \"MERCHANT\",\n \"NETWORK\",\n \"INTERNAL\",\n \"UNKNOWN\",\n]);\n\nBraintreeError.findRootError = function (err) {\n if (\n err instanceof BraintreeError &&\n err.details &&\n err.details.originalError\n ) {\n return BraintreeError.findRootError(err.details.originalError);\n }\n\n return err;\n};\n\nmodule.exports = BraintreeError;\n\n},{\"./enumerate\":38}],33:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar VERSION = \"3.97.4\";\nvar PLATFORM = \"web\";\n\nvar CLIENT_API_URLS = {\n production: \"https://api.braintreegateway.com:443\",\n sandbox: \"https://api.sandbox.braintreegateway.com:443\",\n};\n\nvar ASSETS_URLS = {\n production: \"https://assets.braintreegateway.com\",\n sandbox: \"https://assets.braintreegateway.com\",\n};\n\nvar GRAPHQL_URLS = {\n production: \"https://payments.braintree-api.com/graphql\",\n sandbox: \"https://payments.sandbox.braintree-api.com/graphql\",\n};\n\n// endRemoveIf(production)\n\nmodule.exports = {\n ANALYTICS_PREFIX: PLATFORM + \".\",\n ANALYTICS_REQUEST_TIMEOUT_MS: 2000,\n ASSETS_URLS: ASSETS_URLS,\n CLIENT_API_URLS: CLIENT_API_URLS,\n FRAUDNET_SOURCE: \"BRAINTREE_SIGNIN\",\n FRAUDNET_FNCLS: \"fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99\",\n FRAUDNET_URL: \"https://c.paypal.com/da/r/fb.js\",\n BUS_CONFIGURATION_REQUEST_EVENT: \"BUS_CONFIGURATION_REQUEST\",\n GRAPHQL_URLS: GRAPHQL_URLS,\n INTEGRATION_TIMEOUT_MS: 60000,\n VERSION: VERSION,\n INTEGRATION: \"custom\",\n SOURCE: \"client\",\n PLATFORM: PLATFORM,\n BRAINTREE_LIBRARY_VERSION: \"braintree/\" + PLATFORM + \"/\" + VERSION,\n};\n\n},{}],34:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\nvar sharedErrors = _dereq_(\"./errors\");\n\nmodule.exports = function (instance, methodNames) {\n methodNames.forEach(function (methodName) {\n instance[methodName] = function () {\n throw new BraintreeError({\n type: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.type,\n code: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.code,\n message: methodName + \" cannot be called after teardown.\",\n });\n };\n });\n};\n\n},{\"./braintree-error\":32,\"./errors\":39}],35:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\n\nfunction convertToBraintreeError(originalErr, btErrorObject) {\n if (originalErr instanceof BraintreeError) {\n return originalErr;\n }\n\n return new BraintreeError({\n type: btErrorObject.type,\n code: btErrorObject.code,\n message: btErrorObject.message,\n details: {\n originalError: originalErr,\n },\n });\n}\n\nmodule.exports = convertToBraintreeError;\n\n},{\"./braintree-error\":32}],36:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar atob = _dereq_(\"../lib/vendor/polyfill\").atob;\nvar CLIENT_API_URLS = _dereq_(\"../lib/constants\").CLIENT_API_URLS;\n\nfunction _isTokenizationKey(str) {\n return /^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(str);\n}\n\nfunction _parseTokenizationKey(tokenizationKey) {\n var tokens = tokenizationKey.split(\"_\");\n var environment = tokens[0];\n var merchantId = tokens.slice(2).join(\"_\");\n\n return {\n merchantId: merchantId,\n environment: environment,\n };\n}\n\nfunction createAuthorizationData(authorization) {\n var parsedClientToken, parsedTokenizationKey;\n var data = {\n attrs: {},\n configUrl: \"\",\n };\n\n if (_isTokenizationKey(authorization)) {\n parsedTokenizationKey = _parseTokenizationKey(authorization);\n data.environment = parsedTokenizationKey.environment;\n data.attrs.tokenizationKey = authorization;\n data.configUrl =\n CLIENT_API_URLS[parsedTokenizationKey.environment] +\n \"/merchants/\" +\n parsedTokenizationKey.merchantId +\n \"/client_api/v1/configuration\";\n } else {\n parsedClientToken = JSON.parse(atob(authorization));\n data.environment = parsedClientToken.environment;\n data.attrs.authorizationFingerprint =\n parsedClientToken.authorizationFingerprint;\n data.configUrl = parsedClientToken.configUrl;\n data.graphQL = parsedClientToken.graphQL;\n }\n\n return data;\n}\n\nmodule.exports = createAuthorizationData;\n\n},{\"../lib/constants\":33,\"../lib/vendor/polyfill\":47}],37:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (fn) {\n return function () {\n // IE9 doesn't support passing arguments to setTimeout so we have to emulate it.\n var args = arguments;\n\n setTimeout(function () {\n fn.apply(null, args);\n }, 1);\n };\n};\n\n},{}],38:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction enumerate(values, prefix) {\n prefix = prefix == null ? \"\" : prefix;\n\n return values.reduce(function (enumeration, value) {\n enumeration[value] = prefix + value;\n\n return enumeration;\n }, {});\n}\n\nmodule.exports = enumerate;\n\n},{}],39:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Shared Internal Error Codes\n * @ignore\n * @description These codes should never be experienced by the merchant directly.\n * @property {INTERNAL} INVALID_USE_OF_INTERNAL_FUNCTION Occurs when the client is created without a gateway configuration. Should never happen.\n */\n\n/**\n * @name BraintreeError.Shared Errors - Component Creation Error Codes\n * @description Errors that occur when creating components.\n * @property {MERCHANT} INSTANTIATION_OPTION_REQUIRED Occurs when a component is created that is missing a required option.\n * @property {MERCHANT} INCOMPATIBLE_VERSIONS Occurs when a component is created with a client with a different version than the component.\n * @property {NETWORK} CLIENT_SCRIPT_FAILED_TO_LOAD Occurs when a component attempts to load the Braintree client script, but the request fails.\n */\n\n/**\n * @name BraintreeError.Shared Errors - Component Instance Error Codes\n * @description Errors that occur when using instances of components.\n * @property {MERCHANT} METHOD_CALLED_AFTER_TEARDOWN Occurs when a method is called on a component instance after it has been torn down.\n */\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\n\nmodule.exports = {\n INVALID_USE_OF_INTERNAL_FUNCTION: {\n type: BraintreeError.types.INTERNAL,\n code: \"INVALID_USE_OF_INTERNAL_FUNCTION\",\n },\n INSTANTIATION_OPTION_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"INSTANTIATION_OPTION_REQUIRED\",\n },\n INCOMPATIBLE_VERSIONS: {\n type: BraintreeError.types.MERCHANT,\n code: \"INCOMPATIBLE_VERSIONS\",\n },\n CLIENT_SCRIPT_FAILED_TO_LOAD: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_SCRIPT_FAILED_TO_LOAD\",\n message: \"Braintree client script could not be loaded.\",\n },\n METHOD_CALLED_AFTER_TEARDOWN: {\n type: BraintreeError.types.MERCHANT,\n code: \"METHOD_CALLED_AFTER_TEARDOWN\",\n },\n};\n\n},{\"./braintree-error\":32}],40:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction convertDateStringToDate(dateString) {\n var splitDate = dateString.split(\"-\");\n\n return new Date(splitDate[0], splitDate[1], splitDate[2]);\n}\n\nfunction isDateStringBeforeOrOn(firstDate, secondDate) {\n return (\n convertDateStringToDate(firstDate) <= convertDateStringToDate(secondDate)\n );\n}\n\nmodule.exports = isDateStringBeforeOrOn;\n\n},{}],41:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar parser;\nvar legalHosts = {\n \"paypal.com\": 1,\n \"braintreepayments.com\": 1,\n \"braintreegateway.com\": 1,\n \"braintree-api.com\": 1,\n};\n\n// endRemoveIf(production)\n\nfunction stripSubdomains(domain) {\n return domain.split(\".\").slice(-2).join(\".\");\n}\n\nfunction isVerifiedDomain(url) {\n var mainDomain;\n\n url = url.toLowerCase();\n\n if (!/^https:/.test(url)) {\n return false;\n }\n\n parser = parser || document.createElement(\"a\");\n parser.href = url;\n mainDomain = stripSubdomains(parser.hostname);\n\n return legalHosts.hasOwnProperty(mainDomain);\n}\n\nmodule.exports = isVerifiedDomain;\n\n},{}],42:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (value) {\n return JSON.parse(JSON.stringify(value));\n};\n\n},{}],43:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (obj) {\n return Object.keys(obj).filter(function (key) {\n return typeof obj[key] === \"function\";\n });\n};\n\n},{}],44:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction once(fn) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n fn.apply(null, arguments);\n }\n };\n}\n\nmodule.exports = once;\n\n},{}],45:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction _notEmpty(obj) {\n var key;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n return true;\n }\n }\n\n return false;\n}\n\n/* eslint-disable no-mixed-operators */\nfunction _isArray(value) {\n return (\n (value &&\n typeof value === \"object\" &&\n typeof value.length === \"number\" &&\n Object.prototype.toString.call(value) === \"[object Array]\") ||\n false\n );\n}\n/* eslint-enable no-mixed-operators */\n\nfunction hasQueryParams(url) {\n url = url || window.location.href;\n\n return /\\?/.test(url);\n}\n\nfunction parse(url) {\n var query, params;\n\n url = url || window.location.href;\n\n if (!hasQueryParams(url)) {\n return {};\n }\n\n query = url.split(\"?\")[1] || \"\";\n query = query.replace(/#.*$/, \"\").split(\"&\");\n\n params = query.reduce(function (toReturn, keyValue) {\n var parts = keyValue.split(\"=\");\n var key = decodeURIComponent(parts[0]);\n var value = decodeURIComponent(parts[1]);\n\n toReturn[key] = value;\n\n return toReturn;\n }, {});\n\n return params;\n}\n\nfunction stringify(params, namespace) {\n var k, v, p;\n var query = [];\n\n for (p in params) {\n if (!params.hasOwnProperty(p)) {\n continue;\n }\n\n v = params[p];\n\n if (namespace) {\n if (_isArray(params)) {\n k = namespace + \"[]\";\n } else {\n k = namespace + \"[\" + p + \"]\";\n }\n } else {\n k = p;\n }\n if (typeof v === \"object\") {\n query.push(stringify(v, k));\n } else {\n query.push(encodeURIComponent(k) + \"=\" + encodeURIComponent(v));\n }\n }\n\n return query.join(\"&\");\n}\n\nfunction queryify(url, params) {\n url = url || \"\";\n\n if (params != null && typeof params === \"object\" && _notEmpty(params)) {\n url += url.indexOf(\"?\") === -1 ? \"?\" : \"\";\n url += url.indexOf(\"=\") !== -1 ? \"&\" : \"\";\n url += stringify(params);\n }\n\n return url;\n}\n\nmodule.exports = {\n parse: parse,\n stringify: stringify,\n queryify: queryify,\n hasQueryParams: hasQueryParams,\n};\n\n},{}],46:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (snakeString) {\n if (snakeString.indexOf(\"_\") === -1) {\n return snakeString;\n }\n\n return snakeString.toLowerCase().replace(/(\\_\\w)/g, function (match) {\n return match[1].toUpperCase();\n });\n};\n\n},{}],47:[function(_dereq_,module,exports){\n\"use strict\";\n\n// NEXT_MAJOR_VERSION old versions of IE don't have atob, in the\n// next major version, we're dropping support for those versions\n// so we can eliminate the need to have this atob polyfill\nvar atobNormalized = typeof atob === \"function\" ? atob : atobPolyfill;\n\nfunction atobPolyfill(base64String) {\n var a, b, c, b1, b2, b3, b4, i;\n var base64Matcher = new RegExp(\n \"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$\"\n );\n var characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var result = \"\";\n\n if (!base64Matcher.test(base64String)) {\n throw new Error(\"Non base64 encoded input passed to window.atob polyfill\");\n }\n\n i = 0;\n do {\n b1 = characters.indexOf(base64String.charAt(i++));\n b2 = characters.indexOf(base64String.charAt(i++));\n b3 = characters.indexOf(base64String.charAt(i++));\n b4 = characters.indexOf(base64String.charAt(i++));\n\n a = ((b1 & 0x3f) << 2) | ((b2 >> 4) & 0x3);\n b = ((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf);\n c = ((b3 & 0x3) << 6) | (b4 & 0x3f);\n\n result +=\n String.fromCharCode(a) +\n (b ? String.fromCharCode(b) : \"\") +\n (c ? String.fromCharCode(c) : \"\");\n } while (i < base64String.length);\n\n return result;\n}\n\nmodule.exports = {\n atob: function (base64String) {\n return atobNormalized.call(window, base64String);\n },\n _atob: atobPolyfill,\n};\n\n},{}]},{},[14])(14)\n});\n","(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 || (g.braintree = {})).dataCollector = 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} */\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},{}],9:[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\":16}],10:[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\":14,\"../lib/constants\":18}],11:[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.97.4\";\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\":15,\"../lib/braintree-error\":16,\"../lib/convert-methods-to-error\":19,\"../lib/create-assets-url\":20,\"../lib/create-deferred-client\":21,\"../lib/methods\":24,\"./errors\":9,\"./fraudnet\":10,\"./kount\":12,\"@braintree/wrap-promise\":7}],12:[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\":17,\"./vendor/sjcl\":13}],13:[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}],14:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar loadScript = _dereq_(\"@braintree/asset-loader/load-script\");\n\nmodule.exports = {\n loadScript: loadScript,\n};\n\n},{\"@braintree/asset-loader/load-script\":3}],15:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\nvar sharedErrors = _dereq_(\"./errors\");\nvar VERSION = \"3.97.4\";\n\nfunction basicComponentVerification(options) {\n var client, authorization, name;\n\n if (!options) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INVALID_USE_OF_INTERNAL_FUNCTION.type,\n code: sharedErrors.INVALID_USE_OF_INTERNAL_FUNCTION.code,\n message:\n \"Options must be passed to basicComponentVerification function.\",\n })\n );\n }\n\n name = options.name;\n client = options.client;\n authorization = options.authorization;\n\n if (!client && !authorization) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type,\n code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code,\n // NEXT_MAJOR_VERSION in major version, we expose passing in authorization for all components\n // instead of passing in a client instance. Leave this a silent feature for now.\n message: \"options.client is required when instantiating \" + name + \".\",\n })\n );\n }\n\n if (!authorization && client.getVersion() !== VERSION) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INCOMPATIBLE_VERSIONS.type,\n code: sharedErrors.INCOMPATIBLE_VERSIONS.code,\n message:\n \"Client (version \" +\n client.getVersion() +\n \") and \" +\n name +\n \" (version \" +\n VERSION +\n \") components must be from the same SDK version.\",\n })\n );\n }\n\n return Promise.resolve();\n}\n\nmodule.exports = {\n verify: basicComponentVerification,\n};\n\n},{\"./braintree-error\":16,\"./errors\":23}],16:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar enumerate = _dereq_(\"./enumerate\");\n\n/**\n * @class\n * @global\n * @param {object} options Construction options\n * @classdesc This class is used to report error conditions, frequently as the first parameter to callbacks throughout the Braintree SDK.\n * @description You cannot use this constructor directly. Interact with instances of this class through {@link callback callbacks}.\n */\nfunction BraintreeError(options) {\n if (!BraintreeError.types.hasOwnProperty(options.type)) {\n throw new Error(options.type + \" is not a valid type.\");\n }\n\n if (!options.code) {\n throw new Error(\"Error code required.\");\n }\n\n if (!options.message) {\n throw new Error(\"Error message required.\");\n }\n\n this.name = \"BraintreeError\";\n\n /**\n * @type {string}\n * @description A code that corresponds to specific errors.\n */\n this.code = options.code;\n\n /**\n * @type {string}\n * @description A short description of the error.\n */\n this.message = options.message;\n\n /**\n * @type {BraintreeError.types}\n * @description The type of error.\n */\n this.type = options.type;\n\n /**\n * @type {object=}\n * @description Additional information about the error, such as an underlying network error response.\n */\n this.details = options.details;\n}\n\nBraintreeError.prototype = Object.create(Error.prototype);\nBraintreeError.prototype.constructor = BraintreeError;\n\n/**\n * Enum for {@link BraintreeError} types.\n * @name BraintreeError.types\n * @enum\n * @readonly\n * @memberof BraintreeError\n * @property {string} CUSTOMER An error caused by the customer.\n * @property {string} MERCHANT An error that is actionable by the merchant.\n * @property {string} NETWORK An error due to a network problem.\n * @property {string} INTERNAL An error caused by Braintree code.\n * @property {string} UNKNOWN An error where the origin is unknown.\n */\nBraintreeError.types = enumerate([\n \"CUSTOMER\",\n \"MERCHANT\",\n \"NETWORK\",\n \"INTERNAL\",\n \"UNKNOWN\",\n]);\n\nBraintreeError.findRootError = function (err) {\n if (\n err instanceof BraintreeError &&\n err.details &&\n err.details.originalError\n ) {\n return BraintreeError.findRootError(err.details.originalError);\n }\n\n return err;\n};\n\nmodule.exports = BraintreeError;\n\n},{\"./enumerate\":22}],17:[function(_dereq_,module,exports){\n\"use strict\";\n\n// Taken from https://github.com/sindresorhus/decamelize/blob/95980ab6fb44c40eaca7792bdf93aff7c210c805/index.js\nfunction transformKey(key) {\n return key\n .replace(/([a-z\\d])([A-Z])/g, \"$1_$2\")\n .replace(/([A-Z]+)([A-Z][a-z\\d]+)/g, \"$1_$2\")\n .toLowerCase();\n}\n\nmodule.exports = function (obj) {\n return Object.keys(obj).reduce(function (newObj, key) {\n var transformedKey = transformKey(key);\n\n newObj[transformedKey] = obj[key];\n\n return newObj;\n }, {});\n};\n\n},{}],18:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar VERSION = \"3.97.4\";\nvar PLATFORM = \"web\";\n\nvar CLIENT_API_URLS = {\n production: \"https://api.braintreegateway.com:443\",\n sandbox: \"https://api.sandbox.braintreegateway.com:443\",\n};\n\nvar ASSETS_URLS = {\n production: \"https://assets.braintreegateway.com\",\n sandbox: \"https://assets.braintreegateway.com\",\n};\n\nvar GRAPHQL_URLS = {\n production: \"https://payments.braintree-api.com/graphql\",\n sandbox: \"https://payments.sandbox.braintree-api.com/graphql\",\n};\n\n// endRemoveIf(production)\n\nmodule.exports = {\n ANALYTICS_PREFIX: PLATFORM + \".\",\n ANALYTICS_REQUEST_TIMEOUT_MS: 2000,\n ASSETS_URLS: ASSETS_URLS,\n CLIENT_API_URLS: CLIENT_API_URLS,\n FRAUDNET_SOURCE: \"BRAINTREE_SIGNIN\",\n FRAUDNET_FNCLS: \"fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99\",\n FRAUDNET_URL: \"https://c.paypal.com/da/r/fb.js\",\n BUS_CONFIGURATION_REQUEST_EVENT: \"BUS_CONFIGURATION_REQUEST\",\n GRAPHQL_URLS: GRAPHQL_URLS,\n INTEGRATION_TIMEOUT_MS: 60000,\n VERSION: VERSION,\n INTEGRATION: \"custom\",\n SOURCE: \"client\",\n PLATFORM: PLATFORM,\n BRAINTREE_LIBRARY_VERSION: \"braintree/\" + PLATFORM + \"/\" + VERSION,\n};\n\n},{}],19:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\nvar sharedErrors = _dereq_(\"./errors\");\n\nmodule.exports = function (instance, methodNames) {\n methodNames.forEach(function (methodName) {\n instance[methodName] = function () {\n throw new BraintreeError({\n type: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.type,\n code: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.code,\n message: methodName + \" cannot be called after teardown.\",\n });\n };\n });\n};\n\n},{\"./braintree-error\":16,\"./errors\":23}],20:[function(_dereq_,module,exports){\n\"use strict\";\n\n// endRemoveIf(production)\nvar ASSETS_URLS = _dereq_(\"./constants\").ASSETS_URLS;\n\nfunction createAssetsUrl(authorization) {\n // endRemoveIf(production)\n\n return ASSETS_URLS.production;\n}\n/* eslint-enable */\n\nmodule.exports = {\n create: createAssetsUrl,\n};\n\n},{\"./constants\":18}],21:[function(_dereq_,module,exports){\n\"use strict\";\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\nvar assets = _dereq_(\"./assets\");\nvar sharedErrors = _dereq_(\"./errors\");\n\nvar VERSION = \"3.97.4\";\n\nfunction createDeferredClient(options) {\n var promise = Promise.resolve();\n\n if (options.client) {\n return Promise.resolve(options.client);\n }\n\n if (!(window.braintree && window.braintree.client)) {\n promise = assets\n .loadScript({\n src: options.assetsUrl + \"/web/\" + VERSION + \"/js/client.min.js\",\n })\n .catch(function (err) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.CLIENT_SCRIPT_FAILED_TO_LOAD.type,\n code: sharedErrors.CLIENT_SCRIPT_FAILED_TO_LOAD.code,\n message: sharedErrors.CLIENT_SCRIPT_FAILED_TO_LOAD.message,\n details: {\n originalError: err,\n },\n })\n );\n });\n }\n\n return promise.then(function () {\n if (window.braintree.client.VERSION !== VERSION) {\n return Promise.reject(\n new BraintreeError({\n type: sharedErrors.INCOMPATIBLE_VERSIONS.type,\n code: sharedErrors.INCOMPATIBLE_VERSIONS.code,\n message:\n \"Client (version \" +\n window.braintree.client.VERSION +\n \") and \" +\n options.name +\n \" (version \" +\n VERSION +\n \") components must be from the same SDK version.\",\n })\n );\n }\n\n return window.braintree.client.create({\n authorization: options.authorization,\n debug: options.debug,\n });\n });\n}\n\nmodule.exports = {\n create: createDeferredClient,\n};\n\n},{\"./assets\":14,\"./braintree-error\":16,\"./errors\":23}],22:[function(_dereq_,module,exports){\n\"use strict\";\n\nfunction enumerate(values, prefix) {\n prefix = prefix == null ? \"\" : prefix;\n\n return values.reduce(function (enumeration, value) {\n enumeration[value] = prefix + value;\n\n return enumeration;\n }, {});\n}\n\nmodule.exports = enumerate;\n\n},{}],23:[function(_dereq_,module,exports){\n\"use strict\";\n\n/**\n * @name BraintreeError.Shared Internal Error Codes\n * @ignore\n * @description These codes should never be experienced by the merchant directly.\n * @property {INTERNAL} INVALID_USE_OF_INTERNAL_FUNCTION Occurs when the client is created without a gateway configuration. Should never happen.\n */\n\n/**\n * @name BraintreeError.Shared Errors - Component Creation Error Codes\n * @description Errors that occur when creating components.\n * @property {MERCHANT} INSTANTIATION_OPTION_REQUIRED Occurs when a component is created that is missing a required option.\n * @property {MERCHANT} INCOMPATIBLE_VERSIONS Occurs when a component is created with a client with a different version than the component.\n * @property {NETWORK} CLIENT_SCRIPT_FAILED_TO_LOAD Occurs when a component attempts to load the Braintree client script, but the request fails.\n */\n\n/**\n * @name BraintreeError.Shared Errors - Component Instance Error Codes\n * @description Errors that occur when using instances of components.\n * @property {MERCHANT} METHOD_CALLED_AFTER_TEARDOWN Occurs when a method is called on a component instance after it has been torn down.\n */\n\nvar BraintreeError = _dereq_(\"./braintree-error\");\n\nmodule.exports = {\n INVALID_USE_OF_INTERNAL_FUNCTION: {\n type: BraintreeError.types.INTERNAL,\n code: \"INVALID_USE_OF_INTERNAL_FUNCTION\",\n },\n INSTANTIATION_OPTION_REQUIRED: {\n type: BraintreeError.types.MERCHANT,\n code: \"INSTANTIATION_OPTION_REQUIRED\",\n },\n INCOMPATIBLE_VERSIONS: {\n type: BraintreeError.types.MERCHANT,\n code: \"INCOMPATIBLE_VERSIONS\",\n },\n CLIENT_SCRIPT_FAILED_TO_LOAD: {\n type: BraintreeError.types.NETWORK,\n code: \"CLIENT_SCRIPT_FAILED_TO_LOAD\",\n message: \"Braintree client script could not be loaded.\",\n },\n METHOD_CALLED_AFTER_TEARDOWN: {\n type: BraintreeError.types.MERCHANT,\n code: \"METHOD_CALLED_AFTER_TEARDOWN\",\n },\n};\n\n},{\"./braintree-error\":16}],24:[function(_dereq_,module,exports){\n\"use strict\";\n\nmodule.exports = function (obj) {\n return Object.keys(obj).filter(function (key) {\n return typeof obj[key] === \"function\";\n });\n};\n\n},{}]},{},[11])(11)\n});\n","(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 || (g.braintree = {})).hostedFields = 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 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},{}],26:[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\":27,\"./lib/default-attributes\":28,\"./lib/set-attributes\":29}],27:[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},{}],28:[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},{}],29:[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},{}],30:[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},{}],31:[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},{}],32:[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},{}],33:[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},{}],34:[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\":31,\"./lib/once\":32,\"./lib/promise-or-callback\":33}],35:[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\":36,\"./lib/card-types\":37,\"./lib/clone\":38,\"./lib/find-best-match\":39,\"./lib/is-valid-input-type\":40}],36:[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\":38,\"./matches\":41}],37:[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},{}],38:[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},{}],39:[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},{}],40:[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},{}],41:[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},{}],42:[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\":50}],43:[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\":42,\"./lib\":50}],44:[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},{\"./\":50}],45:[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},{\"./\":50}],46:[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},{\"./\":50}],47:[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},{}],48:[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},{\"./\":50}],49:[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},{}],50:[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\":44,\"./broadcast\":46,\"./broadcast-to-child-windows\":45,\"./constants\":47,\"./dispatch\":48,\"./has-opener\":49,\"./is-not-string\":51,\"./message\":52,\"./package-payload\":53,\"./send-message\":54,\"./subscribe-replier\":55,\"./subscription-args-invalid\":56,\"./types\":57,\"./unpack-payload\":58}],51:[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},{}],52:[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},{\"./\":50}],53:[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},{\"./\":50}],54:[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},{}],55:[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\":42,\"@braintree/uuid\":30}],56:[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},{\"./\":50}],57:[function(_dereq_,module,exports){\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n},{}],58:[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},{\"./\":50}],59:[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},{}],60:[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\":18,\"@braintree/browser-detection/is-chrome\":20,\"@braintree/browser-detection/is-chrome-os\":19,\"@braintree/browser-detection/is-ie9\":22,\"@braintree/browser-detection/is-ios\":24}],61:[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\":60}],62:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(\"./dist/supports-input-formatting\");\n\n},{\"./dist/supports-input-formatting\":61}],63:[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\":82,\"../shared/constants\":71,\"../shared/errors\":72}],64:[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\":97,\"../shared/constants\":71}],65:[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\":70,\"../shared/constants\":71,\"../shared/find-parent-tags\":73,\"../shared/focus-intercept\":74}],66:[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\":71}],67:[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\":77,\"../../lib/assign\":79,\"../../lib/braintree-error\":82,\"../../lib/constants\":83,\"../../lib/convert-methods-to-error\":84,\"../../lib/create-assets-url\":85,\"../../lib/create-deferred-client\":87,\"../../lib/destructor\":88,\"../../lib/errors\":90,\"../../lib/find-root-node\":91,\"../../lib/is-verified-domain\":92,\"../../lib/methods\":94,\"../../lib/shadow\":96,\"../shared/browser-detection\":70,\"../shared/constants\":71,\"../shared/errors\":72,\"../shared/find-parent-tags\":73,\"../shared/focus-intercept\":74,\"../shared/get-card-types\":75,\"./attribute-validation-error\":63,\"./compose-url\":64,\"./focus-change\":65,\"./get-styles-from-class\":66,\"./inject-frame\":68,\"@braintree/event-emitter\":25,\"@braintree/iframer\":26,\"@braintree/uuid\":30,\"@braintree/wrap-promise\":34,\"framebus\":43}],68:[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\":71,\"../shared/focus-intercept\":74}],69:[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.97.4\";\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 `