logiscout 1.0.3 → 1.0.4

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 (156) hide show
  1. package/README.md +193 -1
  2. package/dist/cjs/api/Interceptor.cjs +66 -7
  3. package/dist/cjs/api/Interceptor.d.ts +4 -3
  4. package/dist/cjs/api/Interceptor.d.ts.map +1 -1
  5. package/dist/cjs/api/LogApi.cjs +2 -6
  6. package/dist/cjs/api/LogApi.d.ts +2 -3
  7. package/dist/cjs/api/LogApi.d.ts.map +1 -1
  8. package/dist/cjs/core/constants/Levels/LevelsColors.cjs +11 -0
  9. package/dist/cjs/core/constants/Levels/LevelsColors.d.ts +3 -0
  10. package/dist/cjs/core/constants/Levels/LevelsColors.d.ts.map +1 -0
  11. package/dist/cjs/core/constants/Levels/LevelsSeverity.cjs +11 -0
  12. package/dist/cjs/core/constants/Levels/LevelsSeverity.d.ts +3 -0
  13. package/dist/cjs/core/constants/Levels/LevelsSeverity.d.ts.map +1 -0
  14. package/dist/cjs/core/context/RequestContext.cjs +4 -14
  15. package/dist/cjs/core/context/RequestContext.d.ts +0 -3
  16. package/dist/cjs/core/context/RequestContext.d.ts.map +1 -1
  17. package/dist/cjs/core/enum/LogPayLoads.cjs +8 -0
  18. package/dist/cjs/core/enum/LogPayLoads.d.ts +5 -0
  19. package/dist/cjs/core/enum/LogPayLoads.d.ts.map +1 -0
  20. package/dist/cjs/core/formatters/winston/FormatLogs.cjs +18 -0
  21. package/dist/cjs/core/formatters/winston/FormatLogs.d.ts +3 -0
  22. package/dist/cjs/core/formatters/winston/FormatLogs.d.ts.map +1 -0
  23. package/dist/cjs/core/interface/CorrelationSession.cjs +2 -0
  24. package/dist/cjs/core/interface/CorrelationSession.d.ts +32 -0
  25. package/dist/cjs/core/interface/CorrelationSession.d.ts.map +1 -0
  26. package/dist/cjs/core/interface/JsonzierConfig.cjs +2 -0
  27. package/dist/cjs/core/interface/JsonzierConfig.d.ts +6 -0
  28. package/dist/cjs/core/interface/JsonzierConfig.d.ts.map +1 -0
  29. package/dist/cjs/core/interface/RequestContext.cjs +2 -0
  30. package/dist/cjs/core/interface/RequestContext.d.ts +4 -0
  31. package/dist/cjs/core/interface/RequestContext.d.ts.map +1 -0
  32. package/dist/cjs/core/interface/payloads/Payloads.cjs +2 -0
  33. package/dist/cjs/core/interface/payloads/Payloads.d.ts +11 -0
  34. package/dist/cjs/core/interface/payloads/Payloads.d.ts.map +1 -0
  35. package/dist/cjs/core/store/CorrelationStore.cjs +29 -0
  36. package/dist/cjs/core/store/CorrelationStore.d.ts +5 -0
  37. package/dist/cjs/core/store/CorrelationStore.d.ts.map +1 -0
  38. package/dist/cjs/errors/ThrowError.cjs +6 -0
  39. package/dist/cjs/errors/ThrowError.d.ts +2 -0
  40. package/dist/cjs/errors/ThrowError.d.ts.map +1 -0
  41. package/dist/cjs/middlewares/correlationMiddleware.cjs +28 -64
  42. package/dist/cjs/middlewares/correlationMiddleware.d.ts +1 -16
  43. package/dist/cjs/middlewares/correlationMiddleware.d.ts.map +1 -1
  44. package/dist/cjs/services/Levels/Levels.cjs +10 -10
  45. package/dist/cjs/services/Levels/Levels.d.ts +15 -5
  46. package/dist/cjs/services/Levels/Levels.d.ts.map +1 -1
  47. package/dist/cjs/services/Logger/Logger.cjs +51 -134
  48. package/dist/cjs/services/Logger/Logger.d.ts +6 -1
  49. package/dist/cjs/services/Logger/Logger.d.ts.map +1 -1
  50. package/dist/cjs/services/formatters/ConsoleFormatter.cjs +2 -9
  51. package/dist/cjs/services/formatters/ConsoleFormatter.d.ts.map +1 -1
  52. package/dist/cjs/services/processors/Jsonizer.cjs +31 -0
  53. package/dist/cjs/services/processors/Jsonizer.d.ts +11 -0
  54. package/dist/cjs/services/processors/Jsonizer.d.ts.map +1 -0
  55. package/dist/cjs/services/transporter/ConsoleTranspoter.cjs +16 -0
  56. package/dist/cjs/services/transporter/ConsoleTranspoter.d.ts +5 -0
  57. package/dist/cjs/services/transporter/ConsoleTranspoter.d.ts.map +1 -0
  58. package/dist/cjs/services/transporter/ServerTransporter.cjs +31 -0
  59. package/dist/cjs/services/transporter/ServerTransporter.d.ts +10 -0
  60. package/dist/cjs/services/transporter/ServerTransporter.d.ts.map +1 -0
  61. package/dist/cjs/utils/GenerateCorrelationId.cjs +10 -0
  62. package/dist/cjs/utils/GenerateCorrelationId.d.ts +2 -0
  63. package/dist/cjs/utils/GenerateCorrelationId.d.ts.map +1 -0
  64. package/dist/cjs/validator/ValidateComponentName.cjs +14 -0
  65. package/dist/cjs/validator/ValidateComponentName.d.ts +2 -0
  66. package/dist/cjs/validator/ValidateComponentName.d.ts.map +1 -0
  67. package/dist/cjs/validator/ValidateLogEntry.cjs +18 -0
  68. package/dist/cjs/validator/ValidateLogEntry.d.ts +3 -0
  69. package/dist/cjs/validator/ValidateLogEntry.d.ts.map +1 -0
  70. package/dist/cjs/validator/ValidateLogLevel.cjs +11 -0
  71. package/dist/cjs/validator/ValidateLogLevel.d.ts +2 -0
  72. package/dist/cjs/validator/ValidateLogLevel.d.ts.map +1 -0
  73. package/dist/cjs/validator/ValidateLogMessage.cjs +10 -0
  74. package/dist/cjs/validator/ValidateLogMessage.d.ts +2 -0
  75. package/dist/cjs/validator/ValidateLogMessage.d.ts.map +1 -0
  76. package/dist/cjs/validator/ValidateRequestContext.cjs +18 -0
  77. package/dist/cjs/validator/ValidateRequestContext.d.ts +2 -0
  78. package/dist/cjs/validator/ValidateRequestContext.d.ts.map +1 -0
  79. package/dist/esm/api/Interceptor.d.ts +4 -3
  80. package/dist/esm/api/Interceptor.d.ts.map +1 -1
  81. package/dist/esm/api/Interceptor.js +64 -7
  82. package/dist/esm/api/LogApi.d.ts +2 -3
  83. package/dist/esm/api/LogApi.d.ts.map +1 -1
  84. package/dist/esm/api/LogApi.js +2 -3
  85. package/dist/esm/core/constants/Levels/LevelsColors.d.ts +3 -0
  86. package/dist/esm/core/constants/Levels/LevelsColors.d.ts.map +1 -0
  87. package/dist/esm/core/constants/Levels/LevelsColors.js +8 -0
  88. package/dist/esm/core/constants/Levels/LevelsSeverity.d.ts +3 -0
  89. package/dist/esm/core/constants/Levels/LevelsSeverity.d.ts.map +1 -0
  90. package/dist/esm/core/constants/Levels/LevelsSeverity.js +8 -0
  91. package/dist/esm/core/context/RequestContext.d.ts +0 -3
  92. package/dist/esm/core/context/RequestContext.d.ts.map +1 -1
  93. package/dist/esm/core/context/RequestContext.js +4 -14
  94. package/dist/esm/core/enum/LogPayLoads.d.ts +5 -0
  95. package/dist/esm/core/enum/LogPayLoads.d.ts.map +1 -0
  96. package/dist/esm/core/enum/LogPayLoads.js +5 -0
  97. package/dist/esm/core/formatters/winston/FormatLogs.d.ts +3 -0
  98. package/dist/esm/core/formatters/winston/FormatLogs.d.ts.map +1 -0
  99. package/dist/esm/core/formatters/winston/FormatLogs.js +15 -0
  100. package/dist/esm/core/interface/CorrelationSession.d.ts +32 -0
  101. package/dist/esm/core/interface/CorrelationSession.d.ts.map +1 -0
  102. package/dist/esm/core/interface/CorrelationSession.js +1 -0
  103. package/dist/esm/core/interface/JsonzierConfig.d.ts +6 -0
  104. package/dist/esm/core/interface/JsonzierConfig.d.ts.map +1 -0
  105. package/dist/esm/core/interface/JsonzierConfig.js +1 -0
  106. package/dist/esm/core/interface/RequestContext.d.ts +4 -0
  107. package/dist/esm/core/interface/RequestContext.d.ts.map +1 -0
  108. package/dist/esm/core/interface/RequestContext.js +1 -0
  109. package/dist/esm/core/interface/payloads/Payloads.d.ts +11 -0
  110. package/dist/esm/core/interface/payloads/Payloads.d.ts.map +1 -0
  111. package/dist/esm/core/interface/payloads/Payloads.js +1 -0
  112. package/dist/esm/core/store/CorrelationStore.d.ts +5 -0
  113. package/dist/esm/core/store/CorrelationStore.d.ts.map +1 -0
  114. package/dist/esm/core/store/CorrelationStore.js +24 -0
  115. package/dist/esm/errors/ThrowError.d.ts +2 -0
  116. package/dist/esm/errors/ThrowError.d.ts.map +1 -0
  117. package/dist/esm/errors/ThrowError.js +3 -0
  118. package/dist/esm/middlewares/correlationMiddleware.d.ts +1 -16
  119. package/dist/esm/middlewares/correlationMiddleware.d.ts.map +1 -1
  120. package/dist/esm/middlewares/correlationMiddleware.js +27 -59
  121. package/dist/esm/services/Levels/Levels.d.ts +15 -5
  122. package/dist/esm/services/Levels/Levels.d.ts.map +1 -1
  123. package/dist/esm/services/Levels/Levels.js +10 -10
  124. package/dist/esm/services/Logger/Logger.d.ts +6 -1
  125. package/dist/esm/services/Logger/Logger.d.ts.map +1 -1
  126. package/dist/esm/services/Logger/Logger.js +48 -101
  127. package/dist/esm/services/formatters/ConsoleFormatter.d.ts.map +1 -1
  128. package/dist/esm/services/formatters/ConsoleFormatter.js +1 -8
  129. package/dist/esm/services/processors/Jsonizer.d.ts +11 -0
  130. package/dist/esm/services/processors/Jsonizer.d.ts.map +1 -0
  131. package/dist/esm/services/processors/Jsonizer.js +27 -0
  132. package/dist/esm/services/transporter/ConsoleTranspoter.d.ts +5 -0
  133. package/dist/esm/services/transporter/ConsoleTranspoter.d.ts.map +1 -0
  134. package/dist/esm/services/transporter/ConsoleTranspoter.js +9 -0
  135. package/dist/esm/services/transporter/ServerTransporter.d.ts +10 -0
  136. package/dist/esm/services/transporter/ServerTransporter.d.ts.map +1 -0
  137. package/dist/esm/services/transporter/ServerTransporter.js +27 -0
  138. package/dist/esm/utils/GenerateCorrelationId.d.ts +2 -0
  139. package/dist/esm/utils/GenerateCorrelationId.d.ts.map +1 -0
  140. package/dist/esm/utils/GenerateCorrelationId.js +4 -0
  141. package/dist/esm/validator/ValidateComponentName.d.ts +2 -0
  142. package/dist/esm/validator/ValidateComponentName.d.ts.map +1 -0
  143. package/dist/esm/validator/ValidateComponentName.js +11 -0
  144. package/dist/esm/validator/ValidateLogEntry.d.ts +3 -0
  145. package/dist/esm/validator/ValidateLogEntry.d.ts.map +1 -0
  146. package/dist/esm/validator/ValidateLogEntry.js +15 -0
  147. package/dist/esm/validator/ValidateLogLevel.d.ts +2 -0
  148. package/dist/esm/validator/ValidateLogLevel.d.ts.map +1 -0
  149. package/dist/esm/validator/ValidateLogLevel.js +8 -0
  150. package/dist/esm/validator/ValidateLogMessage.d.ts +2 -0
  151. package/dist/esm/validator/ValidateLogMessage.d.ts.map +1 -0
  152. package/dist/esm/validator/ValidateLogMessage.js +7 -0
  153. package/dist/esm/validator/ValidateRequestContext.d.ts +2 -0
  154. package/dist/esm/validator/ValidateRequestContext.d.ts.map +1 -0
  155. package/dist/esm/validator/ValidateRequestContext.js +15 -0
  156. package/package.json +1 -1
@@ -1,70 +1,34 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createCorrelationMiddleware = void 0;
3
+ exports.createCorrelationMiddleware = createCorrelationMiddleware;
7
4
  const RequestContext_js_1 = require("../core/context/RequestContext.cjs");
8
- const crypto_1 = __importDefault(require("crypto"));
5
+ const CorrelationStore_js_1 = require("../core/store/CorrelationStore.cjs");
9
6
  const state_js_1 = require("../initiator/state.cjs");
10
- const createCorrelationMiddleware = () => {
7
+ const ServerTransporter_js_1 = require("../services/transporter/ServerTransporter.cjs");
8
+ const serverTransporter = new ServerTransporter_js_1.ServerTransporter();
9
+ function createCorrelationMiddleware() {
11
10
  return (req, res, next) => {
12
- // Validate request object
13
- const { projectName, environment } = (0, state_js_1.getLogiScouConfig)(); // 🔒 guard
14
- if (!req || typeof req !== "object") {
15
- console.error("[CorrelationMiddleware] Error: Invalid request object. " +
16
- "Usage: createCorrelationMiddleware()(req, res, next)");
17
- next?.(new Error("Invalid request object in correlation middleware"));
18
- return;
19
- }
20
- // Validate response object
21
- if (!res || typeof res !== "object") {
22
- console.error("[CorrelationMiddleware] Error: Invalid response object. " +
23
- "Usage: createCorrelationMiddleware()(req, res, next)");
24
- next?.(new Error("Invalid response object in correlation middleware"));
25
- return;
26
- }
27
- try {
28
- // Check for existing correlation ID in headers (case-insensitive)
29
- const headers = req.headers || {};
30
- const existingId = headers["x-correlation-id"] ||
31
- headers["X-Correlation-ID"] ||
32
- req.get?.("x-correlation-id") ||
33
- req.get?.("X-Correlation-ID");
34
- const correlationId = (typeof existingId === "string" && existingId.trim()) || crypto_1.default.randomUUID();
35
- // Validate correlation ID
36
- if (!correlationId || typeof correlationId !== "string") {
37
- console.error("[CorrelationMiddleware] Error: Failed to generate or retrieve correlation ID");
38
- next?.(new Error("Correlation ID generation failed"));
39
- return;
40
- }
41
- if (correlationId.length > 100) {
42
- console.warn("[CorrelationMiddleware] Warning: Correlation ID exceeds 100 characters and will be truncated");
43
- }
44
- // Run the remaining middleware in the request context
45
- RequestContext_js_1.RequestContext.run(() => {
46
- // Safely set the correlation ID header
47
- try {
48
- if (res.setHeader) {
49
- res.setHeader("x-correlation-id", correlationId);
50
- }
51
- }
52
- catch (headerError) {
53
- // setHeader might fail in some edge cases, don't block the request
54
- console.warn("[CorrelationMiddleware] Warning: Could not set x-correlation-id header", headerError instanceof Error ? headerError.message : "Unknown error");
55
- }
56
- // Store correlation ID in response locals for downstream access
57
- if (res.locals) {
58
- res.locals.correlationId = correlationId;
59
- }
60
- next?.();
61
- }, correlationId);
62
- }
63
- catch (error) {
64
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
65
- console.error(`[CorrelationMiddleware] Error: Failed to initialize request context. ${errorMessage}`);
66
- next?.(error instanceof Error ? error : new Error("Request context initialization failed"));
67
- }
11
+ const correlationId = req.headers["x-correlation-id"] ?? crypto.randomUUID();
12
+ RequestContext_js_1.RequestContext.run(() => {
13
+ const session = (0, CorrelationStore_js_1.getOrCreateSession)(correlationId, {
14
+ projectName: (0, state_js_1.getLogiScouConfig)().projectName,
15
+ environment: (0, state_js_1.getLogiScouConfig)().environment,
16
+ correlationId,
17
+ request: {
18
+ method: req.method,
19
+ path: req.originalUrl || req.url,
20
+ },
21
+ });
22
+ res.setHeader("x-correlation-id", correlationId);
23
+ console.log("----- SENDING TO THE SERVER-----------");
24
+ res.on("finish", () => {
25
+ session.request.statusCode = res.statusCode;
26
+ const payload = (0, CorrelationStore_js_1.endSession)(correlationId);
27
+ if (payload)
28
+ serverTransporter.transport(payload);
29
+ (0, CorrelationStore_js_1.removeSession)(correlationId);
30
+ });
31
+ next();
32
+ }, correlationId);
68
33
  };
69
- };
70
- exports.createCorrelationMiddleware = createCorrelationMiddleware;
34
+ }
@@ -1,17 +1,2 @@
1
- interface RequestLike {
2
- headers?: Record<string, string | string[] | undefined>;
3
- get?: (header: string) => string | undefined;
4
- }
5
- interface ResponseLike {
6
- setHeader?: (name: string, value: string) => void;
7
- locals?: Record<string, unknown>;
8
- }
9
- interface NextFunction {
10
- (err?: Error): void;
11
- }
12
- interface MiddlewareHandler {
13
- (req: RequestLike, res: ResponseLike, next: NextFunction): void;
14
- }
15
- export declare const createCorrelationMiddleware: () => MiddlewareHandler;
16
- export {};
1
+ export declare function createCorrelationMiddleware(): (req: any, res: any, next: any) => void;
17
2
  //# sourceMappingURL=correlationMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"correlationMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middlewares/correlationMiddleware.ts"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,YAAY;IACpB,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;CACjE;AAED,eAAO,MAAM,2BAA2B,QAAO,iBAmF9C,CAAC"}
1
+ {"version":3,"file":"correlationMiddleware.d.ts","sourceRoot":"","sources":["../../../src/middlewares/correlationMiddleware.ts"],"names":[],"mappings":"AAYA,wBAAgB,2BAA2B,KACjC,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,UAgCtC"}
@@ -4,24 +4,24 @@ exports.Levels = void 0;
4
4
  const Logger_js_1 = require("../Logger/Logger.cjs");
5
5
  const LogLevels_js_1 = require("../../core/enum/LogLevels.cjs");
6
6
  class Levels extends Logger_js_1.Logger {
7
- info(message, meta) {
8
- const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.INFO, meta);
7
+ info(message, meta, options) {
8
+ const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.INFO, meta, options);
9
9
  this.log(entry);
10
10
  }
11
- warn(message, meta) {
12
- const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.WARN, meta);
11
+ warn(message, meta, options) {
12
+ const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.WARN, meta, options);
13
13
  this.log(entry);
14
14
  }
15
- error(message, meta) {
16
- const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.ERROR, meta);
15
+ error(message, meta, options) {
16
+ const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.ERROR, meta, options);
17
17
  this.log(entry);
18
18
  }
19
- debug(message, meta) {
20
- const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.DEBUG, meta);
19
+ debug(message, meta, options) {
20
+ const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.DEBUG, meta, options);
21
21
  this.log(entry);
22
22
  }
23
- critical(message, meta) {
24
- const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.CRITICAL, meta);
23
+ critical(message, meta, options) {
24
+ const entry = this.getLogEntry(message, LogLevels_js_1.LogLevels.CRITICAL, meta, options);
25
25
  this.log(entry);
26
26
  }
27
27
  }
@@ -1,10 +1,20 @@
1
1
  import { Logger } from "../Logger/Logger.js";
2
2
  import { LoggerInterface } from "../../core/interface/LoggerInterface.js";
3
3
  export declare class Levels extends Logger implements LoggerInterface {
4
- info(message: string, meta?: Record<string, unknown>): void;
5
- warn(message: string, meta?: Record<string, unknown>): void;
6
- error(message: string, meta?: Record<string, unknown>): void;
7
- debug(message: string, meta?: Record<string, unknown>): void;
8
- critical(message: string, meta?: Record<string, unknown>): void;
4
+ info(message: string, meta?: Record<string, unknown>, options?: {
5
+ send?: boolean;
6
+ }): void;
7
+ warn(message: string, meta?: Record<string, unknown>, options?: {
8
+ send?: boolean;
9
+ }): void;
10
+ error(message: string, meta?: Record<string, unknown>, options?: {
11
+ send?: boolean;
12
+ }): void;
13
+ debug(message: string, meta?: Record<string, unknown>, options?: {
14
+ send?: boolean;
15
+ }): void;
16
+ critical(message: string, meta?: Record<string, unknown>, options?: {
17
+ send?: boolean;
18
+ }): void;
9
19
  }
10
20
  //# sourceMappingURL=Levels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Levels.d.ts","sourceRoot":"","sources":["../../../../src/services/Levels/Levels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,qBAAa,MAAO,SAAQ,MAAO,YAAW,eAAe;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK5D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAKhE"}
1
+ {"version":3,"file":"Levels.d.ts","sourceRoot":"","sources":["../../../../src/services/Levels/Levels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,qBAAa,MAAO,SAAQ,MAAO,YAAW,eAAe;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAG,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAK1F,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAKzF,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAK1F,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAG,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAK3F,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAG,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;CAK/F"}
@@ -1,158 +1,81 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.Logger = void 0;
37
- const winston_1 = __importStar(require("winston"));
7
+ const winston_1 = __importDefault(require("winston"));
38
8
  const LogLevels_js_1 = require("../../core/enum/LogLevels.cjs");
39
9
  const RequestContext_js_1 = require("../../core/context/RequestContext.cjs");
40
- const ConsoleFormatter_js_1 = require("../formatters/ConsoleFormatter.cjs");
10
+ const ConsoleTranspoter_js_1 = require("../transporter/ConsoleTranspoter.cjs");
11
+ const LevelsSeverity_js_1 = require("../../core/constants/Levels/LevelsSeverity.cjs");
12
+ const ValidateComponentName_js_1 = __importDefault(require("../../validator/ValidateComponentName.cjs"));
13
+ const ThrowError_js_1 = require("../../errors/ThrowError.cjs");
14
+ const ValidateLogEntry_js_1 = __importDefault(require("../../validator/ValidateLogEntry.cjs"));
15
+ const ValidateLogMessage_js_1 = __importDefault(require("../../validator/ValidateLogMessage.cjs"));
16
+ const ValidateLogLevel_js_1 = __importDefault(require("../../validator/ValidateLogLevel.cjs"));
17
+ const Jsonizer_js_1 = require("../processors/Jsonizer.cjs");
18
+ const ServerTransporter_js_1 = require("../transporter/ServerTransporter.cjs");
41
19
  class Logger {
42
20
  winstonLogger;
43
21
  componentName;
44
22
  projectName;
45
23
  environment;
24
+ jsonizer;
25
+ serverTransporter;
26
+ consoleTransporter;
46
27
  constructor(componentName, config) {
47
- // Validate component name
48
- if (!componentName || typeof componentName !== "string") {
49
- throw new Error("Logger: Component name must be a non-empty string. " +
50
- "Usage: createLogger('ComponentName')");
51
- }
52
- if (componentName.length > 100) {
53
- throw new Error("Logger: Component name cannot exceed 100 characters. " +
54
- `Received: '${componentName.substring(0, 20)}...'`);
55
- }
28
+ (0, ValidateComponentName_js_1.default)(componentName);
56
29
  this.componentName = componentName;
57
30
  this.projectName = config.projectName;
58
31
  this.environment = config.environment;
32
+ this.jsonizer = new Jsonizer_js_1.Jsonizer({
33
+ projectName: this.projectName,
34
+ environment: this.environment,
35
+ componentName: this.componentName,
36
+ });
37
+ this.serverTransporter = new ServerTransporter_js_1.ServerTransporter();
38
+ this.consoleTransporter = new ConsoleTranspoter_js_1.ConsoleTransporter();
59
39
  try {
60
- // Create structlog-style formatter instance
61
- const consoleFormatter = new ConsoleFormatter_js_1.ConsoleFormatter();
62
40
  this.winstonLogger = winston_1.default.createLogger({
63
- level: "debug",
64
- levels: {
65
- error: 0,
66
- warn: 1,
67
- info: 2,
68
- debug: 3,
69
- },
70
- // File transport format (non-colorized)
71
- format: winston_1.format.combine(winston_1.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.format.printf(({ timestamp, level, message, component, ...meta }) => {
72
- const formatted = consoleFormatter.format({
73
- level: level,
74
- message: String(message),
75
- timestamp: String(timestamp),
76
- component: component,
77
- ...meta,
78
- });
79
- return `[${config.projectName}] ${formatted}`;
80
- })),
81
- transports: [
82
- new winston_1.transports.Console({
83
- // Console transport with structlog-style formatting and colors
84
- format: winston_1.format.combine(winston_1.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.format.printf(({ timestamp, level, message, component, ...meta }) => {
85
- const formatted = consoleFormatter.format({
86
- level: level,
87
- message: String(message),
88
- timestamp: String(timestamp),
89
- component: component,
90
- ...meta,
91
- });
92
- return formatted;
93
- })),
94
- }),
95
- ],
41
+ level: LogLevels_js_1.LogLevels.DEBUG,
42
+ levels: LevelsSeverity_js_1.LOG_LEVEL_SEVERITY,
43
+ transports: [this.consoleTransporter.transport()],
96
44
  });
97
45
  }
98
46
  catch (error) {
99
- throw new Error(`Logger: Failed to initialize Winston logger. ${error instanceof Error ? error.message : "Unknown error"}`);
47
+ (0, ThrowError_js_1.throwError)(`Logger: Failed to initialize Winston logger. ${error instanceof Error ? error.message : "Unknown error"}`);
100
48
  }
101
49
  }
102
50
  log(entry) {
103
51
  try {
104
52
  // Validate log entry
105
- if (!entry) {
106
- console.error("[Logiscout] Error: Log entry is undefined or null");
107
- return;
108
- }
109
- if (!entry.message || typeof entry.message !== "string") {
110
- console.error("[Logiscout] Error: Log message must be a non-empty string. " +
111
- `Usage: logiscout.${entry.level}('Your message', { meta })`);
112
- return;
113
- }
114
- if (entry.message.length > 10000) {
115
- console.error("[Logiscout] Error: Log message exceeds 10000 characters. " +
116
- "Message truncated for logging.");
117
- entry.message = entry.message.substring(0, 10000) + "... [truncated]";
118
- }
53
+ (0, ValidateLogEntry_js_1.default)(entry);
119
54
  const correlationId = RequestContext_js_1.RequestContext.getCorrelationId() ?? "no-correlation-id";
120
- // Safely handle metadata - prevent circular reference issues
121
- let logMeta;
122
- try {
123
- logMeta = {
124
- component: this.componentName,
125
- correlationId,
126
- ...entry.meta,
127
- };
128
- }
129
- catch (metaError) {
130
- console.error("[Logiscout] Error: Failed to process metadata. Logging without metadata.", metaError instanceof Error ? metaError.message : "Unknown error");
131
- logMeta = {
132
- component: this.componentName,
133
- correlationId,
134
- _metaError: "Failed to process metadata",
135
- };
136
- }
55
+ let logMeta = {
56
+ component: this.componentName,
57
+ correlationId,
58
+ ...(entry.meta ?? {}),
59
+ };
137
60
  this.winstonLogger.log(entry.level, entry.message, logMeta);
61
+ this.jsonizer.appendLog(correlationId, {
62
+ timestamp: new Date().toISOString(),
63
+ level: entry.level,
64
+ message: entry.message,
65
+ meta: logMeta,
66
+ });
67
+ const logs = {
68
+ ...entry,
69
+ projectName: this.projectName,
70
+ component: this.componentName,
71
+ correlationId,
72
+ };
138
73
  if (entry.send && this.environment == "prod") {
139
74
  // console.log("sending to he server")
140
- // Send structured log to API (no formatting)
141
- // LogApi({
142
- // logs: {
143
- // ...entry,
144
- // component: this.componentName,
145
- // correlationId,
146
- // },
147
- // });
148
- }
149
- else {
150
- // console.log("Showed to the user")
75
+ this.serverTransporter.transport(logs);
151
76
  }
152
77
  }
153
78
  catch (error) {
154
- // Silent failure - logger should never crash the application
155
- // Log to console as last resort
156
79
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
157
80
  console.error(`[Logiscout] Critical: Logger failed to write log: ${errorMessage}`);
158
81
  }
@@ -160,23 +83,17 @@ class Logger {
160
83
  getWinstonLogger() {
161
84
  return this.winstonLogger;
162
85
  }
163
- getLogEntry(message, logLevel, meta) {
86
+ getLogEntry(message, logLevel, meta, options) {
164
87
  // Validate message
165
- if (!message || typeof message !== "string") {
166
- throw new Error(`Logger: Message must be a non-empty string. ` +
167
- `Received: ${typeof message === "undefined" ? "undefined" : typeof message}`);
168
- }
88
+ (0, ValidateLogMessage_js_1.default)(message);
169
89
  // Validate log level
170
- if (!Object.values(LogLevels_js_1.LogLevels).includes(logLevel)) {
171
- throw new Error(`Logger: Invalid log level '${logLevel}'. ` +
172
- `Valid levels: ${Object.values(LogLevels_js_1.LogLevels).join(", ")}`);
173
- }
90
+ (0, ValidateLogLevel_js_1.default)(logLevel);
174
91
  const entry = {
175
92
  message,
176
93
  meta,
177
94
  timestamp: new Date().toISOString(),
178
95
  level: logLevel,
179
- send: true
96
+ send: options?.send ?? true,
180
97
  };
181
98
  return entry;
182
99
  }
@@ -7,9 +7,14 @@ export declare abstract class Logger {
7
7
  private componentName;
8
8
  private projectName;
9
9
  private environment;
10
+ private readonly jsonizer;
11
+ private readonly serverTransporter;
12
+ private readonly consoleTransporter;
10
13
  constructor(componentName: string, config: LogiscoutConfig);
11
14
  protected log(entry: LogEntry): void;
12
15
  getWinstonLogger(): WinstonLogger;
13
- protected getLogEntry(message: string, logLevel: LogLevels, meta?: Record<string, unknown>): LogEntry;
16
+ protected getLogEntry(message: string, logLevel: LogLevels, meta?: Record<string, unknown>, options?: {
17
+ send?: boolean;
18
+ }): LogEntry;
14
19
  }
15
20
  //# sourceMappingURL=Logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../../src/services/Logger/Logger.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,IAAI,aAAa,EAAsB,MAAM,SAAS,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,8BAAsB,MAAM;IAC1B,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,WAAW,CAAQ;gBAEf,aAAa,EAAE,MAAM,EAAG,MAAM,EAAC,eAAe;IAwE1D,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAsEpC,gBAAgB,IAAI,aAAa;IAIjC,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,EACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,QAAQ;CA0BZ"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../../src/services/Logger/Logger.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,IAAI,aAAa,EAAsB,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAW3D,8BAAsB,MAAM;IAC1B,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;gBAE1C,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IA6B1D,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA0CpC,gBAAgB,IAAI,aAAa;IAIjC,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,EACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,QAAQ;CAgBZ"}
@@ -1,19 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConsoleFormatter = void 0;
4
- const LogLevels_js_1 = require("../../core/enum/LogLevels.cjs");
5
- const LEVEL_COLORS = {
6
- [LogLevels_js_1.LogLevels.DEBUG]: "\x1b[90m", // gray
7
- [LogLevels_js_1.LogLevels.INFO]: "\x1b[32m", // green
8
- [LogLevels_js_1.LogLevels.WARN]: "\x1b[33m", // yellow
9
- [LogLevels_js_1.LogLevels.ERROR]: "\x1b[31m", // red
10
- [LogLevels_js_1.LogLevels.CRITICAL]: "\x1b[35m" // magenta
11
- };
4
+ const LevelsColors_js_1 = require("../../core/constants/Levels/LevelsColors.cjs");
12
5
  const RESET = "\x1b[0m";
13
6
  class ConsoleFormatter {
14
7
  format(data) {
15
8
  const { level, message, timestamp, component, meta } = data;
16
- const color = LEVEL_COLORS[level] ?? "";
9
+ const color = LevelsColors_js_1.LEVEL_COLORS[level] ?? "";
17
10
  const levelLabel = `${color}${level.toUpperCase()}${RESET}`;
18
11
  const componentLabel = component ?? "App";
19
12
  let output = `${timestamp} ` +
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleFormatter.d.ts","sourceRoot":"","sources":["../../../../src/services/formatters/ConsoleFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAazD,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,IAAI,EAAE;QACX,KAAK,EAAE,SAAS,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,MAAM;IAoBV,OAAO,CAAC,UAAU;CAOnB"}
1
+ {"version":3,"file":"ConsoleFormatter.d.ts","sourceRoot":"","sources":["../../../../src/services/formatters/ConsoleFormatter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAIzD,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,IAAI,EAAE;QACX,KAAK,EAAE,SAAS,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,MAAM;IAoBV,OAAO,CAAC,UAAU;CAOnB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Jsonizer = void 0;
4
+ const CorrelationStore_js_1 = require("../../core/store/CorrelationStore.cjs");
5
+ class Jsonizer {
6
+ projectName;
7
+ environment;
8
+ componentName;
9
+ constructor(config) {
10
+ this.projectName = config.projectName;
11
+ this.environment = config.environment;
12
+ this.componentName = config.componentName;
13
+ }
14
+ appendLog(correlationId, entry) {
15
+ const session = (0, CorrelationStore_js_1.getOrCreateSession)(correlationId, {
16
+ projectName: this.projectName,
17
+ environment: this.environment,
18
+ correlationId,
19
+ component: this.componentName,
20
+ });
21
+ session.logs.push({
22
+ timestamp: new Date().toISOString(),
23
+ level: entry.level,
24
+ message: entry.message,
25
+ meta: entry.meta ?? {},
26
+ component: this.componentName,
27
+ });
28
+ return session;
29
+ }
30
+ }
31
+ exports.Jsonizer = Jsonizer;
@@ -0,0 +1,11 @@
1
+ import { CorrelationSession } from "../../core/interface/CorrelationSession.js";
2
+ import { JsonizerConfig } from "../../core/interface/JsonzierConfig.js";
3
+ import { LogEntry } from "../../core/types/LogEntry.js";
4
+ export declare class Jsonizer {
5
+ private readonly projectName;
6
+ private readonly environment;
7
+ private readonly componentName;
8
+ constructor(config: JsonizerConfig);
9
+ appendLog(correlationId: string, entry: LogEntry): CorrelationSession;
10
+ }
11
+ //# sourceMappingURL=Jsonizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jsonizer.d.ts","sourceRoot":"","sources":["../../../../src/services/processors/Jsonizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAKxD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,MAAM,EAAE,cAAc;IAM3B,SAAS,CACd,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,QAAQ,GACd,kBAAkB;CAkBtB"}
@@ -0,0 +1,16 @@
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.ConsoleTransporter = void 0;
7
+ const winston_1 = require("winston");
8
+ const FormatLogs_js_1 = __importDefault(require("../../core/formatters/winston/FormatLogs.cjs"));
9
+ class ConsoleTransporter {
10
+ transport() {
11
+ return new winston_1.transports.Console({
12
+ format: (0, FormatLogs_js_1.default)(),
13
+ });
14
+ }
15
+ }
16
+ exports.ConsoleTransporter = ConsoleTransporter;
@@ -0,0 +1,5 @@
1
+ import { transport } from "winston";
2
+ export declare class ConsoleTransporter {
3
+ transport(): transport;
4
+ }
5
+ //# sourceMappingURL=ConsoleTranspoter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleTranspoter.d.ts","sourceRoot":"","sources":["../../../../src/services/transporter/ConsoleTranspoter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,SAAS,CAAC;AAGhD,qBAAa,kBAAkB;IAC7B,SAAS,IAAI,SAAS;CAKvB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerTransporter = void 0;
4
+ const LogApi_js_1 = require("../../api/LogApi.cjs");
5
+ const LogPayLoads_js_1 = require("../../core/enum/LogPayLoads.cjs");
6
+ class ServerTransporter {
7
+ transport(session) {
8
+ if (this.isFrontendSession(session)) {
9
+ this.sendSingle(session);
10
+ return;
11
+ }
12
+ this.sendCorrelation(session);
13
+ }
14
+ sendCorrelation(session) {
15
+ (0, LogApi_js_1.LogApi)({
16
+ type: LogPayLoads_js_1.LogPayloadType.SESSION,
17
+ data: session,
18
+ });
19
+ }
20
+ sendSingle(session) {
21
+ (0, LogApi_js_1.LogApi)({
22
+ type: LogPayLoads_js_1.LogPayloadType.SINGLE,
23
+ data: session,
24
+ });
25
+ }
26
+ isFrontendSession(session) {
27
+ // Decide ONLY based on session shape/data
28
+ return session.correlationId === "no-correlation-id";
29
+ }
30
+ }
31
+ exports.ServerTransporter = ServerTransporter;
@@ -0,0 +1,10 @@
1
+ import { CorrelationSession, NonCorrelationSession } from "../../core/interface/CorrelationSession.js";
2
+ type AnySession = CorrelationSession | NonCorrelationSession;
3
+ export declare class ServerTransporter {
4
+ transport(session: AnySession): void;
5
+ private sendCorrelation;
6
+ private sendSingle;
7
+ private isFrontendSession;
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=ServerTransporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerTransporter.d.ts","sourceRoot":"","sources":["../../../../src/services/transporter/ServerTransporter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,4CAA4C,CAAC;AAEpD,KAAK,UAAU,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AAE7D,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IASpC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -0,0 +1,10 @@
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.generateCorrelationId = generateCorrelationId;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ function generateCorrelationId(projectName, componentName) {
9
+ return `${projectName}-${componentName}-${crypto_1.default.randomUUID()}`;
10
+ }
@@ -0,0 +1,2 @@
1
+ export declare function generateCorrelationId(projectName: string, componentName: string): string;
2
+ //# sourceMappingURL=GenerateCorrelationId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateCorrelationId.d.ts","sourceRoot":"","sources":["../../../src/utils/GenerateCorrelationId.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CAER"}