@moveris/shared 3.10.0 → 3.11.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/README.md +21 -21
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -10
- package/dist/index.mjs +8 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -578,27 +578,27 @@ const status = getStatusMessage('capturing', DEFAULT_LOCALE);
|
|
|
578
578
|
|
|
579
579
|
#### Feedback Keys
|
|
580
580
|
|
|
581
|
-
| Key | English
|
|
582
|
-
| ------------------- |
|
|
583
|
-
| `no_face` | "No face detected"
|
|
584
|
-
| `face_not_centered` | "Center your face in the
|
|
585
|
-
| `too_close` | "Move back a little"
|
|
586
|
-
| `too_far` | "Move closer"
|
|
587
|
-
| `poor_lighting` | "Improve lighting"
|
|
588
|
-
| `hold_still` | "Hold still"
|
|
589
|
-
| `capturing` | "Capturing..."
|
|
590
|
-
| `processing` | "Processing..."
|
|
591
|
-
| `success` | "Verification complete"
|
|
592
|
-
| `failed` | "Verification failed"
|
|
593
|
-
| `eyes_not_visible` | "Eyes not clearly visible"
|
|
594
|
-
| `eyes_shadowed` | "Eyes are in shadow…"
|
|
595
|
-
| `eyes_overexposed` | "Eye region overexposed…"
|
|
596
|
-
| `glasses_glare` | "Glare detected…"
|
|
597
|
-
| `eye_quality_poor` | "Eye region quality is poor"
|
|
598
|
-
| `camera_angle_low` | "Raise camera to eye level"
|
|
599
|
-
| `camera_angle_high` | "Lower camera to eye level"
|
|
600
|
-
| `camera_tilted` | "Hold camera level"
|
|
601
|
-
| `flat_lighting` | "Find better lighting"
|
|
581
|
+
| Key | English | Description |
|
|
582
|
+
| ------------------- | -------------------------------- | --------------------------------------------------------------------------------- |
|
|
583
|
+
| `no_face` | "No face detected" | Face detection failed |
|
|
584
|
+
| `face_not_centered` | "Center your face in the circle" | Face outside guide |
|
|
585
|
+
| `too_close` | "Move back a little" | Face too close to camera |
|
|
586
|
+
| `too_far` | "Move closer" | Face too far from camera |
|
|
587
|
+
| `poor_lighting` | "Improve lighting" | Insufficient light |
|
|
588
|
+
| `hold_still` | "Hold still" | Movement detected |
|
|
589
|
+
| `capturing` | "Capturing..." | Frame capture in progress |
|
|
590
|
+
| `processing` | "Processing..." | API verification in progress |
|
|
591
|
+
| `success` | "Verification complete" | Successful completion |
|
|
592
|
+
| `failed` | "Verification failed" | Failed verification |
|
|
593
|
+
| `eyes_not_visible` | "Eyes not clearly visible" | Eye region featureless |
|
|
594
|
+
| `eyes_shadowed` | "Eyes are in shadow…" | Eye region too dark |
|
|
595
|
+
| `eyes_overexposed` | "Eye region overexposed…" | Eye region too bright |
|
|
596
|
+
| `glasses_glare` | "Glare detected…" | Specular highlights on eyes |
|
|
597
|
+
| `eye_quality_poor` | "Eye region quality is poor" | Generic eye quality failure |
|
|
598
|
+
| `camera_angle_low` | "Raise camera to eye level" | Camera below face (Y < 0.3) |
|
|
599
|
+
| `camera_angle_high` | "Lower camera to eye level" | Camera above face (Y > 0.7) |
|
|
600
|
+
| `camera_tilted` | "Hold camera level" | Device tilt > 15° (via transformation matrix, falls back to eye-corner landmarks) |
|
|
601
|
+
| `flat_lighting` | "Find better lighting" | Face-region dynamic range < 60 L-units — soft warning, capture continues |
|
|
602
602
|
|
|
603
603
|
---
|
|
604
604
|
|
package/dist/index.d.mts
CHANGED
|
@@ -849,7 +849,7 @@ declare const DEFAULT_STATUS_MESSAGES: {
|
|
|
849
849
|
};
|
|
850
850
|
type StatusMessageKey = keyof typeof DEFAULT_STATUS_MESSAGES;
|
|
851
851
|
declare const FEEDBACK_MESSAGES: {
|
|
852
|
-
readonly position_face: "Position your face in the
|
|
852
|
+
readonly position_face: "Position your face in the circle";
|
|
853
853
|
readonly no_face: "No face detected - move into frame";
|
|
854
854
|
readonly multiple_faces: "Multiple people detected - please verify alone";
|
|
855
855
|
readonly move_closer_to_center: "Move closer to center";
|
package/dist/index.d.ts
CHANGED
|
@@ -849,7 +849,7 @@ declare const DEFAULT_STATUS_MESSAGES: {
|
|
|
849
849
|
};
|
|
850
850
|
type StatusMessageKey = keyof typeof DEFAULT_STATUS_MESSAGES;
|
|
851
851
|
declare const FEEDBACK_MESSAGES: {
|
|
852
|
-
readonly position_face: "Position your face in the
|
|
852
|
+
readonly position_face: "Position your face in the circle";
|
|
853
853
|
readonly no_face: "No face detected - move into frame";
|
|
854
854
|
readonly multiple_faces: "Multiple people detected - please verify alone";
|
|
855
855
|
readonly move_closer_to_center: "Move closer to center";
|
package/dist/index.js
CHANGED
|
@@ -239,7 +239,7 @@ async function sleep(ms) {
|
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
// package.json
|
|
242
|
-
var version = "3.
|
|
242
|
+
var version = "3.11.0";
|
|
243
243
|
|
|
244
244
|
// src/utils/deviceIntelligence.ts
|
|
245
245
|
var IPINFO_URL = "https://ipinfo.io/json";
|
|
@@ -1537,7 +1537,7 @@ var DEFAULT_STATUS_MESSAGES = {
|
|
|
1537
1537
|
};
|
|
1538
1538
|
var FEEDBACK_MESSAGES = {
|
|
1539
1539
|
// Initial / No face (Red state)
|
|
1540
|
-
position_face: "Position your face in the
|
|
1540
|
+
position_face: "Position your face in the circle",
|
|
1541
1541
|
no_face: "No face detected - move into frame",
|
|
1542
1542
|
multiple_faces: "Multiple people detected - please verify alone",
|
|
1543
1543
|
// Poor alignment (Orange state) - alignment < 50%
|
|
@@ -1601,7 +1601,7 @@ var ES_LOCALE = {
|
|
|
1601
1601
|
},
|
|
1602
1602
|
feedback: {
|
|
1603
1603
|
// Initial / No face (Red state)
|
|
1604
|
-
position_face: "Posiciona tu rostro en el \
|
|
1604
|
+
position_face: "Posiciona tu rostro en el c\xEDrculo",
|
|
1605
1605
|
no_face: "No se detecta rostro - mu\xE9vete al marco",
|
|
1606
1606
|
multiple_faces: "Varias personas detectadas - verifica solo",
|
|
1607
1607
|
// Poor alignment (Orange state)
|
|
@@ -1939,16 +1939,14 @@ function isFaceFullyVisible(boundingBox, frameWidth, frameHeight) {
|
|
|
1939
1939
|
var OVAL_REGION_DESKTOP = {
|
|
1940
1940
|
centerX: 0.5,
|
|
1941
1941
|
centerY: 0.5,
|
|
1942
|
-
width: 0.
|
|
1943
|
-
height: 0.
|
|
1944
|
-
// 0.36 * (4/3)
|
|
1942
|
+
width: 0.45,
|
|
1943
|
+
height: 0.45
|
|
1945
1944
|
};
|
|
1946
1945
|
var OVAL_REGION_MOBILE = {
|
|
1947
1946
|
centerX: 0.5,
|
|
1948
1947
|
centerY: 0.5,
|
|
1949
|
-
width: 0.
|
|
1950
|
-
height: 0.
|
|
1951
|
-
// 0.48 * (4/3)
|
|
1948
|
+
width: 0.62,
|
|
1949
|
+
height: 0.62
|
|
1952
1950
|
};
|
|
1953
1951
|
var DEFAULT_OVAL_REGION = OVAL_REGION_DESKTOP;
|
|
1954
1952
|
function isFaceInOval(faceBox, frameWidth, frameHeight, oval = DEFAULT_OVAL_REGION, tolerance = 0.3) {
|
|
@@ -1980,7 +1978,7 @@ function isFaceInOval(faceBox, frameWidth, frameHeight, oval = DEFAULT_OVAL_REGI
|
|
|
1980
1978
|
} else if (dx > 0.1) {
|
|
1981
1979
|
feedback = "Move face left";
|
|
1982
1980
|
} else {
|
|
1983
|
-
feedback = "Center your face in the
|
|
1981
|
+
feedback = "Center your face in the circle";
|
|
1984
1982
|
}
|
|
1985
1983
|
} else if (tooSmall) {
|
|
1986
1984
|
feedback = "Move closer";
|
package/dist/index.mjs
CHANGED
|
@@ -97,7 +97,7 @@ async function sleep(ms) {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// package.json
|
|
100
|
-
var version = "3.
|
|
100
|
+
var version = "3.11.0";
|
|
101
101
|
|
|
102
102
|
// src/utils/deviceIntelligence.ts
|
|
103
103
|
var IPINFO_URL = "https://ipinfo.io/json";
|
|
@@ -1395,7 +1395,7 @@ var DEFAULT_STATUS_MESSAGES = {
|
|
|
1395
1395
|
};
|
|
1396
1396
|
var FEEDBACK_MESSAGES = {
|
|
1397
1397
|
// Initial / No face (Red state)
|
|
1398
|
-
position_face: "Position your face in the
|
|
1398
|
+
position_face: "Position your face in the circle",
|
|
1399
1399
|
no_face: "No face detected - move into frame",
|
|
1400
1400
|
multiple_faces: "Multiple people detected - please verify alone",
|
|
1401
1401
|
// Poor alignment (Orange state) - alignment < 50%
|
|
@@ -1459,7 +1459,7 @@ var ES_LOCALE = {
|
|
|
1459
1459
|
},
|
|
1460
1460
|
feedback: {
|
|
1461
1461
|
// Initial / No face (Red state)
|
|
1462
|
-
position_face: "Posiciona tu rostro en el \
|
|
1462
|
+
position_face: "Posiciona tu rostro en el c\xEDrculo",
|
|
1463
1463
|
no_face: "No se detecta rostro - mu\xE9vete al marco",
|
|
1464
1464
|
multiple_faces: "Varias personas detectadas - verifica solo",
|
|
1465
1465
|
// Poor alignment (Orange state)
|
|
@@ -1797,16 +1797,14 @@ function isFaceFullyVisible(boundingBox, frameWidth, frameHeight) {
|
|
|
1797
1797
|
var OVAL_REGION_DESKTOP = {
|
|
1798
1798
|
centerX: 0.5,
|
|
1799
1799
|
centerY: 0.5,
|
|
1800
|
-
width: 0.
|
|
1801
|
-
height: 0.
|
|
1802
|
-
// 0.36 * (4/3)
|
|
1800
|
+
width: 0.45,
|
|
1801
|
+
height: 0.45
|
|
1803
1802
|
};
|
|
1804
1803
|
var OVAL_REGION_MOBILE = {
|
|
1805
1804
|
centerX: 0.5,
|
|
1806
1805
|
centerY: 0.5,
|
|
1807
|
-
width: 0.
|
|
1808
|
-
height: 0.
|
|
1809
|
-
// 0.48 * (4/3)
|
|
1806
|
+
width: 0.62,
|
|
1807
|
+
height: 0.62
|
|
1810
1808
|
};
|
|
1811
1809
|
var DEFAULT_OVAL_REGION = OVAL_REGION_DESKTOP;
|
|
1812
1810
|
function isFaceInOval(faceBox, frameWidth, frameHeight, oval = DEFAULT_OVAL_REGION, tolerance = 0.3) {
|
|
@@ -1838,7 +1836,7 @@ function isFaceInOval(faceBox, frameWidth, frameHeight, oval = DEFAULT_OVAL_REGI
|
|
|
1838
1836
|
} else if (dx > 0.1) {
|
|
1839
1837
|
feedback = "Move face left";
|
|
1840
1838
|
} else {
|
|
1841
|
-
feedback = "Center your face in the
|
|
1839
|
+
feedback = "Center your face in the circle";
|
|
1842
1840
|
}
|
|
1843
1841
|
} else if (tooSmall) {
|
|
1844
1842
|
feedback = "Move closer";
|