@percepta/logger 0.0.4 → 0.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/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/index.cjs +11 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/logger/MosaicLogger.cjs +50 -0
- package/dist/logger/MosaicLogger.cjs.map +1 -0
- package/dist/logger/MosaicLogger.d.cts +23 -0
- package/dist/logger/MosaicLogger.d.cts.map +1 -0
- package/dist/logger/MosaicLogger.d.ts +23 -0
- package/dist/logger/MosaicLogger.d.ts.map +1 -0
- package/dist/logger/MosaicLogger.js +49 -0
- package/dist/logger/MosaicLogger.js.map +1 -0
- package/dist/logger/createLogFactory.cjs +20 -0
- package/dist/logger/createLogFactory.cjs.map +1 -0
- package/dist/logger/createLogFactory.d.cts +13 -0
- package/dist/logger/createLogFactory.d.cts.map +1 -0
- package/dist/logger/createLogFactory.d.ts +13 -0
- package/dist/logger/createLogFactory.d.ts.map +1 -0
- package/dist/logger/createLogFactory.js +20 -0
- package/dist/logger/createLogFactory.js.map +1 -0
- package/dist/logger/createPinoInstance.cjs +28 -0
- package/dist/logger/createPinoInstance.cjs.map +1 -0
- package/dist/logger/createPinoInstance.d.cts +8 -0
- package/dist/logger/createPinoInstance.d.cts.map +1 -0
- package/dist/logger/createPinoInstance.d.ts +8 -0
- package/dist/logger/createPinoInstance.d.ts.map +1 -0
- package/dist/logger/createPinoInstance.js +25 -0
- package/dist/logger/createPinoInstance.js.map +1 -0
- package/dist/tracer/createTracerFactory.cjs +12 -0
- package/dist/tracer/createTracerFactory.cjs.map +1 -0
- package/dist/tracer/createTracerFactory.d.cts +14 -0
- package/dist/tracer/createTracerFactory.d.cts.map +1 -0
- package/dist/tracer/createTracerFactory.d.ts +14 -0
- package/dist/tracer/createTracerFactory.d.ts.map +1 -0
- package/dist/tracer/createTracerFactory.js +12 -0
- package/dist/tracer/createTracerFactory.js.map +1 -0
- package/dist/utils/redactValueForGrafana.cjs +8 -0
- package/dist/utils/redactValueForGrafana.cjs.map +1 -0
- package/dist/utils/redactValueForGrafana.d.cts +5 -0
- package/dist/utils/redactValueForGrafana.d.cts.map +1 -0
- package/dist/utils/redactValueForGrafana.d.ts +5 -0
- package/dist/utils/redactValueForGrafana.d.ts.map +1 -0
- package/dist/utils/redactValueForGrafana.js +8 -0
- package/dist/utils/redactValueForGrafana.js.map +1 -0
- package/package.json +28 -18
- package/dist/cjs/index.d.ts +0 -6
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -22
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/logger/MosaicLogger.d.ts +0 -19
- package/dist/cjs/logger/MosaicLogger.d.ts.map +0 -1
- package/dist/cjs/logger/MosaicLogger.js +0 -61
- package/dist/cjs/logger/MosaicLogger.js.map +0 -1
- package/dist/cjs/logger/createLogFactory.d.ts +0 -9
- package/dist/cjs/logger/createLogFactory.d.ts.map +0 -1
- package/dist/cjs/logger/createLogFactory.js +0 -19
- package/dist/cjs/logger/createLogFactory.js.map +0 -1
- package/dist/cjs/logger/createPinoInstance.d.ts +0 -4
- package/dist/cjs/logger/createPinoInstance.d.ts.map +0 -1
- package/dist/cjs/logger/createPinoInstance.js +0 -33
- package/dist/cjs/logger/createPinoInstance.js.map +0 -1
- package/dist/cjs/tracer/createTracerFactory.d.ts +0 -10
- package/dist/cjs/tracer/createTracerFactory.d.ts.map +0 -1
- package/dist/cjs/tracer/createTracerFactory.js +0 -11
- package/dist/cjs/tracer/createTracerFactory.js.map +0 -1
- package/dist/cjs/tsconfig.tsbuildinfo +0 -1
- package/dist/cjs/utils/redactValueForGrafana.d.ts +0 -2
- package/dist/cjs/utils/redactValueForGrafana.d.ts.map +0 -1
- package/dist/cjs/utils/redactValueForGrafana.js +0 -7
- package/dist/cjs/utils/redactValueForGrafana.js.map +0 -1
- package/dist/esnext/index.d.ts +0 -6
- package/dist/esnext/index.d.ts.map +0 -1
- package/dist/esnext/index.js +0 -6
- package/dist/esnext/index.js.map +0 -1
- package/dist/esnext/logger/MosaicLogger.d.ts +0 -19
- package/dist/esnext/logger/MosaicLogger.d.ts.map +0 -1
- package/dist/esnext/logger/MosaicLogger.js +0 -57
- package/dist/esnext/logger/MosaicLogger.js.map +0 -1
- package/dist/esnext/logger/createLogFactory.d.ts +0 -9
- package/dist/esnext/logger/createLogFactory.d.ts.map +0 -1
- package/dist/esnext/logger/createLogFactory.js +0 -16
- package/dist/esnext/logger/createLogFactory.js.map +0 -1
- package/dist/esnext/logger/createPinoInstance.d.ts +0 -4
- package/dist/esnext/logger/createPinoInstance.d.ts.map +0 -1
- package/dist/esnext/logger/createPinoInstance.js +0 -27
- package/dist/esnext/logger/createPinoInstance.js.map +0 -1
- package/dist/esnext/tracer/createTracerFactory.d.ts +0 -10
- package/dist/esnext/tracer/createTracerFactory.d.ts.map +0 -1
- package/dist/esnext/tracer/createTracerFactory.js +0 -8
- package/dist/esnext/tracer/createTracerFactory.js.map +0 -1
- package/dist/esnext/tsconfig.tsbuildinfo +0 -1
- package/dist/esnext/utils/redactValueForGrafana.d.ts +0 -2
- package/dist/esnext/utils/redactValueForGrafana.d.ts.map +0 -1
- package/dist/esnext/utils/redactValueForGrafana.js +0 -4
- package/dist/esnext/utils/redactValueForGrafana.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_redactValueForGrafana = require("./utils/redactValueForGrafana.cjs");
|
|
3
|
+
const require_MosaicLogger = require("./logger/MosaicLogger.cjs");
|
|
4
|
+
const require_createLogFactory = require("./logger/createLogFactory.cjs");
|
|
5
|
+
const require_createPinoInstance = require("./logger/createPinoInstance.cjs");
|
|
6
|
+
const require_createTracerFactory = require("./tracer/createTracerFactory.cjs");
|
|
7
|
+
exports.MosaicLogger = require_MosaicLogger.MosaicLogger;
|
|
8
|
+
exports.createLogFactory = require_createLogFactory.createLogFactory;
|
|
9
|
+
exports.createPinoInstance = require_createPinoInstance.createPinoInstance;
|
|
10
|
+
exports.createTracerFactory = require_createTracerFactory.createTracerFactory;
|
|
11
|
+
exports.redactValueForGrafana = require_redactValueForGrafana.redactValueForGrafana;
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./logger/MosaicLogger.cjs";
|
|
2
|
+
import { LogFactory, createLogFactory } from "./logger/createLogFactory.cjs";
|
|
3
|
+
import { createPinoInstance } from "./logger/createPinoInstance.cjs";
|
|
4
|
+
import { Tracer, TracerFactory, createTracerFactory } from "./tracer/createTracerFactory.cjs";
|
|
5
|
+
import { redactValueForGrafana } from "./utils/redactValueForGrafana.cjs";
|
|
6
|
+
export { LogArgs, LogFactory, MosaicLogger, Tracer, TracerFactory, createLogFactory, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./logger/MosaicLogger.js";
|
|
2
|
+
import { LogFactory, createLogFactory } from "./logger/createLogFactory.js";
|
|
3
|
+
import { createPinoInstance } from "./logger/createPinoInstance.js";
|
|
4
|
+
import { Tracer, TracerFactory, createTracerFactory } from "./tracer/createTracerFactory.js";
|
|
5
|
+
import { redactValueForGrafana } from "./utils/redactValueForGrafana.js";
|
|
6
|
+
export { LogArgs, LogFactory, MosaicLogger, Tracer, TracerFactory, createLogFactory, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { redactValueForGrafana } from "./utils/redactValueForGrafana.js";
|
|
2
|
+
import { MosaicLogger } from "./logger/MosaicLogger.js";
|
|
3
|
+
import { createLogFactory } from "./logger/createLogFactory.js";
|
|
4
|
+
import { createPinoInstance } from "./logger/createPinoInstance.js";
|
|
5
|
+
import { createTracerFactory } from "./tracer/createTracerFactory.js";
|
|
6
|
+
export { MosaicLogger, createLogFactory, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let lodash_es = require("lodash-es");
|
|
3
|
+
//#region src/logger/MosaicLogger.ts
|
|
4
|
+
var MosaicLogger = class MosaicLogger {
|
|
5
|
+
constructor(pino, redactValue) {
|
|
6
|
+
this.pino = pino;
|
|
7
|
+
this.redactValue = redactValue;
|
|
8
|
+
}
|
|
9
|
+
child(context) {
|
|
10
|
+
return new MosaicLogger(this.pino.child(this.resolveArgs(context)), this.redactValue);
|
|
11
|
+
}
|
|
12
|
+
info(args, message, error) {
|
|
13
|
+
this.log("info", args, message, error);
|
|
14
|
+
}
|
|
15
|
+
warn(args, message, error) {
|
|
16
|
+
this.log("warn", args, message, error);
|
|
17
|
+
}
|
|
18
|
+
debug(args, message, error) {
|
|
19
|
+
this.log("debug", args, message, error);
|
|
20
|
+
}
|
|
21
|
+
error(args, message, error) {
|
|
22
|
+
this.log("error", args, message, error);
|
|
23
|
+
}
|
|
24
|
+
log(level, args, message, error) {
|
|
25
|
+
this.pino[level]({
|
|
26
|
+
...args != null && { ...this.resolveArgs(args) },
|
|
27
|
+
...error != null && { err: this.serializeError(error) }
|
|
28
|
+
}, message);
|
|
29
|
+
}
|
|
30
|
+
resolveArgs({ safe, unsafe }) {
|
|
31
|
+
return {
|
|
32
|
+
...safe,
|
|
33
|
+
...unsafe != null && (0, lodash_es.mapValues)(unsafe, (value) => this.redactValue(value))
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
serializeError(error) {
|
|
37
|
+
if (!(0, lodash_es.isError)(error)) return { message: this.redactValue(String(error)) };
|
|
38
|
+
const { name, message, stack, ...errorProps } = error;
|
|
39
|
+
return {
|
|
40
|
+
type: name,
|
|
41
|
+
message: this.redactValue(message),
|
|
42
|
+
stack,
|
|
43
|
+
...!(0, lodash_es.isEmpty)(errorProps) && { props: this.redactValue(errorProps) }
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
exports.MosaicLogger = MosaicLogger;
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=MosaicLogger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.cjs","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport { type Logger as PinoLogger } from \"pino\";\n\nexport interface LogArgs {\n safe?: Record<string, unknown>;\n unsafe?: Record<string, unknown>;\n}\n\nenum LogLevel {\n INFO = \"info\",\n ERROR = \"error\",\n WARN = \"warn\",\n DEBUG = \"debug\",\n}\n\nexport class MosaicLogger {\n public constructor(\n private pino: PinoLogger,\n private redactValue: (value: unknown) => string,\n ) {}\n\n public child(context: LogArgs): MosaicLogger {\n return new MosaicLogger(\n this.pino.child(this.resolveArgs(context)),\n this.redactValue,\n );\n }\n\n public info(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.INFO, args, message, error);\n }\n\n public warn(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.WARN, args, message, error);\n }\n\n public debug(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.DEBUG, args, message, error);\n }\n\n public error(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.ERROR, args, message, error);\n }\n\n private log(\n level: LogLevel,\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.pino[level](\n {\n ...(args != null && { ...this.resolveArgs(args) }),\n ...(error != null && { err: this.serializeError(error) }),\n },\n message,\n );\n }\n\n private resolveArgs({ safe, unsafe }: LogArgs): Record<string, unknown> {\n return {\n ...safe,\n ...(unsafe != null &&\n mapValues(unsafe, (value) => this.redactValue(value))),\n };\n }\n\n private serializeError(error: unknown): SerializedError {\n if (!isError(error)) {\n return { message: this.redactValue(String(error)) };\n }\n\n const { name, message, stack, ...errorProps } = error;\n\n return {\n type: name,\n message: this.redactValue(message),\n stack,\n ...(!isEmpty(errorProps) && { props: this.redactValue(errorProps) }),\n };\n }\n}\n\ninterface SerializedError {\n type?: string;\n message?: string;\n stack?: string;\n props?: string;\n}\n"],"mappings":";;;AAeA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,MACA,aACA;AAFQ,OAAA,OAAA;AACA,OAAA,cAAA;;CAGV,MAAa,SAAgC;AAC3C,SAAO,IAAI,aACT,KAAK,KAAK,MAAM,KAAK,YAAY,QAAQ,CAAC,EAC1C,KAAK,YACN;;CAGH,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,IACE,OACA,MACA,SACA,OACM;AACN,OAAK,KAAK,OACR;GACE,GAAI,QAAQ,QAAQ,EAAE,GAAG,KAAK,YAAY,KAAK,EAAE;GACjD,GAAI,SAAS,QAAQ,EAAE,KAAK,KAAK,eAAe,MAAM,EAAE;GACzD,EACD,QACD;;CAGH,YAAoB,EAAE,MAAM,UAA4C;AACtE,SAAO;GACL,GAAG;GACH,GAAI,UAAU,SAAA,GAAA,UAAA,WACF,SAAS,UAAU,KAAK,YAAY,MAAM,CAAC;GACxD;;CAGH,eAAuB,OAAiC;AACtD,MAAI,EAAA,GAAA,UAAA,SAAS,MAAM,CACjB,QAAO,EAAE,SAAS,KAAK,YAAY,OAAO,MAAM,CAAC,EAAE;EAGrD,MAAM,EAAE,MAAM,SAAS,OAAO,GAAG,eAAe;AAEhD,SAAO;GACL,MAAM;GACN,SAAS,KAAK,YAAY,QAAQ;GAClC;GACA,GAAI,EAAA,GAAA,UAAA,SAAS,WAAW,IAAI,EAAE,OAAO,KAAK,YAAY,WAAW,EAAE;GACpE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Logger } from "pino";
|
|
2
|
+
|
|
3
|
+
//#region src/logger/MosaicLogger.d.ts
|
|
4
|
+
interface LogArgs {
|
|
5
|
+
safe?: Record<string, unknown>;
|
|
6
|
+
unsafe?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
declare class MosaicLogger {
|
|
9
|
+
private pino;
|
|
10
|
+
private redactValue;
|
|
11
|
+
constructor(pino: Logger, redactValue: (value: unknown) => string);
|
|
12
|
+
child(context: LogArgs): MosaicLogger;
|
|
13
|
+
info(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
14
|
+
warn(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
15
|
+
debug(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
16
|
+
error(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
17
|
+
private log;
|
|
18
|
+
private resolveArgs;
|
|
19
|
+
private serializeError;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { LogArgs, MosaicLogger };
|
|
23
|
+
//# sourceMappingURL=MosaicLogger.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.d.cts","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"mappings":";;;UAGiB,OAAA;EACf,IAAA,GAAO,MAAA;EACP,MAAA,GAAS,MAAA;AAAA;AAAA,cAUE,YAAA;EAAA,QAED,IAAA;EAAA,QACA,WAAA;cADA,IAAA,EAAM,MAAA,EACN,WAAA,GAAc,KAAA;EAGjB,KAAA,CAAM,OAAA,EAAS,OAAA,GAAU,YAAA;EAOzB,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAAA,QAKM,GAAA;EAAA,QAeA,WAAA;EAAA,QAQA,cAAA;AAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Logger } from "pino";
|
|
2
|
+
|
|
3
|
+
//#region src/logger/MosaicLogger.d.ts
|
|
4
|
+
interface LogArgs {
|
|
5
|
+
safe?: Record<string, unknown>;
|
|
6
|
+
unsafe?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
declare class MosaicLogger {
|
|
9
|
+
private pino;
|
|
10
|
+
private redactValue;
|
|
11
|
+
constructor(pino: Logger, redactValue: (value: unknown) => string);
|
|
12
|
+
child(context: LogArgs): MosaicLogger;
|
|
13
|
+
info(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
14
|
+
warn(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
15
|
+
debug(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
16
|
+
error(args: LogArgs | undefined, message: string, error?: unknown): void;
|
|
17
|
+
private log;
|
|
18
|
+
private resolveArgs;
|
|
19
|
+
private serializeError;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { LogArgs, MosaicLogger };
|
|
23
|
+
//# sourceMappingURL=MosaicLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.d.ts","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"mappings":";;;UAGiB,OAAA;EACf,IAAA,GAAO,MAAA;EACP,MAAA,GAAS,MAAA;AAAA;AAAA,cAUE,YAAA;EAAA,QAED,IAAA;EAAA,QACA,WAAA;cADA,IAAA,EAAM,MAAA,EACN,WAAA,GAAc,KAAA;EAGjB,KAAA,CAAM,OAAA,EAAS,OAAA,GAAU,YAAA;EAOzB,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,IAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAKK,KAAA,CACL,IAAA,EAAM,OAAA,cACN,OAAA,UACA,KAAA;EAAA,QAKM,GAAA;EAAA,QAeA,WAAA;EAAA,QAQA,cAAA;AAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { isEmpty, isError, mapValues } from "lodash-es";
|
|
2
|
+
//#region src/logger/MosaicLogger.ts
|
|
3
|
+
var MosaicLogger = class MosaicLogger {
|
|
4
|
+
constructor(pino, redactValue) {
|
|
5
|
+
this.pino = pino;
|
|
6
|
+
this.redactValue = redactValue;
|
|
7
|
+
}
|
|
8
|
+
child(context) {
|
|
9
|
+
return new MosaicLogger(this.pino.child(this.resolveArgs(context)), this.redactValue);
|
|
10
|
+
}
|
|
11
|
+
info(args, message, error) {
|
|
12
|
+
this.log("info", args, message, error);
|
|
13
|
+
}
|
|
14
|
+
warn(args, message, error) {
|
|
15
|
+
this.log("warn", args, message, error);
|
|
16
|
+
}
|
|
17
|
+
debug(args, message, error) {
|
|
18
|
+
this.log("debug", args, message, error);
|
|
19
|
+
}
|
|
20
|
+
error(args, message, error) {
|
|
21
|
+
this.log("error", args, message, error);
|
|
22
|
+
}
|
|
23
|
+
log(level, args, message, error) {
|
|
24
|
+
this.pino[level]({
|
|
25
|
+
...args != null && { ...this.resolveArgs(args) },
|
|
26
|
+
...error != null && { err: this.serializeError(error) }
|
|
27
|
+
}, message);
|
|
28
|
+
}
|
|
29
|
+
resolveArgs({ safe, unsafe }) {
|
|
30
|
+
return {
|
|
31
|
+
...safe,
|
|
32
|
+
...unsafe != null && mapValues(unsafe, (value) => this.redactValue(value))
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
serializeError(error) {
|
|
36
|
+
if (!isError(error)) return { message: this.redactValue(String(error)) };
|
|
37
|
+
const { name, message, stack, ...errorProps } = error;
|
|
38
|
+
return {
|
|
39
|
+
type: name,
|
|
40
|
+
message: this.redactValue(message),
|
|
41
|
+
stack,
|
|
42
|
+
...!isEmpty(errorProps) && { props: this.redactValue(errorProps) }
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { MosaicLogger };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=MosaicLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicLogger.js","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport { type Logger as PinoLogger } from \"pino\";\n\nexport interface LogArgs {\n safe?: Record<string, unknown>;\n unsafe?: Record<string, unknown>;\n}\n\nenum LogLevel {\n INFO = \"info\",\n ERROR = \"error\",\n WARN = \"warn\",\n DEBUG = \"debug\",\n}\n\nexport class MosaicLogger {\n public constructor(\n private pino: PinoLogger,\n private redactValue: (value: unknown) => string,\n ) {}\n\n public child(context: LogArgs): MosaicLogger {\n return new MosaicLogger(\n this.pino.child(this.resolveArgs(context)),\n this.redactValue,\n );\n }\n\n public info(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.INFO, args, message, error);\n }\n\n public warn(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.WARN, args, message, error);\n }\n\n public debug(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.DEBUG, args, message, error);\n }\n\n public error(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.ERROR, args, message, error);\n }\n\n private log(\n level: LogLevel,\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.pino[level](\n {\n ...(args != null && { ...this.resolveArgs(args) }),\n ...(error != null && { err: this.serializeError(error) }),\n },\n message,\n );\n }\n\n private resolveArgs({ safe, unsafe }: LogArgs): Record<string, unknown> {\n return {\n ...safe,\n ...(unsafe != null &&\n mapValues(unsafe, (value) => this.redactValue(value))),\n };\n }\n\n private serializeError(error: unknown): SerializedError {\n if (!isError(error)) {\n return { message: this.redactValue(String(error)) };\n }\n\n const { name, message, stack, ...errorProps } = error;\n\n return {\n type: name,\n message: this.redactValue(message),\n stack,\n ...(!isEmpty(errorProps) && { props: this.redactValue(errorProps) }),\n };\n }\n}\n\ninterface SerializedError {\n type?: string;\n message?: string;\n stack?: string;\n props?: string;\n}\n"],"mappings":";;AAeA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,MACA,aACA;AAFQ,OAAA,OAAA;AACA,OAAA,cAAA;;CAGV,MAAa,SAAgC;AAC3C,SAAO,IAAI,aACT,KAAK,KAAK,MAAM,KAAK,YAAY,QAAQ,CAAC,EAC1C,KAAK,YACN;;CAGH,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,IACE,OACA,MACA,SACA,OACM;AACN,OAAK,KAAK,OACR;GACE,GAAI,QAAQ,QAAQ,EAAE,GAAG,KAAK,YAAY,KAAK,EAAE;GACjD,GAAI,SAAS,QAAQ,EAAE,KAAK,KAAK,eAAe,MAAM,EAAE;GACzD,EACD,QACD;;CAGH,YAAoB,EAAE,MAAM,UAA4C;AACtE,SAAO;GACL,GAAG;GACH,GAAI,UAAU,QACZ,UAAU,SAAS,UAAU,KAAK,YAAY,MAAM,CAAC;GACxD;;CAGH,eAAuB,OAAiC;AACtD,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,EAAE,SAAS,KAAK,YAAY,OAAO,MAAM,CAAC,EAAE;EAGrD,MAAM,EAAE,MAAM,SAAS,OAAO,GAAG,eAAe;AAEhD,SAAO;GACL,MAAM;GACN,SAAS,KAAK,YAAY,QAAQ;GAClC;GACA,GAAI,CAAC,QAAQ,WAAW,IAAI,EAAE,OAAO,KAAK,YAAY,WAAW,EAAE;GACpE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const require_redactValueForGrafana = require("../utils/redactValueForGrafana.cjs");
|
|
2
|
+
const require_MosaicLogger = require("./MosaicLogger.cjs");
|
|
3
|
+
//#region src/logger/createLogFactory.ts
|
|
4
|
+
function createLogFactory(pino, asyncLocalStorageFactory, redactValue = require_redactValueForGrafana.redactValueForGrafana) {
|
|
5
|
+
const baseLogger = new require_MosaicLogger.MosaicLogger(pino, redactValue);
|
|
6
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
7
|
+
function getLogger() {
|
|
8
|
+
return asyncLocalStorage.getStore() ?? baseLogger;
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
getLogger,
|
|
12
|
+
withLogContext: (context, callback) => {
|
|
13
|
+
return asyncLocalStorage.run(getLogger().child(context), callback);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.createLogFactory = createLogFactory;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=createLogFactory.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.cjs","names":["redactValueForGrafana","MosaicLogger"],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import { type AsyncLocalStorage } from \"node:async_hooks\";\nimport { type Logger as PinoLogger } from \"pino\";\nimport { redactValueForGrafana } from \"../utils/redactValueForGrafana\";\nimport { type LogArgs, MosaicLogger } from \"./MosaicLogger\";\n\nexport interface LogFactory {\n getLogger: () => MosaicLogger;\n withLogContext: <TReturn>(\n context: LogArgs,\n callback: () => TReturn,\n ) => TReturn;\n}\n\nexport function createLogFactory(\n pino: PinoLogger,\n asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>,\n redactValue: (value: unknown) => string = redactValueForGrafana,\n): LogFactory {\n const baseLogger = new MosaicLogger(pino, redactValue);\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n function getLogger(): MosaicLogger {\n return asyncLocalStorage.getStore() ?? baseLogger;\n }\n\n return {\n getLogger,\n withLogContext: (context, callback) => {\n return asyncLocalStorage.run(getLogger().child(context), callback);\n },\n };\n}\n"],"mappings":";;;AAaA,SAAgB,iBACd,MACA,0BACA,cAA0CA,8BAAAA,uBAC9B;CACZ,MAAM,aAAa,IAAIC,qBAAAA,aAAa,MAAM,YAAY;CACtD,MAAM,oBAAoB,0BAA0B;CAEpD,SAAS,YAA0B;AACjC,SAAO,kBAAkB,UAAU,IAAI;;AAGzC,QAAO;EACL;EACA,iBAAiB,SAAS,aAAa;AACrC,UAAO,kBAAkB,IAAI,WAAW,CAAC,MAAM,QAAQ,EAAE,SAAS;;EAErE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./MosaicLogger.cjs";
|
|
2
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
|
+
import { Logger } from "pino";
|
|
4
|
+
|
|
5
|
+
//#region src/logger/createLogFactory.d.ts
|
|
6
|
+
interface LogFactory {
|
|
7
|
+
getLogger: () => MosaicLogger;
|
|
8
|
+
withLogContext: <TReturn>(context: LogArgs, callback: () => TReturn) => TReturn;
|
|
9
|
+
}
|
|
10
|
+
declare function createLogFactory(pino: Logger, asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>, redactValue?: (value: unknown) => string): LogFactory;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { LogFactory, createLogFactory };
|
|
13
|
+
//# sourceMappingURL=createLogFactory.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.d.cts","names":[],"sources":["../../src/logger/createLogFactory.ts"],"mappings":";;;;;UAKiB,UAAA;EACf,SAAA,QAAiB,YAAA;EACjB,cAAA,YACE,OAAA,EAAS,OAAA,EACT,QAAA,QAAgB,OAAA,KACb,OAAA;AAAA;AAAA,iBAGS,gBAAA,CACd,IAAA,EAAM,MAAA,EACN,wBAAA,QAAgC,iBAAA,CAAkB,YAAA,GAClD,WAAA,IAAc,KAAA,uBACb,UAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LogArgs, MosaicLogger } from "./MosaicLogger.js";
|
|
2
|
+
import { Logger } from "pino";
|
|
3
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4
|
+
|
|
5
|
+
//#region src/logger/createLogFactory.d.ts
|
|
6
|
+
interface LogFactory {
|
|
7
|
+
getLogger: () => MosaicLogger;
|
|
8
|
+
withLogContext: <TReturn>(context: LogArgs, callback: () => TReturn) => TReturn;
|
|
9
|
+
}
|
|
10
|
+
declare function createLogFactory(pino: Logger, asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>, redactValue?: (value: unknown) => string): LogFactory;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { LogFactory, createLogFactory };
|
|
13
|
+
//# sourceMappingURL=createLogFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.d.ts","names":[],"sources":["../../src/logger/createLogFactory.ts"],"mappings":";;;;;UAKiB,UAAA;EACf,SAAA,QAAiB,YAAA;EACjB,cAAA,YACE,OAAA,EAAS,OAAA,EACT,QAAA,QAAgB,OAAA,KACb,OAAA;AAAA;AAAA,iBAGS,gBAAA,CACd,IAAA,EAAM,MAAA,EACN,wBAAA,QAAgC,iBAAA,CAAkB,YAAA,GAClD,WAAA,IAAc,KAAA,uBACb,UAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { redactValueForGrafana } from "../utils/redactValueForGrafana.js";
|
|
2
|
+
import { MosaicLogger } from "./MosaicLogger.js";
|
|
3
|
+
//#region src/logger/createLogFactory.ts
|
|
4
|
+
function createLogFactory(pino, asyncLocalStorageFactory, redactValue = redactValueForGrafana) {
|
|
5
|
+
const baseLogger = new MosaicLogger(pino, redactValue);
|
|
6
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
7
|
+
function getLogger() {
|
|
8
|
+
return asyncLocalStorage.getStore() ?? baseLogger;
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
getLogger,
|
|
12
|
+
withLogContext: (context, callback) => {
|
|
13
|
+
return asyncLocalStorage.run(getLogger().child(context), callback);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createLogFactory };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=createLogFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLogFactory.js","names":[],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import { type AsyncLocalStorage } from \"node:async_hooks\";\nimport { type Logger as PinoLogger } from \"pino\";\nimport { redactValueForGrafana } from \"../utils/redactValueForGrafana\";\nimport { type LogArgs, MosaicLogger } from \"./MosaicLogger\";\n\nexport interface LogFactory {\n getLogger: () => MosaicLogger;\n withLogContext: <TReturn>(\n context: LogArgs,\n callback: () => TReturn,\n ) => TReturn;\n}\n\nexport function createLogFactory(\n pino: PinoLogger,\n asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>,\n redactValue: (value: unknown) => string = redactValueForGrafana,\n): LogFactory {\n const baseLogger = new MosaicLogger(pino, redactValue);\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n function getLogger(): MosaicLogger {\n return asyncLocalStorage.getStore() ?? baseLogger;\n }\n\n return {\n getLogger,\n withLogContext: (context, callback) => {\n return asyncLocalStorage.run(getLogger().child(context), callback);\n },\n };\n}\n"],"mappings":";;;AAaA,SAAgB,iBACd,MACA,0BACA,cAA0C,uBAC9B;CACZ,MAAM,aAAa,IAAI,aAAa,MAAM,YAAY;CACtD,MAAM,oBAAoB,0BAA0B;CAEpD,SAAS,YAA0B;AACjC,SAAO,kBAAkB,UAAU,IAAI;;AAGzC,QAAO;EACL;EACA,iBAAiB,SAAS,aAAa;AACrC,UAAO,kBAAkB,IAAI,WAAW,CAAC,MAAM,QAAQ,EAAE,SAAS;;EAErE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let _percepta_utils = require("@percepta/utils");
|
|
3
|
+
let pino = require("pino");
|
|
4
|
+
pino = require_runtime.__toESM(pino, 1);
|
|
5
|
+
let pino_pretty = require("pino-pretty");
|
|
6
|
+
pino_pretty = require_runtime.__toESM(pino_pretty, 1);
|
|
7
|
+
//#region src/logger/createPinoInstance.ts
|
|
8
|
+
function createPinoInstance(config) {
|
|
9
|
+
const nodeEnv = config.NODE_ENV;
|
|
10
|
+
const level = config.LOG_LEVEL;
|
|
11
|
+
switch (nodeEnv) {
|
|
12
|
+
case "production": return (0, pino.default)({
|
|
13
|
+
level,
|
|
14
|
+
formatters: { level: (label) => ({ level: label }) }
|
|
15
|
+
});
|
|
16
|
+
case "development":
|
|
17
|
+
case "test": return (0, pino.default)({ level }, (0, pino_pretty.default)({
|
|
18
|
+
colorize: true,
|
|
19
|
+
translateTime: "SYS:standard",
|
|
20
|
+
ignore: "pid,hostname"
|
|
21
|
+
}));
|
|
22
|
+
default: return (0, _percepta_utils.assertNever)(nodeEnv);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.createPinoInstance = createPinoInstance;
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=createPinoInstance.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.cjs","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"sourcesContent":["import { type BaseEnvConfig, assertNever } from \"@percepta/utils\";\nimport pino, { type Logger } from \"pino\";\nimport pretty from \"pino-pretty\";\n\nexport function createPinoInstance(config: BaseEnvConfig): Logger {\n const nodeEnv = config.NODE_ENV;\n const level = config.LOG_LEVEL;\n\n switch (nodeEnv) {\n case \"production\":\n return pino({\n level,\n formatters: {\n level: (label) => ({ level: label }),\n },\n });\n case \"development\":\n case \"test\":\n // Development: use pino-pretty synchronously (avoids worker thread issues with Next.js/Turbopack)\n return pino(\n { level },\n pretty({\n colorize: true,\n translateTime: \"SYS:standard\",\n ignore: \"pid,hostname\",\n }),\n );\n default:\n return assertNever(nodeEnv);\n }\n}\n"],"mappings":";;;;;;;AAIA,SAAgB,mBAAmB,QAA+B;CAChE,MAAM,UAAU,OAAO;CACvB,MAAM,QAAQ,OAAO;AAErB,SAAQ,SAAR;EACE,KAAK,aACH,SAAA,GAAA,KAAA,SAAY;GACV;GACA,YAAY,EACV,QAAQ,WAAW,EAAE,OAAO,OAAO,GACpC;GACF,CAAC;EACJ,KAAK;EACL,KAAK,OAEH,SAAA,GAAA,KAAA,SACE,EAAE,OAAO,GAAA,GAAA,YAAA,SACF;GACL,UAAU;GACV,eAAe;GACf,QAAQ;GACT,CAAC,CACH;EACH,QACE,SAAA,GAAA,gBAAA,aAAmB,QAAQ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Logger } from "pino";
|
|
2
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
3
|
+
|
|
4
|
+
//#region src/logger/createPinoInstance.d.ts
|
|
5
|
+
declare function createPinoInstance(config: BaseEnvConfig): Logger;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { createPinoInstance };
|
|
8
|
+
//# sourceMappingURL=createPinoInstance.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.d.cts","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"mappings":";;;;iBAIgB,kBAAA,CAAmB,MAAA,EAAQ,aAAA,GAAgB,MAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
2
|
+
import { Logger } from "pino";
|
|
3
|
+
|
|
4
|
+
//#region src/logger/createPinoInstance.d.ts
|
|
5
|
+
declare function createPinoInstance(config: BaseEnvConfig): Logger;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { createPinoInstance };
|
|
8
|
+
//# sourceMappingURL=createPinoInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.d.ts","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"mappings":";;;;iBAIgB,kBAAA,CAAmB,MAAA,EAAQ,aAAA,GAAgB,MAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { assertNever } from "@percepta/utils";
|
|
2
|
+
import pino from "pino";
|
|
3
|
+
import pretty from "pino-pretty";
|
|
4
|
+
//#region src/logger/createPinoInstance.ts
|
|
5
|
+
function createPinoInstance(config) {
|
|
6
|
+
const nodeEnv = config.NODE_ENV;
|
|
7
|
+
const level = config.LOG_LEVEL;
|
|
8
|
+
switch (nodeEnv) {
|
|
9
|
+
case "production": return pino({
|
|
10
|
+
level,
|
|
11
|
+
formatters: { level: (label) => ({ level: label }) }
|
|
12
|
+
});
|
|
13
|
+
case "development":
|
|
14
|
+
case "test": return pino({ level }, pretty({
|
|
15
|
+
colorize: true,
|
|
16
|
+
translateTime: "SYS:standard",
|
|
17
|
+
ignore: "pid,hostname"
|
|
18
|
+
}));
|
|
19
|
+
default: return assertNever(nodeEnv);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { createPinoInstance };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=createPinoInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPinoInstance.js","names":[],"sources":["../../src/logger/createPinoInstance.ts"],"sourcesContent":["import { type BaseEnvConfig, assertNever } from \"@percepta/utils\";\nimport pino, { type Logger } from \"pino\";\nimport pretty from \"pino-pretty\";\n\nexport function createPinoInstance(config: BaseEnvConfig): Logger {\n const nodeEnv = config.NODE_ENV;\n const level = config.LOG_LEVEL;\n\n switch (nodeEnv) {\n case \"production\":\n return pino({\n level,\n formatters: {\n level: (label) => ({ level: label }),\n },\n });\n case \"development\":\n case \"test\":\n // Development: use pino-pretty synchronously (avoids worker thread issues with Next.js/Turbopack)\n return pino(\n { level },\n pretty({\n colorize: true,\n translateTime: \"SYS:standard\",\n ignore: \"pid,hostname\",\n }),\n );\n default:\n return assertNever(nodeEnv);\n }\n}\n"],"mappings":";;;;AAIA,SAAgB,mBAAmB,QAA+B;CAChE,MAAM,UAAU,OAAO;CACvB,MAAM,QAAQ,OAAO;AAErB,SAAQ,SAAR;EACE,KAAK,aACH,QAAO,KAAK;GACV;GACA,YAAY,EACV,QAAQ,WAAW,EAAE,OAAO,OAAO,GACpC;GACF,CAAC;EACJ,KAAK;EACL,KAAK,OAEH,QAAO,KACL,EAAE,OAAO,EACT,OAAO;GACL,UAAU;GACV,eAAe;GACf,QAAQ;GACT,CAAC,CACH;EACH,QACE,QAAO,YAAY,QAAQ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/tracer/createTracerFactory.ts
|
|
2
|
+
function createTracerFactory(asyncLocalStorageFactory) {
|
|
3
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
4
|
+
return {
|
|
5
|
+
getTracer: () => asyncLocalStorage.getStore(),
|
|
6
|
+
withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.createTracerFactory = createTracerFactory;
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=createTracerFactory.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.cjs","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import { type AsyncLocalStorage } from \"node:async_hooks\";\n\nexport interface Tracer {\n traceId: string;\n}\n\nexport interface TracerFactory {\n getTracer: () => Tracer | undefined;\n withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;\n}\n\nexport function createTracerFactory(\n asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>,\n): TracerFactory {\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n return {\n getTracer: () => asyncLocalStorage.getStore(),\n withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback),\n };\n}\n"],"mappings":";AAWA,SAAgB,oBACd,0BACe;CACf,MAAM,oBAAoB,0BAA0B;AAEpD,QAAO;EACL,iBAAiB,kBAAkB,UAAU;EAC7C,aAAa,QAAQ,aAAa,kBAAkB,IAAI,QAAQ,SAAS;EAC1E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
|
|
3
|
+
//#region src/tracer/createTracerFactory.d.ts
|
|
4
|
+
interface Tracer {
|
|
5
|
+
traceId: string;
|
|
6
|
+
}
|
|
7
|
+
interface TracerFactory {
|
|
8
|
+
getTracer: () => Tracer | undefined;
|
|
9
|
+
withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;
|
|
10
|
+
}
|
|
11
|
+
declare function createTracerFactory(asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>): TracerFactory;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Tracer, TracerFactory, createTracerFactory };
|
|
14
|
+
//# sourceMappingURL=createTracerFactory.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.d.cts","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"mappings":";;;UAEiB,MAAA;EACf,OAAA;AAAA;AAAA,UAGe,aAAA;EACf,SAAA,QAAiB,MAAA;EACjB,UAAA,YAAsB,MAAA,EAAQ,MAAA,EAAQ,QAAA,QAAgB,OAAA,KAAY,OAAA;AAAA;AAAA,iBAGpD,mBAAA,CACd,wBAAA,QAAgC,iBAAA,CAAkB,MAAA,IACjD,aAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
|
|
3
|
+
//#region src/tracer/createTracerFactory.d.ts
|
|
4
|
+
interface Tracer {
|
|
5
|
+
traceId: string;
|
|
6
|
+
}
|
|
7
|
+
interface TracerFactory {
|
|
8
|
+
getTracer: () => Tracer | undefined;
|
|
9
|
+
withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;
|
|
10
|
+
}
|
|
11
|
+
declare function createTracerFactory(asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>): TracerFactory;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Tracer, TracerFactory, createTracerFactory };
|
|
14
|
+
//# sourceMappingURL=createTracerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.d.ts","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"mappings":";;;UAEiB,MAAA;EACf,OAAA;AAAA;AAAA,UAGe,aAAA;EACf,SAAA,QAAiB,MAAA;EACjB,UAAA,YAAsB,MAAA,EAAQ,MAAA,EAAQ,QAAA,QAAgB,OAAA,KAAY,OAAA;AAAA;AAAA,iBAGpD,mBAAA,CACd,wBAAA,QAAgC,iBAAA,CAAkB,MAAA,IACjD,aAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/tracer/createTracerFactory.ts
|
|
2
|
+
function createTracerFactory(asyncLocalStorageFactory) {
|
|
3
|
+
const asyncLocalStorage = asyncLocalStorageFactory();
|
|
4
|
+
return {
|
|
5
|
+
getTracer: () => asyncLocalStorage.getStore(),
|
|
6
|
+
withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback)
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { createTracerFactory };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=createTracerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTracerFactory.js","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import { type AsyncLocalStorage } from \"node:async_hooks\";\n\nexport interface Tracer {\n traceId: string;\n}\n\nexport interface TracerFactory {\n getTracer: () => Tracer | undefined;\n withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;\n}\n\nexport function createTracerFactory(\n asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>,\n): TracerFactory {\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n return {\n getTracer: () => asyncLocalStorage.getStore(),\n withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback),\n };\n}\n"],"mappings":";AAWA,SAAgB,oBACd,0BACe;CACf,MAAM,oBAAoB,0BAA0B;AAEpD,QAAO;EACL,iBAAiB,kBAAkB,UAAU;EAC7C,aAAa,QAAQ,aAAa,kBAAkB,IAAI,QAAQ,SAAS;EAC1E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/utils/redactValueForGrafana.ts
|
|
2
|
+
function redactValueForGrafana(value) {
|
|
3
|
+
return `<redact>${JSON.stringify(value)}</redact>`;
|
|
4
|
+
}
|
|
5
|
+
//#endregion
|
|
6
|
+
exports.redactValueForGrafana = redactValueForGrafana;
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=redactValueForGrafana.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactValueForGrafana.cjs","names":[],"sources":["../../src/utils/redactValueForGrafana.ts"],"sourcesContent":["export function redactValueForGrafana(value: unknown): string {\n return `<redact>${JSON.stringify(value)}</redact>`;\n}\n"],"mappings":";AAAA,SAAgB,sBAAsB,OAAwB;AAC5D,QAAO,WAAW,KAAK,UAAU,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactValueForGrafana.d.cts","names":[],"sources":["../../src/utils/redactValueForGrafana.ts"],"mappings":";iBAAgB,qBAAA,CAAsB,KAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactValueForGrafana.d.ts","names":[],"sources":["../../src/utils/redactValueForGrafana.ts"],"mappings":";iBAAgB,qBAAA,CAAsB,KAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactValueForGrafana.js","names":[],"sources":["../../src/utils/redactValueForGrafana.ts"],"sourcesContent":["export function redactValueForGrafana(value: unknown): string {\n return `<redact>${JSON.stringify(value)}</redact>`;\n}\n"],"mappings":";AAAA,SAAgB,sBAAsB,OAAwB;AAC5D,QAAO,WAAW,KAAK,UAAU,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,36 +1,46 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@percepta/logger",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"private": false,
|
|
5
|
-
"publishConfig": {
|
|
6
|
-
"access": "public"
|
|
7
|
-
},
|
|
8
5
|
"description": "Mosaic logging with redaction",
|
|
9
|
-
"sideEffects": false,
|
|
10
|
-
"main": "dist/cjs/index.js",
|
|
11
|
-
"module": "dist/esnext/index.js",
|
|
12
|
-
"types": "dist/esnext/index.d.ts",
|
|
13
6
|
"files": [
|
|
14
|
-
"dist
|
|
7
|
+
"dist"
|
|
15
8
|
],
|
|
9
|
+
"type": "module",
|
|
10
|
+
"sideEffects": false,
|
|
11
|
+
"main": "./dist/index.cjs",
|
|
12
|
+
"module": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"require": {
|
|
21
|
+
"types": "./dist/index.d.cts",
|
|
22
|
+
"default": "./dist/index.cjs"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"./package.json": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
16
30
|
"dependencies": {
|
|
17
31
|
"lodash-es": "^4.17.21",
|
|
18
32
|
"pino": "^10.1.0",
|
|
19
33
|
"pino-pretty": "^13.1.3",
|
|
20
|
-
"@percepta/utils": "0.1.
|
|
34
|
+
"@percepta/utils": "0.1.11"
|
|
21
35
|
},
|
|
22
36
|
"devDependencies": {
|
|
23
37
|
"@types/lodash-es": "^4.17.12",
|
|
24
|
-
"@percepta/build": "0.
|
|
25
|
-
},
|
|
26
|
-
"lint-staged": {
|
|
27
|
-
"**/*.ts": "eslint --fix"
|
|
38
|
+
"@percepta/build": "0.5.0"
|
|
28
39
|
},
|
|
29
40
|
"scripts": {
|
|
30
|
-
"build": "
|
|
31
|
-
"dev": "
|
|
41
|
+
"build": "tsdown",
|
|
42
|
+
"dev": "tsdown --watch",
|
|
32
43
|
"clean": "rimraf dist",
|
|
33
|
-
"
|
|
34
|
-
"lint:fix": "eslint . --fix"
|
|
44
|
+
"typecheck": "tsc --noEmit"
|
|
35
45
|
}
|
|
36
46
|
}
|
package/dist/cjs/index.d.ts
DELETED
package/dist/cjs/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC"}
|