@mks2508/better-logger 0.0.2-alpha.2 → 0.3.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 (326) hide show
  1. package/.claude/settings.local.json +18 -2
  2. package/.github/workflows/ci-quality.yml +357 -0
  3. package/.github/workflows/docs-demo.yml +119 -0
  4. package/.github/workflows/releases-core.yml +512 -0
  5. package/.github/workflows/releases-full.yml +582 -0
  6. package/.github/{workflows → workflows-backup}/ci.yml +12 -110
  7. package/.github/workflows-backup/nightly.yml +196 -0
  8. package/.github/workflows-backup/release-optimized.yml +373 -0
  9. package/.release-notes-0.2.0.md +129 -0
  10. package/.yamllint +28 -0
  11. package/CHANGELOG.json +783 -0
  12. package/CLAUDE.md +92 -1
  13. package/README.md +198 -490
  14. package/bun.lock +323 -0
  15. package/demo.html +9 -2
  16. package/dist/.tsbuildinfo +1 -0
  17. package/dist/Logger.d.ts +272 -0
  18. package/dist/Logger.d.ts.map +1 -0
  19. package/dist/Logger.js +680 -0
  20. package/dist/ScopedLogger.d.ts +126 -0
  21. package/dist/ScopedLogger.d.ts.map +1 -0
  22. package/dist/ScopedLogger.js +234 -0
  23. package/dist/chunks/Logger-BpeuYIxR.js +2 -0
  24. package/dist/chunks/Logger-BpeuYIxR.js.map +1 -0
  25. package/dist/chunks/Logger-Didxtr23.js +3275 -0
  26. package/dist/chunks/Logger-Didxtr23.js.map +1 -0
  27. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  28. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  29. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  30. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  31. package/dist/chunks/environment-Bxbnw4pd.js +544 -0
  32. package/dist/chunks/environment-Bxbnw4pd.js.map +1 -0
  33. package/dist/chunks/environment-Dm66zOML.js +4 -0
  34. package/dist/chunks/environment-Dm66zOML.js.map +1 -0
  35. package/dist/chunks/formatting-C0riPC5_.js +95 -0
  36. package/dist/chunks/formatting-C0riPC5_.js.map +1 -0
  37. package/dist/chunks/formatting-DNCAV66-.js +2 -0
  38. package/dist/chunks/formatting-DNCAV66-.js.map +1 -0
  39. package/dist/cli/CommandProcessor.d.ts +103 -0
  40. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  41. package/dist/cli/CommandProcessor.js +184 -0
  42. package/dist/cli/commands/ConfigCommand.d.ts +17 -0
  43. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  44. package/dist/cli/commands/ConfigCommand.js +88 -0
  45. package/dist/cli/commands/ExportCommand.d.ts +51 -0
  46. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  47. package/dist/cli/commands/ExportCommand.js +243 -0
  48. package/dist/cli/commands/HistoryCommand.d.ts +50 -0
  49. package/dist/cli/commands/HistoryCommand.d.ts.map +1 -0
  50. package/dist/cli/commands/HistoryCommand.js +96 -0
  51. package/dist/cli/commands/StatusCommand.d.ts +33 -0
  52. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  53. package/dist/cli/commands/StatusCommand.js +93 -0
  54. package/dist/cli/commands/ThemeCommand.d.ts +33 -0
  55. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  56. package/dist/cli/commands/ThemeCommand.js +79 -0
  57. package/dist/cli/help.d.ts +15 -0
  58. package/dist/cli/help.d.ts.map +1 -0
  59. package/dist/cli/help.js +118 -0
  60. package/dist/cli/index.d.ts +15 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +46 -0
  63. package/dist/constants.d.ts +122 -0
  64. package/dist/constants.d.ts.map +1 -0
  65. package/dist/constants.js +159 -0
  66. package/dist/core.cjs +1 -1
  67. package/dist/core.cjs.map +1 -1
  68. package/dist/core.d.ts +134 -0
  69. package/dist/core.d.ts.map +1 -0
  70. package/dist/core.js +315 -242
  71. package/dist/core.js.map +1 -1
  72. package/dist/example.d.ts +18 -0
  73. package/dist/example.d.ts.map +1 -0
  74. package/dist/example.js +154 -0
  75. package/dist/exports-module.d.ts +203 -0
  76. package/dist/exports-module.d.ts.map +1 -0
  77. package/dist/exports-module.js +260 -0
  78. package/dist/exports.cjs +1 -1
  79. package/dist/exports.cjs.map +1 -1
  80. package/dist/exports.js +5 -4
  81. package/dist/exports.js.map +1 -1
  82. package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
  83. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  84. package/dist/handlers/AnalyticsLogHandler.js +19 -0
  85. package/dist/handlers/ExportLogHandler.d.ts +103 -0
  86. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  87. package/dist/handlers/ExportLogHandler.js +516 -0
  88. package/dist/handlers/FileLogHandler.d.ts +36 -0
  89. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  90. package/dist/handlers/FileLogHandler.js +156 -0
  91. package/dist/handlers/RemoteLogHandler.d.ts +14 -0
  92. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  93. package/dist/handlers/RemoteLogHandler.js +37 -0
  94. package/dist/handlers/index.d.ts +8 -0
  95. package/dist/handlers/index.d.ts.map +1 -0
  96. package/dist/handlers/index.js +7 -0
  97. package/dist/index.cjs +1 -1
  98. package/dist/index.cjs.map +1 -1
  99. package/dist/index.d.ts +86 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +89 -103
  102. package/dist/index.js.map +1 -1
  103. package/dist/main.d.ts +2 -0
  104. package/dist/main.d.ts.map +1 -0
  105. package/dist/main.js +139 -0
  106. package/dist/styling/LogStyleBuilder.d.ts +149 -0
  107. package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
  108. package/dist/styling/LogStyleBuilder.js +289 -0
  109. package/dist/styling/SemanticStyles.d.ts +181 -0
  110. package/dist/styling/SemanticStyles.d.ts.map +1 -0
  111. package/dist/styling/SemanticStyles.js +339 -0
  112. package/dist/styling/SmartPresets.d.ts +25 -0
  113. package/dist/styling/SmartPresets.d.ts.map +1 -0
  114. package/dist/styling/SmartPresets.js +276 -0
  115. package/dist/styling/StyleBuilder.d.ts +140 -0
  116. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  117. package/dist/styling/StyleBuilder.js +280 -0
  118. package/dist/styling/banners.d.ts +45 -0
  119. package/dist/styling/banners.d.ts.map +1 -0
  120. package/dist/styling/banners.js +155 -0
  121. package/dist/styling/index.d.ts +10 -0
  122. package/dist/styling/index.d.ts.map +1 -0
  123. package/dist/styling/index.js +9 -0
  124. package/dist/styling/themes.d.ts +10 -0
  125. package/dist/styling/themes.d.ts.map +1 -0
  126. package/dist/styling/themes.js +231 -0
  127. package/dist/styling-module.d.ts +185 -0
  128. package/dist/styling-module.d.ts.map +1 -0
  129. package/dist/styling-module.js +199 -0
  130. package/dist/styling.cjs +1 -1
  131. package/dist/styling.cjs.map +1 -1
  132. package/dist/styling.js +6 -6
  133. package/dist/styling.js.map +1 -1
  134. package/dist/types/Logger.d.ts +268 -0
  135. package/dist/types/Logger.d.ts.map +1 -0
  136. package/dist/types/ScopedLogger.d.ts +123 -0
  137. package/dist/types/ScopedLogger.d.ts.map +1 -0
  138. package/dist/types/cli/CommandProcessor.d.ts +100 -0
  139. package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
  140. package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
  141. package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
  142. package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
  143. package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
  144. package/dist/types/cli/commands/HistoryCommand.d.ts +47 -0
  145. package/dist/types/cli/commands/HistoryCommand.d.ts.map +1 -0
  146. package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
  147. package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
  148. package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
  149. package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
  150. package/dist/types/cli/help.d.ts +12 -0
  151. package/dist/types/cli/help.d.ts.map +1 -0
  152. package/dist/types/cli/index.d.ts +15 -0
  153. package/dist/types/cli/index.d.ts.map +1 -0
  154. package/dist/types/constants.d.ts +119 -0
  155. package/dist/types/constants.d.ts.map +1 -0
  156. package/dist/types/core.d.ts +125 -211
  157. package/dist/types/core.d.ts.map +1 -0
  158. package/dist/types/core.js +13 -0
  159. package/dist/types/example.d.ts +18 -0
  160. package/dist/types/example.d.ts.map +1 -0
  161. package/dist/types/exports-module.d.ts +196 -0
  162. package/dist/types/exports-module.d.ts.map +1 -0
  163. package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
  164. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  165. package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
  166. package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
  167. package/dist/types/handlers/FileLogHandler.d.ts +33 -0
  168. package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
  169. package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
  170. package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
  171. package/dist/types/handlers/index.d.ts +8 -0
  172. package/dist/types/handlers/index.d.ts.map +1 -0
  173. package/dist/types/handlers.d.ts +88 -0
  174. package/dist/types/handlers.d.ts.map +1 -0
  175. package/dist/types/handlers.js +4 -0
  176. package/dist/types/index.d.ts +7 -675
  177. package/dist/types/index.d.ts.map +1 -0
  178. package/dist/types/index.js +4 -0
  179. package/dist/types/main.d.ts +2 -0
  180. package/dist/types/main.d.ts.map +1 -0
  181. package/dist/types/styling/LogStyleBuilder.d.ts +146 -0
  182. package/dist/types/styling/LogStyleBuilder.d.ts.map +1 -0
  183. package/dist/types/styling/SemanticStyles.d.ts +178 -0
  184. package/dist/types/styling/SemanticStyles.d.ts.map +1 -0
  185. package/dist/types/styling/SmartPresets.d.ts +22 -0
  186. package/dist/types/styling/SmartPresets.d.ts.map +1 -0
  187. package/dist/types/styling/StyleBuilder.d.ts +140 -0
  188. package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
  189. package/dist/types/styling/banners.d.ts +42 -0
  190. package/dist/types/styling/banners.d.ts.map +1 -0
  191. package/dist/types/styling/index.d.ts +10 -0
  192. package/dist/types/styling/index.d.ts.map +1 -0
  193. package/dist/types/styling/themes.d.ts +7 -0
  194. package/dist/types/styling/themes.d.ts.map +1 -0
  195. package/dist/types/styling-module.d.ts +178 -0
  196. package/dist/types/styling-module.d.ts.map +1 -0
  197. package/dist/types/types/core.d.ts +125 -0
  198. package/dist/types/types/core.d.ts.map +1 -0
  199. package/dist/types/types/handlers.d.ts +85 -0
  200. package/dist/types/types/handlers.d.ts.map +1 -0
  201. package/dist/types/types/index.d.ts +7 -0
  202. package/dist/types/types/index.d.ts.map +1 -0
  203. package/dist/types/utils/environment.d.ts +47 -0
  204. package/dist/types/utils/environment.d.ts.map +1 -0
  205. package/dist/types/utils/formatting.d.ts +37 -0
  206. package/dist/types/utils/formatting.d.ts.map +1 -0
  207. package/dist/types/utils/index.d.ts +7 -0
  208. package/dist/types/utils/index.d.ts.map +1 -0
  209. package/dist/types/utils/opentui-detection.d.ts +34 -0
  210. package/dist/types/utils/opentui-detection.d.ts.map +1 -0
  211. package/dist/types/utils/output.d.ts +41 -0
  212. package/dist/types/utils/output.d.ts.map +1 -0
  213. package/dist/types/utils/stackTrace.d.ts +6 -0
  214. package/dist/types/utils/stackTrace.d.ts.map +1 -0
  215. package/dist/types/utils/timestamps.d.ts +20 -0
  216. package/dist/types/utils/timestamps.d.ts.map +1 -0
  217. package/dist/utils/environment.d.ts +47 -0
  218. package/dist/utils/environment.d.ts.map +1 -0
  219. package/dist/utils/environment.js +85 -0
  220. package/dist/utils/formatting.d.ts +40 -0
  221. package/dist/utils/formatting.d.ts.map +1 -0
  222. package/dist/utils/formatting.js +117 -0
  223. package/dist/utils/index.d.ts +7 -0
  224. package/dist/utils/index.d.ts.map +1 -0
  225. package/dist/utils/index.js +6 -0
  226. package/dist/utils/opentui-detection.d.ts +34 -0
  227. package/dist/utils/opentui-detection.d.ts.map +1 -0
  228. package/dist/utils/opentui-detection.js +116 -0
  229. package/dist/utils/output.d.ts +44 -0
  230. package/dist/utils/output.d.ts.map +1 -0
  231. package/dist/utils/output.js +150 -0
  232. package/dist/utils/stackTrace.d.ts +9 -0
  233. package/dist/utils/stackTrace.d.ts.map +1 -0
  234. package/dist/utils/stackTrace.js +81 -0
  235. package/dist/utils/timestamps.d.ts +20 -0
  236. package/dist/utils/timestamps.d.ts.map +1 -0
  237. package/dist/utils/timestamps.js +71 -0
  238. package/docs/API.md +691 -0
  239. package/docs/CORE.md +10 -10
  240. package/docs/DEVELOPMENT.md +731 -0
  241. package/docs/PACKAGES.md +244 -0
  242. package/docs/_config.yml +36 -0
  243. package/docs/index.md +179 -0
  244. package/examples/README.md +208 -0
  245. package/examples/basic-logging.js +75 -0
  246. package/examples/data-export.js +234 -0
  247. package/examples/package.json +16 -0
  248. package/examples/performance-timing.js +170 -0
  249. package/examples/simplified-api.js +124 -0
  250. package/examples/styling-themes.js +207 -0
  251. package/package.json +37 -21
  252. package/packages/core/package.json +57 -0
  253. package/packages/exports/package.json +41 -0
  254. package/packages/nodejs-opentui/README.md +232 -0
  255. package/packages/nodejs-opentui/package.json +72 -0
  256. package/packages/nodejs-opentui/src/LogRenderer.ts +171 -0
  257. package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +178 -0
  258. package/packages/nodejs-opentui/src/components/LogBadge.tsx +131 -0
  259. package/packages/nodejs-opentui/src/index.ts +133 -0
  260. package/packages/nodejs-opentui/src/types.ts +158 -0
  261. package/packages/nodejs-opentui/tsconfig.json +20 -0
  262. package/packages/styling/package.json +41 -0
  263. package/project-utils/README.md +172 -0
  264. package/project-utils/auto-release-gemini.ts +1193 -0
  265. package/project-utils/auto-release-ui.ts +1329 -0
  266. package/project-utils/commit-generator.ts +1385 -0
  267. package/project-utils/commit-ui.ts +264 -0
  268. package/project-utils/git-utils.ts +199 -0
  269. package/project-utils/github-release-manager.ts +466 -0
  270. package/project-utils/project-config.ts +260 -0
  271. package/project-utils/prompt-templates.js +345 -0
  272. package/project-utils/prompt-templates.ts +422 -0
  273. package/project-utils/version-manager.ts +1078 -0
  274. package/src/Logger.ts +251 -16
  275. package/src/ScopedLogger.ts +262 -0
  276. package/src/cli/CommandProcessor.ts +173 -2
  277. package/src/cli/commands/HistoryCommand.ts +117 -0
  278. package/src/cli/index.ts +12 -0
  279. package/src/constants.ts +84 -2
  280. package/src/core.ts +119 -46
  281. package/src/example.ts +4 -4
  282. package/src/exports-module.ts +1 -1
  283. package/src/handlers/ExportLogHandler.ts +141 -0
  284. package/src/handlers/FileLogHandler.ts +144 -5
  285. package/src/index.ts +1 -1
  286. package/src/main.ts +3 -3
  287. package/src/styling/LogStyleBuilder.ts +355 -0
  288. package/src/styling/SemanticStyles.ts +380 -0
  289. package/src/styling/SmartPresets.ts +288 -0
  290. package/src/styling/StyleBuilder.ts +14 -0
  291. package/src/styling/index.ts +16 -1
  292. package/src/styling-module.ts +1 -1
  293. package/src/types/core.ts +60 -0
  294. package/src/types/index.ts +6 -0
  295. package/src/utils/environment.ts +94 -0
  296. package/src/utils/formatting.ts +142 -0
  297. package/src/utils/index.ts +3 -0
  298. package/src/utils/opentui-detection.ts +138 -0
  299. package/src/utils/output.ts +66 -8
  300. package/test-core-browser.html +237 -0
  301. package/test-core-node.js +63 -0
  302. package/tests/test-conflict-resolution.ts +391 -0
  303. package/tests/validate-workflows.sh +131 -0
  304. package/tests/yaml-autofix.sh +146 -0
  305. package/vite.config.ts +189 -50
  306. package/.npmrc.bak +0 -1
  307. package/dist/chunks/Logger-BQhMKy_T.js +0 -2
  308. package/dist/chunks/Logger-BQhMKy_T.js.map +0 -1
  309. package/dist/chunks/Logger-BrFKFZcD.js +0 -978
  310. package/dist/chunks/Logger-BrFKFZcD.js.map +0 -1
  311. package/dist/chunks/core-2opW4Pi3.js +0 -194
  312. package/dist/chunks/core-2opW4Pi3.js.map +0 -1
  313. package/dist/chunks/core-DyugwSYZ.js +0 -4
  314. package/dist/chunks/core-DyugwSYZ.js.map +0 -1
  315. package/dist/chunks/exports-BNP3R7dp.js +0 -421
  316. package/dist/chunks/exports-BNP3R7dp.js.map +0 -1
  317. package/dist/chunks/exports-U1xLBXrY.js +0 -2
  318. package/dist/chunks/exports-U1xLBXrY.js.map +0 -1
  319. package/dist/chunks/styling-DhUDzwlE.js +0 -654
  320. package/dist/chunks/styling-DhUDzwlE.js.map +0 -1
  321. package/dist/chunks/styling-tmRDI28D.js +0 -2
  322. package/dist/chunks/styling-tmRDI28D.js.map +0 -1
  323. package/dist/types/exports.d.ts +0 -600
  324. package/dist/types/styling.d.ts +0 -751
  325. package/src/Logger.ts.backup +0 -1684
  326. /package/.github/{workflows → workflows-backup}/release.yml +0 -0
package/docs/API.md ADDED
@@ -0,0 +1,691 @@
1
+ ---
2
+ layout: default
3
+ title: API Reference
4
+ permalink: /API/
5
+ ---
6
+
7
+ # 🔧 API Reference
8
+
9
+ Complete API documentation for Better Logger with detailed method signatures, parameters, and examples.
10
+
11
+ ## Table of Contents
12
+
13
+ - [Core Logger](#core-logger)
14
+ - [Style Builder](#style-builder)
15
+ - [CLI Interface](#cli-interface)
16
+ - [Export & Remote](#export--remote)
17
+ - [Types & Interfaces](#types--interfaces)
18
+
19
+ ---
20
+
21
+ ## 🚀 Core Logger
22
+
23
+ ### Logger Class
24
+
25
+ The main Logger class provides all essential logging functionality.
26
+
27
+ ```typescript
28
+ import { Logger } from '@mks2508/better-logger';
29
+
30
+ const logger = new Logger();
31
+ ```
32
+
33
+ #### Constructor Options
34
+
35
+ ```typescript
36
+ interface LoggerOptions {
37
+ prefix?: string; // Default prefix for all log messages
38
+ level?: LogLevel; // Minimum log level to display
39
+ enableStackTrace?: boolean; // Include stack traces in logs
40
+ enablePerformance?: boolean; // Include performance timings
41
+ theme?: ThemeName; // Visual theme for styling
42
+ }
43
+ ```
44
+
45
+ #### Log Levels
46
+
47
+ ```typescript
48
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'critical';
49
+
50
+ // Log level hierarchy (higher numbers = higher priority)
51
+ const LOG_LEVELS = {
52
+ debug: 0,
53
+ info: 1,
54
+ warn: 2,
55
+ error: 3,
56
+ critical: 4
57
+ } as const;
58
+ ```
59
+
60
+ ### Basic Logging Methods
61
+
62
+ #### `logger.debug(message, ...args)`
63
+ Low-priority debugging information.
64
+ ```typescript
65
+ logger.debug('Variable value:', { userId: 123 });
66
+ // Output: [DEBUG] Variable value: { userId: 123 }
67
+ ```
68
+
69
+ #### `logger.info(message, ...args)`
70
+ General informational messages.
71
+ ```typescript
72
+ logger.info('User logged in', { username: 'john_doe' });
73
+ // Output: [INFO] User logged in { username: 'john_doe' }
74
+ ```
75
+
76
+ #### `logger.warn(message, ...args)`
77
+ Warning messages for potential issues.
78
+ ```typescript
79
+ logger.warn('API rate limit approaching', { remaining: 10 });
80
+ // Output: [WARN] API rate limit approaching { remaining: 10 }
81
+ ```
82
+
83
+ #### `logger.error(message, ...args)`
84
+ Error messages for failures.
85
+ ```typescript
86
+ logger.error('Database connection failed', { error: 'ECONNREFUSED' });
87
+ // Output: [ERROR] Database connection failed { error: 'ECONNREFUSED' }
88
+ ```
89
+
90
+ #### `logger.critical(message, ...args)`
91
+ Critical system failures requiring immediate attention.
92
+ ```typescript
93
+ logger.critical('System memory exhausted', { usage: '95%' });
94
+ // Output: [CRITICAL] System memory exhausted { usage: '95%' }
95
+ ```
96
+
97
+ ### Advanced Logging Methods
98
+
99
+ #### `logger.success(message, ...args)`
100
+ Success notifications with green styling.
101
+ ```typescript
102
+ logger.success('Payment processed successfully', { orderId: 'ORD-123' });
103
+ // Output: [SUCCESS] Payment processed successfully { orderId: 'ORD-123' }
104
+ ```
105
+
106
+ #### `logger.table(data, options?)`
107
+ Display data in formatted table.
108
+ ```typescript
109
+ const users = [
110
+ { id: 1, name: 'John', email: 'john@example.com' },
111
+ { id: 2, name: 'Jane', email: 'jane@example.com' }
112
+ ];
113
+
114
+ logger.table(users);
115
+ // Displays formatted table in console
116
+ ```
117
+
118
+ #### `logger.group(label, callback?)`
119
+ Group related log messages.
120
+ ```typescript
121
+ logger.group('User Authentication', () => {
122
+ logger.info('Checking credentials...');
123
+ logger.info('Validating token...');
124
+ logger.success('Authentication successful');
125
+ });
126
+
127
+ // Or manual grouping
128
+ logger.group('Database Operations');
129
+ logger.info('Connecting to database...');
130
+ logger.info('Running migration...');
131
+ logger.groupEnd();
132
+ ```
133
+
134
+ ### Performance Timing
135
+
136
+ #### `logger.time(label)`
137
+ Start timing operation.
138
+ ```typescript
139
+ logger.time('api-call');
140
+ await fetchUserData();
141
+ logger.timeEnd('api-call');
142
+ // Output: [TIMING] api-call: 245.67ms
143
+ ```
144
+
145
+ #### `logger.timeEnd(label)`
146
+ End timing and display duration.
147
+
148
+ #### `logger.timeLog(label, ...args)`
149
+ Log intermediate timing without ending timer.
150
+ ```typescript
151
+ logger.time('long-operation');
152
+ await step1();
153
+ logger.timeLog('long-operation', 'Step 1 complete');
154
+ await step2();
155
+ logger.timeEnd('long-operation');
156
+ ```
157
+
158
+ ### Scoped Loggers
159
+
160
+ Create loggers with persistent prefixes for different modules.
161
+
162
+ ```typescript
163
+ const apiLogger = logger.scope('API');
164
+ const dbLogger = logger.scope('DATABASE');
165
+
166
+ apiLogger.info('Making HTTP request'); // [API] [INFO] Making HTTP request
167
+ dbLogger.error('Connection timeout'); // [DATABASE] [ERROR] Connection timeout
168
+ ```
169
+
170
+ ### Log Handlers
171
+
172
+ Add custom handlers for log processing.
173
+
174
+ ```typescript
175
+ import { FileLogHandler, RemoteLogHandler } from '@mks2508/better-logger';
176
+
177
+ // File logging
178
+ logger.addHandler(new FileLogHandler('/path/to/logs.txt'));
179
+
180
+ // Remote logging
181
+ logger.addHandler(new RemoteLogHandler('https://api.logging-service.com'));
182
+
183
+ // Custom handler
184
+ logger.addHandler({
185
+ handle(entry) {
186
+ // Process log entry
187
+ console.log('Custom handler:', entry);
188
+ }
189
+ });
190
+ ```
191
+
192
+ ---
193
+
194
+ ## 🎨 Style Builder
195
+
196
+ Create custom console styles programmatically.
197
+
198
+ ```typescript
199
+ import { createStyle, StyleBuilder } from '@mks2508/better-logger/styling';
200
+ ```
201
+
202
+ ### Creating Styles
203
+
204
+ #### `createStyle()`
205
+ Returns new StyleBuilder instance.
206
+
207
+ ```typescript
208
+ const customStyle = createStyle()
209
+ .bg('linear-gradient(45deg, #ff6b6b, #feca57)')
210
+ .color('white')
211
+ .padding('10px 20px')
212
+ .rounded('8px')
213
+ .bold()
214
+ .build();
215
+
216
+ console.log('%cCustom Message', customStyle);
217
+ ```
218
+
219
+ ### StyleBuilder Methods
220
+
221
+ #### Background Methods
222
+ ```typescript
223
+ .bg(gradient: string) // Background gradient
224
+ .backgroundColor(color: string) // Solid background color
225
+ ```
226
+
227
+ #### Typography Methods
228
+ ```typescript
229
+ .color(color: string) // Text color
230
+ .font(family: string) // Font family
231
+ .fontSize(size: string) // Font size
232
+ .bold() // Bold text
233
+ .italic() // Italic text
234
+ ```
235
+
236
+ #### Layout Methods
237
+ ```typescript
238
+ .padding(padding: string) // CSS padding
239
+ .margin(margin: string) // CSS margin
240
+ .display(display: string) // CSS display property
241
+ ```
242
+
243
+ #### Visual Effects
244
+ ```typescript
245
+ .border(border: string) // CSS border
246
+ .rounded(radius: string) // Border radius
247
+ .shadow(shadow: string) // Box shadow
248
+ ```
249
+
250
+ #### Animations
251
+ ```typescript
252
+ .animation(animation: string) // CSS animation
253
+ .transition(transition: string) // CSS transition
254
+ ```
255
+
256
+ #### Custom Properties
257
+ ```typescript
258
+ .css(property: string, value: string) // Custom CSS property
259
+ ```
260
+
261
+ ### Style Presets
262
+
263
+ Pre-built styles for common use cases.
264
+
265
+ ```typescript
266
+ import { stylePresets } from '@mks2508/better-logger/styling';
267
+
268
+ console.log('%c✅ Success!', stylePresets.success);
269
+ console.log('%c❌ Error!', stylePresets.error);
270
+ console.log('%c⚠️ Warning!', stylePresets.warning);
271
+ console.log('%cℹ️ Info', stylePresets.info);
272
+ console.log('%c🎯 Accent', stylePresets.accent);
273
+ ```
274
+
275
+ ---
276
+
277
+ ## 💻 CLI Interface
278
+
279
+ Enhanced interactive command-line interface with plugin support, command history, and intelligent suggestions.
280
+
281
+ ### 🔌 Plugin System
282
+
283
+ Extend CLI functionality with custom plugins:
284
+
285
+ ```typescript
286
+ import { logger } from '@mks2508/better-logger';
287
+
288
+ // Create a custom plugin
289
+ const analyticsPlugin = {
290
+ name: 'analytics',
291
+ version: '1.0.0',
292
+ description: 'Analytics tracking commands',
293
+ commands: [{
294
+ name: 'track',
295
+ description: 'Track user events',
296
+ usage: '/track <event> <data>',
297
+ category: 'analytics',
298
+ aliases: ['t'],
299
+ execute: (args, logger) => {
300
+ const [event, ...data] = args.split(' ');
301
+ logger.info(`📊 Tracking: ${event}`, data.join(' '));
302
+ }
303
+ }]
304
+ };
305
+
306
+ // Register the plugin
307
+ logger.cliProcessor.registerPlugin(analyticsPlugin, logger);
308
+ ```
309
+
310
+ ### 🌐 Interactive Mode
311
+
312
+ Enter interactive mode for streamlined browser console usage:
313
+
314
+ ```typescript
315
+ // Enter interactive mode
316
+ logger.executeCommand('/interactive');
317
+
318
+ // Now use commands directly:
319
+ cli('help'); // Instead of logger.executeCommand('/help')
320
+ cli('theme matrix'); // Change theme interactively
321
+ cli('history 5'); // Show last 5 commands
322
+ ```
323
+
324
+ ### 📋 Enhanced Commands
325
+
326
+ #### Core Commands
327
+
328
+ ##### `/help`
329
+ Display help information and available commands.
330
+ ```typescript
331
+ logger.executeCommand('/help');
332
+ ```
333
+
334
+ ##### `/config`
335
+ Show current logger configuration.
336
+ ```typescript
337
+ logger.executeCommand('/config');
338
+ // Displays: Theme: default, Level: info, Stack traces: enabled
339
+ ```
340
+
341
+ ##### `/history [limit]` | Aliases: `/hist`, `/h`
342
+ View command execution history with success/failure status.
343
+ ```typescript
344
+ logger.executeCommand('/history 10'); // Show last 10 commands
345
+ logger.executeCommand('/hist'); // Show default (10) recent commands
346
+ // ✅ [14:32:15] /theme matrix
347
+ // ❌ [14:31:45] /invalid-command
348
+ // ✅ [14:30:22] /export csv
349
+ ```
350
+
351
+ ##### `/clearhistory` | Aliases: `/clrhist`
352
+ Clear all command history.
353
+ ```typescript
354
+ logger.executeCommand('/clearhistory');
355
+ // 🗑️ Command history cleared
356
+ ```
357
+
358
+ ##### `/interactive` | Aliases: `/i`, `/repl`
359
+ Enter interactive CLI mode for browser console.
360
+ ```typescript
361
+ logger.executeCommand('/interactive');
362
+ // 🔧 Interactive CLI mode activated. Type /exit to quit, /help for commands.
363
+ // 💡 Use cli("command") to execute CLI commands in browser console.
364
+ ```
365
+
366
+ ##### `/plugins` | Aliases: `/plug`
367
+ List all registered plugins and their commands.
368
+ ```typescript
369
+ logger.executeCommand('/plugins');
370
+ // 🔌 Loaded plugins (2):
371
+ // 📦 analytics v1.0.0 - Analytics tracking commands
372
+ // Commands: track, event
373
+ // 📦 performance v2.1.0 - Performance monitoring tools
374
+ // Commands: benchmark, profile
375
+ ```
376
+
377
+ #### `/theme [name]`
378
+ Change visual theme.
379
+ ```typescript
380
+ /theme cyberpunk
381
+ // Switches to cyberpunk theme with purple/pink colors
382
+ ```
383
+
384
+ Available themes: `default`, `dark`, `neon`, `cyberpunk`, `retro`
385
+
386
+ #### `/banner [type]`
387
+ Set banner display type.
388
+ ```typescript
389
+ /banner animated
390
+ // Shows animated gradient banner
391
+ ```
392
+
393
+ Banner types: `simple`, `ascii`, `unicode`, `svg`, `animated`
394
+
395
+ #### `/clear`
396
+ Clear console and reset log buffer.
397
+
398
+ #### `/export [format]`
399
+ Export logs in specified format.
400
+ ```typescript
401
+ /export json
402
+ // Exports current logs as JSON
403
+ ```
404
+
405
+ #### `/status`
406
+ Show logger status and statistics.
407
+
408
+ #### `/enumerate`
409
+ List all available features and capabilities.
410
+
411
+ ### CLI Integration
412
+
413
+ ```typescript
414
+ import { initializeCLI } from '@mks2508/better-logger/cli';
415
+
416
+ // Initialize CLI with logger instance
417
+ initializeCLI(logger);
418
+
419
+ // CLI commands are now available in console
420
+ // Type /help to see available commands
421
+ ```
422
+
423
+ ---
424
+
425
+ ## 📤 Export & Remote
426
+
427
+ Data export and remote logging capabilities.
428
+
429
+ ```typescript
430
+ import { ExportLogger } from '@mks2508/better-logger/exports';
431
+ ```
432
+
433
+ ### ExportLogger Class
434
+
435
+ Extended logger with export and remote capabilities.
436
+
437
+ ```typescript
438
+ const logger = new ExportLogger({
439
+ bufferSize: 1000,
440
+ remoteBatch: {
441
+ size: 10,
442
+ interval: 5000
443
+ }
444
+ });
445
+ ```
446
+
447
+ #### Constructor Options
448
+ ```typescript
449
+ interface ExportLoggerConfig {
450
+ bufferSize?: number; // Log buffer size
451
+ bufferMode?: 'circular' | 'grow'; // Buffer behavior
452
+ persistBuffer?: boolean; // Save to localStorage
453
+ remoteBatch?: { // Remote batching config
454
+ size: number;
455
+ interval: number;
456
+ maxWait: number;
457
+ };
458
+ autoExport?: { // Auto-export settings
459
+ format: ExportFormat;
460
+ trigger: 'size' | 'time' | 'level';
461
+ threshold: number;
462
+ };
463
+ }
464
+ ```
465
+
466
+ ### Export Methods
467
+
468
+ #### `exportLogs(format, options?)`
469
+ Export logs in specified format.
470
+
471
+ ```typescript
472
+ // Export as CSV
473
+ const csvData = await logger.exportLogs('csv', {
474
+ filter: { level: 'error' },
475
+ limit: 100
476
+ });
477
+
478
+ // Export as JSON with grouping
479
+ const jsonData = await logger.exportLogs('json', {
480
+ groupBy: 'level',
481
+ includeStackTrace: true
482
+ });
483
+
484
+ // Export as XML
485
+ const xmlData = await logger.exportLogs('xml');
486
+ ```
487
+
488
+ #### Export Options
489
+ ```typescript
490
+ interface ExportOptions {
491
+ filter?: {
492
+ level?: LogLevel | LogLevel[];
493
+ from?: Date | string;
494
+ to?: Date | string;
495
+ prefix?: string | string[];
496
+ content?: string;
497
+ };
498
+ limit?: number;
499
+ groupBy?: 'level' | 'prefix' | 'date';
500
+ includeStackTrace?: boolean;
501
+ minimal?: boolean;
502
+ }
503
+ ```
504
+
505
+ ### Remote Logging
506
+
507
+ #### `addRemoteHandler(url, options?)`
508
+ Add remote logging endpoint.
509
+
510
+ ```typescript
511
+ // HTTP endpoint
512
+ logger.addRemoteHandler('https://api.logs.com/collect', {
513
+ apiKey: 'secret-key',
514
+ headers: { 'Content-Type': 'application/json' },
515
+ retries: 3
516
+ });
517
+
518
+ // WebSocket endpoint
519
+ logger.addRemoteHandler('wss://realtime.logs.com', {
520
+ reconnect: true,
521
+ maxReconnectAttempts: 5
522
+ });
523
+ ```
524
+
525
+ #### Remote Handler Options
526
+ ```typescript
527
+ interface RemoteHandlerOptions {
528
+ apiKey?: string;
529
+ headers?: Record<string, string>;
530
+ retries?: number;
531
+ timeout?: number;
532
+ reconnect?: boolean;
533
+ reconnectInterval?: number;
534
+ maxReconnectAttempts?: number;
535
+ filter?: (entry: LogEntry) => boolean;
536
+ immediate?: boolean;
537
+ }
538
+ ```
539
+
540
+ ---
541
+
542
+ ## 📋 Types & Interfaces
543
+
544
+ ### Core Types
545
+
546
+ ```typescript
547
+ // Log levels
548
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'critical';
549
+
550
+ // Theme names
551
+ type ThemeName = 'default' | 'dark' | 'neon' | 'cyberpunk' | 'retro';
552
+
553
+ // Banner types
554
+ type BannerType = 'simple' | 'ascii' | 'unicode' | 'svg' | 'animated';
555
+
556
+ // Export formats
557
+ type ExportFormat = 'csv' | 'json' | 'xml';
558
+ ```
559
+
560
+ ### Interfaces
561
+
562
+ ```typescript
563
+ // Log entry structure
564
+ interface LogEntry {
565
+ id: string;
566
+ timestamp: string;
567
+ level: LogLevel;
568
+ prefix: string;
569
+ message: string;
570
+ args: any[];
571
+ location?: {
572
+ file: string;
573
+ line: number;
574
+ column: number;
575
+ function: string;
576
+ };
577
+ performance?: {
578
+ duration: number;
579
+ memory: NodeJS.MemoryUsage;
580
+ };
581
+ }
582
+
583
+ // Log handler interface
584
+ interface ILogHandler {
585
+ handle(entry: LogEntry): void | Promise<void>;
586
+ }
587
+
588
+ // Style configuration
589
+ interface StyleConfig {
590
+ emoji?: string;
591
+ colors?: {
592
+ primary: string;
593
+ secondary: string;
594
+ text: string;
595
+ };
596
+ effects?: {
597
+ shadow: string;
598
+ border: string;
599
+ };
600
+ }
601
+ ```
602
+
603
+ ---
604
+
605
+ ## 🔄 Lifecycle Events
606
+
607
+ ### Event Handlers
608
+
609
+ ```typescript
610
+ // Log events
611
+ logger.on('log', (entry: LogEntry) => {
612
+ // Handle each log entry
613
+ });
614
+
615
+ logger.on('error', (error: Error) => {
616
+ // Handle logging errors
617
+ });
618
+
619
+ logger.on('export', (data: string, format: ExportFormat) => {
620
+ // Handle export completion
621
+ });
622
+
623
+ // Remote events
624
+ logger.on('remote:success', (endpoint: string, count: number) => {
625
+ // Handle successful remote transmission
626
+ });
627
+
628
+ logger.on('remote:error', (endpoint: string, error: Error) => {
629
+ // Handle remote logging errors
630
+ });
631
+ ```
632
+
633
+ ### Buffer Events
634
+
635
+ ```typescript
636
+ logger.on('buffer:full', (size: number) => {
637
+ // Handle buffer capacity reached
638
+ });
639
+
640
+ logger.on('buffer:cleared', () => {
641
+ // Handle buffer cleared
642
+ });
643
+ ```
644
+
645
+ ---
646
+
647
+ ## 📚 Advanced Usage
648
+
649
+ ### Performance Monitoring
650
+
651
+ ```typescript
652
+ // Automatic performance tracking
653
+ logger.time('operation');
654
+ await performOperation();
655
+ const metrics = logger.timeEnd('operation'); // Returns timing data
656
+
657
+ // Memory usage tracking
658
+ logger.logMemory('checkpoint-1');
659
+ await heavyOperation();
660
+ logger.logMemory('checkpoint-2');
661
+ ```
662
+
663
+ ### Conditional Logging
664
+
665
+ ```typescript
666
+ // Environment-based logging
667
+ logger.setLevel(process.env.NODE_ENV === 'production' ? 'warn' : 'debug');
668
+
669
+ // Conditional handlers
670
+ if (process.env.ENABLE_FILE_LOGGING === 'true') {
671
+ logger.addHandler(new FileLogHandler('./app.log'));
672
+ }
673
+ ```
674
+
675
+ ### Custom Formatters
676
+
677
+ ```typescript
678
+ // Custom message formatting
679
+ logger.setFormatter((entry: LogEntry) => {
680
+ return `[${entry.timestamp}] ${entry.level.toUpperCase()}: ${entry.message}`;
681
+ });
682
+
683
+ // Custom data serialization
684
+ logger.setSerializer((data: any) => {
685
+ return JSON.stringify(data, null, 2);
686
+ });
687
+ ```
688
+
689
+ ---
690
+
691
+ For more examples and use cases, see the [examples folder](../examples/) and [live demo](https://mks2508.github.io/advanced-logger/).