apitally 0.18.1 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -44
- package/dist/adonisjs/configure.cjs +2 -2
- package/dist/adonisjs/configure.cjs.map +1 -1
- package/dist/adonisjs/configure.js.map +1 -1
- package/dist/adonisjs/index.cjs +2 -2
- package/dist/adonisjs/index.cjs.map +1 -1
- package/dist/adonisjs/index.d.cts +2 -2
- package/dist/adonisjs/index.d.ts +2 -2
- package/dist/adonisjs/index.js.map +1 -1
- package/dist/adonisjs/middleware.cjs +107 -84
- package/dist/adonisjs/middleware.cjs.map +1 -1
- package/dist/adonisjs/middleware.d.cts +2 -2
- package/dist/adonisjs/middleware.d.ts +2 -2
- package/dist/adonisjs/middleware.js +106 -83
- package/dist/adonisjs/middleware.js.map +1 -1
- package/dist/adonisjs/provider.cjs +4765 -62
- package/dist/adonisjs/provider.cjs.map +1 -1
- package/dist/adonisjs/provider.d.cts +7 -4
- package/dist/adonisjs/provider.d.ts +7 -4
- package/dist/adonisjs/provider.js +4743 -17
- package/dist/adonisjs/provider.js.map +1 -1
- package/dist/common/client.cjs +64 -42
- package/dist/common/client.cjs.map +1 -1
- package/dist/common/client.d.cts +2 -2
- package/dist/common/client.d.ts +2 -2
- package/dist/common/client.js +33 -11
- package/dist/common/client.js.map +1 -1
- package/dist/common/consumerRegistry.d.cts +2 -2
- package/dist/common/consumerRegistry.d.ts +2 -2
- package/dist/common/headers.cjs.map +1 -1
- package/dist/common/headers.d.cts +1 -1
- package/dist/common/headers.d.ts +1 -1
- package/dist/common/headers.js.map +1 -1
- package/dist/common/logging.cjs +3 -2
- package/dist/common/logging.cjs.map +1 -1
- package/dist/common/logging.d.cts +1 -1
- package/dist/common/logging.d.ts +1 -1
- package/dist/common/logging.js +3 -2
- package/dist/common/logging.js.map +1 -1
- package/dist/common/packageVersions.cjs +2 -2
- package/dist/common/packageVersions.cjs.map +1 -1
- package/dist/common/packageVersions.js.map +1 -1
- package/dist/common/requestCounter.d.cts +2 -2
- package/dist/common/requestCounter.d.ts +2 -2
- package/dist/common/requestLogger.cjs +57 -33
- package/dist/common/requestLogger.cjs.map +1 -1
- package/dist/common/requestLogger.d.cts +12 -5
- package/dist/common/requestLogger.d.ts +12 -5
- package/dist/common/requestLogger.js +30 -6
- package/dist/common/requestLogger.js.map +1 -1
- package/dist/common/response.cjs +12 -6
- package/dist/common/response.cjs.map +1 -1
- package/dist/common/response.d.cts +3 -3
- package/dist/common/response.d.ts +3 -3
- package/dist/common/response.js +12 -6
- package/dist/common/response.js.map +1 -1
- package/dist/common/serverErrorCounter.cjs +3 -2
- package/dist/common/serverErrorCounter.cjs.map +1 -1
- package/dist/common/serverErrorCounter.d.cts +2 -2
- package/dist/common/serverErrorCounter.d.ts +2 -2
- package/dist/common/serverErrorCounter.js +1 -0
- package/dist/common/serverErrorCounter.js.map +1 -1
- package/dist/common/tempGzipFile.cjs +15 -14
- package/dist/common/tempGzipFile.cjs.map +1 -1
- package/dist/common/tempGzipFile.d.cts +1 -1
- package/dist/common/tempGzipFile.d.ts +1 -1
- package/dist/common/tempGzipFile.js +3 -2
- package/dist/common/tempGzipFile.js.map +1 -1
- package/dist/common/types.d.cts +2 -2
- package/dist/common/types.d.ts +2 -2
- package/dist/common/validationErrorCounter.cjs +4 -4
- package/dist/common/validationErrorCounter.cjs.map +1 -1
- package/dist/common/validationErrorCounter.d.cts +2 -2
- package/dist/common/validationErrorCounter.d.ts +2 -2
- package/dist/common/validationErrorCounter.js +2 -2
- package/dist/common/validationErrorCounter.js.map +1 -1
- package/dist/elysia/index.cjs +1582 -0
- package/dist/elysia/index.cjs.map +1 -0
- package/dist/elysia/index.d.cts +9 -0
- package/dist/elysia/index.d.ts +9 -0
- package/dist/elysia/index.js +1552 -0
- package/dist/elysia/index.js.map +1 -0
- package/dist/elysia/plugin.cjs +1576 -0
- package/dist/elysia/plugin.cjs.map +1 -0
- package/dist/elysia/plugin.d.cts +53 -0
- package/dist/elysia/plugin.d.ts +53 -0
- package/dist/elysia/plugin.js +1552 -0
- package/dist/elysia/plugin.js.map +1 -0
- package/dist/elysia/utils.cjs +98 -0
- package/dist/elysia/utils.cjs.map +1 -0
- package/dist/elysia/utils.d.cts +12 -0
- package/dist/elysia/utils.d.ts +12 -0
- package/dist/elysia/utils.js +78 -0
- package/dist/elysia/utils.js.map +1 -0
- package/dist/express/index.cjs +4997 -169
- package/dist/express/index.cjs.map +1 -1
- package/dist/express/index.d.cts +2 -2
- package/dist/express/index.d.ts +2 -2
- package/dist/express/index.js +4969 -120
- package/dist/express/index.js.map +1 -1
- package/dist/express/middleware.cjs +4997 -169
- package/dist/express/middleware.cjs.map +1 -1
- package/dist/express/middleware.d.cts +2 -2
- package/dist/express/middleware.d.ts +2 -2
- package/dist/express/middleware.js +4969 -120
- package/dist/express/middleware.js.map +1 -1
- package/dist/fastify/index.cjs +4926 -72
- package/dist/fastify/index.cjs.map +1 -1
- package/dist/fastify/index.d.cts +3 -2
- package/dist/fastify/index.d.ts +3 -2
- package/dist/fastify/index.js +4899 -24
- package/dist/fastify/index.js.map +1 -1
- package/dist/fastify/plugin.cjs +4926 -72
- package/dist/fastify/plugin.cjs.map +1 -1
- package/dist/fastify/plugin.d.cts +8 -3
- package/dist/fastify/plugin.d.ts +8 -3
- package/dist/fastify/plugin.js +4899 -24
- package/dist/fastify/plugin.js.map +1 -1
- package/dist/h3/index.cjs +235 -57
- package/dist/h3/index.cjs.map +1 -1
- package/dist/h3/index.d.cts +2 -2
- package/dist/h3/index.d.ts +2 -2
- package/dist/h3/index.js +200 -22
- package/dist/h3/index.js.map +1 -1
- package/dist/h3/plugin.cjs +235 -57
- package/dist/h3/plugin.cjs.map +1 -1
- package/dist/h3/plugin.d.cts +6 -4
- package/dist/h3/plugin.d.ts +6 -4
- package/dist/h3/plugin.js +200 -22
- package/dist/h3/plugin.js.map +1 -1
- package/dist/h3/utils.cjs +2 -2
- package/dist/h3/utils.cjs.map +1 -1
- package/dist/h3/utils.js.map +1 -1
- package/dist/hono/index.cjs +295 -118
- package/dist/hono/index.cjs.map +1 -1
- package/dist/hono/index.d.cts +2 -2
- package/dist/hono/index.d.ts +2 -2
- package/dist/hono/index.js +261 -84
- package/dist/hono/index.js.map +1 -1
- package/dist/hono/middleware.cjs +295 -118
- package/dist/hono/middleware.cjs.map +1 -1
- package/dist/hono/middleware.d.cts +2 -2
- package/dist/hono/middleware.d.ts +2 -2
- package/dist/hono/middleware.js +261 -84
- package/dist/hono/middleware.js.map +1 -1
- package/dist/hono/utils.cjs +2 -2
- package/dist/hono/utils.cjs.map +1 -1
- package/dist/hono/utils.d.cts +2 -2
- package/dist/hono/utils.d.ts +2 -2
- package/dist/hono/utils.js.map +1 -1
- package/dist/koa/index.cjs +280 -107
- package/dist/koa/index.cjs.map +1 -1
- package/dist/koa/index.d.cts +2 -2
- package/dist/koa/index.d.ts +2 -2
- package/dist/koa/index.js +244 -71
- package/dist/koa/index.js.map +1 -1
- package/dist/koa/middleware.cjs +278 -107
- package/dist/koa/middleware.cjs.map +1 -1
- package/dist/koa/middleware.d.cts +2 -2
- package/dist/koa/middleware.d.ts +2 -2
- package/dist/koa/middleware.js +244 -71
- package/dist/koa/middleware.js.map +1 -1
- package/dist/loggers/console.cjs +69 -0
- package/dist/loggers/console.cjs.map +1 -0
- package/dist/loggers/console.d.cts +9 -0
- package/dist/loggers/console.d.ts +9 -0
- package/dist/loggers/console.js +46 -0
- package/dist/loggers/console.js.map +1 -0
- package/dist/loggers/index.cjs +4837 -0
- package/dist/loggers/index.cjs.map +1 -0
- package/dist/loggers/index.d.cts +9 -0
- package/dist/loggers/index.d.ts +9 -0
- package/dist/loggers/index.js +4826 -0
- package/dist/loggers/index.js.map +1 -0
- package/dist/loggers/nestjs.cjs +135 -0
- package/dist/loggers/nestjs.cjs.map +1 -0
- package/dist/loggers/nestjs.d.cts +9 -0
- package/dist/loggers/nestjs.d.ts +9 -0
- package/dist/loggers/nestjs.js +100 -0
- package/dist/loggers/nestjs.js.map +1 -0
- package/dist/loggers/pino.cjs +4669 -0
- package/dist/loggers/pino.cjs.map +1 -0
- package/dist/loggers/pino.d.cts +9 -0
- package/dist/loggers/pino.d.ts +9 -0
- package/dist/loggers/pino.js +4661 -0
- package/dist/loggers/pino.js.map +1 -0
- package/dist/loggers/utils.cjs +66 -0
- package/dist/loggers/utils.cjs.map +1 -0
- package/dist/loggers/utils.d.cts +6 -0
- package/dist/loggers/utils.d.ts +6 -0
- package/dist/loggers/utils.js +42 -0
- package/dist/loggers/utils.js.map +1 -0
- package/dist/loggers/winston.cjs +135 -0
- package/dist/loggers/winston.cjs.map +1 -0
- package/dist/loggers/winston.d.cts +9 -0
- package/dist/loggers/winston.d.ts +9 -0
- package/dist/loggers/winston.js +100 -0
- package/dist/loggers/winston.js.map +1 -0
- package/dist/nestjs/index.cjs +5448 -542
- package/dist/nestjs/index.cjs.map +1 -1
- package/dist/nestjs/index.d.cts +2 -2
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +5364 -460
- package/dist/nestjs/index.js.map +1 -1
- package/package.json +26 -4
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
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 __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
|
|
31
|
+
// src/loggers/nestjs.ts
|
|
32
|
+
var nestjs_exports = {};
|
|
33
|
+
__export(nestjs_exports, {
|
|
34
|
+
patchNestLogger: () => patchNestLogger
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(nestjs_exports);
|
|
37
|
+
|
|
38
|
+
// src/loggers/utils.ts
|
|
39
|
+
var import_node_util = require("util");
|
|
40
|
+
function formatMessage(message, ...args) {
|
|
41
|
+
return [
|
|
42
|
+
message,
|
|
43
|
+
...args
|
|
44
|
+
].map(formatArg).filter((arg) => arg !== "").join("\n");
|
|
45
|
+
}
|
|
46
|
+
__name(formatMessage, "formatMessage");
|
|
47
|
+
function formatArg(arg) {
|
|
48
|
+
if (typeof arg === "string") {
|
|
49
|
+
return arg.trim();
|
|
50
|
+
}
|
|
51
|
+
if (arg instanceof Error) {
|
|
52
|
+
return (0, import_node_util.format)(arg).trim();
|
|
53
|
+
}
|
|
54
|
+
if (arg === void 0 || arg === null || isEmptyObject(arg)) {
|
|
55
|
+
return "";
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
return JSON.stringify(arg);
|
|
59
|
+
} catch {
|
|
60
|
+
return (0, import_node_util.format)(arg).trim();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
__name(formatArg, "formatArg");
|
|
64
|
+
function isEmptyObject(obj) {
|
|
65
|
+
return obj !== null && typeof obj === "object" && Object.getPrototypeOf(obj) === Object.prototype && Object.keys(obj).length === 0;
|
|
66
|
+
}
|
|
67
|
+
__name(isEmptyObject, "isEmptyObject");
|
|
68
|
+
|
|
69
|
+
// src/loggers/nestjs.ts
|
|
70
|
+
var MAX_BUFFER_SIZE = 1e3;
|
|
71
|
+
var isPatched = false;
|
|
72
|
+
var globalLogsContext;
|
|
73
|
+
async function patchNestLogger(logsContext) {
|
|
74
|
+
globalLogsContext = logsContext;
|
|
75
|
+
if (isPatched) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const { Logger } = await import("@nestjs/common");
|
|
80
|
+
const logMethods = [
|
|
81
|
+
"log",
|
|
82
|
+
"error",
|
|
83
|
+
"warn",
|
|
84
|
+
"debug",
|
|
85
|
+
"verbose",
|
|
86
|
+
"fatal"
|
|
87
|
+
];
|
|
88
|
+
logMethods.forEach((method) => {
|
|
89
|
+
const originalMethod = Logger[method];
|
|
90
|
+
Logger[method] = function(message, ...args) {
|
|
91
|
+
captureLog(method, [
|
|
92
|
+
message,
|
|
93
|
+
...args
|
|
94
|
+
]);
|
|
95
|
+
return originalMethod.apply(Logger, [
|
|
96
|
+
message,
|
|
97
|
+
...args
|
|
98
|
+
]);
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
logMethods.forEach((method) => {
|
|
102
|
+
const originalMethod = Logger.prototype[method];
|
|
103
|
+
Logger.prototype[method] = function(message, ...args) {
|
|
104
|
+
captureLog(method, [
|
|
105
|
+
message,
|
|
106
|
+
...args
|
|
107
|
+
], this.context);
|
|
108
|
+
return originalMethod.apply(this, [
|
|
109
|
+
message,
|
|
110
|
+
...args
|
|
111
|
+
]);
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
isPatched = true;
|
|
115
|
+
} catch {
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
__name(patchNestLogger, "patchNestLogger");
|
|
119
|
+
function captureLog(level, args, context) {
|
|
120
|
+
const logs = globalLogsContext == null ? void 0 : globalLogsContext.getStore();
|
|
121
|
+
if (logs && logs.length < MAX_BUFFER_SIZE) {
|
|
122
|
+
logs.push({
|
|
123
|
+
timestamp: Date.now() / 1e3,
|
|
124
|
+
logger: context,
|
|
125
|
+
level,
|
|
126
|
+
message: formatMessage(args[0], ...args.slice(1))
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
__name(captureLog, "captureLog");
|
|
131
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
132
|
+
0 && (module.exports = {
|
|
133
|
+
patchNestLogger
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=nestjs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/loggers/nestjs.ts","../../src/loggers/utils.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport { formatMessage } from \"./utils.js\";\n\ntype LogLevel = \"log\" | \"error\" | \"warn\" | \"debug\" | \"verbose\" | \"fatal\";\n\nconst MAX_BUFFER_SIZE = 1000;\n\nlet isPatched = false;\nlet globalLogsContext: AsyncLocalStorage<LogRecord[]>;\n\nexport async function patchNestLogger(\n logsContext: AsyncLocalStorage<LogRecord[]>,\n) {\n globalLogsContext = logsContext;\n\n if (isPatched) {\n return;\n }\n\n try {\n const { Logger } = await import(\"@nestjs/common\");\n const logMethods: LogLevel[] = [\n \"log\",\n \"error\",\n \"warn\",\n \"debug\",\n \"verbose\",\n \"fatal\",\n ];\n\n // Patch static methods\n logMethods.forEach((method) => {\n const originalMethod = Logger[method];\n Logger[method] = function (message: any, ...args: any[]) {\n captureLog(method, [message, ...args]);\n return originalMethod.apply(Logger, [message, ...args]);\n };\n });\n\n // Patch prototype methods to affect all instances (new and existing)\n logMethods.forEach((method) => {\n const originalMethod = Logger.prototype[method];\n Logger.prototype[method] = function (message: any, ...args: any[]) {\n captureLog(method, [message, ...args], this.context);\n return originalMethod.apply(this, [message, ...args]);\n };\n });\n\n isPatched = true;\n } catch {\n // @nestjs/common is not installed, silently ignore\n }\n}\n\nfunction captureLog(level: LogLevel, args: any[], context?: string) {\n const logs = globalLogsContext?.getStore();\n if (logs && logs.length < MAX_BUFFER_SIZE) {\n logs.push({\n timestamp: Date.now() / 1000,\n logger: context,\n level,\n message: formatMessage(args[0], ...args.slice(1)),\n });\n }\n}\n","import { format } from \"node:util\";\n\nexport function formatMessage(message: any, ...args: any[]) {\n return [message, ...args]\n .map(formatArg)\n .filter((arg) => arg !== \"\")\n .join(\"\\n\");\n}\n\nexport function removeKeys(obj: any, keys: string[]) {\n return Object.fromEntries(\n Object.entries(obj).filter(([key]) => !keys.includes(key)),\n );\n}\n\nfunction formatArg(arg: any) {\n if (typeof arg === \"string\") {\n return arg.trim();\n }\n if (arg instanceof Error) {\n return format(arg).trim();\n }\n if (arg === undefined || arg === null || isEmptyObject(arg)) {\n return \"\";\n }\n try {\n return JSON.stringify(arg);\n } catch {\n return format(arg).trim();\n }\n}\n\nfunction isEmptyObject(obj: any) {\n return (\n obj !== null &&\n typeof obj === \"object\" &&\n Object.getPrototypeOf(obj) === Object.prototype &&\n Object.keys(obj).length === 0\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;;;;;;ACHA,uBAAuB;AAEhB,SAASA,cAAcC,YAAiBC,MAAW;AACxD,SAAO;IAACD;OAAYC;IACjBC,IAAIC,SAAAA,EACJC,OAAO,CAACC,QAAQA,QAAQ,EAAA,EACxBC,KAAK,IAAA;AACV;AALgBP;AAahB,SAASQ,UAAUC,KAAQ;AACzB,MAAI,OAAOA,QAAQ,UAAU;AAC3B,WAAOA,IAAIC,KAAI;EACjB;AACA,MAAID,eAAeE,OAAO;AACxB,eAAOC,yBAAOH,GAAAA,EAAKC,KAAI;EACzB;AACA,MAAID,QAAQI,UAAaJ,QAAQ,QAAQK,cAAcL,GAAAA,GAAM;AAC3D,WAAO;EACT;AACA,MAAI;AACF,WAAOM,KAAKC,UAAUP,GAAAA;EACxB,QAAQ;AACN,eAAOG,yBAAOH,GAAAA,EAAKC,KAAI;EACzB;AACF;AAfSF;AAiBT,SAASM,cAAcG,KAAQ;AAC7B,SACEA,QAAQ,QACR,OAAOA,QAAQ,YACfC,OAAOC,eAAeF,GAAAA,MAASC,OAAOE,aACtCF,OAAOG,KAAKJ,GAAAA,EAAKK,WAAW;AAEhC;AAPSR;;;ADzBT,IAAMS,kBAAkB;AAExB,IAAIC,YAAY;AAChB,IAAIC;AAEJ,eAAsBC,gBACpBC,aAA2C;AAE3CF,sBAAoBE;AAEpB,MAAIH,WAAW;AACb;EACF;AAEA,MAAI;AACF,UAAM,EAAEI,OAAM,IAAK,MAAM,OAAO,gBAAA;AAChC,UAAMC,aAAyB;MAC7B;MACA;MACA;MACA;MACA;MACA;;AAIFA,eAAWC,QAAQ,CAACC,WAAAA;AAClB,YAAMC,iBAAiBJ,OAAOG,MAAAA;AAC9BH,aAAOG,MAAAA,IAAU,SAAUE,YAAiBC,MAAW;AACrDC,mBAAWJ,QAAQ;UAACE;aAAYC;SAAK;AACrC,eAAOF,eAAeI,MAAMR,QAAQ;UAACK;aAAYC;SAAK;MACxD;IACF,CAAA;AAGAL,eAAWC,QAAQ,CAACC,WAAAA;AAClB,YAAMC,iBAAiBJ,OAAOS,UAAUN,MAAAA;AACxCH,aAAOS,UAAUN,MAAAA,IAAU,SAAUE,YAAiBC,MAAW;AAC/DC,mBAAWJ,QAAQ;UAACE;aAAYC;WAAO,KAAKI,OAAO;AACnD,eAAON,eAAeI,MAAM,MAAM;UAACH;aAAYC;SAAK;MACtD;IACF,CAAA;AAEAV,gBAAY;EACd,QAAQ;EAER;AACF;AA1CsBE;AA4CtB,SAASS,WAAWI,OAAiBL,MAAaI,SAAgB;AAChE,QAAME,OAAOf,uDAAmBgB;AAChC,MAAID,QAAQA,KAAKE,SAASnB,iBAAiB;AACzCiB,SAAKG,KAAK;MACRC,WAAWC,KAAKC,IAAG,IAAK;MACxBC,QAAQT;MACRC;MACAN,SAASe,cAAcd,KAAK,CAAA,GAAE,GAAKA,KAAKe,MAAM,CAAA,CAAA;IAChD,CAAA;EACF;AACF;AAVSd;","names":["formatMessage","message","args","map","formatArg","filter","arg","join","formatArg","arg","trim","Error","format","undefined","isEmptyObject","JSON","stringify","obj","Object","getPrototypeOf","prototype","keys","length","MAX_BUFFER_SIZE","isPatched","globalLogsContext","patchNestLogger","logsContext","Logger","logMethods","forEach","method","originalMethod","message","args","captureLog","apply","prototype","context","level","logs","getStore","length","push","timestamp","Date","now","logger","formatMessage","slice"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import { LogRecord } from '../common/requestLogger.cjs';
|
|
3
|
+
import 'node:buffer';
|
|
4
|
+
import 'node:http';
|
|
5
|
+
import '../common/tempGzipFile.cjs';
|
|
6
|
+
|
|
7
|
+
declare function patchNestLogger(logsContext: AsyncLocalStorage<LogRecord[]>): Promise<void>;
|
|
8
|
+
|
|
9
|
+
export { patchNestLogger };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import { LogRecord } from '../common/requestLogger.js';
|
|
3
|
+
import 'node:buffer';
|
|
4
|
+
import 'node:http';
|
|
5
|
+
import '../common/tempGzipFile.js';
|
|
6
|
+
|
|
7
|
+
declare function patchNestLogger(logsContext: AsyncLocalStorage<LogRecord[]>): Promise<void>;
|
|
8
|
+
|
|
9
|
+
export { patchNestLogger };
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/loggers/utils.ts
|
|
5
|
+
import { format } from "util";
|
|
6
|
+
function formatMessage(message, ...args) {
|
|
7
|
+
return [
|
|
8
|
+
message,
|
|
9
|
+
...args
|
|
10
|
+
].map(formatArg).filter((arg) => arg !== "").join("\n");
|
|
11
|
+
}
|
|
12
|
+
__name(formatMessage, "formatMessage");
|
|
13
|
+
function formatArg(arg) {
|
|
14
|
+
if (typeof arg === "string") {
|
|
15
|
+
return arg.trim();
|
|
16
|
+
}
|
|
17
|
+
if (arg instanceof Error) {
|
|
18
|
+
return format(arg).trim();
|
|
19
|
+
}
|
|
20
|
+
if (arg === void 0 || arg === null || isEmptyObject(arg)) {
|
|
21
|
+
return "";
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return JSON.stringify(arg);
|
|
25
|
+
} catch {
|
|
26
|
+
return format(arg).trim();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
__name(formatArg, "formatArg");
|
|
30
|
+
function isEmptyObject(obj) {
|
|
31
|
+
return obj !== null && typeof obj === "object" && Object.getPrototypeOf(obj) === Object.prototype && Object.keys(obj).length === 0;
|
|
32
|
+
}
|
|
33
|
+
__name(isEmptyObject, "isEmptyObject");
|
|
34
|
+
|
|
35
|
+
// src/loggers/nestjs.ts
|
|
36
|
+
var MAX_BUFFER_SIZE = 1e3;
|
|
37
|
+
var isPatched = false;
|
|
38
|
+
var globalLogsContext;
|
|
39
|
+
async function patchNestLogger(logsContext) {
|
|
40
|
+
globalLogsContext = logsContext;
|
|
41
|
+
if (isPatched) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
const { Logger } = await import("@nestjs/common");
|
|
46
|
+
const logMethods = [
|
|
47
|
+
"log",
|
|
48
|
+
"error",
|
|
49
|
+
"warn",
|
|
50
|
+
"debug",
|
|
51
|
+
"verbose",
|
|
52
|
+
"fatal"
|
|
53
|
+
];
|
|
54
|
+
logMethods.forEach((method) => {
|
|
55
|
+
const originalMethod = Logger[method];
|
|
56
|
+
Logger[method] = function(message, ...args) {
|
|
57
|
+
captureLog(method, [
|
|
58
|
+
message,
|
|
59
|
+
...args
|
|
60
|
+
]);
|
|
61
|
+
return originalMethod.apply(Logger, [
|
|
62
|
+
message,
|
|
63
|
+
...args
|
|
64
|
+
]);
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
logMethods.forEach((method) => {
|
|
68
|
+
const originalMethod = Logger.prototype[method];
|
|
69
|
+
Logger.prototype[method] = function(message, ...args) {
|
|
70
|
+
captureLog(method, [
|
|
71
|
+
message,
|
|
72
|
+
...args
|
|
73
|
+
], this.context);
|
|
74
|
+
return originalMethod.apply(this, [
|
|
75
|
+
message,
|
|
76
|
+
...args
|
|
77
|
+
]);
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
isPatched = true;
|
|
81
|
+
} catch {
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
__name(patchNestLogger, "patchNestLogger");
|
|
85
|
+
function captureLog(level, args, context) {
|
|
86
|
+
const logs = globalLogsContext == null ? void 0 : globalLogsContext.getStore();
|
|
87
|
+
if (logs && logs.length < MAX_BUFFER_SIZE) {
|
|
88
|
+
logs.push({
|
|
89
|
+
timestamp: Date.now() / 1e3,
|
|
90
|
+
logger: context,
|
|
91
|
+
level,
|
|
92
|
+
message: formatMessage(args[0], ...args.slice(1))
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
__name(captureLog, "captureLog");
|
|
97
|
+
export {
|
|
98
|
+
patchNestLogger
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=nestjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/loggers/utils.ts","../../src/loggers/nestjs.ts"],"sourcesContent":["import { format } from \"node:util\";\n\nexport function formatMessage(message: any, ...args: any[]) {\n return [message, ...args]\n .map(formatArg)\n .filter((arg) => arg !== \"\")\n .join(\"\\n\");\n}\n\nexport function removeKeys(obj: any, keys: string[]) {\n return Object.fromEntries(\n Object.entries(obj).filter(([key]) => !keys.includes(key)),\n );\n}\n\nfunction formatArg(arg: any) {\n if (typeof arg === \"string\") {\n return arg.trim();\n }\n if (arg instanceof Error) {\n return format(arg).trim();\n }\n if (arg === undefined || arg === null || isEmptyObject(arg)) {\n return \"\";\n }\n try {\n return JSON.stringify(arg);\n } catch {\n return format(arg).trim();\n }\n}\n\nfunction isEmptyObject(obj: any) {\n return (\n obj !== null &&\n typeof obj === \"object\" &&\n Object.getPrototypeOf(obj) === Object.prototype &&\n Object.keys(obj).length === 0\n );\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport type { LogRecord } from \"../common/requestLogger.js\";\nimport { formatMessage } from \"./utils.js\";\n\ntype LogLevel = \"log\" | \"error\" | \"warn\" | \"debug\" | \"verbose\" | \"fatal\";\n\nconst MAX_BUFFER_SIZE = 1000;\n\nlet isPatched = false;\nlet globalLogsContext: AsyncLocalStorage<LogRecord[]>;\n\nexport async function patchNestLogger(\n logsContext: AsyncLocalStorage<LogRecord[]>,\n) {\n globalLogsContext = logsContext;\n\n if (isPatched) {\n return;\n }\n\n try {\n const { Logger } = await import(\"@nestjs/common\");\n const logMethods: LogLevel[] = [\n \"log\",\n \"error\",\n \"warn\",\n \"debug\",\n \"verbose\",\n \"fatal\",\n ];\n\n // Patch static methods\n logMethods.forEach((method) => {\n const originalMethod = Logger[method];\n Logger[method] = function (message: any, ...args: any[]) {\n captureLog(method, [message, ...args]);\n return originalMethod.apply(Logger, [message, ...args]);\n };\n });\n\n // Patch prototype methods to affect all instances (new and existing)\n logMethods.forEach((method) => {\n const originalMethod = Logger.prototype[method];\n Logger.prototype[method] = function (message: any, ...args: any[]) {\n captureLog(method, [message, ...args], this.context);\n return originalMethod.apply(this, [message, ...args]);\n };\n });\n\n isPatched = true;\n } catch {\n // @nestjs/common is not installed, silently ignore\n }\n}\n\nfunction captureLog(level: LogLevel, args: any[], context?: string) {\n const logs = globalLogsContext?.getStore();\n if (logs && logs.length < MAX_BUFFER_SIZE) {\n logs.push({\n timestamp: Date.now() / 1000,\n logger: context,\n level,\n message: formatMessage(args[0], ...args.slice(1)),\n });\n }\n}\n"],"mappings":";;;;AAAA,SAASA,cAAc;AAEhB,SAASC,cAAcC,YAAiBC,MAAW;AACxD,SAAO;IAACD;OAAYC;IACjBC,IAAIC,SAAAA,EACJC,OAAO,CAACC,QAAQA,QAAQ,EAAA,EACxBC,KAAK,IAAA;AACV;AALgBP;AAahB,SAASQ,UAAUC,KAAQ;AACzB,MAAI,OAAOA,QAAQ,UAAU;AAC3B,WAAOA,IAAIC,KAAI;EACjB;AACA,MAAID,eAAeE,OAAO;AACxB,WAAOC,OAAOH,GAAAA,EAAKC,KAAI;EACzB;AACA,MAAID,QAAQI,UAAaJ,QAAQ,QAAQK,cAAcL,GAAAA,GAAM;AAC3D,WAAO;EACT;AACA,MAAI;AACF,WAAOM,KAAKC,UAAUP,GAAAA;EACxB,QAAQ;AACN,WAAOG,OAAOH,GAAAA,EAAKC,KAAI;EACzB;AACF;AAfSF;AAiBT,SAASM,cAAcG,KAAQ;AAC7B,SACEA,QAAQ,QACR,OAAOA,QAAQ,YACfC,OAAOC,eAAeF,GAAAA,MAASC,OAAOE,aACtCF,OAAOG,KAAKJ,GAAAA,EAAKK,WAAW;AAEhC;AAPSR;;;ACzBT,IAAMS,kBAAkB;AAExB,IAAIC,YAAY;AAChB,IAAIC;AAEJ,eAAsBC,gBACpBC,aAA2C;AAE3CF,sBAAoBE;AAEpB,MAAIH,WAAW;AACb;EACF;AAEA,MAAI;AACF,UAAM,EAAEI,OAAM,IAAK,MAAM,OAAO,gBAAA;AAChC,UAAMC,aAAyB;MAC7B;MACA;MACA;MACA;MACA;MACA;;AAIFA,eAAWC,QAAQ,CAACC,WAAAA;AAClB,YAAMC,iBAAiBJ,OAAOG,MAAAA;AAC9BH,aAAOG,MAAAA,IAAU,SAAUE,YAAiBC,MAAW;AACrDC,mBAAWJ,QAAQ;UAACE;aAAYC;SAAK;AACrC,eAAOF,eAAeI,MAAMR,QAAQ;UAACK;aAAYC;SAAK;MACxD;IACF,CAAA;AAGAL,eAAWC,QAAQ,CAACC,WAAAA;AAClB,YAAMC,iBAAiBJ,OAAOS,UAAUN,MAAAA;AACxCH,aAAOS,UAAUN,MAAAA,IAAU,SAAUE,YAAiBC,MAAW;AAC/DC,mBAAWJ,QAAQ;UAACE;aAAYC;WAAO,KAAKI,OAAO;AACnD,eAAON,eAAeI,MAAM,MAAM;UAACH;aAAYC;SAAK;MACtD;IACF,CAAA;AAEAV,gBAAY;EACd,QAAQ;EAER;AACF;AA1CsBE;AA4CtB,SAASS,WAAWI,OAAiBL,MAAaI,SAAgB;AAChE,QAAME,OAAOf,uDAAmBgB;AAChC,MAAID,QAAQA,KAAKE,SAASnB,iBAAiB;AACzCiB,SAAKG,KAAK;MACRC,WAAWC,KAAKC,IAAG,IAAK;MACxBC,QAAQT;MACRC;MACAN,SAASe,cAAcd,KAAK,CAAA,GAAE,GAAKA,KAAKe,MAAM,CAAA,CAAA;IAChD,CAAA;EACF;AACF;AAVSd;","names":["format","formatMessage","message","args","map","formatArg","filter","arg","join","formatArg","arg","trim","Error","format","undefined","isEmptyObject","JSON","stringify","obj","Object","getPrototypeOf","prototype","keys","length","MAX_BUFFER_SIZE","isPatched","globalLogsContext","patchNestLogger","logsContext","Logger","logMethods","forEach","method","originalMethod","message","args","captureLog","apply","prototype","context","level","logs","getStore","length","push","timestamp","Date","now","logger","formatMessage","slice"]}
|