beaver-logger
Version:
Client side logger.
2,317 lines (1,909 loc) • 113 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("beaver", [], factory);
else if(typeof exports === 'object')
exports["beaver"] = factory();
else
root["beaver"] = factory();
})((typeof self !== 'undefined' ? self : this), 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 = 0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
function _extends() {
_extends = Object.assign || 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;
};
return _extends.apply(this, arguments);
}
// CONCATENATED MODULE: ./node_modules/zalgo-promise/src/utils.js
function utils_isPromise(item) {
try {
if (!item) {
return false;
}
if (typeof Promise !== 'undefined' && item instanceof Promise) {
return true;
}
if (typeof window !== 'undefined' && typeof window.Window === 'function' && item instanceof window.Window) {
return false;
}
if (typeof window !== 'undefined' && typeof window.constructor === 'function' && item instanceof window.constructor) {
return false;
}
var _toString = {}.toString;
if (_toString) {
var name = _toString.call(item);
if (name === '[object Window]' || name === '[object global]' || name === '[object DOMWindow]') {
return false;
}
}
if (typeof item.then === 'function') {
return true;
}
} catch (err) {
return false;
}
return false;
}
// CONCATENATED MODULE: ./node_modules/zalgo-promise/src/exceptions.js
var dispatchedErrors = [];
var possiblyUnhandledPromiseHandlers = [];
function dispatchPossiblyUnhandledError(err, promise) {
if (dispatchedErrors.indexOf(err) !== -1) {
return;
}
dispatchedErrors.push(err);
setTimeout(function () {
if (false) {}
throw err;
}, 1);
for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) {
// $FlowFixMe
possiblyUnhandledPromiseHandlers[j](err, promise);
}
}
function exceptions_onPossiblyUnhandledException(handler) {
possiblyUnhandledPromiseHandlers.push(handler);
return {
cancel: function cancel() {
possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);
}
};
}
// CONCATENATED MODULE: ./node_modules/zalgo-promise/src/flush.js
var activeCount = 0;
var flushPromise;
function flushActive() {
if (!activeCount && flushPromise) {
var promise = flushPromise;
flushPromise = null;
promise.resolve();
}
}
function startActive() {
activeCount += 1;
}
function endActive() {
activeCount -= 1;
flushActive();
}
function awaitActive(Zalgo) {
// eslint-disable-line no-undef
var promise = flushPromise = flushPromise || new Zalgo();
flushActive();
return promise;
}
// CONCATENATED MODULE: ./node_modules/zalgo-promise/src/promise.js
var promise_ZalgoPromise =
/*#__PURE__*/
function () {
function ZalgoPromise(handler) {
var _this = this;
this.resolved = void 0;
this.rejected = void 0;
this.errorHandled = void 0;
this.value = void 0;
this.error = void 0;
this.handlers = void 0;
this.dispatching = void 0;
this.stack = void 0;
this.resolved = false;
this.rejected = false;
this.errorHandled = false;
this.handlers = [];
if (handler) {
var _result;
var _error;
var resolved = false;
var rejected = false;
var isAsync = false;
startActive();
try {
handler(function (res) {
if (isAsync) {
_this.resolve(res);
} else {
resolved = true;
_result = res;
}
}, function (err) {
if (isAsync) {
_this.reject(err);
} else {
rejected = true;
_error = err;
}
});
} catch (err) {
endActive();
this.reject(err);
return;
}
endActive();
isAsync = true;
if (resolved) {
// $FlowFixMe
this.resolve(_result);
} else if (rejected) {
this.reject(_error);
}
}
if (false) {}
}
var _proto = ZalgoPromise.prototype;
_proto.resolve = function resolve(result) {
if (this.resolved || this.rejected) {
return this;
}
if (utils_isPromise(result)) {
throw new Error('Can not resolve promise with another promise');
}
this.resolved = true;
this.value = result;
this.dispatch();
return this;
};
_proto.reject = function reject(error) {
var _this2 = this;
if (this.resolved || this.rejected) {
return this;
}
if (utils_isPromise(error)) {
throw new Error('Can not reject promise with another promise');
}
if (!error) {
// $FlowFixMe
var _err = error && typeof error.toString === 'function' ? error.toString() : Object.prototype.toString.call(error);
error = new Error("Expected reject to be called with Error, got " + _err);
}
this.rejected = true;
this.error = error;
if (!this.errorHandled) {
setTimeout(function () {
if (!_this2.errorHandled) {
dispatchPossiblyUnhandledError(error, _this2);
}
}, 1);
}
this.dispatch();
return this;
};
_proto.asyncReject = function asyncReject(error) {
this.errorHandled = true;
this.reject(error);
return this;
};
_proto.dispatch = function dispatch() {
var dispatching = this.dispatching,
resolved = this.resolved,
rejected = this.rejected,
handlers = this.handlers;
if (dispatching) {
return;
}
if (!resolved && !rejected) {
return;
}
this.dispatching = true;
startActive();
var chain = function chain(firstPromise, secondPromise) {
return firstPromise.then(function (res) {
secondPromise.resolve(res);
}, function (err) {
secondPromise.reject(err);
});
};
for (var i = 0; i < handlers.length; i++) {
var _handlers$i = handlers[i],
onSuccess = _handlers$i.onSuccess,
onError = _handlers$i.onError,
promise = _handlers$i.promise;
var _result2 = void 0;
if (resolved) {
try {
_result2 = onSuccess ? onSuccess(this.value) : this.value;
} catch (err) {
promise.reject(err);
continue;
}
} else if (rejected) {
if (!onError) {
promise.reject(this.error);
continue;
}
try {
_result2 = onError(this.error);
} catch (err) {
promise.reject(err);
continue;
}
}
if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {
if (_result2.resolved) {
promise.resolve(_result2.value);
} else {
promise.reject(_result2.error);
}
_result2.errorHandled = true;
} else if (utils_isPromise(_result2)) {
if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {
if (_result2.resolved) {
promise.resolve(_result2.value);
} else {
promise.reject(_result2.error);
}
} else {
// $FlowFixMe
chain(_result2, promise);
}
} else {
promise.resolve(_result2);
}
}
handlers.length = 0;
this.dispatching = false;
endActive();
};
_proto.then = function then(onSuccess, onError) {
if (onSuccess && typeof onSuccess !== 'function' && !onSuccess.call) {
throw new Error('Promise.then expected a function for success handler');
}
if (onError && typeof onError !== 'function' && !onError.call) {
throw new Error('Promise.then expected a function for error handler');
}
var promise = new ZalgoPromise();
this.handlers.push({
promise: promise,
onSuccess: onSuccess,
onError: onError
});
this.errorHandled = true;
this.dispatch();
return promise;
};
_proto.catch = function _catch(onError) {
return this.then(undefined, onError);
};
_proto.finally = function _finally(onFinally) {
if (onFinally && typeof onFinally !== 'function' && !onFinally.call) {
throw new Error('Promise.finally expected a function');
}
return this.then(function (result) {
return ZalgoPromise.try(onFinally).then(function () {
return result;
});
}, function (err) {
return ZalgoPromise.try(onFinally).then(function () {
throw err;
});
});
};
_proto.timeout = function timeout(time, err) {
var _this3 = this;
if (this.resolved || this.rejected) {
return this;
}
var timeout = setTimeout(function () {
if (_this3.resolved || _this3.rejected) {
return;
}
_this3.reject(err || new Error("Promise timed out after " + time + "ms"));
}, time);
return this.then(function (result) {
clearTimeout(timeout);
return result;
});
} // $FlowFixMe
;
_proto.toPromise = function toPromise() {
// $FlowFixMe
if (typeof Promise === 'undefined') {
throw new TypeError("Could not find Promise");
} // $FlowFixMe
return Promise.resolve(this); // eslint-disable-line compat/compat
};
ZalgoPromise.resolve = function resolve(value) {
if (value instanceof ZalgoPromise) {
return value;
}
if (utils_isPromise(value)) {
// $FlowFixMe
return new ZalgoPromise(function (resolve, reject) {
return value.then(resolve, reject);
});
}
return new ZalgoPromise().resolve(value);
};
ZalgoPromise.reject = function reject(error) {
return new ZalgoPromise().reject(error);
};
ZalgoPromise.asyncReject = function asyncReject(error) {
return new ZalgoPromise().asyncReject(error);
};
ZalgoPromise.all = function all(promises) {
// eslint-disable-line no-undef
var promise = new ZalgoPromise();
var count = promises.length;
var results = [];
if (!count) {
promise.resolve(results);
return promise;
}
var chain = function chain(i, firstPromise, secondPromise) {
return firstPromise.then(function (res) {
results[i] = res;
count -= 1;
if (count === 0) {
promise.resolve(results);
}
}, function (err) {
secondPromise.reject(err);
});
};
for (var i = 0; i < promises.length; i++) {
var prom = promises[i];
if (prom instanceof ZalgoPromise) {
if (prom.resolved) {
results[i] = prom.value;
count -= 1;
continue;
}
} else if (!utils_isPromise(prom)) {
results[i] = prom;
count -= 1;
continue;
}
chain(i, ZalgoPromise.resolve(prom), promise);
}
if (count === 0) {
promise.resolve(results);
}
return promise;
};
ZalgoPromise.hash = function hash(promises) {
// eslint-disable-line no-undef
var result = {};
return ZalgoPromise.all(Object.keys(promises).map(function (key) {
return ZalgoPromise.resolve(promises[key]).then(function (value) {
result[key] = value;
});
})).then(function () {
return result;
});
};
ZalgoPromise.map = function map(items, method) {
// $FlowFixMe
return ZalgoPromise.all(items.map(method));
};
ZalgoPromise.onPossiblyUnhandledException = function onPossiblyUnhandledException(handler) {
return exceptions_onPossiblyUnhandledException(handler);
};
ZalgoPromise.try = function _try(method, context, args) {
if (method && typeof method !== 'function' && !method.call) {
throw new Error('Promise.try expected a function');
}
var result;
startActive();
try {
// $FlowFixMe
result = method.apply(context, args || []);
} catch (err) {
endActive();
return ZalgoPromise.reject(err);
}
endActive();
return ZalgoPromise.resolve(result);
};
ZalgoPromise.delay = function delay(_delay) {
return new ZalgoPromise(function (resolve) {
setTimeout(resolve, _delay);
});
};
ZalgoPromise.isPromise = function isPromise(value) {
if (value && value instanceof ZalgoPromise) {
return true;
}
return utils_isPromise(value);
};
ZalgoPromise.flush = function flush() {
return awaitActive(ZalgoPromise);
};
return ZalgoPromise;
}();
// CONCATENATED MODULE: ./node_modules/zalgo-promise/src/index.js
// CONCATENATED MODULE: ./node_modules/belter/src/device.js
function getUserAgent() {
return window.navigator.mockUserAgent || window.navigator.userAgent;
}
function isDevice(userAgent) {
if (userAgent === void 0) {
userAgent = getUserAgent();
}
if (userAgent.match(/Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i)) {
return true;
}
return false;
}
function isWebView() {
var userAgent = getUserAgent();
return /(iPhone|iPod|iPad|Macintosh).*AppleWebKit(?!.*Safari)/i.test(userAgent) || /\bwv\b/.test(userAgent) || /Android.*Version\/(\d)\.(\d)/i.test(userAgent);
}
function isStandAlone() {
return window.navigator.standalone === true || window.matchMedia('(display-mode: standalone)').matches;
}
function isFacebookWebView(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return ua.indexOf('FBAN') !== -1 || ua.indexOf('FBAV') !== -1;
}
function isFirefoxIOS(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /FxiOS/i.test(ua);
}
function isEdgeIOS(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /EdgiOS/i.test(ua);
}
function isOperaMini(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return ua.indexOf('Opera Mini') > -1;
}
function isAndroid(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /Android/.test(ua);
}
function isIos(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /iPhone|iPod|iPad/.test(ua);
}
function isGoogleSearchApp(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /\bGSA\b/.test(ua);
}
function isQQBrowser(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /QQBrowser/.test(ua);
}
function isIosWebview(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
if (isIos(ua)) {
if (isGoogleSearchApp(ua)) {
return true;
}
return /.+AppleWebKit(?!.*Safari)/.test(ua);
}
return false;
}
function isAndroidWebview(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
if (isAndroid(ua)) {
return /Version\/[\d.]+/.test(ua) && !isOperaMini(ua);
}
return false;
}
function device_isIE() {
if (window.document.documentMode) {
return true;
}
return Boolean(window.navigator && window.navigator.userAgent && /Edge|MSIE|rv:11/i.test(window.navigator.userAgent));
}
function isIECompHeader() {
var mHttp = window.document.querySelector('meta[http-equiv="X-UA-Compatible"]');
var mContent = window.document.querySelector('meta[content="IE=edge"]');
if (mHttp && mContent) {
return true;
}
return false;
}
function isElectron() {
if (typeof process !== 'undefined' && process.versions && process.versions.electron) {
return true;
}
return false;
}
function isIEIntranet() {
// This status check only works for older versions of IE with document.documentMode set
if (window.document.documentMode) {
try {
var status = window.status;
window.status = 'testIntranetMode';
if (window.status === 'testIntranetMode') {
window.status = status;
return true;
}
return false;
} catch (err) {
return false;
}
}
return false;
}
function isMacOsCna() {
var userAgent = getUserAgent();
return /Macintosh.*AppleWebKit(?!.*Safari)/i.test(userAgent);
}
function supportsPopups(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return !(isIosWebview(ua) || isAndroidWebview(ua) || isOperaMini(ua) || isFirefoxIOS(ua) || isEdgeIOS(ua) || isFacebookWebView(ua) || isQQBrowser(ua) || isElectron() || isMacOsCna() || isStandAlone());
}
function isChrome(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /Chrome|Chromium|CriOS/.test(ua);
}
function isSafari(ua) {
if (ua === void 0) {
ua = getUserAgent();
}
return /Safari/.test(ua) && !isChrome(ua);
}
// CONCATENATED MODULE: ./node_modules/cross-domain-utils/src/util.js
function isRegex(item) {
return Object.prototype.toString.call(item) === '[object RegExp]';
} // eslint-disable-next-line no-unused-vars
function noop() {// pass
}
// CONCATENATED MODULE: ./node_modules/cross-domain-utils/src/constants.js
var PROTOCOL = {
MOCK: 'mock:',
FILE: 'file:',
ABOUT: 'about:'
};
var WILDCARD = '*';
var WINDOW_TYPE = {
IFRAME: 'iframe',
POPUP: 'popup'
};
// CONCATENATED MODULE: ./node_modules/cross-domain-utils/src/utils.js
/* eslint max-lines: 0 */
var IE_WIN_ACCESS_ERROR = 'Call was rejected by callee.\r\n';
function isFileProtocol(win) {
if (win === void 0) {
win = window;
}
return win.location.protocol === PROTOCOL.FILE;
}
function isAboutProtocol(win) {
if (win === void 0) {
win = window;
}
return win.location.protocol === PROTOCOL.ABOUT;
}
function getParent(win) {
if (win === void 0) {
win = window;
}
if (!win) {
return;
}
try {
if (win.parent && win.parent !== win) {
return win.parent;
}
} catch (err) {// pass
}
}
function getOpener(win) {
if (win === void 0) {
win = window;
}
if (!win) {
return;
} // Make sure we're not actually an iframe which has had window.open() called on us
if (getParent(win)) {
return;
}
try {
return win.opener;
} catch (err) {// pass
}
}
function canReadFromWindow(win) {
try {
// $FlowFixMe
noop(win && win.location && win.location.href);
return true;
} catch (err) {// pass
}
return false;
}
function getActualDomain(win) {
if (win === void 0) {
win = window;
}
var location = win.location;
if (!location) {
throw new Error("Can not read window location");
}
var protocol = location.protocol;
if (!protocol) {
throw new Error("Can not read window protocol");
}
if (protocol === PROTOCOL.FILE) {
return PROTOCOL.FILE + "//";
}
if (protocol === PROTOCOL.ABOUT) {
var parent = getParent(win);
if (parent && canReadFromWindow(parent)) {
// $FlowFixMe
return getActualDomain(parent);
}
return PROTOCOL.ABOUT + "//";
}
var host = location.host;
if (!host) {
throw new Error("Can not read window host");
}
return protocol + "//" + host;
}
function getDomain(win) {
if (win === void 0) {
win = window;
}
var domain = getActualDomain(win);
if (domain && win.mockDomain && win.mockDomain.indexOf(PROTOCOL.MOCK) === 0) {
return win.mockDomain;
}
return domain;
}
function isBlankDomain(win) {
try {
// $FlowFixMe
if (!win.location.href) {
return true;
}
if (win.location.href === 'about:blank') {
return true;
}
} catch (err) {// pass
}
return false;
}
function isActuallySameDomain(win) {
try {
if (win === window) {
return true;
}
} catch (err) {// pass
}
try {
var desc = Object.getOwnPropertyDescriptor(win, 'location');
if (desc && desc.enumerable === false) {
return false;
}
} catch (err) {// pass
}
try {
// $FlowFixMe
if (isAboutProtocol(win) && canReadFromWindow(win)) {
return true;
}
} catch (err) {// pass
}
try {
// $FlowFixMe
if (getActualDomain(win) === getActualDomain(window)) {
return true;
}
} catch (err) {// pass
}
return false;
}
function isSameDomain(win) {
if (!isActuallySameDomain(win)) {
return false;
}
try {
if (win === window) {
return true;
} // $FlowFixMe
if (isAboutProtocol(win) && canReadFromWindow(win)) {
return true;
} // $FlowFixMe
if (getDomain(window) === getDomain(win)) {
return true;
}
} catch (err) {// pass
}
return false;
}
function assertSameDomain(win) {
if (!isSameDomain(win)) {
throw new Error("Expected window to be same domain");
} // $FlowFixMe
return win;
}
function getParents(win) {
var result = [];
try {
while (win.parent !== win) {
result.push(win.parent);
win = win.parent;
}
} catch (err) {// pass
}
return result;
}
function isAncestorParent(parent, child) {
if (!parent || !child) {
return false;
}
var childParent = getParent(child);
if (childParent) {
return childParent === parent;
}
if (getParents(child).indexOf(parent) !== -1) {
return true;
}
return false;
}
function getFrames(win) {
var result = [];
var frames;
try {
frames = win.frames;
} catch (err) {
frames = win;
}
var len;
try {
len = frames.length;
} catch (err) {// pass
}
if (len === 0) {
return result;
}
if (len) {
for (var i = 0; i < len; i++) {
var frame = void 0;
try {
frame = frames[i];
} catch (err) {
continue;
}
result.push(frame);
}
return result;
}
for (var _i = 0; _i < 100; _i++) {
var _frame = void 0;
try {
_frame = frames[_i];
} catch (err) {
return result;
}
if (!_frame) {
return result;
}
result.push(_frame);
}
return result;
}
function getAllChildFrames(win) {
var result = [];
for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {
var frame = _getFrames2[_i3];
result.push(frame);
for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) {
var childFrame = _getAllChildFrames2[_i5];
result.push(childFrame);
}
}
return result;
}
function getTop(win) {
if (win === void 0) {
win = window;
}
try {
if (win.top) {
return win.top;
}
} catch (err) {// pass
}
if (getParent(win) === win) {
return win;
}
try {
if (isAncestorParent(window, win) && window.top) {
return window.top;
}
} catch (err) {// pass
}
try {
if (isAncestorParent(win, window) && window.top) {
return window.top;
}
} catch (err) {// pass
}
for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) {
var frame = _getAllChildFrames4[_i7];
try {
if (frame.top) {
return frame.top;
}
} catch (err) {// pass
}
if (getParent(frame) === frame) {
return frame;
}
}
}
function getNextOpener(win) {
if (win === void 0) {
win = window;
}
return getOpener(getTop(win) || win);
}
function getUltimateTop(win) {
if (win === void 0) {
win = window;
}
var opener = getNextOpener(win);
if (opener) {
return getUltimateTop(opener);
}
return top;
}
function getAllFramesInWindow(win) {
var top = getTop(win);
if (!top) {
throw new Error("Can not determine top window");
}
return [].concat(getAllChildFrames(top), [top]);
}
function getAllWindows(win) {
if (win === void 0) {
win = window;
}
var frames = getAllFramesInWindow(win);
var opener = getNextOpener(win);
if (opener) {
return [].concat(getAllWindows(opener), frames);
} else {
return frames;
}
}
function isTop(win) {
return win === getTop(win);
}
function isFrameWindowClosed(frame) {
if (!frame.contentWindow) {
return true;
}
if (!frame.parentNode) {
return true;
}
var doc = frame.ownerDocument;
if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {
return true;
}
return false;
}
function safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) {
try {
if (collection[i] === item) {
return i;
}
} catch (err) {// pass
}
}
return -1;
}
var iframeWindows = [];
var iframeFrames = [];
function isWindowClosed(win, allowMock) {
if (allowMock === void 0) {
allowMock = true;
}
try {
if (win === window) {
return false;
}
} catch (err) {
return true;
}
try {
if (!win) {
return true;
}
} catch (err) {
return true;
}
try {
if (win.closed) {
return true;
}
} catch (err) {
// I love you so much IE
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return false;
}
return true;
}
if (allowMock && isSameDomain(win)) {
try {
// $FlowFixMe
if (win.mockclosed) {
return true;
}
} catch (err) {// pass
}
} // Mobile safari
try {
if (!win.parent || !win.top) {
return true;
}
} catch (err) {} // pass
// Yes, this actually happens in IE. win === win errors out when the window
// is from an iframe, and the iframe was removed from the page.
try {
noop(win === win); // eslint-disable-line no-self-compare
} catch (err) {
return true;
} // IE orphaned frame
var iframeIndex = safeIndexOf(iframeWindows, win);
if (iframeIndex !== -1) {
var frame = iframeFrames[iframeIndex];
if (frame && isFrameWindowClosed(frame)) {
return true;
}
}
return false;
}
function cleanIframes() {
for (var i = 0; i < iframeWindows.length; i++) {
var closed = false;
try {
closed = iframeWindows[i].closed;
} catch (err) {// pass
}
if (closed) {
iframeFrames.splice(i, 1);
iframeWindows.splice(i, 1);
}
}
}
function linkFrameWindow(frame) {
cleanIframes();
if (frame && frame.contentWindow) {
try {
iframeWindows.push(frame.contentWindow);
iframeFrames.push(frame);
} catch (err) {// pass
}
}
}
function utils_getUserAgent(win) {
win = win || window;
return win.navigator.mockUserAgent || win.navigator.userAgent;
}
function getFrameByName(win, name) {
var winFrames = getFrames(win);
for (var _i9 = 0; _i9 < winFrames.length; _i9++) {
var childFrame = winFrames[_i9];
try {
// $FlowFixMe
if (isSameDomain(childFrame) && childFrame.name === name && winFrames.indexOf(childFrame) !== -1) {
return childFrame;
}
} catch (err) {// pass
}
}
try {
// $FlowFixMe
if (winFrames.indexOf(win.frames[name]) !== -1) {
// $FlowFixMe
return win.frames[name];
}
} catch (err) {// pass
}
try {
if (winFrames.indexOf(win[name]) !== -1) {
return win[name];
}
} catch (err) {// pass
}
}
function findChildFrameByName(win, name) {
var frame = getFrameByName(win, name);
if (frame) {
return frame;
}
for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) {
var childFrame = _getFrames4[_i11];
var namedFrame = findChildFrameByName(childFrame, name);
if (namedFrame) {
return namedFrame;
}
}
}
function findFrameByName(win, name) {
var frame;
frame = getFrameByName(win, name);
if (frame) {
return frame;
}
var top = getTop(win) || win;
return findChildFrameByName(top, name);
}
function isParent(win, frame) {
var frameParent = getParent(frame);
if (frameParent) {
return frameParent === win;
}
for (var _i13 = 0, _getFrames6 = getFrames(win); _i13 < _getFrames6.length; _i13++) {
var childFrame = _getFrames6[_i13];
if (childFrame === frame) {
return true;
}
}
return false;
}
function isOpener(parent, child) {
return parent === getOpener(child);
}
function getAncestor(win) {
if (win === void 0) {
win = window;
}
win = win || window;
var opener = getOpener(win);
if (opener) {
return opener;
}
var parent = getParent(win);
if (parent) {
return parent;
}
}
function getAncestors(win) {
var results = [];
var ancestor = win;
while (ancestor) {
ancestor = getAncestor(ancestor);
if (ancestor) {
results.push(ancestor);
}
}
return results;
}
function isAncestor(parent, child) {
var actualParent = getAncestor(child);
if (actualParent) {
if (actualParent === parent) {
return true;
}
return false;
}
if (child === parent) {
return false;
}
if (getTop(child) === child) {
return false;
}
for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) {
var frame = _getFrames8[_i15];
if (frame === child) {
return true;
}
}
return false;
}
function isPopup(win) {
if (win === void 0) {
win = window;
}
return Boolean(getOpener(win));
}
function isIframe(win) {
if (win === void 0) {
win = window;
}
return Boolean(getParent(win));
}
function isFullpage(win) {
if (win === void 0) {
win = window;
}
return Boolean(!isIframe(win) && !isPopup(win));
}
function anyMatch(collection1, collection2) {
for (var _i17 = 0; _i17 < collection1.length; _i17++) {
var item1 = collection1[_i17];
for (var _i19 = 0; _i19 < collection2.length; _i19++) {
var item2 = collection2[_i19];
if (item1 === item2) {
return true;
}
}
}
return false;
}
function getDistanceFromTop(win) {
if (win === void 0) {
win = window;
}
var distance = 0;
var parent = win;
while (parent) {
parent = getParent(parent);
if (parent) {
distance += 1;
}
}
return distance;
}
function getNthParent(win, n) {
if (n === void 0) {
n = 1;
}
var parent = win;
for (var i = 0; i < n; i++) {
if (!parent) {
return;
}
parent = getParent(parent);
}
return parent;
}
function getNthParentFromTop(win, n) {
if (n === void 0) {
n = 1;
}
return getNthParent(win, getDistanceFromTop(win) - n);
}
function isSameTopWindow(win1, win2) {
var top1 = getTop(win1) || win1;
var top2 = getTop(win2) || win2;
try {
if (top1 && top2) {
if (top1 === top2) {
return true;
}
return false;
}
} catch (err) {// pass
}
var allFrames1 = getAllFramesInWindow(win1);
var allFrames2 = getAllFramesInWindow(win2);
if (anyMatch(allFrames1, allFrames2)) {
return true;
}
var opener1 = getOpener(top1);
var opener2 = getOpener(top2);
if (opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2)) {
return false;
}
if (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1)) {
return false;
}
return false;
}
function matchDomain(pattern, origin) {
if (typeof pattern === 'string') {
if (typeof origin === 'string') {
return pattern === WILDCARD || origin === pattern;
}
if (isRegex(origin)) {
return false;
}
if (Array.isArray(origin)) {
return false;
}
}
if (isRegex(pattern)) {
if (isRegex(origin)) {
return pattern.toString() === origin.toString();
}
if (Array.isArray(origin)) {
return false;
} // $FlowFixMe
return Boolean(origin.match(pattern));
}
if (Array.isArray(pattern)) {
if (Array.isArray(origin)) {
return JSON.stringify(pattern) === JSON.stringify(origin);
}
if (isRegex(origin)) {
return false;
}
return pattern.some(function (subpattern) {
return matchDomain(subpattern, origin);
});
}
return false;
}
function stringifyDomainPattern(pattern) {
if (Array.isArray(pattern)) {
return "(" + pattern.join(' | ') + ")";
} else if (isRegex(pattern)) {
return "RegExp(" + pattern.toString();
} else {
return pattern.toString();
}
}
function getDomainFromUrl(url) {
var domain;
if (url.match(/^(https?|mock|file):\/\//)) {
domain = url;
} else {
return getDomain();
}
domain = domain.split('/').slice(0, 3).join('/');
return domain;
}
function onCloseWindow(win, callback, delay, maxtime) {
if (delay === void 0) {
delay = 1000;
}
if (maxtime === void 0) {
maxtime = Infinity;
}
var timeout;
var check = function check() {
if (isWindowClosed(win)) {
if (timeout) {
clearTimeout(timeout);
}
return callback();
}
if (maxtime <= 0) {
clearTimeout(timeout);
} else {
maxtime -= delay;
timeout = setTimeout(check, delay);
}
};
check();
return {
cancel: function cancel() {
if (timeout) {
clearTimeout(timeout);
}
}
};
} // eslint-disable-next-line complexity
function isWindow(obj) {
try {
if (obj === window) {
return true;
}
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return true;
}
}
try {
if (Object.prototype.toString.call(obj) === '[object Window]') {
return true;
}
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return true;
}
}
try {
if (window.Window && obj instanceof window.Window) {
return true;
}
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return true;
}
}
try {
if (obj && obj.self === obj) {
return true;
}
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return true;
}
}
try {
if (obj && obj.parent === obj) {
return true;
}
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return true;
}
}
try {
if (obj && obj.top === obj) {
return true;
}
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) {
return true;
}
}
try {
if (noop(obj === obj) === '__unlikely_value__') {
// eslint-disable-line no-self-compare
return false;
}
} catch (err) {
return true;
}
try {
if (obj && obj.__cross_domain_utils_window_check__ === '__unlikely_value__') {
return false;
}
} catch (err) {
return true;
}
return false;
}
function isBrowser() {
return typeof window !== 'undefined' && typeof window.location !== 'undefined';
}
function isCurrentDomain(domain) {
if (!isBrowser()) {
return false;
}
return getDomain() === domain;
}
function isMockDomain(domain) {
return domain.indexOf(PROTOCOL.MOCK) === 0;
}
function normalizeMockUrl(url) {
if (!isMockDomain(getDomainFromUrl(url))) {
return url;
}
if (true) {
throw new Error("Mock urls not supported out of test mode");
}
return url.replace(/^mock:\/\/[^/]+/, getActualDomain(window));
}
function closeWindow(win) {
try {
win.close();
} catch (err) {// pass
}
}
function getFrameForWindow(win) {
if (isSameDomain(win)) {
return assertSameDomain(win).frameElement;
}
for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll('iframe'); _i21 < _document$querySelect2.length; _i21++) {
var frame = _document$querySelect2[_i21];
if (frame && frame.contentWindow && frame.contentWindow === win) {
return frame;
}
}
}
// CONCATENATED MODULE: ./node_modules/cross-domain-utils/src/types.js
// export something to force webpack to see this as an ES module
var TYPES = true;
// CONCATENATED MODULE: ./node_modules/cross-domain-utils/src/index.js
// CONCATENATED MODULE: ./node_modules/cross-domain-safe-weakmap/src/native.js
function hasNativeWeakMap() {
if (typeof WeakMap === 'undefined') {
return false;
}
if (typeof Object.freeze === 'undefined') {
return false;
}
try {
var testWeakMap = new WeakMap();
var testKey = {};
var testValue = '__testvalue__';
Object.freeze(testKey);
testWeakMap.set(testKey, testValue);
if (testWeakMap.get(testKey) === testValue) {
return true;
}
return false;
} catch (err) {
return false;
}
}
// CONCATENATED MODULE: ./node_modules/cross-domain-safe-weakmap/src/util.js
function util_safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) {
try {
if (collection[i] === item) {
return i;
}
} catch (err) {// pass
}
}
return -1;
} // eslint-disable-next-line no-unused-vars
function util_noop() {// pass
}
// CONCATENATED MODULE: ./node_modules/cross-domain-safe-weakmap/src/weakmap.js
var weakmap_CrossDomainSafeWeakMap =
/*#__PURE__*/
function () {
function CrossDomainSafeWeakMap() {
this.name = void 0;
this.weakmap = void 0;
this.keys = void 0;
this.values = void 0;
// eslint-disable-next-line no-bitwise
this.name = "__weakmap_" + (Math.random() * 1e9 >>> 0) + "__";
if (hasNativeWeakMap()) {
try {
this.weakmap = new WeakMap();
} catch (err) {// pass
}
}
this.keys = [];
this.values = [];
}
var _proto = CrossDomainSafeWeakMap.prototype;
_proto._cleanupClosedWindows = function _cleanupClosedWindows() {
var weakmap = this.weakmap;
var keys = this.keys;
for (var i = 0; i < keys.length; i++) {
var value = keys[i];
if (isWindow(value) && isWindowClosed(value)) {
if (weakmap) {
try {
weakmap.delete(value);
} catch (err) {// pass
}
}
keys.splice(i, 1);
this.values.splice(i, 1);
i -= 1;
}
}
};
_proto.isSafeToReadWrite = function isSafeToReadWrite(key) {
if (isWindow(key)) {
return false;
}
try {
util_noop(key && key.self);
util_noop(key && key[this.name]);
} catch (err) {
return false;
}
return true;
};
_proto.set = function set(key, value) {
if (!key) {
throw new Error("WeakMap expected key");
}
var weakmap = this.weakmap;
if (weakmap) {
try {
weakmap.set(key, value);
} catch (err) {
delete this.weakmap;
}
}
if (this.isSafeToReadWrite(key)) {
try {
var name = this.name;
var entry = key[name];
if (entry && entry[0] === key) {
entry[1] = value;
} else {
Object.defineProperty(key, name, {
value: [key, value],
writable: true
});
}
return;
} catch (err) {// pass
}
}
this._cleanupClosedWindows();
var keys = this.keys;
var values = this.values;
var index = util_safeIndexOf(keys, key);
if (index === -1) {
keys.push(key);
values.push(value);
} else {
values[index] = value;
}
};
_proto.get = function get(key) {
if (!key) {
throw new Error("WeakMap expected key");
}
var weakmap = this.weakmap;
if (weakmap) {
try {
if (weakmap.has(key)) {
return weakmap.get(key);
}
} catch (err) {
delete this.weakmap;
}
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
if (entry && entry[0] === key) {
return entry[1];
}
return;
} catch (err) {// pass
}
}
this._cleanupClosedWindows();
var keys = this.keys;
var index = util_safeIndexOf(keys, key);
if (index === -1) {
return;
}
return this.values[index];
};
_proto.delete = function _delete(key) {
if (!key) {
throw new Error("WeakMap expected key");
}
var weakmap = this.weakmap;
if (weakmap) {
try {
weakmap.delete(key);
} catch (err) {
delete this.weakmap;
}
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
if (entry && entry[0] === key) {
entry[0] = entry[1] = undefined;
}
} catch (err) {// pass
}
}
this._cleanupClosedWindows();
var keys = this.keys;
var index = util_safeIndexOf(keys, key);
if (index !== -1) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
};
_proto.has = function has(key) {
if (!key) {
throw new Error("WeakMap expected key");
}
var weakmap = this.weakmap;
if (weakmap) {
try {
if (weakmap.has(key)) {
return true;
}
} catch (err) {
delete this.weakmap;
}
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
if (entry && entry[0] === key) {
return true;
}
return false;
} catch (err) {// pass
}
}
this._cleanupClosedWindows();
var index = util_safeIndexOf(this.keys, key);
return index !== -1;
};
_proto.getOrSet = function getOrSet(key, getter) {
if (this.has(key)) {
// $FlowFixMe
return this.get(key);
}
var value = getter();
this.set(key, value);
return value;
};
return CrossDomainSafeWeakMap;
}();
// CONCATENATED MODULE: ./node_modules/cross-domain-safe-weakmap/src/index.js
// CONCATENATED MODULE: ./node_modules/belter/src/util.js
/* eslint max-lines: 0 */
function getFunctionName(fn) {
return fn.name || fn.__name__ || fn.displayName || 'anonymous';
}
function setFunctionName(fn, name) {
try {
delete fn.name;
fn.name = name;
} catch (err) {// pass
}
fn.__name__ = fn.displayName = name;
return fn;
}
function base64encode(str) {
if (typeof btoa === 'function') {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (m, p1) {
return String.fromCharCode(parseInt(p1, 16));
}));
}
if (typeof Buffer !== 'undefined') {
return Buffer.from(str, 'utf8').toString('base64');
}
throw new Error("Can not find window.btoa or Buffer");
}
function base64decode(str) {
if (typeof atob === 'function') {
return decodeURIComponent(Array.prototype.map.call(atob(str), function (c) {
// eslint-disable-next-line prefer-template
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}
if (typeof Buffer !== 'undefined') {
return Buffer.from(str, 'base64').toString('utf8');
}
throw new Error("Can not find window.atob or Buffer");
}
function uniqueID() {
var chars = '0123456789abcdef';
var randomID = 'xxxxxxxxxx'.replace(/./g, function () {
return chars.charAt(Math.floor(Math.random() * chars.length));
});
var timeID = base64encode(new Date().toISOString().slice(11, 19).replace('T', '.')).replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
return randomID + "_" + timeID;
}
function getGlobal() {
if (typeof window !== 'undefined') {
return window;
}
if (typeof window !== 'undefined') {
return window;
}
if (typeof global !== 'undefined') {
return global;
}
throw new Error("No global found");
}
var objectIDs;
function getObjectID(obj) {
objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap();
if (obj === null || obj === undefined || typeof obj !== 'object' && typeof obj !== 'function') {
throw new Error("Invalid object");
}
var uid = objectIDs.get(obj);
if (!uid) {
uid = typeof obj + ":" + uniqueID();
objectIDs.set(obj, uid);
}
return uid;
}
function serializeArgs(args) {
try {
return JSON.stringify(Array.prototype.slice.call(args), function (subkey, val) {
if (typeof val === 'function') {
return "memoize[" + getObjectID(val) + "]";
}
return val;
});
} catch (err) {
throw new Error("Arguments not serializable -- can not be used to memoize");
}
}
function memoize(method, options) {
var _this = this;
if (options === void 0) {
options = {};
}
var cacheMap = new weakmap_CrossDomainSafeWeakMap(); // $FlowFixMe
var memoizedFunction = function memoizedFunction() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var cache = cacheMap.getOrSet(options.thisNamespace ? this : method, function () {
return {};
});
var key = serializeArgs(args);
var cacheTime = options.time;
if (cache[key] && cacheTime && Date.now() - cache[key].time < cacheTime) {
delete cache[key];
}
if (cache[key]) {
return cache[key].value;
}
var time = Date.now();
var value = method.apply(this, arguments);
cache[key] = {
time: time,
value: value
};
return cache[key].value;
};
memoizedFunction.reset = function () {
cacheMap.delete(options.thisNamespace ? _this : method);
};
return setFunctionName(memoizedFunction, getFunctionName(method) + "::memoized");
}
function promiseIdentity(item) {
// $FlowFixMe
return promise_ZalgoPromise.resolve(item);
} // eslint-disable-next-line flowtype/no-weak-types
function memoizePromise(method) {
var cache = {}; // eslint-disable-next-line flowtype/no-weak-types
function memoizedPromiseFunction() {
var _arguments = arguments,
_this2 = this;
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
var key = serializeArgs(args);
if (cache.hasOwnProperty(key)) {
return cache[key];
}
cache[key] = promise_ZalgoPromise.try(function () {
return method.apply(_this2, _arguments);
}).finally(function () {
delete cache[key];
});
return cache[key];
}
memoizedPromiseFunction.reset = function () {
cache = {};
};
return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + "::promiseMemoized");
} // eslint-disable-next-line flowtype/no-weak-types
function promisify(method, options) {
if (options === void 0) {
options = {};
}
function promisifiedFunction() {
return promise_ZalgoPromise.try(method, this, arguments);
}
if (options.name) {
promisifiedFunction.displayName = options.name + ":promisified";
}
return setFunctionName(promisifiedFunction, getFunctionName(method) + "::promisified");
} // eslint-disable-next-line flowtype/no-weak-types
function inlineMemoize(method, logic, args) {
if (args === void 0) {
args = [];
}