logixia 1.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.
@@ -0,0 +1,575 @@
1
+ import { AsyncLocalStorage } from "async_hooks";
2
+ import * as _nestjs_common0 from "@nestjs/common";
3
+ import { InjectionToken, LoggerService, MiddlewareConsumer, ModuleMetadata, NestModule, OptionalFactoryDependency, Type } from "@nestjs/common";
4
+
5
+ //#region src/types/http.types.d.ts
6
+ /**
7
+ * HTTP-related type definitions for Logitron
8
+ */
9
+ interface HttpRequest {
10
+ method: string;
11
+ url: string;
12
+ headers: Record<string, string | string[]>;
13
+ query?: Record<string, any>;
14
+ params?: Record<string, any>;
15
+ body?: any;
16
+ ip?: string;
17
+ userAgent?: string;
18
+ timestamp: number;
19
+ }
20
+ interface HttpResponse {
21
+ statusCode: number;
22
+ headers: Record<string, string | string[]>;
23
+ body?: any;
24
+ timestamp: number;
25
+ contentLength?: number;
26
+ }
27
+ interface HttpError extends Error {
28
+ statusCode?: number;
29
+ code?: string;
30
+ details?: Record<string, any>;
31
+ }
32
+ interface RequestTiming {
33
+ start: number;
34
+ end?: number;
35
+ duration?: number;
36
+ phases?: {
37
+ dns?: number;
38
+ tcp?: number;
39
+ tls?: number;
40
+ request?: number;
41
+ response?: number;
42
+ };
43
+ }
44
+ interface RequestMetrics {
45
+ requestId: string;
46
+ method: string;
47
+ url: string;
48
+ statusCode?: number;
49
+ duration?: number;
50
+ contentLength?: number;
51
+ userAgent?: string;
52
+ ip?: string;
53
+ timestamp: number;
54
+ }
55
+ //#endregion
56
+ //#region src/types/index.d.ts
57
+ declare const LogLevel: {
58
+ readonly ERROR: "error";
59
+ readonly WARN: "warn";
60
+ readonly INFO: "info";
61
+ readonly DEBUG: "debug";
62
+ readonly TRACE: "trace";
63
+ readonly VERBOSE: "verbose";
64
+ };
65
+ type LogLevel = typeof LogLevel[keyof typeof LogLevel];
66
+ type LogLevelString = LogLevel | (string & {});
67
+ type LogColor = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | 'grey' | 'brightRed' | 'brightGreen' | 'brightYellow' | 'brightBlue' | 'brightMagenta' | 'brightCyan' | 'brightWhite';
68
+ type LogFieldKey = 'timestamp' | 'level' | 'appName' | 'service' | 'traceId' | 'message' | 'payload' | 'timeTaken' | 'context' | 'requestId' | 'userId' | 'sessionId' | 'environment';
69
+ type Environment = 'development' | 'production';
70
+ interface TraceIdExtractorConfig {
71
+ header?: string | string[];
72
+ query?: string | string[];
73
+ body?: string | string[];
74
+ params?: string | string[];
75
+ }
76
+ interface TraceIdConfig {
77
+ enabled: boolean;
78
+ generator?: () => string;
79
+ contextKey?: string;
80
+ extractor?: TraceIdExtractorConfig;
81
+ }
82
+ interface LoggerConfig<TLevels extends Record<string, number> = Record<string, number>> {
83
+ appName?: string;
84
+ environment?: Environment;
85
+ traceId?: boolean | TraceIdConfig;
86
+ format?: {
87
+ timestamp?: boolean;
88
+ colorize?: boolean;
89
+ json?: boolean;
90
+ };
91
+ silent?: boolean;
92
+ levelOptions?: {
93
+ level?: keyof TLevels | LogLevelString;
94
+ levels?: TLevels;
95
+ colors?: Record<string, LogColor>;
96
+ } | undefined;
97
+ fields?: Partial<Record<LogFieldKey, string | boolean>>;
98
+ [key: string]: any;
99
+ }
100
+ interface IBaseLogger {
101
+ error(message: string, data?: Record<string, any>): Promise<void>;
102
+ error(error: Error, data?: Record<string, any>): Promise<void>;
103
+ warn(message: string, data?: Record<string, any>): Promise<void>;
104
+ info(message: string, data?: Record<string, any>): Promise<void>;
105
+ debug(message: string, data?: Record<string, any>): Promise<void>;
106
+ trace(message: string, data?: Record<string, any>): Promise<void>;
107
+ verbose(message: string, data?: Record<string, any>): Promise<void>;
108
+ logLevel(level: string, message: string, data?: Record<string, any>): Promise<void>;
109
+ time(label: string): void;
110
+ timeEnd(label: string): Promise<number | undefined>;
111
+ timeAsync<T>(label: string, fn: () => Promise<T>): Promise<T>;
112
+ setLevel(level: LogLevel | string): void;
113
+ getLevel(): string;
114
+ setContext(context: string): void;
115
+ getContext(): string | undefined;
116
+ child(context: string, data?: Record<string, any>): ILogger;
117
+ close(): Promise<void>;
118
+ }
119
+ type CustomLevelMethods<T extends Record<string, number>> = { [K in keyof T]: (message: string, data?: Record<string, any>) => Promise<void> };
120
+ type ILogger<TLevels extends Record<string, number> = {}> = IBaseLogger & CustomLevelMethods<TLevels>;
121
+ interface ILoggerDefault extends IBaseLogger {}
122
+ type LoggerWithLevels<T extends LoggerConfig<any>> = T['levelOptions'] extends {
123
+ levels: infer L;
124
+ } ? L extends Record<string, number> ? ILogger<L> : ILoggerDefault : ILoggerDefault;
125
+ type ExtractLevels<T> = T extends LoggerConfig<infer L> ? L : Record<string, number>;
126
+ interface LogEntry {
127
+ timestamp: string;
128
+ level: string;
129
+ appName: string;
130
+ traceId?: string;
131
+ message: string;
132
+ payload?: Record<string, any>;
133
+ context?: string;
134
+ error?: Error;
135
+ }
136
+ interface ErrorSerializationOptions {
137
+ includeStack?: boolean;
138
+ maxDepth?: number;
139
+ excludeFields?: string[];
140
+ }
141
+ interface TimingEntry {
142
+ label: string;
143
+ startTime: number;
144
+ endTime?: number;
145
+ duration?: number;
146
+ }
147
+ interface ContextData {
148
+ [key: string]: any;
149
+ }
150
+ interface ILogFormatter {
151
+ format(entry: LogEntry): string;
152
+ }
153
+ interface RequestContext {
154
+ requestId: string;
155
+ traceId?: string;
156
+ startTime: number;
157
+ endTime?: number;
158
+ duration?: number;
159
+ request: HttpRequest;
160
+ response?: HttpResponse;
161
+ error?: Error;
162
+ userId?: string;
163
+ sessionId?: string;
164
+ userAgent?: string;
165
+ ip?: string;
166
+ }
167
+ declare const DEFAULT_LOG_LEVELS: {
168
+ error: number;
169
+ warn: number;
170
+ info: number;
171
+ debug: number;
172
+ trace: number;
173
+ verbose: number;
174
+ };
175
+ declare const DEFAULT_LOG_COLORS: {
176
+ error: string;
177
+ warn: string;
178
+ info: string;
179
+ debug: string;
180
+ trace: string;
181
+ verbose: string;
182
+ };
183
+ //#endregion
184
+ //#region src/core/logitron-logger.d.ts
185
+ declare class LogixiaLogger<TConfig extends LoggerConfig<any> = LoggerConfig> implements ILoggerDefault {
186
+ [K: string]: any;
187
+ private config;
188
+ private context?;
189
+ private timers;
190
+ private contextData;
191
+ constructor(config: TConfig, context?: string);
192
+ /**
193
+ * Create dynamic methods for custom levels
194
+ */
195
+ private createCustomLevelMethods;
196
+ /**
197
+ * Error logging with overloads
198
+ */
199
+ error(messageOrError: string | Error, data?: Record<string, any>): Promise<void>;
200
+ warn(message: string, data?: Record<string, any>): Promise<void>;
201
+ info(message: string, data?: Record<string, any>): Promise<void>;
202
+ debug(message: string, data?: Record<string, any>): Promise<void>;
203
+ trace(message: string, data?: Record<string, any>): Promise<void>;
204
+ verbose(message: string, data?: Record<string, any>): Promise<void>;
205
+ /**
206
+ * Log with custom level
207
+ */
208
+ logLevel(level: string, message: string, data?: Record<string, any>): Promise<void>;
209
+ /**
210
+ * Timing methods
211
+ */
212
+ time(label: string): void;
213
+ timeEnd(label: string): Promise<number | undefined>;
214
+ timeAsync<T>(label: string, fn: () => Promise<T>): Promise<T>;
215
+ /**
216
+ * Level and context management
217
+ */
218
+ setLevel(level: LogLevelString): void;
219
+ getLevel(): LogLevelString;
220
+ setContext(context: string): void;
221
+ getContext(): string | undefined;
222
+ /**
223
+ * Create child logger
224
+ */
225
+ child(context: string, data?: Record<string, any>): ILogger;
226
+ /**
227
+ * Close logger and cleanup resources
228
+ */
229
+ close(): Promise<void>;
230
+ /**
231
+ * Core logging method
232
+ */
233
+ private log;
234
+ /**
235
+ * Format log entry according to configuration
236
+ */
237
+ private formatLog;
238
+ /**
239
+ * Colorize text based on color name
240
+ */
241
+ private colorize;
242
+ private shouldLog;
243
+ /**
244
+ * Output log to console or other destinations
245
+ */
246
+ private output;
247
+ }
248
+ /**
249
+ * Factory function to create a typed logger with custom levels
250
+ */
251
+ declare function createLogger$1<T extends LoggerConfig<any>>(config: T, context?: string): LoggerWithLevels<T>;
252
+ //#endregion
253
+ //#region src/core/logitron-nestjs.service.d.ts
254
+ declare class LogixiaLoggerService implements LoggerService {
255
+ private logger;
256
+ private context?;
257
+ constructor(config?: LoggerConfig);
258
+ /**
259
+ * NestJS LoggerService interface implementation
260
+ */
261
+ log(message: any, context?: string): void;
262
+ error(message: any, trace?: string, context?: string): void;
263
+ warn(message: any, context?: string): void;
264
+ debug(message: any, context?: string): void;
265
+ verbose(message: any, context?: string): void;
266
+ /**
267
+ * Extended Logitron methods
268
+ */
269
+ info(message: string, data?: Record<string, any>): Promise<void>;
270
+ trace(message: string, data?: Record<string, any>): Promise<void>;
271
+ logLevel(level: string, message: string, data?: Record<string, any>): Promise<void>;
272
+ /**
273
+ * Timing methods
274
+ */
275
+ time(label: string): void;
276
+ timeEnd(label: string): Promise<number | undefined>;
277
+ timeAsync<T>(label: string, fn: () => Promise<T>): Promise<T>;
278
+ /**
279
+ * Context and level management
280
+ */
281
+ setContext(context: string): void;
282
+ getContext(): string | undefined;
283
+ setLevel(level: LogLevelString): void;
284
+ getLevel(): LogLevelString;
285
+ /**
286
+ * Create child logger
287
+ */
288
+ child(context: string, data?: Record<string, any>): LogixiaLoggerService;
289
+ /**
290
+ * Get current trace ID
291
+ */
292
+ getCurrentTraceId(): string | undefined;
293
+ /**
294
+ * Close logger
295
+ */
296
+ close(): Promise<void>;
297
+ /**
298
+ * Private helper methods
299
+ */
300
+ private setContextIfProvided;
301
+ private formatMessage;
302
+ /**
303
+ * Static factory method for easy instantiation
304
+ */
305
+ static create(config?: LoggerConfig): LogixiaLoggerService;
306
+ /**
307
+ * Get the underlying Logitron logger instance
308
+ */
309
+ getLogger(): LogixiaLogger;
310
+ }
311
+ //#endregion
312
+ //#region src/core/logitron-logger.module.d.ts
313
+ declare const LOGIXIA_LOGGER_CONFIG = "LOGIXIA_LOGGER_CONFIG";
314
+ declare const LOGIXIA_LOGGER_PREFIX = "LOGIXIA_LOGGER_";
315
+ interface LogixiaAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
316
+ useExisting?: Type<LogixiaOptionsFactory>;
317
+ useClass?: Type<LogixiaOptionsFactory>;
318
+ useFactory?: (...args: any[]) => Promise<Partial<LoggerConfig>> | Partial<LoggerConfig>;
319
+ inject?: Array<InjectionToken | OptionalFactoryDependency>;
320
+ }
321
+ interface LogixiaOptionsFactory {
322
+ createLogixiaOptions(): Promise<Partial<LoggerConfig>> | Partial<LoggerConfig>;
323
+ }
324
+ /**
325
+ * Logixia Logger Module for NestJS dependency injection
326
+ */
327
+ declare class LogixiaLoggerModule implements NestModule {
328
+ private config;
329
+ private static loggerConfig;
330
+ configure(consumer: MiddlewareConsumer): void;
331
+ /**
332
+ * Configure the module with synchronous options
333
+ */
334
+ static forRoot(config?: Partial<LoggerConfig>): {
335
+ module: typeof LogixiaLoggerModule;
336
+ providers: ({
337
+ provide: string;
338
+ useValue: Partial<LoggerConfig<Record<string, number>>>;
339
+ useFactory?: never;
340
+ inject?: never;
341
+ } | {
342
+ provide: typeof LogixiaLoggerService;
343
+ useFactory: (loggerConfig: Partial<LoggerConfig>) => LogixiaLoggerService;
344
+ inject: string[];
345
+ useValue?: never;
346
+ })[];
347
+ exports: (string | typeof LogixiaLoggerService)[];
348
+ global: boolean;
349
+ };
350
+ /**
351
+ * Configure the module with asynchronous options
352
+ */
353
+ static forRootAsync(options: LogixiaAsyncOptions): {
354
+ module: typeof LogixiaLoggerModule;
355
+ imports: (Type<any> | _nestjs_common0.DynamicModule | Promise<_nestjs_common0.DynamicModule> | _nestjs_common0.ForwardReference<any>)[];
356
+ providers: ({
357
+ provide: string;
358
+ useFactory: (...args: any[]) => Promise<Partial<LoggerConfig>> | Partial<LoggerConfig>;
359
+ inject: (InjectionToken | OptionalFactoryDependency)[];
360
+ } | {
361
+ provide: string;
362
+ useFactory: (optionsFactory: LogixiaOptionsFactory) => Promise<Partial<LoggerConfig<Record<string, number>>>>;
363
+ inject: Type<LogixiaOptionsFactory>[];
364
+ } | {
365
+ provide: Type<LogixiaOptionsFactory>;
366
+ useClass: Type<LogixiaOptionsFactory>;
367
+ } | {
368
+ provide: typeof LogixiaLoggerService;
369
+ useFactory: (loggerConfig: Partial<LoggerConfig>) => LogixiaLoggerService;
370
+ inject: string[];
371
+ })[];
372
+ exports: (string | typeof LogixiaLoggerService)[];
373
+ global: boolean;
374
+ };
375
+ /**
376
+ * Create feature-specific logger instances
377
+ */
378
+ static forFeature(context: string): {
379
+ module: typeof LogixiaLoggerModule;
380
+ providers: {
381
+ provide: string;
382
+ useFactory: (baseLogger: LogixiaLoggerService) => LogixiaLoggerService;
383
+ inject: (typeof LogixiaLoggerService)[];
384
+ }[];
385
+ exports: string[];
386
+ };
387
+ private static createAsyncProviders;
388
+ private static createAsyncOptionsProvider;
389
+ }
390
+ //#endregion
391
+ //#region src/formatters/json.formatter.d.ts
392
+ declare class JsonFormatter implements ILogFormatter {
393
+ private includeTimestamp;
394
+ private includeLevel;
395
+ private includeAppName;
396
+ private includeTraceId;
397
+ private includeContext;
398
+ private prettyPrint;
399
+ constructor(options?: {
400
+ includeTimestamp?: boolean;
401
+ includeLevel?: boolean;
402
+ includeAppName?: boolean;
403
+ includeTraceId?: boolean;
404
+ includeContext?: boolean;
405
+ prettyPrint?: boolean;
406
+ });
407
+ format(entry: LogEntry): string;
408
+ private serializePayload;
409
+ }
410
+ //#endregion
411
+ //#region src/formatters/text.formatter.d.ts
412
+ declare class TextFormatter implements ILogFormatter {
413
+ private colorize;
414
+ private includeTimestamp;
415
+ private includeAppName;
416
+ private includeTraceId;
417
+ private includeContext;
418
+ private timestampFormat;
419
+ private colors;
420
+ constructor(options?: {
421
+ colorize?: boolean;
422
+ includeTimestamp?: boolean;
423
+ includeAppName?: boolean;
424
+ includeTraceId?: boolean;
425
+ includeContext?: boolean;
426
+ timestampFormat?: 'iso' | 'locale' | 'short';
427
+ colors?: Record<string, string>;
428
+ });
429
+ format(entry: LogEntry): string;
430
+ private formatTimestamp;
431
+ private formatPayload;
432
+ /**
433
+ * Create a formatter with preset configurations
434
+ */
435
+ static createSimple(): TextFormatter;
436
+ static createDetailed(): TextFormatter;
437
+ static createMinimal(): TextFormatter;
438
+ }
439
+ //#endregion
440
+ //#region src/utils/trace.utils.d.ts
441
+ declare const traceStorage: AsyncLocalStorage<{
442
+ [key: string]: any;
443
+ traceId: string;
444
+ }>;
445
+ /**
446
+ * Default trace ID generator using UUID v4
447
+ */
448
+ declare function generateTraceId(): string;
449
+ /**
450
+ * Get current trace ID from async context
451
+ */
452
+ declare function getCurrentTraceId(): string | undefined;
453
+ /**
454
+ * Set trace ID in async context
455
+ */
456
+ declare function setTraceId(traceId: string, data?: Record<string, any>): void;
457
+ /**
458
+ * Run function with trace ID context
459
+ */
460
+ declare function runWithTraceId<T>(traceId: string, fn: () => T, data?: Record<string, any>): T;
461
+ /**
462
+ * Extract trace ID from request using configuration
463
+ */
464
+ declare function extractTraceId(request: any, config: TraceIdExtractorConfig): string | undefined;
465
+ /**
466
+ * Create trace ID middleware for Express/NestJS
467
+ */
468
+ declare function createTraceMiddleware(config: TraceIdConfig): (req: any, res: any, next: any) => void;
469
+ //#endregion
470
+ //#region src/utils/error.utils.d.ts
471
+ /**
472
+ * Serialize error object to JSON-safe format
473
+ */
474
+ declare function serializeError(error: Error, options?: ErrorSerializationOptions): Record<string, any>;
475
+ /**
476
+ * Check if value is an Error instance
477
+ */
478
+ declare function isError(value: any): value is Error;
479
+ /**
480
+ * Create error from various input types
481
+ */
482
+ declare function normalizeError(error: any): Error;
483
+ //#endregion
484
+ //#region src/index.d.ts
485
+ /**
486
+ * Default configuration for Logitron logger
487
+ */
488
+ declare const DEFAULT_CONFIG: {
489
+ appName: string;
490
+ environment: Environment;
491
+ traceId: boolean;
492
+ format: {
493
+ timestamp: boolean;
494
+ colorize: boolean;
495
+ json: boolean;
496
+ };
497
+ silent: boolean;
498
+ levelOptions: {
499
+ level: "info";
500
+ levels: {
501
+ error: number;
502
+ warn: number;
503
+ info: number;
504
+ debug: number;
505
+ trace: number;
506
+ verbose: number;
507
+ };
508
+ colors: Record<string, LogColor>;
509
+ };
510
+ fields: {
511
+ timestamp: boolean;
512
+ level: boolean;
513
+ appName: boolean;
514
+ traceId: boolean;
515
+ message: boolean;
516
+ payload: boolean;
517
+ timeTaken: boolean;
518
+ };
519
+ outputs: string[];
520
+ };
521
+ /**
522
+ * Create a new Logitron logger instance with TypeScript support for custom levels
523
+ * @param config - Logger configuration
524
+ * @returns Typed logger instance
525
+ */
526
+ declare const createLogger: typeof createLogger$1;
527
+ /**
528
+ * Create a new Logitron logger service for NestJS
529
+ * @param config - Logger configuration
530
+ * @returns LogixiaLoggerService instance
531
+ */
532
+ declare function createLoggerService(config?: Partial<LoggerConfig>): LogixiaLoggerService;
533
+ /**
534
+ * Default logger instance
535
+ */
536
+ declare const logger: LogixiaLogger<{
537
+ appName: string;
538
+ environment: Environment;
539
+ traceId: boolean;
540
+ format: {
541
+ timestamp: boolean;
542
+ colorize: boolean;
543
+ json: boolean;
544
+ };
545
+ silent: boolean;
546
+ levelOptions: {
547
+ level: "info";
548
+ levels: {
549
+ error: number;
550
+ warn: number;
551
+ info: number;
552
+ debug: number;
553
+ trace: number;
554
+ verbose: number;
555
+ };
556
+ colors: Record<string, LogColor>;
557
+ };
558
+ fields: {
559
+ timestamp: boolean;
560
+ level: boolean;
561
+ appName: boolean;
562
+ traceId: boolean;
563
+ message: boolean;
564
+ payload: boolean;
565
+ timeTaken: boolean;
566
+ };
567
+ outputs: string[];
568
+ }>;
569
+ /**
570
+ * Export default configuration for reference
571
+ */
572
+
573
+ //#endregion
574
+ export { ContextData, CustomLevelMethods, DEFAULT_CONFIG, DEFAULT_LOG_COLORS, DEFAULT_LOG_LEVELS, Environment, ErrorSerializationOptions, ExtractLevels, HttpError, HttpRequest, HttpResponse, IBaseLogger, ILogFormatter, ILogger, ILoggerDefault, JsonFormatter, LOGIXIA_LOGGER_CONFIG, LOGIXIA_LOGGER_PREFIX, LogColor, LogEntry, LogFieldKey, LogLevel, LogLevelString, LoggerConfig, type LoggerConfig as LoggerConfigInterface, LoggerWithLevels, LogixiaAsyncOptions, LogixiaLogger, LogixiaLoggerModule, LogixiaLoggerService, LogixiaOptionsFactory, RequestContext, RequestMetrics, RequestTiming, TextFormatter, TimingEntry, TraceIdConfig, TraceIdExtractorConfig, createLogger, createLoggerService, createTraceMiddleware, extractTraceId, generateTraceId, getCurrentTraceId, isError, logger, normalizeError, runWithTraceId, serializeError, setTraceId, traceStorage };
575
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/http.types.ts","../src/types/index.ts","../src/core/logitron-logger.ts","../src/core/logitron-nestjs.service.ts","../src/core/logitron-logger.module.ts","../src/formatters/json.formatter.ts","../src/formatters/text.formatter.ts","../src/utils/trace.utils.ts","../src/utils/error.utils.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}