@arcjet/redact
Version:
Arcjet sensitive information redaction library
13 lines (12 loc) • 926 B
TypeScript
export type ArcjetSensitiveInfoType = "email" | "phone-number" | "ip-address" | "credit-card-number";
type DetectSensitiveInfoEntities<T> = (tokens: string[]) => Array<ArcjetSensitiveInfoType | T | undefined>;
type ValidEntities<Detect> = Array<undefined extends Detect ? ArcjetSensitiveInfoType : Detect extends DetectSensitiveInfoEntities<infer CustomEntities> ? ArcjetSensitiveInfoType | CustomEntities : never>;
export type RedactOptions<Detect> = {
entities?: ValidEntities<Detect>;
contextWindowSize?: number;
detect?: Detect;
replace?: (entity: ValidEntities<Detect>[number], plaintext: string) => string | undefined;
};
type Unredact = (input: string) => string;
export declare function redact<const Detect extends DetectSensitiveInfoEntities<CustomEntities> | undefined, const CustomEntities extends string>(candidate: string, options?: RedactOptions<Detect>): Promise<[string, Unredact]>;
export {};