@wgtechlabs/log-engine 2.0.0 → 2.1.1

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 (182) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +869 -608
  3. package/dist/cjs/__tests__/async-test-utils.cjs +276 -0
  4. package/dist/cjs/__tests__/async-test-utils.d.ts +51 -0
  5. package/dist/cjs/__tests__/async-test-utils.d.ts.map +1 -0
  6. package/dist/cjs/__tests__/async-test-utils.js.map +1 -0
  7. package/dist/cjs/__tests__/redaction/test-utils.cjs +72 -0
  8. package/dist/cjs/__tests__/redaction/test-utils.d.ts +33 -0
  9. package/dist/cjs/__tests__/redaction/test-utils.d.ts.map +1 -0
  10. package/dist/cjs/__tests__/redaction/test-utils.js.map +1 -0
  11. package/dist/cjs/__tests__/test-utils.cjs +49 -0
  12. package/dist/cjs/__tests__/test-utils.d.ts +41 -0
  13. package/dist/cjs/__tests__/test-utils.d.ts.map +1 -0
  14. package/dist/cjs/__tests__/test-utils.js.map +1 -0
  15. package/dist/{formatter/colors.js → cjs/formatter/colors.cjs} +1 -0
  16. package/dist/cjs/formatter/colors.d.ts.map +1 -0
  17. package/dist/cjs/formatter/colors.js.map +1 -0
  18. package/dist/{formatter/data-formatter.js → cjs/formatter/data-formatter.cjs} +2 -1
  19. package/dist/{formatter → cjs/formatter}/data-formatter.d.ts +2 -1
  20. package/dist/cjs/formatter/data-formatter.d.ts.map +1 -0
  21. package/dist/cjs/formatter/data-formatter.js.map +1 -0
  22. package/dist/{formatter/index.js → cjs/formatter/index.cjs} +6 -5
  23. package/dist/cjs/formatter/index.d.ts.map +1 -0
  24. package/dist/cjs/formatter/index.js.map +1 -0
  25. package/dist/{formatter/message-formatter.js → cjs/formatter/message-formatter.cjs} +28 -27
  26. package/dist/cjs/formatter/message-formatter.d.ts +41 -0
  27. package/dist/cjs/formatter/message-formatter.d.ts.map +1 -0
  28. package/dist/cjs/formatter/message-formatter.js.map +1 -0
  29. package/dist/{formatter/timestamp.js → cjs/formatter/timestamp.cjs} +1 -0
  30. package/dist/cjs/formatter/timestamp.d.ts.map +1 -0
  31. package/dist/cjs/formatter/timestamp.js.map +1 -0
  32. package/dist/cjs/index.cjs +202 -0
  33. package/dist/cjs/index.d.ts +180 -0
  34. package/dist/cjs/index.d.ts.map +1 -0
  35. package/dist/cjs/index.js.map +1 -0
  36. package/dist/cjs/logger/advanced-outputs.cjs +587 -0
  37. package/dist/cjs/logger/advanced-outputs.d.ts +159 -0
  38. package/dist/cjs/logger/advanced-outputs.d.ts.map +1 -0
  39. package/dist/cjs/logger/advanced-outputs.js.map +1 -0
  40. package/dist/{logger/config.js → cjs/logger/config.cjs} +36 -32
  41. package/dist/cjs/logger/config.d.ts +42 -0
  42. package/dist/cjs/logger/config.d.ts.map +1 -0
  43. package/dist/cjs/logger/config.js.map +1 -0
  44. package/dist/cjs/logger/core.cjs +371 -0
  45. package/dist/cjs/logger/core.d.ts +152 -0
  46. package/dist/cjs/logger/core.d.ts.map +1 -0
  47. package/dist/cjs/logger/core.js.map +1 -0
  48. package/dist/{logger/environment.js → cjs/logger/environment.cjs} +17 -16
  49. package/dist/cjs/logger/environment.d.ts +36 -0
  50. package/dist/cjs/logger/environment.d.ts.map +1 -0
  51. package/dist/cjs/logger/environment.js.map +1 -0
  52. package/dist/cjs/logger/filtering.cjs +81 -0
  53. package/dist/cjs/logger/filtering.d.ts +36 -0
  54. package/dist/cjs/logger/filtering.d.ts.map +1 -0
  55. package/dist/cjs/logger/filtering.js.map +1 -0
  56. package/dist/{logger/index.js → cjs/logger/index.cjs} +6 -5
  57. package/dist/cjs/logger/index.d.ts.map +1 -0
  58. package/dist/cjs/logger/index.js.map +1 -0
  59. package/dist/cjs/package.json +3 -0
  60. package/dist/{redaction/config.js → cjs/redaction/config.cjs} +9 -8
  61. package/dist/{redaction → cjs/redaction}/config.d.ts +8 -8
  62. package/dist/cjs/redaction/config.d.ts.map +1 -0
  63. package/dist/cjs/redaction/config.js.map +1 -0
  64. package/dist/{redaction/index.js → cjs/redaction/index.cjs} +3 -2
  65. package/dist/cjs/redaction/index.d.ts.map +1 -0
  66. package/dist/cjs/redaction/index.js.map +1 -0
  67. package/dist/cjs/redaction/redactor.cjs +263 -0
  68. package/dist/cjs/redaction/redactor.d.ts +99 -0
  69. package/dist/cjs/redaction/redactor.d.ts.map +1 -0
  70. package/dist/cjs/redaction/redactor.js.map +1 -0
  71. package/dist/{types/index.js → cjs/types/index.cjs} +1 -0
  72. package/dist/{types → cjs/types}/index.d.ts +98 -16
  73. package/dist/cjs/types/index.d.ts.map +1 -0
  74. package/dist/cjs/types/index.js.map +1 -0
  75. package/dist/esm/__tests__/async-test-utils.d.ts +51 -0
  76. package/dist/esm/__tests__/async-test-utils.d.ts.map +1 -0
  77. package/dist/esm/__tests__/async-test-utils.js +231 -0
  78. package/dist/esm/__tests__/async-test-utils.js.map +1 -0
  79. package/dist/esm/__tests__/redaction/test-utils.d.ts +33 -0
  80. package/dist/esm/__tests__/redaction/test-utils.d.ts.map +1 -0
  81. package/dist/esm/__tests__/redaction/test-utils.js +65 -0
  82. package/dist/esm/__tests__/redaction/test-utils.js.map +1 -0
  83. package/dist/esm/__tests__/test-utils.d.ts +41 -0
  84. package/dist/esm/__tests__/test-utils.d.ts.map +1 -0
  85. package/dist/esm/__tests__/test-utils.js +42 -0
  86. package/dist/esm/__tests__/test-utils.js.map +1 -0
  87. package/dist/esm/formatter/colors.d.ts +32 -0
  88. package/dist/esm/formatter/colors.d.ts.map +1 -0
  89. package/dist/esm/formatter/colors.js +32 -0
  90. package/dist/esm/formatter/colors.js.map +1 -0
  91. package/dist/esm/formatter/data-formatter.d.ts +26 -0
  92. package/dist/esm/formatter/data-formatter.d.ts.map +1 -0
  93. package/dist/esm/formatter/data-formatter.js +50 -0
  94. package/dist/esm/formatter/data-formatter.js.map +1 -0
  95. package/dist/esm/formatter/index.d.ts +10 -0
  96. package/dist/esm/formatter/index.d.ts.map +1 -0
  97. package/dist/esm/formatter/index.js +11 -0
  98. package/dist/esm/formatter/index.js.map +1 -0
  99. package/dist/esm/formatter/message-formatter.d.ts +41 -0
  100. package/dist/esm/formatter/message-formatter.d.ts.map +1 -0
  101. package/dist/esm/formatter/message-formatter.js +84 -0
  102. package/dist/esm/formatter/message-formatter.js.map +1 -0
  103. package/dist/esm/formatter/timestamp.d.ts +27 -0
  104. package/dist/esm/formatter/timestamp.d.ts.map +1 -0
  105. package/dist/esm/formatter/timestamp.js +36 -0
  106. package/dist/esm/formatter/timestamp.js.map +1 -0
  107. package/dist/esm/index.d.ts +180 -0
  108. package/dist/esm/index.d.ts.map +1 -0
  109. package/dist/esm/index.js +194 -0
  110. package/dist/esm/index.js.map +1 -0
  111. package/dist/esm/logger/advanced-outputs.d.ts +159 -0
  112. package/dist/esm/logger/advanced-outputs.d.ts.map +1 -0
  113. package/dist/esm/logger/advanced-outputs.js +542 -0
  114. package/dist/esm/logger/advanced-outputs.js.map +1 -0
  115. package/dist/esm/logger/config.d.ts +42 -0
  116. package/dist/esm/logger/config.d.ts.map +1 -0
  117. package/dist/esm/logger/config.js +101 -0
  118. package/dist/esm/logger/config.js.map +1 -0
  119. package/dist/esm/logger/core.d.ts +152 -0
  120. package/dist/esm/logger/core.d.ts.map +1 -0
  121. package/dist/esm/logger/core.js +367 -0
  122. package/dist/esm/logger/core.js.map +1 -0
  123. package/dist/esm/logger/environment.d.ts +36 -0
  124. package/dist/esm/logger/environment.d.ts.map +1 -0
  125. package/dist/esm/logger/environment.js +58 -0
  126. package/dist/esm/logger/environment.js.map +1 -0
  127. package/dist/esm/logger/filtering.d.ts +36 -0
  128. package/dist/esm/logger/filtering.d.ts.map +1 -0
  129. package/dist/esm/logger/filtering.js +77 -0
  130. package/dist/esm/logger/filtering.js.map +1 -0
  131. package/dist/esm/logger/index.d.ts +10 -0
  132. package/dist/esm/logger/index.d.ts.map +1 -0
  133. package/dist/esm/logger/index.js +11 -0
  134. package/dist/esm/logger/index.js.map +1 -0
  135. package/dist/esm/redaction/config.d.ts +29 -0
  136. package/dist/esm/redaction/config.d.ts.map +1 -0
  137. package/dist/esm/redaction/config.js +92 -0
  138. package/dist/esm/redaction/config.js.map +1 -0
  139. package/dist/esm/redaction/index.d.ts +8 -0
  140. package/dist/esm/redaction/index.d.ts.map +1 -0
  141. package/dist/esm/redaction/index.js +7 -0
  142. package/dist/esm/redaction/index.js.map +1 -0
  143. package/dist/esm/redaction/redactor.d.ts +99 -0
  144. package/dist/esm/redaction/redactor.d.ts.map +1 -0
  145. package/dist/esm/redaction/redactor.js +259 -0
  146. package/dist/esm/redaction/redactor.js.map +1 -0
  147. package/dist/esm/types/index.d.ts +310 -0
  148. package/dist/esm/types/index.d.ts.map +1 -0
  149. package/dist/esm/types/index.js +41 -0
  150. package/dist/esm/types/index.js.map +1 -0
  151. package/package.json +94 -68
  152. package/dist/formatter/colors.d.ts.map +0 -1
  153. package/dist/formatter/data-formatter.d.ts.map +0 -1
  154. package/dist/formatter/index.d.ts.map +0 -1
  155. package/dist/formatter/message-formatter.d.ts +0 -41
  156. package/dist/formatter/message-formatter.d.ts.map +0 -1
  157. package/dist/formatter/timestamp.d.ts.map +0 -1
  158. package/dist/index.d.ts +0 -186
  159. package/dist/index.d.ts.map +0 -1
  160. package/dist/index.js +0 -201
  161. package/dist/logger/config.d.ts +0 -42
  162. package/dist/logger/config.d.ts.map +0 -1
  163. package/dist/logger/core.d.ts +0 -108
  164. package/dist/logger/core.d.ts.map +0 -1
  165. package/dist/logger/core.js +0 -185
  166. package/dist/logger/environment.d.ts +0 -36
  167. package/dist/logger/environment.d.ts.map +0 -1
  168. package/dist/logger/filtering.d.ts +0 -36
  169. package/dist/logger/filtering.d.ts.map +0 -1
  170. package/dist/logger/filtering.js +0 -65
  171. package/dist/logger/index.d.ts.map +0 -1
  172. package/dist/redaction/config.d.ts.map +0 -1
  173. package/dist/redaction/index.d.ts.map +0 -1
  174. package/dist/redaction/redactor.d.ts +0 -99
  175. package/dist/redaction/redactor.d.ts.map +0 -1
  176. package/dist/redaction/redactor.js +0 -257
  177. package/dist/types/index.d.ts.map +0 -1
  178. /package/dist/{formatter → cjs/formatter}/colors.d.ts +0 -0
  179. /package/dist/{formatter → cjs/formatter}/index.d.ts +0 -0
  180. /package/dist/{formatter → cjs/formatter}/timestamp.d.ts +0 -0
  181. /package/dist/{logger → cjs/logger}/index.d.ts +0 -0
  182. /package/dist/{redaction → cjs/redaction}/index.d.ts +0 -0
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Advanced output handlers for log-engine
3
+ * Provides file, HTTP, and other production-ready output handlers
4
+ */
5
+ import * as fs from 'fs';
6
+ import type { FileOutputConfig, HttpOutputConfig } from '../types';
7
+ /**
8
+ * Secure filesystem operations for logging operations
9
+ *
10
+ * SECURITY NOTE: These functions implement comprehensive path validation and access controls
11
+ * to prevent path traversal attacks, directory injection, and unauthorized file access.
12
+ * ESLint security rules are disabled for specific fs operations because:
13
+ *
14
+ * 1. All paths are validated through validatePath() which:
15
+ * - Prevents directory traversal (../)
16
+ * - Restricts access to predefined safe directories
17
+ * - Blocks access to system directories
18
+ * - Normalizes and resolves paths securely
19
+ *
20
+ * 2. The logging library requires dynamic file paths by design (user-configurable log files)
21
+ * 3. All operations are wrapped in try-catch with comprehensive error handling
22
+ * 4. File operations are restricted to log and temp directories only
23
+ */
24
+ /**
25
+ * Predefined safe base directories for different operation types
26
+ * Restricted to specific subdirectories to prevent unauthorized access
27
+ */
28
+ declare const SAFE_BASE_DIRS: {
29
+ readonly LOG_FILES: readonly [string, string, string];
30
+ readonly TEMP_FILES: readonly [string, string, string, string];
31
+ readonly CONFIG_FILES: readonly [string, string, string];
32
+ };
33
+ /**
34
+ * Validates file path with comprehensive security checks
35
+ * Prevents path traversal, restricts to safe directories, blocks system paths
36
+ */
37
+ declare function validatePath(filePath: string): string;
38
+ /**
39
+ * Secure file existence check
40
+ * Uses fs.accessSync instead of fs.existsSync for better security practices
41
+ */
42
+ declare function secureExistsSync(filePath: string): boolean;
43
+ /**
44
+ * Secure directory creation with recursive option support
45
+ * Restricted to log and temp directories only
46
+ */
47
+ declare function secureMkdirSync(dirPath: string, options?: {
48
+ recursive?: boolean;
49
+ }): void;
50
+ /**
51
+ * Secure file stat operation
52
+ * Returns file system statistics for validated paths only
53
+ */
54
+ declare function secureStatSync(filePath: string): fs.Stats;
55
+ /**
56
+ * Secure file write operation
57
+ * Validates path and data before writing to prevent injection attacks
58
+ */
59
+ declare function secureWriteFileSync(filePath: string, data: string, options?: {
60
+ flag?: string;
61
+ }): void;
62
+ /**
63
+ * Secure file deletion
64
+ * Restricted to log and temp files only for safety
65
+ */
66
+ declare function secureUnlinkSync(filePath: string): void;
67
+ /**
68
+ * Secure file rename/move operation
69
+ * Both source and destination must be in safe directories
70
+ */
71
+ declare function secureRenameSync(oldPath: string, newPath: string): void;
72
+ /**
73
+ * File output handler with rotation support and concurrency protection
74
+ * Implements atomic file operations and write queuing to prevent corruption
75
+ */
76
+ export declare class FileOutputHandler {
77
+ private config;
78
+ private currentFileSize;
79
+ private rotationInProgress;
80
+ private writeQueue;
81
+ constructor(config: FileOutputConfig);
82
+ /**
83
+ * Default formatter for file output
84
+ */
85
+ private defaultFormatter;
86
+ /**
87
+ * Write log to file with rotation support and concurrency protection
88
+ * Queues writes during rotation to prevent file corruption
89
+ */
90
+ write: (level: string, message: string, data?: unknown) => void;
91
+ /**
92
+ * Write to file with concurrency protection and rotation check
93
+ * If rotation is in progress, messages are queued to prevent corruption
94
+ */
95
+ private writeToFile;
96
+ /**
97
+ * Process queued writes after rotation completes
98
+ */
99
+ private processWriteQueue;
100
+ /**
101
+ * Rotate log files when size limit is reached
102
+ * Implements concurrency protection to prevent corruption during rotation
103
+ */
104
+ private rotateFile;
105
+ /**
106
+ * Clean up resources and process any remaining queued writes
107
+ */
108
+ destroy(): void;
109
+ }
110
+ /**
111
+ * HTTP output handler for sending logs to remote endpoints
112
+ */
113
+ export declare class HttpOutputHandler {
114
+ private config;
115
+ private logBuffer;
116
+ private flushTimeout;
117
+ constructor(config: HttpOutputConfig);
118
+ /**
119
+ * Default formatter for HTTP output
120
+ */
121
+ private defaultFormatter;
122
+ /**
123
+ * Write log to HTTP endpoint with batching support
124
+ */
125
+ write: (level: string, message: string, data?: unknown) => void;
126
+ /**
127
+ * Flush buffered logs to HTTP endpoint
128
+ */
129
+ private flush;
130
+ /**
131
+ * Send HTTP request with appropriate method based on environment
132
+ */
133
+ private sendHttpRequest;
134
+ /**
135
+ * Fallback HTTP implementation for Node.js environments without fetch
136
+ */
137
+ private sendHttpRequestNodeJS;
138
+ /**
139
+ * Cleanup method to prevent memory leaks
140
+ */
141
+ destroy(): void;
142
+ }
143
+ /**
144
+ * Returns a logging handler function based on the specified type and configuration.
145
+ *
146
+ * Supported types are:
147
+ * - `'console'`: Logs to the console using the appropriate method for the log level.
148
+ * - `'silent'`: Returns a no-op handler that discards all logs.
149
+ * - `'file'`: Writes logs to a file with optional rotation; requires `filePath` in config.
150
+ * - `'http'`: Sends logs to a remote HTTP endpoint; requires `url` in config.
151
+ *
152
+ * If required configuration is missing or initialization fails, logs an error and returns either a fallback handler or `null`.
153
+ *
154
+ * @param type - The type of output handler to create (`'console'`, `'silent'`, `'file'`, or `'http'`)
155
+ * @returns A log handler function or `null` if the handler cannot be created
156
+ */
157
+ export declare function createBuiltInHandler(type: string, config?: Record<string, unknown>): ((level: string, message: string, data?: unknown) => void) | null;
158
+ export { secureExistsSync, secureMkdirSync, secureStatSync, secureWriteFileSync, secureUnlinkSync, secureRenameSync, validatePath, SAFE_BASE_DIRS };
159
+ //# sourceMappingURL=advanced-outputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-outputs.d.ts","sourceRoot":"","sources":["../../../src/logger/advanced-outputs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAuBnE;;;;;;;;;;;;;;;;GAgBG;AAEH;;;GAGG;AACH,QAAA,MAAM,cAAc;;;;CAIV,CAAC;AAEX;;;GAGG;AACH,iBAAS,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqC9C;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CASnD;AAED;;;GAGG;AACH,iBAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAWjF;AAED;;;GAGG;AACH,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,CAUlD;AAED;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgB9F;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAkBhD;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAoBhE;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAiE;gBAEvE,MAAM,EAAE,gBAAgB;IA6BpC;;SAEK;IACL,OAAO,CAAC,gBAAgB,CAItB;IAEF;;;SAGK;IACE,KAAK,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,OAAO,KAAG,IAAI,CAcnE;IAEF;;;OAGG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;SAGK;IACL,OAAO,CAAC,UAAU;IAwClB;;OAEG;IACI,OAAO,IAAI,IAAI;CAUvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,gBAAgB;IAYpC;;SAEK;IACL,OAAO,CAAC,gBAAgB,CAStB;IAEF;;SAEK;IACE,KAAK,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,OAAO,KAAG,IAAI,CA0BnE;IAEF;;SAEK;IACL,OAAO,CAAC,KAAK;IAqBb;;SAEK;IACL,OAAO,CAAC,eAAe;IAiBvB;;SAEK;IACL,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACI,OAAO,IAAI,IAAI;CAQvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CA2CtJ;AAGD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-outputs.js","sourceRoot":"","sources":["../../../src/logger/advanced-outputs.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.LoggerConfigManager = void 0;
8
- const types_1 = require("../types");
9
- const environment_1 = require("./environment");
8
+ const types_1 = require("../types/index.cjs");
9
+ const environment_1 = require("./environment.cjs");
10
10
  /**
11
11
  * Configuration manager for logger settings
12
12
  * Handles configuration validation, updates, and backward compatibility
@@ -19,18 +19,18 @@ class LoggerConfigManager {
19
19
  };
20
20
  }
21
21
  /**
22
- * Get current configuration
23
- * @returns Current logger configuration
24
- */
22
+ * Get current configuration
23
+ * @returns Current logger configuration
24
+ */
25
25
  getConfig() {
26
26
  return { ...this.config };
27
27
  }
28
28
  /**
29
- * Updates logger configuration with new settings
30
- * Merges provided config with existing settings (partial update)
31
- * Supports backwards compatibility by mapping level to mode with deprecation warnings
32
- * @param config - Partial configuration object to apply
33
- */
29
+ * Updates logger configuration with new settings
30
+ * Merges provided config with existing settings (partial update)
31
+ * Supports backwards compatibility by mapping level to mode with deprecation warnings
32
+ * @param config - Partial configuration object to apply
33
+ */
34
34
  updateConfig(config) {
35
35
  // Handle backwards compatibility - if level is provided but mode is not
36
36
  if (config.level !== undefined && config.mode === undefined) {
@@ -40,6 +40,7 @@ class LoggerConfigManager {
40
40
  // Normal configuration update
41
41
  // If mode is present, remove legacy level property to avoid conflicts
42
42
  if (config.mode !== undefined && config.level !== undefined) {
43
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
44
  const { level, ...configWithoutLevel } = config;
44
45
  this.config = { ...this.config, ...configWithoutLevel };
45
46
  }
@@ -49,9 +50,9 @@ class LoggerConfigManager {
49
50
  }
50
51
  }
51
52
  /**
52
- * Handle legacy level-based configuration with deprecation warnings
53
- * @param config - Configuration containing legacy level property
54
- */
53
+ * Handle legacy level-based configuration with deprecation warnings
54
+ * @param config - Configuration containing legacy level property
55
+ */
55
56
  handleLegacyLevelConfig(config) {
56
57
  // Map legacy level values to new LogMode values and validate first
57
58
  const levelValue = config.level;
@@ -66,36 +67,39 @@ class LoggerConfigManager {
66
67
  }
67
68
  // Merge existing config with all keys from the passed config, and override mode with mapped value
68
69
  // Remove the legacy 'level' property to avoid conflicts with the new 'mode' property
70
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
69
71
  const { level, ...configWithoutLevel } = config;
70
72
  this.config = { ...this.config, ...configWithoutLevel, mode: mappedMode };
71
73
  }
72
74
  /**
73
- * Map legacy LogLevel values to LogMode values
74
- * @param levelValue - Legacy level value
75
- * @returns Corresponding LogMode or undefined if invalid
76
- */
75
+ * Map legacy LogLevel values to LogMode values
76
+ * @param levelValue - Legacy level value
77
+ * @returns Corresponding LogMode or undefined if invalid
78
+ */
77
79
  mapLevelToMode(levelValue) {
78
- const levelToModeMap = {
79
- [types_1.LogLevel.DEBUG]: types_1.LogMode.DEBUG, // 0 -> 0
80
- [types_1.LogLevel.INFO]: types_1.LogMode.INFO, // 1 -> 1
81
- [types_1.LogLevel.WARN]: types_1.LogMode.WARN, // 2 -> 2
82
- [types_1.LogLevel.ERROR]: types_1.LogMode.ERROR, // 3 -> 3
83
- [types_1.LogLevel.LOG]: types_1.LogMode.SILENT, // 99 -> 4 (preserves critical-only behavior)
84
- 4: types_1.LogMode.SILENT, // Legacy SILENT -> 4
85
- 5: types_1.LogMode.OFF // Legacy OFF -> 5
86
- };
87
- return levelToModeMap[levelValue];
80
+ // Use switch statement to avoid object injection
81
+ switch (levelValue) {
82
+ case types_1.LogLevel.DEBUG: return types_1.LogMode.DEBUG; // 0 -> 0
83
+ case types_1.LogLevel.INFO: return types_1.LogMode.INFO; // 1 -> 1
84
+ case types_1.LogLevel.WARN: return types_1.LogMode.WARN; // 2 -> 2
85
+ case types_1.LogLevel.ERROR: return types_1.LogMode.ERROR; // 3 -> 3
86
+ case types_1.LogLevel.LOG: return types_1.LogMode.SILENT; // 99 -> 4 (preserves critical-only behavior)
87
+ case 4: return types_1.LogMode.SILENT; // Legacy SILENT -> 4
88
+ case 5: return types_1.LogMode.OFF; // Legacy OFF -> 5
89
+ default: return undefined;
90
+ }
88
91
  }
89
92
  /**
90
- * Create deprecation warning message using LogFormatter
91
- * Outputs formatted deprecation warning messages to console
92
- */
93
+ * Create deprecation warning message using LogFormatter
94
+ * Outputs formatted deprecation warning messages to console
95
+ */
93
96
  createDeprecationWarning() {
94
97
  // Import LogFormatter to format system messages properly
95
- const { LogFormatter } = require('../formatter');
96
- console.warn(LogFormatter.formatSystemMessage('⚠️ DEPRECATION WARNING: The "level" configuration is deprecated and will be removed in v2.0.0. Please use "mode" instead.'));
98
+ const { LogFormatter } = require('../formatter/index.cjs');
99
+ console.warn(LogFormatter.formatSystemMessage('⚠️ DEPRECATION WARNING: The "level" configuration is deprecated and will be removed in v3.0.0. Please use "mode" instead.'));
97
100
  console.warn(LogFormatter.formatSystemMessage(' Migration: LogEngine.configure({ level: LogLevel.DEBUG }) → LogEngine.configure({ mode: LogMode.DEBUG })'));
98
101
  console.warn(LogFormatter.formatSystemMessage(' See: https://github.com/wgtechlabs/log-engine#migration-guide-loglevel--logmode'));
99
102
  }
100
103
  }
101
104
  exports.LoggerConfigManager = LoggerConfigManager;
105
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Logger configuration management
3
+ * Handles logger settings and configuration updates
4
+ */
5
+ import { LoggerConfig } from '../types';
6
+ /**
7
+ * Configuration manager for logger settings
8
+ * Handles configuration validation, updates, and backward compatibility
9
+ */
10
+ export declare class LoggerConfigManager {
11
+ private config;
12
+ constructor();
13
+ /**
14
+ * Get current configuration
15
+ * @returns Current logger configuration
16
+ */
17
+ getConfig(): LoggerConfig;
18
+ /**
19
+ * Updates logger configuration with new settings
20
+ * Merges provided config with existing settings (partial update)
21
+ * Supports backwards compatibility by mapping level to mode with deprecation warnings
22
+ * @param config - Partial configuration object to apply
23
+ */
24
+ updateConfig(config: Partial<LoggerConfig>): void;
25
+ /**
26
+ * Handle legacy level-based configuration with deprecation warnings
27
+ * @param config - Configuration containing legacy level property
28
+ */
29
+ private handleLegacyLevelConfig;
30
+ /**
31
+ * Map legacy LogLevel values to LogMode values
32
+ * @param levelValue - Legacy level value
33
+ * @returns Corresponding LogMode or undefined if invalid
34
+ */
35
+ private mapLevelToMode;
36
+ /**
37
+ * Create deprecation warning message using LogFormatter
38
+ * Outputs formatted deprecation warning messages to console
39
+ */
40
+ private createDeprecationWarning;
41
+ }
42
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/logger/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,UAAU,CAAC;AAG3D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAe;;IAS7B;;;SAGK;IACL,SAAS,IAAI,YAAY;IAIzB;;;;;SAKK;IACL,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAiBjD;;;SAGK;IACL,OAAO,CAAC,uBAAuB;IAsB/B;;;;SAIK;IACL,OAAO,CAAC,cAAc;IActB;;;SAGK;IACL,OAAO,CAAC,wBAAwB;CAQjC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/logger/config.ts"],"names":[],"mappings":"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"}