logixia 2.0.4 → 2.0.7
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 +172 -2614
- package/dist/{async-context-B05ArHgM.mjs → async-context-COuvmwsS.mjs} +4 -6
- package/dist/async-context-COuvmwsS.mjs.map +1 -0
- package/dist/{async-context-DTQgi8f7.js → async-context-Dv0bmPC-.js} +4 -6
- package/dist/async-context-Dv0bmPC-.js.map +1 -0
- package/dist/{azure-monitor.transport-DV03Z5P4.d.ts → azure-monitor.transport-Bvf7Xegt.d.ts} +2 -2
- package/dist/{azure-monitor.transport-DV03Z5P4.d.ts.map → azure-monitor.transport-Bvf7Xegt.d.ts.map} +1 -1
- package/dist/{azure-monitor.transport-C7kYyZUW.d.mts → azure-monitor.transport-CbSHOnNX.d.mts} +2 -2
- package/dist/{azure-monitor.transport-C7kYyZUW.d.mts.map → azure-monitor.transport-CbSHOnNX.d.mts.map} +1 -1
- package/dist/{azure-monitor.transport-BPbgjATu.mjs → azure-monitor.transport-Coz5Gesu.mjs} +5 -5
- package/dist/azure-monitor.transport-Coz5Gesu.mjs.map +1 -0
- package/dist/{azure-monitor.transport-CwbOLZHB.js → azure-monitor.transport-D6ryi8rA.js} +5 -5
- package/dist/azure-monitor.transport-D6ryi8rA.js.map +1 -0
- 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-DT4gdXmf.js → batch-buffer-CFzKnuNZ.js} +3 -3
- package/dist/{batch-buffer-DT4gdXmf.js.map → batch-buffer-CFzKnuNZ.js.map} +1 -1
- package/dist/{batch-buffer-0fgLmIPn.mjs → batch-buffer-CQUWDMYq.mjs} +3 -3
- package/dist/{batch-buffer-0fgLmIPn.mjs.map → batch-buffer-CQUWDMYq.mjs.map} +1 -1
- package/dist/browser.d.mts +5 -5
- package/dist/browser.d.mts.map +1 -1
- package/dist/browser.d.ts +5 -5
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +72 -13
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +72 -13
- package/dist/browser.mjs.map +1 -1
- package/dist/{builder-D70z6kjj.mjs → builder-C_TgxEOW.mjs} +106 -153
- package/dist/builder-C_TgxEOW.mjs.map +1 -0
- package/dist/{builder-M7NoaugM.js → builder-CzmM_4Ub.js} +110 -180
- package/dist/builder-CzmM_4Ub.js.map +1 -0
- package/dist/cli/index.js +157 -66
- 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-Bf7L4I59.d.ts → cloudwatch.transport-CQyT6U91.d.ts} +2 -2
- package/dist/{cloudwatch.transport-Bf7L4I59.d.ts.map → cloudwatch.transport-CQyT6U91.d.ts.map} +1 -1
- package/dist/{cloudwatch.transport-Rj4yTpRn.d.mts → cloudwatch.transport-CjVrI6S4.d.mts} +2 -2
- package/dist/{cloudwatch.transport-Rj4yTpRn.d.mts.map → cloudwatch.transport-CjVrI6S4.d.mts.map} +1 -1
- package/dist/{cloudwatch.transport-BTvYfLs9.mjs → cloudwatch.transport-Cr1aeTGj.mjs} +6 -6
- package/dist/cloudwatch.transport-Cr1aeTGj.mjs.map +1 -0
- package/dist/{cloudwatch.transport-B2wKQFF7.js → cloudwatch.transport-D4G5xYfG.js} +6 -6
- package/dist/cloudwatch.transport-D4G5xYfG.js.map +1 -0
- package/dist/correlation.d.mts +10 -55
- package/dist/correlation.d.mts.map +1 -1
- package/dist/correlation.d.ts +10 -55
- package/dist/correlation.d.ts.map +1 -1
- package/dist/correlation.js +15 -13
- package/dist/correlation.js.map +1 -1
- package/dist/correlation.mjs +15 -13
- package/dist/correlation.mjs.map +1 -1
- package/dist/{entry-fields-RLd1jCoR.js → entry-fields-CVwoQplO.js} +8 -3
- package/dist/entry-fields-CVwoQplO.js.map +1 -0
- package/dist/{entry-fields-CGuvT2R0.mjs → entry-fields-DNTKQxoU.mjs} +8 -3
- package/dist/entry-fields-DNTKQxoU.mjs.map +1 -0
- 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-CFQfdAOK.d.ts → gcp.transport-BCIvdFV-.d.ts} +4 -4
- package/dist/{gcp.transport-CFQfdAOK.d.ts.map → gcp.transport-BCIvdFV-.d.ts.map} +1 -1
- package/dist/{gcp.transport-KZe9hCAR.js → gcp.transport-CVuRpchl.js} +20 -16
- package/dist/gcp.transport-CVuRpchl.js.map +1 -0
- package/dist/{gcp.transport-C5D72b1g.d.mts → gcp.transport-D9SdLPwP.d.mts} +4 -4
- package/dist/{gcp.transport-C5D72b1g.d.mts.map → gcp.transport-D9SdLPwP.d.mts.map} +1 -1
- package/dist/{gcp.transport-CGKopAhQ.mjs → gcp.transport-LLK2bw2-.mjs} +20 -16
- package/dist/gcp.transport-LLK2bw2-.mjs.map +1 -0
- package/dist/http-shapes-BnBkJcid.d.mts +32 -0
- package/dist/http-shapes-BnBkJcid.d.mts.map +1 -0
- package/dist/http-shapes-BnBkJcid.d.ts +32 -0
- package/dist/http-shapes-BnBkJcid.d.ts.map +1 -0
- package/dist/{index-xqaJtAZn.d.mts → index-BAkPHp5D.d.mts} +150 -8
- package/dist/index-BAkPHp5D.d.mts.map +1 -0
- package/dist/{index-DwozbmB4.d.ts → index-e7LowmAu.d.ts} +150 -8
- package/dist/index-e7LowmAu.d.ts.map +1 -0
- package/dist/index.d.mts +21 -65
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +21 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -21
- package/dist/index.mjs.map +1 -1
- package/dist/{internal-log-uCSd1PMc.mjs → internal-log-Cy5nF1ZL.mjs} +2 -81
- package/dist/internal-log-Cy5nF1ZL.mjs.map +1 -0
- package/dist/{internal-log-b0Vp4qrB.js → internal-log-DwqTjhpb.js} +1 -104
- package/dist/internal-log-DwqTjhpb.js.map +1 -0
- package/dist/{logitron-logger-D2B75Oc7.d.ts → logitron-logger-Qh3y9-WH.d.ts} +13 -100
- package/dist/logitron-logger-Qh3y9-WH.d.ts.map +1 -0
- package/dist/{logitron-logger-oEd6wNhf.d.mts → logitron-logger-sYuk8fOb.d.mts} +13 -100
- package/dist/logitron-logger-sYuk8fOb.d.mts.map +1 -0
- package/dist/middleware.d.mts +4 -17
- package/dist/middleware.d.mts.map +1 -1
- package/dist/middleware.d.ts +4 -17
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +9 -39
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +7 -37
- package/dist/middleware.mjs.map +1 -1
- package/dist/nest.d.mts +24 -8
- package/dist/nest.d.mts.map +1 -1
- package/dist/nest.d.ts +24 -8
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js +140 -27
- package/dist/nest.js.map +1 -1
- package/dist/nest.mjs +140 -27
- package/dist/nest.mjs.map +1 -1
- package/dist/{transport.manager-DkcEOlqV.js → otel-ChnVYRLA.js} +214 -23
- package/dist/otel-ChnVYRLA.js.map +1 -0
- package/dist/{transport.manager-eZ_EeC00.mjs → otel-DOuwGPCd.mjs} +173 -24
- package/dist/otel-DOuwGPCd.mjs.map +1 -0
- package/dist/{request-trace-C_fvIDv4.mjs → request-trace-BgNykH9M.mjs} +1 -5
- package/dist/{request-trace-C_fvIDv4.mjs.map → request-trace-BgNykH9M.mjs.map} +1 -1
- package/dist/{request-trace-wTJdKp6-.js → request-trace-ByujsUZk.js} +1 -5
- package/dist/{request-trace-wTJdKp6-.js.map → request-trace-ByujsUZk.js.map} +1 -1
- package/dist/{safe-stringify-BMRl3EX3.mjs → safe-stringify--7gbe95n.mjs} +37 -12
- package/dist/safe-stringify--7gbe95n.mjs.map +1 -0
- package/dist/{safe-stringify-DLz1Kz3o.js → safe-stringify-CN7icp8S.js} +37 -12
- package/dist/safe-stringify-CN7icp8S.js.map +1 -0
- package/dist/{search-DUfWuzFP.js → search-CRjhHxe9.js} +269 -25
- package/dist/search-CRjhHxe9.js.map +1 -0
- package/dist/{search-CazwyX5Z.d.ts → search-D-8HJADE.d.mts} +5 -2
- package/dist/search-D-8HJADE.d.mts.map +1 -0
- package/dist/{search-CWMVYC-R.mjs → search-DAXKE-P9.mjs} +269 -25
- package/dist/search-DAXKE-P9.mjs.map +1 -0
- package/dist/{search-BH33XhuU.d.mts → search-DPwTKPve.d.ts} +5 -2
- package/dist/search-DPwTKPve.d.ts.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-CBZBs0p1.js → secret-config-BvFl2dC8.js} +7 -7
- package/dist/secret-config-BvFl2dC8.js.map +1 -0
- package/dist/{secret-config-BegMLkYl.mjs → secret-config-ByGq7kJd.mjs} +5 -5
- package/dist/secret-config-ByGq7kJd.mjs.map +1 -0
- 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-DxHOXlLu.d.mts → slack.transport-BDyENuR0.d.mts} +2 -2
- package/dist/{slack.transport-DxHOXlLu.d.mts.map → slack.transport-BDyENuR0.d.mts.map} +1 -1
- package/dist/{slack.transport-DrirgDNy.d.ts → slack.transport-C6E0l4kw.d.ts} +2 -2
- package/dist/{slack.transport-DrirgDNy.d.ts.map → slack.transport-C6E0l4kw.d.ts.map} +1 -1
- package/dist/{slack.transport-Ce96JBDk.mjs → slack.transport-CSj1j0_X.mjs} +66 -15
- package/dist/slack.transport-CSj1j0_X.mjs.map +1 -0
- package/dist/{slack.transport-Dlx3xvb7.js → slack.transport-zLQ9MGxS.js} +67 -16
- package/dist/slack.transport-zLQ9MGxS.js.map +1 -0
- package/dist/testing.d.mts +11 -4
- package/dist/testing.d.mts.map +1 -1
- package/dist/testing.d.ts +11 -4
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +38 -3
- package/dist/testing.js.map +1 -1
- package/dist/testing.mjs +38 -3
- package/dist/testing.mjs.map +1 -1
- package/dist/{transport.types-BJVL1QQl.d.ts → transport.types-CzJq4IrF.d.mts} +14 -3
- package/dist/transport.types-CzJq4IrF.d.mts.map +1 -0
- package/dist/{transport.types-BJVL1QQl.d.mts → transport.types-CzJq4IrF.d.ts} +14 -3
- package/dist/transport.types-CzJq4IrF.d.ts.map +1 -0
- package/dist/transports.d.mts +25 -13
- package/dist/transports.d.mts.map +1 -1
- package/dist/transports.d.ts +25 -13
- package/dist/transports.d.ts.map +1 -1
- package/dist/transports.js +15 -15
- package/dist/transports.mjs +6 -6
- package/dist/worker-entry.js +130 -25
- 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-BuPwBi3d.d.ts → worker.transport-B9mCQSM1.d.ts} +7 -2
- package/dist/worker.transport-B9mCQSM1.d.ts.map +1 -0
- package/dist/{worker.transport-hJay1wxA.d.mts → worker.transport-Bl8lFRck.d.mts} +7 -2
- package/dist/worker.transport-Bl8lFRck.d.mts.map +1 -0
- package/dist/{worker.transport-DLVA4y2e.mjs → worker.transport-D78xhNhB.mjs} +13 -10
- package/dist/worker.transport-D78xhNhB.mjs.map +1 -0
- package/dist/{worker.transport-C6GNl_r2.js → worker.transport-DQDv1nAJ.js} +13 -10
- package/dist/worker.transport-DQDv1nAJ.js.map +1 -0
- package/package.json +33 -65
- package/dist/async-context-B05ArHgM.mjs.map +0 -1
- package/dist/async-context-DTQgi8f7.js.map +0 -1
- package/dist/azure-monitor.transport-BPbgjATu.mjs.map +0 -1
- package/dist/azure-monitor.transport-CwbOLZHB.js.map +0 -1
- package/dist/builder-D70z6kjj.mjs.map +0 -1
- package/dist/builder-M7NoaugM.js.map +0 -1
- package/dist/cloudwatch.transport-B2wKQFF7.js.map +0 -1
- package/dist/cloudwatch.transport-BTvYfLs9.mjs.map +0 -1
- package/dist/entry-fields-CGuvT2R0.mjs.map +0 -1
- package/dist/entry-fields-RLd1jCoR.js.map +0 -1
- package/dist/gcp.transport-CGKopAhQ.mjs.map +0 -1
- package/dist/gcp.transport-KZe9hCAR.js.map +0 -1
- package/dist/index-DwozbmB4.d.ts.map +0 -1
- package/dist/index-xqaJtAZn.d.mts.map +0 -1
- package/dist/internal-log-b0Vp4qrB.js.map +0 -1
- package/dist/internal-log-uCSd1PMc.mjs.map +0 -1
- package/dist/logitron-logger-D2B75Oc7.d.ts.map +0 -1
- package/dist/logitron-logger-oEd6wNhf.d.mts.map +0 -1
- package/dist/safe-stringify-BMRl3EX3.mjs.map +0 -1
- package/dist/safe-stringify-DLz1Kz3o.js.map +0 -1
- package/dist/search-BH33XhuU.d.mts.map +0 -1
- package/dist/search-CWMVYC-R.mjs.map +0 -1
- package/dist/search-CazwyX5Z.d.ts.map +0 -1
- package/dist/search-DUfWuzFP.js.map +0 -1
- package/dist/secret-config-BegMLkYl.mjs.map +0 -1
- package/dist/secret-config-CBZBs0p1.js.map +0 -1
- package/dist/slack.transport-Ce96JBDk.mjs.map +0 -1
- package/dist/slack.transport-Dlx3xvb7.js.map +0 -1
- package/dist/transport.manager-DkcEOlqV.js.map +0 -1
- package/dist/transport.manager-eZ_EeC00.mjs.map +0 -1
- package/dist/transport.types-BJVL1QQl.d.mts.map +0 -1
- package/dist/transport.types-BJVL1QQl.d.ts.map +0 -1
- package/dist/worker.transport-BuPwBi3d.d.ts.map +0 -1
- package/dist/worker.transport-C6GNl_r2.js.map +0 -1
- package/dist/worker.transport-DLVA4y2e.mjs.map +0 -1
- package/dist/worker.transport-hJay1wxA.d.mts.map +0 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
const require_secret_config = require("./secret-config-
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
1
|
+
const require_secret_config = require("./secret-config-BvFl2dC8.js");
|
|
2
|
+
const require_sensitive_names = require("./sensitive-names-CHMowujD.js");
|
|
3
|
+
const require_request_trace = require("./request-trace-ByujsUZk.js");
|
|
4
|
+
const require_async_context = require("./async-context-Dv0bmPC-.js");
|
|
5
|
+
const require_internal_log = require("./internal-log-DwqTjhpb.js");
|
|
5
6
|
const require_coerce_utils = require("./coerce.utils-C1C5sIX0.js");
|
|
6
|
-
const require_safe_stringify = require("./safe-stringify-
|
|
7
|
-
const
|
|
7
|
+
const require_safe_stringify = require("./safe-stringify-CN7icp8S.js");
|
|
8
|
+
const require_otel = require("./otel-ChnVYRLA.js");
|
|
8
9
|
let fast_json_stringify = require("fast-json-stringify");
|
|
9
10
|
fast_json_stringify = require_secret_config.__toESM(fast_json_stringify);
|
|
10
11
|
let node_os = require("node:os");
|
|
@@ -243,11 +244,10 @@ function _serializeError(error, includeStack, maxDepth, excludeFields, depth, se
|
|
|
243
244
|
]);
|
|
244
245
|
for (const key of Object.getOwnPropertyNames(error)) {
|
|
245
246
|
if (skip.has(key)) continue;
|
|
246
|
-
if (key === "__proto__" || key === "constructor" || key === "prototype") continue;
|
|
247
247
|
try {
|
|
248
|
-
serialized
|
|
248
|
+
require_sensitive_names.assignOwn(serialized, key, serializeValue(errorRecord[key], maxDepth - depth - 1, seen));
|
|
249
249
|
} catch {
|
|
250
|
-
serialized
|
|
250
|
+
require_sensitive_names.assignOwn(serialized, key, "[Unserializable]");
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
return serialized;
|
|
@@ -282,13 +282,10 @@ function serializeValue(value, remainingDepth, seen) {
|
|
|
282
282
|
if (seen.has(value)) return "[Circular]";
|
|
283
283
|
seen.add(value);
|
|
284
284
|
const out = {};
|
|
285
|
-
for (const [k, v] of Object.entries(value)) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
} catch {
|
|
290
|
-
out[k] = "[Unserializable]";
|
|
291
|
-
}
|
|
285
|
+
for (const [k, v] of Object.entries(value)) try {
|
|
286
|
+
require_sensitive_names.assignOwn(out, k, serializeValue(v, remainingDepth - 1, seen));
|
|
287
|
+
} catch {
|
|
288
|
+
require_sensitive_names.assignOwn(out, k, "[Unserializable]");
|
|
292
289
|
}
|
|
293
290
|
return out;
|
|
294
291
|
}
|
|
@@ -314,111 +311,6 @@ function normalizeError(error) {
|
|
|
314
311
|
}
|
|
315
312
|
return new Error(String(error));
|
|
316
313
|
}
|
|
317
|
-
// src/utils/otel.ts
|
|
318
|
-
let _otelApi;
|
|
319
|
-
function tryLoadOtelApi() {
|
|
320
|
-
if (_otelApi !== void 0) return _otelApi;
|
|
321
|
-
try {
|
|
322
|
-
_otelApi = require("@opentelemetry/api");
|
|
323
|
-
return _otelApi;
|
|
324
|
-
} catch {
|
|
325
|
-
_otelApi = null;
|
|
326
|
-
return null;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Read the currently active OTel span context (if any) and return its fields
|
|
331
|
-
* in a plain object suitable for spreading into a log entry.
|
|
332
|
-
*
|
|
333
|
-
* Returns `undefined` when:
|
|
334
|
-
* - `@opentelemetry/api` is not installed
|
|
335
|
-
* - No active span exists (root context)
|
|
336
|
-
* - The span context is invalid (all-zeros)
|
|
337
|
-
*/
|
|
338
|
-
function getActiveOtelContext(opts = {}) {
|
|
339
|
-
const api = tryLoadOtelApi();
|
|
340
|
-
if (!api) return void 0;
|
|
341
|
-
try {
|
|
342
|
-
const ctx = api.context.active();
|
|
343
|
-
const sc = api.trace.getSpanContext(ctx);
|
|
344
|
-
if (!sc || !api.trace.isSpanContextValid(sc)) return void 0;
|
|
345
|
-
const isSampled = (sc.traceFlags & api.trace.TraceFlags.SAMPLED) === api.trace.TraceFlags.SAMPLED;
|
|
346
|
-
if (opts.sampledOnly && !isSampled) return void 0;
|
|
347
|
-
return {
|
|
348
|
-
traceId: sc.traceId,
|
|
349
|
-
spanId: sc.spanId,
|
|
350
|
-
traceFlags: sc.traceFlags,
|
|
351
|
-
isSampled
|
|
352
|
-
};
|
|
353
|
-
} catch {
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Returns a metadata object with OTel context fields ready to merge into a log call,
|
|
359
|
-
* using the configured field names.
|
|
360
|
-
*
|
|
361
|
-
* Returns `{}` when no active span exists (safe to spread unconditionally).
|
|
362
|
-
*
|
|
363
|
-
* @example
|
|
364
|
-
* ```ts
|
|
365
|
-
* await logger.info('Payment processed', {
|
|
366
|
-
* ...getOtelMetaFields(),
|
|
367
|
-
* orderId: 'ord_123',
|
|
368
|
-
* });
|
|
369
|
-
* ```
|
|
370
|
-
*/
|
|
371
|
-
function getOtelMetaFields(opts = {}) {
|
|
372
|
-
const { traceIdField = "traceId", spanIdField = "spanId", traceFlagsField = "traceFlags" } = opts;
|
|
373
|
-
const ctx = getActiveOtelContext(opts);
|
|
374
|
-
if (!ctx) return {};
|
|
375
|
-
return {
|
|
376
|
-
[traceIdField]: ctx.traceId,
|
|
377
|
-
[spanIdField]: ctx.spanId,
|
|
378
|
-
[traceFlagsField]: ctx.traceFlags
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
|
-
let _bridgeOptions = null;
|
|
382
|
-
/**
|
|
383
|
-
* Initialise the global OTel bridge.
|
|
384
|
-
*
|
|
385
|
-
* Once called, logixia's internal log pipeline checks for an active OTel span
|
|
386
|
-
* on **every** log call and automatically merges the span context into the
|
|
387
|
-
* entry's metadata — no per-call wiring needed.
|
|
388
|
-
*
|
|
389
|
-
* Call once at app startup, **after** the OTel SDK has been initialised:
|
|
390
|
-
* ```ts
|
|
391
|
-
* import { initOtelBridge } from 'logixia';
|
|
392
|
-
* initOtelBridge();
|
|
393
|
-
* ```
|
|
394
|
-
*/
|
|
395
|
-
function initOtelBridge(opts = {}) {
|
|
396
|
-
_bridgeOptions = opts;
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* @internal
|
|
400
|
-
* True when initOtelBridge() has been called. Lets the logger hot path skip the
|
|
401
|
-
* `_getOtelPayloadIfEnabled()` call (and its `{}` allocation + Object.keys) on
|
|
402
|
-
* every log when the bridge is off — the overwhelmingly common case.
|
|
403
|
-
*/
|
|
404
|
-
function _isOtelBridgeEnabled() {
|
|
405
|
-
return _bridgeOptions !== null;
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* @internal
|
|
409
|
-
* Used by the core logger to inject OTel context when the bridge is active.
|
|
410
|
-
* Returns `{}` when the bridge is not initialised or no active span exists.
|
|
411
|
-
*/
|
|
412
|
-
function _getOtelPayloadIfEnabled() {
|
|
413
|
-
if (!_bridgeOptions) return {};
|
|
414
|
-
return getOtelMetaFields(_bridgeOptions);
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Disable the OTel bridge (useful for tests).
|
|
418
|
-
*/
|
|
419
|
-
function disableOtelBridge() {
|
|
420
|
-
_bridgeOptions = null;
|
|
421
|
-
}
|
|
422
314
|
// src/utils/redact.utils.ts
|
|
423
315
|
const DEFAULT_CENSOR = "[REDACTED]";
|
|
424
316
|
/** Maximum nesting depth walked; deeper values are replaced with a marker. */
|
|
@@ -448,7 +340,7 @@ const PII_CONSERVATIVE_PATTERNS = [
|
|
|
448
340
|
/**
|
|
449
341
|
* Conservative field-name paths auto-redacted by name regardless of value.
|
|
450
342
|
*/
|
|
451
|
-
const PII_CONSERVATIVE_PATHS =
|
|
343
|
+
const PII_CONSERVATIVE_PATHS = require_sensitive_names.SENSITIVE_KEY_NAMES.map((name) => `**.${name}`);
|
|
452
344
|
/**
|
|
453
345
|
* Aggressive patterns: also catch personal data that could identify a person.
|
|
454
346
|
* Applied when `autoDetect: 'aggressive'`.
|
|
@@ -620,10 +512,9 @@ function walkRecord(obj, state, fullPath, bare, depth) {
|
|
|
620
512
|
let result;
|
|
621
513
|
const entries = Object.entries(obj);
|
|
622
514
|
for (const [index, [key, value]] of entries.entries()) {
|
|
623
|
-
const
|
|
624
|
-
|
|
625
|
-
if (
|
|
626
|
-
if (result && !forbidden) result[key] = next;
|
|
515
|
+
const next = walkValue(value, state, joinPath(fullPath, key), joinPath(bare, key), depth);
|
|
516
|
+
if (next !== value && !result) result = Object.fromEntries(entries.slice(0, index));
|
|
517
|
+
if (result) require_sensitive_names.assignOwn(result, key, next);
|
|
627
518
|
}
|
|
628
519
|
return result ?? obj;
|
|
629
520
|
}
|
|
@@ -1035,6 +926,48 @@ function resetShutdownHandlers() {
|
|
|
1035
926
|
shutdownHandlerRegistered = false;
|
|
1036
927
|
shutdownInProgress = false;
|
|
1037
928
|
}
|
|
929
|
+
const RESERVED = /* @__PURE__ */ new Set([
|
|
930
|
+
"logLevel",
|
|
931
|
+
"time",
|
|
932
|
+
"timeEnd",
|
|
933
|
+
"timeAsync",
|
|
934
|
+
"setLevel",
|
|
935
|
+
"getLevel",
|
|
936
|
+
"setNamespaceLevels",
|
|
937
|
+
"patchNamespaceLevels",
|
|
938
|
+
"getNamespaceLevels",
|
|
939
|
+
"setContext",
|
|
940
|
+
"getContext",
|
|
941
|
+
"enableField",
|
|
942
|
+
"disableField",
|
|
943
|
+
"isFieldEnabled",
|
|
944
|
+
"getFieldState",
|
|
945
|
+
"resetFieldState",
|
|
946
|
+
"enableTransportLevelPrompting",
|
|
947
|
+
"disableTransportLevelPrompting",
|
|
948
|
+
"setTransportLevels",
|
|
949
|
+
"getTransportLevels",
|
|
950
|
+
"clearTransportLevelPreferences",
|
|
951
|
+
"getAvailableTransports",
|
|
952
|
+
"child",
|
|
953
|
+
"flush",
|
|
954
|
+
"healthCheck",
|
|
955
|
+
"close",
|
|
956
|
+
"use",
|
|
957
|
+
"unuse"
|
|
958
|
+
]);
|
|
959
|
+
/**
|
|
960
|
+
* Warn when `levels` defines a level named like a logger method (e.g. `flush`, `child`).
|
|
961
|
+
* The method keeps its normal behaviour and no level shortcut is installed for that
|
|
962
|
+
* name; log at it with `logger.logLevel(name, ...)` or pick a different level name.
|
|
963
|
+
* Returns the clashing names.
|
|
964
|
+
*/
|
|
965
|
+
function warnOnReservedLevelNames(levels) {
|
|
966
|
+
if (!levels) return [];
|
|
967
|
+
const clashes = Object.keys(levels).filter((name) => RESERVED.has(name));
|
|
968
|
+
if (clashes.length > 0) require_internal_log.internalWarn(`levelOptions.levels uses reserved logger method name(s): ${clashes.join(", ")}. No level shortcut is created for them; use logger.logLevel(name, ...) or rename the level.`);
|
|
969
|
+
return clashes;
|
|
970
|
+
}
|
|
1038
971
|
// src/core/logitron-logger.ts
|
|
1039
972
|
/**
|
|
1040
973
|
* Core Logixia Logger implementation
|
|
@@ -1155,7 +1088,13 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1155
1088
|
this._formattedLevels = /* @__PURE__ */ new Map();
|
|
1156
1089
|
this._formattedAppName = "";
|
|
1157
1090
|
this._hasRedact = false;
|
|
1091
|
+
this._nsSeenVersion = 0;
|
|
1158
1092
|
this._parent = parent;
|
|
1093
|
+
this._nsStore = parent ? parent._nsStore : {
|
|
1094
|
+
levels: { ...config.namespaceLevels },
|
|
1095
|
+
version: 0
|
|
1096
|
+
};
|
|
1097
|
+
this._nsSeenVersion = this._nsStore.version;
|
|
1159
1098
|
this._pluginRegistry = parent ? parent._pluginRegistry : new PluginRegistry();
|
|
1160
1099
|
const defaultConfig = {
|
|
1161
1100
|
appName: "App",
|
|
@@ -1211,14 +1150,14 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1211
1150
|
this.transportManager = parent.transportManager;
|
|
1212
1151
|
this._sampler = parent._sampler;
|
|
1213
1152
|
} else if (this.config.transports) {
|
|
1214
|
-
var _this$config$levelOpt;
|
|
1153
|
+
var _this$config$levelOpt, _this$config$levelOpt2;
|
|
1215
1154
|
const transportsWithColors = { ...this.config.transports };
|
|
1216
1155
|
const userColors = (_this$config$levelOpt = this.config.levelOptions) === null || _this$config$levelOpt === void 0 ? void 0 : _this$config$levelOpt.colors;
|
|
1217
1156
|
if (userColors && transportsWithColors.console) transportsWithColors.console = {
|
|
1218
1157
|
...typeof transportsWithColors.console === "object" ? transportsWithColors.console : {},
|
|
1219
1158
|
levelColors: userColors
|
|
1220
1159
|
};
|
|
1221
|
-
this.transportManager = new
|
|
1160
|
+
this.transportManager = new require_otel.TransportManager(transportsWithColors, (_this$config$levelOpt2 = this.config.levelOptions) === null || _this$config$levelOpt2 === void 0 ? void 0 : _this$config$levelOpt2.levels);
|
|
1222
1161
|
}
|
|
1223
1162
|
if (!parent && this.config.sampling) this._sampler = new Sampler(this.config.sampling, (stats) => {
|
|
1224
1163
|
process.stdout.write(JSON.stringify({
|
|
@@ -1245,8 +1184,9 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1245
1184
|
});
|
|
1246
1185
|
}
|
|
1247
1186
|
createCustomLevelMethods() {
|
|
1248
|
-
var _this$config$
|
|
1249
|
-
|
|
1187
|
+
var _this$config$levelOpt3, _this$config$levelOpt4;
|
|
1188
|
+
warnOnReservedLevelNames((_this$config$levelOpt3 = this.config.levelOptions) === null || _this$config$levelOpt3 === void 0 ? void 0 : _this$config$levelOpt3.levels);
|
|
1189
|
+
if ((_this$config$levelOpt4 = this.config.levelOptions) === null || _this$config$levelOpt4 === void 0 ? void 0 : _this$config$levelOpt4.levels) {
|
|
1250
1190
|
for (const levelName of Object.keys(this.config.levelOptions.levels)) if (!this[levelName.toLowerCase()]) this[levelName.toLowerCase()] = async (message, data) => {
|
|
1251
1191
|
await this.logLevel(levelName.toLowerCase(), message, data);
|
|
1252
1192
|
};
|
|
@@ -1257,8 +1197,8 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1257
1197
|
* Keeps the actual log() call free of allocations in the common case.
|
|
1258
1198
|
*/
|
|
1259
1199
|
_buildPerfCaches() {
|
|
1260
|
-
var _this$config$
|
|
1261
|
-
const customLevelEntries = Object.entries(((_this$config$
|
|
1200
|
+
var _this$config$levelOpt5, _this$config$format, _this$config$redact$p, _this$config$redact$p2;
|
|
1201
|
+
const customLevelEntries = Object.entries(((_this$config$levelOpt5 = this.config.levelOptions) === null || _this$config$levelOpt5 === void 0 ? void 0 : _this$config$levelOpt5.levels) ?? {});
|
|
1262
1202
|
this._levelValues = new Map([
|
|
1263
1203
|
[LogLevel.ERROR, 0],
|
|
1264
1204
|
[LogLevel.WARN, 1],
|
|
@@ -1327,8 +1267,8 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1327
1267
|
for (const [lvl] of this._levelValues) {
|
|
1328
1268
|
const upper = lvl.toUpperCase();
|
|
1329
1269
|
if (colorize && this._fieldCache.get("level") !== false) {
|
|
1330
|
-
var _this$config$
|
|
1331
|
-
let colorName = (_this$config$
|
|
1270
|
+
var _this$config$levelOpt6;
|
|
1271
|
+
let colorName = (_this$config$levelOpt6 = this.config.levelOptions) === null || _this$config$levelOpt6 === void 0 || (_this$config$levelOpt6 = _this$config$levelOpt6.colors) === null || _this$config$levelOpt6 === void 0 ? void 0 : _this$config$levelOpt6[lvl];
|
|
1332
1272
|
if (!colorName) {
|
|
1333
1273
|
if (_BUILTIN_LEVELS.has(lvl)) colorName = "white";
|
|
1334
1274
|
else {
|
|
@@ -1462,8 +1402,8 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1462
1402
|
* else a `NODE_ENV` default (`debug` in development, `warn` in test), else `info`.
|
|
1463
1403
|
*/
|
|
1464
1404
|
getLevel() {
|
|
1465
|
-
var _this$config$
|
|
1466
|
-
return ((_this$config$
|
|
1405
|
+
var _this$config$levelOpt7;
|
|
1406
|
+
return ((_this$config$levelOpt7 = this.config.levelOptions) === null || _this$config$levelOpt7 === void 0 ? void 0 : _this$config$levelOpt7.level) ?? LogLevel.INFO;
|
|
1467
1407
|
}
|
|
1468
1408
|
_validLevelList() {
|
|
1469
1409
|
return [...this._levelValues.keys()].join(", ");
|
|
@@ -1492,6 +1432,10 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1492
1432
|
* (flip a module's verbosity live to chase a bug without raising global
|
|
1493
1433
|
* volume). The new map fully replaces the previous one.
|
|
1494
1434
|
*
|
|
1435
|
+
* The map is shared by a logger and all its `child()` loggers: calling this on
|
|
1436
|
+
* a child changes the whole family, and existing children pick the change up on
|
|
1437
|
+
* their next log call.
|
|
1438
|
+
*
|
|
1495
1439
|
* @example
|
|
1496
1440
|
* ```ts
|
|
1497
1441
|
* // Turn on debug for the DB layer only, live:
|
|
@@ -1499,20 +1443,26 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1499
1443
|
* ```
|
|
1500
1444
|
*/
|
|
1501
1445
|
setNamespaceLevels(levels) {
|
|
1502
|
-
this.
|
|
1503
|
-
this.
|
|
1446
|
+
this._nsStore.levels = { ...levels };
|
|
1447
|
+
this._nsStore.version++;
|
|
1448
|
+
this._syncNamespaceLevels();
|
|
1504
1449
|
}
|
|
1505
1450
|
/** Merge entries into the existing per-namespace level map at runtime. */
|
|
1506
1451
|
patchNamespaceLevels(levels) {
|
|
1507
|
-
this.
|
|
1508
|
-
...this.
|
|
1452
|
+
this._nsStore.levels = {
|
|
1453
|
+
...this._nsStore.levels,
|
|
1509
1454
|
...levels
|
|
1510
1455
|
};
|
|
1511
|
-
this.
|
|
1456
|
+
this._nsStore.version++;
|
|
1457
|
+
this._syncNamespaceLevels();
|
|
1512
1458
|
}
|
|
1513
1459
|
/** Return a copy of the current per-namespace level map. */
|
|
1514
1460
|
getNamespaceLevels() {
|
|
1515
|
-
return { ...this.
|
|
1461
|
+
return { ...this._nsStore.levels };
|
|
1462
|
+
}
|
|
1463
|
+
_syncNamespaceLevels() {
|
|
1464
|
+
this._nsSeenVersion = this._nsStore.version;
|
|
1465
|
+
this._minLevelValue = this._levelValues.get(this.resolveEffectiveLevel()) ?? 2;
|
|
1516
1466
|
}
|
|
1517
1467
|
/** Set the context label (e.g. a class or module name) attached to every subsequent entry. */
|
|
1518
1468
|
setContext(context) {
|
|
@@ -1691,15 +1641,19 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1691
1641
|
}
|
|
1692
1642
|
if (this._sampler && !this._sampler.shouldEmit(level, activeTraceId)) return;
|
|
1693
1643
|
const hasAls = alsContext !== void 0 && Object.keys(alsContext).length > 0;
|
|
1694
|
-
const otelFields = _isOtelBridgeEnabled() ? _getOtelPayloadIfEnabled() : void 0;
|
|
1644
|
+
const otelFields = require_otel._isOtelBridgeEnabled() ? require_otel._getOtelPayloadIfEnabled() : void 0;
|
|
1695
1645
|
const hasOtel = otelFields !== void 0 && Object.keys(otelFields).length > 0;
|
|
1646
|
+
const traceId = this.config.traceId ? activeTraceId ?? this.fallbackTraceId : void 0;
|
|
1696
1647
|
let mergedData;
|
|
1697
|
-
if (hasAls)
|
|
1698
|
-
...alsContext
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1648
|
+
if (hasAls) {
|
|
1649
|
+
const als = { ...alsContext };
|
|
1650
|
+
if (traceId !== void 0 && als["traceId"] === traceId) delete als["traceId"];
|
|
1651
|
+
mergedData = {
|
|
1652
|
+
...als,
|
|
1653
|
+
...hasOtel ? otelFields : {},
|
|
1654
|
+
...data
|
|
1655
|
+
};
|
|
1656
|
+
} else if (hasOtel) mergedData = {
|
|
1703
1657
|
...otelFields,
|
|
1704
1658
|
...data
|
|
1705
1659
|
};
|
|
@@ -1718,7 +1672,6 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1718
1672
|
}
|
|
1719
1673
|
else payload = rawPayload;
|
|
1720
1674
|
}
|
|
1721
|
-
const traceId = this.config.traceId ? activeTraceId ?? this.fallbackTraceId : void 0;
|
|
1722
1675
|
let safeMessage = message;
|
|
1723
1676
|
if (this._hasRedact) try {
|
|
1724
1677
|
safeMessage = applyRedactionToString(message, this.config.redact);
|
|
@@ -1749,6 +1702,7 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1749
1702
|
* The level map and threshold are pre-built in _buildPerfCaches().
|
|
1750
1703
|
*/
|
|
1751
1704
|
shouldLog(level) {
|
|
1705
|
+
if (this._nsSeenVersion !== this._nsStore.version) this._syncNamespaceLevels();
|
|
1752
1706
|
const v = this._levelValues.get(level);
|
|
1753
1707
|
return v !== void 0 && v <= this._minLevelValue;
|
|
1754
1708
|
}
|
|
@@ -1769,8 +1723,8 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1769
1723
|
const nsKey = ns.split(".")[0].toUpperCase();
|
|
1770
1724
|
const envNsLevel = this._validLevel(process.env[`LOGIXIA_LEVEL_${nsKey}`], `LOGIXIA_LEVEL_${nsKey}`);
|
|
1771
1725
|
if (envNsLevel) return envNsLevel;
|
|
1772
|
-
const namespaceLevels = this.
|
|
1773
|
-
if (namespaceLevels) {
|
|
1726
|
+
const namespaceLevels = this._nsStore.levels;
|
|
1727
|
+
if (Object.keys(namespaceLevels).length > 0) {
|
|
1774
1728
|
const sortedPatterns = Object.keys(namespaceLevels).sort((a, b) => b.length - a.length);
|
|
1775
1729
|
for (const pattern of sortedPatterns) if (matchesNamespacePattern(ns, pattern)) {
|
|
1776
1730
|
const nsLevel = this._validLevel(namespaceLevels[pattern], `namespaceLevels['${pattern}']`);
|
|
@@ -1798,9 +1752,9 @@ var LogixiaLogger = class LogixiaLogger {
|
|
|
1798
1752
|
if (((_this$config$format4 = this.config.format) === null || _this$config$format4 === void 0 ? void 0 : _this$config$format4.timestamp) !== false && this._fieldCache.get("timestamp") !== false) formatted += `${gray}[${entry.timestamp}]${reset} `;
|
|
1799
1753
|
if (this._fieldCache.get("level") !== false) formatted += this._formattedLevels.get(entry.level) ?? `[${entry.level.toUpperCase()}] `;
|
|
1800
1754
|
formatted += this._formattedAppName;
|
|
1801
|
-
if (entry.traceId && this._fieldCache.get("traceId") !== false) formatted += `${cyan}[${
|
|
1802
|
-
if (entry.context && this._fieldCache.get("context") !== false) formatted += `${yellow}[${
|
|
1803
|
-
if (this._fieldCache.get("message") !== false) formatted +=
|
|
1755
|
+
if (entry.traceId && this._fieldCache.get("traceId") !== false) formatted += `${cyan}[${require_otel.stripControlChars(String(entry.traceId))}]${reset} `;
|
|
1756
|
+
if (entry.context && this._fieldCache.get("context") !== false) formatted += `${yellow}[${require_otel.stripControlChars(String(entry.context))}]${reset} `;
|
|
1757
|
+
if (this._fieldCache.get("message") !== false) formatted += require_otel.stripControlChars(require_coerce_utils.safeToString(entry.message));
|
|
1804
1758
|
if (entry.payload !== void 0 && this._fieldCache.get("payload") !== false) formatted += ` ${require_safe_stringify.stringifyForLog(entry.payload)}`;
|
|
1805
1759
|
return formatted;
|
|
1806
1760
|
}
|
|
@@ -2159,12 +2113,6 @@ Object.defineProperty(exports, "deregisterFromShutdown", {
|
|
|
2159
2113
|
return deregisterFromShutdown;
|
|
2160
2114
|
}
|
|
2161
2115
|
});
|
|
2162
|
-
Object.defineProperty(exports, "disableOtelBridge", {
|
|
2163
|
-
enumerable: true,
|
|
2164
|
-
get: function() {
|
|
2165
|
-
return disableOtelBridge;
|
|
2166
|
-
}
|
|
2167
|
-
});
|
|
2168
2116
|
Object.defineProperty(exports, "flushOnExit", {
|
|
2169
2117
|
enumerable: true,
|
|
2170
2118
|
get: function() {
|
|
@@ -2183,30 +2131,12 @@ Object.defineProperty(exports, "generateTraceId", {
|
|
|
2183
2131
|
return generateTraceId;
|
|
2184
2132
|
}
|
|
2185
2133
|
});
|
|
2186
|
-
Object.defineProperty(exports, "getActiveOtelContext", {
|
|
2187
|
-
enumerable: true,
|
|
2188
|
-
get: function() {
|
|
2189
|
-
return getActiveOtelContext;
|
|
2190
|
-
}
|
|
2191
|
-
});
|
|
2192
|
-
Object.defineProperty(exports, "getOtelMetaFields", {
|
|
2193
|
-
enumerable: true,
|
|
2194
|
-
get: function() {
|
|
2195
|
-
return getOtelMetaFields;
|
|
2196
|
-
}
|
|
2197
|
-
});
|
|
2198
2134
|
Object.defineProperty(exports, "globalPluginRegistry", {
|
|
2199
2135
|
enumerable: true,
|
|
2200
2136
|
get: function() {
|
|
2201
2137
|
return globalPluginRegistry;
|
|
2202
2138
|
}
|
|
2203
2139
|
});
|
|
2204
|
-
Object.defineProperty(exports, "initOtelBridge", {
|
|
2205
|
-
enumerable: true,
|
|
2206
|
-
get: function() {
|
|
2207
|
-
return initOtelBridge;
|
|
2208
|
-
}
|
|
2209
|
-
});
|
|
2210
2140
|
Object.defineProperty(exports, "isError", {
|
|
2211
2141
|
enumerable: true,
|
|
2212
2142
|
get: function() {
|
|
@@ -2256,4 +2186,4 @@ Object.defineProperty(exports, "usePlugin", {
|
|
|
2256
2186
|
}
|
|
2257
2187
|
});
|
|
2258
2188
|
|
|
2259
|
-
//# sourceMappingURL=builder-
|
|
2189
|
+
//# sourceMappingURL=builder-CzmM_4Ub.js.map
|