@mks2508/better-logger 0.0.2-alpha.2 → 0.8.1-alpha.1

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 (231) hide show
  1. package/.github/workflows/ci-quality.yml +356 -0
  2. package/.github/workflows/docs-demo.yml +123 -0
  3. package/.github/workflows/releases-core.yml +448 -0
  4. package/.github/workflows/releases-full.yml +404 -0
  5. package/.github/{workflows → workflows-backup}/ci.yml +12 -110
  6. package/.github/workflows-backup/nightly.yml +196 -0
  7. package/.github/workflows-backup/release-optimized.yml +373 -0
  8. package/.release-notes-0.2.0.md +129 -0
  9. package/CHANGELOG.json +658 -0
  10. package/README.md +110 -512
  11. package/demo.html +9 -2
  12. package/dist/Logger.d.ts +176 -0
  13. package/dist/Logger.d.ts.map +1 -0
  14. package/dist/Logger.js +498 -0
  15. package/dist/chunks/{Logger-BrFKFZcD.js → Logger-CbCUS5pQ.js} +987 -5
  16. package/dist/chunks/Logger-CbCUS5pQ.js.map +1 -0
  17. package/dist/chunks/Logger-PCfgYKTP.js +2 -0
  18. package/dist/chunks/Logger-PCfgYKTP.js.map +1 -0
  19. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  20. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  21. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  22. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  23. package/dist/chunks/StyleBuilder-BoJTmskd.js +361 -0
  24. package/dist/chunks/StyleBuilder-BoJTmskd.js.map +1 -0
  25. package/dist/chunks/StyleBuilder-LPLzsoHY.js +4 -0
  26. package/dist/chunks/StyleBuilder-LPLzsoHY.js.map +1 -0
  27. package/dist/cli/CommandProcessor.d.ts +40 -0
  28. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  29. package/dist/cli/CommandProcessor.js +57 -0
  30. package/dist/cli/commands/ConfigCommand.d.ts +17 -0
  31. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  32. package/dist/cli/commands/ConfigCommand.js +88 -0
  33. package/dist/cli/commands/ExportCommand.d.ts +51 -0
  34. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  35. package/dist/cli/commands/ExportCommand.js +243 -0
  36. package/dist/cli/commands/StatusCommand.d.ts +33 -0
  37. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  38. package/dist/cli/commands/StatusCommand.js +93 -0
  39. package/dist/cli/commands/ThemeCommand.d.ts +33 -0
  40. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  41. package/dist/cli/commands/ThemeCommand.js +79 -0
  42. package/dist/cli/help.d.ts +15 -0
  43. package/dist/cli/help.d.ts.map +1 -0
  44. package/dist/cli/help.js +118 -0
  45. package/dist/cli/index.d.ts +15 -0
  46. package/dist/cli/index.d.ts.map +1 -0
  47. package/dist/cli/index.js +40 -0
  48. package/dist/constants.d.ts +91 -0
  49. package/dist/constants.d.ts.map +1 -0
  50. package/dist/constants.js +80 -0
  51. package/dist/core.cjs +1 -1
  52. package/dist/core.cjs.map +1 -1
  53. package/dist/core.d.ts +130 -0
  54. package/dist/core.d.ts.map +1 -0
  55. package/dist/core.js +258 -242
  56. package/dist/core.js.map +1 -1
  57. package/dist/example.d.ts +18 -0
  58. package/dist/example.d.ts.map +1 -0
  59. package/dist/example.js +154 -0
  60. package/dist/exports-module.d.ts +203 -0
  61. package/dist/exports-module.d.ts.map +1 -0
  62. package/dist/exports-module.js +260 -0
  63. package/dist/exports.cjs +1 -1
  64. package/dist/exports.cjs.map +1 -1
  65. package/dist/exports.js +2 -2
  66. package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
  67. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  68. package/dist/handlers/AnalyticsLogHandler.js +19 -0
  69. package/dist/handlers/ExportLogHandler.d.ts +103 -0
  70. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  71. package/dist/handlers/ExportLogHandler.js +516 -0
  72. package/dist/handlers/FileLogHandler.d.ts +13 -0
  73. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  74. package/dist/handlers/FileLogHandler.js +24 -0
  75. package/dist/handlers/RemoteLogHandler.d.ts +14 -0
  76. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  77. package/dist/handlers/RemoteLogHandler.js +37 -0
  78. package/dist/handlers/index.d.ts +8 -0
  79. package/dist/handlers/index.d.ts.map +1 -0
  80. package/dist/handlers/index.js +7 -0
  81. package/dist/index.cjs +1 -1
  82. package/dist/index.cjs.map +1 -1
  83. package/dist/index.d.ts +86 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +89 -103
  86. package/dist/main.d.ts +2 -0
  87. package/dist/main.d.ts.map +1 -0
  88. package/dist/main.js +139 -0
  89. package/dist/styling/StyleBuilder.d.ts +132 -0
  90. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  91. package/dist/styling/StyleBuilder.js +268 -0
  92. package/dist/styling/banners.d.ts +45 -0
  93. package/dist/styling/banners.d.ts.map +1 -0
  94. package/dist/styling/banners.js +155 -0
  95. package/dist/styling/index.d.ts +7 -0
  96. package/dist/styling/index.d.ts.map +1 -0
  97. package/dist/styling/index.js +6 -0
  98. package/dist/styling/themes.d.ts +10 -0
  99. package/dist/styling/themes.d.ts.map +1 -0
  100. package/dist/styling/themes.js +231 -0
  101. package/dist/styling-module.d.ts +185 -0
  102. package/dist/styling-module.d.ts.map +1 -0
  103. package/dist/styling-module.js +199 -0
  104. package/dist/styling.cjs +1 -1
  105. package/dist/styling.cjs.map +1 -1
  106. package/dist/styling.js +4 -4
  107. package/dist/types/Logger.d.ts +172 -0
  108. package/dist/types/Logger.d.ts.map +1 -0
  109. package/dist/types/cli/CommandProcessor.d.ts +37 -0
  110. package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
  111. package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
  112. package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
  113. package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
  114. package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
  115. package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
  116. package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
  117. package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
  118. package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
  119. package/dist/types/cli/help.d.ts +12 -0
  120. package/dist/types/cli/help.d.ts.map +1 -0
  121. package/dist/types/cli/index.d.ts +15 -0
  122. package/dist/types/cli/index.d.ts.map +1 -0
  123. package/dist/types/constants.d.ts +88 -0
  124. package/dist/types/constants.d.ts.map +1 -0
  125. package/dist/types/core.d.ts +71 -211
  126. package/dist/types/core.d.ts.map +1 -0
  127. package/dist/types/core.js +13 -0
  128. package/dist/types/example.d.ts +18 -0
  129. package/dist/types/example.d.ts.map +1 -0
  130. package/dist/types/exports-module.d.ts +196 -0
  131. package/dist/types/exports-module.d.ts.map +1 -0
  132. package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
  133. package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  134. package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
  135. package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
  136. package/dist/types/handlers/FileLogHandler.d.ts +10 -0
  137. package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
  138. package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
  139. package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
  140. package/dist/types/handlers/index.d.ts +8 -0
  141. package/dist/types/handlers/index.d.ts.map +1 -0
  142. package/dist/types/handlers.d.ts +88 -0
  143. package/dist/types/handlers.d.ts.map +1 -0
  144. package/dist/types/handlers.js +4 -0
  145. package/dist/types/index.d.ts +7 -675
  146. package/dist/types/index.d.ts.map +1 -0
  147. package/dist/types/index.js +4 -0
  148. package/dist/types/main.d.ts +2 -0
  149. package/dist/types/main.d.ts.map +1 -0
  150. package/dist/types/styling/StyleBuilder.d.ts +132 -0
  151. package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
  152. package/dist/types/styling/banners.d.ts +42 -0
  153. package/dist/types/styling/banners.d.ts.map +1 -0
  154. package/dist/types/styling/index.d.ts +7 -0
  155. package/dist/types/styling/index.d.ts.map +1 -0
  156. package/dist/types/styling/themes.d.ts +7 -0
  157. package/dist/types/styling/themes.d.ts.map +1 -0
  158. package/dist/types/styling-module.d.ts +178 -0
  159. package/dist/types/styling-module.d.ts.map +1 -0
  160. package/dist/types/types/core.d.ts +71 -0
  161. package/dist/types/types/core.d.ts.map +1 -0
  162. package/dist/types/types/handlers.d.ts +85 -0
  163. package/dist/types/types/handlers.d.ts.map +1 -0
  164. package/dist/types/types/index.d.ts +7 -0
  165. package/dist/types/types/index.d.ts.map +1 -0
  166. package/dist/types/utils/index.d.ts +7 -0
  167. package/dist/types/utils/index.d.ts.map +1 -0
  168. package/dist/types/utils/output.d.ts +29 -0
  169. package/dist/types/utils/output.d.ts.map +1 -0
  170. package/dist/types/utils/stackTrace.d.ts +6 -0
  171. package/dist/types/utils/stackTrace.d.ts.map +1 -0
  172. package/dist/types/utils/timestamps.d.ts +20 -0
  173. package/dist/types/utils/timestamps.d.ts.map +1 -0
  174. package/dist/utils/index.d.ts +7 -0
  175. package/dist/utils/index.d.ts.map +1 -0
  176. package/dist/utils/index.js +6 -0
  177. package/dist/utils/output.d.ts +32 -0
  178. package/dist/utils/output.d.ts.map +1 -0
  179. package/dist/utils/output.js +97 -0
  180. package/dist/utils/stackTrace.d.ts +9 -0
  181. package/dist/utils/stackTrace.d.ts.map +1 -0
  182. package/dist/utils/stackTrace.js +81 -0
  183. package/dist/utils/timestamps.d.ts +20 -0
  184. package/dist/utils/timestamps.d.ts.map +1 -0
  185. package/dist/utils/timestamps.js +71 -0
  186. package/docs/API.md +607 -0
  187. package/docs/DEVELOPMENT.md +731 -0
  188. package/docs/_config.yml +36 -0
  189. package/docs/index.md +179 -0
  190. package/examples/README.md +208 -0
  191. package/examples/basic-logging.js +75 -0
  192. package/examples/data-export.js +234 -0
  193. package/examples/package.json +16 -0
  194. package/examples/performance-timing.js +170 -0
  195. package/examples/styling-themes.js +207 -0
  196. package/package.json +24 -21
  197. package/packages/core/package.json +35 -0
  198. package/packages/exports/package.json +41 -0
  199. package/packages/styling/package.json +41 -0
  200. package/project-utils/README.md +172 -0
  201. package/project-utils/auto-release-gemini.ts +1193 -0
  202. package/project-utils/commit-generator.ts +1000 -0
  203. package/project-utils/commit-ui.ts +246 -0
  204. package/project-utils/git-utils.ts +199 -0
  205. package/project-utils/github-release-manager.ts +466 -0
  206. package/project-utils/prompt-templates.js +345 -0
  207. package/project-utils/prompt-templates.ts +422 -0
  208. package/project-utils/version-manager.ts +1078 -0
  209. package/src/Logger.ts +2 -1
  210. package/src/handlers/ExportLogHandler.ts +141 -0
  211. package/vite.config.ts +152 -50
  212. package/.claude/settings.local.json +0 -22
  213. package/.npmrc.bak +0 -1
  214. package/dist/chunks/Logger-BQhMKy_T.js +0 -2
  215. package/dist/chunks/Logger-BQhMKy_T.js.map +0 -1
  216. package/dist/chunks/Logger-BrFKFZcD.js.map +0 -1
  217. package/dist/chunks/core-2opW4Pi3.js +0 -194
  218. package/dist/chunks/core-2opW4Pi3.js.map +0 -1
  219. package/dist/chunks/core-DyugwSYZ.js +0 -4
  220. package/dist/chunks/core-DyugwSYZ.js.map +0 -1
  221. package/dist/chunks/exports-BNP3R7dp.js +0 -421
  222. package/dist/chunks/exports-BNP3R7dp.js.map +0 -1
  223. package/dist/chunks/exports-U1xLBXrY.js +0 -2
  224. package/dist/chunks/exports-U1xLBXrY.js.map +0 -1
  225. package/dist/chunks/styling-DhUDzwlE.js +0 -654
  226. package/dist/chunks/styling-DhUDzwlE.js.map +0 -1
  227. package/dist/chunks/styling-tmRDI28D.js +0 -2
  228. package/dist/chunks/styling-tmRDI28D.js.map +0 -1
  229. package/dist/types/exports.d.ts +0 -600
  230. package/dist/types/styling.d.ts +0 -751
  231. /package/.github/{workflows → workflows-backup}/release.yml +0 -0
package/docs/API.md ADDED
@@ -0,0 +1,607 @@
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
+ Interactive command-line interface for logger configuration.
280
+
281
+ ### Available Commands
282
+
283
+ #### `/help`
284
+ Display help information and available commands.
285
+
286
+ #### `/config`
287
+ Show current logger configuration.
288
+ ```typescript
289
+ /config
290
+ // Displays: Theme: default, Level: info, Stack traces: enabled
291
+ ```
292
+
293
+ #### `/theme [name]`
294
+ Change visual theme.
295
+ ```typescript
296
+ /theme cyberpunk
297
+ // Switches to cyberpunk theme with purple/pink colors
298
+ ```
299
+
300
+ Available themes: `default`, `dark`, `neon`, `cyberpunk`, `retro`
301
+
302
+ #### `/banner [type]`
303
+ Set banner display type.
304
+ ```typescript
305
+ /banner animated
306
+ // Shows animated gradient banner
307
+ ```
308
+
309
+ Banner types: `simple`, `ascii`, `unicode`, `svg`, `animated`
310
+
311
+ #### `/clear`
312
+ Clear console and reset log buffer.
313
+
314
+ #### `/export [format]`
315
+ Export logs in specified format.
316
+ ```typescript
317
+ /export json
318
+ // Exports current logs as JSON
319
+ ```
320
+
321
+ #### `/status`
322
+ Show logger status and statistics.
323
+
324
+ #### `/enumerate`
325
+ List all available features and capabilities.
326
+
327
+ ### CLI Integration
328
+
329
+ ```typescript
330
+ import { initializeCLI } from '@mks2508/better-logger/cli';
331
+
332
+ // Initialize CLI with logger instance
333
+ initializeCLI(logger);
334
+
335
+ // CLI commands are now available in console
336
+ // Type /help to see available commands
337
+ ```
338
+
339
+ ---
340
+
341
+ ## 📤 Export & Remote
342
+
343
+ Data export and remote logging capabilities.
344
+
345
+ ```typescript
346
+ import { ExportLogger } from '@mks2508/better-logger/exports';
347
+ ```
348
+
349
+ ### ExportLogger Class
350
+
351
+ Extended logger with export and remote capabilities.
352
+
353
+ ```typescript
354
+ const logger = new ExportLogger({
355
+ bufferSize: 1000,
356
+ remoteBatch: {
357
+ size: 10,
358
+ interval: 5000
359
+ }
360
+ });
361
+ ```
362
+
363
+ #### Constructor Options
364
+ ```typescript
365
+ interface ExportLoggerConfig {
366
+ bufferSize?: number; // Log buffer size
367
+ bufferMode?: 'circular' | 'grow'; // Buffer behavior
368
+ persistBuffer?: boolean; // Save to localStorage
369
+ remoteBatch?: { // Remote batching config
370
+ size: number;
371
+ interval: number;
372
+ maxWait: number;
373
+ };
374
+ autoExport?: { // Auto-export settings
375
+ format: ExportFormat;
376
+ trigger: 'size' | 'time' | 'level';
377
+ threshold: number;
378
+ };
379
+ }
380
+ ```
381
+
382
+ ### Export Methods
383
+
384
+ #### `exportLogs(format, options?)`
385
+ Export logs in specified format.
386
+
387
+ ```typescript
388
+ // Export as CSV
389
+ const csvData = await logger.exportLogs('csv', {
390
+ filter: { level: 'error' },
391
+ limit: 100
392
+ });
393
+
394
+ // Export as JSON with grouping
395
+ const jsonData = await logger.exportLogs('json', {
396
+ groupBy: 'level',
397
+ includeStackTrace: true
398
+ });
399
+
400
+ // Export as XML
401
+ const xmlData = await logger.exportLogs('xml');
402
+ ```
403
+
404
+ #### Export Options
405
+ ```typescript
406
+ interface ExportOptions {
407
+ filter?: {
408
+ level?: LogLevel | LogLevel[];
409
+ from?: Date | string;
410
+ to?: Date | string;
411
+ prefix?: string | string[];
412
+ content?: string;
413
+ };
414
+ limit?: number;
415
+ groupBy?: 'level' | 'prefix' | 'date';
416
+ includeStackTrace?: boolean;
417
+ minimal?: boolean;
418
+ }
419
+ ```
420
+
421
+ ### Remote Logging
422
+
423
+ #### `addRemoteHandler(url, options?)`
424
+ Add remote logging endpoint.
425
+
426
+ ```typescript
427
+ // HTTP endpoint
428
+ logger.addRemoteHandler('https://api.logs.com/collect', {
429
+ apiKey: 'secret-key',
430
+ headers: { 'Content-Type': 'application/json' },
431
+ retries: 3
432
+ });
433
+
434
+ // WebSocket endpoint
435
+ logger.addRemoteHandler('wss://realtime.logs.com', {
436
+ reconnect: true,
437
+ maxReconnectAttempts: 5
438
+ });
439
+ ```
440
+
441
+ #### Remote Handler Options
442
+ ```typescript
443
+ interface RemoteHandlerOptions {
444
+ apiKey?: string;
445
+ headers?: Record<string, string>;
446
+ retries?: number;
447
+ timeout?: number;
448
+ reconnect?: boolean;
449
+ reconnectInterval?: number;
450
+ maxReconnectAttempts?: number;
451
+ filter?: (entry: LogEntry) => boolean;
452
+ immediate?: boolean;
453
+ }
454
+ ```
455
+
456
+ ---
457
+
458
+ ## 📋 Types & Interfaces
459
+
460
+ ### Core Types
461
+
462
+ ```typescript
463
+ // Log levels
464
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'critical';
465
+
466
+ // Theme names
467
+ type ThemeName = 'default' | 'dark' | 'neon' | 'cyberpunk' | 'retro';
468
+
469
+ // Banner types
470
+ type BannerType = 'simple' | 'ascii' | 'unicode' | 'svg' | 'animated';
471
+
472
+ // Export formats
473
+ type ExportFormat = 'csv' | 'json' | 'xml';
474
+ ```
475
+
476
+ ### Interfaces
477
+
478
+ ```typescript
479
+ // Log entry structure
480
+ interface LogEntry {
481
+ id: string;
482
+ timestamp: string;
483
+ level: LogLevel;
484
+ prefix: string;
485
+ message: string;
486
+ args: any[];
487
+ location?: {
488
+ file: string;
489
+ line: number;
490
+ column: number;
491
+ function: string;
492
+ };
493
+ performance?: {
494
+ duration: number;
495
+ memory: NodeJS.MemoryUsage;
496
+ };
497
+ }
498
+
499
+ // Log handler interface
500
+ interface ILogHandler {
501
+ handle(entry: LogEntry): void | Promise<void>;
502
+ }
503
+
504
+ // Style configuration
505
+ interface StyleConfig {
506
+ emoji?: string;
507
+ colors?: {
508
+ primary: string;
509
+ secondary: string;
510
+ text: string;
511
+ };
512
+ effects?: {
513
+ shadow: string;
514
+ border: string;
515
+ };
516
+ }
517
+ ```
518
+
519
+ ---
520
+
521
+ ## 🔄 Lifecycle Events
522
+
523
+ ### Event Handlers
524
+
525
+ ```typescript
526
+ // Log events
527
+ logger.on('log', (entry: LogEntry) => {
528
+ // Handle each log entry
529
+ });
530
+
531
+ logger.on('error', (error: Error) => {
532
+ // Handle logging errors
533
+ });
534
+
535
+ logger.on('export', (data: string, format: ExportFormat) => {
536
+ // Handle export completion
537
+ });
538
+
539
+ // Remote events
540
+ logger.on('remote:success', (endpoint: string, count: number) => {
541
+ // Handle successful remote transmission
542
+ });
543
+
544
+ logger.on('remote:error', (endpoint: string, error: Error) => {
545
+ // Handle remote logging errors
546
+ });
547
+ ```
548
+
549
+ ### Buffer Events
550
+
551
+ ```typescript
552
+ logger.on('buffer:full', (size: number) => {
553
+ // Handle buffer capacity reached
554
+ });
555
+
556
+ logger.on('buffer:cleared', () => {
557
+ // Handle buffer cleared
558
+ });
559
+ ```
560
+
561
+ ---
562
+
563
+ ## 📚 Advanced Usage
564
+
565
+ ### Performance Monitoring
566
+
567
+ ```typescript
568
+ // Automatic performance tracking
569
+ logger.time('operation');
570
+ await performOperation();
571
+ const metrics = logger.timeEnd('operation'); // Returns timing data
572
+
573
+ // Memory usage tracking
574
+ logger.logMemory('checkpoint-1');
575
+ await heavyOperation();
576
+ logger.logMemory('checkpoint-2');
577
+ ```
578
+
579
+ ### Conditional Logging
580
+
581
+ ```typescript
582
+ // Environment-based logging
583
+ logger.setLevel(process.env.NODE_ENV === 'production' ? 'warn' : 'debug');
584
+
585
+ // Conditional handlers
586
+ if (process.env.ENABLE_FILE_LOGGING === 'true') {
587
+ logger.addHandler(new FileLogHandler('./app.log'));
588
+ }
589
+ ```
590
+
591
+ ### Custom Formatters
592
+
593
+ ```typescript
594
+ // Custom message formatting
595
+ logger.setFormatter((entry: LogEntry) => {
596
+ return `[${entry.timestamp}] ${entry.level.toUpperCase()}: ${entry.message}`;
597
+ });
598
+
599
+ // Custom data serialization
600
+ logger.setSerializer((data: any) => {
601
+ return JSON.stringify(data, null, 2);
602
+ });
603
+ ```
604
+
605
+ ---
606
+
607
+ For more examples and use cases, see the [examples folder](../examples/) and [live demo](https://mks2508.github.io/advanced-logger/).