@nicollasfrazao/liguelead-log-service 1.0.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/LICENSE +15 -0
- package/README.md +689 -0
- package/dist/configs/log.service.config.d.ts +8 -0
- package/dist/configs/log.service.config.d.ts.map +1 -0
- package/dist/configs/log.service.config.js +50 -0
- package/dist/configs/log.service.config.js.map +1 -0
- package/dist/configs/log.storage.external.s3.config.d.ts +8 -0
- package/dist/configs/log.storage.external.s3.config.d.ts.map +1 -0
- package/dist/configs/log.storage.external.s3.config.js +27 -0
- package/dist/configs/log.storage.external.s3.config.js.map +1 -0
- package/dist/errors/log.error.d.ts +25 -0
- package/dist/errors/log.error.d.ts.map +1 -0
- package/dist/errors/log.error.js +27 -0
- package/dist/errors/log.error.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/log.service.config.interface.d.ts +84 -0
- package/dist/interfaces/log.service.config.interface.d.ts.map +1 -0
- package/dist/interfaces/log.service.config.interface.js +3 -0
- package/dist/interfaces/log.service.config.interface.js.map +1 -0
- package/dist/interfaces/log.storage.base.service.interface.d.ts +21 -0
- package/dist/interfaces/log.storage.base.service.interface.d.ts.map +1 -0
- package/dist/interfaces/log.storage.base.service.interface.js +3 -0
- package/dist/interfaces/log.storage.base.service.interface.js.map +1 -0
- package/dist/interfaces/log.storage.external.s3.service.config.interface.d.ts +39 -0
- package/dist/interfaces/log.storage.external.s3.service.config.interface.d.ts.map +1 -0
- package/dist/interfaces/log.storage.external.s3.service.config.interface.js +3 -0
- package/dist/interfaces/log.storage.external.s3.service.config.interface.js.map +1 -0
- package/dist/middlewares/log.middleware.d.ts +12 -0
- package/dist/middlewares/log.middleware.d.ts.map +1 -0
- package/dist/middlewares/log.middleware.js +63 -0
- package/dist/middlewares/log.middleware.js.map +1 -0
- package/dist/services/log.service.d.ts +224 -0
- package/dist/services/log.service.d.ts.map +1 -0
- package/dist/services/log.service.js +572 -0
- package/dist/services/log.service.js.map +1 -0
- package/dist/services/log.storage.base.service.d.ts +77 -0
- package/dist/services/log.storage.base.service.d.ts.map +1 -0
- package/dist/services/log.storage.base.service.js +107 -0
- package/dist/services/log.storage.base.service.js.map +1 -0
- package/dist/services/log.storage.external.s3.service.d.ts +66 -0
- package/dist/services/log.storage.external.s3.service.d.ts.map +1 -0
- package/dist/services/log.storage.external.s3.service.js +121 -0
- package/dist/services/log.storage.external.s3.service.js.map +1 -0
- package/dist/services/log.storage.external.service.d.ts +17 -0
- package/dist/services/log.storage.external.service.d.ts.map +1 -0
- package/dist/services/log.storage.external.service.js +22 -0
- package/dist/services/log.storage.external.service.js.map +1 -0
- package/dist/services/log.storage.local.service.d.ts +38 -0
- package/dist/services/log.storage.local.service.d.ts.map +1 -0
- package/dist/services/log.storage.local.service.js +96 -0
- package/dist/services/log.storage.local.service.js.map +1 -0
- package/dist/services/log.storage.service.d.ts +62 -0
- package/dist/services/log.storage.service.d.ts.map +1 -0
- package/dist/services/log.storage.service.js +92 -0
- package/dist/services/log.storage.service.js.map +1 -0
- package/dist/types/log.context.type.d.ts +74 -0
- package/dist/types/log.context.type.d.ts.map +1 -0
- package/dist/types/log.context.type.js +3 -0
- package/dist/types/log.context.type.js.map +1 -0
- package/dist/types/log.type.d.ts +45 -0
- package/dist/types/log.type.d.ts.map +1 -0
- package/dist/types/log.type.js +3 -0
- package/dist/types/log.type.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.service.config.d.ts","sourceRoot":"","sources":["../../src/configs/log.service.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAO,yBAyCtC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLogServiceConfig = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Get logging configuration
|
|
6
|
+
*
|
|
7
|
+
* @returns {LogServiceConfigInterface}
|
|
8
|
+
*/
|
|
9
|
+
const getLogServiceConfig = () => {
|
|
10
|
+
const config = {
|
|
11
|
+
environment: process.env.NODE_ENV || 'development',
|
|
12
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
13
|
+
includeRequestBody: process.env.LOG_INCLUDE_REQUEST_BODY === 'true',
|
|
14
|
+
includeResponseBody: process.env.LOG_INCLUDE_RESPONSE_BODY === 'true',
|
|
15
|
+
includeRequestHeaders: process.env.LOG_INCLUDE_REQUEST_HEADERS === 'true',
|
|
16
|
+
maxBodySize: parseInt(process.env.LOG_MAX_BODY_SIZE || '5000'),
|
|
17
|
+
sensitiveFields: [
|
|
18
|
+
'password',
|
|
19
|
+
'senha',
|
|
20
|
+
'token',
|
|
21
|
+
'access_token',
|
|
22
|
+
'refresh_token',
|
|
23
|
+
'authorization',
|
|
24
|
+
'credit_card',
|
|
25
|
+
'creditCard',
|
|
26
|
+
'cpf',
|
|
27
|
+
'cnpj',
|
|
28
|
+
'phone',
|
|
29
|
+
'phones',
|
|
30
|
+
'numbers',
|
|
31
|
+
'number',
|
|
32
|
+
'telefone',
|
|
33
|
+
'email',
|
|
34
|
+
'api_key',
|
|
35
|
+
'secret',
|
|
36
|
+
'private_key'
|
|
37
|
+
],
|
|
38
|
+
logExternalRequestCalls: process.env.LOG_EXTERNAL_REQUEST_CALLS === 'true',
|
|
39
|
+
timestampFormat: 'iso',
|
|
40
|
+
useColors: process.env.NODE_ENV === 'development',
|
|
41
|
+
logPrefix: process.env.LOG_PREFIX || '[LL-API]',
|
|
42
|
+
logDestination: process.env.LOG_DESTINATION || 'storage',
|
|
43
|
+
useS3Storage: process.env.LOG_USE_S3_STORAGE === 'true',
|
|
44
|
+
useLog: process.env.LOG_USE === 'true',
|
|
45
|
+
service: process.env.LOG_SERVICE_NAME || 'log-service'
|
|
46
|
+
};
|
|
47
|
+
return config;
|
|
48
|
+
};
|
|
49
|
+
exports.getLogServiceConfig = getLogServiceConfig;
|
|
50
|
+
//# sourceMappingURL=log.service.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.service.config.js","sourceRoot":"","sources":["../../src/configs/log.service.config.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,GAA8B,EAAE;IAEjE,MAAM,MAAM,GAA8B;QACxC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAoD,IAAI,aAAa;QAC9F,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAA+C,IAAI,MAAM;QAC5E,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM;QACnE,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM;QACrE,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM;QACzE,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC;QAC9D,eAAe,EAAE;YACf,UAAU;YACV,OAAO;YACP,OAAO;YACP,cAAc;YACd,eAAe;YACf,eAAe;YACf,aAAa;YACb,YAAY;YACZ,KAAK;YACL,MAAM;YACN,OAAO;YACP,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,UAAU;YACV,OAAO;YACP,SAAS;YACT,QAAQ;YACR,aAAa;SACd;QACD,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,MAAM;QAC1E,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QACjD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU;QAC/C,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAA8D,IAAI,SAAS;QACvG,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM;QACvD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM;QACtC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa;KACvD,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzCW,QAAA,mBAAmB,uBAyC9B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LogStorageExternalS3ServiceConfigInterface } from "../interfaces/log.storage.external.s3.service.config.interface";
|
|
2
|
+
/**
|
|
3
|
+
* Get Log Storage External S3 Configuration
|
|
4
|
+
*
|
|
5
|
+
* @returns {LogStorageExternalS3ServiceConfigInterface} Log Storage External S3 Configuration
|
|
6
|
+
*/
|
|
7
|
+
export declare const getLogStorageExternalS3Config: () => LogStorageExternalS3ServiceConfigInterface;
|
|
8
|
+
//# sourceMappingURL=log.storage.external.s3.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.storage.external.s3.config.d.ts","sourceRoot":"","sources":["../../src/configs/log.storage.external.s3.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,gEAAgE,CAAC;AAE5H;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAAO,0CAqBhD,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLogStorageExternalS3Config = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Get Log Storage External S3 Configuration
|
|
6
|
+
*
|
|
7
|
+
* @returns {LogStorageExternalS3ServiceConfigInterface} Log Storage External S3 Configuration
|
|
8
|
+
*/
|
|
9
|
+
const getLogStorageExternalS3Config = () => {
|
|
10
|
+
let config = {
|
|
11
|
+
firehoseStreamName: process.env.LOG_FIREHOSE_STREAM_NAME || 'log-service-firehose',
|
|
12
|
+
region: process.env.LOG_AWS_REGION || 'us-east-1',
|
|
13
|
+
version: 'latest',
|
|
14
|
+
};
|
|
15
|
+
if (process.env.LOG_AWS_ACCESS_KEY_ID
|
|
16
|
+
&& process.env.LOG_AWS_SECRET_ACCESS_KEY) {
|
|
17
|
+
config = {
|
|
18
|
+
...config,
|
|
19
|
+
endpoint: process.env.LOG_AWS_ENDPOINT || 'http://localhost:4566',
|
|
20
|
+
accessKeyId: process.env.LOG_AWS_ACCESS_KEY_ID,
|
|
21
|
+
secretAccessKey: process.env.LOG_AWS_SECRET_ACCESS_KEY,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return config;
|
|
25
|
+
};
|
|
26
|
+
exports.getLogStorageExternalS3Config = getLogStorageExternalS3Config;
|
|
27
|
+
//# sourceMappingURL=log.storage.external.s3.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.storage.external.s3.config.js","sourceRoot":"","sources":["../../src/configs/log.storage.external.s3.config.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,GAA+C,EAAE;IAE5F,IAAI,MAAM,GAA+C;QACvD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,sBAAsB;QAClF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;QACjD,OAAO,EAAE,QAAQ;KAClB,CAAC;IAEF,IACE,OAAO,CAAC,GAAG,CAAC,qBAAqB;WAC9B,OAAO,CAAC,GAAG,CAAC,yBAAyB,EACxC,CAAC;QACD,MAAM,GAAG;YACP,GAAG,MAAM;YACT,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB;YACjE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC9C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA;AArBY,QAAA,6BAA6B,iCAqBzC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class LogError
|
|
3
|
+
*
|
|
4
|
+
* @property {number} statusCode - HTTP status code associated with the error
|
|
5
|
+
* @property {any} details - Additional details about the error
|
|
6
|
+
*/
|
|
7
|
+
export declare class LogError extends Error {
|
|
8
|
+
/**
|
|
9
|
+
* @var {number} statusCode - HTTP status code associated with the error
|
|
10
|
+
*/
|
|
11
|
+
statusCode: number;
|
|
12
|
+
/**
|
|
13
|
+
* @var {any} details - Additional details about the error
|
|
14
|
+
*/
|
|
15
|
+
details?: any;
|
|
16
|
+
/**
|
|
17
|
+
* LogError constructor
|
|
18
|
+
*
|
|
19
|
+
* @param message - Error message
|
|
20
|
+
* @param statusCode - HTTP status code associated with the error
|
|
21
|
+
* @param details - Additional details about the error
|
|
22
|
+
*/
|
|
23
|
+
constructor(message: string, statusCode?: number, details?: any);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=log.error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.error.d.ts","sourceRoot":"","sources":["../../src/errors/log.error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC;;OAEG;IACI,UAAU,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACI,OAAO,CAAC,EAAE,GAAG,CAAC;IAErB;;;;;;OAMG;gBAED,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,GAAG;CAahB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Class LogError
|
|
6
|
+
*
|
|
7
|
+
* @property {number} statusCode - HTTP status code associated with the error
|
|
8
|
+
* @property {any} details - Additional details about the error
|
|
9
|
+
*/
|
|
10
|
+
class LogError extends Error {
|
|
11
|
+
/**
|
|
12
|
+
* LogError constructor
|
|
13
|
+
*
|
|
14
|
+
* @param message - Error message
|
|
15
|
+
* @param statusCode - HTTP status code associated with the error
|
|
16
|
+
* @param details - Additional details about the error
|
|
17
|
+
*/
|
|
18
|
+
constructor(message, statusCode = 500, details) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'LogError';
|
|
21
|
+
this.statusCode = statusCode;
|
|
22
|
+
this.details = details;
|
|
23
|
+
Error.captureStackTrace(this, LogError);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.LogError = LogError;
|
|
27
|
+
//# sourceMappingURL=log.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.error.js","sourceRoot":"","sources":["../../src/errors/log.error.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,KAAK;IAWjC;;;;;;OAMG;IACH,YACE,OAAe,EACf,aAAqB,GAAG,EACxB,OAAa;QAEb,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,KAAK,CAAC,iBAAiB,CACrB,IAAI,EACJ,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AAlCD,4BAkCC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log Service Node.js Package
|
|
3
|
+
*
|
|
4
|
+
* A standalone logging service for Express applications with multi-destination storage
|
|
5
|
+
* (local files + S3 via Kinesis Firehose) and comprehensive request tracking.
|
|
6
|
+
*/
|
|
7
|
+
export { LogService } from './services/log.service';
|
|
8
|
+
export { logMiddleware } from './middlewares/log.middleware';
|
|
9
|
+
export { LogError } from './errors/log.error';
|
|
10
|
+
export type { LogType } from './types/log.type';
|
|
11
|
+
export type { LogContextType } from './types/log.context.type';
|
|
12
|
+
export type { LogServiceConfigInterface } from './interfaces/log.service.config.interface';
|
|
13
|
+
export type { LogStorageExternalS3ServiceConfigInterface } from './interfaces/log.storage.external.s3.service.config.interface';
|
|
14
|
+
export { getLogServiceConfig } from './configs/log.service.config';
|
|
15
|
+
export { getLogStorageExternalS3Config } from './configs/log.storage.external.s3.config';
|
|
16
|
+
export { LogStorageService } from './services/log.storage.service';
|
|
17
|
+
export { LogStorageBaseService } from './services/log.storage.base.service';
|
|
18
|
+
export { LogStorageLocalService } from './services/log.storage.local.service';
|
|
19
|
+
export { LogStorageExternalS3Service } from './services/log.storage.external.s3.service';
|
|
20
|
+
export { LogStorageExternalService } from './services/log.storage.external.service';
|
|
21
|
+
export type { LogStorageBaseServiceInterface } from './interfaces/log.storage.base.service.interface';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,YAAY,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAC3F,YAAY,EAAE,0CAA0C,EAAE,MAAM,+DAA+D,CAAC;AAGhI,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAGzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAGpF,YAAY,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Log Service Node.js Package
|
|
4
|
+
*
|
|
5
|
+
* A standalone logging service for Express applications with multi-destination storage
|
|
6
|
+
* (local files + S3 via Kinesis Firehose) and comprehensive request tracking.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.LogStorageExternalService = exports.LogStorageExternalS3Service = exports.LogStorageLocalService = exports.LogStorageBaseService = exports.LogStorageService = exports.getLogStorageExternalS3Config = exports.getLogServiceConfig = exports.LogError = exports.logMiddleware = exports.LogService = void 0;
|
|
10
|
+
// Main service exports
|
|
11
|
+
var log_service_1 = require("./services/log.service");
|
|
12
|
+
Object.defineProperty(exports, "LogService", { enumerable: true, get: function () { return log_service_1.LogService; } });
|
|
13
|
+
// Middleware exports
|
|
14
|
+
var log_middleware_1 = require("./middlewares/log.middleware");
|
|
15
|
+
Object.defineProperty(exports, "logMiddleware", { enumerable: true, get: function () { return log_middleware_1.logMiddleware; } });
|
|
16
|
+
// Error handling exports
|
|
17
|
+
var log_error_1 = require("./errors/log.error");
|
|
18
|
+
Object.defineProperty(exports, "LogError", { enumerable: true, get: function () { return log_error_1.LogError; } });
|
|
19
|
+
// Configuration exports
|
|
20
|
+
var log_service_config_1 = require("./configs/log.service.config");
|
|
21
|
+
Object.defineProperty(exports, "getLogServiceConfig", { enumerable: true, get: function () { return log_service_config_1.getLogServiceConfig; } });
|
|
22
|
+
var log_storage_external_s3_config_1 = require("./configs/log.storage.external.s3.config");
|
|
23
|
+
Object.defineProperty(exports, "getLogStorageExternalS3Config", { enumerable: true, get: function () { return log_storage_external_s3_config_1.getLogStorageExternalS3Config; } });
|
|
24
|
+
// Storage service exports (for advanced usage)
|
|
25
|
+
var log_storage_service_1 = require("./services/log.storage.service");
|
|
26
|
+
Object.defineProperty(exports, "LogStorageService", { enumerable: true, get: function () { return log_storage_service_1.LogStorageService; } });
|
|
27
|
+
var log_storage_base_service_1 = require("./services/log.storage.base.service");
|
|
28
|
+
Object.defineProperty(exports, "LogStorageBaseService", { enumerable: true, get: function () { return log_storage_base_service_1.LogStorageBaseService; } });
|
|
29
|
+
var log_storage_local_service_1 = require("./services/log.storage.local.service");
|
|
30
|
+
Object.defineProperty(exports, "LogStorageLocalService", { enumerable: true, get: function () { return log_storage_local_service_1.LogStorageLocalService; } });
|
|
31
|
+
var log_storage_external_s3_service_1 = require("./services/log.storage.external.s3.service");
|
|
32
|
+
Object.defineProperty(exports, "LogStorageExternalS3Service", { enumerable: true, get: function () { return log_storage_external_s3_service_1.LogStorageExternalS3Service; } });
|
|
33
|
+
var log_storage_external_service_1 = require("./services/log.storage.external.service");
|
|
34
|
+
Object.defineProperty(exports, "LogStorageExternalService", { enumerable: true, get: function () { return log_storage_external_service_1.LogStorageExternalService; } });
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uBAAuB;AACvB,sDAAoD;AAA3C,yGAAA,UAAU,OAAA;AAEnB,uBAAuB;AACvB,+DAA6D;AAApD,+GAAA,aAAa,OAAA;AAEtB,yBAAyB;AACzB,gDAA8C;AAArC,qGAAA,QAAQ,OAAA;AAUjB,wBAAwB;AACxB,mEAAmE;AAA1D,yHAAA,mBAAmB,OAAA;AAC5B,2FAAyF;AAAhF,+IAAA,6BAA6B,OAAA;AAEtC,+CAA+C;AAC/C,sEAAmE;AAA1D,wHAAA,iBAAiB,OAAA;AAC1B,gFAA4E;AAAnE,iIAAA,qBAAqB,OAAA;AAC9B,kFAA8E;AAArE,mIAAA,sBAAsB,OAAA;AAC/B,8FAAyF;AAAhF,8IAAA,2BAA2B,OAAA;AACpC,wFAAoF;AAA3E,yIAAA,yBAAyB,OAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface LogServiceConfigInterface
|
|
3
|
+
*
|
|
4
|
+
* Configuration options for logging.
|
|
5
|
+
*
|
|
6
|
+
* @property {string} environment - Current environment.
|
|
7
|
+
* @property {string} level - Minimum log level.
|
|
8
|
+
* @property {boolean} includeRequestBody - Include HTTP request body in logs.
|
|
9
|
+
* @property {boolean} includeResponseBody - Include HTTP response body in logs.
|
|
10
|
+
* @property {boolean} includeRequestHeaders - Include HTTP request headers in logs.
|
|
11
|
+
* @property {number} maxBodySize - Maximum body size to log (bytes).
|
|
12
|
+
* @property {string[]} sensitiveFields - Fields to redact in logs.
|
|
13
|
+
* @property {boolean} logExternalRequestCalls - Log external API calls.
|
|
14
|
+
* @property {string} timestampFormat - Format for timestamps.
|
|
15
|
+
* @property {boolean} useColors - Use colored output (console).
|
|
16
|
+
* @property {string} logPrefix - Prefix for log messages.
|
|
17
|
+
* @property {string} logDestination - Log output destination.
|
|
18
|
+
* @property {boolean} useS3Storage - Enable S3 storage.
|
|
19
|
+
* @property {boolean} useLog - Enable/disable logging.
|
|
20
|
+
* @property {string} service - Service identifier for logs.
|
|
21
|
+
*/
|
|
22
|
+
export interface LogServiceConfigInterface {
|
|
23
|
+
/**
|
|
24
|
+
* @var {string}
|
|
25
|
+
*/
|
|
26
|
+
environment: 'development' | 'homologation' | 'production' | 'test';
|
|
27
|
+
/**
|
|
28
|
+
* @var {string}
|
|
29
|
+
*/
|
|
30
|
+
level: 'error' | 'warn' | 'info' | 'debug';
|
|
31
|
+
/**
|
|
32
|
+
* @var {boolean}
|
|
33
|
+
*/
|
|
34
|
+
includeRequestBody: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* @var {boolean}
|
|
37
|
+
*/
|
|
38
|
+
includeResponseBody: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* @var {boolean}
|
|
41
|
+
*/
|
|
42
|
+
includeRequestHeaders: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* @var {number}
|
|
45
|
+
*/
|
|
46
|
+
maxBodySize: number;
|
|
47
|
+
/**
|
|
48
|
+
* @var {string[]}
|
|
49
|
+
*/
|
|
50
|
+
sensitiveFields: string[];
|
|
51
|
+
/**
|
|
52
|
+
* @var {boolean}
|
|
53
|
+
*/
|
|
54
|
+
logExternalRequestCalls: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* @var {string}
|
|
57
|
+
*/
|
|
58
|
+
timestampFormat: 'iso' | 'epoch';
|
|
59
|
+
/**
|
|
60
|
+
* @var {boolean}
|
|
61
|
+
*/
|
|
62
|
+
useColors: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* @var {string}
|
|
65
|
+
*/
|
|
66
|
+
logPrefix: string;
|
|
67
|
+
/**
|
|
68
|
+
* @var {string}
|
|
69
|
+
*/
|
|
70
|
+
logDestination: 'storage' | 'console' | 'both';
|
|
71
|
+
/**
|
|
72
|
+
* @var {boolean}
|
|
73
|
+
*/
|
|
74
|
+
useS3Storage: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* @var {boolean}
|
|
77
|
+
*/
|
|
78
|
+
useLog: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* @var {string}
|
|
81
|
+
*/
|
|
82
|
+
service: string;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=log.service.config.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.service.config.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/log.service.config.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,yBAAyB;IAExC;;OAEG;IACH,WAAW,EAAE,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,MAAM,CAAC;IAEpE;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE3C;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAE/C;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.service.config.interface.js","sourceRoot":"","sources":["../../src/interfaces/log.service.config.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LogType } from "../types/log.type";
|
|
2
|
+
/**
|
|
3
|
+
* Interface LogStorageBaseServiceInterface
|
|
4
|
+
*/
|
|
5
|
+
export interface LogStorageBaseServiceInterface {
|
|
6
|
+
/**
|
|
7
|
+
* Writes log data to the storage
|
|
8
|
+
*
|
|
9
|
+
* @param {LogType} data The log data to write
|
|
10
|
+
*
|
|
11
|
+
* @returns {Promise<void>}
|
|
12
|
+
*/
|
|
13
|
+
write(data: LogType): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Indicates if the storage target should be used
|
|
16
|
+
*
|
|
17
|
+
* @returns {boolean} True if the storage target should be used, false otherwise
|
|
18
|
+
*/
|
|
19
|
+
shouldUse(): boolean;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=log.storage.base.service.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.storage.base.service.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/log.storage.base.service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.storage.base.service.interface.js","sourceRoot":"","sources":["../../src/interfaces/log.storage.base.service.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface LogStorageExternalS3ServiceConfigInterface
|
|
3
|
+
*
|
|
4
|
+
* Configuration options for S3 logging with Kinesis Firehose.
|
|
5
|
+
*
|
|
6
|
+
* @property {string} region - AWS region for S3/Firebase
|
|
7
|
+
* @property {string} version - AWS SDK version
|
|
8
|
+
* @property {string} firehoseStreamName - Kinesis Firehose stream name
|
|
9
|
+
* @property {string} endpoint - Custom S3 endpoint (optional)
|
|
10
|
+
* @property {string} accessKeyId - AWS access key ID (optional)
|
|
11
|
+
* @property {string} secretAccessKey - AWS secret access key (optional)
|
|
12
|
+
*/
|
|
13
|
+
export interface LogStorageExternalS3ServiceConfigInterface {
|
|
14
|
+
/**
|
|
15
|
+
* @var {string}
|
|
16
|
+
*/
|
|
17
|
+
region: string;
|
|
18
|
+
/**
|
|
19
|
+
* @var {string}
|
|
20
|
+
*/
|
|
21
|
+
version: string;
|
|
22
|
+
/**
|
|
23
|
+
* @var {string}
|
|
24
|
+
*/
|
|
25
|
+
firehoseStreamName: string;
|
|
26
|
+
/**
|
|
27
|
+
* @var {string}
|
|
28
|
+
*/
|
|
29
|
+
endpoint?: string;
|
|
30
|
+
/**
|
|
31
|
+
* @var {string}
|
|
32
|
+
*/
|
|
33
|
+
accessKeyId?: string;
|
|
34
|
+
/**
|
|
35
|
+
* @var {string}
|
|
36
|
+
*/
|
|
37
|
+
secretAccessKey?: string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=log.storage.external.s3.service.config.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.storage.external.s3.service.config.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/log.storage.external.s3.service.config.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,0CAA0C;IAEzD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.storage.external.s3.service.config.interface.js","sourceRoot":"","sources":["../../src/interfaces/log.storage.external.s3.service.config.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
|
2
|
+
/**
|
|
3
|
+
* Middleware for logging incoming requests and their responses.
|
|
4
|
+
*
|
|
5
|
+
* @param {Request} request The request object
|
|
6
|
+
* @param {Response} response The response object
|
|
7
|
+
* @param {NextFunction} next The next middleware function
|
|
8
|
+
*
|
|
9
|
+
* @returns {void}
|
|
10
|
+
*/
|
|
11
|
+
export declare function logMiddleware(request: Request, response: Response, next: NextFunction): void;
|
|
12
|
+
//# sourceMappingURL=log.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.middleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/log.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,YAAY,EACb,MAAM,SAAS,CAAC;AAKjB;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,YAAY,GACjB,IAAI,CA6FN"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logMiddleware = logMiddleware;
|
|
4
|
+
const log_service_1 = require("../services/log.service");
|
|
5
|
+
/**
|
|
6
|
+
* Middleware for logging incoming requests and their responses.
|
|
7
|
+
*
|
|
8
|
+
* @param {Request} request The request object
|
|
9
|
+
* @param {Response} response The response object
|
|
10
|
+
* @param {NextFunction} next The next middleware function
|
|
11
|
+
*
|
|
12
|
+
* @returns {void}
|
|
13
|
+
*/
|
|
14
|
+
function logMiddleware(request, response, next) {
|
|
15
|
+
const startTime = Date.now();
|
|
16
|
+
const requestContext = log_service_1.LogService.createContextFromRequest(request);
|
|
17
|
+
log_service_1.LogService.info('Incoming request', requestContext);
|
|
18
|
+
const originalResponseSend = response.send;
|
|
19
|
+
const originalResponseJson = response.json;
|
|
20
|
+
let responseBody;
|
|
21
|
+
response.send = function (body) {
|
|
22
|
+
responseBody = body;
|
|
23
|
+
return originalResponseSend.call(this, body);
|
|
24
|
+
};
|
|
25
|
+
response.json = function (body) {
|
|
26
|
+
responseBody = body;
|
|
27
|
+
return originalResponseJson.call(this, body);
|
|
28
|
+
};
|
|
29
|
+
response.on('finish', () => {
|
|
30
|
+
const endTime = Date.now();
|
|
31
|
+
const responseTime = endTime - startTime;
|
|
32
|
+
const responseContext = log_service_1.LogService.createContextFromResponse(request, response, {
|
|
33
|
+
response_time: responseTime,
|
|
34
|
+
response: responseBody
|
|
35
|
+
});
|
|
36
|
+
const logLevel = response.statusCode >= 400
|
|
37
|
+
? 'error'
|
|
38
|
+
: 'info';
|
|
39
|
+
const message = response.statusCode >= 400
|
|
40
|
+
? 'Request completed with error'
|
|
41
|
+
: 'Request completed successfully';
|
|
42
|
+
if (logLevel === 'error') {
|
|
43
|
+
log_service_1.LogService.error(message, responseContext);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
log_service_1.LogService.info(message, responseContext);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
response.on('error', (error) => {
|
|
50
|
+
const endTime = Date.now();
|
|
51
|
+
const responseTime = endTime - startTime;
|
|
52
|
+
const errorContext = {
|
|
53
|
+
...requestContext,
|
|
54
|
+
status_code: response.statusCode || 500,
|
|
55
|
+
response_time: responseTime,
|
|
56
|
+
error: error.message,
|
|
57
|
+
stack: error.stack
|
|
58
|
+
};
|
|
59
|
+
log_service_1.LogService.error('Request failed with error', errorContext);
|
|
60
|
+
});
|
|
61
|
+
next();
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=log.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.middleware.js","sourceRoot":"","sources":["../../src/middlewares/log.middleware.ts"],"names":[],"mappings":";;AAkBA,sCAiGC;AA7GD,yDAAqD;AAGrD;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAC3B,OAAgB,EAChB,QAAkB,EAClB,IAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,wBAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEpE,wBAAU,CAAC,IAAI,CACb,kBAAkB,EAClB,cAAgC,CACjC,CAAC;IAEF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3C,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3C,IAAI,YAAiB,CAAC;IAEtB,QAAQ,CAAC,IAAI,GAAG,UAAS,IAAS;QAEhC,YAAY,GAAG,IAAI,CAAC;QAEpB,OAAO,oBAAoB,CAAC,IAAI,CAC9B,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,IAAI,GAAG,UAAS,IAAS;QAEhC,YAAY,GAAG,IAAI,CAAC;QAEpB,OAAO,oBAAoB,CAAC,IAAI,CAC9B,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,EAAE,CACT,QAAQ,EACR,GAAG,EAAE;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;QAEzC,MAAM,eAAe,GAAG,wBAAU,CAAC,yBAAyB,CAC1D,OAAO,EACP,QAAQ,EACR;YACE,aAAa,EAAE,YAAY;YAC3B,QAAQ,EAAE,YAAY;SACvB,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,IAAI,GAAG;YACzC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC;QAEX,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,GAAG;YACxC,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,gCAAgC,CAAC;QAErC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,wBAAU,CAAC,KAAK,CACd,OAAO,EACP,eAAe,CAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wBAAU,CAAC,IAAI,CACb,OAAO,EACP,eAAe,CAChB,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,QAAQ,CAAC,EAAE,CACT,OAAO,EACP,CAAC,KAAY,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;QAEzC,MAAM,YAAY,GAAmB;YACnC,GAAG,cAAc;YACjB,WAAW,EAAE,QAAQ,CAAC,UAAU,IAAI,GAAG;YACvC,aAAa,EAAE,YAAY;YAC3B,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;QAEF,wBAAU,CAAC,KAAK,CACd,2BAA2B,EAC3B,YAAY,CACb,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,EAAE,CAAC;AACT,CAAC"}
|