@mks2508/better-logger 2.1.0 → 3.0.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 (85) hide show
  1. package/.claude/settings.local.json +6 -1
  2. package/CHANGELOG.json +93 -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 +205 -58
  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-BCfx_yCK.js +2 -0
  11. package/dist/chunks/Logger-BCfx_yCK.js.map +1 -0
  12. package/dist/chunks/{Logger-B7L-ujY4.js → Logger-C126NTrD.js} +862 -96
  13. package/dist/chunks/Logger-C126NTrD.js.map +1 -0
  14. package/dist/exports-module.d.ts +1 -1
  15. package/dist/exports-module.d.ts.map +1 -1
  16. package/dist/exports.cjs +1 -1
  17. package/dist/exports.js +1 -1
  18. package/dist/hooks/HookManager.d.ts +21 -0
  19. package/dist/hooks/HookManager.d.ts.map +1 -0
  20. package/dist/hooks/index.d.ts +2 -0
  21. package/dist/hooks/index.d.ts.map +1 -0
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.ts +23 -3
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +240 -9
  27. package/dist/index.js.map +1 -1
  28. package/dist/serializers/SerializerRegistry.d.ts +16 -0
  29. package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
  30. package/dist/serializers/index.d.ts +2 -0
  31. package/dist/serializers/index.d.ts.map +1 -0
  32. package/dist/styling/StyleCache.d.ts +42 -0
  33. package/dist/styling/StyleCache.d.ts.map +1 -0
  34. package/dist/styling-module.d.ts +1 -1
  35. package/dist/styling-module.d.ts.map +1 -1
  36. package/dist/styling.cjs +1 -1
  37. package/dist/styling.js +2 -2
  38. package/dist/transports/ConsoleTransport.d.ts +9 -0
  39. package/dist/transports/ConsoleTransport.d.ts.map +1 -0
  40. package/dist/transports/FileTransport.d.ts +15 -0
  41. package/dist/transports/FileTransport.d.ts.map +1 -0
  42. package/dist/transports/HttpTransport.d.ts +16 -0
  43. package/dist/transports/HttpTransport.d.ts.map +1 -0
  44. package/dist/transports/TransportManager.d.ts +14 -0
  45. package/dist/transports/TransportManager.d.ts.map +1 -0
  46. package/dist/transports/index.d.ts +5 -0
  47. package/dist/transports/index.d.ts.map +1 -0
  48. package/dist/types/core.d.ts +38 -0
  49. package/dist/types/core.d.ts.map +1 -1
  50. package/dist/types/hooks.d.ts +36 -0
  51. package/dist/types/hooks.d.ts.map +1 -0
  52. package/dist/types/index.d.ts +5 -1
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/serializers.d.ts +25 -0
  55. package/dist/types/serializers.d.ts.map +1 -0
  56. package/dist/types/transports.d.ts +47 -0
  57. package/dist/types/transports.d.ts.map +1 -0
  58. package/docs/API.md +227 -0
  59. package/package.json +1 -1
  60. package/packages/core/package.json +1 -1
  61. package/src/Logger.ts +391 -102
  62. package/src/ScopedLogger.ts +78 -318
  63. package/src/hooks/HookManager.ts +177 -0
  64. package/src/hooks/index.ts +1 -0
  65. package/src/index.ts +77 -2
  66. package/src/serializers/SerializerRegistry.ts +173 -0
  67. package/src/serializers/index.ts +1 -0
  68. package/src/styling/StyleCache.ts +131 -0
  69. package/src/transports/ConsoleTransport.ts +28 -0
  70. package/src/transports/FileTransport.ts +53 -0
  71. package/src/transports/HttpTransport.ts +56 -0
  72. package/src/transports/TransportManager.ts +130 -0
  73. package/src/transports/index.ts +4 -0
  74. package/src/types/core.ts +46 -0
  75. package/src/types/hooks.ts +45 -0
  76. package/src/types/index.ts +39 -1
  77. package/src/types/serializers.ts +30 -0
  78. package/src/types/transports.ts +52 -0
  79. package/dist/chunks/Logger-B7L-ujY4.js.map +0 -1
  80. package/dist/chunks/Logger-DzU_c5sX.js +0 -2
  81. package/dist/chunks/Logger-DzU_c5sX.js.map +0 -1
  82. package/dist/chunks/ScopedLogger-BY3-E8Ov.js +0 -2
  83. package/dist/chunks/ScopedLogger-BY3-E8Ov.js.map +0 -1
  84. package/dist/chunks/ScopedLogger-D-RbiFZn.js +0 -361
  85. package/dist/chunks/ScopedLogger-D-RbiFZn.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ export { TransportManager } from './TransportManager.js';
2
+ export { ConsoleTransport } from './ConsoleTransport.js';
3
+ export { FileTransport, type FileTransportOptions } from './FileTransport.js';
4
+ export { HttpTransport, type HttpTransportOptions } from './HttpTransport.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -231,4 +231,42 @@ export interface LogStyles {
231
231
  backdrop?: string;
232
232
  transparency?: number;
233
233
  }
234
+ export interface TimerResult {
235
+ label: string;
236
+ duration: number;
237
+ startTime: number;
238
+ endTime: number;
239
+ }
240
+ export interface IScopedLogger {
241
+ debug(...args: any[]): void;
242
+ info(...args: any[]): void;
243
+ warn(...args: any[]): void;
244
+ error(...args: any[]): void;
245
+ success(...args: any[]): void;
246
+ critical(...args: any[]): void;
247
+ trace(...args: any[]): void;
248
+ badges(badges: string[]): this;
249
+ badge(badge: string): this;
250
+ clearBadges(): this;
251
+ time(label: string): void;
252
+ timeEnd(label: string): number | undefined;
253
+ style(presetName: string): this;
254
+ }
255
+ export interface IAPILogger extends IScopedLogger {
256
+ slow(message: string, duration?: number): void;
257
+ rateLimit(message: string): void;
258
+ auth(message: string): void;
259
+ deprecated(message: string): void;
260
+ }
261
+ export interface IComponentLogger extends IScopedLogger {
262
+ lifecycle(event: string, message?: string): void;
263
+ stateChange(from: string, to: string, data?: any): void;
264
+ propsChange(changes: Record<string, any>): void;
265
+ }
266
+ export interface Bindings {
267
+ scope?: string;
268
+ badges?: string[];
269
+ type?: 'scope' | 'api' | 'component';
270
+ context?: string[];
271
+ }
234
272
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { LogLevel, StackInfo } from './core.js';
2
+ export interface HookLogEntry {
3
+ level: LogLevel;
4
+ message: string;
5
+ args: any[];
6
+ timestamp: string;
7
+ prefix?: string;
8
+ stackInfo?: StackInfo;
9
+ correlationId?: string;
10
+ context?: Record<string, any>;
11
+ [key: string]: any;
12
+ }
13
+ export type HookEvent = 'beforeLog' | 'afterLog' | 'onError';
14
+ export type HookCallback = (entry: HookLogEntry) => void | HookLogEntry | Promise<void | HookLogEntry>;
15
+ export type MiddlewareFn = (entry: HookLogEntry, next: () => void | Promise<void>) => void | Promise<void>;
16
+ export interface HookRegistration {
17
+ id: string;
18
+ event: HookEvent;
19
+ callback: HookCallback;
20
+ priority: number;
21
+ once: boolean;
22
+ }
23
+ export interface MiddlewareRegistration {
24
+ id: string;
25
+ fn: MiddlewareFn;
26
+ priority: number;
27
+ }
28
+ export interface IHookManager {
29
+ on(event: HookEvent, callback: HookCallback, priority?: number): () => void;
30
+ once(event: HookEvent, callback: HookCallback, priority?: number): () => void;
31
+ off(event: HookEvent, callback: HookCallback): boolean;
32
+ use(middleware: MiddlewareFn, priority?: number): () => void;
33
+ emit(event: HookEvent, entry: HookLogEntry): Promise<HookLogEntry>;
34
+ process(entry: HookLogEntry): Promise<HookLogEntry>;
35
+ }
36
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;AAEvG,MAAM,MAAM,YAAY,GAAG,CACvB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAC/B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IAC5E,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IAC9E,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC;IACvD,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACvD"}
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * @fileoverview Type definitions exports for Advanced Logger
3
3
  */
4
- export type { LogLevel, Verbosity, ThemeVariant, DevToolsTheme, BannerType, ExportFormat, OutputFormat, LoggerConfig, StackInfo, TimerEntry, StyleOptions, AdaptiveColors, SpacingType, LogLayout, LogPartConfig, LogStyles, } from './core.js';
4
+ export type { LogLevel, Verbosity, ThemeVariant, DevToolsTheme, BannerType, ExportFormat, OutputFormat, LoggerConfig, StackInfo, TimerEntry, TimerResult, StyleOptions, AdaptiveColors, SpacingType, LogLayout, LogPartConfig, LogStyles, IScopedLogger, IAPILogger, IComponentLogger, Bindings, } from './core.js';
5
5
  export { LOG_LEVELS } from './core.js';
6
6
  export type { LogMetadata, ILogHandler, LogEntry, ExportFilters, ExportOptions, ExportResult, BufferStats, } from './handlers.js';
7
+ export type { SerializerFn, SerializerContext, SerializerEntry, SerializerConfig, ISerializerRegistry, } from './serializers.js';
8
+ export type { HookLogEntry, HookEvent, HookCallback, MiddlewareFn, HookRegistration, MiddlewareRegistration, IHookManager, } from './hooks.js';
9
+ export type { TransportRecord, TransportOptions, TransportTarget, ITransport, IBufferedTransport, ITransportManager, } from './transports.js';
10
+ export type { StyleCacheConfig } from '../styling/StyleCache.js';
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,GACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,YAAY,EACR,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,GACd,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,QAAQ,GACX,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,YAAY,EACR,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,GACd,MAAM,eAAe,CAAC;AAGvB,YAAY,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACR,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACf,MAAM,YAAY,CAAC;AAGpB,YAAY,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,25 @@
1
+ export type SerializerFn<T = any> = (value: T, context: SerializerContext) => any;
2
+ export interface SerializerContext {
3
+ depth: number;
4
+ maxDepth: number;
5
+ path: string[];
6
+ seen: WeakSet<object>;
7
+ }
8
+ export interface SerializerEntry<T = any> {
9
+ type: new (...args: any[]) => T;
10
+ serializer: SerializerFn<T>;
11
+ priority: number;
12
+ }
13
+ export interface SerializerConfig {
14
+ maxDepth?: number;
15
+ circular?: 'error' | 'skip' | 'placeholder';
16
+ preserveUndefined?: boolean;
17
+ }
18
+ export interface ISerializerRegistry {
19
+ add<T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number): void;
20
+ remove<T>(type: new (...args: any[]) => T): boolean;
21
+ has<T>(type: new (...args: any[]) => T): boolean;
22
+ serialize(value: any, config?: SerializerConfig): any;
23
+ getAll(): SerializerEntry[];
24
+ }
25
+ //# sourceMappingURL=serializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../src/types/serializers.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,GAAG,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACpC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;IAC5C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9F,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC;IACpD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC;IACjD,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,GAAG,CAAC;IACtD,MAAM,IAAI,eAAe,EAAE,CAAC;CAC/B"}
@@ -0,0 +1,47 @@
1
+ import { LogLevel } from './core.js';
2
+ export interface TransportRecord {
3
+ level: LogLevel;
4
+ levelValue: number;
5
+ time: number;
6
+ msg: string;
7
+ prefix?: string;
8
+ location?: {
9
+ file: string;
10
+ line: number;
11
+ column: number;
12
+ function?: string;
13
+ };
14
+ [key: string]: any;
15
+ }
16
+ export interface TransportOptions {
17
+ level?: LogLevel;
18
+ transform?: (record: TransportRecord) => TransportRecord | null;
19
+ batchSize?: number;
20
+ flushInterval?: number;
21
+ [key: string]: any;
22
+ }
23
+ export interface TransportTarget {
24
+ target: string | ITransport;
25
+ options?: TransportOptions;
26
+ level?: LogLevel;
27
+ }
28
+ export interface ITransport {
29
+ readonly name: string;
30
+ write(record: TransportRecord): void | Promise<void>;
31
+ flush?(): void | Promise<void>;
32
+ close?(): void | Promise<void>;
33
+ isReady?(): boolean;
34
+ }
35
+ export interface IBufferedTransport extends ITransport {
36
+ readonly bufferSize: number;
37
+ readonly maxBufferSize: number;
38
+ flush(): Promise<void>;
39
+ }
40
+ export interface ITransportManager {
41
+ add(target: TransportTarget): string;
42
+ remove(id: string): boolean;
43
+ write(record: TransportRecord): Promise<void>;
44
+ flush(): Promise<void>;
45
+ close(): Promise<void>;
46
+ }
47
+ //# sourceMappingURL=transports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../src/types/transports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,GAAG,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
package/docs/API.md CHANGED
@@ -11,6 +11,10 @@ Complete API documentation for Better Logger with detailed method signatures, pa
11
11
  ## Table of Contents
12
12
 
13
13
  - [Core Logger](#core-logger)
14
+ - [Enterprise Features (v3.0.0)](#enterprise-features-v300)
15
+ - [Custom Serializers](#custom-serializers)
16
+ - [Hooks & Middleware](#hooks--middleware)
17
+ - [Transports](#transports)
14
18
  - [Style Builder](#style-builder)
15
19
  - [CLI Interface](#cli-interface)
16
20
  - [Export & Remote](#export--remote)
@@ -191,6 +195,229 @@ logger.addHandler({
191
195
 
192
196
  ---
193
197
 
198
+ ## 🔄 Enterprise Features (v3.0.0)
199
+
200
+ ### Custom Serializers
201
+
202
+ Transform objects before logging with type-based serializers.
203
+
204
+ #### `logger.addSerializer(type, serializer, priority?)`
205
+ Register a serializer for a specific type.
206
+
207
+ ```typescript
208
+ // Serialize Error objects
209
+ logger.addSerializer(Error, (err) => ({
210
+ name: err.name,
211
+ message: err.message,
212
+ stack: err.stack?.split('\n').slice(0, 5)
213
+ }));
214
+
215
+ // Serialize User objects (omit sensitive data)
216
+ logger.addSerializer(User, (user) => ({
217
+ id: user.id,
218
+ email: user.email
219
+ // password automatically omitted
220
+ }), 100); // higher priority
221
+
222
+ // Now objects are serialized automatically
223
+ logger.error('Failed:', new Error('Connection timeout'));
224
+ logger.info('User:', currentUser);
225
+ ```
226
+
227
+ #### `logger.removeSerializer(type)`
228
+ Remove a registered serializer.
229
+
230
+ ```typescript
231
+ logger.removeSerializer(Error);
232
+ ```
233
+
234
+ #### `logger.getSerializerRegistry()`
235
+ Access the SerializerRegistry for advanced operations.
236
+
237
+ ```typescript
238
+ const registry = logger.getSerializerRegistry();
239
+ const serialized = registry.serialize(complexObject);
240
+ ```
241
+
242
+ ### Hooks & Middleware
243
+
244
+ Intercept and modify log entries with hooks and middleware.
245
+
246
+ #### `logger.on(event, callback, priority?)`
247
+ Register a hook for an event. Returns unsubscribe function.
248
+
249
+ ```typescript
250
+ // Add correlation ID to all logs
251
+ const unsubscribe = logger.on('beforeLog', (entry) => {
252
+ entry.correlationId = getCorrelationId();
253
+ return entry; // Return modified entry
254
+ });
255
+
256
+ // Track metrics after logging
257
+ logger.on('afterLog', (entry) => {
258
+ metrics.increment(`logs.${entry.level}`);
259
+ });
260
+
261
+ // Handle errors
262
+ logger.on('onError', (entry) => {
263
+ alertSystem.notify(entry.message);
264
+ });
265
+
266
+ // Unsubscribe when done
267
+ unsubscribe();
268
+ ```
269
+
270
+ #### `logger.once(event, callback, priority?)`
271
+ Register a hook that fires only once.
272
+
273
+ ```typescript
274
+ logger.once('beforeLog', (entry) => {
275
+ console.log('First log entry:', entry.message);
276
+ });
277
+ ```
278
+
279
+ #### `logger.off(event, callback)`
280
+ Remove a registered hook.
281
+
282
+ ```typescript
283
+ const myHook = (entry) => { /* ... */ };
284
+ logger.on('beforeLog', myHook);
285
+ // Later...
286
+ logger.off('beforeLog', myHook);
287
+ ```
288
+
289
+ #### `logger.use(middleware, priority?)`
290
+ Add middleware to the processing pipeline.
291
+
292
+ ```typescript
293
+ // Add request context
294
+ logger.use((entry, next) => {
295
+ entry.requestId = asyncLocalStorage.getStore()?.requestId;
296
+ next(); // Continue to next middleware
297
+ });
298
+
299
+ // Redact sensitive data
300
+ logger.use((entry, next) => {
301
+ entry.message = entry.message.replace(/password=\S+/g, 'password=***');
302
+ next();
303
+ });
304
+
305
+ // Middleware with priority (higher = runs first)
306
+ logger.use((entry, next) => {
307
+ entry.timestamp = new Date().toISOString();
308
+ next();
309
+ }, 100);
310
+ ```
311
+
312
+ #### Hook Events
313
+
314
+ | Event | Description | Can Modify Entry |
315
+ |-------|-------------|------------------|
316
+ | `beforeLog` | Before log is processed | Yes |
317
+ | `afterLog` | After log is output | No |
318
+ | `onError` | When an error occurs | No |
319
+
320
+ ### Transports
321
+
322
+ Send logs to multiple destinations with the transport system.
323
+
324
+ #### `logger.addTransport(target)`
325
+ Add a transport destination. Returns transport ID.
326
+
327
+ ```typescript
328
+ // Built-in file transport (Node.js)
329
+ const fileId = logger.addTransport({
330
+ target: 'file',
331
+ options: { destination: '/var/log/app.log' }
332
+ });
333
+
334
+ // Built-in HTTP transport with batching
335
+ const httpId = logger.addTransport({
336
+ target: 'http',
337
+ options: {
338
+ url: 'https://logs.example.com/ingest',
339
+ headers: { 'Authorization': 'Bearer token' },
340
+ batchSize: 100, // Send in batches of 100
341
+ flushInterval: 5000 // Or every 5 seconds
342
+ },
343
+ level: 'warn' // Only warn and above
344
+ });
345
+
346
+ // Built-in console transport
347
+ logger.addTransport({
348
+ target: 'console'
349
+ });
350
+
351
+ // Custom transport
352
+ logger.addTransport({
353
+ target: {
354
+ name: 'elasticsearch',
355
+ write: async (record) => {
356
+ await esClient.index({
357
+ index: 'logs',
358
+ body: record
359
+ });
360
+ },
361
+ flush: async () => {
362
+ await esClient.indices.refresh({ index: 'logs' });
363
+ },
364
+ close: async () => {
365
+ await esClient.close();
366
+ }
367
+ }
368
+ });
369
+ ```
370
+
371
+ #### `logger.removeTransport(id)`
372
+ Remove a transport by ID.
373
+
374
+ ```typescript
375
+ logger.removeTransport(fileId);
376
+ ```
377
+
378
+ #### `logger.flushTransports()`
379
+ Force flush all transport buffers.
380
+
381
+ ```typescript
382
+ await logger.flushTransports();
383
+ ```
384
+
385
+ #### `logger.closeTransports()`
386
+ Close all transports (flush + cleanup).
387
+
388
+ ```typescript
389
+ // Before application shutdown
390
+ await logger.closeTransports();
391
+ ```
392
+
393
+ #### Transport Record Structure
394
+
395
+ ```typescript
396
+ interface TransportRecord {
397
+ level: LogLevel;
398
+ levelValue: number; // 0-4
399
+ time: number; // Unix timestamp
400
+ msg: string;
401
+ prefix?: string;
402
+ location?: {
403
+ file: string;
404
+ line: number;
405
+ column: number;
406
+ function?: string;
407
+ };
408
+ }
409
+ ```
410
+
411
+ #### Built-in Transports
412
+
413
+ | Transport | Description | Options |
414
+ |-----------|-------------|---------|
415
+ | `console` | Console output | - |
416
+ | `file` | File logging (Node.js) | `destination`, `batchSize`, `flushInterval` |
417
+ | `http` | HTTP/HTTPS endpoint | `url`, `headers`, `batchSize`, `flushInterval` |
418
+
419
+ ---
420
+
194
421
  ## 🎨 Style Builder
195
422
 
196
423
  Create custom console styles programmatically.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mks2508/better-logger",
3
- "version": "2.1.0",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "description": "Logger avanzado para consola con estilos CSS, temas adaptativos, badges automáticos, SVG, animaciones, CLI integrado y soporte dual browser/terminal con colores ANSI",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mks2508/better-logger-core",
3
- "version": "0.14.0-alpha.1",
3
+ "version": "0.15.0-alpha.1",
4
4
  "type": "module",
5
5
  "description": "Universal core logging functionality for Better Logger - Works in both Node.js and browser environments",
6
6
  "main": "dist/index.cjs",