const colors = { reset: "\x1b[0m", bright: "\x1b[1m", dim: "\x1b[2m", underscore: "\x1b[4m", blink: "\x1b[5m", reverse: "\x1b[7m", hidden: "\x1b[8m", fgBlack: "\x1b[30m", fgRed: "\x1b[31m", fgGreen: "\x1b[32m", fgYellow: "\x1b[33m", fgBlue: "\x1b[34m", fgMagenta: "\x1b[35m", fgCyan: "\x1b[36m", fgWhite: "\x1b[37m", bgBlack: "\x1b[40m", bgRed: "\x1b[41m", bgGreen: "\x1b[42m", bgYellow: "\x1b[43m", bgBlue: "\x1b[44m", bgMagenta: "\x1b[45m", bgCyan: "\x1b[46m", bgWhite: "\x1b[47m", }; /** * Formats a timestamp for logging. * @returns {string} Formatted timestamp */ const getTimestamp = () => { return new Date().toISOString(); }; /** * Logs an INFO message. * @param {string} message - Log message * @param {Object} [data] - Additional data */ const info = (message, data = null) => { console.log(`${colors.fgGreen}[INFO] ${getTimestamp()} - ${message}${colors.reset}`); if (data) console.log(data); }; /** * Logs a WARNING message. * @param {string} message - Log message * @param {Object} [data] - Additional data */ const warn = (message, data = null) => { console.warn(`${colors.fgYellow}[WARN] ${getTimestamp()} - ${message}${colors.reset}`); if (data) console.warn(data); }; /** * Logs an ERROR message. * @param {string} message - Log message * @param {Object} [data] - Additional data */ const error = (message, data = null) => { console.error(`${colors.fgRed}[ERROR] ${getTimestamp()} - ${message}${colors.reset}`); if (data) console.error(data); }; /** * Logs a DEBUG message. * @param {string} message - Log message * @param {Object} [data] - Additional data */ const debug = (message, data = null) => { console.log(`${colors.fgBlue}[DEBUG] ${getTimestamp()} - ${message}${colors.reset}`); if (data) console.log(data); }; export default { info, warn, error, debug };