idmission-web-sdk 2.0.1 → 2.0.3
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/lib/models/helpers.d.ts +2 -0
- package/dist/sdk2.cjs.development.js +89 -37
- package/dist/sdk2.cjs.development.js.map +1 -1
- package/dist/sdk2.cjs.production.js +1 -1
- package/dist/sdk2.cjs.production.js.map +1 -1
- package/dist/sdk2.esm.js +89 -37
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +89 -37
- package/dist/sdk2.umd.development.js.map +1 -1
- package/dist/sdk2.umd.production.js +1 -1
- package/dist/sdk2.umd.production.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/sdk2.esm.js
CHANGED
|
@@ -14,7 +14,7 @@ import LanguageDetector from 'i18next-browser-languagedetector';
|
|
|
14
14
|
import i18n from 'i18next';
|
|
15
15
|
import SignatureCanvas from 'react-signature-canvas';
|
|
16
16
|
|
|
17
|
-
var webSdkVersion = '2.0.
|
|
17
|
+
var webSdkVersion = '2.0.3';
|
|
18
18
|
|
|
19
19
|
function getPlatform() {
|
|
20
20
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -2446,6 +2446,34 @@ function giveUpAfter(maxTime) {
|
|
|
2446
2446
|
});
|
|
2447
2447
|
}
|
|
2448
2448
|
|
|
2449
|
+
function convertBoundingBox(box) {
|
|
2450
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2451
|
+
return {
|
|
2452
|
+
xMin: (_a = box === null || box === void 0 ? void 0 : box.originX) !== null && _a !== void 0 ? _a : 0,
|
|
2453
|
+
xMax: ((_b = box === null || box === void 0 ? void 0 : box.originX) !== null && _b !== void 0 ? _b : 0) + ((_c = box === null || box === void 0 ? void 0 : box.width) !== null && _c !== void 0 ? _c : 0),
|
|
2454
|
+
yMin: (_d = box === null || box === void 0 ? void 0 : box.originY) !== null && _d !== void 0 ? _d : 0,
|
|
2455
|
+
yMax: ((_e = box === null || box === void 0 ? void 0 : box.originY) !== null && _e !== void 0 ? _e : 0) + ((_f = box === null || box === void 0 ? void 0 : box.height) !== null && _f !== void 0 ? _f : 0),
|
|
2456
|
+
width: (_g = box === null || box === void 0 ? void 0 : box.width) !== null && _g !== void 0 ? _g : 0,
|
|
2457
|
+
height: (_h = box === null || box === void 0 ? void 0 : box.height) !== null && _h !== void 0 ? _h : 0
|
|
2458
|
+
};
|
|
2459
|
+
}
|
|
2460
|
+
function waitForVideoReady(videoRef, checkEveryMs) {
|
|
2461
|
+
if (checkEveryMs === void 0) {
|
|
2462
|
+
checkEveryMs = 100;
|
|
2463
|
+
}
|
|
2464
|
+
return new Promise(function (resolve) {
|
|
2465
|
+
var _a;
|
|
2466
|
+
if (((_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.readyState) === 4) return resolve();
|
|
2467
|
+
var interval = setInterval(function () {
|
|
2468
|
+
var _a;
|
|
2469
|
+
if (((_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.readyState) === 4) {
|
|
2470
|
+
clearInterval(interval);
|
|
2471
|
+
resolve();
|
|
2472
|
+
}
|
|
2473
|
+
}, checkEveryMs);
|
|
2474
|
+
});
|
|
2475
|
+
}
|
|
2476
|
+
|
|
2449
2477
|
var defaultFocusModelPath = "https://websdk-cdn-dev.idmission.com/assets/models/focusmp20240523/model_float16.tflite";
|
|
2450
2478
|
var defaultFocusModelLoadTimeoutMs = 45000;
|
|
2451
2479
|
var defaultFocusThresholds = {
|
|
@@ -2461,7 +2489,7 @@ var defaultFocusThresholds = {
|
|
|
2461
2489
|
var models = {};
|
|
2462
2490
|
function loadFocusModel(modelAssetPath) {
|
|
2463
2491
|
return __awaiter(this, void 0, void 0, function () {
|
|
2464
|
-
var id, _a, _b, _c, _d
|
|
2492
|
+
var id, _a, _b, _c, _d;
|
|
2465
2493
|
return __generator(this, function (_e) {
|
|
2466
2494
|
switch (_e.label) {
|
|
2467
2495
|
case 0:
|
|
@@ -2487,9 +2515,6 @@ function loadFocusModel(modelAssetPath) {
|
|
|
2487
2515
|
}])];
|
|
2488
2516
|
case 3:
|
|
2489
2517
|
_a[_b] = _e.sent();
|
|
2490
|
-
emptyFrame = document.createElement('canvas');
|
|
2491
|
-
models[id].classifyForVideo(emptyFrame, performance.now());
|
|
2492
|
-
emptyFrame.remove();
|
|
2493
2518
|
return [2 /*return*/, models[id]];
|
|
2494
2519
|
}
|
|
2495
2520
|
});
|
|
@@ -2511,7 +2536,9 @@ function useLoadFocusModel(_a) {
|
|
|
2511
2536
|
var _f = useState(null),
|
|
2512
2537
|
modelError = _f[0],
|
|
2513
2538
|
setModelError = _f[1];
|
|
2539
|
+
var videoRef = useContext(CameraStateContext).videoRef;
|
|
2514
2540
|
useEffect(function loadModel() {
|
|
2541
|
+
var _this = this;
|
|
2515
2542
|
setReady(false);
|
|
2516
2543
|
function handleDownloadProgress(event) {
|
|
2517
2544
|
setModelDownloadProgress(progressToPercentage(event.detail));
|
|
@@ -2521,9 +2548,22 @@ function useLoadFocusModel(_a) {
|
|
|
2521
2548
|
setModelError(new Error('Model loading time limit exceeded.'));
|
|
2522
2549
|
}, modelLoadTimeoutMs);
|
|
2523
2550
|
loadFocusModel(modelPath).then(function (loadedModel) {
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2551
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
2552
|
+
return __generator(this, function (_a) {
|
|
2553
|
+
switch (_a.label) {
|
|
2554
|
+
case 0:
|
|
2555
|
+
model.current = loadedModel;
|
|
2556
|
+
setModelDownloadProgress(100);
|
|
2557
|
+
clearTimeout(modelLoadTimeout);
|
|
2558
|
+
return [4 /*yield*/, waitForVideoReady(videoRef)];
|
|
2559
|
+
case 1:
|
|
2560
|
+
_a.sent();
|
|
2561
|
+
loadedModel.classifyForVideo(videoRef.current, performance.now());
|
|
2562
|
+
setReady(true);
|
|
2563
|
+
return [2 /*return*/];
|
|
2564
|
+
}
|
|
2565
|
+
});
|
|
2566
|
+
});
|
|
2527
2567
|
})["catch"](function (e) {
|
|
2528
2568
|
setModelError(e);
|
|
2529
2569
|
})["finally"](function () {
|
|
@@ -2533,7 +2573,7 @@ function useLoadFocusModel(_a) {
|
|
|
2533
2573
|
clearTimeout(modelLoadTimeout);
|
|
2534
2574
|
document.removeEventListener('idmission.preloadProgress.focus', handleDownloadProgress);
|
|
2535
2575
|
};
|
|
2536
|
-
}, [modelPath, modelLoadTimeoutMs]);
|
|
2576
|
+
}, [modelPath, modelLoadTimeoutMs, videoRef]);
|
|
2537
2577
|
useEffect(function handleModelError() {
|
|
2538
2578
|
modelError && (onModelError === null || onModelError === void 0 ? void 0 : onModelError(modelError));
|
|
2539
2579
|
}, [modelError, onModelError]);
|
|
@@ -2713,24 +2753,12 @@ K("FACEDETECTION_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11]
|
|
|
2713
2753
|
[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,
|
|
2714
2754
|
343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]);K("VERSION","0.4.1646425229");}).call(commonjsGlobal);
|
|
2715
2755
|
|
|
2716
|
-
function convertBoundingBox(box) {
|
|
2717
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2718
|
-
return {
|
|
2719
|
-
xMin: (_a = box === null || box === void 0 ? void 0 : box.originX) !== null && _a !== void 0 ? _a : 0,
|
|
2720
|
-
xMax: ((_b = box === null || box === void 0 ? void 0 : box.originX) !== null && _b !== void 0 ? _b : 0) + ((_c = box === null || box === void 0 ? void 0 : box.width) !== null && _c !== void 0 ? _c : 0),
|
|
2721
|
-
yMin: (_d = box === null || box === void 0 ? void 0 : box.originY) !== null && _d !== void 0 ? _d : 0,
|
|
2722
|
-
yMax: ((_e = box === null || box === void 0 ? void 0 : box.originY) !== null && _e !== void 0 ? _e : 0) + ((_f = box === null || box === void 0 ? void 0 : box.height) !== null && _f !== void 0 ? _f : 0),
|
|
2723
|
-
width: (_g = box === null || box === void 0 ? void 0 : box.width) !== null && _g !== void 0 ? _g : 0,
|
|
2724
|
-
height: (_h = box === null || box === void 0 ? void 0 : box.height) !== null && _h !== void 0 ? _h : 0
|
|
2725
|
-
};
|
|
2726
|
-
}
|
|
2727
|
-
|
|
2728
2756
|
var defaultFaceDetectorModelPath = 'https://websdk-cdn-dev.idmission.com/assets/models/blazeface20240207/blaze_face_short_range.tflite';
|
|
2729
2757
|
var defaultSelfieCaptureModelLoadTimeoutMs = 45000;
|
|
2730
2758
|
var detector;
|
|
2731
2759
|
function loadFaceDetector() {
|
|
2732
2760
|
return __awaiter(this, void 0, void 0, function () {
|
|
2733
|
-
var _a, _b
|
|
2761
|
+
var _a, _b;
|
|
2734
2762
|
return __generator(this, function (_c) {
|
|
2735
2763
|
switch (_c.label) {
|
|
2736
2764
|
case 0:
|
|
@@ -2753,9 +2781,6 @@ function loadFaceDetector() {
|
|
|
2753
2781
|
}])];
|
|
2754
2782
|
case 3:
|
|
2755
2783
|
detector = _c.sent();
|
|
2756
|
-
emptyFrame = document.createElement('canvas');
|
|
2757
|
-
detector.detectForVideo(emptyFrame, performance.now());
|
|
2758
|
-
emptyFrame.remove();
|
|
2759
2784
|
return [2 /*return*/, detector];
|
|
2760
2785
|
}
|
|
2761
2786
|
});
|
|
@@ -2775,7 +2800,9 @@ function useLoadFaceDetector(_a) {
|
|
|
2775
2800
|
var _e = useState(null),
|
|
2776
2801
|
modelError = _e[0],
|
|
2777
2802
|
setModelError = _e[1];
|
|
2803
|
+
var videoRef = useContext(CameraStateContext).videoRef;
|
|
2778
2804
|
useEffect(function loadModel() {
|
|
2805
|
+
var _this = this;
|
|
2779
2806
|
setReady(false);
|
|
2780
2807
|
var modelLoadTimeout = setTimeout(function () {
|
|
2781
2808
|
setModelError(new Error('Model loading time limit exceeded.'));
|
|
@@ -2785,9 +2812,22 @@ function useLoadFaceDetector(_a) {
|
|
|
2785
2812
|
}
|
|
2786
2813
|
document.addEventListener('idmission.preloadProgress.faceDetection', handleDownloadProgress);
|
|
2787
2814
|
loadFaceDetector().then(function (model) {
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2815
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
2816
|
+
return __generator(this, function (_a) {
|
|
2817
|
+
switch (_a.label) {
|
|
2818
|
+
case 0:
|
|
2819
|
+
detector.current = model;
|
|
2820
|
+
setModelDownloadProgress(100);
|
|
2821
|
+
clearTimeout(modelLoadTimeout);
|
|
2822
|
+
return [4 /*yield*/, waitForVideoReady(videoRef)];
|
|
2823
|
+
case 1:
|
|
2824
|
+
_a.sent();
|
|
2825
|
+
model.detectForVideo(videoRef.current, performance.now());
|
|
2826
|
+
setReady(true);
|
|
2827
|
+
return [2 /*return*/];
|
|
2828
|
+
}
|
|
2829
|
+
});
|
|
2830
|
+
});
|
|
2791
2831
|
})["catch"](function (e) {
|
|
2792
2832
|
setModelError(e);
|
|
2793
2833
|
})["finally"](function () {
|
|
@@ -2797,7 +2837,7 @@ function useLoadFaceDetector(_a) {
|
|
|
2797
2837
|
clearTimeout(modelLoadTimeout);
|
|
2798
2838
|
document.removeEventListener('idmission.preloadProgress.faceDetection', handleDownloadProgress);
|
|
2799
2839
|
};
|
|
2800
|
-
}, [modelLoadTimeoutMs]);
|
|
2840
|
+
}, [modelLoadTimeoutMs, videoRef]);
|
|
2801
2841
|
useEffect(function handleModelError() {
|
|
2802
2842
|
modelError && (onModelError === null || onModelError === void 0 ? void 0 : onModelError(modelError));
|
|
2803
2843
|
}, [modelError, onModelError]);
|
|
@@ -3078,7 +3118,7 @@ function loadDocumentDetector(modelAssetPath, scoreThreshold) {
|
|
|
3078
3118
|
scoreThreshold = defaultDocumentDetectionScoreThreshold;
|
|
3079
3119
|
}
|
|
3080
3120
|
return __awaiter(this, void 0, void 0, function () {
|
|
3081
|
-
var id, _a, _b, _c, _d
|
|
3121
|
+
var id, _a, _b, _c, _d;
|
|
3082
3122
|
return __generator(this, function (_e) {
|
|
3083
3123
|
switch (_e.label) {
|
|
3084
3124
|
case 0:
|
|
@@ -3105,9 +3145,6 @@ function loadDocumentDetector(modelAssetPath, scoreThreshold) {
|
|
|
3105
3145
|
}])];
|
|
3106
3146
|
case 3:
|
|
3107
3147
|
_a[_b] = _e.sent();
|
|
3108
|
-
emptyFrame = document.createElement('canvas');
|
|
3109
|
-
detectors[id].detectForVideo(emptyFrame, performance.now());
|
|
3110
|
-
emptyFrame.remove();
|
|
3111
3148
|
return [2 /*return*/, detectors[id]];
|
|
3112
3149
|
}
|
|
3113
3150
|
});
|
|
@@ -3131,7 +3168,9 @@ function useLoadDocumentDetector(_a) {
|
|
|
3131
3168
|
var _g = useState(null),
|
|
3132
3169
|
modelError = _g[0],
|
|
3133
3170
|
setModelError = _g[1];
|
|
3171
|
+
var videoRef = useContext(CameraStateContext).videoRef;
|
|
3134
3172
|
useEffect(function loadModel() {
|
|
3173
|
+
var _this = this;
|
|
3135
3174
|
setReady(false);
|
|
3136
3175
|
function handleDownloadProgress(event) {
|
|
3137
3176
|
setModelDownloadProgress(progressToPercentage(event.detail));
|
|
@@ -3141,9 +3180,22 @@ function useLoadDocumentDetector(_a) {
|
|
|
3141
3180
|
setModelError(new Error('Model loading time limit exceeded.'));
|
|
3142
3181
|
}, modelLoadTimeoutMs);
|
|
3143
3182
|
loadDocumentDetector(modelPath, scoreThreshold).then(function (model) {
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3183
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
3184
|
+
return __generator(this, function (_a) {
|
|
3185
|
+
switch (_a.label) {
|
|
3186
|
+
case 0:
|
|
3187
|
+
detector.current = model;
|
|
3188
|
+
setModelDownloadProgress(100);
|
|
3189
|
+
clearTimeout(modelLoadTimeout);
|
|
3190
|
+
return [4 /*yield*/, waitForVideoReady(videoRef)];
|
|
3191
|
+
case 1:
|
|
3192
|
+
_a.sent();
|
|
3193
|
+
model.detectForVideo(videoRef.current, performance.now());
|
|
3194
|
+
setReady(true);
|
|
3195
|
+
return [2 /*return*/];
|
|
3196
|
+
}
|
|
3197
|
+
});
|
|
3198
|
+
});
|
|
3147
3199
|
})["catch"](function (e) {
|
|
3148
3200
|
setModelError(e);
|
|
3149
3201
|
})["finally"](function () {
|
|
@@ -3153,7 +3205,7 @@ function useLoadDocumentDetector(_a) {
|
|
|
3153
3205
|
clearTimeout(modelLoadTimeout);
|
|
3154
3206
|
document.removeEventListener('idmission.preloadProgress.documentDetection', handleDownloadProgress);
|
|
3155
3207
|
};
|
|
3156
|
-
}, [modelLoadTimeoutMs, modelPath, scoreThreshold]);
|
|
3208
|
+
}, [modelLoadTimeoutMs, modelPath, scoreThreshold, videoRef]);
|
|
3157
3209
|
useEffect(function handleModelError() {
|
|
3158
3210
|
modelError && (onModelError === null || onModelError === void 0 ? void 0 : onModelError(modelError));
|
|
3159
3211
|
}, [modelError, onModelError]);
|