@mks2508/better-logger 2.1.0 → 3.1.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 (111) hide show
  1. package/.claude/settings.local.json +8 -1
  2. package/CHANGELOG.json +168 -1
  3. package/CHANGELOG.md +127 -0
  4. package/CLAUDE.md +14 -1
  5. package/README.md +111 -20
  6. package/dist/Logger.d.ts +217 -70
  7. package/dist/Logger.d.ts.map +1 -1
  8. package/dist/ScopedLogger.d.ts +23 -276
  9. package/dist/ScopedLogger.d.ts.map +1 -1
  10. package/dist/chunks/Logger-BV0v1AyC.js +2 -0
  11. package/dist/chunks/Logger-BV0v1AyC.js.map +1 -0
  12. package/dist/chunks/{Logger-B7L-ujY4.js → Logger-C086w3EM.js} +868 -102
  13. package/dist/chunks/Logger-C086w3EM.js.map +1 -0
  14. package/dist/chunks/environment-C_8J-zQ_.js +4 -0
  15. package/dist/chunks/environment-C_8J-zQ_.js.map +1 -0
  16. package/dist/chunks/{environment-TI2ByCPT.js → environment-DXHouGD4.js} +468 -100
  17. package/dist/chunks/environment-DXHouGD4.js.map +1 -0
  18. package/dist/chunks/{formatting-CuNUqGks.js → formatting-BNnVUPcw.js} +2 -2
  19. package/dist/chunks/{formatting-CuNUqGks.js.map → formatting-BNnVUPcw.js.map} +1 -1
  20. package/dist/chunks/{formatting-Blwy-f0W.js → formatting-Cg5YhB9Y.js} +2 -2
  21. package/dist/chunks/{formatting-Blwy-f0W.js.map → formatting-Cg5YhB9Y.js.map} +1 -1
  22. package/dist/core.cjs +1 -1
  23. package/dist/core.js +2 -2
  24. package/dist/exports-module.d.ts +1 -1
  25. package/dist/exports-module.d.ts.map +1 -1
  26. package/dist/exports.cjs +1 -1
  27. package/dist/exports.js +2 -2
  28. package/dist/hooks/HookManager.d.ts +21 -0
  29. package/dist/hooks/HookManager.d.ts.map +1 -0
  30. package/dist/hooks/index.d.ts +2 -0
  31. package/dist/hooks/index.d.ts.map +1 -0
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.ts +30 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +433 -20
  37. package/dist/index.js.map +1 -1
  38. package/dist/serializers/SerializerRegistry.d.ts +16 -0
  39. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  40. package/dist/serializers/index.d.ts +2 -0
  41. package/dist/serializers/index.d.ts.map +1 -0
  42. package/dist/styling/StyleCache.d.ts +42 -0
  43. package/dist/styling/StyleCache.d.ts.map +1 -0
  44. package/dist/styling-module.d.ts +1 -1
  45. package/dist/styling-module.d.ts.map +1 -1
  46. package/dist/styling.cjs +1 -1
  47. package/dist/styling.js +3 -3
  48. package/dist/terminal/color-converter.d.ts +73 -0
  49. package/dist/terminal/color-converter.d.ts.map +1 -0
  50. package/dist/terminal/formatter.d.ts +20 -0
  51. package/dist/terminal/formatter.d.ts.map +1 -0
  52. package/dist/terminal/terminal-renderer.d.ts +20 -6
  53. package/dist/terminal/terminal-renderer.d.ts.map +1 -1
  54. package/dist/transports/ConsoleTransport.d.ts +9 -0
  55. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  56. package/dist/transports/FileTransport.d.ts +15 -0
  57. package/dist/transports/FileTransport.d.ts.map +1 -0
  58. package/dist/transports/HttpTransport.d.ts +16 -0
  59. package/dist/transports/HttpTransport.d.ts.map +1 -0
  60. package/dist/transports/TransportManager.d.ts +14 -0
  61. package/dist/transports/TransportManager.d.ts.map +1 -0
  62. package/dist/transports/index.d.ts +5 -0
  63. package/dist/transports/index.d.ts.map +1 -0
  64. package/dist/types/core.d.ts +55 -0
  65. package/dist/types/core.d.ts.map +1 -1
  66. package/dist/types/hooks.d.ts +36 -0
  67. package/dist/types/hooks.d.ts.map +1 -0
  68. package/dist/types/index.d.ts +5 -1
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/types/serializers.d.ts +25 -0
  71. package/dist/types/serializers.d.ts.map +1 -0
  72. package/dist/types/transports.d.ts +47 -0
  73. package/dist/types/transports.d.ts.map +1 -0
  74. package/dist/utils/environment-detector.d.ts +10 -0
  75. package/dist/utils/environment-detector.d.ts.map +1 -1
  76. package/docs/API.md +227 -0
  77. package/package.json +1 -1
  78. package/packages/core/package.json +1 -1
  79. package/packages/styling/package.json +2 -2
  80. package/src/Logger.ts +403 -114
  81. package/src/ScopedLogger.ts +78 -318
  82. package/src/hooks/HookManager.ts +177 -0
  83. package/src/hooks/index.ts +1 -0
  84. package/src/index.ts +133 -3
  85. package/src/serializers/SerializerRegistry.ts +173 -0
  86. package/src/serializers/index.ts +1 -0
  87. package/src/styling/StyleCache.ts +131 -0
  88. package/src/terminal/color-converter.ts +315 -0
  89. package/src/terminal/formatter.ts +236 -0
  90. package/src/terminal/terminal-renderer.ts +74 -79
  91. package/src/transports/ConsoleTransport.ts +28 -0
  92. package/src/transports/FileTransport.ts +53 -0
  93. package/src/transports/HttpTransport.ts +56 -0
  94. package/src/transports/TransportManager.ts +130 -0
  95. package/src/transports/index.ts +4 -0
  96. package/src/types/core.ts +68 -0
  97. package/src/types/hooks.ts +45 -0
  98. package/src/types/index.ts +44 -1
  99. package/src/types/serializers.ts +30 -0
  100. package/src/types/transports.ts +52 -0
  101. package/src/utils/environment-detector.ts +23 -1
  102. package/dist/chunks/Logger-B7L-ujY4.js.map +0 -1
  103. package/dist/chunks/Logger-DzU_c5sX.js +0 -2
  104. package/dist/chunks/Logger-DzU_c5sX.js.map +0 -1
  105. package/dist/chunks/ScopedLogger-BY3-E8Ov.js +0 -2
  106. package/dist/chunks/ScopedLogger-BY3-E8Ov.js.map +0 -1
  107. package/dist/chunks/ScopedLogger-D-RbiFZn.js +0 -361
  108. package/dist/chunks/ScopedLogger-D-RbiFZn.js.map +0 -1
  109. package/dist/chunks/environment-Ba5kShbx.js +0 -4
  110. package/dist/chunks/environment-Ba5kShbx.js.map +0 -1
  111. package/dist/chunks/environment-TI2ByCPT.js.map +0 -1
@@ -14,12 +14,22 @@ export type {
14
14
  LoggerConfig,
15
15
  StackInfo,
16
16
  TimerEntry,
17
+ TimerResult,
17
18
  StyleOptions,
18
19
  AdaptiveColors,
19
20
  SpacingType,
20
21
  LogLayout,
21
22
  LogPartConfig,
22
23
  LogStyles,
24
+ IScopedLogger,
25
+ IAPILogger,
26
+ IComponentLogger,
27
+ Bindings,
28
+ BadgeStyle,
29
+ TimestampFormat,
30
+ ColumnAlign,
31
+ ColumnConfig,
32
+ LogOptions,
23
33
  } from './core.js';
24
34
 
25
35
  export { LOG_LEVELS } from './core.js';
@@ -33,4 +43,37 @@ export type {
33
43
  ExportOptions,
34
44
  ExportResult,
35
45
  BufferStats,
36
- } from './handlers.js';
46
+ } from './handlers.js';
47
+
48
+ // Serializer types
49
+ export type {
50
+ SerializerFn,
51
+ SerializerContext,
52
+ SerializerEntry,
53
+ SerializerConfig,
54
+ ISerializerRegistry,
55
+ } from './serializers.js';
56
+
57
+ // Hook types
58
+ export type {
59
+ HookLogEntry,
60
+ HookEvent,
61
+ HookCallback,
62
+ MiddlewareFn,
63
+ HookRegistration,
64
+ MiddlewareRegistration,
65
+ IHookManager,
66
+ } from './hooks.js';
67
+
68
+ // Transport types
69
+ export type {
70
+ TransportRecord,
71
+ TransportOptions,
72
+ TransportTarget,
73
+ ITransport,
74
+ IBufferedTransport,
75
+ ITransportManager,
76
+ } from './transports.js';
77
+
78
+ // Style Cache types
79
+ export type { StyleCacheConfig } from '../styling/StyleCache.js';
@@ -0,0 +1,30 @@
1
+ import type { LogLevel } from './core.js';
2
+
3
+ export type SerializerFn<T = any> = (value: T, context: SerializerContext) => any;
4
+
5
+ export interface SerializerContext {
6
+ depth: number;
7
+ maxDepth: number;
8
+ path: string[];
9
+ seen: WeakSet<object>;
10
+ }
11
+
12
+ export interface SerializerEntry<T = any> {
13
+ type: new (...args: any[]) => T;
14
+ serializer: SerializerFn<T>;
15
+ priority: number;
16
+ }
17
+
18
+ export interface SerializerConfig {
19
+ maxDepth?: number;
20
+ circular?: 'error' | 'skip' | 'placeholder';
21
+ preserveUndefined?: boolean;
22
+ }
23
+
24
+ export interface ISerializerRegistry {
25
+ add<T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number): void;
26
+ remove<T>(type: new (...args: any[]) => T): boolean;
27
+ has<T>(type: new (...args: any[]) => T): boolean;
28
+ serialize(value: any, config?: SerializerConfig): any;
29
+ getAll(): SerializerEntry[];
30
+ }
@@ -0,0 +1,52 @@
1
+ import type { LogLevel, StackInfo } from './core.js';
2
+
3
+ export interface TransportRecord {
4
+ level: LogLevel;
5
+ levelValue: number;
6
+ time: number;
7
+ msg: string;
8
+ prefix?: string;
9
+ location?: {
10
+ file: string;
11
+ line: number;
12
+ column: number;
13
+ function?: string;
14
+ };
15
+ [key: string]: any;
16
+ }
17
+
18
+ export interface TransportOptions {
19
+ level?: LogLevel;
20
+ transform?: (record: TransportRecord) => TransportRecord | null;
21
+ batchSize?: number;
22
+ flushInterval?: number;
23
+ [key: string]: any;
24
+ }
25
+
26
+ export interface TransportTarget {
27
+ target: string | ITransport;
28
+ options?: TransportOptions;
29
+ level?: LogLevel;
30
+ }
31
+
32
+ export interface ITransport {
33
+ readonly name: string;
34
+ write(record: TransportRecord): void | Promise<void>;
35
+ flush?(): void | Promise<void>;
36
+ close?(): void | Promise<void>;
37
+ isReady?(): boolean;
38
+ }
39
+
40
+ export interface IBufferedTransport extends ITransport {
41
+ readonly bufferSize: number;
42
+ readonly maxBufferSize: number;
43
+ flush(): Promise<void>;
44
+ }
45
+
46
+ export interface ITransportManager {
47
+ add(target: TransportTarget): string;
48
+ remove(id: string): boolean;
49
+ write(record: TransportRecord): Promise<void>;
50
+ flush(): Promise<void>;
51
+ close(): Promise<void>;
52
+ }
@@ -131,6 +131,26 @@ export function getColorCapability(): 'full' | 'basic' | 'none' {
131
131
  return 'basic'; // Basic 16 colors
132
132
  }
133
133
 
134
+ /**
135
+ * Get terminal width in columns
136
+ */
137
+ export function getTerminalWidth(): number {
138
+ if (typeof process !== 'undefined' && process.stdout?.columns) {
139
+ return process.stdout.columns;
140
+ }
141
+ return 80;
142
+ }
143
+
144
+ /**
145
+ * Get terminal height in rows
146
+ */
147
+ export function getTerminalHeight(): number {
148
+ if (typeof process !== 'undefined' && process.stdout?.rows) {
149
+ return process.stdout.rows;
150
+ }
151
+ return 24;
152
+ }
153
+
134
154
  /**
135
155
  * Environment information for debugging
136
156
  */
@@ -143,6 +163,8 @@ export function getEnvironmentInfo() {
143
163
  platform: typeof process !== 'undefined' ? process.platform : 'unknown',
144
164
  nodeVersion: typeof process !== 'undefined' ? process.versions?.node : null,
145
165
  term: typeof process !== 'undefined' ? process.env?.TERM : null,
146
- colorTerm: typeof process !== 'undefined' ? process.env?.COLORTERM : null
166
+ colorTerm: typeof process !== 'undefined' ? process.env?.COLORTERM : null,
167
+ terminalWidth: getTerminalWidth(),
168
+ terminalHeight: getTerminalHeight()
147
169
  };
148
170
  }