@wgtechlabs/log-engine 2.1.0 → 2.2.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 (171) hide show
  1. package/README.md +67 -1
  2. package/dist/cjs/__tests__/async-test-utils.cjs +276 -0
  3. package/dist/cjs/__tests__/async-test-utils.d.ts +51 -0
  4. package/dist/cjs/__tests__/async-test-utils.d.ts.map +1 -0
  5. package/dist/cjs/__tests__/async-test-utils.js.map +1 -0
  6. package/dist/cjs/__tests__/redaction/test-utils.cjs +72 -0
  7. package/dist/cjs/__tests__/redaction/test-utils.d.ts +33 -0
  8. package/dist/cjs/__tests__/redaction/test-utils.d.ts.map +1 -0
  9. package/dist/cjs/__tests__/redaction/test-utils.js.map +1 -0
  10. package/dist/cjs/__tests__/test-utils.cjs +49 -0
  11. package/dist/cjs/__tests__/test-utils.d.ts +41 -0
  12. package/dist/cjs/__tests__/test-utils.d.ts.map +1 -0
  13. package/dist/cjs/__tests__/test-utils.js.map +1 -0
  14. package/dist/{formatter/colors.js → cjs/formatter/colors.cjs} +1 -0
  15. package/dist/cjs/formatter/colors.d.ts.map +1 -0
  16. package/dist/cjs/formatter/colors.js.map +1 -0
  17. package/dist/{formatter/data-formatter.js → cjs/formatter/data-formatter.cjs} +1 -0
  18. package/dist/cjs/formatter/data-formatter.d.ts.map +1 -0
  19. package/dist/cjs/formatter/data-formatter.js.map +1 -0
  20. package/dist/{formatter/index.js → cjs/formatter/index.cjs} +6 -5
  21. package/dist/cjs/formatter/index.d.ts.map +1 -0
  22. package/dist/cjs/formatter/index.js.map +1 -0
  23. package/dist/{formatter/message-formatter.js → cjs/formatter/message-formatter.cjs} +61 -11
  24. package/dist/{formatter → cjs/formatter}/message-formatter.d.ts +9 -3
  25. package/dist/cjs/formatter/message-formatter.d.ts.map +1 -0
  26. package/dist/cjs/formatter/message-formatter.js.map +1 -0
  27. package/dist/{formatter/timestamp.js → cjs/formatter/timestamp.cjs} +1 -0
  28. package/dist/cjs/formatter/timestamp.d.ts.map +1 -0
  29. package/dist/cjs/formatter/timestamp.js.map +1 -0
  30. package/dist/{index.js → cjs/index.cjs} +5 -4
  31. package/dist/{index.d.ts → cjs/index.d.ts} +1 -1
  32. package/dist/cjs/index.d.ts.map +1 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/{logger/advanced-outputs.js → cjs/logger/advanced-outputs.cjs} +1 -0
  35. package/dist/cjs/logger/advanced-outputs.d.ts.map +1 -0
  36. package/dist/cjs/logger/advanced-outputs.js.map +1 -0
  37. package/dist/{logger/config.js → cjs/logger/config.cjs} +4 -3
  38. package/dist/cjs/logger/config.d.ts.map +1 -0
  39. package/dist/cjs/logger/config.js.map +1 -0
  40. package/dist/{logger/core.js → cjs/logger/core.cjs} +48 -16
  41. package/dist/{logger → cjs/logger}/core.d.ts +19 -0
  42. package/dist/cjs/logger/core.d.ts.map +1 -0
  43. package/dist/cjs/logger/core.js.map +1 -0
  44. package/dist/{logger/environment.js → cjs/logger/environment.cjs} +2 -1
  45. package/dist/cjs/logger/environment.d.ts.map +1 -0
  46. package/dist/cjs/logger/environment.js.map +1 -0
  47. package/dist/{logger/filtering.js → cjs/logger/filtering.cjs} +2 -1
  48. package/dist/cjs/logger/filtering.d.ts.map +1 -0
  49. package/dist/cjs/logger/filtering.js.map +1 -0
  50. package/dist/{logger/index.js → cjs/logger/index.cjs} +6 -5
  51. package/dist/cjs/logger/index.d.ts.map +1 -0
  52. package/dist/cjs/logger/index.js.map +1 -0
  53. package/dist/cjs/package.json +3 -0
  54. package/dist/{redaction/config.js → cjs/redaction/config.cjs} +1 -0
  55. package/dist/cjs/redaction/config.d.ts.map +1 -0
  56. package/dist/cjs/redaction/config.js.map +1 -0
  57. package/dist/{redaction/index.js → cjs/redaction/index.cjs} +3 -2
  58. package/dist/cjs/redaction/index.d.ts.map +1 -0
  59. package/dist/cjs/redaction/index.js.map +1 -0
  60. package/dist/{redaction/redactor.js → cjs/redaction/redactor.cjs} +2 -1
  61. package/dist/cjs/redaction/redactor.d.ts.map +1 -0
  62. package/dist/cjs/redaction/redactor.js.map +1 -0
  63. package/dist/{types/index.js → cjs/types/index.cjs} +1 -0
  64. package/dist/{types → cjs/types}/index.d.ts +12 -0
  65. package/dist/cjs/types/index.d.ts.map +1 -0
  66. package/dist/cjs/types/index.js.map +1 -0
  67. package/dist/esm/__tests__/async-test-utils.d.ts +51 -0
  68. package/dist/esm/__tests__/async-test-utils.d.ts.map +1 -0
  69. package/dist/esm/__tests__/async-test-utils.js +231 -0
  70. package/dist/esm/__tests__/async-test-utils.js.map +1 -0
  71. package/dist/esm/__tests__/redaction/test-utils.d.ts +33 -0
  72. package/dist/esm/__tests__/redaction/test-utils.d.ts.map +1 -0
  73. package/dist/esm/__tests__/redaction/test-utils.js +65 -0
  74. package/dist/esm/__tests__/redaction/test-utils.js.map +1 -0
  75. package/dist/esm/__tests__/test-utils.d.ts +41 -0
  76. package/dist/esm/__tests__/test-utils.d.ts.map +1 -0
  77. package/dist/esm/__tests__/test-utils.js +42 -0
  78. package/dist/esm/__tests__/test-utils.js.map +1 -0
  79. package/dist/esm/formatter/colors.d.ts +32 -0
  80. package/dist/esm/formatter/colors.d.ts.map +1 -0
  81. package/dist/esm/formatter/colors.js +32 -0
  82. package/dist/esm/formatter/colors.js.map +1 -0
  83. package/dist/esm/formatter/data-formatter.d.ts +26 -0
  84. package/dist/esm/formatter/data-formatter.d.ts.map +1 -0
  85. package/dist/esm/formatter/data-formatter.js +50 -0
  86. package/dist/esm/formatter/data-formatter.js.map +1 -0
  87. package/dist/esm/formatter/index.d.ts +10 -0
  88. package/dist/esm/formatter/index.d.ts.map +1 -0
  89. package/dist/esm/formatter/index.js +11 -0
  90. package/dist/esm/formatter/index.js.map +1 -0
  91. package/dist/esm/formatter/message-formatter.d.ts +47 -0
  92. package/dist/esm/formatter/message-formatter.d.ts.map +1 -0
  93. package/dist/esm/formatter/message-formatter.js +133 -0
  94. package/dist/esm/formatter/message-formatter.js.map +1 -0
  95. package/dist/esm/formatter/timestamp.d.ts +27 -0
  96. package/dist/esm/formatter/timestamp.d.ts.map +1 -0
  97. package/dist/esm/formatter/timestamp.js +36 -0
  98. package/dist/esm/formatter/timestamp.js.map +1 -0
  99. package/dist/esm/index.d.ts +180 -0
  100. package/dist/esm/index.d.ts.map +1 -0
  101. package/dist/esm/index.js +194 -0
  102. package/dist/esm/index.js.map +1 -0
  103. package/dist/esm/logger/advanced-outputs.d.ts +159 -0
  104. package/dist/esm/logger/advanced-outputs.d.ts.map +1 -0
  105. package/dist/esm/logger/advanced-outputs.js +542 -0
  106. package/dist/esm/logger/advanced-outputs.js.map +1 -0
  107. package/dist/esm/logger/config.d.ts +42 -0
  108. package/dist/esm/logger/config.d.ts.map +1 -0
  109. package/dist/esm/logger/config.js +101 -0
  110. package/dist/esm/logger/config.js.map +1 -0
  111. package/dist/esm/logger/core.d.ts +171 -0
  112. package/dist/esm/logger/core.d.ts.map +1 -0
  113. package/dist/esm/logger/core.js +398 -0
  114. package/dist/esm/logger/core.js.map +1 -0
  115. package/dist/esm/logger/environment.d.ts +36 -0
  116. package/dist/esm/logger/environment.d.ts.map +1 -0
  117. package/dist/esm/logger/environment.js +58 -0
  118. package/dist/esm/logger/environment.js.map +1 -0
  119. package/dist/esm/logger/filtering.d.ts +36 -0
  120. package/dist/esm/logger/filtering.d.ts.map +1 -0
  121. package/dist/esm/logger/filtering.js +77 -0
  122. package/dist/esm/logger/filtering.js.map +1 -0
  123. package/dist/esm/logger/index.d.ts +10 -0
  124. package/dist/esm/logger/index.d.ts.map +1 -0
  125. package/dist/esm/logger/index.js +11 -0
  126. package/dist/esm/logger/index.js.map +1 -0
  127. package/dist/esm/redaction/config.d.ts +29 -0
  128. package/dist/esm/redaction/config.d.ts.map +1 -0
  129. package/dist/esm/redaction/config.js +92 -0
  130. package/dist/esm/redaction/config.js.map +1 -0
  131. package/dist/esm/redaction/index.d.ts +8 -0
  132. package/dist/esm/redaction/index.d.ts.map +1 -0
  133. package/dist/esm/redaction/index.js +7 -0
  134. package/dist/esm/redaction/index.js.map +1 -0
  135. package/dist/esm/redaction/redactor.d.ts +99 -0
  136. package/dist/esm/redaction/redactor.d.ts.map +1 -0
  137. package/dist/esm/redaction/redactor.js +259 -0
  138. package/dist/esm/redaction/redactor.js.map +1 -0
  139. package/dist/esm/types/index.d.ts +322 -0
  140. package/dist/esm/types/index.d.ts.map +1 -0
  141. package/dist/esm/types/index.js +41 -0
  142. package/dist/esm/types/index.js.map +1 -0
  143. package/package.json +59 -10
  144. package/dist/formatter/colors.d.ts.map +0 -1
  145. package/dist/formatter/data-formatter.d.ts.map +0 -1
  146. package/dist/formatter/index.d.ts.map +0 -1
  147. package/dist/formatter/message-formatter.d.ts.map +0 -1
  148. package/dist/formatter/timestamp.d.ts.map +0 -1
  149. package/dist/index.d.ts.map +0 -1
  150. package/dist/logger/advanced-outputs.d.ts.map +0 -1
  151. package/dist/logger/config.d.ts.map +0 -1
  152. package/dist/logger/core.d.ts.map +0 -1
  153. package/dist/logger/environment.d.ts.map +0 -1
  154. package/dist/logger/filtering.d.ts.map +0 -1
  155. package/dist/logger/index.d.ts.map +0 -1
  156. package/dist/redaction/config.d.ts.map +0 -1
  157. package/dist/redaction/index.d.ts.map +0 -1
  158. package/dist/redaction/redactor.d.ts.map +0 -1
  159. package/dist/types/index.d.ts.map +0 -1
  160. /package/dist/{formatter → cjs/formatter}/colors.d.ts +0 -0
  161. /package/dist/{formatter → cjs/formatter}/data-formatter.d.ts +0 -0
  162. /package/dist/{formatter → cjs/formatter}/index.d.ts +0 -0
  163. /package/dist/{formatter → cjs/formatter}/timestamp.d.ts +0 -0
  164. /package/dist/{logger → cjs/logger}/advanced-outputs.d.ts +0 -0
  165. /package/dist/{logger → cjs/logger}/config.d.ts +0 -0
  166. /package/dist/{logger → cjs/logger}/environment.d.ts +0 -0
  167. /package/dist/{logger → cjs/logger}/filtering.d.ts +0 -0
  168. /package/dist/{logger → cjs/logger}/index.d.ts +0 -0
  169. /package/dist/{redaction → cjs/redaction}/config.d.ts +0 -0
  170. /package/dist/{redaction → cjs/redaction}/index.d.ts +0 -0
  171. /package/dist/{redaction → cjs/redaction}/redactor.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/logger/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Environment detection utilities for logging configuration
3
+ * Handles automatic environment-based configuration
4
+ */
5
+ import { LogMode } from '../types';
6
+ /**
7
+ * Environment detection and configuration utilities
8
+ */
9
+ export declare class EnvironmentDetector {
10
+ /**
11
+ * Get the normalized NODE_ENV value
12
+ * @returns Normalized NODE_ENV (trimmed and lowercase)
13
+ */
14
+ private static getNormalizedNodeEnv;
15
+ /**
16
+ * Determines the appropriate log mode based on NODE_ENV
17
+ * @returns LogMode appropriate for current environment
18
+ */
19
+ static getEnvironmentMode(): LogMode;
20
+ /**
21
+ * Check if we're in a test environment
22
+ * @returns true if NODE_ENV is 'test'
23
+ */
24
+ static isTestEnvironment(): boolean;
25
+ /**
26
+ * Check if we're in a development environment
27
+ * @returns true if NODE_ENV is 'development'
28
+ */
29
+ static isDevelopmentEnvironment(): boolean;
30
+ /**
31
+ * Check if we're in a production environment
32
+ * @returns true if NODE_ENV is 'production'
33
+ */
34
+ static isProductionEnvironment(): boolean;
35
+ }
36
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/logger/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;SAGK;IACL,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAInC;;;SAGK;IACL,MAAM,CAAC,kBAAkB,IAAI,OAAO;IAiBpC;;;SAGK;IACL,MAAM,CAAC,iBAAiB,IAAI,OAAO;IAInC;;;SAGK;IACL,MAAM,CAAC,wBAAwB,IAAI,OAAO;IAI1C;;;SAGK;IACL,MAAM,CAAC,uBAAuB,IAAI,OAAO;CAG1C"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Environment detection utilities for logging configuration
3
+ * Handles automatic environment-based configuration
4
+ */
5
+ import { LogMode } from '../types/index.js';
6
+ /**
7
+ * Environment detection and configuration utilities
8
+ */
9
+ export class EnvironmentDetector {
10
+ /**
11
+ * Get the normalized NODE_ENV value
12
+ * @returns Normalized NODE_ENV (trimmed and lowercase)
13
+ */
14
+ static getNormalizedNodeEnv() {
15
+ return (process.env.NODE_ENV || '').trim().toLowerCase();
16
+ }
17
+ /**
18
+ * Determines the appropriate log mode based on NODE_ENV
19
+ * @returns LogMode appropriate for current environment
20
+ */
21
+ static getEnvironmentMode() {
22
+ const nodeEnv = EnvironmentDetector.getNormalizedNodeEnv();
23
+ switch (nodeEnv) {
24
+ case 'development':
25
+ return LogMode.DEBUG; // Verbose logging for development
26
+ case 'production':
27
+ return LogMode.INFO; // Important info and above for production
28
+ case 'staging':
29
+ return LogMode.WARN; // Focused logging for staging
30
+ case 'test':
31
+ return LogMode.ERROR; // Minimal logging during tests
32
+ default:
33
+ return LogMode.INFO; // Default fallback for unknown environments
34
+ }
35
+ }
36
+ /**
37
+ * Check if we're in a test environment
38
+ * @returns true if NODE_ENV is 'test'
39
+ */
40
+ static isTestEnvironment() {
41
+ return EnvironmentDetector.getNormalizedNodeEnv() === 'test';
42
+ }
43
+ /**
44
+ * Check if we're in a development environment
45
+ * @returns true if NODE_ENV is 'development'
46
+ */
47
+ static isDevelopmentEnvironment() {
48
+ return EnvironmentDetector.getNormalizedNodeEnv() === 'development';
49
+ }
50
+ /**
51
+ * Check if we're in a production environment
52
+ * @returns true if NODE_ENV is 'production'
53
+ */
54
+ static isProductionEnvironment() {
55
+ return EnvironmentDetector.getNormalizedNodeEnv() === 'production';
56
+ }
57
+ }
58
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/logger/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;;SAGK;IACG,MAAM,CAAC,oBAAoB;QACjC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,CAAC;IAED;;;SAGK;IACL,MAAM,CAAC,kBAAkB;QACvB,MAAM,OAAO,GAAG,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;QAE3D,QAAQ,OAAO,EAAE,CAAC;YAClB,KAAK,aAAa;gBAChB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAI,kCAAkC;YAC7D,KAAK,YAAY;gBACf,OAAO,OAAO,CAAC,IAAI,CAAC,CAAK,0CAA0C;YACrE,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAK,8BAA8B;YACzD,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,KAAK,CAAC,CAAI,+BAA+B;YAC1D;gBACE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAK,4CAA4C;QACvE,CAAC;IACH,CAAC;IAED;;;SAGK;IACL,MAAM,CAAC,iBAAiB;QACtB,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,KAAK,MAAM,CAAC;IAC/D,CAAC;IAED;;;SAGK;IACL,MAAM,CAAC,wBAAwB;QAC7B,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,KAAK,aAAa,CAAC;IACtE,CAAC;IAED;;;SAGK;IACL,MAAM,CAAC,uBAAuB;QAC5B,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,KAAK,YAAY,CAAC;IACrE,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Log level and mode filtering logic
3
+ * Handles the decision logic for whether messages should be logged
4
+ */
5
+ import { LogLevel, LogMode } from '../types';
6
+ /**
7
+ * Filtering logic for log messages based on levels and modes
8
+ * Determines whether a message should be output based on current configuration
9
+ */
10
+ export declare class LogFilter {
11
+ private static readonly SEVERITY_RANKS;
12
+ private static readonly MODE_THRESHOLDS;
13
+ /**
14
+ * Determines if a message should be logged based on current log mode
15
+ * Messages are shown only if their level is appropriate for the configured mode
16
+ * LOG level is special - it always outputs regardless of configured mode (except when OFF is set)
17
+ * OFF mode disables all logging including LOG level messages
18
+ * @param level - The log level of the message to check
19
+ * @param currentMode - The current logging mode
20
+ * @returns true if message should be logged, false otherwise
21
+ */
22
+ static shouldLog(level: LogLevel, currentMode: LogMode): boolean;
23
+ /**
24
+ * Get the severity rank for a log level
25
+ * @param level - The log level to get rank for
26
+ * @returns Numeric severity rank
27
+ */
28
+ static getSeverityRank(level: LogLevel): number;
29
+ /**
30
+ * Get the threshold for a log mode
31
+ * @param mode - The log mode to get threshold for
32
+ * @returns Numeric threshold value
33
+ */
34
+ static getModeThreshold(mode: LogMode): number;
35
+ }
36
+ //# sourceMappingURL=filtering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../src/logger/filtering.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7C;;;GAGG;AACH,qBAAa,SAAS;IAEpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAMpC;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAOrC;IAEF;;;;;;;;SAQK;IACL,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;IAWhE;;;;SAIK;IACL,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAW/C;;;;SAIK;IACL,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;CAW/C"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Log level and mode filtering logic
3
+ * Handles the decision logic for whether messages should be logged
4
+ */
5
+ import { LogLevel, LogMode } from '../types/index.js';
6
+ /**
7
+ * Filtering logic for log messages based on levels and modes
8
+ * Determines whether a message should be output based on current configuration
9
+ */
10
+ export class LogFilter {
11
+ /**
12
+ * Determines if a message should be logged based on current log mode
13
+ * Messages are shown only if their level is appropriate for the configured mode
14
+ * LOG level is special - it always outputs regardless of configured mode (except when OFF is set)
15
+ * OFF mode disables all logging including LOG level messages
16
+ * @param level - The log level of the message to check
17
+ * @param currentMode - The current logging mode
18
+ * @returns true if message should be logged, false otherwise
19
+ */
20
+ static shouldLog(level, currentMode) {
21
+ // Get the severity rank for the message level using safe lookup
22
+ const messageSeverity = LogFilter.getSeverityRank(level);
23
+ // Get the minimum severity threshold for the current mode using safe lookup
24
+ const modeThreshold = LogFilter.getModeThreshold(currentMode);
25
+ // Allow the message if its severity meets or exceeds the mode threshold
26
+ return messageSeverity >= modeThreshold;
27
+ }
28
+ /**
29
+ * Get the severity rank for a log level
30
+ * @param level - The log level to get rank for
31
+ * @returns Numeric severity rank
32
+ */
33
+ static getSeverityRank(level) {
34
+ switch (level) {
35
+ case LogLevel.DEBUG: return 0;
36
+ case LogLevel.INFO: return 1;
37
+ case LogLevel.WARN: return 2;
38
+ case LogLevel.ERROR: return 3;
39
+ case LogLevel.LOG: return 99;
40
+ default: return 0;
41
+ }
42
+ }
43
+ /**
44
+ * Get the threshold for a log mode
45
+ * @param mode - The log mode to get threshold for
46
+ * @returns Numeric threshold value
47
+ */
48
+ static getModeThreshold(mode) {
49
+ switch (mode) {
50
+ case LogMode.DEBUG: return 0;
51
+ case LogMode.INFO: return 1;
52
+ case LogMode.WARN: return 2;
53
+ case LogMode.ERROR: return 3;
54
+ case LogMode.SILENT: return 99;
55
+ case LogMode.OFF: return 100;
56
+ default: return 0;
57
+ }
58
+ }
59
+ }
60
+ // Maps LogLevel values to severity ranks for consistent comparison
61
+ LogFilter.SEVERITY_RANKS = {
62
+ [LogLevel.DEBUG]: 0,
63
+ [LogLevel.INFO]: 1,
64
+ [LogLevel.WARN]: 2,
65
+ [LogLevel.ERROR]: 3,
66
+ [LogLevel.LOG]: 99 // Special case - always outputs (except when OFF)
67
+ };
68
+ // Maps LogMode values to minimum severity rank required for output
69
+ LogFilter.MODE_THRESHOLDS = {
70
+ [LogMode.DEBUG]: 0, // Shows DEBUG and above
71
+ [LogMode.INFO]: 1, // Shows INFO and above
72
+ [LogMode.WARN]: 2, // Shows WARN and above
73
+ [LogMode.ERROR]: 3, // Shows ERROR and above
74
+ [LogMode.SILENT]: 99, // Only shows LOG messages
75
+ [LogMode.OFF]: 100 // Shows nothing
76
+ };
77
+ //# sourceMappingURL=filtering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.js","sourceRoot":"","sources":["../../../src/logger/filtering.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7C;;;GAGG;AACH,MAAM,OAAO,SAAS;IAoBpB;;;;;;;;SAQK;IACL,MAAM,CAAC,SAAS,CAAC,KAAe,EAAE,WAAoB;QACpD,gEAAgE;QAChE,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzD,4EAA4E;QAC5E,MAAM,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE9D,wEAAwE;QACxE,OAAO,eAAe,IAAI,aAAa,CAAC;IAC1C,CAAC;IAED;;;;SAIK;IACL,MAAM,CAAC,eAAe,CAAC,KAAe;QACpC,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;SAIK;IACL,MAAM,CAAC,gBAAgB,CAAC,IAAa;QACnC,QAAQ,IAAI,EAAE,CAAC;YACf,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/B,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;YAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;;AAtED,mEAAmE;AAC3C,wBAAc,GAA6B;IACjE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAE,kDAAkD;CACvE,CAAC;AAEF,mEAAmE;AAC3C,yBAAe,GAA4B;IACjE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAI,wBAAwB;IAC9C,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAK,uBAAuB;IAC7C,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAK,uBAAuB;IAC7C,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAI,wBAAwB;IAC9C,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,0BAA0B;IAChD,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAI,gBAAgB;CACvC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Logger module exports
3
+ * Provides centralized access to all logging functionality
4
+ */
5
+ export { Logger } from './core';
6
+ export { LoggerConfigManager } from './config';
7
+ export { LogFilter } from './filtering';
8
+ export { EnvironmentDetector } from './environment';
9
+ export { Logger as CoreLogger } from './core';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Logger module exports
3
+ * Provides centralized access to all logging functionality
4
+ */
5
+ export { Logger } from './core.js';
6
+ export { LoggerConfigManager } from './config.js';
7
+ export { LogFilter } from './filtering.js';
8
+ export { EnvironmentDetector } from './environment.js';
9
+ // Backward compatibility - maintain the original Logger class interface
10
+ export { Logger as CoreLogger } from './core.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,wEAAwE;AACxE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Default configuration and constants for data redaction
3
+ * Provides comprehensive coverage of common sensitive field patterns
4
+ */
5
+ import { RedactionConfig } from '../types';
6
+ /**
7
+ * Default redaction configuration with comprehensive sensitive field detection
8
+ * Covers authentication, personal information, financial data, and internal systems
9
+ */
10
+ export declare const defaultRedactionConfig: RedactionConfig;
11
+ /**
12
+ * Environment-based redaction controller
13
+ * Determines when redaction should be disabled based on environment variables
14
+ */
15
+ export declare class RedactionController {
16
+ /**
17
+ * Check if redaction should be disabled based on environment variables
18
+ * Development mode and explicit flags can disable redaction for debugging
19
+ * @returns true if redaction should be disabled, false otherwise
20
+ */
21
+ static isRedactionDisabled(): boolean;
22
+ /**
23
+ * Get environment-specific configuration overrides
24
+ * Allows customization through environment variables
25
+ * @returns Partial redaction config with environment-based overrides
26
+ */
27
+ static getEnvironmentConfig(): Partial<RedactionConfig>;
28
+ }
29
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/redaction/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAyCpC,CAAC;AAEF;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B;;;;SAIK;IACL,MAAM,CAAC,mBAAmB,IAAI,OAAO;IAUrC;;;;SAIK;IACL,MAAM,CAAC,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC;CA4BxD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Default configuration and constants for data redaction
3
+ * Provides comprehensive coverage of common sensitive field patterns
4
+ */
5
+ /**
6
+ * Default redaction configuration with comprehensive sensitive field detection
7
+ * Covers authentication, personal information, financial data, and internal systems
8
+ */
9
+ export const defaultRedactionConfig = {
10
+ enabled: true,
11
+ deepRedaction: true,
12
+ maxContentLength: 100,
13
+ redactionText: '[REDACTED]',
14
+ truncationText: '... [TRUNCATED]',
15
+ // Comprehensive list of sensitive field patterns (case-insensitive)
16
+ sensitiveFields: [
17
+ // Authentication & Security
18
+ 'password', 'pwd', 'pass', 'passphrase',
19
+ 'token', 'accessToken', 'refreshToken', 'bearerToken',
20
+ 'apiKey', 'api_key', 'secret', 'secretKey', 'privateKey',
21
+ 'auth', 'authorization', 'authToken',
22
+ 'jwt', 'sessionId', 'session_id',
23
+ 'cookie', 'cookies', 'csrf', 'csrfToken',
24
+ // Personal Information (PII)
25
+ 'email', 'emailAddress', 'email_address',
26
+ 'phone', 'phoneNumber', 'phone_number', 'mobile',
27
+ 'ssn', 'socialSecurityNumber', 'social_security_number',
28
+ 'address', 'homeAddress', 'workAddress',
29
+ 'firstName', 'lastName', 'fullName', 'realName', 'displayName',
30
+ 'dateOfBirth', 'dob', 'birthDate',
31
+ // Financial Information
32
+ 'creditCard', 'credit_card', 'cardNumber', 'card_number',
33
+ 'cvv', 'cvc', 'pin', 'expiryDate', 'expiry_date',
34
+ 'bankAccount', 'bank_account', 'routingNumber',
35
+ // Internal/System Information
36
+ 'internalId', 'userId', 'customerId',
37
+ 'personalInfo', 'pii', 'sensitive',
38
+ 'clientSecret', 'webhookSecret'
39
+ ],
40
+ // Fields that should be truncated rather than redacted
41
+ contentFields: [
42
+ 'content', 'text', 'message', 'body', 'data',
43
+ 'payload', 'response', 'request', 'description'
44
+ ]
45
+ };
46
+ /**
47
+ * Environment-based redaction controller
48
+ * Determines when redaction should be disabled based on environment variables
49
+ */
50
+ export class RedactionController {
51
+ /**
52
+ * Check if redaction should be disabled based on environment variables
53
+ * Development mode and explicit flags can disable redaction for debugging
54
+ * @returns true if redaction should be disabled, false otherwise
55
+ */
56
+ static isRedactionDisabled() {
57
+ return (process.env.NODE_ENV === 'development' ||
58
+ process.env.LOG_REDACTION_DISABLED === 'true' ||
59
+ process.env.DEBUG_FULL_PAYLOADS === 'true' ||
60
+ process.env.LOG_LEVEL === 'debug' ||
61
+ process.env.LOG_REDACTION_ENABLED === 'false');
62
+ }
63
+ /**
64
+ * Get environment-specific configuration overrides
65
+ * Allows customization through environment variables
66
+ * @returns Partial redaction config with environment-based overrides
67
+ */
68
+ static getEnvironmentConfig() {
69
+ const envConfig = {
70
+ enabled: !this.isRedactionDisabled()
71
+ };
72
+ // Apply environment variable overrides if they exist
73
+ if (process.env.LOG_MAX_CONTENT_LENGTH) {
74
+ const parsedLength = parseInt(process.env.LOG_MAX_CONTENT_LENGTH, 10);
75
+ if (!isNaN(parsedLength) && parsedLength > 0) {
76
+ envConfig.maxContentLength = parsedLength;
77
+ }
78
+ }
79
+ if (process.env.LOG_REDACTION_TEXT) {
80
+ envConfig.redactionText = process.env.LOG_REDACTION_TEXT;
81
+ }
82
+ if (process.env.LOG_TRUNCATION_TEXT) {
83
+ envConfig.truncationText = process.env.LOG_TRUNCATION_TEXT;
84
+ }
85
+ if (process.env.LOG_SENSITIVE_FIELDS) {
86
+ const customFields = process.env.LOG_SENSITIVE_FIELDS.split(',').map(f => f.trim());
87
+ envConfig.sensitiveFields = [...defaultRedactionConfig.sensitiveFields, ...customFields];
88
+ }
89
+ return envConfig;
90
+ }
91
+ }
92
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/redaction/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Redaction module exports
3
+ * Provides centralized access to all redaction functionality
4
+ */
5
+ export { DataRedactor } from './redactor';
6
+ export { defaultRedactionConfig, RedactionController } from './config';
7
+ export type { RedactionConfig } from '../types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/redaction/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Redaction module exports
3
+ * Provides centralized access to all redaction functionality
4
+ */
5
+ export { DataRedactor } from './redactor.js';
6
+ export { defaultRedactionConfig, RedactionController } from './config.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/redaction/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Core data redaction engine
3
+ * Handles automatic detection and redaction of sensitive information in log data
4
+ */
5
+ import { RedactionConfig, LogData } from '../types';
6
+ /**
7
+ * DataRedactor class - Core redaction logic for processing log data
8
+ * Automatically detects and redacts sensitive information while preserving structure
9
+ */
10
+ export declare class DataRedactor {
11
+ private static config;
12
+ private static readonly MAX_RECURSION_DEPTH;
13
+ private static readonly MAX_REDACT_OBJECT_DEPTH;
14
+ /**
15
+ * Update the redaction configuration with new settings
16
+ * Merges provided config with existing settings and reloads environment variables
17
+ * @param newConfig - Partial configuration to merge with current settings
18
+ */
19
+ static updateConfig(newConfig: Partial<RedactionConfig>): void;
20
+ /**
21
+ * Get the current redaction configuration
22
+ * @returns Deep copy of current redaction configuration
23
+ */
24
+ static getConfig(): RedactionConfig;
25
+ /**
26
+ * Refresh configuration from environment variables
27
+ * Useful for picking up runtime environment changes
28
+ */
29
+ static refreshConfig(): void;
30
+ /**
31
+ * Add custom regex patterns for advanced field detection
32
+ * @param patterns - Array of regex patterns to add
33
+ */
34
+ static addCustomPatterns(patterns: RegExp[]): void;
35
+ /**
36
+ * Clear all custom regex patterns
37
+ */
38
+ static clearCustomPatterns(): void;
39
+ /**
40
+ * Add custom sensitive field names to the existing list
41
+ * @param fields - Array of field names to add
42
+ */
43
+ static addSensitiveFields(fields: string[]): void;
44
+ /**
45
+ * Test if a field name would be redacted with current configuration
46
+ * @param fieldName - Field name to test
47
+ * @returns true if field would be redacted, false otherwise
48
+ */
49
+ static testFieldRedaction(fieldName: string): boolean;
50
+ /**
51
+ * Main entry point for data redaction
52
+ * Processes any type of data and returns a redacted version
53
+ * @param data - Data to be processed for redaction
54
+ * @returns Redacted version of the data
55
+ */
56
+ static redactData(data: LogData): LogData;
57
+ /**
58
+ * Process a value of any type (primitive, object, array)
59
+ * Recursively handles nested structures when deepRedaction is enabled
60
+ * Includes circular reference protection and recursion depth limiting
61
+ * @param value - Value to process
62
+ * @param visited - Set to track visited objects (prevents circular references)
63
+ * @param depth - Current recursion depth (prevents stack overflow)
64
+ * @returns Processed value with redaction applied
65
+ */
66
+ private static processValue;
67
+ /**
68
+ * Process an object and redact sensitive fields
69
+ * Handles field-level redaction and content truncation
70
+ * @param obj - Object to process
71
+ * @param visited - Set to track visited objects (prevents circular references)
72
+ * @param depth - Current recursion depth (prevents stack overflow)
73
+ * @returns Object with sensitive fields redacted
74
+ */
75
+ private static redactObject;
76
+ /**
77
+ * Check if a field name indicates sensitive information
78
+ * Uses case-insensitive matching with exact and partial matches
79
+ * Includes smart filtering to avoid false positives and custom patterns
80
+ * @param fieldName - Field name to check
81
+ * @returns true if field should be redacted, false otherwise
82
+ */
83
+ private static isSensitiveField;
84
+ /**
85
+ * Check if a field name indicates content that should be truncated
86
+ * Uses exact case-insensitive matching for content fields
87
+ * @param fieldName - Field name to check
88
+ * @returns true if field is a content field, false otherwise
89
+ */
90
+ private static isContentField;
91
+ /**
92
+ * Truncate content that exceeds the maximum length
93
+ * Preserves readability while preventing log bloat
94
+ * @param content - Content string to potentially truncate
95
+ * @returns Original content or truncated version with indicator
96
+ */
97
+ private static truncateContent;
98
+ }
99
+ //# sourceMappingURL=redactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redactor.d.ts","sourceRoot":"","sources":["../../../src/redaction/redactor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGpD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,MAAM,CAGnB;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAElD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAM;IAErD;;;;SAIK;IACL,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAU9D;;;SAGK;IACL,MAAM,CAAC,SAAS,IAAI,eAAe;IASnC;;;SAGK;IACL,MAAM,CAAC,aAAa,IAAI,IAAI;IAQ5B;;;SAGK;IACL,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQlD;;SAEK;IACL,MAAM,CAAC,mBAAmB,IAAI,IAAI;IAOlC;;;SAGK;IACL,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjD;;;;SAIK;IACL,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAWrD;;;;;SAKK;IACL,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IASzC;;;;;;;;SAQK;IACL,OAAO,CAAC,MAAM,CAAC,YAAY;IAyC3B;;;;;;;SAOK;IACL,OAAO,CAAC,MAAM,CAAC,YAAY;IA2B3B;;;;;;SAMK;IACL,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgD/B;;;;;SAKK;IACL,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B;;;;;SAKK;IACL,OAAO,CAAC,MAAM,CAAC,eAAe;CAM/B"}