@mks2508/better-logger 2.0.1 → 3.0.0

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.
Files changed (172) hide show
  1. package/.claude/settings.local.json +6 -1
  2. package/CHANGELOG.json +93 -1
  3. package/CHANGELOG.md +127 -0
  4. package/CLAUDE.md +14 -1
  5. package/README.md +111 -20
  6. package/bun.lock +333 -0
  7. package/dist/Logger.d.ts +851 -0
  8. package/dist/Logger.d.ts.map +1 -0
  9. package/dist/ScopedLogger.d.ts +57 -0
  10. package/dist/ScopedLogger.d.ts.map +1 -0
  11. package/dist/chunks/Logger-BCfx_yCK.js +2 -0
  12. package/dist/chunks/Logger-BCfx_yCK.js.map +1 -0
  13. package/dist/chunks/Logger-C126NTrD.js +4269 -0
  14. package/dist/chunks/Logger-C126NTrD.js.map +1 -0
  15. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  16. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  17. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  18. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  19. package/dist/chunks/environment-Ba5kShbx.js +4 -0
  20. package/dist/chunks/environment-Ba5kShbx.js.map +1 -0
  21. package/dist/chunks/environment-TI2ByCPT.js +1209 -0
  22. package/dist/chunks/environment-TI2ByCPT.js.map +1 -0
  23. package/dist/chunks/formatting-Blwy-f0W.js +2 -0
  24. package/dist/chunks/formatting-Blwy-f0W.js.map +1 -0
  25. package/dist/chunks/formatting-CuNUqGks.js +380 -0
  26. package/dist/chunks/formatting-CuNUqGks.js.map +1 -0
  27. package/dist/cli/CommandProcessor.d.ts +100 -0
  28. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  29. package/dist/cli/commands/ConfigCommand.d.ts +14 -0
  30. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  31. package/dist/cli/commands/ExportCommand.d.ts +48 -0
  32. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  33. package/dist/cli/commands/HistoryCommand.d.ts +47 -0
  34. package/dist/cli/commands/HistoryCommand.d.ts.map +1 -0
  35. package/dist/cli/commands/StatusCommand.d.ts +30 -0
  36. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  37. package/dist/cli/commands/ThemeCommand.d.ts +30 -0
  38. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  39. package/dist/cli/help.d.ts +12 -0
  40. package/dist/cli/help.d.ts.map +1 -0
  41. package/dist/cli/index.d.ts +15 -0
  42. package/dist/cli/index.d.ts.map +1 -0
  43. package/dist/constants.d.ts +227 -0
  44. package/dist/constants.d.ts.map +1 -0
  45. package/dist/core.cjs +2 -0
  46. package/dist/core.cjs.map +1 -0
  47. package/dist/core.d.ts +127 -0
  48. package/dist/core.d.ts.map +1 -0
  49. package/dist/core.js +291 -0
  50. package/dist/core.js.map +1 -0
  51. package/dist/example.d.ts +18 -0
  52. package/dist/example.d.ts.map +1 -0
  53. package/dist/exports-module.d.ts +196 -0
  54. package/dist/exports-module.d.ts.map +1 -0
  55. package/dist/exports.cjs +2 -0
  56. package/dist/exports.cjs.map +1 -0
  57. package/dist/exports.js +238 -0
  58. package/dist/exports.js.map +1 -0
  59. package/dist/handlers/AnalyticsLogHandler.d.ts +8 -0
  60. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  61. package/dist/handlers/ExportLogHandler.d.ts +100 -0
  62. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  63. package/dist/handlers/FileLogHandler.d.ts +33 -0
  64. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  65. package/dist/handlers/RemoteLogHandler.d.ts +11 -0
  66. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  67. package/dist/handlers/index.d.ts +8 -0
  68. package/dist/handlers/index.d.ts.map +1 -0
  69. package/dist/hooks/HookManager.d.ts +21 -0
  70. package/dist/hooks/HookManager.d.ts.map +1 -0
  71. package/dist/hooks/index.d.ts +2 -0
  72. package/dist/hooks/index.d.ts.map +1 -0
  73. package/dist/index.cjs +2 -0
  74. package/dist/index.cjs.map +1 -0
  75. package/dist/index.d.ts +144 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +478 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/main.d.ts +2 -0
  80. package/dist/main.d.ts.map +1 -0
  81. package/dist/serializers/SerializerRegistry.d.ts +16 -0
  82. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  83. package/dist/serializers/index.d.ts +2 -0
  84. package/dist/serializers/index.d.ts.map +1 -0
  85. package/dist/styling/LogStyleBuilder.d.ts +146 -0
  86. package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
  87. package/dist/styling/SemanticStyles.d.ts +178 -0
  88. package/dist/styling/SemanticStyles.d.ts.map +1 -0
  89. package/dist/styling/SmartPresets.d.ts +22 -0
  90. package/dist/styling/SmartPresets.d.ts.map +1 -0
  91. package/dist/styling/StyleBuilder.d.ts +140 -0
  92. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  93. package/dist/styling/StyleCache.d.ts +42 -0
  94. package/dist/styling/StyleCache.d.ts.map +1 -0
  95. package/dist/styling/banners.d.ts +42 -0
  96. package/dist/styling/banners.d.ts.map +1 -0
  97. package/dist/styling/index.d.ts +10 -0
  98. package/dist/styling/index.d.ts.map +1 -0
  99. package/dist/styling/themes.d.ts +7 -0
  100. package/dist/styling/themes.d.ts.map +1 -0
  101. package/dist/styling-module.d.ts +178 -0
  102. package/dist/styling-module.d.ts.map +1 -0
  103. package/dist/styling.cjs +2 -0
  104. package/dist/styling.cjs.map +1 -0
  105. package/dist/styling.js +146 -0
  106. package/dist/styling.js.map +1 -0
  107. package/dist/terminal/terminal-renderer.d.ts +63 -0
  108. package/dist/terminal/terminal-renderer.d.ts.map +1 -0
  109. package/dist/transports/ConsoleTransport.d.ts +9 -0
  110. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  111. package/dist/transports/FileTransport.d.ts +15 -0
  112. package/dist/transports/FileTransport.d.ts.map +1 -0
  113. package/dist/transports/HttpTransport.d.ts +16 -0
  114. package/dist/transports/HttpTransport.d.ts.map +1 -0
  115. package/dist/transports/TransportManager.d.ts +14 -0
  116. package/dist/transports/TransportManager.d.ts.map +1 -0
  117. package/dist/transports/index.d.ts +5 -0
  118. package/dist/transports/index.d.ts.map +1 -0
  119. package/dist/types/core.d.ts +272 -0
  120. package/dist/types/core.d.ts.map +1 -0
  121. package/dist/types/handlers.d.ts +85 -0
  122. package/dist/types/handlers.d.ts.map +1 -0
  123. package/dist/types/hooks.d.ts +36 -0
  124. package/dist/types/hooks.d.ts.map +1 -0
  125. package/dist/types/index.d.ts +11 -0
  126. package/dist/types/index.d.ts.map +1 -0
  127. package/dist/types/serializers.d.ts +25 -0
  128. package/dist/types/serializers.d.ts.map +1 -0
  129. package/dist/types/transports.d.ts +47 -0
  130. package/dist/types/transports.d.ts.map +1 -0
  131. package/dist/utils/adapter.d.ts +48 -0
  132. package/dist/utils/adapter.d.ts.map +1 -0
  133. package/dist/utils/ansi-colors.d.ts +156 -0
  134. package/dist/utils/ansi-colors.d.ts.map +1 -0
  135. package/dist/utils/environment-detector.d.ts +35 -0
  136. package/dist/utils/environment-detector.d.ts.map +1 -0
  137. package/dist/utils/environment.d.ts +47 -0
  138. package/dist/utils/environment.d.ts.map +1 -0
  139. package/dist/utils/formatting.d.ts +58 -0
  140. package/dist/utils/formatting.d.ts.map +1 -0
  141. package/dist/utils/index.d.ts +8 -0
  142. package/dist/utils/index.d.ts.map +1 -0
  143. package/dist/utils/opentui-detection.d.ts +34 -0
  144. package/dist/utils/opentui-detection.d.ts.map +1 -0
  145. package/dist/utils/output.d.ts +46 -0
  146. package/dist/utils/output.d.ts.map +1 -0
  147. package/dist/utils/stackTrace.d.ts +6 -0
  148. package/dist/utils/stackTrace.d.ts.map +1 -0
  149. package/dist/utils/timestamps.d.ts +20 -0
  150. package/dist/utils/timestamps.d.ts.map +1 -0
  151. package/dist/vite.svg +1 -0
  152. package/docs/API.md +227 -0
  153. package/package.json +1 -1
  154. package/packages/core/package.json +1 -1
  155. package/src/Logger.ts +391 -102
  156. package/src/ScopedLogger.ts +78 -318
  157. package/src/hooks/HookManager.ts +177 -0
  158. package/src/hooks/index.ts +1 -0
  159. package/src/index.ts +77 -2
  160. package/src/serializers/SerializerRegistry.ts +173 -0
  161. package/src/serializers/index.ts +1 -0
  162. package/src/styling/StyleCache.ts +131 -0
  163. package/src/transports/ConsoleTransport.ts +28 -0
  164. package/src/transports/FileTransport.ts +53 -0
  165. package/src/transports/HttpTransport.ts +56 -0
  166. package/src/transports/TransportManager.ts +130 -0
  167. package/src/transports/index.ts +4 -0
  168. package/src/types/core.ts +46 -0
  169. package/src/types/hooks.ts +45 -0
  170. package/src/types/index.ts +39 -1
  171. package/src/types/serializers.ts +30 -0
  172. package/src/types/transports.ts +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/transports/ConsoleTransport.ts","../src/transports/FileTransport.ts","../src/transports/HttpTransport.ts","../src/handlers/FileLogHandler.ts","../src/handlers/AnalyticsLogHandler.ts","../src/styling/StyleCache.ts","../src/index.ts"],"sourcesContent":["import type { TransportRecord, TransportOptions, ITransport, LogLevel } from '../types/index.js';\n\nexport class ConsoleTransport implements ITransport {\n readonly name = 'console';\n\n constructor(private options?: TransportOptions) {}\n\n write(record: TransportRecord): void {\n const method = this.getConsoleMethod(record.level);\n const prefix = record.prefix ? `[${record.prefix}] ` : '';\n const location = record.location\n ? ` (${record.location.file}:${record.location.line})`\n : '';\n\n console[method](`[${record.level.toUpperCase()}]${prefix} ${record.msg}${location}`);\n }\n\n private getConsoleMethod(level: LogLevel): 'log' | 'info' | 'warn' | 'error' {\n switch (level) {\n case 'debug': return 'log';\n case 'info': return 'info';\n case 'warn': return 'warn';\n case 'error':\n case 'critical': return 'error';\n default: return 'log';\n }\n }\n}\n","import type { TransportRecord, TransportOptions, ITransport } from '../types/index.js';\n\nexport interface FileTransportOptions extends TransportOptions {\n destination?: string;\n}\n\nexport class FileTransport implements ITransport {\n readonly name = 'file';\n private buffer: string[] = [];\n private flushTimer?: ReturnType<typeof setInterval>;\n private options: FileTransportOptions;\n\n constructor(options?: FileTransportOptions) {\n this.options = options || {};\n\n if (this.options.flushInterval) {\n this.flushTimer = setInterval(() => this.flush(), this.options.flushInterval);\n }\n }\n\n write(record: TransportRecord): void {\n const line = JSON.stringify(record) + '\\n';\n this.buffer.push(line);\n\n if (this.buffer.length >= (this.options.batchSize || 100)) {\n this.flush();\n }\n }\n\n async flush(): Promise<void> {\n if (this.buffer.length === 0) return;\n\n const lines = this.buffer.join('');\n this.buffer = [];\n\n if (typeof globalThis.process !== 'undefined' && typeof require === 'function') {\n try {\n const fs = require('fs');\n const dest = this.options.destination || 'app.log';\n fs.appendFileSync(dest, lines);\n } catch {\n // Silent fail in browser or if fs not available\n }\n }\n }\n\n close(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n }\n this.flush();\n }\n}\n","import type { TransportRecord, TransportOptions, ITransport } from '../types/index.js';\n\nexport interface HttpTransportOptions extends TransportOptions {\n url?: string;\n headers?: Record<string, string>;\n}\n\nexport class HttpTransport implements ITransport {\n readonly name = 'http';\n private buffer: TransportRecord[] = [];\n private flushTimer?: ReturnType<typeof setInterval>;\n private options: HttpTransportOptions;\n\n constructor(options?: HttpTransportOptions) {\n this.options = options || {};\n\n if (this.options.flushInterval) {\n this.flushTimer = setInterval(() => this.flush(), this.options.flushInterval);\n }\n }\n\n write(record: TransportRecord): void {\n this.buffer.push(record);\n\n if (this.buffer.length >= (this.options.batchSize || 50)) {\n this.flush();\n }\n }\n\n async flush(): Promise<void> {\n if (this.buffer.length === 0 || !this.options.url) return;\n\n const records = [...this.buffer];\n this.buffer = [];\n\n try {\n await fetch(this.options.url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...this.options.headers\n },\n body: JSON.stringify({ logs: records })\n });\n } catch {\n this.buffer.unshift(...records);\n }\n }\n\n close(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n }\n this.flush();\n }\n}\n","/**\n * @fileoverview File-based log handler for Advanced Logger\n */\n\nimport type { ILogHandler, LogLevel, LogMetadata } from '../types/index.js';\nimport { isNode, isBrowser } from '../utils/environment.js';\nimport { safeSerialize } from '../utils/formatting.js';\n\n/**\n * Universal file-based log handler for persistent logging\n * Works in both Node.js (real files) and browser (localStorage)\n */\nexport class FileLogHandler implements ILogHandler {\n private filename: string;\n private maxSize?: number;\n private fs?: any; // Node.js fs module\n\n constructor(filename: string = 'app.log', maxSize?: number) {\n this.filename = filename;\n this.maxSize = maxSize;\n \n // Load Node.js fs module if in Node environment\n if (isNode) {\n try {\n this.fs = require('fs');\n } catch (error) {\n console.warn('FileLogHandler: Unable to load fs module:', error);\n }\n }\n }\n\n handle(level: LogLevel, message: string, args: any[], metadata: LogMetadata): void {\n const logEntry = {\n timestamp: metadata.timestamp,\n level: level.toUpperCase(),\n prefix: metadata.prefix,\n message,\n args: args.slice(1).map(arg => safeSerialize(arg)),\n location: metadata.stackInfo,\n };\n\n const logLine = this.formatLogLine(logEntry);\n\n if (isNode && this.fs) {\n this.writeToFileNode(logLine);\n } else if (isBrowser) {\n this.writeToFileLocal(logLine);\n } else {\n // Fallback - just console output\n console.log(`[FILE-LOG] ${logLine}`);\n }\n }\n\n /**\n * Format log entry as a single line for file storage\n */\n private formatLogLine(entry: any): string {\n const parts = [\n entry.timestamp,\n `[${entry.level}]`,\n entry.prefix ? `[${entry.prefix}]` : '',\n entry.message\n ].filter(Boolean);\n\n let line = parts.join(' ');\n \n if (entry.args && entry.args.length > 0) {\n line += ' ' + entry.args.map((arg: any) => \n typeof arg === 'object' ? JSON.stringify(arg) : String(arg)\n ).join(' ');\n }\n \n if (entry.location) {\n line += ` (${entry.location.file}:${entry.location.line}:${entry.location.column})`;\n }\n \n return line;\n }\n\n /**\n * Write to actual file in Node.js environment\n */\n private writeToFileNode(logLine: string): void {\n if (!this.fs) return;\n\n try {\n // Check file size if maxSize is set\n if (this.maxSize) {\n try {\n const stats = this.fs.statSync(this.filename);\n if (stats.size > this.maxSize) {\n // Simple rotation: backup current file and start fresh\n const backupName = `${this.filename}.bak`;\n this.fs.renameSync(this.filename, backupName);\n }\n } catch (error) {\n // File doesn't exist yet, that's fine\n }\n }\n\n // Append to file\n this.fs.appendFileSync(this.filename, logLine + '\\n', 'utf8');\n } catch (error) {\n console.error('FileLogHandler: Failed to write to file:', error);\n }\n }\n\n /**\n * Write to localStorage in browser environment\n */\n private writeToFileLocal(logLine: string): void {\n try {\n const storageKey = `logger_${this.filename}`;\n const existingLogs = localStorage.getItem(storageKey) || '';\n \n let newLogs = existingLogs;\n if (existingLogs.length > 0) {\n newLogs += '\\n';\n }\n newLogs += logLine;\n \n // Simple size management - keep last 1000 lines max\n if (this.maxSize || newLogs.split('\\n').length > 1000) {\n const lines = newLogs.split('\\n');\n const maxLines = this.maxSize ? Math.floor(this.maxSize / 100) : 1000;\n if (lines.length > maxLines) {\n newLogs = lines.slice(-maxLines).join('\\n');\n }\n }\n \n localStorage.setItem(storageKey, newLogs);\n } catch (error) {\n console.error('FileLogHandler: Failed to write to localStorage:', error);\n }\n }\n\n /**\n * Get stored logs (useful for debugging)\n */\n getLogs(): string | null {\n if (isNode && this.fs) {\n try {\n return this.fs.readFileSync(this.filename, 'utf8');\n } catch (error) {\n return null;\n }\n } else if (isBrowser) {\n const storageKey = `logger_${this.filename}`;\n return localStorage.getItem(storageKey);\n }\n return null;\n }\n\n /**\n * Clear stored logs\n */\n clearLogs(): void {\n if (isNode && this.fs) {\n try {\n this.fs.writeFileSync(this.filename, '', 'utf8');\n } catch (error) {\n console.error('FileLogHandler: Failed to clear file:', error);\n }\n } else if (isBrowser) {\n const storageKey = `logger_${this.filename}`;\n localStorage.removeItem(storageKey);\n }\n }\n}","/**\n * @fileoverview Analytics log handler for Advanced Logger\n */\n\nimport type { ILogHandler, LogLevel, LogMetadata } from '../types/index.js';\n\n/**\n * Example custom handler for analytics demonstration\n */\nexport class AnalyticsLogHandler implements ILogHandler {\n handle(level: LogLevel, message: string, _args: any[], metadata: LogMetadata): void {\n // In a real implementation, this could send analytics data\n if (level === 'error' || level === 'critical') {\n // Track errors for analytics\n console.debug('Analytics: Error tracked', { \n level, \n message, \n timestamp: metadata.timestamp \n });\n }\n }\n}","import type { LogLevel, DevToolsTheme } from '../types/core.js';\n\ninterface CacheKey {\n level: LogLevel | 'success';\n theme: DevToolsTheme;\n presetName?: string;\n hasPrefix: boolean;\n hasLocation: boolean;\n}\n\ninterface CacheEntry {\n styles: string[];\n format: string;\n createdAt: number;\n hits: number;\n}\n\nexport interface StyleCacheConfig {\n maxEntries?: number;\n ttl?: number;\n enabled?: boolean;\n}\n\nconst DEFAULT_CONFIG: Required<StyleCacheConfig> = {\n maxEntries: 100,\n ttl: 5 * 60 * 1000,\n enabled: true\n};\n\nexport class StyleCache {\n private cache: Map<string, CacheEntry> = new Map();\n private config: Required<StyleCacheConfig>;\n private hitCount = 0;\n private missCount = 0;\n\n constructor(config: StyleCacheConfig = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n private generateKey(key: CacheKey): string {\n return `${key.level}:${key.theme}:${key.presetName || 'default'}:${key.hasPrefix}:${key.hasLocation}`;\n }\n\n get(key: CacheKey): CacheEntry | null {\n if (!this.config.enabled) return null;\n\n const cacheKey = this.generateKey(key);\n const entry = this.cache.get(cacheKey);\n\n if (!entry) {\n this.missCount++;\n return null;\n }\n\n if (Date.now() - entry.createdAt > this.config.ttl) {\n this.cache.delete(cacheKey);\n this.missCount++;\n return null;\n }\n\n entry.hits++;\n this.cache.delete(cacheKey);\n this.cache.set(cacheKey, entry);\n this.hitCount++;\n\n return entry;\n }\n\n set(key: CacheKey, format: string, styles: string[]): void {\n if (!this.config.enabled) return;\n\n const cacheKey = this.generateKey(key);\n\n if (this.cache.size >= this.config.maxEntries) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n\n this.cache.set(cacheKey, {\n format,\n styles: [...styles],\n createdAt: Date.now(),\n hits: 0\n });\n }\n\n clear(): void {\n this.cache.clear();\n this.hitCount = 0;\n this.missCount = 0;\n }\n\n getStats(): {\n size: number;\n maxSize: number;\n hitRate: number;\n hits: number;\n misses: number;\n } {\n const total = this.hitCount + this.missCount;\n return {\n size: this.cache.size,\n maxSize: this.config.maxEntries,\n hitRate: total > 0 ? this.hitCount / total : 0,\n hits: this.hitCount,\n misses: this.missCount\n };\n }\n\n setEnabled(enabled: boolean): void {\n this.config.enabled = enabled;\n if (!enabled) {\n this.clear();\n }\n }\n\n isEnabled(): boolean {\n return this.config.enabled;\n }\n}\n\nlet _styleCache: StyleCache | null = null;\n\nexport function getStyleCache(): StyleCache {\n if (!_styleCache) {\n _styleCache = new StyleCache();\n }\n return _styleCache;\n}\n","/**\n * @fileoverview Better Logger - Librería completa con todas las características\n * @version 0.3.0\n * @since 2024\n * \n * Punto de entrada principal que proporciona la experiencia completa de Better Logger\n * con características avanzadas incluyendo estilos CSS, soporte SVG, animaciones,\n * capacidades de exportación y logging remoto.\n * \n * @module @mks2508/better-logger\n */\n\n// Main Logger class with all features\nimport { Logger } from './Logger.js';\nimport type {\n LogLevel,\n Verbosity,\n ThemeVariant,\n BannerType,\n StyleOptions,\n ILogHandler\n} from './types/index.js';\n\n// Lazy singleton - se inicializa solo cuando se necesita\nlet _logger: Logger | null = null;\n\nfunction getLogger(): Logger {\n if (!_logger) {\n _logger = new Logger();\n }\n return _logger;\n}\n\n/**\n * Clase principal Logger con conjunto completo de características\n * \n * @example\n * // Importación y uso básico\n * import { Logger } from '@mks2508/better-logger';\n * \n * const logger = new Logger();\n * logger.preset('cyberpunk'); // Aplicar preset completo\n * logger.info('¡Hola mundo!');\n * \n * @example\n * // Logger con scope para componentes\n * const auth = logger.component('Auth');\n * auth.info('Usuario autenticando...');\n * auth.success('Login exitoso');\n * \n * @example\n * // Logger para APIs con badges\n * const api = logger.api('GraphQL');\n * api.badges(['v2', 'cached']).info('Query ejecutada');\n * \n * @since 0.3.0\n */\nexport { Logger };\n\n/**\n * Instancia singleton del logger lista para usar\n * @default\n * \n * @example\n * // Uso directo sin crear instancia\n * import logger from '@mks2508/better-logger';\n * \n * logger.info('Aplicación iniciada');\n * logger.success('Conexión establecida');\n * logger.warn('Memoria al 80%');\n * logger.error('Fallo en conexión');\n */\nexport default getLogger();\n\n/**\n * Métodos de logging individuales (enlazados al singleton)\n * \n * @example\n * // Importar solo los métodos necesarios\n * import { info, error, success } from '@mks2508/better-logger';\n * \n * info('Proceso iniciado');\n * success('✓ Completado exitosamente');\n * error('Error:', errorDetails);\n * \n * @since 0.3.0\n */\nexport const debug = (...args: any[]) => getLogger().debug(...args);\nexport const info = (...args: any[]) => getLogger().info(...args);\nexport const warn = (...args: any[]) => getLogger().warn(...args);\nexport const error = (...args: any[]) => getLogger().error(...args);\nexport const success = (...args: any[]) => getLogger().success(...args);\nexport const critical = (...args: any[]) => getLogger().critical(...args);\nexport const trace = (...args: any[]) => getLogger().trace(...args);\nexport const table = (data: any, columns?: string[]) => getLogger().table(data, columns);\nexport const group = (label: string, collapsed?: boolean) => getLogger().group(label, collapsed);\nexport const groupEnd = () => getLogger().groupEnd();\nexport const time = (label: string) => getLogger().time(label);\nexport const timeEnd = (label: string) => getLogger().timeEnd(label);\nexport const setGlobalPrefix = (prefix: string) => getLogger().setGlobalPrefix(prefix);\nexport const scope = (name: string) => getLogger().scope(name);\nexport const component = (name: string) => getLogger().component(name);\nexport const api = (name: string) => getLogger().api(name);\nexport const badges = (badgeList: string[]) => getLogger().badges(badgeList);\nexport const badge = (badgeName: string) => getLogger().badge(badgeName);\nexport const clearBadges = () => getLogger().clearBadges();\nexport const setVerbosity = (level: Verbosity) => getLogger().setVerbosity(level);\nexport const addHandler = (handler: ILogHandler) => getLogger().addHandler(handler);\nexport const setTheme = (theme: ThemeVariant) => getLogger().setTheme(theme);\nexport const setBannerType = (bannerType: BannerType) => getLogger().setBannerType(bannerType);\nexport const showBanner = (bannerType?: BannerType) => getLogger().showBanner(bannerType);\nexport const logWithSVG = (message: string, svgContent?: string, options?: StyleOptions) => \n getLogger().logWithSVG(message, svgContent, options);\nexport const logAnimated = (message: string, duration?: number) => \n getLogger().logAnimated(message, duration);\nexport const cli = (command: string) => getLogger().cli(command);\n\n// Type exports\nexport type {\n LogLevel,\n Verbosity,\n ThemeVariant,\n BannerType,\n StyleOptions,\n ILogHandler,\n LoggerConfig,\n LogMetadata,\n StackInfo,\n TimerEntry,\n TimerResult,\n OutputFormat,\n IScopedLogger,\n IAPILogger,\n IComponentLogger,\n Bindings,\n SerializerFn,\n SerializerContext,\n SerializerConfig,\n ISerializerRegistry,\n HookLogEntry,\n HookEvent,\n HookCallback,\n MiddlewareFn,\n IHookManager,\n TransportRecord,\n TransportOptions,\n TransportTarget,\n ITransport,\n StyleCacheConfig\n} from './types/index.js';\n\n// Styling utilities\nexport { \n StyleBuilder,\n StylePresets,\n THEME_PRESETS,\n THEME_BANNERS,\n BANNER_VARIANTS\n} from './styling/index.js';\n\n// Handler exports\nexport {\n FileLogHandler,\n RemoteLogHandler,\n AnalyticsLogHandler\n} from './handlers/index.js';\n\n// Serializers\nexport { SerializerRegistry } from './serializers/index.js';\n\n// Hooks & Middleware\nexport { HookManager } from './hooks/index.js';\n\n// Transports\nexport {\n TransportManager,\n ConsoleTransport,\n FileTransport,\n HttpTransport\n} from './transports/index.js';\n\n// Style Cache\nexport { StyleCache, getStyleCache } from './styling/StyleCache.js';\n\n// Enterprise feature function exports\nimport type { SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget } from './types/index.js';\nexport const addSerializer = <T>(\n type: new (...args: any[]) => T,\n serializer: SerializerFn<T>,\n priority?: number\n) => getLogger().addSerializer(type, serializer, priority);\nexport const removeSerializer = <T>(type: new (...args: any[]) => T) =>\n getLogger().removeSerializer(type);\nexport const on = (event: HookEvent, callback: HookCallback, priority?: number) =>\n getLogger().on(event, callback, priority);\nexport const once = (event: HookEvent, callback: HookCallback, priority?: number) =>\n getLogger().once(event, callback, priority);\nexport const off = (event: HookEvent, callback: HookCallback) =>\n getLogger().off(event, callback);\nexport const use = (middleware: MiddlewareFn, priority?: number) =>\n getLogger().use(middleware, priority);\nexport const addTransport = (target: TransportTarget) =>\n getLogger().addTransport(target);\nexport const removeTransport = (id: string) =>\n getLogger().removeTransport(id);\nexport const flushTransports = () =>\n getLogger().flushTransports();\nexport const closeTransports = () =>\n getLogger().closeTransports();\n\n// Scoped loggers\nexport {\n ScopedLogger,\n APILogger,\n ComponentLogger,\n ContextLogger\n} from './ScopedLogger.js';\n\n// Constants\nexport { DEFAULT_CONFIG } from './constants.js';\n\n// Utility exports\nexport {\n parseStackTrace,\n formatTimestamp,\n detectOptimalFormat,\n createOutput,\n createANSIOutput,\n createBuildOutput,\n createCIOutput\n} from './utils/index.js';\n\n// ANSI color utilities\nexport {\n ansiStyle,\n ansiColor,\n ansiBackground,\n ansiBold,\n ansiDim,\n ansiUnderline,\n formatLogLevelANSI,\n formatSuccessANSI,\n BUILD_FORMATTERS,\n sanitizeEmojis\n} from './utils/ansi-colors.js';\n\n// Environment detection and presets\nexport {\n BUILD_PRESETS,\n ENVIRONMENT_DETECTION,\n detectEnvironmentPreset,\n getOptimalConfig\n} from './constants.js';\n\n/**\n * Utilidades de estilo para crear estilos personalizados de consola\n * \n * @example\n * // Crear estilo personalizado\n * import { createStyle, stylePresets } from '@mks2508/better-logger';\n * \n * const miEstilo = createStyle()\n * .bg('linear-gradient(45deg, #ff6b6b, #feca57)')\n * .color('white')\n * .padding('10px')\n * .rounded('8px')\n * .bold()\n * .build();\n * \n * console.log('%cMensaje estilizado', miEstilo);\n * \n * @example\n * // Usar presets predefinidos\n * console.log('%cÉxito!', stylePresets.success);\n * console.log('%cError!', stylePresets.error);\n * \n * @since 0.3.0\n */\nimport { StyleBuilder, StylePresets } from './styling/index.js';\n\n/**\n * Crea una nueva instancia de StyleBuilder para estilos personalizados de consola\n * \n * @returns {StyleBuilder} Constructor de estilos encadenable\n * \n * @example\n * const estilo = createStyle()\n * .gradient('#667eea', '#764ba2')\n * .color('white')\n * .padding('8px 16px')\n * .rounded('4px')\n * .shadow('0 2px 4px rgba(0,0,0,0.2)')\n * .build();\n * \n * @since 0.3.0\n */\nexport const createStyle = () => new StyleBuilder();\n\n/**\n * Presets de estilo predefinidos para casos de uso comunes\n * \n * @constant {Object} stylePresets\n * \n * @example\n * console.log('%cOperación exitosa', stylePresets.success);\n * console.log('%cAdvertencia', stylePresets.warning);\n * console.log('%cError crítico', stylePresets.error);\n * console.log('%cInformación', stylePresets.info);\n * console.log('%cDestacado', stylePresets.accent);\n * \n * @since 0.3.0\n */\nexport const stylePresets = {\n success: StylePresets.success().build(),\n error: StylePresets.error().build(),\n warning: StylePresets.warning().build(),\n info: StylePresets.info().build(),\n accent: StylePresets.accent().build(),\n};"],"names":["error","StyleBuilder","StylePresets"],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { SerializerFn, SerializerEntry, SerializerConfig, ISerializerRegistry } from '../types/index.js';
2
+ export declare class SerializerRegistry implements ISerializerRegistry {
3
+ private serializers;
4
+ private config;
5
+ constructor(config?: SerializerConfig);
6
+ private registerDefaults;
7
+ add<T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number): void;
8
+ remove<T>(type: new (...args: any[]) => T): boolean;
9
+ has<T>(type: new (...args: any[]) => T): boolean;
10
+ getAll(): SerializerEntry[];
11
+ private findSerializer;
12
+ private serializeInternal;
13
+ serialize(value: any, config?: SerializerConfig): any;
14
+ }
15
+ export declare function getDefaultSerializerRegistry(): SerializerRegistry;
16
+ //# sourceMappingURL=SerializerRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializerRegistry.d.ts","sourceRoot":"","sources":["../../src/serializers/SerializerRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAEZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,mBAAmB,CAAC;AAQ3B,qBAAa,kBAAmB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,GAAE,gBAAqB;IAKzC,OAAO,CAAC,gBAAgB;IAmDxB,GAAG,CAAC,CAAC,EACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAC/B,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAC3B,QAAQ,GAAE,MAAW,GACtB,IAAI;IAIP,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO;IAInD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO;IAIhD,MAAM,IAAI,eAAe,EAAE;IAK3B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,iBAAiB;IAiDzB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,GAAG;CASxD;AAID,wBAAgB,4BAA4B,IAAI,kBAAkB,CAKjE"}
@@ -0,0 +1,2 @@
1
+ export { SerializerRegistry, getDefaultSerializerRegistry } from './SerializerRegistry.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,146 @@
1
+ import { Logger } from '../Logger.js';
2
+ import { LogStyles, SpacingType } from '../types/index.js';
3
+ /**
4
+ * Fluent API builder for log styling with semantic methods
5
+ */
6
+ export declare class LogStyleBuilder {
7
+ private logStyles;
8
+ private logger;
9
+ constructor(logger: Logger);
10
+ /**
11
+ * Configure timestamp styling
12
+ */
13
+ timestamp(): TimestampStyleBuilderProxy;
14
+ /**
15
+ * Configure level badge styling
16
+ */
17
+ level(): LevelStyleBuilderProxy;
18
+ /**
19
+ * Configure prefix styling
20
+ */
21
+ prefix(): PrefixStyleBuilderProxy;
22
+ /**
23
+ * Configure message text styling
24
+ */
25
+ message(): MessageStyleBuilderProxy;
26
+ /**
27
+ * Configure location info styling
28
+ */
29
+ location(): LocationStyleBuilderProxy;
30
+ /**
31
+ * Use a predefined preset
32
+ */
33
+ usePreset(presetName: string): LogStyleBuilder;
34
+ /**
35
+ * Customize with partial configuration
36
+ */
37
+ customize(overrides: Partial<LogStyles>): LogStyleBuilder;
38
+ /**
39
+ * Set layout spacing
40
+ */
41
+ spacing(type: SpacingType): LogStyleBuilder;
42
+ /**
43
+ * Set backdrop filter for glassmorphism effects
44
+ */
45
+ backdrop(filter: string): LogStyleBuilder;
46
+ /**
47
+ * Set overall transparency
48
+ */
49
+ transparency(value: number): LogStyleBuilder;
50
+ /**
51
+ * Apply the configured styles to the logger
52
+ */
53
+ apply(): void;
54
+ /**
55
+ * Get current configuration (for debugging)
56
+ */
57
+ getConfig(): LogStyles;
58
+ /**
59
+ * Internal method to update part configuration
60
+ */
61
+ _updatePartConfig(part: keyof LogStyles, styles: string): void;
62
+ }
63
+ /**
64
+ * Base proxy class for part-specific styling
65
+ */
66
+ declare abstract class PartStyleBuilderProxy {
67
+ protected parentBuilder: LogStyleBuilder;
68
+ protected partName: keyof LogStyles;
69
+ constructor(parentBuilder: LogStyleBuilder, partName: keyof LogStyles);
70
+ /**
71
+ * Return to the main builder for chaining other parts
72
+ */
73
+ and(): LogStyleBuilder;
74
+ /**
75
+ * Apply styles and finish configuration
76
+ */
77
+ apply(): void;
78
+ /**
79
+ * Helper to apply styles to the parent builder
80
+ */
81
+ protected applyStyles(styler: any): this;
82
+ }
83
+ /**
84
+ * Timestamp styling proxy with fluent API
85
+ */
86
+ declare class TimestampStyleBuilderProxy extends PartStyleBuilderProxy {
87
+ constructor(parentBuilder: LogStyleBuilder);
88
+ default(): TimestampStyleBuilderProxy;
89
+ hidden(): TimestampStyleBuilderProxy;
90
+ minimal(): TimestampStyleBuilderProxy;
91
+ muted(): TimestampStyleBuilderProxy;
92
+ mono(): TimestampStyleBuilderProxy;
93
+ compact(): TimestampStyleBuilderProxy;
94
+ }
95
+ /**
96
+ * Level badge styling proxy with fluent API
97
+ */
98
+ declare class LevelStyleBuilderProxy extends PartStyleBuilderProxy {
99
+ constructor(parentBuilder: LogStyleBuilder);
100
+ badge(): LevelStyleBuilderProxy;
101
+ gradient(from?: string, to?: string): LevelStyleBuilderProxy;
102
+ glowing(): LevelStyleBuilderProxy;
103
+ flat(): LevelStyleBuilderProxy;
104
+ bold(): LevelStyleBuilderProxy;
105
+ uppercase(): LevelStyleBuilderProxy;
106
+ neon(): LevelStyleBuilderProxy;
107
+ }
108
+ /**
109
+ * Prefix styling proxy with fluent API
110
+ */
111
+ declare class PrefixStyleBuilderProxy extends PartStyleBuilderProxy {
112
+ constructor(parentBuilder: LogStyleBuilder);
113
+ dark(): PrefixStyleBuilderProxy;
114
+ light(): PrefixStyleBuilderProxy;
115
+ compact(): PrefixStyleBuilderProxy;
116
+ muted(): PrefixStyleBuilderProxy;
117
+ mono(): PrefixStyleBuilderProxy;
118
+ }
119
+ /**
120
+ * Message styling proxy with fluent API
121
+ */
122
+ declare class MessageStyleBuilderProxy extends PartStyleBuilderProxy {
123
+ constructor(parentBuilder: LogStyleBuilder);
124
+ readable(): MessageStyleBuilderProxy;
125
+ code(): MessageStyleBuilderProxy;
126
+ large(): MessageStyleBuilderProxy;
127
+ system(): MessageStyleBuilderProxy;
128
+ mono(): MessageStyleBuilderProxy;
129
+ }
130
+ /**
131
+ * Location styling proxy with fluent API
132
+ */
133
+ declare class LocationStyleBuilderProxy extends PartStyleBuilderProxy {
134
+ constructor(parentBuilder: LogStyleBuilder);
135
+ subtle(): LocationStyleBuilderProxy;
136
+ hidden(): LocationStyleBuilderProxy;
137
+ clickable(): LocationStyleBuilderProxy;
138
+ muted(): LocationStyleBuilderProxy;
139
+ mono(): LocationStyleBuilderProxy;
140
+ }
141
+ /**
142
+ * Create a new LogStyleBuilder instance
143
+ */
144
+ export declare function createLogStyleBuilder(logger: Logger): LogStyleBuilder;
145
+ export {};
146
+ //# sourceMappingURL=LogStyleBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogStyleBuilder.d.ts","sourceRoot":"","sources":["../../src/styling/LogStyleBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { StyleBuilder } from './StyleBuilder.js';
2
+ /**
3
+ * Base semantic styler with common style methods
4
+ */
5
+ export declare abstract class BaseStyler {
6
+ protected builder: StyleBuilder;
7
+ constructor(builder?: StyleBuilder);
8
+ /**
9
+ * Primary brand color (typically blue)
10
+ */
11
+ primary(): this;
12
+ /**
13
+ * Secondary color (typically gray)
14
+ */
15
+ secondary(): this;
16
+ /**
17
+ * Accent color for highlights
18
+ */
19
+ accent(): this;
20
+ /**
21
+ * Muted/subtle color - automatically adaptive
22
+ */
23
+ muted(): this;
24
+ /**
25
+ * Success color (green)
26
+ */
27
+ success(): this;
28
+ /**
29
+ * Warning color (yellow/orange)
30
+ */
31
+ warning(): this;
32
+ /**
33
+ * Danger/error color (red)
34
+ */
35
+ danger(): this;
36
+ /**
37
+ * Monospace font family
38
+ */
39
+ mono(): this;
40
+ /**
41
+ * System font family
42
+ */
43
+ system(): this;
44
+ /**
45
+ * Readable font optimized for text
46
+ */
47
+ readable(): this;
48
+ /**
49
+ * Compact spacing
50
+ */
51
+ compact(): this;
52
+ /**
53
+ * Spacious layout
54
+ */
55
+ spacious(): this;
56
+ /**
57
+ * Inline display
58
+ */
59
+ inline(): this;
60
+ /**
61
+ * Glass morphism effect
62
+ */
63
+ glassmorphic(): this;
64
+ /**
65
+ * Neon glow effect
66
+ */
67
+ neon(): this;
68
+ /**
69
+ * Gradient background
70
+ */
71
+ gradient(from?: string, to?: string): this;
72
+ /**
73
+ * Bold text
74
+ */
75
+ bold(): this;
76
+ /**
77
+ * Set color with automatic adaptation
78
+ */
79
+ protected color(color: string): this;
80
+ /**
81
+ * Build the final CSS string
82
+ */
83
+ build(): string;
84
+ }
85
+ /**
86
+ * Timestamp-specific styling
87
+ */
88
+ export declare class TimestampStyler extends BaseStyler {
89
+ /**
90
+ * Default timestamp style - subtle and informative
91
+ */
92
+ default(): this;
93
+ /**
94
+ * Hide timestamp
95
+ */
96
+ hidden(): this;
97
+ /**
98
+ * Minimal timestamp (just time, no date)
99
+ */
100
+ minimal(): this;
101
+ /**
102
+ * Set font size
103
+ */
104
+ size(size: string): this;
105
+ }
106
+ /**
107
+ * Level badge styling
108
+ */
109
+ export declare class LevelStyler extends BaseStyler {
110
+ /**
111
+ * Colorful gradient badge
112
+ */
113
+ badge(): this;
114
+ /**
115
+ * Glowing effect for dark themes
116
+ */
117
+ glowing(): this;
118
+ /**
119
+ * Minimal flat style
120
+ */
121
+ flat(): this;
122
+ /**
123
+ * Uppercase text
124
+ */
125
+ uppercase(): this;
126
+ }
127
+ /**
128
+ * Prefix styling
129
+ */
130
+ export declare class PrefixStyler extends BaseStyler {
131
+ /**
132
+ * Dark theme prefix
133
+ */
134
+ dark(): this;
135
+ /**
136
+ * Light theme prefix
137
+ */
138
+ light(): this;
139
+ /**
140
+ * Compact prefix
141
+ */
142
+ compact(): this;
143
+ }
144
+ /**
145
+ * Message text styling
146
+ */
147
+ export declare class MessageStyler extends BaseStyler {
148
+ /**
149
+ * Readable message text - automatically adaptive
150
+ */
151
+ readable(): this;
152
+ /**
153
+ * Code-style monospace text
154
+ */
155
+ code(): this;
156
+ /**
157
+ * Large, prominent text
158
+ */
159
+ large(): this;
160
+ }
161
+ /**
162
+ * Location info styling
163
+ */
164
+ export declare class LocationStyler extends BaseStyler {
165
+ /**
166
+ * Subtle location info - automatically adaptive
167
+ */
168
+ subtle(): this;
169
+ /**
170
+ * Hide location info
171
+ */
172
+ hidden(): this;
173
+ /**
174
+ * Clickable style (for IDE integration)
175
+ */
176
+ clickable(): this;
177
+ }
178
+ //# sourceMappingURL=SemanticStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SemanticStyles.d.ts","sourceRoot":"","sources":["../../src/styling/SemanticStyles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD;;GAEG;AACH,8BAAsB,UAAU;IAC5B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;gBAEpB,OAAO,GAAE,YAAiC;IAItD;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,YAAY,IAAI,IAAI;IASpB;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;OAEG;IACH,QAAQ,CAAC,IAAI,GAAE,MAAkB,EAAE,EAAE,GAAE,MAAkB,GAAG,IAAI;IAKhE;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,KAAK,IAAI,MAAM;CAGlB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACvC;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,SAAS,IAAI,IAAI;CAIpB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IACxC;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,OAAO,IAAI,IAAI;CAOlB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IACzC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ;;OAEG;IACH,KAAK,IAAI,IAAI;CAMhB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,SAAS,IAAI,IAAI;CAKpB"}
@@ -0,0 +1,22 @@
1
+ import { LogStyles } from '../types/index.js';
2
+ /**
3
+ * Smart presets that configure the entire log appearance
4
+ */
5
+ export declare const SMART_PRESETS: Record<string, LogStyles>;
6
+ /**
7
+ * Get a smart preset by name
8
+ */
9
+ export declare function getSmartPreset(name: string): LogStyles | null;
10
+ /**
11
+ * List all available smart presets
12
+ */
13
+ export declare function getAvailablePresets(): string[];
14
+ /**
15
+ * Check if a preset exists
16
+ */
17
+ export declare function hasPreset(name: string): boolean;
18
+ /**
19
+ * Preset descriptions for help/documentation
20
+ */
21
+ export declare const PRESET_DESCRIPTIONS: Record<string, string>;
22
+ //# sourceMappingURL=SmartPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartPresets.d.ts","sourceRoot":"","sources":["../../src/styling/SmartPresets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAqPnD,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOtD,CAAC"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * @fileoverview StyleBuilder class for Advanced Logger
3
+ */
4
+ /**
5
+ * Utility class for creating dynamic console styles with method chaining
6
+ */
7
+ export declare class StyleBuilder {
8
+ private styles;
9
+ constructor(baseStyle?: string);
10
+ /**
11
+ * Add background color or gradient
12
+ */
13
+ bg(background: string): StyleBuilder;
14
+ /**
15
+ * Add text color
16
+ */
17
+ color(color: string): StyleBuilder;
18
+ /**
19
+ * Add border styling
20
+ */
21
+ border(border: string): StyleBuilder;
22
+ /**
23
+ * Add box shadow
24
+ */
25
+ shadow(shadow: string): StyleBuilder;
26
+ /**
27
+ * Add padding
28
+ */
29
+ padding(padding: string): StyleBuilder;
30
+ /**
31
+ * Add margin
32
+ */
33
+ margin(margin: string): StyleBuilder;
34
+ /**
35
+ * Add border radius
36
+ */
37
+ rounded(radius?: string): StyleBuilder;
38
+ /**
39
+ * Add font weight
40
+ */
41
+ bold(): StyleBuilder;
42
+ /**
43
+ * Add font styling
44
+ */
45
+ font(font: string): StyleBuilder;
46
+ /**
47
+ * Set monospace font family (alias for common monospace fonts)
48
+ */
49
+ mono(): StyleBuilder;
50
+ /**
51
+ * Set system font family (alias for system fonts)
52
+ */
53
+ system(): StyleBuilder;
54
+ /**
55
+ * Add font size
56
+ */
57
+ size(size: string): StyleBuilder;
58
+ /**
59
+ * Add line height
60
+ */
61
+ lineHeight(height: string): StyleBuilder;
62
+ /**
63
+ * Add text decoration
64
+ */
65
+ underline(): StyleBuilder;
66
+ /**
67
+ * Add text transform
68
+ */
69
+ uppercase(): StyleBuilder;
70
+ /**
71
+ * Add opacity
72
+ */
73
+ opacity(value: number): StyleBuilder;
74
+ /**
75
+ * Add display property
76
+ */
77
+ display(value: string): StyleBuilder;
78
+ /**
79
+ * Add position property
80
+ */
81
+ position(value: string): StyleBuilder;
82
+ /**
83
+ * Add transform property
84
+ */
85
+ transform(value: string): StyleBuilder;
86
+ /**
87
+ * Add animation property
88
+ */
89
+ animation(value: string): StyleBuilder;
90
+ /**
91
+ * Add transition property
92
+ */
93
+ transition(value: string): StyleBuilder;
94
+ /**
95
+ * Add cursor property
96
+ */
97
+ cursor(value: string): StyleBuilder;
98
+ /**
99
+ * Add any custom CSS property
100
+ */
101
+ custom(property: string, value: string): StyleBuilder;
102
+ /**
103
+ * Add any CSS property (alias for custom)
104
+ */
105
+ css(property: string, value: string): StyleBuilder;
106
+ /**
107
+ * Build the final CSS string
108
+ */
109
+ build(): string;
110
+ /**
111
+ * Clear all styles and start fresh
112
+ */
113
+ clear(): StyleBuilder;
114
+ /**
115
+ * Clone this StyleBuilder with the same styles
116
+ */
117
+ clone(): StyleBuilder;
118
+ /**
119
+ * Merge another StyleBuilder's styles into this one
120
+ */
121
+ merge(other: StyleBuilder): StyleBuilder;
122
+ }
123
+ /**
124
+ * Dynamic styler instance for external use
125
+ */
126
+ export declare const $: any;
127
+ /**
128
+ * Pre-defined style presets for common use cases
129
+ */
130
+ export declare const StylePresets: {
131
+ success: () => StyleBuilder;
132
+ error: () => StyleBuilder;
133
+ warning: () => StyleBuilder;
134
+ info: () => StyleBuilder;
135
+ debug: () => StyleBuilder;
136
+ muted: () => StyleBuilder;
137
+ accent: () => StyleBuilder;
138
+ neon: () => StyleBuilder;
139
+ };
140
+ //# sourceMappingURL=StyleBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleBuilder.d.ts","sourceRoot":"","sources":["../../src/styling/StyleBuilder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAgB;gBAElB,SAAS,SAAK;IAI1B;;OAEG;IACH,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAKpC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKlC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAKpC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAKpC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAKtC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAKpC;;OAEG;IACH,OAAO,CAAC,MAAM,GAAE,MAAc,GAAG,YAAY;IAK7C;;OAEG;IACH,IAAI,IAAI,YAAY;IAKpB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAKhC;;OAEG;IACH,IAAI,IAAI,YAAY;IAIpB;;OAEG;IACH,MAAM,IAAI,YAAY;IAItB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAKhC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAKxC;;OAEG;IACH,SAAS,IAAI,YAAY;IAKzB;;OAEG;IACH,SAAS,IAAI,YAAY;IAKzB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKpC;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKrC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKtC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKtC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKvC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAKnC;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY;IAKrD;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY;IAIlD;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,KAAK,IAAI,YAAY;IAKrB;;OAEG;IACH,KAAK,IAAI,YAAY;IAMrB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;CAI3C;AAqBD;;GAEG;AACH,eAAO,MAAM,CAAC,KAAiB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;CAuDxB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { LogLevel, DevToolsTheme } from '../types/core.js';
2
+ interface CacheKey {
3
+ level: LogLevel | 'success';
4
+ theme: DevToolsTheme;
5
+ presetName?: string;
6
+ hasPrefix: boolean;
7
+ hasLocation: boolean;
8
+ }
9
+ interface CacheEntry {
10
+ styles: string[];
11
+ format: string;
12
+ createdAt: number;
13
+ hits: number;
14
+ }
15
+ export interface StyleCacheConfig {
16
+ maxEntries?: number;
17
+ ttl?: number;
18
+ enabled?: boolean;
19
+ }
20
+ export declare class StyleCache {
21
+ private cache;
22
+ private config;
23
+ private hitCount;
24
+ private missCount;
25
+ constructor(config?: StyleCacheConfig);
26
+ private generateKey;
27
+ get(key: CacheKey): CacheEntry | null;
28
+ set(key: CacheKey, format: string, styles: string[]): void;
29
+ clear(): void;
30
+ getStats(): {
31
+ size: number;
32
+ maxSize: number;
33
+ hitRate: number;
34
+ hits: number;
35
+ misses: number;
36
+ };
37
+ setEnabled(enabled: boolean): void;
38
+ isEnabled(): boolean;
39
+ }
40
+ export declare function getStyleCache(): StyleCache;
41
+ export {};
42
+ //# sourceMappingURL=StyleCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleCache.d.ts","sourceRoot":"","sources":["../../src/styling/StyleCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEhE,UAAU,QAAQ;IACd,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,UAAU;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAQD,qBAAa,UAAU;IACnB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;gBAEV,MAAM,GAAE,gBAAqB;IAIzC,OAAO,CAAC,WAAW;IAInB,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;IAyBrC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAoB1D,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAClB;IAWD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOlC,SAAS,IAAI,OAAO;CAGvB;AAID,wBAAgB,aAAa,IAAI,UAAU,CAK1C"}