humanbehavior-js
Version:
SDK for HumanBehavior session and event recording
88 lines • 2.87 kB
TypeScript
export interface RedactionOptions {
redactedText?: string;
excludeSelectors?: string[];
userFields?: string[];
redactionStrategy?: {
mode: 'privacy-first' | 'visibility-first';
unredactFields?: string[];
redactFields?: string[];
};
legacyRedactFields?: string[];
}
export declare class RedactionManager {
private redactedText;
private unredactedFields;
private redactedFields;
private redactionMode;
private excludeSelectors;
constructor(options?: RedactionOptions);
/**
* Set specific fields to be redacted (for visibility-first mode)
* @param fields Array of CSS selectors for fields to redact
*/
setFieldsToRedact(fields: string[]): void;
/**
* Set specific fields to be unredacted (everything else stays redacted by rrweb)
* @param fields Array of CSS selectors for fields to unredact
*/
setFieldsToUnredact(fields: string[]): void;
/**
* Remove specific fields from unredaction (they become redacted again)
* @param fields Array of CSS selectors for fields to redact
*/
redactFields(fields: string[]): void;
/**
* Clear all unredacted fields (everything becomes redacted again)
*/
clearUnredactedFields(): void;
/**
* Check if any fields are currently unredacted
*/
hasUnredactedFields(): boolean;
/**
* Get the current redaction mode
*/
getRedactionMode(): 'privacy-first' | 'visibility-first';
/**
* Get the currently unredacted fields
*/
getUnredactedFields(): string[];
/**
* Get CSS selectors for rrweb masking configuration
* Returns null if no fields are unredacted (everything stays redacted)
*/
getMaskTextSelector(): string | null;
/**
* Apply redaction classes to DOM elements (for visibility-first mode)
* Adds 'rr-mask' class to elements that should be redacted
*/
applyRedactionClasses(): void;
/**
* Apply unredaction classes to DOM elements
* Removes 'rr-mask' class from elements that should be unredacted
*/
applyUnredactionClasses(): void;
/**
* Remove all unredaction classes from DOM elements
*/
removeUnredactionClasses(): void;
/**
* Check if a selector represents a password field
*/
private isPasswordSelector;
/**
* Get the original value of an element (for debugging)
*/
getOriginalValue(element: HTMLElement): string | undefined;
/**
* Check if an element is currently unredacted
*/
isElementUnredacted(element: HTMLElement): boolean;
/**
* Check if an element should be unredacted
*/
shouldUnredactElement(element: HTMLElement): boolean;
}
export declare const redactionManager: RedactionManager;
export default RedactionManager;
//# sourceMappingURL=redact.d.ts.map