logixia 1.3.0 → 1.4.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 (59) hide show
  1. package/README.md +848 -7
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/{index-iDTW2-eY.d.mts → index-Ium497V3.d.mts} +180 -2
  4. package/dist/index-Ium497V3.d.mts.map +1 -0
  5. package/dist/{index-CHIsdA9n.d.ts → index-t-ActikQ.d.ts} +180 -2
  6. package/dist/index-t-ActikQ.d.ts.map +1 -0
  7. package/dist/index.d.mts +458 -3
  8. package/dist/index.d.mts.map +1 -1
  9. package/dist/index.d.ts +458 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +436 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +416 -3
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/{logitron-logger.module-C0G8JGVf.d.ts → logitron-logger.module-9vOhKWDG.d.ts} +120 -6
  16. package/dist/logitron-logger.module-9vOhKWDG.d.ts.map +1 -0
  17. package/dist/{logitron-logger.module-2AzkadqZ.mjs → logitron-logger.module-C939PIEV.mjs} +331 -10
  18. package/dist/logitron-logger.module-C939PIEV.mjs.map +1 -0
  19. package/dist/{logitron-logger.module-BqNKp0Fs.js → logitron-logger.module-CCnX7GwK.js} +383 -8
  20. package/dist/logitron-logger.module-CCnX7GwK.js.map +1 -0
  21. package/dist/{logitron-logger.module-DQKaZTJL.d.mts → logitron-logger.module-SArymP6b.d.mts} +120 -6
  22. package/dist/logitron-logger.module-SArymP6b.d.mts.map +1 -0
  23. package/dist/middleware.d.mts +1 -1
  24. package/dist/middleware.d.ts +1 -1
  25. package/dist/nest.d.mts +2 -2
  26. package/dist/nest.d.ts +2 -2
  27. package/dist/nest.js +2 -2
  28. package/dist/nest.mjs +2 -2
  29. package/dist/{promise-DaiZ2BaH.js → promise-BI-3eI4n.js} +285 -128
  30. package/dist/promise-BI-3eI4n.js.map +1 -0
  31. package/dist/{promise-C4pQPcK4.mjs → promise-BrZcjavs.mjs} +285 -128
  32. package/dist/promise-BrZcjavs.mjs.map +1 -0
  33. package/dist/testing.d.mts +1 -1
  34. package/dist/testing.d.ts +1 -1
  35. package/dist/testing.js +7 -1
  36. package/dist/testing.js.map +1 -1
  37. package/dist/testing.mjs +7 -1
  38. package/dist/testing.mjs.map +1 -1
  39. package/dist/{transport.manager-5VVdqS3o.mjs → transport.manager-DR7TLXQT.mjs} +82 -4
  40. package/dist/transport.manager-DR7TLXQT.mjs.map +1 -0
  41. package/dist/{transport.manager-DCOm4uIQ.js → transport.manager-DVTM978M.js} +82 -4
  42. package/dist/transport.manager-DVTM978M.js.map +1 -0
  43. package/dist/transports.d.mts +61 -168
  44. package/dist/transports.d.mts.map +1 -1
  45. package/dist/transports.d.ts +61 -168
  46. package/dist/transports.d.ts.map +1 -1
  47. package/dist/transports.js +1 -1
  48. package/dist/transports.mjs +1 -1
  49. package/package.json +72 -9
  50. package/dist/index-CHIsdA9n.d.ts.map +0 -1
  51. package/dist/index-iDTW2-eY.d.mts.map +0 -1
  52. package/dist/logitron-logger.module-2AzkadqZ.mjs.map +0 -1
  53. package/dist/logitron-logger.module-BqNKp0Fs.js.map +0 -1
  54. package/dist/logitron-logger.module-C0G8JGVf.d.ts.map +0 -1
  55. package/dist/logitron-logger.module-DQKaZTJL.d.mts.map +0 -1
  56. package/dist/promise-C4pQPcK4.mjs.map +0 -1
  57. package/dist/promise-DaiZ2BaH.js.map +0 -1
  58. package/dist/transport.manager-5VVdqS3o.mjs.map +0 -1
  59. package/dist/transport.manager-DCOm4uIQ.js.map +0 -1
@@ -49,6 +49,160 @@ interface RequestMetrics {
49
49
  timestamp: number;
50
50
  }
51
51
  //#endregion
52
+ //#region src/types/transport.types.d.ts
53
+ /**
54
+ * Per-transport retry & failover configuration.
55
+ */
56
+ interface TransportRetryConfig {
57
+ maxRetries?: number;
58
+ backoff?: 'fixed' | 'linear' | 'exponential';
59
+ delay?: number;
60
+ maxDelay?: number;
61
+ fallback?: ITransport;
62
+ onExhausted?: (error: Error, entry: TransportLogEntry) => void;
63
+ }
64
+ interface ITransport {
65
+ name: string;
66
+ level?: string | undefined;
67
+ /**
68
+ * Write a log entry. May return a Promise (async / cloud transports) or
69
+ * void (sync / in-memory batch transports that flush on their own schedule).
70
+ */
71
+ write(entry: TransportLogEntry): void | Promise<void>;
72
+ close?(): Promise<void>;
73
+ retry?: TransportRetryConfig;
74
+ }
75
+ interface TransportLogEntry {
76
+ timestamp: Date;
77
+ level: string;
78
+ message: string;
79
+ data?: Record<string, unknown>;
80
+ context?: string;
81
+ traceId?: string;
82
+ appName?: string;
83
+ environment?: string;
84
+ }
85
+ interface FileTransportConfig {
86
+ filename: string;
87
+ dirname?: string;
88
+ maxSize?: string | number;
89
+ maxFiles?: number;
90
+ datePattern?: string;
91
+ zippedArchive?: boolean;
92
+ format?: 'json' | 'text' | 'csv';
93
+ level?: string;
94
+ batchSize?: number;
95
+ flushInterval?: number;
96
+ rotation?: RotationConfig;
97
+ }
98
+ interface DatabaseTransportConfig {
99
+ type: 'mongodb' | 'postgresql' | 'mysql' | 'sqlite';
100
+ connectionString?: string;
101
+ host?: string;
102
+ port?: number;
103
+ database: string;
104
+ table?: string;
105
+ collection?: string;
106
+ username?: string;
107
+ password?: string;
108
+ ssl?: boolean;
109
+ level?: string;
110
+ batchSize?: number;
111
+ flushInterval?: number;
112
+ }
113
+ interface ConsoleTransportConfig {
114
+ level?: string;
115
+ colorize?: boolean;
116
+ timestamp?: boolean;
117
+ format?: 'json' | 'text';
118
+ }
119
+ interface AnalyticsTransportConfig {
120
+ level?: string;
121
+ apiKey: string;
122
+ projectId?: string;
123
+ endpoint?: string;
124
+ batchSize?: number;
125
+ flushInterval?: number;
126
+ enableUserTracking?: boolean;
127
+ enableEventTracking?: boolean;
128
+ customProperties?: Record<string, unknown>;
129
+ }
130
+ interface MixpanelTransportConfig extends AnalyticsTransportConfig {
131
+ token: string;
132
+ distinct_id?: string;
133
+ enableSuperProperties?: boolean;
134
+ superProperties?: Record<string, unknown>;
135
+ }
136
+ interface DataDogTransportConfig extends AnalyticsTransportConfig {
137
+ apiKey: string;
138
+ site?: 'datadoghq.com' | 'datadoghq.eu' | 'us3.datadoghq.com' | 'us5.datadoghq.com';
139
+ service?: string;
140
+ version?: string;
141
+ env?: string;
142
+ enableMetrics?: boolean;
143
+ enableLogs?: boolean;
144
+ enableTraces?: boolean;
145
+ }
146
+ interface GoogleAnalyticsTransportConfig extends AnalyticsTransportConfig {
147
+ measurementId: string;
148
+ apiSecret: string;
149
+ clientId?: string;
150
+ enableEcommerce?: boolean;
151
+ enableEnhancedMeasurement?: boolean;
152
+ }
153
+ interface SegmentTransportConfig extends AnalyticsTransportConfig {
154
+ writeKey: string;
155
+ dataPlaneUrl?: string;
156
+ enableBatching?: boolean;
157
+ maxBatchSize?: number;
158
+ flushAt?: number;
159
+ flushInterval?: number;
160
+ }
161
+ interface RotationConfig {
162
+ interval?: '1h' | '6h' | '12h' | '1d' | '1w' | '1m' | '1y';
163
+ maxSize?: string | number;
164
+ maxFiles?: number;
165
+ compress?: boolean;
166
+ shouldRotate?: (currentFile: string, stats: FileStats) => boolean;
167
+ }
168
+ interface FileStats {
169
+ size: number;
170
+ created: Date;
171
+ modified: Date;
172
+ }
173
+ interface TransportConfig {
174
+ console?: ConsoleTransportConfig;
175
+ file?: FileTransportConfig | FileTransportConfig[];
176
+ database?: DatabaseTransportConfig | DatabaseTransportConfig[];
177
+ analytics?: AnalyticsConfig;
178
+ custom?: ITransport[];
179
+ }
180
+ interface AnalyticsConfig {
181
+ mixpanel?: MixpanelTransportConfig | MixpanelTransportConfig[];
182
+ datadog?: DataDogTransportConfig | DataDogTransportConfig[];
183
+ googleAnalytics?: GoogleAnalyticsTransportConfig | GoogleAnalyticsTransportConfig[];
184
+ segment?: SegmentTransportConfig | SegmentTransportConfig[];
185
+ }
186
+ interface IAsyncTransport extends ITransport {
187
+ flush(): Promise<void>;
188
+ isReady?(): Promise<boolean>;
189
+ }
190
+ interface IBatchTransport extends ITransport {
191
+ readonly batchSize?: number;
192
+ readonly flushInterval?: number;
193
+ addToBatch(entry: TransportLogEntry): void;
194
+ flush(): Promise<void>;
195
+ }
196
+ type TransportType = 'console' | 'file' | 'database' | 'analytics' | 'custom';
197
+ interface TransportMetrics {
198
+ name: string;
199
+ type: TransportType;
200
+ logsWritten: number;
201
+ errors: number;
202
+ lastWrite: Date;
203
+ averageWriteTime: number;
204
+ }
205
+ //#endregion
52
206
  //#region src/types/index.d.ts
53
207
  declare const LogLevel: {
54
208
  readonly ERROR: "error";
@@ -88,6 +242,24 @@ interface RedactConfig {
88
242
  patterns?: RegExp[];
89
243
  /** Replacement value for redacted content. Default: `"[REDACTED]"` */
90
244
  censor?: string;
245
+ /**
246
+ * Auto-detect and redact common PII and secret patterns without manual configuration.
247
+ *
248
+ * - `true` / `'conservative'` — JWT tokens, Bearer/API-key strings, common secret field names
249
+ * (`password`, `token`, `secret`, `apiKey`, `authorization`, `credentials`)
250
+ * - `'aggressive'` — everything above **plus** email addresses, credit-card numbers,
251
+ * US SSNs, phone numbers, and IP addresses
252
+ *
253
+ * Auto-detected patterns are applied **in addition to** any explicit `paths` / `patterns`.
254
+ *
255
+ * @example
256
+ * ```ts
257
+ * const logger = createLogger({ redact: { autoDetect: 'aggressive' } });
258
+ * await logger.info('user signed up', { email: 'alice@example.com', password: 'hunter2' });
259
+ * // → email: '[REDACTED]', password: '[REDACTED]'
260
+ * ```
261
+ */
262
+ autoDetect?: boolean | 'conservative' | 'aggressive';
91
263
  }
92
264
  /**
93
265
  * Built-in log sampling / rate limiting.
@@ -196,6 +368,8 @@ interface LoggerConfig<TLevels extends Record<string, number> = Record<string, n
196
368
  * implement sampling logic in application code.
197
369
  */
198
370
  sampling?: SamplingConfig;
371
+ /** Transport configuration — console, file, database, analytics, etc. */
372
+ transports?: TransportConfig;
199
373
  [key: string]: unknown;
200
374
  }
201
375
  interface IBaseLogger {
@@ -227,6 +401,10 @@ interface IBaseLogger {
227
401
  getAvailableTransports(): string[];
228
402
  child(context: string, data?: Record<string, unknown>): ILogger;
229
403
  close(): Promise<void>;
404
+ use(plugin: {
405
+ name: string;
406
+ }): this;
407
+ unuse(pluginName: string): this;
230
408
  }
231
409
  type CustomLevelMethods<T extends Record<string, number>> = { [K in keyof T]: (message: string, data?: Record<string, unknown>) => Promise<void> };
232
410
  type ILogger<TLevels extends Record<string, number> = {}> = IBaseLogger & CustomLevelMethods<TLevels>;
@@ -294,5 +472,5 @@ declare const DEFAULT_LOG_COLORS: {
294
472
  verbose: string;
295
473
  };
296
474
  //#endregion
297
- export { RequestMetrics as A, SamplingConfig as C, HttpError as D, TraceIdExtractorConfig as E, HttpRequest as O, RequestContext as S, TraceIdConfig as T, LogLevelString as _, Environment as a, NamespaceLevels as b, GracefulShutdownConfig as c, ILogger as d, ILoggerDefault as f, LogLevel as g, LogFieldKey as h, DEFAULT_LOG_LEVELS as i, RequestTiming as j, HttpResponse as k, IBaseLogger as l, LogEntry as m, CustomLevelMethods as n, ErrorSerializationOptions as o, LogColor as p, DEFAULT_LOG_COLORS as r, ExtractLevels as s, ContextData as t, ILogFormatter as u, LoggerConfig as v, TimingEntry as w, RedactConfig as x, LoggerWithLevels as y };
298
- //# sourceMappingURL=index-iDTW2-eY.d.mts.map
475
+ export { DatabaseTransportConfig as A, TransportMetrics as B, SamplingConfig as C, AnalyticsTransportConfig as D, TraceIdExtractorConfig as E, ITransport as F, RequestTiming as G, HttpRequest as H, MixpanelTransportConfig as I, SegmentTransportConfig as L, GoogleAnalyticsTransportConfig as M, IAsyncTransport as N, ConsoleTransportConfig as O, IBatchTransport as P, TransportConfig as R, RequestContext as S, TraceIdConfig as T, HttpResponse as U, HttpError as V, RequestMetrics as W, LogLevelString as _, Environment as a, NamespaceLevels as b, GracefulShutdownConfig as c, ILogger as d, ILoggerDefault as f, LogLevel as g, LogFieldKey as h, DEFAULT_LOG_LEVELS as i, FileTransportConfig as j, DataDogTransportConfig as k, IBaseLogger as l, LogEntry as m, CustomLevelMethods as n, ErrorSerializationOptions as o, LogColor as p, DEFAULT_LOG_COLORS as r, ExtractLevels as s, ContextData as t, ILogFormatter as u, LoggerConfig as v, TimingEntry as w, RedactConfig as x, LoggerWithLevels as y, TransportLogEntry as z };
476
+ //# sourceMappingURL=index-Ium497V3.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Ium497V3.d.mts","names":[],"sources":["../src/types/http.types.ts","../src/types/transport.types.ts","../src/types/index.ts"],"sourcesContent":[],"mappings":";;AAIA;;AAIU,UAJO,WAAA,CAIP;EACC,MAAA,EAAA,MAAA;EAAM,GAAA,EAAA,MAAA;EAOA,OAAA,EATN,MASkB,CAAA,MAAA,EAAA,MAElB,GAAA,MAAM,EAAA,CAAA;EAMA,KAAA,CAAA,EAhBP,MAgBiB,CAAA,MAAA,EAAA,OAGf,CAAA;EAGK,MAAA,CAAA,EArBN,MAqBM,CAAa,MAAA,EAAA,OAAA,CAAA;EAab,IAAA,CAAA,EAAA,OAAA;;;;ACtCjB;AAKa,UDMI,YAAA,CCNJ;EACW,UAAA,EAAA,MAAA;EAAc,OAAA,EDO3B,MCP2B,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,CAAA;EAAiB,IAAA,CAAA,EAAA,OAAA;EAGtC,SAAA,EAAA,MAAU;EAOZ,aAAA,CAAA,EAAA,MAAA;;AACH,UDEK,SAAA,SAAkB,KCFvB,CAAA;EACF,UAAA,CAAA,EAAA,MAAA;EAAoB,IAAA,CAAA,EAAA,MAAA;EAGb,OAAA,CAAA,EDCL,MCDK,CAAA,MAAiB,EAAA,OAAA,CACrB;AAUb;AAciB,UDrBA,aAAA,CCqBuB;EAgBvB,KAAA,EAAA,MAAA;EAOA,GAAA,CAAA,EAAA,MAAA;EAYA,QAAA,CAAA,EAAA,MAAA;EAOA,MAAA,CAAA,EAAA;IAWA,GAAA,CAAA,EAAA,MAAA;IAQA,GAAA,CAAA,EAAA,MAAA;IASA,GAAA,CAAA,EAAA,MAAA;IAQA,OAAA,CAAS,EAAA,MAAA;IAMT,QAAA,CAAA,EAAA,MAAe;EACpB,CAAA;;AACmB,UD9Fd,cAAA,CC8Fc;EAClB,SAAA,EAAA,MAAA;EAA0B,MAAA,EAAA,MAAA;EACzB,GAAA,EAAA,MAAA;EACH,UAAA,CAAA,EAAA,MAAA;EAAU,QAAA,CAAA,EAAA,MAAA;EAGJ,aAAA,CAAA,EAAA,MAAe;EACnB,SAAA,CAAA,EAAA,MAAA;EAA0B,EAAA,CAAA,EAAA,MAAA;EAC3B,SAAA,EAAA,MAAA;;;;;AD7IZ;;AAIU,UCHO,oBAAA,CDGP;EACC,UAAA,CAAA,EAAA,MAAA;EAAM,OAAA,CAAA,EAAA,OAAA,GAAA,QAAA,GAAA,aAAA;EAOA,KAAA,CAAA,EAAA,MAAA;EAQA,QAAA,CAAA,EAAA,MAAU;EAMV,QAAA,CAAA,ECpBJ,UDoBiB;EAab,WAAA,CAAA,EAAA,CAAA,KAAc,EChCP,KDgCO,EAAA,KAAA,EChCO,iBDgCP,EAAA,GAAA,IAAA;;UC7Bd,UAAA;;EATA,KAAA,CAAA,EAAA,MAAA,GAAA,SAAoB;EAKxB;;;;EAII,KAAA,CAAA,KAAA,EAOF,iBAPY,CAAA,EAAA,IAAA,GAOe,OAPf,CAAA,IAAA,CAAA;EAOZ,KAAA,GAAA,EACH,OADG,CAAA,IAAA,CAAA;EAA2B,KAAA,CAAA,EAEhC,oBAFgC;;AAEhC,UAGO,iBAAA,CAHP;EAAoB,SAAA,EAIjB,IAJiB;EAGb,KAAA,EAAA,MAAA;EAWA,OAAA,EAAA,MAAA;EAcA,IAAA,CAAA,EArBR,MAqBQ,CAAA,MAAA,EAAA,OAAuB,CAAA;EAgBvB,OAAA,CAAA,EAAA,MAAA;EAOA,OAAA,CAAA,EAAA,MAAA;EAYA,OAAA,CAAA,EAAA,MAAA;EAOA,WAAA,CAAA,EAAA,MAAA;AAWjB;AAQiB,UA3EA,mBAAA,CA2EuB;EASvB,QAAA,EAAA,MAAA;EAQA,OAAA,CAAA,EAAA,MAAS;EAMT,OAAA,CAAA,EAAA,MAAA,GAAe,MAAA;EACpB,QAAA,CAAA,EAAA,MAAA;EACH,WAAA,CAAA,EAAA,MAAA;EAAsB,aAAA,CAAA,EAAA,OAAA;EAClB,MAAA,CAAA,EAAA,MAAA,GAAA,MAAA,GAAA,KAAA;EAA0B,KAAA,CAAA,EAAA,MAAA;EACzB,SAAA,CAAA,EAAA,MAAA;EACH,aAAA,CAAA,EAAA,MAAA;EAAU,QAAA,CAAA,EA5FR,cA4FQ;AAGrB;AACa,UA7FI,uBAAA,CA6FJ;EAA0B,IAAA,EAAA,SAAA,GAAA,YAAA,GAAA,OAAA,GAAA,QAAA;EAC3B,gBAAA,CAAA,EAAA,MAAA;EAAyB,IAAA,CAAA,EAAA,MAAA;EACjB,IAAA,CAAA,EAAA,MAAA;EAAiC,QAAA,EAAA,MAAA;EACzC,KAAA,CAAA,EAAA,MAAA;EAAyB,UAAA,CAAA,EAAA,MAAA;EAAsB,QAAA,CAAA,EAAA,MAAA;EAG1C,QAAA,CAAA,EAAA,MAAA;EACN,GAAA,CAAA,EAAA,OAAA;EACG,KAAA,CAAA,EAAA,MAAA;EAF2B,SAAA,CAAA,EAAA,MAAA;EAAU,aAAA,CAAA,EAAA,MAAA;AAYnD;AAGoB,UAlGH,sBAAA,CAkGG;EACT,KAAA,CAAA,EAAA,MAAA;EAJ8B,QAAA,CAAA,EAAA,OAAA;EAAU,SAAA,CAAA,EAAA,OAAA;EAOvC,MAAA,CAAA,EAAA,MAAA,GAAa,MAAA;AAEzB;UAjGiB,wBAAA;;;EClEJ,SAAA,CAAA,EAOH,MAAA;EAEE,QAAA,CAAA,EAAQ,MAAA;EACR,SAAA,CAAA,EAAA,MAAc;EAGd,aAAQ,CAAA,EAAA,MAAA;EAoBR,kBAAW,CAAA,EAAA,OAAA;EAgBX,mBAAW,CAAA,EAAA,OAAA;EAGN,gBAAA,CAAA,EDuBI,MCvBkB,CAAA,MAAA,EAAA,OAAA,CAAA;AAOvC;AAQiB,UDWA,uBAAA,SAAgC,wBCD9B,CAAA;EAqCF,KAAA,EAAA,MAAA;EAgDL,WAAA,CAAA,EAAA,MAAe;EAGV,qBAAA,CAAA,EAAA,OAAsB;EAStB,eAAY,CAAA,ED5FT,MC4FS,CAAA,MAAA,EAAA,OAAA,CAAA;;AAA0C,UDzFtD,sBAAA,SAA+B,wBCyFuB,CAAA;EAEvD,MAAA,EAAA,MAAA;EACM,IAAA,CAAA,EAAA,eAAA,GAAA,cAAA,GAAA,mBAAA,GAAA,mBAAA;EASA,OAAA,CAAA,EAAA,MAAA;EAAU,OAAA,CAAA,EAAA,MAAA;EACf,GAAA,CAAA,EAAA,MAAA;EACe,aAAA,CAAA,EAAA,OAAA;EAAf,UAAA,CAAA,EAAA,OAAA;EAGS,YAAA,CAAA,EAAA,OAAA;;AAAf,UD/FM,8BAAA,SAAuC,wBC+F7C,CAAA;EAKA,aAAA,EAAA,MAAA;EAMS,SAAA,EAAA,MAAA;EAMW,QAAA,CAAA,EAAA,MAAA;EAMlB,eAAA,CAAA,EAAA,OAAA;EAEE,yBAAA,CAAA,EAAA,OAAA;;AAKE,UDrHA,sBAAA,SAA+B,wBCqHpB,CAAA;EACI,QAAA,EAAA,MAAA;EAA0B,YAAA,CAAA,EAAA,MAAA;EAC3C,cAAA,CAAA,EAAA,OAAA;EAAc,YAAA,CAAA,EAAA,MAAA;EAA0B,OAAA,CAAA,EAAA,MAAA;EACxB,aAAA,CAAA,EAAA,MAAA;;AACA,UDhHd,cAAA,CCgHc;EAA0B,QAAA,CAAA,EAAA,IAAA,GAAA,IAAA,GAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA;EACzB,OAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAA0B,QAAA,CAAA,EAAA,MAAA;EAC1B,QAAA,CAAA,EAAA,OAAA;EAA0B,YAAA,CAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,KAAA,ED7GZ,SC6GY,EAAA,GAAA,OAAA;;AACE,UD3G3C,SAAA,CC2G2C;EACV,IAAA,EAAA,MAAA;EAA0B,OAAA,ED1GjE,IC0GiE;EAGlD,QAAA,ED5Gd,IC4Gc;;AACc,UD1GvB,eAAA,CC0GuB;EAAqB,OAAA,CAAA,EDzGjD,sBCyGiD;EAAR,IAAA,CAAA,EDxG5C,mBCwG4C,GDxGtB,mBCwGsB,EAAA;EAEnC,QAAA,CAAA,EDzGL,uBCyGK,GDzGqB,uBCyGrB,EAAA;EASC,SAAA,CAAA,EDjHL,eCiHK;EAWa,MAAA,CAAA,ED3HrB,UC2HqB,EAAA;;AACrB,UDzHM,eAAA,CCyHN;EAAO,QAAA,CAAA,EDxHL,uBCwHK,GDxHqB,uBCwHrB,EAAA;EAUN,OAAA,CAAA,EDjIA,sBCiIkB,GDjIO,sBCiIP,EAAA;EAAW,eAAA,CAAA,EDhIrB,8BCgIqB,GDhIY,8BCgIZ,EAAA;EAC3B,OAAA,CAAA,EDhIF,sBCgIE,GDhIuB,sBCgIvB,EAAA;;AAAyD,UD7HtD,eAAA,SAAwB,UC6H8B,CAAA;EAAO,KAAA,EAAA,ED5HnE,OC4HmE,CAAA,IAAA,CAAA;EAKlE,OAAA,GAAO,EDhIL,OCgIK,CAAA,OAAA,CAAA;;AASoB,UD/HtB,eAAA,SAAwB,UC+HF,CAAA;EAAqB,SAAA,SAAA,CAAA,EAAA,MAAA;EAGxD,SAAA,aAAA,CAAA,EAAA,MAAA;EAAU,UAAA,CAAA,KAAA,ED/HM,iBC+HN,CAAA,EAAA,IAAA;EACA,KAAA,EAAA,ED/HH,OC+HG,CAAA,IAAA,CAAA;;AACR,KD7HM,aAAA,GC6HN,SAAA,GAAA,MAAA,GAAA,UAAA,GAAA,WAAA,GAAA,QAAA;AACF,UD5Ha,gBAAA,CC4Hb;EAAc,IAAA,EAAA,MAAA;EAGN,IAAA,ED7HJ,aC6HiB;EAAM,WAAA,EAAA,MAAA;EAAU,MAAA,EAAA,MAAA;EAAwB,SAAA,ED1HpD,IC0HoD;EAAI,gBAAA,EAAA,MAAA;;;;AFjSpD,cEDJ,QFCI,EAAA;EAOA,SAAA,KAAA,EAAY,OAAA;EAQZ,SAAA,IAAU,EAAA,MAAA;EAMV,SAAA,IAAA,EAAA,MAAa;EAab,SAAA,KAAA,EAAA,OAAc;;;;ACtCd,KCYL,QAAA,GDZK,CAAA,OCYc,QDZM,CAAA,CAAA,MAAA,OCYiB,QDZjB,CAAA;AAKxB,KCQD,cAAA,GAAiB,QDRhB,GAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA;AACW,KCUZ,QAAA,GDVY,OAAA,GAAA,KAAA,GAAA,OAAA,GAAA,QAAA,GAAA,MAAA,GAAA,SAAA,GAAA,MAAA,GAAA,OAAA,GAAA,MAAA,GAAA,MAAA,GAAA,WAAA,GAAA,aAAA,GAAA,cAAA,GAAA,YAAA,GAAA,eAAA,GAAA,YAAA,GAAA,aAAA;AAAc,KC8B1B,WAAA,GD9B0B,WAAA,GAAA,OAAA,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,WAAA,GAAA,SAAA,GAAA,WAAA,GAAA,QAAA,GAAA,WAAA,GAAA,aAAA;AAAiB,KC8C3C,WAAA,GD9C2C,aAAA,GAAA,YAAA;AAGtC,UC8CA,sBAAA,CD9CU;EAOZ,MAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EAA2B,KAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EAC9B,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EACF,MAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;;AAGO,UCyCA,aAAA,CDzCiB;EAWjB,OAAA,EAAA,OAAA;EAcA,SAAA,CAAA,EAAA,GAAA,GAAA,MAAA;EAgBA,UAAA,CAAA,EAAA,MAAA;EAOA,SAAA,CAAA,ECHH,sBDG2B;AAYzC;AAOiB,UClBA,YAAA,CDkBuB;EAWvB;AAQjB;AASA;AAQA;EAMiB,KAAA,CAAA,EAAA,MAAA,EAAA;EACL;;;;EAE2B,QAAA,CAAA,ECrD1B,MDqD0B,EAAA;EACzB;EACH,MAAA,CAAA,EAAA,MAAA;EAAU;AAGrB;;;;;;;;;;AAOA;;;;;AAYA;EAGoB,UAAA,CAAA,EAAA,OAAA,GAAA,cAAA,GAAA,YAAA;;;;AAIpB;AAEA;;;;ACnKA;AASA;AACA;AAGA;AAoBA;AAgBA;AAGiB,UA8DA,cAAA,CA9DsB;EAOtB;AAQjB;AA+CA;AAgDA;EAGiB,IAAA,CAAA,EAAA,MAAA;EASA;;;;;;EAYe,QAAA,CAAA,EA5DnB,OA4DmB,CA5DX,MA4DW,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA;EACf;;;;;EAIN,gBAAA,CAAA,EAAA,MAAA;EAKA;;;;;EAoBmB,eAAA,CAAA,EAAA,OAAA;EAKb;;;;;EAEsC,eAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;AAUM,KAvEjD,eAAA,GAAkB,MAuE+B,CAAA,MAAA,EAvEhB,cAuEgB,CAAA;AAAR,UApEpC,sBAAA,CAoEoC;EAEnC;EASC,OAAA,EAAA,OAAA;EAWa;EAA0B,OAAA,CAAA,EAAA,MAAA;EAC/C;EAAO,OAAA,CAAA,EArFN,MAAA,CAAO,OAqFD,EAAA;AAUlB;AAAyC,UA5FxB,YA4FwB,CAAA,gBA5FK,MA4FL,CAAA,MAAA,EAAA,MAAA,CAAA,GA5F8B,MA4F9B,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,CAAA;EAC3B,OAAA,CAAA,EAAA,MAAA;EAA6B,WAAA,CAAA,EA3F3B,WA2F2B;EAA4B,OAAA,CAAA,EAAA,OAAA,GA1FjD,aA0FiD;EAAO,MAAA,CAAA,EAAA;IAKlE,SAAO,CAAA,EAAA,OAAA;IAAiB,QAAA,CAAA,EAAA,OAAA;IAA+B,IAAA,CAAA,EAAA,OAAA;EAC9C,CAAA;EAAnB,MAAA,CAAA,EAAA,OAAA;EAAkB,YAAA,CAAA,EAAA;IAIH,KAAA,CAAA,EAAA,MA3FK,OA2FU,GA3FA,cA2FmB;IAIvC,MAAA,CAAA,EA9FK,OA8FW;IAAW,MAAA,CAAA,EA7FtB,MA6FsB,CAAA,MAAA,EA7FP,QA6FO,CAAA;EAAqB,CAAA,GAAA,SAAA;EAGxD,MAAA,CAAA,EA7FO,OA6FP,CA7Fe,MA6Ff,CA7FsB,WA6FtB,EAAA,MAAA,GAAA,OAAA,CAAA,CAAA;EAAU;;;;EAGV,MAAA,CAAA,EA3FO,YA2FP;EAAc;AAGlB;;;;EAAqE,eAAA,CAAA,EAxFjD,eAwFiD;EAAM;AAG3E;AAaA;AAOA;AAQA;EAKiB,gBAAa,CAAA,EAAA,OAAA,GAtHC,sBAuHP;EAIP;;;;;EAgBJ,QAAA,CAAA,EArIA,cA4IZ;EAEY;eA5IE;;;UAKE,WAAA;gCACe,0BAA0B;eAC3C,cAAc,0BAA0B;+BACxB,0BAA0B;+BAC1B,0BAA0B;gCACzB,0BAA0B;gCAC1B,0BAA0B;kCACxB,0BAA0B;kDACV,0BAA0B;;0BAGlD;wCACc,QAAQ,KAAK,QAAQ;kBAE3C;;;;;;;mBASC;;;;;;;;gCAWa,0BAA0B;WAC/C;;;;;;KAUC,6BAA6B,wCAC3B,6BAA6B,4BAA4B;KAK3D,wBAAwB,+BAA+B,cACjE,mBAAmB;UAIJ,cAAA,SAAuB;KAI5B,2BAA2B,qBAAqB;;IAGxD,UAAU,yBACR,QAAQ,KACR,iBACF;KAGQ,mBAAmB,UAAU,wBAAwB,IAAI;UAGpD,QAAA;;;;;;;YAOL;;UAEF;;UAIO,yBAAA;;;;;UAOA,WAAA;;;;;;UAQA,WAAA;;;UAKA,aAAA;gBACD;;UAIC,cAAA;;;;;;WAMN;aACE;UACH;;;;;;cAQG;;;;;;;;cASA"}
@@ -49,6 +49,160 @@ interface RequestMetrics {
49
49
  timestamp: number;
50
50
  }
51
51
  //#endregion
52
+ //#region src/types/transport.types.d.ts
53
+ /**
54
+ * Per-transport retry & failover configuration.
55
+ */
56
+ interface TransportRetryConfig {
57
+ maxRetries?: number;
58
+ backoff?: 'fixed' | 'linear' | 'exponential';
59
+ delay?: number;
60
+ maxDelay?: number;
61
+ fallback?: ITransport;
62
+ onExhausted?: (error: Error, entry: TransportLogEntry) => void;
63
+ }
64
+ interface ITransport {
65
+ name: string;
66
+ level?: string | undefined;
67
+ /**
68
+ * Write a log entry. May return a Promise (async / cloud transports) or
69
+ * void (sync / in-memory batch transports that flush on their own schedule).
70
+ */
71
+ write(entry: TransportLogEntry): void | Promise<void>;
72
+ close?(): Promise<void>;
73
+ retry?: TransportRetryConfig;
74
+ }
75
+ interface TransportLogEntry {
76
+ timestamp: Date;
77
+ level: string;
78
+ message: string;
79
+ data?: Record<string, unknown>;
80
+ context?: string;
81
+ traceId?: string;
82
+ appName?: string;
83
+ environment?: string;
84
+ }
85
+ interface FileTransportConfig {
86
+ filename: string;
87
+ dirname?: string;
88
+ maxSize?: string | number;
89
+ maxFiles?: number;
90
+ datePattern?: string;
91
+ zippedArchive?: boolean;
92
+ format?: 'json' | 'text' | 'csv';
93
+ level?: string;
94
+ batchSize?: number;
95
+ flushInterval?: number;
96
+ rotation?: RotationConfig;
97
+ }
98
+ interface DatabaseTransportConfig {
99
+ type: 'mongodb' | 'postgresql' | 'mysql' | 'sqlite';
100
+ connectionString?: string;
101
+ host?: string;
102
+ port?: number;
103
+ database: string;
104
+ table?: string;
105
+ collection?: string;
106
+ username?: string;
107
+ password?: string;
108
+ ssl?: boolean;
109
+ level?: string;
110
+ batchSize?: number;
111
+ flushInterval?: number;
112
+ }
113
+ interface ConsoleTransportConfig {
114
+ level?: string;
115
+ colorize?: boolean;
116
+ timestamp?: boolean;
117
+ format?: 'json' | 'text';
118
+ }
119
+ interface AnalyticsTransportConfig {
120
+ level?: string;
121
+ apiKey: string;
122
+ projectId?: string;
123
+ endpoint?: string;
124
+ batchSize?: number;
125
+ flushInterval?: number;
126
+ enableUserTracking?: boolean;
127
+ enableEventTracking?: boolean;
128
+ customProperties?: Record<string, unknown>;
129
+ }
130
+ interface MixpanelTransportConfig extends AnalyticsTransportConfig {
131
+ token: string;
132
+ distinct_id?: string;
133
+ enableSuperProperties?: boolean;
134
+ superProperties?: Record<string, unknown>;
135
+ }
136
+ interface DataDogTransportConfig extends AnalyticsTransportConfig {
137
+ apiKey: string;
138
+ site?: 'datadoghq.com' | 'datadoghq.eu' | 'us3.datadoghq.com' | 'us5.datadoghq.com';
139
+ service?: string;
140
+ version?: string;
141
+ env?: string;
142
+ enableMetrics?: boolean;
143
+ enableLogs?: boolean;
144
+ enableTraces?: boolean;
145
+ }
146
+ interface GoogleAnalyticsTransportConfig extends AnalyticsTransportConfig {
147
+ measurementId: string;
148
+ apiSecret: string;
149
+ clientId?: string;
150
+ enableEcommerce?: boolean;
151
+ enableEnhancedMeasurement?: boolean;
152
+ }
153
+ interface SegmentTransportConfig extends AnalyticsTransportConfig {
154
+ writeKey: string;
155
+ dataPlaneUrl?: string;
156
+ enableBatching?: boolean;
157
+ maxBatchSize?: number;
158
+ flushAt?: number;
159
+ flushInterval?: number;
160
+ }
161
+ interface RotationConfig {
162
+ interval?: '1h' | '6h' | '12h' | '1d' | '1w' | '1m' | '1y';
163
+ maxSize?: string | number;
164
+ maxFiles?: number;
165
+ compress?: boolean;
166
+ shouldRotate?: (currentFile: string, stats: FileStats) => boolean;
167
+ }
168
+ interface FileStats {
169
+ size: number;
170
+ created: Date;
171
+ modified: Date;
172
+ }
173
+ interface TransportConfig {
174
+ console?: ConsoleTransportConfig;
175
+ file?: FileTransportConfig | FileTransportConfig[];
176
+ database?: DatabaseTransportConfig | DatabaseTransportConfig[];
177
+ analytics?: AnalyticsConfig;
178
+ custom?: ITransport[];
179
+ }
180
+ interface AnalyticsConfig {
181
+ mixpanel?: MixpanelTransportConfig | MixpanelTransportConfig[];
182
+ datadog?: DataDogTransportConfig | DataDogTransportConfig[];
183
+ googleAnalytics?: GoogleAnalyticsTransportConfig | GoogleAnalyticsTransportConfig[];
184
+ segment?: SegmentTransportConfig | SegmentTransportConfig[];
185
+ }
186
+ interface IAsyncTransport extends ITransport {
187
+ flush(): Promise<void>;
188
+ isReady?(): Promise<boolean>;
189
+ }
190
+ interface IBatchTransport extends ITransport {
191
+ readonly batchSize?: number;
192
+ readonly flushInterval?: number;
193
+ addToBatch(entry: TransportLogEntry): void;
194
+ flush(): Promise<void>;
195
+ }
196
+ type TransportType = 'console' | 'file' | 'database' | 'analytics' | 'custom';
197
+ interface TransportMetrics {
198
+ name: string;
199
+ type: TransportType;
200
+ logsWritten: number;
201
+ errors: number;
202
+ lastWrite: Date;
203
+ averageWriteTime: number;
204
+ }
205
+ //#endregion
52
206
  //#region src/types/index.d.ts
53
207
  declare const LogLevel: {
54
208
  readonly ERROR: "error";
@@ -88,6 +242,24 @@ interface RedactConfig {
88
242
  patterns?: RegExp[];
89
243
  /** Replacement value for redacted content. Default: `"[REDACTED]"` */
90
244
  censor?: string;
245
+ /**
246
+ * Auto-detect and redact common PII and secret patterns without manual configuration.
247
+ *
248
+ * - `true` / `'conservative'` — JWT tokens, Bearer/API-key strings, common secret field names
249
+ * (`password`, `token`, `secret`, `apiKey`, `authorization`, `credentials`)
250
+ * - `'aggressive'` — everything above **plus** email addresses, credit-card numbers,
251
+ * US SSNs, phone numbers, and IP addresses
252
+ *
253
+ * Auto-detected patterns are applied **in addition to** any explicit `paths` / `patterns`.
254
+ *
255
+ * @example
256
+ * ```ts
257
+ * const logger = createLogger({ redact: { autoDetect: 'aggressive' } });
258
+ * await logger.info('user signed up', { email: 'alice@example.com', password: 'hunter2' });
259
+ * // → email: '[REDACTED]', password: '[REDACTED]'
260
+ * ```
261
+ */
262
+ autoDetect?: boolean | 'conservative' | 'aggressive';
91
263
  }
92
264
  /**
93
265
  * Built-in log sampling / rate limiting.
@@ -196,6 +368,8 @@ interface LoggerConfig<TLevels extends Record<string, number> = Record<string, n
196
368
  * implement sampling logic in application code.
197
369
  */
198
370
  sampling?: SamplingConfig;
371
+ /** Transport configuration — console, file, database, analytics, etc. */
372
+ transports?: TransportConfig;
199
373
  [key: string]: unknown;
200
374
  }
201
375
  interface IBaseLogger {
@@ -227,6 +401,10 @@ interface IBaseLogger {
227
401
  getAvailableTransports(): string[];
228
402
  child(context: string, data?: Record<string, unknown>): ILogger;
229
403
  close(): Promise<void>;
404
+ use(plugin: {
405
+ name: string;
406
+ }): this;
407
+ unuse(pluginName: string): this;
230
408
  }
231
409
  type CustomLevelMethods<T extends Record<string, number>> = { [K in keyof T]: (message: string, data?: Record<string, unknown>) => Promise<void> };
232
410
  type ILogger<TLevels extends Record<string, number> = {}> = IBaseLogger & CustomLevelMethods<TLevels>;
@@ -294,5 +472,5 @@ declare const DEFAULT_LOG_COLORS: {
294
472
  verbose: string;
295
473
  };
296
474
  //#endregion
297
- export { RequestMetrics as A, SamplingConfig as C, HttpError as D, TraceIdExtractorConfig as E, HttpRequest as O, RequestContext as S, TraceIdConfig as T, LogLevelString as _, Environment as a, NamespaceLevels as b, GracefulShutdownConfig as c, ILogger as d, ILoggerDefault as f, LogLevel as g, LogFieldKey as h, DEFAULT_LOG_LEVELS as i, RequestTiming as j, HttpResponse as k, IBaseLogger as l, LogEntry as m, CustomLevelMethods as n, ErrorSerializationOptions as o, LogColor as p, DEFAULT_LOG_COLORS as r, ExtractLevels as s, ContextData as t, ILogFormatter as u, LoggerConfig as v, TimingEntry as w, RedactConfig as x, LoggerWithLevels as y };
298
- //# sourceMappingURL=index-CHIsdA9n.d.ts.map
475
+ export { DatabaseTransportConfig as A, TransportMetrics as B, SamplingConfig as C, AnalyticsTransportConfig as D, TraceIdExtractorConfig as E, ITransport as F, RequestTiming as G, HttpRequest as H, MixpanelTransportConfig as I, SegmentTransportConfig as L, GoogleAnalyticsTransportConfig as M, IAsyncTransport as N, ConsoleTransportConfig as O, IBatchTransport as P, TransportConfig as R, RequestContext as S, TraceIdConfig as T, HttpResponse as U, HttpError as V, RequestMetrics as W, LogLevelString as _, Environment as a, NamespaceLevels as b, GracefulShutdownConfig as c, ILogger as d, ILoggerDefault as f, LogLevel as g, LogFieldKey as h, DEFAULT_LOG_LEVELS as i, FileTransportConfig as j, DataDogTransportConfig as k, IBaseLogger as l, LogEntry as m, CustomLevelMethods as n, ErrorSerializationOptions as o, LogColor as p, DEFAULT_LOG_COLORS as r, ExtractLevels as s, ContextData as t, ILogFormatter as u, LoggerConfig as v, TimingEntry as w, RedactConfig as x, LoggerWithLevels as y, TransportLogEntry as z };
476
+ //# sourceMappingURL=index-t-ActikQ.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-t-ActikQ.d.ts","names":[],"sources":["../src/types/http.types.ts","../src/types/transport.types.ts","../src/types/index.ts"],"sourcesContent":[],"mappings":"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"}