UNPKG

@near-wallet-selector/core

Version:

This is the core package for NEAR Wallet Selector.

1,583 lines (1,358 loc) 218 kB
import * as nearAPI from 'near-api-js'; import { utils, providers } from 'near-api-js'; import { JsonRpcProvider } from 'near-api-js/lib/providers'; import { EventEmitter as EventEmitter$1 } from 'events'; import { BehaviorSubject, Subject, scan } from 'rxjs'; import { serialize } from 'borsh'; import { sha256 } from 'js-sha256'; /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var e = new Error(message); return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; class Provider { constructor(urls) { this.provider = new nearAPI.providers.FailoverRpcProvider(this.urlsToProviders(urls)); } query(paramsOrPath, data) { if (typeof paramsOrPath === "string" && data !== undefined) { return this.provider.query(paramsOrPath, data); } else { return this.provider.query(paramsOrPath); } } viewAccessKey({ accountId, publicKey }) { return this.query({ request_type: "view_access_key", finality: "final", account_id: accountId, public_key: publicKey }); } block(reference) { return this.provider.block(reference); } sendTransaction(signedTransaction) { return this.provider.sendTransaction(signedTransaction); } urlsToProviders(urls) { return urls && urls.length > 0 ? urls.map(url => new JsonRpcProvider({ url })) : []; } } const KEY_DELIMITER = ":"; class JsonStorage { constructor(storage, namespace) { this.storage = storage; this.namespace = Array.isArray(namespace) ? namespace.join(KEY_DELIMITER) : namespace; } resolveKey(key) { return [this.namespace, key].join(KEY_DELIMITER); } getItem(key) { return this.storage.getItem(this.resolveKey(key)).then(item => { return typeof item === "string" ? JSON.parse(item) : null; }); } setItem(key, value) { return this.storage.setItem(this.resolveKey(key), JSON.stringify(value)); } removeItem(key) { return this.storage.removeItem(this.resolveKey(key)); } } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; var check = function (it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global$n = // eslint-disable-next-line no-undef check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof commonjsGlobal == 'object' && commonjsGlobal) || // eslint-disable-next-line no-new-func Function('return this')(); var objectGetOwnPropertyDescriptor = {}; var fails$h = function (exec) { try { return !!exec(); } catch (error) { return true; } }; var fails$g = fails$h; // Thank's IE8 for his funny defineProperty var descriptors = !fails$g(function () { return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); var objectPropertyIsEnumerable = {}; var nativePropertyIsEnumerable = {}.propertyIsEnumerable; var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor$2 && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor$2(this, V); return !!descriptor && descriptor.enumerable; } : nativePropertyIsEnumerable; var createPropertyDescriptor$4 = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; var toString = {}.toString; var classofRaw$1 = function (it) { return toString.call(it).slice(8, -1); }; var fails$f = fails$h; var classof$9 = classofRaw$1; var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings var indexedObject = fails$f(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof$9(it) == 'String' ? split.call(it, '') : Object(it); } : Object; // `RequireObjectCoercible` abstract operation // https://tc39.github.io/ecma262/#sec-requireobjectcoercible var requireObjectCoercible$4 = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; // toObject with fallback for non-array-like ES3 strings var IndexedObject$3 = indexedObject; var requireObjectCoercible$3 = requireObjectCoercible$4; var toIndexedObject$4 = function (it) { return IndexedObject$3(requireObjectCoercible$3(it)); }; var isObject$c = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; var isObject$b = isObject$c; // `ToPrimitive` abstract operation // https://tc39.github.io/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string var toPrimitive$3 = function (input, PREFERRED_STRING) { if (!isObject$b(input)) return input; var fn, val; if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$b(val = fn.call(input))) return val; if (typeof (fn = input.valueOf) == 'function' && !isObject$b(val = fn.call(input))) return val; if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$b(val = fn.call(input))) return val; throw TypeError("Can't convert object to primitive value"); }; var hasOwnProperty = {}.hasOwnProperty; var has$c = function (it, key) { return hasOwnProperty.call(it, key); }; var global$m = global$n; var isObject$a = isObject$c; var document$2 = global$m.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject$a(document$2) && isObject$a(document$2.createElement); var documentCreateElement$1 = function (it) { return EXISTS ? document$2.createElement(it) : {}; }; var DESCRIPTORS$a = descriptors; var fails$e = fails$h; var createElement$1 = documentCreateElement$1; // Thank's IE8 for his funny defineProperty var ie8DomDefine = !DESCRIPTORS$a && !fails$e(function () { return Object.defineProperty(createElement$1('div'), 'a', { get: function () { return 7; } }).a != 7; }); var DESCRIPTORS$9 = descriptors; var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; var createPropertyDescriptor$3 = createPropertyDescriptor$4; var toIndexedObject$3 = toIndexedObject$4; var toPrimitive$2 = toPrimitive$3; var has$b = has$c; var IE8_DOM_DEFINE$1 = ie8DomDefine; var nativeGetOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor objectGetOwnPropertyDescriptor.f = DESCRIPTORS$9 ? nativeGetOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject$3(O); P = toPrimitive$2(P, true); if (IE8_DOM_DEFINE$1) try { return nativeGetOwnPropertyDescriptor$1(O, P); } catch (error) { /* empty */ } if (has$b(O, P)) return createPropertyDescriptor$3(!propertyIsEnumerableModule$1.f.call(O, P), O[P]); }; var objectDefineProperty = {}; var isObject$9 = isObject$c; var anObject$b = function (it) { if (!isObject$9(it)) { throw TypeError(String(it) + ' is not an object'); } return it; }; var DESCRIPTORS$8 = descriptors; var IE8_DOM_DEFINE = ie8DomDefine; var anObject$a = anObject$b; var toPrimitive$1 = toPrimitive$3; var nativeDefineProperty$1 = Object.defineProperty; // `Object.defineProperty` method // https://tc39.github.io/ecma262/#sec-object.defineproperty objectDefineProperty.f = DESCRIPTORS$8 ? nativeDefineProperty$1 : function defineProperty(O, P, Attributes) { anObject$a(O); P = toPrimitive$1(P, true); anObject$a(Attributes); if (IE8_DOM_DEFINE) try { return nativeDefineProperty$1(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; var DESCRIPTORS$7 = descriptors; var definePropertyModule$5 = objectDefineProperty; var createPropertyDescriptor$2 = createPropertyDescriptor$4; var createNonEnumerableProperty$a = DESCRIPTORS$7 ? function (object, key, value) { return definePropertyModule$5.f(object, key, createPropertyDescriptor$2(1, value)); } : function (object, key, value) { object[key] = value; return object; }; var redefine$5 = {exports: {}}; var global$l = global$n; var createNonEnumerableProperty$9 = createNonEnumerableProperty$a; var setGlobal$3 = function (key, value) { try { createNonEnumerableProperty$9(global$l, key, value); } catch (error) { global$l[key] = value; } return value; }; var global$k = global$n; var setGlobal$2 = setGlobal$3; var SHARED = '__core-js_shared__'; var store$3 = global$k[SHARED] || setGlobal$2(SHARED, {}); var sharedStore = store$3; var store$2 = sharedStore; var functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper if (typeof store$2.inspectSource != 'function') { store$2.inspectSource = function (it) { return functionToString.call(it); }; } var inspectSource$3 = store$2.inspectSource; var global$j = global$n; var inspectSource$2 = inspectSource$3; var WeakMap$1 = global$j.WeakMap; var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource$2(WeakMap$1)); var shared$2 = {exports: {}}; var store$1 = sharedStore; (shared$2.exports = function (key, value) { return store$1[key] || (store$1[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.6.5', mode: 'global', copyright: '© 2020 Denis Pushkarev (zloirock.ru)' }); var id = 0; var postfix = Math.random(); var uid$3 = function (key) { return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); }; var shared$1 = shared$2.exports; var uid$2 = uid$3; var keys$1 = shared$1('keys'); var sharedKey$3 = function (key) { return keys$1[key] || (keys$1[key] = uid$2(key)); }; var hiddenKeys$4 = {}; var NATIVE_WEAK_MAP = nativeWeakMap; var global$i = global$n; var isObject$8 = isObject$c; var createNonEnumerableProperty$8 = createNonEnumerableProperty$a; var objectHas = has$c; var sharedKey$2 = sharedKey$3; var hiddenKeys$3 = hiddenKeys$4; var WeakMap = global$i.WeakMap; var set$2, get$1, has$a; var enforce = function (it) { return has$a(it) ? get$1(it) : set$2(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject$8(it) || (state = get$1(it)).type !== TYPE) { throw TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP) { var store = new WeakMap(); var wmget = store.get; var wmhas = store.has; var wmset = store.set; set$2 = function (it, metadata) { wmset.call(store, it, metadata); return metadata; }; get$1 = function (it) { return wmget.call(store, it) || {}; }; has$a = function (it) { return wmhas.call(store, it); }; } else { var STATE = sharedKey$2('state'); hiddenKeys$3[STATE] = true; set$2 = function (it, metadata) { createNonEnumerableProperty$8(it, STATE, metadata); return metadata; }; get$1 = function (it) { return objectHas(it, STATE) ? it[STATE] : {}; }; has$a = function (it) { return objectHas(it, STATE); }; } var internalState = { set: set$2, get: get$1, has: has$a, enforce: enforce, getterFor: getterFor }; var global$h = global$n; var createNonEnumerableProperty$7 = createNonEnumerableProperty$a; var has$9 = has$c; var setGlobal$1 = setGlobal$3; var inspectSource$1 = inspectSource$3; var InternalStateModule$4 = internalState; var getInternalState$4 = InternalStateModule$4.get; var enforceInternalState = InternalStateModule$4.enforce; var TEMPLATE = String(String).split('String'); (redefine$5.exports = function (O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; if (typeof value == 'function') { if (typeof key == 'string' && !has$9(value, 'name')) createNonEnumerableProperty$7(value, 'name', key); enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); } if (O === global$h) { if (simple) O[key] = value; else setGlobal$1(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else createNonEnumerableProperty$7(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { return typeof this == 'function' && getInternalState$4(this).source || inspectSource$1(this); }); var global$g = global$n; var path$1 = global$g; var path = path$1; var global$f = global$n; var aFunction$6 = function (variable) { return typeof variable == 'function' ? variable : undefined; }; var getBuiltIn$5 = function (namespace, method) { return arguments.length < 2 ? aFunction$6(path[namespace]) || aFunction$6(global$f[namespace]) : path[namespace] && path[namespace][method] || global$f[namespace] && global$f[namespace][method]; }; var objectGetOwnPropertyNames = {}; var ceil = Math.ceil; var floor$1 = Math.floor; // `ToInteger` abstract operation // https://tc39.github.io/ecma262/#sec-tointeger var toInteger$5 = function (argument) { return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$1 : ceil)(argument); }; var toInteger$4 = toInteger$5; var min$1 = Math.min; // `ToLength` abstract operation // https://tc39.github.io/ecma262/#sec-tolength var toLength$b = function (argument) { return argument > 0 ? min$1(toInteger$4(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; var toInteger$3 = toInteger$5; var max = Math.max; var min = Math.min; // Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). var toAbsoluteIndex$3 = function (index, length) { var integer = toInteger$3(index); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; var toIndexedObject$2 = toIndexedObject$4; var toLength$a = toLength$b; var toAbsoluteIndex$2 = toAbsoluteIndex$3; // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod$3 = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject$2($this); var length = toLength$a(O.length); var index = toAbsoluteIndex$2(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) && O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; var arrayIncludes = { // `Array.prototype.includes` method // https://tc39.github.io/ecma262/#sec-array.prototype.includes includes: createMethod$3(true), // `Array.prototype.indexOf` method // https://tc39.github.io/ecma262/#sec-array.prototype.indexof indexOf: createMethod$3(false) }; var has$8 = has$c; var toIndexedObject$1 = toIndexedObject$4; var indexOf = arrayIncludes.indexOf; var hiddenKeys$2 = hiddenKeys$4; var objectKeysInternal = function (object, names) { var O = toIndexedObject$1(object); var i = 0; var result = []; var key; for (key in O) !has$8(hiddenKeys$2, key) && has$8(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has$8(O, key = names[i++])) { ~indexOf(result, key) || result.push(key); } return result; }; // IE8- don't enum bug keys var enumBugKeys$3 = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; var internalObjectKeys$1 = objectKeysInternal; var enumBugKeys$2 = enumBugKeys$3; var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.github.io/ecma262/#sec-object.getownpropertynames objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys$1(O, hiddenKeys$1); }; var objectGetOwnPropertySymbols = {}; objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; var getBuiltIn$4 = getBuiltIn$5; var getOwnPropertyNamesModule = objectGetOwnPropertyNames; var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; var anObject$9 = anObject$b; // all object keys, includes non-enumerable and symbols var ownKeys$1 = getBuiltIn$4('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject$9(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; }; var has$7 = has$c; var ownKeys = ownKeys$1; var getOwnPropertyDescriptorModule$1 = objectGetOwnPropertyDescriptor; var definePropertyModule$4 = objectDefineProperty; var copyConstructorProperties$1 = function (target, source) { var keys = ownKeys(source); var defineProperty = definePropertyModule$4.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule$1.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!has$7(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } }; var fails$d = fails$h; var replacement = /#|\.prototype\./; var isForced$2 = function (feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails$d(detection) : !!detection; }; var normalize = isForced$2.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced$2.data = {}; var NATIVE = isForced$2.NATIVE = 'N'; var POLYFILL = isForced$2.POLYFILL = 'P'; var isForced_1 = isForced$2; var global$e = global$n; var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; var createNonEnumerableProperty$6 = createNonEnumerableProperty$a; var redefine$4 = redefine$5.exports; var setGlobal = setGlobal$3; var copyConstructorProperties = copyConstructorProperties$1; var isForced$1 = isForced_1; /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target */ var _export = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global$e; } else if (STATIC) { target = global$e[TARGET] || setGlobal(TARGET, {}); } else { target = (global$e[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor$1(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty === typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty$6(sourceProperty, 'sham', true); } // extend global redefine$4(target, key, sourceProperty, options); } }; var global$d = global$n; var nativePromiseConstructor = global$d.Promise; var redefine$3 = redefine$5.exports; var redefineAll$2 = function (target, src, options) { for (var key in src) redefine$3(target, key, src[key], options); return target; }; var fails$c = fails$h; var nativeSymbol = !!Object.getOwnPropertySymbols && !fails$c(function () { // Chrome 38 Symbol has incorrect toString conversion // eslint-disable-next-line no-undef return !String(Symbol()); }); var NATIVE_SYMBOL$1 = nativeSymbol; var useSymbolAsUid = NATIVE_SYMBOL$1 // eslint-disable-next-line no-undef && !Symbol.sham // eslint-disable-next-line no-undef && typeof Symbol.iterator == 'symbol'; var global$c = global$n; var shared = shared$2.exports; var has$6 = has$c; var uid$1 = uid$3; var NATIVE_SYMBOL = nativeSymbol; var USE_SYMBOL_AS_UID = useSymbolAsUid; var WellKnownSymbolsStore = shared('wks'); var Symbol$1 = global$c.Symbol; var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; var wellKnownSymbol$h = function (name) { if (!has$6(WellKnownSymbolsStore, name)) { if (NATIVE_SYMBOL && has$6(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name]; else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); } return WellKnownSymbolsStore[name]; }; var defineProperty$4 = objectDefineProperty.f; var has$5 = has$c; var wellKnownSymbol$g = wellKnownSymbol$h; var TO_STRING_TAG$4 = wellKnownSymbol$g('toStringTag'); var setToStringTag$4 = function (it, TAG, STATIC) { if (it && !has$5(it = STATIC ? it : it.prototype, TO_STRING_TAG$4)) { defineProperty$4(it, TO_STRING_TAG$4, { configurable: true, value: TAG }); } }; var getBuiltIn$3 = getBuiltIn$5; var definePropertyModule$3 = objectDefineProperty; var wellKnownSymbol$f = wellKnownSymbol$h; var DESCRIPTORS$6 = descriptors; var SPECIES$3 = wellKnownSymbol$f('species'); var setSpecies$2 = function (CONSTRUCTOR_NAME) { var Constructor = getBuiltIn$3(CONSTRUCTOR_NAME); var defineProperty = definePropertyModule$3.f; if (DESCRIPTORS$6 && Constructor && !Constructor[SPECIES$3]) { defineProperty(Constructor, SPECIES$3, { configurable: true, get: function () { return this; } }); } }; var aFunction$5 = function (it) { if (typeof it != 'function') { throw TypeError(String(it) + ' is not a function'); } return it; }; var anInstance$3 = function (it, Constructor, name) { if (!(it instanceof Constructor)) { throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); } return it; }; var iterate$2 = {exports: {}}; var iterators = {}; var wellKnownSymbol$e = wellKnownSymbol$h; var Iterators$4 = iterators; var ITERATOR$5 = wellKnownSymbol$e('iterator'); var ArrayPrototype$1 = Array.prototype; // check on default Array iterator var isArrayIteratorMethod$2 = function (it) { return it !== undefined && (Iterators$4.Array === it || ArrayPrototype$1[ITERATOR$5] === it); }; var aFunction$4 = aFunction$5; // optional / simple context binding var functionBindContext = function (fn, that, length) { aFunction$4(fn); if (that === undefined) return fn; switch (length) { case 0: return function () { return fn.call(that); }; 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); }; }; var wellKnownSymbol$d = wellKnownSymbol$h; var TO_STRING_TAG$3 = wellKnownSymbol$d('toStringTag'); var test = {}; test[TO_STRING_TAG$3] = 'z'; var toStringTagSupport = String(test) === '[object z]'; var TO_STRING_TAG_SUPPORT = toStringTagSupport; var classofRaw = classofRaw$1; var wellKnownSymbol$c = wellKnownSymbol$h; var TO_STRING_TAG$2 = wellKnownSymbol$c('toStringTag'); // ES3 wrong here var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (error) { /* empty */ } }; // getting tag from ES6+ `Object.prototype.toString` var classof$8 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { var O, tag, result; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$2)) == 'string' ? tag // builtinTag case : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; }; var classof$7 = classof$8; var Iterators$3 = iterators; var wellKnownSymbol$b = wellKnownSymbol$h; var ITERATOR$4 = wellKnownSymbol$b('iterator'); var getIteratorMethod$2 = function (it) { if (it != undefined) return it[ITERATOR$4] || it['@@iterator'] || Iterators$3[classof$7(it)]; }; var anObject$8 = anObject$b; // call something on iterator step with safe closing on error var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { try { return ENTRIES ? fn(anObject$8(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) } catch (error) { var returnMethod = iterator['return']; if (returnMethod !== undefined) anObject$8(returnMethod.call(iterator)); throw error; } }; var anObject$7 = anObject$b; var isArrayIteratorMethod$1 = isArrayIteratorMethod$2; var toLength$9 = toLength$b; var bind$4 = functionBindContext; var getIteratorMethod$1 = getIteratorMethod$2; var callWithSafeIterationClosing = callWithSafeIterationClosing$1; var Result = function (stopped, result) { this.stopped = stopped; this.result = result; }; var iterate$1 = iterate$2.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { var boundFunction = bind$4(fn, that, AS_ENTRIES ? 2 : 1); var iterator, iterFn, index, length, result, next, step; if (IS_ITERATOR) { iterator = iterable; } else { iterFn = getIteratorMethod$1(iterable); if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); // optimisation for array iterators if (isArrayIteratorMethod$1(iterFn)) { for (index = 0, length = toLength$9(iterable.length); length > index; index++) { result = AS_ENTRIES ? boundFunction(anObject$7(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]); if (result && result instanceof Result) return result; } return new Result(false); } iterator = iterFn.call(iterable); } next = iterator.next; while (!(step = next.call(iterator)).done) { result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); if (typeof result == 'object' && result && result instanceof Result) return result; } return new Result(false); }; iterate$1.stop = function (result) { return new Result(true, result); }; var wellKnownSymbol$a = wellKnownSymbol$h; var ITERATOR$3 = wellKnownSymbol$a('iterator'); var SAFE_CLOSING = false; try { var called = 0; var iteratorWithReturn = { next: function () { return { done: !!called++ }; }, 'return': function () { SAFE_CLOSING = true; } }; iteratorWithReturn[ITERATOR$3] = function () { return this; }; // eslint-disable-next-line no-throw-literal Array.from(iteratorWithReturn, function () { throw 2; }); } catch (error) { /* empty */ } var checkCorrectnessOfIteration$2 = function (exec, SKIP_CLOSING) { if (!SKIP_CLOSING && !SAFE_CLOSING) return false; var ITERATION_SUPPORT = false; try { var object = {}; object[ITERATOR$3] = function () { return { next: function () { return { done: ITERATION_SUPPORT = true }; } }; }; exec(object); } catch (error) { /* empty */ } return ITERATION_SUPPORT; }; var anObject$6 = anObject$b; var aFunction$3 = aFunction$5; var wellKnownSymbol$9 = wellKnownSymbol$h; var SPECIES$2 = wellKnownSymbol$9('species'); // `SpeciesConstructor` abstract operation // https://tc39.github.io/ecma262/#sec-speciesconstructor var speciesConstructor$2 = function (O, defaultConstructor) { var C = anObject$6(O).constructor; var S; return C === undefined || (S = anObject$6(C)[SPECIES$2]) == undefined ? defaultConstructor : aFunction$3(S); }; var getBuiltIn$2 = getBuiltIn$5; var html$2 = getBuiltIn$2('document', 'documentElement'); var getBuiltIn$1 = getBuiltIn$5; var engineUserAgent = getBuiltIn$1('navigator', 'userAgent') || ''; var userAgent$1 = engineUserAgent; var engineIsIos = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent$1); var global$b = global$n; var fails$b = fails$h; var classof$6 = classofRaw$1; var bind$3 = functionBindContext; var html$1 = html$2; var createElement = documentCreateElement$1; var IS_IOS$1 = engineIsIos; var location = global$b.location; var set$1 = global$b.setImmediate; var clear = global$b.clearImmediate; var process$3 = global$b.process; var MessageChannel = global$b.MessageChannel; var Dispatch = global$b.Dispatch; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; var defer, channel, port; var run = function (id) { // eslint-disable-next-line no-prototype-builtins if (queue.hasOwnProperty(id)) { var fn = queue[id]; delete queue[id]; fn(); } }; var runner = function (id) { return function () { run(id); }; }; var listener = function (event) { run(event.data); }; var post = function (id) { // old engines have not location.origin global$b.postMessage(id + '', location.protocol + '//' + location.host); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!set$1 || !clear) { set$1 = 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 (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); }; defer(counter); return counter; }; clear = function clearImmediate(id) { delete queue[id]; }; // Node.js 0.8- if (classof$6(process$3) == 'process') { defer = function (id) { process$3.nextTick(runner(id)); }; // Sphere (JS game engine) Dispatch API } else if (Dispatch && Dispatch.now) { defer = function (id) { Dispatch.now(runner(id)); }; // Browsers with MessageChannel, includes WebWorkers // except iOS - https://github.com/zloirock/core-js/issues/624 } else if (MessageChannel && !IS_IOS$1) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; defer = bind$3(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if ( global$b.addEventListener && typeof postMessage == 'function' && !global$b.importScripts && !fails$b(post) && location.protocol !== 'file:' ) { defer = post; global$b.addEventListener('message', listener, false); // IE8- } else if (ONREADYSTATECHANGE in createElement('script')) { defer = function (id) { html$1.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { html$1.removeChild(this); run(id); }; }; // Rest old browsers } else { defer = function (id) { setTimeout(runner(id), 0); }; } } var task$1 = { set: set$1, clear: clear }; var global$a = global$n; var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; var classof$5 = classofRaw$1; var macrotask = task$1.set; var IS_IOS = engineIsIos; var MutationObserver = global$a.MutationObserver || global$a.WebKitMutationObserver; var process$2 = global$a.process; var Promise$1 = global$a.Promise; var IS_NODE$1 = classof$5(process$2) == 'process'; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$a, 'queueMicrotask'); var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; var flush, head, last, notify$1, toggle, node, promise, then; // modern engines have queueMicrotask method if (!queueMicrotask) { flush = function () { var parent, fn; if (IS_NODE$1 && (parent = process$2.domain)) parent.exit(); while (head) { fn = head.fn; head = head.next; try { fn(); } catch (error) { if (head) notify$1(); else last = undefined; throw error; } } last = undefined; if (parent) parent.enter(); }; // Node.js if (IS_NODE$1) { notify$1 = function () { process$2.nextTick(flush); }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 } else if (MutationObserver && !IS_IOS) { toggle = true; node = document.createTextNode(''); new MutationObserver(flush).observe(node, { characterData: true }); notify$1 = function () { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise } else if (Promise$1 && Promise$1.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 promise = Promise$1.resolve(undefined); then = promise.then; notify$1 = function () { then.call(promise, flush); }; // for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessag // - onreadystatechange // - setTimeout } else { notify$1 = function () { // strange IE + webpack dev server bug - use .call(global) macrotask.call(global$a, flush); }; } } var microtask$1 = queueMicrotask || function (fn) { var task = { fn: fn, next: undefined }; if (last) last.next = task; if (!head) { head = task; notify$1(); } last = task; }; var newPromiseCapability$2 = {}; var aFunction$2 = aFunction$5; var PromiseCapability = function (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$2(resolve); this.reject = aFunction$2(reject); }; // 25.4.1.5 NewPromiseCapability(C) newPromiseCapability$2.f = function (C) { return new PromiseCapability(C); }; var anObject$5 = anObject$b; var isObject$7 = isObject$c; var newPromiseCapability$1 = newPromiseCapability$2; var promiseResolve$1 = function (C, x) { anObject$5(C); if (isObject$7(x) && x.constructor === C) return x; var promiseCapability = newPromiseCapability$1.f(C); var resolve = promiseCapability.resolve; resolve(x); return promiseCapability.promise; }; var global$9 = global$n; var hostReportErrors$1 = function (a, b) { var console = global$9.console; if (console && console.error) { arguments.length === 1 ? console.error(a) : console.error(a, b); } }; var perform$1 = function (exec) { try { return { error: false, value: exec() }; } catch (error) { return { error: true, value: error }; } }; var global$8 = global$n; var userAgent = engineUserAgent; var process$1 = global$8.process; var versions = process$1 && process$1.versions; var v8 = versions && versions.v8; var match, version; if (v8) { match = v8.split('.'); version = match[0] + match[1]; } else if (userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version = match[1]; } } var engineV8Version = version && +version; var $$9 = _export; var global$7 = global$n; var getBuiltIn = getBuiltIn$5; var NativePromise = nativePromiseConstructor; var redefine$2 = redefine$5.exports; var redefineAll$1 = redefineAll$2; var setToStringTag$3 = setToStringTag$4; var setSpecies$1 = setSpecies$2; var isObject$6 = isObject$c; var aFunction$1 = aFunction$5; var anInstance$2 = anInstance$3; var classof$4 = classofRaw$1; var inspectSource = inspectSource$3; var iterate = iterate$2.exports; var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$2; var speciesConstructor$1 = speciesConstructor$2; var task = task$1.set; var microtask = microtask$1; var promiseResolve = promiseResolve$1; var hostReportErrors = hostReportErrors$1; var newPromiseCapabilityModule = newPromiseCapability$2; var perform = perform$1; var InternalStateModule$3 = internalState; var isForced = isForced_1; var wellKnownSymbol$8 = wellKnownSymbol$h; var V8_VERSION = engineV8Version; var SPECIES$1 = wellKnownSymbol$8('species'); var PROMISE = 'Promise'; var getInternalState$3 = InternalStateModule$3.get; var setInternalState$3 = InternalStateModule$3.set; var getInternalPromiseState = InternalStateModule$3.getterFor(PROMISE); var PromiseConstructor = NativePromise; var TypeError$1 = global$7.TypeError; var document$1 = global$7.document; var process = global$7.process; var $fetch = getBuiltIn('fetch'); var newPromiseCapability = newPromiseCapabilityModule.f; var newGenericPromiseCapability = newPromiseCapability; var IS_NODE = classof$4(process) == 'process'; var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$7.dispatchEvent); var UNHANDLED_REJECTION = 'unhandledrejection'; var REJECTION_HANDLED = 'rejectionhandled'; var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; var HANDLED = 1; var UNHANDLED = 2; var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; var FORCED$2 = isForced(PROMISE, function () { var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); if (!GLOBAL_CORE_JS_PROMISE) { // 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 if (V8_VERSION === 66) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true; } // We can't use @@species feature detection in V8 since it causes // deoptimization and performance degradation // https://github.com/zloirock/core-js/issues/679 if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false; // Detect correctness of subclassing with @@species support var promise = PromiseConstructor.resolve(1); var FakePromise = function (exec) { exec(function () { /* empty */ }, function () { /* empty */ }); }; var constructor = promise.constructor = {}; constructor[SPECIES$1] = FakePromise; return !(promise.then(function () { /* empty */ }) instanceof FakePromise); }); var INCORRECT_ITERATION = FORCED$2 || !checkCorrectnessOfIteration$1(function (iterable) { PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); }); // helpers var isThenable = function (it) { var then; return isObject$6(it) && typeof (then = it.then) == 'function' ? then : false; }; var notify = function (promise, state, isReject) { if (state.notified) return; state.notified = true; var chain = state.reactions; microtask(function () { var value = state.value; var ok = state.state == FULFILLED; var index = 0; // variable length - can't use forEach while (chain.length > index) { var reaction = chain[index++]; 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 (state.rejection === UNHANDLED) onHandleUnhandled(promise, state); state.rejection = HANDLED; } if (handler === true) result = value; else { if (domain) domain.enter(); result = handler(value); // can throw if (domain) { domain.exit(); exited = true; } } if (result === reaction.promise) { reject(TypeError$1('Promise-chain cycle')); } else if (then = isThenable(result)) { then.call(result, resolve, reject); } else resolve(result); } else reject(value); } catch (error) { if (domain && !exited) domain.exit(); reject(error); } } state.reactions = []; state.notified = false; if (isReject && !state.rejection) onUnhandled(promise, state); }); }; var dispatchEvent = function (name, promise, reason) { var event, handler; if (DISPATCH_EVENT) { event = document$1.createEvent('Event'); event.promise = promise; event.reason = reason; event.initEvent(name, false, true); global$7.dispatchEvent(event); } else event = { promise: promise, reason: reason }; if (handler = global$7['on' + name]) handler(event); else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); }; var onUnhandled = function (promise, state) { task.call(global$7, function () { var value = state.value; var IS_UNHANDLED = isUnhandled(state); var result; if (IS_UNHANDLED) { result = perform(function () { if (IS_NODE) { process.emit('unhandledRejection', value, promise); } else dispatchEvent(UNHANDLED_REJECTION, promise, value); }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; if (result.error) throw result.value; } }); }; var isUnhandled = function (state) { return state.rejection !== HANDLED && !state.parent; }; var onHandleUnhandled = function (promise, state) { task.call(global$7, function () { if (IS_NODE) { process.emit('rejectionHandled', promise); } else dispatchEvent(REJECTION_HANDLED, promise, state.value); }); }; var bind$2 = function (fn, promise, state, unwrap) { return function (value) { fn(promise, state, value, unwrap); }; }; var internalReject = function (promise, state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; state.value = value; state.state = REJECTED; notify(promise, state, true); }; var internalResolve = function (promise, state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; try { if (promise === value) throw TypeError$1("Promise can't be resolved itself"); var then = isThenable(value); if (then) { microtask(function () { var wrapper = { done: false }; try { then.call(value, bind$2(internalResolve, promise, wrapper, state), bind$2(internalReject, promise, wrapper, state) ); } catch (error) { internalReject(promise, wrapper, error, state); } }); } else { state.value = value; state.state = FULFILLED; notify(promise, state, false); } } catch (error) { internalReject(promise, { done: false }, error, state); } }; // constructor polyfill if (FORCED$2) { // 25.4.3.1 Promise(executor) PromiseConstructor = function Promise(executor) { anInstance$2(this, PromiseConstructor, PROMISE); aFunction$1(executor); Internal.call(this); var state = getInternalState$3(this); try { executor(bind$2(internalResolve, this, state), bind$2(internalReject, this, state)); } catch (error) { internalReject(this, state, error); } }; // eslint-disable-next-line no-unused-vars Internal = function Promise(executor) { setInternalState$3(this, { type: PROMISE, done: false, notified: false, parent: false, reactions: [], rejection: false, state: PENDING, value: undefined }); }; Internal.prototype = redefineAll$1(PromiseConstructor.prototype, { // `Promise.prototype.then` method // https://tc39.github.io/ecma262/#sec-promise.prototype.then then: function then(onFulfilled, onRejected) { var state = getInternalPromiseState(this); var reaction = newPromiseCapability(speciesConstructor$1(this, PromiseConstructor)); reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; reaction.fail = typeof onRejected == 'function' && onRejected; reaction.domain = IS_NODE ? process.domain : undefined; state.parent = true; state.reactions.push(reaction); if (state.state != PENDING) notify(this, state, false); return reaction.promise; }, // `Promise.prototype.catch` method // https://tc39.github.io/ecma262/#sec-promise.prototype.catch 'catch': function (onRejected) { return this.then(undefined, onRejected); } }); OwnPromiseCapability = function () { var promise = new Internal(); var state = getInternalState$3(promise); this.promise = promise; this.resolve = bind$2(internalResolve, promise, state); this.reject = bind$2(internalReject, promise, state); }; newPromiseCapabilityModule.f = newPromiseCapability = function (C) { return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); }; if (typeof NativePromise == 'function') { nativeThen = NativePromise.prototype.then; // wrap native Promise#then for native async functions redefine$2(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) { var that = this; return new PromiseConstructor(function (resolve, reject) { nativeThen.call(that, resolve, reject); }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 }, { unsafe: true }); // wrap fetch result if (typeof $fetch == 'function') $$9({ global: true, enumerable: true, forced: true }, { // eslint-disable-next-line no-unused-vars fetch: function fetch(input /* , init */) { return promiseResolve(PromiseConstructor, $fetch.apply(global$7, arguments)); } }); } } $$9({ global: true, wrap: true, forced: FORCED$2 }, { Promise: PromiseConstructor }); setToStringTag$3(PromiseConstructor, PROMISE, false); setSpecies$1(PROMISE); PromiseWrapper = getBuiltIn(PROMISE); // statics $$9({ target: PROMISE, stat: true, forced: FORCED$2 }, { // `Promise.reject` method // https://tc39.github.io/ecma262/#sec-promise.reject reject: function reject(r) { var capability = newPromiseCapability(this); capability.reject.call(undefined, r); return capability.promise; } }); $$9({ target: PROMISE, stat: true, forced: FORCED$2 }, { // `Promise.resolve` method // https://tc39.github.io/ecma262/#sec-promise.resolve resolve: function resolve(x) { return promiseResolve(this, x); } }); $$9({ target: PROMISE, stat: true, forced: INCORRECT_I