logixia 2.0.10 → 2.1.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.
- package/README.md +2 -1
- package/dist/{async-context-Dv0bmPC-.js → async-context-Dgl3ZLyb.js} +4 -4
- package/dist/{async-context-Dv0bmPC-.js.map → async-context-Dgl3ZLyb.js.map} +1 -1
- package/dist/{async-context-COuvmwsS.mjs → async-context-fBqC5lNc.mjs} +3 -3
- package/dist/{async-context-COuvmwsS.mjs.map → async-context-fBqC5lNc.mjs.map} +1 -1
- package/dist/{azure-monitor.transport-CbSHOnNX.d.mts → azure-monitor.transport-C5VjvREZ.d.mts} +2 -2
- package/dist/{azure-monitor.transport-CbSHOnNX.d.mts.map → azure-monitor.transport-C5VjvREZ.d.mts.map} +1 -1
- package/dist/{azure-monitor.transport-Bvf7Xegt.d.ts → azure-monitor.transport-CyHDjHS-.d.ts} +2 -2
- package/dist/{azure-monitor.transport-Bvf7Xegt.d.ts.map → azure-monitor.transport-CyHDjHS-.d.ts.map} +1 -1
- package/dist/{azure-monitor.transport-Coz5Gesu.mjs → azure-monitor.transport-DGiacfvT.mjs} +19 -8
- package/dist/{azure-monitor.transport-Coz5Gesu.mjs.map → azure-monitor.transport-DGiacfvT.mjs.map} +1 -1
- package/dist/{azure-monitor.transport-D6ryi8rA.js → azure-monitor.transport-DX3fuK2t.js} +19 -8
- package/dist/{azure-monitor.transport-D6ryi8rA.js.map → azure-monitor.transport-DX3fuK2t.js.map} +1 -1
- package/dist/azure.d.mts +1 -1
- package/dist/azure.d.ts +1 -1
- package/dist/azure.js +1 -1
- package/dist/azure.mjs +1 -1
- package/dist/{batch-buffer-CFzKnuNZ.js → batch-buffer-BLmVvJAZ.js} +11 -7
- package/dist/{batch-buffer-CFzKnuNZ.js.map → batch-buffer-BLmVvJAZ.js.map} +1 -1
- package/dist/{batch-buffer-CQUWDMYq.mjs → batch-buffer-CM-lK_Qy.mjs} +11 -7
- package/dist/{batch-buffer-CQUWDMYq.mjs.map → batch-buffer-CM-lK_Qy.mjs.map} +1 -1
- package/dist/browser.d.mts +2 -0
- package/dist/browser.d.mts.map +1 -1
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +42 -13
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +42 -13
- package/dist/browser.mjs.map +1 -1
- package/dist/{builder-Bj3mDeBw.mjs → builder-CA_dokb4.mjs} +246 -101
- package/dist/builder-CA_dokb4.mjs.map +1 -0
- package/dist/{builder-BLIStsCK.js → builder-jMlVYaQa.js} +256 -111
- package/dist/builder-jMlVYaQa.js.map +1 -0
- package/dist/cli/index.js +21 -16
- package/dist/cloudwatch.d.mts +1 -1
- package/dist/cloudwatch.d.ts +1 -1
- package/dist/cloudwatch.js +1 -1
- package/dist/cloudwatch.mjs +1 -1
- package/dist/{cloudwatch.transport-Cr1aeTGj.mjs → cloudwatch.transport-Cr0fEpko.mjs} +24 -9
- package/dist/{cloudwatch.transport-Cr1aeTGj.mjs.map → cloudwatch.transport-Cr0fEpko.mjs.map} +1 -1
- package/dist/{cloudwatch.transport-CQyT6U91.d.ts → cloudwatch.transport-DdSjUWvu.d.ts} +2 -2
- package/dist/{cloudwatch.transport-CQyT6U91.d.ts.map → cloudwatch.transport-DdSjUWvu.d.ts.map} +1 -1
- package/dist/{cloudwatch.transport-D4G5xYfG.js → cloudwatch.transport-Lst1Bbmr.js} +24 -9
- package/dist/{cloudwatch.transport-D4G5xYfG.js.map → cloudwatch.transport-Lst1Bbmr.js.map} +1 -1
- package/dist/{cloudwatch.transport-CjVrI6S4.d.mts → cloudwatch.transport-_hS7Mcc5.d.mts} +2 -2
- package/dist/{cloudwatch.transport-CjVrI6S4.d.mts.map → cloudwatch.transport-_hS7Mcc5.d.mts.map} +1 -1
- package/dist/correlation.js +3 -3
- package/dist/correlation.mjs +3 -3
- package/dist/{coerce.utils-C1C5sIX0.js → csv.utils-CbVHY1pd.js} +24 -1
- package/dist/csv.utils-CbVHY1pd.js.map +1 -0
- package/dist/{coerce.utils-B_rEudCn.mjs → csv.utils-ZdxSod5g.mjs} +19 -2
- package/dist/csv.utils-ZdxSod5g.mjs.map +1 -0
- package/dist/{entry-fields-CVwoQplO.js → entry-fields-BSLkzw18.js} +3 -3
- package/dist/{entry-fields-CVwoQplO.js.map → entry-fields-BSLkzw18.js.map} +1 -1
- package/dist/{entry-fields-DNTKQxoU.mjs → entry-fields-J1OBi24o.mjs} +2 -2
- package/dist/{entry-fields-DNTKQxoU.mjs.map → entry-fields-J1OBi24o.mjs.map} +1 -1
- package/dist/gcp.d.mts +1 -1
- package/dist/gcp.d.ts +1 -1
- package/dist/gcp.js +1 -1
- package/dist/gcp.mjs +1 -1
- package/dist/{gcp.transport-CVuRpchl.js → gcp.transport-5-ZIjN8r.js} +18 -9
- package/dist/{gcp.transport-CVuRpchl.js.map → gcp.transport-5-ZIjN8r.js.map} +1 -1
- package/dist/{gcp.transport-D9SdLPwP.d.mts → gcp.transport-C8VJiEM7.d.mts} +2 -2
- package/dist/{gcp.transport-D9SdLPwP.d.mts.map → gcp.transport-C8VJiEM7.d.mts.map} +1 -1
- package/dist/{gcp.transport-BCIvdFV-.d.ts → gcp.transport-Ct0BtKFo.d.ts} +2 -2
- package/dist/{gcp.transport-BCIvdFV-.d.ts.map → gcp.transport-Ct0BtKFo.d.ts.map} +1 -1
- package/dist/{gcp.transport-LLK2bw2-.mjs → gcp.transport-Cw3Qke85.mjs} +18 -9
- package/dist/{gcp.transport-LLK2bw2-.mjs.map → gcp.transport-Cw3Qke85.mjs.map} +1 -1
- package/dist/{index-BAkPHp5D.d.mts → index-B3ajtXJd.d.mts} +2 -2
- package/dist/{index-BAkPHp5D.d.mts.map → index-B3ajtXJd.d.mts.map} +1 -1
- package/dist/{index-e7LowmAu.d.ts → index-oqD3WNxf.d.ts} +2 -2
- package/dist/{index-e7LowmAu.d.ts.map → index-oqD3WNxf.d.ts.map} +1 -1
- package/dist/index.d.mts +8 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -17
- package/dist/index.mjs.map +1 -1
- package/dist/{logitron-logger-DVUdgmBY.d.ts → logitron-logger-Csn3e6Qu.d.ts} +2 -2
- package/dist/{logitron-logger-DVUdgmBY.d.ts.map → logitron-logger-Csn3e6Qu.d.ts.map} +1 -1
- package/dist/{logitron-logger-DoWmMjYB.d.mts → logitron-logger-fMOkXr8H.d.mts} +2 -2
- package/dist/{logitron-logger-DoWmMjYB.d.mts.map → logitron-logger-fMOkXr8H.d.mts.map} +1 -1
- package/dist/middleware.d.mts +1 -1
- package/dist/middleware.d.mts.map +1 -1
- package/dist/middleware.d.ts +1 -1
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +12 -7
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +11 -6
- package/dist/middleware.mjs.map +1 -1
- package/dist/nest.d.mts +51 -18
- package/dist/nest.d.mts.map +1 -1
- package/dist/nest.d.ts +51 -18
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js +207 -65
- package/dist/nest.js.map +1 -1
- package/dist/nest.mjs +202 -60
- package/dist/nest.mjs.map +1 -1
- package/dist/{otel-ChnVYRLA.js → otel-8ypFGG19.js} +452 -120
- package/dist/otel-8ypFGG19.js.map +1 -0
- package/dist/{otel-DOuwGPCd.mjs → otel-b-s2QbY4.mjs} +450 -118
- package/dist/otel-b-s2QbY4.mjs.map +1 -0
- package/dist/own-property-BWkibepN.js +40 -0
- package/dist/own-property-BWkibepN.js.map +1 -0
- package/dist/own-property-CjFw9qwZ.mjs +29 -0
- package/dist/own-property-CjFw9qwZ.mjs.map +1 -0
- package/dist/{request-trace-ByujsUZk.js → request-trace-C7kXMjx5.js} +5 -6
- package/dist/{request-trace-ByujsUZk.js.map → request-trace-C7kXMjx5.js.map} +1 -1
- package/dist/{request-trace-BgNykH9M.mjs → request-trace-Dekcnenb.mjs} +5 -6
- package/dist/{request-trace-BgNykH9M.mjs.map → request-trace-Dekcnenb.mjs.map} +1 -1
- package/dist/{safe-stringify--7gbe95n.mjs → safe-stringify-B5p5ktFe.mjs} +2 -2
- package/dist/{safe-stringify--7gbe95n.mjs.map → safe-stringify-B5p5ktFe.mjs.map} +1 -1
- package/dist/{safe-stringify-CN7icp8S.js → safe-stringify-J3sh-7YM.js} +5 -5
- package/dist/{safe-stringify-CN7icp8S.js.map → safe-stringify-J3sh-7YM.js.map} +1 -1
- package/dist/{search-DPwTKPve.d.ts → search-B-hJe2N-.d.mts} +9 -8
- package/dist/{search-D-8HJADE.d.mts.map → search-B-hJe2N-.d.mts.map} +1 -1
- package/dist/{search-D-8HJADE.d.mts → search-BlKBLm5D.d.ts} +9 -8
- package/dist/{search-DPwTKPve.d.ts.map → search-BlKBLm5D.d.ts.map} +1 -1
- package/dist/{search-DAXKE-P9.mjs → search-CTR4XNHq.mjs} +91 -44
- package/dist/search-CTR4XNHq.mjs.map +1 -0
- package/dist/{search-CRjhHxe9.js → search-_qx4YzRP.js} +94 -47
- package/dist/search-_qx4YzRP.js.map +1 -0
- package/dist/search.d.mts +1 -1
- package/dist/search.d.ts +1 -1
- package/dist/search.js +1 -1
- package/dist/search.mjs +1 -1
- package/dist/{secret-config-BvFl2dC8.js → secret-config--cVTOWwp.js} +6 -5
- package/dist/{secret-config-BvFl2dC8.js.map → secret-config--cVTOWwp.js.map} +1 -1
- package/dist/{secret-config-ByGq7kJd.mjs → secret-config-GKmb15Me.mjs} +3 -2
- package/dist/{secret-config-ByGq7kJd.mjs.map → secret-config-GKmb15Me.mjs.map} +1 -1
- package/dist/{sensitive-names-o__1PUUR.mjs → sensitive-names-BiBM6R1X.mjs} +2 -28
- package/dist/sensitive-names-BiBM6R1X.mjs.map +1 -0
- package/dist/{sensitive-names-CHMowujD.js → sensitive-names-NiKIRhp5.js} +5 -37
- package/dist/sensitive-names-NiKIRhp5.js.map +1 -0
- package/dist/{slack.transport-BDyENuR0.d.mts → slack.transport-5OPL7H3u.d.mts} +76 -3
- package/dist/slack.transport-5OPL7H3u.d.mts.map +1 -0
- package/dist/{slack.transport-C6E0l4kw.d.ts → slack.transport-BFpBD_Ri.d.ts} +76 -3
- package/dist/slack.transport-BFpBD_Ri.d.ts.map +1 -0
- package/dist/{slack.transport-zLQ9MGxS.js → slack.transport-Cpx5fKga.js} +272 -21
- package/dist/slack.transport-Cpx5fKga.js.map +1 -0
- package/dist/{slack.transport-CSj1j0_X.mjs → slack.transport-Qwj9WkrJ.mjs} +267 -22
- package/dist/slack.transport-Qwj9WkrJ.mjs.map +1 -0
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/{transport.types-CzJq4IrF.d.ts → transport.types-B1ejJJP6.d.mts} +6 -1
- package/dist/transport.types-B1ejJJP6.d.mts.map +1 -0
- package/dist/{transport.types-CzJq4IrF.d.mts → transport.types-B1ejJJP6.d.ts} +6 -1
- package/dist/transport.types-B1ejJJP6.d.ts.map +1 -0
- package/dist/transports.d.mts +61 -11
- package/dist/transports.d.mts.map +1 -1
- package/dist/transports.d.ts +61 -11
- package/dist/transports.d.ts.map +1 -1
- package/dist/transports.js +7 -6
- package/dist/transports.mjs +7 -7
- package/dist/worker-entry.js +200 -52
- package/dist/worker.d.mts +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.mjs +1 -1
- package/dist/{worker.transport-B9mCQSM1.d.ts → worker.transport-B7olL1Uh.d.ts} +12 -2
- package/dist/worker.transport-B7olL1Uh.d.ts.map +1 -0
- package/dist/{worker.transport-D78xhNhB.mjs → worker.transport-BHnWDXPH.mjs} +59 -13
- package/dist/worker.transport-BHnWDXPH.mjs.map +1 -0
- package/dist/{worker.transport-DQDv1nAJ.js → worker.transport-C7jNGhev.js} +59 -13
- package/dist/worker.transport-C7jNGhev.js.map +1 -0
- package/dist/{worker.transport-Bl8lFRck.d.mts → worker.transport-DnU0_9Bd.d.mts} +12 -2
- package/dist/worker.transport-DnU0_9Bd.d.mts.map +1 -0
- package/package.json +10 -3
- package/dist/builder-BLIStsCK.js.map +0 -1
- package/dist/builder-Bj3mDeBw.mjs.map +0 -1
- package/dist/coerce.utils-B_rEudCn.mjs.map +0 -1
- package/dist/coerce.utils-C1C5sIX0.js.map +0 -1
- package/dist/otel-ChnVYRLA.js.map +0 -1
- package/dist/otel-DOuwGPCd.mjs.map +0 -1
- package/dist/search-CRjhHxe9.js.map +0 -1
- package/dist/search-DAXKE-P9.mjs.map +0 -1
- package/dist/sensitive-names-CHMowujD.js.map +0 -1
- package/dist/sensitive-names-o__1PUUR.mjs.map +0 -1
- package/dist/slack.transport-BDyENuR0.d.mts.map +0 -1
- package/dist/slack.transport-C6E0l4kw.d.ts.map +0 -1
- package/dist/slack.transport-CSj1j0_X.mjs.map +0 -1
- package/dist/slack.transport-zLQ9MGxS.js.map +0 -1
- package/dist/transport.types-CzJq4IrF.d.mts.map +0 -1
- package/dist/transport.types-CzJq4IrF.d.ts.map +0 -1
- package/dist/worker.transport-B9mCQSM1.d.ts.map +0 -1
- package/dist/worker.transport-Bl8lFRck.d.mts.map +0 -1
- package/dist/worker.transport-D78xhNhB.mjs.map +0 -1
- package/dist/worker.transport-DQDv1nAJ.js.map +0 -1
package/dist/nest.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_secret_config = require("./secret-config
|
|
3
|
-
const require_builder = require("./builder-
|
|
4
|
-
const
|
|
5
|
-
const require_request_trace = require("./request-trace-
|
|
2
|
+
const require_secret_config = require("./secret-config--cVTOWwp.js");
|
|
3
|
+
const require_builder = require("./builder-jMlVYaQa.js");
|
|
4
|
+
const require_own_property = require("./own-property-BWkibepN.js");
|
|
5
|
+
const require_request_trace = require("./request-trace-C7kXMjx5.js");
|
|
6
|
+
const require_sensitive_names = require("./sensitive-names-NiKIRhp5.js");
|
|
6
7
|
const require_internal_log = require("./internal-log-DwqTjhpb.js");
|
|
7
|
-
const
|
|
8
|
+
const require_csv_utils = require("./csv.utils-CbVHY1pd.js");
|
|
8
9
|
let _nestjs_common = require("@nestjs/common");
|
|
9
10
|
let rxjs = require("rxjs");
|
|
10
11
|
// \0@oxc-project+runtime@0.155.0/helpers/esm/decorateMetadata.js
|
|
@@ -20,9 +21,37 @@ function __decorate(decorators, target, key, desc) {
|
|
|
20
21
|
}
|
|
21
22
|
// src/core/logitron-nestjs.service.ts
|
|
22
23
|
var _LogixiaLoggerService;
|
|
24
|
+
const looksLikeStack = (value) => value.includes("\n at ");
|
|
25
|
+
const NEST_LEVEL_TO_LOGIXIA = {
|
|
26
|
+
fatal: require_builder.LogLevel.ERROR,
|
|
27
|
+
error: require_builder.LogLevel.ERROR,
|
|
28
|
+
warn: require_builder.LogLevel.WARN,
|
|
29
|
+
log: require_builder.LogLevel.INFO,
|
|
30
|
+
debug: require_builder.LogLevel.DEBUG,
|
|
31
|
+
verbose: require_builder.LogLevel.TRACE
|
|
32
|
+
};
|
|
33
|
+
const LEVEL_VERBOSITY = [
|
|
34
|
+
require_builder.LogLevel.ERROR,
|
|
35
|
+
require_builder.LogLevel.WARN,
|
|
36
|
+
require_builder.LogLevel.INFO,
|
|
37
|
+
require_builder.LogLevel.DEBUG,
|
|
38
|
+
require_builder.LogLevel.TRACE
|
|
39
|
+
];
|
|
40
|
+
function isPlainObject(value) {
|
|
41
|
+
if (typeof value !== "object" || value === null) return false;
|
|
42
|
+
const proto = Object.getPrototypeOf(value);
|
|
43
|
+
return proto === Object.prototype || proto === null;
|
|
44
|
+
}
|
|
45
|
+
function describeObject(value) {
|
|
46
|
+
var _value$constructor;
|
|
47
|
+
return Array.isArray(value) ? require_csv_utils.safeToString(value) : `[${((_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name) ?? "Object"}]`;
|
|
48
|
+
}
|
|
23
49
|
let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
|
|
50
|
+
logger;
|
|
51
|
+
context;
|
|
52
|
+
_mergedConfig;
|
|
24
53
|
constructor(config) {
|
|
25
|
-
const
|
|
54
|
+
const mergedConfig = {
|
|
26
55
|
appName: "NestJS-App",
|
|
27
56
|
environment: "development",
|
|
28
57
|
traceId: true,
|
|
@@ -57,37 +86,40 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
|
|
|
57
86
|
message: "[message]",
|
|
58
87
|
payload: "[payload]",
|
|
59
88
|
timeTaken: "[time_taken_MS]"
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
require_secret_config.protectSecrets(this, ["_mergedConfig"]);
|
|
63
|
-
this._mergedConfig = {
|
|
64
|
-
...defaultConfig,
|
|
89
|
+
},
|
|
65
90
|
...config
|
|
66
91
|
};
|
|
67
|
-
this.
|
|
92
|
+
this._attach(mergedConfig, new require_builder.LogixiaLogger(mergedConfig));
|
|
93
|
+
}
|
|
94
|
+
_attach(mergedConfig, logger) {
|
|
95
|
+
require_secret_config.protectSecrets(this, ["_mergedConfig"]);
|
|
96
|
+
this._mergedConfig = mergedConfig;
|
|
97
|
+
this.logger = logger;
|
|
68
98
|
this._createCustomLevelMethods();
|
|
69
99
|
}
|
|
70
100
|
_createCustomLevelMethods() {
|
|
71
101
|
var _this$_mergedConfig$l;
|
|
72
102
|
const levels = (_this$_mergedConfig$l = this._mergedConfig.levelOptions) === null || _this$_mergedConfig$l === void 0 ? void 0 : _this$_mergedConfig$l.levels;
|
|
73
103
|
if (!levels) return;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (typeof
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
104
|
+
const self = this;
|
|
105
|
+
const define = (method, levelName) => {
|
|
106
|
+
if (typeof self[method] !== "undefined") return;
|
|
107
|
+
self[method] = async (message, data) => this.logger.logLevel(levelName, message, data);
|
|
108
|
+
};
|
|
109
|
+
const names = Object.keys(levels);
|
|
110
|
+
for (const levelName of names) define(levelName, levelName);
|
|
111
|
+
for (const levelName of names) define(levelName.toLowerCase(), levelName);
|
|
81
112
|
}
|
|
82
113
|
/**
|
|
83
|
-
* NestJS `LoggerService.log` — void
|
|
84
|
-
*
|
|
114
|
+
* NestJS `LoggerService.log` — void. Maps internally to `info`.
|
|
115
|
+
* A trailing string is the context for this call only; object params are merged into the payload.
|
|
85
116
|
*
|
|
86
117
|
* @example `logger.log('User signed up', 'AuthService')`
|
|
118
|
+
* @example `logger.log('User signed up', { userId: 'u_abc' }, 'AuthService')`
|
|
87
119
|
*/
|
|
88
|
-
log(message,
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
120
|
+
log(message, ...optionalParams) {
|
|
121
|
+
const { context, data } = this.parseParams(optionalParams);
|
|
122
|
+
this.reportFailure("log", this.withContext(context, () => this.logger.info(this.formatMessage(message), data)));
|
|
91
123
|
}
|
|
92
124
|
/**
|
|
93
125
|
* Native async `info` — structured data, returns `Promise<void>`.
|
|
@@ -97,27 +129,49 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
|
|
|
97
129
|
async info(message, data) {
|
|
98
130
|
return this.logger.info(message, data);
|
|
99
131
|
}
|
|
100
|
-
error(message,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
132
|
+
error(message, ...optionalParams) {
|
|
133
|
+
const only = optionalParams[0];
|
|
134
|
+
if (optionalParams.length === 1 && typeof only === "object" && only !== null) {
|
|
135
|
+
const data = only;
|
|
136
|
+
return message instanceof Error ? this.logger.error(message, data) : this.logger.error(this.formatMessage(message), data);
|
|
137
|
+
}
|
|
138
|
+
const { context, data } = this.parseParams(optionalParams, true);
|
|
139
|
+
this.reportFailure("error", this.withContext(context, () => message instanceof Error ? this.logger.error(message, data) : this.logger.error(this.formatMessage(message), data)));
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* NestJS `LoggerService.fatal`. logixia has no level above `error`, so this logs
|
|
143
|
+
* at `error` with `fatal: true` in the payload, or at a custom `fatal` level when
|
|
144
|
+
* one is configured.
|
|
145
|
+
*
|
|
146
|
+
* @example `logger.fatal('Cannot reach the database, shutting down', 'Bootstrap')`
|
|
147
|
+
*/
|
|
148
|
+
fatal(message, ...optionalParams) {
|
|
149
|
+
var _this$_mergedConfig$l2;
|
|
150
|
+
const { context, data } = this.parseParams(optionalParams, true);
|
|
151
|
+
const text = this.formatMessage(message);
|
|
152
|
+
const hasFatalLevel = ((_this$_mergedConfig$l2 = this._mergedConfig.levelOptions) === null || _this$_mergedConfig$l2 === void 0 || (_this$_mergedConfig$l2 = _this$_mergedConfig$l2.levels) === null || _this$_mergedConfig$l2 === void 0 ? void 0 : _this$_mergedConfig$l2["fatal"]) !== void 0;
|
|
153
|
+
this.reportFailure("fatal", this.withContext(context, () => hasFatalLevel ? this.logger.logLevel("fatal", text, data) : this.logger.error(text, {
|
|
154
|
+
...data,
|
|
155
|
+
fatal: true
|
|
156
|
+
})));
|
|
106
157
|
}
|
|
107
|
-
warn(message,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
158
|
+
warn(message, ...optionalParams) {
|
|
159
|
+
const only = optionalParams[0];
|
|
160
|
+
if (optionalParams.length === 1 && typeof only === "object" && only !== null) return this.logger.warn(this.formatMessage(message), only);
|
|
161
|
+
const { context, data } = this.parseParams(optionalParams);
|
|
162
|
+
this.reportFailure("warn", this.withContext(context, () => this.logger.warn(this.formatMessage(message), data)));
|
|
111
163
|
}
|
|
112
|
-
debug(message,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
164
|
+
debug(message, ...optionalParams) {
|
|
165
|
+
const only = optionalParams[0];
|
|
166
|
+
if (optionalParams.length === 1 && typeof only === "object" && only !== null) return this.logger.debug(this.formatMessage(message), only);
|
|
167
|
+
const { context, data } = this.parseParams(optionalParams);
|
|
168
|
+
this.reportFailure("debug", this.withContext(context, () => this.logger.debug(this.formatMessage(message), data)));
|
|
116
169
|
}
|
|
117
|
-
verbose(message,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
170
|
+
verbose(message, ...optionalParams) {
|
|
171
|
+
const only = optionalParams[0];
|
|
172
|
+
if (optionalParams.length === 1 && typeof only === "object" && only !== null) return this.logger.trace(this.formatMessage(message), only);
|
|
173
|
+
const { context, data } = this.parseParams(optionalParams);
|
|
174
|
+
this.reportFailure("verbose", this.withContext(context, () => this.logger.trace(this.formatMessage(message), data)));
|
|
121
175
|
}
|
|
122
176
|
/**
|
|
123
177
|
* Native async `trace` — lowest verbosity level, structured data.
|
|
@@ -141,7 +195,7 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
|
|
|
141
195
|
return this.logger.timeAsync(label, fn);
|
|
142
196
|
}
|
|
143
197
|
setContext(context) {
|
|
144
|
-
const coerced = typeof context === "string" ? context :
|
|
198
|
+
const coerced = typeof context === "string" ? context : require_csv_utils.safeToString(context);
|
|
145
199
|
this.context = coerced;
|
|
146
200
|
this.logger.setContext(coerced);
|
|
147
201
|
}
|
|
@@ -154,9 +208,30 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
|
|
|
154
208
|
getLevel() {
|
|
155
209
|
return this.logger.getLevel();
|
|
156
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* NestJS `LoggerService.setLogLevels`. logixia filters by a minimum level, not a
|
|
213
|
+
* set, so the most verbose of `levels` becomes the threshold and everything more
|
|
214
|
+
* severe stays on (`['log', 'error']` also enables `warn`). Unknown names are
|
|
215
|
+
* ignored, and an empty list is ignored too: use `silent` to turn logging off.
|
|
216
|
+
*
|
|
217
|
+
* @example `logger.setLogLevels(['error', 'warn'])`
|
|
218
|
+
*/
|
|
219
|
+
setLogLevels(levels) {
|
|
220
|
+
let threshold;
|
|
221
|
+
let verbosity = -1;
|
|
222
|
+
for (const name of levels) {
|
|
223
|
+
const level = NEST_LEVEL_TO_LOGIXIA[name];
|
|
224
|
+
const rank = level === void 0 ? -1 : LEVEL_VERBOSITY.indexOf(level);
|
|
225
|
+
if (rank > verbosity) {
|
|
226
|
+
verbosity = rank;
|
|
227
|
+
threshold = level;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (threshold !== void 0) this.setLevel(threshold);
|
|
231
|
+
}
|
|
157
232
|
child(context, data) {
|
|
158
|
-
const childService =
|
|
159
|
-
childService.
|
|
233
|
+
const childService = Object.create(_LogixiaLoggerService.prototype);
|
|
234
|
+
childService._attach(this._mergedConfig, this.logger.child(context, data));
|
|
160
235
|
childService.context = context;
|
|
161
236
|
return childService;
|
|
162
237
|
}
|
|
@@ -176,13 +251,63 @@ let LogixiaLoggerService = _LogixiaLoggerService = class LogixiaLoggerService {
|
|
|
176
251
|
getLogger() {
|
|
177
252
|
return this.logger;
|
|
178
253
|
}
|
|
179
|
-
|
|
180
|
-
if (
|
|
181
|
-
|
|
254
|
+
withContext(context, fn) {
|
|
255
|
+
if (context === void 0 || context === this.logger.getContext()) return fn();
|
|
256
|
+
const previous = this.logger.getContext() ?? "";
|
|
257
|
+
this.logger.setContext(context);
|
|
258
|
+
try {
|
|
259
|
+
return fn();
|
|
260
|
+
} finally {
|
|
261
|
+
this.logger.setContext(previous);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Split NestJS `...optionalParams` into a per-call context and a payload.
|
|
266
|
+
* A trailing string is the context; plain objects are merged into the payload and
|
|
267
|
+
* an Error goes under `error`. For `error()` (`withStack`), a leading string is the stack
|
|
268
|
+
* trace, and a lone string is the stack only if it looks like one, since Nest's own
|
|
269
|
+
* `Logger` appends the context as the last param. Anything else is listed under `params`.
|
|
270
|
+
*/
|
|
271
|
+
parseParams(params, withStack = false) {
|
|
272
|
+
if (params.length === 0) return {};
|
|
273
|
+
let rest = params;
|
|
274
|
+
let context;
|
|
275
|
+
const last = params[params.length - 1];
|
|
276
|
+
if (typeof last === "string" && !(withStack && params.length === 1 && looksLikeStack(last))) {
|
|
277
|
+
context = last.length > 0 ? last : void 0;
|
|
278
|
+
rest = params.slice(0, -1);
|
|
279
|
+
}
|
|
280
|
+
let data;
|
|
281
|
+
const extras = [];
|
|
282
|
+
for (const param of rest) if (withStack && typeof param === "string" && (data === null || data === void 0 ? void 0 : data["stack"]) === void 0) data = {
|
|
283
|
+
...data,
|
|
284
|
+
stack: param
|
|
285
|
+
};
|
|
286
|
+
else if (param instanceof Error) data = {
|
|
287
|
+
...data,
|
|
288
|
+
error: param
|
|
289
|
+
};
|
|
290
|
+
else if (isPlainObject(param)) data = {
|
|
291
|
+
...data,
|
|
292
|
+
...param
|
|
293
|
+
};
|
|
294
|
+
else if (param !== void 0) extras.push(typeof param === "object" && param !== null ? describeObject(param) : param);
|
|
295
|
+
if (extras.length > 0) data = {
|
|
296
|
+
...data,
|
|
297
|
+
params: extras
|
|
298
|
+
};
|
|
299
|
+
return context === void 0 ? { data } : {
|
|
300
|
+
context,
|
|
301
|
+
data
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
reportFailure(method, result) {
|
|
305
|
+
result.catch((err) => require_internal_log.internalError(`LogixiaLoggerService.${method} failed`, err));
|
|
182
306
|
}
|
|
183
307
|
formatMessage(message) {
|
|
184
308
|
if (typeof message === "string") return message;
|
|
185
|
-
|
|
309
|
+
if (message !== null && typeof message === "object") return message;
|
|
310
|
+
return require_csv_utils.safeToString(message);
|
|
186
311
|
}
|
|
187
312
|
};
|
|
188
313
|
LogixiaLoggerService = _LogixiaLoggerService = __decorate([(0, _nestjs_common.Injectable)({ scope: _nestjs_common.Scope.TRANSIENT }), __decorateMetadata("design:paramtypes", [Object])], LogixiaLoggerService);
|
|
@@ -192,12 +317,24 @@ let KafkaTraceInterceptor = class KafkaTraceInterceptor {
|
|
|
192
317
|
static {
|
|
193
318
|
_KafkaTraceInterceptor = this;
|
|
194
319
|
}
|
|
320
|
+
requireTraceId;
|
|
321
|
+
/**
|
|
322
|
+
* Process-wide counters. Readable from anywhere — scrape into your metrics
|
|
323
|
+
* system (Prometheus, Datadog, CloudWatch) on an interval.
|
|
324
|
+
*/
|
|
325
|
+
static metrics = {
|
|
326
|
+
accepted: 0,
|
|
327
|
+
acceptedWithoutTrace: 0,
|
|
328
|
+
dropped: 0
|
|
329
|
+
};
|
|
195
330
|
/** Reset counters (tests). */
|
|
196
331
|
static resetMetrics() {
|
|
197
332
|
_KafkaTraceInterceptor.metrics.accepted = 0;
|
|
198
333
|
_KafkaTraceInterceptor.metrics.acceptedWithoutTrace = 0;
|
|
199
334
|
_KafkaTraceInterceptor.metrics.dropped = 0;
|
|
200
335
|
}
|
|
336
|
+
ctx = require_request_trace.TraceContext.instance;
|
|
337
|
+
config;
|
|
201
338
|
/**
|
|
202
339
|
* @param config - TraceIdConfig options (extractor keys, contextKey, etc.)
|
|
203
340
|
* @param requireTraceId - When true, messages with no traceId are silently skipped
|
|
@@ -208,7 +345,6 @@ let KafkaTraceInterceptor = class KafkaTraceInterceptor {
|
|
|
208
345
|
*/
|
|
209
346
|
constructor(config, requireTraceId = false) {
|
|
210
347
|
this.requireTraceId = requireTraceId;
|
|
211
|
-
this.ctx = require_request_trace.TraceContext.instance;
|
|
212
348
|
this.config = {
|
|
213
349
|
enabled: true,
|
|
214
350
|
contextKey: "traceId",
|
|
@@ -267,11 +403,6 @@ let KafkaTraceInterceptor = class KafkaTraceInterceptor {
|
|
|
267
403
|
return () => inner === null || inner === void 0 ? void 0 : inner.unsubscribe();
|
|
268
404
|
});
|
|
269
405
|
}
|
|
270
|
-
static #_ = () => this.metrics = {
|
|
271
|
-
accepted: 0,
|
|
272
|
-
acceptedWithoutTrace: 0,
|
|
273
|
-
dropped: 0
|
|
274
|
-
};
|
|
275
406
|
};
|
|
276
407
|
KafkaTraceInterceptor = _KafkaTraceInterceptor = __decorate([(0, _nestjs_common.Injectable)(), __decorateMetadata("design:paramtypes", [Object, Boolean])], KafkaTraceInterceptor);
|
|
277
408
|
// \0@oxc-project+runtime@0.155.0/helpers/esm/decorateParam.js
|
|
@@ -312,9 +443,11 @@ function traceUrl(req, names) {
|
|
|
312
443
|
return raw === void 0 ? void 0 : require_sensitive_names.redactUrlQuery(raw, names);
|
|
313
444
|
}
|
|
314
445
|
let TraceMiddleware = class TraceMiddleware {
|
|
446
|
+
config;
|
|
447
|
+
ctx = require_request_trace.TraceContext.instance;
|
|
448
|
+
redactParams;
|
|
315
449
|
constructor(config, redactQueryParams) {
|
|
316
450
|
this.config = config;
|
|
317
|
-
this.ctx = require_request_trace.TraceContext.instance;
|
|
318
451
|
this.redactParams = require_sensitive_names.buildNameSet(require_sensitive_names.DEFAULT_REDACT_QUERY_PARAMS, redactQueryParams);
|
|
319
452
|
const defaultExtractor = {
|
|
320
453
|
header: require_request_trace.DEFAULT_TRACE_HEADERS,
|
|
@@ -363,8 +496,9 @@ TraceMiddleware = __decorate([
|
|
|
363
496
|
], TraceMiddleware);
|
|
364
497
|
// src/core/websocket-trace.interceptor.ts
|
|
365
498
|
let WebSocketTraceInterceptor = class WebSocketTraceInterceptor {
|
|
499
|
+
ctx = require_request_trace.TraceContext.instance;
|
|
500
|
+
config;
|
|
366
501
|
constructor(config) {
|
|
367
|
-
this.ctx = require_request_trace.TraceContext.instance;
|
|
368
502
|
this.config = {
|
|
369
503
|
enabled: true,
|
|
370
504
|
contextKey: "traceId",
|
|
@@ -433,9 +567,14 @@ let LogixiaLoggerModule = class LogixiaLoggerModule {
|
|
|
433
567
|
static {
|
|
434
568
|
_LogixiaLoggerModule = this;
|
|
435
569
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
570
|
+
config = {};
|
|
571
|
+
static loggerConfig = {};
|
|
572
|
+
/**
|
|
573
|
+
* @internal Backing field for the global logger. Do not read or write
|
|
574
|
+
* directly — use {@link getGlobalLogger} / {@link _setGlobalLogger} which
|
|
575
|
+
* enforce single-init semantics.
|
|
576
|
+
*/
|
|
577
|
+
static _globalLogger = null;
|
|
439
578
|
/**
|
|
440
579
|
* @internal Set the global logger exactly once.
|
|
441
580
|
*
|
|
@@ -675,7 +814,6 @@ let LogixiaLoggerModule = class LogixiaLoggerModule {
|
|
|
675
814
|
inject: [options.useExisting || options.useClass]
|
|
676
815
|
};
|
|
677
816
|
}
|
|
678
|
-
static #_ = () => (this.loggerConfig = {}, this._globalLogger = null);
|
|
679
817
|
};
|
|
680
818
|
LogixiaLoggerModule = _LogixiaLoggerModule = __decorate([(0, _nestjs_common.Module)({})], LogixiaLoggerModule);
|
|
681
819
|
// src/core/nestjs-extras.ts
|
|
@@ -712,7 +850,7 @@ const InjectLogger = (context) => context === void 0 ? (0, _nestjs_common.Inject
|
|
|
712
850
|
* ```
|
|
713
851
|
*/
|
|
714
852
|
function LogMethod(options = {}) {
|
|
715
|
-
const { level = "debug", logArgs =
|
|
853
|
+
const { level = "debug", logArgs = false, logResult = false, logErrors = true } = options;
|
|
716
854
|
return function(target, propertyKey, descriptor) {
|
|
717
855
|
var _constructor;
|
|
718
856
|
const originalMethod = descriptor.value;
|
|
@@ -806,7 +944,7 @@ function scrubSerialized(value, clean, depth, seen) {
|
|
|
806
944
|
try {
|
|
807
945
|
if (Array.isArray(value)) return value.map((item) => scrubSerialized(item, clean, depth + 1, seen));
|
|
808
946
|
const out = {};
|
|
809
|
-
for (const [key, item] of Object.entries(value))
|
|
947
|
+
for (const [key, item] of Object.entries(value)) require_own_property.assignOwn(out, key, scrubSerialized(item, clean, depth + 1, seen));
|
|
810
948
|
return out;
|
|
811
949
|
} finally {
|
|
812
950
|
seen.delete(value);
|
|
@@ -824,7 +962,7 @@ function fallbackError(exception, clean) {
|
|
|
824
962
|
} catch {}
|
|
825
963
|
const copy = new Error(message);
|
|
826
964
|
copy.name = name;
|
|
827
|
-
|
|
965
|
+
require_own_property.assignOwn(copy, "serialization", "[Unserializable]");
|
|
828
966
|
return copy;
|
|
829
967
|
}
|
|
830
968
|
/**
|
|
@@ -845,7 +983,7 @@ function sanitizedError(exception, clean) {
|
|
|
845
983
|
writable: true,
|
|
846
984
|
configurable: true
|
|
847
985
|
});
|
|
848
|
-
else
|
|
986
|
+
else require_own_property.assignOwn(copy, key, value);
|
|
849
987
|
}
|
|
850
988
|
return copy;
|
|
851
989
|
} catch {
|
|
@@ -853,6 +991,10 @@ function sanitizedError(exception, clean) {
|
|
|
853
991
|
}
|
|
854
992
|
}
|
|
855
993
|
let LogixiaExceptionFilter = class LogixiaExceptionFilter {
|
|
994
|
+
_logger;
|
|
995
|
+
_traceConfig;
|
|
996
|
+
_options;
|
|
997
|
+
_redactParams;
|
|
856
998
|
constructor(logger, loggerConfig, options) {
|
|
857
999
|
var _loggerConfig$redact;
|
|
858
1000
|
this._options = options ?? {};
|