logixia 1.12.4 → 1.12.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -27
- package/dist/.tsbuildinfo +1 -1
- package/dist/async-context-CSHWoHMB.js +88 -0
- package/dist/async-context-CSHWoHMB.js.map +1 -0
- package/dist/async-context-CwBNMm2E.mjs +68 -0
- package/dist/async-context-CwBNMm2E.mjs.map +1 -0
- package/dist/azure-monitor.transport-CG7ClkYj.d.ts +62 -0
- package/dist/azure-monitor.transport-CG7ClkYj.d.ts.map +1 -0
- package/dist/azure-monitor.transport-CHnjVRF-.mjs +152 -0
- package/dist/azure-monitor.transport-CHnjVRF-.mjs.map +1 -0
- package/dist/azure-monitor.transport-Cm74kXZS.d.mts +62 -0
- package/dist/azure-monitor.transport-Cm74kXZS.d.mts.map +1 -0
- package/dist/azure-monitor.transport-CrvfHd9C.js +157 -0
- package/dist/azure-monitor.transport-CrvfHd9C.js.map +1 -0
- package/dist/azure.d.mts +3 -0
- package/dist/azure.d.ts +3 -0
- package/dist/azure.js +6 -0
- package/dist/azure.mjs +6 -0
- package/dist/batch-buffer-BY-mRWIK.js +170 -0
- package/dist/batch-buffer-BY-mRWIK.js.map +1 -0
- package/dist/batch-buffer-PGvSgbmd.mjs +132 -0
- package/dist/batch-buffer-PGvSgbmd.mjs.map +1 -0
- package/dist/browser.d.mts +427 -0
- package/dist/browser.d.mts.map +1 -0
- package/dist/browser.d.ts +427 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +590 -0
- package/dist/browser.js.map +1 -0
- package/dist/browser.mjs +586 -0
- package/dist/browser.mjs.map +1 -0
- package/dist/chunk-DLSkYcPk.mjs +7 -0
- package/dist/chunk-nOFOJqeH.js +30 -0
- package/dist/cloudwatch.d.mts +3 -0
- package/dist/cloudwatch.d.ts +3 -0
- package/dist/cloudwatch.js +6 -0
- package/dist/cloudwatch.mjs +6 -0
- package/dist/cloudwatch.transport-CGHY4buE.d.mts +81 -0
- package/dist/cloudwatch.transport-CGHY4buE.d.mts.map +1 -0
- package/dist/cloudwatch.transport-DK_8cKd3.d.ts +81 -0
- package/dist/cloudwatch.transport-DK_8cKd3.d.ts.map +1 -0
- package/dist/cloudwatch.transport-pNBNWJLt.js +370 -0
- package/dist/cloudwatch.transport-pNBNWJLt.js.map +1 -0
- package/dist/cloudwatch.transport-yBwm4OeO.mjs +360 -0
- package/dist/cloudwatch.transport-yBwm4OeO.mjs.map +1 -0
- package/dist/coerce.utils-BN980Y9V.js +44 -0
- package/dist/coerce.utils-BN980Y9V.js.map +1 -0
- package/dist/coerce.utils-Dxv4_ikC.mjs +38 -0
- package/dist/coerce.utils-Dxv4_ikC.mjs.map +1 -0
- package/dist/correlation.d.mts +238 -0
- package/dist/correlation.d.mts.map +1 -0
- package/dist/correlation.d.ts +238 -0
- package/dist/correlation.d.ts.map +1 -0
- package/dist/correlation.js +272 -0
- package/dist/correlation.js.map +1 -0
- package/dist/correlation.mjs +261 -0
- package/dist/correlation.mjs.map +1 -0
- package/dist/gcp.d.mts +3 -0
- package/dist/gcp.d.ts +3 -0
- package/dist/gcp.js +6 -0
- package/dist/gcp.mjs +6 -0
- package/dist/gcp.transport-BJuNRFe_.mjs +192 -0
- package/dist/gcp.transport-BJuNRFe_.mjs.map +1 -0
- package/dist/gcp.transport-BOhkVKlI.d.ts +71 -0
- package/dist/gcp.transport-BOhkVKlI.d.ts.map +1 -0
- package/dist/gcp.transport-Bi6CUqZR.d.mts +71 -0
- package/dist/gcp.transport-Bi6CUqZR.d.mts.map +1 -0
- package/dist/gcp.transport-SHdtc1n0.js +198 -0
- package/dist/gcp.transport-SHdtc1n0.js.map +1 -0
- package/dist/{index-CwFww7VC.d.ts → index-BPKwwERo.d.mts} +18 -174
- package/dist/index-BPKwwERo.d.mts.map +1 -0
- package/dist/{index-DnyeaoZU.d.mts → index-C1X-TE5I.d.ts} +18 -174
- package/dist/index-C1X-TE5I.d.ts.map +1 -0
- package/dist/index.d.mts +41 -11
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +40 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -147
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +62 -132
- package/dist/index.mjs.map +1 -1
- package/dist/internal-log-BUJYMZbE.js +70 -0
- package/dist/internal-log-BUJYMZbE.js.map +1 -0
- package/dist/internal-log-Cm8SOWSV.mjs +52 -0
- package/dist/internal-log-Cm8SOWSV.mjs.map +1 -0
- package/dist/{logitron-logger.module-BIGTm2V6.mjs → logitron-logger.module-Bs3XYZgF.mjs} +266 -166
- package/dist/logitron-logger.module-Bs3XYZgF.mjs.map +1 -0
- package/dist/{logitron-logger.module-BTxDpK6u.js → logitron-logger.module-BsDZR5BH.js} +297 -203
- package/dist/logitron-logger.module-BsDZR5BH.js.map +1 -0
- package/dist/{logitron-logger.module-BmT-ewin.d.ts → logitron-logger.module-CxT1F6Cm.d.ts} +23 -10
- package/dist/logitron-logger.module-CxT1F6Cm.d.ts.map +1 -0
- package/dist/{logitron-logger.module-BCq3sF27.d.mts → logitron-logger.module-zDKVd_o0.d.mts} +23 -10
- package/dist/logitron-logger.module-zDKVd_o0.d.mts.map +1 -0
- package/dist/middleware.d.mts +5 -2
- package/dist/middleware.d.mts.map +1 -1
- package/dist/middleware.d.ts +5 -2
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +13 -4
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +14 -4
- package/dist/middleware.mjs.map +1 -1
- package/dist/nest.d.mts +3 -2
- package/dist/nest.d.mts.map +1 -1
- package/dist/nest.d.ts +3 -2
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js +6 -2
- package/dist/nest.mjs +6 -2
- package/dist/safe-stringify-DJ66tW5I.mjs +118 -0
- package/dist/safe-stringify-DJ66tW5I.mjs.map +1 -0
- package/dist/safe-stringify-DWo3aZp_.js +142 -0
- package/dist/safe-stringify-DWo3aZp_.js.map +1 -0
- package/dist/search-CFQRISUv.mjs +1596 -0
- package/dist/search-CFQRISUv.mjs.map +1 -0
- package/dist/search-CQOo-Iq6.d.mts +816 -0
- package/dist/search-CQOo-Iq6.d.mts.map +1 -0
- package/dist/search-DujhR94O.d.ts +816 -0
- package/dist/search-DujhR94O.d.ts.map +1 -0
- package/dist/search-njTI2hdo.js +1631 -0
- package/dist/search-njTI2hdo.js.map +1 -0
- package/dist/search.d.mts +4 -1
- package/dist/search.d.ts +4 -1
- package/dist/search.js +9 -1
- package/dist/search.mjs +3 -2
- package/dist/testing.d.mts +2 -1
- package/dist/testing.d.mts.map +1 -1
- package/dist/testing.d.ts +2 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/{transport.manager-ciG4r5uz.js → transport.manager-BivyUTtU.js} +497 -437
- package/dist/transport.manager-BivyUTtU.js.map +1 -0
- package/dist/{transport.manager-DETpXuaY.mjs → transport.manager-D6KL3t9V.mjs} +473 -364
- package/dist/transport.manager-D6KL3t9V.mjs.map +1 -0
- package/dist/transport.types-B5vcyv2k.d.mts +187 -0
- package/dist/transport.types-B5vcyv2k.d.mts.map +1 -0
- package/dist/transport.types-BuY84TwO.d.ts +187 -0
- package/dist/transport.types-BuY84TwO.d.ts.map +1 -0
- package/dist/transports.d.mts +90 -29
- package/dist/transports.d.mts.map +1 -1
- package/dist/transports.d.ts +90 -29
- package/dist/transports.d.ts.map +1 -1
- package/dist/transports.js +14 -2
- package/dist/transports.mjs +10 -2
- package/dist/worker-entry.js +1241 -0
- package/dist/worker.d.mts +3 -0
- package/dist/worker.d.ts +3 -0
- package/dist/worker.js +4 -0
- package/dist/worker.mjs +4 -0
- package/dist/worker.transport-BP8Q28Z2.d.mts +76 -0
- package/dist/worker.transport-BP8Q28Z2.d.mts.map +1 -0
- package/dist/worker.transport-BhMyvqQ2.mjs +167 -0
- package/dist/worker.transport-BhMyvqQ2.mjs.map +1 -0
- package/dist/worker.transport-CfH6z37Z.js +168 -0
- package/dist/worker.transport-CfH6z37Z.js.map +1 -0
- package/dist/worker.transport-mKXgNK0L.d.ts +76 -0
- package/dist/worker.transport-mKXgNK0L.d.ts.map +1 -0
- package/package.json +23 -18
- package/dist/index-CwFww7VC.d.ts.map +0 -1
- package/dist/index-DnyeaoZU.d.mts.map +0 -1
- package/dist/logitron-logger.module-BCq3sF27.d.mts.map +0 -1
- package/dist/logitron-logger.module-BIGTm2V6.mjs.map +0 -1
- package/dist/logitron-logger.module-BTxDpK6u.js.map +0 -1
- package/dist/logitron-logger.module-BmT-ewin.d.ts.map +0 -1
- package/dist/search-Cg_OasF-.d.ts +0 -1
- package/dist/search-DN676Dnz.d.mts +0 -1
- package/dist/search-DOvSI-mb.mjs +0 -1
- package/dist/search-DoZF3RZj.js +0 -0
- package/dist/transport.manager-DETpXuaY.mjs.map +0 -1
- package/dist/transport.manager-ciG4r5uz.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
require('./
|
|
1
|
+
const require_chunk = require('./chunk-nOFOJqeH.js');
|
|
2
|
+
const require_internal_log = require('./internal-log-BUJYMZbE.js');
|
|
3
|
+
const require_safe_stringify = require('./safe-stringify-DWo3aZp_.js');
|
|
4
|
+
const require_batch_buffer = require('./batch-buffer-BY-mRWIK.js');
|
|
5
|
+
const require_async_context = require('./async-context-CSHWoHMB.js');
|
|
6
|
+
const require_logitron_logger_module = require('./logitron-logger.module-BsDZR5BH.js');
|
|
7
|
+
const require_coerce_utils = require('./coerce.utils-BN980Y9V.js');
|
|
8
|
+
require('./transport.manager-BivyUTtU.js');
|
|
9
|
+
const require_search = require('./search-njTI2hdo.js');
|
|
4
10
|
let node_async_hooks = require("node:async_hooks");
|
|
5
|
-
node_async_hooks =
|
|
11
|
+
node_async_hooks = require_chunk.__toESM(node_async_hooks);
|
|
6
12
|
let __nestjs_common = require("@nestjs/common");
|
|
7
|
-
__nestjs_common =
|
|
13
|
+
__nestjs_common = require_chunk.__toESM(__nestjs_common);
|
|
8
14
|
|
|
9
15
|
//#region src/exceptions/exception.ts
|
|
10
16
|
var LogixiaException = class extends Error {
|
|
@@ -253,7 +259,7 @@ function LogMethod(options = {}) {
|
|
|
253
259
|
const label = options.label ?? `${className}.${methodName}`;
|
|
254
260
|
let _warnedNoLogger = false;
|
|
255
261
|
const reportLogFailure = (phase, err) => {
|
|
256
|
-
|
|
262
|
+
require_internal_log.internalError(`@LogMethod(${label}) ${phase} log failed: ${String(err)}`);
|
|
257
263
|
};
|
|
258
264
|
const emit$1 = (logger$1, phase, message, data) => {
|
|
259
265
|
const logFnRaw = logger$1[level];
|
|
@@ -272,7 +278,7 @@ function LogMethod(options = {}) {
|
|
|
272
278
|
const logger$1 = this.logger ?? require_logitron_logger_module.LogixiaLoggerModule._globalLogger ?? void 0;
|
|
273
279
|
if (!logger$1 && !_warnedNoLogger) {
|
|
274
280
|
_warnedNoLogger = true;
|
|
275
|
-
|
|
281
|
+
require_internal_log.internalWarn(`@LogMethod on ${label}: no logger available. Either inject LogixiaLoggerService as this.logger or ensure LogixiaLoggerModule is initialised.`);
|
|
276
282
|
}
|
|
277
283
|
const start = Date.now();
|
|
278
284
|
const entry = { method: label };
|
|
@@ -331,7 +337,7 @@ let LogixiaExceptionFilter = class LogixiaExceptionFilter$1 {
|
|
|
331
337
|
...errorResponse.meta.trace_id !== void 0 ? { trace_id: errorResponse.meta.trace_id } : {}
|
|
332
338
|
};
|
|
333
339
|
const onLogFailure = (err) => {
|
|
334
|
-
|
|
340
|
+
require_internal_log.internalError(`ExceptionFilter failed to write log entry: ${String(err)}`);
|
|
335
341
|
};
|
|
336
342
|
let logPromise;
|
|
337
343
|
if (httpStatus >= 500) {
|
|
@@ -428,7 +434,7 @@ var JsonFormatter = class {
|
|
|
428
434
|
//#endregion
|
|
429
435
|
//#region src/formatters/text.formatter.ts
|
|
430
436
|
const CONTROL_CHARS_RE = /[\x00-\x08\x0B-\x1F\x7F-\x9F]/g;
|
|
431
|
-
const stripControls = (value) =>
|
|
437
|
+
const stripControls = (value) => require_coerce_utils.safeToString(value).replace(CONTROL_CHARS_RE, "");
|
|
432
438
|
var TextFormatter = class TextFormatter {
|
|
433
439
|
constructor(options = {}) {
|
|
434
440
|
this.colorize = options.colorize ?? true;
|
|
@@ -507,11 +513,11 @@ var TextFormatter = class TextFormatter {
|
|
|
507
513
|
if (typeof value === "string") return `${key}="${value}"`;
|
|
508
514
|
if (typeof value === "number" || typeof value === "boolean") return `${key}=${value}`;
|
|
509
515
|
if (value instanceof Date) return `${key}=${value.toISOString()}`;
|
|
510
|
-
if (typeof value === "object") return `${key}=${stripControls(
|
|
516
|
+
if (typeof value === "object") return `${key}=${stripControls(require_coerce_utils.safeToString(value))}`;
|
|
511
517
|
return `${key}=${String(value)}`;
|
|
512
518
|
}).join(" ");
|
|
513
519
|
} catch {
|
|
514
|
-
return stripControls(
|
|
520
|
+
return stripControls(require_coerce_utils.safeToString(payload));
|
|
515
521
|
}
|
|
516
522
|
}
|
|
517
523
|
/**
|
|
@@ -573,7 +579,7 @@ function registerLevelSignal(logger$1, options = {}) {
|
|
|
573
579
|
const current = logger$1.getLevel();
|
|
574
580
|
const next = cycle[(cycle.indexOf(current) + 1) % cycle.length];
|
|
575
581
|
logger$1.setLevel(next);
|
|
576
|
-
|
|
582
|
+
require_internal_log.internalLog(`runtime level changed via ${signal}: ${current} → ${next}`);
|
|
577
583
|
};
|
|
578
584
|
process.on(signal, handler);
|
|
579
585
|
return () => {
|
|
@@ -648,7 +654,7 @@ function createLevelControlHandler(logger$1, options = {}) {
|
|
|
648
654
|
const coerced = {};
|
|
649
655
|
for (const [pat, lvl] of Object.entries(nl)) coerced[pat] = String(lvl).toLowerCase();
|
|
650
656
|
logger$1.setNamespaceLevels(coerced);
|
|
651
|
-
} else
|
|
657
|
+
} else require_internal_log.internalWarn("level control: logger does not support setNamespaceLevels — ignored");
|
|
652
658
|
}
|
|
653
659
|
send(res, 200, snapshot());
|
|
654
660
|
};
|
|
@@ -679,103 +685,6 @@ function createLevelControlHandler(logger$1, options = {}) {
|
|
|
679
685
|
};
|
|
680
686
|
}
|
|
681
687
|
|
|
682
|
-
//#endregion
|
|
683
|
-
//#region src/utils/safe-stringify.ts
|
|
684
|
-
/** Build a JSONPath like `$["a"][0]["b"]` for a decycle pointer. */
|
|
685
|
-
function jsonPath(parts) {
|
|
686
|
-
let path = "$";
|
|
687
|
-
for (const p of parts) path += typeof p === "number" ? `[${p}]` : `[${JSON.stringify(p)}]`;
|
|
688
|
-
return path;
|
|
689
|
-
}
|
|
690
|
-
/**
|
|
691
|
-
* Serialize any value to JSON without throwing on circular references or BigInt.
|
|
692
|
-
* Circular refs become `"[Circular]"` (or `{ $ref }` pointers when `decycle`).
|
|
693
|
-
*/
|
|
694
|
-
function safeStringify(value, options = {}) {
|
|
695
|
-
const { indent, deterministic = false, decycle = false, bigint = "string" } = options;
|
|
696
|
-
if (decycle) return JSON.stringify(decycleValue(value, bigint), void 0, indent);
|
|
697
|
-
const seen = /* @__PURE__ */ new WeakSet();
|
|
698
|
-
const transform = (val) => {
|
|
699
|
-
if (typeof val === "bigint") return bigint === "number" ? Number(val) : val.toString();
|
|
700
|
-
if (typeof val === "function") return `[Function: ${val.name || "anonymous"}]`;
|
|
701
|
-
if (typeof val === "symbol") return val.toString();
|
|
702
|
-
if (val === null || typeof val !== "object") return val;
|
|
703
|
-
if (seen.has(val)) return "[Circular]";
|
|
704
|
-
seen.add(val);
|
|
705
|
-
let out;
|
|
706
|
-
if (Array.isArray(val)) out = val.map((item) => transform(item));
|
|
707
|
-
else if (val instanceof Date) out = val.toISOString();
|
|
708
|
-
else {
|
|
709
|
-
const rec = val;
|
|
710
|
-
const keys = deterministic ? Object.keys(rec).sort() : Object.keys(rec);
|
|
711
|
-
const obj = {};
|
|
712
|
-
for (const k of keys) {
|
|
713
|
-
if (k === "__proto__" || k === "constructor" || k === "prototype") continue;
|
|
714
|
-
obj[k] = transform(rec[k]);
|
|
715
|
-
}
|
|
716
|
-
out = obj;
|
|
717
|
-
}
|
|
718
|
-
seen.delete(val);
|
|
719
|
-
return out;
|
|
720
|
-
};
|
|
721
|
-
return JSON.stringify(transform(value), void 0, indent);
|
|
722
|
-
}
|
|
723
|
-
/**
|
|
724
|
-
* Replace repeated object references with round-trippable `{ "$ref": "$..." }`
|
|
725
|
-
* JSONPath pointers (the classic Crockford decycle). Pair with {@link retrocycle}
|
|
726
|
-
* to reconstruct the original shared/circular graph.
|
|
727
|
-
*/
|
|
728
|
-
function decycleValue(value, bigint = "string") {
|
|
729
|
-
const paths = /* @__PURE__ */ new WeakMap();
|
|
730
|
-
const walk = (val, path) => {
|
|
731
|
-
if (typeof val === "bigint") return bigint === "number" ? Number(val) : val.toString();
|
|
732
|
-
if (val === null || typeof val !== "object") return val;
|
|
733
|
-
if (val instanceof Date) return val.toISOString();
|
|
734
|
-
const existing = paths.get(val);
|
|
735
|
-
if (existing !== void 0) return { $ref: existing };
|
|
736
|
-
paths.set(val, jsonPath(path));
|
|
737
|
-
if (Array.isArray(val)) return val.map((item, i) => walk(item, [...path, i]));
|
|
738
|
-
const rec = val;
|
|
739
|
-
const obj = {};
|
|
740
|
-
for (const k of Object.keys(rec)) {
|
|
741
|
-
if (k === "__proto__" || k === "constructor" || k === "prototype") continue;
|
|
742
|
-
obj[k] = walk(rec[k], [...path, k]);
|
|
743
|
-
}
|
|
744
|
-
return obj;
|
|
745
|
-
};
|
|
746
|
-
return walk(value, []);
|
|
747
|
-
}
|
|
748
|
-
/**
|
|
749
|
-
* Inverse of {@link decycleValue}: resolve `{ "$ref": "$..." }` pointers back
|
|
750
|
-
* into the live object graph (mutates and returns the parsed input).
|
|
751
|
-
*/
|
|
752
|
-
function retrocycle(root) {
|
|
753
|
-
const refRe = /^\$(?:\[(?:\d+|"(?:[^"\\]|\\.)*")\])*$/;
|
|
754
|
-
const resolve = (path) => {
|
|
755
|
-
const segs = [];
|
|
756
|
-
const partRe = /\[(\d+|"(?:[^"\\]|\\.)*")\]/g;
|
|
757
|
-
let m;
|
|
758
|
-
while ((m = partRe.exec(path)) !== null) {
|
|
759
|
-
const raw = m[1];
|
|
760
|
-
segs.push(raw.startsWith("\"") ? JSON.parse(raw) : Number(raw));
|
|
761
|
-
}
|
|
762
|
-
let node = root;
|
|
763
|
-
for (const s of segs) node = node[s];
|
|
764
|
-
return node;
|
|
765
|
-
};
|
|
766
|
-
const walk = (val) => {
|
|
767
|
-
if (val === null || typeof val !== "object") return;
|
|
768
|
-
const rec = val;
|
|
769
|
-
for (const k of Object.keys(rec)) {
|
|
770
|
-
const child = rec[k];
|
|
771
|
-
if (child !== null && typeof child === "object" && typeof child.$ref === "string" && refRe.test(child.$ref)) rec[k] = resolve(child.$ref);
|
|
772
|
-
else walk(child);
|
|
773
|
-
}
|
|
774
|
-
};
|
|
775
|
-
walk(root);
|
|
776
|
-
return root;
|
|
777
|
-
}
|
|
778
|
-
|
|
779
688
|
//#endregion
|
|
780
689
|
//#region src/utils/typed-logger.ts
|
|
781
690
|
/**
|
|
@@ -819,7 +728,7 @@ function createTypedLogger(logger$1, schema) {
|
|
|
819
728
|
function withValidation(level, fn, message, data) {
|
|
820
729
|
if (schema && data) {
|
|
821
730
|
const warnings = schema.validate(data);
|
|
822
|
-
for (const w of warnings)
|
|
731
|
+
for (const w of warnings) require_internal_log.internalWarn(`[logixia/schema] ${w} — level=${level} message="${message}"`);
|
|
823
732
|
}
|
|
824
733
|
return fn(message, data);
|
|
825
734
|
}
|
|
@@ -829,7 +738,7 @@ function createTypedLogger(logger$1, schema) {
|
|
|
829
738
|
if (schema && data) {
|
|
830
739
|
const warnings = schema.validate(data);
|
|
831
740
|
const display = messageOrError instanceof Error ? messageOrError.message : messageOrError;
|
|
832
|
-
for (const w of warnings)
|
|
741
|
+
for (const w of warnings) require_internal_log.internalWarn(`[logixia/schema] ${w} — level=error message="${display}"`);
|
|
833
742
|
}
|
|
834
743
|
return logger$1.error(messageOrError, data);
|
|
835
744
|
},
|
|
@@ -941,6 +850,15 @@ function wideEventMiddleware(logger$1, options = {}) {
|
|
|
941
850
|
|
|
942
851
|
//#endregion
|
|
943
852
|
//#region src/transports/otlp.transport.ts
|
|
853
|
+
const HEX_32 = /^[0-9a-f]{32}$/;
|
|
854
|
+
/**
|
|
855
|
+
* OTLP JSON wants a 32-char lowercase hex trace id. Dashed UUIDs are
|
|
856
|
+
* normalised; anything else (or all zeros) returns undefined.
|
|
857
|
+
*/
|
|
858
|
+
function toOtlpTraceId(id) {
|
|
859
|
+
const hex = id.replace(/-/g, "").toLowerCase();
|
|
860
|
+
return HEX_32.test(hex) && hex !== "0".repeat(32) ? hex : void 0;
|
|
861
|
+
}
|
|
944
862
|
/**
|
|
945
863
|
* Map a logixia level name to an OTel SeverityNumber (1–24) and text.
|
|
946
864
|
* Per the OTel logs SDK spec: TRACE=1, DEBUG=5, INFO=9, WARN=13, ERROR=17,
|
|
@@ -991,7 +909,7 @@ function toAnyValue(value) {
|
|
|
991
909
|
if (typeof value === "bigint") return { stringValue: value.toString() };
|
|
992
910
|
if (value === null || value === void 0) return { stringValue: "" };
|
|
993
911
|
try {
|
|
994
|
-
return { stringValue:
|
|
912
|
+
return { stringValue: require_safe_stringify.stringifyForLog(value) };
|
|
995
913
|
} catch {
|
|
996
914
|
return { stringValue: String(value) };
|
|
997
915
|
}
|
|
@@ -1006,13 +924,19 @@ function toAttributes(rec) {
|
|
|
1006
924
|
var OtlpLogTransport = class {
|
|
1007
925
|
constructor(config) {
|
|
1008
926
|
this.name = "otlp";
|
|
1009
|
-
this.batch = [];
|
|
1010
927
|
this.flushTimer = null;
|
|
1011
928
|
this.url = config.url;
|
|
1012
929
|
this.headers = config.headers ?? {};
|
|
1013
930
|
this.batchSize = config.batchSize ?? 100;
|
|
1014
931
|
this.flushIntervalMs = config.flushIntervalMs ?? 5e3;
|
|
932
|
+
this.requestTimeoutMs = config.requestTimeoutMs ?? require_batch_buffer.DEFAULT_REQUEST_TIMEOUT_MS;
|
|
1015
933
|
this.level = config.level;
|
|
934
|
+
this.buffer = new require_batch_buffer.BatchBuffer({
|
|
935
|
+
name: "OtlpLogTransport",
|
|
936
|
+
batchSize: this.batchSize,
|
|
937
|
+
maxBufferSize: config.maxBufferSize ?? require_batch_buffer.DEFAULT_MAX_BUFFER_SIZE,
|
|
938
|
+
send: (entries) => this.send(entries)
|
|
939
|
+
});
|
|
1016
940
|
this.resourceAttrs = toAttributes({
|
|
1017
941
|
"service.name": config.serviceName ?? "logixia",
|
|
1018
942
|
...config.serviceVersion ? { "service.version": config.serviceVersion } : {},
|
|
@@ -1025,8 +949,8 @@ var OtlpLogTransport = class {
|
|
|
1025
949
|
if (this.flushTimer.unref) this.flushTimer.unref();
|
|
1026
950
|
}
|
|
1027
951
|
write(entry) {
|
|
1028
|
-
this.
|
|
1029
|
-
|
|
952
|
+
this.buffer.push(entry);
|
|
953
|
+
this.buffer.flushIfFull();
|
|
1030
954
|
}
|
|
1031
955
|
/** Convert one entry into an OTLP LogRecord. */
|
|
1032
956
|
toLogRecord(entry) {
|
|
@@ -1044,11 +968,18 @@ var OtlpLogTransport = class {
|
|
|
1044
968
|
body: { stringValue: entry.message },
|
|
1045
969
|
attributes: toAttributes(attrs)
|
|
1046
970
|
};
|
|
1047
|
-
if (entry.traceId)
|
|
971
|
+
if (entry.traceId) {
|
|
972
|
+
const traceId = toOtlpTraceId(entry.traceId);
|
|
973
|
+
if (traceId) record["traceId"] = traceId;
|
|
974
|
+
else record["attributes"].push({
|
|
975
|
+
key: "trace_id",
|
|
976
|
+
value: { stringValue: entry.traceId }
|
|
977
|
+
});
|
|
978
|
+
}
|
|
1048
979
|
return record;
|
|
1049
980
|
}
|
|
1050
981
|
buildPayload(entries) {
|
|
1051
|
-
return
|
|
982
|
+
return require_safe_stringify.stringifyForLog({ resourceLogs: [{
|
|
1052
983
|
resource: { attributes: this.resourceAttrs },
|
|
1053
984
|
scopeLogs: [{
|
|
1054
985
|
scope: { name: "logixia" },
|
|
@@ -1056,40 +987,40 @@ var OtlpLogTransport = class {
|
|
|
1056
987
|
}]
|
|
1057
988
|
}] });
|
|
1058
989
|
}
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
const entries = this.batch.splice(0, this.batchSize);
|
|
1062
|
-
try {
|
|
1063
|
-
await this.send(entries);
|
|
1064
|
-
} catch (err) {
|
|
1065
|
-
require_transport_manager.internalError("OtlpLogTransport flush error", err);
|
|
1066
|
-
this.batch.unshift(...entries);
|
|
1067
|
-
return;
|
|
1068
|
-
}
|
|
1069
|
-
}
|
|
990
|
+
flush() {
|
|
991
|
+
return this.buffer.flush();
|
|
1070
992
|
}
|
|
1071
993
|
async send(entries) {
|
|
1072
994
|
if (typeof fetch !== "function") {
|
|
1073
|
-
|
|
995
|
+
require_internal_log.internalWarn("OtlpLogTransport: global fetch unavailable — cannot export logs");
|
|
1074
996
|
return;
|
|
1075
997
|
}
|
|
1076
|
-
const
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
998
|
+
const controller = new AbortController();
|
|
999
|
+
const timer = setTimeout(() => controller.abort(), this.requestTimeoutMs);
|
|
1000
|
+
try {
|
|
1001
|
+
const res = await fetch(this.url, {
|
|
1002
|
+
method: "POST",
|
|
1003
|
+
headers: {
|
|
1004
|
+
"Content-Type": "application/json",
|
|
1005
|
+
...this.headers
|
|
1006
|
+
},
|
|
1007
|
+
body: this.buildPayload(entries),
|
|
1008
|
+
signal: controller.signal
|
|
1009
|
+
});
|
|
1010
|
+
if (!res.ok) throw new require_batch_buffer.HttpError(res.status, "", "OTLP export");
|
|
1011
|
+
} catch (err) {
|
|
1012
|
+
if (controller.signal.aborted) throw new Error(`OTLP export timed out after ${this.requestTimeoutMs}ms`, { cause: err });
|
|
1013
|
+
throw err;
|
|
1014
|
+
} finally {
|
|
1015
|
+
clearTimeout(timer);
|
|
1016
|
+
}
|
|
1085
1017
|
}
|
|
1086
1018
|
async close() {
|
|
1087
1019
|
if (this.flushTimer) {
|
|
1088
1020
|
clearInterval(this.flushTimer);
|
|
1089
1021
|
this.flushTimer = null;
|
|
1090
1022
|
}
|
|
1091
|
-
|
|
1092
|
-
if (this.batch.length > 0) require_transport_manager.internalError(`OtlpLogTransport closing with ${this.batch.length} undelivered record(s)`);
|
|
1023
|
+
await this.buffer.close();
|
|
1093
1024
|
}
|
|
1094
1025
|
};
|
|
1095
1026
|
|
|
@@ -1419,6 +1350,9 @@ const logger = new require_logitron_logger_module.LogixiaLogger(DEFAULT_CONFIG);
|
|
|
1419
1350
|
*/
|
|
1420
1351
|
|
|
1421
1352
|
//#endregion
|
|
1353
|
+
exports.BasicLogIndexer = require_search.BasicLogIndexer;
|
|
1354
|
+
exports.BasicSearchEngine = require_search.BasicSearchEngine;
|
|
1355
|
+
exports.CorrelationEngine = require_search.CorrelationEngine;
|
|
1422
1356
|
exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
|
|
1423
1357
|
exports.DEFAULT_LOG_COLORS = require_logitron_logger_module.DEFAULT_LOG_COLORS;
|
|
1424
1358
|
exports.DEFAULT_LOG_LEVELS = require_logitron_logger_module.DEFAULT_LOG_LEVELS;
|
|
@@ -1434,9 +1368,10 @@ Object.defineProperty(exports, 'KafkaTraceInterceptor', {
|
|
|
1434
1368
|
});
|
|
1435
1369
|
exports.LOGIXIA_LOGGER_CONFIG = require_logitron_logger_module.LOGIXIA_LOGGER_CONFIG;
|
|
1436
1370
|
exports.LOGIXIA_LOGGER_PREFIX = require_logitron_logger_module.LOGIXIA_LOGGER_PREFIX;
|
|
1371
|
+
exports.LOGIXIA_TRACE_CONFIG = require_logitron_logger_module.LOGIXIA_TRACE_CONFIG;
|
|
1437
1372
|
exports.LogLevel = require_logitron_logger_module.LogLevel;
|
|
1438
1373
|
exports.LogMethod = LogMethod;
|
|
1439
|
-
exports.LogixiaContext =
|
|
1374
|
+
exports.LogixiaContext = require_async_context.LogixiaContext;
|
|
1440
1375
|
exports.LogixiaException = LogixiaException;
|
|
1441
1376
|
Object.defineProperty(exports, 'LogixiaExceptionFilter', {
|
|
1442
1377
|
enumerable: true,
|
|
@@ -1458,8 +1393,11 @@ Object.defineProperty(exports, 'LogixiaLoggerService', {
|
|
|
1458
1393
|
}
|
|
1459
1394
|
});
|
|
1460
1395
|
exports.MetricsPlugin = MetricsPlugin;
|
|
1396
|
+
exports.NLPSearchEngine = require_search.NLPSearchEngine;
|
|
1461
1397
|
exports.OtlpLogTransport = OtlpLogTransport;
|
|
1398
|
+
exports.PatternRecognitionEngine = require_search.PatternRecognitionEngine;
|
|
1462
1399
|
exports.PluginRegistry = require_logitron_logger_module.PluginRegistry;
|
|
1400
|
+
exports.SearchManager = require_search.SearchManager;
|
|
1463
1401
|
exports.TRACE_CONTEXT_KEY = require_logitron_logger_module.TRACE_CONTEXT_KEY;
|
|
1464
1402
|
exports.TextFormatter = TextFormatter;
|
|
1465
1403
|
exports.TraceContext = require_logitron_logger_module.TraceContext;
|
|
@@ -1470,17 +1408,18 @@ Object.defineProperty(exports, 'WebSocketTraceInterceptor', {
|
|
|
1470
1408
|
}
|
|
1471
1409
|
});
|
|
1472
1410
|
exports._setActiveContextKey = require_logitron_logger_module._setActiveContextKey;
|
|
1411
|
+
exports._shutdownRegistrySize = require_logitron_logger_module._shutdownRegistrySize;
|
|
1473
1412
|
exports.addEventFields = addEventFields;
|
|
1474
1413
|
exports.applyRedaction = require_logitron_logger_module.applyRedaction;
|
|
1475
|
-
exports.createExpressContextMiddleware =
|
|
1476
|
-
exports.createFastifyContextHook =
|
|
1414
|
+
exports.createExpressContextMiddleware = require_async_context.createExpressContextMiddleware;
|
|
1415
|
+
exports.createFastifyContextHook = require_async_context.createFastifyContextHook;
|
|
1477
1416
|
exports.createLevelControlHandler = createLevelControlHandler;
|
|
1478
1417
|
exports.createLogger = createLogger;
|
|
1479
1418
|
exports.createLoggerService = createLoggerService;
|
|
1480
1419
|
exports.createMetricsPlugin = createMetricsPlugin;
|
|
1481
1420
|
exports.createTraceMiddleware = require_logitron_logger_module.createTraceMiddleware;
|
|
1482
1421
|
exports.createTypedLogger = createTypedLogger;
|
|
1483
|
-
exports.decycleValue = decycleValue;
|
|
1422
|
+
exports.decycleValue = require_safe_stringify.decycleValue;
|
|
1484
1423
|
exports.defineLogSchema = defineLogSchema;
|
|
1485
1424
|
exports.deregisterFromShutdown = require_logitron_logger_module.deregisterFromShutdown;
|
|
1486
1425
|
exports.disableOtelBridge = require_logitron_logger_module.disableOtelBridge;
|
|
@@ -1503,12 +1442,13 @@ exports.redactObject = require_logitron_logger_module.redactObject;
|
|
|
1503
1442
|
exports.registerForShutdown = require_logitron_logger_module.registerForShutdown;
|
|
1504
1443
|
exports.registerLevelSignal = registerLevelSignal;
|
|
1505
1444
|
exports.resetShutdownHandlers = require_logitron_logger_module.resetShutdownHandlers;
|
|
1506
|
-
exports.retrocycle = retrocycle;
|
|
1445
|
+
exports.retrocycle = require_safe_stringify.retrocycle;
|
|
1507
1446
|
exports.runWithTraceId = require_logitron_logger_module.runWithTraceId;
|
|
1508
|
-
exports.safeStringify = safeStringify;
|
|
1447
|
+
exports.safeStringify = require_safe_stringify.safeStringify;
|
|
1509
1448
|
exports.serializeError = require_logitron_logger_module.serializeError;
|
|
1510
1449
|
exports.setEventField = setEventField;
|
|
1511
1450
|
exports.setTraceId = require_logitron_logger_module.setTraceId;
|
|
1451
|
+
exports.stringifyForLog = require_safe_stringify.stringifyForLog;
|
|
1512
1452
|
exports.toOtelSeverity = toOtelSeverity;
|
|
1513
1453
|
exports.traceStorage = require_logitron_logger_module.traceStorage;
|
|
1514
1454
|
exports.usePlugin = require_logitron_logger_module.usePlugin;
|