@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.
Files changed (67) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +689 -0
  3. package/dist/configs/log.service.config.d.ts +8 -0
  4. package/dist/configs/log.service.config.d.ts.map +1 -0
  5. package/dist/configs/log.service.config.js +50 -0
  6. package/dist/configs/log.service.config.js.map +1 -0
  7. package/dist/configs/log.storage.external.s3.config.d.ts +8 -0
  8. package/dist/configs/log.storage.external.s3.config.d.ts.map +1 -0
  9. package/dist/configs/log.storage.external.s3.config.js +27 -0
  10. package/dist/configs/log.storage.external.s3.config.js.map +1 -0
  11. package/dist/errors/log.error.d.ts +25 -0
  12. package/dist/errors/log.error.d.ts.map +1 -0
  13. package/dist/errors/log.error.js +27 -0
  14. package/dist/errors/log.error.js.map +1 -0
  15. package/dist/index.d.ts +22 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +35 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/interfaces/log.service.config.interface.d.ts +84 -0
  20. package/dist/interfaces/log.service.config.interface.d.ts.map +1 -0
  21. package/dist/interfaces/log.service.config.interface.js +3 -0
  22. package/dist/interfaces/log.service.config.interface.js.map +1 -0
  23. package/dist/interfaces/log.storage.base.service.interface.d.ts +21 -0
  24. package/dist/interfaces/log.storage.base.service.interface.d.ts.map +1 -0
  25. package/dist/interfaces/log.storage.base.service.interface.js +3 -0
  26. package/dist/interfaces/log.storage.base.service.interface.js.map +1 -0
  27. package/dist/interfaces/log.storage.external.s3.service.config.interface.d.ts +39 -0
  28. package/dist/interfaces/log.storage.external.s3.service.config.interface.d.ts.map +1 -0
  29. package/dist/interfaces/log.storage.external.s3.service.config.interface.js +3 -0
  30. package/dist/interfaces/log.storage.external.s3.service.config.interface.js.map +1 -0
  31. package/dist/middlewares/log.middleware.d.ts +12 -0
  32. package/dist/middlewares/log.middleware.d.ts.map +1 -0
  33. package/dist/middlewares/log.middleware.js +63 -0
  34. package/dist/middlewares/log.middleware.js.map +1 -0
  35. package/dist/services/log.service.d.ts +224 -0
  36. package/dist/services/log.service.d.ts.map +1 -0
  37. package/dist/services/log.service.js +572 -0
  38. package/dist/services/log.service.js.map +1 -0
  39. package/dist/services/log.storage.base.service.d.ts +77 -0
  40. package/dist/services/log.storage.base.service.d.ts.map +1 -0
  41. package/dist/services/log.storage.base.service.js +107 -0
  42. package/dist/services/log.storage.base.service.js.map +1 -0
  43. package/dist/services/log.storage.external.s3.service.d.ts +66 -0
  44. package/dist/services/log.storage.external.s3.service.d.ts.map +1 -0
  45. package/dist/services/log.storage.external.s3.service.js +121 -0
  46. package/dist/services/log.storage.external.s3.service.js.map +1 -0
  47. package/dist/services/log.storage.external.service.d.ts +17 -0
  48. package/dist/services/log.storage.external.service.d.ts.map +1 -0
  49. package/dist/services/log.storage.external.service.js +22 -0
  50. package/dist/services/log.storage.external.service.js.map +1 -0
  51. package/dist/services/log.storage.local.service.d.ts +38 -0
  52. package/dist/services/log.storage.local.service.d.ts.map +1 -0
  53. package/dist/services/log.storage.local.service.js +96 -0
  54. package/dist/services/log.storage.local.service.js.map +1 -0
  55. package/dist/services/log.storage.service.d.ts +62 -0
  56. package/dist/services/log.storage.service.d.ts.map +1 -0
  57. package/dist/services/log.storage.service.js +92 -0
  58. package/dist/services/log.storage.service.js.map +1 -0
  59. package/dist/types/log.context.type.d.ts +74 -0
  60. package/dist/types/log.context.type.d.ts.map +1 -0
  61. package/dist/types/log.context.type.js +3 -0
  62. package/dist/types/log.context.type.js.map +1 -0
  63. package/dist/types/log.type.d.ts +45 -0
  64. package/dist/types/log.type.d.ts.map +1 -0
  65. package/dist/types/log.type.js +3 -0
  66. package/dist/types/log.type.js.map +1 -0
  67. 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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=log.service.config.interface.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=log.storage.base.service.interface.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=log.storage.external.s3.service.config.interface.js.map
@@ -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"}