{"version":3,"sources":["../src/loglevel.ts","../src/logger.ts","../src/config.ts","../src/processors/createAggregateProcessor.ts","../src/processors/createConsoleProcessor.ts","../src/processors/createDateAndLevelPrependProcessor.ts","../src/processors/createErrorWrapProcessor.ts","../src/processors/createInspectProcessor.ts","../src/processors/createMessageConcatProcessor.ts","../src/processors/createStackTraceTransformProcessor.ts","../src/processors/createThrottleProcessor.ts","../src/processors/createSentryProcessor.ts","../src/index.ts"],"names":["next","p","r","r2","moment","StackTrace","objectInspect","message","safeJsonStringify"],"mappings":"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","file":"index.cjs","sourcesContent":["export class LogLevel {\n  static TRACE: LogLevel;\n  static DEBUG: LogLevel;\n  static INFO: LogLevel;\n  static WARN: LogLevel;\n  static ERROR: LogLevel;\n  static OFF: LogLevel;\n\n  value: number = Number.MAX_VALUE;\n\n  static valueOf(name: string) {\n    const level = LogLevel[name];\n    if (level instanceof LogLevel) {\n      return level;\n    }\n    return null;\n  }\n\n  constructor(value: LogLevel | number) {\n    if (value instanceof LogLevel) {\n      return value;\n    }\n    this.value = value;\n  }\n\n  valueOf() {\n    return this.value;\n  }\n}\n\nLogLevel.TRACE = new LogLevel(0);\nLogLevel.DEBUG = new LogLevel(100);\nLogLevel.INFO = new LogLevel(200);\nLogLevel.WARN = new LogLevel(300);\nLogLevel.ERROR = new LogLevel(400);\nLogLevel.OFF = new LogLevel(Number.MAX_VALUE);\n","// @flow\nimport type {\n  Channel,\n  Messages,\n  Processor,\n  ProcessorLike,\n  ProcessorObject,\n  ProcessorResult,\n  Record,\n} from \"./types/LoggerType\";\nimport { LogLevel } from \"./loglevel\";\n\nexport class Logger {\n  level: LogLevel = LogLevel.INFO;\n\n  channels: Channel[] = [];\n\n  setLevel(level: LogLevel): void {\n    this.level = level;\n  }\n\n  /**\n   * Creates logging channel that consists of a list of processors.\n   *\n   * Processor is a function that accepts an array of records `{level, messages}` and returns another\n   * array of records for consequent processors to work with. If processor returns a promise then logging\n   * channel is suspended until this promise is resolved.\n   *\n   * Instead of an object with `process` method can be provided.\n   *\n   * @returns {Logger}\n   */\n  channel(...processors: ProcessorLike[]): void {\n    const procs: Processor[] = processors.map((processor) => {\n      const p = processor;\n      if (typeof p === \"function\") {\n        return processor as Processor;\n      }\n\n      const pobject = processor as ProcessorObject | undefined;\n\n      if (pobject?.process) {\n        return pobject.process;\n      }\n\n      throw new Error(\n        \"Processor should be a function or an object with `process` callback\"\n      );\n    });\n\n    this.channels.push({ processors: procs, promise: undefined });\n  }\n\n  /**\n   * Process records through pipeline.\n   *\n   * @param {Array} records\n   * @return {Promise|null}\n   */\n  process(records: Record[]): ProcessorResult {\n    let r = records.filter(\n      (record) => record.level.valueOf() >= this.level.valueOf()\n    );\n\n    if (!r.length) {\n      return records;\n    }\n\n    const promises: ProcessorResult[] = [];\n\n    for (const channel of this.channels) {\n      const p: Processor[] = [...channel.processors];\n      let promise: ProcessorResult;\n\n      function next(\n        p: Processor[],\n        r: Record[] | undefined,\n        i: number\n      ): ProcessorResult {\n        if (!r) {\n          return;\n        }\n        if (i < p.length) {\n          let r1: ProcessorResult;\n          try {\n            r1 = p[i](r);\n          } catch (error) {\n            console.error(error);\n          }\n\n          if (r1 instanceof Promise) {\n            const r = r1\n              .then((r2) => next(p, r2, i + 1))\n              .catch((error) => console.log(error));\n            return r as ProcessorResult;\n          } else {\n            return next(p, r1, i + 1);\n          }\n        } else {\n          if (channel.promise === promise) {\n            channel.promise = undefined;\n          }\n        }\n      }\n\n      if (channel.promise) {\n        promise = channel.promise = channel.promise.then(() => next(p, r, 0));\n      } else {\n        promise = next(p, r, 0);\n        if (promise instanceof Promise) {\n          channel.promise = promise;\n        }\n      }\n\n      if (promise) {\n        promises.push(promise);\n      }\n    }\n    if (promises.length) {\n      return Promise.all(promises).then(() => records);\n    }\n    return records;\n  }\n\n  isTraceEnabled() {\n    return this.level.valueOf() >= LogLevel.TRACE.valueOf();\n  }\n\n  isDebugEnabled() {\n    return this.level.valueOf() >= LogLevel.DEBUG.valueOf();\n  }\n\n  isInfoEnabled() {\n    return this.level.valueOf() >= LogLevel.INFO.valueOf();\n  }\n\n  isWarnEnabled() {\n    return this.level.valueOf() >= LogLevel.WARN.valueOf();\n  }\n\n  isErrorEnabled() {\n    return this.level.valueOf() >= LogLevel.ERROR.valueOf();\n  }\n\n  /**\n   * Send messages to channels of this logger.\n   *\n   * @param {Number} level Level to log provided messages with.\n   * @param {Array} messages Messages to pass to processors.\n   * @param {Object} [meta] Any additional meta passed to processors.\n   *\n   * @returns {Promise} Promise that resolves when all channels did process provided messages.\n   */\n  sendMessages(level: LogLevel, messages: Messages, meta?: any) {\n    return this.process([{ level, messages, meta }]);\n  }\n\n  log(...messages: Messages) {\n    return this.sendMessages(LogLevel.INFO, messages);\n  }\n\n  trace(...messages: Messages) {\n    return this.sendMessages(LogLevel.TRACE, messages);\n  }\n\n  debug(...messages: Messages) {\n    return this.sendMessages(LogLevel.DEBUG, messages);\n  }\n\n  info(...messages: Messages) {\n    return this.sendMessages(LogLevel.INFO, messages);\n  }\n\n  warn(...messages: Messages) {\n    return this.sendMessages(LogLevel.WARN, messages);\n  }\n\n  error(...messages: Messages) {\n    return this.sendMessages(LogLevel.ERROR, messages);\n  }\n}\n","// @flow\nimport type {\n  LoggerConfig,\n  ProcessorDictionary,\n} from \"./types/LoggerConfigParserType\";\nimport { Logger } from \"./logger\";\nimport { LogLevel } from \"./loglevel\";\nimport { ProcessorLike } from \"./types/LoggerType\";\n\nexport function parseConfig(\n  loggerConfig?: LoggerConfig,\n  processorDictionary: ProcessorDictionary = {}\n): Logger {\n  const logger = new Logger();\n  if (!loggerConfig) {\n    return logger;\n  }\n  const { level, channels } = loggerConfig;\n  if (level) {\n    const logLevel = LogLevel.valueOf(level);\n    if (!logLevel) {\n      throw new Error(`Unknown log level \"${level}\"`);\n    }\n    logger.setLevel(logLevel);\n  }\n  if (!channels) {\n    return logger;\n  }\n  for (const channel of channels) {\n    const processors: ProcessorLike[] = [];\n    for (const processor of channel) {\n      const { type, options } = processor;\n      const processorFactory = processorDictionary[type];\n\n      if (type === \"logger\") {\n        processors.push(\n          parseConfig(options as LoggerConfig, processorDictionary)\n        );\n      } else if (!processorFactory) {\n        throw new Error(`Unknown processor type \"${type}\"`);\n      } else {\n        processors.push(processorFactory(options));\n      }\n    }\n    logger.channel(...processors);\n  }\n  return logger;\n}\n","// @flow\nimport type { Processor, Record } from \"../types/LoggerType\";\nimport type { ProcessorOptions } from \"../types/LoggerConfigParserType\";\n\ntype AggregateProcessorOptions = ProcessorOptions & {\n  onDispatch: (records: Record[], next: () => any) => void;\n};\n\nexport function createAggregateProcessor(\n  options: AggregateProcessorOptions\n): Processor {\n  const { onDispatch } = options;\n  let resolve;\n  let promise;\n  let cache = [];\n\n  function next() {\n    if (cache.length && resolve) {\n      resolve(cache);\n      resolve = null;\n      promise = null;\n      cache = [];\n    }\n  }\n\n  function tryDispatch() {\n    onDispatch(cache, next);\n  }\n\n  return (records) => {\n    cache.push(...records);\n\n    if (resolve) {\n      const nextPromise = promise;\n      tryDispatch();\n      return nextPromise;\n    } else {\n      if (!promise) {\n        promise = new Promise((resolveSelf) => {\n          resolve = resolveSelf;\n          tryDispatch();\n        });\n      }\n      return promise;\n    }\n  };\n}\n","// @flow\nimport type { Processor, Record } from \"../types/LoggerType\";\nimport { LogLevel } from \"../loglevel\";\n\nexport function createConsoleProcessor(): Processor {\n  return (records: Record[]) => {\n    for (const { level, messages } of records) {\n      switch (level) {\n        case LogLevel.TRACE:\n        case LogLevel.DEBUG:\n          if (console.debug) {\n            console.debug(...messages);\n            return;\n          }\n          break;\n\n        case LogLevel.INFO:\n          if (console.info) {\n            console.info(...messages);\n            return;\n          }\n          break;\n\n        case LogLevel.WARN:\n          if (console.warn) {\n            console.warn(...messages);\n            return;\n          }\n          break;\n\n        case LogLevel.ERROR:\n          console.error(...messages);\n          return;\n      }\n      console.log(...messages);\n    }\n    return records;\n  };\n}\n","import type { Processor, Record } from \"../types/LoggerType\";\nimport moment from \"moment\";\n\nimport { LogLevel } from \"../loglevel\";\n\nexport function getLogLevelName(level) {\n  for (const key in LogLevel) {\n    if (level instanceof LogLevel && level === LogLevel[key]) {\n      return key;\n    }\n    if (typeof level === \"number\" && level === LogLevel[key].valueOf()) {\n      return key;\n    }\n  }\n  return level;\n}\n\nexport function createDateAndLevelPrependProcessor({\n  dateFormat = \"YYYY-MM-DD HH:MM:SS\",\n} = {}): Processor {\n  return (records: Record[]) =>\n    records.map((record) => {\n      record = { ...record, messages: [...record.messages] };\n      const { messages, level } = record;\n\n      messages.unshift(getLogLevelName(level), moment().format(dateFormat));\n\n      return record;\n    });\n}\n","import type { Processor, Record } from \"../types/LoggerType\";\nimport StackTrace from \"stacktrace-js\";\n\nimport { LogLevel } from \"../loglevel\";\n\nconst LOGGER_STACK_FRAME_COUNT = 8;\n\nexport function createErrorWrapProcessor({\n  trimHeadFrames = 0,\n  loggerStackFrameCount = LOGGER_STACK_FRAME_COUNT,\n  testMessage = defaultTestMessage,\n  createStackTrace = defaultCreateStackTrace,\n} = {}): Processor {\n  return (records: Record[]) =>\n    records.map(({ level, messages, meta }) => {\n      messages = [...messages];\n      for (let i = 0; i < messages.length; ++i) {\n        if (\n          messages[i] instanceof Error ||\n          !testMessage(messages[i], level, i)\n        ) {\n          continue;\n        }\n        const error = new Error(messages[i]);\n        const stackFrames = StackTrace.getSync().slice(\n          trimHeadFrames + loggerStackFrameCount\n        );\n        error.stack = createStackTrace(error.name, error.message, stackFrames);\n        messages[i] = error;\n      }\n      return { level, messages, meta };\n    });\n}\n\nexport function defaultTestMessage(\n  message: any,\n  level: LogLevel,\n  i: number\n): boolean {\n  return level >= LogLevel.ERROR && i === 0;\n}\n\nexport function defaultCreateStackTrace(\n  errorType: string,\n  errorMessage: string,\n  stackFrames: string[]\n): string {\n  const callStack = [];\n  for (const {\n    fileName,\n    lineNumber,\n    columnNumber,\n    functionName,\n  } of stackFrames) {\n    const path = `${fileName}:${lineNumber}:${columnNumber}`;\n    callStack.push(\n      functionName ? `at ${functionName} (${path})` : `at ${path}`\n    );\n  }\n  return `${errorType}: ${errorMessage}\\n${callStack.join(\"\\n\")}`;\n}\n","/**\n * Converts object messages to stringified representation.\n * @param {Number} [depth = 10] Object nesting depth.\n */\nimport type {Processor, Record} from '../types/LoggerType';\nimport objectInspect from 'object-inspect';\n\nexport function createInspectProcessor({depth = 10} = {}): Processor {\n  return (records: Record[]) => records.map(record => ({\n    ...record,\n    messages: record.messages.map(message => {\n      if (typeof message === 'object' || typeof message === 'function') {\n        return objectInspect(message, {depth});\n      }\n      return message;\n    })\n  }))\n}\n","import type { Processor, Record } from \"../types/LoggerType\";\nimport safeJsonStringify from 'safe-json-stringify';\n\nexport function createMessageConcatProcessor(options = {}): Processor {\n  const { stringifyLoggedValue = stringifyLog } = options;\n\n  return (records: Record[]) =>\n    records.map(({ level, messages, meta }) => {\n      if (messages.length === 0) {\n        return { level, messages, meta };\n      }\n\n      meta = { ...meta };\n\n      let [message] = messages;\n\n      if (messages.length === 1) {\n        if (message instanceof Error) {\n          meta.error = message;\n          message = message.message;\n        } else if (typeof message === \"object\") {\n          meta.object = message;\n        }\n        message = stringifyLoggedValue(message, 50);\n      } else if (messages.length > 1) {\n        let i = 1;\n        const parts = [];\n        for (let message of messages) {\n          if (typeof message === \"object\") {\n            parts.push(`${stringifyLoggedValue(message, 25)} (#${i})`);\n            meta[\"#\" + i] = message;\n            i += 1;\n          } else {\n            parts.push(message);\n          }\n        }\n        message = parts.join(\" \");\n      }\n      return { level, messages: [message], meta };\n    });\n}\n\nexport function stringifyLog(value: any, charLimit: number): string {\n  let string;\n  if (value instanceof Error) {\n    string = value.message;\n  } else if (typeof value === \"object\") {\n    string = safeJsonStringify(value);\n  } else {\n    string = String(value);\n  }\n  if (string.length < charLimit) {\n    return string;\n  }\n  charLimit -= 1;\n  string =\n    string.match(new RegExp(`^.{0,${charLimit}}(?=\\\\s|\\\\s+\\\\b|$)`)) ||\n    string.slice(0, charLimit);\n  return string + \"…\";\n}\n","// @flow\nimport type {Processor, Record} from '../types/LoggerType';\nimport type {ProcessorOptions} from '../types/LoggerConfigParserType';\n\ntype StackTraceTransformProcessorOptions = ProcessorOptions & {\n  transformer: (stack: string) => string;\n}\n\nfunction webpackStackCleaner(stack: string): string {\n  return stack.replace(/\\/[^(\\n]+(target.out|webpack:)(~?\\/)+/g, '');\n}\n\nexport function createStackTraceTransformProcessor(options: StackTraceTransformProcessorOptions = {transformer: webpackStackCleaner}): Processor {\n  const {transformer} = options;\n\n  return (records: Record[]) => records.map(record => ({\n    ...record,\n    messages: record.messages.map(message => {\n      if (message instanceof Error) {\n        return transformer(message.stack);\n      }\n      return message;\n    })\n  }));\n}\n","// @flow\nimport type {Processor, Record} from '../types/LoggerType';\nimport type {ProcessorOptions} from '../types/LoggerConfigParserType';\nimport {createAggregateProcessor} from './createAggregateProcessor';\n\ntype ThrottleProcessorOptions = ProcessorOptions & {\n  delay: number;\n  length: number;\n  leading: boolean;\n};\n\nexport function createThrottleProcessor(options: ThrottleProcessorOptions = {\n  delay: 1000,\n  length: 1000,\n  leading: true\n}): Processor {\n  const {delay, length, leading} = options;\n  let timeout;\n\n  return createAggregateProcessor({\n    onDispatch(records: Record[], next): void {\n      if (records.length < length) {\n        // Aggregator did not collect enough records yet.\n        if (leading) {\n          if (!timeout) {\n            timeout = setTimeout(() => {\n              timeout = 0;\n              next();\n            }, delay);\n          }\n        } else {\n          timeout = setTimeout(next, delay);\n        }\n      } else {\n        clearTimeout(timeout);\n        next();\n      }\n    }\n  });\n}\n","// @flow\nimport type { Processor, Record } from \"../types/LoggerType\";\nimport { LogLevel } from \"../loglevel\";\n\ntype Sentry = {\n  captureMessage(...varargs: any[]): any;\n  captureException(...varargs: any[]): any;\n};\n\nexport function createSentryProcessor(sentry: Sentry): Processor {\n  return (records: Record[]) => {\n    for (const { level, messages, meta } of records) {\n      if (!messages.length) {\n        continue;\n      }\n      const message = messages[0];\n      if (level.valueOf() < LogLevel.ERROR.valueOf()) {\n        sentry.captureMessage(message, {\n          level: level.valueOf() < LogLevel.WARN.valueOf() ? \"info\" : \"warn\",\n          meta,\n        });\n      } else {\n        sentry.captureException(message, { level: \"error\", meta });\n      }\n    }\n    return records;\n  };\n}\n","import { parseConfig } from \"./config\";\nimport { Logger } from \"./logger\";\nimport { createAggregateProcessor } from \"./processors/createAggregateProcessor\";\nimport { createConsoleProcessor } from \"./processors/createConsoleProcessor\";\nimport { createDateAndLevelPrependProcessor } from \"./processors/createDateAndLevelPrependProcessor\";\nimport { createErrorWrapProcessor } from \"./processors/createErrorWrapProcessor\";\nimport { createInspectProcessor } from \"./processors/createInspectProcessor\";\nimport { createMessageConcatProcessor } from \"./processors/createMessageConcatProcessor\";\nimport { createStackTraceTransformProcessor } from \"./processors/createStackTraceTransformProcessor\";\nimport { createThrottleProcessor } from \"./processors/createThrottleProcessor\";\n\nexport { createSentryProcessor } from \"./processors/createSentryProcessor\";\n\nexport { LogLevel } from \"./loglevel\";\n\nexport {\n  Logger,\n  Logger as default,\n  parseConfig as parseLoggerConfig,\n  createAggregateProcessor,\n  createConsoleProcessor,\n  createDateAndLevelPrependProcessor,\n  createInspectProcessor,\n  createStackTraceTransformProcessor,\n  createThrottleProcessor,\n  createErrorWrapProcessor,\n  createMessageConcatProcessor,\n};\n\nexport const ProcessorFactories = {\n  logger: Logger,\n  aggregate: createAggregateProcessor,\n  console: createConsoleProcessor,\n  prependDateAndLevel: createDateAndLevelPrependProcessor,\n  inspect: createInspectProcessor,\n  extractStackTrace: createStackTraceTransformProcessor,\n  throttle: createThrottleProcessor,\n  wrapError: createErrorWrapProcessor,\n  concatMessages: createMessageConcatProcessor,\n};\n"]}