@arcjet/analyze
Version:
Arcjet local analysis engine
30 lines (29 loc) • 1.58 kB
TypeScript
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>;