{"version":3,"sources":["/Users/jeff/code/oss/logsdx/dist/chunk-Q46SBW3R.cjs","../src/themes/asci/loader.ts","../src/themes/asci/styles.ts"],"names":["style","styleManager"],"mappings":"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","file":"/Users/jeff/code/oss/logsdx/dist/chunk-Q46SBW3R.cjs","sourcesContent":[null,"import { readFileSync } from \"fs\";\nimport { resolve } from \"path\";\nimport { homedir } from \"os\";\nimport type { ThemeConfig } from \"./styles\";\nimport { THEMES } from \"./styles\";\n\nexport const CONFIG_FILES = [\n  \".logsdxrc\", // Project root\n  \".logsdxrc.json\", // Project root (explicit JSON)\n  \".config/logsdx/config.json\", // User config (XDG)\n];\n\nexport type LogsDXConfig = {\n  theme?: keyof typeof THEMES | Partial<ThemeConfig>;\n  customThemes?: {\n    [key: string]: Partial<ThemeConfig>;\n  };\n};\n\n/**\n * Load config from the first available config file\n * @returns The loaded config or null if no config found\n */\nexport function loadConfig(): LogsDXConfig | null {\n  const home = homedir();\n\n  // Try current directory first, then home directory\n  for (const configFile of CONFIG_FILES) {\n    try {\n      // Try project directory\n      const projectPath = resolve(process.cwd(), configFile);\n      try {\n        const content = readFileSync(projectPath, \"utf-8\");\n        return JSON.parse(content);\n      } catch (e) {\n        // Project config doesn't exist, try home directory\n      }\n\n      // Try home directory\n      const homePath = resolve(home, configFile);\n      try {\n        const content = readFileSync(homePath, \"utf-8\");\n        return JSON.parse(content);\n      } catch (e) {\n        // Home config doesn't exist, continue to next file\n      }\n    } catch (error) {\n      // Skip files that don't exist or can't be read\n    }\n  }\n\n  return null;\n}\n\n/**\n * Load a theme from a file\n * @param themePath Path to the theme file\n * @returns The loaded theme or null if loading fails\n */\nexport function loadThemeFromFile(\n  themePath: string,\n): Partial<ThemeConfig> | null {\n  try {\n    const content = readFileSync(themePath, \"utf-8\");\n    return JSON.parse(content);\n  } catch (error) {\n    return null;\n  }\n}\n\n/**\n * Get all available themes (built-in and custom)\n * @param config The LogsDX config\n * @returns Map of theme names to their configurations\n */\nexport function getAllThemes(\n  config: LogsDXConfig | null,\n): Map<string, ThemeConfig> {\n  const themes = new Map<string, ThemeConfig>();\n\n  // Add built-in themes\n  Object.entries(THEMES).forEach(([name, theme]) => {\n    themes.set(name, theme);\n  });\n\n  // Add custom themes from config\n  if (config?.customThemes) {\n    Object.entries(config.customThemes).forEach(([name, theme]) => {\n      themes.set(name, {\n        name,\n        levels: { ...THEMES.default.levels, ...theme.levels },\n        fields: { ...THEMES.default.fields, ...theme.fields },\n        status: { ...THEMES.default.status, ...theme.status },\n        patterns: { ...THEMES.default.patterns, ...theme.patterns },\n        elements: {\n          brackets: {\n            ...THEMES.default.elements.brackets,\n            ...theme.elements?.brackets,\n          },\n          keyValue: {\n            key: {\n              ...THEMES.default.elements.keyValue.key,\n              ...theme.elements?.keyValue?.key,\n            },\n            separator: {\n              ...THEMES.default.elements.keyValue.separator,\n              ...theme.elements?.keyValue?.separator,\n            },\n            value: {\n              ...THEMES.default.elements.keyValue.value,\n              ...theme.elements?.keyValue?.value,\n            },\n          },\n        },\n      });\n    });\n  }\n\n  return themes;\n}\n","import chalk, { type ChalkInstance } from \"chalk\";\nimport JSON5 from \"json5\";\nimport type { LogLevel } from \"@/src/types\";\nimport { loadConfig } from \"./loader\";\n\n// Force chalk to use colors (level 3) for consistent testing\nchalk.level = 3;\n\n// Theme configuration type\nexport type ThemeConfig = {\n  name: string;\n  levels: {\n    [key in LogLevel]?: {\n      color: string;\n      bold?: boolean;\n      dim?: boolean;\n      italic?: boolean;\n    };\n  };\n  fields: {\n    [key: string]: {\n      color: string;\n      bold?: boolean;\n      dim?: boolean;\n      italic?: boolean;\n    };\n  };\n  status: {\n    [key: string]: {\n      color: string;\n      bold?: boolean;\n      dim?: boolean;\n      italic?: boolean;\n    };\n  };\n  patterns: {\n    [key: string]: {\n      regex: string | RegExp;\n      color: string;\n      bold?: boolean;\n      dim?: boolean;\n      italic?: boolean;\n    };\n  };\n  elements: {\n    brackets: {\n      color: string;\n      bold?: boolean;\n      dim?: boolean;\n      italic?: boolean;\n    };\n    keyValue: {\n      key: {\n        color: string;\n        bold?: boolean;\n        dim?: boolean;\n        italic?: boolean;\n      };\n      separator: {\n        color: string;\n        bold?: boolean;\n        dim?: boolean;\n        italic?: boolean;\n      };\n      value: {\n        color: string;\n        bold?: boolean;\n        dim?: boolean;\n        italic?: boolean;\n      };\n    };\n  };\n};\n\n// Built-in themes\nexport const THEMES = {\n  default: {\n    name: \"default\",\n    levels: {\n      error: { color: \"red\", bold: true },\n      warn: { color: \"yellow\" },\n      info: { color: \"blue\" },\n      debug: { color: \"gray\", dim: true },\n      success: { color: \"green\" },\n      trace: { color: \"white\", dim: true },\n    },\n    fields: {\n      timestamp: { color: \"gray\" },\n      service: { color: \"cyan\" },\n      action: { color: \"magenta\" },\n      user: { color: \"blue\" },\n      duration: { color: \"yellow\" },\n      requestId: { color: \"gray\" },\n      correlationId: { color: \"gray\" },\n      environment: { color: \"green\" },\n      version: { color: \"magenta\" },\n      method: { color: \"cyan\" },\n      path: { color: \"white\" },\n      statusCode: { color: \"yellow\" },\n      ip: { color: \"gray\" },\n      userAgent: { color: \"gray\", dim: true },\n    },\n    status: {\n      success: { color: \"green\" },\n      failure: { color: \"red\" },\n      error: { color: \"red\" },\n      pending: { color: \"yellow\" },\n      cancelled: { color: \"gray\" },\n      timeout: { color: \"red\" },\n    },\n    patterns: {\n      error: {\n        regex: /\\b(error|exception|failed|failure)\\b/i,\n        color: \"red\",\n        bold: true,\n      },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"yellow\" },\n      success: { regex: /\\b(success|succeeded|completed)\\b/i, color: \"green\" },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"cyan\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"blue\", italic: true },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"gray\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"blue\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"magenta\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"gray\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"white\" },\n    },\n    elements: {\n      brackets: { color: \"yellow\" },\n      keyValue: {\n        key: { color: \"cyan\" },\n        separator: { color: \"gray\" },\n        value: { color: \"white\" },\n      },\n    },\n  },\n  dark: {\n    name: \"dark\",\n    levels: {\n      error: { color: \"#ff5555\", bold: true },\n      warn: { color: \"#ffb86c\" },\n      info: { color: \"#8be9fd\" },\n      debug: { color: \"#6272a4\", dim: true },\n      success: { color: \"#50fa7b\" },\n      trace: { color: \"#f8f8f2\", dim: true },\n    },\n    fields: {\n      timestamp: { color: \"#6272a4\" },\n      service: { color: \"#8be9fd\" },\n      action: { color: \"#bd93f9\" },\n      user: { color: \"#8be9fd\" },\n      duration: { color: \"#ffb86c\" },\n      requestId: { color: \"#6272a4\" },\n      correlationId: { color: \"#6272a4\" },\n      environment: { color: \"#50fa7b\" },\n      version: { color: \"#bd93f9\" },\n      method: { color: \"#8be9fd\" },\n      path: { color: \"#f8f8f2\" },\n      statusCode: { color: \"#ffb86c\" },\n      ip: { color: \"#6272a4\" },\n      userAgent: { color: \"#6272a4\", dim: true },\n    },\n    status: {\n      success: { color: \"#50fa7b\" },\n      failure: { color: \"#ff5555\" },\n      error: { color: \"#ff5555\" },\n      pending: { color: \"#ffb86c\" },\n      cancelled: { color: \"#6272a4\" },\n      timeout: { color: \"#ff5555\" },\n    },\n    patterns: {\n      error: {\n        regex: /\\b(error|exception|failed|failure)\\b/i,\n        color: \"#ff5555\",\n        bold: true,\n      },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"#ffb86c\" },\n      success: {\n        regex: /\\b(success|succeeded|completed)\\b/i,\n        color: \"#50fa7b\",\n      },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"#8be9fd\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"#8be9fd\", italic: true },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"#6272a4\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"#8be9fd\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"#bd93f9\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"#6272a4\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"#f8f8f2\" },\n    },\n    elements: {\n      brackets: { color: \"#6272a4\" },\n      keyValue: {\n        key: { color: \"#8be9fd\" },\n        separator: { color: \"#6272a4\" },\n        value: { color: \"#f8f8f2\" },\n      },\n    },\n  },\n  light: {\n    name: \"light\",\n    levels: {\n      error: { color: \"#d32f2f\", bold: true },\n      warn: { color: \"#f57c00\" },\n      info: { color: \"#1976d2\" },\n      debug: { color: \"#757575\", dim: true },\n      success: { color: \"#388e3c\" },\n      trace: { color: \"#212121\", dim: true },\n    },\n    fields: {\n      timestamp: { color: \"#757575\" },\n      service: { color: \"#0097a7\" },\n      action: { color: \"#7b1fa2\" },\n      user: { color: \"#1976d2\" },\n      duration: { color: \"#f57c00\" },\n      requestId: { color: \"#757575\" },\n      correlationId: { color: \"#757575\" },\n      environment: { color: \"#388e3c\" },\n      version: { color: \"#7b1fa2\" },\n      method: { color: \"#0097a7\" },\n      path: { color: \"#212121\" },\n      statusCode: { color: \"#f57c00\" },\n      ip: { color: \"#757575\" },\n      userAgent: { color: \"#757575\", dim: true },\n    },\n    status: {\n      success: { color: \"#388e3c\" },\n      failure: { color: \"#d32f2f\" },\n      error: { color: \"#d32f2f\" },\n      pending: { color: \"#f57c00\" },\n      cancelled: { color: \"#757575\" },\n      timeout: { color: \"#d32f2f\" },\n    },\n    patterns: {\n      error: {\n        regex: /\\b(error|exception|failed|failure)\\b/i,\n        color: \"#d32f2f\",\n        bold: true,\n      },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"#f57c00\" },\n      success: {\n        regex: /\\b(success|succeeded|completed)\\b/i,\n        color: \"#388e3c\",\n      },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"#0097a7\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"#1976d2\", italic: true },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"#757575\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"#1976d2\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"#7b1fa2\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"#757575\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"#212121\" },\n    },\n    elements: {\n      brackets: { color: \"#757575\" },\n      keyValue: {\n        key: { color: \"#0097a7\" },\n        separator: { color: \"#757575\" },\n        value: { color: \"#212121\" },\n      },\n    },\n  },\n  minimal: {\n    name: \"minimal\",\n    levels: {\n      error: { color: \"red\" },\n      warn: { color: \"yellow\" },\n      info: { color: \"white\" },\n      debug: { color: \"gray\", dim: true },\n      success: { color: \"green\" },\n      trace: { color: \"gray\", dim: true },\n    },\n    fields: {\n      timestamp: { color: \"gray\" },\n      service: { color: \"white\" },\n      action: { color: \"white\" },\n      user: { color: \"white\" },\n      duration: { color: \"white\" },\n      requestId: { color: \"gray\" },\n      correlationId: { color: \"gray\" },\n      environment: { color: \"white\" },\n      version: { color: \"white\" },\n      method: { color: \"white\" },\n      path: { color: \"white\" },\n      statusCode: { color: \"white\" },\n      ip: { color: \"gray\" },\n      userAgent: { color: \"gray\", dim: true },\n    },\n    status: {\n      success: { color: \"green\" },\n      failure: { color: \"red\" },\n      error: { color: \"red\" },\n      pending: { color: \"yellow\" },\n      cancelled: { color: \"gray\" },\n      timeout: { color: \"red\" },\n    },\n    patterns: {\n      error: { regex: /\\b(error|exception|failed|failure)\\b/i, color: \"red\" },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"yellow\" },\n      success: { regex: /\\b(success|succeeded|completed)\\b/i, color: \"green\" },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"white\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"white\" },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"gray\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"white\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"white\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"gray\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"white\" },\n    },\n    elements: {\n      brackets: { color: \"gray\" },\n      keyValue: {\n        key: { color: \"white\" },\n        separator: { color: \"gray\" },\n        value: { color: \"white\" },\n      },\n    },\n  },\n  dracula: {\n    name: \"dracula\",\n    levels: {\n      error: { color: \"#ff5555\", bold: true }, // Red\n      warn: { color: \"#f1fa8c\" }, // Yellow\n      info: { color: \"#8be9fd\" }, // Cyan\n      debug: { color: \"#6272a4\", dim: true }, // Comment Purple\n      success: { color: \"#50fa7b\" }, // Green\n      trace: { color: \"#f8f8f2\", dim: true }, // Foreground\n    },\n    fields: {\n      timestamp: { color: \"#6272a4\" },\n      service: { color: \"#ff79c6\" }, // Pink\n      action: { color: \"#bd93f9\" }, // Purple\n      user: { color: \"#8be9fd\" }, // Cyan (Placeholder - adjust if needed)\n      duration: { color: \"#f1fa8c\" }, // Yellow\n      requestId: { color: \"#6272a4\" },\n      correlationId: { color: \"#6272a4\" },\n      environment: { color: \"#50fa7b\" }, // Green\n      version: { color: \"#bd93f9\" }, // Purple\n      method: { color: \"#8be9fd\" }, // Cyan\n      path: { color: \"#f8f8f2\" }, // Foreground\n      statusCode: { color: \"#ffb86c\" }, // Orange\n      ip: { color: \"#6272a4\" },\n      userAgent: { color: \"#6272a4\", dim: true },\n    },\n    status: {\n      success: { color: \"#50fa7b\" },\n      failure: { color: \"#ff5555\" },\n      error: { color: \"#ff5555\" },\n      pending: { color: \"#f1fa8c\" },\n      cancelled: { color: \"#6272a4\" },\n      timeout: { color: \"#ff5555\" },\n    },\n    patterns: {\n      // Colors adjusted to match Dracula\n      error: {\n        regex: /\\b(error|exception|failed|failure)\\b/i,\n        color: \"#ff5555\",\n        bold: true,\n      },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"#f1fa8c\" },\n      success: {\n        regex: /\\b(success|succeeded|completed)\\b/i,\n        color: \"#50fa7b\",\n      },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"#8be9fd\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"#8be9fd\", italic: true },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"#6272a4\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"#8be9fd\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"#bd93f9\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"#6272a4\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"#f8f8f2\" },\n    },\n    elements: {\n      brackets: { color: \"#f8f8f2\" }, // Foreground for {}, [], \"\n      keyValue: {\n        key: { color: \"#8be9fd\" }, // Cyan for keys\n        separator: { color: \"#ff79c6\" }, // Pink for :\n        value: { color: \"#f8f8f2\" }, // Foreground for values\n      },\n    },\n  },\n\n  githubLight: {\n    name: \"githubLight\",\n    levels: {\n      error: { color: \"#d73a49\", bold: true }, // Red-600\n      warn: { color: \"#b08800\" }, // Yellow-700\n      info: { color: \"#0366d6\" }, // Blue-600\n      debug: { color: \"#586069\", dim: true }, // Gray-600\n      success: { color: \"#22863a\" }, // Green-600\n      trace: { color: \"#24292e\", dim: true }, // Gray-900 (Default Text)\n    },\n    fields: {\n      timestamp: { color: \"#586069\" },\n      service: { color: \"#6f42c1\" }, // Purple-600\n      action: { color: \"#005cc5\" }, // Blue-700\n      user: { color: \"#0366d6\" }, // Blue-600\n      duration: { color: \"#e36209\" }, // Orange-600\n      requestId: { color: \"#586069\" },\n      correlationId: { color: \"#586069\" },\n      environment: { color: \"#22863a\" }, // Green-600\n      version: { color: \"#6f42c1\" }, // Purple-600\n      method: { color: \"#005cc5\" }, // Blue-700\n      path: { color: \"#24292e\" }, // Gray-900\n      statusCode: { color: \"#b08800\" }, // Yellow-700\n      ip: { color: \"#586069\" },\n      userAgent: { color: \"#586069\", dim: true },\n    },\n    status: {\n      success: { color: \"#22863a\" },\n      failure: { color: \"#d73a49\" },\n      error: { color: \"#d73a49\" },\n      pending: { color: \"#b08800\" },\n      cancelled: { color: \"#586069\" },\n      timeout: { color: \"#d73a49\" },\n    },\n    patterns: {\n      error: {\n        regex: /\\b(error|exception|failed|failure)\\b/i,\n        color: \"#d73a49\",\n        bold: true,\n      },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"#b08800\" },\n      success: {\n        regex: /\\b(success|succeeded|completed)\\b/i,\n        color: \"#22863a\",\n      },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"#005cc5\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"#0366d6\", italic: true },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"#586069\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"#0366d6\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"#6f42c1\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"#586069\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"#24292e\" },\n    },\n    elements: {\n      brackets: { color: \"#586069\" },\n      keyValue: {\n        key: { color: \"#005cc5\" },\n        separator: { color: \"#586069\" },\n        value: { color: \"#24292e\" },\n      },\n    },\n  },\n  githubDark: {\n    name: \"githubDark\",\n    levels: {\n      error: { color: \"#f97583\", bold: true },\n      warn: { color: \"#dbab09\" },\n      info: { color: \"#79b8ff\" },\n      debug: { color: \"#6a737d\", dim: true },\n      success: { color: \"#85e89d\" },\n      trace: { color: \"#d1d5da\", dim: true },\n    },\n    fields: {\n      timestamp: { color: \"#6a737d\" },\n      service: { color: \"#b392f0\" },\n      action: { color: \"#58a6ff\" },\n      user: { color: \"#79b8ff\" },\n      duration: { color: \"#ffab70\" },\n      requestId: { color: \"#6a737d\" },\n      correlationId: { color: \"#6a737d\" },\n      environment: { color: \"#85e89d\" },\n      version: { color: \"#b392f0\" },\n      method: { color: \"#58a6ff\" },\n      path: { color: \"#d1d5da\" },\n      statusCode: { color: \"#dbab09\" },\n      ip: { color: \"#6a737d\" },\n      userAgent: { color: \"#6a737d\", dim: true },\n    },\n    status: {\n      success: { color: \"#85e89d\" },\n      failure: { color: \"#f97583\" },\n      error: { color: \"#f97583\" },\n      pending: { color: \"#dbab09\" },\n      cancelled: { color: \"#6a737d\" },\n      timeout: { color: \"#f97583\" },\n    },\n    patterns: {\n      error: {\n        regex: /\\b(error|exception|failed|failure)\\b/i,\n        color: \"#f97583\",\n        bold: true,\n      },\n      warning: { regex: /\\b(warning|warn|caution)\\b/i, color: \"#dbab09\" },\n      success: {\n        regex: /\\b(success|succeeded|completed)\\b/i,\n        color: \"#85e89d\",\n      },\n      http: {\n        regex: /\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)\\b/,\n        color: \"#58a6ff\",\n      },\n      url: { regex: /https?:\\/\\/[^\\s]+/, color: \"#79b8ff\", italic: true },\n      ip: { regex: /\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/, color: \"#6a737d\" },\n      email: { regex: /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w+\\b/, color: \"#79b8ff\" },\n      uuid: {\n        regex:\n          /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n        color: \"#b392f0\",\n      },\n      timestamp: {\n        regex:\n          /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?\\b/,\n        color: \"#6a737d\",\n      },\n      json: { regex: /\\{.*\\}|\\[.*\\]/, color: \"#d1d5da\" },\n    },\n    elements: {\n      brackets: { color: \"#6a737d\" },\n      keyValue: {\n        key: { color: \"#79b8ff\" },\n        separator: { color: \"#6a737d\" },\n        value: { color: \"#d1d5da\" },\n      },\n    },\n  },\n} as const;\n\n// Create a chalk style from theme config\nexport function createStyle(\n  config:\n    | ThemeConfig[\"levels\"][LogLevel]\n    | ThemeConfig[\"fields\"][string]\n    | ThemeConfig[\"status\"][string]\n    | ThemeConfig[\"patterns\"][string]\n    | ThemeConfig[\"elements\"][\"brackets\"]\n    | ThemeConfig[\"elements\"][\"keyValue\"][\"key\"]\n    | ThemeConfig[\"elements\"][\"keyValue\"][\"separator\"]\n    | ThemeConfig[\"elements\"][\"keyValue\"][\"value\"],\n): ChalkInstance {\n  if (!config) return chalk.white;\n\n  const color = config.color;\n  let style: ChalkInstance;\n\n  // Handle hex colors\n  if (color.startsWith(\"#\")) {\n    style = chalk.hex(color);\n  } else {\n    // Handle chalk colors\n    style =\n      (chalk[color as keyof typeof chalk] as ChalkInstance) || chalk.white;\n  }\n\n  if (config.bold) style = style.bold;\n  if (config.dim) style = style.dim;\n  if (config.italic) style = style.italic;\n  return style;\n}\n\n// Style manager class for handling themes and caching\nexport class StyleManager {\n  private static instance: StyleManager;\n  public currentTheme: ThemeConfig;\n  private styleCache: Map<string, ChalkInstance>;\n  private patternCache: Map<string, { regex: RegExp; style: ChalkInstance }>;\n\n  private constructor() {\n    this.currentTheme = THEMES.default;\n    this.styleCache = new Map();\n    this.patternCache = new Map();\n    this.initializeCache();\n  }\n\n  public static getInstance(): StyleManager {\n    if (!StyleManager.instance) {\n      StyleManager.instance = new StyleManager();\n    }\n    return StyleManager.instance;\n  }\n\n  private initializeCache(): void {\n    // Cache level styles\n    Object.entries(this.currentTheme.levels).forEach(([level, config]) => {\n      this.styleCache.set(`level:${level}`, createStyle(config));\n    });\n\n    // Cache field styles\n    Object.entries(this.currentTheme.fields).forEach(([field, config]) => {\n      this.styleCache.set(`field:${field}`, createStyle(config));\n    });\n\n    // Cache status styles\n    Object.entries(this.currentTheme.status).forEach(([status, config]) => {\n      this.styleCache.set(`status:${status}`, createStyle(config));\n    });\n\n    // Cache element styles\n    this.styleCache.set(\n      \"brackets\",\n      createStyle(this.currentTheme.elements.brackets),\n    );\n    this.styleCache.set(\n      \"keyValue:key\",\n      createStyle(this.currentTheme.elements.keyValue.key),\n    );\n    this.styleCache.set(\n      \"keyValue:separator\",\n      createStyle(this.currentTheme.elements.keyValue.separator),\n    );\n    this.styleCache.set(\n      \"keyValue:value\",\n      createStyle(this.currentTheme.elements.keyValue.value),\n    );\n\n    // Cache pattern styles\n    Object.entries(this.currentTheme.patterns).forEach(([pattern, config]) => {\n      this.patternCache.set(pattern, {\n        regex:\n          typeof config.regex === \"string\"\n            ? new RegExp(config.regex)\n            : config.regex,\n        style: createStyle(config),\n      });\n    });\n  }\n\n  public setTheme(\n    themeName: keyof typeof THEMES | Partial<ThemeConfig> | string,\n  ): void {\n    if (typeof themeName === \"string\") {\n      // Check if it's a built-in theme\n      if (themeName in THEMES) {\n        this.currentTheme = THEMES[themeName as keyof typeof THEMES];\n      } else {\n        // Try to load from config\n        const config = loadConfig();\n        if (\n          config?.customThemes &&\n          themeName in config.customThemes &&\n          config.customThemes[themeName]\n        ) {\n          // Ensure we have a valid theme config by merging with default\n          const customTheme = {\n            ...THEMES.default,\n            ...config.customThemes[themeName],\n            name: themeName,\n          };\n          this.currentTheme = customTheme;\n        } else {\n          // Fall back to default theme if not found\n          this.currentTheme = THEMES.default;\n        }\n      }\n    } else {\n      // Merge with default theme to ensure all required properties are present\n      this.currentTheme = {\n        name: themeName.name || \"custom\",\n        levels: { ...THEMES.default.levels, ...themeName.levels },\n        fields: { ...THEMES.default.fields, ...themeName.fields },\n        status: { ...THEMES.default.status, ...themeName.status },\n        patterns: { ...THEMES.default.patterns, ...themeName.patterns },\n        elements: {\n          brackets: {\n            ...THEMES.default.elements.brackets,\n            ...themeName.elements?.brackets,\n          },\n          keyValue: {\n            key: {\n              ...THEMES.default.elements.keyValue.key,\n              ...themeName.elements?.keyValue?.key,\n            },\n            separator: {\n              ...THEMES.default.elements.keyValue.separator,\n              ...themeName.elements?.keyValue?.separator,\n            },\n            value: {\n              ...THEMES.default.elements.keyValue.value,\n              ...themeName.elements?.keyValue?.value,\n            },\n          },\n        },\n      };\n    }\n    this.styleCache.clear();\n    this.patternCache.clear();\n    this.initializeCache();\n  }\n\n  public getLevelStyle(level: LogLevel): ChalkInstance {\n    return this.styleCache.get(`level:${level}`) || chalk.white;\n  }\n\n  public getFieldStyle(field: string): ChalkInstance {\n    return this.styleCache.get(`field:${field}`) || chalk.white;\n  }\n\n  public getStatusStyle(status: string): ChalkInstance {\n    return this.styleCache.get(`status:${status}`) || chalk.white;\n  }\n\n  public getBracketStyle(): ChalkInstance {\n    return this.styleCache.get(\"brackets\") || chalk.gray;\n  }\n\n  public getKeyValueStyles(): {\n    key: ChalkInstance;\n    separator: ChalkInstance;\n    value: ChalkInstance;\n  } {\n    return {\n      key: this.styleCache.get(\"keyValue:key\") || chalk.cyan,\n      separator: this.styleCache.get(\"keyValue:separator\") || chalk.gray,\n      value: this.styleCache.get(\"keyValue:value\") || chalk.white,\n    };\n  }\n\n  public applyPatternStyles(text: string): string {\n    let result = text;\n\n    // Sort patterns by length (longest first) to avoid overlapping matches\n    const sortedPatterns = Array.from(this.patternCache.entries()).sort(\n      (a, b) => {\n        const aLength = a[1].regex.toString().length;\n        const bLength = b[1].regex.toString().length;\n        return bLength - aLength;\n      },\n    );\n\n    for (const [_, { regex, style }] of sortedPatterns) {\n      result = result.replace(regex, (match) => style(match));\n    }\n\n    return result;\n  }\n\n  public formatJson(obj: Record<string, any>): string {\n    const lines: string[] = [];\n    const bracketStyle = this.getBracketStyle();\n    const {\n      key: keyStyle,\n      separator: separatorStyle,\n      value: valueStyle,\n    } = this.getKeyValueStyles();\n\n    lines.push(bracketStyle(\"{\"));\n\n    const entries = Object.entries(obj);\n    const lastEntry = entries[entries.length - 1];\n\n    for (const [key, val] of entries) {\n      const formattedValue =\n        typeof val === \"object\" ? JSON.stringify(val, null, 2) : String(val);\n      const isLast = lastEntry && lastEntry[0] === key;\n      lines.push(\n        `  ${bracketStyle('\"')}${keyStyle(key)}${bracketStyle('\"')}${separatorStyle(\":\")} ${valueStyle(formattedValue)}${isLast ? \"\" : separatorStyle(\",\")}`,\n      );\n    }\n\n    lines.push(bracketStyle(\"}\"));\n    return lines.join(\"\\n\");\n  }\n\n  styleLine(\n    line: string,\n    parsed?: { level?: LogLevel; [key: string]: any },\n    parserName?: string,\n  ): string {\n    // If parser is json, try to format it compactly\n    if (parserName === \"json\") {\n      try {\n        const json = JSON5.parse(line);\n        return formatJsonCompact(json, this); // Use the compact formatter\n      } catch (error) {\n        // JSON parsing failed, fall back to default styling for the raw line\n        // Use level from parsed object if available, otherwise default to 'info'\n        const level = parsed?.level || \"info\";\n        const style = this.getLevelStyle(level);\n        return this.applyPatternStyles(style(line));\n      }\n    }\n\n    // Fallback for non-JSON parsers or if parsing failed above\n    const level = parsed?.level || \"info\";\n    const style = this.getLevelStyle(level);\n    const styledLine = style(line);\n    return this.applyPatternStyles(styledLine);\n  }\n}\n\n// Export singleton instance\nexport const styleManager = StyleManager.getInstance();\n\n// UPDATE: Accept optional parserName and pass it to the manager's method\nexport const styleLine = (\n  line: string,\n  parsed?: { level?: LogLevel; [key: string]: any },\n  parserName?: string, // Added parserName argument\n): string => {\n  // Remove the previous logic, delegate entirely to the manager instance\n  return styleManager.styleLine(line, parsed, parserName);\n\n  // OLD Logic moved/modified into styleManager.styleLine:\n  // if (parsed.language === \"json\") { ... }\n  // Apply level-based styling\n  // const level = parsed.level || \"info\";\n  // const styledLine = styleManager.getLevelStyle(level)(line);\n  // Apply pattern-based styling\n  // return styleManager.applyPatternStyles(styledLine);\n};\n\n// Export theme-related functions\nexport const setTheme = (\n  theme: keyof typeof THEMES | Partial<ThemeConfig> | string,\n): void => {\n  if (typeof theme === \"string\") {\n    // Check if it's a built-in theme\n    if (theme in THEMES) {\n      styleManager.setTheme(theme as keyof typeof THEMES);\n    } else {\n      // Try to load from config\n      const config = loadConfig();\n      if (\n        config?.customThemes &&\n        theme in config.customThemes &&\n        config.customThemes[theme]\n      ) {\n        // Ensure we have a valid theme config by merging with default\n        const customTheme = {\n          ...THEMES.default,\n          ...config.customThemes[theme],\n          name: theme,\n        };\n        styleManager.setTheme(customTheme);\n      } else {\n        // Fall back to default theme if not found\n        styleManager.setTheme(\"default\");\n      }\n    }\n  } else {\n    styleManager.setTheme(theme);\n  }\n};\n\nexport const getTheme = () => styleManager.currentTheme;\n\n// NEW function: Format JSON compactly on a single line with colors\nexport function formatJsonCompact(\n  obj: any,\n  styleManager: StyleManager,\n  isRoot = true,\n): string {\n  const bracketStyle = styleManager.getBracketStyle();\n  const {\n    key: keyStyle,\n    separator: separatorStyle,\n    value: valueStyle,\n  } = styleManager.getKeyValueStyles();\n\n  if (obj === null) {\n    return valueStyle(\"null\");\n  }\n  if (typeof obj === \"string\") {\n    // NEW: Style quotes with bracketStyle, content with valueStyle\n    return `${bracketStyle('\"')}${valueStyle(obj)}${bracketStyle('\"')}`;\n  }\n  if (typeof obj === \"number\" || typeof obj === \"boolean\") {\n    return valueStyle(String(obj));\n  }\n\n  if (Array.isArray(obj)) {\n    const items = obj\n      .map((item) => formatJsonCompact(item, styleManager, false))\n      .join(separatorStyle(\", \"));\n    return `${bracketStyle(\"[\")}${items}${bracketStyle(\"]\")}`;\n  }\n\n  if (typeof obj === \"object\") {\n    const entries = Object.entries(obj)\n      .map(([key, value]) => {\n        const formattedKey = `${bracketStyle('\"')}${keyStyle(key)}${bracketStyle('\"')}`;\n        const formattedValue = formatJsonCompact(value, styleManager, false);\n        return `${formattedKey}${separatorStyle(\":\")}${formattedValue}`;\n      })\n      .join(separatorStyle(\", \"));\n    return `${bracketStyle(\"{\")}${entries}${bracketStyle(\"}\")}`;\n  }\n\n  // Fallback for unexpected types\n  return valueStyle(String(obj));\n}\n"]}