UNPKG

id-scanner-lib

Version:

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

125 lines (114 loc) 2.52 kB
/** * @file Scanner Errors * @description Error classes for Scanner * @module core/errors */ /** * Scanner specific error */ export class ScannerError extends Error { /** * Error code */ public code: string; /** * Module that threw the error */ public module?: string; /** * Create a ScannerError * @param message Error message * @param code Error code * @param module Module name */ constructor(message: string, code: string, module?: string) { super(message); this.name = 'ScannerError'; this.code = code; this.module = module; } } /** * Camera access error */ export class CameraAccessError extends Error { constructor(message = 'Camera access denied') { super(message); this.name = 'CameraAccessError'; } } /** * Device error */ export class DeviceError extends Error { constructor(message = 'Device error') { super(message); this.name = 'DeviceError'; } } /** * Resource load error */ export class ResourceLoadError extends Error { public readonly id?: string; constructor(message = 'Failed to load resource', id?: string) { super(message); this.name = 'ResourceLoadError'; this.id = id; } } /** * Face detection error */ export class FaceDetectionError extends Error { constructor(message = 'Face detection failed') { super(message); this.name = 'FaceDetectionError'; } } /** * Face comparison error */ export class FaceComparisonError extends Error { constructor(message = 'Face comparison failed') { super(message); this.name = 'FaceComparisonError'; } } /** * Initialization error */ export class InitializationError extends Error { constructor(message = 'Initialization failed') { super(message); this.name = 'InitializationError'; } } /** * Liveness detection error */ export class LivenessDetectionError extends Error { constructor(message = 'Liveness detection failed') { super(message); this.name = 'LivenessDetectionError'; } } /** * Error codes for Scanner */ export const ErrorCodes = { /** Scanner not initialized */ NOT_INITIALIZED: 'SCANNER_001', /** Module not found */ MODULE_NOT_FOUND: 'SCANNER_002', /** Detection failed */ DETECTION_FAILED: 'SCANNER_003', /** Camera access denied */ CAMERA_ACCESS_DENIED: 'CAMERA_001', /** Camera not available */ CAMERA_NOT_AVAILABLE: 'CAMERA_002', } as const; /** * Type for error codes */ export type ErrorCode = typeof ErrorCodes[keyof typeof ErrorCodes];