octocode-data-masker
Version:
A TypeScript library for masking sensitive data in strings, including PII, tokens, API keys, and more
63 lines (58 loc) • 1.63 kB
TypeScript
type PatternName = string;
interface MaskResult {
output: string;
found: {
[name: string]: number;
};
matches: string[];
masked: string[];
}
interface MaskingOptions {
maskChar?: string;
preserveLength?: boolean;
maskPercentage?: number;
excludePatterns?: PatternName[];
onlyPatterns?: PatternName[];
matchAccuracy?: 'high' | 'medium' | 'low';
}
/**
* Masks sensitive content in a string
*/
declare function mask(input: string, options?: MaskingOptions): MaskResult;
/**
* Check if input contains sensitive data
*/
declare function hasSensitiveContent(input: string, options?: {
matchAccuracy?: 'high' | 'medium' | 'low';
excludePatterns?: PatternName[];
onlyPatterns?: PatternName[];
}): boolean;
/**
* Get pattern matches with positions
*/
declare function getPatternMatches(input: string, options?: {
matchAccuracy?: 'high' | 'medium' | 'low';
excludePatterns?: PatternName[];
onlyPatterns?: PatternName[];
}): Array<{
pattern: string;
matches: Array<{
match: string;
startIndex: number;
endIndex: number;
}>;
}>;
interface SensitiveDataPattern {
name: string;
description: string;
regex: RegExp;
isGeneralId?: boolean;
fileContext?: RegExp;
matchAccuracy?: 'high' | 'medium' | 'low';
}
declare const regexPatterns: {
all: SensitiveDataPattern[];
};
declare const sensitiveFilePatterns: SensitiveDataPattern[];
export { getPatternMatches, hasSensitiveContent, mask, regexPatterns, sensitiveFilePatterns };
export type { MaskResult, MaskingOptions, SensitiveDataPattern };