(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["TrezorConnect"] = factory(); else root["TrezorConnect"] = factory(); })(window, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "./"; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 131); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func : Function('return this')(); if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(34)('wks'); var uid = __webpack_require__(21); var Symbol = __webpack_require__(0).Symbol; var USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; /***/ }), /* 2 */ /***/ (function(module, exports) { var core = module.exports = { version: '2.5.7' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(4); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 4 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var core = __webpack_require__(2); var ctx = __webpack_require__(17); var hide = __webpack_require__(9); var has = __webpack_require__(6); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { var IS_FORCED = type & $export.F; var IS_GLOBAL = type & $export.G; var IS_STATIC = type & $export.S; var IS_PROTO = type & $export.P; var IS_BIND = type & $export.B; var IS_WRAP = type & $export.W; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE]; var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; var key, own, out; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; if (own && has(exports, key)) continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function (C) { var F = function (a, b, c) { if (this instanceof C) { switch (arguments.length) { case 0: return new C(); case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); } return C.apply(this, arguments); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% if (IS_PROTO) { (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); } } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), /* 6 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(16)(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(3); var IE8_DOM_DEFINE = __webpack_require__(66); var toPrimitive = __webpack_require__(38); var dP = Object.defineProperty; exports.f = __webpack_require__(7) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); } catch (e) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(8); var createDesc = __webpack_require__(23); module.exports = __webpack_require__(7) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(64); var defined = __webpack_require__(37); module.exports = function (it) { return IObject(defined(it)); }; /***/ }), /* 11 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _promise = __webpack_require__(122); var _promise2 = _interopRequireDefault(_promise); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (fn) { return function () { var gen = fn.apply(this, arguments); return new _promise2.default(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return _promise2.default.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(124); /***/ }), /* 14 */ /***/ (function(module, exports) { module.exports = true; /***/ }), /* 15 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 16 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(24); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(8).f; var has = __webpack_require__(6); var TAG = __webpack_require__(1)('toStringTag'); module.exports = function (it, tag, stat) { if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; /***/ }), /* 20 */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; /***/ }), /* 21 */ /***/ (function(module, exports) { var id = 0; var px = Math.random(); module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(65); var enumBugKeys = __webpack_require__(33); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /* 23 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 24 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var core = __webpack_require__(2); var LIBRARY = __webpack_require__(14); var wksExt = __webpack_require__(26); var defineProperty = __webpack_require__(8).f; module.exports = function (name) { var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); }; /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { exports.f = __webpack_require__(1); /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var IFRAME_HANDSHAKE = exports.IFRAME_HANDSHAKE = 'iframe-handshake'; var TRANSPORT = exports.TRANSPORT = 'ui-no_transport'; var BOOTLOADER = exports.BOOTLOADER = 'ui-device_bootloader_mode'; var INITIALIZE = exports.INITIALIZE = 'ui-device_not_initialized'; var FIRMWARE = exports.FIRMWARE = 'ui-device_firmware_old'; var FIRMWARE_OUTDATED = exports.FIRMWARE_OUTDATED = 'ui-device_firmware_outdated'; var BROWSER_NOT_SUPPORTED = exports.BROWSER_NOT_SUPPORTED = 'ui-browser_not_supported'; var BROWSER_OUTDATED = exports.BROWSER_OUTDATED = 'ui-browser_outdated'; var RECEIVE_BROWSER = exports.RECEIVE_BROWSER = 'ui-receive_browser'; var REQUEST_UI_WINDOW = exports.REQUEST_UI_WINDOW = 'ui-request_window'; var CLOSE_UI_WINDOW = exports.CLOSE_UI_WINDOW = 'ui-close_window'; var REQUEST_PERMISSION = exports.REQUEST_PERMISSION = 'ui-request_permission'; var REQUEST_CONFIRMATION = exports.REQUEST_CONFIRMATION = 'ui-request_confirmation'; var REQUEST_PIN = exports.REQUEST_PIN = 'ui-request_pin'; var INVALID_PIN = exports.INVALID_PIN = 'ui-invalid_pin'; var REQUEST_PASSPHRASE = exports.REQUEST_PASSPHRASE = 'ui-request_passphrase'; var REQUEST_PASSPHRASE_ON_DEVICE = exports.REQUEST_PASSPHRASE_ON_DEVICE = 'ui-request_passphrase_on_device'; var INVALID_PASSPHRASE = exports.INVALID_PASSPHRASE = 'ui-invalid_passphrase'; var INVALID_PASSPHRASE_ACTION = exports.INVALID_PASSPHRASE_ACTION = 'ui-invalid_passphrase_action'; var CONNECT = exports.CONNECT = 'ui-connect'; var LOADING = exports.LOADING = 'ui-loading'; var SET_OPERATION = exports.SET_OPERATION = 'ui-set_operation'; var SELECT_DEVICE = exports.SELECT_DEVICE = 'ui-select_device'; var SELECT_ACCOUNT = exports.SELECT_ACCOUNT = 'ui-select_account'; var SELECT_FEE = exports.SELECT_FEE = 'ui-select_fee'; var UPDATE_CUSTOM_FEE = exports.UPDATE_CUSTOM_FEE = 'ui-update_custom_fee'; var INSUFFICIENT_FUNDS = exports.INSUFFICIENT_FUNDS = 'ui-insufficient_funds'; var REQUEST_BUTTON = exports.REQUEST_BUTTON = 'ui-button'; var RECEIVE_PERMISSION = exports.RECEIVE_PERMISSION = 'ui-receive_permission'; var RECEIVE_CONFIRMATION = exports.RECEIVE_CONFIRMATION = 'ui-receive_confirmation'; var RECEIVE_PIN = exports.RECEIVE_PIN = 'ui-receive_pin'; var RECEIVE_PASSPHRASE = exports.RECEIVE_PASSPHRASE = 'ui-receive_passphrase'; var RECEIVE_DEVICE = exports.RECEIVE_DEVICE = 'ui-receive_device'; var CHANGE_ACCOUNT = exports.CHANGE_ACCOUNT = 'ui-change_account'; var RECEIVE_ACCOUNT = exports.RECEIVE_ACCOUNT = 'ui-receive_account'; var RECEIVE_FEE = exports.RECEIVE_FEE = 'ui-receive_fee'; var CHANGE_SETTINGS = exports.CHANGE_SETTINGS = 'ui-change_settings'; var CUSTOM_MESSAGE_REQUEST = exports.CUSTOM_MESSAGE_REQUEST = 'ui-custom_request'; var CUSTOM_MESSAGE_RESPONSE = exports.CUSTOM_MESSAGE_RESPONSE = 'ui-custom_response'; var LOGIN_CHALLENGE_REQUEST = exports.LOGIN_CHALLENGE_REQUEST = 'ui-login_challenge_request'; var LOGIN_CHALLENGE_RESPONSE = exports.LOGIN_CHALLENGE_RESPONSE = 'ui-login_challenge_response'; var BUNDLE_PROGRESS = exports.BUNDLE_PROGRESS = 'ui-bundle_progress'; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var INIT = exports.INIT = 'popup-init'; var BOOTSTRAP = exports.BOOTSTRAP = 'popup-bootstrap'; var EXTENSION_REQUEST = exports.EXTENSION_REQUEST = 'popup-extension_request'; var EXTENSION_USB_PERMISSIONS = exports.EXTENSION_USB_PERMISSIONS = 'open-usb-permissions'; var LOG = exports.LOG = 'popup-log'; var OPENED = exports.OPENED = 'popup-opened'; var OPEN_TIMEOUT = exports.OPEN_TIMEOUT = 'popup-open_timeout'; var HANDSHAKE = exports.HANDSHAKE = 'popup-handshake'; var CLOSE = exports.CLOSE = 'popup-close'; var CLOSED = exports.CLOSED = 'popup-closed'; var CANCEL_POPUP_REQUEST = exports.CANCEL_POPUP_REQUEST = 'ui-cancel-popup-request'; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 25.4.1.5 NewPromiseCapability(C) var aFunction = __webpack_require__(24); function PromiseCapability(C) { var resolve, reject; this.promise = new C(function ($$resolve, $$reject) { if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); resolve = $$resolve; reject = $$reject; }); this.resolve = aFunction(resolve); this.reject = aFunction(reject); } module.exports.f = function (C) { return new PromiseCapability(C); }; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__(3); var dPs = __webpack_require__(118); var enumBugKeys = __webpack_require__(33); var IE_PROTO = __webpack_require__(35)('IE_PROTO'); var Empty = function () { /* empty */ }; var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () { // Thrash, waste and sodomy: IE GC bug var iframe = __webpack_require__(39)('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; __webpack_require__(57).appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; return createDict(); }; module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : dPs(result, Properties); }; /***/ }), /* 31 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || Function("return this")() || (1, eval)("this"); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 32 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /* 33 */ /***/ (function(module, exports) { // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var core = __webpack_require__(2); var global = __webpack_require__(0); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {}); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: core.version, mode: __webpack_require__(14) ? 'pure' : 'global', copyright: '© 2018 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(34)('keys'); var uid = __webpack_require__(21); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; /***/ }), /* 36 */ /***/ (function(module, exports) { // 7.1.4 ToInteger var ceil = Math.ceil; var floor = Math.floor; module.exports = function (it) { return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }), /* 37 */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(4); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) { if (!isObject(it)) return it; var fn, val; if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(4); var document = __webpack_require__(0).document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) { return is ? document.createElement(it) : {}; }; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _regenerator = __webpack_require__(13); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(12); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); exports.create = create; exports.createAsync = createAsync; exports.resolveTimeoutPromise = resolveTimeoutPromise; exports.rejectTimeoutPromise = rejectTimeoutPromise; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function create(arg, device) { var _this = this; var localResolve = function localResolve(t) {}; var localReject = function localReject(e) {}; var id = void 0; var promise = new Promise(function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(resolve, reject) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: localResolve = resolve; localReject = reject; if (!(typeof arg === 'function')) { _context.next = 11; break; } _context.prev = 3; _context.next = 6; return arg(); case 6: _context.next = 11; break; case 8: _context.prev = 8; _context.t0 = _context['catch'](3); reject(_context.t0); case 11: if (typeof arg === 'string') id = arg; case 12: case 'end': return _context.stop(); } } }, _callee, _this, [[3, 8]]); })); return function (_x, _x2) { return _ref.apply(this, arguments); }; }()); return { id: id, device: device, resolve: localResolve, reject: localReject, promise: promise }; } function createAsync(innerFn) { var _this2 = this; var localResolve = function localResolve(t) {}; var localReject = function localReject(e) {}; var promise = new Promise(function (resolve, reject) { localResolve = resolve; localReject = reject; }); var inner = function () { var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return innerFn(); case 2: case 'end': return _context2.stop(); } } }, _callee2, _this2); })); return function inner() { return _ref2.apply(this, arguments); }; }(); return { resolve: localResolve, reject: localReject, promise: promise, run: function run() { inner(); return promise; } }; } function resolveTimeoutPromise(delay, result) { return new Promise(function (resolve) { setTimeout(function () { resolve(result); }, delay); }); } function rejectTimeoutPromise(delay, error) { return new Promise(function (resolve, reject) { setTimeout(function () { reject(error); }, delay); }); } /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _setPrototypeOf = __webpack_require__(87); var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); var _create = __webpack_require__(83); var _create2 = _interopRequireDefault(_create); var _typeof2 = __webpack_require__(44); var _typeof3 = _interopRequireDefault(_typeof2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); } subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; }; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { var pIE = __webpack_require__(20); var createDesc = __webpack_require__(23); var toIObject = __webpack_require__(10); var toPrimitive = __webpack_require__(38); var has = __webpack_require__(6); var IE8_DOM_DEFINE = __webpack_require__(66); var gOPD = Object.getOwnPropertyDescriptor; exports.f = __webpack_require__(7) ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return gOPD(O, P); } catch (e) { /* empty */ } if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var $keys = __webpack_require__(65); var hiddenKeys = __webpack_require__(33).concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _iterator = __webpack_require__(98); var _iterator2 = _interopRequireDefault(_iterator); var _symbol = __webpack_require__(96); var _symbol2 = _interopRequireDefault(_symbol); var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { return typeof obj === "undefined" ? "undefined" : _typeof(obj); } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); }; /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _typeof2 = __webpack_require__(44); var _typeof3 = _interopRequireDefault(_typeof2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; }; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.NO_COIN_INFO = exports.BACKEND_NO_URL = exports.WEBUSB_ERROR_MESSAGE = exports.INVALID_PIN_ERROR_MESSAGE = exports.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = exports.INVALID_STATE = exports.CALL_OVERRIDE = exports.INITIALIZATION_FAILED = exports.DEVICE_USED_ELSEWHERE = exports.PERMISSIONS_NOT_GRANTED = exports.POPUP_CLOSED = exports.INVALID_PARAMETERS = exports.DEVICE_CALL_IN_PROGRESS = exports.DEVICE_NOT_FOUND = exports.WRONG_TRANSPORT_CONFIG = exports.NO_TRANSPORT = exports.BROWSER = exports.POPUP_TIMEOUT = exports.IFRAME_TIMEOUT = exports.IFRAME_INITIALIZED = exports.IFRAME_BLOCKED = exports.NO_IFRAME = exports.invalidParameter = exports.TrezorError = undefined; var _classCallCheck2 = __webpack_require__(19); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _possibleConstructorReturn2 = __webpack_require__(45); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = __webpack_require__(41); var _inherits3 = _interopRequireDefault(_inherits2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var TrezorError = exports.TrezorError = function (_Error) { (0, _inherits3.default)(TrezorError, _Error); function TrezorError(code, message) { (0, _classCallCheck3.default)(this, TrezorError); var _this = (0, _possibleConstructorReturn3.default)(this, _Error.call(this, message)); _this.code = code; _this.message = message; return _this; } return TrezorError; }(Error); var invalidParameter = exports.invalidParameter = function invalidParameter(message) { return new TrezorError('Connect_InvalidParameter', message); }; // level 100 error during initialization var NO_IFRAME = exports.NO_IFRAME = new TrezorError(100, 'TrezorConnect not yet initialized'); var IFRAME_BLOCKED = exports.IFRAME_BLOCKED = new TrezorError('iframe_blocked', 'TrezorConnect iframe was blocked'); var IFRAME_INITIALIZED = exports.IFRAME_INITIALIZED = new TrezorError(101, 'TrezorConnect has been already initialized'); var IFRAME_TIMEOUT = exports.IFRAME_TIMEOUT = new TrezorError(102, 'Iframe timeout'); var POPUP_TIMEOUT = exports.POPUP_TIMEOUT = new TrezorError(103, 'Popup timeout'); var BROWSER = exports.BROWSER = new TrezorError(104, 'Browser not supported'); var NO_TRANSPORT = exports.NO_TRANSPORT = new TrezorError(500, 'Transport is missing'); var WRONG_TRANSPORT_CONFIG = exports.WRONG_TRANSPORT_CONFIG = new TrezorError(5002, 'Wrong config response'); // config_signed var DEVICE_NOT_FOUND = exports.DEVICE_NOT_FOUND = new TrezorError(501, 'Device not found'); // export const DEVICE_CALL_IN_PROGRESS: TrezorError = new TrezorError(502, "Device call in progress."); var DEVICE_CALL_IN_PROGRESS = exports.DEVICE_CALL_IN_PROGRESS = new TrezorError(503, 'Device call in progress'); var INVALID_PARAMETERS = exports.INVALID_PARAMETERS = new TrezorError(504, 'Invalid parameters'); var POPUP_CLOSED = exports.POPUP_CLOSED = new Error('Popup closed'); var PERMISSIONS_NOT_GRANTED = exports.PERMISSIONS_NOT_GRANTED = new TrezorError(600, 'Permissions not granted'); var DEVICE_USED_ELSEWHERE = exports.DEVICE_USED_ELSEWHERE = new TrezorError(700, 'Device is used in another window'); var INITIALIZATION_FAILED = exports.INITIALIZATION_FAILED = new TrezorError('Failure_Initialize', 'Initialization failed'); var CALL_OVERRIDE = exports.CALL_OVERRIDE = new TrezorError('Failure_ActionOverride', 'override'); var INVALID_STATE = exports.INVALID_STATE = new TrezorError('Failure_PassphraseState', 'Passphrase is incorrect'); // a slight hack // this error string is hard-coded // in both bridge and extension var WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = exports.WRONG_PREVIOUS_SESSION_ERROR_MESSAGE = 'wrong previous session'; var INVALID_PIN_ERROR_MESSAGE = exports.INVALID_PIN_ERROR_MESSAGE = 'PIN invalid'; var WEBUSB_ERROR_MESSAGE = exports.WEBUSB_ERROR_MESSAGE = 'NetworkError: Unable to claim interface.'; // BlockBook var BACKEND_NO_URL = exports.BACKEND_NO_URL = new TrezorError('Backend_init', 'Url not found'); var NO_COIN_INFO = exports.NO_COIN_INFO = invalidParameter('Coin not found.'); /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // device list events exports.__esModule = true; var CONNECT = exports.CONNECT = 'device-connect'; var CONNECT_UNACQUIRED = exports.CONNECT_UNACQUIRED = 'device-connect_unacquired'; var DISCONNECT = exports.DISCONNECT = 'device-disconnect'; var CHANGED = exports.CHANGED = 'device-changed'; var ACQUIRE = exports.ACQUIRE = 'device-acquire'; var RELEASE = exports.RELEASE = 'device-release'; var ACQUIRED = exports.ACQUIRED = 'device-acquired'; var RELEASED = exports.RELEASED = 'device-released'; var USED_ELSEWHERE = exports.USED_ELSEWHERE = 'device-used_elsewhere'; var LOADING = exports.LOADING = 'device-loading'; // trezor-link events in protobuf format var BUTTON = exports.BUTTON = 'button'; var PIN = exports.PIN = 'pin'; var PASSPHRASE = exports.PASSPHRASE = 'passphrase'; var PASSPHRASE_ON_DEVICE = exports.PASSPHRASE_ON_DEVICE = 'passphrase_on_device'; var WORD = exports.WORD = 'word'; // custom var WAIT_FOR_SELECTION = exports.WAIT_FOR_SELECTION = 'device-wait_for_selection'; // this string has different prefix than other constants and it's used as device path var UNREADABLE = exports.UNREADABLE = 'unreadable-device'; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var START = exports.START = 'transport-start'; var ERROR = exports.ERROR = 'transport-error'; var UPDATE = exports.UPDATE = 'transport-update'; var STREAM = exports.STREAM = 'transport-stream'; var REQUEST = exports.REQUEST = 'transport-request_device'; var RECONNECT = exports.RECONNECT = 'transport-reconnect'; var START_PENDING = exports.START_PENDING = 'transport-start_pending'; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var CORE_EVENT = exports.CORE_EVENT = 'CORE_EVENT'; var UI_EVENT = exports.UI_EVENT = 'UI_EVENT'; var DEVICE_EVENT = exports.DEVICE_EVENT = 'DEVICE_EVENT'; var TRANSPORT_EVENT = exports.TRANSPORT_EVENT = 'TRANSPORT_EVENT'; var RESPONSE_EVENT = exports.RESPONSE_EVENT = 'RESPONSE_EVENT'; /***/ }), /* 50 */ /***/ (function(module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. function EventEmitter() { this._events = this._events || {}; this._maxListeners = this._maxListeners || undefined; } module.exports = EventEmitter; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = undefined; EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. EventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function(n) { if (!isNumber(n) || n < 0 || isNaN(n)) throw TypeError('n must be a positive number'); this._maxListeners = n; return this; }; EventEmitter.prototype.emit = function(type) { var er, handler, len, args, i, listeners; if (!this._events) this._events = {}; // If there is no 'error' event listener then throw. if (type === 'error') { if (!this._events.error || (isObject(this._events.error) && !this._events.error.length)) { er = arguments[1]; if (er instanceof Error) { throw er; // Unhandled 'error' event } else { // At least give some kind of context to the user var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); err.context = er; throw err; } } } handler = this._events[type]; if (isUndefined(handler)) return false; if (isFunction(handler)) { switch (arguments.length) { // fast cases case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; // slower default: args = Array.prototype.slice.call(arguments, 1); handler.apply(this, args); } } else if (isObject(handler)) { args = Array.prototype.slice.call(arguments, 1); listeners = handler.slice(); len = listeners.length; for (i = 0; i < len; i++) listeners[i].apply(this, args); } return true; }; EventEmitter.prototype.addListener = function(type, listener) { var m; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events) this._events = {}; // To avoid recursion in the case that type === "newListener"! Before // adding it to the listeners, first emit "newListener". if (this._events.newListener) this.emit('newListener', type, isFunction(listener.listener) ? listener.listener : listener); if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object. this._events[type] = listener; else if (isObject(this._events[type])) // If we've already got an array, just append. this._events[type].push(listener); else // Adding the second element, need to change to array. this._events[type] = [this._events[type], listener]; // Check for listener leak if (isObject(this._events[type]) && !this._events[type].warned) { if (!isUndefined(this._maxListeners)) { m = this._maxListeners; } else { m = EventEmitter.defaultMaxListeners; } if (m && m > 0 && this._events[type].length > m) { this._events[type].warned = true; console.error('(node) warning: possible EventEmitter memory ' + 'leak detected. %d listeners added. ' + 'Use emitter.setMaxListeners() to increase limit.', this._events[type].length); if (typeof console.trace === 'function') { // not supported in IE 10 console.trace(); } } } return this; }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.once = function(type, listener) { if (!isFunction(listener)) throw TypeError('listener must be a function'); var fired = false; function g() { this.removeListener(type, g); if (!fired) { fired = true; listener.apply(this, arguments); } } g.listener = listener; this.on(type, g); return this; }; // emits a 'removeListener' event iff the listener was removed EventEmitter.prototype.removeListener = function(type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events || !this._events[type]) return this; list = this._events[type]; length = list.length; position = -1; if (list === listener || (isFunction(list.listener) && list.listener === listener)) { delete this._events[type]; if (this._events.removeListener) this.emit('removeListener', type, listener); } else if (isObject(list)) { for (i = length; i-- > 0;) { if (list[i] === listener || (list[i].listener && list[i].listener === listener)) { position = i; break; } } if (position < 0) return this; if (list.length === 1) { list.length = 0; delete this._events[type]; } else { list.splice(position, 1); } if (this._events.removeListener) this.emit('removeListener', type, listener); } return this; }; EventEmitter.prototype.removeAllListeners = function(type) { var key, listeners; if (!this._events) return this; // not listening for removeListener, no need to emit if (!this._events.removeListener) { if (arguments.length === 0) this._events = {}; else if (this._events[type]) delete this._events[type]; return this; } // emit removeListener for all listeners on all events if (arguments.length === 0) { for (key in this._events) { if (key === 'removeListener') continue; this.removeAllListeners(key); } this.removeAllListeners('removeListener'); this._events = {}; return this; } listeners = this._events[type]; if (isFunction(listeners)) { this.removeListener(type, listeners); } else if (listeners) { // LIFO order while (listeners.length) this.removeListener(type, listeners[listeners.length - 1]); } delete this._events[type]; return this; }; EventEmitter.prototype.listeners = function(type) { var ret; if (!this._events || !this._events[type]) ret = []; else if (isFunction(this._events[type])) ret = [this._events[type]]; else ret = this._events[type].slice(); return ret; }; EventEmitter.prototype.listenerCount = function(type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; else if (evlistener) return evlistener.length; } return 0; }; EventEmitter.listenerCount = function(emitter, type) { return emitter.listenerCount(type); }; function isFunction(arg) { return typeof arg === 'function'; } function isNumber(arg) { return typeof arg === 'number'; } function isObject(arg) { return typeof arg === 'object' && arg !== null; } function isUndefined(arg) { return arg === void 0; } /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(3); var isObject = __webpack_require__(4); var newPromiseCapability = __webpack_require__(29); module.exports = function (C, x) { anObject(C); if (isObject(x) && x.constructor === C) return x; var promiseCapability = newPromiseCapability.f(C); var resolve = promiseCapability.resolve; resolve(x); return promiseCapability.promise; }; /***/ }), /* 52 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return { e: false, v: exec() }; } catch (e) { return { e: true, v: e }; } }; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { var ctx = __webpack_require__(17); var invoke = __webpack_require__(107); var html = __webpack_require__(57); var cel = __webpack_require__(39); var global = __webpack_require__(0); var process = global.process; var setTask = global.setImmediate; var clearTask = global.clearImmediate; var MessageChannel = global.MessageChannel; var Dispatch = global.Dispatch; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; var defer, channel, port; var run = function () { var id = +this; // eslint-disable-next-line no-prototype-builtins if (queue.hasOwnProperty(id)) { var fn = queue[id]; delete queue[id]; fn(); } }; var listener = function (event) { run.call(event.data); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!setTask || !clearTask) { setTask = function setImmediate(fn) { var args = []; var i = 1; while (arguments.length > i) args.push(arguments[i++]); queue[++counter] = function () { // eslint-disable-next-line no-new-func invoke(typeof fn == 'function' ? fn : Function(fn), args); }; defer(counter); return counter; }; clearTask = function clearImmediate(id) { delete queue[id]; }; // Node.js 0.8- if (__webpack_require__(15)(process) == 'process') { defer = function (id) { process.nextTick(ctx(run, id, 1)); }; // Sphere (JS game engine) Dispatch API } else if (Dispatch && Dispatch.now) { defer = function (id) { Dispatch.now(ctx(run, id, 1)); }; // Browsers with MessageChannel, includes WebWorkers } else if (MessageChannel) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; defer = ctx(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { defer = function (id) { global.postMessage(id + '', '*'); }; global.addEventListener('message', listener, false); // IE8- } else if (ONREADYSTATECHANGE in cel('script')) { defer = function (id) { html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { html.removeChild(this); run.call(id); }; }; // Rest old browsers } else { defer = function (id) { setTimeout(ctx(run, id, 1), 0); }; } } module.exports = { set: setTask, clear: clearTask }; /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { // 7.3.20 SpeciesConstructor(O, defaultConstructor) var anObject = __webpack_require__(3); var aFunction = __webpack_require__(24); var SPECIES = __webpack_require__(1)('species'); module.exports = function (O, D) { var C = anObject(O).constructor; var S; return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); }; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(15); var TAG = __webpack_require__(1)('toStringTag'); // ES3 wrong here var ARG = cof(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (e) { /* empty */ } }; module.exports = function (it) { var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(116); var global = __webpack_require__(0); var hide = __webpack_require__(9); var Iterators = __webpack_require__(11); var TO_STRING_TAG = __webpack_require__(1)('toStringTag'); var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + 'TextTrackList,TouchList').split(','); for (var i = 0; i < DOMIterables.length; i++) { var NAME = DOMIterables[i]; var Collection = global[NAME]; var proto = Collection && Collection.prototype; if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); Iterators[NAME] = Iterators.Array; } /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { var document = __webpack_require__(0).document; module.exports = document && document.documentElement; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(9); /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(14); var $export = __webpack_require__(5); var redefine = __webpack_require__(58); var hide = __webpack_require__(9); var Iterators = __webpack_require__(11); var $iterCreate = __webpack_require__(119); var setToStringTag = __webpack_require__(18); var getPrototypeOf = __webpack_require__(117); var ITERATOR = __webpack_require__(1)('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values'; var returnThis = function () { return this; }; module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { $iterCreate(Constructor, NAME, next); var getMethod = function (kind) { if (!BUGGY && kind in proto) return proto[kind]; switch (kind) { case KEYS: return function keys() { return new Constructor(this, kind); }; case VALUES: return function values() { return new Constructor(this, kind); }; } return function entries() { return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator'; var DEF_VALUES = DEFAULT == VALUES; var VALUES_BUG = false; var proto = Base.prototype; var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; var $default = $native || getMethod(DEFAULT); var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; var methods, key, IteratorPrototype; // Fix native if ($anyNative) { IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF if (DEF_VALUES && $native && $native.name !== VALUES) { VALUES_BUG = true; $default = function values() { return $native.call(this); }; } // Define iterator if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if (DEFAULT) { methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; if (FORCED) for (key in methods) { if (!(key in proto)) redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $at = __webpack_require__(120)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(59)(String, 'String', function (iterated) { this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function () { var O = this._t; var index = this._i; var point; if (index >= O.length) return { value: undefined, done: true }; point = $at(O, index); this._i += point.length; return { value: point, done: false }; }); /***/ }), /* 61 */ /***/ (function(module, exports) { /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(37); module.exports = function (it) { return Object(defined(it)); }; /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(36); var min = Math.min; module.exports = function (it) { return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(15); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(6); var toIObject = __webpack_require__(10); var arrayIndexOf = __webpack_require__(126)(false); var IE_PROTO = __webpack_require__(35)('IE_PROTO'); module.exports = function (object, names) { var O = toIObject(object); var i = 0; var result = []; var key; for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } return result; }; /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { module.exports = !__webpack_require__(7) && !__webpack_require__(16)(function () { return Object.defineProperty(__webpack_require__(39)('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _assign = __webpack_require__(130); var _assign2 = _interopRequireDefault(_assign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = _assign2.default || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* * Public types accessible from npm library */ exports.__esModule = true; var _response = __webpack_require__(69); Object.keys(_response).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _response[key]; } }); }); var _constants = __webpack_require__(49); var _transport = __webpack_require__(48); var TRANSPORT = _interopRequireWildcard(_transport); var _popup = __webpack_require__(28); var POPUP = _interopRequireWildcard(_popup); var _ui = __webpack_require__(27); var UI = _interopRequireWildcard(_ui); var _device = __webpack_require__(47); var DEVICE = _interopRequireWildcard(_device); var _params = __webpack_require__(68); var P = _interopRequireWildcard(_params); var R = _interopRequireWildcard(_response); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.parse = exports.DEFAULT_PRIORITY = undefined; var _extends2 = __webpack_require__(67); var _extends3 = _interopRequireDefault(_extends2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* * Initial settings for connect. * It could be changed by passing values into TrezorConnect.init(...) method */ var VERSION = '5.0.28'; var versionN = VERSION.split('.').map(function (s) { return parseInt(s); }); var DIRECTORY = '' + versionN[0] + (versionN[1] > 0 ? '.' + versionN[1] : '') + '/'; var DEFAULT_DOMAIN = 'https://connect.trezor.io/'; var SRC = window.__TREZOR_CONNECT_SRC || '' + DEFAULT_DOMAIN + DIRECTORY; var DEFAULT_PRIORITY = exports.DEFAULT_PRIORITY = 2; var initialSettings = { configSrc: 'data/config.json', // constant debug: false, origin: null, priority: DEFAULT_PRIORITY, trustedHost: false, connectSrc: SRC, iframeSrc: SRC + 'iframe.html', popup: true, popupSrc: SRC + 'popup.html', webusbSrc: SRC + 'webusb.html', transportReconnect: false, webusb: true, pendingTransportEvent: true, supportedBrowser: !/Trident|MSIE/.test(navigator.userAgent), extension: null }; var currentSettings = initialSettings; var parse = exports.parse = function parse(input) { if (!input) return currentSettings; var settings = (0, _extends3.default)({}, currentSettings); if (input.hasOwnProperty('debug')) { if (Array.isArray(input)) { // enable log with prefix }if (typeof input.debug === 'boolean') { settings.debug = input.debug; } else if (typeof input.debug === 'string') { settings.debug = input.debug === 'true'; } } if (typeof input.connectSrc === 'string') { // TODO: escape string, validate url settings.connectSrc = input.connectSrc; } else if (typeof window.__TREZOR_CONNECT_SRC === 'string') { settings.connectSrc = window.__TREZOR_CONNECT_SRC; } settings.iframeSrc = settings.connectSrc + 'iframe.html'; settings.popupSrc = settings.connectSrc + 'popup.html'; settings.webusbSrc = settings.connectSrc + 'webusb.html'; if (typeof input.transportReconnect === 'boolean') { settings.transportReconnect = input.transportReconnect; } if (typeof input.webusb === 'boolean') { settings.webusb = input.webusb; } if (typeof input.popup === 'boolean') { settings.popup = input.popup; } if (typeof input.pendingTransportEvent === 'boolean') { settings.pendingTransportEvent = input.pendingTransportEvent; } // local files if (window.location.protocol === 'file:') { settings.origin = window.location.origin + window.location.pathname; settings.webusb = false; } if (typeof input.extension === 'string') { settings.extension = input.extension; } // $FlowIssue: settings.excludedDevices field is intentionally not defined in flowtype. it's used only in tests to exclude debug-link device. settings.excludedDevices = input.excludedDevices; currentSettings = settings; return currentSettings; }; /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; // parse MessageEvent .data into CoreMessage var parseMessage = exports.parseMessage = function parseMessage(messageData) { var message = { event: messageData.event, type: messageData.type, payload: messageData.payload }; if (typeof messageData.id === 'number') { message.id = messageData.id; } if (typeof messageData.success === 'boolean') { message.success = messageData.success; } return message; }; /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { // https://stackoverflow.com/questions/7505623/colors-in-javascript-console // https://github.com/pimterry/loglevel/blob/master/lib/loglevel.js // http://www.color-hex.com/color-palette/5016 exports.__esModule = true; exports.popupConsole = exports.enableByPrefix = exports.getLog = exports.enable = exports.init = undefined; var _classCallCheck2 = __webpack_require__(19); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var colors = { // green 'DescriptorStream': 'color: #77ab59', 'DeviceList': 'color: #36802d', 'Device': 'color: #bada55', 'Core': 'color: #c9df8a', 'IFrame': 'color: #FFFFFF; background: #f4a742;', 'Popup': 'color: #f48a00' }; var Log = function () { function Log(prefix) { var enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; (0, _classCallCheck3.default)(this, Log); this.prefix = prefix; this.enabled = enabled; this.messages = []; this.css = colors[prefix] || 'color: #000000; background: #FFFFFF;'; } Log.prototype.addMessage = function addMessage(level, prefix) { for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } this.messages.push({ level: level, prefix: prefix, message: args, timestamp: new Date().getTime() }); }; Log.prototype.log = function log() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } this.addMessage.apply(this, ['log', this.prefix].concat(args)); if (this.enabled) { var _console; (_console = console).log.apply(_console, [this.prefix].concat(args)); } }; Log.prototype.error = function error() { for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } this.addMessage.apply(this, ['error', this.prefix].concat(args)); if (this.enabled) { var _console2; (_console2 = console).error.apply(_console2, [this.prefix].concat(args)); } }; Log.prototype.warn = function warn() { for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } this.addMessage.apply(this, ['warn', this.prefix].concat(args)); if (this.enabled) { var _console3; (_console3 = console).warn.apply(_console3, [this.prefix].concat(args)); } }; Log.prototype.debug = function debug() { for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } this.addMessage.apply(this, ['debug', this.prefix].concat(args)); if (this.enabled) { var _console4; (_console4 = console).log.apply(_console4, ['%c' + this.prefix, this.css].concat(args)); } }; return Log; }(); exports.default = Log; var _logs = {}; var init = exports.init = function init(prefix, enabled) { var enab = typeof enabled === 'boolean' ? enabled : false; var instance = new Log(prefix, enab); _logs[prefix] = instance; return instance; }; var enable = exports.enable = function enable(enabled) { for (var _iterator = Object.keys(_logs), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var l = _ref; _logs[l].enabled = enabled; } }; var getLog = exports.getLog = function getLog(args) { // if var logs = []; for (var _iterator2 = Object.keys(_logs), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { var _ref2; if (_isArray2) { if (_i2 >= _iterator2.length) break; _ref2 = _iterator2[_i2++]; } else { _i2 = _iterator2.next(); if (_i2.done) break; _ref2 = _i2.value; } var l = _ref2; logs = logs.concat(_logs[l].messages); } logs.sort(function (a, b) { return a.timestamp - b.timestamp; }); return logs; }; var enableByPrefix = exports.enableByPrefix = function enableByPrefix(prefix, enabled) { if (_logs[prefix]) { _logs[prefix].enabled = enabled; } }; // TODO: enable/disable log at runtime var popupConsole = exports.popupConsole = function popupConsole(tag, postMessage) { var c = global.console; var orig = { error: c.error, // warn: c.warn, info: c.info, debug: c.debug, log: c.log }; var log = []; var inject = function inject(method, level) { return function () { for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { args[_key6] = arguments[_key6]; } // args.unshift('[popup.js]'); var time = new Date().toUTCString(); log.push([level, time].concat(args)); postMessage.apply(undefined, [{ type: tag, level: level, time: time, args: JSON.stringify(args) }] // { type: 'LOG', level: level, time: time, args: JSON.stringify(deepClone(args)) } ); return method.apply(c, args); }; }; for (var _level in orig) { c[_level] = inject(orig[_level], _level); } }; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31))) /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var render = function render(className, url, origin) { var query = className || '.trezor-webusb-button'; var buttons = document.querySelectorAll(query); var src = url + '?' + Date.now(); buttons.forEach(function (b) { if (b.getElementsByTagName('iframe').length < 1) { var bounds = b.getBoundingClientRect(); var btnIframe = document.createElement('iframe'); btnIframe.frameBorder = '0'; btnIframe.width = Math.round(bounds.width) + 'px'; btnIframe.height = Math.round(bounds.height) + 'px'; btnIframe.style.position = 'absolute'; btnIframe.style.top = '0px'; btnIframe.style.left = '0px'; btnIframe.style.zIndex = '1'; // btnIframe.style.opacity = '0'; // this makes click impossible on cross-origin btnIframe.setAttribute('allow', 'usb'); btnIframe.setAttribute('scrolling', 'no'); btnIframe.onload = function () { btnIframe.contentWindow.postMessage({ // style: JSON.stringify( window.getComputedStyle(b) ), // outer: b.outerHTML, // inner: b.innerHTML }, origin); }; btnIframe.src = src; // inject iframe into button b.append(btnIframe); } }); }; exports.default = render; /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var css = '.trezorconnect-container{position:fixed!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important;-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important;z-index:10000!important;width:100%!important;height:100%!important;top:0!important;left:0!important;background:rgba(0,0,0,.35)!important;overflow:auto!important;padding:20px!important;margin:0!important}.trezorconnect-container .trezorconnect-window{position:relative!important;display:block!important;width:370px!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif!important;margin:auto!important;border-radius:3px!important;background-color:#fff!important;text-align:center!important;overflow:hidden!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head{text-align:left;padding:12px 24px!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-logo{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close{cursor:pointer!important;height:24px!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close svg{fill:#757575;-webkit-transition:fill .3s ease-in-out!important;transition:fill .3s ease-in-out!important}.trezorconnect-container .trezorconnect-window .trezorconnect-head .trezorconnect-close:hover svg{fill:#494949}.trezorconnect-container .trezorconnect-window .trezorconnect-body{padding:24px 24px 32px!important;background:#FBFBFB!important;border-top:1px solid #EBEBEB}.trezorconnect-container .trezorconnect-window .trezorconnect-body h3{color:#505050!important;font-size:16px!important;font-weight:500!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body p{margin:8px 0 24px!important;font-weight:400!important;color:#A9A9A9!important;font-size:12px!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button{width:100%!important;padding:12px 24px!important;margin:0!important;border-radius:3px!important;font-size:14px!important;font-weight:300!important;cursor:pointer!important;background:#01B757!important;color:#fff!important;border:0!important;-webkit-transition:background-color .3s ease-in-out!important;transition:background-color .3s ease-in-out!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button:hover{background-color:#00AB51!important}.trezorconnect-container .trezorconnect-window .trezorconnect-body button:active{background-color:#009546!important}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0IiwiJHN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLHlCQUNJLFNBQUEsZ0JBQ0EsUUFBQSxzQkFDQSxRQUFBLHVCQUNBLFFBQUEsc0JBRUEsUUFBQSxlQUNBLG1CQUFBLG1CQUNBLHNCQUFBLGlCQUNBLHVCQUFBLGlCQUNBLG1CQUFBLGlCQUNBLGVBQUEsaUJBRUEsa0JBQUEsaUJBQ0Esb0JBQUEsaUJBQ0EsZUFBQSxpQkNmTSxZQUFhLGlCREFyQixRQUFTLGdCQWtCSCxNQUFBLGVBQ0EsT0FBQSxlQUNBLElBQUEsWUFDQSxLQUFBLFlBQ0EsV0FBQSwwQkFDQSxTQUFBLGVBQ0EsUUFBQSxlQUNBLE9BQUEsWUNkUiwrQ0RYRSxTQUFVLG1CQTZCQSxRQUFBLGdCQUNBLE1BQUEsZ0JBQ0EsWUFBQSxjQUFBLG1CQUFBLFdBQUEsT0FBQSxpQkFBQSxNQUFBLHFCQUNBLE9BQUEsZUNmVixjQUFlLGNEakJmLGlCQWlCRSxlQWtCWSxXQUFBLGlCQ2ZkLFNBQVUsaUJEbUJJLG1FQUNBLFdBQUEsS0NoQmQsUUFBUyxLQUFLLGVEeEJkLFFBQVMsc0JBMENTLFFBQUEsdUJBQ0EsUUFBQSxzQkNmbEIsUUFBUyxlRGlCSyxrQkE1QlosaUJBOEJvQixvQkFBQSxpQkNoQmxCLGVBQWdCLGlCRC9CWixZQWlCTixpQkFzQ1EsdUZBQ0EsaUJBQUEsRUNwQlYsYUFBYyxFRHBDVixTQUFVLEVBMkRBLEtBQUEsRUFFQSx3RkNwQmQsT0FBUSxrQkR6Q1IsT0FBUSxlQWlFTSw0RkFDQSxLQUFBLFFBQ0EsbUJBQUEsS0FBQSxJQUFBLHNCQ3BCZCxXQUFZLEtBQUssSUFBSyxzQkR3QlIsa0dBQ0EsS0FBQSxRQUVBLG1FQUNBLFFBQUEsS0FBQSxLQUFBLGVBQ0EsV0FBQSxrQkFDQSxXQUFBLElBQUEsTUFBQSxRQUVBLHNFQUNBLE1BQUEsa0JBQ0EsVUFBQSxlQ3JCZCxZQUFhLGNEd0JLLHFFQ3JCbEIsT0FBUSxJQUFJLEVBQUksZUR3QkYsWUFBQSxjQUNJLE1BQUEsa0JDdEJsQixVQUFXLGVBRWIsMEVBQ0UsTUFBTyxlQUNQLFFBQVMsS0FBSyxlQUNkLE9BQVEsWUFDUixjQUFlLGNBQ2YsVUFBVyxlQUNYLFlBQWEsY0FDYixPQUFRLGtCQUNSLFdBQVksa0JBQ1osTUFBTyxlQUNQLE9BQVEsWUFDUixtQkFBb0IsaUJBQWlCLElBQUssc0JBQzFDLFdBQVksaUJBQWlCLElBQUssc0JBRXBDLGdGQUNFLGlCQUFrQixrQkFFcEIsaUZBQ0UsaUJBQWtCIn0= */';exports.default = css; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.clearTimeout = exports.dispose = exports.postMessage = exports.init = exports.messagePromises = exports.error = exports.timeout = exports.initPromise = exports.origin = exports.instance = undefined; var _regenerator = __webpack_require__(13); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(12); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _deferred = __webpack_require__(40); var _ui = __webpack_require__(27); var _errors = __webpack_require__(46); var _inlineStyles = __webpack_require__(75); var _inlineStyles2 = _interopRequireDefault(_inlineStyles); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var instance = exports.instance = void 0; var origin = exports.origin = void 0; var initPromise = exports.initPromise = (0, _deferred.create)(); var timeout = exports.timeout = 0; var error = exports.error = void 0; var _messageID = 0; // every postMessage to iframe has its own promise to resolve var messagePromises = exports.messagePromises = {}; var init = exports.init = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(settings) { var existedFrame, src, iframeSrcHost, onLoad; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: existedFrame = document.getElementById('trezorconnect'); if (existedFrame) { exports.instance = instance = existedFrame; } else { exports.instance = instance = document.createElement('iframe'); instance.frameBorder = '0'; instance.width = '0px'; instance.height = '0px'; instance.style.position = 'absolute'; instance.style.display = 'none'; instance.style.border = '0px'; instance.style.width = '0px'; instance.style.height = '0px'; instance.id = 'trezorconnect'; } src = settings.iframeSrc + '?' + Date.now(); instance.setAttribute('src', src); if (settings.webusb) { instance.setAttribute('allow', 'usb'); } // eslint-disable-next-line no-irregular-whitespace, no-useless-escape iframeSrcHost = instance.src.match(/^.+\:\/\/[^\‌​/]+/); if (iframeSrcHost && iframeSrcHost.length > 0) { exports.origin = origin = iframeSrcHost[0]; } exports.timeout = timeout = window.setTimeout(function () { initPromise.reject(_errors.IFRAME_TIMEOUT); }, 10000); onLoad = function onLoad() { if (!instance) { initPromise.reject(_errors.IFRAME_BLOCKED); return; } try { // if hosting page is able to access cross-origin location it means that the iframe is not loaded var iframeOrigin = instance.contentWindow.location.origin; if (!iframeOrigin || iframeOrigin === 'null') { // eslint-disable-next-line no-use-before-define handleIframeBlocked(); return; } } catch (e) { // empty } var extension = void 0; // $FlowIssue chrome is not declared outside if (typeof chrome !== 'undefined' && chrome.runtime && typeof chrome.runtime.onConnect !== 'undefined') { chrome.runtime.onConnect.addListener(function () {}); extension = chrome.runtime.id; } instance.contentWindow.postMessage({ type: _ui.IFRAME_HANDSHAKE, payload: { settings: settings, extension: extension } }, origin); instance.onload = undefined; }; // IE hack if (instance.attachEvent) { instance.attachEvent('onload', onLoad); } else { instance.onload = onLoad; } // inject iframe into host document body if (document.body) { document.body.appendChild(instance); // eslint-disable-next-line no-use-before-define injectStyleSheet(); } _context.prev = 11; _context.next = 14; return initPromise.promise; case 14: _context.next = 19; break; case 16: _context.prev = 16; _context.t0 = _context['catch'](11); throw _context.t0.message || _context.t0; case 19: _context.prev = 19; window.clearTimeout(timeout); exports.timeout = timeout = 0; return _context.finish(19); case 23: case 'end': return _context.stop(); } } }, _callee, undefined, [[11, 16, 19, 23]]); })); return function init(_x) { return _ref.apply(this, arguments); }; }(); var injectStyleSheet = function injectStyleSheet() { if (!instance) { throw _errors.IFRAME_BLOCKED; } var doc = instance.ownerDocument; var head = doc.head || doc.getElementsByTagName('head')[0]; var style = document.createElement('style'); style.setAttribute('type', 'text/css'); style.setAttribute('id', 'TrezorConnectStylesheet'); // $FlowIssue if (style.styleSheet) { // IE // $FlowIssue style.styleSheet.cssText = _inlineStyles2.default; } else { style.appendChild(document.createTextNode(_inlineStyles2.default)); } head.append(style); }; var handleIframeBlocked = function handleIframeBlocked() { window.clearTimeout(timeout); exports.error = error = _errors.IFRAME_BLOCKED.message; // eslint-disable-next-line no-use-before-define dispose(); initPromise.reject(_errors.IFRAME_BLOCKED); }; // post messages to iframe var postMessage = exports.postMessage = function postMessage(message) { var usePromise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (!instance) { throw _errors.IFRAME_BLOCKED; } if (usePromise) { _messageID++; message.id = _messageID; messagePromises[_messageID] = (0, _deferred.create)(); instance.contentWindow.postMessage(message, origin); return messagePromises[_messageID].promise; } instance.contentWindow.postMessage(message, origin); return null; }; var dispose = exports.dispose = function dispose() { if (instance && instance.parentNode) { try { instance.parentNode.removeChild(instance); } catch (error) { // do nothing } } exports.instance = instance = null; exports.timeout = timeout = 0; }; var clearTimeout = exports.clearTimeout = function clearTimeout() { window.clearTimeout(timeout); }; /***/ }), /* 77 */ /***/ (function(module, exports) { (function(self) { 'use strict'; if (self.fetch) { return } var support = { searchParams: 'URLSearchParams' in self, iterable: 'Symbol' in self && 'iterator' in Symbol, blob: 'FileReader' in self && 'Blob' in self && (function() { try { new Blob() return true } catch(e) { return false } })(), formData: 'FormData' in self, arrayBuffer: 'ArrayBuffer' in self } if (support.arrayBuffer) { var viewClasses = [ '[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]' ] var isDataView = function(obj) { return obj && DataView.prototype.isPrototypeOf(obj) } var isArrayBufferView = ArrayBuffer.isView || function(obj) { return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 } } function normalizeName(name) { if (typeof name !== 'string') { name = String(name) } if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { throw new TypeError('Invalid character in header field name') } return name.toLowerCase() } function normalizeValue(value) { if (typeof value !== 'string') { value = String(value) } return value } // Build a destructive iterator for the value list function iteratorFor(items) { var iterator = { next: function() { var value = items.shift() return {done: value === undefined, value: value} } } if (support.iterable) { iterator[Symbol.iterator] = function() { return iterator } } return iterator } function Headers(headers) { this.map = {} if (headers instanceof Headers) { headers.forEach(function(value, name) { this.append(name, value) }, this) } else if (Array.isArray(headers)) { headers.forEach(function(header) { this.append(header[0], header[1]) }, this) } else if (headers) { Object.getOwnPropertyNames(headers).forEach(function(name) { this.append(name, headers[name]) }, this) } } Headers.prototype.append = function(name, value) { name = normalizeName(name) value = normalizeValue(value) var oldValue = this.map[name] this.map[name] = oldValue ? oldValue+','+value : value } Headers.prototype['delete'] = function(name) { delete this.map[normalizeName(name)] } Headers.prototype.get = function(name) { name = normalizeName(name) return this.has(name) ? this.map[name] : null } Headers.prototype.has = function(name) { return this.map.hasOwnProperty(normalizeName(name)) } Headers.prototype.set = function(name, value) { this.map[normalizeName(name)] = normalizeValue(value) } Headers.prototype.forEach = function(callback, thisArg) { for (var name in this.map) { if (this.map.hasOwnProperty(name)) { callback.call(thisArg, this.map[name], name, this) } } } Headers.prototype.keys = function() { var items = [] this.forEach(function(value, name) { items.push(name) }) return iteratorFor(items) } Headers.prototype.values = function() { var items = [] this.forEach(function(value) { items.push(value) }) return iteratorFor(items) } Headers.prototype.entries = function() { var items = [] this.forEach(function(value, name) { items.push([name, value]) }) return iteratorFor(items) } if (support.iterable) { Headers.prototype[Symbol.iterator] = Headers.prototype.entries } function consumed(body) { if (body.bodyUsed) { return Promise.reject(new TypeError('Already read')) } body.bodyUsed = true } function fileReaderReady(reader) { return new Promise(function(resolve, reject) { reader.onload = function() { resolve(reader.result) } reader.onerror = function() { reject(reader.error) } }) } function readBlobAsArrayBuffer(blob) { var reader = new FileReader() var promise = fileReaderReady(reader) reader.readAsArrayBuffer(blob) return promise } function readBlobAsText(blob) { var reader = new FileReader() var promise = fileReaderReady(reader) reader.readAsText(blob) return promise } function readArrayBufferAsText(buf) { var view = new Uint8Array(buf) var chars = new Array(view.length) for (var i = 0; i < view.length; i++) { chars[i] = String.fromCharCode(view[i]) } return chars.join('') } function bufferClone(buf) { if (buf.slice) { return buf.slice(0) } else { var view = new Uint8Array(buf.byteLength) view.set(new Uint8Array(buf)) return view.buffer } } function Body() { this.bodyUsed = false this._initBody = function(body) { this._bodyInit = body if (!body) { this._bodyText = '' } else if (typeof body === 'string') { this._bodyText = body } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { this._bodyBlob = body } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { this._bodyFormData = body } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { this._bodyText = body.toString() } else if (support.arrayBuffer && support.blob && isDataView(body)) { this._bodyArrayBuffer = bufferClone(body.buffer) // IE 10-11 can't handle a DataView body. this._bodyInit = new Blob([this._bodyArrayBuffer]) } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { this._bodyArrayBuffer = bufferClone(body) } else { throw new Error('unsupported BodyInit type') } if (!this.headers.get('content-type')) { if (typeof body === 'string') { this.headers.set('content-type', 'text/plain;charset=UTF-8') } else if (this._bodyBlob && this._bodyBlob.type) { this.headers.set('content-type', this._bodyBlob.type) } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') } } } if (support.blob) { this.blob = function() { var rejected = consumed(this) if (rejected) { return rejected } if (this._bodyBlob) { return Promise.resolve(this._bodyBlob) } else if (this._bodyArrayBuffer) { return Promise.resolve(new Blob([this._bodyArrayBuffer])) } else if (this._bodyFormData) { throw new Error('could not read FormData body as blob') } else { return Promise.resolve(new Blob([this._bodyText])) } } this.arrayBuffer = function() { if (this._bodyArrayBuffer) { return consumed(this) || Promise.resolve(this._bodyArrayBuffer) } else { return this.blob().then(readBlobAsArrayBuffer) } } } this.text = function() { var rejected = consumed(this) if (rejected) { return rejected } if (this._bodyBlob) { return readBlobAsText(this._bodyBlob) } else if (this._bodyArrayBuffer) { return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) } else if (this._bodyFormData) { throw new Error('could not read FormData body as text') } else { return Promise.resolve(this._bodyText) } } if (support.formData) { this.formData = function() { return this.text().then(decode) } } this.json = function() { return this.text().then(JSON.parse) } return this } // HTTP methods whose capitalization should be normalized var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'] function normalizeMethod(method) { var upcased = method.toUpperCase() return (methods.indexOf(upcased) > -1) ? upcased : method } function Request(input, options) { options = options || {} var body = options.body if (input instanceof Request) { if (input.bodyUsed) { throw new TypeError('Already read') } this.url = input.url this.credentials = input.credentials if (!options.headers) { this.headers = new Headers(input.headers) } this.method = input.method this.mode = input.mode if (!body && input._bodyInit != null) { body = input._bodyInit input.bodyUsed = true } } else { this.url = String(input) } this.credentials = options.credentials || this.credentials || 'omit' if (options.headers || !this.headers) { this.headers = new Headers(options.headers) } this.method = normalizeMethod(options.method || this.method || 'GET') this.mode = options.mode || this.mode || null this.referrer = null if ((this.method === 'GET' || this.method === 'HEAD') && body) { throw new TypeError('Body not allowed for GET or HEAD requests') } this._initBody(body) } Request.prototype.clone = function() { return new Request(this, { body: this._bodyInit }) } function decode(body) { var form = new FormData() body.trim().split('&').forEach(function(bytes) { if (bytes) { var split = bytes.split('=') var name = split.shift().replace(/\+/g, ' ') var value = split.join('=').replace(/\+/g, ' ') form.append(decodeURIComponent(name), decodeURIComponent(value)) } }) return form } function parseHeaders(rawHeaders) { var headers = new Headers() // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space // https://tools.ietf.org/html/rfc7230#section-3.2 var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ') preProcessedHeaders.split(/\r?\n/).forEach(function(line) { var parts = line.split(':') var key = parts.shift().trim() if (key) { var value = parts.join(':').trim() headers.append(key, value) } }) return headers } Body.call(Request.prototype) function Response(bodyInit, options) { if (!options) { options = {} } this.type = 'default' this.status = options.status === undefined ? 200 : options.status this.ok = this.status >= 200 && this.status < 300 this.statusText = 'statusText' in options ? options.statusText : 'OK' this.headers = new Headers(options.headers) this.url = options.url || '' this._initBody(bodyInit) } Body.call(Response.prototype) Response.prototype.clone = function() { return new Response(this._bodyInit, { status: this.status, statusText: this.statusText, headers: new Headers(this.headers), url: this.url }) } Response.error = function() { var response = new Response(null, {status: 0, statusText: ''}) response.type = 'error' return response } var redirectStatuses = [301, 302, 303, 307, 308] Response.redirect = function(url, status) { if (redirectStatuses.indexOf(status) === -1) { throw new RangeError('Invalid status code') } return new Response(null, {status: status, headers: {location: url}}) } self.Headers = Headers self.Request = Request self.Response = Response self.fetch = function(input, init) { return new Promise(function(resolve, reject) { var request = new Request(input, init) var xhr = new XMLHttpRequest() xhr.onload = function() { var options = { status: xhr.status, statusText: xhr.statusText, headers: parseHeaders(xhr.getAllResponseHeaders() || '') } options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') var body = 'response' in xhr ? xhr.response : xhr.responseText resolve(new Response(body, options)) } xhr.onerror = function() { reject(new TypeError('Network request failed')) } xhr.ontimeout = function() { reject(new TypeError('Network request failed')) } xhr.open(request.method, request.url, true) if (request.credentials === 'include') { xhr.withCredentials = true } else if (request.credentials === 'omit') { xhr.withCredentials = false } if ('responseType' in xhr && support.blob) { xhr.responseType = 'blob' } request.headers.forEach(function(value, name) { xhr.setRequestHeader(name, value) }) xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) }) } self.fetch.polyfill = true })(typeof self !== 'undefined' ? self : this); /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.getOrigin = exports.httpRequest = undefined; var _regenerator = __webpack_require__(13); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(12); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); __webpack_require__(77); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var httpRequest = exports.httpRequest = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(url) { var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text'; var response, txt; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return fetch(url, { credentials: 'same-origin' }); case 2: response = _context.sent; if (!response.ok) { _context.next = 22; break; } if (!(type === 'json')) { _context.next = 11; break; } _context.next = 7; return response.text(); case 7: txt = _context.sent; return _context.abrupt('return', JSON.parse(txt)); case 11: if (!(type === 'binary')) { _context.next = 17; break; } _context.next = 14; return response.arrayBuffer(); case 14: return _context.abrupt('return', _context.sent); case 17: _context.next = 19; return response.text(); case 19: return _context.abrupt('return', _context.sent); case 20: _context.next = 23; break; case 22: throw new Error('httpRequest error: ' + url + ' ' + response.statusText); case 23: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function httpRequest(_x2) { return _ref.apply(this, arguments); }; }(); var getOrigin = exports.getOrigin = function getOrigin(url) { // eslint-disable-next-line no-irregular-whitespace, no-useless-escape var parts = url.match(/^.+\:\/\/[^\‌​/]+/); return Array.isArray(parts) && parts.length > 0 ? parts[0] : 'unknown'; }; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var layerID = 'TrezorConnectInteractionLayer'; var layerInnerHtml = '\n
\n
\n
\n \n
\n \n \n \n
\n
\n
\n

Popup was blocked

\n

Please click to \u201CContinue\u201D to open popup manually

\n \n
\n
\n
\n'; var showPopupRequest = exports.showPopupRequest = function showPopupRequest(open, cancel) { if (document.getElementById(layerID)) { return; } var div = document.createElement('div'); div.id = layerID; div.className = 'trezorconnect-container'; div.innerHTML = layerInnerHtml; if (document.body) { document.body.appendChild(div); } var button = div.getElementsByClassName('trezorconnect-open')[0]; button.onclick = function () { open(); if (document.body) { document.body.removeChild(div); } }; var close = div.getElementsByClassName('trezorconnect-close')[0]; close.onclick = function () { cancel(); if (document.body) { document.body.removeChild(div); } }; }; /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _regenerator = __webpack_require__(13); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(12); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _classCallCheck2 = __webpack_require__(19); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _possibleConstructorReturn2 = __webpack_require__(45); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = __webpack_require__(41); var _inherits3 = _interopRequireDefault(_inherits2); var _events = __webpack_require__(50); var _events2 = _interopRequireDefault(_events); var _popup = __webpack_require__(28); var POPUP = _interopRequireWildcard(_popup); var _showPopupRequest = __webpack_require__(79); var _networkUtils = __webpack_require__(78); var _deferred = __webpack_require__(40); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // const POPUP_REQUEST_TIMEOUT: number = 602; var POPUP_REQUEST_TIMEOUT = 999; var POPUP_CLOSE_INTERVAL = 500; var POPUP_OPEN_TIMEOUT = 2000; var PopupManager = function (_EventEmitter) { (0, _inherits3.default)(PopupManager, _EventEmitter); // $FlowIssue chrome not declared outside // Window function PopupManager(settings) { (0, _classCallCheck3.default)(this, PopupManager); var _this = (0, _possibleConstructorReturn3.default)(this, _EventEmitter.call(this)); _this.requestTimeout = 0; _this.closeInterval = 0; _this.extension = false; _this.settings = settings; _this.src = settings.popupSrc; _this.origin = (0, _networkUtils.getOrigin)(settings.popupSrc); _this.handleLazyLoading = _this.handleLazyLoading.bind(_this); // $FlowIssue chrome not declared outside _this.extension = typeof chrome !== 'undefined' && chrome.runtime && typeof chrome.runtime.onConnect !== 'undefined'; if (_this.extension) { _this.handleExtensionConnect = _this.handleExtensionConnect.bind(_this); _this.handleExtensionMessage = _this.handleExtensionMessage.bind(_this); // $FlowIssue chrome not declared outside chrome.runtime.onConnect.addListener(_this.handleExtensionConnect); } return _this; } PopupManager.prototype.request = function request() { var _this2 = this; var lazyLoad = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; // popup request // TODO: ie - open imediately and hide it but post handshake after timeout // bring popup window to front if (this.locked) { if (this._window) { if (this.extension) { // $FlowIssue chrome not declared outside chrome.tabs.update(this._window.id, { active: true }); } else { this._window.focus(); } } return; } this.lazyLoad = lazyLoad ? (0, _deferred.create)(POPUP.INIT) : null; if (this.lazyLoad) { if (!this.extension) { window.addEventListener('message', this.handleLazyLoading, false); } } var openFn = this.open.bind(this); this.locked = true; if (!this.settings.supportedBrowser) { openFn(); } else { this.requestTimeout = window.setTimeout(function () { _this2.requestTimeout = 0; openFn(); }, lazyLoad || this.extension ? 1 : POPUP_REQUEST_TIMEOUT); } }; PopupManager.prototype.cancel = function cancel() { this.close(); }; PopupManager.prototype.unlock = function unlock() { this.locked = false; }; PopupManager.prototype.open = function open() { var _this3 = this; if (!this.settings.supportedBrowser) { this.openWrapper(this.src + '#unsupported'); return; } this.openWrapper(this.lazyLoad ? this.src + '#loading' : this.src); this.closeInterval = window.setInterval(function () { if (_this3._window) { if (_this3.extension) { // $FlowIssue chrome not declared outside chrome.tabs.get(_this3._window.id, function (tab) { if (!tab) { _this3.close(); _this3.emit(POPUP.CLOSED); } }); } else if (_this3._window.closed) { _this3.close(); _this3.emit(POPUP.CLOSED); } } }, POPUP_CLOSE_INTERVAL); this.openTimeout = window.setTimeout(function () { if (!(_this3._window && !_this3._window.closed)) { _this3.close(); (0, _showPopupRequest.showPopupRequest)(_this3.open.bind(_this3), function () { _this3.emit(POPUP.CLOSED); }); } }, POPUP_OPEN_TIMEOUT); }; PopupManager.prototype.openWrapper = function openWrapper(url) { var _this4 = this; if (this.extension) { // $FlowIssue chrome not declared outside chrome.tabs.create({ url: url }, function (tab) { _this4._window = tab; }); } else { this._window = window.open('', '_blank'); if (this._window) { this._window.location.href = url; // otherwise android/chrome loose window.opener reference } } }; PopupManager.prototype.handleExtensionConnect = function handleExtensionConnect(port) { if (port.name === 'trezor-connect') { if (!this._window || this._window && this._window.id !== port.sender.tab.id) { port.disconnect(); return; } this.extensionPort = port; this.extensionPort.onMessage.addListener(this.handleExtensionMessage); } else if (port.name === 'trezor-usb-permissions') { port.postMessage({ broadcast: this.broadcast }); } }; PopupManager.prototype.handleExtensionMessage = function handleExtensionMessage(message) { if (!this.extensionPort) return; if (message === POPUP.EXTENSION_REQUEST) { this.extensionPort.postMessage({ type: POPUP.EXTENSION_REQUEST, broadcast: this.broadcast }); } else if (message === POPUP.INIT && this.lazyLoad) { this.lazyLoad.resolve(true); } else if (message === POPUP.EXTENSION_USB_PERMISSIONS) { // $FlowIssue chrome not declared outside chrome.tabs.create({ url: 'trezor-usb-permissions.html' }); } else if (message === 'window.close') { this.emit(POPUP.CLOSED); this.close(); } }; PopupManager.prototype.setBroadcast = function setBroadcast(broadcast) { this.broadcast = broadcast; }; PopupManager.prototype.handleLazyLoading = function handleLazyLoading(event) { if (this.lazyLoad && event.data && event.data === POPUP.INIT) { this.lazyLoad.resolve(true); window.removeEventListener('message', this.handleLazyLoading, false); } }; PopupManager.prototype.resolveLazyLoad = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!this.lazyLoad) { _context.next = 3; break; } _context.next = 3; return this.lazyLoad.promise; case 3: if (this.extension) { if (this.extensionPort) { this.extensionPort.postMessage({ type: POPUP.INIT }); } } else { this._window.postMessage({ type: POPUP.INIT }, this.origin); } case 4: case 'end': return _context.stop(); } } }, _callee, this); })); function resolveLazyLoad() { return _ref.apply(this, arguments); } return resolveLazyLoad; }(); PopupManager.prototype.close = function close() { if (this.requestTimeout) { window.clearTimeout(this.requestTimeout); this.requestTimeout = 0; } if (this.openTimeout) { window.clearTimeout(this.openTimeout); this.openTimeout = 0; } if (this.closeInterval) { window.clearInterval(this.closeInterval); this.closeInterval = 0; } if (this.extensionPort) { this.extensionPort.disconnect(); this.extensionPort = null; } if (this._window) { if (this.extension) { // $FlowIssue chrome not declared outside chrome.tabs.remove(this._window.id); } else { this._window.close(); } this._window = null; } }; PopupManager.prototype.postMessage = function postMessage(message) { var _this5 = this; // post message before popup request finalized if (this.requestTimeout) { return; } // device needs interaction but there is no popup/ui // maybe popup request wasn't handled // ignore "ui_request_window" type if (!this._window && message.type !== 'ui_request_window' && this.openTimeout) { this.close(); (0, _showPopupRequest.showPopupRequest)(this.open.bind(this), function () { _this5.emit(POPUP.CLOSED); }); return; } // post message to popup window if (this._window) { this._window.postMessage(message, this.origin); } }; PopupManager.prototype.onBeforeUnload = function onBeforeUnload() { this.close(); }; PopupManager.prototype.cancelOpenTimeout = function cancelOpenTimeout() { window.clearTimeout(this.openTimeout); }; return PopupManager; }(_events2.default); exports.default = PopupManager; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(5); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) $export($export.S, 'Object', { create: __webpack_require__(30) }); /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(81); var $Object = __webpack_require__(2).Object; module.exports = function create(P, D) { return $Object.create(P, D); }; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(82), __esModule: true }; /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ var isObject = __webpack_require__(4); var anObject = __webpack_require__(3); var check = function (O, proto) { anObject(O); if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); }; module.exports = { set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line function (test, buggy, set) { try { set = __webpack_require__(17)(Function.call, __webpack_require__(42).f(Object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof Array); } catch (e) { buggy = true; } return function setPrototypeOf(O, proto) { check(O, proto); if (buggy) O.__proto__ = proto; else set(O, proto); return O; }; }({}, false) : undefined), check: check }; /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.19 Object.setPrototypeOf(O, proto) var $export = __webpack_require__(5); $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(84).set }); /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(85); module.exports = __webpack_require__(2).Object.setPrototypeOf; /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(86), __esModule: true }; /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(25)('observable'); /***/ }), /* 89 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(25)('asyncIterator'); /***/ }), /* 90 */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = __webpack_require__(10); var gOPN = __webpack_require__(43).f; var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return gOPN(it); } catch (e) { return windowNames.slice(); } }; module.exports.f = function getOwnPropertyNames(it) { return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); }; /***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(15); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols var getKeys = __webpack_require__(22); var gOPS = __webpack_require__(32); var pIE = __webpack_require__(20); module.exports = function (it) { var result = getKeys(it); var getSymbols = gOPS.f; if (getSymbols) { var symbols = getSymbols(it); var isEnum = pIE.f; var i = 0; var key; while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); } return result; }; /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { var META = __webpack_require__(21)('meta'); var isObject = __webpack_require__(4); var has = __webpack_require__(6); var setDesc = __webpack_require__(8).f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; var FREEZE = !__webpack_require__(16)(function () { return isExtensible(Object.preventExtensions({})); }); var setMeta = function (it) { setDesc(it, META, { value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs } }); }; var fastKey = function (it, create) { // return primitive with prefix if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if (!has(it, META)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return 'F'; // not necessary to add metadata if (!create) return 'E'; // add missing metadata setMeta(it); // return object ID } return it[META].i; }; var getWeak = function (it, create) { if (!has(it, META)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return true; // not necessary to add metadata if (!create) return false; // add missing metadata setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling var onFreeze = function (it) { if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); return it; }; var meta = module.exports = { KEY: META, NEED: false, fastKey: fastKey, getWeak: getWeak, onFreeze: onFreeze }; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // ECMAScript 6 symbols shim var global = __webpack_require__(0); var has = __webpack_require__(6); var DESCRIPTORS = __webpack_require__(7); var $export = __webpack_require__(5); var redefine = __webpack_require__(58); var META = __webpack_require__(93).KEY; var $fails = __webpack_require__(16); var shared = __webpack_require__(34); var setToStringTag = __webpack_require__(18); var uid = __webpack_require__(21); var wks = __webpack_require__(1); var wksExt = __webpack_require__(26); var wksDefine = __webpack_require__(25); var enumKeys = __webpack_require__(92); var isArray = __webpack_require__(91); var anObject = __webpack_require__(3); var isObject = __webpack_require__(4); var toIObject = __webpack_require__(10); var toPrimitive = __webpack_require__(38); var createDesc = __webpack_require__(23); var _create = __webpack_require__(30); var gOPNExt = __webpack_require__(90); var $GOPD = __webpack_require__(42); var $DP = __webpack_require__(8); var $keys = __webpack_require__(22); var gOPD = $GOPD.f; var dP = $DP.f; var gOPN = gOPNExt.f; var $Symbol = global.Symbol; var $JSON = global.JSON; var _stringify = $JSON && $JSON.stringify; var PROTOTYPE = 'prototype'; var HIDDEN = wks('_hidden'); var TO_PRIMITIVE = wks('toPrimitive'); var isEnum = {}.propertyIsEnumerable; var SymbolRegistry = shared('symbol-registry'); var AllSymbols = shared('symbols'); var OPSymbols = shared('op-symbols'); var ObjectProto = Object[PROTOTYPE]; var USE_NATIVE = typeof $Symbol == 'function'; var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDesc = DESCRIPTORS && $fails(function () { return _create(dP({}, 'a', { get: function () { return dP(this, 'a', { value: 7 }).a; } })).a != 7; }) ? function (it, key, D) { var protoDesc = gOPD(ObjectProto, key); if (protoDesc) delete ObjectProto[key]; dP(it, key, D); if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); } : dP; var wrap = function (tag) { var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); sym._k = tag; return sym; }; var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { return typeof it == 'symbol'; } : function (it) { return it instanceof $Symbol; }; var $defineProperty = function defineProperty(it, key, D) { if (it === ObjectProto) $defineProperty(OPSymbols, key, D); anObject(it); key = toPrimitive(key, true); anObject(D); if (has(AllSymbols, key)) { if (!D.enumerable) { if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); it[HIDDEN][key] = true; } else { if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; D = _create(D, { enumerable: createDesc(0, false) }); } return setSymbolDesc(it, key, D); } return dP(it, key, D); }; var $defineProperties = function defineProperties(it, P) { anObject(it); var keys = enumKeys(P = toIObject(P)); var i = 0; var l = keys.length; var key; while (l > i) $defineProperty(it, key = keys[i++], P[key]); return it; }; var $create = function create(it, P) { return P === undefined ? _create(it) : $defineProperties(_create(it), P); }; var $propertyIsEnumerable = function propertyIsEnumerable(key) { var E = isEnum.call(this, key = toPrimitive(key, true)); if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { it = toIObject(it); key = toPrimitive(key, true); if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; var D = gOPD(it, key); if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; return D; }; var $getOwnPropertyNames = function getOwnPropertyNames(it) { var names = gOPN(toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); } return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { var IS_OP = it === ObjectProto; var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); } return result; }; // 19.4.1.1 Symbol([description]) if (!USE_NATIVE) { $Symbol = function Symbol() { if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); var tag = uid(arguments.length > 0 ? arguments[0] : undefined); var $set = function (value) { if (this === ObjectProto) $set.call(OPSymbols, value); if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; setSymbolDesc(this, tag, createDesc(1, value)); }; if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); return wrap(tag); }; redefine($Symbol[PROTOTYPE], 'toString', function toString() { return this._k; }); $GOPD.f = $getOwnPropertyDescriptor; $DP.f = $defineProperty; __webpack_require__(43).f = gOPNExt.f = $getOwnPropertyNames; __webpack_require__(20).f = $propertyIsEnumerable; __webpack_require__(32).f = $getOwnPropertySymbols; if (DESCRIPTORS && !__webpack_require__(14)) { redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } wksExt.f = function (name) { return wrap(wks(name)); }; } $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); for (var es6Symbols = ( // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { // 19.4.2.1 Symbol.for(key) 'for': function (key) { return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) keyFor: function keyFor(sym) { if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; }, useSetter: function () { setter = true; }, useSimple: function () { setter = false; } }); $export($export.S + $export.F * !USE_NATIVE, 'Object', { // 19.1.2.2 Object.create(O [, Properties]) create: $create, // 19.1.2.4 Object.defineProperty(O, P, Attributes) defineProperty: $defineProperty, // 19.1.2.3 Object.defineProperties(O, Properties) defineProperties: $defineProperties, // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) getOwnPropertyDescriptor: $getOwnPropertyDescriptor, // 19.1.2.7 Object.getOwnPropertyNames(O) getOwnPropertyNames: $getOwnPropertyNames, // 19.1.2.8 Object.getOwnPropertySymbols(O) getOwnPropertySymbols: $getOwnPropertySymbols }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it) { var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); $replacer = replacer = args[1]; if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined if (!isArray(replacer)) replacer = function (key, value) { if (typeof $replacer == 'function') value = $replacer.call(this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; return _stringify.apply($JSON, args); } }); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(9)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag] setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] setToStringTag(global.JSON, 'JSON', true); /***/ }), /* 95 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(94); __webpack_require__(61); __webpack_require__(89); __webpack_require__(88); module.exports = __webpack_require__(2).Symbol; /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(95), __esModule: true }; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(60); __webpack_require__(56); module.exports = __webpack_require__(26).f('iterator'); /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(97), __esModule: true }; /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var BOOTSTRAP = exports.BOOTSTRAP = 'iframe-bootstrap'; var ERROR = exports.ERROR = 'iframe-error'; var CALL = exports.CALL = 'iframe-call'; var RESPONSE = exports.RESPONSE = 'iframe-response'; /***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/proposal-promise-try var $export = __webpack_require__(5); var newPromiseCapability = __webpack_require__(29); var perform = __webpack_require__(52); $export($export.S, 'Promise', { 'try': function (callbackfn) { var promiseCapability = newPromiseCapability.f(this); var result = perform(callbackfn); (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); return promiseCapability.promise; } }); /***/ }), /* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/proposal-promise-finally var $export = __webpack_require__(5); var core = __webpack_require__(2); var global = __webpack_require__(0); var speciesConstructor = __webpack_require__(54); var promiseResolve = __webpack_require__(51); $export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { var C = speciesConstructor(this, core.Promise || global.Promise); var isFunction = typeof onFinally == 'function'; return this.then( isFunction ? function (x) { return promiseResolve(C, onFinally()).then(function () { return x; }); } : onFinally, isFunction ? function (e) { return promiseResolve(C, onFinally()).then(function () { throw e; }); } : onFinally ); } }); /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { var ITERATOR = __webpack_require__(1)('iterator'); var SAFE_CLOSING = false; try { var riter = [7][ITERATOR](); riter['return'] = function () { SAFE_CLOSING = true; }; // eslint-disable-next-line no-throw-literal Array.from(riter, function () { throw 2; }); } catch (e) { /* empty */ } module.exports = function (exec, skipClosing) { if (!skipClosing && !SAFE_CLOSING) return false; var safe = false; try { var arr = [7]; var iter = arr[ITERATOR](); iter.next = function () { return { done: safe = true }; }; arr[ITERATOR] = function () { return iter; }; exec(arr); } catch (e) { /* empty */ } return safe; }; /***/ }), /* 103 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(0); var core = __webpack_require__(2); var dP = __webpack_require__(8); var DESCRIPTORS = __webpack_require__(7); var SPECIES = __webpack_require__(1)('species'); module.exports = function (KEY) { var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { configurable: true, get: function () { return this; } }); }; /***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) { var hide = __webpack_require__(9); module.exports = function (target, src, safe) { for (var key in src) { if (safe && target[key]) target[key] = src[key]; else hide(target, key, src[key]); } return target; }; /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var navigator = global.navigator; module.exports = navigator && navigator.userAgent || ''; /***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(0); var macrotask = __webpack_require__(53).set; var Observer = global.MutationObserver || global.WebKitMutationObserver; var process = global.process; var Promise = global.Promise; var isNode = __webpack_require__(15)(process) == 'process'; module.exports = function () { var head, last, notify; var flush = function () { var parent, fn; if (isNode && (parent = process.domain)) parent.exit(); while (head) { fn = head.fn; head = head.next; try { fn(); } catch (e) { if (head) notify(); else last = undefined; throw e; } } last = undefined; if (parent) parent.enter(); }; // Node.js if (isNode) { notify = function () { process.nextTick(flush); }; // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 } else if (Observer && !(global.navigator && global.navigator.standalone)) { var toggle = true; var node = document.createTextNode(''); new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new notify = function () { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise } else if (Promise && Promise.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 var promise = Promise.resolve(undefined); notify = function () { promise.then(flush); }; // for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessag // - onreadystatechange // - setTimeout } else { notify = function () { // strange IE + webpack dev server bug - use .call(global) macrotask.call(global, flush); }; } return function (fn) { var task = { fn: fn, next: undefined }; if (last) last.next = task; if (!head) { head = task; notify(); } last = task; }; }; /***/ }), /* 107 */ /***/ (function(module, exports) { // fast apply, http://jsperf.lnkit.com/fast-apply/5 module.exports = function (fn, args, that) { var un = that === undefined; switch (args.length) { case 0: return un ? fn() : fn.call(that); case 1: return un ? fn(args[0]) : fn.call(that, args[0]); case 2: return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); case 3: return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); case 4: return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); } return fn.apply(that, args); }; /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(55); var ITERATOR = __webpack_require__(1)('iterator'); var Iterators = __webpack_require__(11); module.exports = __webpack_require__(2).getIteratorMethod = function (it) { if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; }; /***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) { // check on default Array iterator var Iterators = __webpack_require__(11); var ITERATOR = __webpack_require__(1)('iterator'); var ArrayProto = Array.prototype; module.exports = function (it) { return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); }; /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { // call something on iterator step with safe closing on error var anObject = __webpack_require__(3); module.exports = function (iterator, fn, value, entries) { try { return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) } catch (e) { var ret = iterator['return']; if (ret !== undefined) anObject(ret.call(iterator)); throw e; } }; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { var ctx = __webpack_require__(17); var call = __webpack_require__(110); var isArrayIter = __webpack_require__(109); var anObject = __webpack_require__(3); var toLength = __webpack_require__(63); var getIterFn = __webpack_require__(108); var BREAK = {}; var RETURN = {}; var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); var f = ctx(fn, that, entries ? 2 : 1); var index = 0; var length, step, iterator, result; if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); if (result === BREAK || result === RETURN) return result; } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { result = call(iterator, f, step.value, entries); if (result === BREAK || result === RETURN) return result; } }; exports.BREAK = BREAK; exports.RETURN = RETURN; /***/ }), /* 112 */ /***/ (function(module, exports) { module.exports = function (it, Constructor, name, forbiddenField) { if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { throw TypeError(name + ': incorrect invocation!'); } return it; }; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(14); var global = __webpack_require__(0); var ctx = __webpack_require__(17); var classof = __webpack_require__(55); var $export = __webpack_require__(5); var isObject = __webpack_require__(4); var aFunction = __webpack_require__(24); var anInstance = __webpack_require__(112); var forOf = __webpack_require__(111); var speciesConstructor = __webpack_require__(54); var task = __webpack_require__(53).set; var microtask = __webpack_require__(106)(); var newPromiseCapabilityModule = __webpack_require__(29); var perform = __webpack_require__(52); var userAgent = __webpack_require__(105); var promiseResolve = __webpack_require__(51); var PROMISE = 'Promise'; var TypeError = global.TypeError; var process = global.process; var versions = process && process.versions; var v8 = versions && versions.v8 || ''; var $Promise = global[PROMISE]; var isNode = classof(process) == 'process'; var empty = function () { /* empty */ }; var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; var USE_NATIVE = !!function () { try { // correct subclassing with @@species support var promise = $Promise.resolve(1); var FakePromise = (promise.constructor = {})[__webpack_require__(1)('species')] = function (exec) { exec(empty, empty); }; // unhandled rejections tracking support, NodeJS Promise without it fails @@species test return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 // we can't detect it synchronously, so just check versions && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; } catch (e) { /* empty */ } }(); // helpers var isThenable = function (it) { var then; return isObject(it) && typeof (then = it.then) == 'function' ? then : false; }; var notify = function (promise, isReject) { if (promise._n) return; promise._n = true; var chain = promise._c; microtask(function () { var value = promise._v; var ok = promise._s == 1; var i = 0; var run = function (reaction) { var handler = ok ? reaction.ok : reaction.fail; var resolve = reaction.resolve; var reject = reaction.reject; var domain = reaction.domain; var result, then, exited; try { if (handler) { if (!ok) { if (promise._h == 2) onHandleUnhandled(promise); promise._h = 1; } if (handler === true) result = value; else { if (domain) domain.enter(); result = handler(value); // may throw if (domain) { domain.exit(); exited = true; } } if (result === reaction.promise) { reject(TypeError('Promise-chain cycle')); } else if (then = isThenable(result)) { then.call(result, resolve, reject); } else resolve(result); } else reject(value); } catch (e) { if (domain && !exited) domain.exit(); reject(e); } }; while (chain.length > i) run(chain[i++]); // variable length - can't use forEach promise._c = []; promise._n = false; if (isReject && !promise._h) onUnhandled(promise); }); }; var onUnhandled = function (promise) { task.call(global, function () { var value = promise._v; var unhandled = isUnhandled(promise); var result, handler, console; if (unhandled) { result = perform(function () { if (isNode) { process.emit('unhandledRejection', value, promise); } else if (handler = global.onunhandledrejection) { handler({ promise: promise, reason: value }); } else if ((console = global.console) && console.error) { console.error('Unhandled promise rejection', value); } }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should promise._h = isNode || isUnhandled(promise) ? 2 : 1; } promise._a = undefined; if (unhandled && result.e) throw result.v; }); }; var isUnhandled = function (promise) { return promise._h !== 1 && (promise._a || promise._c).length === 0; }; var onHandleUnhandled = function (promise) { task.call(global, function () { var handler; if (isNode) { process.emit('rejectionHandled', promise); } else if (handler = global.onrejectionhandled) { handler({ promise: promise, reason: promise._v }); } }); }; var $reject = function (value) { var promise = this; if (promise._d) return; promise._d = true; promise = promise._w || promise; // unwrap promise._v = value; promise._s = 2; if (!promise._a) promise._a = promise._c.slice(); notify(promise, true); }; var $resolve = function (value) { var promise = this; var then; if (promise._d) return; promise._d = true; promise = promise._w || promise; // unwrap try { if (promise === value) throw TypeError("Promise can't be resolved itself"); if (then = isThenable(value)) { microtask(function () { var wrapper = { _w: promise, _d: false }; // wrap try { then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); } catch (e) { $reject.call(wrapper, e); } }); } else { promise._v = value; promise._s = 1; notify(promise, false); } } catch (e) { $reject.call({ _w: promise, _d: false }, e); // wrap } }; // constructor polyfill if (!USE_NATIVE) { // 25.4.3.1 Promise(executor) $Promise = function Promise(executor) { anInstance(this, $Promise, PROMISE, '_h'); aFunction(executor); Internal.call(this); try { executor(ctx($resolve, this, 1), ctx($reject, this, 1)); } catch (err) { $reject.call(this, err); } }; // eslint-disable-next-line no-unused-vars Internal = function Promise(executor) { this._c = []; // <- awaiting reactions this._a = undefined; // <- checked in isUnhandled reactions this._s = 0; // <- state this._d = false; // <- done this._v = undefined; // <- value this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled this._n = false; // <- notify }; Internal.prototype = __webpack_require__(104)($Promise.prototype, { // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) then: function then(onFulfilled, onRejected) { var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; reaction.fail = typeof onRejected == 'function' && onRejected; reaction.domain = isNode ? process.domain : undefined; this._c.push(reaction); if (this._a) this._a.push(reaction); if (this._s) notify(this, false); return reaction.promise; }, // 25.4.5.1 Promise.prototype.catch(onRejected) 'catch': function (onRejected) { return this.then(undefined, onRejected); } }); OwnPromiseCapability = function () { var promise = new Internal(); this.promise = promise; this.resolve = ctx($resolve, promise, 1); this.reject = ctx($reject, promise, 1); }; newPromiseCapabilityModule.f = newPromiseCapability = function (C) { return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); }; } $export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); __webpack_require__(18)($Promise, PROMISE); __webpack_require__(103)(PROMISE); Wrapper = __webpack_require__(2)[PROMISE]; // statics $export($export.S + $export.F * !USE_NATIVE, PROMISE, { // 25.4.4.5 Promise.reject(r) reject: function reject(r) { var capability = newPromiseCapability(this); var $$reject = capability.reject; $$reject(r); return capability.promise; } }); $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { // 25.4.4.6 Promise.resolve(x) resolve: function resolve(x) { return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); } }); $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(102)(function (iter) { $Promise.all(iter)['catch'](empty); })), PROMISE, { // 25.4.4.1 Promise.all(iterable) all: function all(iterable) { var C = this; var capability = newPromiseCapability(C); var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { var values = []; var index = 0; var remaining = 1; forOf(iterable, false, function (promise) { var $index = index++; var alreadyCalled = false; values.push(undefined); remaining++; C.resolve(promise).then(function (value) { if (alreadyCalled) return; alreadyCalled = true; values[$index] = value; --remaining || resolve(values); }, reject); }); --remaining || resolve(values); }); if (result.e) reject(result.v); return capability.promise; }, // 25.4.4.4 Promise.race(iterable) race: function race(iterable) { var C = this; var capability = newPromiseCapability(C); var reject = capability.reject; var result = perform(function () { forOf(iterable, false, function (promise) { C.resolve(promise).then(capability.resolve, reject); }); }); if (result.e) reject(result.v); return capability.promise; } }); /***/ }), /* 114 */ /***/ (function(module, exports) { module.exports = function (done, value) { return { value: value, done: !!done }; }; /***/ }), /* 115 */ /***/ (function(module, exports) { module.exports = function () { /* empty */ }; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var addToUnscopables = __webpack_require__(115); var step = __webpack_require__(114); var Iterators = __webpack_require__(11); var toIObject = __webpack_require__(10); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(59)(Array, 'Array', function (iterated, kind) { this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function () { var O = this._t; var kind = this._k; var index = this._i++; if (!O || index >= O.length) { this._t = undefined; return step(1); } if (kind == 'keys') return step(0, index); if (kind == 'values') return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(6); var toObject = __webpack_require__(62); var IE_PROTO = __webpack_require__(35)('IE_PROTO'); var ObjectProto = Object.prototype; module.exports = Object.getPrototypeOf || function (O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; if (typeof O.constructor == 'function' && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectProto : null; }; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(8); var anObject = __webpack_require__(3); var getKeys = __webpack_require__(22); module.exports = __webpack_require__(7) ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = getKeys(Properties); var length = keys.length; var i = 0; var P; while (length > i) dP.f(O, P = keys[i++], Properties[P]); return O; }; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var create = __webpack_require__(30); var descriptor = __webpack_require__(23); var setToStringTag = __webpack_require__(18); var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(9)(IteratorPrototype, __webpack_require__(1)('iterator'), function () { return this; }); module.exports = function (Constructor, NAME, next) { Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(36); var defined = __webpack_require__(37); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) { return function (that, pos) { var s = String(defined(that)); var i = toInteger(pos); var l = s.length; var a, b; if (i < 0 || i >= l) return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(61); __webpack_require__(60); __webpack_require__(56); __webpack_require__(113); __webpack_require__(101); __webpack_require__(100); module.exports = __webpack_require__(2).Promise; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(121), __esModule: true }; /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** * Copyright (c) 2014, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * https://raw.github.com/facebook/regenerator/master/LICENSE file. An * additional grant of patent rights can be found in the PATENTS file in * the same directory. */ !(function(global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; // More compressible than void 0. var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { // If regeneratorRuntime is defined globally and we're in a module, // make the exports object identical to regeneratorRuntime. module.exports = runtime; } // Don't bother evaluating the rest of this file if the runtime was // already defined globally. return; } // Define the runtime globally (as expected by generated code) as either // module.exports (if we're in a module) or a new, empty object. runtime = global.regeneratorRuntime = inModule ? module.exports : {}; function wrap(innerFn, outerFn, self, tryLocsList) { // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, // .throw, and .return methods. generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion // record like context.tryEntries[i].completion. This interface could // have been (and was previously) designed to take a closure to be // invoked without arguments, but in all the cases we care about we // already have an existing method we want to call, so there's no need // to create a new function object. We can even get away with assuming // the method takes exactly one argument, since that happens to be true // in every case, so we don't have to touch the arguments object. The // only additional allocation required is the completion record, which // has a stable shape and so hopefully should be cheap to allocate. function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as // breaking out of the dispatch switch statement. var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and // .constructor.prototype properties for functions that return Generator // objects. For full spec compliance, you may wish to configure your // minifier not to mangle the names of these two functions. function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that // don't natively support it. var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { // This environment has a native %IteratorPrototype%; use it instead // of the polyfill. IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; // Helper for defining the .next, .throw, and .return methods of the // Iterator interface in terms of a single ._invoke method. function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function(method) { prototype[method] = function(arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function(genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can // do is to check its .name property. (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function(genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; // Within the body of any async function, `await x` is transformed to // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test // `hasOwn.call(value, "__await")` to determine if the yielded value is // meant to be awaited. runtime.awrap = function(arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function(value) { invoke("next", value, resolve, reject); }, function(err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function(unwrapped) { // When a yielded Promise is resolved, its final value becomes // the .value of the Promise<{value,done}> result for the // current iteration. If the Promise is rejected, however, the // result for this iteration will be rejected with the same // reason. Note that rejections of yielded Promises are not // thrown back into the generator function, as is the case // when an awaited Promise is rejected. This difference in // behavior between yield and await is important, because it // allows the consumer to decide what to do with the yielded // rejection (swallow it and continue, manually .throw it back // into the generator, abandon iteration, whatever). With // await, by contrast, there is no opportunity to examine the // rejection reason outside the generator function, so the // only option is to throw it from the await expression, and // let the generator function handle the exception. result.value = unwrapped; resolve(result); }, reject); } } if (typeof global.process === "object" && global.process.domain) { invoke = global.process.domain.bind(invoke); } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function(resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = // If enqueue has been called before, then we want to wait until // all previous Promises have been resolved before calling invoke, // so that results are always delivered in the correct order. If // enqueue has not been called before, then it is important to // call invoke immediately, without waiting on a callback to fire, // so that the async generator function has the opportunity to do // any necessary setup in a predictable way. This predictability // is why the Promise constructor synchronously invokes its // executor callback, and why async functions synchronously // execute code before the first await. Since we implement simple // async functions in terms of async generators, it is especially // important to get this right, even though it requires care. previousPromise ? previousPromise.then( callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later // invocations of the iterator. callInvokeWithMethodAndArg ) : callInvokeWithMethodAndArg(); } // Define the unified helper method that is used to implement .next, // .throw, and .return (see defineIteratorMethods). this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of // AsyncIterator objects; they just return a Promise for the value of // the final result produced by the iterator. runtime.async = function(innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator( wrap(innerFn, outerFn, self, tryLocsList) ); return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. : iter.next().then(function(result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } // Be forgiving, per 25.3.3.3.3 of the spec: // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { // Setting context._sent for legacy support of Babel's // function.sent implementation. context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { // If an exception is thrown from innerFn, we leave state === // GenStateExecuting and loop back for another invocation. state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; // Dispatch the exception by looping back around to the // context.dispatchException(context.arg) call above. context.method = "throw"; context.arg = record.arg; } } }; } // Call delegate.iterator[context.method](context.arg) and handle the // result, either by returning a { value, done } result from the // delegate iterator, or by modifying context.method and context.arg, // setting context.delegate to null, and returning the ContinueSentinel. function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { // A .throw or .return when the delegate iterator has no .throw // method always terminates the yield* loop. context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { // If the delegate iterator has a return method, give it a // chance to clean up. context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { // If maybeInvokeDelegate(context) changed context.method from // "return" to "throw", let that override the TypeError below. return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError( "The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (! info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { // Assign the result of the finished delegate to the temporary // variable specified by delegate.resultName (see delegateYield). context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the // exception, let the outer generator proceed normally. If // context.method was "next", forget context.arg since it has been // "consumed" by the delegate iterator. If context.method was // "return", allow the original .return call to continue in the // outer generator. if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { // Re-yield the result returned by the delegate method. return info; } // The delegate iterator is finished, so forget it and continue with // the outer generator. context.delegate = null; return ContinueSentinel; } // Define Generator.prototype.{next,throw,return} in terms of the // unified ._invoke helper method. defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; // A Generator should always return itself as the iterator object when the // @@iterator function is called on it. Some browsers' implementations of the // iterator prototype chain incorrectly implement this, causing the Generator // object to not be returned from this call. This ensures that doesn't happen. // See https://github.com/facebook/regenerator/issues/274 for more details. Gp[iteratorSymbol] = function() { return this; }; Gp.toString = function() { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { // The root entry object (effectively a try statement without a catch // or a finally block) gives us a place to store values thrown from // locations where there is no enclosing try statement. this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function(object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); // Rather than returning an object with a next method, we keep // things simple and return the next function itself. return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } // To avoid creating an additional object, we just hang the .value // and .done properties off the next function object itself. This // also ensures that the minifier will not anonymize the function. next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } // Return an iterator with no values. return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function(skipTempReset) { this.prev = 0; this.next = 0; // Resetting context._sent for legacy support of Babel's // function.sent implementation. this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { // Not sure about the optimal order of these conditions: if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function() { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function(exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { // If the dispatched exception was caught by a catch block, // then let that catch block handle the exception normally. context.method = "next"; context.arg = undefined; } return !! caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { // Exception thrown outside of any try block that could handle // it, so set the completion value of the entire function to // throw the exception. return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { // Ignore the finally entry if control is not jumping to a // location outside the try/catch block. finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function(record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } // The context.catch method must only be called with a location // argument that corresponds to a known catch block. throw new Error("illegal catch attempt"); }, delegateYield: function(iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { // Deliberately forget the last sent value so that we don't // accidentally pass it on to the delegate. this.arg = undefined; } return ContinueSentinel; } }; })( // Among the various tricks for obtaining a reference to the global // object, this seems to be the most reliable technique that does not // use indirect eval (which violates Content Security Policy). typeof global === "object" ? global : typeof window === "object" ? window : typeof self === "object" ? self : this ); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31))) /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {// This method of obtaining a reference to the global object needs to be // kept identical to the way it is obtained in runtime.js var g = typeof global === "object" ? global : typeof window === "object" ? window : typeof self === "object" ? self : this; // Use `getOwnPropertyNames` because not all browsers support calling // `hasOwnProperty` on the global `self` object in a worker. See #183. var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; // Save the old regeneratorRuntime in case it needs to be restored later. var oldRuntime = hadRuntime && g.regeneratorRuntime; // Force reevalutation of runtime.js. g.regeneratorRuntime = undefined; module.exports = __webpack_require__(123); if (hadRuntime) { // Restore the original runtime. g.regeneratorRuntime = oldRuntime; } else { // Remove the global property added by runtime.js. try { delete g.regeneratorRuntime; } catch(e) { g.regeneratorRuntime = undefined; } } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31))) /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(36); var max = Math.max; var min = Math.min; module.exports = function (index, length) { index = toInteger(index); return index < 0 ? max(index + length, 0) : min(index, length); }; /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(10); var toLength = __webpack_require__(63); var toAbsoluteIndex = __webpack_require__(125); module.exports = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIObject($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) if (IS_INCLUDES || index in O) { if (O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.2.1 Object.assign(target, source, ...) var getKeys = __webpack_require__(22); var gOPS = __webpack_require__(32); var pIE = __webpack_require__(20); var toObject = __webpack_require__(62); var IObject = __webpack_require__(64); var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) module.exports = !$assign || __webpack_require__(16)(function () { var A = {}; var B = {}; // eslint-disable-next-line no-undef var S = Symbol(); var K = 'abcdefghijklmnopqrst'; A[S] = 7; K.split('').forEach(function (k) { B[k] = k; }); return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; }) ? function assign(target, source) { // eslint-disable-line no-unused-vars var T = toObject(target); var aLen = arguments.length; var index = 1; var getSymbols = gOPS.f; var isEnum = pIE.f; while (aLen > index) { var S = IObject(arguments[index++]); var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); var length = keys.length; var j = 0; var key; while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; } return T; } : $assign; /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(5); $export($export.S + $export.F, 'Object', { assign: __webpack_require__(127) }); /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(128); module.exports = __webpack_require__(2).Object.assign; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(129), __esModule: true }; /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * (C) 2017 SatoshiLabs * GPLv3 */ exports.__esModule = true; exports.TRANSPORT_EVENT = exports.DEVICE_EVENT = exports.UI_EVENT = exports.DEVICE = exports.UI = exports.TRANSPORT = undefined; var _extends2 = __webpack_require__(67); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = __webpack_require__(19); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _regenerator = __webpack_require__(13); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(12); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _events = __webpack_require__(50); var _events2 = _interopRequireDefault(_events); var _constants = __webpack_require__(49); var _transport = __webpack_require__(48); var TRANSPORT = _interopRequireWildcard(_transport); var _popup = __webpack_require__(28); var POPUP = _interopRequireWildcard(_popup); var _iframe = __webpack_require__(99); var IFRAME = _interopRequireWildcard(_iframe); var _ui = __webpack_require__(27); var UI = _interopRequireWildcard(_ui); var _device = __webpack_require__(47); var DEVICE = _interopRequireWildcard(_device); var _errors = __webpack_require__(46); var _PopupManager = __webpack_require__(80); var _PopupManager2 = _interopRequireDefault(_PopupManager); var _builder = __webpack_require__(76); var iframe = _interopRequireWildcard(_builder); var _button = __webpack_require__(74); var _button2 = _interopRequireDefault(_button); var _debug = __webpack_require__(73); var _debug2 = _interopRequireDefault(_debug); var _message = __webpack_require__(72); var _ConnectSettings = __webpack_require__(71); var _types = __webpack_require__(70); var $T = _interopRequireWildcard(_types); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var eventEmitter = new _events2.default(); var _log = (0, _debug.init)('[trezor-connect.js]'); var _settings = void 0; var _popupManager = void 0; var initPopupManager = function initPopupManager() { var pm = new _PopupManager2.default(_settings); pm.on(POPUP.CLOSED, function () { iframe.postMessage({ type: POPUP.CLOSED }, false); }); return pm; }; // handle message received from iframe var handleMessage = function handleMessage(messageEvent) { // ignore messages from domain other then iframe origin if (messageEvent.origin !== iframe.origin) return; var message = (0, _message.parseMessage)(messageEvent.data); // TODO: destructuring with type // https://github.com/Microsoft/TypeScript/issues/240 // const { id, event, type, data, error }: CoreMessage = message; var id = message.id || 0; var event = message.event; var type = message.type; var payload = message.payload; _log.log('handleMessage', message); switch (event) { case _constants.RESPONSE_EVENT: if (iframe.messagePromises[id]) { // clear unnecessary fields from message object delete message.type; delete message.event; // delete message.id; // message.__id = id; // resolve message promise (send result of call method) iframe.messagePromises[id].resolve(message); delete iframe.messagePromises[id]; } else { _log.warn('Unknown message id ' + id); } break; case _constants.DEVICE_EVENT: // pass DEVICE event up to html eventEmitter.emit(event, message); eventEmitter.emit(type, payload); // DEVICE_EVENT also emit single events (connect/disconnect...) break; case _constants.TRANSPORT_EVENT: eventEmitter.emit(event, message); eventEmitter.emit(type, payload); // DEVICE_EVENT also emit single events (connect/disconnect...) break; case _constants.UI_EVENT: if (type === IFRAME.BOOTSTRAP) { iframe.clearTimeout(); break; } else if (type === POPUP.BOOTSTRAP) { // Popup did open but is still loading JS _popupManager.cancelOpenTimeout(); break; } // pass UI event up eventEmitter.emit(event, message); eventEmitter.emit(type, payload); if (type === UI.IFRAME_HANDSHAKE) { if (payload.error) { iframe.initPromise.reject(new Error(payload.error)); } else { _popupManager.setBroadcast(payload.broadcast); iframe.initPromise.resolve(); } } else if (type === POPUP.CANCEL_POPUP_REQUEST) { _popupManager.cancel(); } else if (type === UI.CLOSE_UI_WINDOW) { _popupManager.close(); } break; default: _log.log('Undefined message', event, messageEvent); } }; var init = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!iframe.instance) { _context.next = 2; break; } throw _errors.IFRAME_INITIALIZED; case 2: if (!_settings) { _settings = (0, _ConnectSettings.parse)(settings); } if (_settings.supportedBrowser) { _context.next = 5; break; } throw new Error('Unsupported browser'); case 5: if (!_popupManager) { _popupManager = initPopupManager(); } _log.enabled = _settings.debug; window.addEventListener('message', handleMessage); window.addEventListener('beforeunload', function () { if (_popupManager) { _popupManager.onBeforeUnload(); } iframe.dispose(); }); _context.next = 11; return iframe.init(_settings); case 11: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function init() { return _ref.apply(this, arguments); }; }(); var call = function () { var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(params) { var response; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!(!iframe.instance && !iframe.timeout)) { _context2.next = 16; break; } // init popup with lazy loading before iframe initialization _settings = (0, _ConnectSettings.parse)({}); _popupManager = initPopupManager(); _popupManager.request(true); if (_settings.supportedBrowser) { _context2.next = 6; break; } return _context2.abrupt('return', { success: false, payload: { error: 'Unsupported browser' } }); case 6: _context2.prev = 6; _context2.next = 9; return init(_settings); case 9: _popupManager.resolveLazyLoad(); _context2.next = 16; break; case 12: _context2.prev = 12; _context2.t0 = _context2['catch'](6); _popupManager.close(); return _context2.abrupt('return', { success: false, payload: { error: _context2.t0 } }); case 16: if (!iframe.timeout) { _context2.next = 20; break; } return _context2.abrupt('return', { success: false, payload: { error: _errors.NO_IFRAME.message } }); case 20: if (!iframe.error) { _context2.next = 22; break; } return _context2.abrupt('return', { success: false, payload: { error: iframe.error } }); case 22: // request popup window it might be used in the future // if (eventEmitter.listeners(UI_EVENT).length < 1) { _popupManager.request(params); } if (_settings.popup) { _popupManager.request(); } // post message to iframe _context2.prev = 23; _context2.next = 26; return iframe.postMessage({ type: IFRAME.CALL, payload: params }); case 26: response = _context2.sent; if (!response) { _context2.next = 32; break; } // TODO: unlock popupManager request only if there wasn't error "in progress" if (response.payload.error !== _errors.DEVICE_CALL_IN_PROGRESS.message) { _popupManager.unlock(); } return _context2.abrupt('return', response); case 32: _popupManager.unlock(); // TODO return _context2.abrupt('return', { success: false, payload: { error: 'No response from iframe' } }); case 34: _context2.next = 40; break; case 36: _context2.prev = 36; _context2.t1 = _context2['catch'](23); _log.error('__call error', _context2.t1); return _context2.abrupt('return', _context2.t1); case 40: case 'end': return _context2.stop(); } } }, _callee2, undefined, [[6, 12], [23, 36]]); })); return function call(_x2) { return _ref2.apply(this, arguments); }; }(); var customMessageResponse = function customMessageResponse(payload) { iframe.postMessage({ event: _constants.UI_EVENT, type: UI.CUSTOM_MESSAGE_RESPONSE, payload: payload }); }; var TrezorConnect = function TrezorConnect() { (0, _classCallCheck3.default)(this, TrezorConnect); }; TrezorConnect.init = function () { var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(settings) { return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return init(settings); case 2: return _context3.abrupt('return', _context3.sent); case 3: case 'end': return _context3.stop(); } } }, _callee3, undefined); })); return function (_x3) { return _ref3.apply(this, arguments); }; }(); TrezorConnect.on = function (type, fn) { eventEmitter.on(type, fn); }; TrezorConnect.off = function (type, fn) { eventEmitter.removeListener(type, fn); }; TrezorConnect.uiResponse = function (response) { iframe.postMessage((0, _extends3.default)({ event: _constants.UI_EVENT }, response)); }; TrezorConnect.changeSettings = function (settings) { var parsedSettings = (0, _ConnectSettings.parse)(settings); _log.enabled = parsedSettings.debug; iframe.postMessage({ type: UI.CHANGE_SETTINGS, payload: parsedSettings }, false); }; TrezorConnect.customMessage = function () { var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(params) { var callback, customMessageListener, response; return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: if (!(typeof params.callback !== 'function')) { _context5.next = 2; break; } return _context5.abrupt('return', { success: false, payload: { error: 'Parameter "callback" is not a function' } }); case 2: // TODO: set message listener only if iframe is loaded correctly callback = params.callback; delete params.callback; customMessageListener = function () { var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(event) { var data, payload; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: data = event.data; if (!(data && data.type === UI.CUSTOM_MESSAGE_REQUEST)) { _context4.next = 6; break; } _context4.next = 4; return callback(data.payload); case 4: payload = _context4.sent; if (payload) { customMessageResponse(payload); } else { customMessageResponse({ message: 'release' }); } case 6: case 'end': return _context4.stop(); } } }, _callee4, undefined); })); return function customMessageListener(_x5) { return _ref5.apply(this, arguments); }; }(); window.addEventListener('message', customMessageListener, false); _context5.next = 8; return call((0, _extends3.default)({ method: 'customMessage' }, params)); case 8: response = _context5.sent; window.removeEventListener('message', customMessageListener); return _context5.abrupt('return', response); case 11: case 'end': return _context5.stop(); } } }, _callee5, undefined); })); return function (_x4) { return _ref4.apply(this, arguments); }; }(); TrezorConnect.requestLogin = function () { var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(params) { var callback, loginChallengeListener, response; return _regenerator2.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: if (!(typeof params.callback === 'function')) { _context7.next = 12; break; } callback = params.callback; delete params.callback; // delete callback value. this field cannot be sent using postMessage function // TODO: set message listener only if iframe is loaded correctly loginChallengeListener = function () { var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(event) { var data, payload; return _regenerator2.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: data = event.data; if (!(data && data.type === UI.LOGIN_CHALLENGE_REQUEST)) { _context6.next = 6; break; } _context6.next = 4; return callback(); case 4: payload = _context6.sent; iframe.postMessage({ event: _constants.UI_EVENT, type: UI.LOGIN_CHALLENGE_RESPONSE, payload: payload }); case 6: case 'end': return _context6.stop(); } } }, _callee6, undefined); })); return function loginChallengeListener(_x7) { return _ref7.apply(this, arguments); }; }(); window.addEventListener('message', loginChallengeListener, false); _context7.next = 7; return call((0, _extends3.default)({ method: 'requestLogin' }, params, { asyncChallenge: true })); case 7: response = _context7.sent; window.removeEventListener('message', loginChallengeListener); return _context7.abrupt('return', response); case 12: _context7.next = 14; return call((0, _extends3.default)({ method: 'requestLogin' }, params)); case 14: return _context7.abrupt('return', _context7.sent); case 15: case 'end': return _context7.stop(); } } }, _callee7, undefined); })); return function (_x6) { return _ref6.apply(this, arguments); }; }(); TrezorConnect.cipherKeyValue = function () { var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(params) { return _regenerator2.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return call((0, _extends3.default)({ method: 'cipherKeyValue' }, params)); case 2: return _context8.abrupt('return', _context8.sent); case 3: case 'end': return _context8.stop(); } } }, _callee8, undefined); })); return function (_x8) { return _ref8.apply(this, arguments); }; }(); TrezorConnect.composeTransaction = function () { var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(params) { return _regenerator2.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return call((0, _extends3.default)({ method: 'composeTransaction' }, params)); case 2: return _context9.abrupt('return', _context9.sent); case 3: case 'end': return _context9.stop(); } } }, _callee9, undefined); })); return function (_x9) { return _ref9.apply(this, arguments); }; }(); TrezorConnect.ethereumGetAddress = function () { var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(params) { return _regenerator2.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return call((0, _extends3.default)({ method: 'ethereumGetAddress' }, params)); case 2: return _context10.abrupt('return', _context10.sent); case 3: case 'end': return _context10.stop(); } } }, _callee10, undefined); })); return function (_x10) { return _ref10.apply(this, arguments); }; }(); TrezorConnect.ethereumSignMessage = function () { var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(params) { return _regenerator2.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.next = 2; return call((0, _extends3.default)({ method: 'ethereumSignMessage' }, params)); case 2: return _context11.abrupt('return', _context11.sent); case 3: case 'end': return _context11.stop(); } } }, _callee11, undefined); })); return function (_x11) { return _ref11.apply(this, arguments); }; }(); TrezorConnect.ethereumSignTransaction = function () { var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(params) { return _regenerator2.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return call((0, _extends3.default)({ method: 'ethereumSignTransaction' }, params)); case 2: return _context12.abrupt('return', _context12.sent); case 3: case 'end': return _context12.stop(); } } }, _callee12, undefined); })); return function (_x12) { return _ref12.apply(this, arguments); }; }(); TrezorConnect.ethereumVerifyMessage = function () { var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(params) { return _regenerator2.default.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.next = 2; return call((0, _extends3.default)({ method: 'ethereumVerifyMessage' }, params)); case 2: return _context13.abrupt('return', _context13.sent); case 3: case 'end': return _context13.stop(); } } }, _callee13, undefined); })); return function (_x13) { return _ref13.apply(this, arguments); }; }(); TrezorConnect.getAccountInfo = function () { var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(params) { return _regenerator2.default.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: _context14.next = 2; return call((0, _extends3.default)({ method: 'getAccountInfo' }, params)); case 2: return _context14.abrupt('return', _context14.sent); case 3: case 'end': return _context14.stop(); } } }, _callee14, undefined); })); return function (_x14) { return _ref14.apply(this, arguments); }; }(); TrezorConnect.getAddress = function () { var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(params) { return _regenerator2.default.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.next = 2; return call((0, _extends3.default)({ method: 'getAddress' }, params)); case 2: return _context15.abrupt('return', _context15.sent); case 3: case 'end': return _context15.stop(); } } }, _callee15, undefined); })); return function (_x15) { return _ref15.apply(this, arguments); }; }(); TrezorConnect.getDeviceState = function () { var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(params) { return _regenerator2.default.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: _context16.next = 2; return call((0, _extends3.default)({ method: 'getDeviceState' }, params)); case 2: return _context16.abrupt('return', _context16.sent); case 3: case 'end': return _context16.stop(); } } }, _callee16, undefined); })); return function (_x16) { return _ref16.apply(this, arguments); }; }(); TrezorConnect.getFeatures = function () { var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(params) { return _regenerator2.default.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _context17.next = 2; return call((0, _extends3.default)({ method: 'getFeatures' }, params)); case 2: return _context17.abrupt('return', _context17.sent); case 3: case 'end': return _context17.stop(); } } }, _callee17, undefined); })); return function (_x17) { return _ref17.apply(this, arguments); }; }(); TrezorConnect.getPublicKey = function () { var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee18(params) { return _regenerator2.default.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: _context18.next = 2; return call((0, _extends3.default)({ method: 'getPublicKey' }, params)); case 2: return _context18.abrupt('return', _context18.sent); case 3: case 'end': return _context18.stop(); } } }, _callee18, undefined); })); return function (_x18) { return _ref18.apply(this, arguments); }; }(); TrezorConnect.nemGetAddress = function () { var _ref19 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee19(params) { return _regenerator2.default.wrap(function _callee19$(_context19) { while (1) { switch (_context19.prev = _context19.next) { case 0: _context19.next = 2; return call((0, _extends3.default)({ method: 'nemGetAddress' }, params)); case 2: return _context19.abrupt('return', _context19.sent); case 3: case 'end': return _context19.stop(); } } }, _callee19, undefined); })); return function (_x19) { return _ref19.apply(this, arguments); }; }(); TrezorConnect.nemSignTransaction = function () { var _ref20 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee20(params) { return _regenerator2.default.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: _context20.next = 2; return call((0, _extends3.default)({ method: 'nemSignTransaction' }, params)); case 2: return _context20.abrupt('return', _context20.sent); case 3: case 'end': return _context20.stop(); } } }, _callee20, undefined); })); return function (_x20) { return _ref20.apply(this, arguments); }; }(); TrezorConnect.pushTransaction = function () { var _ref21 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee21(params) { return _regenerator2.default.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { case 0: _context21.next = 2; return call((0, _extends3.default)({ method: 'pushTransaction' }, params)); case 2: return _context21.abrupt('return', _context21.sent); case 3: case 'end': return _context21.stop(); } } }, _callee21, undefined); })); return function (_x21) { return _ref21.apply(this, arguments); }; }(); TrezorConnect.signMessage = function () { var _ref22 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee22(params) { return _regenerator2.default.wrap(function _callee22$(_context22) { while (1) { switch (_context22.prev = _context22.next) { case 0: _context22.next = 2; return call((0, _extends3.default)({ method: 'signMessage' }, params)); case 2: return _context22.abrupt('return', _context22.sent); case 3: case 'end': return _context22.stop(); } } }, _callee22, undefined); })); return function (_x22) { return _ref22.apply(this, arguments); }; }(); TrezorConnect.signTransaction = function () { var _ref23 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee23(params) { return _regenerator2.default.wrap(function _callee23$(_context23) { while (1) { switch (_context23.prev = _context23.next) { case 0: _context23.next = 2; return call((0, _extends3.default)({ method: 'signTransaction' }, params)); case 2: return _context23.abrupt('return', _context23.sent); case 3: case 'end': return _context23.stop(); } } }, _callee23, undefined); })); return function (_x23) { return _ref23.apply(this, arguments); }; }(); TrezorConnect.stellarGetAddress = function () { var _ref24 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee24(params) { return _regenerator2.default.wrap(function _callee24$(_context24) { while (1) { switch (_context24.prev = _context24.next) { case 0: _context24.next = 2; return call((0, _extends3.default)({ method: 'stellarGetAddress' }, params)); case 2: return _context24.abrupt('return', _context24.sent); case 3: case 'end': return _context24.stop(); } } }, _callee24, undefined); })); return function (_x24) { return _ref24.apply(this, arguments); }; }(); TrezorConnect.stellarSignTransaction = function () { var _ref25 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee25(params) { return _regenerator2.default.wrap(function _callee25$(_context25) { while (1) { switch (_context25.prev = _context25.next) { case 0: _context25.next = 2; return call((0, _extends3.default)({ method: 'stellarSignTransaction' }, params)); case 2: return _context25.abrupt('return', _context25.sent); case 3: case 'end': return _context25.stop(); } } }, _callee25, undefined); })); return function (_x25) { return _ref25.apply(this, arguments); }; }(); TrezorConnect.verifyMessage = function () { var _ref26 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee26(params) { return _regenerator2.default.wrap(function _callee26$(_context26) { while (1) { switch (_context26.prev = _context26.next) { case 0: _context26.next = 2; return call((0, _extends3.default)({ method: 'verifyMessage' }, params)); case 2: return _context26.abrupt('return', _context26.sent); case 3: case 'end': return _context26.stop(); } } }, _callee26, undefined); })); return function (_x26) { return _ref26.apply(this, arguments); }; }(); TrezorConnect.dispose = function () { // TODO }; TrezorConnect.renderWebUSBButton = function (className) { (0, _button2.default)(className, _settings.webusbSrc, iframe.origin); }; exports.default = TrezorConnect; exports.TRANSPORT = TRANSPORT; exports.UI = UI; exports.DEVICE = DEVICE; exports.UI_EVENT = _constants.UI_EVENT; exports.DEVICE_EVENT = _constants.DEVICE_EVENT; exports.TRANSPORT_EVENT = _constants.TRANSPORT_EVENT; /***/ }) /******/ ])["default"]; });