@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
TypeScript
/**
* 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[];