phase 16 implementation
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
const sensitiveKeys = new Set([
|
||||
'fullname',
|
||||
'name',
|
||||
'workemail',
|
||||
'email',
|
||||
'company',
|
||||
'market',
|
||||
'message',
|
||||
'phone',
|
||||
'fieldvalue',
|
||||
'serverresponse',
|
||||
]);
|
||||
|
||||
export function redactSensitive(value: unknown): unknown {
|
||||
if (Array.isArray(value)) return value.map(redactSensitive);
|
||||
if (!value || typeof value !== 'object') return value;
|
||||
|
||||
return Object.fromEntries(
|
||||
Object.entries(value).map(([key, child]) => [
|
||||
key,
|
||||
sensitiveKeys.has(key.toLowerCase()) ? '[REDACTED]' : redactSensitive(child),
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
||||
export function containsSensitiveKey(value: unknown): boolean {
|
||||
if (Array.isArray(value)) return value.some(containsSensitiveKey);
|
||||
if (!value || typeof value !== 'object') return false;
|
||||
return Object.entries(value).some(
|
||||
([key, child]) => sensitiveKeys.has(key.toLowerCase()) || containsSensitiveKey(child),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user