logixia 2.0.6 → 2.0.8
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.
- package/README.md +9 -0
- package/dist/{async-context-2mbUKhcl.mjs → async-context-COuvmwsS.mjs} +2 -2
- package/dist/{async-context-2mbUKhcl.mjs.map → async-context-COuvmwsS.mjs.map} +1 -1
- package/dist/{async-context-DUFMDYAr.js → async-context-Dv0bmPC-.js} +3 -3
- package/dist/{async-context-DUFMDYAr.js.map → async-context-Dv0bmPC-.js.map} +1 -1
- package/dist/{azure-monitor.transport-C1RWAumT.mjs → azure-monitor.transport-Coz5Gesu.mjs} +5 -5
- package/dist/{azure-monitor.transport-C1RWAumT.mjs.map → azure-monitor.transport-Coz5Gesu.mjs.map} +1 -1
- package/dist/{azure-monitor.transport-Bu4S2I2q.js → azure-monitor.transport-D6ryi8rA.js} +5 -5
- package/dist/{azure-monitor.transport-Bu4S2I2q.js.map → azure-monitor.transport-D6ryi8rA.js.map} +1 -1
- package/dist/azure.js +1 -1
- package/dist/azure.mjs +1 -1
- package/dist/{batch-buffer-C7Am4Mw-.js → batch-buffer-CFzKnuNZ.js} +3 -3
- package/dist/{batch-buffer-C7Am4Mw-.js.map → batch-buffer-CFzKnuNZ.js.map} +1 -1
- package/dist/{batch-buffer-BvXLDPlV.mjs → batch-buffer-CQUWDMYq.mjs} +3 -3
- package/dist/{batch-buffer-BvXLDPlV.mjs.map → batch-buffer-CQUWDMYq.mjs.map} +1 -1
- package/dist/browser.js +25 -1
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +25 -1
- package/dist/browser.mjs.map +1 -1
- package/dist/{builder-yFvJrz7o.js → builder-BTzvPGHN.js} +82 -15
- package/dist/builder-BTzvPGHN.js.map +1 -0
- package/dist/{builder-DhNhvOkt.mjs → builder-DKL7WcIN.mjs} +71 -10
- package/dist/builder-DKL7WcIN.mjs.map +1 -0
- package/dist/cloudwatch.js +1 -1
- package/dist/cloudwatch.mjs +1 -1
- package/dist/{cloudwatch.transport-DZqF2xZO.mjs → cloudwatch.transport-Cr1aeTGj.mjs} +6 -6
- package/dist/{cloudwatch.transport-DZqF2xZO.mjs.map → cloudwatch.transport-Cr1aeTGj.mjs.map} +1 -1
- package/dist/{cloudwatch.transport-Ch1Uae-0.js → cloudwatch.transport-D4G5xYfG.js} +6 -6
- package/dist/{cloudwatch.transport-Ch1Uae-0.js.map → cloudwatch.transport-D4G5xYfG.js.map} +1 -1
- package/dist/correlation.d.mts +6 -0
- package/dist/correlation.d.mts.map +1 -1
- package/dist/correlation.d.ts +6 -0
- package/dist/correlation.d.ts.map +1 -1
- package/dist/correlation.js +4 -2
- package/dist/correlation.js.map +1 -1
- package/dist/correlation.mjs +4 -2
- package/dist/correlation.mjs.map +1 -1
- package/dist/{entry-fields-BSLkzw18.js → entry-fields-CVwoQplO.js} +3 -3
- package/dist/{entry-fields-BSLkzw18.js.map → entry-fields-CVwoQplO.js.map} +1 -1
- package/dist/{entry-fields-J1OBi24o.mjs → entry-fields-DNTKQxoU.mjs} +2 -2
- package/dist/{entry-fields-J1OBi24o.mjs.map → entry-fields-DNTKQxoU.mjs.map} +1 -1
- package/dist/gcp.js +1 -1
- package/dist/gcp.mjs +1 -1
- package/dist/{gcp.transport-Dy2Lf8FI.js → gcp.transport-CVuRpchl.js} +6 -6
- package/dist/{gcp.transport-Dy2Lf8FI.js.map → gcp.transport-CVuRpchl.js.map} +1 -1
- package/dist/{gcp.transport-DVCmnA3b.mjs → gcp.transport-LLK2bw2-.mjs} +6 -6
- package/dist/{gcp.transport-DVCmnA3b.mjs.map → gcp.transport-LLK2bw2-.mjs.map} +1 -1
- package/dist/{index-BSTtFcQ6.d.mts → index-BAkPHp5D.d.mts} +9 -1
- package/dist/index-BAkPHp5D.d.mts.map +1 -0
- package/dist/{index-CFDGkI8n.d.ts → index-e7LowmAu.d.ts} +9 -1
- package/dist/index-e7LowmAu.d.ts.map +1 -0
- package/dist/index.d.mts +11 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/internal-log-Cy5nF1ZL.mjs +63 -0
- package/dist/internal-log-Cy5nF1ZL.mjs.map +1 -0
- package/dist/internal-log-DwqTjhpb.js +80 -0
- package/dist/internal-log-DwqTjhpb.js.map +1 -0
- package/dist/{logitron-logger-D_MYYrQt.d.ts → logitron-logger-Qh3y9-WH.d.ts} +2 -2
- package/dist/{logitron-logger-D_MYYrQt.d.ts.map → logitron-logger-Qh3y9-WH.d.ts.map} +1 -1
- package/dist/{logitron-logger-D22Yb61K.d.mts → logitron-logger-sYuk8fOb.d.mts} +2 -2
- package/dist/{logitron-logger-D22Yb61K.d.mts.map → logitron-logger-sYuk8fOb.d.mts.map} +1 -1
- package/dist/middleware.d.mts +1 -1
- package/dist/middleware.d.ts +1 -1
- package/dist/middleware.js +8 -8
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +3 -3
- package/dist/nest.d.mts +12 -3
- package/dist/nest.d.mts.map +1 -1
- package/dist/nest.d.ts +12 -3
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js +128 -20
- package/dist/nest.js.map +1 -1
- package/dist/nest.mjs +128 -20
- package/dist/nest.mjs.map +1 -1
- package/dist/{otel-DyeH6DVR.js → otel-ChnVYRLA.js} +5 -5
- package/dist/{otel-DyeH6DVR.js.map → otel-ChnVYRLA.js.map} +1 -1
- package/dist/{otel-Dt5riXuE.mjs → otel-DOuwGPCd.mjs} +5 -5
- package/dist/{otel-Dt5riXuE.mjs.map → otel-DOuwGPCd.mjs.map} +1 -1
- package/dist/{safe-stringify-B5p5ktFe.mjs → safe-stringify--7gbe95n.mjs} +2 -2
- package/dist/{safe-stringify-B5p5ktFe.mjs.map → safe-stringify--7gbe95n.mjs.map} +1 -1
- package/dist/{safe-stringify-J3sh-7YM.js → safe-stringify-CN7icp8S.js} +5 -5
- package/dist/{safe-stringify-J3sh-7YM.js.map → safe-stringify-CN7icp8S.js.map} +1 -1
- package/dist/{search-DA3ft3X5.d.mts → search-D-8HJADE.d.mts} +2 -2
- package/dist/{search-DA3ft3X5.d.mts.map → search-D-8HJADE.d.mts.map} +1 -1
- package/dist/{search-DEl3Pe47.d.ts → search-DPwTKPve.d.ts} +2 -2
- package/dist/{search-DEl3Pe47.d.ts.map → search-DPwTKPve.d.ts.map} +1 -1
- package/dist/search.d.mts +1 -1
- package/dist/search.d.ts +1 -1
- package/dist/{secret-config-CmK2wVkr.js → secret-config-BvFl2dC8.js} +7 -8
- package/dist/{secret-config-CmK2wVkr.js.map → secret-config-BvFl2dC8.js.map} +1 -1
- package/dist/{secret-config-Dhb6pqTU.mjs → secret-config-ByGq7kJd.mjs} +2 -3
- package/dist/{secret-config-Dhb6pqTU.mjs.map → secret-config-ByGq7kJd.mjs.map} +1 -1
- package/dist/sensitive-names-CHMowujD.js +276 -0
- package/dist/sensitive-names-CHMowujD.js.map +1 -0
- package/dist/sensitive-names-o__1PUUR.mjs +217 -0
- package/dist/sensitive-names-o__1PUUR.mjs.map +1 -0
- package/dist/{slack.transport-BTEwsREY.mjs → slack.transport-CSj1j0_X.mjs} +6 -6
- package/dist/{slack.transport-BTEwsREY.mjs.map → slack.transport-CSj1j0_X.mjs.map} +1 -1
- package/dist/{slack.transport-UbYvOdKx.js → slack.transport-zLQ9MGxS.js} +6 -6
- package/dist/{slack.transport-UbYvOdKx.js.map → slack.transport-zLQ9MGxS.js.map} +1 -1
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/transports.d.mts +1 -1
- package/dist/transports.d.ts +1 -1
- package/dist/transports.js +6 -6
- package/dist/transports.mjs +6 -6
- package/dist/worker-entry.js +25 -1
- package/dist/worker.js +1 -1
- package/dist/worker.mjs +1 -1
- package/dist/{worker.transport-BmmOKb1-.mjs → worker.transport-D78xhNhB.mjs} +3 -3
- package/dist/{worker.transport-BmmOKb1-.mjs.map → worker.transport-D78xhNhB.mjs.map} +1 -1
- package/dist/{worker.transport-DxxbqQCG.js → worker.transport-DQDv1nAJ.js} +3 -3
- package/dist/{worker.transport-DxxbqQCG.js.map → worker.transport-DQDv1nAJ.js.map} +1 -1
- package/package.json +1 -1
- package/dist/builder-DhNhvOkt.mjs.map +0 -1
- package/dist/builder-yFvJrz7o.js.map +0 -1
- package/dist/index-BSTtFcQ6.d.mts.map +0 -1
- package/dist/index-CFDGkI8n.d.ts.map +0 -1
- package/dist/internal-log-Bg4V1cPg.mjs +0 -170
- package/dist/internal-log-Bg4V1cPg.mjs.map +0 -1
- package/dist/internal-log-By4Govmu.js +0 -223
- package/dist/internal-log-By4Govmu.js.map +0 -1
- package/dist/own-property-BWkibepN.js +0 -40
- package/dist/own-property-BWkibepN.js.map +0 -1
- package/dist/own-property-CjFw9qwZ.mjs +0 -29
- package/dist/own-property-CjFw9qwZ.mjs.map +0 -1
package/dist/nest.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_secret_config = require("./secret-config-
|
|
3
|
-
const require_builder = require("./builder-
|
|
2
|
+
const require_secret_config = require("./secret-config-BvFl2dC8.js");
|
|
3
|
+
const require_builder = require("./builder-BTzvPGHN.js");
|
|
4
|
+
const require_sensitive_names = require("./sensitive-names-CHMowujD.js");
|
|
4
5
|
const require_request_trace = require("./request-trace-ByujsUZk.js");
|
|
5
|
-
const require_internal_log = require("./internal-log-
|
|
6
|
+
const require_internal_log = require("./internal-log-DwqTjhpb.js");
|
|
6
7
|
const require_coerce_utils = require("./coerce.utils-C1C5sIX0.js");
|
|
7
8
|
let _nestjs_common = require("@nestjs/common");
|
|
8
9
|
let rxjs = require("rxjs");
|
|
@@ -303,10 +304,18 @@ function writeTraceHeader(res, header, traceId) {
|
|
|
303
304
|
else if (typeof r.header === "function") r.header(header, traceId);
|
|
304
305
|
} catch {}
|
|
305
306
|
}
|
|
307
|
+
/** Injection token for extra query parameter names redacted in the trace context `url`. */
|
|
308
|
+
const LOGIXIA_TRACE_REDACT_QUERY_PARAMS = "LOGIXIA_TRACE_REDACT_QUERY_PARAMS";
|
|
309
|
+
/** The request URL as stored in the trace context: `originalUrl`, sensitive query values redacted. */
|
|
310
|
+
function traceUrl(req, names) {
|
|
311
|
+
const raw = req.originalUrl ?? req.url;
|
|
312
|
+
return raw === void 0 ? void 0 : require_sensitive_names.redactUrlQuery(raw, names);
|
|
313
|
+
}
|
|
306
314
|
let TraceMiddleware = class TraceMiddleware {
|
|
307
|
-
constructor(config) {
|
|
315
|
+
constructor(config, redactQueryParams) {
|
|
308
316
|
this.config = config;
|
|
309
317
|
this.ctx = require_request_trace.TraceContext.instance;
|
|
318
|
+
this.redactParams = require_sensitive_names.buildNameSet(require_sensitive_names.DEFAULT_REDACT_QUERY_PARAMS, redactQueryParams);
|
|
310
319
|
const defaultExtractor = {
|
|
311
320
|
header: require_request_trace.DEFAULT_TRACE_HEADERS,
|
|
312
321
|
query: ["traceId", "trace_id"]
|
|
@@ -339,7 +348,7 @@ let TraceMiddleware = class TraceMiddleware {
|
|
|
339
348
|
if (header) writeTraceHeader(res, header, traceId);
|
|
340
349
|
this.ctx.run(traceId, () => next(), {
|
|
341
350
|
method: req.method,
|
|
342
|
-
url: req.
|
|
351
|
+
url: traceUrl(req, this.redactParams),
|
|
343
352
|
userAgent: req.get("User-Agent"),
|
|
344
353
|
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)
|
|
345
354
|
});
|
|
@@ -348,7 +357,9 @@ let TraceMiddleware = class TraceMiddleware {
|
|
|
348
357
|
TraceMiddleware = __decorate([
|
|
349
358
|
(0, _nestjs_common.Injectable)(),
|
|
350
359
|
__decorateParam(0, (0, _nestjs_common.Optional)()),
|
|
351
|
-
|
|
360
|
+
__decorateParam(1, (0, _nestjs_common.Optional)()),
|
|
361
|
+
__decorateParam(1, (0, _nestjs_common.Inject)(LOGIXIA_TRACE_REDACT_QUERY_PARAMS)),
|
|
362
|
+
__decorateMetadata("design:paramtypes", [Object, Array])
|
|
352
363
|
], TraceMiddleware);
|
|
353
364
|
// src/core/websocket-trace.interceptor.ts
|
|
354
365
|
let WebSocketTraceInterceptor = class WebSocketTraceInterceptor {
|
|
@@ -470,6 +481,7 @@ let LogixiaLoggerModule = class LogixiaLoggerModule {
|
|
|
470
481
|
return _LogixiaLoggerModule._globalLogger;
|
|
471
482
|
}
|
|
472
483
|
configure(consumer) {
|
|
484
|
+
var _LogixiaLoggerModule$;
|
|
473
485
|
const { forRoutes = DEFAULT_ROUTES, exclude } = this.config;
|
|
474
486
|
let resolvedTraceConfig;
|
|
475
487
|
if (typeof _LogixiaLoggerModule.loggerConfig.traceId === "object") resolvedTraceConfig = _LogixiaLoggerModule.loggerConfig.traceId;
|
|
@@ -478,7 +490,7 @@ let LogixiaLoggerModule = class LogixiaLoggerModule {
|
|
|
478
490
|
contextKey: "traceId",
|
|
479
491
|
generator: () => require_request_trace.TraceContext.instance.generate()
|
|
480
492
|
};
|
|
481
|
-
const middleware = new TraceMiddleware(resolvedTraceConfig);
|
|
493
|
+
const middleware = new TraceMiddleware(resolvedTraceConfig, (_LogixiaLoggerModule$ = _LogixiaLoggerModule.loggerConfig.redact) === null || _LogixiaLoggerModule$ === void 0 ? void 0 : _LogixiaLoggerModule$.queryParams);
|
|
482
494
|
const middlewareConfig = (req, res, next) => middleware.use(req, res, next);
|
|
483
495
|
if (exclude) consumer.apply(middlewareConfig).exclude(...exclude).forRoutes(...forRoutes);
|
|
484
496
|
else consumer.apply(middlewareConfig).forRoutes(...forRoutes);
|
|
@@ -765,9 +777,86 @@ function LogMethod(options = {}) {
|
|
|
765
777
|
}
|
|
766
778
|
/** Injection token for {@link LogixiaExceptionFilterOptions}. */
|
|
767
779
|
const LOGIXIA_EXCEPTION_FILTER_OPTIONS = "LOGIXIA_EXCEPTION_FILTER_OPTIONS";
|
|
780
|
+
const MAX_SCRUB_DEPTH = 8;
|
|
781
|
+
/** Copy `value` with every string passed through `clean`; the input is never modified. */
|
|
782
|
+
function cleanDeep(value, clean, depth = 0) {
|
|
783
|
+
if (typeof value === "string") return clean(value);
|
|
784
|
+
if (value === null || typeof value !== "object" || depth >= MAX_SCRUB_DEPTH) return value;
|
|
785
|
+
if (Array.isArray(value)) return value.map((item) => cleanDeep(item, clean, depth + 1));
|
|
786
|
+
const out = {};
|
|
787
|
+
for (const [key, item] of Object.entries(value)) out[key] = cleanDeep(item, clean, depth + 1);
|
|
788
|
+
return out;
|
|
789
|
+
}
|
|
790
|
+
function scrubErrorResponse(response, clean) {
|
|
791
|
+
const { error, debug } = response;
|
|
792
|
+
return {
|
|
793
|
+
...response,
|
|
794
|
+
error: cleanDeep(error, clean),
|
|
795
|
+
...debug !== void 0 ? { debug: cleanDeep(debug, clean) } : {}
|
|
796
|
+
};
|
|
797
|
+
}
|
|
798
|
+
const MAX_ERROR_DEPTH = 6;
|
|
799
|
+
/** Scrub string VALUES of an already serialized tree; keys stay so key-based redaction still applies. */
|
|
800
|
+
function scrubSerialized(value, clean, depth, seen) {
|
|
801
|
+
if (typeof value === "string") return clean(value);
|
|
802
|
+
if (value === null || typeof value !== "object") return typeof value === "function" || typeof value === "symbol" ? "[Unserializable]" : value;
|
|
803
|
+
if (seen.has(value)) return "[Circular]";
|
|
804
|
+
if (depth >= MAX_ERROR_DEPTH) return "[MaxDepth]";
|
|
805
|
+
seen.add(value);
|
|
806
|
+
try {
|
|
807
|
+
if (Array.isArray(value)) return value.map((item) => scrubSerialized(item, clean, depth + 1, seen));
|
|
808
|
+
const out = {};
|
|
809
|
+
for (const [key, item] of Object.entries(value)) require_sensitive_names.assignOwn(out, key, scrubSerialized(item, clean, depth + 1, seen));
|
|
810
|
+
return out;
|
|
811
|
+
} finally {
|
|
812
|
+
seen.delete(value);
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
/** Minimal copy used when the full sanitize step fails; never throws. */
|
|
816
|
+
function fallbackError(exception, clean) {
|
|
817
|
+
let name = "Error";
|
|
818
|
+
let message = "[Unserializable]";
|
|
819
|
+
try {
|
|
820
|
+
if (exception instanceof Error) {
|
|
821
|
+
name = exception.name;
|
|
822
|
+
message = clean(exception.message);
|
|
823
|
+
}
|
|
824
|
+
} catch {}
|
|
825
|
+
const copy = new Error(message);
|
|
826
|
+
copy.name = name;
|
|
827
|
+
require_sensitive_names.assignOwn(copy, "serialization", "[Unserializable]");
|
|
828
|
+
return copy;
|
|
829
|
+
}
|
|
830
|
+
/**
|
|
831
|
+
* A fresh Error safe to log. Built from `serializeError` (class instances walked by key,
|
|
832
|
+
* so the logger's key-based redaction still sees `authorization`, `x-api-key`, ...), with
|
|
833
|
+
* string values scrubbed. Keeps name, message, stack, cause and custom properties.
|
|
834
|
+
* The original is untouched and this never throws.
|
|
835
|
+
*/
|
|
836
|
+
function sanitizedError(exception, clean) {
|
|
837
|
+
try {
|
|
838
|
+
if (!(exception instanceof Error)) return new Error(clean(String(exception)));
|
|
839
|
+
const scrubbed = scrubSerialized(require_builder.serializeError(exception), clean, 0, /* @__PURE__ */ new WeakSet());
|
|
840
|
+
const copy = new Error(String(scrubbed["message"] ?? ""));
|
|
841
|
+
for (const [key, value] of Object.entries(scrubbed)) {
|
|
842
|
+
if (key === "message") continue;
|
|
843
|
+
if (key === "stack" || key === "name") Object.defineProperty(copy, key, {
|
|
844
|
+
value,
|
|
845
|
+
writable: true,
|
|
846
|
+
configurable: true
|
|
847
|
+
});
|
|
848
|
+
else require_sensitive_names.assignOwn(copy, key, value);
|
|
849
|
+
}
|
|
850
|
+
return copy;
|
|
851
|
+
} catch {
|
|
852
|
+
return fallbackError(exception, clean);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
768
855
|
let LogixiaExceptionFilter = class LogixiaExceptionFilter {
|
|
769
856
|
constructor(logger, loggerConfig, options) {
|
|
857
|
+
var _loggerConfig$redact;
|
|
770
858
|
this._options = options ?? {};
|
|
859
|
+
this._redactParams = require_sensitive_names.buildNameSet(require_sensitive_names.DEFAULT_REDACT_QUERY_PARAMS, [...(loggerConfig === null || loggerConfig === void 0 || (_loggerConfig$redact = loggerConfig.redact) === null || _loggerConfig$redact === void 0 ? void 0 : _loggerConfig$redact.queryParams) ?? [], ...this._options.redactQueryParams ?? []]);
|
|
771
860
|
this._logger = logger ?? LogixiaLoggerModule._globalLogger ?? void 0;
|
|
772
861
|
this._traceConfig = typeof (loggerConfig === null || loggerConfig === void 0 ? void 0 : loggerConfig.traceId) === "object" ? loggerConfig.traceId : void 0;
|
|
773
862
|
}
|
|
@@ -777,18 +866,39 @@ let LogixiaExceptionFilter = class LogixiaExceptionFilter {
|
|
|
777
866
|
const request = ctx.getRequest();
|
|
778
867
|
const response = ctx.getResponse();
|
|
779
868
|
const traceId = require_request_trace.TraceContext.instance.getCurrentTraceId() ?? require_request_trace.sanitizeIncomingId((_request$headers = request.headers) === null || _request$headers === void 0 ? void 0 : _request$headers["x-trace-id"]) ?? require_request_trace.sanitizeIncomingId(request.id) ?? void 0;
|
|
780
|
-
const
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
869
|
+
const rawUrl = request.originalUrl ?? request.url ?? "";
|
|
870
|
+
const url = require_sensitive_names.redactUrlQuery(rawUrl, this._redactParams);
|
|
871
|
+
const secrets = require_sensitive_names.sensitiveQueryValues(rawUrl, this._redactParams);
|
|
872
|
+
const clean = (text) => require_sensitive_names.sanitizeText(text, this._redactParams, secrets);
|
|
873
|
+
const buildFor = (input) => {
|
|
874
|
+
const { response: built, httpStatus: status } = require_builder.ErrorResponseBuilder.build({
|
|
875
|
+
exception: input,
|
|
876
|
+
traceId,
|
|
877
|
+
path: url || "/",
|
|
878
|
+
startTime: request.startTime,
|
|
879
|
+
exposeDebug: this._options.exposeDebug === true,
|
|
880
|
+
exposeCause: this._options.exposeCause === true
|
|
881
|
+
});
|
|
882
|
+
return {
|
|
883
|
+
errorResponse: scrubErrorResponse(built, clean),
|
|
884
|
+
httpStatus: status
|
|
885
|
+
};
|
|
886
|
+
};
|
|
887
|
+
let result;
|
|
888
|
+
try {
|
|
889
|
+
result = buildFor(exception);
|
|
890
|
+
} catch {
|
|
891
|
+
result = buildFor(fallbackError(exception, clean));
|
|
892
|
+
}
|
|
893
|
+
const { errorResponse, httpStatus } = result;
|
|
894
|
+
let logixiaException = false;
|
|
895
|
+
try {
|
|
896
|
+
logixiaException = require_builder.isLogixiaException(exception);
|
|
897
|
+
} catch {}
|
|
788
898
|
if (this._logger) {
|
|
789
899
|
const requestMeta = {
|
|
790
900
|
method: request.method ?? "",
|
|
791
|
-
url
|
|
901
|
+
url,
|
|
792
902
|
status: httpStatus,
|
|
793
903
|
...errorResponse.meta.trace_id !== void 0 ? { trace_id: errorResponse.meta.trace_id } : {}
|
|
794
904
|
};
|
|
@@ -796,10 +906,8 @@ let LogixiaExceptionFilter = class LogixiaExceptionFilter {
|
|
|
796
906
|
require_internal_log.internalError(`ExceptionFilter failed to write log entry: ${String(err)}`);
|
|
797
907
|
};
|
|
798
908
|
let logPromise;
|
|
799
|
-
if (httpStatus >= 500)
|
|
800
|
-
|
|
801
|
-
logPromise = this._logger.error(err, requestMeta);
|
|
802
|
-
} else if (require_builder.isLogixiaException(exception)) logPromise = this._logger.warn(`[${errorResponse.error.code}] ${errorResponse.error.message}`, requestMeta);
|
|
909
|
+
if (httpStatus >= 500) logPromise = this._logger.error(sanitizedError(exception, clean), requestMeta);
|
|
910
|
+
else if (logixiaException) logPromise = this._logger.warn(`[${errorResponse.error.code}] ${errorResponse.error.message}`, requestMeta);
|
|
803
911
|
else logPromise = this._logger.warn(`[${httpStatus}] ${errorResponse.error.message}`, requestMeta);
|
|
804
912
|
if (logPromise && typeof logPromise.catch === "function") logPromise.catch(onLogFailure);
|
|
805
913
|
}
|