@contember/logger 1.4.0-rc.8 → 2.0.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/index.cjs +23 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +23 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/formatting.cjs +65 -0
- package/dist/development/src/formatting.cjs.map +1 -0
- package/dist/development/src/formatting.js +65 -0
- package/dist/development/src/formatting.js.map +1 -0
- package/dist/development/src/handlers/FingerCrossedLoggerHandler.cjs +68 -0
- package/dist/development/src/handlers/FingerCrossedLoggerHandler.cjs.map +1 -0
- package/dist/development/src/handlers/FingerCrossedLoggerHandler.js +68 -0
- package/dist/development/src/handlers/FingerCrossedLoggerHandler.js.map +1 -0
- package/dist/development/src/handlers/JsonStreamLoggerHandler.cjs +32 -0
- package/dist/development/src/handlers/JsonStreamLoggerHandler.cjs.map +1 -0
- package/dist/development/src/handlers/JsonStreamLoggerHandler.js +32 -0
- package/dist/development/src/handlers/JsonStreamLoggerHandler.js.map +1 -0
- package/dist/development/src/handlers/LoggerHandlerList.cjs +25 -0
- package/dist/development/src/handlers/LoggerHandlerList.cjs.map +1 -0
- package/dist/development/src/handlers/LoggerHandlerList.js +25 -0
- package/dist/development/src/handlers/LoggerHandlerList.js.map +1 -0
- package/dist/development/src/handlers/NullLoggerHandler.cjs +13 -0
- package/dist/development/src/handlers/NullLoggerHandler.cjs.map +1 -0
- package/dist/development/src/handlers/NullLoggerHandler.js +13 -0
- package/dist/development/src/handlers/NullLoggerHandler.js.map +1 -0
- package/dist/development/src/handlers/PrettyPrintLoggerHandler.cjs +79 -0
- package/dist/development/src/handlers/PrettyPrintLoggerHandler.cjs.map +1 -0
- package/dist/development/src/handlers/PrettyPrintLoggerHandler.js +79 -0
- package/dist/development/src/handlers/PrettyPrintLoggerHandler.js.map +1 -0
- package/dist/development/src/handlers/TestLoggerHandler.cjs +24 -0
- package/dist/development/src/handlers/TestLoggerHandler.cjs.map +1 -0
- package/dist/development/src/handlers/TestLoggerHandler.js +24 -0
- package/dist/development/src/handlers/TestLoggerHandler.js.map +1 -0
- package/dist/development/src/impl.cjs +109 -0
- package/dist/development/src/impl.cjs.map +1 -0
- package/dist/development/src/impl.js +109 -0
- package/dist/development/src/impl.js.map +1 -0
- package/dist/development/src/levels.cjs +11 -0
- package/dist/development/src/levels.cjs.map +1 -0
- package/dist/development/src/levels.js +11 -0
- package/dist/development/src/levels.js.map +1 -0
- package/dist/development/src/proxy.cjs +54 -0
- package/dist/development/src/proxy.cjs.map +1 -0
- package/dist/development/src/proxy.js +54 -0
- package/dist/development/src/proxy.js.map +1 -0
- package/dist/production/index.cjs +23 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +23 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/formatting.cjs +65 -0
- package/dist/production/src/formatting.cjs.map +1 -0
- package/dist/production/src/formatting.js +65 -0
- package/dist/production/src/formatting.js.map +1 -0
- package/dist/production/src/handlers/FingerCrossedLoggerHandler.cjs +68 -0
- package/dist/production/src/handlers/FingerCrossedLoggerHandler.cjs.map +1 -0
- package/dist/production/src/handlers/FingerCrossedLoggerHandler.js +68 -0
- package/dist/production/src/handlers/FingerCrossedLoggerHandler.js.map +1 -0
- package/dist/production/src/handlers/JsonStreamLoggerHandler.cjs +32 -0
- package/dist/production/src/handlers/JsonStreamLoggerHandler.cjs.map +1 -0
- package/dist/production/src/handlers/JsonStreamLoggerHandler.js +32 -0
- package/dist/production/src/handlers/JsonStreamLoggerHandler.js.map +1 -0
- package/dist/production/src/handlers/LoggerHandlerList.cjs +25 -0
- package/dist/production/src/handlers/LoggerHandlerList.cjs.map +1 -0
- package/dist/production/src/handlers/LoggerHandlerList.js +25 -0
- package/dist/production/src/handlers/LoggerHandlerList.js.map +1 -0
- package/dist/production/src/handlers/NullLoggerHandler.cjs +13 -0
- package/dist/production/src/handlers/NullLoggerHandler.cjs.map +1 -0
- package/dist/production/src/handlers/NullLoggerHandler.js +13 -0
- package/dist/production/src/handlers/NullLoggerHandler.js.map +1 -0
- package/dist/production/src/handlers/PrettyPrintLoggerHandler.cjs +79 -0
- package/dist/production/src/handlers/PrettyPrintLoggerHandler.cjs.map +1 -0
- package/dist/production/src/handlers/PrettyPrintLoggerHandler.js +79 -0
- package/dist/production/src/handlers/PrettyPrintLoggerHandler.js.map +1 -0
- package/dist/production/src/handlers/TestLoggerHandler.cjs +24 -0
- package/dist/production/src/handlers/TestLoggerHandler.cjs.map +1 -0
- package/dist/production/src/handlers/TestLoggerHandler.js +24 -0
- package/dist/production/src/handlers/TestLoggerHandler.js.map +1 -0
- package/dist/production/src/impl.cjs +109 -0
- package/dist/production/src/impl.cjs.map +1 -0
- package/dist/production/src/impl.js +109 -0
- package/dist/production/src/impl.js.map +1 -0
- package/dist/production/src/levels.cjs +11 -0
- package/dist/production/src/levels.cjs.map +1 -0
- package/dist/production/src/levels.js +11 -0
- package/dist/production/src/levels.js.map +1 -0
- package/dist/production/src/proxy.cjs +54 -0
- package/dist/production/src/proxy.cjs.map +1 -0
- package/dist/production/src/proxy.js +54 -0
- package/dist/production/src/proxy.js.map +1 -0
- package/dist/{src → types}/handlers/JsonStreamLoggerHandler.d.ts +0 -1
- package/dist/types/handlers/JsonStreamLoggerHandler.d.ts.map +1 -0
- package/dist/{src → types}/handlers/PrettyPrintLoggerHandler.d.ts +0 -1
- package/dist/types/handlers/PrettyPrintLoggerHandler.d.ts.map +1 -0
- package/dist/{src → types}/proxy.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +21 -9
- package/src/tsconfig.json +1 -1
- package/dist/src/formatting.js +0 -68
- package/dist/src/formatting.js.map +0 -1
- package/dist/src/handlers/FingerCrossedLoggerHandler.js +0 -69
- package/dist/src/handlers/FingerCrossedLoggerHandler.js.map +0 -1
- package/dist/src/handlers/JsonStreamLoggerHandler.d.ts.map +0 -1
- package/dist/src/handlers/JsonStreamLoggerHandler.js +0 -28
- package/dist/src/handlers/JsonStreamLoggerHandler.js.map +0 -1
- package/dist/src/handlers/LoggerHandlerList.js +0 -26
- package/dist/src/handlers/LoggerHandlerList.js.map +0 -1
- package/dist/src/handlers/NullLoggerHandler.js +0 -14
- package/dist/src/handlers/NullLoggerHandler.js.map +0 -1
- package/dist/src/handlers/PrettyPrintLoggerHandler.d.ts.map +0 -1
- package/dist/src/handlers/PrettyPrintLoggerHandler.js +0 -84
- package/dist/src/handlers/PrettyPrintLoggerHandler.js.map +0 -1
- package/dist/src/handlers/TestLoggerHandler.js +0 -23
- package/dist/src/handlers/TestLoggerHandler.js.map +0 -1
- package/dist/src/impl.js +0 -111
- package/dist/src/impl.js.map +0 -1
- package/dist/src/index.js +0 -29
- package/dist/src/index.js.map +0 -1
- package/dist/src/levels.js +0 -11
- package/dist/src/levels.js.map +0 -1
- package/dist/src/proxy.js +0 -54
- package/dist/src/proxy.js.map +0 -1
- package/dist/src/tsconfig.tsbuildinfo +0 -1
- package/dist/src/types.js +0 -3
- package/dist/src/types.js.map +0 -1
- /package/dist/{src → types}/formatting.d.ts +0 -0
- /package/dist/{src → types}/formatting.d.ts.map +0 -0
- /package/dist/{src → types}/handlers/FingerCrossedLoggerHandler.d.ts +0 -0
- /package/dist/{src → types}/handlers/FingerCrossedLoggerHandler.d.ts.map +0 -0
- /package/dist/{src → types}/handlers/LoggerHandlerList.d.ts +0 -0
- /package/dist/{src → types}/handlers/LoggerHandlerList.d.ts.map +0 -0
- /package/dist/{src → types}/handlers/NullLoggerHandler.d.ts +0 -0
- /package/dist/{src → types}/handlers/NullLoggerHandler.d.ts.map +0 -0
- /package/dist/{src → types}/handlers/TestLoggerHandler.d.ts +0 -0
- /package/dist/{src → types}/handlers/TestLoggerHandler.d.ts.map +0 -0
- /package/dist/{src → types}/impl.d.ts +0 -0
- /package/dist/{src → types}/impl.d.ts.map +0 -0
- /package/dist/{src → types}/index.d.ts +0 -0
- /package/dist/{src → types}/index.d.ts.map +0 -0
- /package/dist/{src → types}/levels.d.ts +0 -0
- /package/dist/{src → types}/levels.d.ts.map +0 -0
- /package/dist/{src → types}/proxy.d.ts +0 -0
- /package/dist/{src → types}/types.d.ts +0 -0
- /package/dist/{src → types}/types.d.ts.map +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { inspect } from "node:util";
|
|
3
|
+
import { LogLevels } from "../levels.js";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
7
|
+
class PrettyPrintLoggerHandler {
|
|
8
|
+
constructor(stream, options = {}) {
|
|
9
|
+
this.stream = stream;
|
|
10
|
+
__publicField(this, "options");
|
|
11
|
+
this.options = {
|
|
12
|
+
logLevel: LogLevels.debug,
|
|
13
|
+
formatters: {},
|
|
14
|
+
...options
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
getMinLevel() {
|
|
18
|
+
return this.options.logLevel.value;
|
|
19
|
+
}
|
|
20
|
+
handle(entry) {
|
|
21
|
+
if (entry.level.value < this.options.logLevel.value) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const startLength = entry.isoTime.length + 7;
|
|
25
|
+
this.stream.write(`${this.formatTime(entry.isoTime)} ${this.formatLevel(entry.level)} `);
|
|
26
|
+
const indent = " ".repeat(startLength);
|
|
27
|
+
this.stream.write(`${entry.message.replaceAll(/\n/g, "\n" + indent)}
|
|
28
|
+
`);
|
|
29
|
+
const allAttributes = { ...entry.loggerAttributes, ...entry.ownAttributes };
|
|
30
|
+
for (const key in allAttributes) {
|
|
31
|
+
const value = allAttributes[key];
|
|
32
|
+
if (typeof key !== "string" || value === void 0) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const formattedValue = inspect(value, {
|
|
36
|
+
depth: 5
|
|
37
|
+
}).replaceAll(/\n/g, "\n" + indent);
|
|
38
|
+
const formattedValue2 = this.options.formatters[key] ? this.options.formatters[key]({ value, key, formattedValue, chalk, attributes: allAttributes }) : formattedValue;
|
|
39
|
+
if (formattedValue2 === void 0) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (typeof formattedValue2 === "string") {
|
|
43
|
+
this.stream.write(indent + chalk.dim(`${key}: ${formattedValue2}
|
|
44
|
+
`));
|
|
45
|
+
} else {
|
|
46
|
+
this.stream.write(indent + formattedValue2.line + "\n");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (entry.error) {
|
|
50
|
+
this.stream.write(inspect(entry.error).replaceAll(/^/gm, indent) + "\n");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
formatTime(date) {
|
|
54
|
+
const result = date.match(/^([0-9-]+)T([0-9:]+)\.(\d+)Z$/);
|
|
55
|
+
if (!result) {
|
|
56
|
+
return date;
|
|
57
|
+
}
|
|
58
|
+
return chalk.dim(result[1] + "T") + result[2] + chalk.dim("." + result[3] + "Z");
|
|
59
|
+
}
|
|
60
|
+
formatLevel(level) {
|
|
61
|
+
const levelText = `${level.name}${" ".repeat(5 - level.name.length)}`;
|
|
62
|
+
let color = chalk;
|
|
63
|
+
if (level.value <= 10) {
|
|
64
|
+
color = color.dim;
|
|
65
|
+
} else if (level.value <= 20) ;
|
|
66
|
+
else if (level.value <= 30) {
|
|
67
|
+
color = color.yellowBright;
|
|
68
|
+
} else {
|
|
69
|
+
color = color.redBright;
|
|
70
|
+
}
|
|
71
|
+
return color(levelText);
|
|
72
|
+
}
|
|
73
|
+
close() {
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
PrettyPrintLoggerHandler
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=PrettyPrintLoggerHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrettyPrintLoggerHandler.js","sources":["../../../../../packages/logger/src/handlers/PrettyPrintLoggerHandler.ts"],"sourcesContent":["import chalk from 'chalk'\nimport { inspect } from 'node:util'\nimport { LogEntry, LoggerAttributes, LoggerHandler, LogLevel } from '../types'\nimport { LogLevels } from '../levels'\n\nexport interface PrettyPrintLoggerHandlerOptions {\n\tlogLevel: LogLevel\n\tformatters: {\n\t\t[key: string]: (args: { value: any; formattedValue: string; key: string; chalk: typeof chalk; attributes: LoggerAttributes }) => undefined | string | { line: string }\n\t}\n}\n\nexport class PrettyPrintLoggerHandler implements LoggerHandler {\n\tprivate readonly options: PrettyPrintLoggerHandlerOptions\n\n\tconstructor(\n\t\tprivate readonly stream: NodeJS.WritableStream,\n\t\toptions: Partial<PrettyPrintLoggerHandlerOptions> = {},\n\t) {\n\t\tthis.options = {\n\t\t\tlogLevel: LogLevels.debug,\n\t\t\tformatters: {},\n\t\t\t...options,\n\t\t}\n\t}\n\n\tgetMinLevel(): number {\n\t\treturn this.options.logLevel.value\n\t}\n\n\thandle(entry: LogEntry) {\n\t\tif (entry.level.value < this.options.logLevel.value) {\n\t\t\treturn\n\t\t}\n\t\tconst startLength = entry.isoTime.length + 7\n\n\t\tthis.stream.write(`${this.formatTime(entry.isoTime)} ${this.formatLevel(entry.level)} `)\n\n\t\tconst indent = ' '.repeat(startLength)\n\t\tthis.stream.write(`${entry.message.replaceAll(/\\n/g, '\\n' + indent)}\\n`)\n\t\tconst allAttributes = { ...entry.loggerAttributes, ...entry.ownAttributes }\n\t\tfor (const key in allAttributes) {\n\t\t\tconst value = allAttributes[key]\n\t\t\tif (typeof key !== 'string' || value === undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst formattedValue = inspect(value, {\n\t\t\t\tdepth: 5,\n\t\t\t}).replaceAll(/\\n/g, '\\n' + indent)\n\t\t\tconst formattedValue2 = this.options.formatters[key]\n\t\t\t\t? (this.options.formatters[key]({ value, key, formattedValue, chalk, attributes: allAttributes }))\n\t\t\t\t: formattedValue\n\t\t\tif (formattedValue2 === undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (typeof formattedValue2 === 'string') {\n\t\t\t\tthis.stream.write(indent + chalk.dim(`${key}: ${formattedValue2}\\n`))\n\t\t\t} else {\n\t\t\t\tthis.stream.write(indent + formattedValue2.line + '\\n')\n\t\t\t}\n\t\t}\n\t\tif (entry.error) {\n\t\t\tthis.stream.write(inspect(entry.error).replaceAll(/^/gm, indent) + '\\n')\n\t\t}\n\t}\n\n\n\tprivate formatTime(date: string): string {\n\t\tconst result = date.match(/^([0-9-]+)T([0-9:]+)\\.(\\d+)Z$/)\n\t\tif (!result) {\n\t\t\treturn date\n\t\t}\n\t\treturn chalk.dim(result[1] + 'T') + result[2] + chalk.dim('.' + result[3] + 'Z')\n\t}\n\n\tprivate formatLevel(level: LogLevel): string {\n\t\tconst levelText = `${level.name}${' '.repeat(5 - level.name.length)}`\n\t\tlet color: chalk.Chalk = chalk\n\t\tif (level.value <= 10) {\n\t\t\tcolor = color.dim\n\t\t} else if (level.value <= 20) {\n\t\t\t// nothhing\n\t\t} else if (level.value <= 30) {\n\t\t\tcolor = color.yellowBright\n\t\t} else {\n\t\t\tcolor = color.redBright\n\t\t}\n\t\treturn color(levelText)\n\t}\n\n\tclose(): void {\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAYO,MAAM,yBAAkD;AAAA,EAG9D,YACkB,QACjB,UAAoD,IACnD;AAFgB,SAAA,SAAA;AAHD,kBAAA,MAAA,SAAA;AAMhB,SAAK,UAAU;AAAA,MACd,UAAU,UAAU;AAAA,MACpB,YAAY,CAAC;AAAA,MACb,GAAG;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,cAAsB;AACd,WAAA,KAAK,QAAQ,SAAS;AAAA,EAC9B;AAAA,EAEA,OAAO,OAAiB;AACvB,QAAI,MAAM,MAAM,QAAQ,KAAK,QAAQ,SAAS,OAAO;AACpD;AAAA,IACD;AACM,UAAA,cAAc,MAAM,QAAQ,SAAS;AAE3C,SAAK,OAAO,MAAM,GAAG,KAAK,WAAW,MAAM,OAAO,CAAC,IAAI,KAAK,YAAY,MAAM,KAAK,CAAC,GAAG;AAEjF,UAAA,SAAS,IAAI,OAAO,WAAW;AAChC,SAAA,OAAO,MAAM,GAAG,MAAM,QAAQ,WAAW,OAAO,OAAO,MAAM,CAAC;AAAA,CAAI;AACvE,UAAM,gBAAgB,EAAE,GAAG,MAAM,kBAAkB,GAAG,MAAM;AAC5D,eAAW,OAAO,eAAe;AAC1B,YAAA,QAAQ,cAAc,GAAG;AAC/B,UAAI,OAAO,QAAQ,YAAY,UAAU,QAAW;AACnD;AAAA,MACD;AACM,YAAA,iBAAiB,QAAQ,OAAO;AAAA,QACrC,OAAO;AAAA,MACP,CAAA,EAAE,WAAW,OAAO,OAAO,MAAM;AAClC,YAAM,kBAAkB,KAAK,QAAQ,WAAW,GAAG,IAC/C,KAAK,QAAQ,WAAW,GAAG,EAAE,EAAE,OAAO,KAAK,gBAAgB,OAAO,YAAY,eAAe,IAC9F;AACH,UAAI,oBAAoB,QAAW;AAClC;AAAA,MACD;AACI,UAAA,OAAO,oBAAoB,UAAU;AACnC,aAAA,OAAO,MAAM,SAAS,MAAM,IAAI,GAAG,GAAG,KAAK,eAAe;AAAA,CAAI,CAAC;AAAA,MAAA,OAC9D;AACN,aAAK,OAAO,MAAM,SAAS,gBAAgB,OAAO,IAAI;AAAA,MACvD;AAAA,IACD;AACA,QAAI,MAAM,OAAO;AACX,WAAA,OAAO,MAAM,QAAQ,MAAM,KAAK,EAAE,WAAW,OAAO,MAAM,IAAI,IAAI;AAAA,IACxE;AAAA,EACD;AAAA,EAGQ,WAAW,MAAsB;AAClC,UAAA,SAAS,KAAK,MAAM,+BAA+B;AACzD,QAAI,CAAC,QAAQ;AACL,aAAA;AAAA,IACR;AACA,WAAO,MAAM,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,MAAM,IAAI,MAAM,OAAO,CAAC,IAAI,GAAG;AAAA,EAChF;AAAA,EAEQ,YAAY,OAAyB;AACtC,UAAA,YAAY,GAAG,MAAM,IAAI,GAAG,IAAI,OAAO,IAAI,MAAM,KAAK,MAAM,CAAC;AACnE,QAAI,QAAqB;AACrB,QAAA,MAAM,SAAS,IAAI;AACtB,cAAQ,MAAM;AAAA,IAAA,WACJ,MAAM,SAAS,GAAI;AAAA,aAEnB,MAAM,SAAS,IAAI;AAC7B,cAAQ,MAAM;AAAA,IAAA,OACR;AACN,cAAQ,MAAM;AAAA,IACf;AACA,WAAO,MAAM,SAAS;AAAA,EACvB;AAAA,EAEA,QAAc;AAAA,EACd;AACD;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
6
|
+
class TestLoggerHandler {
|
|
7
|
+
constructor(print = false) {
|
|
8
|
+
this.print = print;
|
|
9
|
+
__publicField(this, "messages", []);
|
|
10
|
+
}
|
|
11
|
+
close() {
|
|
12
|
+
}
|
|
13
|
+
getMinLevel() {
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
handle(logEntry) {
|
|
17
|
+
this.messages.push(logEntry);
|
|
18
|
+
if (this.print) {
|
|
19
|
+
console.error(logEntry.message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.TestLoggerHandler = TestLoggerHandler;
|
|
24
|
+
//# sourceMappingURL=TestLoggerHandler.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestLoggerHandler.cjs","sources":["../../../../../packages/logger/src/handlers/TestLoggerHandler.ts"],"sourcesContent":["import { LogEntry, LoggerHandler } from '../types'\n\nexport class TestLoggerHandler implements LoggerHandler {\n\tpublic readonly messages: LogEntry[] = []\n\n\n\tconstructor(\n\t\tprivate print = false,\n\t) {\n\t}\n\n\tclose(): void {\n\t}\n\n\tgetMinLevel(): number {\n\t\treturn 0\n\t}\n\n\thandle(logEntry: LogEntry): void {\n\t\tthis.messages.push(logEntry)\n\t\tif (this.print) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(logEntry.message)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;AAEO,MAAM,kBAA2C;AAAA,EAIvD,YACS,QAAQ,OACf;AADO,SAAA,QAAA;AAJT,kBAAA,MAAgB,YAAuB,CAAA,CAAC;AAAA,EAMxC;AAAA,EAEA,QAAc;AAAA,EACd;AAAA,EAEA,cAAsB;AACd,WAAA;AAAA,EACR;AAAA,EAEA,OAAO,UAA0B;AAC3B,SAAA,SAAS,KAAK,QAAQ;AAC3B,QAAI,KAAK,OAAO;AAEP,cAAA,MAAM,SAAS,OAAO;AAAA,IAC/B;AAAA,EACD;AACD;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
4
|
+
class TestLoggerHandler {
|
|
5
|
+
constructor(print = false) {
|
|
6
|
+
this.print = print;
|
|
7
|
+
__publicField(this, "messages", []);
|
|
8
|
+
}
|
|
9
|
+
close() {
|
|
10
|
+
}
|
|
11
|
+
getMinLevel() {
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
handle(logEntry) {
|
|
15
|
+
this.messages.push(logEntry);
|
|
16
|
+
if (this.print) {
|
|
17
|
+
console.error(logEntry.message);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
TestLoggerHandler
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=TestLoggerHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestLoggerHandler.js","sources":["../../../../../packages/logger/src/handlers/TestLoggerHandler.ts"],"sourcesContent":["import { LogEntry, LoggerHandler } from '../types'\n\nexport class TestLoggerHandler implements LoggerHandler {\n\tpublic readonly messages: LogEntry[] = []\n\n\n\tconstructor(\n\t\tprivate print = false,\n\t) {\n\t}\n\n\tclose(): void {\n\t}\n\n\tgetMinLevel(): number {\n\t\treturn 0\n\t}\n\n\thandle(logEntry: LogEntry): void {\n\t\tthis.messages.push(logEntry)\n\t\tif (this.print) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(logEntry.message)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,kBAA2C;AAAA,EAIvD,YACS,QAAQ,OACf;AADO,SAAA,QAAA;AAJT,kBAAA,MAAgB,YAAuB,CAAA,CAAC;AAAA,EAMxC;AAAA,EAEA,QAAc;AAAA,EACd;AAAA,EAEA,cAAsB;AACd,WAAA;AAAA,EACR;AAAA,EAEA,OAAO,UAA0B;AAC3B,SAAA,SAAS,KAAK,QAAQ;AAC3B,QAAI,KAAK,OAAO;AAEP,cAAA,MAAM,SAAS,OAAO;AAAA,IAC/B;AAAA,EACD;AACD;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const levels = require("./levels.cjs");
|
|
4
|
+
const formatting = require("./formatting.cjs");
|
|
5
|
+
const LoggerHandlerList = require("./handlers/LoggerHandlerList.cjs");
|
|
6
|
+
const proxy = require("./proxy.cjs");
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
10
|
+
const createLogger = (handler, attributes = {}, options = {}) => {
|
|
11
|
+
return LoggerImpl.create(handler, attributes, options);
|
|
12
|
+
};
|
|
13
|
+
class LoggerImpl {
|
|
14
|
+
constructor(handler, ownAttributes, depth, parent, options) {
|
|
15
|
+
this.handler = handler;
|
|
16
|
+
this.ownAttributes = ownAttributes;
|
|
17
|
+
this.depth = depth;
|
|
18
|
+
this.parent = parent;
|
|
19
|
+
this.options = options;
|
|
20
|
+
__publicField(this, "attributes");
|
|
21
|
+
__publicField(this, "formattedAttributes");
|
|
22
|
+
__publicField(this, "minLevelValue");
|
|
23
|
+
__publicField(this, "handlerList");
|
|
24
|
+
this.attributes = { ...parent?.attributes, ...ownAttributes };
|
|
25
|
+
this.minLevelValue = handler.getMinLevel();
|
|
26
|
+
}
|
|
27
|
+
static create(handler, attributes = {}, options = {}) {
|
|
28
|
+
return new LoggerImpl(handler, attributes, 0, void 0, options);
|
|
29
|
+
}
|
|
30
|
+
crit(messageOrError, attributes) {
|
|
31
|
+
this.minLevelValue <= levels.LogLevels.crit.value && this.doLog(levels.LogLevels.crit, messageOrError, attributes);
|
|
32
|
+
}
|
|
33
|
+
error(messageOrError, attributes) {
|
|
34
|
+
this.minLevelValue <= levels.LogLevels.error.value && this.doLog(levels.LogLevels.error, messageOrError, attributes);
|
|
35
|
+
}
|
|
36
|
+
warn(messageOrError, attributes) {
|
|
37
|
+
this.minLevelValue <= levels.LogLevels.warn.value && this.doLog(levels.LogLevels.warn, messageOrError, attributes);
|
|
38
|
+
}
|
|
39
|
+
info(messageOrError, attributes) {
|
|
40
|
+
this.minLevelValue <= levels.LogLevels.info.value && this.doLog(levels.LogLevels.info, messageOrError, attributes);
|
|
41
|
+
}
|
|
42
|
+
debug(messageOrError, attributes) {
|
|
43
|
+
this.minLevelValue <= levels.LogLevels.debug.value && this.doLog(levels.LogLevels.debug, messageOrError, attributes);
|
|
44
|
+
}
|
|
45
|
+
log(levelName, messageOrError, attributes) {
|
|
46
|
+
const level = levels.LogLevels[levelName];
|
|
47
|
+
this.minLevelValue <= level.value && this.doLog(level, messageOrError, attributes);
|
|
48
|
+
}
|
|
49
|
+
child(attributes = {}, options = {}) {
|
|
50
|
+
const newHandler = options.handler ? options.handler(this.handler, this.options) : this.handler;
|
|
51
|
+
return new LoggerImpl(newHandler, attributes, this.depth + 1, this, { ...this.options, ...options });
|
|
52
|
+
}
|
|
53
|
+
async scope(cb, attributes = {}, options = {}) {
|
|
54
|
+
const logger = this.child(attributes, options);
|
|
55
|
+
try {
|
|
56
|
+
return await proxy.withLogger(logger, () => cb(logger));
|
|
57
|
+
} finally {
|
|
58
|
+
logger.close();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
doLog(level, errorOrMessage, { error: errorAttr, message: messageAttr, ...attributes } = {}) {
|
|
62
|
+
const error = typeof errorOrMessage !== "string" ? errorOrMessage : errorAttr;
|
|
63
|
+
const errorMessage = typeof error === "object" && error !== null && typeof error.message === "string" ? error.message : void 0;
|
|
64
|
+
const passedMessage = typeof errorOrMessage === "string" ? errorOrMessage : typeof messageAttr === "string" ? messageAttr : void 0;
|
|
65
|
+
const message = errorMessage && passedMessage ? `${passedMessage}: ${errorMessage}` : passedMessage ?? errorMessage ?? "undefined message";
|
|
66
|
+
const now = /* @__PURE__ */ new Date();
|
|
67
|
+
let formatted;
|
|
68
|
+
const entry = {
|
|
69
|
+
level,
|
|
70
|
+
error,
|
|
71
|
+
message,
|
|
72
|
+
ownAttributes: attributes,
|
|
73
|
+
time: now,
|
|
74
|
+
isoTime: now.toISOString(),
|
|
75
|
+
depth: this.depth,
|
|
76
|
+
loggerAttributes: this.attributes,
|
|
77
|
+
format: () => {
|
|
78
|
+
return formatted ?? (formatted = {
|
|
79
|
+
attributes: formatting.formatLogEntryAttributes(this.getFormattedAttributes(), entry),
|
|
80
|
+
message: formatting.stringify(entry.message),
|
|
81
|
+
error: entry.error ? `, "error": ${formatting.stringify(entry.error)}` : ""
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
this.handler.handle(entry);
|
|
86
|
+
}
|
|
87
|
+
addHandler(handler) {
|
|
88
|
+
if (!this.handlerList) {
|
|
89
|
+
this.handlerList = new LoggerHandlerList.LoggerHandlerList([this.handler]);
|
|
90
|
+
this.handler = this.handlerList;
|
|
91
|
+
}
|
|
92
|
+
this.handlerList.addHandler(handler);
|
|
93
|
+
this.minLevelValue = Math.min(this.minLevelValue, handler.getMinLevel());
|
|
94
|
+
}
|
|
95
|
+
close() {
|
|
96
|
+
this.handler.close();
|
|
97
|
+
}
|
|
98
|
+
getFormattedAttributes() {
|
|
99
|
+
if (this.formattedAttributes) {
|
|
100
|
+
return this.formattedAttributes;
|
|
101
|
+
}
|
|
102
|
+
const parentAttributes = this.parent?.getFormattedAttributes();
|
|
103
|
+
this.formattedAttributes = formatting.formatLoggerAttributes(parentAttributes, this.ownAttributes);
|
|
104
|
+
return this.formattedAttributes;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.LoggerImpl = LoggerImpl;
|
|
108
|
+
exports.createLogger = createLogger;
|
|
109
|
+
//# sourceMappingURL=impl.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impl.cjs","sources":["../../../../packages/logger/src/impl.ts"],"sourcesContent":["import {\n\tLogEntry,\n\tLogEntryFormatted,\n\tLogger,\n\tLoggerAttributes,\n\tLoggerChildOptions,\n\tLoggerHandler,\n\tLoggerOptions,\n\tLogLevel, LogLevelName,\n} from './types'\nimport { LogLevels } from './levels'\nimport { formatLogEntryAttributes, formatLoggerAttributes, FormattedAttributes, stringify } from './formatting'\nimport { LoggerHandlerList } from './handlers/LoggerHandlerList'\nimport { withLogger } from './proxy'\n\nexport const createLogger = (\n\thandler: LoggerHandler,\n\tattributes: LoggerAttributes = {},\n\toptions: LoggerOptions = {},\n): Logger => {\n\treturn LoggerImpl.create(handler, attributes, options)\n}\n\n\nexport class LoggerImpl implements Logger {\n\n\tpublic readonly attributes: LoggerAttributes\n\tprivate formattedAttributes: FormattedAttributes | undefined\n\tprivate minLevelValue: number\n\tprivate handlerList: LoggerHandlerList | undefined\n\n\tprivate constructor(\n\t\tprivate handler: LoggerHandler,\n\t\tprivate readonly ownAttributes: LoggerAttributes,\n\t\tprivate readonly depth: number,\n\t\tprivate readonly parent: LoggerImpl | undefined,\n\t\tprivate readonly options: LoggerOptions,\n\t) {\n\t\tthis.attributes = { ...parent?.attributes, ...ownAttributes }\n\t\tthis.minLevelValue = handler.getMinLevel()\n\t}\n\n\tpublic static create(\n\t\thandler: LoggerHandler,\n\t\tattributes: LoggerAttributes = {},\n\t\toptions: LoggerOptions = {},\n\t) {\n\t\treturn new LoggerImpl(handler, attributes, 0, undefined, options)\n\t}\n\n\tpublic crit(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.crit.value && this.doLog(LogLevels.crit, messageOrError, attributes)\n\t}\n\n\tpublic error(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.error.value && this.doLog(LogLevels.error, messageOrError, attributes)\n\t}\n\n\tpublic warn(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.warn.value && this.doLog(LogLevels.warn, messageOrError, attributes)\n\t}\n\n\tpublic info(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.info.value && this.doLog(LogLevels.info, messageOrError, attributes)\n\t}\n\n\tpublic debug(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.debug.value && this.doLog(LogLevels.debug, messageOrError, attributes)\n\t}\n\n\tpublic log(levelName: LogLevelName, messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tconst level = LogLevels[levelName]\n\t\tthis.minLevelValue <= level.value && this.doLog(level, messageOrError, attributes)\n\t}\n\n\tpublic child(attributes: LoggerAttributes = {}, options: Partial<LoggerChildOptions> = {}): Logger {\n\t\tconst newHandler = options.handler ? options.handler(this.handler, this.options) : this.handler\n\t\treturn new LoggerImpl(newHandler, attributes, this.depth + 1, this, { ...this.options, ...options })\n\t}\n\n\tpublic async scope<T>(cb: (logger: Logger) => Promise<T> | T, attributes: LoggerAttributes = {}, options: Partial<LoggerChildOptions> = {}): Promise<T> {\n\t\tconst logger = this.child(attributes, options)\n\t\ttry {\n\t\t\treturn await withLogger(logger, () => cb(logger))\n\t\t} finally {\n\t\t\tlogger.close()\n\t\t}\n\t}\n\n\tprivate doLog(level: LogLevel, errorOrMessage: unknown, { error: errorAttr, message: messageAttr, ...attributes }: LoggerAttributes = {}) {\n\t\tconst error: unknown | undefined = typeof errorOrMessage !== 'string' ? errorOrMessage : errorAttr\n\t\tconst errorMessage = typeof error === 'object' && error !== null && typeof (error as any).message === 'string'\n\t\t\t? (error as any).message : undefined\n\n\t\tconst passedMessage = typeof errorOrMessage === 'string'\n\t\t\t? errorOrMessage\n\t\t\t: (typeof messageAttr === 'string')\n\t\t\t\t? messageAttr\n\t\t\t\t: undefined\n\n\t\tconst message = errorMessage && passedMessage ? `${passedMessage}: ${errorMessage}` : (passedMessage ?? errorMessage ?? 'undefined message')\n\n\t\tconst now = new Date()\n\t\tlet formatted: LogEntryFormatted\n\t\tconst entry: LogEntry = {\n\t\t\tlevel,\n\t\t\terror,\n\t\t\tmessage,\n\t\t\townAttributes: attributes,\n\t\t\ttime: now,\n\t\t\tisoTime: now.toISOString(),\n\t\t\tdepth: this.depth,\n\t\t\tloggerAttributes: this.attributes,\n\t\t\tformat: () => {\n\t\t\t\treturn formatted ??= {\n\t\t\t\t\tattributes: formatLogEntryAttributes(this.getFormattedAttributes(), entry),\n\t\t\t\t\tmessage: stringify(entry.message),\n\t\t\t\t\terror: entry.error ? `, \"error\": ${stringify(entry.error)}` : '',\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t\tthis.handler.handle(entry)\n\t}\n\n\taddHandler(handler: LoggerHandler): void {\n\t\tif (!this.handlerList) {\n\t\t\tthis.handlerList = new LoggerHandlerList([this.handler])\n\t\t\tthis.handler = this.handlerList\n\t\t}\n\t\tthis.handlerList.addHandler(handler)\n\t\tthis.minLevelValue = Math.min(this.minLevelValue, handler.getMinLevel())\n\t}\n\n\tclose(): void {\n\t\tthis.handler.close()\n\t}\n\n\tprivate getFormattedAttributes(): FormattedAttributes {\n\t\tif (this.formattedAttributes) {\n\t\t\treturn this.formattedAttributes\n\t\t}\n\t\tconst parentAttributes = this.parent?.getFormattedAttributes()\n\t\tthis.formattedAttributes = formatLoggerAttributes(parentAttributes, this.ownAttributes)\n\t\treturn this.formattedAttributes\n\t}\n}\n\n\n\n"],"names":["LogLevels","withLogger","formatLogEntryAttributes","stringify","LoggerHandlerList","formatLoggerAttributes"],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { LogLevels } from "./levels.js";
|
|
2
|
+
import { formatLogEntryAttributes, stringify, formatLoggerAttributes } from "./formatting.js";
|
|
3
|
+
import { LoggerHandlerList } from "./handlers/LoggerHandlerList.js";
|
|
4
|
+
import { withLogger } from "./proxy.js";
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
8
|
+
const createLogger = (handler, attributes = {}, options = {}) => {
|
|
9
|
+
return LoggerImpl.create(handler, attributes, options);
|
|
10
|
+
};
|
|
11
|
+
class LoggerImpl {
|
|
12
|
+
constructor(handler, ownAttributes, depth, parent, options) {
|
|
13
|
+
this.handler = handler;
|
|
14
|
+
this.ownAttributes = ownAttributes;
|
|
15
|
+
this.depth = depth;
|
|
16
|
+
this.parent = parent;
|
|
17
|
+
this.options = options;
|
|
18
|
+
__publicField(this, "attributes");
|
|
19
|
+
__publicField(this, "formattedAttributes");
|
|
20
|
+
__publicField(this, "minLevelValue");
|
|
21
|
+
__publicField(this, "handlerList");
|
|
22
|
+
this.attributes = { ...parent?.attributes, ...ownAttributes };
|
|
23
|
+
this.minLevelValue = handler.getMinLevel();
|
|
24
|
+
}
|
|
25
|
+
static create(handler, attributes = {}, options = {}) {
|
|
26
|
+
return new LoggerImpl(handler, attributes, 0, void 0, options);
|
|
27
|
+
}
|
|
28
|
+
crit(messageOrError, attributes) {
|
|
29
|
+
this.minLevelValue <= LogLevels.crit.value && this.doLog(LogLevels.crit, messageOrError, attributes);
|
|
30
|
+
}
|
|
31
|
+
error(messageOrError, attributes) {
|
|
32
|
+
this.minLevelValue <= LogLevels.error.value && this.doLog(LogLevels.error, messageOrError, attributes);
|
|
33
|
+
}
|
|
34
|
+
warn(messageOrError, attributes) {
|
|
35
|
+
this.minLevelValue <= LogLevels.warn.value && this.doLog(LogLevels.warn, messageOrError, attributes);
|
|
36
|
+
}
|
|
37
|
+
info(messageOrError, attributes) {
|
|
38
|
+
this.minLevelValue <= LogLevels.info.value && this.doLog(LogLevels.info, messageOrError, attributes);
|
|
39
|
+
}
|
|
40
|
+
debug(messageOrError, attributes) {
|
|
41
|
+
this.minLevelValue <= LogLevels.debug.value && this.doLog(LogLevels.debug, messageOrError, attributes);
|
|
42
|
+
}
|
|
43
|
+
log(levelName, messageOrError, attributes) {
|
|
44
|
+
const level = LogLevels[levelName];
|
|
45
|
+
this.minLevelValue <= level.value && this.doLog(level, messageOrError, attributes);
|
|
46
|
+
}
|
|
47
|
+
child(attributes = {}, options = {}) {
|
|
48
|
+
const newHandler = options.handler ? options.handler(this.handler, this.options) : this.handler;
|
|
49
|
+
return new LoggerImpl(newHandler, attributes, this.depth + 1, this, { ...this.options, ...options });
|
|
50
|
+
}
|
|
51
|
+
async scope(cb, attributes = {}, options = {}) {
|
|
52
|
+
const logger = this.child(attributes, options);
|
|
53
|
+
try {
|
|
54
|
+
return await withLogger(logger, () => cb(logger));
|
|
55
|
+
} finally {
|
|
56
|
+
logger.close();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
doLog(level, errorOrMessage, { error: errorAttr, message: messageAttr, ...attributes } = {}) {
|
|
60
|
+
const error = typeof errorOrMessage !== "string" ? errorOrMessage : errorAttr;
|
|
61
|
+
const errorMessage = typeof error === "object" && error !== null && typeof error.message === "string" ? error.message : void 0;
|
|
62
|
+
const passedMessage = typeof errorOrMessage === "string" ? errorOrMessage : typeof messageAttr === "string" ? messageAttr : void 0;
|
|
63
|
+
const message = errorMessage && passedMessage ? `${passedMessage}: ${errorMessage}` : passedMessage ?? errorMessage ?? "undefined message";
|
|
64
|
+
const now = /* @__PURE__ */ new Date();
|
|
65
|
+
let formatted;
|
|
66
|
+
const entry = {
|
|
67
|
+
level,
|
|
68
|
+
error,
|
|
69
|
+
message,
|
|
70
|
+
ownAttributes: attributes,
|
|
71
|
+
time: now,
|
|
72
|
+
isoTime: now.toISOString(),
|
|
73
|
+
depth: this.depth,
|
|
74
|
+
loggerAttributes: this.attributes,
|
|
75
|
+
format: () => {
|
|
76
|
+
return formatted ?? (formatted = {
|
|
77
|
+
attributes: formatLogEntryAttributes(this.getFormattedAttributes(), entry),
|
|
78
|
+
message: stringify(entry.message),
|
|
79
|
+
error: entry.error ? `, "error": ${stringify(entry.error)}` : ""
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
this.handler.handle(entry);
|
|
84
|
+
}
|
|
85
|
+
addHandler(handler) {
|
|
86
|
+
if (!this.handlerList) {
|
|
87
|
+
this.handlerList = new LoggerHandlerList([this.handler]);
|
|
88
|
+
this.handler = this.handlerList;
|
|
89
|
+
}
|
|
90
|
+
this.handlerList.addHandler(handler);
|
|
91
|
+
this.minLevelValue = Math.min(this.minLevelValue, handler.getMinLevel());
|
|
92
|
+
}
|
|
93
|
+
close() {
|
|
94
|
+
this.handler.close();
|
|
95
|
+
}
|
|
96
|
+
getFormattedAttributes() {
|
|
97
|
+
if (this.formattedAttributes) {
|
|
98
|
+
return this.formattedAttributes;
|
|
99
|
+
}
|
|
100
|
+
const parentAttributes = this.parent?.getFormattedAttributes();
|
|
101
|
+
this.formattedAttributes = formatLoggerAttributes(parentAttributes, this.ownAttributes);
|
|
102
|
+
return this.formattedAttributes;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
LoggerImpl,
|
|
107
|
+
createLogger
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impl.js","sources":["../../../../packages/logger/src/impl.ts"],"sourcesContent":["import {\n\tLogEntry,\n\tLogEntryFormatted,\n\tLogger,\n\tLoggerAttributes,\n\tLoggerChildOptions,\n\tLoggerHandler,\n\tLoggerOptions,\n\tLogLevel, LogLevelName,\n} from './types'\nimport { LogLevels } from './levels'\nimport { formatLogEntryAttributes, formatLoggerAttributes, FormattedAttributes, stringify } from './formatting'\nimport { LoggerHandlerList } from './handlers/LoggerHandlerList'\nimport { withLogger } from './proxy'\n\nexport const createLogger = (\n\thandler: LoggerHandler,\n\tattributes: LoggerAttributes = {},\n\toptions: LoggerOptions = {},\n): Logger => {\n\treturn LoggerImpl.create(handler, attributes, options)\n}\n\n\nexport class LoggerImpl implements Logger {\n\n\tpublic readonly attributes: LoggerAttributes\n\tprivate formattedAttributes: FormattedAttributes | undefined\n\tprivate minLevelValue: number\n\tprivate handlerList: LoggerHandlerList | undefined\n\n\tprivate constructor(\n\t\tprivate handler: LoggerHandler,\n\t\tprivate readonly ownAttributes: LoggerAttributes,\n\t\tprivate readonly depth: number,\n\t\tprivate readonly parent: LoggerImpl | undefined,\n\t\tprivate readonly options: LoggerOptions,\n\t) {\n\t\tthis.attributes = { ...parent?.attributes, ...ownAttributes }\n\t\tthis.minLevelValue = handler.getMinLevel()\n\t}\n\n\tpublic static create(\n\t\thandler: LoggerHandler,\n\t\tattributes: LoggerAttributes = {},\n\t\toptions: LoggerOptions = {},\n\t) {\n\t\treturn new LoggerImpl(handler, attributes, 0, undefined, options)\n\t}\n\n\tpublic crit(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.crit.value && this.doLog(LogLevels.crit, messageOrError, attributes)\n\t}\n\n\tpublic error(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.error.value && this.doLog(LogLevels.error, messageOrError, attributes)\n\t}\n\n\tpublic warn(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.warn.value && this.doLog(LogLevels.warn, messageOrError, attributes)\n\t}\n\n\tpublic info(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.info.value && this.doLog(LogLevels.info, messageOrError, attributes)\n\t}\n\n\tpublic debug(messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tthis.minLevelValue <= LogLevels.debug.value && this.doLog(LogLevels.debug, messageOrError, attributes)\n\t}\n\n\tpublic log(levelName: LogLevelName, messageOrError: unknown, attributes?: LoggerAttributes) {\n\t\tconst level = LogLevels[levelName]\n\t\tthis.minLevelValue <= level.value && this.doLog(level, messageOrError, attributes)\n\t}\n\n\tpublic child(attributes: LoggerAttributes = {}, options: Partial<LoggerChildOptions> = {}): Logger {\n\t\tconst newHandler = options.handler ? options.handler(this.handler, this.options) : this.handler\n\t\treturn new LoggerImpl(newHandler, attributes, this.depth + 1, this, { ...this.options, ...options })\n\t}\n\n\tpublic async scope<T>(cb: (logger: Logger) => Promise<T> | T, attributes: LoggerAttributes = {}, options: Partial<LoggerChildOptions> = {}): Promise<T> {\n\t\tconst logger = this.child(attributes, options)\n\t\ttry {\n\t\t\treturn await withLogger(logger, () => cb(logger))\n\t\t} finally {\n\t\t\tlogger.close()\n\t\t}\n\t}\n\n\tprivate doLog(level: LogLevel, errorOrMessage: unknown, { error: errorAttr, message: messageAttr, ...attributes }: LoggerAttributes = {}) {\n\t\tconst error: unknown | undefined = typeof errorOrMessage !== 'string' ? errorOrMessage : errorAttr\n\t\tconst errorMessage = typeof error === 'object' && error !== null && typeof (error as any).message === 'string'\n\t\t\t? (error as any).message : undefined\n\n\t\tconst passedMessage = typeof errorOrMessage === 'string'\n\t\t\t? errorOrMessage\n\t\t\t: (typeof messageAttr === 'string')\n\t\t\t\t? messageAttr\n\t\t\t\t: undefined\n\n\t\tconst message = errorMessage && passedMessage ? `${passedMessage}: ${errorMessage}` : (passedMessage ?? errorMessage ?? 'undefined message')\n\n\t\tconst now = new Date()\n\t\tlet formatted: LogEntryFormatted\n\t\tconst entry: LogEntry = {\n\t\t\tlevel,\n\t\t\terror,\n\t\t\tmessage,\n\t\t\townAttributes: attributes,\n\t\t\ttime: now,\n\t\t\tisoTime: now.toISOString(),\n\t\t\tdepth: this.depth,\n\t\t\tloggerAttributes: this.attributes,\n\t\t\tformat: () => {\n\t\t\t\treturn formatted ??= {\n\t\t\t\t\tattributes: formatLogEntryAttributes(this.getFormattedAttributes(), entry),\n\t\t\t\t\tmessage: stringify(entry.message),\n\t\t\t\t\terror: entry.error ? `, \"error\": ${stringify(entry.error)}` : '',\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t\tthis.handler.handle(entry)\n\t}\n\n\taddHandler(handler: LoggerHandler): void {\n\t\tif (!this.handlerList) {\n\t\t\tthis.handlerList = new LoggerHandlerList([this.handler])\n\t\t\tthis.handler = this.handlerList\n\t\t}\n\t\tthis.handlerList.addHandler(handler)\n\t\tthis.minLevelValue = Math.min(this.minLevelValue, handler.getMinLevel())\n\t}\n\n\tclose(): void {\n\t\tthis.handler.close()\n\t}\n\n\tprivate getFormattedAttributes(): FormattedAttributes {\n\t\tif (this.formattedAttributes) {\n\t\t\treturn this.formattedAttributes\n\t\t}\n\t\tconst parentAttributes = this.parent?.getFormattedAttributes()\n\t\tthis.formattedAttributes = formatLoggerAttributes(parentAttributes, this.ownAttributes)\n\t\treturn this.formattedAttributes\n\t}\n}\n\n\n\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const LogLevels = {
|
|
4
|
+
debug: { name: "debug", value: 10 },
|
|
5
|
+
info: { name: "info", value: 20 },
|
|
6
|
+
warn: { name: "warn", value: 30 },
|
|
7
|
+
error: { name: "error", value: 40 },
|
|
8
|
+
crit: { name: "crit", value: 50 }
|
|
9
|
+
};
|
|
10
|
+
exports.LogLevels = LogLevels;
|
|
11
|
+
//# sourceMappingURL=levels.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.cjs","sources":["../../../../packages/logger/src/levels.ts"],"sourcesContent":["import { LogLevelName } from './types'\n\nexport const LogLevels: { [K in LogLevelName]: { name: K; value: number } } = {\n\tdebug: { name: 'debug', value: 10 },\n\tinfo: { name: 'info', value: 20 },\n\twarn: { name: 'warn', value: 30 },\n\terror: { name: 'error', value: 40 },\n\tcrit: { name: 'crit', value: 50 },\n}\n"],"names":[],"mappings":";;AAEO,MAAM,YAAiE;AAAA,EAC7E,OAAO,EAAE,MAAM,SAAS,OAAO,GAAG;AAAA,EAClC,MAAM,EAAE,MAAM,QAAQ,OAAO,GAAG;AAAA,EAChC,MAAM,EAAE,MAAM,QAAQ,OAAO,GAAG;AAAA,EAChC,OAAO,EAAE,MAAM,SAAS,OAAO,GAAG;AAAA,EAClC,MAAM,EAAE,MAAM,QAAQ,OAAO,GAAG;AACjC;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const LogLevels = {
|
|
2
|
+
debug: { name: "debug", value: 10 },
|
|
3
|
+
info: { name: "info", value: 20 },
|
|
4
|
+
warn: { name: "warn", value: 30 },
|
|
5
|
+
error: { name: "error", value: 40 },
|
|
6
|
+
crit: { name: "crit", value: 50 }
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
LogLevels
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.js","sources":["../../../../packages/logger/src/levels.ts"],"sourcesContent":["import { LogLevelName } from './types'\n\nexport const LogLevels: { [K in LogLevelName]: { name: K; value: number } } = {\n\tdebug: { name: 'debug', value: 10 },\n\tinfo: { name: 'info', value: 20 },\n\twarn: { name: 'warn', value: 30 },\n\terror: { name: 'error', value: 40 },\n\tcrit: { name: 'crit', value: 50 },\n}\n"],"names":[],"mappings":"AAEO,MAAM,YAAiE;AAAA,EAC7E,OAAO,EAAE,MAAM,SAAS,OAAO,GAAG;AAAA,EAClC,MAAM,EAAE,MAAM,QAAQ,OAAO,GAAG;AAAA,EAChC,MAAM,EAAE,MAAM,QAAQ,OAAO,GAAG;AAAA,EAChC,OAAO,EAAE,MAAM,SAAS,OAAO,GAAG;AAAA,EAClC,MAAM,EAAE,MAAM,QAAQ,OAAO,GAAG;AACjC;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const node_async_hooks = require("node:async_hooks");
|
|
4
|
+
const loggerStore = new node_async_hooks.AsyncLocalStorage();
|
|
5
|
+
class CurrentLoggerProxy {
|
|
6
|
+
crit(a, b, c) {
|
|
7
|
+
getLogger().crit(a, b);
|
|
8
|
+
}
|
|
9
|
+
error(a, b, c) {
|
|
10
|
+
getLogger().error(a, b);
|
|
11
|
+
}
|
|
12
|
+
warn(a, b, c) {
|
|
13
|
+
getLogger().warn(a, b);
|
|
14
|
+
}
|
|
15
|
+
info(a, b, c) {
|
|
16
|
+
getLogger().info(a, b);
|
|
17
|
+
}
|
|
18
|
+
debug(a, b, c) {
|
|
19
|
+
getLogger().debug(a, b);
|
|
20
|
+
}
|
|
21
|
+
log(level, a, b, c) {
|
|
22
|
+
getLogger().log(level, a, b);
|
|
23
|
+
}
|
|
24
|
+
child(attributes, options) {
|
|
25
|
+
return getLogger().child(attributes, options);
|
|
26
|
+
}
|
|
27
|
+
get attributes() {
|
|
28
|
+
return getLogger().attributes;
|
|
29
|
+
}
|
|
30
|
+
close() {
|
|
31
|
+
getLogger().close();
|
|
32
|
+
}
|
|
33
|
+
scope(cb, attributes, options) {
|
|
34
|
+
return getLogger().scope(cb, attributes, options);
|
|
35
|
+
}
|
|
36
|
+
addHandler(handler) {
|
|
37
|
+
getLogger().addHandler(handler);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const logger = new CurrentLoggerProxy();
|
|
41
|
+
const withLogger = (logger2, callback) => {
|
|
42
|
+
return loggerStore.run(logger2, callback);
|
|
43
|
+
};
|
|
44
|
+
const getLogger = () => {
|
|
45
|
+
const logger2 = loggerStore.getStore();
|
|
46
|
+
if (!logger2) {
|
|
47
|
+
throw new Error("Logger was not set");
|
|
48
|
+
}
|
|
49
|
+
return logger2;
|
|
50
|
+
};
|
|
51
|
+
exports.getLogger = getLogger;
|
|
52
|
+
exports.logger = logger;
|
|
53
|
+
exports.withLogger = withLogger;
|
|
54
|
+
//# sourceMappingURL=proxy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.cjs","sources":["../../../../packages/logger/src/proxy.ts"],"sourcesContent":["import { Logger, LoggerAttributes, LoggerHandler, LoggerOptions } from './types'\nimport { AsyncLocalStorage } from 'node:async_hooks'\n\nconst loggerStore = new AsyncLocalStorage<Logger>()\n\nclass CurrentLoggerProxy implements Logger {\n\tcrit(a: any, b?: any, c?: any) {\n\t\tgetLogger().crit(a, b)\n\t}\n\n\terror(a: any, b?: any, c?: any) {\n\t\tgetLogger().error(a, b)\n\t}\n\n\twarn(a: any, b?: any, c?: any) {\n\t\tgetLogger().warn(a, b)\n\t}\n\n\tinfo(a: any, b?: any, c?: any) {\n\t\tgetLogger().info(a, b)\n\t}\n\n\tdebug(a: any, b?: any, c?: any) {\n\t\tgetLogger().debug(a, b)\n\t}\n\n\tlog(level: any, a: any, b?: any, c?: any) {\n\t\tgetLogger().log(level, a, b)\n\t}\n\n\tchild(attributes?: LoggerAttributes, options?: Partial<LoggerOptions>): Logger {\n\t\treturn getLogger().child(attributes, options)\n\t}\n\n\tget attributes() {\n\t\treturn getLogger().attributes\n\t}\n\n\tclose(): void {\n\t\tgetLogger().close()\n\t}\n\n\tscope<T>(cb: (logger: Logger) => (Promise<T> | T), attributes?: LoggerAttributes, options?: Partial<LoggerOptions>): Promise<T> {\n\t\treturn getLogger().scope(cb, attributes, options)\n\t}\n\n\taddHandler(handler: LoggerHandler): void {\n\t\tgetLogger().addHandler(handler)\n\t}\n}\n\nexport const logger: Logger = new CurrentLoggerProxy()\n\nexport const withLogger = <R>(logger: Logger, callback: () => R): R => {\n\treturn loggerStore.run(logger, callback)\n}\n\nexport const getLogger = (): Logger => {\n\tconst logger = loggerStore.getStore()\n\tif (!logger) {\n\t\tthrow new Error('Logger was not set')\n\t}\n\treturn logger\n}\n"],"names":["AsyncLocalStorage","logger"],"mappings":";;;AAGA,MAAM,cAAc,IAAIA,iBAAAA;AAExB,MAAM,mBAAqC;AAAA,EAC1C,KAAK,GAAQ,GAAS,GAAS;AACpB,gBAAE,KAAK,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,MAAM,GAAQ,GAAS,GAAS;AACrB,gBAAE,MAAM,GAAG,CAAC;AAAA,EACvB;AAAA,EAEA,KAAK,GAAQ,GAAS,GAAS;AACpB,gBAAE,KAAK,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,KAAK,GAAQ,GAAS,GAAS;AACpB,gBAAE,KAAK,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,MAAM,GAAQ,GAAS,GAAS;AACrB,gBAAE,MAAM,GAAG,CAAC;AAAA,EACvB;AAAA,EAEA,IAAI,OAAY,GAAQ,GAAS,GAAS;AACzC,cAAY,EAAA,IAAI,OAAO,GAAG,CAAC;AAAA,EAC5B;AAAA,EAEA,MAAM,YAA+B,SAA0C;AAC9E,WAAO,UAAU,EAAE,MAAM,YAAY,OAAO;AAAA,EAC7C;AAAA,EAEA,IAAI,aAAa;AAChB,WAAO,UAAY,EAAA;AAAA,EACpB;AAAA,EAEA,QAAc;AACb,cAAA,EAAY;EACb;AAAA,EAEA,MAAS,IAA0C,YAA+B,SAA8C;AAC/H,WAAO,UAAU,EAAE,MAAM,IAAI,YAAY,OAAO;AAAA,EACjD;AAAA,EAEA,WAAW,SAA8B;AAC9B,cAAA,EAAE,WAAW,OAAO;AAAA,EAC/B;AACD;AAEa,MAAA,SAAiB,IAAI,mBAAmB;AAExC,MAAA,aAAa,CAAIC,SAAgB,aAAyB;AAC/D,SAAA,YAAY,IAAIA,SAAQ,QAAQ;AACxC;AAEO,MAAM,YAAY,MAAc;AAChCA,QAAAA,UAAS,YAAY;AAC3B,MAAI,CAACA,SAAQ;AACN,UAAA,IAAI,MAAM,oBAAoB;AAAA,EACrC;AACOA,SAAAA;AACR;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
const loggerStore = new AsyncLocalStorage();
|
|
3
|
+
class CurrentLoggerProxy {
|
|
4
|
+
crit(a, b, c) {
|
|
5
|
+
getLogger().crit(a, b);
|
|
6
|
+
}
|
|
7
|
+
error(a, b, c) {
|
|
8
|
+
getLogger().error(a, b);
|
|
9
|
+
}
|
|
10
|
+
warn(a, b, c) {
|
|
11
|
+
getLogger().warn(a, b);
|
|
12
|
+
}
|
|
13
|
+
info(a, b, c) {
|
|
14
|
+
getLogger().info(a, b);
|
|
15
|
+
}
|
|
16
|
+
debug(a, b, c) {
|
|
17
|
+
getLogger().debug(a, b);
|
|
18
|
+
}
|
|
19
|
+
log(level, a, b, c) {
|
|
20
|
+
getLogger().log(level, a, b);
|
|
21
|
+
}
|
|
22
|
+
child(attributes, options) {
|
|
23
|
+
return getLogger().child(attributes, options);
|
|
24
|
+
}
|
|
25
|
+
get attributes() {
|
|
26
|
+
return getLogger().attributes;
|
|
27
|
+
}
|
|
28
|
+
close() {
|
|
29
|
+
getLogger().close();
|
|
30
|
+
}
|
|
31
|
+
scope(cb, attributes, options) {
|
|
32
|
+
return getLogger().scope(cb, attributes, options);
|
|
33
|
+
}
|
|
34
|
+
addHandler(handler) {
|
|
35
|
+
getLogger().addHandler(handler);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const logger = new CurrentLoggerProxy();
|
|
39
|
+
const withLogger = (logger2, callback) => {
|
|
40
|
+
return loggerStore.run(logger2, callback);
|
|
41
|
+
};
|
|
42
|
+
const getLogger = () => {
|
|
43
|
+
const logger2 = loggerStore.getStore();
|
|
44
|
+
if (!logger2) {
|
|
45
|
+
throw new Error("Logger was not set");
|
|
46
|
+
}
|
|
47
|
+
return logger2;
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
getLogger,
|
|
51
|
+
logger,
|
|
52
|
+
withLogger
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sources":["../../../../packages/logger/src/proxy.ts"],"sourcesContent":["import { Logger, LoggerAttributes, LoggerHandler, LoggerOptions } from './types'\nimport { AsyncLocalStorage } from 'node:async_hooks'\n\nconst loggerStore = new AsyncLocalStorage<Logger>()\n\nclass CurrentLoggerProxy implements Logger {\n\tcrit(a: any, b?: any, c?: any) {\n\t\tgetLogger().crit(a, b)\n\t}\n\n\terror(a: any, b?: any, c?: any) {\n\t\tgetLogger().error(a, b)\n\t}\n\n\twarn(a: any, b?: any, c?: any) {\n\t\tgetLogger().warn(a, b)\n\t}\n\n\tinfo(a: any, b?: any, c?: any) {\n\t\tgetLogger().info(a, b)\n\t}\n\n\tdebug(a: any, b?: any, c?: any) {\n\t\tgetLogger().debug(a, b)\n\t}\n\n\tlog(level: any, a: any, b?: any, c?: any) {\n\t\tgetLogger().log(level, a, b)\n\t}\n\n\tchild(attributes?: LoggerAttributes, options?: Partial<LoggerOptions>): Logger {\n\t\treturn getLogger().child(attributes, options)\n\t}\n\n\tget attributes() {\n\t\treturn getLogger().attributes\n\t}\n\n\tclose(): void {\n\t\tgetLogger().close()\n\t}\n\n\tscope<T>(cb: (logger: Logger) => (Promise<T> | T), attributes?: LoggerAttributes, options?: Partial<LoggerOptions>): Promise<T> {\n\t\treturn getLogger().scope(cb, attributes, options)\n\t}\n\n\taddHandler(handler: LoggerHandler): void {\n\t\tgetLogger().addHandler(handler)\n\t}\n}\n\nexport const logger: Logger = new CurrentLoggerProxy()\n\nexport const withLogger = <R>(logger: Logger, callback: () => R): R => {\n\treturn loggerStore.run(logger, callback)\n}\n\nexport const getLogger = (): Logger => {\n\tconst logger = loggerStore.getStore()\n\tif (!logger) {\n\t\tthrow new Error('Logger was not set')\n\t}\n\treturn logger\n}\n"],"names":["logger"],"mappings":";AAGA,MAAM,cAAc,IAAI;AAExB,MAAM,mBAAqC;AAAA,EAC1C,KAAK,GAAQ,GAAS,GAAS;AACpB,gBAAE,KAAK,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,MAAM,GAAQ,GAAS,GAAS;AACrB,gBAAE,MAAM,GAAG,CAAC;AAAA,EACvB;AAAA,EAEA,KAAK,GAAQ,GAAS,GAAS;AACpB,gBAAE,KAAK,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,KAAK,GAAQ,GAAS,GAAS;AACpB,gBAAE,KAAK,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,MAAM,GAAQ,GAAS,GAAS;AACrB,gBAAE,MAAM,GAAG,CAAC;AAAA,EACvB;AAAA,EAEA,IAAI,OAAY,GAAQ,GAAS,GAAS;AACzC,cAAY,EAAA,IAAI,OAAO,GAAG,CAAC;AAAA,EAC5B;AAAA,EAEA,MAAM,YAA+B,SAA0C;AAC9E,WAAO,UAAU,EAAE,MAAM,YAAY,OAAO;AAAA,EAC7C;AAAA,EAEA,IAAI,aAAa;AAChB,WAAO,UAAY,EAAA;AAAA,EACpB;AAAA,EAEA,QAAc;AACb,cAAA,EAAY;EACb;AAAA,EAEA,MAAS,IAA0C,YAA+B,SAA8C;AAC/H,WAAO,UAAU,EAAE,MAAM,IAAI,YAAY,OAAO;AAAA,EACjD;AAAA,EAEA,WAAW,SAA8B;AAC9B,cAAA,EAAE,WAAW,OAAO;AAAA,EAC/B;AACD;AAEa,MAAA,SAAiB,IAAI,mBAAmB;AAExC,MAAA,aAAa,CAAIA,SAAgB,aAAyB;AAC/D,SAAA,YAAY,IAAIA,SAAQ,QAAQ;AACxC;AAEO,MAAM,YAAY,MAAc;AAChCA,QAAAA,UAAS,YAAY;AAC3B,MAAI,CAACA,SAAQ;AACN,UAAA,IAAI,MAAM,oBAAoB;AAAA,EACrC;AACOA,SAAAA;AACR;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonStreamLoggerHandler.d.ts","sourceRoot":"","sources":["../../../src/handlers/JsonStreamLoggerHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAG5D,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,EAAE,QAAQ,CAAA;CAClB;AAED,qBAAa,uBAAwB,YAAW,aAAa;IAI3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHxB,OAAO,CAAC,OAAO,CAAgC;gBAG7B,MAAM,EAAE,MAAM,CAAC,cAAc,EAC9C,OAAO,GAAE,OAAO,CAAC,8BAA8B,CAAM;IAQtD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAS7B,WAAW,IAAI,MAAM;IAIrB,KAAK,IAAI,IAAI;CAEb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrettyPrintLoggerHandler.d.ts","sourceRoot":"","sources":["../../../src/handlers/PrettyPrintLoggerHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAG9E,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE;YAAE,KAAK,EAAE,GAAG,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,KAAK,CAAC;YAAC,UAAU,EAAE,gBAAgB,CAAA;SAAE,KAAK,SAAS,GAAG,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KACtK,CAAA;CACD;AAED,qBAAa,wBAAyB,YAAW,aAAa;IAI5D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;gBAGvC,MAAM,EAAE,MAAM,CAAC,cAAc,EAC9C,OAAO,GAAE,OAAO,CAAC,+BAA+B,CAAM;IASvD,WAAW,IAAI,MAAM;IAIrB,MAAM,CAAC,KAAK,EAAE,QAAQ;IAqCtB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAenB,KAAK,IAAI,IAAI;CAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkD,MAAM,SAAS,CAAA;AAmDhF,eAAO,MAAM,MAAM,EAAE,MAAiC,CAAA;AAEtD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkD,MAAM,SAAS,CAAA;AAmDhF,eAAO,MAAM,MAAM,EAAE,MAAiC,CAAA;AAEtD,eAAO,MAAM,UAAU,GAAI,CAAC,UAAU,MAAM,YAAY,MAAM,CAAC,KAAG,CAEjE,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,MAM5B,CAAA"}
|