@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.
- package/LICENSE +21 -21
- package/README.md +869 -608
- package/dist/cjs/__tests__/async-test-utils.cjs +276 -0
- package/dist/cjs/__tests__/async-test-utils.d.ts +51 -0
- package/dist/cjs/__tests__/async-test-utils.d.ts.map +1 -0
- package/dist/cjs/__tests__/async-test-utils.js.map +1 -0
- package/dist/cjs/__tests__/redaction/test-utils.cjs +72 -0
- package/dist/cjs/__tests__/redaction/test-utils.d.ts +33 -0
- package/dist/cjs/__tests__/redaction/test-utils.d.ts.map +1 -0
- package/dist/cjs/__tests__/redaction/test-utils.js.map +1 -0
- package/dist/cjs/__tests__/test-utils.cjs +49 -0
- package/dist/cjs/__tests__/test-utils.d.ts +41 -0
- package/dist/cjs/__tests__/test-utils.d.ts.map +1 -0
- package/dist/cjs/__tests__/test-utils.js.map +1 -0
- package/dist/{formatter/colors.js → cjs/formatter/colors.cjs} +1 -0
- package/dist/cjs/formatter/colors.d.ts.map +1 -0
- package/dist/cjs/formatter/colors.js.map +1 -0
- package/dist/{formatter/data-formatter.js → cjs/formatter/data-formatter.cjs} +2 -1
- package/dist/{formatter → cjs/formatter}/data-formatter.d.ts +2 -1
- package/dist/cjs/formatter/data-formatter.d.ts.map +1 -0
- package/dist/cjs/formatter/data-formatter.js.map +1 -0
- package/dist/{formatter/index.js → cjs/formatter/index.cjs} +6 -5
- package/dist/cjs/formatter/index.d.ts.map +1 -0
- package/dist/cjs/formatter/index.js.map +1 -0
- package/dist/{formatter/message-formatter.js → cjs/formatter/message-formatter.cjs} +28 -27
- package/dist/cjs/formatter/message-formatter.d.ts +41 -0
- package/dist/cjs/formatter/message-formatter.d.ts.map +1 -0
- package/dist/cjs/formatter/message-formatter.js.map +1 -0
- package/dist/{formatter/timestamp.js → cjs/formatter/timestamp.cjs} +1 -0
- package/dist/cjs/formatter/timestamp.d.ts.map +1 -0
- package/dist/cjs/formatter/timestamp.js.map +1 -0
- package/dist/cjs/index.cjs +202 -0
- package/dist/cjs/index.d.ts +180 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger/advanced-outputs.cjs +587 -0
- package/dist/cjs/logger/advanced-outputs.d.ts +159 -0
- package/dist/cjs/logger/advanced-outputs.d.ts.map +1 -0
- package/dist/cjs/logger/advanced-outputs.js.map +1 -0
- package/dist/{logger/config.js → cjs/logger/config.cjs} +36 -32
- package/dist/cjs/logger/config.d.ts +42 -0
- package/dist/cjs/logger/config.d.ts.map +1 -0
- package/dist/cjs/logger/config.js.map +1 -0
- package/dist/cjs/logger/core.cjs +371 -0
- package/dist/cjs/logger/core.d.ts +152 -0
- package/dist/cjs/logger/core.d.ts.map +1 -0
- package/dist/cjs/logger/core.js.map +1 -0
- package/dist/{logger/environment.js → cjs/logger/environment.cjs} +17 -16
- package/dist/cjs/logger/environment.d.ts +36 -0
- package/dist/cjs/logger/environment.d.ts.map +1 -0
- package/dist/cjs/logger/environment.js.map +1 -0
- package/dist/cjs/logger/filtering.cjs +81 -0
- package/dist/cjs/logger/filtering.d.ts +36 -0
- package/dist/cjs/logger/filtering.d.ts.map +1 -0
- package/dist/cjs/logger/filtering.js.map +1 -0
- package/dist/{logger/index.js → cjs/logger/index.cjs} +6 -5
- package/dist/cjs/logger/index.d.ts.map +1 -0
- package/dist/cjs/logger/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/{redaction/config.js → cjs/redaction/config.cjs} +9 -8
- package/dist/{redaction → cjs/redaction}/config.d.ts +8 -8
- package/dist/cjs/redaction/config.d.ts.map +1 -0
- package/dist/cjs/redaction/config.js.map +1 -0
- package/dist/{redaction/index.js → cjs/redaction/index.cjs} +3 -2
- package/dist/cjs/redaction/index.d.ts.map +1 -0
- package/dist/cjs/redaction/index.js.map +1 -0
- package/dist/cjs/redaction/redactor.cjs +263 -0
- package/dist/cjs/redaction/redactor.d.ts +99 -0
- package/dist/cjs/redaction/redactor.d.ts.map +1 -0
- package/dist/cjs/redaction/redactor.js.map +1 -0
- package/dist/{types/index.js → cjs/types/index.cjs} +1 -0
- package/dist/{types → cjs/types}/index.d.ts +98 -16
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/esm/__tests__/async-test-utils.d.ts +51 -0
- package/dist/esm/__tests__/async-test-utils.d.ts.map +1 -0
- package/dist/esm/__tests__/async-test-utils.js +231 -0
- package/dist/esm/__tests__/async-test-utils.js.map +1 -0
- package/dist/esm/__tests__/redaction/test-utils.d.ts +33 -0
- package/dist/esm/__tests__/redaction/test-utils.d.ts.map +1 -0
- package/dist/esm/__tests__/redaction/test-utils.js +65 -0
- package/dist/esm/__tests__/redaction/test-utils.js.map +1 -0
- package/dist/esm/__tests__/test-utils.d.ts +41 -0
- package/dist/esm/__tests__/test-utils.d.ts.map +1 -0
- package/dist/esm/__tests__/test-utils.js +42 -0
- package/dist/esm/__tests__/test-utils.js.map +1 -0
- package/dist/esm/formatter/colors.d.ts +32 -0
- package/dist/esm/formatter/colors.d.ts.map +1 -0
- package/dist/esm/formatter/colors.js +32 -0
- package/dist/esm/formatter/colors.js.map +1 -0
- package/dist/esm/formatter/data-formatter.d.ts +26 -0
- package/dist/esm/formatter/data-formatter.d.ts.map +1 -0
- package/dist/esm/formatter/data-formatter.js +50 -0
- package/dist/esm/formatter/data-formatter.js.map +1 -0
- package/dist/esm/formatter/index.d.ts +10 -0
- package/dist/esm/formatter/index.d.ts.map +1 -0
- package/dist/esm/formatter/index.js +11 -0
- package/dist/esm/formatter/index.js.map +1 -0
- package/dist/esm/formatter/message-formatter.d.ts +41 -0
- package/dist/esm/formatter/message-formatter.d.ts.map +1 -0
- package/dist/esm/formatter/message-formatter.js +84 -0
- package/dist/esm/formatter/message-formatter.js.map +1 -0
- package/dist/esm/formatter/timestamp.d.ts +27 -0
- package/dist/esm/formatter/timestamp.d.ts.map +1 -0
- package/dist/esm/formatter/timestamp.js +36 -0
- package/dist/esm/formatter/timestamp.js.map +1 -0
- package/dist/esm/index.d.ts +180 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +194 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logger/advanced-outputs.d.ts +159 -0
- package/dist/esm/logger/advanced-outputs.d.ts.map +1 -0
- package/dist/esm/logger/advanced-outputs.js +542 -0
- package/dist/esm/logger/advanced-outputs.js.map +1 -0
- package/dist/esm/logger/config.d.ts +42 -0
- package/dist/esm/logger/config.d.ts.map +1 -0
- package/dist/esm/logger/config.js +101 -0
- package/dist/esm/logger/config.js.map +1 -0
- package/dist/esm/logger/core.d.ts +152 -0
- package/dist/esm/logger/core.d.ts.map +1 -0
- package/dist/esm/logger/core.js +367 -0
- package/dist/esm/logger/core.js.map +1 -0
- package/dist/esm/logger/environment.d.ts +36 -0
- package/dist/esm/logger/environment.d.ts.map +1 -0
- package/dist/esm/logger/environment.js +58 -0
- package/dist/esm/logger/environment.js.map +1 -0
- package/dist/esm/logger/filtering.d.ts +36 -0
- package/dist/esm/logger/filtering.d.ts.map +1 -0
- package/dist/esm/logger/filtering.js +77 -0
- package/dist/esm/logger/filtering.js.map +1 -0
- package/dist/esm/logger/index.d.ts +10 -0
- package/dist/esm/logger/index.d.ts.map +1 -0
- package/dist/esm/logger/index.js +11 -0
- package/dist/esm/logger/index.js.map +1 -0
- package/dist/esm/redaction/config.d.ts +29 -0
- package/dist/esm/redaction/config.d.ts.map +1 -0
- package/dist/esm/redaction/config.js +92 -0
- package/dist/esm/redaction/config.js.map +1 -0
- package/dist/esm/redaction/index.d.ts +8 -0
- package/dist/esm/redaction/index.d.ts.map +1 -0
- package/dist/esm/redaction/index.js +7 -0
- package/dist/esm/redaction/index.js.map +1 -0
- package/dist/esm/redaction/redactor.d.ts +99 -0
- package/dist/esm/redaction/redactor.d.ts.map +1 -0
- package/dist/esm/redaction/redactor.js +259 -0
- package/dist/esm/redaction/redactor.js.map +1 -0
- package/dist/esm/types/index.d.ts +310 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +41 -0
- package/dist/esm/types/index.js.map +1 -0
- package/package.json +94 -68
- package/dist/formatter/colors.d.ts.map +0 -1
- package/dist/formatter/data-formatter.d.ts.map +0 -1
- package/dist/formatter/index.d.ts.map +0 -1
- package/dist/formatter/message-formatter.d.ts +0 -41
- package/dist/formatter/message-formatter.d.ts.map +0 -1
- package/dist/formatter/timestamp.d.ts.map +0 -1
- package/dist/index.d.ts +0 -186
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -201
- package/dist/logger/config.d.ts +0 -42
- package/dist/logger/config.d.ts.map +0 -1
- package/dist/logger/core.d.ts +0 -108
- package/dist/logger/core.d.ts.map +0 -1
- package/dist/logger/core.js +0 -185
- package/dist/logger/environment.d.ts +0 -36
- package/dist/logger/environment.d.ts.map +0 -1
- package/dist/logger/filtering.d.ts +0 -36
- package/dist/logger/filtering.d.ts.map +0 -1
- package/dist/logger/filtering.js +0 -65
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/redaction/config.d.ts.map +0 -1
- package/dist/redaction/index.d.ts.map +0 -1
- package/dist/redaction/redactor.d.ts +0 -99
- package/dist/redaction/redactor.d.ts.map +0 -1
- package/dist/redaction/redactor.js +0 -257
- package/dist/types/index.d.ts.map +0 -1
- /package/dist/{formatter → cjs/formatter}/colors.d.ts +0 -0
- /package/dist/{formatter → cjs/formatter}/index.d.ts +0 -0
- /package/dist/{formatter → cjs/formatter}/timestamp.d.ts +0 -0
- /package/dist/{logger → cjs/logger}/index.d.ts +0 -0
- /package/dist/{redaction → cjs/redaction}/index.d.ts +0 -0
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Core data redaction engine
|
|
4
|
-
* Handles automatic detection and redaction of sensitive information in log data
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.DataRedactor = void 0;
|
|
8
|
-
const config_1 = require("./config");
|
|
9
|
-
/**
|
|
10
|
-
* DataRedactor class - Core redaction logic for processing log data
|
|
11
|
-
* Automatically detects and redacts sensitive information while preserving structure
|
|
12
|
-
*/
|
|
13
|
-
class DataRedactor {
|
|
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) {
|
|
20
|
-
// Reload environment configuration to pick up any changes
|
|
21
|
-
const envConfig = config_1.RedactionController.getEnvironmentConfig();
|
|
22
|
-
this.config = {
|
|
23
|
-
...config_1.defaultRedactionConfig,
|
|
24
|
-
...envConfig,
|
|
25
|
-
...newConfig
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get the current redaction configuration
|
|
30
|
-
* @returns Deep copy of current redaction configuration
|
|
31
|
-
*/
|
|
32
|
-
static getConfig() {
|
|
33
|
-
return {
|
|
34
|
-
...this.config,
|
|
35
|
-
sensitiveFields: [...this.config.sensitiveFields],
|
|
36
|
-
contentFields: [...this.config.contentFields],
|
|
37
|
-
customPatterns: this.config.customPatterns ? [...this.config.customPatterns] : undefined
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Refresh configuration from environment variables
|
|
42
|
-
* Useful for picking up runtime environment changes
|
|
43
|
-
*/
|
|
44
|
-
static refreshConfig() {
|
|
45
|
-
const envConfig = config_1.RedactionController.getEnvironmentConfig();
|
|
46
|
-
this.config = {
|
|
47
|
-
...config_1.defaultRedactionConfig,
|
|
48
|
-
...envConfig
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Add custom regex patterns for advanced field detection
|
|
53
|
-
* @param patterns - Array of regex patterns to add
|
|
54
|
-
*/
|
|
55
|
-
static addCustomPatterns(patterns) {
|
|
56
|
-
const currentPatterns = this.config.customPatterns || [];
|
|
57
|
-
this.config = {
|
|
58
|
-
...this.config,
|
|
59
|
-
customPatterns: [...currentPatterns, ...patterns]
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Clear all custom regex patterns
|
|
64
|
-
*/
|
|
65
|
-
static clearCustomPatterns() {
|
|
66
|
-
this.config = {
|
|
67
|
-
...this.config,
|
|
68
|
-
customPatterns: []
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Add custom sensitive field names to the existing list
|
|
73
|
-
* @param fields - Array of field names to add
|
|
74
|
-
*/
|
|
75
|
-
static addSensitiveFields(fields) {
|
|
76
|
-
this.config = {
|
|
77
|
-
...this.config,
|
|
78
|
-
sensitiveFields: [...this.config.sensitiveFields, ...fields]
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Test if a field name would be redacted with current configuration
|
|
83
|
-
* @param fieldName - Field name to test
|
|
84
|
-
* @returns true if field would be redacted, false otherwise
|
|
85
|
-
*/
|
|
86
|
-
static testFieldRedaction(fieldName) {
|
|
87
|
-
const testObj = { [fieldName]: 'test-value' };
|
|
88
|
-
const result = this.redactData(testObj);
|
|
89
|
-
return result[fieldName] !== 'test-value';
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Main entry point for data redaction
|
|
93
|
-
* Processes any type of data and returns a redacted version
|
|
94
|
-
* @param data - Data to be processed for redaction
|
|
95
|
-
* @returns Redacted version of the data
|
|
96
|
-
*/
|
|
97
|
-
static redactData(data) {
|
|
98
|
-
// Skip processing if redaction is disabled or data is null/undefined
|
|
99
|
-
if (!this.config.enabled || data === null || data === undefined) {
|
|
100
|
-
return data;
|
|
101
|
-
}
|
|
102
|
-
return this.processValue(data, new WeakSet(), 0);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Process a value of any type (primitive, object, array)
|
|
106
|
-
* Recursively handles nested structures when deepRedaction is enabled
|
|
107
|
-
* Includes circular reference protection and recursion depth limiting
|
|
108
|
-
* @param value - Value to process
|
|
109
|
-
* @param visited - Set to track visited objects (prevents circular references)
|
|
110
|
-
* @param depth - Current recursion depth (prevents stack overflow)
|
|
111
|
-
* @returns Processed value with redaction applied
|
|
112
|
-
*/
|
|
113
|
-
static processValue(value, visited = new WeakSet(), depth = 0) {
|
|
114
|
-
// Check recursion depth limit to prevent stack overflow
|
|
115
|
-
if (depth >= this.MAX_RECURSION_DEPTH) {
|
|
116
|
-
return '[Max Depth Exceeded]';
|
|
117
|
-
}
|
|
118
|
-
// Handle null and undefined
|
|
119
|
-
if (value === null || value === undefined) {
|
|
120
|
-
return value;
|
|
121
|
-
}
|
|
122
|
-
// Handle arrays - process each element
|
|
123
|
-
if (Array.isArray(value)) {
|
|
124
|
-
// Check for circular reference
|
|
125
|
-
if (visited.has(value)) {
|
|
126
|
-
return '[Circular Array]';
|
|
127
|
-
}
|
|
128
|
-
visited.add(value);
|
|
129
|
-
const result = value.map(item => this.processValue(item, visited, depth + 1));
|
|
130
|
-
// Keep value in visited set to detect circular references across branches
|
|
131
|
-
return result;
|
|
132
|
-
}
|
|
133
|
-
// Handle objects - process each property
|
|
134
|
-
if (typeof value === 'object') {
|
|
135
|
-
// Check for circular reference
|
|
136
|
-
if (visited.has(value)) {
|
|
137
|
-
return '[Circular Object]';
|
|
138
|
-
}
|
|
139
|
-
visited.add(value);
|
|
140
|
-
const result = this.redactObject(value, visited, depth + 1);
|
|
141
|
-
// Keep value in visited set to detect circular references across branches
|
|
142
|
-
return result;
|
|
143
|
-
}
|
|
144
|
-
// Handle primitives (string, number, boolean) - return as-is
|
|
145
|
-
return value;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Process an object and redact sensitive fields
|
|
149
|
-
* Handles field-level redaction and content truncation
|
|
150
|
-
* @param obj - Object to process
|
|
151
|
-
* @param visited - Set to track visited objects (prevents circular references)
|
|
152
|
-
* @param depth - Current recursion depth (prevents stack overflow)
|
|
153
|
-
* @returns Object with sensitive fields redacted
|
|
154
|
-
*/
|
|
155
|
-
static redactObject(obj, visited = new WeakSet(), depth = 0) {
|
|
156
|
-
// Check recursion depth limit to prevent stack overflow
|
|
157
|
-
if (depth >= this.MAX_REDACT_OBJECT_DEPTH) {
|
|
158
|
-
return { '[Max Depth Exceeded]': '[Max Depth Exceeded]' };
|
|
159
|
-
}
|
|
160
|
-
const redacted = {};
|
|
161
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
162
|
-
// Check if this field should be completely redacted
|
|
163
|
-
if (this.isSensitiveField(key)) {
|
|
164
|
-
redacted[key] = this.config.redactionText;
|
|
165
|
-
}
|
|
166
|
-
// Check if this field should be truncated (for large content)
|
|
167
|
-
else if (this.isContentField(key) && typeof value === 'string') {
|
|
168
|
-
redacted[key] = this.truncateContent(value);
|
|
169
|
-
}
|
|
170
|
-
// Recursively process nested objects/arrays if deep redaction is enabled
|
|
171
|
-
else if (this.config.deepRedaction && (typeof value === 'object' && value !== null)) {
|
|
172
|
-
redacted[key] = this.processValue(value, visited, depth + 1);
|
|
173
|
-
}
|
|
174
|
-
// Keep the value unchanged
|
|
175
|
-
else {
|
|
176
|
-
redacted[key] = value;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return redacted;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Check if a field name indicates sensitive information
|
|
183
|
-
* Uses case-insensitive matching with exact and partial matches
|
|
184
|
-
* Includes smart filtering to avoid false positives and custom patterns
|
|
185
|
-
* @param fieldName - Field name to check
|
|
186
|
-
* @returns true if field should be redacted, false otherwise
|
|
187
|
-
*/
|
|
188
|
-
static isSensitiveField(fieldName) {
|
|
189
|
-
const lowerField = fieldName.toLowerCase();
|
|
190
|
-
// Check custom regex patterns first (highest priority)
|
|
191
|
-
if (this.config.customPatterns && this.config.customPatterns.length > 0) {
|
|
192
|
-
for (const pattern of this.config.customPatterns) {
|
|
193
|
-
if (pattern.test(fieldName)) {
|
|
194
|
-
return true;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
return this.config.sensitiveFields.some(sensitive => {
|
|
199
|
-
const lowerSensitive = sensitive.toLowerCase();
|
|
200
|
-
// Exact match (highest confidence)
|
|
201
|
-
if (lowerField === lowerSensitive) {
|
|
202
|
-
return true;
|
|
203
|
-
}
|
|
204
|
-
// Field ends with sensitive term (e.g., "userPassword" ends with "password")
|
|
205
|
-
if (lowerField.endsWith(lowerSensitive)) {
|
|
206
|
-
return true;
|
|
207
|
-
}
|
|
208
|
-
// Field starts with sensitive term (e.g., "passwordHash" starts with "password")
|
|
209
|
-
if (lowerField.startsWith(lowerSensitive)) {
|
|
210
|
-
return true;
|
|
211
|
-
}
|
|
212
|
-
// Whitelist of short sensitive terms that should always trigger substring matching
|
|
213
|
-
const shortSensitiveWhitelist = ['pin', 'cvv', 'cvc', 'ssn', 'pwd', 'key', 'jwt', 'dob', 'pii', 'auth', 'csrf'];
|
|
214
|
-
// Field contains sensitive term - either from whitelist or length >= 5 to avoid false positives
|
|
215
|
-
if ((shortSensitiveWhitelist.includes(lowerSensitive) || lowerSensitive.length >= 5) &&
|
|
216
|
-
lowerField.includes(lowerSensitive)) {
|
|
217
|
-
return true;
|
|
218
|
-
}
|
|
219
|
-
// Handle compound words with underscores or camelCase
|
|
220
|
-
if (lowerField.includes('_' + lowerSensitive) || lowerField.includes(lowerSensitive + '_')) {
|
|
221
|
-
return true;
|
|
222
|
-
}
|
|
223
|
-
return false;
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Check if a field name indicates content that should be truncated
|
|
228
|
-
* Uses exact case-insensitive matching for content fields
|
|
229
|
-
* @param fieldName - Field name to check
|
|
230
|
-
* @returns true if field is a content field, false otherwise
|
|
231
|
-
*/
|
|
232
|
-
static isContentField(fieldName) {
|
|
233
|
-
const lowerField = fieldName.toLowerCase();
|
|
234
|
-
return this.config.contentFields.some(content => content.toLowerCase() === lowerField);
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Truncate content that exceeds the maximum length
|
|
238
|
-
* Preserves readability while preventing log bloat
|
|
239
|
-
* @param content - Content string to potentially truncate
|
|
240
|
-
* @returns Original content or truncated version with indicator
|
|
241
|
-
*/
|
|
242
|
-
static truncateContent(content) {
|
|
243
|
-
if (content.length <= this.config.maxContentLength) {
|
|
244
|
-
return content;
|
|
245
|
-
}
|
|
246
|
-
return content.substring(0, this.config.maxContentLength) + this.config.truncationText;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
exports.DataRedactor = DataRedactor;
|
|
250
|
-
DataRedactor.config = {
|
|
251
|
-
...config_1.defaultRedactionConfig,
|
|
252
|
-
...config_1.RedactionController.getEnvironmentConfig()
|
|
253
|
-
};
|
|
254
|
-
// Maximum recursion depth to prevent stack overflow attacks
|
|
255
|
-
DataRedactor.MAX_RECURSION_DEPTH = 100;
|
|
256
|
-
// Slightly lower limit for redactObject to ensure it can be reached
|
|
257
|
-
DataRedactor.MAX_REDACT_OBJECT_DEPTH = 99;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|