cqrs-boilerplate-common 1.1.5 → 1.1.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/core-common/logger/logger.module.d.ts +0 -4
- package/dist/core-common/logger/logger.module.js +1 -13
- package/dist/core-common/logger/logger.module.js.map +1 -1
- package/dist/core-common/logger/logger.service.d.ts +1 -1
- package/dist/core-common/logger/logger.service.js +26 -7
- package/dist/core-common/logger/logger.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -3,8 +3,4 @@ import { LoggerModuleOptions } from "./logger.interface";
|
|
|
3
3
|
export declare const LOGGER_OPTIONS: unique symbol;
|
|
4
4
|
export declare class LoggerModule {
|
|
5
5
|
static forRoot(options?: LoggerModuleOptions): DynamicModule;
|
|
6
|
-
static forRootAsync(options: {
|
|
7
|
-
useFactory: (...args: any[]) => LoggerModuleOptions | Promise<LoggerModuleOptions>;
|
|
8
|
-
inject?: any[];
|
|
9
|
-
}): DynamicModule;
|
|
10
6
|
}
|
|
@@ -16,27 +16,15 @@ let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
|
16
16
|
return {
|
|
17
17
|
module: LoggerModule_1,
|
|
18
18
|
providers: [
|
|
19
|
-
logger_service_1.LoggerService,
|
|
20
19
|
{
|
|
21
20
|
provide: exports.LOGGER_OPTIONS,
|
|
22
21
|
useValue: options,
|
|
23
22
|
},
|
|
23
|
+
logger_service_1.LoggerService,
|
|
24
24
|
],
|
|
25
25
|
exports: [logger_service_1.LoggerService],
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
static forRootAsync(options) {
|
|
29
|
-
const optionsProvider = {
|
|
30
|
-
provide: exports.LOGGER_OPTIONS,
|
|
31
|
-
useFactory: options.useFactory,
|
|
32
|
-
inject: options.inject || [],
|
|
33
|
-
};
|
|
34
|
-
return {
|
|
35
|
-
module: LoggerModule_1,
|
|
36
|
-
providers: [optionsProvider, logger_service_1.LoggerService],
|
|
37
|
-
exports: [logger_service_1.LoggerService],
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
28
|
};
|
|
41
29
|
exports.LoggerModule = LoggerModule;
|
|
42
30
|
exports.LoggerModule = LoggerModule = LoggerModule_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAuD;AAEvD,qDAAiD;AAEpC,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAGhD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,UAA+B,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,sBAAc;oBACvB,QAAQ,EAAE,OAAO;iBAClB;gBACD,8BAAa;aACd;YACD,OAAO,EAAE,CAAC,8BAAa,CAAC;SACzB,CAAC;IACJ,CAAC;CACF,CAAA;AAdY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,YAAY,CAcxB","sourcesContent":["// src/logger/logger.module.ts\nimport { DynamicModule, Module } from \"@nestjs/common\";\nimport { LoggerModuleOptions } from \"./logger.interface\";\nimport { LoggerService } from \"./logger.service\";\n\nexport const LOGGER_OPTIONS = Symbol(\"LOGGER_OPTIONS\");\n\n@Module({})\nexport class LoggerModule {\n static forRoot(options: LoggerModuleOptions = {}): DynamicModule {\n return {\n module: LoggerModule,\n providers: [\n {\n provide: LOGGER_OPTIONS,\n useValue: options,\n },\n LoggerService,\n ],\n exports: [LoggerService],\n };\n }\n}\n"]}
|
|
@@ -13,7 +13,7 @@ export declare class LoggerService {
|
|
|
13
13
|
private readonly deploymentEnv;
|
|
14
14
|
private readonly hostImageVersion;
|
|
15
15
|
private readonly otelAgentHost;
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(options: LoggerModuleOptions);
|
|
17
17
|
log(message: string, metadata?: LogMetadata): void;
|
|
18
18
|
debug(message: string, metadata?: LogMetadata): void;
|
|
19
19
|
warn(message: string, metadata?: LogMetadata): void;
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
2
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
16
|
};
|
|
5
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
18
|
exports.LoggerService = void 0;
|
|
19
|
+
const common_1 = require("@nestjs/common");
|
|
7
20
|
const strip_ansi_1 = __importDefault(require("strip-ansi"));
|
|
8
21
|
const winston_1 = __importDefault(require("winston"));
|
|
22
|
+
const logger_module_1 = require("./logger.module");
|
|
9
23
|
var SeverityText;
|
|
10
24
|
(function (SeverityText) {
|
|
11
25
|
SeverityText["INFO"] = "Information";
|
|
@@ -13,16 +27,16 @@ var SeverityText;
|
|
|
13
27
|
SeverityText["WARNING"] = "Warning";
|
|
14
28
|
SeverityText["ERROR"] = "Error";
|
|
15
29
|
})(SeverityText || (SeverityText = {}));
|
|
16
|
-
class LoggerService {
|
|
30
|
+
let LoggerService = class LoggerService {
|
|
17
31
|
logger;
|
|
18
32
|
deploymentEnv;
|
|
19
33
|
hostImageVersion;
|
|
20
34
|
otelAgentHost;
|
|
21
|
-
constructor(
|
|
22
|
-
this.deploymentEnv =
|
|
23
|
-
this.hostImageVersion =
|
|
24
|
-
this.otelAgentHost =
|
|
25
|
-
this.logger = this.createLogger(
|
|
35
|
+
constructor(options) {
|
|
36
|
+
this.deploymentEnv = options.deploymentEnv ?? "rls-dev";
|
|
37
|
+
this.hostImageVersion = options.serviceVersion ?? "202501.1";
|
|
38
|
+
this.otelAgentHost = options.otelAgentHost ?? "10.0.0.1";
|
|
39
|
+
this.logger = this.createLogger(options.level ?? "info");
|
|
26
40
|
this.overrideConsole();
|
|
27
41
|
}
|
|
28
42
|
log(message, metadata) {
|
|
@@ -121,6 +135,11 @@ class LoggerService {
|
|
|
121
135
|
this.log(msg);
|
|
122
136
|
};
|
|
123
137
|
}
|
|
124
|
-
}
|
|
138
|
+
};
|
|
125
139
|
exports.LoggerService = LoggerService;
|
|
140
|
+
exports.LoggerService = LoggerService = __decorate([
|
|
141
|
+
(0, common_1.Injectable)(),
|
|
142
|
+
__param(0, (0, common_1.Inject)(logger_module_1.LOGGER_OPTIONS)),
|
|
143
|
+
__metadata("design:paramtypes", [Object])
|
|
144
|
+
], LoggerService);
|
|
126
145
|
//# sourceMappingURL=logger.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Inject, Injectable } from \"@nestjs/common\";\nimport stripAnsi from \"strip-ansi\";\nimport winston, { Logger } from \"winston\";\nimport { LoggerModuleOptions } from \"./logger.interface\";\nimport { LOGGER_OPTIONS } from \"./logger.module\";\n/* ---------------------------------- Types --------------------------------- */\n\nenum SeverityText {\n INFO = \"Information\",\n DEBUG = \"Debug\",\n WARNING = \"Warning\",\n ERROR = \"Error\",\n}\n\ntype LogMetadata = {\n ClassName?: string;\n MethodName?: string;\n};\n\nexport type OrgContext = {\n orgId?: string;\n orgFid?: string;\n userId?: string;\n};\n\n/* --------------------------------- Service -------------------------------- */\n\n@Injectable()\nexport class LoggerService {\n private readonly logger: Logger;\n private readonly deploymentEnv: string;\n private readonly hostImageVersion: string;\n private readonly otelAgentHost: string;\n\n constructor(@Inject(LOGGER_OPTIONS) options: LoggerModuleOptions) {\n this.deploymentEnv = options.deploymentEnv ?? \"rls-dev\";\n this.hostImageVersion = options.serviceVersion ?? \"202501.1\";\n this.otelAgentHost = options.otelAgentHost ?? \"10.0.0.1\";\n this.logger = this.createLogger(options.level ?? \"info\");\n this.overrideConsole();\n }\n\n /* ------------------------------- Public API ------------------------------- */\n\n log(message: string, metadata?: LogMetadata) {\n this.write(\"info\", SeverityText.INFO, message, metadata);\n }\n\n debug(message: string, metadata?: LogMetadata) {\n this.write(\"debug\", SeverityText.DEBUG, message, metadata);\n }\n\n warn(message: string, metadata?: LogMetadata) {\n this.write(\"warn\", SeverityText.WARNING, message, metadata);\n }\n\n error(message: string, metadata?: LogMetadata, error?: Error) {\n this.write(\"error\", SeverityText.ERROR, message, metadata, error);\n }\n\n /* ------------------------------ Logger Core ------------------------------ */\n\n private write(\n level: keyof Logger,\n severity: SeverityText,\n message: string,\n metadata: LogMetadata = {},\n error?: Error\n ) {\n const body = {\n SeverityText: severity,\n ...metadata,\n ...(error && {\n ErrorMessage: error.message,\n StackTrace: error.stack,\n }),\n };\n\n this.logger[level](this.redactSecrets(message), body);\n }\n\n private createLogger(level: string): Logger {\n return winston.createLogger({\n level,\n levels: winston.config.npm.levels,\n format: winston.format.combine(\n winston.format.uncolorize(),\n winston.format.timestamp({ format: \"YYYY-MM-DD HH:mm:ss\" }),\n winston.format.json(),\n winston.format.printf(({ level, message, timestamp, ...meta }) =>\n JSON.stringify({\n message: stripAnsi(this.safeStringify(message)),\n attributes: this.buildAttributes(level),\n timestamp: timestamp,\n ...this.cleanMeta(meta),\n })\n )\n ),\n transports: [new winston.transports.Console()],\n });\n }\n\n /* ------------------------------- Context -------------------------------- */\n\n private buildAttributes(level: string) {\n return {\n \"service.image.version\": this.hostImageVersion,\n \"deployment.environment\": this.deploymentEnv,\n \"otel.agent.host\": this.otelAgentHost,\n \"service.log.level\": level,\n };\n }\n\n /* ------------------------------- Helpers -------------------------------- */\n\n private cleanMeta(meta: Record<string, unknown>) {\n return Object.fromEntries(\n Object.entries(meta).filter(\n ([_, value]) => value !== undefined && value !== \"None\"\n )\n );\n }\n\n private safeStringify(input: unknown): string {\n try {\n return typeof input === \"string\"\n ? input\n : JSON.stringify(input, this.circularReplacer());\n } catch {\n return \"[Unserializable Object]\";\n }\n }\n\n private circularReplacer() {\n const seen = new WeakSet();\n return (_: string, value: any) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) return \"[Circular]\";\n seen.add(value);\n }\n return value;\n };\n }\n\n /* ----------------------------- Redaction -------------------------------- */\n\n private redactSecrets(message: string): string {\n const patterns = [\n {\n name: \"JWT\",\n regex: /eyJ[a-zA-Z0-9-_]+\\.[a-zA-Z0-9-_]+\\.[a-zA-Z0-9-_]+/g,\n visible: 10,\n },\n {\n name: \"BEARER\",\n regex: /Bearer\\s+eyJ[A-Za-z0-9\\-._~+/]+=*/gi,\n visible: 15,\n },\n { name: \"API_KEY\", regex: /\\b[A-Za-z0-9]{32,}\\b/g, visible: 8 },\n { name: \"AWS_SECRET\", regex: /AKIA[0-9A-Z]{16}/g, visible: 8 },\n ];\n\n return patterns.reduce((msg, { regex, visible, name }) => {\n return msg.replace(\n regex,\n (m) => `${m.slice(0, visible)}...[REDACTED_${name}]`\n );\n }, message);\n }\n\n /* --------------------------- Console Override ---------------------------- */\n\n private overrideConsole() {\n const blocked = [\"NodeSDK\", \"AuthToken\"];\n console.log = (...args: unknown[]) => {\n const msg = args.map(String).join(\" \");\n if (blocked.some((k) => msg.includes(k))) return;\n this.log(msg);\n };\n }\n}\n"]}
|