beaver-logger
Advanced tools
Comparing version 3.0.17 to 4.0.0
@@ -1,1661 +0,842 @@ | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(typeof exports === 'object' && typeof module === 'object') | ||
module.exports = factory(); | ||
else if(typeof define === 'function' && define.amd) | ||
define("$logger", [], factory); | ||
else if(typeof exports === 'object') | ||
exports["$logger"] = factory(); | ||
else | ||
root["$logger"] = factory(); | ||
})(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] = { | ||
/******/ exports: {}, | ||
/******/ id: moduleId, | ||
/******/ loaded: false | ||
/******/ }; | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ // Flag the module as loaded | ||
/******/ module.loaded = 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; | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(0); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _interface = __webpack_require__(1); | ||
Object.keys(_interface).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _interface[key]; | ||
} | ||
}); | ||
}); | ||
var INTERFACE = _interopRequireWildcard(_interface); | ||
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; } } | ||
exports['default'] = INTERFACE; | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _logger = __webpack_require__(2); | ||
Object.keys(_logger).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _logger[key]; | ||
} | ||
}); | ||
}); | ||
var _init = __webpack_require__(11); | ||
Object.keys(_init).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _init[key]; | ||
} | ||
}); | ||
}); | ||
var _transitions = __webpack_require__(13); | ||
Object.keys(_transitions).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _transitions[key]; | ||
} | ||
}); | ||
}); | ||
var _builders = __webpack_require__(9); | ||
Object.keys(_builders).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _builders[key]; | ||
} | ||
}); | ||
}); | ||
var _config = __webpack_require__(10); | ||
Object.keys(_config).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _config[key]; | ||
} | ||
}); | ||
}); | ||
/***/ }), | ||
/* 2 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.track = exports.flush = exports.tracking = exports.buffer = undefined; | ||
exports.getTransport = getTransport; | ||
exports.setTransport = setTransport; | ||
exports.print = print; | ||
exports.immediateFlush = immediateFlush; | ||
exports.log = log; | ||
exports.prefix = prefix; | ||
exports.debug = debug; | ||
exports.info = info; | ||
exports.warn = warn; | ||
exports.error = error; | ||
var _util = __webpack_require__(3); | ||
var _builders = __webpack_require__(9); | ||
var _config = __webpack_require__(10); | ||
var buffer = exports.buffer = []; | ||
var tracking = exports.tracking = []; | ||
var transport = function transport(headers, data, options) { | ||
return (0, _util.ajax)('post', _config.config.uri, headers, data, options); | ||
}; | ||
function getTransport() { | ||
return transport; | ||
} | ||
function setTransport(newTransport) { | ||
transport = newTransport; | ||
} | ||
var loaded = false; | ||
setTimeout(function () { | ||
loaded = true; | ||
}, 1); | ||
function print(level, event, payload) { | ||
if (typeof window === 'undefined' || !window.console || !window.console.log) { | ||
return; | ||
} | ||
if (!loaded) { | ||
return setTimeout(function () { | ||
return print(level, event, payload); | ||
}, 1); | ||
} | ||
var logLevel = _config.config.logLevel; | ||
if (window.LOG_LEVEL) { | ||
logLevel = window.LOG_LEVEL; | ||
} | ||
if (_config.logLevels.indexOf(level) > _config.logLevels.indexOf(logLevel)) { | ||
return; | ||
} | ||
payload = payload || {}; | ||
var args = [event]; | ||
if ((0, _util.isIE)()) { | ||
payload = JSON.stringify(payload); | ||
} | ||
args.push(payload); | ||
if (payload.error || payload.warning) { | ||
args.push('\n\n', payload.error || payload.warning); | ||
} | ||
try { | ||
if (window.console[level] && window.console[level].apply) { | ||
window.console[level].apply(window.console, args); | ||
} else if (window.console.log && window.console.log.apply) { | ||
window.console.log.apply(window.console, args); | ||
} | ||
} catch (err) { | ||
// pass | ||
} | ||
} | ||
function immediateFlush() { | ||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref$fireAndForget = _ref.fireAndForget, | ||
fireAndForget = _ref$fireAndForget === undefined ? false : _ref$fireAndForget; | ||
if (typeof window === 'undefined') { | ||
return; | ||
} | ||
if (!_config.config.uri) { | ||
return; | ||
} | ||
var hasBuffer = buffer.length; | ||
var hasTracking = tracking.length; | ||
if (!hasBuffer && !hasTracking) { | ||
return; | ||
} | ||
var meta = {}; | ||
for (var _iterator = _builders.metaBuilders, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { | ||
var _ref2; | ||
if (_isArray) { | ||
if (_i >= _iterator.length) break; | ||
_ref2 = _iterator[_i++]; | ||
} else { | ||
_i = _iterator.next(); | ||
if (_i.done) break; | ||
_ref2 = _i.value; | ||
} | ||
var builder = _ref2; | ||
try { | ||
(0, _util.extend)(meta, builder(meta), false); | ||
} catch (err) { | ||
console.error('Error in custom meta builder:', err.stack || err.toString()); | ||
} | ||
} | ||
var headers = {}; | ||
for (var _iterator2 = _builders.headerBuilders, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { | ||
var _ref3; | ||
if (_isArray2) { | ||
if (_i2 >= _iterator2.length) break; | ||
_ref3 = _iterator2[_i2++]; | ||
} else { | ||
_i2 = _iterator2.next(); | ||
if (_i2.done) break; | ||
_ref3 = _i2.value; | ||
} | ||
var _builder = _ref3; | ||
try { | ||
(0, _util.extend)(headers, _builder(headers), false); | ||
} catch (err) { | ||
console.error('Error in custom header builder:', err.stack || err.toString()); | ||
} | ||
} | ||
var events = buffer; | ||
var req = transport(headers, { | ||
events: events, | ||
meta: meta, | ||
tracking: tracking | ||
}, { | ||
fireAndForget: fireAndForget | ||
}); | ||
exports.buffer = buffer = []; | ||
exports.tracking = tracking = []; | ||
return req; | ||
} | ||
var _flush = (0, _util.promiseDebounce)(immediateFlush, _config.config.debounceInterval); | ||
exports.flush = _flush; | ||
function enqueue(level, event, payload) { | ||
buffer.push({ | ||
level: level, | ||
event: event, | ||
payload: payload | ||
}); | ||
if (_config.config.autoLog.indexOf(level) > -1) { | ||
_flush(); | ||
} | ||
} | ||
function log(level, event, payload) { | ||
if (typeof window === 'undefined') { | ||
return; | ||
} | ||
if (_config.config.prefix) { | ||
event = _config.config.prefix + '_' + event; | ||
} | ||
payload = payload || {}; | ||
if (typeof payload === 'string') { | ||
payload = { | ||
message: payload | ||
}; | ||
} else if (payload instanceof Error) { | ||
payload = { | ||
error: payload.stack || payload.toString() | ||
}; | ||
} | ||
try { | ||
JSON.stringify(payload); | ||
} catch (err) { | ||
return; | ||
} | ||
payload.timestamp = Date.now(); | ||
for (var _iterator3 = _builders.payloadBuilders, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { | ||
var _ref4; | ||
if (_isArray3) { | ||
if (_i3 >= _iterator3.length) break; | ||
_ref4 = _iterator3[_i3++]; | ||
} else { | ||
_i3 = _iterator3.next(); | ||
if (_i3.done) break; | ||
_ref4 = _i3.value; | ||
} | ||
var builder = _ref4; | ||
try { | ||
(0, _util.extend)(payload, builder(payload), false); | ||
} catch (err) { | ||
console.error('Error in custom payload builder:', err.stack || err.toString()); | ||
} | ||
} | ||
if (!_config.config.silent) { | ||
print(level, event, payload); | ||
} | ||
if (buffer.length === _config.config.sizeLimit) { | ||
enqueue('info', 'logger_max_buffer_length'); | ||
} else if (buffer.length < _config.config.sizeLimit) { | ||
enqueue(level, event, payload); | ||
} | ||
} | ||
function prefix(name) { | ||
return { | ||
debug: function debug(event, payload) { | ||
return log('debug', name + '_' + event, payload); | ||
}, | ||
info: function info(event, payload) { | ||
return log('info', name + '_' + event, payload); | ||
}, | ||
warn: function warn(event, payload) { | ||
return log('warn', name + '_' + event, payload); | ||
}, | ||
error: function error(event, payload) { | ||
return log('error', name + '_' + event, payload); | ||
}, | ||
track: function track(payload) { | ||
return _track(payload); | ||
}, | ||
flush: function flush() { | ||
return _flush(); | ||
} | ||
}; | ||
} | ||
function debug(event, payload) { | ||
return log('debug', event, payload); | ||
} | ||
function info(event, payload) { | ||
return log('info', event, payload); | ||
} | ||
function warn(event, payload) { | ||
return log('warn', event, payload); | ||
} | ||
function error(event, payload) { | ||
return log('error', event, payload); | ||
} | ||
function _track(payload) { | ||
if (typeof window === 'undefined') { | ||
return; | ||
} | ||
if (payload) { | ||
try { | ||
JSON.stringify(payload); | ||
} catch (err) { | ||
return; | ||
} | ||
for (var _iterator4 = _builders.trackingBuilders, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { | ||
var _ref5; | ||
if (_isArray4) { | ||
if (_i4 >= _iterator4.length) break; | ||
_ref5 = _iterator4[_i4++]; | ||
} else { | ||
_i4 = _iterator4.next(); | ||
if (_i4.done) break; | ||
_ref5 = _i4.value; | ||
} | ||
var builder = _ref5; | ||
try { | ||
(0, _util.extend)(payload, builder(payload), false); | ||
} catch (err) { | ||
console.error('Error in custom tracking builder:', err.stack || err.toString()); | ||
} | ||
} | ||
print('debug', 'tracking', payload); | ||
tracking.push(payload); | ||
} | ||
} | ||
exports.track = _track; | ||
/***/ }), | ||
/* 3 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.extend = extend; | ||
exports.isSameProtocol = isSameProtocol; | ||
exports.isSameDomain = isSameDomain; | ||
exports.ajax = ajax; | ||
exports.promiseDebounce = promiseDebounce; | ||
exports.onWindowReady = onWindowReady; | ||
exports.safeInterval = safeInterval; | ||
exports.uniqueID = uniqueID; | ||
exports.isIE = isIE; | ||
var _src = __webpack_require__(4); | ||
function extend(dest, src) { | ||
var over = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; | ||
dest = dest || {}; | ||
src = src || {}; | ||
for (var i in src) { | ||
if (src.hasOwnProperty(i)) { | ||
if (over || !dest.hasOwnProperty(i)) { | ||
dest[i] = src[i]; | ||
} | ||
} | ||
} | ||
return dest; | ||
} | ||
function isSameProtocol(url) { | ||
return window.location.protocol === url.split('/')[0]; | ||
} | ||
function isSameDomain(url) { | ||
var match = url.match(/https?:\/\/[^/]+/); | ||
if (!match) { | ||
return true; | ||
} | ||
return match[0] === window.location.protocol + '//' + window.location.host; | ||
} | ||
function ajax(method, url) { | ||
var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; | ||
var _ref = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}, | ||
_ref$fireAndForget = _ref.fireAndForget, | ||
fireAndForget = _ref$fireAndForget === undefined ? false : _ref$fireAndForget; | ||
return new _src.ZalgoPromise(function (resolve) { | ||
var XRequest = window.XMLHttpRequest || window.ActiveXObject; | ||
if (window.XDomainRequest && !isSameDomain(url)) { | ||
if (!isSameProtocol(url)) { | ||
return resolve(); | ||
} | ||
XRequest = window.XDomainRequest; | ||
} | ||
var req = new XRequest('MSXML2.XMLHTTP.3.0'); | ||
req.open(method.toUpperCase(), url, true); | ||
if (typeof req.setRequestHeader === 'function') { | ||
req.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); | ||
req.setRequestHeader('Content-type', 'application/json'); | ||
for (var headerName in headers) { | ||
if (headers.hasOwnProperty(headerName)) { | ||
req.setRequestHeader(headerName, headers[headerName]); | ||
} | ||
} | ||
} | ||
if (fireAndForget) { | ||
resolve(); | ||
} else { | ||
req.onreadystatechange = function () { | ||
if (req.readyState > 3) { | ||
resolve(); | ||
} | ||
}; | ||
} | ||
req.send(JSON.stringify(data).replace(/&/g, '%26')); | ||
}); | ||
} | ||
function promiseDebounce(method, interval) { | ||
var debounce = {}; | ||
return function () { | ||
var args = arguments; | ||
if (debounce.timeout) { | ||
clearTimeout(debounce.timeout); | ||
delete debounce.timeout; | ||
} | ||
debounce.timeout = setTimeout(function () { | ||
var resolver = debounce.resolver; | ||
var rejector = debounce.rejector; | ||
delete debounce.promise; | ||
delete debounce.resolver; | ||
delete debounce.rejector; | ||
delete debounce.timeout; | ||
return _src.ZalgoPromise.resolve().then(function () { | ||
return method.apply(null, args); | ||
}).then(resolver, rejector); | ||
}, interval); | ||
debounce.promise = debounce.promise || new _src.ZalgoPromise(function (resolver, rejector) { | ||
debounce.resolver = resolver; | ||
debounce.rejector = rejector; | ||
}); | ||
return debounce.promise; | ||
}; | ||
} | ||
function onWindowReady() { | ||
return new _src.ZalgoPromise(function (resolve) { | ||
if (typeof document !== 'undefined' && document.readyState === 'complete') { | ||
resolve(); | ||
} | ||
window.addEventListener('load', resolve); | ||
}); | ||
} | ||
function safeInterval(method, time) { | ||
var timeout = void 0; | ||
function loop() { | ||
timeout = setTimeout(function () { | ||
method(); | ||
loop(); | ||
}, time); | ||
} | ||
loop(); | ||
return { | ||
cancel: function cancel() { | ||
clearTimeout(timeout); | ||
} | ||
}; | ||
} | ||
function uniqueID() { | ||
var chars = '0123456789abcdef'; | ||
return 'xxxxxxxxxx'.replace(/./g, function () { | ||
return chars.charAt(Math.floor(Math.random() * chars.length)); | ||
}); | ||
} | ||
function isIE() { | ||
return Boolean(window.document.documentMode); | ||
} | ||
/***/ }), | ||
/* 4 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _promise = __webpack_require__(5); | ||
Object.defineProperty(exports, 'ZalgoPromise', { | ||
enumerable: true, | ||
get: function get() { | ||
return _promise.ZalgoPromise; | ||
} | ||
}); | ||
/***/ }), | ||
/* 5 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.ZalgoPromise = undefined; | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
var _utils = __webpack_require__(6); | ||
var _exceptions = __webpack_require__(7); | ||
var _global = __webpack_require__(8); | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
var ZalgoPromise = function () { | ||
function ZalgoPromise(handler) { | ||
var _this = this; | ||
_classCallCheck(this, ZalgoPromise); | ||
this.resolved = false; | ||
this.rejected = false; | ||
this.errorHandled = false; | ||
this.handlers = []; | ||
if (handler) { | ||
var _result = void 0; | ||
var _error = void 0; | ||
var resolved = false; | ||
var rejected = false; | ||
var isAsync = false; | ||
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) { | ||
this.reject(err); | ||
return; | ||
} | ||
isAsync = true; | ||
if (resolved) { | ||
// $FlowFixMe | ||
this.resolve(_result); | ||
} else if (rejected) { | ||
this.reject(_error); | ||
} | ||
} | ||
} | ||
_createClass(ZalgoPromise, [{ | ||
key: 'resolve', | ||
value: function resolve(result) { | ||
if (this.resolved || this.rejected) { | ||
return this; | ||
} | ||
if ((0, _utils.isPromise)(result)) { | ||
throw new Error('Can not resolve promise with another promise'); | ||
} | ||
this.resolved = true; | ||
this.value = result; | ||
this.dispatch(); | ||
return this; | ||
} | ||
}, { | ||
key: 'reject', | ||
value: function reject(error) { | ||
var _this2 = this; | ||
if (this.resolved || this.rejected) { | ||
return this; | ||
} | ||
if ((0, _utils.isPromise)(error)) { | ||
throw new Error('Can not reject promise with another promise'); | ||
} | ||
if (!error) { | ||
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) { | ||
(0, _exceptions.dispatchPossiblyUnhandledError)(error); | ||
} | ||
}, 1); | ||
} | ||
this.dispatch(); | ||
return this; | ||
} | ||
}, { | ||
key: 'asyncReject', | ||
value: function asyncReject(error) { | ||
this.errorHandled = true; | ||
this.reject(error); | ||
} | ||
// eslint-disable-next-line complexity | ||
}, { | ||
key: 'dispatch', | ||
value: function dispatch() { | ||
var _this3 = this; | ||
var dispatching = this.dispatching, | ||
resolved = this.resolved, | ||
rejected = this.rejected, | ||
handlers = this.handlers; | ||
if (dispatching) { | ||
return; | ||
} | ||
if (!resolved && !rejected) { | ||
return; | ||
} | ||
this.dispatching = true; | ||
(0, _global.getGlobal)().activeCount += 1; | ||
var _loop = function _loop(i) { | ||
var _handlers$i = handlers[i], | ||
onSuccess = _handlers$i.onSuccess, | ||
onError = _handlers$i.onError, | ||
promise = _handlers$i.promise; | ||
var result = void 0; | ||
if (resolved) { | ||
try { | ||
result = onSuccess ? onSuccess(_this3.value) : _this3.value; | ||
} catch (err) { | ||
promise.reject(err); | ||
return 'continue'; | ||
} | ||
} else if (rejected) { | ||
if (!onError) { | ||
promise.reject(_this3.error); | ||
return 'continue'; | ||
} | ||
try { | ||
result = onError(_this3.error); | ||
} catch (err) { | ||
promise.reject(err); | ||
return 'continue'; | ||
} | ||
} | ||
if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) { | ||
if (result.resolved) { | ||
promise.resolve(result.value); | ||
} else { | ||
promise.reject(result.error); | ||
} | ||
result.errorHandled = true; | ||
} else if ((0, _utils.isPromise)(result)) { | ||
if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) { | ||
if (result.resolved) { | ||
promise.resolve(result.value); | ||
} else { | ||
promise.reject(result.error); | ||
} | ||
} else { | ||
// $FlowFixMe | ||
result.then(function (res) { | ||
// eslint-disable-line promise/catch-or-return | ||
promise.resolve(res); | ||
}, function (err) { | ||
promise.reject(err); | ||
}); | ||
} | ||
} else { | ||
promise.resolve(result); | ||
} | ||
}; | ||
for (var i = 0; i < handlers.length; i++) { | ||
var _ret = _loop(i); | ||
if (_ret === 'continue') continue; | ||
} | ||
handlers.length = 0; | ||
this.dispatching = false; | ||
(0, _global.getGlobal)().activeCount -= 1; | ||
if ((0, _global.getGlobal)().activeCount === 0) { | ||
ZalgoPromise.flushQueue(); | ||
} | ||
} | ||
}, { | ||
key: 'then', | ||
value: 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; | ||
} | ||
}, { | ||
key: 'catch', | ||
value: function _catch(onError) { | ||
return this.then(undefined, onError); | ||
} | ||
}, { | ||
key: 'finally', | ||
value: function _finally(handler) { | ||
return this.then(function (result) { | ||
return ZalgoPromise['try'](handler).then(function () { | ||
return result; | ||
}); | ||
}, function (err) { | ||
return ZalgoPromise['try'](handler).then(function () { | ||
throw err; | ||
}); | ||
}); | ||
} | ||
}, { | ||
key: 'timeout', | ||
value: function timeout(time, err) { | ||
var _this4 = this; | ||
if (this.resolved || this.rejected) { | ||
return this; | ||
} | ||
var timeout = setTimeout(function () { | ||
if (_this4.resolved || _this4.rejected) { | ||
return; | ||
} | ||
_this4.reject(err || new Error('Promise timed out after ' + time + 'ms')); | ||
}, time); | ||
return this.then(function (result) { | ||
clearTimeout(timeout); | ||
return result; | ||
}); | ||
} | ||
// $FlowFixMe | ||
}, { | ||
key: 'toPromise', | ||
value: function toPromise() { | ||
// $FlowFixMe | ||
if (typeof Promise === 'undefined') { | ||
throw new TypeError('Could not find Promise'); | ||
} | ||
// $FlowFixMe | ||
return Promise.resolve(this); | ||
} | ||
}], [{ | ||
key: 'resolve', | ||
value: function resolve(value) { | ||
if (value instanceof ZalgoPromise) { | ||
return value; | ||
} | ||
if ((0, _utils.isPromise)(value)) { | ||
// $FlowFixMe | ||
return new ZalgoPromise(function (resolve, reject) { | ||
return value.then(resolve, reject); | ||
}); | ||
} | ||
return new ZalgoPromise().resolve(value); | ||
} | ||
}, { | ||
key: 'reject', | ||
value: function reject(error) { | ||
return new ZalgoPromise().reject(error); | ||
} | ||
}, { | ||
key: 'all', | ||
value: function all(promises) { | ||
var promise = new ZalgoPromise(); | ||
var count = promises.length; | ||
var results = []; | ||
if (!count) { | ||
promise.resolve(results); | ||
return promise; | ||
} | ||
var _loop2 = function _loop2(i) { | ||
var prom = promises[i]; | ||
if (prom instanceof ZalgoPromise) { | ||
if (prom.resolved) { | ||
results[i] = prom.value; | ||
count -= 1; | ||
return 'continue'; | ||
} | ||
} else if (!(0, _utils.isPromise)(prom)) { | ||
results[i] = prom; | ||
count -= 1; | ||
return 'continue'; | ||
} | ||
ZalgoPromise.resolve(prom).then(function (result) { | ||
// eslint-disable-line promise/catch-or-return | ||
results[i] = result; | ||
count -= 1; | ||
if (count === 0) { | ||
promise.resolve(results); | ||
} | ||
}, function (err) { | ||
promise.reject(err); | ||
}); | ||
}; | ||
for (var i = 0; i < promises.length; i++) { | ||
var _ret2 = _loop2(i); | ||
if (_ret2 === 'continue') continue; | ||
} | ||
if (count === 0) { | ||
promise.resolve(results); | ||
} | ||
return promise; | ||
} | ||
}, { | ||
key: 'hash', | ||
value: function hash(promises) { | ||
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; | ||
}); | ||
} | ||
}, { | ||
key: 'map', | ||
value: function map(items, method) { | ||
// $FlowFixMe | ||
return ZalgoPromise.all(items.map(method)); | ||
} | ||
}, { | ||
key: 'onPossiblyUnhandledException', | ||
value: function onPossiblyUnhandledException(handler) { | ||
return (0, _exceptions.onPossiblyUnhandledException)(handler); | ||
} | ||
}, { | ||
key: 'try', | ||
value: function _try(method, context, args) { | ||
var result = void 0; | ||
try { | ||
// $FlowFixMe | ||
result = method.apply(context, args || []); | ||
} catch (err) { | ||
return ZalgoPromise.reject(err); | ||
} | ||
return ZalgoPromise.resolve(result); | ||
} | ||
}, { | ||
key: 'delay', | ||
value: function delay(_delay) { | ||
return new ZalgoPromise(function (resolve) { | ||
setTimeout(resolve, _delay); | ||
}); | ||
} | ||
}, { | ||
key: 'isPromise', | ||
value: function isPromise(value) { | ||
if (value && value instanceof ZalgoPromise) { | ||
return true; | ||
} | ||
return (0, _utils.isPromise)(value); | ||
} | ||
}, { | ||
key: 'flush', | ||
value: function flush() { | ||
var promise = new ZalgoPromise(); | ||
(0, _global.getGlobal)().flushPromises.push(promise); | ||
if ((0, _global.getGlobal)().activeCount === 0) { | ||
ZalgoPromise.flushQueue(); | ||
} | ||
return promise; | ||
} | ||
}, { | ||
key: 'flushQueue', | ||
value: function flushQueue() { | ||
var promisesToFlush = (0, _global.getGlobal)().flushPromises; | ||
(0, _global.getGlobal)().flushPromises = []; | ||
for (var _iterator = promisesToFlush, _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 _promise = _ref; | ||
_promise.resolve(); | ||
} | ||
} | ||
}]); | ||
return ZalgoPromise; | ||
}(); | ||
exports.ZalgoPromise = ZalgoPromise; | ||
/***/ }), | ||
/* 6 */ | ||
/***/ (function(module, exports) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.isPromise = isPromise; | ||
function isPromise(item) { | ||
try { | ||
if (!item) { | ||
return false; | ||
} | ||
if (typeof Promise !== 'undefined' && item instanceof Promise) { | ||
return true; | ||
} | ||
if (typeof window !== 'undefined' && window.Window && item instanceof window.Window) { | ||
return false; | ||
} | ||
if (typeof window !== 'undefined' && window.constructor && 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; | ||
} | ||
/***/ }), | ||
/* 7 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.dispatchPossiblyUnhandledError = dispatchPossiblyUnhandledError; | ||
exports.onPossiblyUnhandledException = onPossiblyUnhandledException; | ||
var _global = __webpack_require__(8); | ||
function dispatchPossiblyUnhandledError(err) { | ||
if ((0, _global.getGlobal)().dispatchedErrors.indexOf(err) !== -1) { | ||
return; | ||
} | ||
(0, _global.getGlobal)().dispatchedErrors.push(err); | ||
setTimeout(function () { | ||
throw err; | ||
}, 1); | ||
for (var j = 0; j < (0, _global.getGlobal)().possiblyUnhandledPromiseHandlers.length; j++) { | ||
(0, _global.getGlobal)().possiblyUnhandledPromiseHandlers[j](err); | ||
} | ||
} | ||
function onPossiblyUnhandledException(handler) { | ||
(0, _global.getGlobal)().possiblyUnhandledPromiseHandlers.push(handler); | ||
return { | ||
cancel: function cancel() { | ||
(0, _global.getGlobal)().possiblyUnhandledPromiseHandlers.splice((0, _global.getGlobal)().possiblyUnhandledPromiseHandlers.indexOf(handler), 1); | ||
} | ||
}; | ||
} | ||
/***/ }), | ||
/* 8 */ | ||
/***/ (function(module, exports) { | ||
/* WEBPACK VAR INJECTION */(function(global) {'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.getGlobal = getGlobal; | ||
function getGlobal() { | ||
var glob = void 0; | ||
if (typeof window !== 'undefined') { | ||
glob = window; | ||
} else if (typeof global !== 'undefined') { | ||
glob = global; | ||
} else { | ||
throw new TypeError('Can not find global'); | ||
} | ||
var zalgoGlobal = glob.__zalgopromise__ = glob.__zalgopromise__ || {}; | ||
zalgoGlobal.flushPromises = zalgoGlobal.flushPromises || []; | ||
zalgoGlobal.activeCount = zalgoGlobal.activeCount || 0; | ||
zalgoGlobal.possiblyUnhandledPromiseHandlers = zalgoGlobal.possiblyUnhandledPromiseHandlers || []; | ||
zalgoGlobal.dispatchedErrors = zalgoGlobal.dispatchedErrors || []; | ||
return zalgoGlobal; | ||
} | ||
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) | ||
/***/ }), | ||
/* 9 */ | ||
/***/ (function(module, exports) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.addPayloadBuilder = addPayloadBuilder; | ||
exports.addMetaBuilder = addMetaBuilder; | ||
exports.addTrackingBuilder = addTrackingBuilder; | ||
exports.addHeaderBuilder = addHeaderBuilder; | ||
var payloadBuilders = exports.payloadBuilders = []; | ||
var metaBuilders = exports.metaBuilders = []; | ||
var trackingBuilders = exports.trackingBuilders = []; | ||
var headerBuilders = exports.headerBuilders = []; | ||
function addPayloadBuilder(builder) { | ||
payloadBuilders.push(builder); | ||
} | ||
function addMetaBuilder(builder) { | ||
metaBuilders.push(builder); | ||
} | ||
function addTrackingBuilder(builder) { | ||
trackingBuilders.push(builder); | ||
} | ||
function addHeaderBuilder(builder) { | ||
headerBuilders.push(builder); | ||
} | ||
/***/ }), | ||
/* 10 */ | ||
/***/ (function(module, exports) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var config = exports.config = { | ||
uri: '', | ||
prefix: '', | ||
initial_state_name: 'init', | ||
flushInterval: 10 * 60 * 1000, | ||
debounceInterval: 10, | ||
sizeLimit: 300, | ||
// Supress `console.log`s when `true` | ||
// Recommended for production usage | ||
silent: false, | ||
heartbeat: true, | ||
heartbeatConsoleLog: true, | ||
heartbeatInterval: 5000, | ||
heartbeatTooBusy: false, | ||
heartbeatTooBusyThreshold: 10000, | ||
logLevel: 'warn', | ||
autoLog: ['warn', 'error'], | ||
logUnload: true, | ||
logPerformance: true | ||
}; | ||
var logLevels = exports.logLevels = ['error', 'warn', 'info', 'debug']; | ||
/***/ }), | ||
/* 11 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.init = init; | ||
var _config = __webpack_require__(10); | ||
var _util = __webpack_require__(3); | ||
var _performance = __webpack_require__(12); | ||
var _logger = __webpack_require__(2); | ||
var initiated = false; | ||
function init(conf) { | ||
(0, _util.extend)(_config.config, conf || {}); | ||
if (initiated) { | ||
return; | ||
} | ||
initiated = true; | ||
if (_config.config.logPerformance) { | ||
(0, _performance.initPerformance)(); | ||
} | ||
if (_config.config.heartbeat) { | ||
(0, _performance.initHeartBeat)(); | ||
} | ||
if (_config.config.logUnload) { | ||
window.addEventListener('beforeunload', function () { | ||
(0, _logger.info)('window_beforeunload'); | ||
(0, _logger.immediateFlush)({ fireAndForget: true }); | ||
}); | ||
window.addEventListener('unload', function () { | ||
(0, _logger.info)('window_unload'); | ||
(0, _logger.immediateFlush)({ fireAndForget: true }); | ||
}); | ||
} | ||
if (_config.config.flushInterval) { | ||
setInterval(_logger.flush, _config.config.flushInterval); | ||
} | ||
if (window.beaverLogQueue) { | ||
window.beaverLogQueue.forEach(function (payload) { | ||
(0, _logger.log)(payload.level, payload.event, payload); | ||
}); | ||
delete window.beaverLogQueue; | ||
} | ||
} | ||
/***/ }), | ||
/* 12 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.reqTimer = exports.clientTimer = undefined; | ||
exports.now = now; | ||
exports.reqStartElapsed = reqStartElapsed; | ||
exports.initHeartBeat = initHeartBeat; | ||
exports.initPerformance = initPerformance; | ||
var _config = __webpack_require__(10); | ||
var _logger = __webpack_require__(2); | ||
var _builders = __webpack_require__(9); | ||
var _util = __webpack_require__(3); | ||
var enablePerformance = window && window.performance && performance.now && performance.timing && performance.timing.connectEnd && performance.timing.navigationStart && Math.abs(performance.now() - Date.now()) > 1000 && performance.now() - (performance.timing.connectEnd - performance.timing.navigationStart) > 0; | ||
function now() { | ||
if (enablePerformance) { | ||
return performance.now(); | ||
} else { | ||
return Date.now(); | ||
} | ||
} | ||
function timer(startTime) { | ||
startTime = startTime !== undefined ? startTime : now(); | ||
return { | ||
startTime: startTime, | ||
elapsed: function elapsed() { | ||
return parseInt(now() - startTime, 10); | ||
}, | ||
reset: function reset() { | ||
startTime = now(); | ||
} | ||
}; | ||
} | ||
function reqStartElapsed() { | ||
if (enablePerformance) { | ||
var timing = window.performance.timing; | ||
return parseInt(timing.connectEnd - timing.navigationStart, 10); | ||
} | ||
} | ||
var clientTimer = exports.clientTimer = timer(); | ||
var reqTimer = exports.reqTimer = timer(reqStartElapsed()); | ||
function initHeartBeat() { | ||
var heartBeatTimer = timer(); | ||
var heartbeatCount = 0; | ||
(0, _util.safeInterval)(function () { | ||
if (_config.config.heartbeatMaxThreshold && heartbeatCount > _config.config.heartbeatMaxThreshold) { | ||
return; | ||
} | ||
heartbeatCount += 1; | ||
var elapsed = heartBeatTimer.elapsed(); | ||
var lag = elapsed - _config.config.heartbeatInterval; | ||
var heartbeatPayload = { | ||
count: heartbeatCount, | ||
elapsed: elapsed | ||
}; | ||
if (_config.config.heartbeatTooBusy) { | ||
heartbeatPayload.lag = lag; | ||
if (lag >= _config.config.heartbeatTooBusyThreshold) { | ||
(0, _logger.info)('toobusy', heartbeatPayload, { | ||
noConsole: !_config.config.heartbeatConsoleLog | ||
}); | ||
} | ||
} | ||
(0, _logger.info)('heartbeat', heartbeatPayload, { | ||
noConsole: !_config.config.heartbeatConsoleLog | ||
}); | ||
}, _config.config.heartbeatInterval); | ||
} | ||
function initPerformance() { | ||
if (!enablePerformance) { | ||
return (0, _logger.info)('no_performance_data'); | ||
} | ||
(0, _builders.addPayloadBuilder)(function () { | ||
var payload = {}; | ||
payload.client_elapsed = clientTimer.elapsed(); | ||
if (enablePerformance) { | ||
payload.req_elapsed = reqTimer.elapsed(); | ||
} | ||
return payload; | ||
}); | ||
(0, _util.onWindowReady)().then(function () { | ||
var keys = ['connectEnd', 'connectStart', 'domComplete', 'domContentLoadedEventEnd', 'domContentLoadedEventStart', 'domInteractive', 'domLoading', 'domainLookupEnd', 'domainLookupStart', 'fetchStart', 'loadEventEnd', 'loadEventStart', 'navigationStart', 'redirectEnd', 'redirectStart', 'requestStart', 'responseEnd', 'responseStart', 'secureConnectionStart', 'unloadEventEnd', 'unloadEventStart']; | ||
var timing = {}; | ||
keys.forEach(function (key) { | ||
timing[key] = parseInt(window.performance.timing[key], 10) || 0; | ||
}); | ||
var offset = timing.connectEnd - timing.navigationStart; | ||
if (timing.connectEnd) { | ||
Object.keys(timing).forEach(function (name) { | ||
var time = timing[name]; | ||
if (time) { | ||
(0, _logger.info)('timing_' + name, { | ||
client_elapsed: parseInt(time - timing.connectEnd - (clientTimer.startTime - offset), 10), | ||
req_elapsed: parseInt(time - timing.connectEnd, 10) | ||
}); | ||
} | ||
}); | ||
} | ||
(0, _logger.info)('timing', timing); | ||
(0, _logger.info)('memory', window.performance.memory); | ||
(0, _logger.info)('navigation', window.performance.navigation); | ||
if (window.performance.getEntries) { | ||
window.performance.getEntries().forEach(function (resource) { | ||
if (['link', 'script', 'img', 'css'].indexOf(resource.initiatorType) > -1) { | ||
(0, _logger.info)(resource.initiatorType, resource); | ||
} | ||
}); | ||
} | ||
}); | ||
} | ||
/***/ }), | ||
/* 13 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.startTransition = startTransition; | ||
exports.endTransition = endTransition; | ||
exports.transition = transition; | ||
var _performance = __webpack_require__(12); | ||
var _logger = __webpack_require__(2); | ||
var _builders = __webpack_require__(9); | ||
var _util = __webpack_require__(3); | ||
var _config = __webpack_require__(10); | ||
var windowID = (0, _util.uniqueID)(); | ||
var pageID = (0, _util.uniqueID)(); | ||
var currentState = _config.config.initial_state_name; | ||
var startTime = void 0; | ||
function startTransition() { | ||
startTime = (0, _performance.now)(); | ||
} | ||
function endTransition(toState) { | ||
startTime = startTime || (0, _performance.reqStartElapsed)(); | ||
var currentTime = (0, _performance.now)(); | ||
var elapsedTime = void 0; | ||
if (startTime !== undefined) { | ||
elapsedTime = parseInt(currentTime - startTime, 0); | ||
} | ||
var transitionName = 'transition_' + currentState + '_to_' + toState; | ||
(0, _logger.info)(transitionName, { | ||
duration: elapsedTime | ||
}); | ||
(0, _logger.track)({ | ||
transition: transitionName, | ||
transition_time: elapsedTime | ||
}); | ||
(0, _logger.immediateFlush)(); | ||
startTime = currentTime; | ||
currentState = toState; | ||
pageID = (0, _util.uniqueID)(); | ||
} | ||
function transition(toState) { | ||
startTransition(); | ||
endTransition(toState); | ||
} | ||
(0, _builders.addPayloadBuilder)(function () { | ||
return { | ||
windowID: windowID, | ||
pageID: pageID | ||
}; | ||
}); | ||
(0, _builders.addMetaBuilder)(function () { | ||
return { | ||
state: 'ui_' + currentState | ||
}; | ||
}); | ||
/***/ }) | ||
/******/ ]) | ||
!function(root, factory) { | ||
"object" == typeof exports && "object" == typeof module ? module.exports = factory() : "function" == typeof define && define.amd ? define("beaver", [], factory) : "object" == typeof exports ? exports.beaver = factory() : root.beaver = factory(); | ||
}("undefined" != typeof self ? self : this, function() { | ||
return function(modules) { | ||
var installedModules = {}; | ||
function __webpack_require__(moduleId) { | ||
if (installedModules[moduleId]) return installedModules[moduleId].exports; | ||
var module = installedModules[moduleId] = { | ||
i: moduleId, | ||
l: !1, | ||
exports: {} | ||
}; | ||
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
module.l = !0; | ||
return module.exports; | ||
} | ||
__webpack_require__.m = modules; | ||
__webpack_require__.c = installedModules; | ||
__webpack_require__.d = function(exports, name, getter) { | ||
__webpack_require__.o(exports, name) || Object.defineProperty(exports, name, { | ||
configurable: !1, | ||
enumerable: !0, | ||
get: getter | ||
}); | ||
}; | ||
__webpack_require__.n = function(module) { | ||
var getter = module && module.__esModule ? function() { | ||
return module.default; | ||
} : function() { | ||
return module; | ||
}; | ||
__webpack_require__.d(getter, "a", getter); | ||
return getter; | ||
}; | ||
__webpack_require__.o = function(object, property) { | ||
return Object.prototype.hasOwnProperty.call(object, property); | ||
}; | ||
__webpack_require__.p = ""; | ||
return __webpack_require__(__webpack_require__.s = "./src/index.js"); | ||
}({ | ||
"./node_modules/belter/src/device.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_exports__.a = function() { | ||
return !!(window.navigator.mockUserAgent || window.navigator.userAgent).match(/Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i); | ||
}; | ||
}, | ||
"./node_modules/belter/src/dom.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_exports__.a = function() { | ||
return "undefined" != typeof window; | ||
}; | ||
__webpack_require__("./node_modules/zalgo-promise/src/index.js"), __webpack_require__("./node_modules/belter/src/util.js"), | ||
__webpack_require__("./node_modules/belter/src/device.js"); | ||
}, | ||
"./node_modules/belter/src/experiment.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__("./node_modules/belter/src/util.js"), __webpack_require__("./node_modules/belter/src/storage.js"); | ||
}, | ||
"./node_modules/belter/src/global.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__("./node_modules/belter/src/util.js"); | ||
}, | ||
"./node_modules/belter/src/http.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_exports__.a = function(_ref) { | ||
var url = _ref.url, _ref$method = _ref.method, method = void 0 === _ref$method ? "get" : _ref$method, _ref$headers = _ref.headers, headers = void 0 === _ref$headers ? {} : _ref$headers, json = _ref.json, data = _ref.data, body = _ref.body, _ref$win = _ref.win, win = void 0 === _ref$win ? window : _ref$win, _ref$timeout = _ref.timeout, timeout = void 0 === _ref$timeout ? 0 : _ref$timeout; | ||
return new __WEBPACK_IMPORTED_MODULE_0_zalgo_promise_src__.a(function(resolve, reject) { | ||
if (json && data || json && body || data && json) throw new Error("Only options.json or options.data or options.body should be passed"); | ||
for (var normalizedHeaders = {}, _i4 = 0, _Object$keys2 = Object.keys(headers), _length4 = null == _Object$keys2 ? 0 : _Object$keys2.length; _i4 < _length4; _i4++) { | ||
var _key2 = _Object$keys2[_i4]; | ||
normalizedHeaders[_key2.toLowerCase()] = headers[_key2]; | ||
} | ||
json ? normalizedHeaders[HEADERS.CONTENT_TYPE] = normalizedHeaders[HEADERS.CONTENT_TYPE] || "application/json" : (data || body) && (normalizedHeaders[HEADERS.CONTENT_TYPE] = normalizedHeaders[HEADERS.CONTENT_TYPE] || "application/x-www-form-urlencoded; charset=utf-8"); | ||
normalizedHeaders[HEADERS.ACCEPT] = normalizedHeaders[HEADERS.ACCEPT] || "application/json"; | ||
for (var _i6 = 0, _length6 = null == headerBuilders ? 0 : headerBuilders.length; _i6 < _length6; _i6++) for (var builtHeaders = (0, | ||
headerBuilders[_i6])(), _i8 = 0, _Object$keys4 = Object.keys(builtHeaders), _length8 = null == _Object$keys4 ? 0 : _Object$keys4.length; _i8 < _length8; _i8++) { | ||
var _key3 = _Object$keys4[_i8]; | ||
normalizedHeaders[_key3.toLowerCase()] = builtHeaders[_key3]; | ||
} | ||
var xhr = new win.XMLHttpRequest(); | ||
xhr.addEventListener("load", function() { | ||
var responseHeaders = function() { | ||
for (var result = {}, _i2 = 0, _rawHeaders$trim$spli2 = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "").trim().split("\n"), _length2 = null == _rawHeaders$trim$spli2 ? 0 : _rawHeaders$trim$spli2.length; _i2 < _length2; _i2++) { | ||
var _line$split = _rawHeaders$trim$spli2[_i2].split(":"), _key = _line$split[0], values = _line$split.slice(1); | ||
result[_key.toLowerCase()] = values.join(":").trim(); | ||
} | ||
return result; | ||
}(this.getAllResponseHeaders()); | ||
if (!this.status) return reject(new Error("Request to " + method.toLowerCase() + " " + url + " failed: no response status code.")); | ||
var contentType = responseHeaders["content-type"], isJSON = contentType && (0 === contentType.indexOf("application/json") || 0 === contentType.indexOf("text/json")), res = this.responseText; | ||
try { | ||
res = JSON.parse(this.responseText); | ||
} catch (err) { | ||
if (isJSON) return reject(new Error("Invalid json: " + this.responseText + ".")); | ||
} | ||
if (this.status >= 400) { | ||
var message = "Request to " + method.toLowerCase() + " " + url + " failed with " + this.status + " error."; | ||
if (res) { | ||
"object" === (void 0 === res ? "undefined" : _typeof(res)) && null !== res && (res = JSON.stringify(res, null, 4)); | ||
message = message + "\n\n" + res + "\n"; | ||
} | ||
return reject(new Error(message)); | ||
} | ||
return resolve(res); | ||
}, !1); | ||
xhr.addEventListener("error", function(evt) { | ||
reject(new Error("Request to " + method.toLowerCase() + " " + url + " failed: " + evt.toString() + ".")); | ||
}, !1); | ||
xhr.open(method, url, !0); | ||
for (var _key4 in normalizedHeaders) normalizedHeaders.hasOwnProperty(_key4) && xhr.setRequestHeader(_key4, normalizedHeaders[_key4]); | ||
json ? body = JSON.stringify(json) : data && (body = Object.keys(data).map(function(key) { | ||
return encodeURIComponent(key) + "=" + (data ? encodeURIComponent(data[key]) : ""); | ||
}).join("&")); | ||
xhr.timeout = timeout; | ||
xhr.ontimeout = function() { | ||
reject(new Error("Request to " + method.toLowerCase() + " " + url + " has timed out")); | ||
}; | ||
xhr.send(body); | ||
}); | ||
}; | ||
var __WEBPACK_IMPORTED_MODULE_0_zalgo_promise_src__ = __webpack_require__("./node_modules/zalgo-promise/src/index.js"), _typeof = (__webpack_require__("./node_modules/cross-domain-utils/src/index.js"), | ||
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { | ||
return typeof obj; | ||
} : function(obj) { | ||
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
}), HEADERS = { | ||
CONTENT_TYPE: "content-type", | ||
ACCEPT: "accept" | ||
}, headerBuilders = []; | ||
}, | ||
"./node_modules/belter/src/index.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__("./node_modules/belter/src/device.js"); | ||
var __WEBPACK_IMPORTED_MODULE_1__dom__ = __webpack_require__("./node_modules/belter/src/dom.js"); | ||
__webpack_require__.d(__webpack_exports__, "isBrowser", function() { | ||
return __WEBPACK_IMPORTED_MODULE_1__dom__.a; | ||
}); | ||
__webpack_require__("./node_modules/belter/src/experiment.js"), __webpack_require__("./node_modules/belter/src/global.js"), | ||
__webpack_require__("./node_modules/belter/src/jsx.jsx"), __webpack_require__("./node_modules/belter/src/storage.js"); | ||
var __WEBPACK_IMPORTED_MODULE_6__util__ = __webpack_require__("./node_modules/belter/src/util.js"); | ||
__webpack_require__.d(__webpack_exports__, "extend", function() { | ||
return __WEBPACK_IMPORTED_MODULE_6__util__.a; | ||
}); | ||
__webpack_require__.d(__webpack_exports__, "noop", function() { | ||
return __WEBPACK_IMPORTED_MODULE_6__util__.e; | ||
}); | ||
__webpack_require__.d(__webpack_exports__, "promiseDebounce", function() { | ||
return __WEBPACK_IMPORTED_MODULE_6__util__.f; | ||
}); | ||
__webpack_require__.d(__webpack_exports__, "safeInterval", function() { | ||
return __WEBPACK_IMPORTED_MODULE_6__util__.i; | ||
}); | ||
var __WEBPACK_IMPORTED_MODULE_7__http__ = __webpack_require__("./node_modules/belter/src/http.js"); | ||
__webpack_require__.d(__webpack_exports__, "request", function() { | ||
return __WEBPACK_IMPORTED_MODULE_7__http__.a; | ||
}); | ||
var __WEBPACK_IMPORTED_MODULE_8__types__ = __webpack_require__("./node_modules/belter/src/types.js"); | ||
__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__types__); | ||
}, | ||
"./node_modules/belter/src/jsx.jsx": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__("./node_modules/belter/src/util.js"), Object.assign; | ||
function _classCallCheck(instance, Constructor) { | ||
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); | ||
} | ||
function htmlEncode() { | ||
return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "").toString().replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); | ||
} | ||
!function(_JsxHTMLNode) { | ||
!function(subClass, superClass) { | ||
if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); | ||
subClass.prototype = Object.create(superClass && superClass.prototype, { | ||
constructor: { | ||
value: subClass, | ||
enumerable: !1, | ||
writable: !0, | ||
configurable: !0 | ||
} | ||
}); | ||
superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass); | ||
}(JsxHTMLNodeContainer, _JsxHTMLNode); | ||
function JsxHTMLNodeContainer(children) { | ||
_classCallCheck(this, JsxHTMLNodeContainer); | ||
return function(self, call) { | ||
if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | ||
return !call || "object" != typeof call && "function" != typeof call ? self : call; | ||
}(this, _JsxHTMLNode.call(this, "", {}, children)); | ||
} | ||
JsxHTMLNodeContainer.prototype.toString = function() { | ||
return this.childrenToString(); | ||
}; | ||
}(function() { | ||
function JsxHTMLNode(name, props, children) { | ||
_classCallCheck(this, JsxHTMLNode); | ||
this.name = name; | ||
this.props = props; | ||
this.children = children; | ||
} | ||
JsxHTMLNode.prototype.toString = function() { | ||
return "<" + this.name + (this.props ? " " : "") + (this.props ? this.propsToString() : "") + ">" + this.childrenToString() + "</" + this.name + ">"; | ||
}; | ||
JsxHTMLNode.prototype.propsToString = function() { | ||
var props = this.props; | ||
return props ? Object.keys(props).filter(function(key) { | ||
return "innerHTML" !== key && props && !1 !== props[key]; | ||
}).map(function(key) { | ||
if (props) { | ||
var val = props[key]; | ||
if (!0 === val) return "" + htmlEncode(key); | ||
if ("string" == typeof val) return htmlEncode(key) + '="' + htmlEncode(val) + '"'; | ||
} | ||
return ""; | ||
}).filter(Boolean).join(" ") : ""; | ||
}; | ||
JsxHTMLNode.prototype.childrenToString = function() { | ||
if (this.props && this.props.innerHTML) return this.props.innerHTML; | ||
if (!this.children) return ""; | ||
var result = ""; | ||
!function iterate(children) { | ||
for (var _i2 = 0, _length2 = null == children ? 0 : children.length; _i2 < _length2; _i2++) { | ||
var child = children[_i2]; | ||
null !== child && void 0 !== child && (Array.isArray(child) ? iterate(child) : result += child instanceof JsxHTMLNode ? child.toString() : htmlEncode(child)); | ||
} | ||
}(this.children); | ||
return result; | ||
}; | ||
return JsxHTMLNode; | ||
}()); | ||
}, | ||
"./node_modules/belter/src/storage.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_exports__.a = function(_ref) { | ||
var name = _ref.name, _ref$version = _ref.version, version = void 0 === _ref$version ? "latest" : _ref$version, _ref$lifetime = _ref.lifetime, lifetime = void 0 === _ref$lifetime ? 3e5 : _ref$lifetime, STORAGE_KEY = "__" + name + "_" + version + "_storage__", accessedStorage = void 0; | ||
function getState(handler) { | ||
var localStorageEnabled = Object(__WEBPACK_IMPORTED_MODULE_0__util__.d)(), storage = void 0; | ||
accessedStorage && (storage = accessedStorage); | ||
if (!storage && localStorageEnabled) { | ||
var rawStorage = window.localStorage.getItem(STORAGE_KEY); | ||
rawStorage && (storage = JSON.parse(rawStorage)); | ||
} | ||
storage || (storage = Object(__WEBPACK_IMPORTED_MODULE_0__util__.b)()[STORAGE_KEY]); | ||
storage || (storage = { | ||
id: Object(__WEBPACK_IMPORTED_MODULE_0__util__.k)() | ||
}); | ||
storage.id || (storage.id = Object(__WEBPACK_IMPORTED_MODULE_0__util__.k)()); | ||
accessedStorage = storage; | ||
var result = handler(storage); | ||
localStorageEnabled ? window.localStorage.setItem(STORAGE_KEY, JSON.stringify(storage)) : Object(__WEBPACK_IMPORTED_MODULE_0__util__.b)()[STORAGE_KEY] = storage; | ||
accessedStorage = null; | ||
return result; | ||
} | ||
function getSession(handler) { | ||
return getState(function(storage) { | ||
var session = storage.__session__, now = Date.now(); | ||
session && now - session.created > lifetime && (session = null); | ||
session || (session = { | ||
guid: Object(__WEBPACK_IMPORTED_MODULE_0__util__.k)(), | ||
created: now | ||
}); | ||
storage.__session__ = session; | ||
return handler(session); | ||
}); | ||
} | ||
return { | ||
getState: getState, | ||
getID: function() { | ||
return getState(function(storage) { | ||
return storage.id; | ||
}); | ||
}, | ||
getSessionState: function(handler) { | ||
return getSession(function(session) { | ||
session.state = session.state || {}; | ||
return handler(session.state); | ||
}); | ||
}, | ||
getSessionID: function() { | ||
return getSession(function(session) { | ||
return session.guid; | ||
}); | ||
} | ||
}; | ||
}; | ||
var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__("./node_modules/belter/src/util.js"); | ||
}, | ||
"./node_modules/belter/src/types.js": function(module, exports) {}, | ||
"./node_modules/belter/src/util.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_exports__.b = getGlobal; | ||
__webpack_exports__.c = inlineMemoize; | ||
__webpack_exports__.e = function() {}; | ||
__webpack_exports__.k = function() { | ||
var chars = "0123456789abcdef"; | ||
return "xxxxxxxxxx".replace(/./g, function() { | ||
return chars.charAt(Math.floor(Math.random() * chars.length)); | ||
}) + "_" + base64encode(new Date().toISOString().slice(11, 19).replace("T", ".")).replace(/[^a-zA-Z0-9]/g, "").toLowerCase(); | ||
}; | ||
__webpack_exports__.d = function isLocalStorageEnabled() { | ||
return inlineMemoize(isLocalStorageEnabled, function() { | ||
try { | ||
if ("undefined" == typeof window) return !1; | ||
if (window.localStorage) { | ||
var _value = Math.random().toString(); | ||
window.localStorage.setItem("__test__localStorage__", _value); | ||
var result = window.localStorage.getItem("__test__localStorage__"); | ||
window.localStorage.removeItem("__test__localStorage__"); | ||
if (_value === result) return !0; | ||
} | ||
} catch (err) {} | ||
return !1; | ||
}); | ||
}; | ||
__webpack_exports__.a = function(obj, source) { | ||
if (!source) return obj; | ||
if (Object.assign) return Object.assign(obj, source); | ||
for (var _key2 in source) source.hasOwnProperty(_key2) && (obj[_key2] = source[_key2]); | ||
return obj; | ||
}; | ||
__webpack_exports__.g = function(str, regex, handler) { | ||
var results = []; | ||
str.replace(regex, function() { | ||
results.push(handler.apply(null, arguments)); | ||
}); | ||
return results; | ||
}; | ||
__webpack_exports__.j = function(svg) { | ||
return "data:image/svg+xml;base64," + base64encode(svg); | ||
}; | ||
__webpack_exports__.h = function(text, regex) { | ||
var result = []; | ||
text.replace(regex, function(token) { | ||
result.push(token); | ||
return ""; | ||
}); | ||
return result; | ||
}; | ||
__webpack_exports__.f = function(method) { | ||
var delay = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 50, promise = void 0, timeout = void 0; | ||
return function() { | ||
timeout && clearTimeout(timeout); | ||
var localPromise = promise = promise || new __WEBPACK_IMPORTED_MODULE_0_zalgo_promise_src__.a(); | ||
timeout = setTimeout(function() { | ||
promise = null; | ||
timeout = null; | ||
__WEBPACK_IMPORTED_MODULE_0_zalgo_promise_src__.a.try(method).then(function(result) { | ||
return localPromise.resolve(result); | ||
}, function(err) { | ||
return localPromise.reject(err); | ||
}); | ||
}, delay); | ||
return localPromise; | ||
}; | ||
}; | ||
__webpack_exports__.i = function(method, time) { | ||
var timeout = void 0; | ||
!function loop() { | ||
timeout = setTimeout(function() { | ||
method(); | ||
loop(); | ||
}, time); | ||
}(); | ||
return { | ||
cancel: function() { | ||
clearTimeout(timeout); | ||
} | ||
}; | ||
}; | ||
var __WEBPACK_IMPORTED_MODULE_0_zalgo_promise_src__ = __webpack_require__("./node_modules/zalgo-promise/src/index.js"); | ||
function getGlobal() { | ||
if ("undefined" != typeof window) return window; | ||
if ("undefined" != typeof global) return global; | ||
throw new Error("No global found"); | ||
} | ||
function inlineMemoize(method, logic) { | ||
var args = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : []; | ||
method.__memoized__ || (method.__memoized__ = function(method) { | ||
var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; | ||
if (method.__memoized__) return method.__memoized__; | ||
var cache = {}; | ||
method.__memoized__ = function() { | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; | ||
if (method.__memoized__ && method.__memoized__.__calling__) throw new Error("Can not call memoized method recursively"); | ||
var key = void 0; | ||
try { | ||
key = JSON.stringify(Array.prototype.slice.call(arguments)); | ||
} catch (err) { | ||
throw new Error("Arguments not serializable -- can not be used to memoize"); | ||
} | ||
var cacheTime = options.time; | ||
cache[key] && cacheTime && Date.now() - cache[key].time < cacheTime && delete cache[key]; | ||
var glob = getGlobal(); | ||
glob.__CACHE_START_TIME__ && cache[key] && cache[key].time < glob.__CACHE_START_TIME__ && delete cache[key]; | ||
if (cache[key]) return cache[key].value; | ||
method.__memoized__.__calling__ = !0; | ||
var time = Date.now(), value = method.apply(this, arguments); | ||
method.__memoized__.__calling__ = !1; | ||
cache[key] = { | ||
time: time, | ||
value: value | ||
}; | ||
return cache[key].value; | ||
}; | ||
return method.__memoized__; | ||
}(logic)); | ||
return method.__memoized__.apply(method, args); | ||
} | ||
function base64encode(str) { | ||
return window.btoa(str); | ||
} | ||
}, | ||
"./node_modules/cross-domain-utils/src/index.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
__webpack_require__("./node_modules/cross-domain-utils/src/utils.js"); | ||
var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__("./node_modules/cross-domain-utils/src/types.js"); | ||
__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__types__); | ||
}, | ||
"./node_modules/cross-domain-utils/src/types.js": function(module, exports) {}, | ||
"./node_modules/cross-domain-utils/src/utils.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
}, | ||
"./node_modules/zalgo-promise/src/index.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
function utils_isPromise(item) { | ||
try { | ||
if (!item) return !1; | ||
if ("undefined" != typeof Promise && item instanceof Promise) return !0; | ||
if ("undefined" != typeof window && window.Window && item instanceof window.Window) return !1; | ||
if ("undefined" != typeof window && window.constructor && item instanceof window.constructor) return !1; | ||
var _toString = {}.toString; | ||
if (_toString) { | ||
var name = _toString.call(item); | ||
if ("[object Window]" === name || "[object global]" === name || "[object DOMWindow]" === name) return !1; | ||
} | ||
if ("function" == typeof item.then) return !0; | ||
} catch (err) { | ||
return !1; | ||
} | ||
return !1; | ||
} | ||
function getGlobal() { | ||
var glob = void 0; | ||
if ("undefined" != typeof window) glob = window; else { | ||
if ("undefined" == typeof global) throw new TypeError("Can not find global"); | ||
glob = global; | ||
} | ||
var zalgoGlobal = glob.__zalgopromise__ = glob.__zalgopromise__ || {}; | ||
zalgoGlobal.flushPromises = zalgoGlobal.flushPromises || []; | ||
zalgoGlobal.activeCount = zalgoGlobal.activeCount || 0; | ||
zalgoGlobal.possiblyUnhandledPromiseHandlers = zalgoGlobal.possiblyUnhandledPromiseHandlers || []; | ||
zalgoGlobal.dispatchedErrors = zalgoGlobal.dispatchedErrors || []; | ||
return zalgoGlobal; | ||
} | ||
var promise_ZalgoPromise = function() { | ||
function ZalgoPromise(handler) { | ||
var _this = this; | ||
!function(instance, Constructor) { | ||
if (!(instance instanceof ZalgoPromise)) throw new TypeError("Cannot call a class as a function"); | ||
}(this); | ||
this.resolved = !1; | ||
this.rejected = !1; | ||
this.errorHandled = !1; | ||
this.handlers = []; | ||
if (handler) { | ||
var _result = void 0, _error = void 0, resolved = !1, rejected = !1, isAsync = !1; | ||
try { | ||
handler(function(res) { | ||
if (isAsync) _this.resolve(res); else { | ||
resolved = !0; | ||
_result = res; | ||
} | ||
}, function(err) { | ||
if (isAsync) _this.reject(err); else { | ||
rejected = !0; | ||
_error = err; | ||
} | ||
}); | ||
} catch (err) { | ||
this.reject(err); | ||
return; | ||
} | ||
isAsync = !0; | ||
resolved ? this.resolve(_result) : rejected && this.reject(_error); | ||
} | ||
} | ||
ZalgoPromise.prototype.resolve = function(result) { | ||
if (this.resolved || this.rejected) return this; | ||
if (utils_isPromise(result)) throw new Error("Can not resolve promise with another promise"); | ||
this.resolved = !0; | ||
this.value = result; | ||
this.dispatch(); | ||
return this; | ||
}; | ||
ZalgoPromise.prototype.reject = function(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) { | ||
var _err = error && "function" == typeof error.toString ? error.toString() : Object.prototype.toString.call(error); | ||
error = new Error("Expected reject to be called with Error, got " + _err); | ||
} | ||
this.rejected = !0; | ||
this.error = error; | ||
this.errorHandled || setTimeout(function() { | ||
_this2.errorHandled || function(err) { | ||
if (-1 === getGlobal().dispatchedErrors.indexOf(err)) { | ||
getGlobal().dispatchedErrors.push(err); | ||
setTimeout(function() { | ||
throw err; | ||
}, 1); | ||
for (var j = 0; j < getGlobal().possiblyUnhandledPromiseHandlers.length; j++) getGlobal().possiblyUnhandledPromiseHandlers[j](err); | ||
} | ||
}(error); | ||
}, 1); | ||
this.dispatch(); | ||
return this; | ||
}; | ||
ZalgoPromise.prototype.asyncReject = function(error) { | ||
this.errorHandled = !0; | ||
this.reject(error); | ||
}; | ||
ZalgoPromise.prototype.dispatch = function() { | ||
var _this3 = this, dispatching = this.dispatching, resolved = this.resolved, rejected = this.rejected, handlers = this.handlers; | ||
if (!dispatching && (resolved || rejected)) { | ||
this.dispatching = !0; | ||
getGlobal().activeCount += 1; | ||
for (var _loop = function(i) { | ||
var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise, result = void 0; | ||
if (resolved) try { | ||
result = onSuccess ? onSuccess(_this3.value) : _this3.value; | ||
} catch (err) { | ||
promise.reject(err); | ||
return "continue"; | ||
} else if (rejected) { | ||
if (!onError) { | ||
promise.reject(_this3.error); | ||
return "continue"; | ||
} | ||
try { | ||
result = onError(_this3.error); | ||
} catch (err) { | ||
promise.reject(err); | ||
return "continue"; | ||
} | ||
} | ||
if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) { | ||
result.resolved ? promise.resolve(result.value) : promise.reject(result.error); | ||
result.errorHandled = !0; | ||
} else utils_isPromise(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function(res) { | ||
promise.resolve(res); | ||
}, function(err) { | ||
promise.reject(err); | ||
}) : promise.resolve(result); | ||
}, i = 0; i < handlers.length; i++) _loop(i); | ||
handlers.length = 0; | ||
this.dispatching = !1; | ||
getGlobal().activeCount -= 1; | ||
0 === getGlobal().activeCount && ZalgoPromise.flushQueue(); | ||
} | ||
}; | ||
ZalgoPromise.prototype.then = function(onSuccess, onError) { | ||
if (onSuccess && "function" != typeof onSuccess && !onSuccess.call) throw new Error("Promise.then expected a function for success handler"); | ||
if (onError && "function" != typeof onError && !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 = !0; | ||
this.dispatch(); | ||
return promise; | ||
}; | ||
ZalgoPromise.prototype.catch = function(onError) { | ||
return this.then(void 0, onError); | ||
}; | ||
ZalgoPromise.prototype.finally = function(handler) { | ||
return this.then(function(result) { | ||
return ZalgoPromise.try(handler).then(function() { | ||
return result; | ||
}); | ||
}, function(err) { | ||
return ZalgoPromise.try(handler).then(function() { | ||
throw err; | ||
}); | ||
}); | ||
}; | ||
ZalgoPromise.prototype.timeout = function(time, err) { | ||
var _this4 = this; | ||
if (this.resolved || this.rejected) return this; | ||
var timeout = setTimeout(function() { | ||
_this4.resolved || _this4.rejected || _this4.reject(err || new Error("Promise timed out after " + time + "ms")); | ||
}, time); | ||
return this.then(function(result) { | ||
clearTimeout(timeout); | ||
return result; | ||
}); | ||
}; | ||
ZalgoPromise.prototype.toPromise = function() { | ||
if ("undefined" == typeof Promise) throw new TypeError("Could not find Promise"); | ||
return Promise.resolve(this); | ||
}; | ||
ZalgoPromise.resolve = function(value) { | ||
return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise(function(resolve, reject) { | ||
return value.then(resolve, reject); | ||
}) : new ZalgoPromise().resolve(value); | ||
}; | ||
ZalgoPromise.reject = function(error) { | ||
return new ZalgoPromise().reject(error); | ||
}; | ||
ZalgoPromise.all = function(promises) { | ||
var promise = new ZalgoPromise(), count = promises.length, results = []; | ||
if (!count) { | ||
promise.resolve(results); | ||
return promise; | ||
} | ||
for (var _loop2 = function(i) { | ||
var prom = promises[i]; | ||
if (prom instanceof ZalgoPromise) { | ||
if (prom.resolved) { | ||
results[i] = prom.value; | ||
count -= 1; | ||
return "continue"; | ||
} | ||
} else if (!utils_isPromise(prom)) { | ||
results[i] = prom; | ||
count -= 1; | ||
return "continue"; | ||
} | ||
ZalgoPromise.resolve(prom).then(function(result) { | ||
results[i] = result; | ||
0 == (count -= 1) && promise.resolve(results); | ||
}, function(err) { | ||
promise.reject(err); | ||
}); | ||
}, i = 0; i < promises.length; i++) _loop2(i); | ||
0 === count && promise.resolve(results); | ||
return promise; | ||
}; | ||
ZalgoPromise.hash = function(promises) { | ||
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(items, method) { | ||
return ZalgoPromise.all(items.map(method)); | ||
}; | ||
ZalgoPromise.onPossiblyUnhandledException = function(handler) { | ||
return function(handler) { | ||
getGlobal().possiblyUnhandledPromiseHandlers.push(handler); | ||
return { | ||
cancel: function() { | ||
getGlobal().possiblyUnhandledPromiseHandlers.splice(getGlobal().possiblyUnhandledPromiseHandlers.indexOf(handler), 1); | ||
} | ||
}; | ||
}(handler); | ||
}; | ||
ZalgoPromise.try = function(method, context, args) { | ||
var result = void 0; | ||
try { | ||
result = method.apply(context, args || []); | ||
} catch (err) { | ||
return ZalgoPromise.reject(err); | ||
} | ||
return ZalgoPromise.resolve(result); | ||
}; | ||
ZalgoPromise.delay = function(_delay) { | ||
return new ZalgoPromise(function(resolve) { | ||
setTimeout(resolve, _delay); | ||
}); | ||
}; | ||
ZalgoPromise.isPromise = function(value) { | ||
return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value); | ||
}; | ||
ZalgoPromise.flush = function() { | ||
var promise = new ZalgoPromise(); | ||
getGlobal().flushPromises.push(promise); | ||
0 === getGlobal().activeCount && ZalgoPromise.flushQueue(); | ||
return promise; | ||
}; | ||
ZalgoPromise.flushQueue = function() { | ||
var promisesToFlush = getGlobal().flushPromises; | ||
getGlobal().flushPromises = []; | ||
for (var _i2 = 0, _length2 = null == promisesToFlush ? 0 : promisesToFlush.length; _i2 < _length2; _i2++) promisesToFlush[_i2].resolve(); | ||
}; | ||
return ZalgoPromise; | ||
}(); | ||
__webpack_require__.d(__webpack_exports__, "a", function() { | ||
return promise_ZalgoPromise; | ||
}); | ||
}, | ||
"./src/index.js": function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(__webpack_exports__, "__esModule", { | ||
value: !0 | ||
}); | ||
var src = __webpack_require__("./node_modules/zalgo-promise/src/index.js"), belter_src = __webpack_require__("./node_modules/belter/src/index.js"), LOG_LEVEL = { | ||
DEBUG: "debug", | ||
INFO: "info", | ||
WARN: "warn", | ||
ERROR: "error" | ||
}, AUTO_FLUSH_LEVEL = [ LOG_LEVEL.WARN, LOG_LEVEL.ERROR ], LOG_LEVEL_PRIORITY = [ LOG_LEVEL.ERROR, LOG_LEVEL.WARN, LOG_LEVEL.INFO, LOG_LEVEL.DEBUG ], FLUSH_INTERVAL = 6e4, DEFAULT_LOG_LEVEL = LOG_LEVEL.WARN, _extends = Object.assign || function(target) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i]; | ||
for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]); | ||
} | ||
return target; | ||
}; | ||
function httpTransport(_ref) { | ||
var url = _ref.url, method = _ref.method, headers = _ref.headers, json = _ref.json; | ||
return Object(belter_src.request)({ | ||
url: url, | ||
method: method, | ||
headers: headers, | ||
json: json | ||
}).then(belter_src.noop); | ||
} | ||
function Logger(_ref2) { | ||
var url = _ref2.url, prefix = _ref2.prefix, _ref2$logLevel = _ref2.logLevel, logLevel = void 0 === _ref2$logLevel ? DEFAULT_LOG_LEVEL : _ref2$logLevel, _ref2$transport = _ref2.transport, transport = void 0 === _ref2$transport ? httpTransport : _ref2$transport, _ref2$flushInterval = _ref2.flushInterval, flushInterval = void 0 === _ref2$flushInterval ? FLUSH_INTERVAL : _ref2$flushInterval, events = [], tracking = [], payloadBuilders = [], metaBuilders = [], trackingBuilders = [], headerBuilders = []; | ||
function print(level, event, payload) { | ||
if (Object(belter_src.isBrowser)() && window.console && window.console.log) { | ||
var consoleLogLevel = logLevel; | ||
window.LOG_LEVEL && -1 !== LOG_LEVEL_PRIORITY.indexOf(window.LOG_LEVEL) && (consoleLogLevel = window.LOG_LEVEL); | ||
if (!(LOG_LEVEL_PRIORITY.indexOf(level) > LOG_LEVEL_PRIORITY.indexOf(consoleLogLevel))) { | ||
var args = [ event ]; | ||
args.push(payload); | ||
(payload.error || payload.warning) && args.push("\n\n", payload.error || payload.warning); | ||
try { | ||
window.console[level] && window.console[level].apply ? window.console[level].apply(window.console, args) : window.console.log && window.console.log.apply && window.console.log.apply(window.console, args); | ||
} catch (err) {} | ||
} | ||
} | ||
} | ||
function immediateFlush() { | ||
return src.a.try(function() { | ||
if (Object(belter_src.isBrowser)() && (events.length || tracking.length)) { | ||
for (var meta = {}, _i2 = 0, _length2 = null == metaBuilders ? 0 : metaBuilders.length; _i2 < _length2; _i2++) { | ||
var builder = metaBuilders[_i2]; | ||
Object(belter_src.extend)(meta, builder(meta)); | ||
} | ||
for (var headers = {}, _i4 = 0, _length4 = null == headerBuilders ? 0 : headerBuilders.length; _i4 < _length4; _i4++) { | ||
var _builder = headerBuilders[_i4]; | ||
Object(belter_src.extend)(headers, _builder(headers)); | ||
} | ||
var req = transport({ | ||
method: "POST", | ||
url: url, | ||
headers: headers, | ||
json: { | ||
events: events, | ||
meta: meta, | ||
tracking: tracking | ||
} | ||
}); | ||
events = []; | ||
tracking = []; | ||
return req.then(belter_src.noop); | ||
} | ||
}); | ||
} | ||
var flush = Object(belter_src.promiseDebounce)(immediateFlush); | ||
function log(level, event) { | ||
var payload = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; | ||
if (Object(belter_src.isBrowser)()) { | ||
prefix && (event = prefix + "_" + event); | ||
payload = _extends({}, payload, { | ||
timestamp: Date.now().toString() | ||
}); | ||
for (var _i6 = 0, _length6 = null == payloadBuilders ? 0 : payloadBuilders.length; _i6 < _length6; _i6++) { | ||
var builder = payloadBuilders[_i6]; | ||
Object(belter_src.extend)(payload, builder(payload)); | ||
} | ||
!function(level, event, payload) { | ||
events.push({ | ||
level: level, | ||
event: event, | ||
payload: payload | ||
}); | ||
-1 !== AUTO_FLUSH_LEVEL.indexOf(level) && flush(); | ||
}(level, event, payload); | ||
print(level, event, payload); | ||
} | ||
} | ||
Object(belter_src.safeInterval)(flush, flushInterval); | ||
return { | ||
debug: function(event, payload) { | ||
log(LOG_LEVEL.DEBUG, event, payload); | ||
}, | ||
info: function(event, payload) { | ||
log(LOG_LEVEL.INFO, event, payload); | ||
}, | ||
warn: function(event, payload) { | ||
log(LOG_LEVEL.WARN, event, payload); | ||
}, | ||
error: function(event, payload) { | ||
log(LOG_LEVEL.ERROR, event, payload); | ||
}, | ||
track: function() { | ||
var payload = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; | ||
if (Object(belter_src.isBrowser)()) { | ||
for (var _i8 = 0, _length8 = null == trackingBuilders ? 0 : trackingBuilders.length; _i8 < _length8; _i8++) { | ||
var builder = trackingBuilders[_i8]; | ||
Object(belter_src.extend)(payload, builder(payload)); | ||
} | ||
print(LOG_LEVEL.DEBUG, "track", payload); | ||
tracking.push(payload); | ||
} | ||
}, | ||
flush: flush, | ||
immediateFlush: immediateFlush, | ||
addPayloadBuilder: function(builder) { | ||
payloadBuilders.push(builder); | ||
}, | ||
addMetaBuilder: function(builder) { | ||
metaBuilders.push(builder); | ||
}, | ||
addTrackingBuilder: function(builder) { | ||
trackingBuilders.push(builder); | ||
}, | ||
addHeaderBuilder: function(builder) { | ||
headerBuilders.push(builder); | ||
}, | ||
setTransport: function(newTransport) { | ||
transport = newTransport; | ||
} | ||
}; | ||
} | ||
__webpack_require__.d(__webpack_exports__, "Logger", function() { | ||
return Logger; | ||
}); | ||
__webpack_require__.d(__webpack_exports__, "LOG_LEVEL", function() { | ||
return LOG_LEVEL; | ||
}); | ||
} | ||
}); | ||
}); | ||
; | ||
//# sourceMappingURL=beaver-logger.js.map | ||
//# sourceMappingURL=beaver-logger.js.map |
@@ -1,1 +0,3 @@ | ||
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("$logger",[],n):"object"==typeof exports?exports.$logger=n():e.$logger=n()}(this,function(){return function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}([function(e,n,t){"use strict";function r(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}Object.defineProperty(n,"__esModule",{value:!0});var o=t(1);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return o[e]}})});var i=r(o);n.default=i},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=t(2);Object.keys(r).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return r[e]}})});var o=t(11);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return o[e]}})});var i=t(13);Object.keys(i).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return i[e]}})});var a=t(9);Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return a[e]}})});var u=t(10);Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(n,e,{enumerable:!0,get:function(){return u[e]}})})},function(e,n,t){"use strict";function r(){return b}function o(e){b=e}function i(e,n,t){if("undefined"!=typeof window&&window.console&&window.console.log){if(!_)return setTimeout(function(){return i(e,n,t)},1);var r=m.config.logLevel;if(window.LOG_LEVEL&&(r=window.LOG_LEVEL),!(m.logLevels.indexOf(e)>m.logLevels.indexOf(r))){t=t||{};var o=[n];(0,p.isIE)()&&(t=JSON.stringify(t)),o.push(t),(t.error||t.warning)&&o.push("\n\n",t.error||t.warning);try{window.console[e]&&window.console[e].apply?window.console[e].apply(window.console,o):window.console.log&&window.console.log.apply&&window.console.log.apply(window.console,o)}catch(e){}}}}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.fireAndForget,r=void 0!==t&&t;if("undefined"!=typeof window&&m.config.uri){var o=w.length,i=y.length;if(o||i){for(var a={},u=g.metaBuilders,c=Array.isArray(u),s=0,u=c?u:u[Symbol.iterator]();;){var l;if(c){if(s>=u.length)break;l=u[s++]}else{if(s=u.next(),s.done)break;l=s.value}var f=l;try{(0,p.extend)(a,f(a),!1)}catch(e){console.error("Error in custom meta builder:",e.stack||e.toString())}}for(var d={},v=g.headerBuilders,h=Array.isArray(v),_=0,v=h?v:v[Symbol.iterator]();;){var P;if(h){if(_>=v.length)break;P=v[_++]}else{if(_=v.next(),_.done)break;P=_.value}var j=P;try{(0,p.extend)(d,j(d),!1)}catch(e){console.error("Error in custom header builder:",e.stack||e.toString())}}var E=w,k=b(d,{events:E,meta:a,tracking:y},{fireAndForget:r});return n.buffer=w=[],n.tracking=y=[],k}}}function u(e,n,t){w.push({level:e,event:n,payload:t}),m.config.autoLog.indexOf(e)>-1&&P()}function c(e,n,t){if("undefined"!=typeof window){m.config.prefix&&(n=m.config.prefix+"_"+n),t=t||{},"string"==typeof t?t={message:t}:t instanceof Error&&(t={error:t.stack||t.toString()});try{JSON.stringify(t)}catch(e){return}t.timestamp=Date.now();for(var r=g.payloadBuilders,o=Array.isArray(r),a=0,r=o?r:r[Symbol.iterator]();;){var c;if(o){if(a>=r.length)break;c=r[a++]}else{if(a=r.next(),a.done)break;c=a.value}var s=c;try{(0,p.extend)(t,s(t),!1)}catch(e){console.error("Error in custom payload builder:",e.stack||e.toString())}}m.config.silent||i(e,n,t),w.length===m.config.sizeLimit?u("info","logger_max_buffer_length"):w.length<m.config.sizeLimit&&u(e,n,t)}}function s(e){return{debug:function(n,t){return c("debug",e+"_"+n,t)},info:function(n,t){return c("info",e+"_"+n,t)},warn:function(n,t){return c("warn",e+"_"+n,t)},error:function(n,t){return c("error",e+"_"+n,t)},track:function(e){return h(e)},flush:function(){return P()}}}function l(e,n){return c("debug",e,n)}function f(e,n){return c("info",e,n)}function d(e,n){return c("warn",e,n)}function v(e,n){return c("error",e,n)}function h(e){if("undefined"!=typeof window&&e){try{JSON.stringify(e)}catch(e){return}for(var n=g.trackingBuilders,t=Array.isArray(n),r=0,n=t?n:n[Symbol.iterator]();;){var o;if(t){if(r>=n.length)break;o=n[r++]}else{if(r=n.next(),r.done)break;o=r.value}var a=o;try{(0,p.extend)(e,a(e),!1)}catch(e){console.error("Error in custom tracking builder:",e.stack||e.toString())}}i("debug","tracking",e),y.push(e)}}Object.defineProperty(n,"__esModule",{value:!0}),n.track=n.flush=n.tracking=n.buffer=void 0,n.getTransport=r,n.setTransport=o,n.print=i,n.immediateFlush=a,n.log=c,n.prefix=s,n.debug=l,n.info=f,n.warn=d,n.error=v;var p=t(3),g=t(9),m=t(10),w=n.buffer=[],y=n.tracking=[],b=function(e,n,t){return(0,p.ajax)("post",m.config.uri,e,n,t)},_=!1;setTimeout(function(){_=!0},1);var P=(0,p.promiseDebounce)(a,m.config.debounceInterval);n.flush=P,n.track=h},function(e,n,t){"use strict";function r(e,n){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=e||{},n=n||{};for(var r in n)n.hasOwnProperty(r)&&(!t&&e.hasOwnProperty(r)||(e[r]=n[r]));return e}function o(e){return window.location.protocol===e.split("/")[0]}function i(e){var n=e.match(/https?:\/\/[^\/]+/);return!n||n[0]===window.location.protocol+"//"+window.location.host}function a(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},u=a.fireAndForget,c=void 0!==u&&u;return new d.ZalgoPromise(function(a){var u=window.XMLHttpRequest||window.ActiveXObject;if(window.XDomainRequest&&!i(n)){if(!o(n))return a();u=window.XDomainRequest}var s=new u("MSXML2.XMLHTTP.3.0");if(s.open(e.toUpperCase(),n,!0),"function"==typeof s.setRequestHeader){s.setRequestHeader("X-Requested-With","XMLHttpRequest"),s.setRequestHeader("Content-type","application/json");for(var l in t)t.hasOwnProperty(l)&&s.setRequestHeader(l,t[l])}c?a():s.onreadystatechange=function(){s.readyState>3&&a()},s.send(JSON.stringify(r).replace(/&/g,"%26"))})}function u(e,n){var t={};return function(){var r=arguments;return t.timeout&&(clearTimeout(t.timeout),delete t.timeout),t.timeout=setTimeout(function(){var n=t.resolver,o=t.rejector;return delete t.promise,delete t.resolver,delete t.rejector,delete t.timeout,d.ZalgoPromise.resolve().then(function(){return e.apply(null,r)}).then(n,o)},n),t.promise=t.promise||new d.ZalgoPromise(function(e,n){t.resolver=e,t.rejector=n}),t.promise}}function c(){return new d.ZalgoPromise(function(e){"undefined"!=typeof document&&"complete"===document.readyState&&e(),window.addEventListener("load",e)})}function s(e,n){function t(){r=setTimeout(function(){e(),t()},n)}var r=void 0;return t(),{cancel:function(){clearTimeout(r)}}}function l(){var e="0123456789abcdef";return"xxxxxxxxxx".replace(/./g,function(){return e.charAt(Math.floor(Math.random()*e.length))})}function f(){return Boolean(window.document.documentMode)}Object.defineProperty(n,"__esModule",{value:!0}),n.extend=r,n.isSameProtocol=o,n.isSameDomain=i,n.ajax=a,n.promiseDebounce=u,n.onWindowReady=c,n.safeInterval=s,n.uniqueID=l,n.isIE=f;var d=t(4)},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=t(5);Object.defineProperty(n,"ZalgoPromise",{enumerable:!0,get:function(){return r.ZalgoPromise}})},function(e,n,t){"use strict";function r(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.ZalgoPromise=void 0;var o=function(){function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}(),i=t(6),a=t(7),u=t(8),c=function(){function e(n){var t=this;if(r(this,e),this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],n){var o=void 0,i=void 0,a=!1,u=!1,c=!1;try{n(function(e){c?t.resolve(e):(a=!0,o=e)},function(e){c?t.reject(e):(u=!0,i=e)})}catch(e){return void this.reject(e)}c=!0,a?this.resolve(o):u&&this.reject(i)}}return o(e,[{key:"resolve",value:function(e){if(this.resolved||this.rejected)return this;if((0,i.isPromise)(e))throw new Error("Can not resolve promise with another promise");return this.resolved=!0,this.value=e,this.dispatch(),this}},{key:"reject",value:function(e){var n=this;if(this.resolved||this.rejected)return this;if((0,i.isPromise)(e))throw new Error("Can not reject promise with another promise");if(!e){var t=e&&"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e);e=new Error("Expected reject to be called with Error, got "+t)}return this.rejected=!0,this.error=e,this.errorHandled||setTimeout(function(){n.errorHandled||(0,a.dispatchPossiblyUnhandledError)(e)},1),this.dispatch(),this}},{key:"asyncReject",value:function(e){this.errorHandled=!0,this.reject(e)}},{key:"dispatch",value:function(){var n=this,t=this.dispatching,r=this.resolved,o=this.rejected,a=this.handlers;if(!t&&(r||o)){this.dispatching=!0,(0,u.getGlobal)().activeCount+=1;for(var c=function(t){var u=a[t],c=u.onSuccess,s=u.onError,l=u.promise,f=void 0;if(r)try{f=c?c(n.value):n.value}catch(e){return l.reject(e),"continue"}else if(o){if(!s)return l.reject(n.error),"continue";try{f=s(n.error)}catch(e){return l.reject(e),"continue"}}f instanceof e&&(f.resolved||f.rejected)?(f.resolved?l.resolve(f.value):l.reject(f.error),f.errorHandled=!0):(0,i.isPromise)(f)?f instanceof e&&(f.resolved||f.rejected)?f.resolved?l.resolve(f.value):l.reject(f.error):f.then(function(e){l.resolve(e)},function(e){l.reject(e)}):l.resolve(f)},s=0;s<a.length;s++){c(s)}a.length=0,this.dispatching=!1,(0,u.getGlobal)().activeCount-=1,0===(0,u.getGlobal)().activeCount&&e.flushQueue()}}},{key:"then",value:function(n,t){if(n&&"function"!=typeof n&&!n.call)throw new Error("Promise.then expected a function for success handler");if(t&&"function"!=typeof t&&!t.call)throw new Error("Promise.then expected a function for error handler");var r=new e;return this.handlers.push({promise:r,onSuccess:n,onError:t}),this.errorHandled=!0,this.dispatch(),r}},{key:"catch",value:function(e){return this.then(void 0,e)}},{key:"finally",value:function(n){return this.then(function(t){return e.try(n).then(function(){return t})},function(t){return e.try(n).then(function(){throw t})})}},{key:"timeout",value:function e(n,t){var r=this;if(this.resolved||this.rejected)return this;var e=setTimeout(function(){r.resolved||r.rejected||r.reject(t||new Error("Promise timed out after "+n+"ms"))},n);return this.then(function(n){return clearTimeout(e),n})}},{key:"toPromise",value:function(){if("undefined"==typeof Promise)throw new TypeError("Could not find Promise");return Promise.resolve(this)}}],[{key:"resolve",value:function(n){return n instanceof e?n:(0,i.isPromise)(n)?new e(function(e,t){return n.then(e,t)}):(new e).resolve(n)}},{key:"reject",value:function(n){return(new e).reject(n)}},{key:"all",value:function(n){var t=new e,r=n.length,o=[];if(!r)return t.resolve(o),t;for(var a=function(a){var u=n[a];if(u instanceof e){if(u.resolved)return o[a]=u.value,r-=1,"continue"}else if(!(0,i.isPromise)(u))return o[a]=u,r-=1,"continue";e.resolve(u).then(function(e){o[a]=e,r-=1,0===r&&t.resolve(o)},function(e){t.reject(e)})},u=0;u<n.length;u++){a(u)}return 0===r&&t.resolve(o),t}},{key:"hash",value:function(n){var t={};return e.all(Object.keys(n).map(function(r){return e.resolve(n[r]).then(function(e){t[r]=e})})).then(function(){return t})}},{key:"map",value:function(n,t){return e.all(n.map(t))}},{key:"onPossiblyUnhandledException",value:function(e){return(0,a.onPossiblyUnhandledException)(e)}},{key:"try",value:function(n,t,r){var o=void 0;try{o=n.apply(t,r||[])}catch(n){return e.reject(n)}return e.resolve(o)}},{key:"delay",value:function(n){return new e(function(e){setTimeout(e,n)})}},{key:"isPromise",value:function(n){return!!(n&&n instanceof e)||(0,i.isPromise)(n)}},{key:"flush",value:function(){var n=new e;return(0,u.getGlobal)().flushPromises.push(n),0===(0,u.getGlobal)().activeCount&&e.flushQueue(),n}},{key:"flushQueue",value:function(){var e=(0,u.getGlobal)().flushPromises;(0,u.getGlobal)().flushPromises=[];for(var n=e,t=Array.isArray(n),r=0,n=t?n:n[Symbol.iterator]();;){var o;if(t){if(r>=n.length)break;o=n[r++]}else{if(r=n.next(),r.done)break;o=r.value}var i=o;i.resolve()}}}]),e}();n.ZalgoPromise=c},function(e,n){"use strict";function t(e){try{if(!e)return!1;if("undefined"!=typeof Promise&&e instanceof Promise)return!0;if("undefined"!=typeof window&&window.Window&&e instanceof window.Window)return!1;if("undefined"!=typeof window&&window.constructor&&e instanceof window.constructor)return!1;var n={}.toString;if(n){var t=n.call(e);if("[object Window]"===t||"[object global]"===t||"[object DOMWindow]"===t)return!1}if("function"==typeof e.then)return!0}catch(e){return!1}return!1}Object.defineProperty(n,"__esModule",{value:!0}),n.isPromise=t},function(e,n,t){"use strict";function r(e){if((0,i.getGlobal)().dispatchedErrors.indexOf(e)===-1){(0,i.getGlobal)().dispatchedErrors.push(e),setTimeout(function(){throw e},1);for(var n=0;n<(0,i.getGlobal)().possiblyUnhandledPromiseHandlers.length;n++)(0,i.getGlobal)().possiblyUnhandledPromiseHandlers[n](e)}}function o(e){return(0,i.getGlobal)().possiblyUnhandledPromiseHandlers.push(e),{cancel:function(){(0,i.getGlobal)().possiblyUnhandledPromiseHandlers.splice((0,i.getGlobal)().possiblyUnhandledPromiseHandlers.indexOf(e),1)}}}Object.defineProperty(n,"__esModule",{value:!0}),n.dispatchPossiblyUnhandledError=r,n.onPossiblyUnhandledException=o;var i=t(8)},function(e,n){(function(e){"use strict";function t(){var n=void 0;if("undefined"!=typeof window)n=window;else{if("undefined"==typeof e)throw new TypeError("Can not find global");n=e}var t=n.__zalgopromise__=n.__zalgopromise__||{};return t.flushPromises=t.flushPromises||[],t.activeCount=t.activeCount||0,t.possiblyUnhandledPromiseHandlers=t.possiblyUnhandledPromiseHandlers||[],t.dispatchedErrors=t.dispatchedErrors||[],t}Object.defineProperty(n,"__esModule",{value:!0}),n.getGlobal=t}).call(n,function(){return this}())},function(e,n){"use strict";function t(e){a.push(e)}function r(e){u.push(e)}function o(e){c.push(e)}function i(e){s.push(e)}Object.defineProperty(n,"__esModule",{value:!0}),n.addPayloadBuilder=t,n.addMetaBuilder=r,n.addTrackingBuilder=o,n.addHeaderBuilder=i;var a=n.payloadBuilders=[],u=n.metaBuilders=[],c=n.trackingBuilders=[],s=n.headerBuilders=[]},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.config={uri:"",prefix:"",initial_state_name:"init",flushInterval:6e5,debounceInterval:10,sizeLimit:300,silent:!1,heartbeat:!0,heartbeatConsoleLog:!0,heartbeatInterval:5e3,heartbeatTooBusy:!1,heartbeatTooBusyThreshold:1e4,logLevel:"warn",autoLog:["warn","error"],logUnload:!0,logPerformance:!0},n.logLevels=["error","warn","info","debug"]},function(e,n,t){"use strict";function r(e){(0,i.extend)(o.config,e||{}),c||(c=!0,o.config.logPerformance&&(0,a.initPerformance)(),o.config.heartbeat&&(0,a.initHeartBeat)(),o.config.logUnload&&(window.addEventListener("beforeunload",function(){(0,u.info)("window_beforeunload"),(0,u.immediateFlush)({fireAndForget:!0})}),window.addEventListener("unload",function(){(0,u.info)("window_unload"),(0,u.immediateFlush)({fireAndForget:!0})})),o.config.flushInterval&&setInterval(u.flush,o.config.flushInterval),window.beaverLogQueue&&(window.beaverLogQueue.forEach(function(e){(0,u.log)(e.level,e.event,e)}),delete window.beaverLogQueue))}Object.defineProperty(n,"__esModule",{value:!0}),n.init=r;var o=t(10),i=t(3),a=t(12),u=t(2),c=!1},function(e,n,t){"use strict";function r(){return d?performance.now():Date.now()}function o(e){return e=void 0!==e?e:r(),{startTime:e,elapsed:function(){return parseInt(r()-e,10)},reset:function(){e=r()}}}function i(){if(d){var e=window.performance.timing;return parseInt(e.connectEnd-e.navigationStart,10)}}function a(){var e=o(),n=0;(0,f.safeInterval)(function(){if(!(c.config.heartbeatMaxThreshold&&n>c.config.heartbeatMaxThreshold)){n+=1;var t=e.elapsed(),r=t-c.config.heartbeatInterval,o={count:n,elapsed:t};c.config.heartbeatTooBusy&&(o.lag=r,r>=c.config.heartbeatTooBusyThreshold&&(0,s.info)("toobusy",o,{noConsole:!c.config.heartbeatConsoleLog})),(0,s.info)("heartbeat",o,{noConsole:!c.config.heartbeatConsoleLog})}},c.config.heartbeatInterval)}function u(){return d?((0,l.addPayloadBuilder)(function(){var e={};return e.client_elapsed=v.elapsed(),d&&(e.req_elapsed=h.elapsed()),e}),void(0,f.onWindowReady)().then(function(){var e=["connectEnd","connectStart","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domainLookupEnd","domainLookupStart","fetchStart","loadEventEnd","loadEventStart","navigationStart","redirectEnd","redirectStart","requestStart","responseEnd","responseStart","secureConnectionStart","unloadEventEnd","unloadEventStart"],n={};e.forEach(function(e){n[e]=parseInt(window.performance.timing[e],10)||0});var t=n.connectEnd-n.navigationStart;n.connectEnd&&Object.keys(n).forEach(function(e){var r=n[e];r&&(0,s.info)("timing_"+e,{client_elapsed:parseInt(r-n.connectEnd-(v.startTime-t),10),req_elapsed:parseInt(r-n.connectEnd,10)})}),(0,s.info)("timing",n),(0,s.info)("memory",window.performance.memory),(0,s.info)("navigation",window.performance.navigation),window.performance.getEntries&&window.performance.getEntries().forEach(function(e){["link","script","img","css"].indexOf(e.initiatorType)>-1&&(0,s.info)(e.initiatorType,e)})})):(0,s.info)("no_performance_data")}Object.defineProperty(n,"__esModule",{value:!0}),n.reqTimer=n.clientTimer=void 0,n.now=r,n.reqStartElapsed=i,n.initHeartBeat=a,n.initPerformance=u;var c=t(10),s=t(2),l=t(9),f=t(3),d=window&&window.performance&&performance.now&&performance.timing&&performance.timing.connectEnd&&performance.timing.navigationStart&&Math.abs(performance.now()-Date.now())>1e3&&performance.now()-(performance.timing.connectEnd-performance.timing.navigationStart)>0,v=n.clientTimer=o(),h=n.reqTimer=o(i())},function(e,n,t){"use strict";function r(){h=(0,a.now)()}function o(e){h=h||(0,a.reqStartElapsed)();var n=(0,a.now)(),t=void 0;void 0!==h&&(t=parseInt(n-h,0));var r="transition_"+v+"_to_"+e;(0,u.info)(r,{duration:t}),(0,u.track)({transition:r,transition_time:t}),(0,u.immediateFlush)(),h=n,v=e,d=(0,s.uniqueID)()}function i(e){r(),o(e)}Object.defineProperty(n,"__esModule",{value:!0}),n.startTransition=r,n.endTransition=o,n.transition=i;var a=t(12),u=t(2),c=t(9),s=t(3),l=t(10),f=(0,s.uniqueID)(),d=(0,s.uniqueID)(),v=l.config.initial_state_name,h=void 0;(0,c.addPayloadBuilder)(function(){return{windowID:f,pageID:d}}),(0,c.addMetaBuilder)(function(){return{state:"ui_"+v}})}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("beaver",[],t):"object"==typeof exports?exports.beaver=t():e.beaver=t()}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=4)}([function(e,t,n){"use strict";t.b=o,t.c=i,t.e=function(){},t.k=function(){var e="0123456789abcdef";return"xxxxxxxxxx".replace(/./g,function(){return e.charAt(Math.floor(Math.random()*e.length))})+"_"+u((new Date).toISOString().slice(11,19).replace("T",".")).replace(/[^a-zA-Z0-9]/g,"").toLowerCase()},t.d=function e(){return i(e,function(){try{if("undefined"==typeof window)return!1;if(window.localStorage){var e=Math.random().toString();window.localStorage.setItem("__test__localStorage__",e);var t=window.localStorage.getItem("__test__localStorage__");if(window.localStorage.removeItem("__test__localStorage__"),e===t)return!0}}catch(e){}return!1})},t.a=function(e,t){if(!t)return e;if(Object.assign)return Object.assign(e,t);for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.g=function(e,t,n){var r=[];return e.replace(t,function(){r.push(n.apply(null,arguments))}),r},t.j=function(e){return"data:image/svg+xml;base64,"+u(e)},t.h=function(e,t){var n=[];return e.replace(t,function(e){return n.push(e),""}),n},t.f=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,n=void 0,o=void 0;return function(){o&&clearTimeout(o);var i=n=n||new r.a;return o=setTimeout(function(){n=null,o=null,r.a.try(e).then(function(e){return i.resolve(e)},function(e){return i.reject(e)})},t),i}},t.i=function(e,t){var n=void 0;return function r(){n=setTimeout(function(){e(),r()},t)}(),{cancel:function(){clearTimeout(n)}}};var r=n(1);function o(){if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("No global found")}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return e.__memoized__||(e.__memoized__=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.__memoized__)return e.__memoized__;var n={};return e.__memoized__=function(){for(var r=arguments.length,i=Array(r),u=0;u<r;u++)i[u]=arguments[u];if(e.__memoized__&&e.__memoized__.__calling__)throw new Error("Can not call memoized method recursively");var s=void 0;try{s=JSON.stringify(Array.prototype.slice.call(arguments))}catch(e){throw new Error("Arguments not serializable -- can not be used to memoize")}var c=t.time;n[s]&&c&&Date.now()-n[s].time<c&&delete n[s];var a=o();if(a.__CACHE_START_TIME__&&n[s]&&n[s].time<a.__CACHE_START_TIME__&&delete n[s],n[s])return n[s].value;e.__memoized__.__calling__=!0;var f=Date.now(),l=e.apply(this,arguments);return e.__memoized__.__calling__=!1,n[s]={time:f,value:l},n[s].value},e.__memoized__}(t)),e.__memoized__.apply(e,n)}function u(e){return window.btoa(e)}},function(e,t,n){"use strict";function r(e){try{if(!e)return!1;if("undefined"!=typeof Promise&&e instanceof Promise)return!0;if("undefined"!=typeof window&&window.Window&&e instanceof window.Window)return!1;if("undefined"!=typeof window&&window.constructor&&e instanceof window.constructor)return!1;var t={}.toString;if(t){var n=t.call(e);if("[object Window]"===n||"[object global]"===n||"[object DOMWindow]"===n)return!1}if("function"==typeof e.then)return!0}catch(e){return!1}return!1}function o(){var e=void 0;if("undefined"!=typeof window)e=window;else{if("undefined"==typeof global)throw new TypeError("Can not find global");e=global}var t=e.__zalgopromise__=e.__zalgopromise__||{};return t.flushPromises=t.flushPromises||[],t.activeCount=t.activeCount||0,t.possiblyUnhandledPromiseHandlers=t.possiblyUnhandledPromiseHandlers||[],t.dispatchedErrors=t.dispatchedErrors||[],t}var i=function(){function e(t){var n=this;if(function(t,n){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this),this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],t){var r=void 0,o=void 0,i=!1,u=!1,s=!1;try{t(function(e){s?n.resolve(e):(i=!0,r=e)},function(e){s?n.reject(e):(u=!0,o=e)})}catch(e){return void this.reject(e)}s=!0,i?this.resolve(r):u&&this.reject(o)}}return e.prototype.resolve=function(e){if(this.resolved||this.rejected)return this;if(r(e))throw new Error("Can not resolve promise with another promise");return this.resolved=!0,this.value=e,this.dispatch(),this},e.prototype.reject=function(e){var t=this;if(this.resolved||this.rejected)return this;if(r(e))throw new Error("Can not reject promise with another promise");if(!e){var n=e&&"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e);e=new Error("Expected reject to be called with Error, got "+n)}return this.rejected=!0,this.error=e,this.errorHandled||setTimeout(function(){t.errorHandled||function(e){if(-1===o().dispatchedErrors.indexOf(e)){o().dispatchedErrors.push(e),setTimeout(function(){throw e},1);for(var t=0;t<o().possiblyUnhandledPromiseHandlers.length;t++)o().possiblyUnhandledPromiseHandlers[t](e)}}(e)},1),this.dispatch(),this},e.prototype.asyncReject=function(e){this.errorHandled=!0,this.reject(e)},e.prototype.dispatch=function(){var t=this,n=this.dispatching,i=this.resolved,u=this.rejected,s=this.handlers;if(!n&&(i||u)){this.dispatching=!0,o().activeCount+=1;for(var c=function(n){var o=s[n],c=o.onSuccess,a=o.onError,f=o.promise,l=void 0;if(i)try{l=c?c(t.value):t.value}catch(e){return f.reject(e),"continue"}else if(u){if(!a)return f.reject(t.error),"continue";try{l=a(t.error)}catch(e){return f.reject(e),"continue"}}l instanceof e&&(l.resolved||l.rejected)?(l.resolved?f.resolve(l.value):f.reject(l.error),l.errorHandled=!0):r(l)?l instanceof e&&(l.resolved||l.rejected)?l.resolved?f.resolve(l.value):f.reject(l.error):l.then(function(e){f.resolve(e)},function(e){f.reject(e)}):f.resolve(l)},a=0;a<s.length;a++)c(a);s.length=0,this.dispatching=!1,o().activeCount-=1,0===o().activeCount&&e.flushQueue()}},e.prototype.then=function(t,n){if(t&&"function"!=typeof t&&!t.call)throw new Error("Promise.then expected a function for success handler");if(n&&"function"!=typeof n&&!n.call)throw new Error("Promise.then expected a function for error handler");var r=new e;return this.handlers.push({promise:r,onSuccess:t,onError:n}),this.errorHandled=!0,this.dispatch(),r},e.prototype.catch=function(e){return this.then(void 0,e)},e.prototype.finally=function(t){return this.then(function(n){return e.try(t).then(function(){return n})},function(n){return e.try(t).then(function(){throw n})})},e.prototype.timeout=function(e,t){var n=this;if(this.resolved||this.rejected)return this;var r=setTimeout(function(){n.resolved||n.rejected||n.reject(t||new Error("Promise timed out after "+e+"ms"))},e);return this.then(function(e){return clearTimeout(r),e})},e.prototype.toPromise=function(){if("undefined"==typeof Promise)throw new TypeError("Could not find Promise");return Promise.resolve(this)},e.resolve=function(t){return t instanceof e?t:r(t)?new e(function(e,n){return t.then(e,n)}):(new e).resolve(t)},e.reject=function(t){return(new e).reject(t)},e.all=function(t){var n=new e,o=t.length,i=[];if(!o)return n.resolve(i),n;for(var u=function(u){var s=t[u];if(s instanceof e){if(s.resolved)return i[u]=s.value,o-=1,"continue"}else if(!r(s))return i[u]=s,o-=1,"continue";e.resolve(s).then(function(e){i[u]=e,0==(o-=1)&&n.resolve(i)},function(e){n.reject(e)})},s=0;s<t.length;s++)u(s);return 0===o&&n.resolve(i),n},e.hash=function(t){var n={};return e.all(Object.keys(t).map(function(r){return e.resolve(t[r]).then(function(e){n[r]=e})})).then(function(){return n})},e.map=function(t,n){return e.all(t.map(n))},e.onPossiblyUnhandledException=function(e){return function(e){return o().possiblyUnhandledPromiseHandlers.push(e),{cancel:function(){o().possiblyUnhandledPromiseHandlers.splice(o().possiblyUnhandledPromiseHandlers.indexOf(e),1)}}}(e)},e.try=function(t,n,r){var o=void 0;try{o=t.apply(n,r||[])}catch(t){return e.reject(t)}return e.resolve(o)},e.delay=function(t){return new e(function(e){setTimeout(e,t)})},e.isPromise=function(t){return!!(t&&t instanceof e)||r(t)},e.flush=function(){var t=new e;return o().flushPromises.push(t),0===o().activeCount&&e.flushQueue(),t},e.flushQueue=function(){var e=o().flushPromises;o().flushPromises=[];for(var t=0,n=null==e?0:e.length;t<n;t++)e[t].resolve()},e}();n.d(t,"a",function(){return i})},function(e,t,n){"use strict";t.a=function(){return!!(window.navigator.mockUserAgent||window.navigator.userAgent).match(/Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i)}},function(e,t,n){"use strict";t.a=function(e){var t=e.name,n=e.version,o=void 0===n?"latest":n,i=e.lifetime,u=void 0===i?3e5:i,s="__"+t+"_"+o+"_storage__",c=void 0;function a(e){var t=Object(r.d)(),n=void 0;if(c&&(n=c),!n&&t){var o=window.localStorage.getItem(s);o&&(n=JSON.parse(o))}n||(n=Object(r.b)()[s]),n||(n={id:Object(r.k)()}),n.id||(n.id=Object(r.k)()),c=n;var i=e(n);return t?window.localStorage.setItem(s,JSON.stringify(n)):Object(r.b)()[s]=n,c=null,i}function f(e){return a(function(t){var n=t.__session__,o=Date.now();return n&&o-n.created>u&&(n=null),n||(n={guid:Object(r.k)(),created:o}),t.__session__=n,e(n)})}return{getState:a,getID:function(){return a(function(e){return e.id})},getSessionState:function(e){return f(function(t){return t.state=t.state||{},e(t.state)})},getSessionID:function(){return f(function(e){return e.guid})}}};var r=n(0)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=n(5),i={DEBUG:"debug",INFO:"info",WARN:"warn",ERROR:"error"},u=[i.WARN,i.ERROR],s=[i.ERROR,i.WARN,i.INFO,i.DEBUG],c=6e4,a=i.WARN,f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function l(e){var t=e.url,n=e.method,r=e.headers,i=e.json;return Object(o.request)({url:t,method:n,headers:r,json:i}).then(o.noop)}function d(e){var t=e.url,n=e.prefix,d=e.logLevel,h=void 0===d?a:d,p=e.transport,v=void 0===p?l:p,w=e.flushInterval,m=void 0===w?c:w,_=[],y=[],g=[],b=[],j=[],O=[];function E(e,t,n){if(Object(o.isBrowser)()&&window.console&&window.console.log){var r=h;if(window.LOG_LEVEL&&-1!==s.indexOf(window.LOG_LEVEL)&&(r=window.LOG_LEVEL),!(s.indexOf(e)>s.indexOf(r))){var i=[t];i.push(n),(n.error||n.warning)&&i.push("\n\n",n.error||n.warning);try{window.console[e]&&window.console[e].apply?window.console[e].apply(window.console,i):window.console.log&&window.console.log.apply&&window.console.log.apply(window.console,i)}catch(e){}}}}function T(){return r.a.try(function(){if(Object(o.isBrowser)()&&(_.length||y.length)){for(var e={},n=0,r=null==b?0:b.length;n<r;n++){var i=b[n];Object(o.extend)(e,i(e))}for(var u={},s=0,c=null==O?0:O.length;s<c;s++){var a=O[s];Object(o.extend)(u,a(u))}var f=v({method:"POST",url:t,headers:u,json:{events:_,meta:e,tracking:y}});return _=[],y=[],f.then(o.noop)}})}var S=Object(o.promiseDebounce)(T);function x(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object(o.isBrowser)()){n&&(t=n+"_"+t),r=f({},r,{timestamp:Date.now().toString()});for(var i=0,s=null==g?0:g.length;i<s;i++){var c=g[i];Object(o.extend)(r,c(r))}!function(e,t,n){_.push({level:e,event:t,payload:n}),-1!==u.indexOf(e)&&S()}(e,t,r),E(e,t,r)}}return Object(o.safeInterval)(S,m),{debug:function(e,t){x(i.DEBUG,e,t)},info:function(e,t){x(i.INFO,e,t)},warn:function(e,t){x(i.WARN,e,t)},error:function(e,t){x(i.ERROR,e,t)},track:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Object(o.isBrowser)()){for(var t=0,n=null==j?0:j.length;t<n;t++){var r=j[t];Object(o.extend)(e,r(e))}E(i.DEBUG,"track",e),y.push(e)}},flush:S,immediateFlush:T,addPayloadBuilder:function(e){g.push(e)},addMetaBuilder:function(e){b.push(e)},addTrackingBuilder:function(e){j.push(e)},addHeaderBuilder:function(e){O.push(e)},setTransport:function(e){v=e}}}n.d(t,"Logger",function(){return d}),n.d(t,"LOG_LEVEL",function(){return i})},function(e,t,n){"use strict";n(2);var r=n(6);n.d(t,"isBrowser",function(){return r.a}),n(7),n(8),n(9),n(3);var o=n(0);n.d(t,"extend",function(){return o.a}),n.d(t,"noop",function(){return o.e}),n.d(t,"promiseDebounce",function(){return o.f}),n.d(t,"safeInterval",function(){return o.i});var i=n(10);n.d(t,"request",function(){return i.a});var u=n(14);n.n(u)},function(e,t,n){"use strict";t.a=function(){return"undefined"!=typeof window},n(1),n(0),n(2)},function(e,t,n){"use strict";n(0),n(3)},function(e,t,n){"use strict";n(0)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}n(0),Object.assign,function(e){function t(n){return r(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,"",{},n))}(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)})(t,e),t.prototype.toString=function(){return this.childrenToString()}}(function(){function e(t,n,o){r(this,e),this.name=t,this.props=n,this.children=o}return e.prototype.toString=function(){return"<"+this.name+(this.props?" ":"")+(this.props?this.propsToString():"")+">"+this.childrenToString()+"</"+this.name+">"},e.prototype.propsToString=function(){var e=this.props;return e?Object.keys(e).filter(function(t){return"innerHTML"!==t&&e&&!1!==e[t]}).map(function(t){if(e){var n=e[t];if(!0===n)return""+o(t);if("string"==typeof n)return o(t)+'="'+o(n)+'"'}return""}).filter(Boolean).join(" "):""},e.prototype.childrenToString=function(){if(this.props&&this.props.innerHTML)return this.props.innerHTML;if(!this.children)return"";var t="";return function n(r){for(var i=0,u=null==r?0:r.length;i<u;i++){var s=r[i];null!==s&&void 0!==s&&(Array.isArray(s)?n(s):t+=s instanceof e?s.toString():o(s))}}(this.children),t},e}())},function(e,t,n){"use strict";t.a=function(e){var t=e.url,n=e.method,s=void 0===n?"get":n,c=e.headers,a=void 0===c?{}:c,f=e.json,l=e.data,d=e.body,h=e.win,p=void 0===h?window:h,v=e.timeout,w=void 0===v?0:v;return new r.a(function(e,n){if(f&&l||f&&d||l&&f)throw new Error("Only options.json or options.data or options.body should be passed");for(var r={},c=0,h=Object.keys(a),v=null==h?0:h.length;c<v;c++){var m=h[c];r[m.toLowerCase()]=a[m]}f?r[i.CONTENT_TYPE]=r[i.CONTENT_TYPE]||"application/json":(l||d)&&(r[i.CONTENT_TYPE]=r[i.CONTENT_TYPE]||"application/x-www-form-urlencoded; charset=utf-8"),r[i.ACCEPT]=r[i.ACCEPT]||"application/json";for(var _=0,y=null==u?0:u.length;_<y;_++)for(var g=(0,u[_])(),b=0,j=Object.keys(g),O=null==j?0:j.length;b<O;b++){var E=j[b];r[E.toLowerCase()]=g[E]}var T=new p.XMLHttpRequest;for(var S in T.addEventListener("load",function(){var r=function(){for(var e={},t=0,n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").trim().split("\n"),r=null==n?0:n.length;t<r;t++){var o=n[t].split(":"),i=o[0],u=o.slice(1);e[i.toLowerCase()]=u.join(":").trim()}return e}(this.getAllResponseHeaders());if(!this.status)return n(new Error("Request to "+s.toLowerCase()+" "+t+" failed: no response status code."));var i=r["content-type"],u=i&&(0===i.indexOf("application/json")||0===i.indexOf("text/json")),c=this.responseText;try{c=JSON.parse(this.responseText)}catch(e){if(u)return n(new Error("Invalid json: "+this.responseText+"."))}if(this.status>=400){var a="Request to "+s.toLowerCase()+" "+t+" failed with "+this.status+" error.";return c&&("object"===(void 0===c?"undefined":o(c))&&null!==c&&(c=JSON.stringify(c,null,4)),a=a+"\n\n"+c+"\n"),n(new Error(a))}return e(c)},!1),T.addEventListener("error",function(e){n(new Error("Request to "+s.toLowerCase()+" "+t+" failed: "+e.toString()+"."))},!1),T.open(s,t,!0),r)r.hasOwnProperty(S)&&T.setRequestHeader(S,r[S]);f?d=JSON.stringify(f):l&&(d=Object.keys(l).map(function(e){return encodeURIComponent(e)+"="+(l?encodeURIComponent(l[e]):"")}).join("&")),T.timeout=w,T.ontimeout=function(){n(new Error("Request to "+s.toLowerCase()+" "+t+" has timed out"))},T.send(d)})};var r=n(1),o=(n(11),"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}),i={CONTENT_TYPE:"content-type",ACCEPT:"accept"},u=[]},function(e,t,n){"use strict";n(12);var r=n(13);n.n(r)},function(e,t,n){"use strict"},function(e,t){},function(e,t){}])}); | ||
//# sourceMappingURL=beaver-logger.min.js.map | ||
//# sourceMappingURL=beaver-logger.min.js.map |
{ | ||
"name": "beaver-logger", | ||
"version": "3.0.17", | ||
"version": "4.0.0", | ||
"description": "Client side logger.", | ||
"main": "index.js", | ||
"main": "dist/beaver-logger.js", | ||
"scripts": { | ||
"test": "gulp lint && karma start" | ||
"setup": "npm install && npm run flow-typed", | ||
"lint": "eslint client/ server/ test/ *.js", | ||
"flow-typed": "flow-typed install", | ||
"flow": "flow", | ||
"karma": "cross-env NODE_ENV=test babel-node --plugins=transform-es2015-modules-commonjs ./node_modules/.bin/karma start", | ||
"babel": "babel src/ --out-dir dist/module", | ||
"webpack": "babel-node --plugins=transform-es2015-modules-commonjs ./node_modules/.bin/webpack --progress", | ||
"test": "npm run lint && npm run flow-typed && npm run flow && npm run karma", | ||
"build": "npm run test && npm run babel && npm run webpack", | ||
"release": "./publish.sh", | ||
"release:patch": "./publish.sh patch", | ||
"release:minor": "./publish.sh minor", | ||
"release:major": "./publish.sh major", | ||
"clean": "rimraf dist coverage", | ||
"reinstall": "rimraf flow-typed && rimraf node_modules && npm install && flow-typed install" | ||
}, | ||
@@ -33,43 +47,14 @@ "repository": { | ||
"devDependencies": { | ||
"babel-core": "^6.7.7", | ||
"babel-eslint": "^6.0.4", | ||
"babel-loader": "^6.2.4", | ||
"babel-plugin-add-module-exports": "^0.1.4", | ||
"babel-plugin-syntax-object-rest-spread": "^6.5.0", | ||
"babel-plugin-transform-es2015-for-of": "^6.18.0", | ||
"babel-plugin-transform-es3-member-expression-literals": "^6.5.0", | ||
"babel-plugin-transform-es3-property-literals": "^6.5.0", | ||
"babel-plugin-transform-flow-strip-types": "^6.22.0", | ||
"babel-plugin-transform-object-rest-spread": "^6.6.5", | ||
"babel-preset-es2015": "^6.6.0", | ||
"chai": "^3.5.0", | ||
"es6-symbol": "^3.0.2", | ||
"eslint": "^2.8.0", | ||
"gulp": "^3.9.1", | ||
"gulp-eslint": "^2.0.0", | ||
"gulp-karma": "0.0.5", | ||
"gulp-webpack": "^1.5.0", | ||
"istanbul-instrumenter-loader": "^0.2.0", | ||
"karma": "^0.13.22", | ||
"karma-chrome-launcher": "^1.0.1", | ||
"karma-commonjs": "^1.0.0", | ||
"karma-coverage": "^1.0.0", | ||
"karma-mocha": "^1.0.1", | ||
"karma-phantomjs-launcher": "^1.0.0", | ||
"karma-sinon-chai": "^1.2.0", | ||
"karma-sourcemap-loader": "^0.3.7", | ||
"karma-spec-reporter": "0.0.26", | ||
"karma-webpack": "^1.7.0", | ||
"lolex": "^1.5.0", | ||
"mocha": "^2.5.3", | ||
"phantomjs-prebuilt": "^2.1.7", | ||
"sinon": "^1.17.4", | ||
"sinon-chai": "^2.8.0", | ||
"sync-browser-mocks": "^1.0.2", | ||
"webpack": "^1.13.1", | ||
"yargs": "^4.7.1" | ||
"flow-bin": "^0.70.0", | ||
"grumbler-scripts": "^2.0.56", | ||
"mocha": "^3.5.3", | ||
"sync-browser-mocks": "^1.0.44" | ||
}, | ||
"dependencies": { | ||
"belter": "^1.0.17", | ||
"zalgo-promise": "^1.0.26" | ||
}, | ||
"peerDependencies": { | ||
"express": "^4" | ||
} | ||
} |
@@ -7,4 +7,2 @@ beaver-logger | ||
- Buffer your front-end logs and periodically send them to the server side | ||
- Allow you to log page transitions and gather performance stats | ||
- Automatically log window performance stats, where available, and watch for event loop delays | ||
- Automatically flush logs for any errors or warnings | ||
@@ -17,3 +15,10 @@ | ||
## Setup | ||
```javascript | ||
var $logger = beaver.Logger({ | ||
url: '/my/logger/url' | ||
}); | ||
``` | ||
## Basic logging | ||
@@ -33,25 +38,2 @@ | ||
## Transitions | ||
### `$logger.startTransition();` | ||
Call this when you start an ajax call or some other loading period, with the intention of moving to another page. | ||
### `$logger.endTransition(<nextStateName>);` | ||
Call this when you transition to the next page. beaver-logger will automatically log the transition, and how long it took. The logs will be auto-flushed after this call. | ||
### `$logger.transition(<nextStateName>);` | ||
This is a short-hand for `logger.startTransition(); $logger.endTransition(<nextStateName>);` when there is no loading time, and the transition from one state to another is instant. The logs will be auto-flushed after this call. | ||
## Initialization and configuration | ||
### `$logger.init(<config>);` | ||
Set the logger up with your configuration options. This is optional. Configuration options are listed below. | ||
## Advanced | ||
@@ -109,3 +91,3 @@ | ||
Flushes the logs to the server side. Recommended you don't call this manually, as it will happen automatically on page transitions, or after a configured interval. | ||
Flushes the logs to the server side. Recommended you don't call this manually, as it will happen automatically after a configured interval. | ||
@@ -116,5 +98,5 @@ | ||
- Install via npm or bower | ||
- Install via npm | ||
`npm install --save beaver-logger` or `bower install --save beaver-logger` | ||
`npm install --save beaver-logger` | ||
@@ -134,53 +116,22 @@ - Include in your project | ||
Front-End Configuration | ||
----------------------- | ||
Configuration | ||
------------- | ||
Full configuration options: | ||
```javascript | ||
$logger.init({ | ||
```javascript | ||
var $logger = beaver.Logger({ | ||
// URI to post logs to | ||
uri: '/api/log', | ||
// Url to send logs to | ||
url: '/my/logger/url', | ||
// State name to post logs under | ||
initial_state_name: 'init', | ||
// Prefix to prepend to all events | ||
prefix: 'myapp', | ||
// Interval at which to automatically flush logs to the server | ||
flushInterval: 10 * 60 * 1000, | ||
// Log level to display in the browser console | ||
logLevel: beaver.LOG_LEVEL.WARN, | ||
// Interval at which to debounce $logger.flush calls | ||
debounceInterval: 10, | ||
// Limit on number of logs before auto-flush happens | ||
sizeLimit: 300, | ||
// Supress `console.log`s when `true` | ||
// Recommended for production usage | ||
silent: false, | ||
// Enable or disable heartbeats, which run on an interval | ||
heartbeat: true, | ||
// Heartbeat log interval | ||
heartbeatInterval: 5000, | ||
// Maximum number of sequential heartbeat logs | ||
heartbeatMaxThreshold: 50, | ||
// Monitors for event loop delays and triggers a toobusy event | ||
heartbeatTooBusy: false, | ||
// Event loop delay which triggers a toobusy event | ||
heartbeatTooBusyThreshold: 10000, | ||
// Log levels which trigger an auto-flush to the server | ||
autoLog: ['warn', 'error'], | ||
// Log window.onunload and window.beforeUnload events? | ||
logUnload: true, | ||
// Log unload synchronously, to guarantee the log gets through? | ||
logUnloadSync: false, | ||
// Log performance stats from the browser automatically? | ||
logPerformance: true | ||
// Interval to flush logs to server | ||
flushInterval: 60 * 1000 | ||
}); | ||
@@ -187,0 +138,0 @@ ``` |
@@ -1,173 +0,3 @@ | ||
var util = require('./util'); | ||
var url = require('url'); | ||
/* @flow */ | ||
var defaultLogger = { | ||
log: function(req, level, name, payload) { | ||
var date = payload.timestamp | ||
? new Date(payload.timestamp).toString() | ||
: new Date().toString(); | ||
var str = [ | ||
name, | ||
'\t[ ', | ||
date, | ||
' ]\n', | ||
Object.keys(payload) | ||
.map(function(key) { | ||
return '\t' + key + ': ' + payload[key]; | ||
}) | ||
.join('\n'), | ||
'\n' | ||
].join(''); | ||
console[level].call(console, str); | ||
}, | ||
track: function(req, tracking) { | ||
console.log( | ||
'[track]\n', | ||
Object.keys(tracking) | ||
.map(function(key) { | ||
return '\t' + key + ': ' + tracking[key]; | ||
}) | ||
.join('\n'), | ||
'\n' | ||
); | ||
}, | ||
meta: function(req, meta) { | ||
console.log( | ||
'[meta]\n', | ||
Object.keys(meta) | ||
.map(function(key) { | ||
return '\t' + key + ': ' + meta[key]; | ||
}) | ||
.join('\n'), | ||
'\n' | ||
); | ||
} | ||
}; | ||
var log = (module.exports.log = function log(req, logger, logs) { | ||
var events = logs.events || []; | ||
var meta = logs.meta || {}; | ||
var tracking = logs.tracking || {}; | ||
if (Array.isArray(events)) { | ||
events.forEach(function(event) { | ||
if (!event.event) { | ||
return; | ||
} | ||
event.level = event.level || 'info'; | ||
event.payload = event.payload || {}; | ||
var _log = logger instanceof Function ? logger : logger.log; | ||
if (_log instanceof Function) { | ||
return _log(req, event.level, event.event, event.payload); | ||
} | ||
var _logLevel = logger[event.level]; | ||
if (_logLevel instanceof Function) { | ||
return _logLevel(req, event.event, event.payload); | ||
} | ||
defaultLogger.log(req, event.level, event.event, event.payload); | ||
}); | ||
} | ||
if (logger.meta) { | ||
logger.meta(req, meta); | ||
} | ||
if (logger.track) { | ||
logger.track(req, tracking); | ||
} | ||
}); | ||
var handleRequest = (module.exports.handleRequest = function handleRequest( | ||
req, | ||
logger | ||
) { | ||
var method = req.method || 'get'; | ||
var query = req.query || {}; | ||
var body = req.body || {}; | ||
if (method.toLowerCase() === 'post') { | ||
return log(req, logger, body); | ||
} else { | ||
var event = query.event; | ||
var level = query.level || 'info'; | ||
var state = query.state; | ||
var payload = util.extend({}, query); | ||
delete payload.event; | ||
delete payload.level; | ||
delete payload.state; | ||
return log(req, logger, { | ||
events: [ | ||
{ | ||
level: level, | ||
event: event, | ||
payload: payload | ||
} | ||
], | ||
meta: { | ||
state: state | ||
} | ||
}); | ||
} | ||
}); | ||
module.exports.expressEndpoint = function expressEndpoint(options) { | ||
options = options || {}; | ||
options.uri = options.uri || '/'; | ||
options.logger = options.logger || defaultLogger; | ||
var app = require('express')(); | ||
app.all(options.uri, function(req, res, next) { | ||
if (options.enableCors) { | ||
if (req.get('origin')) { | ||
var parsedUrl = url.parse(req.get('origin')) || {}; | ||
res.header( | ||
'Access-Control-Allow-Origin', | ||
parsedUrl.protocol + '//' + parsedUrl.host | ||
); | ||
} else { | ||
res.header('Access-Control-Allow-Origin', '*'); | ||
} | ||
var corsRequestHeaders = req.headers['access-control-request-headers']; | ||
if (corsRequestHeaders) { | ||
res.header('Access-Control-Allow-Headers', corsRequestHeaders); | ||
} | ||
var corsRequestMethod = req.headers['access-control-request-method']; | ||
if (corsRequestMethod) { | ||
res.header('Access-Control-Allow-Methods', corsRequestMethod); | ||
} | ||
} | ||
if (req.method.toLowerCase === 'options') { | ||
return res.status(200).send(); | ||
} | ||
try { | ||
handleRequest(req, options.logger); | ||
res.status(200).send(); | ||
} catch (err) { | ||
console.error(err.stack || err.toString()); | ||
res.status(500).send(); | ||
} | ||
}); | ||
return app; | ||
}; | ||
export * from './server'; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
4
87489
3
15
1277
197
1
+ Addedbelter@^1.0.17
+ Addedaccepts@1.3.8(transitive)
+ Addedarray-flatten@1.1.1(transitive)
+ Addedbelter@1.0.190(transitive)
+ Addedbody-parser@1.20.3(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcall-bind-apply-helpers@1.0.2(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcontent-disposition@0.5.4(transitive)
+ Addedcontent-type@1.0.5(transitive)
+ Addedcookie@0.7.1(transitive)
+ Addedcookie-signature@1.0.6(transitive)
+ Addedcross-domain-safe-weakmap@1.0.29(transitive)
+ Addedcross-domain-utils@2.0.38(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddepd@2.0.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedee-first@1.1.1(transitive)
+ Addedencodeurl@1.0.22.0.0(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedescape-html@1.0.3(transitive)
+ Addedetag@1.8.1(transitive)
+ Addedexpress@4.21.2(transitive)
+ Addedfinalhandler@1.3.1(transitive)
+ Addedforwarded@0.2.0(transitive)
+ Addedfresh@0.5.2(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.3.0(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedipaddr.js@1.9.1(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmedia-typer@0.3.0(transitive)
+ Addedmerge-descriptors@1.0.3(transitive)
+ Addedmethods@1.1.2(transitive)
+ Addedmime@1.6.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedms@2.0.02.1.3(transitive)
+ Addednegotiator@0.6.3(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addedon-finished@2.4.1(transitive)
+ Addedparseurl@1.3.3(transitive)
+ Addedpath-to-regexp@0.1.12(transitive)
+ Addedproxy-addr@2.0.7(transitive)
+ Addedqs@6.13.0(transitive)
+ Addedrange-parser@1.2.1(transitive)
+ Addedraw-body@2.5.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsend@0.19.0(transitive)
+ Addedserve-static@1.16.2(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)
+ Addedstatuses@2.0.1(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtype-is@1.6.18(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addedutils-merge@1.0.1(transitive)
+ Addedvary@1.1.2(transitive)