@wgtechlabs/log-engine 2.1.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 (170) hide show
  1. package/dist/cjs/__tests__/async-test-utils.cjs +276 -0
  2. package/dist/cjs/__tests__/async-test-utils.d.ts +51 -0
  3. package/dist/cjs/__tests__/async-test-utils.d.ts.map +1 -0
  4. package/dist/cjs/__tests__/async-test-utils.js.map +1 -0
  5. package/dist/cjs/__tests__/redaction/test-utils.cjs +72 -0
  6. package/dist/cjs/__tests__/redaction/test-utils.d.ts +33 -0
  7. package/dist/cjs/__tests__/redaction/test-utils.d.ts.map +1 -0
  8. package/dist/cjs/__tests__/redaction/test-utils.js.map +1 -0
  9. package/dist/cjs/__tests__/test-utils.cjs +49 -0
  10. package/dist/cjs/__tests__/test-utils.d.ts +41 -0
  11. package/dist/cjs/__tests__/test-utils.d.ts.map +1 -0
  12. package/dist/cjs/__tests__/test-utils.js.map +1 -0
  13. package/dist/{formatter/colors.js → cjs/formatter/colors.cjs} +1 -0
  14. package/dist/cjs/formatter/colors.d.ts.map +1 -0
  15. package/dist/cjs/formatter/colors.js.map +1 -0
  16. package/dist/{formatter/data-formatter.js → cjs/formatter/data-formatter.cjs} +1 -0
  17. package/dist/cjs/formatter/data-formatter.d.ts.map +1 -0
  18. package/dist/cjs/formatter/data-formatter.js.map +1 -0
  19. package/dist/{formatter/index.js → cjs/formatter/index.cjs} +6 -5
  20. package/dist/cjs/formatter/index.d.ts.map +1 -0
  21. package/dist/cjs/formatter/index.js.map +1 -0
  22. package/dist/{formatter/message-formatter.js → cjs/formatter/message-formatter.cjs} +5 -4
  23. package/dist/cjs/formatter/message-formatter.d.ts.map +1 -0
  24. package/dist/cjs/formatter/message-formatter.js.map +1 -0
  25. package/dist/{formatter/timestamp.js → cjs/formatter/timestamp.cjs} +1 -0
  26. package/dist/cjs/formatter/timestamp.d.ts.map +1 -0
  27. package/dist/cjs/formatter/timestamp.js.map +1 -0
  28. package/dist/{index.js → cjs/index.cjs} +5 -4
  29. package/dist/cjs/index.d.ts.map +1 -0
  30. package/dist/cjs/index.js.map +1 -0
  31. package/dist/{logger/advanced-outputs.js → cjs/logger/advanced-outputs.cjs} +1 -0
  32. package/dist/cjs/logger/advanced-outputs.d.ts.map +1 -0
  33. package/dist/cjs/logger/advanced-outputs.js.map +1 -0
  34. package/dist/{logger/config.js → cjs/logger/config.cjs} +4 -3
  35. package/dist/cjs/logger/config.d.ts.map +1 -0
  36. package/dist/cjs/logger/config.js.map +1 -0
  37. package/dist/{logger/core.js → cjs/logger/core.cjs} +7 -6
  38. package/dist/cjs/logger/core.d.ts.map +1 -0
  39. package/dist/cjs/logger/core.js.map +1 -0
  40. package/dist/{logger/environment.js → cjs/logger/environment.cjs} +2 -1
  41. package/dist/cjs/logger/environment.d.ts.map +1 -0
  42. package/dist/cjs/logger/environment.js.map +1 -0
  43. package/dist/{logger/filtering.js → cjs/logger/filtering.cjs} +2 -1
  44. package/dist/cjs/logger/filtering.d.ts.map +1 -0
  45. package/dist/cjs/logger/filtering.js.map +1 -0
  46. package/dist/{logger/index.js → cjs/logger/index.cjs} +6 -5
  47. package/dist/cjs/logger/index.d.ts.map +1 -0
  48. package/dist/cjs/logger/index.js.map +1 -0
  49. package/dist/cjs/package.json +3 -0
  50. package/dist/{redaction/config.js → cjs/redaction/config.cjs} +1 -0
  51. package/dist/cjs/redaction/config.d.ts.map +1 -0
  52. package/dist/cjs/redaction/config.js.map +1 -0
  53. package/dist/{redaction/index.js → cjs/redaction/index.cjs} +3 -2
  54. package/dist/cjs/redaction/index.d.ts.map +1 -0
  55. package/dist/cjs/redaction/index.js.map +1 -0
  56. package/dist/{redaction/redactor.js → cjs/redaction/redactor.cjs} +2 -1
  57. package/dist/cjs/redaction/redactor.d.ts.map +1 -0
  58. package/dist/cjs/redaction/redactor.js.map +1 -0
  59. package/dist/{types/index.js → cjs/types/index.cjs} +1 -0
  60. package/dist/cjs/types/index.d.ts.map +1 -0
  61. package/dist/cjs/types/index.js.map +1 -0
  62. package/dist/esm/__tests__/async-test-utils.d.ts +51 -0
  63. package/dist/esm/__tests__/async-test-utils.d.ts.map +1 -0
  64. package/dist/esm/__tests__/async-test-utils.js +231 -0
  65. package/dist/esm/__tests__/async-test-utils.js.map +1 -0
  66. package/dist/esm/__tests__/redaction/test-utils.d.ts +33 -0
  67. package/dist/esm/__tests__/redaction/test-utils.d.ts.map +1 -0
  68. package/dist/esm/__tests__/redaction/test-utils.js +65 -0
  69. package/dist/esm/__tests__/redaction/test-utils.js.map +1 -0
  70. package/dist/esm/__tests__/test-utils.d.ts +41 -0
  71. package/dist/esm/__tests__/test-utils.d.ts.map +1 -0
  72. package/dist/esm/__tests__/test-utils.js +42 -0
  73. package/dist/esm/__tests__/test-utils.js.map +1 -0
  74. package/dist/esm/formatter/colors.d.ts +32 -0
  75. package/dist/esm/formatter/colors.d.ts.map +1 -0
  76. package/dist/esm/formatter/colors.js +32 -0
  77. package/dist/esm/formatter/colors.js.map +1 -0
  78. package/dist/esm/formatter/data-formatter.d.ts +26 -0
  79. package/dist/esm/formatter/data-formatter.d.ts.map +1 -0
  80. package/dist/esm/formatter/data-formatter.js +50 -0
  81. package/dist/esm/formatter/data-formatter.js.map +1 -0
  82. package/dist/esm/formatter/index.d.ts +10 -0
  83. package/dist/esm/formatter/index.d.ts.map +1 -0
  84. package/dist/esm/formatter/index.js +11 -0
  85. package/dist/esm/formatter/index.js.map +1 -0
  86. package/dist/esm/formatter/message-formatter.d.ts +41 -0
  87. package/dist/esm/formatter/message-formatter.d.ts.map +1 -0
  88. package/dist/esm/formatter/message-formatter.js +84 -0
  89. package/dist/esm/formatter/message-formatter.js.map +1 -0
  90. package/dist/esm/formatter/timestamp.d.ts +27 -0
  91. package/dist/esm/formatter/timestamp.d.ts.map +1 -0
  92. package/dist/esm/formatter/timestamp.js +36 -0
  93. package/dist/esm/formatter/timestamp.js.map +1 -0
  94. package/dist/esm/index.d.ts +180 -0
  95. package/dist/esm/index.d.ts.map +1 -0
  96. package/dist/esm/index.js +194 -0
  97. package/dist/esm/index.js.map +1 -0
  98. package/dist/esm/logger/advanced-outputs.d.ts +159 -0
  99. package/dist/esm/logger/advanced-outputs.d.ts.map +1 -0
  100. package/dist/esm/logger/advanced-outputs.js +542 -0
  101. package/dist/esm/logger/advanced-outputs.js.map +1 -0
  102. package/dist/esm/logger/config.d.ts +42 -0
  103. package/dist/esm/logger/config.d.ts.map +1 -0
  104. package/dist/esm/logger/config.js +101 -0
  105. package/dist/esm/logger/config.js.map +1 -0
  106. package/dist/esm/logger/core.d.ts +152 -0
  107. package/dist/esm/logger/core.d.ts.map +1 -0
  108. package/dist/esm/logger/core.js +367 -0
  109. package/dist/esm/logger/core.js.map +1 -0
  110. package/dist/esm/logger/environment.d.ts +36 -0
  111. package/dist/esm/logger/environment.d.ts.map +1 -0
  112. package/dist/esm/logger/environment.js +58 -0
  113. package/dist/esm/logger/environment.js.map +1 -0
  114. package/dist/esm/logger/filtering.d.ts +36 -0
  115. package/dist/esm/logger/filtering.d.ts.map +1 -0
  116. package/dist/esm/logger/filtering.js +77 -0
  117. package/dist/esm/logger/filtering.js.map +1 -0
  118. package/dist/esm/logger/index.d.ts +10 -0
  119. package/dist/esm/logger/index.d.ts.map +1 -0
  120. package/dist/esm/logger/index.js +11 -0
  121. package/dist/esm/logger/index.js.map +1 -0
  122. package/dist/esm/redaction/config.d.ts +29 -0
  123. package/dist/esm/redaction/config.d.ts.map +1 -0
  124. package/dist/esm/redaction/config.js +92 -0
  125. package/dist/esm/redaction/config.js.map +1 -0
  126. package/dist/esm/redaction/index.d.ts +8 -0
  127. package/dist/esm/redaction/index.d.ts.map +1 -0
  128. package/dist/esm/redaction/index.js +7 -0
  129. package/dist/esm/redaction/index.js.map +1 -0
  130. package/dist/esm/redaction/redactor.d.ts +99 -0
  131. package/dist/esm/redaction/redactor.d.ts.map +1 -0
  132. package/dist/esm/redaction/redactor.js +259 -0
  133. package/dist/esm/redaction/redactor.js.map +1 -0
  134. package/dist/esm/types/index.d.ts +310 -0
  135. package/dist/esm/types/index.d.ts.map +1 -0
  136. package/dist/esm/types/index.js +41 -0
  137. package/dist/esm/types/index.js.map +1 -0
  138. package/package.json +19 -5
  139. package/dist/formatter/colors.d.ts.map +0 -1
  140. package/dist/formatter/data-formatter.d.ts.map +0 -1
  141. package/dist/formatter/index.d.ts.map +0 -1
  142. package/dist/formatter/message-formatter.d.ts.map +0 -1
  143. package/dist/formatter/timestamp.d.ts.map +0 -1
  144. package/dist/index.d.ts.map +0 -1
  145. package/dist/logger/advanced-outputs.d.ts.map +0 -1
  146. package/dist/logger/config.d.ts.map +0 -1
  147. package/dist/logger/core.d.ts.map +0 -1
  148. package/dist/logger/environment.d.ts.map +0 -1
  149. package/dist/logger/filtering.d.ts.map +0 -1
  150. package/dist/logger/index.d.ts.map +0 -1
  151. package/dist/redaction/config.d.ts.map +0 -1
  152. package/dist/redaction/index.d.ts.map +0 -1
  153. package/dist/redaction/redactor.d.ts.map +0 -1
  154. package/dist/types/index.d.ts.map +0 -1
  155. /package/dist/{formatter → cjs/formatter}/colors.d.ts +0 -0
  156. /package/dist/{formatter → cjs/formatter}/data-formatter.d.ts +0 -0
  157. /package/dist/{formatter → cjs/formatter}/index.d.ts +0 -0
  158. /package/dist/{formatter → cjs/formatter}/message-formatter.d.ts +0 -0
  159. /package/dist/{formatter → cjs/formatter}/timestamp.d.ts +0 -0
  160. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  161. /package/dist/{logger → cjs/logger}/advanced-outputs.d.ts +0 -0
  162. /package/dist/{logger → cjs/logger}/config.d.ts +0 -0
  163. /package/dist/{logger → cjs/logger}/core.d.ts +0 -0
  164. /package/dist/{logger → cjs/logger}/environment.d.ts +0 -0
  165. /package/dist/{logger → cjs/logger}/filtering.d.ts +0 -0
  166. /package/dist/{logger → cjs/logger}/index.d.ts +0 -0
  167. /package/dist/{redaction → cjs/redaction}/config.d.ts +0 -0
  168. /package/dist/{redaction → cjs/redaction}/index.d.ts +0 -0
  169. /package/dist/{redaction → cjs/redaction}/redactor.d.ts +0 -0
  170. /package/dist/{types → cjs/types}/index.d.ts +0 -0
@@ -0,0 +1,276 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MockHttpHandler = void 0;
37
+ exports.waitForFile = waitForFile;
38
+ exports.waitForFiles = waitForFiles;
39
+ exports.waitForFileContent = waitForFileContent;
40
+ exports.waitForDirectoryEmpty = waitForDirectoryEmpty;
41
+ exports.safeRemoveFile = safeRemoveFile;
42
+ exports.safeCleanupDirectory = safeCleanupDirectory;
43
+ exports.createTestTimeout = createTestTimeout;
44
+ exports.withTimeout = withTimeout;
45
+ /**
46
+ * Test utilities for handling async file operations properly
47
+ * Replaces arbitrary timeouts with proper Promise-based waiting
48
+ * Optimized for CI environments with faster polling and shorter timeouts
49
+ */
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ // Optimized defaults for CI environments
53
+ const DEFAULT_TIMEOUT = 3000; // Reduced from 5000ms
54
+ const POLL_INTERVAL = 5; // Reduced from 10ms for faster detection
55
+ /**
56
+ * Wait for a file to exist with optimized polling
57
+ */
58
+ async function waitForFile(filePath, timeoutMs = DEFAULT_TIMEOUT) {
59
+ const startTime = Date.now();
60
+ while (Date.now() - startTime < timeoutMs) {
61
+ try {
62
+ await fs.promises.access(filePath, fs.constants.F_OK);
63
+ return; // File exists
64
+ }
65
+ catch (error) {
66
+ // File doesn't exist yet, wait a bit
67
+ await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
68
+ }
69
+ }
70
+ throw new Error(`File ${filePath} did not appear within ${timeoutMs}ms`);
71
+ }
72
+ /**
73
+ * Wait for multiple files to exist with parallel checking
74
+ */
75
+ async function waitForFiles(filePaths, timeoutMs = DEFAULT_TIMEOUT) {
76
+ await Promise.all(filePaths.map(filePath => waitForFile(filePath, timeoutMs)));
77
+ }
78
+ /**
79
+ * Wait for a file to have specific content with optimized polling
80
+ */
81
+ async function waitForFileContent(filePath, expectedContent, timeoutMs = DEFAULT_TIMEOUT) {
82
+ const startTime = Date.now();
83
+ while (Date.now() - startTime < timeoutMs) {
84
+ try {
85
+ const content = await fs.promises.readFile(filePath, 'utf8');
86
+ if (typeof expectedContent === 'string') {
87
+ if (content.includes(expectedContent)) {
88
+ return;
89
+ }
90
+ }
91
+ else {
92
+ if (expectedContent.test(content)) {
93
+ return;
94
+ }
95
+ }
96
+ }
97
+ catch (error) {
98
+ // File might not exist yet or be readable
99
+ }
100
+ await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
101
+ }
102
+ throw new Error(`File ${filePath} did not contain expected content within ${timeoutMs}ms`);
103
+ }
104
+ /**
105
+ * Wait for a directory to be empty with faster polling
106
+ */
107
+ async function waitForDirectoryEmpty(dirPath, timeoutMs = DEFAULT_TIMEOUT) {
108
+ const startTime = Date.now();
109
+ while (Date.now() - startTime < timeoutMs) {
110
+ try {
111
+ const files = await fs.promises.readdir(dirPath);
112
+ if (files.length === 0) {
113
+ return;
114
+ }
115
+ }
116
+ catch (error) {
117
+ // Directory might not exist, which is also "empty"
118
+ return;
119
+ }
120
+ await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
121
+ }
122
+ throw new Error(`Directory ${dirPath} was not empty within ${timeoutMs}ms`);
123
+ }
124
+ /**
125
+ * Safely remove a file with optimized retry logic
126
+ */
127
+ async function safeRemoveFile(filePath, maxRetries = 3) {
128
+ for (let i = 0; i < maxRetries; i++) {
129
+ try {
130
+ await fs.promises.unlink(filePath);
131
+ return;
132
+ }
133
+ catch (error) {
134
+ if (i === maxRetries - 1) {
135
+ // Only throw on last retry if it's not a "file not found" error
136
+ if (error.code !== 'ENOENT') {
137
+ throw error;
138
+ }
139
+ }
140
+ else {
141
+ // Wait a bit before retrying (reduced wait time)
142
+ await new Promise(resolve => setTimeout(resolve, 10));
143
+ }
144
+ }
145
+ }
146
+ }
147
+ /**
148
+ * Safely clean up a directory with retry logic
149
+ */
150
+ async function safeCleanupDirectory(dirPath) {
151
+ try {
152
+ const files = await fs.promises.readdir(dirPath);
153
+ // Remove all files with retry logic
154
+ await Promise.all(files.map(file => safeRemoveFile(path.join(dirPath, file))));
155
+ // Remove the directory itself
156
+ await fs.promises.rmdir(dirPath);
157
+ }
158
+ catch (error) {
159
+ // Directory might not exist, which is fine
160
+ if (error.code !== 'ENOENT') {
161
+ // Try force removal as fallback
162
+ try {
163
+ await fs.promises.rm(dirPath, { recursive: true, force: true });
164
+ }
165
+ catch (fallbackError) {
166
+ // Ignore cleanup errors in tests
167
+ }
168
+ }
169
+ }
170
+ }
171
+ /**
172
+ * Enhanced mock HTTP handler with faster timeouts and better error handling
173
+ */
174
+ class MockHttpHandler {
175
+ constructor() {
176
+ this.requests = [];
177
+ this.pendingPromises = [];
178
+ this.timeoutIds = new Set();
179
+ }
180
+ addRequest(url, options) {
181
+ let resolveRequest;
182
+ const promise = new Promise(resolve => {
183
+ resolveRequest = resolve;
184
+ });
185
+ this.requests.push({
186
+ url,
187
+ options,
188
+ resolve: resolveRequest
189
+ });
190
+ this.pendingPromises.push(promise);
191
+ }
192
+ getRequests() {
193
+ return this.requests.map(({ url, options }) => ({ url, options }));
194
+ }
195
+ async waitForRequests(count = 1, timeoutMs = DEFAULT_TIMEOUT) {
196
+ const startTime = Date.now();
197
+ // Set up a timeout that will be cleaned up
198
+ let timeoutId;
199
+ const timeoutPromise = new Promise((_, reject) => {
200
+ timeoutId = setTimeout(() => {
201
+ reject(new Error(`Expected ${count} requests but got ${this.requests.length} within ${timeoutMs}ms`));
202
+ }, timeoutMs);
203
+ this.timeoutIds.add(timeoutId);
204
+ });
205
+ try {
206
+ while (this.requests.length < count && Date.now() - startTime < timeoutMs) {
207
+ await new Promise(resolve => {
208
+ const id = setTimeout(resolve, POLL_INTERVAL);
209
+ this.timeoutIds.add(id);
210
+ });
211
+ }
212
+ if (this.requests.length < count) {
213
+ throw new Error(`Expected ${count} requests but got ${this.requests.length} within ${timeoutMs}ms`);
214
+ }
215
+ // Mark all requests as processed
216
+ this.requests.forEach(req => req.resolve());
217
+ // Wait for all pending promises to resolve
218
+ await Promise.all(this.pendingPromises);
219
+ }
220
+ finally {
221
+ // Clean up the timeout
222
+ if (timeoutId) {
223
+ clearTimeout(timeoutId);
224
+ this.timeoutIds.delete(timeoutId);
225
+ }
226
+ }
227
+ }
228
+ clear() {
229
+ // Clean up any remaining timeouts
230
+ for (const timeoutId of this.timeoutIds) {
231
+ clearTimeout(timeoutId);
232
+ }
233
+ this.timeoutIds.clear();
234
+ this.requests = [];
235
+ this.pendingPromises = [];
236
+ }
237
+ }
238
+ exports.MockHttpHandler = MockHttpHandler;
239
+ /**
240
+ * Create a test timeout that fails fast instead of hanging
241
+ */
242
+ function createTestTimeout(timeoutMs = DEFAULT_TIMEOUT) {
243
+ let timeoutId;
244
+ const promise = new Promise((_, reject) => {
245
+ timeoutId = setTimeout(() => {
246
+ reject(new Error(`Test timed out after ${timeoutMs}ms`));
247
+ }, timeoutMs);
248
+ });
249
+ const cancel = () => {
250
+ if (timeoutId) {
251
+ clearTimeout(timeoutId);
252
+ }
253
+ };
254
+ return { promise, cancel };
255
+ }
256
+ /**
257
+ * Race a promise against a timeout for fail-fast behavior
258
+ */
259
+ async function withTimeout(promise, timeoutMs = DEFAULT_TIMEOUT) {
260
+ const timeout = createTestTimeout(timeoutMs);
261
+ try {
262
+ const result = await Promise.race([
263
+ promise,
264
+ timeout.promise
265
+ ]);
266
+ // Cancel the timeout since we got a result
267
+ timeout.cancel();
268
+ return result;
269
+ }
270
+ catch (error) {
271
+ // Cancel the timeout in case of error
272
+ timeout.cancel();
273
+ throw error;
274
+ }
275
+ }
276
+ //# sourceMappingURL=async-test-utils.js.map
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Wait for a file to exist with optimized polling
3
+ */
4
+ export declare function waitForFile(filePath: string, timeoutMs?: number): Promise<void>;
5
+ /**
6
+ * Wait for multiple files to exist with parallel checking
7
+ */
8
+ export declare function waitForFiles(filePaths: string[], timeoutMs?: number): Promise<void>;
9
+ /**
10
+ * Wait for a file to have specific content with optimized polling
11
+ */
12
+ export declare function waitForFileContent(filePath: string, expectedContent: string | RegExp, timeoutMs?: number): Promise<void>;
13
+ /**
14
+ * Wait for a directory to be empty with faster polling
15
+ */
16
+ export declare function waitForDirectoryEmpty(dirPath: string, timeoutMs?: number): Promise<void>;
17
+ /**
18
+ * Safely remove a file with optimized retry logic
19
+ */
20
+ export declare function safeRemoveFile(filePath: string, maxRetries?: number): Promise<void>;
21
+ /**
22
+ * Safely clean up a directory with retry logic
23
+ */
24
+ export declare function safeCleanupDirectory(dirPath: string): Promise<void>;
25
+ /**
26
+ * Enhanced mock HTTP handler with faster timeouts and better error handling
27
+ */
28
+ export declare class MockHttpHandler {
29
+ private requests;
30
+ private pendingPromises;
31
+ private timeoutIds;
32
+ addRequest(url: string, options: any): void;
33
+ getRequests(): {
34
+ url: string;
35
+ options: any;
36
+ }[];
37
+ waitForRequests(count?: number, timeoutMs?: number): Promise<void>;
38
+ clear(): void;
39
+ }
40
+ /**
41
+ * Create a test timeout that fails fast instead of hanging
42
+ */
43
+ export declare function createTestTimeout(timeoutMs?: number): {
44
+ promise: Promise<never>;
45
+ cancel: () => void;
46
+ };
47
+ /**
48
+ * Race a promise against a timeout for fail-fast behavior
49
+ */
50
+ export declare function withTimeout<T>(promise: Promise<T>, timeoutMs?: number): Promise<T>;
51
+ //# sourceMappingURL=async-test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-test-utils.d.ts","sourceRoot":"","sources":["../../../src/__tests__/async-test-utils.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CActG;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1G;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB/I;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/G;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB5F;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzE;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAIN;IAEV,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,UAAU,CAAkC;IAEpD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAe3C,WAAW;;;;IAIL,eAAe,CAAC,KAAK,GAAE,MAAU,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5F,KAAK,IAAI,IAAI;CAUd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,MAAwB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAetH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,CAiBzG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-test-utils.js","sourceRoot":"","sources":["../../../src/__tests__/async-test-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /**
3
+ * Shared test utilities for redaction tests
4
+ * Common setup, mocks, and helper functions
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.originalConsole = exports.mockConsole = void 0;
8
+ exports.setupConsoleMocks = setupConsoleMocks;
9
+ exports.restoreConsole = restoreConsole;
10
+ exports.setupTestEnvironment = setupTestEnvironment;
11
+ exports.restoreEnvironment = restoreEnvironment;
12
+ // Mock console methods to capture output for integration tests
13
+ exports.mockConsole = {
14
+ log: jest.fn(),
15
+ warn: jest.fn(),
16
+ error: jest.fn()
17
+ };
18
+ // Store original console methods
19
+ exports.originalConsole = {
20
+ log: console.log,
21
+ warn: console.warn,
22
+ error: console.error
23
+ };
24
+ /**
25
+ * Setup console mocks for testing
26
+ */
27
+ function setupConsoleMocks() {
28
+ jest.clearAllMocks();
29
+ console.log = exports.mockConsole.log;
30
+ console.warn = exports.mockConsole.warn;
31
+ console.error = exports.mockConsole.error;
32
+ }
33
+ /**
34
+ * Restore original console methods
35
+ */
36
+ function restoreConsole() {
37
+ console.log = exports.originalConsole.log;
38
+ console.warn = exports.originalConsole.warn;
39
+ console.error = exports.originalConsole.error;
40
+ }
41
+ /**
42
+ * Setup environment for testing
43
+ */
44
+ function setupTestEnvironment() {
45
+ const originalEnv = { ...process.env };
46
+ return { originalEnv };
47
+ }
48
+ /**
49
+ * Restore environment after testing
50
+ */
51
+ function restoreEnvironment(originalEnv) {
52
+ // Only remove environment variables that were added during the test
53
+ // (i.e., those not present in the originalEnv)
54
+ // Create a copy of the keys to avoid mutation during iteration
55
+ const currentEnvKeys = Object.keys(process.env);
56
+ for (const key of currentEnvKeys) {
57
+ if (!Object.prototype.hasOwnProperty.call(originalEnv, key)) {
58
+ // Safe deletion using explicit type assertion
59
+ delete process.env[key];
60
+ }
61
+ }
62
+ // Restore or update variables that existed originally
63
+ // Iterate over originalEnv keys safely
64
+ const originalEnvKeys = Object.keys(originalEnv);
65
+ for (const key of originalEnvKeys) {
66
+ if (Object.prototype.hasOwnProperty.call(originalEnv, key)) {
67
+ // Safe assignment using explicit access
68
+ process.env[key] = originalEnv[key];
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=test-utils.js.map
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Shared test utilities for redaction tests
3
+ * Common setup, mocks, and helper functions
4
+ */
5
+ export declare const mockConsole: {
6
+ log: jest.Mock<any, any, any>;
7
+ warn: jest.Mock<any, any, any>;
8
+ error: jest.Mock<any, any, any>;
9
+ };
10
+ export declare const originalConsole: {
11
+ log: (message?: any, ...optionalParams: any[]) => void;
12
+ warn: (message?: any, ...optionalParams: any[]) => void;
13
+ error: (message?: any, ...optionalParams: any[]) => void;
14
+ };
15
+ /**
16
+ * Setup console mocks for testing
17
+ */
18
+ export declare function setupConsoleMocks(): void;
19
+ /**
20
+ * Restore original console methods
21
+ */
22
+ export declare function restoreConsole(): void;
23
+ /**
24
+ * Setup environment for testing
25
+ */
26
+ export declare function setupTestEnvironment(): {
27
+ originalEnv: NodeJS.ProcessEnv;
28
+ };
29
+ /**
30
+ * Restore environment after testing
31
+ */
32
+ export declare function restoreEnvironment(originalEnv: NodeJS.ProcessEnv): void;
33
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/redaction/test-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AAGF,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAIrC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,WAAW,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,CAGzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAqBvE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../../src/__tests__/redaction/test-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmBH,8CAKC;AAKD,wCAIC;AAKD,oDAGC;AAKD,gDAqBC;AAjED,+DAA+D;AAClD,QAAA,WAAW,GAAG;IACzB,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IACd,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;CACjB,CAAC;AAEF,iCAAiC;AACpB,QAAA,eAAe,GAAG;IAC7B,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,KAAK,EAAE,OAAO,CAAC,KAAK;CACrB,CAAC;AAEF;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,GAAG,mBAAW,CAAC,GAAG,CAAC;IAC9B,OAAO,CAAC,IAAI,GAAG,mBAAW,CAAC,IAAI,CAAC;IAChC,OAAO,CAAC,KAAK,GAAG,mBAAW,CAAC,KAAK,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,CAAC,GAAG,GAAG,uBAAe,CAAC,GAAG,CAAC;IAClC,OAAO,CAAC,IAAI,GAAG,uBAAe,CAAC,IAAI,CAAC;IACpC,OAAO,CAAC,KAAK,GAAG,uBAAe,CAAC,KAAK,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAClC,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,OAAO,EAAE,WAAW,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,WAA8B;IAC/D,oEAAoE;IACpE,+CAA+C;IAC/C,+DAA+D;IAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5D,8CAA8C;YAC9C,OAAQ,OAAO,CAAC,GAA0C,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,uCAAuC;IACvC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3D,wCAAwC;YACvC,OAAO,CAAC,GAA0C,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * Shared test utilities for log-engine tests
4
+ * Provides consistent console mocking and cleanup functionality across all test suites
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.restoreConsoleAfterEach = exports.setupConsoleBeforeEach = exports.restoreConsoleMocks = exports.setupConsoleMocks = void 0;
8
+ /**
9
+ * Sets up console mocks for testing log output
10
+ * Replaces console methods with Jest spies to capture and verify log calls
11
+ * @returns ConsoleMocks object containing all spy instances
12
+ */
13
+ const setupConsoleMocks = () => {
14
+ const mockConsoleLog = jest.spyOn(console, 'log').mockImplementation();
15
+ const mockConsoleWarn = jest.spyOn(console, 'warn').mockImplementation();
16
+ const mockConsoleError = jest.spyOn(console, 'error').mockImplementation();
17
+ return { mockConsoleLog, mockConsoleWarn, mockConsoleError };
18
+ };
19
+ exports.setupConsoleMocks = setupConsoleMocks;
20
+ /**
21
+ * Restores console mocks after testing
22
+ * Cleans up Jest spies and restores original console functionality
23
+ * @param mocks - The ConsoleMocks object from setupConsoleMocks
24
+ */
25
+ const restoreConsoleMocks = (mocks) => {
26
+ mocks.mockConsoleLog.mockRestore();
27
+ mocks.mockConsoleWarn.mockRestore();
28
+ mocks.mockConsoleError.mockRestore();
29
+ };
30
+ exports.restoreConsoleMocks = restoreConsoleMocks;
31
+ /**
32
+ * Convenience function for setting up console mocks in beforeEach hooks
33
+ * Identical to setupConsoleMocks but with a more descriptive name for test setup
34
+ * @returns ConsoleMocks object containing all spy instances
35
+ */
36
+ const setupConsoleBeforeEach = () => {
37
+ return (0, exports.setupConsoleMocks)();
38
+ };
39
+ exports.setupConsoleBeforeEach = setupConsoleBeforeEach;
40
+ /**
41
+ * Convenience function for restoring console mocks in afterEach hooks
42
+ * Identical to restoreConsoleMocks but with a more descriptive name for test cleanup
43
+ * @param mocks - The ConsoleMocks object to restore
44
+ */
45
+ const restoreConsoleAfterEach = (mocks) => {
46
+ (0, exports.restoreConsoleMocks)(mocks);
47
+ };
48
+ exports.restoreConsoleAfterEach = restoreConsoleAfterEach;
49
+ //# sourceMappingURL=test-utils.js.map
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Shared test utilities for log-engine tests
3
+ * Provides consistent console mocking and cleanup functionality across all test suites
4
+ */
5
+ /**
6
+ * Interface for managing console method mocks during testing
7
+ * Groups all console spy instances for easy setup and cleanup
8
+ */
9
+ export interface ConsoleMocks {
10
+ /** Mock for console.log (used by debug and info methods) */
11
+ mockConsoleLog: jest.SpyInstance;
12
+ /** Mock for console.warn (used by warn method) */
13
+ mockConsoleWarn: jest.SpyInstance;
14
+ /** Mock for console.error (used by error method) */
15
+ mockConsoleError: jest.SpyInstance;
16
+ }
17
+ /**
18
+ * Sets up console mocks for testing log output
19
+ * Replaces console methods with Jest spies to capture and verify log calls
20
+ * @returns ConsoleMocks object containing all spy instances
21
+ */
22
+ export declare const setupConsoleMocks: () => ConsoleMocks;
23
+ /**
24
+ * Restores console mocks after testing
25
+ * Cleans up Jest spies and restores original console functionality
26
+ * @param mocks - The ConsoleMocks object from setupConsoleMocks
27
+ */
28
+ export declare const restoreConsoleMocks: (mocks: ConsoleMocks) => void;
29
+ /**
30
+ * Convenience function for setting up console mocks in beforeEach hooks
31
+ * Identical to setupConsoleMocks but with a more descriptive name for test setup
32
+ * @returns ConsoleMocks object containing all spy instances
33
+ */
34
+ export declare const setupConsoleBeforeEach: () => ConsoleMocks;
35
+ /**
36
+ * Convenience function for restoring console mocks in afterEach hooks
37
+ * Identical to restoreConsoleMocks but with a more descriptive name for test cleanup
38
+ * @param mocks - The ConsoleMocks object to restore
39
+ */
40
+ export declare const restoreConsoleAfterEach: (mocks: ConsoleMocks) => void;
41
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC;IACjC,kDAAkD;IAClD,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC;IAClC,oDAAoD;IACpD,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC;CACpC;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAO,YAMpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,YAAY,KAAG,IAIzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAO,YAEzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,YAAY,KAAG,IAE7D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/__tests__/test-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAeH;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,GAAiB,EAAE;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACvE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAE3E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;AAC/D,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEF;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAQ,EAAE;IAC/D,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IACnC,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IACpC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEF;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,GAAiB,EAAE;IACvD,OAAO,IAAA,yBAAiB,GAAE,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC;AAEF;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAmB,EAAQ,EAAE;IACnE,IAAA,2BAAmB,EAAC,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,uBAAuB,2BAElC"}
@@ -32,3 +32,4 @@ exports.colorScheme = {
32
32
  data: exports.colors.dim,
33
33
  reset: exports.colors.reset
34
34
  };
35
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/formatter/colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;CAWT,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../src/formatter/colors.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;GAGG;AACU,QAAA,MAAM,GAAG;IACpB,KAAK,EAAE,SAAS,EAAO,uBAAuB;IAC9C,GAAG,EAAE,SAAS,EAAS,iBAAiB;IACxC,GAAG,EAAE,UAAU,EAAQ,oBAAoB;IAC3C,MAAM,EAAE,UAAU,EAAK,yBAAyB;IAChD,IAAI,EAAE,UAAU,EAAO,mBAAmB;IAC1C,OAAO,EAAE,UAAU,EAAI,uBAAuB;IAC9C,IAAI,EAAE,UAAU,EAAO,yBAAyB;IAChD,KAAK,EAAE,UAAU,EAAM,uBAAuB;IAC9C,IAAI,EAAE,UAAU,EAAO,yBAAyB;IAChD,KAAK,EAAE,UAAU,CAAM,yBAAyB;CACxC,CAAC;AAEX;;;GAGG;AACU,QAAA,WAAW,GAAG;IACzB,SAAS,EAAE,cAAM,CAAC,IAAI;IACtB,UAAU,EAAE,cAAM,CAAC,IAAI;IACvB,MAAM,EAAE,cAAM,CAAC,MAAM;IACrB,IAAI,EAAE,cAAM,CAAC,GAAG;IAChB,KAAK,EAAE,cAAM,CAAC,KAAK;CACX,CAAC"}
@@ -51,3 +51,4 @@ function styleData(dataString, colors) {
51
51
  }
52
52
  return ` ${colors.data}${dataString}${colors.reset}`;
53
53
  }
54
+ //# sourceMappingURL=data-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-formatter.d.ts","sourceRoot":"","sources":["../../../src/formatter/data-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CA2BhD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAM7F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-formatter.js","sourceRoot":"","sources":["../../../src/formatter/data-formatter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,gCA2BC;AASD,8BAMC;AAlDD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,IAAa;IACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;QAC7E,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,UAAkB,EAAE,MAAuC;IACnF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACvD,CAAC"}
@@ -5,17 +5,18 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.LogFormatter = exports.styleData = exports.formatData = exports.formatTimestamp = exports.getTimestampComponents = exports.colorScheme = exports.colors = exports.MessageFormatter = void 0;
8
- var message_formatter_1 = require("./message-formatter");
8
+ var message_formatter_1 = require("./message-formatter.cjs");
9
9
  Object.defineProperty(exports, "MessageFormatter", { enumerable: true, get: function () { return message_formatter_1.MessageFormatter; } });
10
- var colors_1 = require("./colors");
10
+ var colors_1 = require("./colors.cjs");
11
11
  Object.defineProperty(exports, "colors", { enumerable: true, get: function () { return colors_1.colors; } });
12
12
  Object.defineProperty(exports, "colorScheme", { enumerable: true, get: function () { return colors_1.colorScheme; } });
13
- var timestamp_1 = require("./timestamp");
13
+ var timestamp_1 = require("./timestamp.cjs");
14
14
  Object.defineProperty(exports, "getTimestampComponents", { enumerable: true, get: function () { return timestamp_1.getTimestampComponents; } });
15
15
  Object.defineProperty(exports, "formatTimestamp", { enumerable: true, get: function () { return timestamp_1.formatTimestamp; } });
16
- var data_formatter_1 = require("./data-formatter");
16
+ var data_formatter_1 = require("./data-formatter.cjs");
17
17
  Object.defineProperty(exports, "formatData", { enumerable: true, get: function () { return data_formatter_1.formatData; } });
18
18
  Object.defineProperty(exports, "styleData", { enumerable: true, get: function () { return data_formatter_1.styleData; } });
19
19
  // Backward compatibility - maintain the original LogFormatter class interface
20
- var message_formatter_2 = require("./message-formatter");
20
+ var message_formatter_2 = require("./message-formatter.cjs");
21
21
  Object.defineProperty(exports, "LogFormatter", { enumerable: true, get: function () { return message_formatter_2.MessageFormatter; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formatter/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatter/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,mCAA+C;AAAtC,gGAAA,MAAM,OAAA;AAAE,qGAAA,WAAW,OAAA;AAC5B,yCAAsE;AAA7D,mHAAA,sBAAsB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAChD,mDAAyD;AAAhD,4GAAA,UAAU,OAAA;AAAE,2GAAA,SAAS,OAAA;AAE9B,8EAA8E;AAC9E,yDAAuE;AAA9D,iHAAA,gBAAgB,OAAgB"}
@@ -5,10 +5,10 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.MessageFormatter = void 0;
8
- const types_1 = require("../types");
9
- const colors_1 = require("./colors");
10
- const timestamp_1 = require("./timestamp");
11
- const data_formatter_1 = require("./data-formatter");
8
+ const types_1 = require("../types/index.cjs");
9
+ const colors_1 = require("./colors.cjs");
10
+ const timestamp_1 = require("./timestamp.cjs");
11
+ const data_formatter_1 = require("./data-formatter.cjs");
12
12
  /**
13
13
  * Core message formatter class
14
14
  * Provides the main formatting functionality for log messages
@@ -85,3 +85,4 @@ class MessageFormatter {
85
85
  }
86
86
  }
87
87
  exports.MessageFormatter = MessageFormatter;
88
+ //# sourceMappingURL=message-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-formatter.d.ts","sourceRoot":"","sources":["../../../src/formatter/message-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAK7C;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;;SAOK;IACL,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM;IAsBvE;;;;;SAKK;IACL,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAUnD;;;;SAIK;IACL,OAAO,CAAC,MAAM,CAAC,YAAY;IAW3B;;;;;SAKK;IACL,OAAO,CAAC,MAAM,CAAC,aAAa;CAU7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-formatter.js","sourceRoot":"","sources":["../../../src/formatter/message-formatter.ts"],"names":[],"mappings":"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"}