@fjell/logging
Version:
Logging for Fjell
49 lines (48 loc) • 1.56 kB
TypeScript
/**
* Sensitive data masking utilities for logging
* Detects and replaces PII, private keys, and other sensitive information with '****'
*/
/**
* Masks sensitive data in a string
* @param input - The input string to mask
* @returns The masked string with sensitive data replaced by '****'
*/
export declare function maskString(input: string): string;
/**
* Masks sensitive data in an object recursively
* @param obj - The object to mask
* @param maxDepth - Maximum recursion depth to prevent stack overflow
* @param currentDepth - Current recursion depth
* @returns A new object with sensitive data masked
*/
export declare function maskObject<T>(obj: T, maxDepth?: number, currentDepth?: number): T;
/**
* Configuration for masking behavior
*/
export interface MaskingConfig {
/** Enable/disable masking entirely */
enabled: boolean;
/** Mask email addresses */
maskEmails: boolean;
/** Mask SSNs */
maskSSNs: boolean;
/** Mask private keys */
maskPrivateKeys: boolean;
/** Mask long base64 blobs */
maskBase64Blobs: boolean;
/** Mask JWT tokens */
maskJWTs: boolean;
/** Maximum recursion depth for object masking */
maxDepth: number;
}
/**
* Default masking configuration
*/
export declare const defaultMaskingConfig: MaskingConfig;
/**
* Enhanced masking function that respects configuration
* @param input - The input to mask
* @param config - Masking configuration
* @returns The masked input
*/
export declare function maskWithConfig<T>(input: T, config?: MaskingConfig): T;