cqrs-boilerplate-common 1.1.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 +2 -0
- package/dist/common-infra/common-infra.module.d.ts +4 -0
- package/dist/common-infra/common-infra.module.js +36 -0
- package/dist/common-infra/common-infra.module.js.map +1 -0
- package/dist/common-infra/database/abstraction/common-infra.options.d.ts +4 -0
- package/dist/common-infra/database/abstraction/common-infra.options.js +3 -0
- package/dist/common-infra/database/abstraction/common-infra.options.js.map +1 -0
- package/dist/common-infra/database/abstraction/db-module.options.d.ts +5 -0
- package/dist/common-infra/database/abstraction/db-module.options.js +3 -0
- package/dist/common-infra/database/abstraction/db-module.options.js.map +1 -0
- package/dist/common-infra/database/database.module.d.ts +5 -0
- package/dist/common-infra/database/database.module.js +40 -0
- package/dist/common-infra/database/database.module.js.map +1 -0
- package/dist/common-infra/database/typeorm.config.d.ts +3 -0
- package/dist/common-infra/database/typeorm.config.js +18 -0
- package/dist/common-infra/database/typeorm.config.js.map +1 -0
- package/dist/common-infra/http/axios.provider.d.ts +3 -0
- package/dist/common-infra/http/axios.provider.js +27 -0
- package/dist/common-infra/http/axios.provider.js.map +1 -0
- package/dist/common-infra/http/http-module.options.d.ts +10 -0
- package/dist/common-infra/http/http-module.options.js +3 -0
- package/dist/common-infra/http/http-module.options.js.map +1 -0
- package/dist/common-infra/http/http.constant.d.ts +3 -0
- package/dist/common-infra/http/http.constant.js +7 -0
- package/dist/common-infra/http/http.constant.js.map +1 -0
- package/dist/common-infra/http/http.module.d.ts +10 -0
- package/dist/common-infra/http/http.module.js +46 -0
- package/dist/common-infra/http/http.module.js.map +1 -0
- package/dist/common-infra/http/https.service.d.ts +18 -0
- package/dist/common-infra/http/https.service.js +96 -0
- package/dist/common-infra/http/https.service.js.map +1 -0
- package/dist/common-infra/socket.io/interfaces.d.ts +4 -0
- package/dist/common-infra/socket.io/interfaces.js +3 -0
- package/dist/common-infra/socket.io/interfaces.js.map +1 -0
- package/dist/common-infra/socket.io/socket.gateway.d.ts +9 -0
- package/dist/common-infra/socket.io/socket.gateway.js +52 -0
- package/dist/common-infra/socket.io/socket.gateway.js.map +1 -0
- package/dist/common-infra/socket.io/socket.module.d.ts +5 -0
- package/dist/common-infra/socket.io/socket.module.js +35 -0
- package/dist/common-infra/socket.io/socket.module.js.map +1 -0
- package/dist/common-infra/socket.io/socket.options.d.ts +6 -0
- package/dist/common-infra/socket.io/socket.options.js +3 -0
- package/dist/common-infra/socket.io/socket.options.js.map +1 -0
- package/dist/core-common/constant/app.constant.d.ts +2 -0
- package/dist/core-common/constant/app.constant.js +6 -0
- package/dist/core-common/constant/app.constant.js.map +1 -0
- package/dist/core-common/core-common.module.d.ts +4 -0
- package/dist/core-common/core-common.module.js +31 -0
- package/dist/core-common/core-common.module.js.map +1 -0
- package/dist/core-common/error/custom-error/already-exists.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/already-exists.error.js +12 -0
- package/dist/core-common/error/custom-error/already-exists.error.js.map +1 -0
- package/dist/core-common/error/custom-error/bad-request.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/bad-request.error.js +12 -0
- package/dist/core-common/error/custom-error/bad-request.error.js.map +1 -0
- package/dist/core-common/error/custom-error/conflict.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/conflict.error.js +12 -0
- package/dist/core-common/error/custom-error/conflict.error.js.map +1 -0
- package/dist/core-common/error/custom-error/custom-validation-error.d.ts +5 -0
- package/dist/core-common/error/custom-error/custom-validation-error.js +13 -0
- package/dist/core-common/error/custom-error/custom-validation-error.js.map +1 -0
- package/dist/core-common/error/custom-error/forbidden.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/forbidden.error.js +12 -0
- package/dist/core-common/error/custom-error/forbidden.error.js.map +1 -0
- package/dist/core-common/error/custom-error/internal-server.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/internal-server.error.js +12 -0
- package/dist/core-common/error/custom-error/internal-server.error.js.map +1 -0
- package/dist/core-common/error/custom-error/not-found.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/not-found.error.js +12 -0
- package/dist/core-common/error/custom-error/not-found.error.js.map +1 -0
- package/dist/core-common/error/custom-error/service-unavailable.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/service-unavailable.error.js +12 -0
- package/dist/core-common/error/custom-error/service-unavailable.error.js.map +1 -0
- package/dist/core-common/error/custom-error/unauthorized.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/unauthorized.error.js +12 -0
- package/dist/core-common/error/custom-error/unauthorized.error.js.map +1 -0
- package/dist/core-common/error/custom-error/unprocess-entity.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/unprocess-entity.error.js +12 -0
- package/dist/core-common/error/custom-error/unprocess-entity.error.js.map +1 -0
- package/dist/core-common/error/custom-error/validation.error.d.ts +4 -0
- package/dist/core-common/error/custom-error/validation.error.js +12 -0
- package/dist/core-common/error/custom-error/validation.error.js.map +1 -0
- package/dist/core-common/error/generic.error.d.ts +7 -0
- package/dist/core-common/error/generic.error.js +38 -0
- package/dist/core-common/error/generic.error.js.map +1 -0
- package/dist/core-common/logger/logger.interface.d.ts +7 -0
- package/dist/core-common/logger/logger.interface.js +3 -0
- package/dist/core-common/logger/logger.interface.js.map +1 -0
- package/dist/core-common/logger/logger.module.d.ts +6 -0
- package/dist/core-common/logger/logger.module.js +33 -0
- package/dist/core-common/logger/logger.module.js.map +1 -0
- package/dist/core-common/logger/logger.service.d.ts +29 -0
- package/dist/core-common/logger/logger.service.js +125 -0
- package/dist/core-common/logger/logger.service.js.map +1 -0
- package/dist/core-common/response-model/generic-error-response.model.d.ts +15 -0
- package/dist/core-common/response-model/generic-error-response.model.js +33 -0
- package/dist/core-common/response-model/generic-error-response.model.js.map +1 -0
- package/dist/core-common/response-model/generic-success-response.model.d.ts +8 -0
- package/dist/core-common/response-model/generic-success-response.model.js +17 -0
- package/dist/core-common/response-model/generic-success-response.model.js.map +1 -0
- package/dist/core-common/result-model/result.d.ts +10 -0
- package/dist/core-common/result-model/result.js +38 -0
- package/dist/core-common/result-model/result.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/async-middleware/async-storage.middleware.d.ts +8 -0
- package/dist/middleware/async-middleware/async-storage.middleware.js +32 -0
- package/dist/middleware/async-middleware/async-storage.middleware.js.map +1 -0
- package/dist/middleware/async-middleware/async-storage.service.d.ts +4 -0
- package/dist/middleware/async-middleware/async-storage.service.js +24 -0
- package/dist/middleware/async-middleware/async-storage.service.js.map +1 -0
- package/dist/middleware/auth-middleware/auth.middleware.d.ts +13 -0
- package/dist/middleware/auth-middleware/auth.middleware.js +45 -0
- package/dist/middleware/auth-middleware/auth.middleware.js.map +1 -0
- package/dist/middleware/auth-middleware/jwt-validator.d.ts +6 -0
- package/dist/middleware/auth-middleware/jwt-validator.js +51 -0
- package/dist/middleware/auth-middleware/jwt-validator.js.map +1 -0
- package/dist/middleware/filter/global-exeception.filter.d.ts +4 -0
- package/dist/middleware/filter/global-exeception.filter.js +104 -0
- package/dist/middleware/filter/global-exeception.filter.js.map +1 -0
- package/dist/middleware/response-handler/response-handler.interceptor.d.ts +9 -0
- package/dist/middleware/response-handler/response-handler.interceptor.js +38 -0
- package/dist/middleware/response-handler/response-handler.interceptor.js.map +1 -0
- package/dist/middleware/response-handler/response-handler.module.d.ts +2 -0
- package/dist/middleware/response-handler/response-handler.module.js +22 -0
- package/dist/middleware/response-handler/response-handler.module.js.map +1 -0
- package/dist/middleware/utils/http-response.formatter.d.ts +10 -0
- package/dist/middleware/utils/http-response.formatter.js +89 -0
- package/dist/middleware/utils/http-response.formatter.js.map +1 -0
- package/dist/middleware/utils/http-response.interceptor.d.ts +8 -0
- package/dist/middleware/utils/http-response.interceptor.js +31 -0
- package/dist/middleware/utils/http-response.interceptor.js.map +1 -0
- package/dist/middleware/utils/http-response.module.d.ts +2 -0
- package/dist/middleware/utils/http-response.module.js +22 -0
- package/dist/middleware/utils/http-response.module.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +115 -0
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +44 -0
|
@@ -0,0 +1,31 @@
|
|
|
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 CoreCommonModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CoreCommonModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const logger_module_1 = require("./logger/logger.module");
|
|
13
|
+
let CoreCommonModule = CoreCommonModule_1 = class CoreCommonModule {
|
|
14
|
+
static forRoot() {
|
|
15
|
+
return {
|
|
16
|
+
module: CoreCommonModule_1,
|
|
17
|
+
imports: [
|
|
18
|
+
logger_module_1.LoggerModule.forRoot(),
|
|
19
|
+
],
|
|
20
|
+
exports: [
|
|
21
|
+
logger_module_1.LoggerModule,
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.CoreCommonModule = CoreCommonModule;
|
|
27
|
+
exports.CoreCommonModule = CoreCommonModule = CoreCommonModule_1 = __decorate([
|
|
28
|
+
(0, common_1.Global)(),
|
|
29
|
+
(0, common_1.Module)({})
|
|
30
|
+
], CoreCommonModule);
|
|
31
|
+
//# sourceMappingURL=core-common.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-common.module.js","sourceRoot":"","sources":["../../src/core-common/core-common.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAA+D;AAC/D,0DAAsD;AAI/C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE;gBACP,4BAAY,CAAC,OAAO,EAAE;aACvB;YACD,OAAO,EAAE;gBACP,4BAAY;aACb;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,4CAAgB;2BAAhB,gBAAgB;IAF5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAY5B","sourcesContent":["// src/core-common.module.ts\nimport { DynamicModule, Global, Module } from \"@nestjs/common\";\nimport { LoggerModule } from \"./logger/logger.module\";\n\n@Global()\n@Module({})\nexport class CoreCommonModule {\n static forRoot(): DynamicModule {\n return {\n module: CoreCommonModule,\n imports: [\n LoggerModule.forRoot(),\n ],\n exports: [\n LoggerModule,\n ],\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AlreadyExistsError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class AlreadyExistsError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.CONFLICT);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.AlreadyExistsError = AlreadyExistsError;
|
|
12
|
+
//# sourceMappingURL=already-exists.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"already-exists.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/already-exists.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAMhD,MAAa,kBAAmB,SAAQ,4BAAY;IAMlD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACF;AATD,gDASC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\n/**\n * Custom error class for representing the scenario where an entity already exists/Conflict with existing.\n * Extends the GenericError class.\n */\nexport class AlreadyExistsError extends GenericError {\n /**\n * Constructor for the AlreadyExistsError class.\n * @param code - Short code associated with the error.\n * @param message - Detailed error information.\n */\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.CONFLICT);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BadRequestError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class BadRequestError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.BAD_REQUEST);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.BadRequestError = BadRequestError;
|
|
12
|
+
//# sourceMappingURL=bad-request.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bad-request.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/bad-request.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,eAAgB,SAAQ,4BAAY;IAC/C,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,0CAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class BadRequestError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.BAD_REQUEST);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConflictError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class ConflictError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.CONFLICT);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ConflictError = ConflictError;
|
|
12
|
+
//# sourceMappingURL=conflict.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/conflict.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAMhD,MAAa,aAAc,SAAQ,4BAAY;IAM7C,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACF;AATD,sCASC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\n/**\n * Custom error class for representing conflict errors.\n * Extends the GenericError class.\n */\nexport class ConflictError extends GenericError {\n /**\n * Constructor for the ConflictError class.\n * @param code - Short code associated with the error.\n * @param message - Detailed error information.\n */\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.CONFLICT);\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomValidationError = void 0;
|
|
4
|
+
const bad_request_error_1 = require("./bad-request.error");
|
|
5
|
+
class CustomValidationError extends bad_request_error_1.BadRequestError {
|
|
6
|
+
validationErrors;
|
|
7
|
+
constructor(validationErrors) {
|
|
8
|
+
super("ValidationError", "There are issues found in the input provided.");
|
|
9
|
+
this.validationErrors = validationErrors;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.CustomValidationError = CustomValidationError;
|
|
13
|
+
//# sourceMappingURL=custom-validation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-validation-error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/custom-validation-error.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAEtD,MAAa,qBAAsB,SAAQ,mCAAe;IAE/C;IADT,YACS,gBAAqB;QAE5B,KAAK,CAAC,iBAAiB,EAAE,+CAA+C,CAAC,CAAC;QAFnE,qBAAgB,GAAhB,gBAAgB,CAAK;IAG9B,CAAC;CACF;AAND,sDAMC","sourcesContent":["import { BadRequestError } from \"./bad-request.error\";\n\nexport class CustomValidationError extends BadRequestError {\n constructor(\n public validationErrors: any\n ) {\n super(\"ValidationError\", \"There are issues found in the input provided.\");\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ForbiddenError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class ForbiddenError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.FORBIDDEN);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ForbiddenError = ForbiddenError;
|
|
12
|
+
//# sourceMappingURL=forbidden.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/forbidden.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,cAAe,SAAQ,4BAAY;IAC9C,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACF;AAJD,wCAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class ForbiddenError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.FORBIDDEN);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InternalServerError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class InternalServerError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code = "INTERNAL_SERVER_ERROR", message = "An unexpected error occurred") {
|
|
8
|
+
super(code, message, common_1.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.InternalServerError = InternalServerError;
|
|
12
|
+
//# sourceMappingURL=internal-server.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-server.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/internal-server.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,mBAAoB,SAAQ,4BAAY;IACnD,YACE,IAAI,GAAG,uBAAuB,EAC9B,OAAO,GAAG,8BAA8B;QAExC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,qBAAqB,CAAC,CAAC;IACzD,CAAC;CACF;AAPD,kDAOC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class InternalServerError extends GenericError {\n constructor(\n code = \"INTERNAL_SERVER_ERROR\",\n message = \"An unexpected error occurred\",\n ) {\n super(code, message, HttpStatus.INTERNAL_SERVER_ERROR);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotFoundError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class NotFoundError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.NOT_FOUND);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.NotFoundError = NotFoundError;
|
|
12
|
+
//# sourceMappingURL=not-found.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/not-found.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,aAAc,SAAQ,4BAAY;IAC7C,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACF;AAJD,sCAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class NotFoundError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.NOT_FOUND);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServiceUnavailableError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class ServiceUnavailableError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.SERVICE_UNAVAILABLE);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ServiceUnavailableError = ServiceUnavailableError;
|
|
12
|
+
//# sourceMappingURL=service-unavailable.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-unavailable.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/service-unavailable.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,uBAAwB,SAAQ,4BAAY;IACvD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,mBAAmB,CAAC,CAAC;IACvD,CAAC;CACF;AAJD,0DAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class ServiceUnavailableError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.SERVICE_UNAVAILABLE);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnauthorizedError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class UnauthorizedError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.UNAUTHORIZED);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.UnauthorizedError = UnauthorizedError;
|
|
12
|
+
//# sourceMappingURL=unauthorized.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unauthorized.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/unauthorized.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,iBAAkB,SAAQ,4BAAY;IACjD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;CACF;AAJD,8CAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class UnauthorizedError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.UNAUTHORIZED);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnprocessableEntityError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class UnprocessableEntityError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.UNPROCESSABLE_ENTITY);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.UnprocessableEntityError = UnprocessableEntityError;
|
|
12
|
+
//# sourceMappingURL=unprocess-entity.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unprocess-entity.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/unprocess-entity.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,wBAAyB,SAAQ,4BAAY;IACxD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,4DAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class UnprocessableEntityError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.UNPROCESSABLE_ENTITY);\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidationError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const generic_error_1 = require("../generic.error");
|
|
6
|
+
class ValidationError extends generic_error_1.GenericError {
|
|
7
|
+
constructor(code, message) {
|
|
8
|
+
super(code, message, common_1.HttpStatus.UNPROCESSABLE_ENTITY);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ValidationError = ValidationError;
|
|
12
|
+
//# sourceMappingURL=validation.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.error.js","sourceRoot":"","sources":["../../../../src/core-common/error/custom-error/validation.error.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,oDAAgD;AAEhD,MAAa,eAAgB,SAAQ,4BAAY;IAC/C,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAU,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,0CAIC","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { GenericError } from \"../generic.error\";\n\nexport class ValidationError extends GenericError {\n constructor(code: string, message: string) {\n super(code, message, HttpStatus.UNPROCESSABLE_ENTITY);\n }\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GenericError = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
class GenericError {
|
|
16
|
+
code;
|
|
17
|
+
message;
|
|
18
|
+
statusCode;
|
|
19
|
+
constructor(code, message, statusCode = common_1.HttpStatus.INTERNAL_SERVER_ERROR) {
|
|
20
|
+
this.code = code;
|
|
21
|
+
this.message = message;
|
|
22
|
+
this.statusCode = statusCode;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.GenericError = GenericError;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({ description: "Short error code" }),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], GenericError.prototype, "code", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, swagger_1.ApiProperty)({ description: "Detailed error description" }),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], GenericError.prototype, "message", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, swagger_1.ApiProperty)({ description: "Detailed error description" }),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], GenericError.prototype, "statusCode", void 0);
|
|
38
|
+
//# sourceMappingURL=generic.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.error.js","sourceRoot":"","sources":["../../../src/core-common/error/generic.error.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAA8C;AAK9C,MAAa,YAAY;IAEhB,IAAI,CAAS;IAGb,OAAO,CAAS;IAGhB,UAAU,CAAa;IAO9B,YACE,IAAY,EACZ,OAAe,EACf,aAAyB,mBAAU,CAAC,qBAAqB;QAEzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAxBD,oCAwBC;AAtBQ;IADN,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;;0CAC7B;AAGb;IADN,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;6CACpC;AAGhB;IADN,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;gDAC7B","sourcesContent":["import { HttpStatus } from \"@nestjs/common\";\nimport { ApiProperty } from \"@nestjs/swagger\";\n\n/**\n * Custom error class which needs to be returned from the lower layers to the higher calling layers\n */\nexport class GenericError {\n @ApiProperty({ description: \"Short error code\" })\n public code: string;\n\n @ApiProperty({ description: \"Detailed error description\" })\n public message: string;\n\n @ApiProperty({ description: \"Detailed error description\" })\n public statusCode: HttpStatus;\n\n /**\n * Default constructor\n * @param code - Short error code e.g. \"InvaliOperation\", \"ItemNotFound\" etc\n * @param message - Detailed error message\n */\n constructor(\n code: string,\n message: string,\n statusCode: HttpStatus = HttpStatus.INTERNAL_SERVER_ERROR,\n ) {\n this.code = code;\n this.message = message;\n this.statusCode = statusCode;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.interface.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.interface.ts"],"names":[],"mappings":"","sourcesContent":["// src/logger/logger.options.ts\nexport interface LoggerModuleOptions {\n level?: string;\n deploymentEnv?: string;\n serviceVersion?: string;\n otelAgentHost?: string;\n overrideConsole?: boolean;\n}"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 LoggerModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.LoggerModule = exports.LOGGER_OPTIONS = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const logger_service_1 = require("./logger.service");
|
|
13
|
+
exports.LOGGER_OPTIONS = Symbol("LOGGER_OPTIONS");
|
|
14
|
+
let LoggerModule = LoggerModule_1 = class LoggerModule {
|
|
15
|
+
static forRoot(options = {}) {
|
|
16
|
+
return {
|
|
17
|
+
module: LoggerModule_1,
|
|
18
|
+
providers: [
|
|
19
|
+
logger_service_1.LoggerService,
|
|
20
|
+
{
|
|
21
|
+
provide: exports.LOGGER_OPTIONS,
|
|
22
|
+
useValue: options,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
exports: [logger_service_1.LoggerService],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.LoggerModule = LoggerModule;
|
|
30
|
+
exports.LoggerModule = LoggerModule = LoggerModule_1 = __decorate([
|
|
31
|
+
(0, common_1.Module)({})
|
|
32
|
+
], LoggerModule);
|
|
33
|
+
//# sourceMappingURL=logger.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAuD;AACvD,qDAAiD;AAGpC,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,8BAAa;gBACb;oBACE,OAAO,EAAE,sBAAc;oBACvB,QAAQ,EAAE,OAAO;iBAClB;aACF;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 { LoggerService } from \"./logger.service\";\nimport { LoggerModuleOptions } from \"./logger.interface\";\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 LoggerService,\n {\n provide: LOGGER_OPTIONS,\n useValue: options,\n },\n ],\n exports: [LoggerService],\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type LogMetadata = {
|
|
2
|
+
ClassName?: string;
|
|
3
|
+
MethodName?: string;
|
|
4
|
+
};
|
|
5
|
+
export type OrgContext = {
|
|
6
|
+
orgId?: string;
|
|
7
|
+
orgFid?: string;
|
|
8
|
+
userId?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class LoggerService {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private readonly deploymentEnv;
|
|
13
|
+
private readonly hostImageVersion;
|
|
14
|
+
private readonly otelAgentHost;
|
|
15
|
+
constructor(logLevel?: string);
|
|
16
|
+
log(message: string, metadata?: LogMetadata): void;
|
|
17
|
+
debug(message: string, metadata?: LogMetadata): void;
|
|
18
|
+
warn(message: string, metadata?: LogMetadata): void;
|
|
19
|
+
error(message: string, metadata?: LogMetadata, error?: Error): void;
|
|
20
|
+
private write;
|
|
21
|
+
private createLogger;
|
|
22
|
+
private buildAttributes;
|
|
23
|
+
private cleanMeta;
|
|
24
|
+
private safeStringify;
|
|
25
|
+
private circularReplacer;
|
|
26
|
+
private redactSecrets;
|
|
27
|
+
private overrideConsole;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LoggerService = void 0;
|
|
7
|
+
const winston_1 = __importDefault(require("winston"));
|
|
8
|
+
var SeverityText;
|
|
9
|
+
(function (SeverityText) {
|
|
10
|
+
SeverityText["INFO"] = "Information";
|
|
11
|
+
SeverityText["DEBUG"] = "Debug";
|
|
12
|
+
SeverityText["WARNING"] = "Warning";
|
|
13
|
+
SeverityText["ERROR"] = "Error";
|
|
14
|
+
})(SeverityText || (SeverityText = {}));
|
|
15
|
+
class LoggerService {
|
|
16
|
+
logger;
|
|
17
|
+
deploymentEnv;
|
|
18
|
+
hostImageVersion;
|
|
19
|
+
otelAgentHost;
|
|
20
|
+
constructor(logLevel = "debug") {
|
|
21
|
+
this.deploymentEnv = "rls-dev";
|
|
22
|
+
this.hostImageVersion = process.env.SERVICE_VERSION ?? "202501.1";
|
|
23
|
+
this.otelAgentHost = process.env.OTEL_AGENT_HOST ?? "10.0.0.1";
|
|
24
|
+
this.logger = this.createLogger(logLevel);
|
|
25
|
+
this.overrideConsole();
|
|
26
|
+
}
|
|
27
|
+
log(message, metadata) {
|
|
28
|
+
this.write("info", SeverityText.INFO, message, metadata);
|
|
29
|
+
}
|
|
30
|
+
debug(message, metadata) {
|
|
31
|
+
this.write("debug", SeverityText.DEBUG, message, metadata);
|
|
32
|
+
}
|
|
33
|
+
warn(message, metadata) {
|
|
34
|
+
this.write("warn", SeverityText.WARNING, message, metadata);
|
|
35
|
+
}
|
|
36
|
+
error(message, metadata, error) {
|
|
37
|
+
this.write("error", SeverityText.ERROR, message, metadata, error);
|
|
38
|
+
}
|
|
39
|
+
write(level, severity, message, metadata = {}, error) {
|
|
40
|
+
const body = {
|
|
41
|
+
SeverityText: severity,
|
|
42
|
+
...metadata,
|
|
43
|
+
...(error && {
|
|
44
|
+
ErrorMessage: error.message,
|
|
45
|
+
StackTrace: error.stack,
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
this.logger[level](this.redactSecrets(message), body);
|
|
49
|
+
}
|
|
50
|
+
createLogger(level) {
|
|
51
|
+
return winston_1.default.createLogger({
|
|
52
|
+
level,
|
|
53
|
+
levels: winston_1.default.config.npm.levels,
|
|
54
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.default.format.printf(({ level, message, timestamp, ...meta }) => JSON.stringify({
|
|
55
|
+
message: this.safeStringify(message),
|
|
56
|
+
attributes: this.buildAttributes(level),
|
|
57
|
+
timestamp: timestamp,
|
|
58
|
+
...this.cleanMeta(meta),
|
|
59
|
+
}))),
|
|
60
|
+
transports: [new winston_1.default.transports.Console()],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
buildAttributes(level) {
|
|
64
|
+
return {
|
|
65
|
+
"service.image.version": this.hostImageVersion,
|
|
66
|
+
"deployment.environment": this.deploymentEnv,
|
|
67
|
+
"otel.agent.host": this.otelAgentHost,
|
|
68
|
+
"service.log.level": level,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
cleanMeta(meta) {
|
|
72
|
+
return Object.fromEntries(Object.entries(meta).filter(([_, value]) => value !== undefined && value !== "None"));
|
|
73
|
+
}
|
|
74
|
+
safeStringify(input) {
|
|
75
|
+
try {
|
|
76
|
+
return typeof input === "string"
|
|
77
|
+
? input
|
|
78
|
+
: JSON.stringify(input, this.circularReplacer());
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return "[Unserializable Object]";
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
circularReplacer() {
|
|
85
|
+
const seen = new WeakSet();
|
|
86
|
+
return (_, value) => {
|
|
87
|
+
if (typeof value === "object" && value !== null) {
|
|
88
|
+
if (seen.has(value))
|
|
89
|
+
return "[Circular]";
|
|
90
|
+
seen.add(value);
|
|
91
|
+
}
|
|
92
|
+
return value;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
redactSecrets(message) {
|
|
96
|
+
const patterns = [
|
|
97
|
+
{
|
|
98
|
+
name: "JWT",
|
|
99
|
+
regex: /eyJ[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+/g,
|
|
100
|
+
visible: 10,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "BEARER",
|
|
104
|
+
regex: /Bearer\s+eyJ[A-Za-z0-9\-._~+/]+=*/gi,
|
|
105
|
+
visible: 15,
|
|
106
|
+
},
|
|
107
|
+
{ name: "API_KEY", regex: /\b[A-Za-z0-9]{32,}\b/g, visible: 8 },
|
|
108
|
+
{ name: "AWS_SECRET", regex: /AKIA[0-9A-Z]{16}/g, visible: 8 },
|
|
109
|
+
];
|
|
110
|
+
return patterns.reduce((msg, { regex, visible, name }) => {
|
|
111
|
+
return msg.replace(regex, (m) => `${m.slice(0, visible)}...[REDACTED_${name}]`);
|
|
112
|
+
}, message);
|
|
113
|
+
}
|
|
114
|
+
overrideConsole() {
|
|
115
|
+
const blocked = ["NodeSDK", "AuthToken"];
|
|
116
|
+
console.log = (...args) => {
|
|
117
|
+
const msg = args.map(String).join(" ");
|
|
118
|
+
if (blocked.some((k) => msg.includes(k)))
|
|
119
|
+
return;
|
|
120
|
+
this.log(msg);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.LoggerService = LoggerService;
|
|
125
|
+
//# sourceMappingURL=logger.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../../src/core-common/logger/logger.service.ts"],"names":[],"mappings":"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","sourcesContent":["import winston, { Logger } from \"winston\";\n\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\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(logLevel: string = \"debug\") {\n this.deploymentEnv = \"rls-dev\";\n this.hostImageVersion = process.env.SERVICE_VERSION ?? \"202501.1\";\n this.otelAgentHost = process.env.OTEL_AGENT_HOST ?? \"10.0.0.1\";\n this.logger = this.createLogger(logLevel);\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.timestamp({ format: \"YYYY-MM-DD HH:mm:ss\" }),\n winston.format.printf(({ level, message, timestamp, ...meta }) =>\n JSON.stringify({\n message: 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"]}
|