UNPKG

@fjell/logging

Version:
49 lines (48 loc) 1.56 kB
/** * 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;