@moveris/shared 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -263,7 +263,7 @@ interface FrameQualityResult {
263
263
  rejectionReason?: 'blur' | 'backlit' | 'low_light' | 'partial_face' | 'no_face' | 'too_close' | 'too_far' | 'misaligned';
264
264
  }
265
265
  declare const DEFAULT_BLUR_THRESHOLD = 100;
266
- declare const BLUR_THRESHOLD_MOBILE = 150;
266
+ declare const BLUR_THRESHOLD_MOBILE = 60;
267
267
  declare const BACKLIT_RATIO_THRESHOLD = 0.6;
268
268
  declare const LOW_LIGHT_THRESHOLD = 50;
269
269
  declare const MIN_FACE_TOP_MARGIN = 0.1;
@@ -286,6 +286,8 @@ declare function rgbaToGrayscale(rgbaPixels: Uint8ClampedArray | number[]): numb
286
286
  declare function calculateBrightness(rgbaPixels: Uint8ClampedArray | number[]): number;
287
287
  declare function analyzeLighting(faceBrightness: number, backgroundBrightness: number): LightingAnalysis;
288
288
  declare function isFaceFullyVisible(boundingBox: FaceBoundingBox, frameWidth: number, frameHeight: number): FaceVisibilityResult;
289
+ declare const OVAL_REGION_DESKTOP: OvalRegion;
290
+ declare const OVAL_REGION_MOBILE: OvalRegion;
289
291
  declare const DEFAULT_OVAL_REGION: OvalRegion;
290
292
  declare function isFaceInOval(faceBox: FaceBoundingBox, frameWidth: number, frameHeight: number, oval?: OvalRegion, tolerance?: number): FaceInOvalResult;
291
293
  declare function calculateFaceAlignment(boundingBox: FaceBoundingBox, frameWidth: number, frameHeight: number): FaceAlignmentResult;
@@ -619,8 +621,8 @@ declare function getApiErrorMessage(code: string | undefined, message?: string,
619
621
  declare function isRetryableError(code: string | undefined): boolean;
620
622
 
621
623
  declare const ALIGNMENT_THRESHOLD_CAPTURE = 0.6;
622
- declare const ALIGNMENT_THRESHOLD_POOR = 0.5;
623
- declare const ALIGNMENT_THRESHOLD_GOOD = 0.5;
624
+ declare const ALIGNMENT_THRESHOLD_POOR = 0.6;
625
+ declare const ALIGNMENT_THRESHOLD_GOOD = 0.6;
624
626
  declare const ALIGNMENT_THRESHOLD_PERFECT = 0.85;
625
627
  type OvalGuideState = 'no_face' | 'poor' | 'good' | 'perfect';
626
628
  declare const OVAL_GUIDE_COLORS: {
@@ -762,4 +764,4 @@ declare function analyzeEyeRegionContrast(pixels: Uint8Array | Uint8ClampedArray
762
764
  declare function detectSpecularHighlights(pixels: Uint8Array | Uint8ClampedArray, threshold?: number): number;
763
765
  declare function checkEyeRegionQuality(pixels: Uint8Array | Uint8ClampedArray, thresholds?: EyeQualityThresholds): EyeRegionQuality;
764
766
 
765
- export { ALIGNMENT_THRESHOLD_CAPTURE, ALIGNMENT_THRESHOLD_GOOD, ALIGNMENT_THRESHOLD_PERFECT, ALIGNMENT_THRESHOLD_POOR, API_ENDPOINTS, API_ERROR_CODES, API_PATHS, AUTH_CONFIG, type ApiErrorCode, BACKLIT_RATIO_THRESHOLD, BLUR_THRESHOLD_MOBILE, BaseFrameCollector, type BlurAnalysis, type CaptureQualityState, type CapturedFrame, type CropData, DEFAULT_BLUR_THRESHOLD, DEFAULT_ENDPOINT, DEFAULT_FACE_DETECTION_TIERS, DEFAULT_GAZE_THRESHOLDS, DEFAULT_HAND_OCCLUSION_CONFIG, DEFAULT_LIVENESS_CONFIG, DEFAULT_LOCALE, DEFAULT_OVAL_REGION, DEFAULT_STABILIZER_CONFIG, DEFAULT_STATUS_MESSAGES, type DetectionResult, type DetectionSummary, type DetectorConfig, ERROR_MESSAGES, ERROR_MESSAGES_ES, ES_LOCALE, EYE_LANDMARK_INDICES, EYE_QUALITY_THRESHOLDS, type ErrorResponse, type EyeQualityThresholds, type EyeRegionBounds, type EyeRegionQuality, type EyeRegionsBounds, FACE_CENTER_VERTICAL_OFFSET, FACE_CROP_OUTPUT_SIZE, FEEDBACK_MESSAGES, FRAME_BUFFER_CONFIG, FRAME_CONFIG, type FaceAlignmentResult, type FaceBoundingBox, type FaceDetectionTiers, type FaceInOvalResult, type FaceLandmarkPoint, type FaceVisibilityResult, type FastCheckCropsRequest, type FastCheckModel, type FastCheckRequest, type FastCheckResponse, type FastCheckStreamRequest, type FastCheckStreamResponse, type FeedbackLocale, type FeedbackMessageKey, type Frame, FrameBuffer, type FrameData, type FrameQualityResult, FrameQueue, type FrameSource, GOOD_ALIGNMENT, type GazeThresholds, HIGH_ALIGNMENT, HYBRID_MODEL_CONFIGS, type HandOcclusionConfig, type HeadPose, type HealthResponse, type Hybrid150CheckRequest, type Hybrid50CheckRequest, type HybridCheckRequest, type HybridCheckResponse, type HybridFrameData, type HybridModelConfig, IDEAL_CROP_MULTIPLIER, type JobStatus, type JobStatusResponse, LANDMARK_INDEX, LANDMARK_MAX_BOUND, LANDMARK_MIN_BOUND, LOW_LIGHT_THRESHOLD, type LandmarkValidationResult, type LightingAnalysis, LivenessApiError, type LivenessCallbacks, LivenessClient, type LivenessClientConfig, type LivenessConfig, type LivenessResult, type LivenessState, MAX_CROP_MULTIPLIER, MAX_FACE_PERCENTAGE_IN_CROP, MAX_FACE_RATIO, MIN_CAPTURE_ALIGNMENT, MIN_CROP_MULTIPLIER, MIN_FACE_BOTTOM_MARGIN, MIN_FACE_RATIO, MIN_FACE_SIDE_MARGIN, MIN_FACE_TOP_MARGIN, MIN_LANDMARK_COUNT, MODEL_CONFIGS, type ModelConfig, type ModelEntry, type ModelType, type ModelsResponse, OVAL_GUIDE_COLORS, OVAL_GUIDE_STYLES, type OnErrorCallback, type OnFrameCapturedCallback, type OnProgressCallback, type OnResultCallback, type OnStateChangeCallback, type OvalGuideState, type OvalRegion, type QueueStatsResponse, RETRY_CONFIG, type RetryOptions, type StabilizationProgress, type StabilizationResult, type StabilizerConfig, type StatusMessageKey, type StreamingStatus, TARGET_FACE_PERCENTAGE_IN_CROP, type Verdict, type VerifyRequest, type VerifyResponse, type VideoFrameMetadata, analyzeBlur, analyzeEyeRegionBrightness, analyzeEyeRegionContrast, analyzeLighting, calculateAdaptiveCropMultiplier, calculateBrightness, calculateFaceAlignment, calculateFaceCropRegion, canCaptureFrame, checkEyeRegionQuality, checkFrameQuality, decodeBase64, detectSpecularHighlights, encodeBase64, generateSessionId, getActiveModels, getApiErrorMessage, getCaptureQualityFeedback, getEyeRegionBounds, getFeedbackMessage, getMinFramesForModel, getOvalGuideState, getStatusMessage, hasEnoughFrames, isDeprecatedModel, isFaceCropFullyInFrame, isFaceFullyVisible, isFaceInOval, isRetryableError, retryWithBackoff, rgbaToGrayscale, sleep, toFrameData, toHybridFrameData, toLivenessResult, toLivenessResultFromStream, validateApiKey, validateFaceLandmarks, validateFrameCount, validateFrameData, validateFrameIndex, validateTimestamp, validateUUID, validateUrl };
767
+ export { ALIGNMENT_THRESHOLD_CAPTURE, ALIGNMENT_THRESHOLD_GOOD, ALIGNMENT_THRESHOLD_PERFECT, ALIGNMENT_THRESHOLD_POOR, API_ENDPOINTS, API_ERROR_CODES, API_PATHS, AUTH_CONFIG, type ApiErrorCode, BACKLIT_RATIO_THRESHOLD, BLUR_THRESHOLD_MOBILE, BaseFrameCollector, type BlurAnalysis, type CaptureQualityState, type CapturedFrame, type CropData, DEFAULT_BLUR_THRESHOLD, DEFAULT_ENDPOINT, DEFAULT_FACE_DETECTION_TIERS, DEFAULT_GAZE_THRESHOLDS, DEFAULT_HAND_OCCLUSION_CONFIG, DEFAULT_LIVENESS_CONFIG, DEFAULT_LOCALE, DEFAULT_OVAL_REGION, DEFAULT_STABILIZER_CONFIG, DEFAULT_STATUS_MESSAGES, type DetectionResult, type DetectionSummary, type DetectorConfig, ERROR_MESSAGES, ERROR_MESSAGES_ES, ES_LOCALE, EYE_LANDMARK_INDICES, EYE_QUALITY_THRESHOLDS, type ErrorResponse, type EyeQualityThresholds, type EyeRegionBounds, type EyeRegionQuality, type EyeRegionsBounds, FACE_CENTER_VERTICAL_OFFSET, FACE_CROP_OUTPUT_SIZE, FEEDBACK_MESSAGES, FRAME_BUFFER_CONFIG, FRAME_CONFIG, type FaceAlignmentResult, type FaceBoundingBox, type FaceDetectionTiers, type FaceInOvalResult, type FaceLandmarkPoint, type FaceVisibilityResult, type FastCheckCropsRequest, type FastCheckModel, type FastCheckRequest, type FastCheckResponse, type FastCheckStreamRequest, type FastCheckStreamResponse, type FeedbackLocale, type FeedbackMessageKey, type Frame, FrameBuffer, type FrameData, type FrameQualityResult, FrameQueue, type FrameSource, GOOD_ALIGNMENT, type GazeThresholds, HIGH_ALIGNMENT, HYBRID_MODEL_CONFIGS, type HandOcclusionConfig, type HeadPose, type HealthResponse, type Hybrid150CheckRequest, type Hybrid50CheckRequest, type HybridCheckRequest, type HybridCheckResponse, type HybridFrameData, type HybridModelConfig, IDEAL_CROP_MULTIPLIER, type JobStatus, type JobStatusResponse, LANDMARK_INDEX, LANDMARK_MAX_BOUND, LANDMARK_MIN_BOUND, LOW_LIGHT_THRESHOLD, type LandmarkValidationResult, type LightingAnalysis, LivenessApiError, type LivenessCallbacks, LivenessClient, type LivenessClientConfig, type LivenessConfig, type LivenessResult, type LivenessState, MAX_CROP_MULTIPLIER, MAX_FACE_PERCENTAGE_IN_CROP, MAX_FACE_RATIO, MIN_CAPTURE_ALIGNMENT, MIN_CROP_MULTIPLIER, MIN_FACE_BOTTOM_MARGIN, MIN_FACE_RATIO, MIN_FACE_SIDE_MARGIN, MIN_FACE_TOP_MARGIN, MIN_LANDMARK_COUNT, MODEL_CONFIGS, type ModelConfig, type ModelEntry, type ModelType, type ModelsResponse, OVAL_GUIDE_COLORS, OVAL_GUIDE_STYLES, OVAL_REGION_DESKTOP, OVAL_REGION_MOBILE, type OnErrorCallback, type OnFrameCapturedCallback, type OnProgressCallback, type OnResultCallback, type OnStateChangeCallback, type OvalGuideState, type OvalRegion, type QueueStatsResponse, RETRY_CONFIG, type RetryOptions, type StabilizationProgress, type StabilizationResult, type StabilizerConfig, type StatusMessageKey, type StreamingStatus, TARGET_FACE_PERCENTAGE_IN_CROP, type Verdict, type VerifyRequest, type VerifyResponse, type VideoFrameMetadata, analyzeBlur, analyzeEyeRegionBrightness, analyzeEyeRegionContrast, analyzeLighting, calculateAdaptiveCropMultiplier, calculateBrightness, calculateFaceAlignment, calculateFaceCropRegion, canCaptureFrame, checkEyeRegionQuality, checkFrameQuality, decodeBase64, detectSpecularHighlights, encodeBase64, generateSessionId, getActiveModels, getApiErrorMessage, getCaptureQualityFeedback, getEyeRegionBounds, getFeedbackMessage, getMinFramesForModel, getOvalGuideState, getStatusMessage, hasEnoughFrames, isDeprecatedModel, isFaceCropFullyInFrame, isFaceFullyVisible, isFaceInOval, isRetryableError, retryWithBackoff, rgbaToGrayscale, sleep, toFrameData, toHybridFrameData, toLivenessResult, toLivenessResultFromStream, validateApiKey, validateFaceLandmarks, validateFrameCount, validateFrameData, validateFrameIndex, validateTimestamp, validateUUID, validateUrl };
package/dist/index.d.ts CHANGED
@@ -263,7 +263,7 @@ interface FrameQualityResult {
263
263
  rejectionReason?: 'blur' | 'backlit' | 'low_light' | 'partial_face' | 'no_face' | 'too_close' | 'too_far' | 'misaligned';
264
264
  }
265
265
  declare const DEFAULT_BLUR_THRESHOLD = 100;
266
- declare const BLUR_THRESHOLD_MOBILE = 150;
266
+ declare const BLUR_THRESHOLD_MOBILE = 60;
267
267
  declare const BACKLIT_RATIO_THRESHOLD = 0.6;
268
268
  declare const LOW_LIGHT_THRESHOLD = 50;
269
269
  declare const MIN_FACE_TOP_MARGIN = 0.1;
@@ -286,6 +286,8 @@ declare function rgbaToGrayscale(rgbaPixels: Uint8ClampedArray | number[]): numb
286
286
  declare function calculateBrightness(rgbaPixels: Uint8ClampedArray | number[]): number;
287
287
  declare function analyzeLighting(faceBrightness: number, backgroundBrightness: number): LightingAnalysis;
288
288
  declare function isFaceFullyVisible(boundingBox: FaceBoundingBox, frameWidth: number, frameHeight: number): FaceVisibilityResult;
289
+ declare const OVAL_REGION_DESKTOP: OvalRegion;
290
+ declare const OVAL_REGION_MOBILE: OvalRegion;
289
291
  declare const DEFAULT_OVAL_REGION: OvalRegion;
290
292
  declare function isFaceInOval(faceBox: FaceBoundingBox, frameWidth: number, frameHeight: number, oval?: OvalRegion, tolerance?: number): FaceInOvalResult;
291
293
  declare function calculateFaceAlignment(boundingBox: FaceBoundingBox, frameWidth: number, frameHeight: number): FaceAlignmentResult;
@@ -619,8 +621,8 @@ declare function getApiErrorMessage(code: string | undefined, message?: string,
619
621
  declare function isRetryableError(code: string | undefined): boolean;
620
622
 
621
623
  declare const ALIGNMENT_THRESHOLD_CAPTURE = 0.6;
622
- declare const ALIGNMENT_THRESHOLD_POOR = 0.5;
623
- declare const ALIGNMENT_THRESHOLD_GOOD = 0.5;
624
+ declare const ALIGNMENT_THRESHOLD_POOR = 0.6;
625
+ declare const ALIGNMENT_THRESHOLD_GOOD = 0.6;
624
626
  declare const ALIGNMENT_THRESHOLD_PERFECT = 0.85;
625
627
  type OvalGuideState = 'no_face' | 'poor' | 'good' | 'perfect';
626
628
  declare const OVAL_GUIDE_COLORS: {
@@ -762,4 +764,4 @@ declare function analyzeEyeRegionContrast(pixels: Uint8Array | Uint8ClampedArray
762
764
  declare function detectSpecularHighlights(pixels: Uint8Array | Uint8ClampedArray, threshold?: number): number;
763
765
  declare function checkEyeRegionQuality(pixels: Uint8Array | Uint8ClampedArray, thresholds?: EyeQualityThresholds): EyeRegionQuality;
764
766
 
765
- export { ALIGNMENT_THRESHOLD_CAPTURE, ALIGNMENT_THRESHOLD_GOOD, ALIGNMENT_THRESHOLD_PERFECT, ALIGNMENT_THRESHOLD_POOR, API_ENDPOINTS, API_ERROR_CODES, API_PATHS, AUTH_CONFIG, type ApiErrorCode, BACKLIT_RATIO_THRESHOLD, BLUR_THRESHOLD_MOBILE, BaseFrameCollector, type BlurAnalysis, type CaptureQualityState, type CapturedFrame, type CropData, DEFAULT_BLUR_THRESHOLD, DEFAULT_ENDPOINT, DEFAULT_FACE_DETECTION_TIERS, DEFAULT_GAZE_THRESHOLDS, DEFAULT_HAND_OCCLUSION_CONFIG, DEFAULT_LIVENESS_CONFIG, DEFAULT_LOCALE, DEFAULT_OVAL_REGION, DEFAULT_STABILIZER_CONFIG, DEFAULT_STATUS_MESSAGES, type DetectionResult, type DetectionSummary, type DetectorConfig, ERROR_MESSAGES, ERROR_MESSAGES_ES, ES_LOCALE, EYE_LANDMARK_INDICES, EYE_QUALITY_THRESHOLDS, type ErrorResponse, type EyeQualityThresholds, type EyeRegionBounds, type EyeRegionQuality, type EyeRegionsBounds, FACE_CENTER_VERTICAL_OFFSET, FACE_CROP_OUTPUT_SIZE, FEEDBACK_MESSAGES, FRAME_BUFFER_CONFIG, FRAME_CONFIG, type FaceAlignmentResult, type FaceBoundingBox, type FaceDetectionTiers, type FaceInOvalResult, type FaceLandmarkPoint, type FaceVisibilityResult, type FastCheckCropsRequest, type FastCheckModel, type FastCheckRequest, type FastCheckResponse, type FastCheckStreamRequest, type FastCheckStreamResponse, type FeedbackLocale, type FeedbackMessageKey, type Frame, FrameBuffer, type FrameData, type FrameQualityResult, FrameQueue, type FrameSource, GOOD_ALIGNMENT, type GazeThresholds, HIGH_ALIGNMENT, HYBRID_MODEL_CONFIGS, type HandOcclusionConfig, type HeadPose, type HealthResponse, type Hybrid150CheckRequest, type Hybrid50CheckRequest, type HybridCheckRequest, type HybridCheckResponse, type HybridFrameData, type HybridModelConfig, IDEAL_CROP_MULTIPLIER, type JobStatus, type JobStatusResponse, LANDMARK_INDEX, LANDMARK_MAX_BOUND, LANDMARK_MIN_BOUND, LOW_LIGHT_THRESHOLD, type LandmarkValidationResult, type LightingAnalysis, LivenessApiError, type LivenessCallbacks, LivenessClient, type LivenessClientConfig, type LivenessConfig, type LivenessResult, type LivenessState, MAX_CROP_MULTIPLIER, MAX_FACE_PERCENTAGE_IN_CROP, MAX_FACE_RATIO, MIN_CAPTURE_ALIGNMENT, MIN_CROP_MULTIPLIER, MIN_FACE_BOTTOM_MARGIN, MIN_FACE_RATIO, MIN_FACE_SIDE_MARGIN, MIN_FACE_TOP_MARGIN, MIN_LANDMARK_COUNT, MODEL_CONFIGS, type ModelConfig, type ModelEntry, type ModelType, type ModelsResponse, OVAL_GUIDE_COLORS, OVAL_GUIDE_STYLES, type OnErrorCallback, type OnFrameCapturedCallback, type OnProgressCallback, type OnResultCallback, type OnStateChangeCallback, type OvalGuideState, type OvalRegion, type QueueStatsResponse, RETRY_CONFIG, type RetryOptions, type StabilizationProgress, type StabilizationResult, type StabilizerConfig, type StatusMessageKey, type StreamingStatus, TARGET_FACE_PERCENTAGE_IN_CROP, type Verdict, type VerifyRequest, type VerifyResponse, type VideoFrameMetadata, analyzeBlur, analyzeEyeRegionBrightness, analyzeEyeRegionContrast, analyzeLighting, calculateAdaptiveCropMultiplier, calculateBrightness, calculateFaceAlignment, calculateFaceCropRegion, canCaptureFrame, checkEyeRegionQuality, checkFrameQuality, decodeBase64, detectSpecularHighlights, encodeBase64, generateSessionId, getActiveModels, getApiErrorMessage, getCaptureQualityFeedback, getEyeRegionBounds, getFeedbackMessage, getMinFramesForModel, getOvalGuideState, getStatusMessage, hasEnoughFrames, isDeprecatedModel, isFaceCropFullyInFrame, isFaceFullyVisible, isFaceInOval, isRetryableError, retryWithBackoff, rgbaToGrayscale, sleep, toFrameData, toHybridFrameData, toLivenessResult, toLivenessResultFromStream, validateApiKey, validateFaceLandmarks, validateFrameCount, validateFrameData, validateFrameIndex, validateTimestamp, validateUUID, validateUrl };
767
+ export { ALIGNMENT_THRESHOLD_CAPTURE, ALIGNMENT_THRESHOLD_GOOD, ALIGNMENT_THRESHOLD_PERFECT, ALIGNMENT_THRESHOLD_POOR, API_ENDPOINTS, API_ERROR_CODES, API_PATHS, AUTH_CONFIG, type ApiErrorCode, BACKLIT_RATIO_THRESHOLD, BLUR_THRESHOLD_MOBILE, BaseFrameCollector, type BlurAnalysis, type CaptureQualityState, type CapturedFrame, type CropData, DEFAULT_BLUR_THRESHOLD, DEFAULT_ENDPOINT, DEFAULT_FACE_DETECTION_TIERS, DEFAULT_GAZE_THRESHOLDS, DEFAULT_HAND_OCCLUSION_CONFIG, DEFAULT_LIVENESS_CONFIG, DEFAULT_LOCALE, DEFAULT_OVAL_REGION, DEFAULT_STABILIZER_CONFIG, DEFAULT_STATUS_MESSAGES, type DetectionResult, type DetectionSummary, type DetectorConfig, ERROR_MESSAGES, ERROR_MESSAGES_ES, ES_LOCALE, EYE_LANDMARK_INDICES, EYE_QUALITY_THRESHOLDS, type ErrorResponse, type EyeQualityThresholds, type EyeRegionBounds, type EyeRegionQuality, type EyeRegionsBounds, FACE_CENTER_VERTICAL_OFFSET, FACE_CROP_OUTPUT_SIZE, FEEDBACK_MESSAGES, FRAME_BUFFER_CONFIG, FRAME_CONFIG, type FaceAlignmentResult, type FaceBoundingBox, type FaceDetectionTiers, type FaceInOvalResult, type FaceLandmarkPoint, type FaceVisibilityResult, type FastCheckCropsRequest, type FastCheckModel, type FastCheckRequest, type FastCheckResponse, type FastCheckStreamRequest, type FastCheckStreamResponse, type FeedbackLocale, type FeedbackMessageKey, type Frame, FrameBuffer, type FrameData, type FrameQualityResult, FrameQueue, type FrameSource, GOOD_ALIGNMENT, type GazeThresholds, HIGH_ALIGNMENT, HYBRID_MODEL_CONFIGS, type HandOcclusionConfig, type HeadPose, type HealthResponse, type Hybrid150CheckRequest, type Hybrid50CheckRequest, type HybridCheckRequest, type HybridCheckResponse, type HybridFrameData, type HybridModelConfig, IDEAL_CROP_MULTIPLIER, type JobStatus, type JobStatusResponse, LANDMARK_INDEX, LANDMARK_MAX_BOUND, LANDMARK_MIN_BOUND, LOW_LIGHT_THRESHOLD, type LandmarkValidationResult, type LightingAnalysis, LivenessApiError, type LivenessCallbacks, LivenessClient, type LivenessClientConfig, type LivenessConfig, type LivenessResult, type LivenessState, MAX_CROP_MULTIPLIER, MAX_FACE_PERCENTAGE_IN_CROP, MAX_FACE_RATIO, MIN_CAPTURE_ALIGNMENT, MIN_CROP_MULTIPLIER, MIN_FACE_BOTTOM_MARGIN, MIN_FACE_RATIO, MIN_FACE_SIDE_MARGIN, MIN_FACE_TOP_MARGIN, MIN_LANDMARK_COUNT, MODEL_CONFIGS, type ModelConfig, type ModelEntry, type ModelType, type ModelsResponse, OVAL_GUIDE_COLORS, OVAL_GUIDE_STYLES, OVAL_REGION_DESKTOP, OVAL_REGION_MOBILE, type OnErrorCallback, type OnFrameCapturedCallback, type OnProgressCallback, type OnResultCallback, type OnStateChangeCallback, type OvalGuideState, type OvalRegion, type QueueStatsResponse, RETRY_CONFIG, type RetryOptions, type StabilizationProgress, type StabilizationResult, type StabilizerConfig, type StatusMessageKey, type StreamingStatus, TARGET_FACE_PERCENTAGE_IN_CROP, type Verdict, type VerifyRequest, type VerifyResponse, type VideoFrameMetadata, analyzeBlur, analyzeEyeRegionBrightness, analyzeEyeRegionContrast, analyzeLighting, calculateAdaptiveCropMultiplier, calculateBrightness, calculateFaceAlignment, calculateFaceCropRegion, canCaptureFrame, checkEyeRegionQuality, checkFrameQuality, decodeBase64, detectSpecularHighlights, encodeBase64, generateSessionId, getActiveModels, getApiErrorMessage, getCaptureQualityFeedback, getEyeRegionBounds, getFeedbackMessage, getMinFramesForModel, getOvalGuideState, getStatusMessage, hasEnoughFrames, isDeprecatedModel, isFaceCropFullyInFrame, isFaceFullyVisible, isFaceInOval, isRetryableError, retryWithBackoff, rgbaToGrayscale, sleep, toFrameData, toHybridFrameData, toLivenessResult, toLivenessResultFromStream, validateApiKey, validateFaceLandmarks, validateFrameCount, validateFrameData, validateFrameIndex, validateTimestamp, validateUUID, validateUrl };
package/dist/index.js CHANGED
@@ -76,6 +76,8 @@ __export(index_exports, {
76
76
  MODEL_CONFIGS: () => MODEL_CONFIGS,
77
77
  OVAL_GUIDE_COLORS: () => OVAL_GUIDE_COLORS,
78
78
  OVAL_GUIDE_STYLES: () => OVAL_GUIDE_STYLES,
79
+ OVAL_REGION_DESKTOP: () => OVAL_REGION_DESKTOP,
80
+ OVAL_REGION_MOBILE: () => OVAL_REGION_MOBILE,
79
81
  RETRY_CONFIG: () => RETRY_CONFIG,
80
82
  TARGET_FACE_PERCENTAGE_IN_CROP: () => TARGET_FACE_PERCENTAGE_IN_CROP,
81
83
  analyzeBlur: () => analyzeBlur,
@@ -1176,8 +1178,8 @@ function isRetryableError(code) {
1176
1178
 
1177
1179
  // src/constants/feedback.ts
1178
1180
  var ALIGNMENT_THRESHOLD_CAPTURE = 0.6;
1179
- var ALIGNMENT_THRESHOLD_POOR = 0.5;
1180
- var ALIGNMENT_THRESHOLD_GOOD = 0.5;
1181
+ var ALIGNMENT_THRESHOLD_POOR = 0.6;
1182
+ var ALIGNMENT_THRESHOLD_GOOD = 0.6;
1181
1183
  var ALIGNMENT_THRESHOLD_PERFECT = 0.85;
1182
1184
  var OVAL_GUIDE_COLORS = {
1183
1185
  no_face: "#ef4444",
@@ -1428,7 +1430,7 @@ function decodeBase64(base64) {
1428
1430
 
1429
1431
  // src/utils/frameAnalysis.ts
1430
1432
  var DEFAULT_BLUR_THRESHOLD = 100;
1431
- var BLUR_THRESHOLD_MOBILE = 150;
1433
+ var BLUR_THRESHOLD_MOBILE = 60;
1432
1434
  var BACKLIT_RATIO_THRESHOLD = 0.6;
1433
1435
  var LOW_LIGHT_THRESHOLD = 50;
1434
1436
  var MIN_FACE_TOP_MARGIN = 0.1;
@@ -1531,14 +1533,21 @@ function isFaceFullyVisible(boundingBox, frameWidth, frameHeight) {
1531
1533
  }
1532
1534
  return { visible: true };
1533
1535
  }
1534
- var DEFAULT_OVAL_REGION = {
1536
+ var OVAL_REGION_DESKTOP = {
1535
1537
  centerX: 0.5,
1536
1538
  centerY: 0.5,
1537
1539
  width: 0.36,
1538
- // 36% of frame width (+20%)
1539
1540
  height: 0.48
1540
- // 36% * (4/3) = 48% of frame height (+20%)
1541
+ // 0.36 * (4/3)
1541
1542
  };
1543
+ var OVAL_REGION_MOBILE = {
1544
+ centerX: 0.5,
1545
+ centerY: 0.5,
1546
+ width: 0.55,
1547
+ height: 0.73
1548
+ // 0.55 * (4/3)
1549
+ };
1550
+ var DEFAULT_OVAL_REGION = OVAL_REGION_DESKTOP;
1542
1551
  function isFaceInOval(faceBox, frameWidth, frameHeight, oval = DEFAULT_OVAL_REGION, tolerance = 0.3) {
1543
1552
  const faceCenterX = (faceBox.originX + faceBox.width / 2) / frameWidth;
1544
1553
  const faceCenterY = (faceBox.originY + faceBox.height / 2) / frameHeight;
@@ -1962,6 +1971,8 @@ function checkEyeRegionQuality(pixels, thresholds = EYE_QUALITY_THRESHOLDS) {
1962
1971
  MODEL_CONFIGS,
1963
1972
  OVAL_GUIDE_COLORS,
1964
1973
  OVAL_GUIDE_STYLES,
1974
+ OVAL_REGION_DESKTOP,
1975
+ OVAL_REGION_MOBILE,
1965
1976
  RETRY_CONFIG,
1966
1977
  TARGET_FACE_PERCENTAGE_IN_CROP,
1967
1978
  analyzeBlur,
package/dist/index.mjs CHANGED
@@ -1049,8 +1049,8 @@ function isRetryableError(code) {
1049
1049
 
1050
1050
  // src/constants/feedback.ts
1051
1051
  var ALIGNMENT_THRESHOLD_CAPTURE = 0.6;
1052
- var ALIGNMENT_THRESHOLD_POOR = 0.5;
1053
- var ALIGNMENT_THRESHOLD_GOOD = 0.5;
1052
+ var ALIGNMENT_THRESHOLD_POOR = 0.6;
1053
+ var ALIGNMENT_THRESHOLD_GOOD = 0.6;
1054
1054
  var ALIGNMENT_THRESHOLD_PERFECT = 0.85;
1055
1055
  var OVAL_GUIDE_COLORS = {
1056
1056
  no_face: "#ef4444",
@@ -1301,7 +1301,7 @@ function decodeBase64(base64) {
1301
1301
 
1302
1302
  // src/utils/frameAnalysis.ts
1303
1303
  var DEFAULT_BLUR_THRESHOLD = 100;
1304
- var BLUR_THRESHOLD_MOBILE = 150;
1304
+ var BLUR_THRESHOLD_MOBILE = 60;
1305
1305
  var BACKLIT_RATIO_THRESHOLD = 0.6;
1306
1306
  var LOW_LIGHT_THRESHOLD = 50;
1307
1307
  var MIN_FACE_TOP_MARGIN = 0.1;
@@ -1404,14 +1404,21 @@ function isFaceFullyVisible(boundingBox, frameWidth, frameHeight) {
1404
1404
  }
1405
1405
  return { visible: true };
1406
1406
  }
1407
- var DEFAULT_OVAL_REGION = {
1407
+ var OVAL_REGION_DESKTOP = {
1408
1408
  centerX: 0.5,
1409
1409
  centerY: 0.5,
1410
1410
  width: 0.36,
1411
- // 36% of frame width (+20%)
1412
1411
  height: 0.48
1413
- // 36% * (4/3) = 48% of frame height (+20%)
1412
+ // 0.36 * (4/3)
1414
1413
  };
1414
+ var OVAL_REGION_MOBILE = {
1415
+ centerX: 0.5,
1416
+ centerY: 0.5,
1417
+ width: 0.55,
1418
+ height: 0.73
1419
+ // 0.55 * (4/3)
1420
+ };
1421
+ var DEFAULT_OVAL_REGION = OVAL_REGION_DESKTOP;
1415
1422
  function isFaceInOval(faceBox, frameWidth, frameHeight, oval = DEFAULT_OVAL_REGION, tolerance = 0.3) {
1416
1423
  const faceCenterX = (faceBox.originX + faceBox.width / 2) / frameWidth;
1417
1424
  const faceCenterY = (faceBox.originY + faceBox.height / 2) / frameHeight;
@@ -1834,6 +1841,8 @@ export {
1834
1841
  MODEL_CONFIGS,
1835
1842
  OVAL_GUIDE_COLORS,
1836
1843
  OVAL_GUIDE_STYLES,
1844
+ OVAL_REGION_DESKTOP,
1845
+ OVAL_REGION_MOBILE,
1837
1846
  RETRY_CONFIG,
1838
1847
  TARGET_FACE_PERCENTAGE_IN_CROP,
1839
1848
  analyzeBlur,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moveris/shared",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "description": "Core business logic for Moveris Live SDK",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",