UNPKG

@arcjet/analyze

Version:

Arcjet local analysis engine

30 lines (29 loc) 1.58 kB
import type { BotConfig, BotResult, DetectedSensitiveInfoEntity, DetectSensitiveInfoFunction, EmailValidationConfig, EmailValidationResult, SensitiveInfoEntities, SensitiveInfoEntity, SensitiveInfoResult } from "@arcjet/analyze-wasm"; import type { ArcjetLogger } from "@arcjet/protocol"; interface AnalyzeContext { log: ArcjetLogger; characteristics: string[]; } type AnalyzeRequest = { ip?: string; method?: string; protocol?: string; host?: string; path?: string; headers?: Record<string, string>; cookies?: string; query?: string; extra?: Record<string, string>; }; export { type EmailValidationConfig, type BotConfig, type SensitiveInfoEntity, type DetectedSensitiveInfoEntity, }; /** * Generate a fingerprint for the client. This is used to identify the client * across multiple requests. * @param context - The Arcjet Analyze context. * @param request - The request to fingerprint. * @returns A SHA-256 string fingerprint. */ export declare function generateFingerprint(context: AnalyzeContext, request: AnalyzeRequest): Promise<string>; export declare function isValidEmail(context: AnalyzeContext, candidate: string, options: EmailValidationConfig): Promise<EmailValidationResult>; export declare function detectBot(context: AnalyzeContext, request: AnalyzeRequest, options: BotConfig): Promise<BotResult>; export declare function detectSensitiveInfo(context: AnalyzeContext, candidate: string, entities: SensitiveInfoEntities, contextWindowSize: number, detect?: DetectSensitiveInfoFunction): Promise<SensitiveInfoResult>;