id-scanner-lib
Version:
Browser-based ID card, QR code, and face recognition scanner with liveness detection
182 lines (181 loc) • 4.42 kB
TypeScript
/**
* @file 身份证模块类型定义
* @description 身份证模块相关的类型和接口定义
* @module modules/id-card/types
*/
/**
* 身份证类型枚举
*/
export declare 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;
}