UNPKG

@bugspotter/sdk

Version:

Professional bug reporting SDK with screenshots, session replay, and automatic error capture for web applications

104 lines (103 loc) 3.35 kB
/** * PII Pattern Definitions * Configurable regex patterns for detecting sensitive data (PII + credentials) */ export type PIIPatternName = 'email' | 'phone' | 'creditcard' | 'ssn' | 'iin' | 'ip' | 'apikey' | 'token' | 'password'; /** * Pattern definition with metadata */ export interface PatternDefinition { /** Pattern name/identifier */ name: PIIPatternName; /** Regular expression for detection */ regex: RegExp; /** Human-readable description */ description: string; /** Examples of data this pattern matches */ examples: string[]; /** Priority order (lower = higher priority, checked first) */ priority: number; } /** * Default built-in patterns */ export declare const DEFAULT_PATTERNS: Record<PIIPatternName, PatternDefinition>; /** * Pattern categories for grouping */ export declare const PATTERN_CATEGORIES: { readonly financial: PIIPatternName[]; readonly contact: PIIPatternName[]; readonly identification: PIIPatternName[]; readonly network: PIIPatternName[]; readonly credentials: PIIPatternName[]; readonly kazakhstan: PIIPatternName[]; }; /** * Get patterns sorted by priority */ export declare function getPatternsByPriority(patterns: PatternDefinition[]): PatternDefinition[]; /** * Get pattern by name */ export declare function getPattern(name: PIIPatternName): PatternDefinition; /** * Get patterns by category */ export declare function getPatternsByCategory(category: keyof typeof PATTERN_CATEGORIES): PatternDefinition[]; /** * Get all pattern names */ export declare function getAllPatternNames(): PIIPatternName[]; /** * Custom pattern builder for advanced use cases */ export declare class PatternBuilder { private pattern; name(name: string): this; regex(regex: RegExp): this; description(description: string): this; examples(examples: string[]): this; priority(priority: number): this; build(): PatternDefinition; } /** * Pre-configured pattern sets for common use cases */ export declare const PATTERN_PRESETS: { /** All patterns enabled (PII + credentials) - default */ readonly all: PIIPatternName[]; /** Minimal - only most critical PII */ readonly minimal: PIIPatternName[]; /** Financial data only */ readonly financial: PIIPatternName[]; /** Contact information only */ readonly contact: PIIPatternName[]; /** Identification numbers only */ readonly identification: PIIPatternName[]; /** Credentials and secrets only */ readonly credentials: PIIPatternName[]; /** Kazakhstan-specific patterns */ readonly kazakhstan: PIIPatternName[]; /** GDPR compliance recommended set */ readonly gdpr: PIIPatternName[]; /** PCI DSS compliance required */ readonly pci: PIIPatternName[]; /** Security-focused: PII + credentials */ readonly security: PIIPatternName[]; }; /** * Create custom pattern configuration */ export declare function createPatternConfig(preset: keyof typeof PATTERN_PRESETS | PIIPatternName[]): PatternDefinition[]; /** * Validate pattern regex */ export declare function validatePattern(pattern: PatternDefinition): { valid: boolean; errors: string[]; }; /** * Merge pattern configurations */ export declare function mergePatternConfigs(...configs: PatternDefinition[][]): PatternDefinition[];