@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.
- package/.claude/settings.local.json +8 -1
- package/CHANGELOG.json +168 -1
- package/CHANGELOG.md +127 -0
- package/CLAUDE.md +14 -1
- package/README.md +111 -20
- package/dist/Logger.d.ts +217 -70
- package/dist/Logger.d.ts.map +1 -1
- package/dist/ScopedLogger.d.ts +23 -276
- package/dist/ScopedLogger.d.ts.map +1 -1
- package/dist/chunks/Logger-BV0v1AyC.js +2 -0
- package/dist/chunks/Logger-BV0v1AyC.js.map +1 -0
- package/dist/chunks/{Logger-B7L-ujY4.js → Logger-C086w3EM.js} +868 -102
- package/dist/chunks/Logger-C086w3EM.js.map +1 -0
- package/dist/chunks/environment-C_8J-zQ_.js +4 -0
- package/dist/chunks/environment-C_8J-zQ_.js.map +1 -0
- package/dist/chunks/{environment-TI2ByCPT.js → environment-DXHouGD4.js} +468 -100
- package/dist/chunks/environment-DXHouGD4.js.map +1 -0
- package/dist/chunks/{formatting-CuNUqGks.js → formatting-BNnVUPcw.js} +2 -2
- package/dist/chunks/{formatting-CuNUqGks.js.map → formatting-BNnVUPcw.js.map} +1 -1
- package/dist/chunks/{formatting-Blwy-f0W.js → formatting-Cg5YhB9Y.js} +2 -2
- package/dist/chunks/{formatting-Blwy-f0W.js.map → formatting-Cg5YhB9Y.js.map} +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +2 -2
- package/dist/exports-module.d.ts +1 -1
- package/dist/exports-module.d.ts.map +1 -1
- package/dist/exports.cjs +1 -1
- package/dist/exports.js +2 -2
- package/dist/hooks/HookManager.d.ts +21 -0
- package/dist/hooks/HookManager.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +30 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +433 -20
- package/dist/index.js.map +1 -1
- package/dist/serializers/SerializerRegistry.d.ts +16 -0
- package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
- package/dist/serializers/index.d.ts +2 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/styling/StyleCache.d.ts +42 -0
- package/dist/styling/StyleCache.d.ts.map +1 -0
- package/dist/styling-module.d.ts +1 -1
- package/dist/styling-module.d.ts.map +1 -1
- package/dist/styling.cjs +1 -1
- package/dist/styling.js +3 -3
- package/dist/terminal/color-converter.d.ts +73 -0
- package/dist/terminal/color-converter.d.ts.map +1 -0
- package/dist/terminal/formatter.d.ts +20 -0
- package/dist/terminal/formatter.d.ts.map +1 -0
- package/dist/terminal/terminal-renderer.d.ts +20 -6
- package/dist/terminal/terminal-renderer.d.ts.map +1 -1
- package/dist/transports/ConsoleTransport.d.ts +9 -0
- package/dist/transports/ConsoleTransport.d.ts.map +1 -0
- package/dist/transports/FileTransport.d.ts +15 -0
- package/dist/transports/FileTransport.d.ts.map +1 -0
- package/dist/transports/HttpTransport.d.ts +16 -0
- package/dist/transports/HttpTransport.d.ts.map +1 -0
- package/dist/transports/TransportManager.d.ts +14 -0
- package/dist/transports/TransportManager.d.ts.map +1 -0
- package/dist/transports/index.d.ts +5 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/types/core.d.ts +55 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +36 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/serializers.d.ts +25 -0
- package/dist/types/serializers.d.ts.map +1 -0
- package/dist/types/transports.d.ts +47 -0
- package/dist/types/transports.d.ts.map +1 -0
- package/dist/utils/environment-detector.d.ts +10 -0
- package/dist/utils/environment-detector.d.ts.map +1 -1
- package/docs/API.md +227 -0
- package/package.json +1 -1
- package/packages/core/package.json +1 -1
- package/packages/styling/package.json +2 -2
- package/src/Logger.ts +403 -114
- package/src/ScopedLogger.ts +78 -318
- package/src/hooks/HookManager.ts +177 -0
- package/src/hooks/index.ts +1 -0
- package/src/index.ts +133 -3
- package/src/serializers/SerializerRegistry.ts +173 -0
- package/src/serializers/index.ts +1 -0
- package/src/styling/StyleCache.ts +131 -0
- package/src/terminal/color-converter.ts +315 -0
- package/src/terminal/formatter.ts +236 -0
- package/src/terminal/terminal-renderer.ts +74 -79
- package/src/transports/ConsoleTransport.ts +28 -0
- package/src/transports/FileTransport.ts +53 -0
- package/src/transports/HttpTransport.ts +56 -0
- package/src/transports/TransportManager.ts +130 -0
- package/src/transports/index.ts +4 -0
- package/src/types/core.ts +68 -0
- package/src/types/hooks.ts +45 -0
- package/src/types/index.ts +44 -1
- package/src/types/serializers.ts +30 -0
- package/src/types/transports.ts +52 -0
- package/src/utils/environment-detector.ts +23 -1
- package/dist/chunks/Logger-B7L-ujY4.js.map +0 -1
- package/dist/chunks/Logger-DzU_c5sX.js +0 -2
- package/dist/chunks/Logger-DzU_c5sX.js.map +0 -1
- package/dist/chunks/ScopedLogger-BY3-E8Ov.js +0 -2
- package/dist/chunks/ScopedLogger-BY3-E8Ov.js.map +0 -1
- package/dist/chunks/ScopedLogger-D-RbiFZn.js +0 -361
- package/dist/chunks/ScopedLogger-D-RbiFZn.js.map +0 -1
- package/dist/chunks/environment-Ba5kShbx.js +0 -4
- package/dist/chunks/environment-Ba5kShbx.js.map +0 -1
- package/dist/chunks/environment-TI2ByCPT.js.map +0 -1
package/src/types/index.ts
CHANGED
|
@@ -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
|
}
|