logixia 1.10.2 → 1.11.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 (57) hide show
  1. package/README.md +121 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/{index-Co47qPnq.d.mts → index-CSFeEGLb.d.ts} +32 -2
  4. package/dist/index-CSFeEGLb.d.ts.map +1 -0
  5. package/dist/{index-F-A7hg1u.d.ts → index-Cw-sN_0_.d.mts} +32 -2
  6. package/dist/index-Cw-sN_0_.d.mts.map +1 -0
  7. package/dist/index.d.mts +256 -5
  8. package/dist/index.d.mts.map +1 -1
  9. package/dist/index.d.ts +256 -5
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +569 -33
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +557 -34
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/{logitron-logger.module-BLT1y5Iq.d.ts → logitron-logger.module-DGwNfjBX.d.mts} +21 -2
  16. package/dist/logitron-logger.module-DGwNfjBX.d.mts.map +1 -0
  17. package/dist/{logitron-logger.module-bJ1hGhaL.js → logitron-logger.module-DHFampon.js} +186 -38
  18. package/dist/logitron-logger.module-DHFampon.js.map +1 -0
  19. package/dist/{logitron-logger.module-B8NklSC4.d.mts → logitron-logger.module-DfyBsT_K.d.ts} +21 -2
  20. package/dist/logitron-logger.module-DfyBsT_K.d.ts.map +1 -0
  21. package/dist/{logitron-logger.module-Bt_Jei1V.mjs → logitron-logger.module-QYBy_Kkq.mjs} +186 -38
  22. package/dist/logitron-logger.module-QYBy_Kkq.mjs.map +1 -0
  23. package/dist/middleware.d.mts +1 -1
  24. package/dist/middleware.d.mts.map +1 -1
  25. package/dist/middleware.d.ts +1 -1
  26. package/dist/middleware.d.ts.map +1 -1
  27. package/dist/middleware.js +4 -3
  28. package/dist/middleware.js.map +1 -1
  29. package/dist/middleware.mjs +4 -3
  30. package/dist/middleware.mjs.map +1 -1
  31. package/dist/nest.d.mts +2 -2
  32. package/dist/nest.d.mts.map +1 -1
  33. package/dist/nest.d.ts +2 -2
  34. package/dist/nest.d.ts.map +1 -1
  35. package/dist/nest.js +2 -2
  36. package/dist/nest.mjs +2 -2
  37. package/dist/testing.d.mts +1 -1
  38. package/dist/testing.d.ts +1 -1
  39. package/dist/{transport.manager-zgEZCJhR.js → transport.manager-B9LF9uDd.js} +130 -56
  40. package/dist/transport.manager-B9LF9uDd.js.map +1 -0
  41. package/dist/{transport.manager-CaL4XuLD.mjs → transport.manager-Cij_sA-b.mjs} +128 -56
  42. package/dist/transport.manager-Cij_sA-b.mjs.map +1 -0
  43. package/dist/transports.d.mts +42 -3
  44. package/dist/transports.d.mts.map +1 -1
  45. package/dist/transports.d.ts +42 -3
  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 +1 -1
  50. package/dist/index-Co47qPnq.d.mts.map +0 -1
  51. package/dist/index-F-A7hg1u.d.ts.map +0 -1
  52. package/dist/logitron-logger.module-B8NklSC4.d.mts.map +0 -1
  53. package/dist/logitron-logger.module-BLT1y5Iq.d.ts.map +0 -1
  54. package/dist/logitron-logger.module-Bt_Jei1V.mjs.map +0 -1
  55. package/dist/logitron-logger.module-bJ1hGhaL.js.map +0 -1
  56. package/dist/transport.manager-CaL4XuLD.mjs.map +0 -1
  57. package/dist/transport.manager-zgEZCJhR.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logitron-logger.module-DGwNfjBX.d.mts","names":[],"sources":["../src/plugin.ts","../src/core/logitron-logger.ts","../src/core/logitron-nestjs.service.ts","../src/core/kafka-trace.interceptor.ts","../src/core/websocket-trace.interceptor.ts","../src/core/logitron-logger.module.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_transport_manager = require('./transport.manager-zgEZCJhR.js');
1
+ const require_transport_manager = require('./transport.manager-B9LF9uDd.js');
2
2
  let fast_json_stringify = require("fast-json-stringify");
3
3
  fast_json_stringify = require_transport_manager.__toESM(fast_json_stringify);
4
4
  let node_async_hooks = require("node:async_hooks");
@@ -92,10 +92,10 @@ var PluginRegistry = class {
92
92
  register(plugin) {
93
93
  if (this._plugins.some((p) => p.name === plugin.name)) return;
94
94
  this._plugins.push(plugin);
95
- if (plugin.onInit) {
95
+ if (plugin.onInit) try {
96
96
  const result = plugin.onInit();
97
97
  if (result instanceof Promise) result.catch(() => {});
98
- }
98
+ } catch {}
99
99
  }
100
100
  /** Remove a previously registered plugin by name. No-op if not found. */
101
101
  unregister(name) {
@@ -135,16 +135,20 @@ var PluginRegistry = class {
135
135
  * Errors thrown inside hooks are swallowed to prevent error cascades.
136
136
  */
137
137
  async runOnError(error, entry) {
138
- for (const plugin of this._plugins) if (plugin.onError) {
138
+ for (const plugin of this._plugins) if (plugin.onError) try {
139
139
  const r = plugin.onError(error, entry);
140
140
  if (r instanceof Promise) await r.catch(() => {});
141
- }
141
+ } catch {}
142
142
  }
143
143
  /** Run all `onShutdown` hooks concurrently. Hook errors are swallowed. */
144
144
  async runOnShutdown() {
145
145
  await Promise.all(this._plugins.filter((p) => Boolean(p.onShutdown)).map((p) => {
146
- const r = p.onShutdown();
147
- return r instanceof Promise ? r.catch(() => {}) : Promise.resolve();
146
+ try {
147
+ const r = p.onShutdown();
148
+ return r instanceof Promise ? r.catch(() => {}) : Promise.resolve();
149
+ } catch {
150
+ return Promise.resolve();
151
+ }
148
152
  }));
149
153
  }
150
154
  };
@@ -248,9 +252,9 @@ function _serializeError(error, includeStack, maxDepth, excludeFields, depth, se
248
252
  if (includeStack && error.stack) serialized.stack = error.stack;
249
253
  const errorWithCause = error;
250
254
  if (errorWithCause.cause !== void 0) if (errorWithCause.cause instanceof Error) serialized.cause = _serializeError(errorWithCause.cause, includeStack, maxDepth, excludeFields, depth + 1, seen);
251
- else serialized.cause = serializeValue(errorWithCause.cause, maxDepth - depth - 1);
255
+ else serialized.cause = serializeValue(errorWithCause.cause, maxDepth - depth - 1, seen);
252
256
  const aggregateError = error;
253
- if (Array.isArray(aggregateError.errors)) serialized.errors = aggregateError.errors.map((e) => e instanceof Error ? _serializeError(e, includeStack, maxDepth, excludeFields, depth + 1, seen) : serializeValue(e, maxDepth - depth - 1));
257
+ if (Array.isArray(aggregateError.errors)) serialized.errors = aggregateError.errors.map((e) => e instanceof Error ? _serializeError(e, includeStack, maxDepth, excludeFields, depth + 1, seen) : serializeValue(e, maxDepth - depth - 1, seen));
254
258
  const errorRecord = error;
255
259
  for (const field of EXTRA_FIELDS) if (!excludeFields.includes(field) && field in error && errorRecord[field] !== void 0) serialized[field] = errorRecord[field];
256
260
  const skip = new Set([
@@ -266,7 +270,7 @@ function _serializeError(error, includeStack, maxDepth, excludeFields, depth, se
266
270
  if (skip.has(key)) continue;
267
271
  if (key === "__proto__" || key === "constructor" || key === "prototype") continue;
268
272
  try {
269
- serialized[key] = serializeValue(errorRecord[key], maxDepth - depth - 1);
273
+ serialized[key] = serializeValue(errorRecord[key], maxDepth - depth - 1, seen);
270
274
  } catch {
271
275
  serialized[key] = "[Unserializable]";
272
276
  }
@@ -275,20 +279,38 @@ function _serializeError(error, includeStack, maxDepth, excludeFields, depth, se
275
279
  }
276
280
  /**
277
281
  * Recursively serialize an arbitrary value to a JSON-safe representation.
282
+ *
283
+ * The `seen` guard is threaded through (not recreated) so cross-referencing
284
+ * errors nested inside plain objects/arrays are caught by the same circular
285
+ * check that protects the top-level error tree, rather than only relying on the
286
+ * depth limit.
278
287
  */
279
- function serializeValue(value, remainingDepth) {
288
+ function serializeValue(value, remainingDepth, seen) {
280
289
  if (remainingDepth <= 0) return "[Max Depth]";
281
290
  if (value === null || value === void 0) return value;
282
291
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return value;
283
292
  if (value instanceof Date) return value.toISOString();
284
- if (value instanceof Error) return _serializeError(value, true, remainingDepth, [], 0, /* @__PURE__ */ new WeakSet());
285
- if (Array.isArray(value)) return value.map((item) => serializeValue(item, remainingDepth - 1));
293
+ if (value instanceof Error) {
294
+ if (seen.has(value)) return {
295
+ name: value.name,
296
+ message: value.message,
297
+ _circular: true
298
+ };
299
+ return _serializeError(value, true, remainingDepth, [], 0, seen);
300
+ }
301
+ if (Array.isArray(value)) {
302
+ if (seen.has(value)) return "[Circular]";
303
+ seen.add(value);
304
+ return value.map((item) => serializeValue(item, remainingDepth - 1, seen));
305
+ }
286
306
  if (typeof value === "object") {
307
+ if (seen.has(value)) return "[Circular]";
308
+ seen.add(value);
287
309
  const out = {};
288
310
  for (const [k, v] of Object.entries(value)) {
289
311
  if (k === "__proto__" || k === "constructor" || k === "prototype") continue;
290
312
  try {
291
- out[k] = serializeValue(v, remainingDepth - 1);
313
+ out[k] = serializeValue(v, remainingDepth - 1, seen);
292
314
  } catch {
293
315
  out[k] = "[Unserializable]";
294
316
  }
@@ -343,17 +365,21 @@ function tryLoadOtelApi() {
343
365
  function getActiveOtelContext(opts = {}) {
344
366
  const api = tryLoadOtelApi();
345
367
  if (!api) return void 0;
346
- const ctx = api.context.active();
347
- const sc = api.trace.getSpanContext(ctx);
348
- if (!sc || !api.trace.isSpanContextValid(sc)) return void 0;
349
- const isSampled = (sc.traceFlags & api.trace.TraceFlags.SAMPLED) === api.trace.TraceFlags.SAMPLED;
350
- if (opts.sampledOnly && !isSampled) return void 0;
351
- return {
352
- traceId: sc.traceId,
353
- spanId: sc.spanId,
354
- traceFlags: sc.traceFlags,
355
- isSampled
356
- };
368
+ try {
369
+ const ctx = api.context.active();
370
+ const sc = api.trace.getSpanContext(ctx);
371
+ if (!sc || !api.trace.isSpanContextValid(sc)) return void 0;
372
+ const isSampled = (sc.traceFlags & api.trace.TraceFlags.SAMPLED) === api.trace.TraceFlags.SAMPLED;
373
+ if (opts.sampledOnly && !isSampled) return void 0;
374
+ return {
375
+ traceId: sc.traceId,
376
+ spanId: sc.spanId,
377
+ traceFlags: sc.traceFlags,
378
+ isSampled
379
+ };
380
+ } catch {
381
+ return;
382
+ }
357
383
  }
358
384
  /**
359
385
  * Returns a metadata object with OTel context fields ready to merge into a log call,
@@ -588,6 +614,21 @@ function redactObject(obj, config, _currentPath = "") {
588
614
  return result;
589
615
  }
590
616
  /**
617
+ * Apply pattern-based redaction to a single string (e.g. the log message).
618
+ *
619
+ * Path-based rules don't apply to a bare string — only the `patterns` are run.
620
+ * Returns the input unchanged when no patterns are configured, so the hot path
621
+ * stays allocation-free for the common no-redact case.
622
+ */
623
+ function applyRedactionToString(value, config) {
624
+ if (!config) return value;
625
+ const resolved = resolveConfig(config);
626
+ if (!resolved.patterns || resolved.patterns.length === 0) return value;
627
+ let redacted = value;
628
+ for (const pattern of resolved.patterns) redacted = redacted.replace(pattern, resolved.censor ?? DEFAULT_CENSOR);
629
+ return redacted;
630
+ }
631
+ /**
591
632
  * Apply redaction to a log payload (top-level call convenience wrapper).
592
633
  * Returns a new object — never mutates the input.
593
634
  */
@@ -612,8 +653,10 @@ var Sampler = class {
612
653
  constructor(config, onStats) {
613
654
  this.sampledTraces = /* @__PURE__ */ new Set();
614
655
  this.droppedTraces = /* @__PURE__ */ new Set();
656
+ this.maxTrackedTraces = 1e5;
615
657
  this._tokenBucket = 0;
616
658
  this._lastRefillMs = Date.now();
659
+ this._adaptiveWindow = [];
617
660
  this._stats = {
618
661
  evaluated: 0,
619
662
  emitted: 0,
@@ -643,6 +686,7 @@ var Sampler = class {
643
686
  var _this$config$perLevel;
644
687
  const lvl = level.toLowerCase();
645
688
  this._trackEvaluated(lvl);
689
+ if (this.config.adaptive) this._recordAdaptiveSample(lvl);
646
690
  if (ALWAYS_EMIT_LEVELS.has(lvl) && ((_this$config$perLevel = this.config.perLevel) === null || _this$config$perLevel === void 0 ? void 0 : _this$config$perLevel[lvl]) === void 0) {
647
691
  this._trackEmitted(lvl);
648
692
  return true;
@@ -657,8 +701,8 @@ var Sampler = class {
657
701
  return false;
658
702
  }
659
703
  const emit = this._sampleByRate(lvl);
660
- if (emit) this.sampledTraces.add(traceId);
661
- else this.droppedTraces.add(traceId);
704
+ if (emit) this._rememberTrace(this.sampledTraces, traceId);
705
+ else this._rememberTrace(this.droppedTraces, traceId);
662
706
  if (emit) this._trackEmitted(lvl);
663
707
  else this._trackDropped(lvl);
664
708
  return emit;
@@ -698,11 +742,56 @@ var Sampler = class {
698
742
  }
699
743
  _sampleByRate(level) {
700
744
  var _this$config$perLevel2, _this$config$perLevel3;
701
- const rate = ((_this$config$perLevel2 = this.config.perLevel) === null || _this$config$perLevel2 === void 0 ? void 0 : _this$config$perLevel2[level]) ?? ((_this$config$perLevel3 = this.config.perLevel) === null || _this$config$perLevel3 === void 0 ? void 0 : _this$config$perLevel3["*"]) ?? this.config.rate ?? 1;
745
+ const baseRate = ((_this$config$perLevel2 = this.config.perLevel) === null || _this$config$perLevel2 === void 0 ? void 0 : _this$config$perLevel2[level]) ?? ((_this$config$perLevel3 = this.config.perLevel) === null || _this$config$perLevel3 === void 0 ? void 0 : _this$config$perLevel3["*"]) ?? this.config.rate ?? 1;
746
+ const rate = Math.max(baseRate, this._adaptiveBoostRate());
702
747
  if (rate >= 1) return true;
703
748
  if (rate <= 0) return false;
704
749
  return Math.random() < rate;
705
750
  }
751
+ /**
752
+ * Record one evaluated sample into the adaptive sliding window and evict
753
+ * entries older than the window. Cheap O(evicted) amortized.
754
+ */
755
+ _recordAdaptiveSample(level) {
756
+ var _this$config$adaptive;
757
+ const now = Date.now();
758
+ const windowMs = ((_this$config$adaptive = this.config.adaptive) === null || _this$config$adaptive === void 0 ? void 0 : _this$config$adaptive.windowMs) ?? 1e4;
759
+ this._adaptiveWindow.push({
760
+ t: now,
761
+ err: level === "error" || level === "fatal"
762
+ });
763
+ const cutoff = now - windowMs;
764
+ while (this._adaptiveWindow.length > 0 && this._adaptiveWindow[0].t < cutoff) this._adaptiveWindow.shift();
765
+ }
766
+ /**
767
+ * Effective boost rate (0 = no boost). Returns the configured boostRate when
768
+ * the windowed error rate is at/above the threshold AND there are enough
769
+ * samples to trust it; otherwise 0.
770
+ */
771
+ _adaptiveBoostRate() {
772
+ const cfg = this.config.adaptive;
773
+ if (!cfg) return 0;
774
+ const minSamples = cfg.minSamples ?? 20;
775
+ const total = this._adaptiveWindow.length;
776
+ if (total < minSamples) return 0;
777
+ let errors = 0;
778
+ for (const s of this._adaptiveWindow) if (s.err) errors += 1;
779
+ return errors / total >= (cfg.errorRateThreshold ?? .05) ? cfg.boostRate ?? 1 : 0;
780
+ }
781
+ /** @internal Expose the current adaptive boost decision (tests / observability). */
782
+ isBoosting() {
783
+ return this._adaptiveBoostRate() > 0;
784
+ }
785
+ /**
786
+ * Record a trace decision, bounding the Set so it can't grow without limit.
787
+ * If the Set has reached the cap, clear it before inserting — stale decisions
788
+ * are simply re-made on next sight, which keeps memory bounded at the cost of
789
+ * occasional re-sampling for very high-cardinality trace workloads.
790
+ */
791
+ _rememberTrace(set, traceId) {
792
+ if (set.size >= this.maxTrackedTraces) set.clear();
793
+ set.add(traceId);
794
+ }
706
795
  _consumeToken() {
707
796
  const now = Date.now();
708
797
  const elapsed = (now - this._lastRefillMs) / 1e3;
@@ -741,6 +830,10 @@ var Sampler = class {
741
830
  /** Module-level registry of all logger instances that have opted into graceful shutdown */
742
831
  const registry = /* @__PURE__ */ new Set();
743
832
  let shutdownHandlerRegistered = false;
833
+ /** Guards the handler against re-entrancy: a second signal (e.g. SIGINT after
834
+ * SIGTERM, or an impatient double Ctrl+C) must not start a second concurrent
835
+ * flush+exit, which could exit the process and truncate the first flush mid-write. */
836
+ let shutdownInProgress = false;
744
837
  /** Our own handler + the signals we attached it to, so reset() can detach exactly it. */
745
838
  let activeHandler;
746
839
  let activeSignals = [];
@@ -772,6 +865,8 @@ function flushOnExit(options = {}) {
772
865
  shutdownHandlerRegistered = true;
773
866
  const { timeout = 5e3, signals = ["SIGTERM", "SIGINT"], beforeFlush, afterFlush } = options;
774
867
  const handler = async (signal) => {
868
+ if (shutdownInProgress) return;
869
+ shutdownInProgress = true;
775
870
  const forceExitTimer = setTimeout(() => {
776
871
  process.stderr.write(`[logixia] Graceful shutdown timed out after ${timeout}ms on ${signal}. Force-exiting.\n`);
777
872
  process.exit(1);
@@ -799,6 +894,7 @@ function resetShutdownHandlers() {
799
894
  activeHandler = void 0;
800
895
  activeSignals = [];
801
896
  shutdownHandlerRegistered = false;
897
+ shutdownInProgress = false;
802
898
  }
803
899
 
804
900
  //#endregion
@@ -1104,7 +1200,11 @@ function createTraceMiddleware(config) {
1104
1200
  if (resolvedConfig.extractor) traceId = extractTraceId(req, resolvedConfig.extractor);
1105
1201
  if (!traceId) traceId = resolvedConfig.generator ? resolvedConfig.generator() : generateTraceId();
1106
1202
  req.traceId = traceId;
1107
- res.setHeader("X-Trace-Id", traceId);
1203
+ const resObj = res;
1204
+ if (!resObj.headersSent) try {
1205
+ if (typeof resObj.setHeader === "function") resObj.setHeader("X-Trace-Id", traceId);
1206
+ else if (typeof resObj.header === "function") resObj.header("X-Trace-Id", traceId);
1207
+ } catch {}
1108
1208
  runWithTraceId(traceId, () => next());
1109
1209
  };
1110
1210
  }
@@ -1433,6 +1533,36 @@ var LogixiaLogger = class LogixiaLogger {
1433
1533
  var _this$config$levelOpt5;
1434
1534
  return ((_this$config$levelOpt5 = this.config.levelOptions) === null || _this$config$levelOpt5 === void 0 ? void 0 : _this$config$levelOpt5.level) ?? LogLevel.INFO;
1435
1535
  }
1536
+ /**
1537
+ * Replace the per-namespace level map at runtime — no restart needed.
1538
+ *
1539
+ * This is the runtime counterpart to the `namespaceLevels` config option and
1540
+ * the most-requested logging feature across the Winston/Pino issue trackers
1541
+ * (flip a module's verbosity live to chase a bug without raising global
1542
+ * volume). The new map fully replaces the previous one.
1543
+ *
1544
+ * @example
1545
+ * ```ts
1546
+ * // Turn on debug for the DB layer only, live:
1547
+ * logger.setNamespaceLevels({ 'db.*': 'debug', '*': 'info' });
1548
+ * ```
1549
+ */
1550
+ setNamespaceLevels(levels) {
1551
+ this.config.namespaceLevels = { ...levels };
1552
+ this._buildPerfCaches();
1553
+ }
1554
+ /** Merge entries into the existing per-namespace level map at runtime. */
1555
+ patchNamespaceLevels(levels) {
1556
+ this.config.namespaceLevels = {
1557
+ ...this.config.namespaceLevels,
1558
+ ...levels
1559
+ };
1560
+ this._buildPerfCaches();
1561
+ }
1562
+ /** Return a copy of the current per-namespace level map. */
1563
+ getNamespaceLevels() {
1564
+ return { ...this.config.namespaceLevels };
1565
+ }
1436
1566
  setContext(context) {
1437
1567
  this.context = typeof context === "string" ? context : require_transport_manager.safeToString(context);
1438
1568
  }
@@ -1586,12 +1716,13 @@ var LogixiaLogger = class LogixiaLogger {
1586
1716
  let payload;
1587
1717
  if (rawPayload !== void 0 && rawPayload !== null) payload = this._hasRedact ? applyRedaction(rawPayload, this.config.redact) ?? rawPayload : rawPayload;
1588
1718
  const traceId = this.config.traceId ? TraceContext.instance.getCurrentTraceId() ?? this.fallbackTraceId : void 0;
1719
+ const safeMessage = this._hasRedact ? applyRedactionToString(message, this.config.redact) : message;
1589
1720
  const entry = {
1590
1721
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1591
1722
  level,
1592
1723
  appName: this.config.appName ?? "App",
1593
1724
  environment: this.config.environment ?? "development",
1594
- message
1725
+ message: safeMessage
1595
1726
  };
1596
1727
  if (this.context) entry.context = this.context;
1597
1728
  if (payload !== void 0) entry.payload = payload;
@@ -1859,8 +1990,7 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService$1
1859
1990
  }
1860
1991
  formatMessage(message) {
1861
1992
  if (typeof message === "string") return message;
1862
- if (typeof message === "object") return JSON.stringify(message);
1863
- return String(message);
1993
+ return require_transport_manager.safeToString(message);
1864
1994
  }
1865
1995
  };
1866
1996
  LogixiaLoggerService = _LogixiaLoggerService = __decorate([(0, __nestjs_common.Injectable)({ scope: __nestjs_common.Scope.TRANSIENT }), __decorateMetadata("design:paramtypes", [Object])], LogixiaLoggerService);
@@ -1943,13 +2073,15 @@ let KafkaTraceInterceptor = class KafkaTraceInterceptor$1 {
1943
2073
  timestamp: rpcData === null || rpcData === void 0 ? void 0 : rpcData.timestamp
1944
2074
  };
1945
2075
  return new rxjs.Observable((subscriber) => {
2076
+ let inner;
1946
2077
  this.ctx.run(traceId, () => {
1947
- next.handle().subscribe({
2078
+ inner = next.handle().subscribe({
1948
2079
  next: (value) => subscriber.next(value),
1949
2080
  error: (err) => subscriber.error(err),
1950
2081
  complete: () => subscriber.complete()
1951
2082
  });
1952
2083
  }, kafkaContext);
2084
+ return () => inner === null || inner === void 0 ? void 0 : inner.unsubscribe();
1953
2085
  });
1954
2086
  }
1955
2087
  };
@@ -1977,6 +2109,20 @@ function resolveResponseHeader(config) {
1977
2109
  if ((config === null || config === void 0 ? void 0 : config.responseHeader) === false) return null;
1978
2110
  return (config === null || config === void 0 ? void 0 : config.responseHeader) ?? DEFAULT_TRACE_RESPONSE_HEADER;
1979
2111
  }
2112
+ /**
2113
+ * Echo the trace ID on the response, tolerating non-Express responses and
2114
+ * already-sent headers. NestJS can run on Fastify (reply.header() instead of
2115
+ * res.setHeader()), and on a closed/sent response setHeader throws — neither
2116
+ * should crash the request. The trace ID is still propagated via async context.
2117
+ */
2118
+ function writeTraceHeader(res, header, traceId) {
2119
+ const r = res;
2120
+ if (r.headersSent) return;
2121
+ try {
2122
+ if (typeof r.setHeader === "function") r.setHeader(header, traceId);
2123
+ else if (typeof r.header === "function") r.header(header, traceId);
2124
+ } catch {}
2125
+ }
1980
2126
  let TraceMiddleware = class TraceMiddleware$1 {
1981
2127
  constructor(config) {
1982
2128
  this.config = config;
@@ -1998,7 +2144,7 @@ let TraceMiddleware = class TraceMiddleware$1 {
1998
2144
  if (this.config.enabled) this.ctx.setContextKey(this.config.contextKey ?? "traceId");
1999
2145
  }
2000
2146
  use(req, res, next) {
2001
- var _this$config;
2147
+ var _this$config, _req$socket, _req$connection;
2002
2148
  if (!((_this$config = this.config) === null || _this$config === void 0 ? void 0 : _this$config.enabled)) return next();
2003
2149
  let traceId;
2004
2150
  if (this.config.extractor) traceId = extractTraceId(req, this.config.extractor);
@@ -2010,12 +2156,12 @@ let TraceMiddleware = class TraceMiddleware$1 {
2010
2156
  if (!traceId) traceId = this.ctx.generate();
2011
2157
  req.traceId = traceId;
2012
2158
  const header = resolveResponseHeader(this.config);
2013
- if (header) res.setHeader(header, traceId);
2159
+ if (header) writeTraceHeader(res, header, traceId);
2014
2160
  this.ctx.run(traceId, () => next(), {
2015
2161
  method: req.method,
2016
2162
  url: req.url,
2017
2163
  userAgent: req.get("User-Agent"),
2018
- ip: req.ip || req.connection.remoteAddress
2164
+ ip: req.ip || ((_req$socket = req.socket) === null || _req$socket === void 0 ? void 0 : _req$socket.remoteAddress) || ((_req$connection = req.connection) === null || _req$connection === void 0 ? void 0 : _req$connection.remoteAddress)
2019
2165
  });
2020
2166
  }
2021
2167
  };
@@ -2072,13 +2218,15 @@ let WebSocketTraceInterceptor = class WebSocketTraceInterceptor$1 {
2072
2218
  clientAddress: client === null || client === void 0 || (_client$handshake3 = client.handshake) === null || _client$handshake3 === void 0 ? void 0 : _client$handshake3.address
2073
2219
  };
2074
2220
  return new rxjs.Observable((observer) => {
2221
+ let inner;
2075
2222
  this.ctx.run(traceId, () => {
2076
- next.handle().subscribe({
2223
+ inner = next.handle().subscribe({
2077
2224
  next: (value) => observer.next(value),
2078
2225
  error: (err) => observer.error(err),
2079
2226
  complete: () => observer.complete()
2080
2227
  });
2081
2228
  }, wsContextData);
2229
+ return () => inner === null || inner === void 0 ? void 0 : inner.unsubscribe();
2082
2230
  });
2083
2231
  }
2084
2232
  };
@@ -2619,4 +2767,4 @@ Object.defineProperty(exports, 'usePlugin', {
2619
2767
  return usePlugin;
2620
2768
  }
2621
2769
  });
2622
- //# sourceMappingURL=logitron-logger.module-bJ1hGhaL.js.map
2770
+ //# sourceMappingURL=logitron-logger.module-DHFampon.js.map