{
  "version": 3,
  "sources": ["../src/index.ts", "../src/types.ts", "../src/logger.ts", "../src/renderers/browser-pretty.ts", "../src/renderers/browser-pure.ts", "../../../node_modules/.pnpm/colorette@2.0.20/node_modules/colorette/index.js", "../src/utils/json-humanize.ts", "../src/renderers/node-pretty.ts", "../src/renderers/node-pure-json.ts", "../src/utils/create-global.ts"],
  "sourcesContent": ["import { createGlobalLogger } from \"./utils/create-global\";\n\nconst logger = createGlobalLogger();\n\nexport * from \"./logger\";\nexport * from \"./types\";\nexport default logger;\n", "export type LogLevel =\n  | \"TRACE\"\n  | \"INFO\"\n  | \"SUCCESS\"\n  | \"WARN\"\n  | \"ERROR\"\n  | \"FATAL\"\n  | \"DEBUG\";\nexport type LogRendererFunc = (line: object) => void;\nexport type LogRenderer = { node: LogRendererFunc; browser: LogRendererFunc };\n\nexport const isBrowser = () =>\n  typeof window !== \"undefined\" && typeof document !== \"undefined\";\nexport const isNode = () => typeof process !== \"undefined\";\nexport const levelPriorities = {\n  FATAL: 70,\n  ERROR: 60,\n  WARN: 50,\n  SUCCESS: 40,\n  INFO: 30,\n  DEBUG: 20,\n  TRACE: 10,\n} as const;\n", "import {\n  isBrowser,\n  isNode,\n  levelPriorities,\n  LogLevel,\n  LogRenderer,\n} from \"./types\";\n\nexport class NexloadLogger {\n  private readonly threshold: number;\n\n  constructor(\n    public readonly name: string,\n    public readonly level: LogLevel,\n    protected readonly renderer: LogRenderer,\n    protected baseObject: object = {}\n  ) {\n    this.threshold = levelPriorities[level];\n    this.name = this.name.toUpperCase();\n  }\n\n  private normalizeInput(\n    objOrMessage?: object | string,\n    message?: string\n  ): { obj: object; message?: string } {\n    if (typeof objOrMessage === \"string\") {\n      return {\n        obj: {},\n        message: message ?? objOrMessage,\n      };\n    }\n\n    return {\n      obj: objOrMessage ?? {},\n      message,\n    };\n  }\n\n  private dispatch(\n    level: LogLevel,\n    objOrMessage?: object | string,\n    message?: string\n  ): void {\n    if (levelPriorities[level] < this.threshold) return;\n    const normalized = this.normalizeInput(objOrMessage, message);\n\n    const payload: any = {\n      ...this.baseObject,\n      ...normalized.obj,\n      name: this.name,\n      level,\n      time: Date.now(),\n    };\n\n    if (normalized.message) {\n      payload.message = normalized.message;\n    }\n\n    if (isBrowser()) return this.renderer.browser(payload);\n    if (isNode()) return this.renderer.node(payload);\n\n    return console.log(payload);\n  }\n\n  public child(obj: object = {}): NexloadLogger {\n    return new NexloadLogger(this.name, this.level, this.renderer, {\n      ...this.baseObject,\n      ...obj,\n    });\n  }\n\n  public trace(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"TRACE\", objOrMsg, msg);\n  }\n  public debug(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"DEBUG\", objOrMsg, msg);\n  }\n  public info(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"INFO\", objOrMsg, msg);\n  }\n  public success(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"SUCCESS\", objOrMsg, msg);\n  }\n  public warn(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"WARN\", objOrMsg, msg);\n  }\n  public error(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"ERROR\", objOrMsg, msg);\n  }\n  public fatal(objOrMsg?: object | string, msg?: string): void {\n    this.dispatch(\"FATAL\", objOrMsg, msg);\n  }\n}\n", "import { LogLevel, LogRendererFunc } from \"@/types\";\n\nconst reset = \"color:inherit;font-weight:inherit;\";\nconst dimStyle = \"color:#808080cc;font-weight:100;\";\nconst boldStyle = \"font-weight:900;\";\nconst levelColors = {\n  TRACE: \"color: #808080;\",\n  DEBUG: \"color: #2980b9;\",\n  INFO: \"color: #009688;\",\n  SUCCESS: \"color: #27ae60;\",\n  WARN: \"color: #d35400;\",\n  ERROR: \"color: #c0392b;\",\n  FATAL: \"color: #8e44ad;\",\n} as const;\n\nexport const levelSymbols = {\n  TRACE: \"\u203A\",\n  DEBUG: \"\u2022\",\n  INFO: \"\u2139\",\n  SUCCESS: \"\u2714\",\n  WARN: \"\u26A0\",\n  ERROR: \"\u2717\",\n  FATAL: \"\u271D\",\n} as const;\n\nexport const browserPrettyRenderer: LogRendererFunc = (line) => {\n  const { level, time, message, name, pid, ...extras } = line as any;\n\n  const symbol = levelSymbols[level as LogLevel];\n  const colorStyle = levelColors[level as LogLevel];\n\n  console.log(\n    `%c[%s] %c%s %c%s%c - %s\\n%o`,\n    colorStyle,\n    symbol,\n    colorStyle + boldStyle,\n    level.padEnd(7),\n    dimStyle,\n    name.padEnd(6),\n    reset,\n    message,\n    extras\n  );\n};\n", "import { LogLevel, LogRendererFunc } from \"@/types\";\n\nexport const browserPureRenderer: LogRendererFunc = (line) => {\n  const { level, time, message, name, pid, ...extras } = line as any;\n\n  const nameStr = name.padEnd(6);\n  const levelStr = level.padEnd(5);\n  const lineStr = `${levelStr} ${nameStr} \u2014 ${message}`;\n\n  switch (level as LogLevel) {\n    case \"WARN\":\n      console.warn(lineStr, extras);\n      break;\n    case \"ERROR\":\n    case \"FATAL\":\n      console.error(lineStr, extras);\n      break;\n    case \"DEBUG\":\n    case \"TRACE\":\n      console.debug(lineStr, extras);\n      break;\n    case \"INFO\":\n    case \"SUCCESS\":\n      console.info(lineStr, extras);\n      break;\n    default:\n      console.log(lineStr, extras);\n      break;\n  }\n};\n", "import * as tty from \"tty\"\n\nconst {\n  env = {},\n  argv = [],\n  platform = \"\",\n} = typeof process === \"undefined\" ? {} : process\n\nconst isDisabled = \"NO_COLOR\" in env || argv.includes(\"--no-color\")\nconst isForced = \"FORCE_COLOR\" in env || argv.includes(\"--color\")\nconst isWindows = platform === \"win32\"\nconst isDumbTerminal = env.TERM === \"dumb\"\n\nconst isCompatibleTerminal =\n  tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal\n\nconst isCI =\n  \"CI\" in env &&\n  (\"GITHUB_ACTIONS\" in env || \"GITLAB_CI\" in env || \"CIRCLECI\" in env)\n\nexport const isColorSupported =\n  !isDisabled &&\n  (isForced || (isWindows && !isDumbTerminal) || isCompatibleTerminal || isCI)\n\nconst replaceClose = (\n  index,\n  string,\n  close,\n  replace,\n  head = string.substring(0, index) + replace,\n  tail = string.substring(index + close.length),\n  next = tail.indexOf(close)\n) => head + (next < 0 ? tail : replaceClose(next, tail, close, replace))\n\nconst clearBleed = (index, string, open, close, replace) =>\n  index < 0\n    ? open + string + close\n    : open + replaceClose(index, string, close, replace) + close\n\nconst filterEmpty =\n  (open, close, replace = open, at = open.length + 1) =>\n  (string) =>\n    string || !(string === \"\" || string === undefined)\n      ? clearBleed(\n          (\"\" + string).indexOf(close, at),\n          string,\n          open,\n          close,\n          replace\n        )\n      : \"\"\n\nconst init = (open, close, replace) =>\n  filterEmpty(`\\x1b[${open}m`, `\\x1b[${close}m`, replace)\n\nconst colors = {\n  reset: init(0, 0),\n  bold: init(1, 22, \"\\x1b[22m\\x1b[1m\"),\n  dim: init(2, 22, \"\\x1b[22m\\x1b[2m\"),\n  italic: init(3, 23),\n  underline: init(4, 24),\n  inverse: init(7, 27),\n  hidden: init(8, 28),\n  strikethrough: init(9, 29),\n  black: init(30, 39),\n  red: init(31, 39),\n  green: init(32, 39),\n  yellow: init(33, 39),\n  blue: init(34, 39),\n  magenta: init(35, 39),\n  cyan: init(36, 39),\n  white: init(37, 39),\n  gray: init(90, 39),\n  bgBlack: init(40, 49),\n  bgRed: init(41, 49),\n  bgGreen: init(42, 49),\n  bgYellow: init(43, 49),\n  bgBlue: init(44, 49),\n  bgMagenta: init(45, 49),\n  bgCyan: init(46, 49),\n  bgWhite: init(47, 49),\n  blackBright: init(90, 39),\n  redBright: init(91, 39),\n  greenBright: init(92, 39),\n  yellowBright: init(93, 39),\n  blueBright: init(94, 39),\n  magentaBright: init(95, 39),\n  cyanBright: init(96, 39),\n  whiteBright: init(97, 39),\n  bgBlackBright: init(100, 49),\n  bgRedBright: init(101, 49),\n  bgGreenBright: init(102, 49),\n  bgYellowBright: init(103, 49),\n  bgBlueBright: init(104, 49),\n  bgMagentaBright: init(105, 49),\n  bgCyanBright: init(106, 49),\n  bgWhiteBright: init(107, 49),\n}\n\nexport const createColors = ({ useColor = isColorSupported } = {}) =>\n  useColor\n    ? colors\n    : Object.keys(colors).reduce(\n        (colors, key) => ({ ...colors, [key]: String }),\n        {}\n      )\n\nexport const {\n  reset,\n  bold,\n  dim,\n  italic,\n  underline,\n  inverse,\n  hidden,\n  strikethrough,\n  black,\n  red,\n  green,\n  yellow,\n  blue,\n  magenta,\n  cyan,\n  white,\n  gray,\n  bgBlack,\n  bgRed,\n  bgGreen,\n  bgYellow,\n  bgBlue,\n  bgMagenta,\n  bgCyan,\n  bgWhite,\n  blackBright,\n  redBright,\n  greenBright,\n  yellowBright,\n  blueBright,\n  magentaBright,\n  cyanBright,\n  whiteBright,\n  bgBlackBright,\n  bgRedBright,\n  bgGreenBright,\n  bgYellowBright,\n  bgBlueBright,\n  bgMagentaBright,\n  bgCyanBright,\n  bgWhiteBright,\n} = createColors()\n", "import {\n  cyan,\n  green,\n  yellow,\n  red,\n  magenta,\n  gray,\n  white,\n  bold,\n  dim,\n} from \"colorette\";\n\nconst styleValue = (value: any): string => {\n  if (value === null) return bold(gray(\"null\"));\n  if (value === undefined) return bold(gray(\"undefined\"));\n\n  switch (typeof value) {\n    case \"string\":\n      return green(`\"${value}\"`); // \u0631\u0634\u062A\u0647\u200C\u0647\u0627 \u0633\u0628\u0632\n    case \"number\":\n      return yellow(String(value)); // \u0627\u0639\u062F\u0627\u062F \u0632\u0631\u062F\n    case \"boolean\":\n      return magenta(String(value)); // \u0628\u0648\u0644\u06CC\u0646\u200C\u0647\u0627 \u0628\u0646\u0641\u0634\n    default:\n      return white(String(value));\n  }\n};\n\nexport function jsonHumanize(data: any, indentLevel = 0): string {\n  const indent = \"  \".repeat(indentLevel);\n\n  if (data === null || typeof data !== \"object\") {\n    return styleValue(data);\n  }\n\n  let output = \"\";\n\n  for (const [key, value] of Object.entries(data)) {\n    const coloredKey = cyan(key);\n\n    if (typeof value === \"string\" && value.includes(\"\\n\")) {\n      output += `${indent}${coloredKey}: |\\n`;\n      const lines = value.split(\"\\n\");\n      output += lines.map((line) => `${indent}  ${dim(line)}`).join(\"\\n\");\n      output += \"\\n\";\n      continue;\n    }\n\n    if (typeof value === \"object\" && value !== null) {\n      if (Object.keys(value).length === 0) {\n        output += `${indent}${coloredKey}: ${gray(\"{}\")}\\n`;\n      } else {\n        output += `${indent}${coloredKey}:\\n`;\n        output += jsonHumanize(value, indentLevel + 1);\n      }\n      continue;\n    }\n\n    output += `${indent}${coloredKey}: ${styleValue(value)}\\n`;\n  }\n\n  return output;\n}\n", "import {\n  bold,\n  yellow,\n  redBright,\n  red,\n  gray,\n  dim,\n  magentaBright,\n  greenBright,\n  green,\n  cyanBright,\n} from \"colorette\";\nimport { jsonHumanize } from \"@/utils/json-humanize\";\nimport { LogLevel, LogRendererFunc } from \"@/types\";\n\nconst levelColors = {\n  TRACE: gray,\n  DEBUG: magentaBright,\n  INFO: cyanBright,\n  SUCCESS: green,\n  WARN: yellow,\n  ERROR: redBright,\n  FATAL: red,\n} as const;\n\nexport const levelSymbols = {\n  TRACE: \"\u203A\",\n  DEBUG: \"\u2022\",\n  INFO: \"\u2139\",\n  SUCCESS: \"\u2714\",\n  WARN: \"\u26A0\",\n  ERROR: \"\u2717\",\n  FATAL: \"\u271D\",\n} as const;\n\nconst extrasFromatter = (extras: any) => {\n  if (\n    extras == null ||\n    typeof extras !== \"object\" ||\n    Object.keys(extras).length === 0\n  )\n    return [];\n\n  return [\"\\n\" + jsonHumanize(extras, 2)];\n};\n\nconst levelToSymbol = (level: LogLevel) => {\n  const symbol = levelSymbols[level];\n  const color = levelColors[level];\n\n  return color(\"[\" + symbol + \"]\");\n};\n\nexport const nodePrettyRenderer: LogRendererFunc = (line) => {\n  const columns =\n    typeof process !== \"undefined\" ? process?.stdout?.columns : 80;\n\n  const { level, time, message, name, pid, ...extras } = line as any;\n\n  const dateTime = new Date(time ?? undefined);\n\n  const levelColor = levelColors[level as LogLevel];\n  const symbol = levelToSymbol(level as LogLevel);\n\n  const nameStr = dim(bold(name.padEnd(6)));\n  const levelStr = levelColor(bold(level.padEnd(7)));\n  const timeStr = dim(dateTime.toTimeString().slice(0, 8));\n  let lineStr = `${symbol} ${levelStr} ${nameStr} \u2014 ${message}`;\n  const spaceCount = Math.max(1, columns - lineStr.length - timeStr.length);\n\n  lineStr = lineStr + \" \".repeat(spaceCount) + timeStr;\n\n  switch (level) {\n    case \"INFO\":\n      console.info(lineStr, ...extrasFromatter(extras));\n      break;\n    case \"WARN\":\n      console.warn(lineStr, ...extrasFromatter(extras));\n      break;\n    case \"ERROR\":\n      console.error(lineStr, ...extrasFromatter(extras));\n      break;\n    case \"DEBUG\":\n      console.debug(lineStr, ...extrasFromatter(extras));\n      break;\n\n    default:\n      console.log(lineStr, ...extrasFromatter(extras));\n      break;\n  }\n};\n", "import { LogRendererFunc, isBrowser, isNode } from \"@/types\";\n\nexport const nodePureJsonRenderer: LogRendererFunc = (line) => {\n  if (isBrowser() || !isNode()) return;\n\n  process.stdout.write(JSON.stringify(line) + \"\\n\");\n};\n", "import { NexloadLogger } from \"@/logger\";\nimport { browserPrettyRenderer } from \"@/renderers/browser-pretty\";\nimport { browserPureRenderer } from \"@/renderers/browser-pure\";\nimport { nodePrettyRenderer } from \"@/renderers/node-pretty\";\nimport { nodePureJsonRenderer } from \"@/renderers/node-pure-json\";\nimport { isBrowser, levelPriorities, LogLevel, LogRenderer } from \"@/types\";\n\nconst safeLocalStorageGet = (key: string): string | null => {\n  try {\n    return localStorage.getItem(key);\n  } catch {\n    return null;\n  }\n};\n\nconst getServiceName = (): string =>\n  (isBrowser()\n    ? safeLocalStorageGet(\"$SERVICE_NAME\")\n    : process.env.SERVICE_NAME) || \"unknown\";\n\nconst getLogLevel = (): LogLevel => {\n  const raw = (\n    isBrowser() ? safeLocalStorageGet(\"$LOG_LEVEL\") : process.env.LOG_LEVEL\n  ) ?? \"WARN\";\n\n  const normalized = raw.toUpperCase() as LogLevel;\n\n  return normalized in levelPriorities ? normalized : \"WARN\";\n};\n\nconst getProduction = () => {\n  if (isBrowser()) {\n    return safeLocalStorageGet(\"$DEBUG\") !== \"1\";\n  }\n\n  if (process.env.DEBUG === \"true\") {\n    return false;\n  }\n\n  return process.env.NODE_ENV === \"production\";\n};\n\nconst getRenderer = (): LogRenderer => {\n  const isProduction = getProduction();\n\n  if (isProduction) {\n    return {\n      browser: browserPureRenderer.bind(null),\n      node: nodePureJsonRenderer.bind(null),\n    };\n  }\n\n  return {\n    browser: browserPrettyRenderer.bind(null),\n    node: nodePrettyRenderer.bind(null),\n  };\n};\n\nexport const createGlobalLogger = () =>\n  new NexloadLogger(getServiceName(), getLogLevel(), getRenderer());\n"],
  "mappings": "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",
  "names": ["colors", "reset", "levelColors", "levelSymbols"]
}
