azurajs 3.0.8 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,9 +32,10 @@ declare function hexToAnsi(hex: string): string;
32
32
  declare function rgbToAnsi(r: number, g: number, b: number): string;
33
33
  type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;
34
34
  /**
35
- * Logger de consola estilo legacy: `logger("success", "ok")`, `logger("fatal", msg)`.
35
+ * Logger de consola estilo legacy. Exportado como `logger` em `azurajs/logger`
36
+ * (nome interno distinto de `Logger` para o TypeScript não fundir os dois símbolos).
36
37
  */
37
- declare function logger(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void;
38
+ declare function consoleLog(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void;
38
39
  declare const log: {
39
40
  debug: (msg: string, options?: LoggerConfig) => void;
40
41
  info: (msg: string, options?: LoggerConfig) => void;
@@ -81,4 +82,4 @@ declare const colors: {
81
82
  dim: string;
82
83
  };
83
84
 
84
- export { type ConsoleLogLevel, type LoggerConfig, colors, configureLogger, log, logger };
85
+ export { type ConsoleLogLevel, type LoggerConfig, colors, configureLogger, consoleLog, log, consoleLog as logger };
@@ -32,9 +32,10 @@ declare function hexToAnsi(hex: string): string;
32
32
  declare function rgbToAnsi(r: number, g: number, b: number): string;
33
33
  type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;
34
34
  /**
35
- * Logger de consola estilo legacy: `logger("success", "ok")`, `logger("fatal", msg)`.
35
+ * Logger de consola estilo legacy. Exportado como `logger` em `azurajs/logger`
36
+ * (nome interno distinto de `Logger` para o TypeScript não fundir os dois símbolos).
36
37
  */
37
- declare function logger(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void;
38
+ declare function consoleLog(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void;
38
39
  declare const log: {
39
40
  debug: (msg: string, options?: LoggerConfig) => void;
40
41
  info: (msg: string, options?: LoggerConfig) => void;
@@ -81,4 +82,4 @@ declare const colors: {
81
82
  dim: string;
82
83
  };
83
84
 
84
- export { type ConsoleLogLevel, type LoggerConfig, colors, configureLogger, log, logger };
85
+ export { type ConsoleLogLevel, type LoggerConfig, colors, configureLogger, consoleLog, log, consoleLog as logger };
@@ -219,7 +219,7 @@ function formatTimestamp(format) {
219
219
  return now.toLocaleTimeString();
220
220
  }
221
221
  }
222
- function logger(level, msg, options) {
222
+ function consoleLog(level, msg, options) {
223
223
  const config = { ...globalConfig, ...options };
224
224
  const colors2 = { ...DEFAULT_COLORS, ...config.colors };
225
225
  const icons = { ...DEFAULT_ICONS, ...config.icons };
@@ -248,14 +248,14 @@ function logger(level, msg, options) {
248
248
  consoleMethod(output);
249
249
  }
250
250
  var log = {
251
- debug: (msg, options) => logger("debug", msg, options),
252
- info: (msg, options) => logger("info", msg, options),
253
- success: (msg, options) => logger("success", msg, options),
254
- warn: (msg, options) => logger("warn", msg, options),
255
- error: (msg, options) => logger("error", msg, options),
256
- fatal: (msg, options) => logger("fatal", msg, options),
257
- trace: (msg, options) => logger("trace", msg, options),
258
- log: (msg, options) => logger("log", msg, options)
251
+ debug: (msg, options) => consoleLog("debug", msg, options),
252
+ info: (msg, options) => consoleLog("info", msg, options),
253
+ success: (msg, options) => consoleLog("success", msg, options),
254
+ warn: (msg, options) => consoleLog("warn", msg, options),
255
+ error: (msg, options) => consoleLog("error", msg, options),
256
+ fatal: (msg, options) => consoleLog("fatal", msg, options),
257
+ trace: (msg, options) => consoleLog("trace", msg, options),
258
+ log: (msg, options) => consoleLog("log", msg, options)
259
259
  };
260
260
  var colors = {
261
261
  hex: hexToAnsi,
@@ -270,7 +270,8 @@ var colors = {
270
270
  exports.Logger = Logger;
271
271
  exports.colors = colors;
272
272
  exports.configureLogger = configureLogger;
273
+ exports.consoleLog = consoleLog;
273
274
  exports.log = log;
274
- exports.logger = logger;
275
+ exports.logger = consoleLog;
275
276
  //# sourceMappingURL=index.js.map
276
277
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/Logger.ts","../../src/types/utils/colors.type.ts","../../src/types/utils/icons.type.ts","../../src/utils/consoleLogger.ts"],"names":["colors"],"mappings":"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","file":"index.js","sourcesContent":["type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\" | \"silent\";\r\n\r\nconst LEVEL_PRIORITY: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n silent: 4,\r\n};\r\n\r\nconst COLORS = {\r\n reset: \"\\x1b[0m\",\r\n bold: \"\\x1b[1m\",\r\n dim: \"\\x1b[2m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n} as const;\r\n\r\nconst METHOD_COLORS: Record<string, string> = {\r\n GET: COLORS.green,\r\n POST: COLORS.blue,\r\n PUT: COLORS.yellow,\r\n DELETE: COLORS.red,\r\n PATCH: COLORS.magenta,\r\n HEAD: COLORS.cyan,\r\n OPTIONS: COLORS.gray,\r\n};\r\n\r\nfunction statusColor(code: number): string {\r\n if (code < 200) return COLORS.gray;\r\n if (code < 300) return COLORS.green;\r\n if (code < 400) return COLORS.cyan;\r\n if (code < 500) return COLORS.yellow;\r\n return COLORS.red;\r\n}\r\n\r\nfunction formatDuration(ns: bigint): string {\r\n const us = Number(ns) / 1_000;\r\n if (us < 1_000) return `${us.toFixed(0)}µs`;\r\n const ms = us / 1_000;\r\n if (ms < 1_000) return `${ms.toFixed(1)}ms`;\r\n return `${(ms / 1_000).toFixed(2)}s`;\r\n}\r\n\r\nexport class Logger {\r\n private level: LogLevel;\r\n private useColors: boolean;\r\n private showTimestamp: boolean;\r\n private prefix: string;\r\n\r\n constructor(options: {\r\n level?: LogLevel;\r\n colors?: boolean;\r\n timestamp?: boolean;\r\n prefix?: string;\r\n } = {}) {\r\n this.level = options.level ?? \"info\";\r\n this.useColors = options.colors ?? process.stdout.isTTY !== false;\r\n this.showTimestamp = options.timestamp ?? true;\r\n this.prefix = options.prefix ?? \"azura\";\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[this.level];\r\n }\r\n\r\n private timestamp(): string {\r\n if (!this.showTimestamp) return \"\";\r\n const now = new Date();\r\n return `${COLORS.gray}${now.toISOString().slice(11, 23)}${COLORS.reset} `;\r\n }\r\n\r\n private tag(level: LogLevel): string {\r\n if (!this.useColors) return `[${level.toUpperCase()}]`;\r\n const colorMap: Record<string, string> = {\r\n debug: COLORS.gray,\r\n info: COLORS.blue,\r\n warn: COLORS.yellow,\r\n error: COLORS.red,\r\n };\r\n return `${colorMap[level] ?? \"\"}[${level.toUpperCase()}]${COLORS.reset}`;\r\n }\r\n\r\n debug(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"debug\")) return;\r\n console.debug(`${this.timestamp()}${this.tag(\"debug\")} ${message}`, ...args);\r\n }\r\n\r\n info(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n console.info(`${this.timestamp()}${this.tag(\"info\")} ${message}`, ...args);\r\n }\r\n\r\n warn(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"warn\")) return;\r\n console.warn(`${this.timestamp()}${this.tag(\"warn\")} ${message}`, ...args);\r\n }\r\n\r\n error(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"error\")) return;\r\n console.error(`${this.timestamp()}${this.tag(\"error\")} ${message}`, ...args);\r\n }\r\n\r\n request(method: string, path: string, statusCode: number, duration: bigint): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const mc = this.useColors ? METHOD_COLORS[method] ?? COLORS.white : \"\";\r\n const sc = this.useColors ? statusColor(statusCode) : \"\";\r\n const r = this.useColors ? COLORS.reset : \"\";\r\n const dur = formatDuration(duration);\r\n console.info(\r\n `${this.timestamp()}${mc}${method.padEnd(7)}${r} ${path} ${sc}${statusCode}${r} ${COLORS.dim}${dur}${r}`,\r\n );\r\n }\r\n\r\n banner(port: number, host: string): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const c = this.useColors;\r\n const lines = [\r\n \"\",\r\n `${c ? COLORS.bold + COLORS.cyan : \"\"} ⚡ AzuraJS v3.0.0${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n `${c ? COLORS.green : \"\"} ➜ Local: ${c ? COLORS.bold : \"\"}http://${host}:${port}/${c ? COLORS.reset : \"\"}`,\r\n `${c ? COLORS.dim : \"\"} ➜ Press Ctrl+C to stop${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n ];\r\n console.info(lines.join(\"\\n\"));\r\n }\r\n\r\n setLevel(level: LogLevel): void {\r\n this.level = level;\r\n }\r\n}\r\n","export const RESET = \"\\x1b[0m\";\r\nexport const BOLD = \"\\x1b[1m\";\r\nexport const DIM = \"\\x1b[2m\";\r\n\r\nexport const ANSI_COLORS = {\r\n black: \"\\x1b[30m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n brightRed: \"\\x1b[91m\",\r\n brightGreen: \"\\x1b[92m\",\r\n brightYellow: \"\\x1b[93m\",\r\n brightBlue: \"\\x1b[94m\",\r\n brightMagenta: \"\\x1b[95m\",\r\n brightCyan: \"\\x1b[96m\",\r\n brightWhite: \"\\x1b[97m\",\r\n};\r\n\r\nexport const BG_COLORS = {\r\n bgBlack: \"\\x1b[40m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n bgMagenta: \"\\x1b[45m\",\r\n bgCyan: \"\\x1b[46m\",\r\n bgWhite: \"\\x1b[47m\",\r\n};\r\n\r\nexport const DEFAULT_COLORS = {\r\n debug: ANSI_COLORS.gray,\r\n info: ANSI_COLORS.cyan,\r\n success: ANSI_COLORS.brightGreen,\r\n warn: ANSI_COLORS.yellow,\r\n error: ANSI_COLORS.red,\r\n fatal: ANSI_COLORS.brightRed,\r\n trace: ANSI_COLORS.magenta,\r\n log: ANSI_COLORS.white,\r\n};\r\n","export const DEFAULT_ICONS = {\r\n debug: \"🐛\",\r\n info: \"ℹ️\",\r\n success: \"✅\",\r\n warn: \"⚠️\",\r\n error: \"❌\",\r\n fatal: \"💀\",\r\n trace: \"🔍\",\r\n log: \"📝\",\r\n arrow: \"➡️\",\r\n};\r\n","import type { LoggerConfig } from \"../types/logger.types.js\";\r\nimport {\r\n ANSI_COLORS,\r\n BG_COLORS,\r\n BOLD,\r\n DEFAULT_COLORS,\r\n DIM,\r\n RESET,\r\n} from \"../types/utils/colors.type.js\";\r\nimport { DEFAULT_ICONS } from \"../types/utils/icons.type.js\";\r\n\r\nlet globalConfig: LoggerConfig = {\r\n showTimestamp: false,\r\n showIcon: true,\r\n timestampFormat: \"time\",\r\n prefix: \"Azura\",\r\n uppercase: true,\r\n bold: false,\r\n dim: false,\r\n};\r\n\r\nexport function configureLogger(config: LoggerConfig): void {\r\n globalConfig = { ...globalConfig, ...config };\r\n}\r\n\r\nfunction hexToAnsi(hex: string): string {\r\n const r = parseInt(hex.slice(1, 3), 16);\r\n const g = parseInt(hex.slice(3, 5), 16);\r\n const b = parseInt(hex.slice(5, 7), 16);\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction rgbToAnsi(r: number, g: number, b: number): string {\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction getColorCode(color: string): string {\r\n if (color.startsWith(\"#\")) {\r\n return hexToAnsi(color);\r\n }\r\n if (color.startsWith(\"rgb(\")) {\r\n const match = color.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\r\n if (match) {\r\n return rgbToAnsi(Number(match[1]), Number(match[2]), Number(match[3]));\r\n }\r\n }\r\n return (ANSI_COLORS as Record<string, string>)[color] || color;\r\n}\r\n\r\nfunction formatTimestamp(format: \"time\" | \"datetime\" | \"iso\"): string {\r\n const now = new Date();\r\n switch (format) {\r\n case \"time\":\r\n return now.toLocaleTimeString();\r\n case \"datetime\":\r\n return now.toLocaleString();\r\n case \"iso\":\r\n return now.toISOString();\r\n default:\r\n return now.toLocaleTimeString();\r\n }\r\n}\r\n\r\nexport type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;\r\n\r\n/**\r\n * Logger de consola estilo legacy: `logger(\"success\", \"ok\")`, `logger(\"fatal\", msg)`.\r\n */\r\nexport function logger(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void {\r\n const config = { ...globalConfig, ...options };\r\n\r\n const colors = { ...DEFAULT_COLORS, ...config.colors };\r\n const icons = { ...DEFAULT_ICONS, ...config.icons };\r\n\r\n const color = getColorCode(colors[level] || ANSI_COLORS.white);\r\n const icon = config.showIcon !== false ? icons[level] || \"\" : \"\";\r\n const levelLabel = config.uppercase ? level.toUpperCase() : level;\r\n\r\n let style = color;\r\n if (config.bold) style += BOLD;\r\n if (config.dim) style += DIM;\r\n if (config.backgroundColor) {\r\n style += getColorCode(config.backgroundColor);\r\n }\r\n\r\n const parts: string[] = [];\r\n\r\n if (config.showTimestamp) {\r\n const timestamp = formatTimestamp(config.timestampFormat || \"time\");\r\n parts.push(`${DIM}${timestamp}${RESET}`);\r\n }\r\n\r\n if (icon) {\r\n parts.push(icon);\r\n }\r\n\r\n const prefix = config.prefix\r\n ? `${style}[${config.prefix}:${levelLabel}]${RESET}`\r\n : `${style}[${levelLabel}]${RESET}`;\r\n parts.push(prefix);\r\n\r\n parts.push(msg);\r\n\r\n const output = parts.join(\" \");\r\n\r\n const consoleMethod =\r\n level === \"error\" || level === \"fatal\"\r\n ? console.error\r\n : level === \"warn\"\r\n ? console.warn\r\n : level === \"debug\" || level === \"trace\"\r\n ? console.debug\r\n : console.log;\r\n\r\n consoleMethod(output);\r\n}\r\n\r\nexport const log = {\r\n debug: (msg: string, options?: LoggerConfig) => logger(\"debug\", msg, options),\r\n info: (msg: string, options?: LoggerConfig) => logger(\"info\", msg, options),\r\n success: (msg: string, options?: LoggerConfig) => logger(\"success\", msg, options),\r\n warn: (msg: string, options?: LoggerConfig) => logger(\"warn\", msg, options),\r\n error: (msg: string, options?: LoggerConfig) => logger(\"error\", msg, options),\r\n fatal: (msg: string, options?: LoggerConfig) => logger(\"fatal\", msg, options),\r\n trace: (msg: string, options?: LoggerConfig) => logger(\"trace\", msg, options),\r\n log: (msg: string, options?: LoggerConfig) => logger(\"log\", msg, options),\r\n};\r\n\r\nexport const colors = {\r\n hex: hexToAnsi,\r\n rgb: rgbToAnsi,\r\n ansi: ANSI_COLORS,\r\n bg: BG_COLORS,\r\n reset: RESET,\r\n bold: BOLD,\r\n dim: DIM,\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../src/utils/Logger.ts","../../src/types/utils/colors.type.ts","../../src/types/utils/icons.type.ts","../../src/utils/consoleLogger.ts"],"names":["colors"],"mappings":"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","file":"index.js","sourcesContent":["type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\" | \"silent\";\r\n\r\nconst LEVEL_PRIORITY: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n silent: 4,\r\n};\r\n\r\nconst COLORS = {\r\n reset: \"\\x1b[0m\",\r\n bold: \"\\x1b[1m\",\r\n dim: \"\\x1b[2m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n} as const;\r\n\r\nconst METHOD_COLORS: Record<string, string> = {\r\n GET: COLORS.green,\r\n POST: COLORS.blue,\r\n PUT: COLORS.yellow,\r\n DELETE: COLORS.red,\r\n PATCH: COLORS.magenta,\r\n HEAD: COLORS.cyan,\r\n OPTIONS: COLORS.gray,\r\n};\r\n\r\nfunction statusColor(code: number): string {\r\n if (code < 200) return COLORS.gray;\r\n if (code < 300) return COLORS.green;\r\n if (code < 400) return COLORS.cyan;\r\n if (code < 500) return COLORS.yellow;\r\n return COLORS.red;\r\n}\r\n\r\nfunction formatDuration(ns: bigint): string {\r\n const us = Number(ns) / 1_000;\r\n if (us < 1_000) return `${us.toFixed(0)}µs`;\r\n const ms = us / 1_000;\r\n if (ms < 1_000) return `${ms.toFixed(1)}ms`;\r\n return `${(ms / 1_000).toFixed(2)}s`;\r\n}\r\n\r\nexport class Logger {\r\n private level: LogLevel;\r\n private useColors: boolean;\r\n private showTimestamp: boolean;\r\n private prefix: string;\r\n\r\n constructor(options: {\r\n level?: LogLevel;\r\n colors?: boolean;\r\n timestamp?: boolean;\r\n prefix?: string;\r\n } = {}) {\r\n this.level = options.level ?? \"info\";\r\n this.useColors = options.colors ?? process.stdout.isTTY !== false;\r\n this.showTimestamp = options.timestamp ?? true;\r\n this.prefix = options.prefix ?? \"azura\";\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[this.level];\r\n }\r\n\r\n private timestamp(): string {\r\n if (!this.showTimestamp) return \"\";\r\n const now = new Date();\r\n return `${COLORS.gray}${now.toISOString().slice(11, 23)}${COLORS.reset} `;\r\n }\r\n\r\n private tag(level: LogLevel): string {\r\n if (!this.useColors) return `[${level.toUpperCase()}]`;\r\n const colorMap: Record<string, string> = {\r\n debug: COLORS.gray,\r\n info: COLORS.blue,\r\n warn: COLORS.yellow,\r\n error: COLORS.red,\r\n };\r\n return `${colorMap[level] ?? \"\"}[${level.toUpperCase()}]${COLORS.reset}`;\r\n }\r\n\r\n debug(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"debug\")) return;\r\n console.debug(`${this.timestamp()}${this.tag(\"debug\")} ${message}`, ...args);\r\n }\r\n\r\n info(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n console.info(`${this.timestamp()}${this.tag(\"info\")} ${message}`, ...args);\r\n }\r\n\r\n warn(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"warn\")) return;\r\n console.warn(`${this.timestamp()}${this.tag(\"warn\")} ${message}`, ...args);\r\n }\r\n\r\n error(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"error\")) return;\r\n console.error(`${this.timestamp()}${this.tag(\"error\")} ${message}`, ...args);\r\n }\r\n\r\n request(method: string, path: string, statusCode: number, duration: bigint): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const mc = this.useColors ? METHOD_COLORS[method] ?? COLORS.white : \"\";\r\n const sc = this.useColors ? statusColor(statusCode) : \"\";\r\n const r = this.useColors ? COLORS.reset : \"\";\r\n const dur = formatDuration(duration);\r\n console.info(\r\n `${this.timestamp()}${mc}${method.padEnd(7)}${r} ${path} ${sc}${statusCode}${r} ${COLORS.dim}${dur}${r}`,\r\n );\r\n }\r\n\r\n banner(port: number, host: string): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const c = this.useColors;\r\n const lines = [\r\n \"\",\r\n `${c ? COLORS.bold + COLORS.cyan : \"\"} ⚡ AzuraJS v3.0.0${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n `${c ? COLORS.green : \"\"} ➜ Local: ${c ? COLORS.bold : \"\"}http://${host}:${port}/${c ? COLORS.reset : \"\"}`,\r\n `${c ? COLORS.dim : \"\"} ➜ Press Ctrl+C to stop${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n ];\r\n console.info(lines.join(\"\\n\"));\r\n }\r\n\r\n setLevel(level: LogLevel): void {\r\n this.level = level;\r\n }\r\n}\r\n","export const RESET = \"\\x1b[0m\";\r\nexport const BOLD = \"\\x1b[1m\";\r\nexport const DIM = \"\\x1b[2m\";\r\n\r\nexport const ANSI_COLORS = {\r\n black: \"\\x1b[30m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n brightRed: \"\\x1b[91m\",\r\n brightGreen: \"\\x1b[92m\",\r\n brightYellow: \"\\x1b[93m\",\r\n brightBlue: \"\\x1b[94m\",\r\n brightMagenta: \"\\x1b[95m\",\r\n brightCyan: \"\\x1b[96m\",\r\n brightWhite: \"\\x1b[97m\",\r\n};\r\n\r\nexport const BG_COLORS = {\r\n bgBlack: \"\\x1b[40m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n bgMagenta: \"\\x1b[45m\",\r\n bgCyan: \"\\x1b[46m\",\r\n bgWhite: \"\\x1b[47m\",\r\n};\r\n\r\nexport const DEFAULT_COLORS = {\r\n debug: ANSI_COLORS.gray,\r\n info: ANSI_COLORS.cyan,\r\n success: ANSI_COLORS.brightGreen,\r\n warn: ANSI_COLORS.yellow,\r\n error: ANSI_COLORS.red,\r\n fatal: ANSI_COLORS.brightRed,\r\n trace: ANSI_COLORS.magenta,\r\n log: ANSI_COLORS.white,\r\n};\r\n","export const DEFAULT_ICONS = {\r\n debug: \"🐛\",\r\n info: \"ℹ️\",\r\n success: \"✅\",\r\n warn: \"⚠️\",\r\n error: \"❌\",\r\n fatal: \"💀\",\r\n trace: \"🔍\",\r\n log: \"📝\",\r\n arrow: \"➡️\",\r\n};\r\n","import type { LoggerConfig } from \"../types/logger.types.js\";\r\nimport {\r\n ANSI_COLORS,\r\n BG_COLORS,\r\n BOLD,\r\n DEFAULT_COLORS,\r\n DIM,\r\n RESET,\r\n} from \"../types/utils/colors.type.js\";\r\nimport { DEFAULT_ICONS } from \"../types/utils/icons.type.js\";\r\n\r\nlet globalConfig: LoggerConfig = {\r\n showTimestamp: false,\r\n showIcon: true,\r\n timestampFormat: \"time\",\r\n prefix: \"Azura\",\r\n uppercase: true,\r\n bold: false,\r\n dim: false,\r\n};\r\n\r\nexport function configureLogger(config: LoggerConfig): void {\r\n globalConfig = { ...globalConfig, ...config };\r\n}\r\n\r\nfunction hexToAnsi(hex: string): string {\r\n const r = parseInt(hex.slice(1, 3), 16);\r\n const g = parseInt(hex.slice(3, 5), 16);\r\n const b = parseInt(hex.slice(5, 7), 16);\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction rgbToAnsi(r: number, g: number, b: number): string {\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction getColorCode(color: string): string {\r\n if (color.startsWith(\"#\")) {\r\n return hexToAnsi(color);\r\n }\r\n if (color.startsWith(\"rgb(\")) {\r\n const match = color.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\r\n if (match) {\r\n return rgbToAnsi(Number(match[1]), Number(match[2]), Number(match[3]));\r\n }\r\n }\r\n return (ANSI_COLORS as Record<string, string>)[color] || color;\r\n}\r\n\r\nfunction formatTimestamp(format: \"time\" | \"datetime\" | \"iso\"): string {\r\n const now = new Date();\r\n switch (format) {\r\n case \"time\":\r\n return now.toLocaleTimeString();\r\n case \"datetime\":\r\n return now.toLocaleString();\r\n case \"iso\":\r\n return now.toISOString();\r\n default:\r\n return now.toLocaleTimeString();\r\n }\r\n}\r\n\r\nexport type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;\r\n\r\n/**\r\n * Logger de consola estilo legacy. Exportado como `logger` em `azurajs/logger`\r\n * (nome interno distinto de `Logger` para o TypeScript não fundir os dois símbolos).\r\n */\r\nexport function consoleLog(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void {\r\n const config = { ...globalConfig, ...options };\r\n\r\n const colors = { ...DEFAULT_COLORS, ...config.colors };\r\n const icons = { ...DEFAULT_ICONS, ...config.icons };\r\n\r\n const color = getColorCode(colors[level] || ANSI_COLORS.white);\r\n const icon = config.showIcon !== false ? icons[level] || \"\" : \"\";\r\n const levelLabel = config.uppercase ? level.toUpperCase() : level;\r\n\r\n let style = color;\r\n if (config.bold) style += BOLD;\r\n if (config.dim) style += DIM;\r\n if (config.backgroundColor) {\r\n style += getColorCode(config.backgroundColor);\r\n }\r\n\r\n const parts: string[] = [];\r\n\r\n if (config.showTimestamp) {\r\n const timestamp = formatTimestamp(config.timestampFormat || \"time\");\r\n parts.push(`${DIM}${timestamp}${RESET}`);\r\n }\r\n\r\n if (icon) {\r\n parts.push(icon);\r\n }\r\n\r\n const prefix = config.prefix\r\n ? `${style}[${config.prefix}:${levelLabel}]${RESET}`\r\n : `${style}[${levelLabel}]${RESET}`;\r\n parts.push(prefix);\r\n\r\n parts.push(msg);\r\n\r\n const output = parts.join(\" \");\r\n\r\n const consoleMethod =\r\n level === \"error\" || level === \"fatal\"\r\n ? console.error\r\n : level === \"warn\"\r\n ? console.warn\r\n : level === \"debug\" || level === \"trace\"\r\n ? console.debug\r\n : console.log;\r\n\r\n consoleMethod(output);\r\n}\r\n\r\nexport const log = {\r\n debug: (msg: string, options?: LoggerConfig) => consoleLog(\"debug\", msg, options),\r\n info: (msg: string, options?: LoggerConfig) => consoleLog(\"info\", msg, options),\r\n success: (msg: string, options?: LoggerConfig) => consoleLog(\"success\", msg, options),\r\n warn: (msg: string, options?: LoggerConfig) => consoleLog(\"warn\", msg, options),\r\n error: (msg: string, options?: LoggerConfig) => consoleLog(\"error\", msg, options),\r\n fatal: (msg: string, options?: LoggerConfig) => consoleLog(\"fatal\", msg, options),\r\n trace: (msg: string, options?: LoggerConfig) => consoleLog(\"trace\", msg, options),\r\n log: (msg: string, options?: LoggerConfig) => consoleLog(\"log\", msg, options),\r\n};\r\n\r\nexport const colors = {\r\n hex: hexToAnsi,\r\n rgb: rgbToAnsi,\r\n ansi: ANSI_COLORS,\r\n bg: BG_COLORS,\r\n reset: RESET,\r\n bold: BOLD,\r\n dim: DIM,\r\n};\r\n"]}
@@ -217,7 +217,7 @@ function formatTimestamp(format) {
217
217
  return now.toLocaleTimeString();
218
218
  }
219
219
  }
220
- function logger(level, msg, options) {
220
+ function consoleLog(level, msg, options) {
221
221
  const config = { ...globalConfig, ...options };
222
222
  const colors2 = { ...DEFAULT_COLORS, ...config.colors };
223
223
  const icons = { ...DEFAULT_ICONS, ...config.icons };
@@ -246,14 +246,14 @@ function logger(level, msg, options) {
246
246
  consoleMethod(output);
247
247
  }
248
248
  var log = {
249
- debug: (msg, options) => logger("debug", msg, options),
250
- info: (msg, options) => logger("info", msg, options),
251
- success: (msg, options) => logger("success", msg, options),
252
- warn: (msg, options) => logger("warn", msg, options),
253
- error: (msg, options) => logger("error", msg, options),
254
- fatal: (msg, options) => logger("fatal", msg, options),
255
- trace: (msg, options) => logger("trace", msg, options),
256
- log: (msg, options) => logger("log", msg, options)
249
+ debug: (msg, options) => consoleLog("debug", msg, options),
250
+ info: (msg, options) => consoleLog("info", msg, options),
251
+ success: (msg, options) => consoleLog("success", msg, options),
252
+ warn: (msg, options) => consoleLog("warn", msg, options),
253
+ error: (msg, options) => consoleLog("error", msg, options),
254
+ fatal: (msg, options) => consoleLog("fatal", msg, options),
255
+ trace: (msg, options) => consoleLog("trace", msg, options),
256
+ log: (msg, options) => consoleLog("log", msg, options)
257
257
  };
258
258
  var colors = {
259
259
  hex: hexToAnsi,
@@ -265,6 +265,6 @@ var colors = {
265
265
  dim: DIM
266
266
  };
267
267
 
268
- export { Logger, colors, configureLogger, log, logger };
268
+ export { Logger, colors, configureLogger, consoleLog, log, consoleLog as logger };
269
269
  //# sourceMappingURL=index.mjs.map
270
270
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/Logger.ts","../../src/types/utils/colors.type.ts","../../src/types/utils/icons.type.ts","../../src/utils/consoleLogger.ts"],"names":["colors"],"mappings":";AAEA,IAAM,cAAA,GAA2C;AAAA,EAC/C,KAAA,EAAO,CAAA;AAAA,EACP,IAAA,EAAM,CAAA;AAAA,EACN,IAAA,EAAM,CAAA;AAAA,EACN,KAAA,EAAO,CAAA;AAAA,EACP,MAAA,EAAQ;AACV,CAAA;AAEA,IAAM,MAAA,GAAS;AAAA,EACb,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,GAAA,EAAK,SAAA;AAAA,EACL,GAAA,EAAK,UAAA;AAAA,EACL,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,UAAA;AAAA,EACR,IAAA,EAAM,UAAA;AAAA,EACN,OAAA,EAAS,UAAA;AAAA,EACT,IAAA,EAAM,UAAA;AAAA,EACN,KAAA,EAAO,UAAA;AAAA,EACP,IAAA,EAAM,UAKR,CAAA;AAEA,IAAM,aAAA,GAAwC;AAAA,EAC5C,KAAK,MAAA,CAAO,KAAA;AAAA,EACZ,MAAM,MAAA,CAAO,IAAA;AAAA,EACb,KAAK,MAAA,CAAO,MAAA;AAAA,EACZ,QAAQ,MAAA,CAAO,GAAA;AAAA,EACf,OAAO,MAAA,CAAO,OAAA;AAAA,EACd,MAAM,MAAA,CAAO,IAAA;AAAA,EACb,SAAS,MAAA,CAAO;AAClB,CAAA;AAEA,SAAS,YAAY,IAAA,EAAsB;AACzC,EAAA,IAAI,IAAA,GAAO,GAAA,EAAK,OAAO,MAAA,CAAO,IAAA;AAC9B,EAAA,IAAI,IAAA,GAAO,GAAA,EAAK,OAAO,MAAA,CAAO,KAAA;AAC9B,EAAA,IAAI,IAAA,GAAO,GAAA,EAAK,OAAO,MAAA,CAAO,IAAA;AAC9B,EAAA,IAAI,IAAA,GAAO,GAAA,EAAK,OAAO,MAAA,CAAO,MAAA;AAC9B,EAAA,OAAO,MAAA,CAAO,GAAA;AAChB;AAEA,SAAS,eAAe,EAAA,EAAoB;AAC1C,EAAA,MAAM,EAAA,GAAK,MAAA,CAAO,EAAE,CAAA,GAAI,GAAA;AACxB,EAAA,IAAI,KAAK,GAAA,EAAO,OAAO,GAAG,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,KAAA,CAAA;AACvC,EAAA,MAAM,KAAK,EAAA,GAAK,GAAA;AAChB,EAAA,IAAI,KAAK,GAAA,EAAO,OAAO,GAAG,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA;AACvC,EAAA,OAAO,CAAA,EAAA,CAAI,EAAA,GAAK,GAAA,EAAO,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AACnC;AAEO,IAAM,SAAN,MAAa;AAAA,EACV,KAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EAER,WAAA,CAAY,OAAA,GAKR,EAAC,EAAG;AACN,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAQ,KAAA,IAAS,MAAA;AAC9B,IAAA,IAAA,CAAK,SAAA,GAAY,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,OAAO,KAAA,KAAU,KAAA;AAC5D,IAAA,IAAA,CAAK,aAAA,GAAgB,QAAQ,SAAA,IAAa,IAAA;AAC1C,IAAA,IAAA,CAAK,MAAA,GAAS,QAAQ,MAAA,IAAU,OAAA;AAAA,EAClC;AAAA,EAEQ,UAAU,KAAA,EAA0B;AAC1C,IAAA,OAAO,cAAA,CAAe,KAAK,CAAA,IAAK,cAAA,CAAe,KAAK,KAAK,CAAA;AAAA,EAC3D;AAAA,EAEQ,SAAA,GAAoB;AAC1B,IAAA,IAAI,CAAC,IAAA,CAAK,aAAA,EAAe,OAAO,EAAA;AAChC,IAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,IAAA,OAAO,CAAA,EAAG,MAAA,CAAO,IAAI,CAAA,EAAG,GAAA,CAAI,WAAA,EAAY,CAAE,KAAA,CAAM,EAAA,EAAI,EAAE,CAAC,CAAA,EAAG,OAAO,KAAK,CAAA,CAAA,CAAA;AAAA,EACxE;AAAA,EAEQ,IAAI,KAAA,EAAyB;AACnC,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,SAAkB,CAAA,CAAA,EAAI,KAAA,CAAM,aAAa,CAAA,CAAA,CAAA;AACnD,IAAA,MAAM,QAAA,GAAmC;AAAA,MACvC,OAAO,MAAA,CAAO,IAAA;AAAA,MACd,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAM,MAAA,CAAO,MAAA;AAAA,MACb,OAAO,MAAA,CAAO;AAAA,KAChB;AACA,IAAA,OAAO,CAAA,EAAG,QAAA,CAAS,KAAK,CAAA,IAAK,EAAE,CAAA,CAAA,EAAI,KAAA,CAAM,WAAA,EAAa,CAAA,CAAA,EAAI,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,EACxE;AAAA,EAEA,KAAA,CAAM,YAAoB,IAAA,EAAmB;AAC3C,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA,EAAG;AAC9B,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,OAAO,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,GAAG,IAAI,CAAA;AAAA,EAC7E;AAAA,EAEA,IAAA,CAAK,YAAoB,IAAA,EAAmB;AAC1C,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA,EAAG;AAC7B,IAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,GAAG,IAAI,CAAA;AAAA,EAC3E;AAAA,EAEA,IAAA,CAAK,YAAoB,IAAA,EAAmB;AAC1C,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA,EAAG;AAC7B,IAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,GAAG,IAAI,CAAA;AAAA,EAC3E;AAAA,EAEA,KAAA,CAAM,YAAoB,IAAA,EAAmB;AAC3C,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA,EAAG;AAC9B,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,OAAO,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,GAAG,IAAI,CAAA;AAAA,EAC7E;AAAA,EAEA,OAAA,CAAQ,MAAA,EAAgB,IAAA,EAAc,UAAA,EAAoB,QAAA,EAAwB;AAChF,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA,EAAG;AAC7B,IAAA,MAAM,KAAK,IAAA,CAAK,SAAA,GAAY,cAAc,MAAM,CAAA,IAAK,OAAO,KAAA,GAAQ,EAAA;AACpE,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,SAAA,GAAY,WAAA,CAAY,UAAU,CAAA,GAAI,EAAA;AACtD,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,SAAA,GAAY,MAAA,CAAO,KAAA,GAAQ,EAAA;AAC1C,IAAA,MAAM,GAAA,GAAM,eAAe,QAAQ,CAAA;AACnC,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN,CAAA,EAAG,IAAA,CAAK,SAAA,EAAW,CAAA,EAAG,EAAE,CAAA,EAAG,MAAA,CAAO,MAAA,CAAO,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,EAAE,CAAA,EAAG,UAAU,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,GAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAC,CAAA;AAAA,KACxG;AAAA,EACF;AAAA,EAEA,MAAA,CAAO,MAAc,IAAA,EAAoB;AACvC,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA,EAAG;AAC7B,IAAA,MAAM,IAAI,IAAA,CAAK,SAAA;AACf,IAAA,MAAM,KAAA,GAAQ;AAAA,MACZ,EAAA;AAAA,MACA,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,IAAA,GAAO,MAAA,CAAO,IAAA,GAAO,EAAE,CAAA,uBAAA,EAAqB,CAAA,GAAI,MAAA,CAAO,KAAA,GAAQ,EAAE,CAAA,CAAA;AAAA,MAC/E,EAAA;AAAA,MACA,GAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,EAAE,CAAA,kBAAA,EAAgB,IAAI,MAAA,CAAO,IAAA,GAAO,EAAE,CAAA,OAAA,EAAU,IAAI,CAAA,CAAA,EAAI,IAAI,IAAI,CAAA,GAAI,MAAA,CAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,MAC3G,CAAA,EAAG,IAAI,MAAA,CAAO,GAAA,GAAM,EAAE,CAAA,6BAAA,EAA2B,CAAA,GAAI,MAAA,CAAO,KAAA,GAAQ,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,EAC/B;AAAA,EAEA,SAAS,KAAA,EAAuB;AAC9B,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,EACf;AACF;;;AC7IO,IAAM,KAAA,GAAQ,SAAA;AACd,IAAM,IAAA,GAAO,SAAA;AACb,IAAM,GAAA,GAAM,SAAA;AAEZ,IAAM,WAAA,GAAc;AAAA,EACzB,KAAA,EAAO,UAAA;AAAA,EACP,GAAA,EAAK,UAAA;AAAA,EACL,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,UAAA;AAAA,EACR,IAAA,EAAM,UAAA;AAAA,EACN,OAAA,EAAS,UAAA;AAAA,EACT,IAAA,EAAM,UAAA;AAAA,EACN,KAAA,EAAO,UAAA;AAAA,EACP,IAAA,EAAM,UAAA;AAAA,EACN,SAAA,EAAW,UAAA;AAAA,EACX,WAAA,EAAa,UAAA;AAAA,EACb,YAAA,EAAc,UAAA;AAAA,EACd,UAAA,EAAY,UAAA;AAAA,EACZ,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,EAAY,UAAA;AAAA,EACZ,WAAA,EAAa;AACf,CAAA;AAEO,IAAM,SAAA,GAAY;AAAA,EACvB,OAAA,EAAS,UAAA;AAAA,EACT,KAAA,EAAO,UAAA;AAAA,EACP,OAAA,EAAS,UAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,UAAA;AAAA,EACR,SAAA,EAAW,UAAA;AAAA,EACX,MAAA,EAAQ,UAAA;AAAA,EACR,OAAA,EAAS;AACX,CAAA;AAEO,IAAM,cAAA,GAAiB;AAAA,EAC5B,OAAO,WAAA,CAAY,IAAA;AAAA,EACnB,MAAM,WAAA,CAAY,IAAA;AAAA,EAClB,SAAS,WAAA,CAAY,WAAA;AAAA,EACrB,MAAM,WAAA,CAAY,MAAA;AAAA,EAClB,OAAO,WAAA,CAAY,GAAA;AAAA,EACnB,OAAO,WAAA,CAAY,SAAA;AAAA,EACnB,OAAO,WAAA,CAAY,OAAA;AAAA,EACnB,KAAK,WAAA,CAAY;AACnB,CAAA;;;AC3CO,IAAM,aAAA,GAAgB;AAAA,EAC3B,KAAA,EAAO,WAAA;AAAA,EACP,IAAA,EAAM,cAAA;AAAA,EACN,OAAA,EAAS,QAAA;AAAA,EACT,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,QAAA;AAAA,EACP,KAAA,EAAO,WAAA;AAAA,EACP,KAAA,EAAO,WAAA;AAAA,EACP,GAAA,EAAK,WAAA;AAAA,EACL,KAAA,EAAO;AACT,CAAA;;;ACCA,IAAI,YAAA,GAA6B;AAAA,EAC/B,aAAA,EAAe,KAAA;AAAA,EACf,QAAA,EAAU,IAAA;AAAA,EACV,eAAA,EAAiB,MAAA;AAAA,EACjB,MAAA,EAAQ,OAAA;AAAA,EACR,SAAA,EAAW,IAAA;AAAA,EACX,IAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAK;AACP,CAAA;AAEO,SAAS,gBAAgB,MAAA,EAA4B;AAC1D,EAAA,YAAA,GAAe,EAAE,GAAG,YAAA,EAAc,GAAG,MAAA,EAAO;AAC9C;AAEA,SAAS,UAAU,GAAA,EAAqB;AACtC,EAAA,MAAM,IAAI,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA,EAAG,CAAC,GAAG,EAAE,CAAA;AACtC,EAAA,MAAM,IAAI,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA,EAAG,CAAC,GAAG,EAAE,CAAA;AACtC,EAAA,MAAM,IAAI,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA,EAAG,CAAC,GAAG,EAAE,CAAA;AACtC,EAAA,OAAO,CAAA,UAAA,EAAa,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA;AACjC;AAEA,SAAS,SAAA,CAAU,CAAA,EAAW,CAAA,EAAW,CAAA,EAAmB;AAC1D,EAAA,OAAO,CAAA,UAAA,EAAa,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA;AACjC;AAEA,SAAS,aAAa,KAAA,EAAuB;AAC3C,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG;AACzB,IAAA,OAAO,UAAU,KAAK,CAAA;AAAA,EACxB;AACA,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,MAAM,CAAA,EAAG;AAC5B,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,gCAAgC,CAAA;AAC1D,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAO,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAAA,IACvE;AAAA,EACF;AACA,EAAA,OAAQ,WAAA,CAAuC,KAAK,CAAA,IAAK,KAAA;AAC3D;AAEA,SAAS,gBAAgB,MAAA,EAA6C;AACpE,EAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,MAAA;AACH,MAAA,OAAO,IAAI,kBAAA,EAAmB;AAAA,IAChC,KAAK,UAAA;AACH,MAAA,OAAO,IAAI,cAAA,EAAe;AAAA,IAC5B,KAAK,KAAA;AACH,MAAA,OAAO,IAAI,WAAA,EAAY;AAAA,IACzB;AACE,MAAA,OAAO,IAAI,kBAAA,EAAmB;AAAA;AAEpC;AAOO,SAAS,MAAA,CAAO,KAAA,EAAwB,GAAA,EAAa,OAAA,EAA8B;AACxF,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,YAAA,EAAc,GAAG,OAAA,EAAQ;AAE7C,EAAA,MAAMA,UAAS,EAAE,GAAG,cAAA,EAAgB,GAAG,OAAO,MAAA,EAAO;AACrD,EAAA,MAAM,QAAQ,EAAE,GAAG,aAAA,EAAe,GAAG,OAAO,KAAA,EAAM;AAElD,EAAA,MAAM,QAAQ,YAAA,CAAaA,OAAAA,CAAO,KAAK,CAAA,IAAK,YAAY,KAAK,CAAA;AAC7D,EAAA,MAAM,OAAO,MAAA,CAAO,QAAA,KAAa,QAAQ,KAAA,CAAM,KAAK,KAAK,EAAA,GAAK,EAAA;AAC9D,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,SAAA,GAAY,KAAA,CAAM,aAAY,GAAI,KAAA;AAE5D,EAAA,IAAI,KAAA,GAAQ,KAAA;AACZ,EAAA,IAAI,MAAA,CAAO,MAAM,KAAA,IAAS,IAAA;AAC1B,EAAA,IAAI,MAAA,CAAO,KAAK,KAAA,IAAS,GAAA;AACzB,EAAA,IAAI,OAAO,eAAA,EAAiB;AAC1B,IAAA,KAAA,IAAS,YAAA,CAAa,OAAO,eAAe,CAAA;AAAA,EAC9C;AAEA,EAAA,MAAM,QAAkB,EAAC;AAEzB,EAAA,IAAI,OAAO,aAAA,EAAe;AACxB,IAAA,MAAM,SAAA,GAAY,eAAA,CAAgB,MAAA,CAAO,eAAA,IAAmB,MAAM,CAAA;AAClE,IAAA,KAAA,CAAM,KAAK,CAAA,EAAG,GAAG,GAAG,SAAS,CAAA,EAAG,KAAK,CAAA,CAAE,CAAA;AAAA,EACzC;AAEA,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACjB;AAEA,EAAA,MAAM,SAAS,MAAA,CAAO,MAAA,GAClB,GAAG,KAAK,CAAA,CAAA,EAAI,OAAO,MAAM,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,GAChD,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,UAAU,IAAI,KAAK,CAAA,CAAA;AACnC,EAAA,KAAA,CAAM,KAAK,MAAM,CAAA;AAEjB,EAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAEd,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;AAE7B,EAAA,MAAM,gBACJ,KAAA,KAAU,OAAA,IAAW,KAAA,KAAU,OAAA,GAC3B,QAAQ,KAAA,GACR,KAAA,KAAU,MAAA,GACR,OAAA,CAAQ,OACR,KAAA,KAAU,OAAA,IAAW,UAAU,OAAA,GAC7B,OAAA,CAAQ,QACR,OAAA,CAAQ,GAAA;AAElB,EAAA,aAAA,CAAc,MAAM,CAAA;AACtB;AAEO,IAAM,GAAA,GAAM;AAAA,EACjB,OAAO,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,OAAA,EAAS,KAAK,OAAO,CAAA;AAAA,EAC5E,MAAM,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,MAAA,EAAQ,KAAK,OAAO,CAAA;AAAA,EAC1E,SAAS,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,SAAA,EAAW,KAAK,OAAO,CAAA;AAAA,EAChF,MAAM,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,MAAA,EAAQ,KAAK,OAAO,CAAA;AAAA,EAC1E,OAAO,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,OAAA,EAAS,KAAK,OAAO,CAAA;AAAA,EAC5E,OAAO,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,OAAA,EAAS,KAAK,OAAO,CAAA;AAAA,EAC5E,OAAO,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,OAAA,EAAS,KAAK,OAAO,CAAA;AAAA,EAC5E,KAAK,CAAC,GAAA,EAAa,YAA2B,MAAA,CAAO,KAAA,EAAO,KAAK,OAAO;AAC1E;AAEO,IAAM,MAAA,GAAS;AAAA,EACpB,GAAA,EAAK,SAAA;AAAA,EACL,GAAA,EAAK,SAAA;AAAA,EACL,IAAA,EAAM,WAAA;AAAA,EACN,EAAA,EAAI,SAAA;AAAA,EACJ,KAAA,EAAO,KAAA;AAAA,EACP,IAAA,EAAM,IAAA;AAAA,EACN,GAAA,EAAK;AACP","file":"index.mjs","sourcesContent":["type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\" | \"silent\";\r\n\r\nconst LEVEL_PRIORITY: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n silent: 4,\r\n};\r\n\r\nconst COLORS = {\r\n reset: \"\\x1b[0m\",\r\n bold: \"\\x1b[1m\",\r\n dim: \"\\x1b[2m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n} as const;\r\n\r\nconst METHOD_COLORS: Record<string, string> = {\r\n GET: COLORS.green,\r\n POST: COLORS.blue,\r\n PUT: COLORS.yellow,\r\n DELETE: COLORS.red,\r\n PATCH: COLORS.magenta,\r\n HEAD: COLORS.cyan,\r\n OPTIONS: COLORS.gray,\r\n};\r\n\r\nfunction statusColor(code: number): string {\r\n if (code < 200) return COLORS.gray;\r\n if (code < 300) return COLORS.green;\r\n if (code < 400) return COLORS.cyan;\r\n if (code < 500) return COLORS.yellow;\r\n return COLORS.red;\r\n}\r\n\r\nfunction formatDuration(ns: bigint): string {\r\n const us = Number(ns) / 1_000;\r\n if (us < 1_000) return `${us.toFixed(0)}µs`;\r\n const ms = us / 1_000;\r\n if (ms < 1_000) return `${ms.toFixed(1)}ms`;\r\n return `${(ms / 1_000).toFixed(2)}s`;\r\n}\r\n\r\nexport class Logger {\r\n private level: LogLevel;\r\n private useColors: boolean;\r\n private showTimestamp: boolean;\r\n private prefix: string;\r\n\r\n constructor(options: {\r\n level?: LogLevel;\r\n colors?: boolean;\r\n timestamp?: boolean;\r\n prefix?: string;\r\n } = {}) {\r\n this.level = options.level ?? \"info\";\r\n this.useColors = options.colors ?? process.stdout.isTTY !== false;\r\n this.showTimestamp = options.timestamp ?? true;\r\n this.prefix = options.prefix ?? \"azura\";\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[this.level];\r\n }\r\n\r\n private timestamp(): string {\r\n if (!this.showTimestamp) return \"\";\r\n const now = new Date();\r\n return `${COLORS.gray}${now.toISOString().slice(11, 23)}${COLORS.reset} `;\r\n }\r\n\r\n private tag(level: LogLevel): string {\r\n if (!this.useColors) return `[${level.toUpperCase()}]`;\r\n const colorMap: Record<string, string> = {\r\n debug: COLORS.gray,\r\n info: COLORS.blue,\r\n warn: COLORS.yellow,\r\n error: COLORS.red,\r\n };\r\n return `${colorMap[level] ?? \"\"}[${level.toUpperCase()}]${COLORS.reset}`;\r\n }\r\n\r\n debug(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"debug\")) return;\r\n console.debug(`${this.timestamp()}${this.tag(\"debug\")} ${message}`, ...args);\r\n }\r\n\r\n info(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n console.info(`${this.timestamp()}${this.tag(\"info\")} ${message}`, ...args);\r\n }\r\n\r\n warn(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"warn\")) return;\r\n console.warn(`${this.timestamp()}${this.tag(\"warn\")} ${message}`, ...args);\r\n }\r\n\r\n error(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"error\")) return;\r\n console.error(`${this.timestamp()}${this.tag(\"error\")} ${message}`, ...args);\r\n }\r\n\r\n request(method: string, path: string, statusCode: number, duration: bigint): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const mc = this.useColors ? METHOD_COLORS[method] ?? COLORS.white : \"\";\r\n const sc = this.useColors ? statusColor(statusCode) : \"\";\r\n const r = this.useColors ? COLORS.reset : \"\";\r\n const dur = formatDuration(duration);\r\n console.info(\r\n `${this.timestamp()}${mc}${method.padEnd(7)}${r} ${path} ${sc}${statusCode}${r} ${COLORS.dim}${dur}${r}`,\r\n );\r\n }\r\n\r\n banner(port: number, host: string): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const c = this.useColors;\r\n const lines = [\r\n \"\",\r\n `${c ? COLORS.bold + COLORS.cyan : \"\"} ⚡ AzuraJS v3.0.0${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n `${c ? COLORS.green : \"\"} ➜ Local: ${c ? COLORS.bold : \"\"}http://${host}:${port}/${c ? COLORS.reset : \"\"}`,\r\n `${c ? COLORS.dim : \"\"} ➜ Press Ctrl+C to stop${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n ];\r\n console.info(lines.join(\"\\n\"));\r\n }\r\n\r\n setLevel(level: LogLevel): void {\r\n this.level = level;\r\n }\r\n}\r\n","export const RESET = \"\\x1b[0m\";\r\nexport const BOLD = \"\\x1b[1m\";\r\nexport const DIM = \"\\x1b[2m\";\r\n\r\nexport const ANSI_COLORS = {\r\n black: \"\\x1b[30m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n brightRed: \"\\x1b[91m\",\r\n brightGreen: \"\\x1b[92m\",\r\n brightYellow: \"\\x1b[93m\",\r\n brightBlue: \"\\x1b[94m\",\r\n brightMagenta: \"\\x1b[95m\",\r\n brightCyan: \"\\x1b[96m\",\r\n brightWhite: \"\\x1b[97m\",\r\n};\r\n\r\nexport const BG_COLORS = {\r\n bgBlack: \"\\x1b[40m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n bgMagenta: \"\\x1b[45m\",\r\n bgCyan: \"\\x1b[46m\",\r\n bgWhite: \"\\x1b[47m\",\r\n};\r\n\r\nexport const DEFAULT_COLORS = {\r\n debug: ANSI_COLORS.gray,\r\n info: ANSI_COLORS.cyan,\r\n success: ANSI_COLORS.brightGreen,\r\n warn: ANSI_COLORS.yellow,\r\n error: ANSI_COLORS.red,\r\n fatal: ANSI_COLORS.brightRed,\r\n trace: ANSI_COLORS.magenta,\r\n log: ANSI_COLORS.white,\r\n};\r\n","export const DEFAULT_ICONS = {\r\n debug: \"🐛\",\r\n info: \"ℹ️\",\r\n success: \"✅\",\r\n warn: \"⚠️\",\r\n error: \"❌\",\r\n fatal: \"💀\",\r\n trace: \"🔍\",\r\n log: \"📝\",\r\n arrow: \"➡️\",\r\n};\r\n","import type { LoggerConfig } from \"../types/logger.types.js\";\r\nimport {\r\n ANSI_COLORS,\r\n BG_COLORS,\r\n BOLD,\r\n DEFAULT_COLORS,\r\n DIM,\r\n RESET,\r\n} from \"../types/utils/colors.type.js\";\r\nimport { DEFAULT_ICONS } from \"../types/utils/icons.type.js\";\r\n\r\nlet globalConfig: LoggerConfig = {\r\n showTimestamp: false,\r\n showIcon: true,\r\n timestampFormat: \"time\",\r\n prefix: \"Azura\",\r\n uppercase: true,\r\n bold: false,\r\n dim: false,\r\n};\r\n\r\nexport function configureLogger(config: LoggerConfig): void {\r\n globalConfig = { ...globalConfig, ...config };\r\n}\r\n\r\nfunction hexToAnsi(hex: string): string {\r\n const r = parseInt(hex.slice(1, 3), 16);\r\n const g = parseInt(hex.slice(3, 5), 16);\r\n const b = parseInt(hex.slice(5, 7), 16);\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction rgbToAnsi(r: number, g: number, b: number): string {\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction getColorCode(color: string): string {\r\n if (color.startsWith(\"#\")) {\r\n return hexToAnsi(color);\r\n }\r\n if (color.startsWith(\"rgb(\")) {\r\n const match = color.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\r\n if (match) {\r\n return rgbToAnsi(Number(match[1]), Number(match[2]), Number(match[3]));\r\n }\r\n }\r\n return (ANSI_COLORS as Record<string, string>)[color] || color;\r\n}\r\n\r\nfunction formatTimestamp(format: \"time\" | \"datetime\" | \"iso\"): string {\r\n const now = new Date();\r\n switch (format) {\r\n case \"time\":\r\n return now.toLocaleTimeString();\r\n case \"datetime\":\r\n return now.toLocaleString();\r\n case \"iso\":\r\n return now.toISOString();\r\n default:\r\n return now.toLocaleTimeString();\r\n }\r\n}\r\n\r\nexport type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;\r\n\r\n/**\r\n * Logger de consola estilo legacy: `logger(\"success\", \"ok\")`, `logger(\"fatal\", msg)`.\r\n */\r\nexport function logger(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void {\r\n const config = { ...globalConfig, ...options };\r\n\r\n const colors = { ...DEFAULT_COLORS, ...config.colors };\r\n const icons = { ...DEFAULT_ICONS, ...config.icons };\r\n\r\n const color = getColorCode(colors[level] || ANSI_COLORS.white);\r\n const icon = config.showIcon !== false ? icons[level] || \"\" : \"\";\r\n const levelLabel = config.uppercase ? level.toUpperCase() : level;\r\n\r\n let style = color;\r\n if (config.bold) style += BOLD;\r\n if (config.dim) style += DIM;\r\n if (config.backgroundColor) {\r\n style += getColorCode(config.backgroundColor);\r\n }\r\n\r\n const parts: string[] = [];\r\n\r\n if (config.showTimestamp) {\r\n const timestamp = formatTimestamp(config.timestampFormat || \"time\");\r\n parts.push(`${DIM}${timestamp}${RESET}`);\r\n }\r\n\r\n if (icon) {\r\n parts.push(icon);\r\n }\r\n\r\n const prefix = config.prefix\r\n ? `${style}[${config.prefix}:${levelLabel}]${RESET}`\r\n : `${style}[${levelLabel}]${RESET}`;\r\n parts.push(prefix);\r\n\r\n parts.push(msg);\r\n\r\n const output = parts.join(\" \");\r\n\r\n const consoleMethod =\r\n level === \"error\" || level === \"fatal\"\r\n ? console.error\r\n : level === \"warn\"\r\n ? console.warn\r\n : level === \"debug\" || level === \"trace\"\r\n ? console.debug\r\n : console.log;\r\n\r\n consoleMethod(output);\r\n}\r\n\r\nexport const log = {\r\n debug: (msg: string, options?: LoggerConfig) => logger(\"debug\", msg, options),\r\n info: (msg: string, options?: LoggerConfig) => logger(\"info\", msg, options),\r\n success: (msg: string, options?: LoggerConfig) => logger(\"success\", msg, options),\r\n warn: (msg: string, options?: LoggerConfig) => logger(\"warn\", msg, options),\r\n error: (msg: string, options?: LoggerConfig) => logger(\"error\", msg, options),\r\n fatal: (msg: string, options?: LoggerConfig) => logger(\"fatal\", msg, options),\r\n trace: (msg: string, options?: LoggerConfig) => logger(\"trace\", msg, options),\r\n log: (msg: string, options?: LoggerConfig) => logger(\"log\", msg, options),\r\n};\r\n\r\nexport const colors = {\r\n hex: hexToAnsi,\r\n rgb: rgbToAnsi,\r\n ansi: ANSI_COLORS,\r\n bg: BG_COLORS,\r\n reset: RESET,\r\n bold: BOLD,\r\n dim: DIM,\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../src/utils/Logger.ts","../../src/types/utils/colors.type.ts","../../src/types/utils/icons.type.ts","../../src/utils/consoleLogger.ts"],"names":["colors"],"mappings":"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","file":"index.mjs","sourcesContent":["type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\" | \"silent\";\r\n\r\nconst LEVEL_PRIORITY: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n silent: 4,\r\n};\r\n\r\nconst COLORS = {\r\n reset: \"\\x1b[0m\",\r\n bold: \"\\x1b[1m\",\r\n dim: \"\\x1b[2m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n} as const;\r\n\r\nconst METHOD_COLORS: Record<string, string> = {\r\n GET: COLORS.green,\r\n POST: COLORS.blue,\r\n PUT: COLORS.yellow,\r\n DELETE: COLORS.red,\r\n PATCH: COLORS.magenta,\r\n HEAD: COLORS.cyan,\r\n OPTIONS: COLORS.gray,\r\n};\r\n\r\nfunction statusColor(code: number): string {\r\n if (code < 200) return COLORS.gray;\r\n if (code < 300) return COLORS.green;\r\n if (code < 400) return COLORS.cyan;\r\n if (code < 500) return COLORS.yellow;\r\n return COLORS.red;\r\n}\r\n\r\nfunction formatDuration(ns: bigint): string {\r\n const us = Number(ns) / 1_000;\r\n if (us < 1_000) return `${us.toFixed(0)}µs`;\r\n const ms = us / 1_000;\r\n if (ms < 1_000) return `${ms.toFixed(1)}ms`;\r\n return `${(ms / 1_000).toFixed(2)}s`;\r\n}\r\n\r\nexport class Logger {\r\n private level: LogLevel;\r\n private useColors: boolean;\r\n private showTimestamp: boolean;\r\n private prefix: string;\r\n\r\n constructor(options: {\r\n level?: LogLevel;\r\n colors?: boolean;\r\n timestamp?: boolean;\r\n prefix?: string;\r\n } = {}) {\r\n this.level = options.level ?? \"info\";\r\n this.useColors = options.colors ?? process.stdout.isTTY !== false;\r\n this.showTimestamp = options.timestamp ?? true;\r\n this.prefix = options.prefix ?? \"azura\";\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[this.level];\r\n }\r\n\r\n private timestamp(): string {\r\n if (!this.showTimestamp) return \"\";\r\n const now = new Date();\r\n return `${COLORS.gray}${now.toISOString().slice(11, 23)}${COLORS.reset} `;\r\n }\r\n\r\n private tag(level: LogLevel): string {\r\n if (!this.useColors) return `[${level.toUpperCase()}]`;\r\n const colorMap: Record<string, string> = {\r\n debug: COLORS.gray,\r\n info: COLORS.blue,\r\n warn: COLORS.yellow,\r\n error: COLORS.red,\r\n };\r\n return `${colorMap[level] ?? \"\"}[${level.toUpperCase()}]${COLORS.reset}`;\r\n }\r\n\r\n debug(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"debug\")) return;\r\n console.debug(`${this.timestamp()}${this.tag(\"debug\")} ${message}`, ...args);\r\n }\r\n\r\n info(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n console.info(`${this.timestamp()}${this.tag(\"info\")} ${message}`, ...args);\r\n }\r\n\r\n warn(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"warn\")) return;\r\n console.warn(`${this.timestamp()}${this.tag(\"warn\")} ${message}`, ...args);\r\n }\r\n\r\n error(message: string, ...args: any[]): void {\r\n if (!this.shouldLog(\"error\")) return;\r\n console.error(`${this.timestamp()}${this.tag(\"error\")} ${message}`, ...args);\r\n }\r\n\r\n request(method: string, path: string, statusCode: number, duration: bigint): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const mc = this.useColors ? METHOD_COLORS[method] ?? COLORS.white : \"\";\r\n const sc = this.useColors ? statusColor(statusCode) : \"\";\r\n const r = this.useColors ? COLORS.reset : \"\";\r\n const dur = formatDuration(duration);\r\n console.info(\r\n `${this.timestamp()}${mc}${method.padEnd(7)}${r} ${path} ${sc}${statusCode}${r} ${COLORS.dim}${dur}${r}`,\r\n );\r\n }\r\n\r\n banner(port: number, host: string): void {\r\n if (!this.shouldLog(\"info\")) return;\r\n const c = this.useColors;\r\n const lines = [\r\n \"\",\r\n `${c ? COLORS.bold + COLORS.cyan : \"\"} ⚡ AzuraJS v3.0.0${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n `${c ? COLORS.green : \"\"} ➜ Local: ${c ? COLORS.bold : \"\"}http://${host}:${port}/${c ? COLORS.reset : \"\"}`,\r\n `${c ? COLORS.dim : \"\"} ➜ Press Ctrl+C to stop${c ? COLORS.reset : \"\"}`,\r\n \"\",\r\n ];\r\n console.info(lines.join(\"\\n\"));\r\n }\r\n\r\n setLevel(level: LogLevel): void {\r\n this.level = level;\r\n }\r\n}\r\n","export const RESET = \"\\x1b[0m\";\r\nexport const BOLD = \"\\x1b[1m\";\r\nexport const DIM = \"\\x1b[2m\";\r\n\r\nexport const ANSI_COLORS = {\r\n black: \"\\x1b[30m\",\r\n red: \"\\x1b[31m\",\r\n green: \"\\x1b[32m\",\r\n yellow: \"\\x1b[33m\",\r\n blue: \"\\x1b[34m\",\r\n magenta: \"\\x1b[35m\",\r\n cyan: \"\\x1b[36m\",\r\n white: \"\\x1b[37m\",\r\n gray: \"\\x1b[90m\",\r\n brightRed: \"\\x1b[91m\",\r\n brightGreen: \"\\x1b[92m\",\r\n brightYellow: \"\\x1b[93m\",\r\n brightBlue: \"\\x1b[94m\",\r\n brightMagenta: \"\\x1b[95m\",\r\n brightCyan: \"\\x1b[96m\",\r\n brightWhite: \"\\x1b[97m\",\r\n};\r\n\r\nexport const BG_COLORS = {\r\n bgBlack: \"\\x1b[40m\",\r\n bgRed: \"\\x1b[41m\",\r\n bgGreen: \"\\x1b[42m\",\r\n bgYellow: \"\\x1b[43m\",\r\n bgBlue: \"\\x1b[44m\",\r\n bgMagenta: \"\\x1b[45m\",\r\n bgCyan: \"\\x1b[46m\",\r\n bgWhite: \"\\x1b[47m\",\r\n};\r\n\r\nexport const DEFAULT_COLORS = {\r\n debug: ANSI_COLORS.gray,\r\n info: ANSI_COLORS.cyan,\r\n success: ANSI_COLORS.brightGreen,\r\n warn: ANSI_COLORS.yellow,\r\n error: ANSI_COLORS.red,\r\n fatal: ANSI_COLORS.brightRed,\r\n trace: ANSI_COLORS.magenta,\r\n log: ANSI_COLORS.white,\r\n};\r\n","export const DEFAULT_ICONS = {\r\n debug: \"🐛\",\r\n info: \"ℹ️\",\r\n success: \"✅\",\r\n warn: \"⚠️\",\r\n error: \"❌\",\r\n fatal: \"💀\",\r\n trace: \"🔍\",\r\n log: \"📝\",\r\n arrow: \"➡️\",\r\n};\r\n","import type { LoggerConfig } from \"../types/logger.types.js\";\r\nimport {\r\n ANSI_COLORS,\r\n BG_COLORS,\r\n BOLD,\r\n DEFAULT_COLORS,\r\n DIM,\r\n RESET,\r\n} from \"../types/utils/colors.type.js\";\r\nimport { DEFAULT_ICONS } from \"../types/utils/icons.type.js\";\r\n\r\nlet globalConfig: LoggerConfig = {\r\n showTimestamp: false,\r\n showIcon: true,\r\n timestampFormat: \"time\",\r\n prefix: \"Azura\",\r\n uppercase: true,\r\n bold: false,\r\n dim: false,\r\n};\r\n\r\nexport function configureLogger(config: LoggerConfig): void {\r\n globalConfig = { ...globalConfig, ...config };\r\n}\r\n\r\nfunction hexToAnsi(hex: string): string {\r\n const r = parseInt(hex.slice(1, 3), 16);\r\n const g = parseInt(hex.slice(3, 5), 16);\r\n const b = parseInt(hex.slice(5, 7), 16);\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction rgbToAnsi(r: number, g: number, b: number): string {\r\n return `\\x1b[38;2;${r};${g};${b}m`;\r\n}\r\n\r\nfunction getColorCode(color: string): string {\r\n if (color.startsWith(\"#\")) {\r\n return hexToAnsi(color);\r\n }\r\n if (color.startsWith(\"rgb(\")) {\r\n const match = color.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\r\n if (match) {\r\n return rgbToAnsi(Number(match[1]), Number(match[2]), Number(match[3]));\r\n }\r\n }\r\n return (ANSI_COLORS as Record<string, string>)[color] || color;\r\n}\r\n\r\nfunction formatTimestamp(format: \"time\" | \"datetime\" | \"iso\"): string {\r\n const now = new Date();\r\n switch (format) {\r\n case \"time\":\r\n return now.toLocaleTimeString();\r\n case \"datetime\":\r\n return now.toLocaleString();\r\n case \"iso\":\r\n return now.toISOString();\r\n default:\r\n return now.toLocaleTimeString();\r\n }\r\n}\r\n\r\nexport type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;\r\n\r\n/**\r\n * Logger de consola estilo legacy. Exportado como `logger` em `azurajs/logger`\r\n * (nome interno distinto de `Logger` para o TypeScript não fundir os dois símbolos).\r\n */\r\nexport function consoleLog(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void {\r\n const config = { ...globalConfig, ...options };\r\n\r\n const colors = { ...DEFAULT_COLORS, ...config.colors };\r\n const icons = { ...DEFAULT_ICONS, ...config.icons };\r\n\r\n const color = getColorCode(colors[level] || ANSI_COLORS.white);\r\n const icon = config.showIcon !== false ? icons[level] || \"\" : \"\";\r\n const levelLabel = config.uppercase ? level.toUpperCase() : level;\r\n\r\n let style = color;\r\n if (config.bold) style += BOLD;\r\n if (config.dim) style += DIM;\r\n if (config.backgroundColor) {\r\n style += getColorCode(config.backgroundColor);\r\n }\r\n\r\n const parts: string[] = [];\r\n\r\n if (config.showTimestamp) {\r\n const timestamp = formatTimestamp(config.timestampFormat || \"time\");\r\n parts.push(`${DIM}${timestamp}${RESET}`);\r\n }\r\n\r\n if (icon) {\r\n parts.push(icon);\r\n }\r\n\r\n const prefix = config.prefix\r\n ? `${style}[${config.prefix}:${levelLabel}]${RESET}`\r\n : `${style}[${levelLabel}]${RESET}`;\r\n parts.push(prefix);\r\n\r\n parts.push(msg);\r\n\r\n const output = parts.join(\" \");\r\n\r\n const consoleMethod =\r\n level === \"error\" || level === \"fatal\"\r\n ? console.error\r\n : level === \"warn\"\r\n ? console.warn\r\n : level === \"debug\" || level === \"trace\"\r\n ? console.debug\r\n : console.log;\r\n\r\n consoleMethod(output);\r\n}\r\n\r\nexport const log = {\r\n debug: (msg: string, options?: LoggerConfig) => consoleLog(\"debug\", msg, options),\r\n info: (msg: string, options?: LoggerConfig) => consoleLog(\"info\", msg, options),\r\n success: (msg: string, options?: LoggerConfig) => consoleLog(\"success\", msg, options),\r\n warn: (msg: string, options?: LoggerConfig) => consoleLog(\"warn\", msg, options),\r\n error: (msg: string, options?: LoggerConfig) => consoleLog(\"error\", msg, options),\r\n fatal: (msg: string, options?: LoggerConfig) => consoleLog(\"fatal\", msg, options),\r\n trace: (msg: string, options?: LoggerConfig) => consoleLog(\"trace\", msg, options),\r\n log: (msg: string, options?: LoggerConfig) => consoleLog(\"log\", msg, options),\r\n};\r\n\r\nexport const colors = {\r\n hex: hexToAnsi,\r\n rgb: rgbToAnsi,\r\n ansi: ANSI_COLORS,\r\n bg: BG_COLORS,\r\n reset: RESET,\r\n bold: BOLD,\r\n dim: DIM,\r\n};\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azurajs",
3
- "version": "3.0.8",
3
+ "version": "3.0.9",
4
4
  "description": "Ultra-fast TypeScript-first web framework for Node.js and Bun with decorator-based routing, zero dependencies, and built-in plugin system",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -1,6 +1,7 @@
1
1
  export { Logger } from "../utils/Logger.js";
2
2
  export {
3
- logger,
3
+ consoleLog,
4
+ consoleLog as logger,
4
5
  log,
5
6
  configureLogger,
6
7
  colors,
@@ -64,9 +64,10 @@ function formatTimestamp(format: "time" | "datetime" | "iso"): string {
64
64
  export type ConsoleLogLevel = keyof typeof DEFAULT_COLORS;
65
65
 
66
66
  /**
67
- * Logger de consola estilo legacy: `logger("success", "ok")`, `logger("fatal", msg)`.
67
+ * Logger de consola estilo legacy. Exportado como `logger` em `azurajs/logger`
68
+ * (nome interno distinto de `Logger` para o TypeScript não fundir os dois símbolos).
68
69
  */
69
- export function logger(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void {
70
+ export function consoleLog(level: ConsoleLogLevel, msg: string, options?: LoggerConfig): void {
70
71
  const config = { ...globalConfig, ...options };
71
72
 
72
73
  const colors = { ...DEFAULT_COLORS, ...config.colors };
@@ -116,14 +117,14 @@ export function logger(level: ConsoleLogLevel, msg: string, options?: LoggerConf
116
117
  }
117
118
 
118
119
  export const log = {
119
- debug: (msg: string, options?: LoggerConfig) => logger("debug", msg, options),
120
- info: (msg: string, options?: LoggerConfig) => logger("info", msg, options),
121
- success: (msg: string, options?: LoggerConfig) => logger("success", msg, options),
122
- warn: (msg: string, options?: LoggerConfig) => logger("warn", msg, options),
123
- error: (msg: string, options?: LoggerConfig) => logger("error", msg, options),
124
- fatal: (msg: string, options?: LoggerConfig) => logger("fatal", msg, options),
125
- trace: (msg: string, options?: LoggerConfig) => logger("trace", msg, options),
126
- log: (msg: string, options?: LoggerConfig) => logger("log", msg, options),
120
+ debug: (msg: string, options?: LoggerConfig) => consoleLog("debug", msg, options),
121
+ info: (msg: string, options?: LoggerConfig) => consoleLog("info", msg, options),
122
+ success: (msg: string, options?: LoggerConfig) => consoleLog("success", msg, options),
123
+ warn: (msg: string, options?: LoggerConfig) => consoleLog("warn", msg, options),
124
+ error: (msg: string, options?: LoggerConfig) => consoleLog("error", msg, options),
125
+ fatal: (msg: string, options?: LoggerConfig) => consoleLog("fatal", msg, options),
126
+ trace: (msg: string, options?: LoggerConfig) => consoleLog("trace", msg, options),
127
+ log: (msg: string, options?: LoggerConfig) => consoleLog("log", msg, options),
127
128
  };
128
129
 
129
130
  export const colors = {