UNPKG

id-scanner-lib

Version:

Browser-based ID card, QR code, and face recognition scanner with liveness detection

178 lines (169 loc) 3.96 kB
/** * @file 身份证模块类型定义 * @description 身份证模块相关的类型和接口定义 * @module modules/id-card/types */ /** * 身份证类型枚举 */ export enum IDCardType { /** 第二代居民身份证正面 */ FRONT = 'front', /** 第二代居民身份证背面 */ BACK = 'back', /** 第一代居民身份证 */ FIRST_GENERATION = 'first_generation', /** 临时身份证 */ TEMPORARY = 'temporary', /** 外国人永久居留证 */ FOREIGN_PERMANENT = 'foreign_permanent', /** 港澳台居民居住证 */ HMT_RESIDENT = 'hmt_resident', /** 未知类型 */ UNKNOWN = 'unknown' } /** * 证件边缘信息 */ export interface IDCardEdge { /** 左上角坐标 */ topLeft: { x: number; y: number }; /** 右上角坐标 */ topRight: { x: number; y: number }; /** 右下角坐标 */ bottomRight: { x: number; y: number }; /** 左下角坐标 */ bottomLeft: { x: number; y: number }; } /** * 身份证信息 */ export interface IDCardInfo { nationality?: string; issuingAuthority?: string; validPeriod?: string; /** 身份证类型 */ type?: IDCardType; /** 身份证边缘信息 */ edge?: IDCardEdge; /** 姓名 */ name?: string; /** 性别 */ gender?: string; /** 民族 */ ethnicity?: string; /** 出生日期,格式: YYYY-MM-DD */ birthDate?: string; /** 地址 */ address?: string; /** 身份证号码 */ idNumber?: string; /** 签发机关 */ issueAuthority?: string; /** 有效期起始日期,格式: YYYY-MM-DD */ validFrom?: string; /** 有效期截止日期,格式: YYYY-MM-DD */ validTo?: string; /** 相片区域坐标 */ photoRegion?: { x: number; y: number; width: number; height: number; }; /** 原始身份证图像 */ image?: ImageData; /** 置信度 */ confidence?: number; /** 防伪检测结果 */ antiFake?: { /** 是否通过防伪检测 */ passed: boolean; /** 防伪检测分数 */ score: number; /** 防伪特征检测结果 */ features?: { /** 荧光油墨 */ fluorescent?: boolean; /** 微缩文字 */ microtext?: boolean; /** 光变图案 */ opticalVariable?: boolean; /** 纹理 */ texture?: boolean; /** 暗记 */ watermark?: boolean; }; }; } /** * 身份证模块配置选项 */ export interface IDCardModuleOptions { /** 是否启用模块 */ enabled?: boolean; /** 检测器配置 */ detector?: { /** 最小置信度 */ minConfidence?: number; /** 是否启用OCR识别 */ enableOCR?: boolean; /** 是否启用防伪检测 */ enableAntiFake?: boolean; }; /** OCR处理器配置 */ ocr?: { /** 是否使用Web Worker处理OCR */ useWorker?: boolean; /** 最大图像尺寸 */ maxImageDimension?: number; /** 亮度调整 */ brightness?: number; /** 对比度调整 */ contrast?: number; }; /** 防伪检测配置 */ antiFake?: { /** 防伪检测灵敏度 */ sensitivity?: number; /** 最小置信度 */ minConfidence?: number; }; } /** * 身份证验证结果 */ export interface IDCardVerificationResult { /** 是否验证通过 */ isValid: boolean; /** 验证分数 */ score: number; /** 失败原因 */ failureReason?: string; /** 验证详情 */ details?: { /** 身份证号码是否有效 */ idNumberValid?: boolean; /** 签发日期是否有效 */ issueDateValid?: boolean; /** 有效期是否过期 */ isExpired?: boolean; /** 防伪检测是否通过 */ antiFakePassed?: boolean; }; } /** * 图像处理配置选项 */ export interface ImageProcessOptions { /** 是否进行预处理 */ preprocess?: boolean; /** 是否校正图像 */ correctPerspective?: boolean; /** 是否增强图像 */ enhance?: boolean; /** 是否去噪 */ denoise?: boolean; /** 是否二值化 */ binarize?: boolean; }