{"version":3,"sources":["../node_modules/fast-safe-stringify/index.js","../src/index.ts","../src/util/EventEmitter.ts","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../src/util/LogUtils.ts","../src/enums/TransformationEnum.ts","../src/LogStore.ts","../src/AdvancedLogger.ts","../src/service/BaseRemoteService.ts","../src/util/http.ts","../src/service/ConsoleService.ts","../src/service/ElasticsearchService.ts","../src/service/LogglyService.ts","../src/service/SumologicService.ts","../src/strategy/InstantStrategy.ts","../src/strategy/OnBundleSizeStrategy.ts","../src/strategy/OnIntervalStrategy.ts","../src/strategy/OnRequestStrategy.ts","../src/strategy/HybridStrategy.ts"],"sourcesContent":["module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n  return {\n    depthLimit: Number.MAX_SAFE_INTEGER,\n    edgesLimit: Number.MAX_SAFE_INTEGER\n  }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n  if (typeof options === 'undefined') {\n    options = defaultOptions()\n  }\n\n  decirc(obj, '', 0, [], undefined, 0, options)\n  var res\n  try {\n    if (replacerStack.length === 0) {\n      res = JSON.stringify(obj, replacer, spacer)\n    } else {\n      res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n    }\n  } catch (_) {\n    return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n  } finally {\n    while (arr.length !== 0) {\n      var part = arr.pop()\n      if (part.length === 4) {\n        Object.defineProperty(part[0], part[1], part[3])\n      } else {\n        part[0][part[1]] = part[2]\n      }\n    }\n  }\n  return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n  var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n  if (propertyDescriptor.get !== undefined) {\n    if (propertyDescriptor.configurable) {\n      Object.defineProperty(parent, k, { value: replace })\n      arr.push([parent, k, val, propertyDescriptor])\n    } else {\n      replacerStack.push([val, k, replace])\n    }\n  } else {\n    parent[k] = replace\n    arr.push([parent, k, val])\n  }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n  depth += 1\n  var i\n  if (typeof val === 'object' && val !== null) {\n    for (i = 0; i < stack.length; i++) {\n      if (stack[i] === val) {\n        setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n        return\n      }\n    }\n\n    if (\n      typeof options.depthLimit !== 'undefined' &&\n      depth > options.depthLimit\n    ) {\n      setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n      return\n    }\n\n    if (\n      typeof options.edgesLimit !== 'undefined' &&\n      edgeIndex + 1 > options.edgesLimit\n    ) {\n      setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n      return\n    }\n\n    stack.push(val)\n    // Optimize for Arrays. Big arrays could kill the performance otherwise!\n    if (Array.isArray(val)) {\n      for (i = 0; i < val.length; i++) {\n        decirc(val[i], i, i, stack, val, depth, options)\n      }\n    } else {\n      var keys = Object.keys(val)\n      for (i = 0; i < keys.length; i++) {\n        var key = keys[i]\n        decirc(val[key], key, i, stack, val, depth, options)\n      }\n    }\n    stack.pop()\n  }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n  if (a < b) {\n    return -1\n  }\n  if (a > b) {\n    return 1\n  }\n  return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n  if (typeof options === 'undefined') {\n    options = defaultOptions()\n  }\n\n  var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n  var res\n  try {\n    if (replacerStack.length === 0) {\n      res = JSON.stringify(tmp, replacer, spacer)\n    } else {\n      res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n    }\n  } catch (_) {\n    return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n  } finally {\n    // Ensure that we restore the object as it was.\n    while (arr.length !== 0) {\n      var part = arr.pop()\n      if (part.length === 4) {\n        Object.defineProperty(part[0], part[1], part[3])\n      } else {\n        part[0][part[1]] = part[2]\n      }\n    }\n  }\n  return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n  depth += 1\n  var i\n  if (typeof val === 'object' && val !== null) {\n    for (i = 0; i < stack.length; i++) {\n      if (stack[i] === val) {\n        setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n        return\n      }\n    }\n    try {\n      if (typeof val.toJSON === 'function') {\n        return\n      }\n    } catch (_) {\n      return\n    }\n\n    if (\n      typeof options.depthLimit !== 'undefined' &&\n      depth > options.depthLimit\n    ) {\n      setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n      return\n    }\n\n    if (\n      typeof options.edgesLimit !== 'undefined' &&\n      edgeIndex + 1 > options.edgesLimit\n    ) {\n      setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n      return\n    }\n\n    stack.push(val)\n    // Optimize for Arrays. Big arrays could kill the performance otherwise!\n    if (Array.isArray(val)) {\n      for (i = 0; i < val.length; i++) {\n        deterministicDecirc(val[i], i, i, stack, val, depth, options)\n      }\n    } else {\n      // Create a temporary object in the required way\n      var tmp = {}\n      var keys = Object.keys(val).sort(compareFunction)\n      for (i = 0; i < keys.length; i++) {\n        var key = keys[i]\n        deterministicDecirc(val[key], key, i, stack, val, depth, options)\n        tmp[key] = val[key]\n      }\n      if (typeof parent !== 'undefined') {\n        arr.push([parent, k, val])\n        parent[k] = tmp\n      } else {\n        return tmp\n      }\n    }\n    stack.pop()\n  }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n  replacer =\n    typeof replacer !== 'undefined'\n      ? replacer\n      : function (k, v) {\n        return v\n      }\n  return function (key, val) {\n    if (replacerStack.length > 0) {\n      for (var i = 0; i < replacerStack.length; i++) {\n        var part = replacerStack[i]\n        if (part[1] === key && part[0] === val) {\n          val = part[2]\n          replacerStack.splice(i, 1)\n          break\n        }\n      }\n    }\n    return replacer.call(this, key, val)\n  }\n}\n","import AdvancedLogger from \"./AdvancedLogger\";\nimport {TransformationEnum} from \"./enums/TransformationEnum\";\nimport BaseRemoteService from \"./service/BaseRemoteService\";\nimport ConsoleService from \"./service/ConsoleService\";\nimport ElasticsearchService from \"./service/ElasticsearchService\";\nimport LogglyService from \"./service/LogglyService\";\nimport SumologicService from \"./service/SumologicService\";\nimport InstantStrategy from \"./strategy/InstantStrategy\";\nimport OnBundleSizeStrategy from \"./strategy/OnBundleSizeStrategy\";\nimport OnIntervalStrategy from \"./strategy/OnIntervalStrategy\";\nimport OnRequestStrategy from \"./strategy/OnRequestStrategy\";\nimport HybridStrategy from \"./strategy/HybridStrategy\";\n\nconst strategy = {\n    InstantStrategy,\n    OnBundleSizeStrategy,\n    OnRequestStrategy,\n    OnIntervalStrategy,\n    HybridStrategy\n};\n\nconst service = {\n    BaseRemoteService,\n    SumologicService,\n    LogglyService,\n    ConsoleService,\n    ElasticsearchService\n};\n\nexport {\n    AdvancedLogger,\n    strategy,\n    service,\n    TransformationEnum\n};\n","type Listener = (...args: any[]) => void;\n\nexport class EventEmitter {\n    private listeners = new Map<string, Set<Listener>>();\n\n    on(event: string, fn: Listener): this {\n        (this.listeners.get(event) ?? this.set(event)).add(fn);\n        return this;\n    }\n\n    once(event: string, fn: Listener): this {\n        const wrap: Listener = (...args) => {\n            this.off(event, wrap);\n            fn(...args);\n        };\n        return this.on(event, wrap);\n    }\n\n    off(event: string, fn: Listener): this {\n        this.listeners.get(event)?.delete(fn);\n        return this;\n    }\n\n    removeListener(event: string, fn: Listener): this {\n        return this.off(event, fn);\n    }\n\n    emit(event: string, ...args: any[]): boolean {\n        const set = this.listeners.get(event);\n        if (!set || set.size === 0) {\n            return false;\n        }\n        for (const fn of [...set]) {\n            fn(...args);\n        }\n        return true;\n    }\n\n    removeAllListeners(event?: string): this {\n        if (event) {\n            this.listeners.delete(event);\n        } else {\n            this.listeners.clear();\n        }\n        return this;\n    }\n\n    private set(event: string): Set<Listener> {\n        const s = new Set<Listener>();\n        this.listeners.set(event, s);\n        return s;\n    }\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nexport default throttle;\n","import IDefaultLogConfig from \"../interface/config/IDefaultLogConfig\";\n\nconst DELIMETER = \"-\";\n\nexport default {\n    getLogIdByFields<T extends IDefaultLogConfig>(log: T, fields: string[]): string {\n        return fields.map(field => `${field}${DELIMETER}${log[field]}`).join(DELIMETER);\n    },\n\n    /**\n     * It is necessary to convert objects safely, otherwise we can lost the whole log bundle\n     */\n    tryJSONStringify<T>(obj: T): string {\n        try {\n            return JSON.stringify(obj);\n        } catch (_) {\n            //ignore the error\n            return \"\";\n        }\n    }\n};\n","export enum TransformationEnum {\n    RAPID_FIRE_GROUPING\n}\n","import {EventEmitter} from \"./util/EventEmitter\";\nimport type {DebouncedFunc} from \"lodash-es\";\nimport throttle from \"lodash-es/throttle\";\n\nimport LogUtils from \"./util/LogUtils\";\nimport {TransformationEnum} from \"./enums/TransformationEnum\";\nimport ILogStoreConfig from \"./interface/config/ILogStoreConfig\";\nimport IDestructable from \"./interface/IDestructable\";\nimport IGroupTransformation from \"./interface/IGroupTransformation\";\nimport IDefaultLogConfig from \"./interface/config/IDefaultLogConfig\";\n\nexport default class LogStore<T extends IDefaultLogConfig> implements IDestructable {\n    /**\n     * Subscribe in order to receive \"add\", \"cleared\" events\n     */\n    public readonly eventEmitter: EventEmitter;\n\n    private readonly logs: T[];\n\n    private readonly config: ILogStoreConfig;\n\n    private readonly identityMap: Map<string, number>;\n\n    private groupLeftIndex: number = -1;\n\n    private readonly groupableConfig: IGroupTransformation | undefined;\n\n    // todo Proper typing for method is needed\n    private throttledOnGroupFinalize: DebouncedFunc<any> | undefined;\n\n    constructor(config: ILogStoreConfig) {\n        this.logs = [];\n        this.eventEmitter = new EventEmitter();\n        this.config = config;\n\n        this.identityMap = new Map<string, number>();\n\n        if (this.config.transformations) {\n            const groupableConfig = this.config.transformations\n                .find(value => value.type === TransformationEnum.RAPID_FIRE_GROUPING);\n\n            if (groupableConfig) {\n                this.groupableConfig = groupableConfig.configuration;\n\n                this.throttledOnGroupFinalize = throttle(this.onGroupFinalize.bind(this),\n                    this.groupableConfig.interval, {trailing: true, leading: false});\n\n                //todo Maybe, move to add method\n                this.eventEmitter.on(\"add\", this.throttledOnGroupFinalize);\n            }\n        }\n    }\n\n    public add(log: T): void {\n        if (this.groupableConfig) {\n            const id = LogUtils.getLogIdByFields(log, this.groupableConfig.groupIdentityFields);\n\n            if (!this.identityMap.has(id)) {\n                this.logs.push(log);\n            }\n\n            this.onAddToGroup(log);\n        } else {\n            this.logs.push(log);\n        }\n\n        this.eventEmitter.emit(\"add\", {\n            logCount: this.size()\n        });\n    }\n\n    public clear(): void {\n        this.logs.length = 0;\n        this.eventEmitter.emit(\"clear\");\n    }\n\n    public getAll(): T[] {\n        if (this.throttledOnGroupFinalize) {\n            this.throttledOnGroupFinalize.flush();\n        }\n\n        return this.logs.slice();\n    }\n\n    public size(): number {\n        return this.logs.length;\n    }\n\n    public destroy(): void {\n        if (this.throttledOnGroupFinalize) {\n            this.throttledOnGroupFinalize.cancel();\n        }\n\n        this.logs.splice(0);\n        this.eventEmitter.removeAllListeners();\n    }\n\n    private onAddToGroup(log: T): void {\n        const logId = LogUtils.getLogIdByFields(log, this.groupableConfig!.groupIdentityFields);\n\n        if (this.identityMap.has(logId)) {\n            const savedCounter = this.identityMap.get(logId);\n            this.identityMap.set(logId, (savedCounter || 0) + 1);\n        } else {\n            this.identityMap.set(logId, 1);\n        }\n    }\n\n    private onGroupFinalize(): void {\n        // Apply grouping counters from Map to logs range from left index to the last\n        const len = this.logs.length;\n\n        if (len > 0) {\n            for (let i = this.groupLeftIndex !== -1 ? this.groupLeftIndex : 0; i < len; i++) {\n                const log = this.logs[i];\n                const id = LogUtils.getLogIdByFields(log, this.groupableConfig!.groupIdentityFields);\n\n                Object.assign(log, {[this.groupableConfig!.groupFieldName]: this.identityMap.has(id) ? this.identityMap.get(id) : 1});\n            }\n        }\n\n        this.groupLeftIndex = len > 0 ? len - 1 : -1;\n        this.identityMap.clear();\n    }\n}\n","import IAddEventConfig from \"./interface/config/IAddEventConfig\";\nimport ILoggerConfig from \"./interface/config/ILoggerConfig\";\nimport IService from \"./interface/IService\";\nimport IStrategy from \"./interface/IStrategy\";\nimport IDefaultLogConfig from \"./interface/config/IDefaultLogConfig\";\nimport LogStore from \"./LogStore\";\n\n/**\n * Uses different strategies to submit logs to log server via Service facade.\n */\nexport default class AdvancedLogger<T extends IDefaultLogConfig> {\n    private configuration: ILoggerConfig;\n    private strategy: IStrategy;\n    private service: IService;\n    private logStore: LogStore<T>;\n\n    constructor(configuration: ILoggerConfig) {\n        this.configuration = configuration;\n        this.logStore = new LogStore({transformations: this.configuration.transformations});\n        this.strategy = this.configuration.strategy;\n        this.service = this.configuration.service;\n\n        // todo Where is it better to subscribe?\n        this.logStore.eventEmitter.on(\"add\", this.onAdd.bind(this));\n        this.logStore.eventEmitter.on(\"clear\", this.onClear.bind(this));\n        this.logStore.eventEmitter.on(\"error\", this.onStoreError.bind(this));\n\n        this.strategy.eventEmitter.on(\"send\", this.onSend.bind(this));\n        this.strategy.eventEmitter.on(\"error\", this.onStrategyError.bind(this));\n    }\n\n    public log(log: T): void {\n        this.logStore.add(log);\n    }\n\n    /**\n     * Forces strategy to initiate logs sending\n     */\n    public sendAllLogs(): void {\n        this.strategy.sendAll();\n    }\n\n    public destroy(): void {\n        this.logStore.destroy();\n        this.strategy.destroy();\n        this.service.destroy();\n    }\n\n    private onStoreError(error: Error): void {\n        console.error(error);\n    }\n\n    private onAdd(info: IAddEventConfig) {\n        this.strategy.onAdd(info);\n    }\n\n    private onClear() {\n        this.strategy.onClear();\n    }\n\n    private onStrategyError(error: Error): void {\n        console.error(error);\n    }\n\n    private async onSend(): Promise<void> {\n        if (this.logStore.size() > 0) {\n            const logs = this.logStore.getAll();\n\n            // We need to clear store as soon as we received request to send all logs\n            this.logStore.clear();\n\n            try {\n                await this.service.sendAllLogs(logs);\n            } catch (error) {\n                console.error(error);\n            }\n        }\n    }\n}\n","import stringify from \"fast-safe-stringify\";\n\nimport IDefaultLogConfig from \"../interface/config/IDefaultLogConfig\";\nimport IRequestConfig from \"../interface/config/IRequestConfig\";\nimport IServiceConfig from \"../interface/config/IServiceConfig\";\nimport IDestructable from \"../interface/IDestructable\";\nimport IService from \"../interface/IService\";\nimport http from \"../util/http\";\nimport LogUtils from \"../util/LogUtils\";\n\nexport default class BaseRemoteService implements IService, IDestructable {\n    protected serviceConfig: IRequestConfig;\n    protected defaultLogConfig: IDefaultLogConfig;\n\n    constructor(config: IServiceConfig) {\n        this.serviceConfig = {...config.serviceConfig};\n        this.defaultLogConfig = {...config.defaultLogConfig};\n\n        // optional serializer override\n        if (config.serializer) {\n            this.serializer = config.serializer as <T>(log: T) => string;\n        }\n    }\n\n    public serializer<T>(log: T): string {\n        return LogUtils.tryJSONStringify(log) || stringify(log);\n    }\n\n    public async sendAllLogs<T>(logs: T[]): Promise<Response> {\n        const payload = await this.preparePayload(logs);\n        const headers = this.getHeaders();\n\n        try {\n            return await http.request(this.serviceConfig, headers, payload);\n        } catch (error) {\n            if ((this.serviceConfig?.retryAttempts ?? 0) > 0) {\n                return http.delayedRetry(\n                    this.serviceConfig?.retryAttempts ?? 0,\n                    this.serviceConfig?.retryInterval ?? 0,\n                    http.request.bind(this, this.serviceConfig, headers, payload)\n                );\n            } else {\n                throw error;\n            }\n        }\n    }\n\n    public async preparePayload<T>(logs: T[]): Promise<string> {\n        const resultList = logs.map(log => this.serializer({...this.defaultLogConfig, ...log}));\n        return resultList.join(\"\\n\");\n    }\n\n    public destroy(): void {\n    };\n\n    /**\n     * Returns object for headers config\n     * @example\n     * {\"Content-Type\": \"text/plain\"}\n     */\n    protected getHeaders(): { [propName: string]: string } {\n        return {};\n    }\n}\n","import IRequestConfig from \"../interface/config/IRequestConfig\";\n\nconst http = {\n    async request(serviceConfig: IRequestConfig, headers: Record<string, string>, payload: string): Promise<Response> {\n        const response = await fetch(serviceConfig.url, {\n            method: serviceConfig.method,\n            headers,\n            body: payload\n        });\n\n        // fetch only rejects on network errors, so surface non-2xx responses\n        // as errors to preserve the retry-on-failure contract.\n        if (!response.ok) {\n            throw new Error(`Request to ${serviceConfig.url} failed with status ${response.status}`);\n        }\n\n        return response;\n    },\n\n    delayedRetry(retries: number, delay: number, fn: () => Promise<Response>): Promise<Response> {\n        return new Promise<Response>((resolve, reject) => {\n            setTimeout(() => fn().then(resolve).catch(reject), delay);\n        })\n            .catch(error => retries > 1 ? http.delayedRetry(retries - 1, delay, fn) : Promise.reject(error));\n    }\n};\n\nexport default http;\n","import IService from \"../interface/IService\";\n\n/**\n * Console reporting service for debugging purposes\n */\nexport default class ConsoleService implements IService {\n    public async preparePayload<T>(logs: T[]): Promise<T[]> {\n        return logs.map(log => this.serializer(log));\n    }\n\n    public async sendAllLogs<T>(logs: T[]): Promise<void> {\n        console.log(logs);\n    }\n\n    public destroy(): void {\n        //nothing to do here\n    }\n\n    public serializer<T>(log: T): T {\n        return log;\n    }\n}\n","import ILogMetaConfig from \"../interface/config/ILogMetaConfig\";\nimport BaseRemoteService from \"./BaseRemoteService\";\n\nconst DEFAULT_INDEX_FIELD = \"Index\";\nconst DEFAULT_INDEX_VALUE = \"index\";\n\nexport default class ElasticsearchService extends BaseRemoteService {\n    public async preparePayload<T>(logs: T[]): Promise<string> {\n        const resultList: string[] = [];\n        logs.forEach(log => {\n            const finalLog = {...this.defaultLogConfig, ...log};\n            resultList.push(this.serializer(this.getLogMetaConfig(\n                finalLog[this.serviceConfig.logMetaIndexField || DEFAULT_INDEX_FIELD])));\n            resultList.push(this.serializer(finalLog));\n        });\n\n        return `${resultList.join(\"\\n\")}\\n`;\n    }\n\n    protected getHeaders(): {[propName: string]: string} {\n        return {\n            \"Content-Type\": \"application/json\"\n        };\n    }\n\n    private getLogMetaConfig(index?: string): ILogMetaConfig {\n        return {\n            index: {\n                _index: index || DEFAULT_INDEX_VALUE,\n                _type: \"_doc\"\n            }\n        };\n    }\n}\n","import BaseRemoteService from \"./BaseRemoteService\";\n\nexport default class LogglyService extends BaseRemoteService {\n    protected getHeaders(): {[propName: string]: string} {\n        return {\n            \"Content-Type\": \"text/plain\"\n        };\n    }\n}\n","import ISumologicRequestConfig from \"../interface/config/ISumologicRequestConfig\";\nimport BaseRemoteService from \"./BaseRemoteService\";\n\nexport default class SumologicService extends BaseRemoteService {\n    protected getHeaders(): {[propName: string]: string} {\n        const serviceConfig = this.serviceConfig as ISumologicRequestConfig;\n        return {\n            \"Content-Type\": \"application/json\",\n            //todo Optional?\n            \"X-Sumo-Category\": serviceConfig.sourceCategory,\n            //todo Optional?\n            \"X-Sumo-Host\": serviceConfig.host,\n            //todo Optional?\n            \"X-Sumo-Name\": serviceConfig.sourceName\n        };\n    }\n}\n","import {EventEmitter} from \"../util/EventEmitter\";\n\nimport IAddEventConfig from \"../interface/config/IAddEventConfig\";\nimport IStrategy from \"./../interface/IStrategy\";\n\nexport default class InstantStrategy implements IStrategy {\n    public eventEmitter: EventEmitter;\n\n    constructor() {\n        this.eventEmitter = new EventEmitter();\n    }\n\n    public onAdd(info?: IAddEventConfig): void {\n        this.eventEmitter.emit(\"send\");\n        //console.log(\"InstantStrategy#sent\");\n    }\n\n    public onClear(): void {\n        // Ignore log list change\n        //console.log(\"InstantStrategy#cleared\");\n    }\n\n    public sendAll(): void {\n        // This strategy sends all logs separately\n    }\n\n    public destroy(): void {\n        this.eventEmitter.removeAllListeners();\n    }\n}\n","import {EventEmitter} from \"../util/EventEmitter\";\nimport IAddEventConfig from \"../interface/config/IAddEventConfig\";\nimport IStrategy from \"./../interface/IStrategy\";\n\nexport default class OnBundleSizeStrategy implements IStrategy {\n    public eventEmitter: EventEmitter;\n\n    /**\n     * @type {number}\n     */\n    public MAX_BUNDLE_SIZE: number = 100;\n\n    constructor(config: {maxBundle?: number}) {\n        this.eventEmitter = new EventEmitter();\n\n        if (config.maxBundle) {\n            this.MAX_BUNDLE_SIZE = config.maxBundle;\n        }\n    }\n\n    public onAdd(info: IAddEventConfig): void {\n        if (info && info.logCount >= this.MAX_BUNDLE_SIZE) {\n            this.eventEmitter.emit(\"send\");\n        } else {\n            //console.log(\"Not enough logs so far\");\n        }\n    }\n\n    public onClear(): void {\n        // Ignore log list change\n        //console.log(\"OnBundleSizeStrategy#cleared\");\n    }\n\n    public sendAll(): void {\n        this.eventEmitter.emit(\"send\");\n    }\n\n    public destroy(): void {\n        this.eventEmitter.removeAllListeners();\n    }\n}\n","import {EventEmitter} from \"../util/EventEmitter\";\nimport throttle from \"lodash-es/throttle\";\nimport IAddEventConfig from \"../interface/config/IAddEventConfig\";\nimport IStrategy from \"./../interface/IStrategy\";\n\nexport default class OnIntervalStrategy implements IStrategy {\n    public eventEmitter: EventEmitter;\n    public SEND_INTERVAL = 15000;\n\n    private readonly intervalSend: ReturnType<typeof throttle>;\n\n    constructor(config: {interval?: number}) {\n        this.eventEmitter = new EventEmitter();\n\n        if (config.interval) {\n            this.SEND_INTERVAL = config.interval;\n        }\n\n        this.intervalSend = throttle(this.send.bind(this), this.SEND_INTERVAL, {leading: false, trailing: true});\n    }\n\n    public onAdd(info?: IAddEventConfig): void {\n        if (info && info.logCount > 0) {\n            this.intervalSend();\n        }\n    }\n\n    public onClear(): void {\n        // Ignore log list change\n        //console.log(\"OnIntervalStrategy#cleared\");\n    }\n\n    public sendAll(): void {\n        this.eventEmitter.emit(\"send\");\n    }\n\n    public destroy(): void {\n        this.intervalSend.cancel();\n        this.eventEmitter.removeAllListeners();\n    }\n\n    private send() {\n        this.eventEmitter.emit(\"send\");\n    }\n}\n","import {EventEmitter} from \"../util/EventEmitter\";\nimport IAddEventConfig from \"../interface/config/IAddEventConfig\";\nimport IStrategy from \"./../interface/IStrategy\";\n\nexport default class OnRequestStrategy implements IStrategy {\n    public eventEmitter: EventEmitter;\n\n    constructor() {\n        this.eventEmitter = new EventEmitter();\n    }\n\n    public onAdd(info?: IAddEventConfig): void {\n        // Ignore log list change\n    }\n\n    public onClear(): void {\n        // Ignore log list change\n        //console.log(\"OnRequestStrategy#cleared\");\n    }\n\n    public sendAll(): void {\n        this.eventEmitter.emit(\"send\");\n    }\n\n    public destroy(): void {\n        this.eventEmitter.removeAllListeners();\n    }\n}\n","import {EventEmitter} from \"../util/EventEmitter\";\nimport throttle from \"lodash-es/throttle\";\nimport IAddEventConfig from \"../interface/config/IAddEventConfig\";\nimport IStrategy from \"./../interface/IStrategy\";\n\nexport default class HybridStrategy implements IStrategy {\n    public eventEmitter: EventEmitter;\n    public MAX_BUNDLE_SIZE: number = 100;\n    public SEND_INTERVAL = 15000;\n\n    private readonly intervalSend: ReturnType<typeof throttle>;\n\n    constructor(config: {maxBundle?: number; interval?: number} = {}) {\n        this.eventEmitter = new EventEmitter();\n\n        if (config.maxBundle) {\n            this.MAX_BUNDLE_SIZE = config.maxBundle;\n        }\n\n        if (config.interval) {\n            this.SEND_INTERVAL = config.interval;\n        }\n\n        this.intervalSend = throttle(this.send.bind(this), this.SEND_INTERVAL, {leading: false, trailing: true});\n    }\n\n    public onAdd(info?: IAddEventConfig): void {\n        if (!info) {\n            return;\n        }\n\n        if (info.logCount >= this.MAX_BUNDLE_SIZE) {\n            this.intervalSend.cancel();\n            this.eventEmitter.emit(\"send\");\n        } else if (info.logCount > 0) {\n            this.intervalSend();\n        }\n    }\n\n    public onClear(): void {\n        // Ignore log list change\n    }\n\n    public sendAll(): void {\n        this.eventEmitter.emit(\"send\");\n    }\n\n    public destroy(): void {\n        this.intervalSend.cancel();\n        this.eventEmitter.removeAllListeners();\n    }\n\n    private send() {\n        this.eventEmitter.emit(\"send\");\n    }\n}\n"],"mappings":"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","names":["exports","module","stringify","Symbol","objectProto","nativeObjectToString","symToStringTag","FUNC_ERROR_TEXT","TransformationEnum","stringify"]}