braintree-web
Advanced tools
Comparing version 3.0.0-beta.11 to 3.0.0-beta.12
@@ -6,2 +6,4 @@ (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 = {})).americanExpress = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
var deferred = _dereq_('../lib/deferred'); | ||
var errors = _dereq_('./errors'); | ||
var sharedErrors = _dereq_('../errors'); | ||
@@ -43,3 +45,4 @@ /** | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'getRewardsBalance must include a callback function.' | ||
@@ -53,3 +56,4 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: errors.NONCE_REQUIRED.type, | ||
code: errors.NONCE_REQUIRED.code, | ||
message: 'getRewardsBalance must be called with a nonce.' | ||
@@ -70,4 +74,5 @@ })); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: 'A network error occured when getting the American Express rewards balance.', | ||
type: errors.AMEX_NETWORK_ERROR.type, | ||
code: errors.AMEX_NETWORK_ERROR.code, | ||
message: 'A network error occurred when getting the American Express rewards balance.', | ||
details: { | ||
@@ -108,3 +113,4 @@ originalError: err | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'getExpressCheckoutProfile must include a callback function.' | ||
@@ -118,3 +124,4 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: errors.NONCE_REQUIRED.type, | ||
code: errors.NONCE_REQUIRED.code, | ||
message: 'getExpressCheckoutProfile must be called with a nonce.' | ||
@@ -135,4 +142,5 @@ })); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: 'A network error occured when getting the American Express Checkout nonce profile.', | ||
type: errors.AMEX_NETWORK_ERROR.type, | ||
code: errors.AMEX_NETWORK_ERROR.code, | ||
message: 'A network error occurred when getting the American Express Checkout nonce profile.', | ||
details: { | ||
@@ -150,4 +158,20 @@ originalError: err | ||
},{"../lib/deferred":3,"../lib/error":5}],2:[function(_dereq_,module,exports){ | ||
},{"../errors":4,"../lib/deferred":5,"../lib/error":7,"./errors":2}],2:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('../lib/error'); | ||
module.exports = { | ||
NONCE_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'NONCE_REQUIRED' | ||
}, | ||
AMEX_NETWORK_ERROR: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'AMEX_NETWORK_ERROR' | ||
} | ||
}; | ||
},{"../lib/error":7}],3:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
/** | ||
@@ -161,3 +185,4 @@ * @module braintree-web/american-express | ||
var deferred = _dereq_('../lib/deferred'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var sharedErrors = _dereq_('../errors'); | ||
var VERSION = "3.0.0-beta.12"; | ||
@@ -177,3 +202,4 @@ /** | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'create must include a callback function.' | ||
@@ -187,3 +213,4 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type, | ||
code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code, | ||
message: 'options.client is required when instantiating American Express.' | ||
@@ -197,3 +224,4 @@ })); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INCOMPATIBLE_VERSIONS.type, | ||
code: sharedErrors.INCOMPATIBLE_VERSIONS.code, | ||
message: 'Client (version ' + clientVersion + ') and American Express (version ' + VERSION + ') components must be from the same SDK version.' | ||
@@ -216,5 +244,29 @@ })); | ||
},{"../lib/deferred":3,"../lib/error":5,"./american-express":1}],3:[function(_dereq_,module,exports){ | ||
},{"../errors":4,"../lib/deferred":5,"../lib/error":7,"./american-express":1}],4:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./lib/error'); | ||
module.exports = { | ||
CALLBACK_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CALLBACK_REQUIRED' | ||
}, | ||
INSTANTIATION_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INSTANTIATION_OPTION_REQUIRED' | ||
}, | ||
INCOMPATIBLE_VERSIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INCOMPATIBLE_VERSIONS' | ||
}, | ||
METHOD_CALLED_AFTER_TEARDOWN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'METHOD_CALLED_AFTER_TEARDOWN' | ||
} | ||
}; | ||
},{"./lib/error":7}],5:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
module.exports = function (fn) { | ||
@@ -231,3 +283,3 @@ return function () { | ||
},{}],4:[function(_dereq_,module,exports){ | ||
},{}],6:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -246,3 +298,3 @@ | ||
},{}],5:[function(_dereq_,module,exports){ | ||
},{}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -264,2 +316,6 @@ | ||
if (!options.code) { | ||
throw new Error('Error code required.'); | ||
} | ||
if (!options.message) { | ||
@@ -273,2 +329,8 @@ throw new Error('Error message required.'); | ||
* @type {string} | ||
* @description A code that corresponds to specific errors. | ||
*/ | ||
this.code = options.code; | ||
/** | ||
* @type {string} | ||
* @description A short description of the error. | ||
@@ -316,3 +378,3 @@ */ | ||
},{"./enumerate":4}]},{},[2])(2) | ||
},{"./enumerate":6}]},{},[3])(3) | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).americanExpress=e()}}(function(){return function e(t,n,r){function o(s,a){if(!n[s]){if(!t[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(i)return i(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var p=n[s]={exports:{}};t[s][0].call(p.exports,function(e){var n=t[s][1][e];return o(n?n:e)},p,p.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(e,t,n){"use strict";function r(e){this._client=e.client}var o=e("../lib/error"),i=e("../lib/deferred");r.prototype.getRewardsBalance=function(e,t){if("function"!=typeof t)throw new o({type:o.types.MERCHANT,message:"getRewardsBalance must include a callback function."});return t=i(t),e.nonce?void this._client.request({method:"get",endpoint:"payment_methods/amex_rewards_balance",data:{_meta:{source:"american-express"},paymentMethodNonce:e.nonce}},function(e,n){e?t(new o({type:o.types.NETWORK,message:"A network error occured when getting the American Express rewards balance.",details:{originalError:e}})):t(null,n)}):void t(new o({type:o.types.MERCHANT,message:"getRewardsBalance must be called with a nonce."}))},r.prototype.getExpressCheckoutProfile=function(e,t){if("function"!=typeof t)throw new o({type:o.types.MERCHANT,message:"getExpressCheckoutProfile must include a callback function."});return t=i(t),e.nonce?void this._client.request({method:"get",endpoint:"payment_methods/amex_express_checkout_cards/"+e.nonce,data:{_meta:{source:"american-express"},paymentMethodNonce:e.nonce}},function(e,n){e?t(new o({type:o.types.NETWORK,message:"A network error occured when getting the American Express Checkout nonce profile.",details:{originalError:e}})):t(null,n)}):void t(new o({type:o.types.MERCHANT,message:"getExpressCheckoutProfile must be called with a nonce."}))},t.exports=r},{"../lib/deferred":3,"../lib/error":5}],2:[function(e,t,n){"use strict";function r(e,t){var n;if("function"!=typeof t)throw new o({type:o.types.MERCHANT,message:"create must include a callback function."});return t=s(t),null==e.client?void t(new o({type:o.types.MERCHANT,message:"options.client is required when instantiating American Express."})):(n=e.client.getConfiguration().analyticsMetadata.sdkVersion,n!==a?void t(new o({type:o.types.MERCHANT,message:"Client (version "+n+") and American Express (version "+a+") components must be from the same SDK version."})):void t(null,new i(e)))}var o=e("../lib/error"),i=e("./american-express"),s=e("../lib/deferred"),a="3.0.0-beta.11";t.exports={create:r,VERSION:a}},{"../lib/deferred":3,"../lib/error":5,"./american-express":1}],3:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],4:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],5:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=e.message,this.type=e.type,this.details=e.details}var o=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=o(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":4}]},{},[2])(2)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(r.braintree||(r.braintree={})).americanExpress=e()}}(function(){return function e(r,t,n){function o(s,c){if(!t[s]){if(!r[s]){var a="function"==typeof require&&require;if(!c&&a)return a(s,!0);if(i)return i(s,!0);var E=new Error("Cannot find module '"+s+"'");throw E.code="MODULE_NOT_FOUND",E}var u=t[s]={exports:{}};r[s][0].call(u.exports,function(e){var t=r[s][1][e];return o(t?t:e)},u,u.exports,e,r,t,n)}return t[s].exports}for(var i="function"==typeof require&&require,s=0;s<n.length;s++)o(n[s]);return o}({1:[function(e,r,t){"use strict";function n(e){this._client=e.client}var o=e("../lib/error"),i=e("../lib/deferred"),s=e("./errors"),c=e("../errors");n.prototype.getRewardsBalance=function(e,r){if("function"!=typeof r)throw new o({type:c.CALLBACK_REQUIRED.type,code:c.CALLBACK_REQUIRED.code,message:"getRewardsBalance must include a callback function."});return r=i(r),e.nonce?void this._client.request({method:"get",endpoint:"payment_methods/amex_rewards_balance",data:{_meta:{source:"american-express"},paymentMethodNonce:e.nonce}},function(e,t){e?r(new o({type:s.AMEX_NETWORK_ERROR.type,code:s.AMEX_NETWORK_ERROR.code,message:"A network error occurred when getting the American Express rewards balance.",details:{originalError:e}})):r(null,t)}):void r(new o({type:s.NONCE_REQUIRED.type,code:s.NONCE_REQUIRED.code,message:"getRewardsBalance must be called with a nonce."}))},n.prototype.getExpressCheckoutProfile=function(e,r){if("function"!=typeof r)throw new o({type:c.CALLBACK_REQUIRED.type,code:c.CALLBACK_REQUIRED.code,message:"getExpressCheckoutProfile must include a callback function."});return r=i(r),e.nonce?void this._client.request({method:"get",endpoint:"payment_methods/amex_express_checkout_cards/"+e.nonce,data:{_meta:{source:"american-express"},paymentMethodNonce:e.nonce}},function(e,t){e?r(new o({type:s.AMEX_NETWORK_ERROR.type,code:s.AMEX_NETWORK_ERROR.code,message:"A network error occurred when getting the American Express Checkout nonce profile.",details:{originalError:e}})):r(null,t)}):void r(new o({type:s.NONCE_REQUIRED.type,code:s.NONCE_REQUIRED.code,message:"getExpressCheckoutProfile must be called with a nonce."}))},r.exports=n},{"../errors":4,"../lib/deferred":5,"../lib/error":7,"./errors":2}],2:[function(e,r,t){"use strict";var n=e("../lib/error");r.exports={NONCE_REQUIRED:{type:n.types.MERCHANT,code:"NONCE_REQUIRED"},AMEX_NETWORK_ERROR:{type:n.types.NETWORK,code:"AMEX_NETWORK_ERROR"}}},{"../lib/error":7}],3:[function(e,r,t){"use strict";function n(e,r){var t;if("function"!=typeof r)throw new o({type:c.CALLBACK_REQUIRED.type,code:c.CALLBACK_REQUIRED.code,message:"create must include a callback function."});return r=s(r),null==e.client?void r(new o({type:c.INSTANTIATION_OPTION_REQUIRED.type,code:c.INSTANTIATION_OPTION_REQUIRED.code,message:"options.client is required when instantiating American Express."})):(t=e.client.getConfiguration().analyticsMetadata.sdkVersion,t!==a?void r(new o({type:c.INCOMPATIBLE_VERSIONS.type,code:c.INCOMPATIBLE_VERSIONS.code,message:"Client (version "+t+") and American Express (version "+a+") components must be from the same SDK version."})):void r(null,new i(e)))}var o=e("../lib/error"),i=e("./american-express"),s=e("../lib/deferred"),c=e("../errors"),a="3.0.0-beta.12";r.exports={create:n,VERSION:a}},{"../errors":4,"../lib/deferred":5,"../lib/error":7,"./american-express":1}],4:[function(e,r,t){"use strict";var n=e("./lib/error");r.exports={CALLBACK_REQUIRED:{type:n.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:n.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:n.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:n.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":7}],5:[function(e,r,t){"use strict";r.exports=function(e){return function(){var r=arguments;setTimeout(function(){e.apply(null,r)},1)}}},{}],6:[function(e,r,t){"use strict";function n(e,r){return r=null==r?"":r,e.reduce(function(e,t){return e[t]=r+t,e},{})}r.exports=n},{}],7:[function(e,r,t){"use strict";function n(e){if(!n.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.code)throw new Error("Error code required.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=e.code,this.message=e.message,this.type=e.type,this.details=e.details}var o=e("./enumerate");n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.types=o(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),r.exports=n},{"./enumerate":6}]},{},[3])(3)}); |
CHANGELOG | ||
========= | ||
## 3.0.0-beta.12 | ||
* Some error messages have been changed to be more consistent across components | ||
* Update `BraintreeError` to include a `code`, which can be used to check for specific errors: | ||
``` | ||
hostedFieldsInstance.tokenize(function (err, payload) { | ||
if (err && err.code === 'FIELDS_EMPTY') { | ||
// Handle user input error | ||
} | ||
}); | ||
``` | ||
* Fix an incorrect `<script>` tag example in API docs | ||
* Fix an error in Require.js API docs | ||
* Hosted Fields | ||
* Automatic input formatting disabled for Android Firefox | ||
* Add `vault` as an option to `tokenize` which allows cards to be vaulted on tokenization | ||
* Add `addClass` and `removeClass` for updating classes on fields | ||
* Stop applying `invalid` CSS classes to `potentiallyValid` fields on tokenization attempts | ||
* PayPal | ||
* Consistently return `BraintreeError` objects when the PayPal flow is cancelled | ||
* UnionPay | ||
* Add `type` to tokenize payload | ||
* Add Apple Pay component. | ||
## 3.0.0-beta.11 | ||
@@ -5,0 +31,0 @@ |
@@ -9,2 +9,3 @@ (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 e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
var deferred = _dereq_('../lib/deferred'); | ||
var errors = _dereq_('./errors'); | ||
@@ -38,6 +39,3 @@ /** | ||
if (!gatewayConfiguration) { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.INTERNAL, | ||
message: 'Missing gatewayConfiguration.' | ||
}); | ||
throw new BraintreeError(errors.MISSING_GATEWAY_CONFIGURATION); | ||
} | ||
@@ -52,4 +50,5 @@ | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'Invalid ' + property + '.' | ||
type: errors.GATEWAY_CONFIGURATION_INVALID_DOMAIN.type, | ||
code: errors.GATEWAY_CONFIGURATION_INVALID_DOMAIN.code, | ||
message: property + ' property is on an invalid domain.' | ||
}); | ||
@@ -119,15 +118,16 @@ } | ||
Client.prototype.request = function (options, callback) { | ||
var errorMsg; | ||
var optionName; | ||
if (!options.method) { | ||
errorMsg = 'options.method is required.'; | ||
optionName = 'options.method'; | ||
} else if (!options.endpoint) { | ||
errorMsg = 'options.endpoint is required.'; | ||
optionName = 'options.endpoint'; | ||
} | ||
if (errorMsg) { | ||
if (optionName) { | ||
callback = deferred(callback); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: errorMsg | ||
type: errors.OPTION_REQUIRED.type, | ||
code: errors.OPTION_REQUIRED.code, | ||
message: optionName + ' is required when making a request.' | ||
})); | ||
@@ -147,3 +147,34 @@ return; | ||
},{"../lib/add-metadata":12,"../lib/deferred":15,"../lib/error":17,"../lib/is-whitelisted-domain":18,"./request":7}],2:[function(_dereq_,module,exports){ | ||
},{"../lib/add-metadata":14,"../lib/deferred":17,"../lib/error":19,"../lib/is-whitelisted-domain":20,"./errors":2,"./request":8}],2:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('../lib/error'); | ||
module.exports = { | ||
GATEWAY_CONFIGURATION_INVALID_DOMAIN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'GATEWAY_CONFIGURATION_INVALID_DOMAIN' | ||
}, | ||
OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'OPTION_REQUIRED' | ||
}, | ||
MISSING_GATEWAY_CONFIGURATION: { | ||
type: BraintreeError.types.INTERNAL, | ||
code: 'MISSING_GATEWAY_CONFIGURATION', | ||
message: 'Missing gatewayConfiguration.' | ||
}, | ||
INVALID_AUTHORIZATION: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INVALID_AUTHORIZATION', | ||
message: 'Authorization is invalid. Make sure your client token or tokenization key is valid.' | ||
}, | ||
GATEWAY_NETWORK: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'GATEWAY_NETWORK', | ||
message: 'Cannot contact the gateway at this time.' | ||
} | ||
}; | ||
},{"../lib/error":19}],3:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -157,2 +188,3 @@ 'use strict'; | ||
var createAuthorizationData = _dereq_('../lib/create-authorization-data'); | ||
var errors = _dereq_('./errors'); | ||
@@ -175,6 +207,3 @@ function getConfiguration(options, callback) { | ||
} catch (err) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'Authorization is invalid. Make sure your client token or tokenization key is valid.' | ||
})); | ||
callback(new BraintreeError(errors.INVALID_AUTHORIZATION)); | ||
return; | ||
@@ -195,4 +224,5 @@ } | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: 'Cannot contact the gateway at this time.', | ||
type: errors.GATEWAY_NETWORK.type, | ||
code: errors.GATEWAY_NETWORK.code, | ||
message: errors.GATEWAY_NETWORK.message, | ||
details: err | ||
@@ -218,3 +248,3 @@ })); | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{"../lib/constants":13,"../lib/create-authorization-data":14,"../lib/error":17,"../lib/uuid":23,"./request":7}],3:[function(_dereq_,module,exports){ | ||
},{"../lib/constants":15,"../lib/create-authorization-data":16,"../lib/error":19,"../lib/uuid":25,"./errors":2,"./request":8}],4:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -225,4 +255,5 @@ | ||
var getConfiguration = _dereq_('./get-configuration').getConfiguration; | ||
var packageVersion = "3.0.0-beta.11"; | ||
var packageVersion = "3.0.0-beta.12"; | ||
var deferred = _dereq_('../lib/deferred'); | ||
var sharedErrors = _dereq_('../errors'); | ||
@@ -251,3 +282,4 @@ /** @module braintree-web/client */ | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'create must include a callback function.' | ||
@@ -261,4 +293,5 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'options.authorization is required.' | ||
type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type, | ||
code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code, | ||
message: 'options.authorization is required when instantiating a client.' | ||
})); | ||
@@ -296,3 +329,3 @@ return; | ||
},{"../lib/deferred":15,"../lib/error":17,"./client":1,"./get-configuration":2}],4:[function(_dereq_,module,exports){ | ||
},{"../errors":13,"../lib/deferred":17,"../lib/error":19,"./client":1,"./get-configuration":3}],5:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -377,3 +410,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{"../../lib/once":20,"../../lib/querystring":22,"./constants":5,"./parse-body":10,"./prep-body":11}],5:[function(_dereq_,module,exports){ | ||
},{"../../lib/once":22,"../../lib/querystring":24,"./constants":6,"./parse-body":11,"./prep-body":12}],6:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -390,3 +423,3 @@ | ||
},{}],6:[function(_dereq_,module,exports){ | ||
},{}],7:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -400,3 +433,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],7:[function(_dereq_,module,exports){ | ||
},{}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -424,3 +457,3 @@ | ||
},{"./ajax-driver":4,"./get-user-agent":6,"./is-http":8,"./jsonp-driver":9}],8:[function(_dereq_,module,exports){ | ||
},{"./ajax-driver":5,"./get-user-agent":7,"./is-http":9,"./jsonp-driver":10}],9:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -434,3 +467,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],9:[function(_dereq_,module,exports){ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -552,3 +585,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{"../../lib/querystring":22,"../../lib/uuid":23,"./constants":5}],10:[function(_dereq_,module,exports){ | ||
},{"../../lib/querystring":24,"../../lib/uuid":25,"./constants":6}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -564,3 +597,3 @@ | ||
},{}],11:[function(_dereq_,module,exports){ | ||
},{}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -580,5 +613,29 @@ | ||
},{}],12:[function(_dereq_,module,exports){ | ||
},{}],13:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./lib/error'); | ||
module.exports = { | ||
CALLBACK_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CALLBACK_REQUIRED' | ||
}, | ||
INSTANTIATION_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INSTANTIATION_OPTION_REQUIRED' | ||
}, | ||
INCOMPATIBLE_VERSIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INCOMPATIBLE_VERSIONS' | ||
}, | ||
METHOD_CALLED_AFTER_TEARDOWN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'METHOD_CALLED_AFTER_TEARDOWN' | ||
} | ||
}; | ||
},{"./lib/error":19}],14:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var createAuthorizationData = _dereq_('./create-authorization-data'); | ||
@@ -615,6 +672,6 @@ var jsonClone = _dereq_('./json-clone'); | ||
},{"./constants":13,"./create-authorization-data":14,"./json-clone":19}],13:[function(_dereq_,module,exports){ | ||
},{"./constants":15,"./create-authorization-data":16,"./json-clone":21}],15:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var VERSION = "3.0.0-beta.11"; | ||
var VERSION = "3.0.0-beta.12"; | ||
var PLATFORM = 'web'; | ||
@@ -632,3 +689,3 @@ | ||
},{}],14:[function(_dereq_,module,exports){ | ||
},{}],16:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -682,3 +739,3 @@ | ||
},{"../lib/polyfill":21}],15:[function(_dereq_,module,exports){ | ||
},{"../lib/polyfill":23}],17:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -697,3 +754,3 @@ | ||
},{}],16:[function(_dereq_,module,exports){ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -712,3 +769,3 @@ | ||
},{}],17:[function(_dereq_,module,exports){ | ||
},{}],19:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -730,2 +787,6 @@ | ||
if (!options.code) { | ||
throw new Error('Error code required.'); | ||
} | ||
if (!options.message) { | ||
@@ -739,2 +800,8 @@ throw new Error('Error message required.'); | ||
* @type {string} | ||
* @description A code that corresponds to specific errors. | ||
*/ | ||
this.code = options.code; | ||
/** | ||
* @type {string} | ||
* @description A short description of the error. | ||
@@ -782,3 +849,3 @@ */ | ||
},{"./enumerate":16}],18:[function(_dereq_,module,exports){ | ||
},{"./enumerate":18}],20:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -813,3 +880,3 @@ | ||
},{}],19:[function(_dereq_,module,exports){ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -821,3 +888,3 @@ | ||
},{}],20:[function(_dereq_,module,exports){ | ||
},{}],22:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -838,3 +905,3 @@ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
},{}],23:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -878,3 +945,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],22:[function(_dereq_,module,exports){ | ||
},{}],24:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -970,3 +1037,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],23:[function(_dereq_,module,exports){ | ||
},{}],25:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -985,3 +1052,3 @@ | ||
},{}]},{},[3])(3) | ||
},{}]},{},[4])(4) | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(e.braintree||(e.braintree={})).client=t()}}(function(){return function t(e,n,r){function o(a,s){if(!n[a]){if(!e[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[a]={exports:{}};e[a][0].call(f.exports,function(t){var n=e[a][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,e,n){"use strict";function r(t){var e,n;if(t=t||{},e=JSON.stringify(t),n=t.gatewayConfiguration,!n)throw new a({type:a.types.INTERNAL,message:"Missing gatewayConfiguration."});["assetsUrl","clientApiUrl","configUrl"].forEach(function(t){if(t in n&&!i(n[t]))throw new a({type:a.types.MERCHANT,message:"Invalid "+t+"."})}),this.getConfiguration=function(){return JSON.parse(e)},this._request=o,this._baseUrl=t.gatewayConfiguration.clientApiUrl+"/v1/",this._configuration=this.getConfiguration(),this.toJSON=this.getConfiguration}var o=t("./request"),i=t("../lib/is-whitelisted-domain"),a=t("../lib/error"),s=t("../lib/add-metadata"),u=t("../lib/deferred");r.prototype.request=function(t,e){var n;return t.method?t.endpoint||(n="options.endpoint is required."):n="options.method is required.",n?(e=u(e),void e(new a({type:a.types.MERCHANT,message:n}))):void this._request({url:this._baseUrl+t.endpoint,method:t.method,data:s(this._configuration,t.data),timeout:t.timeout},e)},e.exports=r},{"../lib/add-metadata":12,"../lib/deferred":15,"../lib/error":17,"../lib/is-whitelisted-domain":18,"./request":7}],2:[function(t,e,n){(function(n){"use strict";function r(t,e){var r,c,f,l,d=a(),p={merchantAppId:n.location.host,platform:s.PLATFORM,sdkVersion:s.VERSION,source:s.SOURCE,integration:s.INTEGRATION,integrationType:s.INTEGRATION,sessionId:d};try{c=u(t.authorization)}catch(y){return void e(new o({type:o.types.MERCHANT,message:"Authorization is invalid. Make sure your client token or tokenization key is valid."}))}f=c.attrs,l=c.configUrl,f._meta=p,f.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION,i({url:l,method:"GET",data:f},function(n,i){return n?void e(new o({type:o.types.NETWORK,message:"Cannot contact the gateway at this time.",details:n})):(r={authorization:t.authorization,analyticsMetadata:p,gatewayConfiguration:i},void e(null,r))})}var o=t("../lib/error"),i=t("./request"),a=t("../lib/uuid"),s=t("../lib/constants"),u=t("../lib/create-authorization-data");e.exports={getConfiguration:r}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lib/constants":13,"../lib/create-authorization-data":14,"../lib/error":17,"../lib/uuid":23,"./request":7}],3:[function(t,e,n){"use strict";function r(t,e){if("function"!=typeof e)throw new o({type:o.types.MERCHANT,message:"create must include a callback function."});return e=u(e),t.authorization?void a(t,function(t,n){var r;if(t)return void e(t);try{r=new i(n)}catch(o){return void e(o)}e(null,r)}):void e(new o({type:o.types.MERCHANT,message:"options.authorization is required."}))}var o=t("../lib/error"),i=t("./client"),a=t("./get-configuration").getConfiguration,s="3.0.0-beta.11",u=t("../lib/deferred");e.exports={create:r,VERSION:s}},{"../lib/deferred":15,"../lib/error":17,"./client":1,"./get-configuration":2}],4:[function(t,e,n){(function(n){"use strict";function r(){return f?new XMLHttpRequest:new XDomainRequest}function o(t,e){var n,o,l=(t.method||"GET").toUpperCase(),d=t.url,p=t.data||{},y=null==t.timeout?6e4:t.timeout,g=r(),h=a(e||Function.prototype);"GET"===l&&(d=i.queryify(d,p),p=null),f?g.onreadystatechange=function(){4===g.readyState&&(n=g.status,o=u(g.responseText),429===n?h(c.errors.RATE_LIMIT_ERROR,null,429):n>=400?h(o||c.errors.UNKNOWN_ERROR,null,n):0>=n?h(o||c.errors.UNKNOWN_ERROR,null,500):h(null,o,n))}:(g.onload=function(){h(null,u(g.responseText),g.status)},g.onerror=function(){h(c.errors.UNKNOWN_ERROR,null,g.status)},g.onprogress=function(){},g.ontimeout=function(){h(c.errors.TIMEOUT_ERROR,null,500)}),g.open(l,d,!0),g.timeout=y,f&&"POST"===l&&g.setRequestHeader("Content-Type","application/json");try{g.send(s(l,p))}catch(m){}}var i=t("../../lib/querystring"),a=t("../../lib/once"),s=t("./prep-body"),u=t("./parse-body"),c=t("./constants"),f=n.XMLHttpRequest&&"withCredentials"in new n.XMLHttpRequest;e.exports={request:o}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../lib/once":20,"../../lib/querystring":22,"./constants":5,"./parse-body":10,"./prep-body":11}],5:[function(t,e,n){"use strict";e.exports={errors:{UNKNOWN_ERROR:"Unknown error.",TIMEOUT_ERROR:"Request timed out waiting for a reply.",INVALID_TIMEOUT:"Timeout must be a number.",RATE_LIMIT_ERROR:"You are being rate-limited; please try again in a few minutes."}}},{}],6:[function(t,e,n){(function(t){"use strict";e.exports=function(){return t.navigator.userAgent}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(t,e,n){"use strict";function r(){return null==o&&(o=!(u()&&/MSIE\s(8|9)/.test(s()))),o}var o,i=t("./jsonp-driver"),a=t("./ajax-driver"),s=t("./get-user-agent"),u=t("./is-http");e.exports=function(){var t=r()?a.request:i.request;t.apply(null,arguments)}},{"./ajax-driver":4,"./get-user-agent":6,"./is-http":8,"./jsonp-driver":9}],8:[function(t,e,n){(function(t){"use strict";e.exports=function(){return"http:"===t.location.protocol}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],9:[function(t,e,n){(function(n){"use strict";function r(){}function o(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function i(t,e){var r=document.createElement("script"),o=!1;return r.src=t,r.async=!0,r.onerror=function(){n[e]({message:l.errors.UNKNOWN_ERROR,status:500})},r.onload=r.onreadystatechange=function(){o||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(o=!0,r.onload=r.onreadystatechange=null)},r}function a(t){try{delete n[t]}catch(e){n[t]=null}}function s(t,e){y[e]=setTimeout(function(){y[e]=null,n[e]({error:l.errors.TIMEOUT_ERROR,status:500}),n[e]=function(){a(e)}},t)}function u(t,e,i){e=e||r,n[i]=function(n){var r=n.status||500,s=null,u=null;delete n.status,r>=400?s=n:u=n,a(i),o(t),clearTimeout(y[i]),e(s,u,r)}}function c(t,e){var n,r="callback_json_"+d().replace(/-/g,""),o=t.url,a=t.data,c=(t.method||"GET").toUpperCase(),l=null==t.timeout?6e4:t.timeout;o=p.queryify(o,a),o=p.queryify(o,{_method:c,callback:r}),n=i(o,r),u(n,e,r),s(l,r),f||(f=document.getElementsByTagName("head")[0]),f.appendChild(n)}var f,l=t("./constants"),d=t("../../lib/uuid"),p=t("../../lib/querystring"),y={};e.exports={request:c}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../lib/querystring":22,"../../lib/uuid":23,"./constants":5}],10:[function(t,e,n){"use strict";e.exports=function(t){try{t=JSON.parse(t)}catch(e){}return t}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){if("string"!=typeof t)throw new Error("Method must be a string");return"get"!==t.toLowerCase()&&null!=e&&(e="string"==typeof e?e:JSON.stringify(e)),e}},{}],12:[function(t,e,n){"use strict";function r(t,e){var n,r=e?i(e):{},s=o(t.authorization).attrs,u=i(t.analyticsMetadata);r.braintreeLibraryVersion=a.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(u[n]=r._meta[n]);return r._meta=u,s.tokenizationKey?r.tokenizationKey=s.tokenizationKey:r.authorizationFingerprint=s.authorizationFingerprint,r}var o=t("./create-authorization-data"),i=t("./json-clone"),a=t("./constants");e.exports=r},{"./constants":13,"./create-authorization-data":14,"./json-clone":19}],13:[function(t,e,n){"use strict";var r="3.0.0-beta.11",o="web";e.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:o,BRAINTREE_LIBRARY_VERSION:"braintree/"+o+"/"+r}},{}],14:[function(t,e,n){"use strict";function r(t){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(t)}function o(t){var e=t.split("_"),n=e[0],r=e.slice(2).join("_");return{merchantId:r,environment:n}}function i(t){var e,n,i={attrs:{},configUrl:""};return r(t)?(n=o(t),i.attrs.tokenizationKey=t,i.configUrl=s[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(e=JSON.parse(a(t)),i.attrs.authorizationFingerprint=e.authorizationFingerprint,i.configUrl=e.configUrl),i}var a=t("../lib/polyfill").atob,s={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};e.exports=i},{"../lib/polyfill":21}],15:[function(t,e,n){"use strict";e.exports=function(t){return function(){var e=arguments;setTimeout(function(){t.apply(null,e)},1)}}},{}],16:[function(t,e,n){"use strict";function r(t,e){return e=null==e?"":e,t.reduce(function(t,n){return t[n]=e+n,t},{})}e.exports=r},{}],17:[function(t,e,n){"use strict";function r(t){if(!r.types.hasOwnProperty(t.type))throw new Error(t.type+" is not a valid type.");if(!t.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=t.message,this.type=t.type,this.details=t.details}var o=t("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=o(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),e.exports=r},{"./enumerate":16}],18:[function(t,e,n){"use strict";function r(t){var e,n;return t=t.toLowerCase(),/^https:/.test(t)?(o=o||document.createElement("a"),o.href=t,e=o.hostname.split("."),n=e.slice(-2).join("."),i.hasOwnProperty(n)):!1}var o,i={"paypal.com":1,"braintreepayments.com":1,"braintreegateway.com":1,localhost:1};e.exports=r},{}],19:[function(t,e,n){"use strict";e.exports=function(t){return JSON.parse(JSON.stringify(t))}},{}],20:[function(t,e,n){"use strict";function r(t){var e=!1;return function(){e||(e=!0,t.apply(null,arguments))}}e.exports=r},{}],21:[function(t,e,n){(function(t){"use strict";function n(t){var e,n,r,o,i,a,s,u,c=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="";if(!c.test(t))throw new Error("Non base64 encoded input passed to window.atob polyfill");u=0;do o=f.indexOf(t.charAt(u++)),i=f.indexOf(t.charAt(u++)),a=f.indexOf(t.charAt(u++)),s=f.indexOf(t.charAt(u++)),e=(63&o)<<2|i>>4&3,n=(15&i)<<4|a>>2&15,r=(3&a)<<6|63&s,l+=String.fromCharCode(e)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(u<t.length);return l}var r="function"==typeof t.atob?t.atob:n;e.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(t,e,n){(function(t){"use strict";function n(t){var e;for(e in t)if(t.hasOwnProperty(e))return!0;return!1}function r(t){return t&&"object"==typeof t&&"number"==typeof t.length&&"[object Array]"===Object.prototype.toString.call(t)||!1}function o(e){var n,r;return e=e||t.location.href,/\?/.test(e)?(n=e.replace(/#.*$/,"").replace(/^.*\?/,"").split("&"),r=n.reduce(function(t,e){var n=e.split("="),r=decodeURIComponent(n[0]),o=decodeURIComponent(n[1]);return t[r]=o,t},{})):{}}function i(t,e){var n,o,a,s=[];for(a in t)t.hasOwnProperty(a)&&(o=t[a],n=e?r(t)?e+"[]":e+"["+a+"]":a,"object"==typeof o?s.push(i(o,n)):s.push(encodeURIComponent(n)+"="+encodeURIComponent(o)));return s.join("&")}function a(t,e){return t=t||"",null!=e&&"object"==typeof e&&n(e)&&(t+=-1===t.indexOf("?")?"?":"",t+=-1!==t.indexOf("=")?"&":"",t+=i(e)),t}e.exports={parse:o,stringify:i,queryify:a}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],23:[function(t,e,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0,n="x"===t?e:3&e|8;return n.toString(16)})}e.exports=r},{}]},{},[3])(3)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).client=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[a]={exports:{}};t[a][0].call(f.exports,function(e){var n=t[a][1][e];return o(n?n:e)},f,f.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){"use strict";function r(e){var t,n;if(e=e||{},t=JSON.stringify(e),n=e.gatewayConfiguration,!n)throw new a(c.MISSING_GATEWAY_CONFIGURATION);["assetsUrl","clientApiUrl","configUrl"].forEach(function(e){if(e in n&&!i(n[e]))throw new a({type:c.GATEWAY_CONFIGURATION_INVALID_DOMAIN.type,code:c.GATEWAY_CONFIGURATION_INVALID_DOMAIN.code,message:e+" property is on an invalid domain."})}),this.getConfiguration=function(){return JSON.parse(t)},this._request=o,this._baseUrl=e.gatewayConfiguration.clientApiUrl+"/v1/",this._configuration=this.getConfiguration(),this.toJSON=this.getConfiguration}var o=e("./request"),i=e("../lib/is-whitelisted-domain"),a=e("../lib/error"),s=e("../lib/add-metadata"),u=e("../lib/deferred"),c=e("./errors");r.prototype.request=function(e,t){var n;return e.method?e.endpoint||(n="options.endpoint"):n="options.method",n?(t=u(t),void t(new a({type:c.OPTION_REQUIRED.type,code:c.OPTION_REQUIRED.code,message:n+" is required when making a request."}))):void this._request({url:this._baseUrl+e.endpoint,method:e.method,data:s(this._configuration,e.data),timeout:e.timeout},t)},t.exports=r},{"../lib/add-metadata":14,"../lib/deferred":17,"../lib/error":19,"../lib/is-whitelisted-domain":20,"./errors":2,"./request":8}],2:[function(e,t,n){"use strict";var r=e("../lib/error");t.exports={GATEWAY_CONFIGURATION_INVALID_DOMAIN:{type:r.types.MERCHANT,code:"GATEWAY_CONFIGURATION_INVALID_DOMAIN"},OPTION_REQUIRED:{type:r.types.MERCHANT,code:"OPTION_REQUIRED"},MISSING_GATEWAY_CONFIGURATION:{type:r.types.INTERNAL,code:"MISSING_GATEWAY_CONFIGURATION",message:"Missing gatewayConfiguration."},INVALID_AUTHORIZATION:{type:r.types.MERCHANT,code:"INVALID_AUTHORIZATION",message:"Authorization is invalid. Make sure your client token or tokenization key is valid."},GATEWAY_NETWORK:{type:r.types.NETWORK,code:"GATEWAY_NETWORK",message:"Cannot contact the gateway at this time."}}},{"../lib/error":19}],3:[function(e,t,n){(function(n){"use strict";function r(e,t){var r,f,l,d,p=a(),y={merchantAppId:n.location.host,platform:s.PLATFORM,sdkVersion:s.VERSION,source:s.SOURCE,integration:s.INTEGRATION,integrationType:s.INTEGRATION,sessionId:p};try{f=u(e.authorization)}catch(R){return void t(new o(c.INVALID_AUTHORIZATION))}l=f.attrs,d=f.configUrl,l._meta=y,l.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION,i({url:d,method:"GET",data:l},function(n,i){return n?void t(new o({type:c.GATEWAY_NETWORK.type,code:c.GATEWAY_NETWORK.code,message:c.GATEWAY_NETWORK.message,details:n})):(r={authorization:e.authorization,analyticsMetadata:y,gatewayConfiguration:i},void t(null,r))})}var o=e("../lib/error"),i=e("./request"),a=e("../lib/uuid"),s=e("../lib/constants"),u=e("../lib/create-authorization-data"),c=e("./errors");t.exports={getConfiguration:r}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lib/constants":15,"../lib/create-authorization-data":16,"../lib/error":19,"../lib/uuid":25,"./errors":2,"./request":8}],4:[function(e,t,n){"use strict";function r(e,t){if("function"!=typeof t)throw new o({type:c.CALLBACK_REQUIRED.type,code:c.CALLBACK_REQUIRED.code,message:"create must include a callback function."});return t=u(t),e.authorization?void a(e,function(e,n){var r;if(e)return void t(e);try{r=new i(n)}catch(o){return void t(o)}t(null,r)}):void t(new o({type:c.INSTANTIATION_OPTION_REQUIRED.type,code:c.INSTANTIATION_OPTION_REQUIRED.code,message:"options.authorization is required when instantiating a client."}))}var o=e("../lib/error"),i=e("./client"),a=e("./get-configuration").getConfiguration,s="3.0.0-beta.12",u=e("../lib/deferred"),c=e("../errors");t.exports={create:r,VERSION:s}},{"../errors":13,"../lib/deferred":17,"../lib/error":19,"./client":1,"./get-configuration":3}],5:[function(e,t,n){(function(n){"use strict";function r(){return f?new XMLHttpRequest:new XDomainRequest}function o(e,t){var n,o,l=(e.method||"GET").toUpperCase(),d=e.url,p=e.data||{},y=null==e.timeout?6e4:e.timeout,R=r(),N=a(t||Function.prototype);"GET"===l&&(d=i.queryify(d,p),p=null),f?R.onreadystatechange=function(){4===R.readyState&&(n=R.status,o=u(R.responseText),429===n?N(c.errors.RATE_LIMIT_ERROR,null,429):n>=400?N(o||c.errors.UNKNOWN_ERROR,null,n):0>=n?N(o||c.errors.UNKNOWN_ERROR,null,500):N(null,o,n))}:(R.onload=function(){N(null,u(R.responseText),R.status)},R.onerror=function(){N(c.errors.UNKNOWN_ERROR,null,R.status)},R.onprogress=function(){},R.ontimeout=function(){N(c.errors.TIMEOUT_ERROR,null,500)}),R.open(l,d,!0),R.timeout=y,f&&"POST"===l&&R.setRequestHeader("Content-Type","application/json");try{R.send(s(l,p))}catch(I){}}var i=e("../../lib/querystring"),a=e("../../lib/once"),s=e("./prep-body"),u=e("./parse-body"),c=e("./constants"),f=n.XMLHttpRequest&&"withCredentials"in new n.XMLHttpRequest;t.exports={request:o}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../lib/once":22,"../../lib/querystring":24,"./constants":6,"./parse-body":11,"./prep-body":12}],6:[function(e,t,n){"use strict";t.exports={errors:{UNKNOWN_ERROR:"Unknown error.",TIMEOUT_ERROR:"Request timed out waiting for a reply.",INVALID_TIMEOUT:"Timeout must be a number.",RATE_LIMIT_ERROR:"You are being rate-limited; please try again in a few minutes."}}},{}],7:[function(e,t,n){(function(e){"use strict";t.exports=function(){return e.navigator.userAgent}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,t,n){"use strict";function r(){return null==o&&(o=!(u()&&/MSIE\s(8|9)/.test(s()))),o}var o,i=e("./jsonp-driver"),a=e("./ajax-driver"),s=e("./get-user-agent"),u=e("./is-http");t.exports=function(){var e=r()?a.request:i.request;e.apply(null,arguments)}},{"./ajax-driver":5,"./get-user-agent":7,"./is-http":9,"./jsonp-driver":10}],9:[function(e,t,n){(function(e){"use strict";t.exports=function(){return"http:"===e.location.protocol}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(e,t,n){(function(n){"use strict";function r(){}function o(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function i(e,t){var r=document.createElement("script"),o=!1;return r.src=e,r.async=!0,r.onerror=function(){n[t]({message:l.errors.UNKNOWN_ERROR,status:500})},r.onload=r.onreadystatechange=function(){o||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(o=!0,r.onload=r.onreadystatechange=null)},r}function a(e){try{delete n[e]}catch(t){n[e]=null}}function s(e,t){y[t]=setTimeout(function(){y[t]=null,n[t]({error:l.errors.TIMEOUT_ERROR,status:500}),n[t]=function(){a(t)}},e)}function u(e,t,i){t=t||r,n[i]=function(n){var r=n.status||500,s=null,u=null;delete n.status,r>=400?s=n:u=n,a(i),o(e),clearTimeout(y[i]),t(s,u,r)}}function c(e,t){var n,r="callback_json_"+d().replace(/-/g,""),o=e.url,a=e.data,c=(e.method||"GET").toUpperCase(),l=null==e.timeout?6e4:e.timeout;o=p.queryify(o,a),o=p.queryify(o,{_method:c,callback:r}),n=i(o,r),u(n,t,r),s(l,r),f||(f=document.getElementsByTagName("head")[0]),f.appendChild(n)}var f,l=e("./constants"),d=e("../../lib/uuid"),p=e("../../lib/querystring"),y={};t.exports={request:c}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../lib/querystring":24,"../../lib/uuid":25,"./constants":6}],11:[function(e,t,n){"use strict";t.exports=function(e){try{e=JSON.parse(e)}catch(t){}return e}},{}],12:[function(e,t,n){"use strict";t.exports=function(e,t){if("string"!=typeof e)throw new Error("Method must be a string");return"get"!==e.toLowerCase()&&null!=t&&(t="string"==typeof t?t:JSON.stringify(t)),t}},{}],13:[function(e,t,n){"use strict";var r=e("./lib/error");t.exports={CALLBACK_REQUIRED:{type:r.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:r.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:r.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:r.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":19}],14:[function(e,t,n){"use strict";function r(e,t){var n,r=t?i(t):{},s=o(e.authorization).attrs,u=i(e.analyticsMetadata);r.braintreeLibraryVersion=a.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(u[n]=r._meta[n]);return r._meta=u,s.tokenizationKey?r.tokenizationKey=s.tokenizationKey:r.authorizationFingerprint=s.authorizationFingerprint,r}var o=e("./create-authorization-data"),i=e("./json-clone"),a=e("./constants");t.exports=r},{"./constants":15,"./create-authorization-data":16,"./json-clone":21}],15:[function(e,t,n){"use strict";var r="3.0.0-beta.12",o="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:o,BRAINTREE_LIBRARY_VERSION:"braintree/"+o+"/"+r}},{}],16:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function o(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function i(e){var t,n,i={attrs:{},configUrl:""};return r(e)?(n=o(e),i.attrs.tokenizationKey=e,i.configUrl=s[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(a(e)),i.attrs.authorizationFingerprint=t.authorizationFingerprint,i.configUrl=t.configUrl),i}var a=e("../lib/polyfill").atob,s={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=i},{"../lib/polyfill":23}],17:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],18:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],19:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.code)throw new Error("Error code required.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=e.code,this.message=e.message,this.type=e.type,this.details=e.details}var o=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=o(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":18}],20:[function(e,t,n){"use strict";function r(e){var t,n;return e=e.toLowerCase(),/^https:/.test(e)?(o=o||document.createElement("a"),o.href=e,t=o.hostname.split("."),n=t.slice(-2).join("."),i.hasOwnProperty(n)):!1}var o,i={"paypal.com":1,"braintreepayments.com":1,"braintreegateway.com":1,localhost:1};t.exports=r},{}],21:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],22:[function(e,t,n){"use strict";function r(e){var t=!1;return function(){t||(t=!0,e.apply(null,arguments))}}t.exports=r},{}],23:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,o,i,a,s,u,c=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="";if(!c.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");u=0;do o=f.indexOf(e.charAt(u++)),i=f.indexOf(e.charAt(u++)),a=f.indexOf(e.charAt(u++)),s=f.indexOf(e.charAt(u++)),t=(63&o)<<2|i>>4&3,n=(15&i)<<4|a>>2&15,r=(3&a)<<6|63&s,l+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(u<e.length);return l}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],24:[function(e,t,n){(function(e){"use strict";function n(e){var t;for(t in e)if(e.hasOwnProperty(t))return!0;return!1}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&"[object Array]"===Object.prototype.toString.call(e)||!1}function o(t){var n,r;return t=t||e.location.href,/\?/.test(t)?(n=t.replace(/#.*$/,"").replace(/^.*\?/,"").split("&"),r=n.reduce(function(e,t){var n=t.split("="),r=decodeURIComponent(n[0]),o=decodeURIComponent(n[1]);return e[r]=o,e},{})):{}}function i(e,t){var n,o,a,s=[];for(a in e)e.hasOwnProperty(a)&&(o=e[a],n=t?r(e)?t+"[]":t+"["+a+"]":a,"object"==typeof o?s.push(i(o,n)):s.push(encodeURIComponent(n)+"="+encodeURIComponent(o)));return s.join("&")}function a(e,t){return e=e||"",null!=t&&"object"==typeof t&&n(t)&&(e+=-1===e.indexOf("?")?"?":"",e+=-1!==e.indexOf("=")?"&":"",e+=i(t)),e}t.exports={parse:o,stringify:i,queryify:a}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],25:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}]},{},[4])(4)}); |
@@ -62,2 +62,29 @@ (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 e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
var BraintreeError = _dereq_('../lib/error'); | ||
module.exports = { | ||
KOUNT_NOT_ENABLED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'KOUNT_NOT_ENABLED', | ||
message: 'Kount is not enabled for this merchant.' | ||
}, | ||
KOUNT_ERROR: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'KOUNT_ERROR' | ||
}, | ||
PAYPAL_NOT_ENABLED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'PAYPAL_NOT_ENABLED', | ||
message: 'PayPal is not enabled for this merchant.' | ||
}, | ||
REQUIRES_CREATE_OPTIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'REQUIRES_CREATE_OPTIONS', | ||
message: 'Data Collector must be created with Kount and/or PayPal.' | ||
} | ||
}; | ||
},{"../lib/error":11}],4:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
function setup() { | ||
@@ -163,3 +190,3 @@ return new Fraudnet(); | ||
},{}],4:[function(_dereq_,module,exports){ | ||
},{}],5:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -175,3 +202,5 @@ /* eslint-disable camelcase */ | ||
var deferred = _dereq_('../lib/deferred'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var VERSION = "3.0.0-beta.12"; | ||
var sharedErrors = _dereq_('../errors'); | ||
var errors = _dereq_('./errors'); | ||
@@ -220,3 +249,4 @@ /** | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'create must include a callback function.' | ||
@@ -245,3 +275,4 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type, | ||
code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code, | ||
message: 'options.client is required when instantiating Data Collector.' | ||
@@ -257,3 +288,4 @@ })); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INCOMPATIBLE_VERSIONS.type, | ||
code: sharedErrors.INCOMPATIBLE_VERSIONS.code, | ||
message: 'Client (version ' + clientVersion + ') and Data Collector (version ' + VERSION + ') components must be from the same SDK version.' | ||
@@ -266,6 +298,3 @@ })); | ||
if (!config.gatewayConfiguration.kount) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'Kount is not enabled for this merchant.' | ||
})); | ||
callback(new BraintreeError(errors.KOUNT_NOT_ENABLED)); | ||
return; | ||
@@ -281,4 +310,5 @@ } | ||
callback(new BraintreeError({ | ||
message: err.message, | ||
type: BraintreeError.types.MERCHANT | ||
type: errors.KOUNT_ERROR.type, | ||
code: errors.KOUNT_ERROR.code, | ||
message: err.message | ||
})); | ||
@@ -296,6 +326,3 @@ return; | ||
if (config.gatewayConfiguration.paypalEnabled !== true) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'PayPal is not enabled for this merchant.' | ||
})); | ||
callback(new BraintreeError(errors.PAYPAL_NOT_ENABLED)); | ||
return; | ||
@@ -310,6 +337,3 @@ } | ||
if (instances.length === 0) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'Data Collector must be created with Kount and/or PayPal.' | ||
})); | ||
callback(new BraintreeError(errors.REQUIRES_CREATE_OPTIONS)); | ||
return; | ||
@@ -335,3 +359,3 @@ } | ||
},{"../lib/convert-methods-to-error":6,"../lib/deferred":7,"../lib/error":9,"../lib/methods":10,"./fraudnet":3,"./kount":5}],5:[function(_dereq_,module,exports){ | ||
},{"../errors":7,"../lib/convert-methods-to-error":8,"../lib/deferred":9,"../lib/error":11,"../lib/methods":12,"./errors":3,"./fraudnet":4,"./kount":6}],6:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -439,6 +463,31 @@ /* eslint-disable camelcase */ | ||
},{"sjcl":2}],6:[function(_dereq_,module,exports){ | ||
},{"sjcl":2}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./lib/error'); | ||
module.exports = { | ||
CALLBACK_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CALLBACK_REQUIRED' | ||
}, | ||
INSTANTIATION_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INSTANTIATION_OPTION_REQUIRED' | ||
}, | ||
INCOMPATIBLE_VERSIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INCOMPATIBLE_VERSIONS' | ||
}, | ||
METHOD_CALLED_AFTER_TEARDOWN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'METHOD_CALLED_AFTER_TEARDOWN' | ||
} | ||
}; | ||
},{"./lib/error":11}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./error'); | ||
var sharedErrors = _dereq_('../errors'); | ||
@@ -449,3 +498,4 @@ module.exports = function (instance, methodNames) { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.type, | ||
code: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.code, | ||
message: methodName + ' cannot be called after teardown.' | ||
@@ -457,3 +507,3 @@ }); | ||
},{"./error":9}],7:[function(_dereq_,module,exports){ | ||
},{"../errors":7,"./error":11}],9:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -472,3 +522,3 @@ | ||
},{}],8:[function(_dereq_,module,exports){ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -487,3 +537,3 @@ | ||
},{}],9:[function(_dereq_,module,exports){ | ||
},{}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -505,2 +555,6 @@ | ||
if (!options.code) { | ||
throw new Error('Error code required.'); | ||
} | ||
if (!options.message) { | ||
@@ -514,2 +568,8 @@ throw new Error('Error message required.'); | ||
* @type {string} | ||
* @description A code that corresponds to specific errors. | ||
*/ | ||
this.code = options.code; | ||
/** | ||
* @type {string} | ||
* @description A short description of the error. | ||
@@ -557,3 +617,3 @@ */ | ||
},{"./enumerate":8}],10:[function(_dereq_,module,exports){ | ||
},{"./enumerate":10}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -567,3 +627,3 @@ | ||
},{}]},{},[4])(4) | ||
},{}]},{},[5])(5) | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(e.braintree||(e.braintree={})).dataCollector=t()}}(function(){var t;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var h=new Error("Cannot find module '"+a+"'");throw h.code="MODULE_NOT_FOUND",h}var d=n[a]={exports:{}};t[a][0].call(d.exports,function(e){var n=t[a][1][e];return i(n?n:e)},d,d.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e,n){},{}],2:[function(e,n,r){"use strict";function i(t){throw t}function o(t,e,n){4!==e.length&&i(new p.exception.invalid("invalid aes block size"));var r=t.b[n],o=e[0]^r[0],a=e[n?3:1]^r[1],s=e[2]^r[2];e=e[n?1:3]^r[3];var c,h,d,u,l=r.length/4-2,f=4,m=[0,0,0,0];c=t.k[n],t=c[0];var y=c[1],g=c[2],v=c[3],b=c[4];for(u=0;l>u;u++)c=t[o>>>24]^y[a>>16&255]^g[s>>8&255]^v[255&e]^r[f],h=t[a>>>24]^y[s>>16&255]^g[e>>8&255]^v[255&o]^r[f+1],d=t[s>>>24]^y[e>>16&255]^g[o>>8&255]^v[255&a]^r[f+2],e=t[e>>>24]^y[o>>16&255]^g[a>>8&255]^v[255&s]^r[f+3],f+=4,o=c,a=h,s=d;for(u=0;4>u;u++)m[n?3&-u:u]=b[o>>>24]<<24^b[a>>16&255]<<16^b[s>>8&255]<<8^b[255&e]^r[f++],c=o,o=a,a=s,s=e,e=c;return m}function a(t,e){var n,r,i,o=e.slice(0),a=t.r,s=t.b,c=a[0],h=a[1],d=a[2],u=a[3],l=a[4],f=a[5],p=a[6],m=a[7];for(n=0;64>n;n++)16>n?r=o[n]:(r=o[n+1&15],i=o[n+14&15],r=o[15&n]=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(i>>>17^i>>>19^i>>>10^i<<15^i<<13)+o[15&n]+o[n+9&15]|0),r=r+m+(l>>>6^l>>>11^l>>>25^l<<26^l<<21^l<<7)+(p^l&(f^p))+s[n],m=p,p=f,f=l,l=u+r|0,u=d,d=h,h=c,c=r+(h&d^u&(h^d))+(h>>>2^h>>>13^h>>>22^h<<30^h<<19^h<<10)|0;a[0]=a[0]+c|0,a[1]=a[1]+h|0,a[2]=a[2]+d|0,a[3]=a[3]+u|0,a[4]=a[4]+l|0,a[5]=a[5]+f|0,a[6]=a[6]+p|0,a[7]=a[7]+m|0}function s(t,e){var n,r=p.random.w[t],i=[];for(n in r)r.hasOwnProperty(n)&&i.push(r[n]);for(n=0;n<i.length;n++)i[n](e)}function c(t){"undefined"!=typeof window&&window.performance&&"function"==typeof window.performance.now?p.random.addEntropy(window.performance.now(),t,"loadtime"):p.random.addEntropy((new Date).valueOf(),t,"loadtime")}function h(t){t.b=d(t).concat(d(t)),t.A=new p.cipher.aes(t.b)}function d(t){for(var e=0;4>e&&(t.f[e]=t.f[e]+1|0,!t.f[e]);e++);return t.A.encrypt(t.f)}function u(t,e){return function(){e.apply(t,arguments)}}var l=void 0,f=!1,p={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(t){this.toString=function(){return"CORRUPT: "+this.message},this.message=t},invalid:function(t){this.toString=function(){return"INVALID: "+this.message},this.message=t},bug:function(t){this.toString=function(){return"BUG: "+this.message},this.message=t},notReady:function(t){this.toString=function(){return"NOT READY: "+this.message},this.message=t}}};"undefined"!=typeof n&&n.exports&&(n.exports=p),"function"==typeof t&&t([],function(){return p}),p.cipher.aes=function(t){this.k[0][0][0]||this.D();var e,n,r,o,a=this.k[0][4],s=this.k[1];e=t.length;var c=1;for(4!==e&&6!==e&&8!==e&&i(new p.exception.invalid("invalid aes key size")),this.b=[r=t.slice(0),o=[]],t=e;4*e+28>t;t++)n=r[t-1],(0===t%e||8===e&&4===t%e)&&(n=a[n>>>24]<<24^a[n>>16&255]<<16^a[n>>8&255]<<8^a[255&n],0===t%e&&(n=n<<8^n>>>24^c<<24,c=c<<1^283*(c>>7))),r[t]=r[t-e]^n;for(e=0;t;e++,t--)n=r[3&e?t:t-4],o[e]=4>=t||4>e?n:s[0][a[n>>>24]]^s[1][a[n>>16&255]]^s[2][a[n>>8&255]]^s[3][a[255&n]]},p.cipher.aes.prototype={encrypt:function(t){return o(this,t,0)},decrypt:function(t){return o(this,t,1)},k:[[[],[],[],[],[]],[[],[],[],[],[]]],D:function(){var t,e,n,r,i,o,a,s=this.k[0],c=this.k[1],h=s[4],d=c[4],u=[],l=[];for(t=0;256>t;t++)l[(u[t]=t<<1^283*(t>>7))^t]=t;for(e=n=0;!h[e];e^=r||1,n=l[n]||1)for(o=n^n<<1^n<<2^n<<3^n<<4,o=o>>8^255&o^99,h[e]=o,d[o]=e,i=u[t=u[r=u[e]]],a=16843009*i^65537*t^257*r^16843008*e,i=257*u[o]^16843008*o,t=0;4>t;t++)s[t][e]=i=i<<24^i>>>8,c[t][o]=a=a<<24^a>>>8;for(t=0;5>t;t++)s[t]=s[t].slice(0),c[t]=c[t].slice(0)}},p.bitArray={bitSlice:function(t,e,n){return t=p.bitArray.P(t.slice(e/32),32-(31&e)).slice(1),n===l?t:p.bitArray.clamp(t,n-e)},extract:function(t,e,n){var r=Math.floor(-e-n&31);return(-32&(e+n-1^e)?t[e/32|0]<<32-r^t[e/32+1|0]>>>r:t[e/32|0]>>>r)&(1<<n)-1},concat:function(t,e){if(0===t.length||0===e.length)return t.concat(e);var n=t[t.length-1],r=p.bitArray.getPartial(n);return 32===r?t.concat(e):p.bitArray.P(e,r,0|n,t.slice(0,t.length-1))},bitLength:function(t){var e=t.length;return 0===e?0:32*(e-1)+p.bitArray.getPartial(t[e-1])},clamp:function(t,e){if(32*t.length<e)return t;t=t.slice(0,Math.ceil(e/32));var n=t.length;return e&=31,n>0&&e&&(t[n-1]=p.bitArray.partial(e,t[n-1]&2147483648>>e-1,1)),t},partial:function(t,e,n){return 32===t?e:(n?0|e:e<<32-t)+1099511627776*t},getPartial:function(t){return Math.round(t/1099511627776)||32},equal:function(t,e){if(p.bitArray.bitLength(t)!==p.bitArray.bitLength(e))return f;var n,r=0;for(n=0;n<t.length;n++)r|=t[n]^e[n];return 0===r},P:function(t,e,n,r){var i;for(i=0,r===l&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;return i=t.length?t[t.length-1]:0,t=p.bitArray.getPartial(i),r.push(p.bitArray.partial(e+t&31,e+t>32?n:r.pop(),1)),r},l:function(t,e){return[t[0]^e[0],t[1]^e[1],t[2]^e[2],t[3]^e[3]]},byteswapM:function(t){var e,n;for(e=0;e<t.length;++e)n=t[e],t[e]=n>>>24|n>>>8&65280|(65280&n)<<8|n<<24;return t}},p.codec.utf8String={fromBits:function(t){var e,n,r="",i=p.bitArray.bitLength(t);for(e=0;i/8>e;e++)0===(3&e)&&(n=t[e/4]),r+=String.fromCharCode(n>>>24),n<<=8;return decodeURIComponent(escape(r))},toBits:function(t){t=unescape(encodeURIComponent(t));var e,n=[],r=0;for(e=0;e<t.length;e++)r=r<<8|t.charCodeAt(e),3===(3&e)&&(n.push(r),r=0);return 3&e&&n.push(p.bitArray.partial(8*(3&e),r)),n}},p.codec.hex={fromBits:function(t){var e,n="";for(e=0;e<t.length;e++)n+=((0|t[e])+0xf00000000000).toString(16).substr(4);return n.substr(0,p.bitArray.bitLength(t)/4)},toBits:function(t){var e,n,r=[];for(t=t.replace(/\s|0x/g,""),n=t.length,t+="00000000",e=0;e<t.length;e+=8)r.push(0^parseInt(t.substr(e,8),16));return p.bitArray.clamp(r,4*n)}},p.codec.base64={J:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(t,e,n){var r="",i=0,o=p.codec.base64.J,a=0,s=p.bitArray.bitLength(t);for(n&&(o=o.substr(0,62)+"-_"),n=0;6*r.length<s;)r+=o.charAt((a^t[n]>>>i)>>>26),6>i?(a=t[n]<<6-i,i+=26,n++):(a<<=6,i-=6);for(;3&r.length&&!e;)r+="=";return r},toBits:function(t,e){t=t.replace(/\s|=/g,"");var n,r,o=[],a=0,s=p.codec.base64.J,c=0;for(e&&(s=s.substr(0,62)+"-_"),n=0;n<t.length;n++)r=s.indexOf(t.charAt(n)),0>r&&i(new p.exception.invalid("this isn't base64!")),a>26?(a-=26,o.push(c^r>>>a),c=r<<32-a):(a+=6,c^=r<<32-a);return 56&a&&o.push(p.bitArray.partial(56&a,c,1)),o}},p.codec.base64url={fromBits:function(t){return p.codec.base64.fromBits(t,1,1)},toBits:function(t){return p.codec.base64.toBits(t,1)}},p.hash.sha256=function(t){this.b[0]||this.D(),t?(this.r=t.r.slice(0),this.o=t.o.slice(0),this.h=t.h):this.reset()},p.hash.sha256.hash=function(t){return(new p.hash.sha256).update(t).finalize()},p.hash.sha256.prototype={blockSize:512,reset:function(){return this.r=this.N.slice(0),this.o=[],this.h=0,this},update:function(t){"string"==typeof t&&(t=p.codec.utf8String.toBits(t));var e,n=this.o=p.bitArray.concat(this.o,t);for(e=this.h,t=this.h=e+p.bitArray.bitLength(t),e=512+e&-512;t>=e;e+=512)a(this,n.splice(0,16));return this},finalize:function(){var t,e=this.o,n=this.r,e=p.bitArray.concat(e,[p.bitArray.partial(1,1)]);for(t=e.length+2;15&t;t++)e.push(0);for(e.push(Math.floor(this.h/4294967296)),e.push(0|this.h);e.length;)a(this,e.splice(0,16));return this.reset(),n},N:[],b:[],D:function(){function t(t){return 4294967296*(t-Math.floor(t))|0}var e,n=0,r=2;t:for(;64>n;r++){for(e=2;r>=e*e;e++)if(0===r%e)continue t;8>n&&(this.N[n]=t(Math.pow(r,.5))),this.b[n]=t(Math.pow(r,1/3)),n++}}},p.mode.ccm={name:"ccm",encrypt:function(t,e,n,r,o){var a,s=e.slice(0),c=p.bitArray,h=c.bitLength(n)/8,d=c.bitLength(s)/8;for(o=o||64,r=r||[],7>h&&i(new p.exception.invalid("ccm: iv must be at least 7 bytes")),a=2;4>a&&d>>>8*a;a++);return 15-h>a&&(a=15-h),n=c.clamp(n,8*(15-a)),e=p.mode.ccm.L(t,e,n,r,o,a),s=p.mode.ccm.p(t,s,n,e,o,a),c.concat(s.data,s.tag)},decrypt:function(t,e,n,r,o){o=o||64,r=r||[];var a=p.bitArray,s=a.bitLength(n)/8,c=a.bitLength(e),h=a.clamp(e,c-o),d=a.bitSlice(e,c-o),c=(c-o)/8;for(7>s&&i(new p.exception.invalid("ccm: iv must be at least 7 bytes")),e=2;4>e&&c>>>8*e;e++);return 15-s>e&&(e=15-s),n=a.clamp(n,8*(15-e)),h=p.mode.ccm.p(t,h,n,d,o,e),t=p.mode.ccm.L(t,h.data,n,r,o,e),a.equal(h.tag,t)||i(new p.exception.corrupt("ccm: tag doesn't match")),h.data},L:function(t,e,n,r,o,a){var s=[],c=p.bitArray,h=c.l;if(o/=8,(o%2||4>o||o>16)&&i(new p.exception.invalid("ccm: invalid tag length")),(4294967295<r.length||4294967295<e.length)&&i(new p.exception.bug("ccm: can't deal with 4GiB or more data")),a=[c.partial(8,(r.length?64:0)|o-2<<2|a-1)],a=c.concat(a,n),a[3]|=c.bitLength(e)/8,a=t.encrypt(a),r.length)for(n=c.bitLength(r)/8,65279>=n?s=[c.partial(16,n)]:4294967295>=n&&(s=c.concat([c.partial(16,65534)],[n])),s=c.concat(s,r),r=0;r<s.length;r+=4)a=t.encrypt(h(a,s.slice(r,r+4).concat([0,0,0])));for(r=0;r<e.length;r+=4)a=t.encrypt(h(a,e.slice(r,r+4).concat([0,0,0])));return c.clamp(a,8*o)},p:function(t,e,n,r,i,o){var a,s=p.bitArray;a=s.l;var c=e.length,h=s.bitLength(e);if(n=s.concat([s.partial(8,o-1)],n).concat([0,0,0]).slice(0,4),r=s.bitSlice(a(r,t.encrypt(n)),0,i),!c)return{tag:r,data:[]};for(a=0;c>a;a+=4)n[3]++,i=t.encrypt(n),e[a]^=i[0],e[a+1]^=i[1],e[a+2]^=i[2],e[a+3]^=i[3];return{tag:r,data:s.clamp(e,h)}}},p.mode.ocb2={name:"ocb2",encrypt:function(t,e,n,r,o,a){128!==p.bitArray.bitLength(n)&&i(new p.exception.invalid("ocb iv must be 128 bits"));var s,c=p.mode.ocb2.H,h=p.bitArray,d=h.l,u=[0,0,0,0];n=c(t.encrypt(n));var l,f=[];for(r=r||[],o=o||64,s=0;s+4<e.length;s+=4)l=e.slice(s,s+4),u=d(u,l),f=f.concat(d(n,t.encrypt(d(n,l)))),n=c(n);return l=e.slice(s),e=h.bitLength(l),s=t.encrypt(d(n,[0,0,0,e])),l=h.clamp(d(l.concat([0,0,0]),s),e),u=d(u,d(l.concat([0,0,0]),s)),u=t.encrypt(d(u,d(n,c(n)))),r.length&&(u=d(u,a?r:p.mode.ocb2.pmac(t,r))),f.concat(h.concat(l,h.clamp(u,o)))},decrypt:function(t,e,n,r,o,a){128!==p.bitArray.bitLength(n)&&i(new p.exception.invalid("ocb iv must be 128 bits")),o=o||64;var s,c,h=p.mode.ocb2.H,d=p.bitArray,u=d.l,l=[0,0,0,0],f=h(t.encrypt(n)),m=p.bitArray.bitLength(e)-o,y=[];for(r=r||[],n=0;m/32>n+4;n+=4)s=u(f,t.decrypt(u(f,e.slice(n,n+4)))),l=u(l,s),y=y.concat(s),f=h(f);return c=m-32*n,s=t.encrypt(u(f,[0,0,0,c])),s=u(s,d.clamp(e.slice(n),c).concat([0,0,0])),l=u(l,s),l=t.encrypt(u(l,u(f,h(f)))),r.length&&(l=u(l,a?r:p.mode.ocb2.pmac(t,r))),d.equal(d.clamp(l,o),d.bitSlice(e,m))||i(new p.exception.corrupt("ocb: tag doesn't match")),y.concat(d.clamp(s,c))},pmac:function(t,e){var n,r=p.mode.ocb2.H,i=p.bitArray,o=i.l,a=[0,0,0,0],s=t.encrypt([0,0,0,0]),s=o(s,r(r(s)));for(n=0;n+4<e.length;n+=4)s=r(s),a=o(a,t.encrypt(o(s,e.slice(n,n+4))));return n=e.slice(n),128>i.bitLength(n)&&(s=o(s,r(s)),n=i.concat(n,[-2147483648,0,0,0])),a=o(a,n),t.encrypt(o(r(o(s,r(s))),a))},H:function(t){return[t[0]<<1^t[1]>>>31,t[1]<<1^t[2]>>>31,t[2]<<1^t[3]>>>31,t[3]<<1^135*(t[0]>>>31)]}},p.mode.gcm={name:"gcm",encrypt:function(t,e,n,r,i){var o=e.slice(0);return e=p.bitArray,r=r||[],t=p.mode.gcm.p(!0,t,o,r,n,i||128),e.concat(t.data,t.tag)},decrypt:function(t,e,n,r,o){var a=e.slice(0),s=p.bitArray,c=s.bitLength(a);return o=o||128,r=r||[],c>=o?(e=s.bitSlice(a,c-o),a=s.bitSlice(a,0,c-o)):(e=a,a=[]),t=p.mode.gcm.p(f,t,a,r,n,o),s.equal(t.tag,e)||i(new p.exception.corrupt("gcm: tag doesn't match")),t.data},Z:function(t,e){var n,r,i,o,a,s=p.bitArray.l;for(i=[0,0,0,0],o=e.slice(0),n=0;128>n;n++){for((r=0!==(t[Math.floor(n/32)]&1<<31-n%32))&&(i=s(i,o)),a=0!==(1&o[3]),r=3;r>0;r--)o[r]=o[r]>>>1|(1&o[r-1])<<31;o[0]>>>=1,a&&(o[0]^=-520093696)}return i},g:function(t,e,n){var r,i=n.length;for(e=e.slice(0),r=0;i>r;r+=4)e[0]^=4294967295&n[r],e[1]^=4294967295&n[r+1],e[2]^=4294967295&n[r+2],e[3]^=4294967295&n[r+3],e=p.mode.gcm.Z(e,t);return e},p:function(t,e,n,r,i,o){var a,s,c,h,d,u,l,f,m=p.bitArray;for(u=n.length,l=m.bitLength(n),f=m.bitLength(r),s=m.bitLength(i),a=e.encrypt([0,0,0,0]),96===s?(i=i.slice(0),i=m.concat(i,[1])):(i=p.mode.gcm.g(a,[0,0,0,0],i),i=p.mode.gcm.g(a,i,[0,0,Math.floor(s/4294967296),4294967295&s])),s=p.mode.gcm.g(a,[0,0,0,0],r),d=i.slice(0),r=s.slice(0),t||(r=p.mode.gcm.g(a,s,n)),h=0;u>h;h+=4)d[3]++,c=e.encrypt(d),n[h]^=c[0],n[h+1]^=c[1],n[h+2]^=c[2],n[h+3]^=c[3];return n=m.clamp(n,l),t&&(r=p.mode.gcm.g(a,s,n)),t=[Math.floor(f/4294967296),4294967295&f,Math.floor(l/4294967296),4294967295&l],r=p.mode.gcm.g(a,r,t),c=e.encrypt(i),r[0]^=c[0],r[1]^=c[1],r[2]^=c[2],r[3]^=c[3],{tag:m.bitSlice(r,0,o),data:n}}},p.misc.hmac=function(t,e){this.M=e=e||p.hash.sha256;var n,r=[[],[]],i=e.prototype.blockSize/32;for(this.n=[new e,new e],t.length>i&&(t=e.hash(t)),n=0;i>n;n++)r[0][n]=909522486^t[n],r[1][n]=1549556828^t[n];this.n[0].update(r[0]),this.n[1].update(r[1]),this.G=new e(this.n[0])},p.misc.hmac.prototype.encrypt=p.misc.hmac.prototype.mac=function(t){return this.Q&&i(new p.exception.invalid("encrypt on already updated hmac called!")),this.update(t),this.digest(t)},p.misc.hmac.prototype.reset=function(){this.G=new this.M(this.n[0]),this.Q=f},p.misc.hmac.prototype.update=function(t){this.Q=!0,this.G.update(t)},p.misc.hmac.prototype.digest=function(){var t=this.G.finalize(),t=new this.M(this.n[1]).update(t).finalize();return this.reset(),t},p.misc.pbkdf2=function(t,e,n,r,o){n=n||1e3,(0>r||0>n)&&i(p.exception.invalid("invalid params to pbkdf2")),"string"==typeof t&&(t=p.codec.utf8String.toBits(t)),"string"==typeof e&&(e=p.codec.utf8String.toBits(e)),o=o||p.misc.hmac,t=new o(t);var a,s,c,h,d=[],u=p.bitArray;for(h=1;32*d.length<(r||1);h++){for(o=a=t.encrypt(u.concat(e,[h])),s=1;n>s;s++)for(a=t.encrypt(a),c=0;c<a.length;c++)o[c]^=a[c];d=d.concat(o)}return r&&(d=u.clamp(d,r)),d},p.prng=function(t){this.c=[new p.hash.sha256],this.i=[0],this.F=0,this.s={},this.C=0,this.K={},this.O=this.d=this.j=this.W=0,this.b=[0,0,0,0,0,0,0,0],this.f=[0,0,0,0],this.A=l,this.B=t,this.q=f,this.w={progress:{},seeded:{}},this.m=this.V=0,this.t=1,this.u=2,this.S=65536,this.I=[0,48,64,96,128,192,256,384,512,768,1024],this.T=3e4,this.R=80},p.prng.prototype={randomWords:function(t,e){var n,r=[];n=this.isReady(e);var o;if(n===this.m&&i(new p.exception.notReady("generator isn't seeded")),n&this.u){n=!(n&this.t),o=[];var a,s=0;for(this.O=o[0]=(new Date).valueOf()+this.T,a=0;16>a;a++)o.push(4294967296*Math.random()|0);for(a=0;a<this.c.length&&(o=o.concat(this.c[a].finalize()),s+=this.i[a],this.i[a]=0,!(!n&&this.F&1<<a));a++);for(this.F>=1<<this.c.length&&(this.c.push(new p.hash.sha256),this.i.push(0)),this.d-=s,s>this.j&&(this.j=s),this.F++,this.b=p.hash.sha256.hash(this.b.concat(o)),this.A=new p.cipher.aes(this.b),n=0;4>n&&(this.f[n]=this.f[n]+1|0,!this.f[n]);n++);}for(n=0;t>n;n+=4)0===(n+1)%this.S&&h(this),o=d(this),r.push(o[0],o[1],o[2],o[3]);return h(this),r.slice(0,t)},setDefaultParanoia:function(t,e){0===t&&"Setting paranoia=0 will ruin your security; use it only for testing"!==e&&i("Setting paranoia=0 will ruin your security; use it only for testing"),this.B=t},addEntropy:function(t,e,n){n=n||"user";var r,o,a=(new Date).valueOf(),c=this.s[n],h=this.isReady(),d=0;switch(r=this.K[n],r===l&&(r=this.K[n]=this.W++),c===l&&(c=this.s[n]=0),this.s[n]=(this.s[n]+1)%this.c.length,typeof t){case"number":e===l&&(e=1),this.c[c].update([r,this.C++,1,e,a,1,0|t]);break;case"object":if(n=Object.prototype.toString.call(t),"[object Uint32Array]"===n){for(o=[],n=0;n<t.length;n++)o.push(t[n]);t=o}else for("[object Array]"!==n&&(d=1),n=0;n<t.length&&!d;n++)"number"!=typeof t[n]&&(d=1);if(!d){if(e===l)for(n=e=0;n<t.length;n++)for(o=t[n];o>0;)e++,o>>>=1;this.c[c].update([r,this.C++,2,e,a,t.length].concat(t))}break;case"string":e===l&&(e=t.length),this.c[c].update([r,this.C++,3,e,a,t.length]),this.c[c].update(t);break;default:d=1}d&&i(new p.exception.bug("random: addEntropy only supports number, array of numbers or string")),this.i[c]+=e,this.d+=e,h===this.m&&(this.isReady()!==this.m&&s("seeded",Math.max(this.j,this.d)),s("progress",this.getProgress()))},isReady:function(t){return t=this.I[t!==l?t:this.B],this.j&&this.j>=t?this.i[0]>this.R&&(new Date).valueOf()>this.O?this.u|this.t:this.t:this.d>=t?this.u|this.m:this.m},getProgress:function(t){return t=this.I[t?t:this.B],this.j>=t?1:this.d>t?1:this.d/t},startCollectors:function(){this.q||(this.a={loadTimeCollector:u(this,this.aa),mouseCollector:u(this,this.ba),keyboardCollector:u(this,this.$),accelerometerCollector:u(this,this.U),touchCollector:u(this,this.da)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,f),window.addEventListener("mousemove",this.a.mouseCollector,f),window.addEventListener("keypress",this.a.keyboardCollector,f),window.addEventListener("devicemotion",this.a.accelerometerCollector,f),window.addEventListener("touchmove",this.a.touchCollector,f)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):i(new p.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,f),window.removeEventListener("mousemove",this.a.mouseCollector,f),window.removeEventListener("keypress",this.a.keyboardCollector,f),window.removeEventListener("devicemotion",this.a.accelerometerCollector,f),window.removeEventListener("touchmove",this.a.touchCollector,f)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.q=f)},addEventListener:function(t,e){this.w[t][this.V++]=e},removeEventListener:function(t,e){var n,r,i=this.w[t],o=[];for(r in i)i.hasOwnProperty(r)&&i[r]===e&&o.push(r);for(n=0;n<o.length;n++)r=o[n],delete i[r]},$:function(){c(1)},ba:function(t){var e,n;try{e=t.x||t.clientX||t.offsetX||0,n=t.y||t.clientY||t.offsetY||0}catch(r){n=e=0}0!=e&&0!=n&&p.random.addEntropy([e,n],2,"mouse"),c(0)},da:function(t){t=t.touches[0]||t.changedTouches[0],p.random.addEntropy([t.pageX||t.clientX,t.pageY||t.clientY],1,"touch"),c(0)},aa:function(){c(2)},U:function(t){if(t=t.accelerationIncludingGravity.x||t.accelerationIncludingGravity.y||t.accelerationIncludingGravity.z,window.orientation){var e=window.orientation;"number"==typeof e&&p.random.addEntropy(e,1,"accelerometer")}t&&p.random.addEntropy(t,2,"accelerometer"),c(0)}},p.random=new p.prng(6);t:try{var m,y,g,v;if(v="undefined"!=typeof n){var b;if(b=n.exports){var w;try{w=e("crypto")}catch(E){w=null}b=(y=w)&&y.randomBytes}v=b}if(v)m=y.randomBytes(128),m=new Uint32Array(new Uint8Array(m).buffer),p.random.addEntropy(m,1024,"crypto['randomBytes']");else if("undefined"!=typeof window&&"undefined"!=typeof Uint32Array){if(g=new Uint32Array(32),window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(g);else{if(!window.msCrypto||!window.msCrypto.getRandomValues)break t;window.msCrypto.getRandomValues(g)}p.random.addEntropy(g,1024,"crypto['getRandomValues']")}}catch(k){"undefined"!=typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(k))}p.json={defaults:{v:1,iter:1e3,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},Y:function(t,e,n,r){n=n||{},r=r||{};var o,a=p.json,s=a.e({iv:p.random.randomWords(4,0)},a.defaults);return a.e(s,n),n=s.adata,"string"==typeof s.salt&&(s.salt=p.codec.base64.toBits(s.salt)),"string"==typeof s.iv&&(s.iv=p.codec.base64.toBits(s.iv)),(!p.mode[s.mode]||!p.cipher[s.cipher]||"string"==typeof t&&100>=s.iter||64!==s.ts&&96!==s.ts&&128!==s.ts||128!==s.ks&&192!==s.ks&&256!==s.ks||2>s.iv.length||4<s.iv.length)&&i(new p.exception.invalid("json encrypt: invalid parameters")),"string"==typeof t?(o=p.misc.cachedPbkdf2(t,s),t=o.key.slice(0,s.ks/32),s.salt=o.salt):p.ecc&&t instanceof p.ecc.elGamal.publicKey&&(o=t.kem(),s.kemtag=o.tag,t=o.key.slice(0,s.ks/32)),"string"==typeof e&&(e=p.codec.utf8String.toBits(e)),"string"==typeof n&&(s.adata=n=p.codec.utf8String.toBits(n)),o=new p.cipher[s.cipher](t),a.e(r,s),r.key=t,s.ct=p.mode[s.mode].encrypt(o,e,s.iv,n,s.ts),s},encrypt:function(t,e,n,r){var i=p.json,o=i.Y.apply(i,arguments);return i.encode(o)},X:function(t,e,n,r){n=n||{},r=r||{};var o=p.json;e=o.e(o.e(o.e({},o.defaults),e),n,!0);var a,s;return a=e.adata,"string"==typeof e.salt&&(e.salt=p.codec.base64.toBits(e.salt)),"string"==typeof e.iv&&(e.iv=p.codec.base64.toBits(e.iv)),(!p.mode[e.mode]||!p.cipher[e.cipher]||"string"==typeof t&&100>=e.iter||64!==e.ts&&96!==e.ts&&128!==e.ts||128!==e.ks&&192!==e.ks&&256!==e.ks||!e.iv||2>e.iv.length||4<e.iv.length)&&i(new p.exception.invalid("json decrypt: invalid parameters")),"string"==typeof t?(s=p.misc.cachedPbkdf2(t,e),t=s.key.slice(0,e.ks/32),e.salt=s.salt):p.ecc&&t instanceof p.ecc.elGamal.secretKey&&(t=t.unkem(p.codec.base64.toBits(e.kemtag)).slice(0,e.ks/32)),"string"==typeof a&&(a=p.codec.utf8String.toBits(a)),s=new p.cipher[e.cipher](t),a=p.mode[e.mode].decrypt(s,e.ct,e.iv,a,e.ts),o.e(r,e),r.key=t,1===n.raw?a:p.codec.utf8String.fromBits(a)},decrypt:function(t,e,n,r){var i=p.json;return i.X(t,i.decode(e),n,r)},encode:function(t){var e,n="{",r="";for(e in t)if(t.hasOwnProperty(e))switch(e.match(/^[a-z0-9]+$/i)||i(new p.exception.invalid("json encode: invalid property name")),n+=r+'"'+e+'":',r=",",typeof t[e]){case"number":case"boolean":n+=t[e];break;case"string":n+='"'+escape(t[e])+'"';break;case"object":n+='"'+p.codec.base64.fromBits(t[e],0)+'"';break;default:i(new p.exception.bug("json encode: unsupported type"))}return n+"}"},decode:function(t){t=t.replace(/\s/g,""),t.match(/^\{.*\}$/)||i(new p.exception.invalid("json decode: this isn't json!")),t=t.replace(/^\{|\}$/g,"").split(/,/);var e,n,r={};for(e=0;e<t.length;e++)(n=t[e].match(/^\s*(?:(["']?)([a-z][a-z0-9]*)\1)\s*:\s*(?:(-?\d+)|"([a-z0-9+\/%*_.@=\-]*)"|(true|false))$/i))||i(new p.exception.invalid("json decode: this isn't json!")),n[3]?r[n[2]]=parseInt(n[3],10):n[4]?r[n[2]]=n[2].match(/^(ct|adata|salt|iv)$/)?p.codec.base64.toBits(n[4]):unescape(n[4]):n[5]&&(r[n[2]]="true"===n[5]);return r},e:function(t,e,n){if(t===l&&(t={}),e===l)return t;for(var r in e)e.hasOwnProperty(r)&&(n&&t[r]!==l&&t[r]!==e[r]&&i(new p.exception.invalid("required parameter overridden")),t[r]=e[r]);return t},fa:function(t,e){var n,r={};for(n in t)t.hasOwnProperty(n)&&t[n]!==e[n]&&(r[n]=t[n]);return r},ea:function(t,e){var n,r={};for(n=0;n<e.length;n++)t[e[n]]!==l&&(r[e[n]]=t[e[n]]);return r}},p.encrypt=p.json.encrypt,p.decrypt=p.json.decrypt,p.misc.ca={},p.misc.cachedPbkdf2=function(t,e){var n,r=p.misc.ca;return e=e||{},n=e.iter||1e3,r=r[t]=r[t]||{},n=r[n]=r[n]||{firstSalt:e.salt&&e.salt.length?e.salt.slice(0):p.random.randomWords(2,0)},r=e.salt===l?n.firstSalt:e.salt,n[r]=n[r]||p.misc.pbkdf2(t,r,e.iter),{key:n[r].slice(0),salt:r.slice(0)}}},{crypto:1}],3:[function(t,e,n){"use strict";function r(){return new i}function i(){this.sessionId=o(),this._beaconId=a(this.sessionId),this._parameterBlock=s(this.sessionId,this._beaconId),this._thirdPartyBlock=c()}function o(){var t,e="";for(t=0;32>t;t++)e+=Math.floor(16*Math.random()).toString(16);return e}function a(t){var e=(new Date).getTime()/1e3;return"https://b.stats.paypal.com/counter.cgi?i=127.0.0.1&p="+t+"&t="+e+"&a=14"}function s(t,e){var n=document.body.appendChild(document.createElement("script"));return n.type="application/json",n.setAttribute("fncls","fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99"),n.text=JSON.stringify({f:t,s:"BRAINTREE_SIGNIN",b:e}),n}function c(){function t(){n._l()}var e,n,r="https://www.paypalobjects.com/webstatic/r/fb/",i=document.createElement("iframe");i.src="about:blank",i.title="",i.role="presentation",(i.frameElement||i).style.cssText="width: 0; height: 0; border: 0",document.body.appendChild(i);try{n=i.contentWindow.document}catch(o){e=document.domain,i.src='javascript:var d=document.open();d.domain="'+e+'";void(0);',n=i.contentWindow.document}return n.open()._l=function(){var t=this.createElement("script");e&&(this.domain=e),t.id="js-iframe-async",t.src=r+"fb-all-prod.pp.min.js",this.body.appendChild(t)},i.addEventListener?i.addEventListener("load",t,!1):i.attachEvent?i.attachEvent("onload",t):n.write('<body onload="document._l();">'),n.close(),i}i.prototype.teardown=function(){this._thirdPartyBlock.parentNode.removeChild(this._thirdPartyBlock)},e.exports={setup:r}},{}],4:[function(t,e,n){"use strict";function r(t,e){function n(t){var e;for(e=0;e<y.length;e++)y[e].teardown();c(f,s(f)),t&&(t=h(t))()}var r,u,l,f,p,m,y=[];if("function"!=typeof e)throw new a({type:a.types.MERCHANT,message:"create must include a callback function."});if(e=h(e),null==t.client)return void e(new a({type:a.types.MERCHANT,message:"options.client is required when instantiating Data Collector."}));if(p=t.client.getConfiguration(),m=p.analyticsMetadata.sdkVersion,m!==d)return void e(new a({type:a.types.MERCHANT,message:"Client (version "+m+") and Data Collector (version "+d+") components must be from the same SDK version."}));if(t.kount===!0){if(!p.gatewayConfiguration.kount)return void e(new a({type:a.types.MERCHANT,message:"Kount is not enabled for this merchant."}));try{u=i.setup({environment:p.gatewayConfiguration.environment,merchantId:p.gatewayConfiguration.kount.kountMerchantId})}catch(g){return void e(new a({message:g.message,type:a.types.MERCHANT}))}r=u.deviceData,y.push(u)}else r={};if(t.paypal===!0){if(p.gatewayConfiguration.paypalEnabled!==!0)return void e(new a({type:a.types.MERCHANT,message:"PayPal is not enabled for this merchant."}));l=o.setup(),r.correlation_id=l.sessionId,y.push(l)}return 0===y.length?void e(new a({type:a.types.MERCHANT,message:"Data Collector must be created with Kount and/or PayPal."})):(f={deviceData:JSON.stringify(r),teardown:n},void e(null,f))}var i=t("./kount"),o=t("./fraudnet"),a=t("../lib/error"),s=t("../lib/methods"),c=t("../lib/convert-methods-to-error"),h=t("../lib/deferred"),d="3.0.0-beta.11";e.exports={create:r,VERSION:d}},{"../lib/convert-methods-to-error":6,"../lib/deferred":7,"../lib/error":9,"../lib/methods":10,"./fraudnet":3,"./kount":5}],5:[function(t,e,n){"use strict";function r(t){var e=null!=t?t:{};return new i(e)}function i(t){o.random.startCollectors(),this._currentEnvironment=this._initializeEnvironment(t),this._deviceSessionId=this._generateDeviceSessionId(),this.deviceData=this._getDeviceData(),this._iframe=this._setupIFrame()}var o=t("sjcl"),a="https://assets.qa.braintreepayments.com/data",s="braintreeDataFrame",c={development:a,qa:a,sandbox:"https://assets.braintreegateway.com/sandbox/data",production:"https://assets.braintreegateway.com/data"};i.prototype.teardown=function(){o.random.stopCollectors(),this._removeIframe()},i.prototype._removeIframe=function(){this._iframe.parentNode.removeChild(this._iframe)},i.prototype._getDeviceData=function(){return{device_session_id:this._deviceSessionId,fraud_merchant_id:this._currentEnvironment.id}},i.prototype._generateDeviceSessionId=function(){var t,e;return t=o.random.randomWords(4,0),e=o.codec.hex.fromBits(t)},i.prototype._setupIFrame=function(){var t,e=this,n=document.getElementById(s);return null!=n?n:(t="?m="+this._currentEnvironment.id+"&s="+this._deviceSessionId,n=document.createElement("iframe"),n.width=1,n.id=s,n.height=1,n.frameBorder=0,n.scrolling="no",document.body.appendChild(n),setTimeout(function(){n.src=e._currentEnvironment.url+"/logo.htm"+t,n.innerHTML='<img src="'+e._currentEnvironment.url+"/logo.gif"+t+'" />'},10),n)},i.prototype._initializeEnvironment=function(t){var e=c[t.environment];if(null==e)throw new Error(t.environment+" is not a valid environment for kount.environment");return{url:e,name:t.environment,id:t.merchantId}},e.exports={setup:r,Kount:i,environmentUrls:c}},{sjcl:2}],6:[function(t,e,n){"use strict";var r=t("./error");e.exports=function(t,e){e.forEach(function(e){t[e]=function(){throw new r({type:r.types.MERCHANT,message:e+" cannot be called after teardown."})}})}},{"./error":9}],7:[function(t,e,n){"use strict";e.exports=function(t){return function(){var e=arguments;setTimeout(function(){t.apply(null,e)},1)}}},{}],8:[function(t,e,n){"use strict";function r(t,e){return e=null==e?"":e,t.reduce(function(t,n){return t[n]=e+n,t},{})}e.exports=r},{}],9:[function(t,e,n){"use strict";function r(t){if(!r.types.hasOwnProperty(t.type))throw new Error(t.type+" is not a valid type.");if(!t.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=t.message,this.type=t.type,this.details=t.details}var i=t("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),e.exports=r},{"./enumerate":8}],10:[function(t,e,n){"use strict";e.exports=function(t){return Object.keys(t).filter(function(e){return"function"==typeof t[e]})}},{}]},{},[4])(4)}); | ||
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(e.braintree||(e.braintree={})).dataCollector=t()}}(function(){var t;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var h=new Error("Cannot find module '"+a+"'");throw h.code="MODULE_NOT_FOUND",h}var d=n[a]={exports:{}};t[a][0].call(d.exports,function(e){var n=t[a][1][e];return i(n?n:e)},d,d.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e,n){},{}],2:[function(e,n,r){"use strict";function i(t){throw t}function o(t,e,n){4!==e.length&&i(new f.exception.invalid("invalid aes block size"));var r=t.b[n],o=e[0]^r[0],a=e[n?3:1]^r[1],s=e[2]^r[2];e=e[n?1:3]^r[3];var c,h,d,u,l=r.length/4-2,p=4,m=[0,0,0,0];c=t.k[n],t=c[0];var y=c[1],g=c[2],v=c[3],b=c[4];for(u=0;l>u;u++)c=t[o>>>24]^y[a>>16&255]^g[s>>8&255]^v[255&e]^r[p],h=t[a>>>24]^y[s>>16&255]^g[e>>8&255]^v[255&o]^r[p+1],d=t[s>>>24]^y[e>>16&255]^g[o>>8&255]^v[255&a]^r[p+2],e=t[e>>>24]^y[o>>16&255]^g[a>>8&255]^v[255&s]^r[p+3],p+=4,o=c,a=h,s=d;for(u=0;4>u;u++)m[n?3&-u:u]=b[o>>>24]<<24^b[a>>16&255]<<16^b[s>>8&255]<<8^b[255&e]^r[p++],c=o,o=a,a=s,s=e,e=c;return m}function a(t,e){var n,r,i,o=e.slice(0),a=t.r,s=t.b,c=a[0],h=a[1],d=a[2],u=a[3],l=a[4],p=a[5],f=a[6],m=a[7];for(n=0;64>n;n++)16>n?r=o[n]:(r=o[n+1&15],i=o[n+14&15],r=o[15&n]=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(i>>>17^i>>>19^i>>>10^i<<15^i<<13)+o[15&n]+o[n+9&15]|0),r=r+m+(l>>>6^l>>>11^l>>>25^l<<26^l<<21^l<<7)+(f^l&(p^f))+s[n],m=f,f=p,p=l,l=u+r|0,u=d,d=h,h=c,c=r+(h&d^u&(h^d))+(h>>>2^h>>>13^h>>>22^h<<30^h<<19^h<<10)|0;a[0]=a[0]+c|0,a[1]=a[1]+h|0,a[2]=a[2]+d|0,a[3]=a[3]+u|0,a[4]=a[4]+l|0,a[5]=a[5]+p|0,a[6]=a[6]+f|0,a[7]=a[7]+m|0}function s(t,e){var n,r=f.random.w[t],i=[];for(n in r)r.hasOwnProperty(n)&&i.push(r[n]);for(n=0;n<i.length;n++)i[n](e)}function c(t){"undefined"!=typeof window&&window.performance&&"function"==typeof window.performance.now?f.random.addEntropy(window.performance.now(),t,"loadtime"):f.random.addEntropy((new Date).valueOf(),t,"loadtime")}function h(t){t.b=d(t).concat(d(t)),t.A=new f.cipher.aes(t.b)}function d(t){for(var e=0;4>e&&(t.f[e]=t.f[e]+1|0,!t.f[e]);e++);return t.A.encrypt(t.f)}function u(t,e){return function(){e.apply(t,arguments)}}var l=void 0,p=!1,f={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(t){this.toString=function(){return"CORRUPT: "+this.message},this.message=t},invalid:function(t){this.toString=function(){return"INVALID: "+this.message},this.message=t},bug:function(t){this.toString=function(){return"BUG: "+this.message},this.message=t},notReady:function(t){this.toString=function(){return"NOT READY: "+this.message},this.message=t}}};"undefined"!=typeof n&&n.exports&&(n.exports=f),"function"==typeof t&&t([],function(){return f}),f.cipher.aes=function(t){this.k[0][0][0]||this.D();var e,n,r,o,a=this.k[0][4],s=this.k[1];e=t.length;var c=1;for(4!==e&&6!==e&&8!==e&&i(new f.exception.invalid("invalid aes key size")),this.b=[r=t.slice(0),o=[]],t=e;4*e+28>t;t++)n=r[t-1],(0===t%e||8===e&&4===t%e)&&(n=a[n>>>24]<<24^a[n>>16&255]<<16^a[n>>8&255]<<8^a[255&n],0===t%e&&(n=n<<8^n>>>24^c<<24,c=c<<1^283*(c>>7))),r[t]=r[t-e]^n;for(e=0;t;e++,t--)n=r[3&e?t:t-4],o[e]=4>=t||4>e?n:s[0][a[n>>>24]]^s[1][a[n>>16&255]]^s[2][a[n>>8&255]]^s[3][a[255&n]]},f.cipher.aes.prototype={encrypt:function(t){return o(this,t,0)},decrypt:function(t){return o(this,t,1)},k:[[[],[],[],[],[]],[[],[],[],[],[]]],D:function(){var t,e,n,r,i,o,a,s=this.k[0],c=this.k[1],h=s[4],d=c[4],u=[],l=[];for(t=0;256>t;t++)l[(u[t]=t<<1^283*(t>>7))^t]=t;for(e=n=0;!h[e];e^=r||1,n=l[n]||1)for(o=n^n<<1^n<<2^n<<3^n<<4,o=o>>8^255&o^99,h[e]=o,d[o]=e,i=u[t=u[r=u[e]]],a=16843009*i^65537*t^257*r^16843008*e,i=257*u[o]^16843008*o,t=0;4>t;t++)s[t][e]=i=i<<24^i>>>8,c[t][o]=a=a<<24^a>>>8;for(t=0;5>t;t++)s[t]=s[t].slice(0),c[t]=c[t].slice(0)}},f.bitArray={bitSlice:function(t,e,n){return t=f.bitArray.P(t.slice(e/32),32-(31&e)).slice(1),n===l?t:f.bitArray.clamp(t,n-e)},extract:function(t,e,n){var r=Math.floor(-e-n&31);return(-32&(e+n-1^e)?t[e/32|0]<<32-r^t[e/32+1|0]>>>r:t[e/32|0]>>>r)&(1<<n)-1},concat:function(t,e){if(0===t.length||0===e.length)return t.concat(e);var n=t[t.length-1],r=f.bitArray.getPartial(n);return 32===r?t.concat(e):f.bitArray.P(e,r,0|n,t.slice(0,t.length-1))},bitLength:function(t){var e=t.length;return 0===e?0:32*(e-1)+f.bitArray.getPartial(t[e-1])},clamp:function(t,e){if(32*t.length<e)return t;t=t.slice(0,Math.ceil(e/32));var n=t.length;return e&=31,n>0&&e&&(t[n-1]=f.bitArray.partial(e,t[n-1]&2147483648>>e-1,1)),t},partial:function(t,e,n){return 32===t?e:(n?0|e:e<<32-t)+1099511627776*t},getPartial:function(t){return Math.round(t/1099511627776)||32},equal:function(t,e){if(f.bitArray.bitLength(t)!==f.bitArray.bitLength(e))return p;var n,r=0;for(n=0;n<t.length;n++)r|=t[n]^e[n];return 0===r},P:function(t,e,n,r){var i;for(i=0,r===l&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;return i=t.length?t[t.length-1]:0,t=f.bitArray.getPartial(i),r.push(f.bitArray.partial(e+t&31,e+t>32?n:r.pop(),1)),r},l:function(t,e){return[t[0]^e[0],t[1]^e[1],t[2]^e[2],t[3]^e[3]]},byteswapM:function(t){var e,n;for(e=0;e<t.length;++e)n=t[e],t[e]=n>>>24|n>>>8&65280|(65280&n)<<8|n<<24;return t}},f.codec.utf8String={fromBits:function(t){var e,n,r="",i=f.bitArray.bitLength(t);for(e=0;i/8>e;e++)0===(3&e)&&(n=t[e/4]),r+=String.fromCharCode(n>>>24),n<<=8;return decodeURIComponent(escape(r))},toBits:function(t){t=unescape(encodeURIComponent(t));var e,n=[],r=0;for(e=0;e<t.length;e++)r=r<<8|t.charCodeAt(e),3===(3&e)&&(n.push(r),r=0);return 3&e&&n.push(f.bitArray.partial(8*(3&e),r)),n}},f.codec.hex={fromBits:function(t){var e,n="";for(e=0;e<t.length;e++)n+=((0|t[e])+0xf00000000000).toString(16).substr(4);return n.substr(0,f.bitArray.bitLength(t)/4)},toBits:function(t){var e,n,r=[];for(t=t.replace(/\s|0x/g,""),n=t.length,t+="00000000",e=0;e<t.length;e+=8)r.push(0^parseInt(t.substr(e,8),16));return f.bitArray.clamp(r,4*n)}},f.codec.base64={J:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(t,e,n){var r="",i=0,o=f.codec.base64.J,a=0,s=f.bitArray.bitLength(t);for(n&&(o=o.substr(0,62)+"-_"),n=0;6*r.length<s;)r+=o.charAt((a^t[n]>>>i)>>>26),6>i?(a=t[n]<<6-i,i+=26,n++):(a<<=6,i-=6);for(;3&r.length&&!e;)r+="=";return r},toBits:function(t,e){t=t.replace(/\s|=/g,"");var n,r,o=[],a=0,s=f.codec.base64.J,c=0;for(e&&(s=s.substr(0,62)+"-_"),n=0;n<t.length;n++)r=s.indexOf(t.charAt(n)),0>r&&i(new f.exception.invalid("this isn't base64!")),a>26?(a-=26,o.push(c^r>>>a),c=r<<32-a):(a+=6,c^=r<<32-a);return 56&a&&o.push(f.bitArray.partial(56&a,c,1)),o}},f.codec.base64url={fromBits:function(t){return f.codec.base64.fromBits(t,1,1)},toBits:function(t){return f.codec.base64.toBits(t,1)}},f.hash.sha256=function(t){this.b[0]||this.D(),t?(this.r=t.r.slice(0),this.o=t.o.slice(0),this.h=t.h):this.reset()},f.hash.sha256.hash=function(t){return(new f.hash.sha256).update(t).finalize()},f.hash.sha256.prototype={blockSize:512,reset:function(){return this.r=this.N.slice(0),this.o=[],this.h=0,this},update:function(t){"string"==typeof t&&(t=f.codec.utf8String.toBits(t));var e,n=this.o=f.bitArray.concat(this.o,t);for(e=this.h,t=this.h=e+f.bitArray.bitLength(t),e=512+e&-512;t>=e;e+=512)a(this,n.splice(0,16));return this},finalize:function(){var t,e=this.o,n=this.r,e=f.bitArray.concat(e,[f.bitArray.partial(1,1)]);for(t=e.length+2;15&t;t++)e.push(0);for(e.push(Math.floor(this.h/4294967296)),e.push(0|this.h);e.length;)a(this,e.splice(0,16));return this.reset(),n},N:[],b:[],D:function(){function t(t){return 4294967296*(t-Math.floor(t))|0}var e,n=0,r=2;t:for(;64>n;r++){for(e=2;r>=e*e;e++)if(0===r%e)continue t;8>n&&(this.N[n]=t(Math.pow(r,.5))),this.b[n]=t(Math.pow(r,1/3)),n++}}},f.mode.ccm={name:"ccm",encrypt:function(t,e,n,r,o){var a,s=e.slice(0),c=f.bitArray,h=c.bitLength(n)/8,d=c.bitLength(s)/8;for(o=o||64,r=r||[],7>h&&i(new f.exception.invalid("ccm: iv must be at least 7 bytes")),a=2;4>a&&d>>>8*a;a++);return 15-h>a&&(a=15-h),n=c.clamp(n,8*(15-a)),e=f.mode.ccm.L(t,e,n,r,o,a),s=f.mode.ccm.p(t,s,n,e,o,a),c.concat(s.data,s.tag)},decrypt:function(t,e,n,r,o){o=o||64,r=r||[];var a=f.bitArray,s=a.bitLength(n)/8,c=a.bitLength(e),h=a.clamp(e,c-o),d=a.bitSlice(e,c-o),c=(c-o)/8;for(7>s&&i(new f.exception.invalid("ccm: iv must be at least 7 bytes")),e=2;4>e&&c>>>8*e;e++);return 15-s>e&&(e=15-s),n=a.clamp(n,8*(15-e)),h=f.mode.ccm.p(t,h,n,d,o,e),t=f.mode.ccm.L(t,h.data,n,r,o,e),a.equal(h.tag,t)||i(new f.exception.corrupt("ccm: tag doesn't match")),h.data},L:function(t,e,n,r,o,a){var s=[],c=f.bitArray,h=c.l;if(o/=8,(o%2||4>o||o>16)&&i(new f.exception.invalid("ccm: invalid tag length")),(4294967295<r.length||4294967295<e.length)&&i(new f.exception.bug("ccm: can't deal with 4GiB or more data")),a=[c.partial(8,(r.length?64:0)|o-2<<2|a-1)],a=c.concat(a,n),a[3]|=c.bitLength(e)/8,a=t.encrypt(a),r.length)for(n=c.bitLength(r)/8,65279>=n?s=[c.partial(16,n)]:4294967295>=n&&(s=c.concat([c.partial(16,65534)],[n])),s=c.concat(s,r),r=0;r<s.length;r+=4)a=t.encrypt(h(a,s.slice(r,r+4).concat([0,0,0])));for(r=0;r<e.length;r+=4)a=t.encrypt(h(a,e.slice(r,r+4).concat([0,0,0])));return c.clamp(a,8*o)},p:function(t,e,n,r,i,o){var a,s=f.bitArray;a=s.l;var c=e.length,h=s.bitLength(e);if(n=s.concat([s.partial(8,o-1)],n).concat([0,0,0]).slice(0,4),r=s.bitSlice(a(r,t.encrypt(n)),0,i),!c)return{tag:r,data:[]};for(a=0;c>a;a+=4)n[3]++,i=t.encrypt(n),e[a]^=i[0],e[a+1]^=i[1],e[a+2]^=i[2],e[a+3]^=i[3];return{tag:r,data:s.clamp(e,h)}}},f.mode.ocb2={name:"ocb2",encrypt:function(t,e,n,r,o,a){128!==f.bitArray.bitLength(n)&&i(new f.exception.invalid("ocb iv must be 128 bits"));var s,c=f.mode.ocb2.H,h=f.bitArray,d=h.l,u=[0,0,0,0];n=c(t.encrypt(n));var l,p=[];for(r=r||[],o=o||64,s=0;s+4<e.length;s+=4)l=e.slice(s,s+4),u=d(u,l),p=p.concat(d(n,t.encrypt(d(n,l)))),n=c(n);return l=e.slice(s),e=h.bitLength(l),s=t.encrypt(d(n,[0,0,0,e])),l=h.clamp(d(l.concat([0,0,0]),s),e),u=d(u,d(l.concat([0,0,0]),s)),u=t.encrypt(d(u,d(n,c(n)))),r.length&&(u=d(u,a?r:f.mode.ocb2.pmac(t,r))),p.concat(h.concat(l,h.clamp(u,o)))},decrypt:function(t,e,n,r,o,a){128!==f.bitArray.bitLength(n)&&i(new f.exception.invalid("ocb iv must be 128 bits")),o=o||64;var s,c,h=f.mode.ocb2.H,d=f.bitArray,u=d.l,l=[0,0,0,0],p=h(t.encrypt(n)),m=f.bitArray.bitLength(e)-o,y=[];for(r=r||[],n=0;m/32>n+4;n+=4)s=u(p,t.decrypt(u(p,e.slice(n,n+4)))),l=u(l,s),y=y.concat(s),p=h(p);return c=m-32*n,s=t.encrypt(u(p,[0,0,0,c])),s=u(s,d.clamp(e.slice(n),c).concat([0,0,0])),l=u(l,s),l=t.encrypt(u(l,u(p,h(p)))),r.length&&(l=u(l,a?r:f.mode.ocb2.pmac(t,r))),d.equal(d.clamp(l,o),d.bitSlice(e,m))||i(new f.exception.corrupt("ocb: tag doesn't match")),y.concat(d.clamp(s,c))},pmac:function(t,e){var n,r=f.mode.ocb2.H,i=f.bitArray,o=i.l,a=[0,0,0,0],s=t.encrypt([0,0,0,0]),s=o(s,r(r(s)));for(n=0;n+4<e.length;n+=4)s=r(s),a=o(a,t.encrypt(o(s,e.slice(n,n+4))));return n=e.slice(n),128>i.bitLength(n)&&(s=o(s,r(s)),n=i.concat(n,[-2147483648,0,0,0])),a=o(a,n),t.encrypt(o(r(o(s,r(s))),a))},H:function(t){return[t[0]<<1^t[1]>>>31,t[1]<<1^t[2]>>>31,t[2]<<1^t[3]>>>31,t[3]<<1^135*(t[0]>>>31)]}},f.mode.gcm={name:"gcm",encrypt:function(t,e,n,r,i){var o=e.slice(0);return e=f.bitArray,r=r||[],t=f.mode.gcm.p(!0,t,o,r,n,i||128),e.concat(t.data,t.tag)},decrypt:function(t,e,n,r,o){var a=e.slice(0),s=f.bitArray,c=s.bitLength(a);return o=o||128,r=r||[],c>=o?(e=s.bitSlice(a,c-o),a=s.bitSlice(a,0,c-o)):(e=a,a=[]),t=f.mode.gcm.p(p,t,a,r,n,o),s.equal(t.tag,e)||i(new f.exception.corrupt("gcm: tag doesn't match")),t.data},Z:function(t,e){var n,r,i,o,a,s=f.bitArray.l;for(i=[0,0,0,0],o=e.slice(0),n=0;128>n;n++){for((r=0!==(t[Math.floor(n/32)]&1<<31-n%32))&&(i=s(i,o)),a=0!==(1&o[3]),r=3;r>0;r--)o[r]=o[r]>>>1|(1&o[r-1])<<31;o[0]>>>=1,a&&(o[0]^=-520093696)}return i},g:function(t,e,n){var r,i=n.length;for(e=e.slice(0),r=0;i>r;r+=4)e[0]^=4294967295&n[r],e[1]^=4294967295&n[r+1],e[2]^=4294967295&n[r+2],e[3]^=4294967295&n[r+3],e=f.mode.gcm.Z(e,t);return e},p:function(t,e,n,r,i,o){var a,s,c,h,d,u,l,p,m=f.bitArray;for(u=n.length,l=m.bitLength(n),p=m.bitLength(r),s=m.bitLength(i),a=e.encrypt([0,0,0,0]),96===s?(i=i.slice(0),i=m.concat(i,[1])):(i=f.mode.gcm.g(a,[0,0,0,0],i),i=f.mode.gcm.g(a,i,[0,0,Math.floor(s/4294967296),4294967295&s])),s=f.mode.gcm.g(a,[0,0,0,0],r),d=i.slice(0),r=s.slice(0),t||(r=f.mode.gcm.g(a,s,n)),h=0;u>h;h+=4)d[3]++,c=e.encrypt(d),n[h]^=c[0],n[h+1]^=c[1],n[h+2]^=c[2],n[h+3]^=c[3];return n=m.clamp(n,l),t&&(r=f.mode.gcm.g(a,s,n)),t=[Math.floor(p/4294967296),4294967295&p,Math.floor(l/4294967296),4294967295&l],r=f.mode.gcm.g(a,r,t),c=e.encrypt(i),r[0]^=c[0],r[1]^=c[1],r[2]^=c[2],r[3]^=c[3],{tag:m.bitSlice(r,0,o),data:n}}},f.misc.hmac=function(t,e){this.M=e=e||f.hash.sha256;var n,r=[[],[]],i=e.prototype.blockSize/32;for(this.n=[new e,new e],t.length>i&&(t=e.hash(t)),n=0;i>n;n++)r[0][n]=909522486^t[n],r[1][n]=1549556828^t[n];this.n[0].update(r[0]),this.n[1].update(r[1]),this.G=new e(this.n[0])},f.misc.hmac.prototype.encrypt=f.misc.hmac.prototype.mac=function(t){return this.Q&&i(new f.exception.invalid("encrypt on already updated hmac called!")),this.update(t),this.digest(t)},f.misc.hmac.prototype.reset=function(){this.G=new this.M(this.n[0]),this.Q=p},f.misc.hmac.prototype.update=function(t){this.Q=!0,this.G.update(t)},f.misc.hmac.prototype.digest=function(){var t=this.G.finalize(),t=new this.M(this.n[1]).update(t).finalize();return this.reset(),t},f.misc.pbkdf2=function(t,e,n,r,o){n=n||1e3,(0>r||0>n)&&i(f.exception.invalid("invalid params to pbkdf2")),"string"==typeof t&&(t=f.codec.utf8String.toBits(t)),"string"==typeof e&&(e=f.codec.utf8String.toBits(e)),o=o||f.misc.hmac,t=new o(t);var a,s,c,h,d=[],u=f.bitArray;for(h=1;32*d.length<(r||1);h++){for(o=a=t.encrypt(u.concat(e,[h])),s=1;n>s;s++)for(a=t.encrypt(a),c=0;c<a.length;c++)o[c]^=a[c];d=d.concat(o)}return r&&(d=u.clamp(d,r)),d},f.prng=function(t){this.c=[new f.hash.sha256],this.i=[0],this.F=0,this.s={},this.C=0,this.K={},this.O=this.d=this.j=this.W=0,this.b=[0,0,0,0,0,0,0,0],this.f=[0,0,0,0],this.A=l,this.B=t,this.q=p,this.w={progress:{},seeded:{}},this.m=this.V=0,this.t=1,this.u=2,this.S=65536,this.I=[0,48,64,96,128,192,256,384,512,768,1024],this.T=3e4,this.R=80},f.prng.prototype={randomWords:function(t,e){var n,r=[];n=this.isReady(e);var o;if(n===this.m&&i(new f.exception.notReady("generator isn't seeded")),n&this.u){n=!(n&this.t),o=[];var a,s=0;for(this.O=o[0]=(new Date).valueOf()+this.T,a=0;16>a;a++)o.push(4294967296*Math.random()|0);for(a=0;a<this.c.length&&(o=o.concat(this.c[a].finalize()),s+=this.i[a],this.i[a]=0,!(!n&&this.F&1<<a));a++);for(this.F>=1<<this.c.length&&(this.c.push(new f.hash.sha256),this.i.push(0)),this.d-=s,s>this.j&&(this.j=s),this.F++,this.b=f.hash.sha256.hash(this.b.concat(o)),this.A=new f.cipher.aes(this.b),n=0;4>n&&(this.f[n]=this.f[n]+1|0,!this.f[n]);n++);}for(n=0;t>n;n+=4)0===(n+1)%this.S&&h(this),o=d(this),r.push(o[0],o[1],o[2],o[3]);return h(this),r.slice(0,t)},setDefaultParanoia:function(t,e){0===t&&"Setting paranoia=0 will ruin your security; use it only for testing"!==e&&i("Setting paranoia=0 will ruin your security; use it only for testing"),this.B=t},addEntropy:function(t,e,n){n=n||"user";var r,o,a=(new Date).valueOf(),c=this.s[n],h=this.isReady(),d=0;switch(r=this.K[n],r===l&&(r=this.K[n]=this.W++),c===l&&(c=this.s[n]=0),this.s[n]=(this.s[n]+1)%this.c.length,typeof t){case"number":e===l&&(e=1),this.c[c].update([r,this.C++,1,e,a,1,0|t]);break;case"object":if(n=Object.prototype.toString.call(t),"[object Uint32Array]"===n){for(o=[],n=0;n<t.length;n++)o.push(t[n]);t=o}else for("[object Array]"!==n&&(d=1),n=0;n<t.length&&!d;n++)"number"!=typeof t[n]&&(d=1);if(!d){if(e===l)for(n=e=0;n<t.length;n++)for(o=t[n];o>0;)e++,o>>>=1;this.c[c].update([r,this.C++,2,e,a,t.length].concat(t))}break;case"string":e===l&&(e=t.length),this.c[c].update([r,this.C++,3,e,a,t.length]),this.c[c].update(t);break;default:d=1}d&&i(new f.exception.bug("random: addEntropy only supports number, array of numbers or string")),this.i[c]+=e,this.d+=e,h===this.m&&(this.isReady()!==this.m&&s("seeded",Math.max(this.j,this.d)),s("progress",this.getProgress()))},isReady:function(t){return t=this.I[t!==l?t:this.B],this.j&&this.j>=t?this.i[0]>this.R&&(new Date).valueOf()>this.O?this.u|this.t:this.t:this.d>=t?this.u|this.m:this.m},getProgress:function(t){return t=this.I[t?t:this.B],this.j>=t?1:this.d>t?1:this.d/t},startCollectors:function(){this.q||(this.a={loadTimeCollector:u(this,this.aa),mouseCollector:u(this,this.ba),keyboardCollector:u(this,this.$),accelerometerCollector:u(this,this.U),touchCollector:u(this,this.da)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,p),window.addEventListener("mousemove",this.a.mouseCollector,p),window.addEventListener("keypress",this.a.keyboardCollector,p),window.addEventListener("devicemotion",this.a.accelerometerCollector,p),window.addEventListener("touchmove",this.a.touchCollector,p)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):i(new f.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,p),window.removeEventListener("mousemove",this.a.mouseCollector,p),window.removeEventListener("keypress",this.a.keyboardCollector,p),window.removeEventListener("devicemotion",this.a.accelerometerCollector,p),window.removeEventListener("touchmove",this.a.touchCollector,p)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.q=p)},addEventListener:function(t,e){this.w[t][this.V++]=e},removeEventListener:function(t,e){var n,r,i=this.w[t],o=[];for(r in i)i.hasOwnProperty(r)&&i[r]===e&&o.push(r);for(n=0;n<o.length;n++)r=o[n],delete i[r]},$:function(){c(1)},ba:function(t){var e,n;try{e=t.x||t.clientX||t.offsetX||0,n=t.y||t.clientY||t.offsetY||0}catch(r){n=e=0}0!=e&&0!=n&&f.random.addEntropy([e,n],2,"mouse"),c(0)},da:function(t){t=t.touches[0]||t.changedTouches[0],f.random.addEntropy([t.pageX||t.clientX,t.pageY||t.clientY],1,"touch"),c(0)},aa:function(){c(2)},U:function(t){if(t=t.accelerationIncludingGravity.x||t.accelerationIncludingGravity.y||t.accelerationIncludingGravity.z,window.orientation){var e=window.orientation;"number"==typeof e&&f.random.addEntropy(e,1,"accelerometer")}t&&f.random.addEntropy(t,2,"accelerometer"),c(0)}},f.random=new f.prng(6);t:try{var m,y,g,v;if(v="undefined"!=typeof n){var b;if(b=n.exports){var w;try{w=e("crypto")}catch(E){w=null}b=(y=w)&&y.randomBytes}v=b}if(v)m=y.randomBytes(128),m=new Uint32Array(new Uint8Array(m).buffer),f.random.addEntropy(m,1024,"crypto['randomBytes']");else if("undefined"!=typeof window&&"undefined"!=typeof Uint32Array){if(g=new Uint32Array(32),window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(g);else{if(!window.msCrypto||!window.msCrypto.getRandomValues)break t;window.msCrypto.getRandomValues(g)}f.random.addEntropy(g,1024,"crypto['getRandomValues']")}}catch(A){"undefined"!=typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(A))}f.json={defaults:{v:1,iter:1e3,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},Y:function(t,e,n,r){n=n||{},r=r||{};var o,a=f.json,s=a.e({iv:f.random.randomWords(4,0)},a.defaults);return a.e(s,n),n=s.adata,"string"==typeof s.salt&&(s.salt=f.codec.base64.toBits(s.salt)),"string"==typeof s.iv&&(s.iv=f.codec.base64.toBits(s.iv)),(!f.mode[s.mode]||!f.cipher[s.cipher]||"string"==typeof t&&100>=s.iter||64!==s.ts&&96!==s.ts&&128!==s.ts||128!==s.ks&&192!==s.ks&&256!==s.ks||2>s.iv.length||4<s.iv.length)&&i(new f.exception.invalid("json encrypt: invalid parameters")),"string"==typeof t?(o=f.misc.cachedPbkdf2(t,s),t=o.key.slice(0,s.ks/32),s.salt=o.salt):f.ecc&&t instanceof f.ecc.elGamal.publicKey&&(o=t.kem(),s.kemtag=o.tag,t=o.key.slice(0,s.ks/32)),"string"==typeof e&&(e=f.codec.utf8String.toBits(e)),"string"==typeof n&&(s.adata=n=f.codec.utf8String.toBits(n)),o=new f.cipher[s.cipher](t),a.e(r,s),r.key=t,s.ct=f.mode[s.mode].encrypt(o,e,s.iv,n,s.ts),s},encrypt:function(t,e,n,r){var i=f.json,o=i.Y.apply(i,arguments);return i.encode(o)},X:function(t,e,n,r){n=n||{},r=r||{};var o=f.json;e=o.e(o.e(o.e({},o.defaults),e),n,!0);var a,s;return a=e.adata,"string"==typeof e.salt&&(e.salt=f.codec.base64.toBits(e.salt)),"string"==typeof e.iv&&(e.iv=f.codec.base64.toBits(e.iv)),(!f.mode[e.mode]||!f.cipher[e.cipher]||"string"==typeof t&&100>=e.iter||64!==e.ts&&96!==e.ts&&128!==e.ts||128!==e.ks&&192!==e.ks&&256!==e.ks||!e.iv||2>e.iv.length||4<e.iv.length)&&i(new f.exception.invalid("json decrypt: invalid parameters")),"string"==typeof t?(s=f.misc.cachedPbkdf2(t,e),t=s.key.slice(0,e.ks/32),e.salt=s.salt):f.ecc&&t instanceof f.ecc.elGamal.secretKey&&(t=t.unkem(f.codec.base64.toBits(e.kemtag)).slice(0,e.ks/32)),"string"==typeof a&&(a=f.codec.utf8String.toBits(a)),s=new f.cipher[e.cipher](t),a=f.mode[e.mode].decrypt(s,e.ct,e.iv,a,e.ts),o.e(r,e),r.key=t,1===n.raw?a:f.codec.utf8String.fromBits(a)},decrypt:function(t,e,n,r){var i=f.json;return i.X(t,i.decode(e),n,r)},encode:function(t){var e,n="{",r="";for(e in t)if(t.hasOwnProperty(e))switch(e.match(/^[a-z0-9]+$/i)||i(new f.exception.invalid("json encode: invalid property name")),n+=r+'"'+e+'":',r=",",typeof t[e]){case"number":case"boolean":n+=t[e];break;case"string":n+='"'+escape(t[e])+'"';break;case"object":n+='"'+f.codec.base64.fromBits(t[e],0)+'"';break;default:i(new f.exception.bug("json encode: unsupported type"))}return n+"}"},decode:function(t){t=t.replace(/\s/g,""),t.match(/^\{.*\}$/)||i(new f.exception.invalid("json decode: this isn't json!")),t=t.replace(/^\{|\}$/g,"").split(/,/);var e,n,r={};for(e=0;e<t.length;e++)(n=t[e].match(/^\s*(?:(["']?)([a-z][a-z0-9]*)\1)\s*:\s*(?:(-?\d+)|"([a-z0-9+\/%*_.@=\-]*)"|(true|false))$/i))||i(new f.exception.invalid("json decode: this isn't json!")),n[3]?r[n[2]]=parseInt(n[3],10):n[4]?r[n[2]]=n[2].match(/^(ct|adata|salt|iv)$/)?f.codec.base64.toBits(n[4]):unescape(n[4]):n[5]&&(r[n[2]]="true"===n[5]);return r},e:function(t,e,n){if(t===l&&(t={}),e===l)return t;for(var r in e)e.hasOwnProperty(r)&&(n&&t[r]!==l&&t[r]!==e[r]&&i(new f.exception.invalid("required parameter overridden")),t[r]=e[r]);return t},fa:function(t,e){var n,r={};for(n in t)t.hasOwnProperty(n)&&t[n]!==e[n]&&(r[n]=t[n]);return r},ea:function(t,e){var n,r={};for(n=0;n<e.length;n++)t[e[n]]!==l&&(r[e[n]]=t[e[n]]);return r}},f.encrypt=f.json.encrypt,f.decrypt=f.json.decrypt,f.misc.ca={},f.misc.cachedPbkdf2=function(t,e){var n,r=f.misc.ca;return e=e||{},n=e.iter||1e3,r=r[t]=r[t]||{},n=r[n]=r[n]||{firstSalt:e.salt&&e.salt.length?e.salt.slice(0):f.random.randomWords(2,0)},r=e.salt===l?n.firstSalt:e.salt,n[r]=n[r]||f.misc.pbkdf2(t,r,e.iter),{key:n[r].slice(0),salt:r.slice(0)}}},{crypto:1}],3:[function(t,e,n){"use strict";var r=t("../lib/error");e.exports={KOUNT_NOT_ENABLED:{type:r.types.MERCHANT,code:"KOUNT_NOT_ENABLED",message:"Kount is not enabled for this merchant."},KOUNT_ERROR:{type:r.types.MERCHANT,code:"KOUNT_ERROR"},PAYPAL_NOT_ENABLED:{type:r.types.MERCHANT,code:"PAYPAL_NOT_ENABLED",message:"PayPal is not enabled for this merchant."},REQUIRES_CREATE_OPTIONS:{type:r.types.MERCHANT,code:"REQUIRES_CREATE_OPTIONS",message:"Data Collector must be created with Kount and/or PayPal."}}},{"../lib/error":11}],4:[function(t,e,n){"use strict";function r(){return new i}function i(){this.sessionId=o(),this._beaconId=a(this.sessionId),this._parameterBlock=s(this.sessionId,this._beaconId),this._thirdPartyBlock=c()}function o(){var t,e="";for(t=0;32>t;t++)e+=Math.floor(16*Math.random()).toString(16);return e}function a(t){var e=(new Date).getTime()/1e3;return"https://b.stats.paypal.com/counter.cgi?i=127.0.0.1&p="+t+"&t="+e+"&a=14"}function s(t,e){var n=document.body.appendChild(document.createElement("script"));return n.type="application/json",n.setAttribute("fncls","fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99"),n.text=JSON.stringify({f:t,s:"BRAINTREE_SIGNIN",b:e}),n}function c(){function t(){n._l()}var e,n,r="https://www.paypalobjects.com/webstatic/r/fb/",i=document.createElement("iframe");i.src="about:blank",i.title="",i.role="presentation",(i.frameElement||i).style.cssText="width: 0; height: 0; border: 0",document.body.appendChild(i);try{n=i.contentWindow.document}catch(o){e=document.domain,i.src='javascript:var d=document.open();d.domain="'+e+'";void(0);',n=i.contentWindow.document}return n.open()._l=function(){var t=this.createElement("script");e&&(this.domain=e),t.id="js-iframe-async",t.src=r+"fb-all-prod.pp.min.js",this.body.appendChild(t)},i.addEventListener?i.addEventListener("load",t,!1):i.attachEvent?i.attachEvent("onload",t):n.write('<body onload="document._l();">'),n.close(),i}i.prototype.teardown=function(){this._thirdPartyBlock.parentNode.removeChild(this._thirdPartyBlock)},e.exports={setup:r}},{}],5:[function(t,e,n){"use strict";function r(t,e){function n(t){var e;for(e=0;e<v.length;e++)v[e].teardown();c(m,s(m)),t&&(t=h(t))()}var r,p,f,m,y,g,v=[];if("function"!=typeof e)throw new a({type:u.CALLBACK_REQUIRED.type,code:u.CALLBACK_REQUIRED.code,message:"create must include a callback function."});if(e=h(e),null==t.client)return void e(new a({type:u.INSTANTIATION_OPTION_REQUIRED.type,code:u.INSTANTIATION_OPTION_REQUIRED.code,message:"options.client is required when instantiating Data Collector."}));if(y=t.client.getConfiguration(),g=y.analyticsMetadata.sdkVersion,g!==d)return void e(new a({type:u.INCOMPATIBLE_VERSIONS.type,code:u.INCOMPATIBLE_VERSIONS.code,message:"Client (version "+g+") and Data Collector (version "+d+") components must be from the same SDK version."}));if(t.kount===!0){if(!y.gatewayConfiguration.kount)return void e(new a(l.KOUNT_NOT_ENABLED));try{p=i.setup({environment:y.gatewayConfiguration.environment,merchantId:y.gatewayConfiguration.kount.kountMerchantId})}catch(b){return void e(new a({type:l.KOUNT_ERROR.type,code:l.KOUNT_ERROR.code,message:b.message}))}r=p.deviceData,v.push(p)}else r={};if(t.paypal===!0){if(y.gatewayConfiguration.paypalEnabled!==!0)return void e(new a(l.PAYPAL_NOT_ENABLED));f=o.setup(),r.correlation_id=f.sessionId,v.push(f)}return 0===v.length?void e(new a(l.REQUIRES_CREATE_OPTIONS)):(m={deviceData:JSON.stringify(r),teardown:n},void e(null,m))}var i=t("./kount"),o=t("./fraudnet"),a=t("../lib/error"),s=t("../lib/methods"),c=t("../lib/convert-methods-to-error"),h=t("../lib/deferred"),d="3.0.0-beta.12",u=t("../errors"),l=t("./errors");e.exports={create:r,VERSION:d}},{"../errors":7,"../lib/convert-methods-to-error":8,"../lib/deferred":9,"../lib/error":11,"../lib/methods":12,"./errors":3,"./fraudnet":4,"./kount":6}],6:[function(t,e,n){"use strict";function r(t){var e=null!=t?t:{};return new i(e)}function i(t){o.random.startCollectors(),this._currentEnvironment=this._initializeEnvironment(t),this._deviceSessionId=this._generateDeviceSessionId(),this.deviceData=this._getDeviceData(),this._iframe=this._setupIFrame()}var o=t("sjcl"),a="https://assets.qa.braintreepayments.com/data",s="braintreeDataFrame",c={development:a,qa:a,sandbox:"https://assets.braintreegateway.com/sandbox/data",production:"https://assets.braintreegateway.com/data"};i.prototype.teardown=function(){o.random.stopCollectors(),this._removeIframe()},i.prototype._removeIframe=function(){this._iframe.parentNode.removeChild(this._iframe)},i.prototype._getDeviceData=function(){return{device_session_id:this._deviceSessionId,fraud_merchant_id:this._currentEnvironment.id}},i.prototype._generateDeviceSessionId=function(){var t,e;return t=o.random.randomWords(4,0),e=o.codec.hex.fromBits(t)},i.prototype._setupIFrame=function(){var t,e=this,n=document.getElementById(s);return null!=n?n:(t="?m="+this._currentEnvironment.id+"&s="+this._deviceSessionId,n=document.createElement("iframe"),n.width=1,n.id=s,n.height=1,n.frameBorder=0,n.scrolling="no",document.body.appendChild(n),setTimeout(function(){n.src=e._currentEnvironment.url+"/logo.htm"+t,n.innerHTML='<img src="'+e._currentEnvironment.url+"/logo.gif"+t+'" />'},10),n)},i.prototype._initializeEnvironment=function(t){var e=c[t.environment];if(null==e)throw new Error(t.environment+" is not a valid environment for kount.environment");return{url:e,name:t.environment,id:t.merchantId}},e.exports={setup:r,Kount:i,environmentUrls:c}},{sjcl:2}],7:[function(t,e,n){"use strict";var r=t("./lib/error");e.exports={CALLBACK_REQUIRED:{type:r.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:r.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:r.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:r.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":11}],8:[function(t,e,n){"use strict";var r=t("./error"),i=t("../errors");e.exports=function(t,e){e.forEach(function(e){t[e]=function(){throw new r({type:i.METHOD_CALLED_AFTER_TEARDOWN.type,code:i.METHOD_CALLED_AFTER_TEARDOWN.code,message:e+" cannot be called after teardown."})}})}},{"../errors":7,"./error":11}],9:[function(t,e,n){"use strict";e.exports=function(t){return function(){var e=arguments;setTimeout(function(){t.apply(null,e)},1)}}},{}],10:[function(t,e,n){"use strict";function r(t,e){return e=null==e?"":e,t.reduce(function(t,n){return t[n]=e+n,t},{})}e.exports=r},{}],11:[function(t,e,n){"use strict";function r(t){if(!r.types.hasOwnProperty(t.type))throw new Error(t.type+" is not a valid type.");if(!t.code)throw new Error("Error code required.");if(!t.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=t.code,this.message=t.message,this.type=t.type,this.details=t.details}var i=t("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),e.exports=r},{"./enumerate":10}],12:[function(t,e,n){"use strict";e.exports=function(t){return Object.keys(t).filter(function(e){return"function"==typeof t[e]})}},{}]},{},[5])(5)}); |
@@ -12,3 +12,3 @@ 'use strict'; | ||
* <caption>In the browser</caption> | ||
* <script href="https://js.braintreegateway.com/web/{@pkg version}/js/client.min.js"></script> | ||
* <script src="https://js.braintreegateway.com/web/{@pkg version}/js/client.min.js"></script> | ||
* <script> | ||
@@ -22,3 +22,3 @@ * window.braintree.client.create(...); | ||
* paths: { | ||
* braintreeClient: 'https://js.braintreegateway.com/web/{@pkg version}/js/client.min.js' | ||
* braintreeClient: 'https://js.braintreegateway.com/web/{@pkg version}/js/client.min' | ||
* } | ||
@@ -47,2 +47,3 @@ * }); | ||
var unionpay = require('./unionpay.debug'); | ||
var applePay = require('./apple-pay.debug'); | ||
var threeDSecure = require('./three-d-secure.debug'); | ||
@@ -65,2 +66,4 @@ | ||
unionpay: unionpay, | ||
/** @type {module:braintree-web/apple-pay} */ | ||
applePay: applePay, | ||
/** | ||
@@ -70,3 +73,3 @@ * @description The current version of the SDK, i.e. `{@pkg version}`. | ||
*/ | ||
VERSION: '3.0.0-beta.11' | ||
VERSION: '3.0.0-beta.12' | ||
}; |
@@ -1,1 +0,1 @@ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).hostedFields=e()}}(function(){var e;return function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[s]={exports:{}};e[s][0].call(u.exports,function(t){var n=e[s][1][t];return i(n?n:t)},u,u.exports,t,e,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(e,t,n){"use strict";function r(e){return JSON.parse(JSON.stringify(e))}var i=[{niceType:"Visa",type:"visa",pattern:"^4\\d*$",gaps:[4,8,12],lengths:[16],code:{name:"CVV",size:3}},{niceType:"MasterCard",type:"master-card",pattern:"^(5|5[1-5]\\d*|2|22|222|222[1-9]\\d*|2[3-6]\\d*|27[0-1]\\d*|2720\\d*)$",gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},{niceType:"American Express",type:"american-express",pattern:"^3([47]\\d*)?$",isAmex:!0,gaps:[4,10],lengths:[15],code:{name:"CID",size:4}},{niceType:"Diners Club",type:"diners-club",pattern:"^3((0([0-5]\\d*)?)|[689]\\d*)?$",gaps:[4,10],lengths:[14],code:{name:"CVV",size:3}},{niceType:"Discover",type:"discover",pattern:"^6(0|01|011\\d*|5\\d*|4|4[4-9]\\d*)?$",gaps:[4,8,12],lengths:[16,19],code:{name:"CID",size:3}},{niceType:"JCB",type:"jcb",pattern:"^((2|21|213|2131\\d*)|(1|18|180|1800\\d*)|(3|35\\d*))$",gaps:[4,8,12],lengths:[16],code:{name:"CVV",size:3}},{niceType:"UnionPay",type:"unionpay",pattern:"^6(2\\d*)?$",gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVN",size:3}},{niceType:"Maestro",type:"maestro",pattern:"^((5((0|[6-9])\\d*)?)|(6|6[37]\\d*))$",gaps:[4,8,12],lengths:[12,13,14,15,16,17,18,19],code:{name:"CVC",size:3}}];t.exports=function(e){var t,n,o=[];if(!("string"==typeof e||e instanceof String))return o;if(""===e)return r(i);for(t=0;t<i.length;t++)n=i[t],RegExp(n.pattern).test(e)&&o.push(r(n));return o}},{}],2:[function(t,n,r){(function(t){"use strict";!function(i,o){"object"==typeof r&&"undefined"!=typeof n?n.exports=o("undefined"==typeof t?i:t):"function"==typeof e&&e.amd?e([],function(){return o(i)}):i.framebus=o(i)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(_.push(e),!0)}function n(e){var t,n={};for(t in x)x.hasOwnProperty(t)&&(n[t]=x[t]);return n._origin=e||"*",n}function r(e){var t,n,r=s(this);return a(e)?!1:a(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=c(e,n,r),t===!1?!1:(y(v.top,t,r),!0))}function i(e,t){var n=s(this);return b(e,t,n)?!1:(E[n]=E[n]||{},E[n][e]=E[n][e]||[],E[n][e].push(t),!0)}function o(e,t){var n,r,i=s(this);if(b(e,t,i))return!1;if(r=E[i]&&E[i][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function s(e){return e&&e._origin||"*"}function a(e){return"string"!=typeof e}function c(e,t,n){var r=!1,i={event:e,origin:n},o=t[t.length-1];"function"==typeof o&&(i.reply=g(o,n),t=t.slice(0,-1)),i.args=t;try{r=w+JSON.stringify(i)}catch(s){throw new Error("Could not stringify event: "+s.message)}return r}function l(e){var t,n,r,i;if(e.data.slice(0,w.length)!==w)return!1;try{t=JSON.parse(e.data.slice(w.length))}catch(o){return!1}return null!=t.reply&&(n=e.origin,r=e.source,i=t.reply,t.reply=function(e){var t=c(i,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function u(t){v||(v=t||e,v.addEventListener?v.addEventListener("message",d,!1):v.attachEvent?v.attachEvent("onmessage",d):null===v.onmessage?v.onmessage=d:v=null)}function f(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function d(e){var t;a(e.data)||(t=l(e),t&&(p("*",t.event,t.args,e),p(e.origin,t.event,t.args,e),m(e.data,t.origin,e.source)))}function p(e,t,n,r){var i;if(E[e]&&E[e][t])for(i=0;i<E[e][t].length;i++)E[e][t][i].apply(r,n)}function h(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function y(e,t,n){var r;try{for(e.postMessage(t,n),h(e)&&y(e.opener.top,t,n),r=0;r<e.frames.length;r++)y(e.frames[r],t,n)}catch(i){}}function m(e,t,n){var r,i;for(r=_.length-1;r>=0;r--)i=_[r],i.closed===!0?_=_.slice(r,1):n!==i&&y(i.top,e,t)}function g(e,t){function n(i,o){e(i,o),x.target(t).unsubscribe(r,n)}var r=f();return x.target(t).subscribe(r,n),r}function b(e,t,n){return a(e)?!0:"function"!=typeof t?!0:a(n)?!0:!1}var v,x,_=[],E={},w="/*framebus*/";return u(),x={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:i,sub:i,on:i,unsubscribe:o,unsub:o,off:o}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),i=e("./lib/default-attributes"),o=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=o({},i,e);return n.style&&"string"!=typeof n.style&&(o(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":4,"./lib/default-attributes":5,"./lib/set-attributes":6}],4:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],5:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],6:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],7:[function(e,t,n){"use strict";var r=e("../shared/constants");t.exports=function(e,t){return e+"/web/"+r.VERSION+"/html/hosted-fields-frame.min.html#"+t}},{"../shared/constants":11}],8:[function(e,t,n){"use strict";function r(e){return function(t){var n,r=t.merchantPayload,i=r.emittedBy,o=e[i].containerElement;Object.keys(r.fields).forEach(function(t){r.fields[t].container=e[t].containerElement}),n=r.fields[i],s.toggle(o,f.externalClasses.FOCUSED,n.isFocused),s.toggle(o,f.externalClasses.VALID,n.isValid),n.isStrictlyValidating?s.toggle(o,f.externalClasses.INVALID,!n.isValid):s.toggle(o,f.externalClasses.INVALID,!n.isPotentiallyValid),this._state={cards:r.cards,fields:r.fields},this._emit(t.type,r)}}function i(e){var t,n,h=this,y={},x=0,T=p();if(!e.client)throw new l({type:l.types.MERCHANT,message:"options.client is required when instantiating Hosted Fields."});if(n=e.client.getConfiguration().analyticsMetadata.sdkVersion,n!==_)throw new l({type:l.types.MERCHANT,message:"Client (version "+n+") and Hosted Fields (version "+_+") components must be from the same SDK version."});if(!e.fields)throw new l({type:l.types.MERCHANT,message:"options.fields is required when instantiating Hosted Fields."});g.call(this),this._injectedNodes=[],this._destructor=new o,this._fields=y,this._state={fields:{},cards:N("")},this._bus=new c({channel:T,merchantUrl:location.href}),this._destructor.registerFunctionForTeardown(function(){h._bus.teardown()}),this._client=e.client,v.sendEvent(this._client,"web.custom.hosted-fields.initialized"),Object.keys(e.fields).forEach(function(t){var n,r,i;if(!f.whitelistedFields.hasOwnProperty(t))throw new l({type:l.types.MERCHANT,message:'"'+t+'" is not a valid field.'});if(n=e.fields[t],r=document.querySelector(n.selector),!r)throw new l({type:l.types.MERCHANT,message:"Selector does not reference a valid DOM node.",details:{fieldSelector:n.selector,fieldKey:t}});if(r.querySelector('iframe[name^="braintree-"]'))throw new l({type:l.types.MERCHANT,message:"Element already contains a Braintree iframe.",details:{fieldSelector:n.selector,fieldKey:t}});i=a({type:t,name:"braintree-hosted-field-"+t,style:f.defaultIFrameStyle}),this._injectedNodes=this._injectedNodes.concat(b(i,r)),this._setupLabelFocus(t,r),y[t]={frameElement:i,containerElement:r},x++,this._state.fields[t]={isEmpty:!0,isValid:!1,isPotentiallyValid:!0,isFocused:!1,container:r},setTimeout(function(){i.src=u(h._client.getConfiguration().gatewayConfiguration.assetsUrl,T)},0)}.bind(this)),t=setTimeout(function(){v.sendEvent(h._client,"web.custom.hosted-fields.load.timed-out")},d),this._bus.on(m.FRAME_READY,function(n){x--,0===x&&(clearTimeout(t),n(e),h._emit("ready"))}),this._bus.on(m.INPUT_EVENT,r(y).bind(this)),this._destructor.registerFunctionForTeardown(function(){var e,t,n;for(e=0;e<h._injectedNodes.length;e++)t=h._injectedNodes[e],n=t.parentNode,n.removeChild(t),s.remove(n,f.externalClasses.FOCUSED,f.externalClasses.INVALID,f.externalClasses.VALID)}),this._destructor.registerFunctionForTeardown(function(){var e=E(i.prototype).concat(E(g.prototype));w(h,e)})}var o=e("../../lib/destructor"),s=e("../../lib/classlist"),a=e("iframer"),c=e("../../lib/bus"),l=e("../../lib/error"),u=e("./compose-url"),f=e("../shared/constants"),d=e("../../lib/constants").INTEGRATION_TIMEOUT_MS,p=e("../../lib/uuid"),h=e("../shared/find-parent-tags"),y=e("../../lib/is-ios"),m=f.events,g=e("../../lib/event-emitter"),b=e("./inject-frame"),v=e("../../lib/analytics"),x=f.whitelistedFields,_="3.0.0-beta.11",E=e("../../lib/methods"),w=e("../../lib/convert-methods-to-error"),T=e("../../lib/deferred"),N=e("credit-card-type");i.prototype=Object.create(g.prototype,{constructor:i}),i.prototype._setupLabelFocus=function(e,t){function n(){s.emit(m.TRIGGER_INPUT_FOCUS,e)}var r,i,o=y(),s=this._bus;if(!o&&null!=t.id){for(r=Array.prototype.slice.call(document.querySelectorAll('label[for="'+t.id+'"]')),r=r.concat(h(t,"label")),i=0;i<r.length;i++)r[i].addEventListener("click",n,!1);this._destructor.registerFunctionForTeardown(function(){for(i=0;i<r.length;i++)r[i].removeEventListener("click",n,!1)})}},i.prototype.teardown=function(e){var t=this._client;this._destructor.teardown(function(n){v.sendEvent(t,"web.custom.hosted-fields.teardown-completed"),"function"==typeof e&&(e=T(e))(n)})},i.prototype.tokenize=function(e){if("function"!=typeof e)throw new l({type:l.types.MERCHANT,message:"tokenize must include a callback function."});this._bus.emit(m.TOKENIZATION_REQUEST,function(t){e.apply(null,t)})},i.prototype.setPlaceholder=function(e,t,n){var r;x.hasOwnProperty(e)?this._fields.hasOwnProperty(e)?this._bus.emit(m.SET_PLACEHOLDER,e,t):r=new l({type:l.types.MERCHANT,message:'Cannot set placeholder for "'+e+'" field because it is not part of the current Hosted Fields options.'}):r=new l({type:l.types.MERCHANT,message:'"'+e+'" is not a valid field. You must use a valid field option when setting a placeholder.'}),"function"==typeof n&&(n=T(n))(r)},i.prototype.clear=function(e,t){var n;x.hasOwnProperty(e)?this._fields.hasOwnProperty(e)?this._bus.emit(m.CLEAR_FIELD,e):n=new l({type:l.types.MERCHANT,message:'Cannot clear "'+e+'" field because it is not part of the current Hosted Fields options.'}):n=new l({type:l.types.MERCHANT,message:'"'+e+'" is not a valid field. You must use a valid field option when clearing a field.'}),"function"==typeof t&&(t=T(t))(n)},i.prototype.getState=function(){return this._state},t.exports=i},{"../../lib/analytics":14,"../../lib/bus":18,"../../lib/classlist":19,"../../lib/constants":20,"../../lib/convert-methods-to-error":21,"../../lib/deferred":23,"../../lib/destructor":24,"../../lib/error":26,"../../lib/event-emitter":27,"../../lib/is-ios":28,"../../lib/methods":30,"../../lib/uuid":33,"../shared/constants":11,"../shared/find-parent-tags":12,"./compose-url":7,"./inject-frame":9,"credit-card-type":1,iframer:3}],9:[function(e,t,n){"use strict";t.exports=function(e,t){var n=document.createElement("div"),r=document.createDocumentFragment();return n.style.clear="both",r.appendChild(e),r.appendChild(n),t.appendChild(r),[e,n]}},{}],10:[function(e,t,n){"use strict";function r(e,t){var n;if("function"!=typeof t)throw new s({type:s.types.MERCHANT,message:"create must include a callback function."});try{n=new i(e)}catch(r){return t=o(t),void t(r)}n.on("ready",function(){t(null,n)})}var i=e("./external/hosted-fields"),o=e("../lib/deferred"),s=e("../lib/error"),a="3.0.0-beta.11";t.exports={create:r,VERSION:a}},{"../lib/deferred":23,"../lib/error":26,"./external/hosted-fields":8}],11:[function(e,t,n){"use strict";var r=e("../../lib/enumerate"),i="3.0.0-beta.11",o={VERSION:i,externalEvents:{FOCUS:"focus",BLUR:"blur",EMPTY:"empty",NOT_EMPTY:"notEmpty",VALIDITY_CHANGE:"validityChange",CARD_TYPE_CHANGE:"cardTypeChange"},defaultMaxLengths:{number:19,postalCode:8,expirationDate:7,expirationMonth:2,expirationYear:4,cvv:3},externalClasses:{FOCUSED:"braintree-hosted-fields-focused",INVALID:"braintree-hosted-fields-invalid",VALID:"braintree-hosted-fields-valid"},defaultIFrameStyle:{border:"none",width:"100%",height:"100%","float":"left"},whitelistedStyles:["-moz-osx-font-smoothing","-moz-tap-highlight-color","-moz-transition","-webkit-font-smoothing","-webkit-tap-highlight-color","-webkit-transition","color","font","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-weight","line-height","opacity","outline","text-shadow","transition"],whitelistedFields:{number:{name:"credit-card-number",label:"Credit Card Number"},cvv:{name:"cvv",label:"CVV"},expirationDate:{name:"expiration",label:"Expiration Date"},expirationMonth:{name:"expiration-month",label:"Expiration Month"},expirationYear:{name:"expiration-year",label:"Expiration Year"},postalCode:{name:"postal-code",label:"Postal Code"}}};o.events=r(["FRAME_READY","VALIDATE_STRICT","CONFIGURATION","TOKENIZATION_REQUEST","INPUT_EVENT","TRIGGER_INPUT_FOCUS","SET_PLACEHOLDER","CLEAR_FIELD"],"hosted-fields:"),t.exports=o},{"../../lib/enumerate":25}],12:[function(e,t,n){"use strict";function r(e,t){for(var n=e.parentNode,r=[];null!=n;)null!=n.tagName&&n.tagName.toLowerCase()===t&&r.push(n),n=n.parentNode;return r}t.exports=r},{}],13:[function(e,t,n){"use strict";function r(e,t){var n,r=t?o(t):{},a=i(e.authorization).attrs,c=o(e.analyticsMetadata);r.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(c[n]=r._meta[n]);return r._meta=c,a.tokenizationKey?r.tokenizationKey=a.tokenizationKey:r.authorizationFingerprint=a.authorizationFingerprint,r}var i=e("./create-authorization-data"),o=e("./json-clone"),s=e("./constants");t.exports=r},{"./constants":20,"./create-authorization-data":22,"./json-clone":29}],14:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function i(e,t,n){var i=e.getConfiguration(),a=e._request,c=r(Date.now()),l=i.gatewayConfiguration.analytics.url,u={analytics:[{kind:t,timestamp:c}]};a({url:l,method:"post",data:s(i,u),timeout:o.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var o=e("./constants"),s=e("./add-metadata");t.exports={sendEvent:i}},{"./add-metadata":13,"./constants":20}],15:[function(e,t,n){"use strict";function r(e,t){var n=0===e.length;n?(e(),t(null)):e(t)}var i=e("./once");t.exports=function(e,t){function n(e){return e?void c(e):(a-=1,void(0===a&&c(null)))}var o,s=e.length,a=s,c=i(t);if(0===s)return void c(null);for(o=0;s>o;o++)r(e[o],n)}},{"./once":31}],16:[function(e,t,n){"use strict";function r(e,t){var n,r,o=document.createElement("a");return o.href=t,r="https:"===o.protocol?o.host.replace(/:443$/,""):"http:"===o.protocol?o.host.replace(/:80$/,""):o.host,n=o.protocol+"//"+r,n===e||i.test(e)}var i=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],17:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":25}],18:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new a({type:a.types.INTERNAL,message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var i=e("framebus"),o=e("./events"),s=e("./check-origin").checkOrigin,a=e("../error");r.prototype.on=function(e,t){var n,r,o=t,a=this;this._isDestroyed||(this.merchantUrl&&(o=function(){s(this.origin,a.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=o,this._log("on",r),i.on.apply(i,r),this._listeners.push({eventName:e,handler:o,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),i.emit.apply(i,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),i.off.apply(i,t))},r.prototype.off=function(e,t){var n,r,i=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(i=r.handler);this._offDirect(e,i)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=o,t.exports=r},{"../error":26,"./check-origin":16,"./events":17,framebus:2}],19:[function(e,t,n){"use strict";function r(e){return e.className.trim().split(/\s+/)}function i(e){var t=Array.prototype.slice.call(arguments,1),n=r(e).filter(function(e){return-1===t.indexOf(e)}).concat(t).join(" ");e.className=n}function o(e){var t=Array.prototype.slice.call(arguments,1),n=r(e).filter(function(e){return-1===t.indexOf(e)}).join(" ");e.className=n}function s(e,t,n){n?i(e,t):o(e,t)}t.exports={add:i,remove:o,toggle:s}},{}],20:[function(e,t,n){"use strict";var r="3.0.0-beta.11",i="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:i,BRAINTREE_LIBRARY_VERSION:"braintree/"+i+"/"+r}},{}],21:[function(e,t,n){"use strict";var r=e("./error");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:r.types.MERCHANT,message:t+" cannot be called after teardown."})}})}},{"./error":26}],22:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function i(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function o(e){var t,n,o={attrs:{},configUrl:""};return r(e)?(n=i(e),o.attrs.tokenizationKey=e,o.configUrl=a[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(s(e)),o.attrs.authorizationFingerprint=t.authorizationFingerprint,o.configUrl=t.configUrl),o}var s=e("../lib/polyfill").atob,a={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=o},{"../lib/polyfill":32}],23:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],24:[function(e,t,n){"use strict";function r(){this._teardownRegistry=[],this._isTearingDown=!1}var i=e("./batch-execute-functions");r.prototype.registerFunctionForTeardown=function(e){"function"==typeof e&&this._teardownRegistry.push(e)},r.prototype.teardown=function(e){return this._isTearingDown?void e(new Error("Destructor is already tearing down")):(this._isTearingDown=!0,void i(this._teardownRegistry,function(t){this._teardownRegistry=[],this._isTearingDown=!1,"function"==typeof e&&e(t)}.bind(this)))},t.exports=r},{"./batch-execute-functions":15}],25:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],26:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=e.message,this.type=e.type,this.details=e.details}var i=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":25}],27:[function(e,t,n){"use strict";function r(){this._events={}}r.prototype.on=function(e,t){this._events[e]?this._events[e].push(t):this._events[e]=[t]},r.prototype._emit=function(e){var t,n,r=this._events[e];if(r)for(n=Array.prototype.slice.call(arguments,1),t=0;t<r.length;t++)r[t].apply(null,n)},t.exports=r},{}],28:[function(e,t,n){"use strict";t.exports=function(e){return e=e||navigator.userAgent,/(iPad|iPhone|iPod)/i.test(e)}},{}],29:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],30:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],31:[function(e,t,n){"use strict";function r(e){var t=!1;return function(){t||(t=!0,e.apply(null,arguments))}}t.exports=r},{}],32:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,i,o,s,a,c,l=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="";if(!l.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");c=0;do i=u.indexOf(e.charAt(c++)),o=u.indexOf(e.charAt(c++)),s=u.indexOf(e.charAt(c++)),a=u.indexOf(e.charAt(c++)),t=(63&i)<<2|o>>4&3,n=(15&o)<<4|s>>2&15,r=(3&s)<<6|63&a,f+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(c<e.length);return f}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],33:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}]},{},[10])(10)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).hostedFields=e()}}(function(){var e;return function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[s]={exports:{}};e[s][0].call(u.exports,function(t){var n=e[s][1][t];return i(n?n:t)},u,u.exports,t,e,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(e,t,n){"use strict";function r(e){return JSON.parse(JSON.stringify(e))}var i=[{niceType:"Visa",type:"visa",pattern:"^4\\d*$",gaps:[4,8,12],lengths:[16],code:{name:"CVV",size:3}},{niceType:"MasterCard",type:"master-card",pattern:"^(5|5[1-5]\\d*|2|22|222|222[1-9]\\d*|2[3-6]\\d*|27[0-1]\\d*|2720\\d*)$",gaps:[4,8,12],lengths:[16],code:{name:"CVC",size:3}},{niceType:"American Express",type:"american-express",pattern:"^3([47]\\d*)?$",isAmex:!0,gaps:[4,10],lengths:[15],code:{name:"CID",size:4}},{niceType:"Diners Club",type:"diners-club",pattern:"^3((0([0-5]\\d*)?)|[689]\\d*)?$",gaps:[4,10],lengths:[14],code:{name:"CVV",size:3}},{niceType:"Discover",type:"discover",pattern:"^6(0|01|011\\d*|5\\d*|4|4[4-9]\\d*)?$",gaps:[4,8,12],lengths:[16,19],code:{name:"CID",size:3}},{niceType:"JCB",type:"jcb",pattern:"^((2|21|213|2131\\d*)|(1|18|180|1800\\d*)|(3|35\\d*))$",gaps:[4,8,12],lengths:[16],code:{name:"CVV",size:3}},{niceType:"UnionPay",type:"unionpay",pattern:"^6(2\\d*)?$",gaps:[4,8,12],lengths:[16,17,18,19],code:{name:"CVN",size:3}},{niceType:"Maestro",type:"maestro",pattern:"^((5((0|[6-9])\\d*)?)|(6|6[37]\\d*))$",gaps:[4,8,12],lengths:[12,13,14,15,16,17,18,19],code:{name:"CVC",size:3}}];t.exports=function(e){var t,n,o=[];if(!("string"==typeof e||e instanceof String))return o;if(""===e)return r(i);for(t=0;t<i.length;t++)n=i[t],RegExp(n.pattern).test(e)&&o.push(r(n));return o}},{}],2:[function(t,n,r){(function(t){"use strict";!function(i,o){"object"==typeof r&&"undefined"!=typeof n?n.exports=o("undefined"==typeof t?i:t):"function"==typeof e&&e.amd?e([],function(){return o(i)}):i.framebus=o(i)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(T.push(e),!0)}function n(e){var t,n={};for(t in g)g.hasOwnProperty(t)&&(n[t]=g[t]);return n._origin=e||"*",n}function r(e){var t,n,r=s(this);return a(e)?!1:a(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=c(e,n,r),t===!1?!1:(y(I.top,t,r),!0))}function i(e,t){var n=s(this);return m(e,t,n)?!1:(N[n]=N[n]||{},N[n][e]=N[n][e]||[],N[n][e].push(t),!0)}function o(e,t){var n,r,i=s(this);if(m(e,t,i))return!1;if(r=N[i]&&N[i][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function s(e){return e&&e._origin||"*"}function a(e){return"string"!=typeof e}function c(e,t,n){var r=!1,i={event:e,origin:n},o=t[t.length-1];"function"==typeof o&&(i.reply=_(o,n),t=t.slice(0,-1)),i.args=t;try{r=b+JSON.stringify(i)}catch(s){throw new Error("Could not stringify event: "+s.message)}return r}function l(e){var t,n,r,i;if(e.data.slice(0,b.length)!==b)return!1;try{t=JSON.parse(e.data.slice(b.length))}catch(o){return!1}return null!=t.reply&&(n=e.origin,r=e.source,i=t.reply,t.reply=function(e){var t=c(i,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function u(t){I||(I=t||e,I.addEventListener?I.addEventListener("message",f,!1):I.attachEvent?I.attachEvent("onmessage",f):null===I.onmessage?I.onmessage=f:I=null)}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function f(e){var t;a(e.data)||(t=l(e),t&&(p("*",t.event,t.args,e),p(e.origin,t.event,t.args,e),E(e.data,t.origin,e.source)))}function p(e,t,n,r){var i;if(N[e]&&N[e][t])for(i=0;i<N[e][t].length;i++)N[e][t][i].apply(r,n)}function h(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function y(e,t,n){var r;try{for(e.postMessage(t,n),h(e)&&y(e.opener.top,t,n),r=0;r<e.frames.length;r++)y(e.frames[r],t,n)}catch(i){}}function E(e,t,n){var r,i;for(r=T.length-1;r>=0;r--)i=T[r],i.closed===!0?T=T.slice(r,1):n!==i&&y(i.top,e,t)}function _(e,t){function n(i,o){e(i,o),g.target(t).unsubscribe(r,n)}var r=d();return g.target(t).subscribe(r,n),r}function m(e,t,n){return a(e)?!0:"function"!=typeof t?!0:a(n)?!0:!1}var I,g,T=[],N={},b="/*framebus*/";return u(),g={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:i,sub:i,on:i,unsubscribe:o,unsub:o,off:o}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),i=e("./lib/default-attributes"),o=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=o({},i,e);return n.style&&"string"!=typeof n.style&&(o(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":4,"./lib/default-attributes":5,"./lib/set-attributes":6}],4:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],5:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],6:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],7:[function(e,t,n){"use strict";var r=e("./lib/error");t.exports={CALLBACK_REQUIRED:{type:r.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:r.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:r.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:r.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":28}],8:[function(e,t,n){"use strict";var r=e("../shared/constants");t.exports=function(e,t){return e+"/web/"+r.VERSION+"/html/hosted-fields-frame.min.html#"+t}},{"../shared/constants":12}],9:[function(e,t,n){"use strict";function r(e){return function(t){var n,r=t.merchantPayload,i=r.emittedBy,o=e[i].containerElement;Object.keys(r.fields).forEach(function(t){r.fields[t].container=e[t].containerElement}),n=r.fields[i],s.toggle(o,d.externalClasses.FOCUSED,n.isFocused),s.toggle(o,d.externalClasses.VALID,n.isValid),s.toggle(o,d.externalClasses.INVALID,!n.isPotentiallyValid),this._state={cards:r.cards,fields:r.fields},this._emit(t.type,r)}}function i(e){var t,n,y=this,E={},T=0,A=h();if(!e.client)throw new l({type:D.INSTANTIATION_OPTION_REQUIRED.type,code:D.INSTANTIATION_OPTION_REQUIRED.code,message:"options.client is required when instantiating Hosted Fields."});if(n=e.client.getConfiguration().analyticsMetadata.sdkVersion,n!==N)throw new l({type:D.INCOMPATIBLE_VERSIONS.type,code:D.INCOMPATIBLE_VERSIONS.code,message:"Client (version "+n+") and Hosted Fields (version "+N+") components must be from the same SDK version."});if(!e.fields)throw new l({type:D.INSTANTIATION_OPTION_REQUIRED.type,code:D.INSTANTIATION_OPTION_REQUIRED.code,message:"options.fields is required when instantiating Hosted Fields."});m.call(this),this._injectedNodes=[],this._destructor=new o,this._fields=E,this._state={fields:{},cards:x("")},this._bus=new c({channel:A,merchantUrl:location.href}),this._destructor.registerFunctionForTeardown(function(){y._bus.teardown()}),this._client=e.client,g.sendEvent(this._client,"web.custom.hosted-fields.initialized"),Object.keys(e.fields).forEach(function(t){var n,r,i;if(!d.whitelistedFields.hasOwnProperty(t))throw new l({type:f.INVALID_FIELD_KEY.type,code:f.INVALID_FIELD_KEY.code,message:'"'+t+'" is not a valid field.'});if(n=e.fields[t],r=document.querySelector(n.selector),!r)throw new l({type:f.INVALID_FIELD_SELECTOR.type,code:f.INVALID_FIELD_SELECTOR.code,message:f.INVALID_FIELD_SELECTOR.message,details:{fieldSelector:n.selector,fieldKey:t}});if(r.querySelector('iframe[name^="braintree-"]'))throw new l({type:f.FIELD_DUPLICATE_IFRAME.type,code:f.FIELD_DUPLICATE_IFRAME.code,message:f.FIELD_DUPLICATE_IFRAME.message,details:{fieldSelector:n.selector,fieldKey:t}});i=a({type:t,name:"braintree-hosted-field-"+t,style:d.defaultIFrameStyle}),this._injectedNodes=this._injectedNodes.concat(I(i,r)),this._setupLabelFocus(t,r),E[t]={frameElement:i,containerElement:r},T++,this._state.fields[t]={isEmpty:!0,isValid:!1,isPotentiallyValid:!0,isFocused:!1,container:r},setTimeout(function(){i.src=u(y._client.getConfiguration().gatewayConfiguration.assetsUrl,A)},0)}.bind(this)),t=setTimeout(function(){g.sendEvent(y._client,"web.custom.hosted-fields.load.timed-out")},p),this._bus.on(_.FRAME_READY,function(n){T--,0===T&&(clearTimeout(t),n(e),y._emit("ready"))}),this._bus.on(_.INPUT_EVENT,r(E).bind(this)),this._destructor.registerFunctionForTeardown(function(){var e,t,n;for(e=0;e<y._injectedNodes.length;e++)t=y._injectedNodes[e],n=t.parentNode,n.removeChild(t),s.remove(n,d.externalClasses.FOCUSED,d.externalClasses.INVALID,d.externalClasses.VALID)}),this._destructor.registerFunctionForTeardown(function(){var e=b(i.prototype).concat(b(m.prototype));v(y,e)})}var o=e("../../lib/destructor"),s=e("../../lib/classlist"),a=e("iframer"),c=e("../../lib/bus"),l=e("../../lib/error"),u=e("./compose-url"),d=e("../shared/constants"),f=e("../shared/errors"),p=e("../../lib/constants").INTEGRATION_TIMEOUT_MS,h=e("../../lib/uuid"),y=e("../shared/find-parent-tags"),E=e("../../lib/is-ios"),_=d.events,m=e("../../lib/event-emitter"),I=e("./inject-frame"),g=e("../../lib/analytics"),T=d.whitelistedFields,N="3.0.0-beta.12",b=e("../../lib/methods"),v=e("../../lib/convert-methods-to-error"),A=e("../../lib/deferred"),D=e("../../errors"),x=e("credit-card-type");i.prototype=Object.create(m.prototype,{constructor:i}),i.prototype._setupLabelFocus=function(e,t){function n(){s.emit(_.TRIGGER_INPUT_FOCUS,e)}var r,i,o=E(),s=this._bus;if(!o&&null!=t.id){for(r=Array.prototype.slice.call(document.querySelectorAll('label[for="'+t.id+'"]')),r=r.concat(y(t,"label")),i=0;i<r.length;i++)r[i].addEventListener("click",n,!1);this._destructor.registerFunctionForTeardown(function(){for(i=0;i<r.length;i++)r[i].removeEventListener("click",n,!1)})}},i.prototype.teardown=function(e){var t=this._client;this._destructor.teardown(function(n){g.sendEvent(t,"web.custom.hosted-fields.teardown-completed"),"function"==typeof e&&(e=A(e))(n)})},i.prototype.tokenize=function(e,t){if(t||(t=e,e={}),"function"!=typeof t)throw new l({type:D.CALLBACK_REQUIRED.type,code:D.CALLBACK_REQUIRED.code,message:"tokenize must include a callback function."});this._bus.emit(_.TOKENIZATION_REQUEST,e,function(e){t.apply(null,e)})},i.prototype.addClass=function(e,t,n){var r;T.hasOwnProperty(e)?this._fields.hasOwnProperty(e)?this._bus.emit(_.ADD_CLASS,e,t):r=new l({type:f.FIELD_NOT_PRESENT.type,code:f.FIELD_NOT_PRESENT.code,message:'Cannot add class to "'+e+'" field because it is not part of the current Hosted Fields options.'}):r=new l({type:f.INVALID_FIELD.type,code:f.INVALID_FIELD.code,message:'"'+e+'" is not a valid field. You must use a valid field option when adding a class.'}),"function"==typeof n&&(n=A(n))(r)},i.prototype.removeClass=function(e,t,n){var r;T.hasOwnProperty(e)?this._fields.hasOwnProperty(e)?this._bus.emit(_.REMOVE_CLASS,e,t):r=new l({type:f.FIELD_NOT_PRESENT.type,code:f.FIELD_NOT_PRESENT.code,message:'Cannot remove class from "'+e+'" field because it is not part of the current Hosted Fields options.'}):r=new l({type:f.INVALID_FIELD.type,code:f.INVALID_FIELD.code,message:'"'+e+'" is not a valid field. You must use a valid field option when removing a class.'}),"function"==typeof n&&(n=A(n))(r)},i.prototype.setPlaceholder=function(e,t,n){var r;T.hasOwnProperty(e)?this._fields.hasOwnProperty(e)?this._bus.emit(_.SET_PLACEHOLDER,e,t):r=new l({type:f.FIELD_NOT_PRESENT.type,code:f.FIELD_NOT_PRESENT.code,message:'Cannot set placeholder for "'+e+'" field because it is not part of the current Hosted Fields options.'}):r=new l({type:f.INVALID_FIELD.type,code:f.INVALID_FIELD.code,message:'"'+e+'" is not a valid field. You must use a valid field option when setting a placeholder.'}),"function"==typeof n&&(n=A(n))(r)},i.prototype.clear=function(e,t){var n;T.hasOwnProperty(e)?this._fields.hasOwnProperty(e)?this._bus.emit(_.CLEAR_FIELD,e):n=new l({type:f.FIELD_NOT_PRESENT.type,code:f.FIELD_NOT_PRESENT.code,message:'Cannot clear "'+e+'" field because it is not part of the current Hosted Fields options.'}):n=new l({type:f.INVALID_FIELD.type,code:f.INVALID_FIELD.code,message:'"'+e+'" is not a valid field. You must use a valid field option when clearing a field.'}),"function"==typeof t&&(t=A(t))(n)},i.prototype.getState=function(){return this._state},t.exports=i},{"../../errors":7,"../../lib/analytics":16,"../../lib/bus":20,"../../lib/classlist":21,"../../lib/constants":22,"../../lib/convert-methods-to-error":23,"../../lib/deferred":25,"../../lib/destructor":26,"../../lib/error":28,"../../lib/event-emitter":29,"../../lib/is-ios":30,"../../lib/methods":32,"../../lib/uuid":35,"../shared/constants":12,"../shared/errors":13,"../shared/find-parent-tags":14,"./compose-url":8,"./inject-frame":10,"credit-card-type":1,iframer:3}],10:[function(e,t,n){"use strict";t.exports=function(e,t){var n=document.createElement("div"),r=document.createDocumentFragment();return n.style.clear="both",r.appendChild(e),r.appendChild(n),t.appendChild(r),[e,n]}},{}],11:[function(e,t,n){"use strict";function r(e,t){var n;if("function"!=typeof t)throw new s({type:a.CALLBACK_REQUIRED.type,code:a.CALLBACK_REQUIRED.code,message:"create must include a callback function."});try{n=new i(e)}catch(r){return t=o(t),void t(r)}n.on("ready",function(){t(null,n)})}var i=e("./external/hosted-fields"),o=e("../lib/deferred"),s=e("../lib/error"),a=e("../errors"),c="3.0.0-beta.12";t.exports={create:r,VERSION:c}},{"../errors":7,"../lib/deferred":25,"../lib/error":28,"./external/hosted-fields":9}],12:[function(e,t,n){"use strict";var r=e("../../lib/enumerate"),i="3.0.0-beta.12",o={VERSION:i,externalEvents:{FOCUS:"focus",BLUR:"blur",EMPTY:"empty",NOT_EMPTY:"notEmpty",VALIDITY_CHANGE:"validityChange",CARD_TYPE_CHANGE:"cardTypeChange"},defaultMaxLengths:{number:19,postalCode:8,expirationDate:7,expirationMonth:2,expirationYear:4,cvv:3},externalClasses:{FOCUSED:"braintree-hosted-fields-focused",INVALID:"braintree-hosted-fields-invalid",VALID:"braintree-hosted-fields-valid"},defaultIFrameStyle:{border:"none",width:"100%",height:"100%","float":"left"},whitelistedStyles:["-moz-osx-font-smoothing","-moz-tap-highlight-color","-moz-transition","-webkit-font-smoothing","-webkit-tap-highlight-color","-webkit-transition","color","font","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-weight","line-height","opacity","outline","text-shadow","transition"],whitelistedFields:{number:{name:"credit-card-number",label:"Credit Card Number"},cvv:{name:"cvv",label:"CVV"},expirationDate:{name:"expiration",label:"Expiration Date"},expirationMonth:{name:"expiration-month",label:"Expiration Month"},expirationYear:{name:"expiration-year",label:"Expiration Year"},postalCode:{name:"postal-code",label:"Postal Code"}}};o.events=r(["FRAME_READY","VALIDATE_STRICT","CONFIGURATION","TOKENIZATION_REQUEST","INPUT_EVENT","TRIGGER_INPUT_FOCUS","ADD_CLASS","REMOVE_CLASS","SET_PLACEHOLDER","CLEAR_FIELD"],"hosted-fields:"),t.exports=o},{"../../lib/enumerate":27}],13:[function(e,t,n){"use strict";var r=e("../../lib/error");t.exports={INVALID_FIELD_KEY:{type:r.types.MERCHANT,code:"INVALID_FIELD_KEY"},INVALID_FIELD_SELECTOR:{type:r.types.MERCHANT,code:"INVALID_FIELD_SELECTOR",message:"Selector does not reference a valid DOM node."},FIELD_DUPLICATE_IFRAME:{type:r.types.MERCHANT,code:"FIELD_DUPLICATE_IFRAME",message:"Element already contains a Braintree iframe."},INVALID_FIELD:{type:r.types.MERCHANT,code:"INVALID_FIELD"},FIELD_NOT_PRESENT:{type:r.types.MERCHANT,code:"FIELD_NOT_PRESENT"},TOKENIZATION_NETWORK_ERROR:{type:r.types.NETWORK,code:"TOKENIZATION_NETWORK_ERROR",message:"A tokenization network error occurred."},FAILED_HOSTED_FIELDS_TOKENIZATION:{type:r.types.CUSTOMER,code:"FAILED_HOSTED_FIELDS_TOKENIZATION",message:"The supplied card data failed tokenization."},FIELDS_EMPTY:{type:r.types.CUSTOMER,code:"FIELDS_EMPTY",message:"All fields are empty. Cannot tokenize empty card fields."},FIELDS_INVALID:{type:r.types.CUSTOMER,code:"FIELDS_INVALID",message:"Some payment input fields are invalid. Cannot tokenize invalid card fields."}}},{"../../lib/error":28}],14:[function(e,t,n){"use strict";function r(e,t){for(var n=e.parentNode,r=[];null!=n;)null!=n.tagName&&n.tagName.toLowerCase()===t&&r.push(n),n=n.parentNode;return r}t.exports=r},{}],15:[function(e,t,n){"use strict";function r(e,t){var n,r=t?o(t):{},a=i(e.authorization).attrs,c=o(e.analyticsMetadata);r.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(c[n]=r._meta[n]);return r._meta=c,a.tokenizationKey?r.tokenizationKey=a.tokenizationKey:r.authorizationFingerprint=a.authorizationFingerprint,r}var i=e("./create-authorization-data"),o=e("./json-clone"),s=e("./constants");t.exports=r},{"./constants":22,"./create-authorization-data":24,"./json-clone":31}],16:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function i(e,t,n){var i=e.getConfiguration(),a=e._request,c=r(Date.now()),l=i.gatewayConfiguration.analytics.url,u={analytics:[{kind:t,timestamp:c}]};a({url:l,method:"post",data:s(i,u),timeout:o.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var o=e("./constants"),s=e("./add-metadata");t.exports={sendEvent:i}},{"./add-metadata":15,"./constants":22}],17:[function(e,t,n){"use strict";function r(e,t){var n=0===e.length;n?(e(),t(null)):e(t)}var i=e("./once");t.exports=function(e,t){function n(e){return e?void c(e):(a-=1,void(0===a&&c(null)))}var o,s=e.length,a=s,c=i(t);if(0===s)return void c(null);for(o=0;s>o;o++)r(e[o],n)}},{"./once":33}],18:[function(e,t,n){"use strict";function r(e,t){var n,r,o=document.createElement("a");return o.href=t,r="https:"===o.protocol?o.host.replace(/:443$/,""):"http:"===o.protocol?o.host.replace(/:80$/,""):o.host,n=o.protocol+"//"+r,n===e||i.test(e)}var i=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],19:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":27}],20:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new a({type:a.types.INTERNAL,code:"MISSING_CHANNEL_ID",message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var i=e("framebus"),o=e("./events"),s=e("./check-origin").checkOrigin,a=e("../error");r.prototype.on=function(e,t){var n,r,o=t,a=this;this._isDestroyed||(this.merchantUrl&&(o=function(){s(this.origin,a.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=o,this._log("on",r),i.on.apply(i,r),this._listeners.push({eventName:e,handler:o,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),i.emit.apply(i,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),i.off.apply(i,t))},r.prototype.off=function(e,t){var n,r,i=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(i=r.handler);this._offDirect(e,i)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=o,t.exports=r},{"../error":28,"./check-origin":18,"./events":19,framebus:2}],21:[function(e,t,n){"use strict";function r(e){return e.className.trim().split(/\s+/)}function i(e){var t=Array.prototype.slice.call(arguments,1),n=r(e).filter(function(e){return-1===t.indexOf(e)}).concat(t).join(" ");e.className=n}function o(e){var t=Array.prototype.slice.call(arguments,1),n=r(e).filter(function(e){return-1===t.indexOf(e)}).join(" ");e.className=n}function s(e,t,n){n?i(e,t):o(e,t)}t.exports={add:i,remove:o,toggle:s}},{}],22:[function(e,t,n){"use strict";var r="3.0.0-beta.12",i="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:i,BRAINTREE_LIBRARY_VERSION:"braintree/"+i+"/"+r}},{}],23:[function(e,t,n){"use strict";var r=e("./error"),i=e("../errors");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:i.METHOD_CALLED_AFTER_TEARDOWN.type,code:i.METHOD_CALLED_AFTER_TEARDOWN.code,message:t+" cannot be called after teardown."})}})}},{"../errors":7,"./error":28}],24:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function i(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function o(e){var t,n,o={attrs:{},configUrl:""};return r(e)?(n=i(e),o.attrs.tokenizationKey=e,o.configUrl=a[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(s(e)),o.attrs.authorizationFingerprint=t.authorizationFingerprint,o.configUrl=t.configUrl),o}var s=e("../lib/polyfill").atob,a={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=o},{"../lib/polyfill":34}],25:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],26:[function(e,t,n){"use strict";function r(){this._teardownRegistry=[],this._isTearingDown=!1}var i=e("./batch-execute-functions");r.prototype.registerFunctionForTeardown=function(e){"function"==typeof e&&this._teardownRegistry.push(e)},r.prototype.teardown=function(e){return this._isTearingDown?void e(new Error("Destructor is already tearing down")):(this._isTearingDown=!0,void i(this._teardownRegistry,function(t){this._teardownRegistry=[],this._isTearingDown=!1,"function"==typeof e&&e(t)}.bind(this)))},t.exports=r},{"./batch-execute-functions":17}],27:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],28:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.code)throw new Error("Error code required.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=e.code,this.message=e.message,this.type=e.type,this.details=e.details}var i=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":27}],29:[function(e,t,n){"use strict";function r(){this._events={}}r.prototype.on=function(e,t){this._events[e]?this._events[e].push(t):this._events[e]=[t]},r.prototype._emit=function(e){var t,n,r=this._events[e];if(r)for(n=Array.prototype.slice.call(arguments,1),t=0;t<r.length;t++)r[t].apply(null,n)},t.exports=r},{}],30:[function(e,t,n){"use strict";t.exports=function(e){return e=e||navigator.userAgent,/(iPad|iPhone|iPod)/i.test(e)}},{}],31:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],32:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],33:[function(e,t,n){"use strict";function r(e){var t=!1;return function(){t||(t=!0,e.apply(null,arguments))}}t.exports=r},{}],34:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,i,o,s,a,c,l=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d="";if(!l.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");c=0;do i=u.indexOf(e.charAt(c++)),o=u.indexOf(e.charAt(c++)),s=u.indexOf(e.charAt(c++)),a=u.indexOf(e.charAt(c++)),t=(63&i)<<2|o>>4&3,n=(15&o)<<4|s>>2&15,r=(3&s)<<6|63&a,d+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(c<e.length);return d}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],35:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}]},{},[11])(11)}); |
@@ -8,2 +8,3 @@ 'use strict'; | ||
var unionpay = require('./unionpay'); | ||
var applePay = require('./apple-pay'); | ||
var threeDSecure = require('./three-d-secure'); | ||
@@ -19,3 +20,4 @@ | ||
unionpay: unionpay, | ||
VERSION: '3.0.0-beta.11' | ||
applePay: applePay, | ||
VERSION: '3.0.0-beta.12' | ||
}; |
{ | ||
"name": "braintree-web", | ||
"description": "A suite of tools for integrating Braintree in the browser", | ||
"version": "3.0.0-beta.11", | ||
"version": "3.0.0-beta.12", | ||
"main": "index.js", | ||
@@ -6,0 +6,0 @@ "repository": { |
@@ -351,2 +351,26 @@ (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 = {})).paypal = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
var BraintreeError = _dereq_('./lib/error'); | ||
module.exports = { | ||
CALLBACK_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CALLBACK_REQUIRED' | ||
}, | ||
INSTANTIATION_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INSTANTIATION_OPTION_REQUIRED' | ||
}, | ||
INCOMPATIBLE_VERSIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INCOMPATIBLE_VERSIONS' | ||
}, | ||
METHOD_CALLED_AFTER_TEARDOWN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'METHOD_CALLED_AFTER_TEARDOWN' | ||
} | ||
}; | ||
},{"./lib/error":18}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var createAuthorizationData = _dereq_('./create-authorization-data'); | ||
@@ -383,3 +407,3 @@ var jsonClone = _dereq_('./json-clone'); | ||
},{"./constants":12,"./create-authorization-data":14,"./json-clone":26}],7:[function(_dereq_,module,exports){ | ||
},{"./constants":13,"./create-authorization-data":15,"./json-clone":28}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -415,3 +439,3 @@ | ||
},{"./add-metadata":6,"./constants":12}],8:[function(_dereq_,module,exports){ | ||
},{"./add-metadata":7,"./constants":13}],9:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -425,2 +449,7 @@ 'use strict'; | ||
function isAndroidFirefox(ua) { | ||
ua = ua || global.navigator.userAgent; | ||
return ua.indexOf('Android') > -1 && ua.indexOf('Firefox') > -1; | ||
} | ||
function getIEVersion(ua) { | ||
@@ -446,2 +475,3 @@ ua = ua || global.navigator.userAgent; | ||
isOperaMini: isOperaMini, | ||
isAndroidFirefox: isAndroidFirefox, | ||
getIEVersion: getIEVersion, | ||
@@ -452,3 +482,3 @@ isHTTPS: isHTTPS | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],9:[function(_dereq_,module,exports){ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -481,3 +511,3 @@ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
},{}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -491,3 +521,3 @@ | ||
},{"../enumerate":16}],11:[function(_dereq_,module,exports){ | ||
},{"../enumerate":17}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -507,2 +537,3 @@ | ||
type: BraintreeError.types.INTERNAL, | ||
code: 'MISSING_CHANNEL_ID', | ||
message: 'Channel ID must be specified.' | ||
@@ -623,6 +654,6 @@ }); | ||
},{"../error":17,"./check-origin":9,"./events":10,"framebus":1}],12:[function(_dereq_,module,exports){ | ||
},{"../error":18,"./check-origin":10,"./events":11,"framebus":1}],13:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var VERSION = "3.0.0-beta.11"; | ||
var VERSION = "3.0.0-beta.12"; | ||
var PLATFORM = 'web'; | ||
@@ -640,6 +671,7 @@ | ||
},{}],13:[function(_dereq_,module,exports){ | ||
},{}],14:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./error'); | ||
var sharedErrors = _dereq_('../errors'); | ||
@@ -650,3 +682,4 @@ module.exports = function (instance, methodNames) { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.type, | ||
code: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.code, | ||
message: methodName + ' cannot be called after teardown.' | ||
@@ -658,3 +691,3 @@ }); | ||
},{"./error":17}],14:[function(_dereq_,module,exports){ | ||
},{"../errors":6,"./error":18}],15:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -708,3 +741,3 @@ | ||
},{"../lib/polyfill":29}],15:[function(_dereq_,module,exports){ | ||
},{"../lib/polyfill":31}],16:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -723,3 +756,3 @@ | ||
},{}],16:[function(_dereq_,module,exports){ | ||
},{}],17:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -738,3 +771,3 @@ | ||
},{}],17:[function(_dereq_,module,exports){ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -756,2 +789,6 @@ | ||
if (!options.code) { | ||
throw new Error('Error code required.'); | ||
} | ||
if (!options.message) { | ||
@@ -765,2 +802,8 @@ throw new Error('Error message required.'); | ||
* @type {string} | ||
* @description A code that corresponds to specific errors. | ||
*/ | ||
this.code = options.code; | ||
/** | ||
* @type {string} | ||
* @description A short description of the error. | ||
@@ -808,3 +851,3 @@ */ | ||
},{"./enumerate":16}],18:[function(_dereq_,module,exports){ | ||
},{"./enumerate":17}],19:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -815,2 +858,3 @@ | ||
var events = _dereq_('../shared/events'); | ||
var errors = _dereq_('../shared/errors'); | ||
var constants = _dereq_('../shared/constants'); | ||
@@ -940,6 +984,3 @@ var uuid = _dereq_('../../uuid'); | ||
if (this._onCompleteCallback) { | ||
this._onCompleteCallback(new BraintreeError({ | ||
type: BraintreeError.types.CUSTOMER, | ||
message: constants.FRAME_CLOSED_ERROR_MESSAGE | ||
})); | ||
this._onCompleteCallback(new BraintreeError(errors.FRAME_CLOSED)); | ||
} | ||
@@ -954,3 +995,3 @@ } | ||
},{"../../bus":11,"../../error":17,"../../uuid":31,"../shared/constants":24,"../shared/events":25,"./popup":21,"iframer":2}],19:[function(_dereq_,module,exports){ | ||
},{"../../bus":12,"../../error":18,"../../uuid":33,"../shared/constants":25,"../shared/errors":26,"../shared/events":27,"./popup":22,"iframer":2}],20:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -970,3 +1011,3 @@ | ||
},{"./frame-service":18}],20:[function(_dereq_,module,exports){ | ||
},{"./frame-service":19}],21:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -985,3 +1026,3 @@ | ||
},{"../../shared/constants":24,"./position":23}],21:[function(_dereq_,module,exports){ | ||
},{"../../shared/constants":25,"./position":24}],22:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -993,3 +1034,3 @@ | ||
},{"./open":22}],22:[function(_dereq_,module,exports){ | ||
},{"./open":23}],23:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -1009,3 +1050,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{"./compose-options":20}],23:[function(_dereq_,module,exports){ | ||
},{"./compose-options":21}],24:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -1041,3 +1082,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{"../../shared/constants":24}],24:[function(_dereq_,module,exports){ | ||
},{"../../shared/constants":25}],25:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1051,3 +1092,2 @@ | ||
DISPATCH_FRAME_NAME: 'dispatch', | ||
FRAME_CLOSED_ERROR_MESSAGE: 'Frame closed before tokenization could occur.', | ||
POPUP_BASE_OPTIONS: 'resizable,scrollbars,height=' + POPUP_HEIGHT + ',width=' + POPUP_WIDTH, | ||
@@ -1060,5 +1100,18 @@ POPUP_WIDTH: POPUP_WIDTH, | ||
},{}],25:[function(_dereq_,module,exports){ | ||
},{}],26:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('../../error'); | ||
module.exports = { | ||
FRAME_CLOSED: { | ||
type: BraintreeError.types.CUSTOMER, | ||
code: 'FRAME_CLOSED', | ||
message: 'Frame closed before tokenization could occur.' | ||
} | ||
}; | ||
},{"../../error":18}],27:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var enumerate = _dereq_('../../enumerate'); | ||
@@ -1071,3 +1124,3 @@ | ||
},{"../../enumerate":16}],26:[function(_dereq_,module,exports){ | ||
},{"../../enumerate":17}],28:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1079,3 +1132,3 @@ | ||
},{}],27:[function(_dereq_,module,exports){ | ||
},{}],29:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1089,3 +1142,3 @@ | ||
},{}],28:[function(_dereq_,module,exports){ | ||
},{}],30:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1106,3 +1159,3 @@ | ||
},{}],29:[function(_dereq_,module,exports){ | ||
},{}],31:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -1146,3 +1199,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],30:[function(_dereq_,module,exports){ | ||
},{}],32:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -1238,3 +1291,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],31:[function(_dereq_,module,exports){ | ||
},{}],33:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1253,9 +1306,10 @@ | ||
},{}],32:[function(_dereq_,module,exports){ | ||
},{}],34:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var frameService = _dereq_('../../lib/frame-service/external'); | ||
var frameServiceErrors = _dereq_('../../lib/frame-service/shared/errors'); | ||
var BraintreeError = _dereq_('../../lib/error'); | ||
var once = _dereq_('../../lib/once'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var VERSION = "3.0.0-beta.12"; | ||
var constants = _dereq_('../shared/constants'); | ||
@@ -1266,5 +1320,7 @@ var INTEGRATION_TIMEOUT_MS = _dereq_('../../lib/constants').INTEGRATION_TIMEOUT_MS; | ||
var deferred = _dereq_('../../lib/deferred'); | ||
var errors = _dereq_('../shared/errors'); | ||
var getCountry = _dereq_('../shared/get-country'); | ||
var convertMethodsToError = _dereq_('../../lib/convert-methods-to-error'); | ||
var querystring = _dereq_('../../lib/querystring'); | ||
var sharedErrors = _dereq_('../../errors'); | ||
@@ -1290,2 +1346,11 @@ /** | ||
* @property {string} details.shippingAddress.countryCode 2 character country code (e.g. US). | ||
* @property {?object} details.billingAddress User's billing address details. | ||
* You will also need to enable the PayPal Billing Address Request feature in your PayPal account. | ||
* To enable this feature, [contact PayPal](https://developers.braintreepayments.com/support/guides/paypal/setup-guide#contacting-paypal-support). | ||
* @property {string} details.billingAddress.line1 Street number and name. | ||
* @property {string} details.billingAddress.line2 Extended address. | ||
* @property {string} details.billingAddress.city City or locality. | ||
* @property {string} details.billingAddress.state State or region. | ||
* @property {string} details.billingAddress.postalCode Postal code. | ||
* @property {string} details.billingAddress.countryCode 2 character country code (e.g. US). | ||
*/ | ||
@@ -1360,2 +1425,17 @@ | ||
* @param {callback} callback The second argument, <code>data</code>, is a {@link PayPal~tokenizePayload|tokenizePayload}. | ||
* @example | ||
* button.addEventListener('click', function () { | ||
* // Because PayPal tokenization opens a popup, this must be called | ||
* // as a result of a user action, such as a button click. | ||
* paypalInstance.tokenize({ | ||
* flow: 'vault' // Required | ||
* // Any other tokenization options | ||
* }, function (tokenizeErr, payload) { | ||
* if (tokenizeErr) { | ||
* // Handle tokenization errors or premature flow closure | ||
* return; | ||
* } | ||
* // Submit payload.nonce to your server | ||
* }); | ||
* }); | ||
* @returns {PayPal~tokenizeReturn} A handle to close the PayPal checkout frame. | ||
@@ -1368,3 +1448,4 @@ */ | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'tokenize must include a callback function.' | ||
@@ -1379,6 +1460,3 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'Another tokenization request is active.' | ||
})); | ||
callback(new BraintreeError(errors.TOKENIZATION_REQUEST_ACTIVE)); | ||
} else { | ||
@@ -1408,6 +1486,7 @@ this._authorizationInProgress = true; | ||
if (err) { | ||
if (err.message === constants.FRAME_CLOSED_ERROR_MESSAGE) { | ||
if (err.code === frameServiceErrors.FRAME_CLOSED.code) { | ||
analytics.sendEvent(client, 'web.paypal.tokenization.closed.by-user'); | ||
} | ||
callback(err); | ||
callback(new BraintreeError(err)); | ||
} else { | ||
@@ -1430,4 +1509,5 @@ this._tokenizePayPal(options, params, callback); | ||
callback(err instanceof BraintreeError ? err : new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: 'Could not tokenize user\'s PayPal account.', | ||
type: errors.ACCOUNT_TOKENIZATION_FAILED.type, | ||
code: errors.ACCOUNT_TOKENIZATION_FAILED.code, | ||
message: errors.ACCOUNT_TOKENIZATION_FAILED.message, | ||
details: err | ||
@@ -1493,6 +1573,3 @@ })); | ||
} else { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'PayPal flow property is invalid or missing.' | ||
})); | ||
callback(new BraintreeError(errors.PAYPAL_FLOW_OPTION_REQUIRED)); | ||
return; | ||
@@ -1510,4 +1587,5 @@ } | ||
callback(err instanceof BraintreeError ? err : new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: constants.AUTH_INIT_ERROR_MESSAGE, | ||
type: errors.PAYPAL_FLOW_FAILED.type, | ||
code: errors.PAYPAL_FLOW_FAILED.code, | ||
message: errors.PAYPAL_FLOW_FAILED.message, | ||
details: err | ||
@@ -1594,12 +1672,14 @@ })); | ||
},{"../../lib/analytics":7,"../../lib/constants":12,"../../lib/convert-methods-to-error":13,"../../lib/deferred":15,"../../lib/error":17,"../../lib/frame-service/external":19,"../../lib/methods":27,"../../lib/once":28,"../../lib/querystring":30,"../shared/constants":34,"../shared/get-country":35}],33:[function(_dereq_,module,exports){ | ||
},{"../../errors":6,"../../lib/analytics":8,"../../lib/constants":13,"../../lib/convert-methods-to-error":14,"../../lib/deferred":16,"../../lib/error":18,"../../lib/frame-service/external":20,"../../lib/frame-service/shared/errors":26,"../../lib/methods":29,"../../lib/once":30,"../../lib/querystring":32,"../shared/constants":36,"../shared/errors":37,"../shared/get-country":38}],35:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
/** @module braintree-web/paypal */ | ||
var PayPal = _dereq_('./external/paypal'); | ||
var analytics = _dereq_('../lib/analytics'); | ||
var BraintreeError = _dereq_('../lib/error'); | ||
var browserDetection = _dereq_('../lib/browser-detection'); | ||
var BraintreeError = _dereq_('../lib/error'); | ||
var analytics = _dereq_('../lib/analytics'); | ||
var deferred = _dereq_('../lib/deferred'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var errors = _dereq_('./shared/errors'); | ||
var PayPal = _dereq_('./external/paypal'); | ||
var sharedErrors = _dereq_('../errors'); | ||
var VERSION = "3.0.0-beta.12"; | ||
@@ -1612,2 +1692,10 @@ /** | ||
* @param {callback} callback The second argument, `data`, is the {@link PayPal} instance. | ||
* @example | ||
* braintree.paypal.create( | ||
* client: clientInstance | ||
* }, function (createErr, paypalInstance) { | ||
* if (createErr) { | ||
* // Handle any creation errors here | ||
* } | ||
* } | ||
* @returns {void} | ||
@@ -1620,3 +1708,4 @@ */ | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'create must include a callback function.' | ||
@@ -1630,3 +1719,4 @@ }); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type, | ||
code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code, | ||
message: 'options.client is required when instantiating PayPal.' | ||
@@ -1642,3 +1732,4 @@ })); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INCOMPATIBLE_VERSIONS.type, | ||
code: sharedErrors.INCOMPATIBLE_VERSIONS.code, | ||
message: 'Client (version ' + clientVersion + ') and PayPal (version ' + VERSION + ') components must be from the same SDK version.' | ||
@@ -1650,6 +1741,3 @@ })); | ||
if (config.gatewayConfiguration.paypalEnabled !== true) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'PayPal is not enabled for this merchant.' | ||
})); | ||
callback(new BraintreeError(errors.PAYPAL_NOT_ENABLED)); | ||
return; | ||
@@ -1659,6 +1747,3 @@ } | ||
if (!_isBrowserSupported()) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.CUSTOMER, | ||
message: 'Browser is not supported.' | ||
})); | ||
callback(new BraintreeError(errors.BROWSER_NOT_SUPPORTED)); | ||
return; | ||
@@ -1688,3 +1773,3 @@ } | ||
},{"../lib/analytics":7,"../lib/browser-detection":8,"../lib/deferred":15,"../lib/error":17,"./external/paypal":32}],34:[function(_dereq_,module,exports){ | ||
},{"../errors":6,"../lib/analytics":8,"../lib/browser-detection":9,"../lib/deferred":16,"../lib/error":18,"./external/paypal":34,"./shared/errors":37}],36:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1704,5 +1789,43 @@ | ||
},{}],35:[function(_dereq_,module,exports){ | ||
},{}],37:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('../../lib/error'); | ||
module.exports = { | ||
PAYPAL_NOT_ENABLED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'PAYPAL_NOT_ENABLED', | ||
message: 'PayPal is not enabled for this merchant.' | ||
}, | ||
TOKENIZATION_REQUEST_ACTIVE: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'TOKENIZATION_REQUEST_ACTIVE', | ||
message: 'Another tokenization request is active.' | ||
}, | ||
ACCOUNT_TOKENIZATION_FAILED: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'ACCOUNT_TOKENIZATION_FAILED', | ||
message: 'Could not tokenize user\'s PayPal account.' | ||
}, | ||
PAYPAL_FLOW_FAILED: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'PAYPAL_FLOW_FAILED', | ||
message: 'Could not initialize PayPal flow.' | ||
}, | ||
PAYPAL_FLOW_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'PAYPAL_FLOW_OPTION_REQUIRED', | ||
message: 'PayPal flow property is invalid or missing.' | ||
}, | ||
BROWSER_NOT_SUPPORTED: { | ||
type: BraintreeError.types.CUSTOMER, | ||
code: 'BROWSER_NOT_SUPPORTED', | ||
message: 'Browser is not supported.' | ||
} | ||
}; | ||
},{"../../lib/error":18}],38:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var lookupTable = { | ||
@@ -1755,3 +1878,3 @@ us: 'en_us', | ||
},{}]},{},[33])(33) | ||
},{}]},{},[35])(35) | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).paypal=e()}}(function(){var e;return function t(e,n,r){function i(a,s){if(!n[a]){if(!e[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,n,r){(function(t){"use strict";!function(i,o){"object"==typeof r&&"undefined"!=typeof n?n.exports=o("undefined"==typeof t?i:t):"function"==typeof e&&e.amd?e([],function(){return o(i)}):i.framebus=o(i)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(E.push(e),!0)}function n(e){var t,n={};for(t in v)v.hasOwnProperty(t)&&(n[t]=v[t]);return n._origin=e||"*",n}function r(e){var t,n,r=a(this);return s(e)?!1:s(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=c(e,n,r),t===!1?!1:(y(b.top,t,r),!0))}function i(e,t){var n=a(this);return g(e,t,n)?!1:(w[n]=w[n]||{},w[n][e]=w[n][e]||[],w[n][e].push(t),!0)}function o(e,t){var n,r,i=a(this);if(g(e,t,i))return!1;if(r=w[i]&&w[i][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function a(e){return e&&e._origin||"*"}function s(e){return"string"!=typeof e}function c(e,t,n){var r=!1,i={event:e,origin:n},o=t[t.length-1];"function"==typeof o&&(i.reply=_(o,n),t=t.slice(0,-1)),i.args=t;try{r=x+JSON.stringify(i)}catch(a){throw new Error("Could not stringify event: "+a.message)}return r}function l(e){var t,n,r,i;if(e.data.slice(0,x.length)!==x)return!1;try{t=JSON.parse(e.data.slice(x.length))}catch(o){return!1}return null!=t.reply&&(n=e.origin,r=e.source,i=t.reply,t.reply=function(e){var t=c(i,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function u(t){b||(b=t||e,b.addEventListener?b.addEventListener("message",f,!1):b.attachEvent?b.attachEvent("onmessage",f):null===b.onmessage?b.onmessage=f:b=null)}function p(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function f(e){var t;s(e.data)||(t=l(e),t&&(d("*",t.event,t.args,e),d(e.origin,t.event,t.args,e),m(e.data,t.origin,e.source)))}function d(e,t,n,r){var i;if(w[e]&&w[e][t])for(i=0;i<w[e][t].length;i++)w[e][t][i].apply(r,n)}function h(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function y(e,t,n){var r;try{for(e.postMessage(t,n),h(e)&&y(e.opener.top,t,n),r=0;r<e.frames.length;r++)y(e.frames[r],t,n)}catch(i){}}function m(e,t,n){var r,i;for(r=E.length-1;r>=0;r--)i=E[r],i.closed===!0?E=E.slice(r,1):n!==i&&y(i.top,e,t)}function _(e,t){function n(i,o){e(i,o),v.target(t).unsubscribe(r,n)}var r=p();return v.target(t).subscribe(r,n),r}function g(e,t,n){return s(e)?!0:"function"!=typeof t?!0:s(n)?!0:!1}var b,v,E=[],w={},x="/*framebus*/";return u(),v={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:i,sub:i,on:i,unsubscribe:o,unsub:o,off:o}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),i=e("./lib/default-attributes"),o=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=o({},i,e);return n.style&&"string"!=typeof n.style&&(o(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":3,"./lib/default-attributes":4,"./lib/set-attributes":5}],3:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],4:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],5:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],6:[function(e,t,n){"use strict";function r(e,t){var n,r=t?o(t):{},s=i(e.authorization).attrs,c=o(e.analyticsMetadata);r.braintreeLibraryVersion=a.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(c[n]=r._meta[n]);return r._meta=c,s.tokenizationKey?r.tokenizationKey=s.tokenizationKey:r.authorizationFingerprint=s.authorizationFingerprint,r}var i=e("./create-authorization-data"),o=e("./json-clone"),a=e("./constants");t.exports=r},{"./constants":12,"./create-authorization-data":14,"./json-clone":26}],7:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function i(e,t,n){var i=e.getConfiguration(),s=e._request,c=r(Date.now()),l=i.gatewayConfiguration.analytics.url,u={analytics:[{kind:t,timestamp:c}]};s({url:l,method:"post",data:a(i,u),timeout:o.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var o=e("./constants"),a=e("./add-metadata");t.exports={sendEvent:i}},{"./add-metadata":6,"./constants":12}],8:[function(e,t,n){(function(e){"use strict";function n(t){return t=t||e.navigator.userAgent,t.indexOf("Opera Mini")>-1}function r(t){return t=t||e.navigator.userAgent,-1!==t.indexOf("MSIE")?parseInt(t.replace(/.*MSIE ([0-9]+)\..*/,"$1"),10):/Trident.*rv:11/.test(t)?11:null}function i(t){return t=t||e.location.protocol,"https:"===t}t.exports={isOperaMini:n,getIEVersion:r,isHTTPS:i}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],9:[function(e,t,n){"use strict";function r(e,t){var n,r,o=document.createElement("a");return o.href=t,r="https:"===o.protocol?o.host.replace(/:443$/,""):"http:"===o.protocol?o.host.replace(/:80$/,""):o.host,n=o.protocol+"//"+r,n===e||i.test(e)}var i=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],10:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":16}],11:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new s({type:s.types.INTERNAL,message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var i=e("framebus"),o=e("./events"),a=e("./check-origin").checkOrigin,s=e("../error");r.prototype.on=function(e,t){var n,r,o=t,s=this;this._isDestroyed||(this.merchantUrl&&(o=function(){a(this.origin,s.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=o,this._log("on",r),i.on.apply(i,r),this._listeners.push({eventName:e,handler:o,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),i.emit.apply(i,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),i.off.apply(i,t))},r.prototype.off=function(e,t){var n,r,i=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(i=r.handler);this._offDirect(e,i)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=o,t.exports=r},{"../error":17,"./check-origin":9,"./events":10,framebus:1}],12:[function(e,t,n){"use strict";var r="3.0.0-beta.11",i="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:i,BRAINTREE_LIBRARY_VERSION:"braintree/"+i+"/"+r}},{}],13:[function(e,t,n){"use strict";var r=e("./error");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:r.types.MERCHANT,message:t+" cannot be called after teardown."})}})}},{"./error":17}],14:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function i(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function o(e){var t,n,o={attrs:{},configUrl:""};return r(e)?(n=i(e),o.attrs.tokenizationKey=e,o.configUrl=s[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(a(e)),o.attrs.authorizationFingerprint=t.authorizationFingerprint,o.configUrl=t.configUrl),o}var a=e("../lib/polyfill").atob,s={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=o},{"../lib/polyfill":29}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],16:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],17:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=e.message,this.type=e.type,this.details=e.details}var i=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":16}],18:[function(e,t,n){"use strict";function r(e){if(!e)throw new Error("Valid configuration is required");if(f.forEach(function(t){if(!e.hasOwnProperty(t))throw new Error("A valid frame "+t+" must be provided")}),!/^[\w_]+$/.test(e.name))throw new Error("A valid frame name must be provided")}function i(e){r(e),this._serviceId=l().replace(/-/g,""),this._options={name:e.name+"_"+this._serviceId,dispatchFrameUrl:e.dispatchFrameUrl,openFrameUrl:e.openFrameUrl},this._state=e.state,this._bus=new a({channel:this._serviceId}),this._setBusEvents()}var o=e("./popup"),a=e("../../bus"),s=e("../shared/events"),c=e("../shared/constants"),l=e("../../uuid"),u=e("iframer"),p=e("../../error"),f=["name","dispatchFrameUrl","openFrameUrl"];i.prototype.initialize=function(e){var t=function(){e(),this._bus.off(s.DISPATCH_FRAME_READY,t)}.bind(this);this._bus.on(s.DISPATCH_FRAME_READY,t),this._writeDispatchFrame()},i.prototype._writeDispatchFrame=function(){var e=c.DISPATCH_FRAME_NAME+"_"+this._serviceId,t=this._options.dispatchFrameUrl;this._dispatchFrame=u({name:e,src:t,height:0,width:0}),document.body.appendChild(this._dispatchFrame)},i.prototype._setBusEvents=function(){this._bus.on(s.DISPATCH_FRAME_REPORT,function(e){this.close(),this._onCompleteCallback&&this._onCompleteCallback.call(null,e.err,e.payload),this._onCompleteCallback=null}.bind(this)),this._bus.on(a.events.CONFIGURATION_REQUEST,function(e){e(this._state)}.bind(this))},i.prototype.open=function(e){this._onCompleteCallback=e,this._frame=o.open(this._options),this._pollForPopupClose()},i.prototype.redirect=function(e){this._frame&&!this.isFrameClosed()&&(this._frame.location.href=e)},i.prototype.close=function(){this.isFrameClosed()||this._frame.close()},i.prototype.teardown=function(){this.close(),this._dispatchFrame.parentNode.removeChild(this._dispatchFrame),this._dispatchFrame=null,this._cleanupFrame()},i.prototype.isFrameClosed=function(){return null==this._frame||this._frame.closed},i.prototype._cleanupFrame=function(){this._frame=null,clearInterval(this._popupInterval),this._popupInterval=null},i.prototype._pollForPopupClose=function(){return this._popupInterval=setInterval(function(){this.isFrameClosed()&&(this._cleanupFrame(),this._onCompleteCallback&&this._onCompleteCallback(new p({type:p.types.CUSTOMER,message:c.FRAME_CLOSED_ERROR_MESSAGE})))}.bind(this),c.POPUP_POLL_INTERVAL),this._popupInterval},t.exports=i},{"../../bus":11,"../../error":17,"../../uuid":31,"../shared/constants":24,"../shared/events":25,"./popup":21,iframer:2}],19:[function(e,t,n){"use strict";var r=e("./frame-service");t.exports={create:function(e,t){var n=new r(e);n.initialize(function(){t(n)})}}},{"./frame-service":18}],20:[function(e,t,n){"use strict";var r=e("../../shared/constants"),i=e("./position");t.exports=function(){return[r.POPUP_BASE_OPTIONS,"top="+i.top(),"left="+i.left()].join(",")}},{"../../shared/constants":24,"./position":23}],21:[function(e,t,n){"use strict";t.exports={open:e("./open")}},{"./open":22}],22:[function(e,t,n){(function(n){"use strict";var r=e("./compose-options");t.exports=function(e){return n.open(e.openFrameUrl,e.name,r())}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./compose-options":20}],23:[function(e,t,n){(function(n){"use strict";function r(){var e=n.outerHeight||document.documentElement.clientHeight,t=null==n.screenY?n.screenTop:n.screenY;return o(e,a.POPUP_HEIGHT,t)}function i(){var e=n.outerWidth||document.documentElement.clientWidth,t=null==n.screenX?n.screenLeft:n.screenX;return o(e,a.POPUP_WIDTH,t)}function o(e,t,n){return(e-t)/2+n}var a=e("../../shared/constants");t.exports={top:r,left:i,center:o}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../shared/constants":24}],24:[function(e,t,n){"use strict";var r=535,i=450;t.exports={DISPATCH_FRAME_NAME:"dispatch",FRAME_CLOSED_ERROR_MESSAGE:"Frame closed before tokenization could occur.",POPUP_BASE_OPTIONS:"resizable,scrollbars,height="+r+",width="+i,POPUP_WIDTH:i,POPUP_HEIGHT:r,POPUP_POLL_INTERVAL:100,POPUP_CLOSE_TIMEOUT:100}},{}],25:[function(e,t,n){"use strict";var r=e("../../enumerate");t.exports=r(["DISPATCH_FRAME_READY","DISPATCH_FRAME_REPORT"],"frameService:")},{"../../enumerate":16}],26:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],27:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],28:[function(e,t,n){"use strict";function r(e){var t=!1;return function(){t||(t=!0,e.apply(null,arguments))}}t.exports=r},{}],29:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,i,o,a,s,c,l=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",p="";if(!l.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");c=0;do i=u.indexOf(e.charAt(c++)),o=u.indexOf(e.charAt(c++)),a=u.indexOf(e.charAt(c++)),s=u.indexOf(e.charAt(c++)),t=(63&i)<<2|o>>4&3,n=(15&o)<<4|a>>2&15,r=(3&a)<<6|63&s,p+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(c<e.length);return p}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],30:[function(e,t,n){(function(e){"use strict";function n(e){var t;for(t in e)if(e.hasOwnProperty(t))return!0;return!1}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&"[object Array]"===Object.prototype.toString.call(e)||!1}function i(t){var n,r;return t=t||e.location.href,/\?/.test(t)?(n=t.replace(/#.*$/,"").replace(/^.*\?/,"").split("&"),r=n.reduce(function(e,t){var n=t.split("="),r=decodeURIComponent(n[0]),i=decodeURIComponent(n[1]);return e[r]=i,e},{})):{}}function o(e,t){var n,i,a,s=[];for(a in e)e.hasOwnProperty(a)&&(i=e[a],n=t?r(e)?t+"[]":t+"["+a+"]":a,"object"==typeof i?s.push(o(i,n)):s.push(encodeURIComponent(n)+"="+encodeURIComponent(i)));return s.join("&")}function a(e,t){return e=e||"",null!=t&&"object"==typeof t&&n(t)&&(e+=-1===e.indexOf("?")?"?":"",e+=-1!==e.indexOf("=")?"&":"",e+=o(t)),e}t.exports={parse:i,stringify:o,queryify:a}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],31:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}],32:[function(e,t,n){"use strict";function r(e){this._client=e.client,this._assetsUrl=e.client.getConfiguration().gatewayConfiguration.paypal.assetsUrl+"/web/"+s,this._authorizationInProgress=!1}var i=e("../../lib/frame-service/external"),o=e("../../lib/error"),a=e("../../lib/once"),s="3.0.0-beta.11",c=e("../shared/constants"),l=e("../../lib/constants").INTEGRATION_TIMEOUT_MS,u=e("../../lib/analytics"),p=e("../../lib/methods"),f=e("../../lib/deferred"),d=e("../shared/get-country"),h=e("../../lib/convert-methods-to-error"),y=e("../../lib/querystring");r.prototype._initialize=function(e){var t=this._client,n=setTimeout(function(){u.sendEvent(t,"web.paypal.load.timed-out")},l);i.create({name:c.LANDING_FRAME_NAME,dispatchFrameUrl:this._assetsUrl+"/html/dispatch-frame.min.html",openFrameUrl:this._assetsUrl+"/html/paypal-landing-frame.min.html"},function(r){this._frameService=r,clearTimeout(n),u.sendEvent(t,"web.paypal.load.succeeded"),e()}.bind(this))},r.prototype.tokenize=function(e,t){var n=this._client;if("function"!=typeof t)throw new o({type:o.types.MERCHANT,message:"tokenize must include a callback function."});return t=a(f(t)),this._authorizationInProgress?(u.sendEvent(n,"web.paypal.tokenization.error.already-opened"),t(new o({type:o.types.MERCHANT,message:"Another tokenization request is active."}))):(this._authorizationInProgress=!0,u.sendEvent(n,"web.paypal.tokenization.opened"),this._navigateFrameToAuth(e,t),this._frameService.open(this._createFrameServiceCallback(e,t))),{close:function(){u.sendEvent(n,"web.paypal.tokenization.closed.by-merchant"),this._frameService.close()}.bind(this)}},r.prototype._createFrameServiceCallback=function(e,t){var n=this._client;return function(r,i){this._authorizationInProgress=!1,r?(r.message===c.FRAME_CLOSED_ERROR_MESSAGE&&u.sendEvent(n,"web.paypal.tokenization.closed.by-user"),t(r)):this._tokenizePayPal(e,i,t)}.bind(this)},r.prototype._tokenizePayPal=function(e,t,n){var r=this._client;r.request({endpoint:"payment_methods/paypal_accounts",method:"post",data:this._formatTokenizeData(e,t)},function(e,t){e?(u.sendEvent(r,"web.paypal.tokenization.failed"),n(e instanceof o?e:new o({type:o.types.NETWORK,message:"Could not tokenize user's PayPal account.",details:e}))):(u.sendEvent(r,"web.paypal.tokenization.success"),n(null,this._formatTokenizePayload(t)))}.bind(this))},r.prototype._formatTokenizePayload=function(e){var t,n={};return e.paypalAccounts&&(n=e.paypalAccounts[0]),t={nonce:n.nonce,details:{},type:n.type},n.details&&n.details.payerInfo&&(t.details=n.details.payerInfo),t},r.prototype._formatTokenizeData=function(e,t){var n=this._client.getConfiguration().gatewayConfiguration,r={paypalAccount:{correlationId:this._frameService._serviceId}};return t.ba_token?r.paypalAccount.billingAgreementToken=t.ba_token:(r.paypalAccount.paymentToken=t.paymentId,r.paypalAccount.payerId=t.PayerID,r.paypalAccount.unilateral=n.paypal.unvettedMerchant,e.hasOwnProperty("intent")&&(r.paypalAccount.intent=e.intent)),r},r.prototype._navigateFrameToAuth=function(e,t){var n=this._client,r="paypal_hermes/";if("checkout"===e.flow)r+="create_payment_resource";else{if("vault"!==e.flow)return void t(new o({type:o.types.MERCHANT,message:"PayPal flow property is invalid or missing."}));r+="setup_billing_agreement"}n.request({endpoint:r,method:"post",data:this._formatPaymentResourceData(e)},function(n,r){var i;n?(t(n instanceof o?n:new o({type:o.types.NETWORK,message:c.AUTH_INIT_ERROR_MESSAGE,details:n})),this._frameService.close()):(i="checkout"===e.flow?r.paymentResource.redirectUrl:r.agreementSetup.approvalUrl,"commit"===e.useraction&&(i=y.queryify(i,{useraction:"commit"})),this._frameService.redirect(i))}.bind(this))},r.prototype._formatPaymentResourceData=function(e){var t,n=this._client.getConfiguration().gatewayConfiguration,r=this._frameService._serviceId,i={returnUrl:n.paypal.assetsUrl+"/web/"+s+"/html/paypal-redirect-frame.min.html?channel="+r,cancelUrl:n.paypal.assetsUrl+"/web/"+s+"/html/paypal-cancel-frame.min.html?channel="+r,correlationId:r,experienceProfile:{brandName:e.displayName||n.paypal.displayName,localeCode:d(e.locale),noShipping:(!e.enableShippingAddress).toString(),addressOverride:e.shippingAddressEditable===!1}};if("checkout"===e.flow){i.amount=parseFloat(e.amount).toFixed(2),i.currencyIsoCode=e.currency,i.offerPaypalCredit=e.offerCredit===!0,e.hasOwnProperty("intent")&&(i.intent=e.intent);for(t in e.shippingAddressOverride)e.shippingAddressOverride.hasOwnProperty(t)&&(i[t]=e.shippingAddressOverride[t])}else i.shippingAddress=e.shippingAddressOverride,e.billingAgreementDescription&&(i.description=e.billingAgreementDescription);return i},r.prototype.teardown=function(e){this._frameService.teardown(),h(this,p(r.prototype)),u.sendEvent(this._client,"web.paypal.teardown-completed"),"function"==typeof e&&(e=f(e))()},t.exports=r},{"../../lib/analytics":7,"../../lib/constants":12,"../../lib/convert-methods-to-error":13,"../../lib/deferred":15,"../../lib/error":17,"../../lib/frame-service/external":19,"../../lib/methods":27,"../../lib/once":28,"../../lib/querystring":30,"../shared/constants":34,"../shared/get-country":35}],33:[function(e,t,n){"use strict";function r(e,t){var n,r,a;if(!t)throw new s({type:s.types.MERCHANT,message:"create must include a callback function."});return t=l(t),null==e.client?void t(new s({type:s.types.MERCHANT,message:"options.client is required when instantiating PayPal."})):(n=e.client.getConfiguration(),a=n.analyticsMetadata.sdkVersion,a!==u?void t(new s({type:s.types.MERCHANT,message:"Client (version "+a+") and PayPal (version "+u+") components must be from the same SDK version."})):n.gatewayConfiguration.paypalEnabled!==!0?void t(new s({type:s.types.MERCHANT,message:"PayPal is not enabled for this merchant."})):i()?(c.sendEvent(e.client,"web.paypal.initialized"),r=new o(e),void r._initialize(function(){t(null,r)})):void t(new s({type:s.types.CUSTOMER,message:"Browser is not supported."})))}function i(){return!a.isOperaMini()}var o=e("./external/paypal"),a=e("../lib/browser-detection"),s=e("../lib/error"),c=e("../lib/analytics"),l=e("../lib/deferred"),u="3.0.0-beta.11";t.exports={create:r,VERSION:u}},{"../lib/analytics":7,"../lib/browser-detection":8,"../lib/deferred":15,"../lib/error":17,"./external/paypal":32}],34:[function(e,t,n){"use strict";var r=535,i=450;t.exports={AUTH_INIT_ERROR_MESSAGE:"Could not initialize PayPal flow.",LANDING_FRAME_NAME:"braintreepaypallanding",POPUP_BASE_OPTIONS:"resizable,scrollbars,height="+r+",width="+i,POPUP_WIDTH:i,POPUP_HEIGHT:r,POPUP_POLL_INTERVAL:100}},{}],35:[function(e,t,n){"use strict";function r(e){var t=e?e.toLowerCase().replace(/-/g,"_"):"us";return-1!==t.indexOf("_")&&(t=t.split("_")[1]),t=i[t]?t:"us","uk"===t&&(t="gb"),t}var i={us:"en_us",gb:"en_uk",uk:"en_uk",de:"de_de",fr:"fr_fr",it:"it_it",es:"es_es",ca:"en_ca",au:"en_au",at:"de_de",be:"en_us",ch:"de_de",dk:"da_dk",nl:"nl_nl",no:"no_no",pl:"pl_pl",se:"sv_se",tr:"tr_tr",bg:"en_us",cy:"en_us",hr:"en_us",is:"en_us",kh:"en_us",mt:"en_us",my:"en_us",ru:"ru_ru"};t.exports=r},{}]},{},[33])(33)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).paypal=e()}}(function(){var e;return function t(e,n,r){function o(a,s){if(!n[a]){if(!e[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return o(n?n:t)},u,u.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,n,r){(function(t){"use strict";!function(o,i){"object"==typeof r&&"undefined"!=typeof n?n.exports=i("undefined"==typeof t?o:t):"function"==typeof e&&e.amd?e([],function(){return i(o)}):o.framebus=i(o)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(b.push(e),!0)}function n(e){var t,n={};for(t in g)g.hasOwnProperty(t)&&(n[t]=g[t]);return n._origin=e||"*",n}function r(e){var t,n,r=a(this);return s(e)?!1:s(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=c(e,n,r),t===!1?!1:(_(A.top,t,r),!0))}function o(e,t){var n=a(this);return E(e,t,n)?!1:(v[n]=v[n]||{},v[n][e]=v[n][e]||[],v[n][e].push(t),!0)}function i(e,t){var n,r,o=a(this);if(E(e,t,o))return!1;if(r=v[o]&&v[o][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function a(e){return e&&e._origin||"*"}function s(e){return"string"!=typeof e}function c(e,t,n){var r=!1,o={event:e,origin:n},i=t[t.length-1];"function"==typeof i&&(o.reply=m(i,n),t=t.slice(0,-1)),o.args=t;try{r=O+JSON.stringify(o)}catch(a){throw new Error("Could not stringify event: "+a.message)}return r}function l(e){var t,n,r,o;if(e.data.slice(0,O.length)!==O)return!1;try{t=JSON.parse(e.data.slice(O.length))}catch(i){return!1}return null!=t.reply&&(n=e.origin,r=e.source,o=t.reply,t.reply=function(e){var t=c(o,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function u(t){A||(A=t||e,A.addEventListener?A.addEventListener("message",f,!1):A.attachEvent?A.attachEvent("onmessage",f):null===A.onmessage?A.onmessage=f:A=null)}function p(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function f(e){var t;s(e.data)||(t=l(e),t&&(d("*",t.event,t.args,e),d(e.origin,t.event,t.args,e),y(e.data,t.origin,e.source)))}function d(e,t,n,r){var o;if(v[e]&&v[e][t])for(o=0;o<v[e][t].length;o++)v[e][t][o].apply(r,n)}function h(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function _(e,t,n){var r;try{for(e.postMessage(t,n),h(e)&&_(e.opener.top,t,n),r=0;r<e.frames.length;r++)_(e.frames[r],t,n)}catch(o){}}function y(e,t,n){var r,o;for(r=b.length-1;r>=0;r--)o=b[r],o.closed===!0?b=b.slice(r,1):n!==o&&_(o.top,e,t)}function m(e,t){function n(o,i){e(o,i),g.target(t).unsubscribe(r,n)}var r=p();return g.target(t).subscribe(r,n),r}function E(e,t,n){return s(e)?!0:"function"!=typeof t?!0:s(n)?!0:!1}var A,g,b=[],v={},O="/*framebus*/";return u(),g={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:o,sub:o,on:o,unsubscribe:i,unsub:i,off:i}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),o=e("./lib/default-attributes"),i=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=i({},o,e);return n.style&&"string"!=typeof n.style&&(i(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":3,"./lib/default-attributes":4,"./lib/set-attributes":5}],3:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],4:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],5:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],6:[function(e,t,n){"use strict";var r=e("./lib/error");t.exports={CALLBACK_REQUIRED:{type:r.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:r.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:r.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:r.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":18}],7:[function(e,t,n){"use strict";function r(e,t){var n,r=t?i(t):{},s=o(e.authorization).attrs,c=i(e.analyticsMetadata);r.braintreeLibraryVersion=a.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(c[n]=r._meta[n]);return r._meta=c,s.tokenizationKey?r.tokenizationKey=s.tokenizationKey:r.authorizationFingerprint=s.authorizationFingerprint,r}var o=e("./create-authorization-data"),i=e("./json-clone"),a=e("./constants");t.exports=r},{"./constants":13,"./create-authorization-data":15,"./json-clone":28}],8:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function o(e,t,n){var o=e.getConfiguration(),s=e._request,c=r(Date.now()),l=o.gatewayConfiguration.analytics.url,u={analytics:[{kind:t,timestamp:c}]};s({url:l,method:"post",data:a(o,u),timeout:i.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var i=e("./constants"),a=e("./add-metadata");t.exports={sendEvent:o}},{"./add-metadata":7,"./constants":13}],9:[function(e,t,n){(function(e){"use strict";function n(t){return t=t||e.navigator.userAgent,t.indexOf("Opera Mini")>-1}function r(t){return t=t||e.navigator.userAgent,t.indexOf("Android")>-1&&t.indexOf("Firefox")>-1}function o(t){return t=t||e.navigator.userAgent,-1!==t.indexOf("MSIE")?parseInt(t.replace(/.*MSIE ([0-9]+)\..*/,"$1"),10):/Trident.*rv:11/.test(t)?11:null}function i(t){return t=t||e.location.protocol,"https:"===t}t.exports={isOperaMini:n,isAndroidFirefox:r,getIEVersion:o,isHTTPS:i}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(e,t,n){"use strict";function r(e,t){var n,r,i=document.createElement("a");return i.href=t,r="https:"===i.protocol?i.host.replace(/:443$/,""):"http:"===i.protocol?i.host.replace(/:80$/,""):i.host,n=i.protocol+"//"+r,n===e||o.test(e)}var o=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],11:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":17}],12:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new s({type:s.types.INTERNAL,code:"MISSING_CHANNEL_ID",message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var o=e("framebus"),i=e("./events"),a=e("./check-origin").checkOrigin,s=e("../error");r.prototype.on=function(e,t){var n,r,i=t,s=this;this._isDestroyed||(this.merchantUrl&&(i=function(){a(this.origin,s.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=i,this._log("on",r),o.on.apply(o,r),this._listeners.push({eventName:e,handler:i,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),o.emit.apply(o,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),o.off.apply(o,t))},r.prototype.off=function(e,t){var n,r,o=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(o=r.handler);this._offDirect(e,o)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=i,t.exports=r},{"../error":18,"./check-origin":10,"./events":11,framebus:1}],13:[function(e,t,n){"use strict";var r="3.0.0-beta.12",o="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:o,BRAINTREE_LIBRARY_VERSION:"braintree/"+o+"/"+r}},{}],14:[function(e,t,n){"use strict";var r=e("./error"),o=e("../errors");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:o.METHOD_CALLED_AFTER_TEARDOWN.type,code:o.METHOD_CALLED_AFTER_TEARDOWN.code,message:t+" cannot be called after teardown."})}})}},{"../errors":6,"./error":18}],15:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function o(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function i(e){var t,n,i={attrs:{},configUrl:""};return r(e)?(n=o(e),i.attrs.tokenizationKey=e,i.configUrl=s[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(a(e)),i.attrs.authorizationFingerprint=t.authorizationFingerprint,i.configUrl=t.configUrl),i}var a=e("../lib/polyfill").atob,s={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=i},{"../lib/polyfill":31}],16:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],17:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],18:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.code)throw new Error("Error code required.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=e.code,this.message=e.message,this.type=e.type,this.details=e.details}var o=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=o(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":17}],19:[function(e,t,n){"use strict";function r(e){if(!e)throw new Error("Valid configuration is required");if(d.forEach(function(t){if(!e.hasOwnProperty(t))throw new Error("A valid frame "+t+" must be provided")}),!/^[\w_]+$/.test(e.name))throw new Error("A valid frame name must be provided")}function o(e){r(e),this._serviceId=u().replace(/-/g,""),this._options={name:e.name+"_"+this._serviceId,dispatchFrameUrl:e.dispatchFrameUrl,openFrameUrl:e.openFrameUrl},this._state=e.state,this._bus=new a({channel:this._serviceId}),this._setBusEvents()}var i=e("./popup"),a=e("../../bus"),s=e("../shared/events"),c=e("../shared/errors"),l=e("../shared/constants"),u=e("../../uuid"),p=e("iframer"),f=e("../../error"),d=["name","dispatchFrameUrl","openFrameUrl"];o.prototype.initialize=function(e){var t=function(){e(),this._bus.off(s.DISPATCH_FRAME_READY,t)}.bind(this);this._bus.on(s.DISPATCH_FRAME_READY,t),this._writeDispatchFrame()},o.prototype._writeDispatchFrame=function(){var e=l.DISPATCH_FRAME_NAME+"_"+this._serviceId,t=this._options.dispatchFrameUrl;this._dispatchFrame=p({name:e,src:t,height:0,width:0}),document.body.appendChild(this._dispatchFrame)},o.prototype._setBusEvents=function(){this._bus.on(s.DISPATCH_FRAME_REPORT,function(e){this.close(),this._onCompleteCallback&&this._onCompleteCallback.call(null,e.err,e.payload),this._onCompleteCallback=null}.bind(this)),this._bus.on(a.events.CONFIGURATION_REQUEST,function(e){e(this._state)}.bind(this))},o.prototype.open=function(e){this._onCompleteCallback=e,this._frame=i.open(this._options),this._pollForPopupClose()},o.prototype.redirect=function(e){this._frame&&!this.isFrameClosed()&&(this._frame.location.href=e)},o.prototype.close=function(){this.isFrameClosed()||this._frame.close()},o.prototype.teardown=function(){this.close(),this._dispatchFrame.parentNode.removeChild(this._dispatchFrame),this._dispatchFrame=null,this._cleanupFrame()},o.prototype.isFrameClosed=function(){return null==this._frame||this._frame.closed},o.prototype._cleanupFrame=function(){this._frame=null,clearInterval(this._popupInterval),this._popupInterval=null},o.prototype._pollForPopupClose=function(){return this._popupInterval=setInterval(function(){this.isFrameClosed()&&(this._cleanupFrame(),this._onCompleteCallback&&this._onCompleteCallback(new f(c.FRAME_CLOSED)))}.bind(this),l.POPUP_POLL_INTERVAL),this._popupInterval},t.exports=o},{"../../bus":12,"../../error":18,"../../uuid":33,"../shared/constants":25,"../shared/errors":26,"../shared/events":27,"./popup":22,iframer:2}],20:[function(e,t,n){"use strict";var r=e("./frame-service");t.exports={create:function(e,t){var n=new r(e);n.initialize(function(){t(n)})}}},{"./frame-service":19}],21:[function(e,t,n){"use strict";var r=e("../../shared/constants"),o=e("./position");t.exports=function(){return[r.POPUP_BASE_OPTIONS,"top="+o.top(),"left="+o.left()].join(",")}},{"../../shared/constants":25,"./position":24}],22:[function(e,t,n){"use strict";t.exports={open:e("./open")}},{"./open":23}],23:[function(e,t,n){(function(n){"use strict";var r=e("./compose-options");t.exports=function(e){return n.open(e.openFrameUrl,e.name,r())}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./compose-options":21}],24:[function(e,t,n){(function(n){"use strict";function r(){var e=n.outerHeight||document.documentElement.clientHeight,t=null==n.screenY?n.screenTop:n.screenY;return i(e,a.POPUP_HEIGHT,t)}function o(){var e=n.outerWidth||document.documentElement.clientWidth,t=null==n.screenX?n.screenLeft:n.screenX;return i(e,a.POPUP_WIDTH,t)}function i(e,t,n){return(e-t)/2+n}var a=e("../../shared/constants");t.exports={top:r,left:o,center:i}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../shared/constants":25}],25:[function(e,t,n){"use strict";var r=535,o=450;t.exports={DISPATCH_FRAME_NAME:"dispatch",POPUP_BASE_OPTIONS:"resizable,scrollbars,height="+r+",width="+o,POPUP_WIDTH:o,POPUP_HEIGHT:r,POPUP_POLL_INTERVAL:100,POPUP_CLOSE_TIMEOUT:100}},{}],26:[function(e,t,n){"use strict";var r=e("../../error");t.exports={FRAME_CLOSED:{type:r.types.CUSTOMER,code:"FRAME_CLOSED",message:"Frame closed before tokenization could occur."}}},{"../../error":18}],27:[function(e,t,n){"use strict";var r=e("../../enumerate");t.exports=r(["DISPATCH_FRAME_READY","DISPATCH_FRAME_REPORT"],"frameService:")},{"../../enumerate":17}],28:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],29:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],30:[function(e,t,n){"use strict";function r(e){var t=!1;return function(){t||(t=!0,e.apply(null,arguments))}}t.exports=r},{}],31:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,o,i,a,s,c,l=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",p="";if(!l.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");c=0;do o=u.indexOf(e.charAt(c++)),i=u.indexOf(e.charAt(c++)),a=u.indexOf(e.charAt(c++)),s=u.indexOf(e.charAt(c++)),t=(63&o)<<2|i>>4&3,n=(15&i)<<4|a>>2&15,r=(3&a)<<6|63&s,p+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(c<e.length);return p}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],32:[function(e,t,n){(function(e){"use strict";function n(e){var t;for(t in e)if(e.hasOwnProperty(t))return!0;return!1}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&"[object Array]"===Object.prototype.toString.call(e)||!1}function o(t){var n,r;return t=t||e.location.href,/\?/.test(t)?(n=t.replace(/#.*$/,"").replace(/^.*\?/,"").split("&"),r=n.reduce(function(e,t){var n=t.split("="),r=decodeURIComponent(n[0]),o=decodeURIComponent(n[1]);return e[r]=o,e},{})):{}}function i(e,t){var n,o,a,s=[];for(a in e)e.hasOwnProperty(a)&&(o=e[a],n=t?r(e)?t+"[]":t+"["+a+"]":a,"object"==typeof o?s.push(i(o,n)):s.push(encodeURIComponent(n)+"="+encodeURIComponent(o)));return s.join("&")}function a(e,t){return e=e||"",null!=t&&"object"==typeof t&&n(t)&&(e+=-1===e.indexOf("?")?"?":"",e+=-1!==e.indexOf("=")?"&":"",e+=i(t)),e}t.exports={parse:o,stringify:i,queryify:a}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],33:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}],34:[function(e,t,n){"use strict";function r(e){this._client=e.client,this._assetsUrl=e.client.getConfiguration().gatewayConfiguration.paypal.assetsUrl+"/web/"+c,this._authorizationInProgress=!1}var o=e("../../lib/frame-service/external"),i=e("../../lib/frame-service/shared/errors"),a=e("../../lib/error"),s=e("../../lib/once"),c="3.0.0-beta.12",l=e("../shared/constants"),u=e("../../lib/constants").INTEGRATION_TIMEOUT_MS,p=e("../../lib/analytics"),f=e("../../lib/methods"),d=e("../../lib/deferred"),h=e("../shared/errors"),_=e("../shared/get-country"),y=e("../../lib/convert-methods-to-error"),m=e("../../lib/querystring"),E=e("../../errors");r.prototype._initialize=function(e){var t=this._client,n=setTimeout(function(){p.sendEvent(t,"web.paypal.load.timed-out")},u);o.create({name:l.LANDING_FRAME_NAME,dispatchFrameUrl:this._assetsUrl+"/html/dispatch-frame.min.html",openFrameUrl:this._assetsUrl+"/html/paypal-landing-frame.min.html"},function(r){this._frameService=r,clearTimeout(n),p.sendEvent(t,"web.paypal.load.succeeded"),e()}.bind(this))},r.prototype.tokenize=function(e,t){var n=this._client;if("function"!=typeof t)throw new a({type:E.CALLBACK_REQUIRED.type,code:E.CALLBACK_REQUIRED.code,message:"tokenize must include a callback function."});return t=s(d(t)),this._authorizationInProgress?(p.sendEvent(n,"web.paypal.tokenization.error.already-opened"),t(new a(h.TOKENIZATION_REQUEST_ACTIVE))):(this._authorizationInProgress=!0,p.sendEvent(n,"web.paypal.tokenization.opened"),this._navigateFrameToAuth(e,t),this._frameService.open(this._createFrameServiceCallback(e,t))),{close:function(){p.sendEvent(n,"web.paypal.tokenization.closed.by-merchant"),this._frameService.close()}.bind(this)}},r.prototype._createFrameServiceCallback=function(e,t){var n=this._client;return function(r,o){this._authorizationInProgress=!1,r?(r.code===i.FRAME_CLOSED.code&&p.sendEvent(n,"web.paypal.tokenization.closed.by-user"),t(new a(r))):this._tokenizePayPal(e,o,t)}.bind(this)},r.prototype._tokenizePayPal=function(e,t,n){var r=this._client;r.request({endpoint:"payment_methods/paypal_accounts",method:"post",data:this._formatTokenizeData(e,t)},function(e,t){e?(p.sendEvent(r,"web.paypal.tokenization.failed"),n(e instanceof a?e:new a({type:h.ACCOUNT_TOKENIZATION_FAILED.type,code:h.ACCOUNT_TOKENIZATION_FAILED.code,message:h.ACCOUNT_TOKENIZATION_FAILED.message,details:e}))):(p.sendEvent(r,"web.paypal.tokenization.success"),n(null,this._formatTokenizePayload(t)))}.bind(this))},r.prototype._formatTokenizePayload=function(e){var t,n={};return e.paypalAccounts&&(n=e.paypalAccounts[0]),t={nonce:n.nonce,details:{},type:n.type},n.details&&n.details.payerInfo&&(t.details=n.details.payerInfo),t},r.prototype._formatTokenizeData=function(e,t){var n=this._client.getConfiguration().gatewayConfiguration,r={paypalAccount:{correlationId:this._frameService._serviceId}};return t.ba_token?r.paypalAccount.billingAgreementToken=t.ba_token:(r.paypalAccount.paymentToken=t.paymentId,r.paypalAccount.payerId=t.PayerID,r.paypalAccount.unilateral=n.paypal.unvettedMerchant,e.hasOwnProperty("intent")&&(r.paypalAccount.intent=e.intent)),r},r.prototype._navigateFrameToAuth=function(e,t){var n=this._client,r="paypal_hermes/";if("checkout"===e.flow)r+="create_payment_resource";else{if("vault"!==e.flow)return void t(new a(h.PAYPAL_FLOW_OPTION_REQUIRED));r+="setup_billing_agreement"}n.request({endpoint:r,method:"post",data:this._formatPaymentResourceData(e)},function(n,r){var o;n?(t(n instanceof a?n:new a({type:h.PAYPAL_FLOW_FAILED.type,code:h.PAYPAL_FLOW_FAILED.code,message:h.PAYPAL_FLOW_FAILED.message,details:n})),this._frameService.close()):(o="checkout"===e.flow?r.paymentResource.redirectUrl:r.agreementSetup.approvalUrl,"commit"===e.useraction&&(o=m.queryify(o,{useraction:"commit"})),this._frameService.redirect(o))}.bind(this))},r.prototype._formatPaymentResourceData=function(e){var t,n=this._client.getConfiguration().gatewayConfiguration,r=this._frameService._serviceId,o={returnUrl:n.paypal.assetsUrl+"/web/"+c+"/html/paypal-redirect-frame.min.html?channel="+r,cancelUrl:n.paypal.assetsUrl+"/web/"+c+"/html/paypal-cancel-frame.min.html?channel="+r,correlationId:r,experienceProfile:{brandName:e.displayName||n.paypal.displayName,localeCode:_(e.locale),noShipping:(!e.enableShippingAddress).toString(),addressOverride:e.shippingAddressEditable===!1}};if("checkout"===e.flow){o.amount=parseFloat(e.amount).toFixed(2),o.currencyIsoCode=e.currency,o.offerPaypalCredit=e.offerCredit===!0,e.hasOwnProperty("intent")&&(o.intent=e.intent);for(t in e.shippingAddressOverride)e.shippingAddressOverride.hasOwnProperty(t)&&(o[t]=e.shippingAddressOverride[t])}else o.shippingAddress=e.shippingAddressOverride,e.billingAgreementDescription&&(o.description=e.billingAgreementDescription);return o},r.prototype.teardown=function(e){this._frameService.teardown(),y(this,f(r.prototype)),p.sendEvent(this._client,"web.paypal.teardown-completed"),"function"==typeof e&&(e=d(e))()},t.exports=r},{"../../errors":6,"../../lib/analytics":8,"../../lib/constants":13,"../../lib/convert-methods-to-error":14,"../../lib/deferred":16,"../../lib/error":18,"../../lib/frame-service/external":20,"../../lib/frame-service/shared/errors":26,"../../lib/methods":29,"../../lib/once":30,"../../lib/querystring":32,"../shared/constants":36,"../shared/errors":37,"../shared/get-country":38}],35:[function(e,t,n){"use strict";function r(e,t){var n,r,s;if(!t)throw new a({type:p.CALLBACK_REQUIRED.type,code:p.CALLBACK_REQUIRED.code,message:"create must include a callback function."});return t=c(t),null==e.client?void t(new a({type:p.INSTANTIATION_OPTION_REQUIRED.type,code:p.INSTANTIATION_OPTION_REQUIRED.code,message:"options.client is required when instantiating PayPal."})):(n=e.client.getConfiguration(),s=n.analyticsMetadata.sdkVersion,s!==f?void t(new a({type:p.INCOMPATIBLE_VERSIONS.type,code:p.INCOMPATIBLE_VERSIONS.code,message:"Client (version "+s+") and PayPal (version "+f+") components must be from the same SDK version."})):n.gatewayConfiguration.paypalEnabled!==!0?void t(new a(l.PAYPAL_NOT_ENABLED)):o()?(i.sendEvent(e.client,"web.paypal.initialized"),r=new u(e),void r._initialize(function(){t(null,r)})):void t(new a(l.BROWSER_NOT_SUPPORTED)))}function o(){return!s.isOperaMini()}var i=e("../lib/analytics"),a=e("../lib/error"),s=e("../lib/browser-detection"),c=e("../lib/deferred"),l=e("./shared/errors"),u=e("./external/paypal"),p=e("../errors"),f="3.0.0-beta.12";t.exports={create:r,VERSION:f}},{"../errors":6,"../lib/analytics":8,"../lib/browser-detection":9,"../lib/deferred":16,"../lib/error":18,"./external/paypal":34,"./shared/errors":37}],36:[function(e,t,n){"use strict";var r=535,o=450;t.exports={AUTH_INIT_ERROR_MESSAGE:"Could not initialize PayPal flow.",LANDING_FRAME_NAME:"braintreepaypallanding",POPUP_BASE_OPTIONS:"resizable,scrollbars,height="+r+",width="+o,POPUP_WIDTH:o,POPUP_HEIGHT:r,POPUP_POLL_INTERVAL:100}},{}],37:[function(e,t,n){"use strict";var r=e("../../lib/error");t.exports={PAYPAL_NOT_ENABLED:{type:r.types.MERCHANT,code:"PAYPAL_NOT_ENABLED",message:"PayPal is not enabled for this merchant."},TOKENIZATION_REQUEST_ACTIVE:{type:r.types.MERCHANT,code:"TOKENIZATION_REQUEST_ACTIVE",message:"Another tokenization request is active."},ACCOUNT_TOKENIZATION_FAILED:{type:r.types.NETWORK,code:"ACCOUNT_TOKENIZATION_FAILED",message:"Could not tokenize user's PayPal account."},PAYPAL_FLOW_FAILED:{type:r.types.NETWORK,code:"PAYPAL_FLOW_FAILED",message:"Could not initialize PayPal flow."},PAYPAL_FLOW_OPTION_REQUIRED:{type:r.types.MERCHANT,code:"PAYPAL_FLOW_OPTION_REQUIRED",message:"PayPal flow property is invalid or missing."},BROWSER_NOT_SUPPORTED:{type:r.types.CUSTOMER,code:"BROWSER_NOT_SUPPORTED",message:"Browser is not supported."}}},{"../../lib/error":18}],38:[function(e,t,n){"use strict";function r(e){var t=e?e.toLowerCase().replace(/-/g,"_"):"us";return-1!==t.indexOf("_")&&(t=t.split("_")[1]),t=o[t]?t:"us","uk"===t&&(t="gb"),t}var o={us:"en_us",gb:"en_uk",uk:"en_uk",de:"de_de",fr:"fr_fr",it:"it_it",es:"es_es",ca:"en_ca",au:"en_au",at:"de_de",be:"en_us",ch:"de_de",dk:"da_dk",nl:"nl_nl",no:"no_no",pl:"pl_pl",se:"sv_se",tr:"tr_tr",bg:"en_us",cy:"en_us",hr:"en_us",is:"en_us",kh:"en_us",mt:"en_us",my:"en_us",ru:"ru_ru"};t.exports=r},{}]},{},[35])(35)}); |
@@ -351,2 +351,26 @@ (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 = {})).threeDSecure = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
var BraintreeError = _dereq_('./lib/error'); | ||
module.exports = { | ||
CALLBACK_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CALLBACK_REQUIRED' | ||
}, | ||
INSTANTIATION_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INSTANTIATION_OPTION_REQUIRED' | ||
}, | ||
INCOMPATIBLE_VERSIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INCOMPATIBLE_VERSIONS' | ||
}, | ||
METHOD_CALLED_AFTER_TEARDOWN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'METHOD_CALLED_AFTER_TEARDOWN' | ||
} | ||
}; | ||
},{"./lib/error":18}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var createAuthorizationData = _dereq_('./create-authorization-data'); | ||
@@ -383,3 +407,3 @@ var jsonClone = _dereq_('./json-clone'); | ||
},{"./constants":12,"./create-authorization-data":14,"./json-clone":18}],7:[function(_dereq_,module,exports){ | ||
},{"./constants":13,"./create-authorization-data":15,"./json-clone":19}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -415,3 +439,3 @@ | ||
},{"./add-metadata":6,"./constants":12}],8:[function(_dereq_,module,exports){ | ||
},{"./add-metadata":7,"./constants":13}],9:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -425,2 +449,7 @@ 'use strict'; | ||
function isAndroidFirefox(ua) { | ||
ua = ua || global.navigator.userAgent; | ||
return ua.indexOf('Android') > -1 && ua.indexOf('Firefox') > -1; | ||
} | ||
function getIEVersion(ua) { | ||
@@ -446,2 +475,3 @@ ua = ua || global.navigator.userAgent; | ||
isOperaMini: isOperaMini, | ||
isAndroidFirefox: isAndroidFirefox, | ||
getIEVersion: getIEVersion, | ||
@@ -452,3 +482,3 @@ isHTTPS: isHTTPS | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],9:[function(_dereq_,module,exports){ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -481,3 +511,3 @@ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
},{}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -491,3 +521,3 @@ | ||
},{"../enumerate":16}],11:[function(_dereq_,module,exports){ | ||
},{"../enumerate":17}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -507,2 +537,3 @@ | ||
type: BraintreeError.types.INTERNAL, | ||
code: 'MISSING_CHANNEL_ID', | ||
message: 'Channel ID must be specified.' | ||
@@ -623,6 +654,6 @@ }); | ||
},{"../error":17,"./check-origin":9,"./events":10,"framebus":1}],12:[function(_dereq_,module,exports){ | ||
},{"../error":18,"./check-origin":10,"./events":11,"framebus":1}],13:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var VERSION = "3.0.0-beta.11"; | ||
var VERSION = "3.0.0-beta.12"; | ||
var PLATFORM = 'web'; | ||
@@ -640,6 +671,7 @@ | ||
},{}],13:[function(_dereq_,module,exports){ | ||
},{}],14:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./error'); | ||
var sharedErrors = _dereq_('../errors'); | ||
@@ -650,3 +682,4 @@ module.exports = function (instance, methodNames) { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.type, | ||
code: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.code, | ||
message: methodName + ' cannot be called after teardown.' | ||
@@ -658,3 +691,3 @@ }); | ||
},{"./error":17}],14:[function(_dereq_,module,exports){ | ||
},{"../errors":6,"./error":18}],15:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -708,3 +741,3 @@ | ||
},{"../lib/polyfill":20}],15:[function(_dereq_,module,exports){ | ||
},{"../lib/polyfill":21}],16:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -723,3 +756,3 @@ | ||
},{}],16:[function(_dereq_,module,exports){ | ||
},{}],17:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -738,3 +771,3 @@ | ||
},{}],17:[function(_dereq_,module,exports){ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -756,2 +789,6 @@ | ||
if (!options.code) { | ||
throw new Error('Error code required.'); | ||
} | ||
if (!options.message) { | ||
@@ -765,2 +802,8 @@ throw new Error('Error message required.'); | ||
* @type {string} | ||
* @description A code that corresponds to specific errors. | ||
*/ | ||
this.code = options.code; | ||
/** | ||
* @type {string} | ||
* @description A short description of the error. | ||
@@ -808,3 +851,3 @@ */ | ||
},{"./enumerate":16}],18:[function(_dereq_,module,exports){ | ||
},{"./enumerate":17}],19:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -816,3 +859,3 @@ | ||
},{}],19:[function(_dereq_,module,exports){ | ||
},{}],20:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -826,3 +869,3 @@ | ||
},{}],20:[function(_dereq_,module,exports){ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -866,3 +909,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],21:[function(_dereq_,module,exports){ | ||
},{}],22:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -881,3 +924,3 @@ | ||
},{}],22:[function(_dereq_,module,exports){ | ||
},{}],23:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -893,5 +936,7 @@ | ||
var deferred = _dereq_('../../lib/deferred'); | ||
var errors = _dereq_('../shared/errors'); | ||
var events = _dereq_('../shared/events'); | ||
var version = "3.0.0-beta.11"; | ||
var version = "3.0.0-beta.12"; | ||
var iFramer = _dereq_('iframer'); | ||
var sharedErrors = _dereq_('../../errors'); | ||
@@ -984,7 +1029,8 @@ var IFRAME_HEIGHT = 400; | ||
ThreeDSecure.prototype.verifyCard = function (options, callback) { | ||
var url, merchantErrorMsg, addFrame, removeFrame; | ||
var url, addFrame, removeFrame, error, errorOption; | ||
if (typeof callback !== 'function') { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'verifyCard must include a callback function.' | ||
@@ -998,18 +1044,23 @@ }); | ||
if (this._verifyCardInProgress === true) { | ||
merchantErrorMsg = 'Cannot call verifyCard while existing authentication is in progress.'; | ||
error = errors.AUTHENTICATION_IN_PROGRESS; | ||
} else if (!options.nonce) { | ||
merchantErrorMsg = 'verifyCard options must include a nonce.'; | ||
errorOption = 'a nonce'; | ||
} else if (!options.amount) { | ||
merchantErrorMsg = 'verifyCard options must include an amount.'; | ||
errorOption = 'an amount'; | ||
} else if (typeof options.addFrame !== 'function') { | ||
merchantErrorMsg = 'verifyCard options must include an addFrame function.'; | ||
errorOption = 'an addFrame function'; | ||
} else if (typeof options.removeFrame !== 'function') { | ||
merchantErrorMsg = 'verifyCard options must include a removeFrame function.'; | ||
errorOption = 'a removeFrame function'; | ||
} | ||
if (merchantErrorMsg) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: merchantErrorMsg | ||
})); | ||
if (errorOption) { | ||
error = { | ||
type: errors.MISSING_VERIFY_CARD_OPTION.type, | ||
code: errors.MISSING_VERIFY_CARD_OPTION.code, | ||
message: 'verifyCard options must include ' + errorOption + '.' | ||
}; | ||
} | ||
if (error) { | ||
callback(new BraintreeError(error)); | ||
return; | ||
@@ -1075,6 +1126,3 @@ } | ||
if (!this._lookupPaymentMethod) { | ||
error = new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'No verification payload available.' | ||
}); | ||
error = new BraintreeError(errors.NO_VERIFICATION_PAYLOAD); | ||
} | ||
@@ -1160,2 +1208,3 @@ | ||
type: BraintreeError.types.UNKNOWN, | ||
code: 'UNKNOWN_AUTH_RESPONSE', | ||
message: authResponse.error.message | ||
@@ -1210,3 +1259,3 @@ })); | ||
},{"../../lib/analytics":7,"../../lib/bus":11,"../../lib/convert-methods-to-error":13,"../../lib/deferred":15,"../../lib/error":17,"../../lib/methods":19,"../../lib/uuid":21,"../shared/constants.json":24,"../shared/events":25,"iframer":2}],23:[function(_dereq_,module,exports){ | ||
},{"../../errors":6,"../../lib/analytics":8,"../../lib/bus":12,"../../lib/convert-methods-to-error":14,"../../lib/deferred":16,"../../lib/error":18,"../../lib/methods":20,"../../lib/uuid":22,"../shared/constants.json":25,"../shared/errors":26,"../shared/events":27,"iframer":2}],24:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1220,3 +1269,5 @@ /** @module braintree-web/three-d-secure */ | ||
var deferred = _dereq_('../lib/deferred'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var errors = _dereq_('./shared/errors'); | ||
var sharedErrors = _dereq_('../errors'); | ||
var VERSION = "3.0.0-beta.12"; | ||
@@ -1236,8 +1287,9 @@ /** | ||
function create(options, callback) { | ||
var config, threeDSecure, merchantErrorMessage, clientVersion; | ||
var config, threeDSecure, error, clientVersion; | ||
if (typeof callback !== 'function') { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'threeDSecure.create must include a callback function.' | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'create must include a callback function.' | ||
}); | ||
@@ -1250,3 +1302,4 @@ } | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type, | ||
code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code, | ||
message: 'options.client is required when instantiating 3D Secure.' | ||
@@ -1261,14 +1314,15 @@ })); | ||
if (!config.gatewayConfiguration.threeDSecureEnabled) { | ||
merchantErrorMessage = '3D Secure is not enabled for this merchant.'; | ||
error = errors.THREEDS_NOT_ENABLED; | ||
} else if (config.analyticsMetadata.sdkVersion !== VERSION) { | ||
merchantErrorMessage = 'Client (version ' + clientVersion + ') and 3D Secure (version ' + VERSION + ') components must be from the same SDK version.'; | ||
error = { | ||
type: sharedErrors.INCOMPATIBLE_VERSIONS.type, | ||
code: sharedErrors.INCOMPATIBLE_VERSIONS.code, | ||
message: 'Client (version ' + clientVersion + ') and 3D Secure (version ' + VERSION + ') components must be from the same SDK version.' | ||
}; | ||
} else if (!browserDetection.isHTTPS()) { | ||
merchantErrorMessage = '3D Secure requires HTTPS.'; | ||
error = errors.THREEDS_HTTPS_REQUIRED; | ||
} | ||
if (merchantErrorMessage) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: merchantErrorMessage | ||
})); | ||
if (error) { | ||
callback(new BraintreeError(error)); | ||
return; | ||
@@ -1298,3 +1352,3 @@ } | ||
},{"../lib/analytics":7,"../lib/browser-detection":8,"../lib/deferred":15,"../lib/error":17,"./external/three-d-secure":22}],24:[function(_dereq_,module,exports){ | ||
},{"../errors":6,"../lib/analytics":8,"../lib/browser-detection":9,"../lib/deferred":16,"../lib/error":18,"./external/three-d-secure":23,"./shared/errors":26}],25:[function(_dereq_,module,exports){ | ||
module.exports={ | ||
@@ -1304,5 +1358,42 @@ "LANDING_FRAME_NAME": "braintreethreedsecurelanding" | ||
},{}],25:[function(_dereq_,module,exports){ | ||
},{}],26:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('../../lib/error'); | ||
module.exports = { | ||
AUTHENTICATION_IN_PROGRESS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'AUTHENTICATION_IN_PROGRESS', | ||
message: 'Cannot call verifyCard while existing authentication is in progress.' | ||
}, | ||
MISSING_VERIFY_CARD_OPTION: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'MISSING_VERIFY_CARD_OPTION' | ||
}, | ||
NO_VERIFICATION_PAYLOAD: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'NO_VERIFICATION_PAYLOAD', | ||
message: 'No verification payload available.' | ||
}, | ||
THREEDS_NOT_ENABLED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'THREEDS_NOT_ENABLED', | ||
message: '3D Secure is not enabled for this merchant.' | ||
}, | ||
THREEDS_HTTPS_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'THREEDS_HTTPS_REQUIRED', | ||
message: '3D Secure requires HTTPS.' | ||
}, | ||
TERM_URL_REQUIRES_BRAINTREE_DOMAIN: { | ||
type: BraintreeError.types.INTERNAL, | ||
code: 'TERM_URL_REQUIRES_BRAINTREE_DOMAIN', | ||
message: 'Term Url must be on a Braintree domain.' | ||
} | ||
}; | ||
},{"../../lib/error":18}],27:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var enumerate = _dereq_('../../lib/enumerate'); | ||
@@ -1314,3 +1405,3 @@ | ||
},{"../../lib/enumerate":16}]},{},[23])(23) | ||
},{"../../lib/enumerate":17}]},{},[24])(24) | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).threeDSecure=e()}}(function(){var e;return function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}};e[s][0].call(l.exports,function(t){var n=e[s][1][t];return i(n?n:t)},l,l.exports,t,e,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(t,n,r){(function(t){"use strict";!function(i,o){"object"==typeof r&&"undefined"!=typeof n?n.exports=o("undefined"==typeof t?i:t):"function"==typeof e&&e.amd?e([],function(){return o(i)}):i.framebus=o(i)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(x.push(e),!0)}function n(e){var t,n={};for(t in _)_.hasOwnProperty(t)&&(n[t]=_[t]);return n._origin=e||"*",n}function r(e){var t,n,r=s(this);return a(e)?!1:a(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=u(e,n,r),t===!1?!1:(y(v.top,t,r),!0))}function i(e,t){var n=s(this);return g(e,t,n)?!1:(w[n]=w[n]||{},w[n][e]=w[n][e]||[],w[n][e].push(t),!0)}function o(e,t){var n,r,i=s(this);if(g(e,t,i))return!1;if(r=w[i]&&w[i][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function s(e){return e&&e._origin||"*"}function a(e){return"string"!=typeof e}function u(e,t,n){var r=!1,i={event:e,origin:n},o=t[t.length-1];"function"==typeof o&&(i.reply=b(o,n),t=t.slice(0,-1)),i.args=t;try{r=E+JSON.stringify(i)}catch(s){throw new Error("Could not stringify event: "+s.message)}return r}function c(e){var t,n,r,i;if(e.data.slice(0,E.length)!==E)return!1;try{t=JSON.parse(e.data.slice(E.length))}catch(o){return!1}return null!=t.reply&&(n=e.origin,r=e.source,i=t.reply,t.reply=function(e){var t=u(i,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function l(t){v||(v=t||e,v.addEventListener?v.addEventListener("message",p,!1):v.attachEvent?v.attachEvent("onmessage",p):null===v.onmessage?v.onmessage=p:v=null)}function f(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function p(e){var t;a(e.data)||(t=c(e),t&&(h("*",t.event,t.args,e),h(e.origin,t.event,t.args,e),m(e.data,t.origin,e.source)))}function h(e,t,n,r){var i;if(w[e]&&w[e][t])for(i=0;i<w[e][t].length;i++)w[e][t][i].apply(r,n)}function d(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function y(e,t,n){var r;try{for(e.postMessage(t,n),d(e)&&y(e.opener.top,t,n),r=0;r<e.frames.length;r++)y(e.frames[r],t,n)}catch(i){}}function m(e,t,n){var r,i;for(r=x.length-1;r>=0;r--)i=x[r],i.closed===!0?x=x.slice(r,1):n!==i&&y(i.top,e,t)}function b(e,t){function n(i,o){e(i,o),_.target(t).unsubscribe(r,n)}var r=f();return _.target(t).subscribe(r,n),r}function g(e,t,n){return a(e)?!0:"function"!=typeof t?!0:a(n)?!0:!1}var v,_,x=[],w={},E="/*framebus*/";return l(),_={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:i,sub:i,on:i,unsubscribe:o,unsub:o,off:o}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),i=e("./lib/default-attributes"),o=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=o({},i,e);return n.style&&"string"!=typeof n.style&&(o(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":3,"./lib/default-attributes":4,"./lib/set-attributes":5}],3:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],4:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],5:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],6:[function(e,t,n){"use strict";function r(e,t){var n,r=t?o(t):{},a=i(e.authorization).attrs,u=o(e.analyticsMetadata);r.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(u[n]=r._meta[n]);return r._meta=u,a.tokenizationKey?r.tokenizationKey=a.tokenizationKey:r.authorizationFingerprint=a.authorizationFingerprint,r}var i=e("./create-authorization-data"),o=e("./json-clone"),s=e("./constants");t.exports=r},{"./constants":12,"./create-authorization-data":14,"./json-clone":18}],7:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function i(e,t,n){var i=e.getConfiguration(),a=e._request,u=r(Date.now()),c=i.gatewayConfiguration.analytics.url,l={analytics:[{kind:t,timestamp:u}]};a({url:c,method:"post",data:s(i,l),timeout:o.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var o=e("./constants"),s=e("./add-metadata");t.exports={sendEvent:i}},{"./add-metadata":6,"./constants":12}],8:[function(e,t,n){(function(e){"use strict";function n(t){return t=t||e.navigator.userAgent,t.indexOf("Opera Mini")>-1}function r(t){return t=t||e.navigator.userAgent,-1!==t.indexOf("MSIE")?parseInt(t.replace(/.*MSIE ([0-9]+)\..*/,"$1"),10):/Trident.*rv:11/.test(t)?11:null}function i(t){return t=t||e.location.protocol,"https:"===t}t.exports={isOperaMini:n,getIEVersion:r,isHTTPS:i}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],9:[function(e,t,n){"use strict";function r(e,t){var n,r,o=document.createElement("a");return o.href=t,r="https:"===o.protocol?o.host.replace(/:443$/,""):"http:"===o.protocol?o.host.replace(/:80$/,""):o.host,n=o.protocol+"//"+r,n===e||i.test(e)}var i=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],10:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":16}],11:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new a({type:a.types.INTERNAL,message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var i=e("framebus"),o=e("./events"),s=e("./check-origin").checkOrigin,a=e("../error");r.prototype.on=function(e,t){var n,r,o=t,a=this;this._isDestroyed||(this.merchantUrl&&(o=function(){s(this.origin,a.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=o,this._log("on",r),i.on.apply(i,r),this._listeners.push({eventName:e,handler:o,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),i.emit.apply(i,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),i.off.apply(i,t))},r.prototype.off=function(e,t){var n,r,i=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(i=r.handler);this._offDirect(e,i)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=o,t.exports=r},{"../error":17,"./check-origin":9,"./events":10,framebus:1}],12:[function(e,t,n){"use strict";var r="3.0.0-beta.11",i="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:i,BRAINTREE_LIBRARY_VERSION:"braintree/"+i+"/"+r}},{}],13:[function(e,t,n){"use strict";var r=e("./error");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:r.types.MERCHANT,message:t+" cannot be called after teardown."})}})}},{"./error":17}],14:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function i(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function o(e){var t,n,o={attrs:{},configUrl:""};return r(e)?(n=i(e),o.attrs.tokenizationKey=e,o.configUrl=a[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(s(e)),o.attrs.authorizationFingerprint=t.authorizationFingerprint,o.configUrl=t.configUrl),o}var s=e("../lib/polyfill").atob,a={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=o},{"../lib/polyfill":20}],15:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],16:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],17:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=e.message,this.type=e.type,this.details=e.details}var i=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":16}],18:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],19:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],20:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,i,o,s,a,u,c=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="";if(!c.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");u=0;do i=l.indexOf(e.charAt(u++)),o=l.indexOf(e.charAt(u++)),s=l.indexOf(e.charAt(u++)),a=l.indexOf(e.charAt(u++)),t=(63&i)<<2|o>>4&3,n=(15&o)<<4|s>>2&15,r=(3&s)<<6|63&a,f+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(u<e.length);return f}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],21:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}],22:[function(e,t,n){"use strict";function r(e){this._options=e,this._assetsUrl=e.client.getConfiguration().gatewayConfiguration.assetsUrl,this._client=e.client}var i=e("../../lib/error"),o=e("../../lib/analytics"),s=e("../../lib/methods"),a=e("../../lib/convert-methods-to-error"),u=e("../shared/constants.json"),c=e("../../lib/bus"),l=e("../../lib/uuid"),f=e("../../lib/deferred"),p=e("../shared/events"),h="3.0.0-beta.11",d=e("iframer"),y=400,m=400;r.prototype.verifyCard=function(e,t){var n,r,o,s;if("function"!=typeof t)throw new i({type:i.types.MERCHANT,message:"verifyCard must include a callback function."});return e=e||{},t=f(t),this._verifyCardInProgress===!0?r="Cannot call verifyCard while existing authentication is in progress.":e.nonce?e.amount?"function"!=typeof e.addFrame?r="verifyCard options must include an addFrame function.":"function"!=typeof e.removeFrame&&(r="verifyCard options must include a removeFrame function."):r="verifyCard options must include an amount.":r="verifyCard options must include a nonce.",r?void t(new i({type:i.types.MERCHANT,message:r})):(this._verifyCardInProgress=!0,o=f(e.addFrame),s=f(e.removeFrame),n="payment_methods/"+e.nonce+"/three_d_secure/lookup",void this._client.request({endpoint:n,method:"post",data:{amount:e.amount}},function(e,n){return e?void t(e):(this._lookupPaymentMethod=n.paymentMethod,this._verifyCardCallback=function(){this._verifyCardInProgress=!1,t.apply(null,arguments)}.bind(this),void this._handleLookupResponse({lookupResponse:n,addFrame:o,removeFrame:s}))}.bind(this)))},r.prototype.cancelVerifyCard=function(e){var t;this._verifyCardInProgress=!1,"function"==typeof e&&(this._lookupPaymentMethod||(t=new i({type:i.types.MERCHANT,message:"No verification payload available."})),e(t,this._lookupPaymentMethod))},r.prototype._handleLookupResponse=function(e){var t=e.lookupResponse;t.lookup&&t.lookup.acsUrl&&t.lookup.acsUrl.length>0?e.addFrame(null,this._createIframe({response:t.lookup,removeFrame:e.removeFrame})):this._verifyCardCallback(null,{nonce:t.paymentMethod.nonce,verificationDetails:t.threeDSecureInfo})},r.prototype._createIframe=function(e){var t,n,r=window.location.href,i=e.response;return this._bus=new c({channel:l(),merchantUrl:location.href}),n=this._assetsUrl+"/web/"+h+"/html/three-d-secure-authentication-complete-frame.html?channel="+encodeURIComponent(this._bus.channel)+"&",r.indexOf("#")>-1&&(r=r.split("#")[0]),this._bus.on(c.events.CONFIGURATION_REQUEST,function(e){e({acsUrl:i.acsUrl,pareq:i.pareq,termUrl:i.termUrl+"&three_d_secure_version="+h+"&authentication_complete_base_url="+encodeURIComponent(n),md:i.md,parentUrl:r})}),this._bus.on(p.AUTHENTICATION_COMPLETE,function(t){this._handleAuthResponse(t,e)}.bind(this)),t=this._assetsUrl+"/web/"+h+"/html/three-d-secure-bank-frame.min.html",this._bankIframe=d({src:t,height:y,width:m,name:u.LANDING_FRAME_NAME+"_"+this._bus.channel}),this._bankIframe},r.prototype._handleAuthResponse=function(e,t){var n=JSON.parse(e.auth_response);this._bus.teardown(),t.removeFrame(),f(function(){n.success?this._verifyCardCallback(null,this._formatAuthResponse(n.paymentMethod,n.threeDSecureInfo)):n.threeDSecureInfo&&n.threeDSecureInfo.liabilityShiftPossible?this._verifyCardCallback(null,this._formatAuthResponse(this._lookupPaymentMethod,n.threeDSecureInfo)):this._verifyCardCallback(new i({type:i.types.UNKNOWN,message:n.error.message}))}.bind(this))()},r.prototype._formatAuthResponse=function(e,t){return{nonce:e.nonce,details:e.details,description:e.description,liabilityShifted:t.liabilityShifted,liabilityShiftPossible:t.liabilityShiftPossible}},r.prototype.teardown=function(e){var t;a(this,s(r.prototype)),o.sendEvent(this._options.client,"web.threedsecure.teardown-completed"),this._bus&&this._bus.teardown(),this._bankIframe&&(t=this._bankIframe.parentNode,t&&t.removeChild(this._bankIframe)),"function"==typeof e&&(e=f(e))()},t.exports=r},{"../../lib/analytics":7,"../../lib/bus":11,"../../lib/convert-methods-to-error":13,"../../lib/deferred":15,"../../lib/error":17,"../../lib/methods":19,"../../lib/uuid":21,"../shared/constants.json":24,"../shared/events":25,iframer:2}],23:[function(e,t,n){"use strict";function r(e,t){var n,r,l,f;if("function"!=typeof t)throw new s({type:s.types.MERCHANT,message:"threeDSecure.create must include a callback function."});if(t=u(t),null==e.client)return void t(new s({type:s.types.MERCHANT,message:"options.client is required when instantiating 3D Secure."}));if(n=e.client.getConfiguration(),f=n.analyticsMetadata.sdkVersion,n.gatewayConfiguration.threeDSecureEnabled?n.analyticsMetadata.sdkVersion!==c?l="Client (version "+f+") and 3D Secure (version "+c+") components must be from the same SDK version.":o.isHTTPS()||(l="3D Secure requires HTTPS."):l="3D Secure is not enabled for this merchant.",l)return void t(new s({type:s.types.MERCHANT,message:l}));a.sendEvent(e.client,"web.threedsecure.initialized");try{r=new i(e)}catch(p){return void t(p)}t(null,r)}var i=e("./external/three-d-secure"),o=e("../lib/browser-detection"),s=e("../lib/error"),a=e("../lib/analytics"),u=e("../lib/deferred"),c="3.0.0-beta.11";t.exports={create:r,VERSION:c}},{"../lib/analytics":7,"../lib/browser-detection":8,"../lib/deferred":15,"../lib/error":17,"./external/three-d-secure":22}],24:[function(e,t,n){t.exports={LANDING_FRAME_NAME:"braintreethreedsecurelanding"}},{}],25:[function(e,t,n){"use strict";var r=e("../../lib/enumerate");t.exports=r(["AUTHENTICATION_COMPLETE"],"threedsecure:")},{"../../lib/enumerate":16}]},{},[23])(23)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).threeDSecure=e()}}(function(){var e;return function t(e,r,n){function o(s,a){if(!r[s]){if(!e[s]){var c="function"==typeof require&&require;if(!a&&c)return c(s,!0);if(i)return i(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[s]={exports:{}};e[s][0].call(l.exports,function(t){var r=e[s][1][t];return o(r?r:t)},l,l.exports,t,e,r,n)}return r[s].exports}for(var i="function"==typeof require&&require,s=0;s<n.length;s++)o(n[s]);return o}({1:[function(t,r,n){(function(t){"use strict";!function(o,i){"object"==typeof n&&"undefined"!=typeof r?r.exports=i("undefined"==typeof t?o:t):"function"==typeof e&&e.amd?e([],function(){return i(o)}):o.framebus=i(o)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(g.push(e),!0)}function r(e){var t,r={};for(t in I)I.hasOwnProperty(t)&&(r[t]=I[t]);return r._origin=e||"*",r}function n(e){var t,r,n=s(this);return a(e)?!1:a(n)?!1:(r=Array.prototype.slice.call(arguments,1),t=c(e,r,n),t===!1?!1:(y(b.top,t,n),!0))}function o(e,t){var r=s(this);return E(e,t,r)?!1:(v[r]=v[r]||{},v[r][e]=v[r][e]||[],v[r][e].push(t),!0)}function i(e,t){var r,n,o=s(this);if(E(e,t,o))return!1;if(n=v[o]&&v[o][e],!n)return!1;for(r=0;r<n.length;r++)if(n[r]===t)return n.splice(r,1),!0;return!1}function s(e){return e&&e._origin||"*"}function a(e){return"string"!=typeof e}function c(e,t,r){var n=!1,o={event:e,origin:r},i=t[t.length-1];"function"==typeof i&&(o.reply=m(i,r),t=t.slice(0,-1)),o.args=t;try{n=N+JSON.stringify(o)}catch(s){throw new Error("Could not stringify event: "+s.message)}return n}function u(e){var t,r,n,o;if(e.data.slice(0,N.length)!==N)return!1;try{t=JSON.parse(e.data.slice(N.length))}catch(i){return!1}return null!=t.reply&&(r=e.origin,n=e.source,o=t.reply,t.reply=function(e){var t=c(o,[e],r);return t===!1?!1:void n.postMessage(t,r)},t.args.push(t.reply)),t}function l(t){b||(b=t||e,b.addEventListener?b.addEventListener("message",p,!1):b.attachEvent?b.attachEvent("onmessage",p):null===b.onmessage?b.onmessage=p:b=null)}function f(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,r="x"===e?t:3&t|8;return r.toString(16)})}function p(e){var t;a(e.data)||(t=u(e),t&&(d("*",t.event,t.args,e),d(e.origin,t.event,t.args,e),_(e.data,t.origin,e.source)))}function d(e,t,r,n){var o;if(v[e]&&v[e][t])for(o=0;o<v[e][t].length;o++)v[e][t][o].apply(n,r)}function h(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function y(e,t,r){var n;try{for(e.postMessage(t,r),h(e)&&y(e.opener.top,t,r),n=0;n<e.frames.length;n++)y(e.frames[n],t,r)}catch(o){}}function _(e,t,r){var n,o;for(n=g.length-1;n>=0;n--)o=g[n],o.closed===!0?g=g.slice(n,1):r!==o&&y(o.top,e,t)}function m(e,t){function r(o,i){e(o,i),I.target(t).unsubscribe(n,r)}var n=f();return I.target(t).subscribe(n,r),n}function E(e,t,r){return a(e)?!0:"function"!=typeof t?!0:a(r)?!0:!1}var b,I,g=[],v={},N="/*framebus*/";return l(),I={target:r,include:t,publish:n,pub:n,trigger:n,emit:n,subscribe:o,sub:o,on:o,unsubscribe:i,unsub:i,off:i}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,r){"use strict";var n=e("./lib/set-attributes"),o=e("./lib/default-attributes"),i=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),r=i({},o,e);return r.style&&"string"!=typeof r.style&&(i(t.style,r.style),delete r.style),n(t,r),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":3,"./lib/default-attributes":4,"./lib/set-attributes":5}],3:[function(e,t,r){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(r){e[r]=t[r]})}),e}},{}],4:[function(e,t,r){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],5:[function(e,t,r){"use strict";t.exports=function(e,t){var r;for(var n in t)t.hasOwnProperty(n)&&(r=t[n],null==r?e.removeAttribute(n):e.setAttribute(n,r))}},{}],6:[function(e,t,r){"use strict";var n=e("./lib/error");t.exports={CALLBACK_REQUIRED:{type:n.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:n.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:n.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:n.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":18}],7:[function(e,t,r){"use strict";function n(e,t){var r,n=t?i(t):{},a=o(e.authorization).attrs,c=i(e.analyticsMetadata);n.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION;for(r in n._meta)n._meta.hasOwnProperty(r)&&(c[r]=n._meta[r]);return n._meta=c,a.tokenizationKey?n.tokenizationKey=a.tokenizationKey:n.authorizationFingerprint=a.authorizationFingerprint,n}var o=e("./create-authorization-data"),i=e("./json-clone"),s=e("./constants");t.exports=n},{"./constants":13,"./create-authorization-data":15,"./json-clone":19}],8:[function(e,t,r){"use strict";function n(e){return Math.floor(e/1e3)}function o(e,t,r){var o=e.getConfiguration(),a=e._request,c=n(Date.now()),u=o.gatewayConfiguration.analytics.url,l={analytics:[{kind:t,timestamp:c}]};a({url:u,method:"post",data:s(o,l),timeout:i.ANALYTICS_REQUEST_TIMEOUT_MS},r)}var i=e("./constants"),s=e("./add-metadata");t.exports={sendEvent:o}},{"./add-metadata":7,"./constants":13}],9:[function(e,t,r){(function(e){"use strict";function r(t){return t=t||e.navigator.userAgent,t.indexOf("Opera Mini")>-1}function n(t){return t=t||e.navigator.userAgent,t.indexOf("Android")>-1&&t.indexOf("Firefox")>-1}function o(t){return t=t||e.navigator.userAgent,-1!==t.indexOf("MSIE")?parseInt(t.replace(/.*MSIE ([0-9]+)\..*/,"$1"),10):/Trident.*rv:11/.test(t)?11:null}function i(t){return t=t||e.location.protocol,"https:"===t}t.exports={isOperaMini:r,isAndroidFirefox:n,getIEVersion:o,isHTTPS:i}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(e,t,r){"use strict";function n(e,t){var r,n,i=document.createElement("a");return i.href=t,n="https:"===i.protocol?i.host.replace(/:443$/,""):"http:"===i.protocol?i.host.replace(/:80$/,""):i.host,r=i.protocol+"//"+n,r===e||o.test(e)}var o=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:n}},{}],11:[function(e,t,r){"use strict";var n=e("../enumerate");t.exports=n(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":17}],12:[function(e,t,r){"use strict";function n(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new a({type:a.types.INTERNAL,code:"MISSING_CHANNEL_ID",message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var o=e("framebus"),i=e("./events"),s=e("./check-origin").checkOrigin,a=e("../error");n.prototype.on=function(e,t){var r,n,i=t,a=this;this._isDestroyed||(this.merchantUrl&&(i=function(){s(this.origin,a.merchantUrl)&&t.apply(this,arguments)}),r=this._namespaceEvent(e),n=Array.prototype.slice.call(arguments),n[0]=r,n[1]=i,this._log("on",n),o.on.apply(o,n),this._listeners.push({eventName:e,handler:i,originalHandler:t}))},n.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),o.emit.apply(o,t))},n.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),o.off.apply(o,t))},n.prototype.off=function(e,t){var r,n,o=t;if(!this._isDestroyed){if(this.merchantUrl)for(r=0;r<this._listeners.length;r++)n=this._listeners[r],n.originalHandler===t&&(o=n.handler);this._offDirect(e,o)}},n.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},n.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},n.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},n.events=i,t.exports=n},{"../error":18,"./check-origin":10,"./events":11,framebus:1}],13:[function(e,t,r){"use strict";var n="3.0.0-beta.12",o="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:n,INTEGRATION:"custom",SOURCE:"client",PLATFORM:o,BRAINTREE_LIBRARY_VERSION:"braintree/"+o+"/"+n}},{}],14:[function(e,t,r){"use strict";var n=e("./error"),o=e("../errors");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new n({type:o.METHOD_CALLED_AFTER_TEARDOWN.type,code:o.METHOD_CALLED_AFTER_TEARDOWN.code,message:t+" cannot be called after teardown."})}})}},{"../errors":6,"./error":18}],15:[function(e,t,r){"use strict";function n(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function o(e){var t=e.split("_"),r=t[0],n=t.slice(2).join("_");return{merchantId:n,environment:r}}function i(e){var t,r,i={attrs:{},configUrl:""};return n(e)?(r=o(e),i.attrs.tokenizationKey=e,i.configUrl=a[r.environment]+"/merchants/"+r.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(s(e)),i.attrs.authorizationFingerprint=t.authorizationFingerprint,i.configUrl=t.configUrl),i}var s=e("../lib/polyfill").atob,a={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=i},{"../lib/polyfill":21}],16:[function(e,t,r){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],17:[function(e,t,r){"use strict";function n(e,t){return t=null==t?"":t,e.reduce(function(e,r){return e[r]=t+r,e},{})}t.exports=n},{}],18:[function(e,t,r){"use strict";function n(e){if(!n.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.code)throw new Error("Error code required.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=e.code,this.message=e.message,this.type=e.type,this.details=e.details}var o=e("./enumerate");n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.types=o(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=n},{"./enumerate":17}],19:[function(e,t,r){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],20:[function(e,t,r){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],21:[function(e,t,r){(function(e){"use strict";function r(e){var t,r,n,o,i,s,a,c,u=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="";if(!u.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");c=0;do o=l.indexOf(e.charAt(c++)),i=l.indexOf(e.charAt(c++)),s=l.indexOf(e.charAt(c++)),a=l.indexOf(e.charAt(c++)),t=(63&o)<<2|i>>4&3,r=(15&i)<<4|s>>2&15,n=(3&s)<<6|63&a,f+=String.fromCharCode(t)+(r?String.fromCharCode(r):"")+(n?String.fromCharCode(n):"");while(c<e.length);return f}var n="function"==typeof e.atob?e.atob:r;t.exports={atob:n,_atob:r}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(e,t,r){"use strict";function n(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,r="x"===e?t:3&t|8;return r.toString(16)})}t.exports=n},{}],23:[function(e,t,r){"use strict";function n(e){this._options=e,this._assetsUrl=e.client.getConfiguration().gatewayConfiguration.assetsUrl,this._client=e.client}var o=e("../../lib/error"),i=e("../../lib/analytics"),s=e("../../lib/methods"),a=e("../../lib/convert-methods-to-error"),c=e("../shared/constants.json"),u=e("../../lib/bus"),l=e("../../lib/uuid"),f=e("../../lib/deferred"),p=e("../shared/errors"),d=e("../shared/events"),h="3.0.0-beta.12",y=e("iframer"),_=e("../../errors"),m=400,E=400;n.prototype.verifyCard=function(e,t){var r,n,i,s,a;if("function"!=typeof t)throw new o({type:_.CALLBACK_REQUIRED.type,code:_.CALLBACK_REQUIRED.code,message:"verifyCard must include a callback function."});return e=e||{},t=f(t),this._verifyCardInProgress===!0?s=p.AUTHENTICATION_IN_PROGRESS:e.nonce?e.amount?"function"!=typeof e.addFrame?a="an addFrame function":"function"!=typeof e.removeFrame&&(a="a removeFrame function"):a="an amount":a="a nonce",a&&(s={type:p.MISSING_VERIFY_CARD_OPTION.type,code:p.MISSING_VERIFY_CARD_OPTION.code,message:"verifyCard options must include "+a+"."}),s?void t(new o(s)):(this._verifyCardInProgress=!0,n=f(e.addFrame),i=f(e.removeFrame),r="payment_methods/"+e.nonce+"/three_d_secure/lookup",void this._client.request({endpoint:r,method:"post",data:{amount:e.amount}},function(e,r){return e?void t(e):(this._lookupPaymentMethod=r.paymentMethod,this._verifyCardCallback=function(){this._verifyCardInProgress=!1,t.apply(null,arguments)}.bind(this),void this._handleLookupResponse({lookupResponse:r,addFrame:n,removeFrame:i}))}.bind(this)))},n.prototype.cancelVerifyCard=function(e){var t;this._verifyCardInProgress=!1,"function"==typeof e&&(this._lookupPaymentMethod||(t=new o(p.NO_VERIFICATION_PAYLOAD)),e(t,this._lookupPaymentMethod))},n.prototype._handleLookupResponse=function(e){var t=e.lookupResponse;t.lookup&&t.lookup.acsUrl&&t.lookup.acsUrl.length>0?e.addFrame(null,this._createIframe({response:t.lookup,removeFrame:e.removeFrame})):this._verifyCardCallback(null,{nonce:t.paymentMethod.nonce,verificationDetails:t.threeDSecureInfo})},n.prototype._createIframe=function(e){var t,r,n=window.location.href,o=e.response;return this._bus=new u({channel:l(),merchantUrl:location.href}),r=this._assetsUrl+"/web/"+h+"/html/three-d-secure-authentication-complete-frame.html?channel="+encodeURIComponent(this._bus.channel)+"&",n.indexOf("#")>-1&&(n=n.split("#")[0]),this._bus.on(u.events.CONFIGURATION_REQUEST,function(e){e({acsUrl:o.acsUrl,pareq:o.pareq,termUrl:o.termUrl+"&three_d_secure_version="+h+"&authentication_complete_base_url="+encodeURIComponent(r),md:o.md,parentUrl:n})}),this._bus.on(d.AUTHENTICATION_COMPLETE,function(t){this._handleAuthResponse(t,e)}.bind(this)),t=this._assetsUrl+"/web/"+h+"/html/three-d-secure-bank-frame.min.html",this._bankIframe=y({src:t,height:m,width:E,name:c.LANDING_FRAME_NAME+"_"+this._bus.channel}),this._bankIframe},n.prototype._handleAuthResponse=function(e,t){var r=JSON.parse(e.auth_response);this._bus.teardown(),t.removeFrame(),f(function(){r.success?this._verifyCardCallback(null,this._formatAuthResponse(r.paymentMethod,r.threeDSecureInfo)):r.threeDSecureInfo&&r.threeDSecureInfo.liabilityShiftPossible?this._verifyCardCallback(null,this._formatAuthResponse(this._lookupPaymentMethod,r.threeDSecureInfo)):this._verifyCardCallback(new o({type:o.types.UNKNOWN,code:"UNKNOWN_AUTH_RESPONSE",message:r.error.message}))}.bind(this))()},n.prototype._formatAuthResponse=function(e,t){return{nonce:e.nonce,details:e.details,description:e.description,liabilityShifted:t.liabilityShifted,liabilityShiftPossible:t.liabilityShiftPossible}},n.prototype.teardown=function(e){var t;a(this,s(n.prototype)),i.sendEvent(this._options.client,"web.threedsecure.teardown-completed"),this._bus&&this._bus.teardown(),this._bankIframe&&(t=this._bankIframe.parentNode,t&&t.removeChild(this._bankIframe)),"function"==typeof e&&(e=f(e))()},t.exports=n},{"../../errors":6,"../../lib/analytics":8,"../../lib/bus":12,"../../lib/convert-methods-to-error":14,"../../lib/deferred":16,"../../lib/error":18,"../../lib/methods":20,"../../lib/uuid":22,"../shared/constants.json":25,"../shared/errors":26,"../shared/events":27,iframer:2}],24:[function(e,t,r){"use strict";function n(e,t){var r,n,p,d;if("function"!=typeof t)throw new s({type:l.CALLBACK_REQUIRED.type,code:l.CALLBACK_REQUIRED.code,message:"create must include a callback function."});if(t=c(t),null==e.client)return void t(new s({type:l.INSTANTIATION_OPTION_REQUIRED.type,code:l.INSTANTIATION_OPTION_REQUIRED.code,message:"options.client is required when instantiating 3D Secure."}));if(r=e.client.getConfiguration(),d=r.analyticsMetadata.sdkVersion,r.gatewayConfiguration.threeDSecureEnabled?r.analyticsMetadata.sdkVersion!==f?p={type:l.INCOMPATIBLE_VERSIONS.type,code:l.INCOMPATIBLE_VERSIONS.code,message:"Client (version "+d+") and 3D Secure (version "+f+") components must be from the same SDK version."}:i.isHTTPS()||(p=u.THREEDS_HTTPS_REQUIRED):p=u.THREEDS_NOT_ENABLED,p)return void t(new s(p));a.sendEvent(e.client,"web.threedsecure.initialized");try{n=new o(e)}catch(h){return void t(h)}t(null,n)}var o=e("./external/three-d-secure"),i=e("../lib/browser-detection"),s=e("../lib/error"),a=e("../lib/analytics"),c=e("../lib/deferred"),u=e("./shared/errors"),l=e("../errors"),f="3.0.0-beta.12";t.exports={create:n,VERSION:f}},{"../errors":6,"../lib/analytics":8,"../lib/browser-detection":9,"../lib/deferred":16,"../lib/error":18,"./external/three-d-secure":23,"./shared/errors":26}],25:[function(e,t,r){t.exports={LANDING_FRAME_NAME:"braintreethreedsecurelanding"}},{}],26:[function(e,t,r){"use strict";var n=e("../../lib/error");t.exports={AUTHENTICATION_IN_PROGRESS:{type:n.types.MERCHANT,code:"AUTHENTICATION_IN_PROGRESS",message:"Cannot call verifyCard while existing authentication is in progress."},MISSING_VERIFY_CARD_OPTION:{type:n.types.MERCHANT,code:"MISSING_VERIFY_CARD_OPTION"},NO_VERIFICATION_PAYLOAD:{type:n.types.MERCHANT,code:"NO_VERIFICATION_PAYLOAD",message:"No verification payload available."},THREEDS_NOT_ENABLED:{type:n.types.MERCHANT,code:"THREEDS_NOT_ENABLED",message:"3D Secure is not enabled for this merchant."},THREEDS_HTTPS_REQUIRED:{type:n.types.MERCHANT,code:"THREEDS_HTTPS_REQUIRED",message:"3D Secure requires HTTPS."},TERM_URL_REQUIRES_BRAINTREE_DOMAIN:{type:n.types.INTERNAL,code:"TERM_URL_REQUIRES_BRAINTREE_DOMAIN",message:"Term Url must be on a Braintree domain."}}},{"../../lib/error":18}],27:[function(e,t,r){"use strict";var n=e("../../lib/enumerate");t.exports=n(["AUTHENTICATION_COMPLETE"],"threedsecure:")},{"../../lib/enumerate":17}]},{},[24])(24)}); |
@@ -351,2 +351,26 @@ (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 = {})).unionpay = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
var BraintreeError = _dereq_('./lib/error'); | ||
module.exports = { | ||
CALLBACK_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CALLBACK_REQUIRED' | ||
}, | ||
INSTANTIATION_OPTION_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INSTANTIATION_OPTION_REQUIRED' | ||
}, | ||
INCOMPATIBLE_VERSIONS: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'INCOMPATIBLE_VERSIONS' | ||
}, | ||
METHOD_CALLED_AFTER_TEARDOWN: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'METHOD_CALLED_AFTER_TEARDOWN' | ||
} | ||
}; | ||
},{"./lib/error":18}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var createAuthorizationData = _dereq_('./create-authorization-data'); | ||
@@ -383,3 +407,3 @@ var jsonClone = _dereq_('./json-clone'); | ||
},{"./constants":11,"./create-authorization-data":13,"./json-clone":17}],7:[function(_dereq_,module,exports){ | ||
},{"./constants":13,"./create-authorization-data":15,"./json-clone":19}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -415,5 +439,30 @@ | ||
},{"./add-metadata":6,"./constants":11}],8:[function(_dereq_,module,exports){ | ||
},{"./add-metadata":7,"./constants":13}],9:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var assignNormalized = typeof Object.assign === 'function' ? Object.assign : assignPolyfill; | ||
function assignPolyfill(destination) { | ||
var i, source, key; | ||
for (i = 1; i < arguments.length; i++) { | ||
source = arguments[i]; | ||
for (key in source) { | ||
if (source.hasOwnProperty(key)) { | ||
destination[key] = source[key]; | ||
} | ||
} | ||
} | ||
return destination; | ||
} | ||
module.exports = { | ||
assign: assignNormalized, | ||
_assign: assignPolyfill | ||
}; | ||
},{}],10:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BT_ORIGIN_REGEX = /^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/; | ||
@@ -444,3 +493,3 @@ | ||
},{}],9:[function(_dereq_,module,exports){ | ||
},{}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -454,3 +503,3 @@ | ||
},{"../enumerate":15}],10:[function(_dereq_,module,exports){ | ||
},{"../enumerate":17}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -470,2 +519,3 @@ | ||
type: BraintreeError.types.INTERNAL, | ||
code: 'MISSING_CHANNEL_ID', | ||
message: 'Channel ID must be specified.' | ||
@@ -586,6 +636,6 @@ }); | ||
},{"../error":16,"./check-origin":8,"./events":9,"framebus":1}],11:[function(_dereq_,module,exports){ | ||
},{"../error":18,"./check-origin":10,"./events":11,"framebus":1}],13:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var VERSION = "3.0.0-beta.11"; | ||
var VERSION = "3.0.0-beta.12"; | ||
var PLATFORM = 'web'; | ||
@@ -603,6 +653,7 @@ | ||
},{}],12:[function(_dereq_,module,exports){ | ||
},{}],14:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('./error'); | ||
var sharedErrors = _dereq_('../errors'); | ||
@@ -613,3 +664,4 @@ module.exports = function (instance, methodNames) { | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.type, | ||
code: sharedErrors.METHOD_CALLED_AFTER_TEARDOWN.code, | ||
message: methodName + ' cannot be called after teardown.' | ||
@@ -621,3 +673,3 @@ }); | ||
},{"./error":16}],13:[function(_dereq_,module,exports){ | ||
},{"../errors":6,"./error":18}],15:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -671,3 +723,3 @@ | ||
},{"../lib/polyfill":19}],14:[function(_dereq_,module,exports){ | ||
},{"../lib/polyfill":21}],16:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -686,3 +738,3 @@ | ||
},{}],15:[function(_dereq_,module,exports){ | ||
},{}],17:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -701,3 +753,3 @@ | ||
},{}],16:[function(_dereq_,module,exports){ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -719,2 +771,6 @@ | ||
if (!options.code) { | ||
throw new Error('Error code required.'); | ||
} | ||
if (!options.message) { | ||
@@ -728,2 +784,8 @@ throw new Error('Error message required.'); | ||
* @type {string} | ||
* @description A code that corresponds to specific errors. | ||
*/ | ||
this.code = options.code; | ||
/** | ||
* @type {string} | ||
* @description A short description of the error. | ||
@@ -771,3 +833,3 @@ */ | ||
},{"./enumerate":15}],17:[function(_dereq_,module,exports){ | ||
},{"./enumerate":17}],19:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -779,3 +841,3 @@ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
},{}],20:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -789,3 +851,3 @@ | ||
},{}],19:[function(_dereq_,module,exports){ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
(function (global){ | ||
@@ -829,3 +891,3 @@ 'use strict'; | ||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) | ||
},{}],20:[function(_dereq_,module,exports){ | ||
},{}],22:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -844,5 +906,8 @@ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
},{}],23:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
/** @module braintree-web/unionpay */ | ||
/** | ||
* @module braintree-web/unionpay | ||
* @description This module allows you to accept UnionPay payments. *It is currently in beta and is subject to change.* | ||
*/ | ||
@@ -853,3 +918,5 @@ var UnionPay = _dereq_('./shared/unionpay'); | ||
var deferred = _dereq_('../lib/deferred'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var errors = _dereq_('./shared/errors'); | ||
var sharedErrors = _dereq_('../errors'); | ||
var VERSION = "3.0.0-beta.12"; | ||
@@ -877,4 +944,5 @@ /** | ||
throw new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'UnionPay creation requires a callback.' | ||
type: sharedErrors.CALLBACK_REQUIRED.type, | ||
code: sharedErrors.CALLBACK_REQUIRED.code, | ||
message: 'create must include a callback function.' | ||
}); | ||
@@ -887,3 +955,4 @@ } | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INSTANTIATION_OPTION_REQUIRED.type, | ||
code: sharedErrors.INSTANTIATION_OPTION_REQUIRED.code, | ||
message: 'options.client is required when instantiating UnionPay.' | ||
@@ -899,3 +968,4 @@ })); | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
type: sharedErrors.INCOMPATIBLE_VERSIONS.type, | ||
code: sharedErrors.INCOMPATIBLE_VERSIONS.code, | ||
message: 'Client (version ' + clientVersion + ') and UnionPay (version ' + VERSION + ') components must be from the same SDK version.' | ||
@@ -907,6 +977,3 @@ })); | ||
if (!config.gatewayConfiguration.unionPay || config.gatewayConfiguration.unionPay.enabled !== true) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'UnionPay is not enabled for this merchant.' | ||
})); | ||
callback(new BraintreeError(errors.UNIONPAY_NOT_ENABLED)); | ||
return; | ||
@@ -929,3 +996,3 @@ } | ||
},{"../lib/analytics":7,"../lib/deferred":14,"../lib/error":16,"./shared/unionpay":23}],22:[function(_dereq_,module,exports){ | ||
},{"../errors":6,"../lib/analytics":8,"../lib/deferred":16,"../lib/error":18,"./shared/errors":25,"./shared/unionpay":26}],24:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -941,23 +1008,89 @@ | ||
], 'union-pay:'), | ||
HOSTED_FIELDS_FRAME_NAME: 'braintreeunionpayhostedfields', | ||
INVALID_HOSTED_FIELDS_ERROR_MESSAGE: 'Found an invalid Hosted Fields instance. Please use a valid Hosted Fields instance.', | ||
CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE: 'A card or a Hosted Fields instance is required. Please supply a card or a Hosted Fields instance.', | ||
CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE: 'Please supply either a card or a Hosted Fields instance, not both.', | ||
NO_HOSTED_FIELDS_ERROR_MESSAGE: 'Could not find the Hosted Fields instance.' | ||
HOSTED_FIELDS_FRAME_NAME: 'braintreeunionpayhostedfields' | ||
}; | ||
},{"../../lib/enumerate":15}],23:[function(_dereq_,module,exports){ | ||
},{"../../lib/enumerate":17}],25:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var BraintreeError = _dereq_('../../lib/error'); | ||
module.exports = { | ||
UNIONPAY_NOT_ENABLED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'UNIONPAY_NOT_ENABLED', | ||
message: 'UnionPay is not enabled for this merchant.' | ||
}, | ||
HOSTED_FIELDS_INSTANCE_INVALID: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'HOSTED_FIELDS_INSTANCE_INVALID', | ||
message: 'Found an invalid Hosted Fields instance. Please use a valid Hosted Fields instance.' | ||
}, | ||
HOSTED_FIELDS_INSTANCE_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'HOSTED_FIELDS_INSTANCE_REQUIRED', | ||
message: 'Could not find the Hosted Fields instance.' | ||
}, | ||
CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED', | ||
message: 'A card or a Hosted Fields instance is required. Please supply a card or a Hosted Fields instance.' | ||
}, | ||
CARD_AND_HOSTED_FIELDS_INSTANCES: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'CARD_AND_HOSTED_FIELDS_INSTANCES', | ||
message: 'Please supply either a card or a Hosted Fields instance, not both.' | ||
}, | ||
EXPIRATION_DATE_INCOMPLETE: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'EXPIRATION_DATE_INCOMPLETE', | ||
message: 'You must supply expiration month and year or neither.' | ||
}, | ||
ENROLLMENT_CUSTOMER_INPUT_INVALID: { | ||
type: BraintreeError.types.CUSTOMER, | ||
code: 'ENROLLMENT_CUSTOMER_INPUT_INVALID', | ||
message: 'Enrollment failed due to user input error.' | ||
}, | ||
ENROLLMENT_NETWORK_ERROR: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'ENROLLMENT_NETWORK_ERROR', | ||
message: 'Could not enroll UnionPay card.' | ||
}, | ||
FETCH_CAPABILITIES_NETWORK_ERROR: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'FETCH_CAPABILITIES_NETWORK_ERROR', | ||
message: 'Could not fetch card capabilities.' | ||
}, | ||
UNIONPAY_TOKENIZATION_NETWORK_ERROR: { | ||
type: BraintreeError.types.NETWORK, | ||
code: 'UNIONPAY_TOKENIZATION_NETWORK_ERROR', | ||
message: 'A tokenization network error occurred.' | ||
}, | ||
MISSING_MOBILE_PHONE_DATA: { | ||
type: BraintreeError.types.MERCHANT, | ||
code: 'MISSING_MOBILE_PHONE_DATA', | ||
message: 'A `mobile` with `countryCode` and `number` is required.' | ||
}, | ||
UNIONPAY_FAILED_TOKENIZATION: { | ||
type: BraintreeError.types.CUSTOMER, | ||
code: 'UNIONPAY_FAILED_TOKENIZATION', | ||
message: 'The supplied card data failed tokenization.' | ||
} | ||
}; | ||
},{"../../lib/error":18}],26:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var analytics = _dereq_('../../lib/analytics'); | ||
var assign = _dereq_('../../lib/assign').assign; | ||
var BraintreeError = _dereq_('../../lib/error'); | ||
var Bus = _dereq_('../../lib/bus'); | ||
var analytics = _dereq_('../../lib/analytics'); | ||
var constants = _dereq_('./constants'); | ||
var convertMethodsToError = _dereq_('../../lib/convert-methods-to-error'); | ||
var deferred = _dereq_('../../lib/deferred'); | ||
var errors = _dereq_('./errors'); | ||
var events = constants.events; | ||
var iFramer = _dereq_('iframer'); | ||
var methods = _dereq_('../../lib/methods'); | ||
var VERSION = "3.0.0-beta.12"; | ||
var uuid = _dereq_('../../lib/uuid'); | ||
var methods = _dereq_('../../lib/methods'); | ||
var deferred = _dereq_('../../lib/deferred'); | ||
var convertMethodsToError = _dereq_('../../lib/convert-methods-to-error'); | ||
var VERSION = "3.0.0-beta.11"; | ||
var constants = _dereq_('./constants'); | ||
var events = constants.events; | ||
@@ -1062,6 +1195,3 @@ /** | ||
if (cardNumber && hostedFields) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.CARD_AND_HOSTED_FIELDS_INSTANCES)); | ||
return; | ||
@@ -1081,4 +1211,5 @@ } else if (cardNumber) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: 'Fetch capabilities network error.', | ||
type: errors.FETCH_CAPABILITIES_NETWORK_ERROR.type, | ||
code: errors.FETCH_CAPABILITIES_NETWORK_ERROR.code, | ||
message: errors.FETCH_CAPABILITIES_NETWORK_ERROR.message, | ||
details: { | ||
@@ -1097,6 +1228,3 @@ originalError: err | ||
if (!hostedFields._bus) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.INVALID_HOSTED_FIELDS_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.HOSTED_FIELDS_INSTANCE_INVALID)); | ||
return; | ||
@@ -1115,6 +1243,3 @@ } | ||
} else { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED)); | ||
return; | ||
@@ -1203,6 +1328,3 @@ } | ||
if (!mobile) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'A `mobile` with `countryCode` and `number` is required.' | ||
})); | ||
callback(new BraintreeError(errors.MISSING_MOBILE_PHONE_DATA)); | ||
return; | ||
@@ -1213,12 +1335,6 @@ } | ||
if (!hostedFields._bus) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.INVALID_HOSTED_FIELDS_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.HOSTED_FIELDS_INSTANCE_INVALID)); | ||
return; | ||
} else if (card) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.CARD_AND_HOSTED_FIELDS_INSTANCES)); | ||
return; | ||
@@ -1254,6 +1370,3 @@ } | ||
} else { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: 'You must supply expiration month and year or neither.' | ||
})); | ||
callback(new BraintreeError(errors.EXPIRATION_DATE_INCOMPLETE)); | ||
return; | ||
@@ -1268,21 +1381,16 @@ } | ||
}, function (err, response, status) { | ||
var message, type; | ||
var error; | ||
if (err) { | ||
if (status < 500) { | ||
type = BraintreeError.types.CUSTOMER; | ||
message = 'Enrollment invalid due to customer input error.'; | ||
error = errors.ENROLLMENT_CUSTOMER_INPUT_INVALID; | ||
} else { | ||
type = BraintreeError.types.NETWORK; | ||
message = 'An enrollment network error occurred.'; | ||
error = errors.ENROLLMENT_NETWORK_ERROR; | ||
} | ||
error = assign({}, error, { | ||
details: {originalError: err} | ||
}); | ||
analytics.sendEvent(client, 'web.unionpay.enrollment-failed'); | ||
callback(new BraintreeError({ | ||
type: type, | ||
message: message, | ||
details: { | ||
originalError: err | ||
} | ||
})); | ||
callback(new BraintreeError(error)); | ||
return; | ||
@@ -1298,6 +1406,3 @@ } | ||
} else { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED)); | ||
return; | ||
@@ -1365,3 +1470,3 @@ } | ||
UnionPay.prototype.tokenize = function (options, callback) { | ||
var data, tokenizedCard; | ||
var data, tokenizedCard, error; | ||
var client = this._options.client; | ||
@@ -1374,6 +1479,3 @@ var card = options.card; | ||
if (card && hostedFields) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.CARD_AND_HOSTED_FIELDS_INSTANCES)); | ||
return; | ||
@@ -1417,19 +1519,10 @@ } else if (card) { | ||
if (status < 500) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.CUSTOMER, | ||
message: 'The supplied card data failed tokenization.', | ||
details: { | ||
originalError: err | ||
} | ||
})); | ||
error = errors.UNIONPAY_FAILED_TOKENIZATION; | ||
} else { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.NETWORK, | ||
message: 'A tokenization network error occurred.', | ||
details: { | ||
originalError: err | ||
} | ||
})); | ||
error = errors.UNIONPAY_TOKENIZATION_NETWORK_ERROR; | ||
} | ||
error = assign({}, error, { | ||
details: {originalError: err} | ||
}); | ||
callback(new BraintreeError(error)); | ||
return; | ||
@@ -1441,3 +1534,2 @@ } | ||
delete tokenizedCard.threeDSecureInfo; | ||
delete tokenizedCard.type; | ||
@@ -1449,6 +1541,3 @@ analytics.sendEvent(client, 'web.unionpay.nonce-received'); | ||
if (!hostedFields._bus) { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.INVALID_HOSTED_FIELDS_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.HOSTED_FIELDS_INSTANCE_INVALID)); | ||
return; | ||
@@ -1468,6 +1557,3 @@ } | ||
} else { | ||
callback(new BraintreeError({ | ||
type: BraintreeError.types.MERCHANT, | ||
message: constants.CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE | ||
})); | ||
callback(new BraintreeError(errors.CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED)); | ||
return; | ||
@@ -1535,3 +1621,3 @@ } | ||
},{"../../lib/analytics":7,"../../lib/bus":10,"../../lib/convert-methods-to-error":12,"../../lib/deferred":14,"../../lib/error":16,"../../lib/methods":18,"../../lib/uuid":20,"./constants":22,"iframer":2}]},{},[21])(21) | ||
},{"../../lib/analytics":8,"../../lib/assign":9,"../../lib/bus":12,"../../lib/convert-methods-to-error":14,"../../lib/deferred":16,"../../lib/error":18,"../../lib/methods":20,"../../lib/uuid":22,"./constants":24,"./errors":25,"iframer":2}]},{},[23])(23) | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).unionpay=e()}}(function(){var e;return function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(t,n,r){(function(t){"use strict";!function(i,o){"object"==typeof r&&"undefined"!=typeof n?n.exports=o("undefined"==typeof t?i:t):"function"==typeof e&&e.amd?e([],function(){return o(i)}):i.framebus=o(i)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(g.push(e),!0)}function n(e){var t,n={};for(t in v)v.hasOwnProperty(t)&&(n[t]=v[t]);return n._origin=e||"*",n}function r(e){var t,n,r=s(this);return a(e)?!1:a(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=u(e,n,r),t===!1?!1:(y(b.top,t,r),!0))}function i(e,t){var n=s(this);return _(e,t,n)?!1:(x[n]=x[n]||{},x[n][e]=x[n][e]||[],x[n][e].push(t),!0)}function o(e,t){var n,r,i=s(this);if(_(e,t,i))return!1;if(r=x[i]&&x[i][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function s(e){return e&&e._origin||"*"}function a(e){return"string"!=typeof e}function u(e,t,n){var r=!1,i={event:e,origin:n},o=t[t.length-1];"function"==typeof o&&(i.reply=m(o,n),t=t.slice(0,-1)),i.args=t;try{r=R+JSON.stringify(i)}catch(s){throw new Error("Could not stringify event: "+s.message)}return r}function l(e){var t,n,r,i;if(e.data.slice(0,R.length)!==R)return!1;try{t=JSON.parse(e.data.slice(R.length))}catch(o){return!1}return null!=t.reply&&(n=e.origin,r=e.source,i=t.reply,t.reply=function(e){var t=u(i,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function c(t){b||(b=t||e,b.addEventListener?b.addEventListener("message",p,!1):b.attachEvent?b.attachEvent("onmessage",p):null===b.onmessage?b.onmessage=p:b=null)}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function p(e){var t;a(e.data)||(t=l(e),t&&(f("*",t.event,t.args,e),f(e.origin,t.event,t.args,e),E(e.data,t.origin,e.source)))}function f(e,t,n,r){var i;if(x[e]&&x[e][t])for(i=0;i<x[e][t].length;i++)x[e][t][i].apply(r,n)}function h(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function y(e,t,n){var r;try{for(e.postMessage(t,n),h(e)&&y(e.opener.top,t,n),r=0;r<e.frames.length;r++)y(e.frames[r],t,n)}catch(i){}}function E(e,t,n){var r,i;for(r=g.length-1;r>=0;r--)i=g[r],i.closed===!0?g=g.slice(r,1):n!==i&&y(i.top,e,t)}function m(e,t){function n(i,o){e(i,o),v.target(t).unsubscribe(r,n)}var r=d();return v.target(t).subscribe(r,n),r}function _(e,t,n){return a(e)?!0:"function"!=typeof t?!0:a(n)?!0:!1}var b,v,g=[],x={},R="/*framebus*/";return c(),v={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:i,sub:i,on:i,unsubscribe:o,unsub:o,off:o}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),i=e("./lib/default-attributes"),o=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=o({},i,e);return n.style&&"string"!=typeof n.style&&(o(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":3,"./lib/default-attributes":4,"./lib/set-attributes":5}],3:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],4:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],5:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],6:[function(e,t,n){"use strict";function r(e,t){var n,r=t?o(t):{},a=i(e.authorization).attrs,u=o(e.analyticsMetadata);r.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(u[n]=r._meta[n]);return r._meta=u,a.tokenizationKey?r.tokenizationKey=a.tokenizationKey:r.authorizationFingerprint=a.authorizationFingerprint,r}var i=e("./create-authorization-data"),o=e("./json-clone"),s=e("./constants");t.exports=r},{"./constants":11,"./create-authorization-data":13,"./json-clone":17}],7:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function i(e,t,n){var i=e.getConfiguration(),a=e._request,u=r(Date.now()),l=i.gatewayConfiguration.analytics.url,c={analytics:[{kind:t,timestamp:u}]};a({url:l,method:"post",data:s(i,c),timeout:o.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var o=e("./constants"),s=e("./add-metadata");t.exports={sendEvent:i}},{"./add-metadata":6,"./constants":11}],8:[function(e,t,n){"use strict";function r(e,t){var n,r,o=document.createElement("a");return o.href=t,r="https:"===o.protocol?o.host.replace(/:443$/,""):"http:"===o.protocol?o.host.replace(/:80$/,""):o.host,n=o.protocol+"//"+r,n===e||i.test(e)}var i=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],9:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":15}],10:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new a({type:a.types.INTERNAL,message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var i=e("framebus"),o=e("./events"),s=e("./check-origin").checkOrigin,a=e("../error");r.prototype.on=function(e,t){var n,r,o=t,a=this;this._isDestroyed||(this.merchantUrl&&(o=function(){s(this.origin,a.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=o,this._log("on",r),i.on.apply(i,r),this._listeners.push({eventName:e,handler:o,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),i.emit.apply(i,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),i.off.apply(i,t))},r.prototype.off=function(e,t){var n,r,i=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(i=r.handler);this._offDirect(e,i)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=o,t.exports=r},{"../error":16,"./check-origin":8,"./events":9,framebus:1}],11:[function(e,t,n){"use strict";var r="3.0.0-beta.11",i="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:i,BRAINTREE_LIBRARY_VERSION:"braintree/"+i+"/"+r}},{}],12:[function(e,t,n){"use strict";var r=e("./error");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:r.types.MERCHANT,message:t+" cannot be called after teardown."})}})}},{"./error":16}],13:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function i(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function o(e){var t,n,o={attrs:{},configUrl:""};return r(e)?(n=i(e),o.attrs.tokenizationKey=e,o.configUrl=a[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(s(e)),o.attrs.authorizationFingerprint=t.authorizationFingerprint,o.configUrl=t.configUrl),o}var s=e("../lib/polyfill").atob,a={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=o},{"../lib/polyfill":19}],14:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],15:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],16:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.message=e.message,this.type=e.type,this.details=e.details}var i=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":15}],17:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],18:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],19:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,i,o,s,a,u,l=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d="";if(!l.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");u=0;do i=c.indexOf(e.charAt(u++)),o=c.indexOf(e.charAt(u++)),s=c.indexOf(e.charAt(u++)),a=c.indexOf(e.charAt(u++)),t=(63&i)<<2|o>>4&3,n=(15&o)<<4|s>>2&15,r=(3&s)<<6|63&a,d+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(u<e.length);return d}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],20:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}],21:[function(e,t,n){"use strict";function r(e,t){var n,r;if("function"!=typeof t)throw new o({type:o.types.MERCHANT,message:"UnionPay creation requires a callback."});return t=a(t),null==e.client?void t(new o({type:o.types.MERCHANT,message:"options.client is required when instantiating UnionPay."})):(n=e.client.getConfiguration(),r=n.analyticsMetadata.sdkVersion,r!==u?void t(new o({type:o.types.MERCHANT,message:"Client (version "+r+") and UnionPay (version "+u+") components must be from the same SDK version."})):n.gatewayConfiguration.unionPay&&n.gatewayConfiguration.unionPay.enabled===!0?(s.sendEvent(e.client,"web.unionpay.initialized"),void t(null,new i(e))):void t(new o({type:o.types.MERCHANT,message:"UnionPay is not enabled for this merchant."})))}var i=e("./shared/unionpay"),o=e("../lib/error"),s=e("../lib/analytics"),a=e("../lib/deferred"),u="3.0.0-beta.11";t.exports={create:r,VERSION:u}},{"../lib/analytics":7,"../lib/deferred":14,"../lib/error":16,"./shared/unionpay":23}],22:[function(e,t,n){"use strict";var r=e("../../lib/enumerate");t.exports={events:r(["HOSTED_FIELDS_FETCH_CAPABILITIES","HOSTED_FIELDS_ENROLL","HOSTED_FIELDS_TOKENIZE"],"union-pay:"),HOSTED_FIELDS_FRAME_NAME:"braintreeunionpayhostedfields",INVALID_HOSTED_FIELDS_ERROR_MESSAGE:"Found an invalid Hosted Fields instance. Please use a valid Hosted Fields instance.",CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE:"A card or a Hosted Fields instance is required. Please supply a card or a Hosted Fields instance.",CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE:"Please supply either a card or a Hosted Fields instance, not both.",NO_HOSTED_FIELDS_ERROR_MESSAGE:"Could not find the Hosted Fields instance."}},{"../../lib/enumerate":15}],23:[function(e,t,n){"use strict";function r(e){this._options=e}var i=e("../../lib/error"),o=e("../../lib/bus"),s=e("../../lib/analytics"),a=e("iframer"),u=e("../../lib/uuid"),l=e("../../lib/methods"),c=e("../../lib/deferred"),d=e("../../lib/convert-methods-to-error"),p="3.0.0-beta.11",f=e("./constants"),h=f.events;r.prototype.fetchCapabilities=function(e,t){var n=this._options.client,r=e.card?e.card.number:null,o=e.hostedFields;if(t=c(t),r&&o)return void t(new i({type:i.types.MERCHANT,message:f.CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE}));if(r)n.request({method:"get",endpoint:"payment_methods/credit_cards/capabilities",data:{_meta:{source:"unionpay"},creditCard:{number:r}}},function(e,r){return e?(t(new i({type:i.types.NETWORK,message:"Fetch capabilities network error.",details:{originalError:e}})),void s.sendEvent(n,"web.unionpay.capabilities-failed")):(s.sendEvent(n,"web.unionpay.capabilities-received"),void t(null,r))});else{if(!o)return void t(new i({type:i.types.MERCHANT,message:f.CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE}));if(!o._bus)return void t(new i({type:i.types.MERCHANT,message:f.INVALID_HOSTED_FIELDS_ERROR_MESSAGE}));this._initializeHostedFields(function(){this._bus.emit(h.HOSTED_FIELDS_FETCH_CAPABILITIES,{hostedFields:o},function(e){return e.err?void t(new i(e.err)):void t(null,e.payload)})}.bind(this))}},r.prototype.enroll=function(e,t){var n,r=this._options.client,o=e.card,a=e.mobile,u=e.hostedFields;if(t=c(t),!a)return void t(new i({type:i.types.MERCHANT,message:"A `mobile` with `countryCode` and `number` is required."}));if(u){if(!u._bus)return void t(new i({type:i.types.MERCHANT,message:f.INVALID_HOSTED_FIELDS_ERROR_MESSAGE}));if(o)return void t(new i({type:i.types.MERCHANT,message:f.CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE}));this._initializeHostedFields(function(){this._bus.emit(h.HOSTED_FIELDS_ENROLL,{hostedFields:u,mobile:a},function(e){return e.err?void t(new i(e.err)):void t(null,e.payload)})}.bind(this))}else{if(!o||!o.number)return void t(new i({type:i.types.MERCHANT,message:f.CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE}));if(n={_meta:{source:"unionpay"},unionPayEnrollment:{number:o.number,mobileCountryCode:a.countryCode,mobileNumber:a.number}},o.expirationDate)n.unionPayEnrollment.expirationDate=o.expirationDate;else if(o.expirationMonth||o.expirationYear){if(!o.expirationMonth||!o.expirationYear)return void t(new i({type:i.types.MERCHANT,message:"You must supply expiration month and year or neither."}));n.unionPayEnrollment.expirationYear=o.expirationYear,n.unionPayEnrollment.expirationMonth=o.expirationMonth}r.request({method:"post",endpoint:"union_pay_enrollments",data:n},function(e,n,o){var a,u;return e?(500>o?(u=i.types.CUSTOMER,a="Enrollment invalid due to customer input error."):(u=i.types.NETWORK,a="An enrollment network error occurred."),s.sendEvent(r,"web.unionpay.enrollment-failed"),void t(new i({type:u,message:a,details:{originalError:e}}))):(s.sendEvent(r,"web.unionpay.enrollment-succeeded"),void t(null,{enrollmentId:n.unionPayEnrollmentId,smsCodeRequired:n.smsCodeRequired}))})}},r.prototype.tokenize=function(e,t){var n,r,o=this._options.client,a=e.card,u=e.hostedFields;if(t=c(t),a&&u)return void t(new i({type:i.types.MERCHANT,message:f.CARD_AND_HOSTED_FIELDS_ERROR_MESSAGE}));if(a)n={_meta:{source:"unionpay"},creditCard:{number:e.card.number,options:{unionPayEnrollment:{id:e.enrollmentId}}}},e.smsCode&&(n.creditCard.options.unionPayEnrollment.smsCode=e.smsCode),a.expirationDate?n.creditCard.expirationDate=a.expirationDate:a.expirationMonth&&a.expirationYear&&(n.creditCard.expirationYear=a.expirationYear,n.creditCard.expirationMonth=a.expirationMonth),e.card.cvv&&(n.creditCard.cvv=e.card.cvv),o.request({method:"post",endpoint:"payment_methods/credit_cards",data:n},function(e,n,a){return e?(s.sendEvent(o,"web.unionpay.nonce-failed"),void t(500>a?new i({type:i.types.CUSTOMER,message:"The supplied card data failed tokenization.",details:{originalError:e}}):new i({type:i.types.NETWORK,message:"A tokenization network error occurred.",details:{originalError:e}}))):(r=n.creditCards[0],delete r.consumed,delete r.threeDSecureInfo,delete r.type,s.sendEvent(o,"web.unionpay.nonce-received"),void t(null,r))});else{if(!u)return void t(new i({type:i.types.MERCHANT,message:f.CARD_OR_HOSTED_FIELDS_REQUIRED_ERROR_MESSAGE}));if(!u._bus)return void t(new i({type:i.types.MERCHANT,message:f.INVALID_HOSTED_FIELDS_ERROR_MESSAGE}));this._initializeHostedFields(function(){this._bus.emit(h.HOSTED_FIELDS_TOKENIZE,e,function(e){return e.err?void t(new i(e.err)):void t(null,e.payload)})}.bind(this))}},r.prototype.teardown=function(e){this._bus&&(this._hostedFieldsFrame.parentNode.removeChild(this._hostedFieldsFrame),this._bus.teardown()),d(this,l(r.prototype)),"function"==typeof e&&(e=c(e))()},r.prototype._initializeHostedFields=function(e){var t=u();return this._bus?void e():(this._bus=new o({channel:t,merchantUrl:location.href}),this._hostedFieldsFrame=a({name:f.HOSTED_FIELDS_FRAME_NAME+"_"+t,src:this._options.client.getConfiguration().gatewayConfiguration.assetsUrl+"/web/"+p+"/html/unionpay-hosted-fields-frame.min.html",height:0,width:0}),this._bus.on(o.events.CONFIGURATION_REQUEST,function(t){t(this._options.client),e()}.bind(this)),void document.body.appendChild(this._hostedFieldsFrame))},t.exports=r},{"../../lib/analytics":7,"../../lib/bus":10,"../../lib/convert-methods-to-error":12,"../../lib/deferred":14,"../../lib/error":16,"../../lib/methods":18,"../../lib/uuid":20,"./constants":22,iframer:2}]},{},[21])(21)}); | ||
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,(t.braintree||(t.braintree={})).unionpay=e()}}(function(){var e;return function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}};e[s][0].call(l.exports,function(t){var n=e[s][1][t];return i(n?n:t)},l,l.exports,t,e,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(t,n,r){(function(t){"use strict";!function(i,o){"object"==typeof r&&"undefined"!=typeof n?n.exports=o("undefined"==typeof t?i:t):"function"==typeof e&&e.amd?e([],function(){return o(i)}):i.framebus=o(i)}(this,function(e){function t(e){return null==e?!1:null==e.Window?!1:e.constructor!==e.Window?!1:(m.push(e),!0)}function n(e){var t,n={};for(t in T)T.hasOwnProperty(t)&&(n[t]=T[t]);return n._origin=e||"*",n}function r(e){var t,n,r=s(this);return a(e)?!1:a(r)?!1:(n=Array.prototype.slice.call(arguments,1),t=u(e,n,r),t===!1?!1:(_(I.top,t,r),!0))}function i(e,t){var n=s(this);return N(e,t,n)?!1:(O[n]=O[n]||{},O[n][e]=O[n][e]||[],O[n][e].push(t),!0)}function o(e,t){var n,r,i=s(this);if(N(e,t,i))return!1;if(r=O[i]&&O[i][e],!r)return!1;for(n=0;n<r.length;n++)if(r[n]===t)return r.splice(n,1),!0;return!1}function s(e){return e&&e._origin||"*"}function a(e){return"string"!=typeof e}function u(e,t,n){var r=!1,i={event:e,origin:n},o=t[t.length-1];"function"==typeof o&&(i.reply=y(o,n),t=t.slice(0,-1)),i.args=t;try{r=A+JSON.stringify(i)}catch(s){throw new Error("Could not stringify event: "+s.message)}return r}function c(e){var t,n,r,i;if(e.data.slice(0,A.length)!==A)return!1;try{t=JSON.parse(e.data.slice(A.length))}catch(o){return!1}return null!=t.reply&&(n=e.origin,r=e.source,i=t.reply,t.reply=function(e){var t=u(i,[e],n);return t===!1?!1:void r.postMessage(t,n)},t.args.push(t.reply)),t}function l(t){I||(I=t||e,I.addEventListener?I.addEventListener("message",p,!1):I.attachEvent?I.attachEvent("onmessage",p):null===I.onmessage?I.onmessage=p:I=null)}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}function p(e){var t;a(e.data)||(t=c(e),t&&(E("*",t.event,t.args,e),E(e.origin,t.event,t.args,e),h(e.data,t.origin,e.source)))}function E(e,t,n,r){var i;if(O[e]&&O[e][t])for(i=0;i<O[e][t].length;i++)O[e][t][i].apply(r,n)}function f(e){return e.top!==e?!1:null==e.opener?!1:e.opener===e?!1:e.opener.closed===!0?!1:!0}function _(e,t,n){var r;try{for(e.postMessage(t,n),f(e)&&_(e.opener.top,t,n),r=0;r<e.frames.length;r++)_(e.frames[r],t,n)}catch(i){}}function h(e,t,n){var r,i;for(r=m.length-1;r>=0;r--)i=m[r],i.closed===!0?m=m.slice(r,1):n!==i&&_(i.top,e,t)}function y(e,t){function n(i,o){e(i,o),T.target(t).unsubscribe(r,n)}var r=d();return T.target(t).subscribe(r,n),r}function N(e,t,n){return a(e)?!0:"function"!=typeof t?!0:a(n)?!0:!1}var I,T,m=[],O={},A="/*framebus*/";return l(),T={target:n,include:t,publish:r,pub:r,trigger:r,emit:r,subscribe:i,sub:i,on:i,unsubscribe:o,unsub:o,off:o}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,n){"use strict";var r=e("./lib/set-attributes"),i=e("./lib/default-attributes"),o=e("./lib/assign");t.exports=function(e){var t=document.createElement("iframe"),n=o({},i,e);return n.style&&"string"!=typeof n.style&&(o(t.style,n.style),delete n.style),r(t,n),t.getAttribute("id")||(t.id=t.name),t}},{"./lib/assign":3,"./lib/default-attributes":4,"./lib/set-attributes":5}],3:[function(e,t,n){"use strict";t.exports=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){"object"==typeof t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}},{}],4:[function(e,t,n){t.exports={src:"about:blank",frameBorder:0,allowtransparency:!0,scrolling:"no"}},{}],5:[function(e,t,n){"use strict";t.exports=function(e,t){var n;for(var r in t)t.hasOwnProperty(r)&&(n=t[r],null==n?e.removeAttribute(r):e.setAttribute(r,n))}},{}],6:[function(e,t,n){"use strict";var r=e("./lib/error");t.exports={CALLBACK_REQUIRED:{type:r.types.MERCHANT,code:"CALLBACK_REQUIRED"},INSTANTIATION_OPTION_REQUIRED:{type:r.types.MERCHANT,code:"INSTANTIATION_OPTION_REQUIRED"},INCOMPATIBLE_VERSIONS:{type:r.types.MERCHANT,code:"INCOMPATIBLE_VERSIONS"},METHOD_CALLED_AFTER_TEARDOWN:{type:r.types.MERCHANT,code:"METHOD_CALLED_AFTER_TEARDOWN"}}},{"./lib/error":18}],7:[function(e,t,n){"use strict";function r(e,t){var n,r=t?o(t):{},a=i(e.authorization).attrs,u=o(e.analyticsMetadata);r.braintreeLibraryVersion=s.BRAINTREE_LIBRARY_VERSION;for(n in r._meta)r._meta.hasOwnProperty(n)&&(u[n]=r._meta[n]);return r._meta=u,a.tokenizationKey?r.tokenizationKey=a.tokenizationKey:r.authorizationFingerprint=a.authorizationFingerprint,r}var i=e("./create-authorization-data"),o=e("./json-clone"),s=e("./constants");t.exports=r},{"./constants":13,"./create-authorization-data":15,"./json-clone":19}],8:[function(e,t,n){"use strict";function r(e){return Math.floor(e/1e3)}function i(e,t,n){var i=e.getConfiguration(),a=e._request,u=r(Date.now()),c=i.gatewayConfiguration.analytics.url,l={analytics:[{kind:t,timestamp:u}]};a({url:c,method:"post",data:s(i,l),timeout:o.ANALYTICS_REQUEST_TIMEOUT_MS},n)}var o=e("./constants"),s=e("./add-metadata");t.exports={sendEvent:i}},{"./add-metadata":7,"./constants":13}],9:[function(e,t,n){"use strict";function r(e){var t,n,r;for(t=1;t<arguments.length;t++){n=arguments[t];for(r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}return e}var i="function"==typeof Object.assign?Object.assign:r;t.exports={assign:i,_assign:r}},{}],10:[function(e,t,n){"use strict";function r(e,t){var n,r,o=document.createElement("a");return o.href=t,r="https:"===o.protocol?o.host.replace(/:443$/,""):"http:"===o.protocol?o.host.replace(/:80$/,""):o.host,n=o.protocol+"//"+r,n===e||i.test(e)}var i=/^https:\/\/([a-zA-Z0-9-]+\.)*(braintreepayments|braintreegateway|paypal)\.com(:\d{1,5})?$/;t.exports={checkOrigin:r}},{}],11:[function(e,t,n){"use strict";var r=e("../enumerate");t.exports=r(["CONFIGURATION_REQUEST"],"bus:")},{"../enumerate":17}],12:[function(e,t,n){"use strict";function r(e){if(e=e||{},this.channel=e.channel,!this.channel)throw new a({type:a.types.INTERNAL,code:"MISSING_CHANNEL_ID",message:"Channel ID must be specified."});this.merchantUrl=e.merchantUrl,this._isDestroyed=!1,this._isVerbose=!1,this._listeners=[],this._log("new bus on channel "+this.channel,[location.href])}var i=e("framebus"),o=e("./events"),s=e("./check-origin").checkOrigin,a=e("../error");r.prototype.on=function(e,t){var n,r,o=t,a=this;this._isDestroyed||(this.merchantUrl&&(o=function(){s(this.origin,a.merchantUrl)&&t.apply(this,arguments)}),n=this._namespaceEvent(e),r=Array.prototype.slice.call(arguments),r[0]=n,r[1]=o,this._log("on",r),i.on.apply(i,r),this._listeners.push({eventName:e,handler:o,originalHandler:t}))},r.prototype.emit=function(e){var t;this._isDestroyed||(t=Array.prototype.slice.call(arguments),t[0]=this._namespaceEvent(e),this._log("emit",t),i.emit.apply(i,t))},r.prototype._offDirect=function(e){var t=Array.prototype.slice.call(arguments);this._isDestroyed||(t[0]=this._namespaceEvent(e),this._log("off",t),i.off.apply(i,t))},r.prototype.off=function(e,t){var n,r,i=t;if(!this._isDestroyed){if(this.merchantUrl)for(n=0;n<this._listeners.length;n++)r=this._listeners[n],r.originalHandler===t&&(i=r.handler);this._offDirect(e,i)}},r.prototype._namespaceEvent=function(e){return["braintree",this.channel,e].join(":")},r.prototype.teardown=function(){var e,t;for(t=0;t<this._listeners.length;t++)e=this._listeners[t],this._offDirect(e.eventName,e.handler);this._listeners.length=0,this._isDestroyed=!0},r.prototype._log=function(e,t){this._isVerbose&&console.log(e,t)},r.events=o,t.exports=r},{"../error":18,"./check-origin":10,"./events":11,framebus:1}],13:[function(e,t,n){"use strict";var r="3.0.0-beta.12",i="web";t.exports={ANALYTICS_REQUEST_TIMEOUT_MS:2e3,INTEGRATION_TIMEOUT_MS:6e4,VERSION:r,INTEGRATION:"custom",SOURCE:"client",PLATFORM:i,BRAINTREE_LIBRARY_VERSION:"braintree/"+i+"/"+r}},{}],14:[function(e,t,n){"use strict";var r=e("./error"),i=e("../errors");t.exports=function(e,t){t.forEach(function(t){e[t]=function(){throw new r({type:i.METHOD_CALLED_AFTER_TEARDOWN.type,code:i.METHOD_CALLED_AFTER_TEARDOWN.code,message:t+" cannot be called after teardown."})}})}},{"../errors":6,"./error":18}],15:[function(e,t,n){"use strict";function r(e){return/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$/.test(e)}function i(e){var t=e.split("_"),n=t[0],r=t.slice(2).join("_");return{merchantId:r,environment:n}}function o(e){var t,n,o={attrs:{},configUrl:""};return r(e)?(n=i(e),o.attrs.tokenizationKey=e,o.configUrl=a[n.environment]+"/merchants/"+n.merchantId+"/client_api/v1/configuration"):(t=JSON.parse(s(e)),o.attrs.authorizationFingerprint=t.authorizationFingerprint,o.configUrl=t.configUrl),o}var s=e("../lib/polyfill").atob,a={production:"https://api.braintreegateway.com:443",sandbox:"https://api.sandbox.braintreegateway.com:443"};t.exports=o},{"../lib/polyfill":21}],16:[function(e,t,n){"use strict";t.exports=function(e){return function(){var t=arguments;setTimeout(function(){e.apply(null,t)},1)}}},{}],17:[function(e,t,n){"use strict";function r(e,t){return t=null==t?"":t,e.reduce(function(e,n){return e[n]=t+n,e},{})}t.exports=r},{}],18:[function(e,t,n){"use strict";function r(e){if(!r.types.hasOwnProperty(e.type))throw new Error(e.type+" is not a valid type.");if(!e.code)throw new Error("Error code required.");if(!e.message)throw new Error("Error message required.");this.name="BraintreeError",this.code=e.code,this.message=e.message,this.type=e.type,this.details=e.details}var i=e("./enumerate");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.types=i(["CUSTOMER","MERCHANT","NETWORK","INTERNAL","UNKNOWN"]),t.exports=r},{"./enumerate":17}],19:[function(e,t,n){"use strict";t.exports=function(e){return JSON.parse(JSON.stringify(e))}},{}],20:[function(e,t,n){"use strict";t.exports=function(e){return Object.keys(e).filter(function(t){return"function"==typeof e[t]})}},{}],21:[function(e,t,n){(function(e){"use strict";function n(e){var t,n,r,i,o,s,a,u,c=new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})([=]{1,2})?$"),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d="";if(!c.test(e))throw new Error("Non base64 encoded input passed to window.atob polyfill");u=0;do i=l.indexOf(e.charAt(u++)),o=l.indexOf(e.charAt(u++)),s=l.indexOf(e.charAt(u++)),a=l.indexOf(e.charAt(u++)),t=(63&i)<<2|o>>4&3,n=(15&o)<<4|s>>2&15,r=(3&s)<<6|63&a,d+=String.fromCharCode(t)+(n?String.fromCharCode(n):"")+(r?String.fromCharCode(r):"");while(u<e.length);return d}var r="function"==typeof e.atob?e.atob:n;t.exports={atob:r,_atob:n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],22:[function(e,t,n){"use strict";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}t.exports=r},{}],23:[function(e,t,n){"use strict";function r(e,t){var n,r;if("function"!=typeof t)throw new o({type:c.CALLBACK_REQUIRED.type,code:c.CALLBACK_REQUIRED.code,message:"create must include a callback function."});return t=a(t),null==e.client?void t(new o({type:c.INSTANTIATION_OPTION_REQUIRED.type,code:c.INSTANTIATION_OPTION_REQUIRED.code,message:"options.client is required when instantiating UnionPay."})):(n=e.client.getConfiguration(),r=n.analyticsMetadata.sdkVersion,r!==l?void t(new o({type:c.INCOMPATIBLE_VERSIONS.type,code:c.INCOMPATIBLE_VERSIONS.code,message:"Client (version "+r+") and UnionPay (version "+l+") components must be from the same SDK version."})):n.gatewayConfiguration.unionPay&&n.gatewayConfiguration.unionPay.enabled===!0?(s.sendEvent(e.client,"web.unionpay.initialized"),void t(null,new i(e))):void t(new o(u.UNIONPAY_NOT_ENABLED)))}var i=e("./shared/unionpay"),o=e("../lib/error"),s=e("../lib/analytics"),a=e("../lib/deferred"),u=e("./shared/errors"),c=e("../errors"),l="3.0.0-beta.12";t.exports={create:r,VERSION:l}},{"../errors":6,"../lib/analytics":8,"../lib/deferred":16,"../lib/error":18,"./shared/errors":25,"./shared/unionpay":26}],24:[function(e,t,n){"use strict";var r=e("../../lib/enumerate");t.exports={events:r(["HOSTED_FIELDS_FETCH_CAPABILITIES","HOSTED_FIELDS_ENROLL","HOSTED_FIELDS_TOKENIZE"],"union-pay:"),HOSTED_FIELDS_FRAME_NAME:"braintreeunionpayhostedfields"}},{"../../lib/enumerate":17}],25:[function(e,t,n){"use strict";var r=e("../../lib/error");t.exports={UNIONPAY_NOT_ENABLED:{type:r.types.MERCHANT,code:"UNIONPAY_NOT_ENABLED",message:"UnionPay is not enabled for this merchant."},HOSTED_FIELDS_INSTANCE_INVALID:{type:r.types.MERCHANT,code:"HOSTED_FIELDS_INSTANCE_INVALID",message:"Found an invalid Hosted Fields instance. Please use a valid Hosted Fields instance."},HOSTED_FIELDS_INSTANCE_REQUIRED:{type:r.types.MERCHANT,code:"HOSTED_FIELDS_INSTANCE_REQUIRED",message:"Could not find the Hosted Fields instance."},CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED:{type:r.types.MERCHANT,code:"CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED",message:"A card or a Hosted Fields instance is required. Please supply a card or a Hosted Fields instance."},CARD_AND_HOSTED_FIELDS_INSTANCES:{type:r.types.MERCHANT,code:"CARD_AND_HOSTED_FIELDS_INSTANCES",message:"Please supply either a card or a Hosted Fields instance, not both."},EXPIRATION_DATE_INCOMPLETE:{type:r.types.MERCHANT,code:"EXPIRATION_DATE_INCOMPLETE",message:"You must supply expiration month and year or neither."},ENROLLMENT_CUSTOMER_INPUT_INVALID:{type:r.types.CUSTOMER,code:"ENROLLMENT_CUSTOMER_INPUT_INVALID",message:"Enrollment failed due to user input error."},ENROLLMENT_NETWORK_ERROR:{type:r.types.NETWORK,code:"ENROLLMENT_NETWORK_ERROR",message:"Could not enroll UnionPay card."},FETCH_CAPABILITIES_NETWORK_ERROR:{type:r.types.NETWORK,code:"FETCH_CAPABILITIES_NETWORK_ERROR",message:"Could not fetch card capabilities."},UNIONPAY_TOKENIZATION_NETWORK_ERROR:{type:r.types.NETWORK,code:"UNIONPAY_TOKENIZATION_NETWORK_ERROR",message:"A tokenization network error occurred."},MISSING_MOBILE_PHONE_DATA:{type:r.types.MERCHANT,code:"MISSING_MOBILE_PHONE_DATA",message:"A `mobile` with `countryCode` and `number` is required."},UNIONPAY_FAILED_TOKENIZATION:{type:r.types.CUSTOMER,code:"UNIONPAY_FAILED_TOKENIZATION",message:"The supplied card data failed tokenization."}}},{"../../lib/error":18}],26:[function(e,t,n){"use strict";function r(e){this._options=e}var i=e("../../lib/analytics"),o=e("../../lib/assign").assign,s=e("../../lib/error"),a=e("../../lib/bus"),u=e("./constants"),c=e("../../lib/convert-methods-to-error"),l=e("../../lib/deferred"),d=e("./errors"),p=u.events,E=e("iframer"),f=e("../../lib/methods"),_="3.0.0-beta.12",h=e("../../lib/uuid");r.prototype.fetchCapabilities=function(e,t){var n=this._options.client,r=e.card?e.card.number:null,o=e.hostedFields;if(t=l(t),r&&o)return void t(new s(d.CARD_AND_HOSTED_FIELDS_INSTANCES));if(r)n.request({method:"get",endpoint:"payment_methods/credit_cards/capabilities",data:{_meta:{source:"unionpay"},creditCard:{number:r}}},function(e,r){return e?(t(new s({type:d.FETCH_CAPABILITIES_NETWORK_ERROR.type,code:d.FETCH_CAPABILITIES_NETWORK_ERROR.code,message:d.FETCH_CAPABILITIES_NETWORK_ERROR.message,details:{originalError:e}})),void i.sendEvent(n,"web.unionpay.capabilities-failed")):(i.sendEvent(n,"web.unionpay.capabilities-received"),void t(null,r))});else{if(!o)return void t(new s(d.CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED));if(!o._bus)return void t(new s(d.HOSTED_FIELDS_INSTANCE_INVALID));this._initializeHostedFields(function(){this._bus.emit(p.HOSTED_FIELDS_FETCH_CAPABILITIES,{hostedFields:o},function(e){return e.err?void t(new s(e.err)):void t(null,e.payload)})}.bind(this))}},r.prototype.enroll=function(e,t){var n,r=this._options.client,a=e.card,u=e.mobile,c=e.hostedFields;if(t=l(t),!u)return void t(new s(d.MISSING_MOBILE_PHONE_DATA));if(c){if(!c._bus)return void t(new s(d.HOSTED_FIELDS_INSTANCE_INVALID));if(a)return void t(new s(d.CARD_AND_HOSTED_FIELDS_INSTANCES));this._initializeHostedFields(function(){this._bus.emit(p.HOSTED_FIELDS_ENROLL,{hostedFields:c,mobile:u},function(e){return e.err?void t(new s(e.err)):void t(null,e.payload)})}.bind(this))}else{if(!a||!a.number)return void t(new s(d.CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED));if(n={_meta:{source:"unionpay"},unionPayEnrollment:{number:a.number,mobileCountryCode:u.countryCode,mobileNumber:u.number}},a.expirationDate)n.unionPayEnrollment.expirationDate=a.expirationDate;else if(a.expirationMonth||a.expirationYear){if(!a.expirationMonth||!a.expirationYear)return void t(new s(d.EXPIRATION_DATE_INCOMPLETE));n.unionPayEnrollment.expirationYear=a.expirationYear,n.unionPayEnrollment.expirationMonth=a.expirationMonth}r.request({method:"post",endpoint:"union_pay_enrollments",data:n},function(e,n,a){var u;return e?(u=500>a?d.ENROLLMENT_CUSTOMER_INPUT_INVALID:d.ENROLLMENT_NETWORK_ERROR,u=o({},u,{details:{originalError:e}}),i.sendEvent(r,"web.unionpay.enrollment-failed"),void t(new s(u))):(i.sendEvent(r,"web.unionpay.enrollment-succeeded"),void t(null,{enrollmentId:n.unionPayEnrollmentId,smsCodeRequired:n.smsCodeRequired}))})}},r.prototype.tokenize=function(e,t){var n,r,a,u=this._options.client,c=e.card,E=e.hostedFields;if(t=l(t),c&&E)return void t(new s(d.CARD_AND_HOSTED_FIELDS_INSTANCES));if(c)n={_meta:{source:"unionpay"},creditCard:{number:e.card.number,options:{unionPayEnrollment:{id:e.enrollmentId}}}},e.smsCode&&(n.creditCard.options.unionPayEnrollment.smsCode=e.smsCode),c.expirationDate?n.creditCard.expirationDate=c.expirationDate:c.expirationMonth&&c.expirationYear&&(n.creditCard.expirationYear=c.expirationYear,n.creditCard.expirationMonth=c.expirationMonth),e.card.cvv&&(n.creditCard.cvv=e.card.cvv),u.request({method:"post",endpoint:"payment_methods/credit_cards",data:n},function(e,n,c){return e?(i.sendEvent(u,"web.unionpay.nonce-failed"),a=500>c?d.UNIONPAY_FAILED_TOKENIZATION:d.UNIONPAY_TOKENIZATION_NETWORK_ERROR,a=o({},a,{details:{originalError:e}}),void t(new s(a))):(r=n.creditCards[0],delete r.consumed,delete r.threeDSecureInfo,i.sendEvent(u,"web.unionpay.nonce-received"),void t(null,r))});else{if(!E)return void t(new s(d.CARD_OR_HOSTED_FIELDS_INSTANCE_REQUIRED));if(!E._bus)return void t(new s(d.HOSTED_FIELDS_INSTANCE_INVALID));this._initializeHostedFields(function(){this._bus.emit(p.HOSTED_FIELDS_TOKENIZE,e,function(e){return e.err?void t(new s(e.err)):void t(null,e.payload)})}.bind(this))}},r.prototype.teardown=function(e){this._bus&&(this._hostedFieldsFrame.parentNode.removeChild(this._hostedFieldsFrame),this._bus.teardown()),c(this,f(r.prototype)),"function"==typeof e&&(e=l(e))()},r.prototype._initializeHostedFields=function(e){var t=h();return this._bus?void e():(this._bus=new a({channel:t,merchantUrl:location.href}),this._hostedFieldsFrame=E({name:u.HOSTED_FIELDS_FRAME_NAME+"_"+t,src:this._options.client.getConfiguration().gatewayConfiguration.assetsUrl+"/web/"+_+"/html/unionpay-hosted-fields-frame.min.html",height:0,width:0}),this._bus.on(a.events.CONFIGURATION_REQUEST,function(t){t(this._options.client),e()}.bind(this)),void document.body.appendChild(this._hostedFieldsFrame))},t.exports=r},{"../../lib/analytics":8,"../../lib/assign":9,"../../lib/bus":12,"../../lib/convert-methods-to-error":14,"../../lib/deferred":16,"../../lib/error":18,"../../lib/methods":20,"../../lib/uuid":22,"./constants":24,"./errors":25,iframer:2}]},{},[23])(23)}); |
Sorry, the diff of this file is too big to display
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
472198
22
8633
9
32