UNPKG

@arcjet/redact

Version:

Arcjet sensitive information redaction library

13 lines (12 loc) 926 B
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 {};