@mks2508/better-logger 0.0.1 → 0.0.2-alpha.2

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 (64) hide show
  1. package/.claude/settings.local.json +10 -1
  2. package/.github/workflows/ci.yml +319 -0
  3. package/.github/workflows/release.yml +269 -0
  4. package/.npmrc.bak +1 -0
  5. package/README.md +577 -0
  6. package/demo.html +840 -0
  7. package/dist/chunks/Logger-BQhMKy_T.js +2 -0
  8. package/dist/chunks/Logger-BQhMKy_T.js.map +1 -0
  9. package/dist/chunks/Logger-BrFKFZcD.js +978 -0
  10. package/dist/chunks/Logger-BrFKFZcD.js.map +1 -0
  11. package/dist/chunks/core-2opW4Pi3.js +194 -0
  12. package/dist/chunks/core-2opW4Pi3.js.map +1 -0
  13. package/dist/chunks/core-DyugwSYZ.js +4 -0
  14. package/dist/chunks/core-DyugwSYZ.js.map +1 -0
  15. package/dist/chunks/exports-BNP3R7dp.js +421 -0
  16. package/dist/chunks/exports-BNP3R7dp.js.map +1 -0
  17. package/dist/chunks/exports-U1xLBXrY.js +2 -0
  18. package/dist/chunks/exports-U1xLBXrY.js.map +1 -0
  19. package/dist/chunks/styling-DhUDzwlE.js +654 -0
  20. package/dist/chunks/styling-DhUDzwlE.js.map +1 -0
  21. package/dist/chunks/styling-tmRDI28D.js +2 -0
  22. package/dist/chunks/styling-tmRDI28D.js.map +1 -0
  23. package/dist/core.cjs +2 -0
  24. package/dist/core.cjs.map +1 -0
  25. package/dist/core.js +244 -0
  26. package/dist/core.js.map +1 -0
  27. package/dist/exports.cjs +2 -0
  28. package/dist/exports.cjs.map +1 -0
  29. package/dist/exports.js +237 -0
  30. package/dist/exports.js.map +1 -0
  31. package/dist/index.cjs +2 -0
  32. package/dist/index.cjs.map +1 -0
  33. package/dist/index.js +105 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/styling.cjs +2 -0
  36. package/dist/styling.cjs.map +1 -0
  37. package/dist/styling.js +146 -0
  38. package/dist/styling.js.map +1 -0
  39. package/dist/types/core.d.ts +211 -0
  40. package/dist/types/exports.d.ts +600 -0
  41. package/dist/types/index.d.ts +675 -0
  42. package/dist/types/styling.d.ts +751 -0
  43. package/docs/CORE.md +264 -0
  44. package/docs/EXPORTS.md +467 -0
  45. package/docs/STYLING.md +405 -0
  46. package/index.html +28 -4
  47. package/package.json +37 -4
  48. package/src/Logger.ts +28 -8
  49. package/src/cli/CommandProcessor.ts +2 -2
  50. package/src/cli/commands/ExportCommand.ts +5 -0
  51. package/src/cli/commands/StatusCommand.ts +11 -10
  52. package/src/core.ts +320 -0
  53. package/src/example.ts +184 -62
  54. package/src/exports-module.ts +311 -0
  55. package/src/handlers/ExportLogHandler.ts +34 -13
  56. package/src/index.ts +97 -79
  57. package/src/main.ts +77 -7
  58. package/src/styling-module.ts +244 -0
  59. package/src/utils/stackTrace.ts +39 -10
  60. package/src/utils/timestamps.ts +1 -1
  61. package/tsconfig.json +40 -14
  62. package/vite.config.ts +84 -0
  63. package/dist/assets/index-DxvJByYN.js +0 -183
  64. package/dist/index.html +0 -334
package/docs/CORE.md ADDED
@@ -0,0 +1,264 @@
1
+ # 📦 Core Module
2
+
3
+ **Lightweight logging without visual features • Perfect for libraries**
4
+
5
+ ```typescript
6
+ import { debug, info, warn, error } from '@mks2508/better-logger/core'
7
+ ```
8
+
9
+ **Bundle Size:** 6KB • **Gzipped:** 2KB
10
+
11
+ ---
12
+
13
+ ## ✨ Features
14
+
15
+ - ✅ **Essential logging levels** (debug, info, warn, error, critical, trace)
16
+ - ✅ **Performance timing** with `time()` and `timeEnd()`
17
+ - ✅ **Scoped loggers** for modular applications
18
+ - ✅ **Table display** for structured data
19
+ - ✅ **Console grouping** with collapsible sections
20
+ - ✅ **Custom handlers** for extensibility
21
+ - ✅ **Zero visual dependencies** - pure functionality
22
+
23
+ ## 🚀 Quick Start
24
+
25
+ ```typescript
26
+ import {
27
+ debug, info, warn, error, critical,
28
+ createScopedLogger, time, timeEnd,
29
+ table, group, groupEnd
30
+ } from '@mks2508/better-logger/core'
31
+
32
+ // Basic logging
33
+ debug('Debug information', { config: { mode: 'development' } })
34
+ info('Application started')
35
+ warn('Configuration missing')
36
+ error('Connection failed', error)
37
+ critical('System failure')
38
+
39
+ // Performance timing
40
+ time('database-query')
41
+ // ... database operation
42
+ timeEnd('database-query') // Logs: database-query: 45.32ms
43
+
44
+ // Scoped logging
45
+ const apiLogger = createScopedLogger('API')
46
+ apiLogger.info('Request received', { endpoint: '/users' })
47
+
48
+ // Structured data
49
+ table([
50
+ { name: 'Alice', role: 'Admin', active: true },
51
+ { name: 'Bob', role: 'User', active: false }
52
+ ])
53
+
54
+ // Grouped logging
55
+ group('Authentication Flow')
56
+ info('Validating credentials')
57
+ warn('Password expires in 3 days')
58
+ groupEnd()
59
+ ```
60
+
61
+ ## 📖 API Reference
62
+
63
+ ### Logging Methods
64
+
65
+ ```typescript
66
+ debug(...args: any[]): void // Lowest priority, detailed info
67
+ info(...args: any[]): void // General information
68
+ warn(...args: any[]): void // Warning messages
69
+ error(...args: any[]): void // Error conditions
70
+ critical(...args: any[]): void // Highest priority, system failures
71
+ trace(...args: any[]): void // Debug with stack trace
72
+ ```
73
+
74
+ ### Performance Timing
75
+
76
+ ```typescript
77
+ time(label: string): void // Start timer
78
+ timeEnd(label: string): void // End timer and log duration
79
+ ```
80
+
81
+ ### Data Display
82
+
83
+ ```typescript
84
+ table(data: any, columns?: string[]): void // Display data as table
85
+ group(label: string, collapsed?: boolean): void // Start collapsible group
86
+ groupEnd(): void // End current group
87
+ ```
88
+
89
+ ### Logger Management
90
+
91
+ ```typescript
92
+ createScopedLogger(prefix: string): CoreLogger // Create prefixed logger
93
+ setGlobalPrefix(prefix: string): void // Set global prefix
94
+ setVerbosity(level: Verbosity): void // Filter log levels
95
+ addHandler(handler: ILogHandler): void // Add custom handler
96
+ ```
97
+
98
+ ## 🎯 Configuration
99
+
100
+ ### Verbosity Levels
101
+
102
+ ```typescript
103
+ type Verbosity = 'debug' | 'info' | 'warn' | 'error' | 'critical' | 'silent'
104
+
105
+ setVerbosity('warn') // Only show warnings and above
106
+ setVerbosity('silent') // Disable all logging
107
+ ```
108
+
109
+ ### Custom Handlers
110
+
111
+ ```typescript
112
+ import { ILogHandler, LogLevel, LogMetadata } from '@mks2508/better-logger/core'
113
+
114
+ class FileHandler implements ILogHandler {
115
+ handle(level: LogLevel, message: string, args: any[], metadata: LogMetadata) {
116
+ // Custom logging logic
117
+ fs.appendFileSync('app.log', `${metadata.timestamp} [${level}] ${message}\n`)
118
+ }
119
+ }
120
+
121
+ addHandler(new FileHandler())
122
+ ```
123
+
124
+ ## 🏗️ Usage Patterns
125
+
126
+ ### Library Development
127
+
128
+ ```typescript
129
+ // logger.ts - internal logger for your library
130
+ import { createScopedLogger } from '@mks2508/better-logger/core'
131
+
132
+ export const logger = createScopedLogger('MyLibrary')
133
+
134
+ // usage.ts
135
+ import { logger } from './logger'
136
+
137
+ export function initialize() {
138
+ logger.info('Library initialized')
139
+ }
140
+
141
+ export function processData(data: any) {
142
+ logger.time('process-data')
143
+ logger.debug('Processing data', { size: data.length })
144
+
145
+ try {
146
+ // ... processing logic
147
+ logger.info('Data processed successfully')
148
+ } catch (error) {
149
+ logger.error('Processing failed', error)
150
+ } finally {
151
+ logger.timeEnd('process-data')
152
+ }
153
+ }
154
+ ```
155
+
156
+ ### Microservices
157
+
158
+ ```typescript
159
+ import { createScopedLogger, setGlobalPrefix } from '@mks2508/better-logger/core'
160
+
161
+ // Configure service-wide prefix
162
+ setGlobalPrefix('UserService')
163
+
164
+ // Create domain-specific loggers
165
+ const dbLogger = createScopedLogger('DB')
166
+ const authLogger = createScopedLogger('AUTH')
167
+ const apiLogger = createScopedLogger('API')
168
+
169
+ // Usage across service
170
+ dbLogger.time('user-query')
171
+ dbLogger.debug('Executing query', { userId: 123 })
172
+ dbLogger.timeEnd('user-query')
173
+
174
+ authLogger.info('Token validated', { userId: 123, role: 'user' })
175
+
176
+ apiLogger.warn('Rate limit approaching', {
177
+ userId: 123,
178
+ requests: 95,
179
+ limit: 100
180
+ })
181
+ ```
182
+
183
+ ### Testing Integration
184
+
185
+ ```typescript
186
+ import { setVerbosity, addHandler } from '@mks2508/better-logger/core'
187
+
188
+ // Test environment setup
189
+ beforeAll(() => {
190
+ if (process.env.NODE_ENV === 'test') {
191
+ setVerbosity('error') // Only show errors during testing
192
+ }
193
+ })
194
+
195
+ // Capture logs for testing
196
+ class TestLogHandler {
197
+ logs: Array<{level: string, message: string}> = []
198
+
199
+ handle(level: LogLevel, message: string) {
200
+ this.logs.push({ level, message })
201
+ }
202
+ }
203
+
204
+ const testHandler = new TestLogHandler()
205
+ addHandler(testHandler)
206
+
207
+ // Assert on logs
208
+ test('should log error on failure', () => {
209
+ processFailingOperation()
210
+
211
+ expect(testHandler.logs).toContainEqual({
212
+ level: 'error',
213
+ message: 'Operation failed'
214
+ })
215
+ })
216
+ ```
217
+
218
+ ## ⚡ Performance
219
+
220
+ **Core module is optimized for minimal overhead:**
221
+
222
+ - **Bundle Size:** 6KB minified
223
+ - **Runtime Memory:** <2MB additional
224
+ - **Log Call Overhead:** ~0.1ms per call
225
+ - **Zero Dependencies:** No external packages
226
+
227
+ ## 🔧 TypeScript Integration
228
+
229
+ Full TypeScript support with detailed type definitions:
230
+
231
+ ```typescript
232
+ import type {
233
+ CoreLogger,
234
+ LogLevel,
235
+ Verbosity,
236
+ ILogHandler,
237
+ LogMetadata
238
+ } from '@mks2508/better-logger/core'
239
+
240
+ // Strongly typed logger instance
241
+ const logger: CoreLogger = createScopedLogger('TypedLogger')
242
+
243
+ // Type-safe verbosity setting
244
+ const level: Verbosity = 'debug'
245
+ setVerbosity(level)
246
+
247
+ // Custom handler with full type safety
248
+ class TypedHandler implements ILogHandler {
249
+ handle(
250
+ level: LogLevel, // 'debug' | 'info' | 'warn' | 'error' | 'critical'
251
+ message: string,
252
+ args: any[],
253
+ metadata: LogMetadata // timestamp, prefix, stackInfo
254
+ ): void {
255
+ // Implementation with full IntelliSense
256
+ }
257
+ }
258
+ ```
259
+
260
+ ---
261
+
262
+ **Perfect for:** Libraries • Microservices • Node.js applications • Testing environments
263
+
264
+ [← Back to main documentation](../README.md)