@infosel-sdk/logger 0.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.
Files changed (47) hide show
  1. package/README.md +233 -0
  2. package/package.json +51 -0
  3. package/src/data/datasources/console_logger_datasource.d.ts +31 -0
  4. package/src/data/datasources/console_logger_datasource.js +96 -0
  5. package/src/data/datasources/console_logger_datasource.js.map +1 -0
  6. package/src/data/datasources/pino_logger_datasource.d.ts +32 -0
  7. package/src/data/datasources/pino_logger_datasource.js +103 -0
  8. package/src/data/datasources/pino_logger_datasource.js.map +1 -0
  9. package/src/data/di/logger_component_impl.d.ts +13 -0
  10. package/src/data/di/logger_component_impl.js +103 -0
  11. package/src/data/di/logger_component_impl.js.map +1 -0
  12. package/src/data/repositories/logger_repository_impl.d.ts +34 -0
  13. package/src/data/repositories/logger_repository_impl.js +58 -0
  14. package/src/data/repositories/logger_repository_impl.js.map +1 -0
  15. package/src/domain/datasources/logger_datasource.d.ts +16 -0
  16. package/src/domain/datasources/logger_datasource.js +3 -0
  17. package/src/domain/datasources/logger_datasource.js.map +1 -0
  18. package/src/domain/di/logger_component.d.ts +127 -0
  19. package/src/domain/di/logger_component.js +3 -0
  20. package/src/domain/di/logger_component.js.map +1 -0
  21. package/src/domain/entities/error_types.d.ts +39 -0
  22. package/src/domain/entities/error_types.js +6 -0
  23. package/src/domain/entities/error_types.js.map +1 -0
  24. package/src/domain/entities/index.d.ts +3 -0
  25. package/src/domain/entities/index.js +7 -0
  26. package/src/domain/entities/index.js.map +1 -0
  27. package/src/domain/entities/log_entry.d.ts +13 -0
  28. package/src/domain/entities/log_entry.js +3 -0
  29. package/src/domain/entities/log_entry.js.map +1 -0
  30. package/src/domain/entities/log_level.d.ts +13 -0
  31. package/src/domain/entities/log_level.js +23 -0
  32. package/src/domain/entities/log_level.js.map +1 -0
  33. package/src/domain/entities/logger_config.d.ts +52 -0
  34. package/src/domain/entities/logger_config.js +18 -0
  35. package/src/domain/entities/logger_config.js.map +1 -0
  36. package/src/domain/repositories/logger_repository.d.ts +47 -0
  37. package/src/domain/repositories/logger_repository.js +3 -0
  38. package/src/domain/repositories/logger_repository.js.map +1 -0
  39. package/src/domain/use_cases/log_error.d.ts +57 -0
  40. package/src/domain/use_cases/log_error.js +143 -0
  41. package/src/domain/use_cases/log_error.js.map +1 -0
  42. package/src/domain/use_cases/log_message.d.ts +21 -0
  43. package/src/domain/use_cases/log_message.js +29 -0
  44. package/src/domain/use_cases/log_message.js.map +1 -0
  45. package/src/index.d.ts +13 -0
  46. package/src/index.js +21 -0
  47. package/src/index.js.map +1 -0
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogError = void 0;
4
+ const log_level_1 = require("../entities/log_level");
5
+ /**
6
+ * Use case for intelligent error logging
7
+ * Automatically detects error type and determines appropriate log level
8
+ */
9
+ class LogError {
10
+ constructor(repository) {
11
+ this.repository = repository;
12
+ }
13
+ /**
14
+ * Log an error with automatic type detection and level determination
15
+ *
16
+ * Rules:
17
+ * - Axios/Fetch errors with status 400-499: WARN
18
+ * - Axios/Fetch errors with status 500+: ERROR
19
+ * - All other errors: ERROR
20
+ *
21
+ * @param message Clear message describing what failed
22
+ * @param error The error object to analyze
23
+ * @param options Additional log options (service, context, metadata)
24
+ */
25
+ execute(message, error, options) {
26
+ const errorInfo = this.analyzeError(error);
27
+ const level = this.determineLogLevel(errorInfo);
28
+ // Merge error info with any additional metadata
29
+ const additionalMetadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
30
+ const metadata = Object.assign(Object.assign({}, errorInfo), additionalMetadata);
31
+ this.repository.log(level, message, {
32
+ service: options === null || options === void 0 ? void 0 : options.service,
33
+ context: options === null || options === void 0 ? void 0 : options.context,
34
+ metadata,
35
+ });
36
+ }
37
+ /**
38
+ * Analyze error and extract relevant information
39
+ */
40
+ analyzeError(error) {
41
+ // Check if it's an Axios error
42
+ if (this.isAxiosError(error)) {
43
+ return this.extractAxiosErrorInfo(error);
44
+ }
45
+ // Check if it's a Fetch error
46
+ if (this.isFetchError(error)) {
47
+ return this.extractFetchErrorInfo(error);
48
+ }
49
+ // Standard Error
50
+ if (error instanceof Error) {
51
+ return this.extractStandardErrorInfo(error);
52
+ }
53
+ // Unknown error type
54
+ return this.extractUnknownErrorInfo(error);
55
+ }
56
+ /**
57
+ * Determine log level based on error info
58
+ */
59
+ determineLogLevel(errorInfo) {
60
+ // For HTTP errors (Axios/Fetch)
61
+ if (errorInfo.statusCode) {
62
+ if (errorInfo.statusCode >= 400 && errorInfo.statusCode < 500) {
63
+ return log_level_1.LogLevel.WARN; // Client errors
64
+ }
65
+ if (errorInfo.statusCode >= 500) {
66
+ return log_level_1.LogLevel.ERROR; // Server errors
67
+ }
68
+ }
69
+ // All other errors are ERROR level
70
+ return log_level_1.LogLevel.ERROR;
71
+ }
72
+ /**
73
+ * Check if error is an Axios error
74
+ */
75
+ isAxiosError(error) {
76
+ return error && error.isAxiosError === true;
77
+ }
78
+ /**
79
+ * Check if error is a Fetch error
80
+ */
81
+ isFetchError(error) {
82
+ return (error &&
83
+ error instanceof Error &&
84
+ (error.response instanceof Response ||
85
+ typeof error.status === 'number'));
86
+ }
87
+ /**
88
+ * Extract information from Axios error
89
+ */
90
+ extractAxiosErrorInfo(error) {
91
+ var _a, _b, _c, _d, _e, _f, _g;
92
+ return {
93
+ errorMessage: error.message,
94
+ errorStack: error.stack,
95
+ errorName: error.name,
96
+ errorType: 'axios',
97
+ statusCode: (_a = error.response) === null || _a === void 0 ? void 0 : _a.status,
98
+ statusText: (_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText,
99
+ url: (_c = error.config) === null || _c === void 0 ? void 0 : _c.url,
100
+ method: (_e = (_d = error.config) === null || _d === void 0 ? void 0 : _d.method) === null || _e === void 0 ? void 0 : _e.toUpperCase(),
101
+ responseData: (_f = error.response) === null || _f === void 0 ? void 0 : _f.data,
102
+ requestData: (_g = error.config) === null || _g === void 0 ? void 0 : _g.data,
103
+ errorCode: error.code,
104
+ };
105
+ }
106
+ /**
107
+ * Extract information from Fetch error
108
+ */
109
+ extractFetchErrorInfo(error) {
110
+ var _a, _b, _c;
111
+ return {
112
+ errorMessage: error.message,
113
+ errorStack: error.stack,
114
+ errorName: error.name,
115
+ errorType: 'fetch',
116
+ statusCode: error.status || ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status),
117
+ statusText: error.statusText || ((_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText),
118
+ url: (_c = error.response) === null || _c === void 0 ? void 0 : _c.url,
119
+ };
120
+ }
121
+ /**
122
+ * Extract information from standard Error
123
+ */
124
+ extractStandardErrorInfo(error) {
125
+ return {
126
+ errorMessage: error.message,
127
+ errorStack: error.stack,
128
+ errorName: error.name,
129
+ errorType: 'standard',
130
+ };
131
+ }
132
+ /**
133
+ * Extract information from unknown error
134
+ */
135
+ extractUnknownErrorInfo(error) {
136
+ return {
137
+ errorMessage: String(error),
138
+ errorType: 'unknown',
139
+ };
140
+ }
141
+ }
142
+ exports.LogError = LogError;
143
+ //# sourceMappingURL=log_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_error.js","sourceRoot":"","sources":["../../../../../../packages/logger/src/domain/use_cases/log_error.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAIjD;;;GAGG;AACH,MAAa,QAAQ;IACnB,YAAoB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAG,CAAC;IAEpD;;;;;;;;;;;OAWG;IACH,OAAO,CACL,OAAe,EACf,KAAsB,EACtB,OAA+E;QAE/E,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEhD,gDAAgD;QAChD,MAAM,kBAAkB,GAAG,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,QAAQ,KAAI,EAAE,CAAC;QAC5D,MAAM,QAAQ,mCACT,SAAS,GACT,kBAAkB,CACtB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;YAClC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YACzB,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YACzB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAsB;QACzC,+BAA+B;QAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAC1C;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAC1C;QAED,iBAAiB;QACjB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;SAC7C;QAED,qBAAqB;QACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,SAAoB;QAC5C,gCAAgC;QAChC,IAAI,SAAS,CAAC,UAAU,EAAE;YACxB,IAAI,SAAS,CAAC,UAAU,IAAI,GAAG,IAAI,SAAS,CAAC,UAAU,GAAG,GAAG,EAAE;gBAC7D,OAAO,oBAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB;aACvC;YACD,IAAI,SAAS,CAAC,UAAU,IAAI,GAAG,EAAE;gBAC/B,OAAO,oBAAQ,CAAC,KAAK,CAAC,CAAC,gBAAgB;aACxC;SACF;QAED,mCAAmC;QACnC,OAAO,oBAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAU;QAC7B,OAAO,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAU;QAC7B,OAAO,CACL,KAAK;YACL,KAAK,YAAY,KAAK;YACtB,CAAE,KAAa,CAAC,QAAQ,YAAY,QAAQ;gBAC3C,OAAQ,KAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,CAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAiB;;QAC7C,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,OAAO;YAC3B,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM;YAClC,UAAU,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,UAAU;YACtC,GAAG,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,GAAG;YACtB,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,WAAW,EAAE;YAC3C,YAAY,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI;YAClC,WAAW,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI;YAC/B,SAAS,EAAE,KAAK,CAAC,IAAI;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAiB;;QAC7C,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,OAAO;YAC3B,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,KAAK,CAAC,MAAM,KAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAA;YAClD,UAAU,EAAE,KAAK,CAAC,UAAU,KAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,UAAU,CAAA;YAC1D,GAAG,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,GAAG;SACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,KAAY;QAC3C,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,OAAO;YAC3B,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS,EAAE,UAAU;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,KAAc;QAC5C,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC;YAC3B,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;CACF;AAxJD,4BAwJC"}
@@ -0,0 +1,21 @@
1
+ import { LogLevel } from '../entities/log_level';
2
+ import { LoggerRepository, LogOptions } from '../repositories/logger_repository';
3
+ /**
4
+ * Use case for logging messages
5
+ */
6
+ export declare class LogMessage {
7
+ private repository;
8
+ constructor(repository: LoggerRepository);
9
+ /**
10
+ * Execute log operation
11
+ * @param level Log level
12
+ * @param message Message to log
13
+ * @param options Optional log options (metadata, service, context)
14
+ */
15
+ execute(level: LogLevel, message: string, options?: LogOptions): void;
16
+ /**
17
+ * Check if a log level is enabled
18
+ * @param level Log level to check
19
+ */
20
+ isLevelEnabled(level: LogLevel): boolean;
21
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogMessage = void 0;
4
+ /**
5
+ * Use case for logging messages
6
+ */
7
+ class LogMessage {
8
+ constructor(repository) {
9
+ this.repository = repository;
10
+ }
11
+ /**
12
+ * Execute log operation
13
+ * @param level Log level
14
+ * @param message Message to log
15
+ * @param options Optional log options (metadata, service, context)
16
+ */
17
+ execute(level, message, options) {
18
+ this.repository.log(level, message, options);
19
+ }
20
+ /**
21
+ * Check if a log level is enabled
22
+ * @param level Log level to check
23
+ */
24
+ isLevelEnabled(level) {
25
+ return this.repository.isLevelEnabled(level);
26
+ }
27
+ }
28
+ exports.LogMessage = LogMessage;
29
+ //# sourceMappingURL=log_message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_message.js","sourceRoot":"","sources":["../../../../../../packages/logger/src/domain/use_cases/log_message.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,UAAU;IACrB,YAAoB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,OAAO,CAAC,KAAe,EAAE,OAAe,EAAE,OAAoB;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF;AApBD,gCAoBC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import InfoselLogger from './data/di/logger_component_impl';
2
+ export * from './domain/entities';
3
+ export * from './domain/di/logger_component';
4
+ export * from './domain/repositories/logger_repository';
5
+ export * from './domain/datasources/logger_datasource';
6
+ export * from './domain/use_cases/log_message';
7
+ export * from './domain/use_cases/log_error';
8
+ export * from './domain/entities/error_types';
9
+ import { LogLevel } from './domain/entities/log_level';
10
+ export { LogLevel };
11
+ export { ConsoleLoggerDataSource } from './data/datasources/console_logger_datasource';
12
+ export { PinoLoggerDataSource } from './data/datasources/pino_logger_datasource';
13
+ export default InfoselLogger;
package/src/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PinoLoggerDataSource = exports.ConsoleLoggerDataSource = exports.LogLevel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const logger_component_impl_1 = tslib_1.__importDefault(require("./data/di/logger_component_impl"));
6
+ tslib_1.__exportStar(require("./domain/entities"), exports);
7
+ tslib_1.__exportStar(require("./domain/di/logger_component"), exports);
8
+ tslib_1.__exportStar(require("./domain/repositories/logger_repository"), exports);
9
+ tslib_1.__exportStar(require("./domain/datasources/logger_datasource"), exports);
10
+ tslib_1.__exportStar(require("./domain/use_cases/log_message"), exports);
11
+ tslib_1.__exportStar(require("./domain/use_cases/log_error"), exports);
12
+ tslib_1.__exportStar(require("./domain/entities/error_types"), exports);
13
+ const log_level_1 = require("./domain/entities/log_level");
14
+ Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return log_level_1.LogLevel; } });
15
+ // Export datasource implementations
16
+ var console_logger_datasource_1 = require("./data/datasources/console_logger_datasource");
17
+ Object.defineProperty(exports, "ConsoleLoggerDataSource", { enumerable: true, get: function () { return console_logger_datasource_1.ConsoleLoggerDataSource; } });
18
+ var pino_logger_datasource_1 = require("./data/datasources/pino_logger_datasource");
19
+ Object.defineProperty(exports, "PinoLoggerDataSource", { enumerable: true, get: function () { return pino_logger_datasource_1.PinoLoggerDataSource; } });
20
+ exports.default = logger_component_impl_1.default;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/logger/src/index.ts"],"names":[],"mappings":";;;;AAAA,oGAA4D;AAE5D,4DAAkC;AAClC,uEAA6C;AAC7C,kFAAwD;AACxD,iFAAuD;AACvD,yEAA+C;AAC/C,uEAA6C;AAC7C,wEAA8C;AAC9C,2DAAuD;AAC9C,yFADA,oBAAQ,OACA;AAEjB,oCAAoC;AACpC,0FAAuF;AAA9E,oIAAA,uBAAuB,OAAA;AAChC,oFAAiF;AAAxE,8HAAA,oBAAoB,OAAA;AAE7B,kBAAe,+BAAa,CAAC"}