logixia 1.12.4 → 1.12.6

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 (166) hide show
  1. package/README.md +80 -27
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/async-context-CSHWoHMB.js +88 -0
  4. package/dist/async-context-CSHWoHMB.js.map +1 -0
  5. package/dist/async-context-CwBNMm2E.mjs +68 -0
  6. package/dist/async-context-CwBNMm2E.mjs.map +1 -0
  7. package/dist/azure-monitor.transport-CG7ClkYj.d.ts +62 -0
  8. package/dist/azure-monitor.transport-CG7ClkYj.d.ts.map +1 -0
  9. package/dist/azure-monitor.transport-CHnjVRF-.mjs +152 -0
  10. package/dist/azure-monitor.transport-CHnjVRF-.mjs.map +1 -0
  11. package/dist/azure-monitor.transport-Cm74kXZS.d.mts +62 -0
  12. package/dist/azure-monitor.transport-Cm74kXZS.d.mts.map +1 -0
  13. package/dist/azure-monitor.transport-CrvfHd9C.js +157 -0
  14. package/dist/azure-monitor.transport-CrvfHd9C.js.map +1 -0
  15. package/dist/azure.d.mts +3 -0
  16. package/dist/azure.d.ts +3 -0
  17. package/dist/azure.js +6 -0
  18. package/dist/azure.mjs +6 -0
  19. package/dist/batch-buffer-BY-mRWIK.js +170 -0
  20. package/dist/batch-buffer-BY-mRWIK.js.map +1 -0
  21. package/dist/batch-buffer-PGvSgbmd.mjs +132 -0
  22. package/dist/batch-buffer-PGvSgbmd.mjs.map +1 -0
  23. package/dist/browser.d.mts +427 -0
  24. package/dist/browser.d.mts.map +1 -0
  25. package/dist/browser.d.ts +427 -0
  26. package/dist/browser.d.ts.map +1 -0
  27. package/dist/browser.js +590 -0
  28. package/dist/browser.js.map +1 -0
  29. package/dist/browser.mjs +586 -0
  30. package/dist/browser.mjs.map +1 -0
  31. package/dist/chunk-DLSkYcPk.mjs +7 -0
  32. package/dist/chunk-nOFOJqeH.js +30 -0
  33. package/dist/cloudwatch.d.mts +3 -0
  34. package/dist/cloudwatch.d.ts +3 -0
  35. package/dist/cloudwatch.js +6 -0
  36. package/dist/cloudwatch.mjs +6 -0
  37. package/dist/cloudwatch.transport-CGHY4buE.d.mts +81 -0
  38. package/dist/cloudwatch.transport-CGHY4buE.d.mts.map +1 -0
  39. package/dist/cloudwatch.transport-DK_8cKd3.d.ts +81 -0
  40. package/dist/cloudwatch.transport-DK_8cKd3.d.ts.map +1 -0
  41. package/dist/cloudwatch.transport-pNBNWJLt.js +370 -0
  42. package/dist/cloudwatch.transport-pNBNWJLt.js.map +1 -0
  43. package/dist/cloudwatch.transport-yBwm4OeO.mjs +360 -0
  44. package/dist/cloudwatch.transport-yBwm4OeO.mjs.map +1 -0
  45. package/dist/coerce.utils-BN980Y9V.js +44 -0
  46. package/dist/coerce.utils-BN980Y9V.js.map +1 -0
  47. package/dist/coerce.utils-Dxv4_ikC.mjs +38 -0
  48. package/dist/coerce.utils-Dxv4_ikC.mjs.map +1 -0
  49. package/dist/correlation.d.mts +238 -0
  50. package/dist/correlation.d.mts.map +1 -0
  51. package/dist/correlation.d.ts +238 -0
  52. package/dist/correlation.d.ts.map +1 -0
  53. package/dist/correlation.js +272 -0
  54. package/dist/correlation.js.map +1 -0
  55. package/dist/correlation.mjs +261 -0
  56. package/dist/correlation.mjs.map +1 -0
  57. package/dist/gcp.d.mts +3 -0
  58. package/dist/gcp.d.ts +3 -0
  59. package/dist/gcp.js +6 -0
  60. package/dist/gcp.mjs +6 -0
  61. package/dist/gcp.transport-BJuNRFe_.mjs +192 -0
  62. package/dist/gcp.transport-BJuNRFe_.mjs.map +1 -0
  63. package/dist/gcp.transport-BOhkVKlI.d.ts +71 -0
  64. package/dist/gcp.transport-BOhkVKlI.d.ts.map +1 -0
  65. package/dist/gcp.transport-Bi6CUqZR.d.mts +71 -0
  66. package/dist/gcp.transport-Bi6CUqZR.d.mts.map +1 -0
  67. package/dist/gcp.transport-SHdtc1n0.js +198 -0
  68. package/dist/gcp.transport-SHdtc1n0.js.map +1 -0
  69. package/dist/{index-CwFww7VC.d.ts → index-BPKwwERo.d.mts} +18 -174
  70. package/dist/index-BPKwwERo.d.mts.map +1 -0
  71. package/dist/{index-DnyeaoZU.d.mts → index-C1X-TE5I.d.ts} +18 -174
  72. package/dist/index-C1X-TE5I.d.ts.map +1 -0
  73. package/dist/index.d.mts +41 -11
  74. package/dist/index.d.mts.map +1 -1
  75. package/dist/index.d.ts +40 -10
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +87 -147
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +62 -132
  80. package/dist/index.mjs.map +1 -1
  81. package/dist/internal-log-BUJYMZbE.js +70 -0
  82. package/dist/internal-log-BUJYMZbE.js.map +1 -0
  83. package/dist/internal-log-Cm8SOWSV.mjs +52 -0
  84. package/dist/internal-log-Cm8SOWSV.mjs.map +1 -0
  85. package/dist/{logitron-logger.module-BIGTm2V6.mjs → logitron-logger.module-Bs3XYZgF.mjs} +266 -166
  86. package/dist/logitron-logger.module-Bs3XYZgF.mjs.map +1 -0
  87. package/dist/{logitron-logger.module-BTxDpK6u.js → logitron-logger.module-BsDZR5BH.js} +297 -203
  88. package/dist/logitron-logger.module-BsDZR5BH.js.map +1 -0
  89. package/dist/{logitron-logger.module-BmT-ewin.d.ts → logitron-logger.module-CxT1F6Cm.d.ts} +23 -10
  90. package/dist/logitron-logger.module-CxT1F6Cm.d.ts.map +1 -0
  91. package/dist/{logitron-logger.module-BCq3sF27.d.mts → logitron-logger.module-zDKVd_o0.d.mts} +23 -10
  92. package/dist/logitron-logger.module-zDKVd_o0.d.mts.map +1 -0
  93. package/dist/middleware.d.mts +5 -2
  94. package/dist/middleware.d.mts.map +1 -1
  95. package/dist/middleware.d.ts +5 -2
  96. package/dist/middleware.d.ts.map +1 -1
  97. package/dist/middleware.js +13 -4
  98. package/dist/middleware.js.map +1 -1
  99. package/dist/middleware.mjs +14 -4
  100. package/dist/middleware.mjs.map +1 -1
  101. package/dist/nest.d.mts +3 -2
  102. package/dist/nest.d.mts.map +1 -1
  103. package/dist/nest.d.ts +3 -2
  104. package/dist/nest.d.ts.map +1 -1
  105. package/dist/nest.js +6 -2
  106. package/dist/nest.mjs +6 -2
  107. package/dist/safe-stringify-DJ66tW5I.mjs +118 -0
  108. package/dist/safe-stringify-DJ66tW5I.mjs.map +1 -0
  109. package/dist/safe-stringify-DWo3aZp_.js +142 -0
  110. package/dist/safe-stringify-DWo3aZp_.js.map +1 -0
  111. package/dist/search-CFQRISUv.mjs +1596 -0
  112. package/dist/search-CFQRISUv.mjs.map +1 -0
  113. package/dist/search-CQOo-Iq6.d.mts +816 -0
  114. package/dist/search-CQOo-Iq6.d.mts.map +1 -0
  115. package/dist/search-DujhR94O.d.ts +816 -0
  116. package/dist/search-DujhR94O.d.ts.map +1 -0
  117. package/dist/search-njTI2hdo.js +1631 -0
  118. package/dist/search-njTI2hdo.js.map +1 -0
  119. package/dist/search.d.mts +4 -1
  120. package/dist/search.d.ts +4 -1
  121. package/dist/search.js +9 -1
  122. package/dist/search.mjs +3 -2
  123. package/dist/testing.d.mts +2 -1
  124. package/dist/testing.d.mts.map +1 -1
  125. package/dist/testing.d.ts +2 -1
  126. package/dist/testing.d.ts.map +1 -1
  127. package/dist/{transport.manager-ciG4r5uz.js → transport.manager-BivyUTtU.js} +497 -437
  128. package/dist/transport.manager-BivyUTtU.js.map +1 -0
  129. package/dist/{transport.manager-DETpXuaY.mjs → transport.manager-D6KL3t9V.mjs} +473 -364
  130. package/dist/transport.manager-D6KL3t9V.mjs.map +1 -0
  131. package/dist/transport.types-B5vcyv2k.d.mts +187 -0
  132. package/dist/transport.types-B5vcyv2k.d.mts.map +1 -0
  133. package/dist/transport.types-BuY84TwO.d.ts +187 -0
  134. package/dist/transport.types-BuY84TwO.d.ts.map +1 -0
  135. package/dist/transports.d.mts +90 -29
  136. package/dist/transports.d.mts.map +1 -1
  137. package/dist/transports.d.ts +90 -29
  138. package/dist/transports.d.ts.map +1 -1
  139. package/dist/transports.js +14 -2
  140. package/dist/transports.mjs +10 -2
  141. package/dist/worker-entry.js +1241 -0
  142. package/dist/worker.d.mts +3 -0
  143. package/dist/worker.d.ts +3 -0
  144. package/dist/worker.js +4 -0
  145. package/dist/worker.mjs +4 -0
  146. package/dist/worker.transport-BP8Q28Z2.d.mts +76 -0
  147. package/dist/worker.transport-BP8Q28Z2.d.mts.map +1 -0
  148. package/dist/worker.transport-BhMyvqQ2.mjs +167 -0
  149. package/dist/worker.transport-BhMyvqQ2.mjs.map +1 -0
  150. package/dist/worker.transport-CfH6z37Z.js +168 -0
  151. package/dist/worker.transport-CfH6z37Z.js.map +1 -0
  152. package/dist/worker.transport-mKXgNK0L.d.ts +76 -0
  153. package/dist/worker.transport-mKXgNK0L.d.ts.map +1 -0
  154. package/package.json +23 -18
  155. package/dist/index-CwFww7VC.d.ts.map +0 -1
  156. package/dist/index-DnyeaoZU.d.mts.map +0 -1
  157. package/dist/logitron-logger.module-BCq3sF27.d.mts.map +0 -1
  158. package/dist/logitron-logger.module-BIGTm2V6.mjs.map +0 -1
  159. package/dist/logitron-logger.module-BTxDpK6u.js.map +0 -1
  160. package/dist/logitron-logger.module-BmT-ewin.d.ts.map +0 -1
  161. package/dist/search-Cg_OasF-.d.ts +0 -1
  162. package/dist/search-DN676Dnz.d.mts +0 -1
  163. package/dist/search-DOvSI-mb.mjs +0 -1
  164. package/dist/search-DoZF3RZj.js +0 -0
  165. package/dist/transport.manager-DETpXuaY.mjs.map +0 -1
  166. package/dist/transport.manager-ciG4r5uz.js.map +0 -1
@@ -1,6 +1,8 @@
1
+ import { f as TransportConfig } from "./transport.types-B5vcyv2k.mjs";
2
+
1
3
  //#region src/types/http.types.d.ts
2
4
  /**
3
- * HTTP-related type definitions for Logitron
5
+ * HTTP-related type definitions for Logixia
4
6
  */
5
7
  interface HttpRequest {
6
8
  method: string;
@@ -49,175 +51,6 @@ interface RequestMetrics {
49
51
  timestamp: number;
50
52
  }
51
53
  //#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
- * Optional predicate evaluated before writing. Return false to skip this
69
- * entry for this transport. Runs after the level check.
70
- */
71
- filter?: (entry: TransportLogEntry) => boolean;
72
- /**
73
- * Write a log entry. May return a Promise (async / cloud transports) or
74
- * void (sync / in-memory batch transports that flush on their own schedule).
75
- */
76
- write(entry: TransportLogEntry): void | Promise<void>;
77
- close?(): Promise<void>;
78
- retry?: TransportRetryConfig;
79
- }
80
- interface TransportLogEntry {
81
- timestamp: Date;
82
- level: string;
83
- message: string;
84
- data?: Record<string, unknown>;
85
- context?: string;
86
- traceId?: string;
87
- appName?: string;
88
- environment?: string;
89
- }
90
- interface FileTransportConfig {
91
- filename: string;
92
- dirname?: string;
93
- maxSize?: string | number;
94
- maxFiles?: number;
95
- datePattern?: string;
96
- zippedArchive?: boolean;
97
- format?: 'json' | 'text' | 'csv';
98
- level?: string;
99
- batchSize?: number;
100
- flushInterval?: number;
101
- rotation?: RotationConfig;
102
- filter?: (entry: TransportLogEntry) => boolean;
103
- }
104
- interface DatabaseTransportConfig {
105
- type: 'mongodb' | 'postgresql' | 'mysql' | 'sqlite';
106
- connectionString?: string;
107
- host?: string;
108
- port?: number;
109
- database: string;
110
- table?: string;
111
- collection?: string;
112
- username?: string;
113
- password?: string;
114
- ssl?: boolean;
115
- level?: string;
116
- batchSize?: number;
117
- flushInterval?: number;
118
- filter?: (entry: TransportLogEntry) => boolean;
119
- }
120
- interface ConsoleTransportConfig {
121
- level?: string;
122
- colorize?: boolean;
123
- timestamp?: boolean;
124
- format?: 'json' | 'text';
125
- /**
126
- * Custom level → color name map injected from `levelOptions.colors`.
127
- * Allows the ConsoleTransport to colorize custom levels (e.g. kafka, mongo)
128
- * using the same colors the user configured on the logger.
129
- */
130
- levelColors?: Record<string, string>;
131
- filter?: (entry: TransportLogEntry) => boolean;
132
- }
133
- interface AnalyticsTransportConfig {
134
- level?: string;
135
- apiKey: string;
136
- projectId?: string;
137
- endpoint?: string;
138
- batchSize?: number;
139
- flushInterval?: number;
140
- enableUserTracking?: boolean;
141
- enableEventTracking?: boolean;
142
- customProperties?: Record<string, unknown>;
143
- filter?: (entry: TransportLogEntry) => boolean;
144
- }
145
- interface MixpanelTransportConfig extends AnalyticsTransportConfig {
146
- token: string;
147
- distinct_id?: string;
148
- enableSuperProperties?: boolean;
149
- superProperties?: Record<string, unknown>;
150
- }
151
- interface DataDogTransportConfig extends AnalyticsTransportConfig {
152
- apiKey: string;
153
- site?: 'datadoghq.com' | 'datadoghq.eu' | 'us3.datadoghq.com' | 'us5.datadoghq.com';
154
- service?: string;
155
- version?: string;
156
- env?: string;
157
- enableMetrics?: boolean;
158
- enableLogs?: boolean;
159
- enableTraces?: boolean;
160
- }
161
- interface GoogleAnalyticsTransportConfig extends AnalyticsTransportConfig {
162
- measurementId: string;
163
- apiSecret: string;
164
- clientId?: string;
165
- enableEcommerce?: boolean;
166
- enableEnhancedMeasurement?: boolean;
167
- }
168
- interface SegmentTransportConfig extends AnalyticsTransportConfig {
169
- writeKey: string;
170
- dataPlaneUrl?: string;
171
- enableBatching?: boolean;
172
- maxBatchSize?: number;
173
- flushAt?: number;
174
- flushInterval?: number;
175
- }
176
- interface RotationConfig {
177
- interval?: '1h' | '6h' | '12h' | '1d' | '1w' | '1m' | '1y';
178
- maxSize?: string | number;
179
- maxFiles?: number;
180
- compress?: boolean;
181
- shouldRotate?: (currentFile: string, stats: FileStats) => boolean;
182
- }
183
- interface FileStats {
184
- size: number;
185
- created: Date;
186
- modified: Date;
187
- }
188
- interface TransportConfig {
189
- console?: ConsoleTransportConfig;
190
- file?: FileTransportConfig | FileTransportConfig[];
191
- database?: DatabaseTransportConfig | DatabaseTransportConfig[];
192
- analytics?: AnalyticsConfig;
193
- custom?: ITransport[];
194
- }
195
- interface AnalyticsConfig {
196
- mixpanel?: MixpanelTransportConfig | MixpanelTransportConfig[];
197
- datadog?: DataDogTransportConfig | DataDogTransportConfig[];
198
- googleAnalytics?: GoogleAnalyticsTransportConfig | GoogleAnalyticsTransportConfig[];
199
- segment?: SegmentTransportConfig | SegmentTransportConfig[];
200
- }
201
- interface IAsyncTransport extends ITransport {
202
- flush(): Promise<void>;
203
- isReady?(): Promise<boolean>;
204
- }
205
- interface IBatchTransport extends ITransport {
206
- readonly batchSize?: number;
207
- readonly flushInterval?: number;
208
- addToBatch(entry: TransportLogEntry): void;
209
- flush(): Promise<void>;
210
- }
211
- type TransportType = 'console' | 'file' | 'database' | 'analytics' | 'custom';
212
- interface TransportMetrics {
213
- name: string;
214
- type: TransportType;
215
- logsWritten: number;
216
- errors: number;
217
- lastWrite: Date;
218
- averageWriteTime: number;
219
- }
220
- //#endregion
221
54
  //#region src/types/index.d.ts
222
55
  declare const LogLevel: {
223
56
  readonly ERROR: "error";
@@ -328,14 +161,17 @@ interface SamplingConfig {
328
161
  */
329
162
  perLevel?: Partial<Record<string, number>>;
330
163
  /**
331
- * Hard cap on logs emitted per second across all levels.
332
- * Excess entries are silently dropped and counted in the sampling stats.
164
+ * Hard cap on logs emitted per second across all levels, applied after the
165
+ * rate / trace decision (so it also holds with `traceConsistent`). ERROR, WARN
166
+ * and FATAL are exempt. Excess entries are dropped and counted in the stats.
333
167
  * Default: unlimited.
334
168
  */
335
169
  maxLogsPerSecond?: number;
336
170
  /**
337
171
  * When true, all log entries sharing a traceId are either all kept or all
338
172
  * dropped — preventing a sampled trace from having missing log entries.
173
+ * Decisions are kept in a bounded LRU (100k traces, 5 min idle TTL) and
174
+ * survive stats resets. Logs with no active trace are sampled individually.
339
175
  * Default: false.
340
176
  */
341
177
  traceConsistent?: boolean;
@@ -398,6 +234,12 @@ interface GracefulShutdownConfig {
398
234
  timeout?: number;
399
235
  /** Signals to listen on. Default: ['SIGTERM', 'SIGINT'] */
400
236
  signals?: NodeJS.Signals[];
237
+ /**
238
+ * Whether logixia ends the process after flushing. Default: 'auto' — exit only
239
+ * when logixia is the sole listener for the signal; if the app has its own
240
+ * handler it flushes and leaves the exit to the app. Exits with 128 + signal number.
241
+ */
242
+ exit?: 'auto' | 'always' | 'never';
401
243
  }
402
244
  interface LoggerConfig<TLevels extends Record<string, number> = Record<string, number>> {
403
245
  appName?: string;
@@ -463,7 +305,9 @@ interface IBaseLogger {
463
305
  isFieldEnabled(fieldName: string): boolean;
464
306
  getFieldState(): Record<string, boolean>;
465
307
  resetFieldState(): void;
308
+ /** @deprecated No-op. Library code never prompts on stdin; use setTransportLevels(). */
466
309
  enableTransportLevelPrompting(): void;
310
+ /** @deprecated No-op. */
467
311
  disableTransportLevelPrompting(): void;
468
312
  setTransportLevels(transportId: string, levels: string[]): void;
469
313
  getTransportLevels(transportId: string): string[] | undefined;
@@ -541,5 +385,5 @@ declare const DEFAULT_LOG_COLORS: {
541
385
  verbose: string;
542
386
  };
543
387
  //#endregion
544
- export { DataDogTransportConfig as A, TransportLogEntry as B, RequestContext as C, TraceIdExtractorConfig as D, TraceIdConfig as E, IBatchTransport as F, RequestMetrics as G, HttpError as H, ITransport as I, RequestTiming as K, MixpanelTransportConfig as L, FileTransportConfig as M, GoogleAnalyticsTransportConfig as N, AnalyticsTransportConfig as O, IAsyncTransport as P, SegmentTransportConfig as R, RedactConfig as S, TimingEntry as T, HttpRequest as U, TransportMetrics as V, HttpResponse as W, LogLevel as _, DEFAULT_LOG_LEVELS as a, LoggerWithLevels as b, ExtractLevels as c, ILogFormatter as d, ILogger as f, LogFieldKey as g, LogEntry as h, DEFAULT_LOG_COLORS as i, DatabaseTransportConfig as j, ConsoleTransportConfig as k, GracefulShutdownConfig as l, LogColor as m, ContextData as n, Environment as o, ILoggerDefault as p, CustomLevelMethods as r, ErrorSerializationOptions as s, AdaptiveSamplingConfig as t, IBaseLogger as u, LogLevelString as v, SamplingConfig as w, NamespaceLevels as x, LoggerConfig as y, TransportConfig as z };
545
- //# sourceMappingURL=index-CwFww7VC.d.ts.map
388
+ export { HttpResponse as A, RequestContext as C, TraceIdExtractorConfig as D, TraceIdConfig as E, RequestTiming as M, HttpError as O, RedactConfig as S, TimingEntry as T, LogLevel as _, DEFAULT_LOG_LEVELS as a, LoggerWithLevels as b, ExtractLevels as c, ILogFormatter as d, ILogger as f, LogFieldKey as g, LogEntry as h, DEFAULT_LOG_COLORS as i, RequestMetrics as j, HttpRequest as k, GracefulShutdownConfig as l, LogColor as m, ContextData as n, Environment as o, ILoggerDefault as p, CustomLevelMethods as r, ErrorSerializationOptions as s, AdaptiveSamplingConfig as t, IBaseLogger as u, LogLevelString as v, SamplingConfig as w, NamespaceLevels as x, LoggerConfig as y };
389
+ //# sourceMappingURL=index-BPKwwERo.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BPKwwERo.d.mts","names":[],"sources":["../src/types/http.types.ts","../src/types/index.ts"],"sourcesContent":[],"mappings":";;;;;;AAIiB,UAAA,WAAA,CAAW;EAGjB,MAAA,EAAA,MAAA;EACD,GAAA,EAAA,MAAA;EACC,OAAA,EAFA,MAEA,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,CAAA;EAAM,KAAA,CAAA,EADP,MACO,CAAA,MAAA,EAAA,OAAA,CAAA;EAOA,MAAA,CAAA,EAPN,MAOkB,CAAA,MAAA,EAAA,OAElB,CAAA;EAMM,IAAA,CAAA,EAAA,OAAU;EAMV,EAAA,CAAA,EAAA,MAAA;EAaA,SAAA,CAAA,EAAA,MAAc;;;UA3Bd,YAAA;ECRJ,UAAA,EAOH,MAAA;EAEE,OAAA,EDCD,MCDS,CAAA,MAAA,EAAW,MAAA,GAAuB,MAAA,EAAA,CAAQ;EAClD,IAAA,CAAA,EAAA,OAAA;EAGA,SAAA,EAAQ,MAAA;EAoBR,aAAA,CAAW,EAAA,MAAA;AAevB;AAGiB,UDnCA,SAAA,SAAkB,KCmCI,CAAA;EAOtB,UAAA,CAAA,EAAA,MAAa;EAmBb,IAAA,CAAA,EAAA,MAAA;EA6DA,OAAA,CAAA,EDvHL,MCuHK,CAAc,MAAA,EAAA,OAAA,CAAA;;AAYlB,UDhII,aAAA,CCgIJ;EA+BA,KAAA,EAAA,MAAA;EAAsB,GAAA,CAAA,EAAA,MAAA;EAGlB,QAAA,CAAA,EAAA,MAAA;EAoCL,MAAA,CAAA,EAAA;IAGK,GAAA,CAAA,EAAA,MAAA;IAeA,GAAA,CAAA,EAAA,MAAY;IAAiB,GAAA,CAAA,EAAA,MAAA;IAAyB,OAAA,CAAA,EAAA,MAAA;IAEvD,QAAA,CAAA,EAAA,MAAA;EACM,CAAA;;AASU,UDvNf,cAAA,CCuNe;EACf,OAAA,EAAA,MAAA;EACqB,MAAA,EAAA,MAAA;EAAU,GAAA,EAAA,MAAA;EAAU,UAAA,CAAA,EAAA,MAAA;EAAjC,QAAA,CAAA,EAAA,MAAA;EAAR,aAAA,CAAA,EAAA,MAAA;EAGS,SAAA,CAAA,EAAA,MAAA;EAAP,EAAA,CAAA,EAAA,MAAA;EAAR,SAAA,EAAA,MAAA;;;;AD/PD,cCAG,QDAH,EAAA;EACC,SAAA,KAAA,EAAA,OAAA;EAAM,SAAA,IAAA,EAAA,MAAA;EAOA,SAAA,IAAA,EAAY,MAAA;EAQZ,SAAA,KAAU,EAAA,OAAA;EAMV,SAAA,KAAA,EAAa,OAAA;EAab,SAAA,OAAA,EAAc,SAAA;;KC1BnB,QAAA,WAAmB,uBAAuB;KAC1C,cAAA,GAAiB;AAVhB,KAaD,QAAA,GANF,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;AAEE,KAwBA,WAAA,GAxBQ,WAAkC,GAAA,OAAQ,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,SAAA,GAAA,WAAA,GAAA,SAAA,GAAA,QAAA,GAAA,WAAA,GAAA,aAAA;AAClD,KAsCA,WAAA,GAtCc,aAAG,GAAQ,YAAA;AAGzB,UAsCK,sBAAA,CAtCG;EAoBR,MAAA,CAAA,EAAA,MAAW,GAAA,MAAA,EAAA;EAeX,KAAA,CAAA,EAAA,MAAW,GAAA,MAAA,EAAA;EAGN,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EAOA,MAAA,CAAA,EAAA,MAAA,GAAa,MAAA,EAAA;AAmB9B;AA6DiB,UAhFA,aAAA,CAgFc;EAYV,OAAA,EAAA,OAAA;EAAR,SAAA,CAAA,EAAA,GAAA,GAAA,MAAA;EA+BA,UAAA,CAAA,EAAA,MAAA;EAAsB,SAAA,CAAA,EAvHrB,sBAuHqB;EAGlB;AAoCjB;AAGA;AAeA;;;;;;;EAaiB,cAAA,CAAA,EAAA,MAAA,GAAA,KAAA;;AAC+B,UA/K/B,YAAA,CA+K+B;EAAU;;;;EAGvC,KAAA,CAAA,EAAA,MAAA,EAAA;EAAR;;;;;;;AA8BX;;;;;;EAG+B,YAAA,CAAA,EAAA,MAAA,EAAA;EAA0B;;;;EAEC,QAAA,CAAA,EA7L7C,MA6L6C,EAAA;EAC1B;EAA0B,MAAA,CAAA,EAAA,MAAA;EACxB;;;;;;;;;;;;;;;AAwClC;;EACc,UAAA,CAAA,EAAA,OAAA,GAAA,cAAA,GAAA,YAAA;;;;AAKd;;;;;;AAKA;AAIA;;;;AAGc,UApNG,cAAA,CAoNH;EACA;;;;EAEI,IAAA,CAAA,EAAA,MAAA;EAGN;;;;;;EAGK,QAAA,CAAA,EAjNJ,OAiNY,CAjNJ,MAwNT,CAAA,MAEF,EAAA,MAAK,CAAA,CAAA;EAIE;AAOjB;AAQA;AAKA;AAKA;;EAMa,gBAAA,CAAA,EAAA,MAAA;EACH;;AAQV;AASA;;;;;;;;;;;;;;;;;;;;aAhPa;;UAGI,sBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCL,eAAA,GAAkB,eAAe;UAG5B,sBAAA;;;;;;YAML,MAAA,CAAO;;;;;;;;UASF,6BAA6B,yBAAyB;;gBAEvD;sBACM;;;;;;;;kBASA,UAAU;aACf;aACA,QAAQ,aAAa,UAAU,UAAU;;WAG/C,QAAQ,OAAO;;;;;WAKf;;;;;;oBAMS;;;;;;+BAMW;;;;;;aAMlB;;eAEE;;;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;;;;;;;;;;gCAaa,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;;;;;WAKN;aACE;UACH;;;;;;cAQG;;;;;;;;cASA"}
@@ -1,6 +1,8 @@
1
+ import { f as TransportConfig } from "./transport.types-BuY84TwO.js";
2
+
1
3
  //#region src/types/http.types.d.ts
2
4
  /**
3
- * HTTP-related type definitions for Logitron
5
+ * HTTP-related type definitions for Logixia
4
6
  */
5
7
  interface HttpRequest {
6
8
  method: string;
@@ -49,175 +51,6 @@ interface RequestMetrics {
49
51
  timestamp: number;
50
52
  }
51
53
  //#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
- * Optional predicate evaluated before writing. Return false to skip this
69
- * entry for this transport. Runs after the level check.
70
- */
71
- filter?: (entry: TransportLogEntry) => boolean;
72
- /**
73
- * Write a log entry. May return a Promise (async / cloud transports) or
74
- * void (sync / in-memory batch transports that flush on their own schedule).
75
- */
76
- write(entry: TransportLogEntry): void | Promise<void>;
77
- close?(): Promise<void>;
78
- retry?: TransportRetryConfig;
79
- }
80
- interface TransportLogEntry {
81
- timestamp: Date;
82
- level: string;
83
- message: string;
84
- data?: Record<string, unknown>;
85
- context?: string;
86
- traceId?: string;
87
- appName?: string;
88
- environment?: string;
89
- }
90
- interface FileTransportConfig {
91
- filename: string;
92
- dirname?: string;
93
- maxSize?: string | number;
94
- maxFiles?: number;
95
- datePattern?: string;
96
- zippedArchive?: boolean;
97
- format?: 'json' | 'text' | 'csv';
98
- level?: string;
99
- batchSize?: number;
100
- flushInterval?: number;
101
- rotation?: RotationConfig;
102
- filter?: (entry: TransportLogEntry) => boolean;
103
- }
104
- interface DatabaseTransportConfig {
105
- type: 'mongodb' | 'postgresql' | 'mysql' | 'sqlite';
106
- connectionString?: string;
107
- host?: string;
108
- port?: number;
109
- database: string;
110
- table?: string;
111
- collection?: string;
112
- username?: string;
113
- password?: string;
114
- ssl?: boolean;
115
- level?: string;
116
- batchSize?: number;
117
- flushInterval?: number;
118
- filter?: (entry: TransportLogEntry) => boolean;
119
- }
120
- interface ConsoleTransportConfig {
121
- level?: string;
122
- colorize?: boolean;
123
- timestamp?: boolean;
124
- format?: 'json' | 'text';
125
- /**
126
- * Custom level → color name map injected from `levelOptions.colors`.
127
- * Allows the ConsoleTransport to colorize custom levels (e.g. kafka, mongo)
128
- * using the same colors the user configured on the logger.
129
- */
130
- levelColors?: Record<string, string>;
131
- filter?: (entry: TransportLogEntry) => boolean;
132
- }
133
- interface AnalyticsTransportConfig {
134
- level?: string;
135
- apiKey: string;
136
- projectId?: string;
137
- endpoint?: string;
138
- batchSize?: number;
139
- flushInterval?: number;
140
- enableUserTracking?: boolean;
141
- enableEventTracking?: boolean;
142
- customProperties?: Record<string, unknown>;
143
- filter?: (entry: TransportLogEntry) => boolean;
144
- }
145
- interface MixpanelTransportConfig extends AnalyticsTransportConfig {
146
- token: string;
147
- distinct_id?: string;
148
- enableSuperProperties?: boolean;
149
- superProperties?: Record<string, unknown>;
150
- }
151
- interface DataDogTransportConfig extends AnalyticsTransportConfig {
152
- apiKey: string;
153
- site?: 'datadoghq.com' | 'datadoghq.eu' | 'us3.datadoghq.com' | 'us5.datadoghq.com';
154
- service?: string;
155
- version?: string;
156
- env?: string;
157
- enableMetrics?: boolean;
158
- enableLogs?: boolean;
159
- enableTraces?: boolean;
160
- }
161
- interface GoogleAnalyticsTransportConfig extends AnalyticsTransportConfig {
162
- measurementId: string;
163
- apiSecret: string;
164
- clientId?: string;
165
- enableEcommerce?: boolean;
166
- enableEnhancedMeasurement?: boolean;
167
- }
168
- interface SegmentTransportConfig extends AnalyticsTransportConfig {
169
- writeKey: string;
170
- dataPlaneUrl?: string;
171
- enableBatching?: boolean;
172
- maxBatchSize?: number;
173
- flushAt?: number;
174
- flushInterval?: number;
175
- }
176
- interface RotationConfig {
177
- interval?: '1h' | '6h' | '12h' | '1d' | '1w' | '1m' | '1y';
178
- maxSize?: string | number;
179
- maxFiles?: number;
180
- compress?: boolean;
181
- shouldRotate?: (currentFile: string, stats: FileStats) => boolean;
182
- }
183
- interface FileStats {
184
- size: number;
185
- created: Date;
186
- modified: Date;
187
- }
188
- interface TransportConfig {
189
- console?: ConsoleTransportConfig;
190
- file?: FileTransportConfig | FileTransportConfig[];
191
- database?: DatabaseTransportConfig | DatabaseTransportConfig[];
192
- analytics?: AnalyticsConfig;
193
- custom?: ITransport[];
194
- }
195
- interface AnalyticsConfig {
196
- mixpanel?: MixpanelTransportConfig | MixpanelTransportConfig[];
197
- datadog?: DataDogTransportConfig | DataDogTransportConfig[];
198
- googleAnalytics?: GoogleAnalyticsTransportConfig | GoogleAnalyticsTransportConfig[];
199
- segment?: SegmentTransportConfig | SegmentTransportConfig[];
200
- }
201
- interface IAsyncTransport extends ITransport {
202
- flush(): Promise<void>;
203
- isReady?(): Promise<boolean>;
204
- }
205
- interface IBatchTransport extends ITransport {
206
- readonly batchSize?: number;
207
- readonly flushInterval?: number;
208
- addToBatch(entry: TransportLogEntry): void;
209
- flush(): Promise<void>;
210
- }
211
- type TransportType = 'console' | 'file' | 'database' | 'analytics' | 'custom';
212
- interface TransportMetrics {
213
- name: string;
214
- type: TransportType;
215
- logsWritten: number;
216
- errors: number;
217
- lastWrite: Date;
218
- averageWriteTime: number;
219
- }
220
- //#endregion
221
54
  //#region src/types/index.d.ts
222
55
  declare const LogLevel: {
223
56
  readonly ERROR: "error";
@@ -328,14 +161,17 @@ interface SamplingConfig {
328
161
  */
329
162
  perLevel?: Partial<Record<string, number>>;
330
163
  /**
331
- * Hard cap on logs emitted per second across all levels.
332
- * Excess entries are silently dropped and counted in the sampling stats.
164
+ * Hard cap on logs emitted per second across all levels, applied after the
165
+ * rate / trace decision (so it also holds with `traceConsistent`). ERROR, WARN
166
+ * and FATAL are exempt. Excess entries are dropped and counted in the stats.
333
167
  * Default: unlimited.
334
168
  */
335
169
  maxLogsPerSecond?: number;
336
170
  /**
337
171
  * When true, all log entries sharing a traceId are either all kept or all
338
172
  * dropped — preventing a sampled trace from having missing log entries.
173
+ * Decisions are kept in a bounded LRU (100k traces, 5 min idle TTL) and
174
+ * survive stats resets. Logs with no active trace are sampled individually.
339
175
  * Default: false.
340
176
  */
341
177
  traceConsistent?: boolean;
@@ -398,6 +234,12 @@ interface GracefulShutdownConfig {
398
234
  timeout?: number;
399
235
  /** Signals to listen on. Default: ['SIGTERM', 'SIGINT'] */
400
236
  signals?: NodeJS.Signals[];
237
+ /**
238
+ * Whether logixia ends the process after flushing. Default: 'auto' — exit only
239
+ * when logixia is the sole listener for the signal; if the app has its own
240
+ * handler it flushes and leaves the exit to the app. Exits with 128 + signal number.
241
+ */
242
+ exit?: 'auto' | 'always' | 'never';
401
243
  }
402
244
  interface LoggerConfig<TLevels extends Record<string, number> = Record<string, number>> {
403
245
  appName?: string;
@@ -463,7 +305,9 @@ interface IBaseLogger {
463
305
  isFieldEnabled(fieldName: string): boolean;
464
306
  getFieldState(): Record<string, boolean>;
465
307
  resetFieldState(): void;
308
+ /** @deprecated No-op. Library code never prompts on stdin; use setTransportLevels(). */
466
309
  enableTransportLevelPrompting(): void;
310
+ /** @deprecated No-op. */
467
311
  disableTransportLevelPrompting(): void;
468
312
  setTransportLevels(transportId: string, levels: string[]): void;
469
313
  getTransportLevels(transportId: string): string[] | undefined;
@@ -541,5 +385,5 @@ declare const DEFAULT_LOG_COLORS: {
541
385
  verbose: string;
542
386
  };
543
387
  //#endregion
544
- export { DataDogTransportConfig as A, TransportLogEntry as B, RequestContext as C, TraceIdExtractorConfig as D, TraceIdConfig as E, IBatchTransport as F, RequestMetrics as G, HttpError as H, ITransport as I, RequestTiming as K, MixpanelTransportConfig as L, FileTransportConfig as M, GoogleAnalyticsTransportConfig as N, AnalyticsTransportConfig as O, IAsyncTransport as P, SegmentTransportConfig as R, RedactConfig as S, TimingEntry as T, HttpRequest as U, TransportMetrics as V, HttpResponse as W, LogLevel as _, DEFAULT_LOG_LEVELS as a, LoggerWithLevels as b, ExtractLevels as c, ILogFormatter as d, ILogger as f, LogFieldKey as g, LogEntry as h, DEFAULT_LOG_COLORS as i, DatabaseTransportConfig as j, ConsoleTransportConfig as k, GracefulShutdownConfig as l, LogColor as m, ContextData as n, Environment as o, ILoggerDefault as p, CustomLevelMethods as r, ErrorSerializationOptions as s, AdaptiveSamplingConfig as t, IBaseLogger as u, LogLevelString as v, SamplingConfig as w, NamespaceLevels as x, LoggerConfig as y, TransportConfig as z };
545
- //# sourceMappingURL=index-DnyeaoZU.d.mts.map
388
+ export { HttpResponse as A, RequestContext as C, TraceIdExtractorConfig as D, TraceIdConfig as E, RequestTiming as M, HttpError as O, RedactConfig as S, TimingEntry as T, LogLevel as _, DEFAULT_LOG_LEVELS as a, LoggerWithLevels as b, ExtractLevels as c, ILogFormatter as d, ILogger as f, LogFieldKey as g, LogEntry as h, DEFAULT_LOG_COLORS as i, RequestMetrics as j, HttpRequest as k, GracefulShutdownConfig as l, LogColor as m, ContextData as n, Environment as o, ILoggerDefault as p, CustomLevelMethods as r, ErrorSerializationOptions as s, AdaptiveSamplingConfig as t, IBaseLogger as u, LogLevelString as v, SamplingConfig as w, NamespaceLevels as x, LoggerConfig as y };
389
+ //# sourceMappingURL=index-C1X-TE5I.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-C1X-TE5I.d.ts","names":[],"sources":["../src/types/http.types.ts","../src/types/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,9 +1,10 @@
1
- import { B as TransportLogEntry, C as RequestContext, D as TraceIdExtractorConfig, E as TraceIdConfig, G as RequestMetrics, H as HttpError, K as RequestTiming, P as IAsyncTransport, S as RedactConfig, T as TimingEntry, U as HttpRequest, W as HttpResponse, _ as LogLevel, a as DEFAULT_LOG_LEVELS, b as LoggerWithLevels, c as ExtractLevels, d as ILogFormatter, f as ILogger, g as LogFieldKey, h as LogEntry, i as DEFAULT_LOG_COLORS, l as GracefulShutdownConfig, m as LogColor, n as ContextData, o as Environment, p as ILoggerDefault, r as CustomLevelMethods, s as ErrorSerializationOptions, t as AdaptiveSamplingConfig, u as IBaseLogger, v as LogLevelString, w as SamplingConfig, x as NamespaceLevels, y as LoggerConfig } from "./index-DnyeaoZU.mjs";
2
- import { a as LogixiaOptionsFactory, c as LogixiaLoggerService, d as LogixiaLogger, f as createLogger$1, g as usePlugin, h as globalPluginRegistry, i as LogixiaLoggerModule, l as LogixiaServiceWith, m as PluginRegistry, n as LOGIXIA_LOGGER_PREFIX, o as WebSocketTraceInterceptor, p as LogixiaPlugin, r as LogixiaAsyncOptions, s as KafkaTraceInterceptor, t as LOGIXIA_LOGGER_CONFIG, u as LogixiaServiceWithLevels } from "./logitron-logger.module-BCq3sF27.mjs";
3
- import "./search-DN676Dnz.mjs";
1
+ import { p as TransportLogEntry, s as IAsyncTransport } from "./transport.types-B5vcyv2k.mjs";
2
+ import { A as HttpResponse, C as RequestContext, D as TraceIdExtractorConfig, E as TraceIdConfig, M as RequestTiming, O as HttpError, S as RedactConfig, T as TimingEntry, _ as LogLevel, a as DEFAULT_LOG_LEVELS, b as LoggerWithLevels, c as ExtractLevels, d as ILogFormatter, f as ILogger, g as LogFieldKey, h as LogEntry, i as DEFAULT_LOG_COLORS, j as RequestMetrics, k as HttpRequest, l as GracefulShutdownConfig, m as LogColor, n as ContextData, o as Environment, p as ILoggerDefault, r as CustomLevelMethods, s as ErrorSerializationOptions, t as AdaptiveSamplingConfig, u as IBaseLogger, v as LogLevelString, w as SamplingConfig, x as NamespaceLevels, y as LoggerConfig } from "./index-BPKwwERo.mjs";
3
+ import { _ as usePlugin, a as LogixiaLoggerModule, c as KafkaTraceInterceptor, d as LogixiaServiceWithLevels, f as LogixiaLogger, g as globalPluginRegistry, h as PluginRegistry, i as LogixiaAsyncOptions, l as LogixiaLoggerService, m as LogixiaPlugin, n as LOGIXIA_LOGGER_PREFIX, o as LogixiaOptionsFactory, p as createLogger$1, r as LOGIXIA_TRACE_CONFIG, s as WebSocketTraceInterceptor, t as LOGIXIA_LOGGER_CONFIG, u as LogixiaServiceWith } from "./logitron-logger.module-zDKVd_o0.mjs";
4
+ import { A as SearchStats, C as SearchFilters, D as SearchPreset, E as SearchOptions, F as SuggestionType, I as TimeRange, L as TimelineEvent, M as SemanticIndex, N as SimilarLog, O as SearchQuery, P as SortField, S as RelativeTime, T as SearchMatch, _ as ParsedNLQuery, a as ILogSearchEngine, b as RelatedLog, c as SearchManager, d as CorrelatedLogs, f as EntityType, g as LogPattern, h as LogCorrelationSummary, i as BasicSearchEngine, j as SearchSuggestion, k as SearchResult, l as SearchManagerConfig, m as LogCluster, n as NLPSearchEngine, o as BasicLogIndexer, p as ExportOptions, r as CorrelationEngine, s as ILogIndexer, t as PatternRecognitionEngine, u as AnomalyDetection, v as QueryEntity, w as SearchHighlight, x as RelationshipType, y as QueryIntent } from "./search-CQOo-Iq6.mjs";
5
+ import { IncomingMessage, ServerResponse } from "node:http";
4
6
  import { AsyncLocalStorage } from "node:async_hooks";
5
7
  import { ArgumentsHost, ExceptionFilter } from "@nestjs/common";
6
- import { IncomingMessage, ServerResponse } from "node:http";
7
8
 
8
9
  //#region src/core/nestjs-extras.d.ts
9
10
 
@@ -276,10 +277,9 @@ declare function disableOtelBridge(): void;
276
277
  //#endregion
277
278
  //#region src/utils/redact.utils.d.ts
278
279
  /**
279
- * Deep-clone and redact an object according to the given RedactConfig.
280
- * Non-objects are returned as-is (with pattern replacement on strings).
281
- *
282
- * The function is intentionally non-mutating — it returns a new object.
280
+ * Redact an object according to the given RedactConfig and return a new
281
+ * top-level object. Subtrees with nothing to redact are shared with the input,
282
+ * never mutated. Circular references become `[Circular]`.
283
283
  */
284
284
  declare function redactObject(obj: Record<string, unknown>, config: RedactConfig, _currentPath?: string): Record<string, unknown>;
285
285
  /**
@@ -387,6 +387,13 @@ declare function decycleValue(value: unknown, bigint?: 'string' | 'number'): unk
387
387
  * into the live object graph (mutates and returns the parsed input).
388
388
  */
389
389
  declare function retrocycle<T>(root: T): T;
390
+ /**
391
+ * `JSON.stringify` for log output. Takes the plain fast path first and only
392
+ * falls back to {@link safeStringify} when that throws (a cycle, a BigInt, a
393
+ * throwing `toJSON`), so a bad payload costs nothing until it shows up.
394
+ * Never throws: if even the safe walk fails, the value is replaced by a marker.
395
+ */
396
+ declare function stringifyForLog(value: unknown): string;
390
397
  //#endregion
391
398
  //#region src/utils/shutdown.utils.d.ts
392
399
  /**
@@ -396,6 +403,7 @@ declare function retrocycle<T>(root: T): T;
396
403
  * exits on SIGTERM / SIGINT — solving the "last N seconds of logs are lost on
397
404
  * deployment" problem reported in Pino issue #2002 and LogDNA issue #15.
398
405
  */
406
+ type ExitMode = 'auto' | 'always' | 'never';
399
407
  interface FlushOnExitOptions {
400
408
  /** How long (ms) to wait for transports to flush before force-exiting. Default: 5000 */
401
409
  timeout?: number;
@@ -405,14 +413,27 @@ interface FlushOnExitOptions {
405
413
  beforeFlush?: () => void | Promise<void>;
406
414
  /** Called after all loggers have flushed successfully */
407
415
  afterFlush?: () => void | Promise<void>;
416
+ /**
417
+ * Whether logixia ends the process after flushing.
418
+ * - `'auto'` (default): exit only when logixia's handler is the only listener for the
419
+ * signal. If the app registered its own handler (server.close(), NestJS shutdown
420
+ * hooks), logixia just flushes and leaves the exit to the app.
421
+ * - `'always'`: always exit after the flush.
422
+ * - `'never'`: never exit; only flush.
423
+ * When logixia exits it uses 128 + the signal number.
424
+ */
425
+ exit?: ExitMode;
408
426
  }
409
427
  type Closeable = {
410
428
  close(): Promise<void>;
429
+ flush?(): Promise<void>;
411
430
  };
412
431
  /**
413
432
  * Register a logger instance so it is included in the graceful shutdown flush.
414
433
  * Called automatically when `gracefulShutdown: true` is set in logger config.
415
434
  */
435
+ /** Test helper: number of loggers currently registered for graceful shutdown. */
436
+ declare function _shutdownRegistrySize(): number;
416
437
  declare function registerForShutdown(logger: Closeable): void;
417
438
  /**
418
439
  * Deregister a logger (e.g. after `logger.close()` is called manually).
@@ -420,7 +441,11 @@ declare function registerForShutdown(logger: Closeable): void;
420
441
  declare function deregisterFromShutdown(logger: Closeable): void;
421
442
  /**
422
443
  * Register SIGTERM / SIGINT handlers that flush all registered loggers before
423
- * the process exits. Idempotent — calling multiple times is safe.
444
+ * the process exits. Idempotent — the first call wins and later calls with
445
+ * conflicting options print a warning. The process is ended with 128 + signal
446
+ * number only when logixia's handler is the sole listener for that signal (see
447
+ * `exit`); otherwise it just flushes and leaves shutdown to the application.
448
+ * Loggers are also flushed (not closed) on `beforeExit`.
424
449
  *
425
450
  * @example
426
451
  * ```ts
@@ -790,6 +815,10 @@ interface OtlpLogTransportConfig {
790
815
  batchSize?: number;
791
816
  /** Auto-flush interval (ms). Default: 5000. */
792
817
  flushIntervalMs?: number;
818
+ /** Abort a request that has not finished after this many ms. Default: 10000. */
819
+ requestTimeoutMs?: number;
820
+ /** Max buffered entries; the oldest are dropped past this. Default: 10000. */
821
+ maxBufferSize?: number;
793
822
  level?: string;
794
823
  }
795
824
  /**
@@ -808,8 +837,9 @@ declare class OtlpLogTransport implements IAsyncTransport {
808
837
  private readonly headers;
809
838
  private readonly batchSize;
810
839
  private readonly flushIntervalMs;
840
+ private readonly requestTimeoutMs;
811
841
  private readonly resourceAttrs;
812
- private batch;
842
+ private readonly buffer;
813
843
  private flushTimer;
814
844
  constructor(config: OtlpLogTransportConfig);
815
845
  write(entry: TransportLogEntry): void;
@@ -1436,5 +1466,5 @@ declare const logger: LogixiaLogger<{
1436
1466
  outputs: string[];
1437
1467
  }>;
1438
1468
  //#endregion
1439
- export { AdaptiveSamplingConfig, type BuildParams, type CompiledSchema, ContextData, type CounterConfig, CustomLevelMethods, DEFAULT_CONFIG, DEFAULT_LOG_COLORS, DEFAULT_LOG_LEVELS, DEFAULT_TRACE_HEADERS, Environment, type ErrorDetail, ErrorResponseBuilder, ErrorSerializationOptions, ExtractLevels, FlushOnExitOptions, type GaugeConfig, GracefulShutdownConfig, type HistogramConfig, HttpError, HttpRequest, HttpResponse, IBaseLogger, ILogFormatter, ILogger, ILoggerDefault, InjectLogger, JsonFormatter, KafkaTraceInterceptor, LOGIXIA_LOGGER_CONFIG, LOGIXIA_LOGGER_PREFIX, type LevelSignalOptions, LogColor, type LogContext, LogEntry, type LogFieldDef, LogFieldKey, type LogFieldType, LogLevel, LogLevelString, LogMethod, type LogMethodOptions, type LogSchema, LoggerConfig, LoggerConfig as LoggerConfigInterface, type LoggerLike, LoggerWithLevels, LogixiaAsyncOptions, LogixiaContext, type LogixiaErrorResponse, LogixiaException, LogixiaExceptionFilter, type LogixiaExceptionOptions, LogixiaLogger, LogixiaLoggerModule, LogixiaLoggerService, LogixiaOptionsFactory, type LogixiaPlugin, LogixiaServiceWith, LogixiaServiceWithLevels, type MetricConfig, type MetricsMap, MetricsPlugin, NamespaceLevels, type OtelBridgeOptions, type OtelSpanContext, OtlpLogTransport, type OtlpLogTransportConfig, PluginRegistry, type ReconfigurableLogger, type RedactConfig, RequestContext, RequestMetrics, RequestTiming, type SafeStringifyOptions, SamplingConfig, type SamplingStats, TRACE_CONTEXT_KEY, TextFormatter, TimingEntry, TraceContext, TraceIdConfig, TraceIdExtractorConfig, type TypedLogger, WebSocketTraceInterceptor, type WideEventFields, type WideEventLogger, type WideEventMiddlewareOptions, type WideEventOptions, _setActiveContextKey, addEventFields, applyRedaction, createExpressContextMiddleware, createFastifyContextHook, createLevelControlHandler, createLogger, createLoggerService, createMetricsPlugin, createTraceMiddleware, createTypedLogger, decycleValue, defineLogSchema, deregisterFromShutdown, disableOtelBridge, extractTraceId, flushOnExit, generateRequestId, generateTraceId, getActiveOtelContext, getCurrentTraceId, getEventFields, getOtelMetaFields, getTraceContextKey, globalPluginRegistry, initOtelBridge, isError, isLogixiaException, logger, normalizeError, redactObject, registerForShutdown, registerLevelSignal, resetShutdownHandlers, retrocycle, runWithTraceId, safeStringify, serializeError, setEventField, setTraceId, toOtelSeverity, traceStorage, usePlugin, wideEventMiddleware, withWideEvent };
1469
+ export { AdaptiveSamplingConfig, AnomalyDetection, BasicLogIndexer, BasicSearchEngine, type BuildParams, type CompiledSchema, ContextData, CorrelatedLogs, CorrelationEngine, type CounterConfig, CustomLevelMethods, DEFAULT_CONFIG, DEFAULT_LOG_COLORS, DEFAULT_LOG_LEVELS, DEFAULT_TRACE_HEADERS, EntityType, Environment, type ErrorDetail, ErrorResponseBuilder, ErrorSerializationOptions, ExitMode, ExportOptions, ExtractLevels, FlushOnExitOptions, type GaugeConfig, GracefulShutdownConfig, type HistogramConfig, HttpError, HttpRequest, HttpResponse, IBaseLogger, ILogFormatter, ILogIndexer, ILogSearchEngine, ILogger, ILoggerDefault, InjectLogger, JsonFormatter, KafkaTraceInterceptor, LOGIXIA_LOGGER_CONFIG, LOGIXIA_LOGGER_PREFIX, LOGIXIA_TRACE_CONFIG, type LevelSignalOptions, LogCluster, LogColor, type LogContext, LogCorrelationSummary, LogEntry, type LogFieldDef, LogFieldKey, type LogFieldType, LogLevel, LogLevelString, LogMethod, type LogMethodOptions, LogPattern, type LogSchema, LoggerConfig, LoggerConfig as LoggerConfigInterface, type LoggerLike, LoggerWithLevels, LogixiaAsyncOptions, LogixiaContext, type LogixiaErrorResponse, LogixiaException, LogixiaExceptionFilter, type LogixiaExceptionOptions, LogixiaLogger, LogixiaLoggerModule, LogixiaLoggerService, LogixiaOptionsFactory, type LogixiaPlugin, LogixiaServiceWith, LogixiaServiceWithLevels, type MetricConfig, type MetricsMap, MetricsPlugin, NLPSearchEngine, NamespaceLevels, type OtelBridgeOptions, type OtelSpanContext, OtlpLogTransport, type OtlpLogTransportConfig, ParsedNLQuery, PatternRecognitionEngine, PluginRegistry, QueryEntity, QueryIntent, type ReconfigurableLogger, type RedactConfig, RelatedLog, RelationshipType, RelativeTime, RequestContext, RequestMetrics, RequestTiming, type SafeStringifyOptions, SamplingConfig, type SamplingStats, SearchFilters, SearchHighlight, SearchManager, SearchManagerConfig, SearchMatch, SearchOptions, SearchPreset, SearchQuery, SearchResult, SearchStats, SearchSuggestion, SemanticIndex, SimilarLog, SortField, SuggestionType, TRACE_CONTEXT_KEY, TextFormatter, TimeRange, TimelineEvent, TimingEntry, TraceContext, TraceIdConfig, TraceIdExtractorConfig, type TypedLogger, WebSocketTraceInterceptor, type WideEventFields, type WideEventLogger, type WideEventMiddlewareOptions, type WideEventOptions, _setActiveContextKey, _shutdownRegistrySize, addEventFields, applyRedaction, createExpressContextMiddleware, createFastifyContextHook, createLevelControlHandler, createLogger, createLoggerService, createMetricsPlugin, createTraceMiddleware, createTypedLogger, decycleValue, defineLogSchema, deregisterFromShutdown, disableOtelBridge, extractTraceId, flushOnExit, generateRequestId, generateTraceId, getActiveOtelContext, getCurrentTraceId, getEventFields, getOtelMetaFields, getTraceContextKey, globalPluginRegistry, initOtelBridge, isError, isLogixiaException, logger, normalizeError, redactObject, registerForShutdown, registerLevelSignal, resetShutdownHandlers, retrocycle, runWithTraceId, safeStringify, serializeError, setEventField, setTraceId, stringifyForLog, toOtelSeverity, traceStorage, usePlugin, wideEventMiddleware, withWideEvent };
1440
1470
  //# sourceMappingURL=index.d.mts.map