idmission-web-sdk 1.0.13 → 1.0.14
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/components/fallback_flows/SelfieCapture.d.ts +21 -0
- package/dist/components/id_capture/IdCaptureWizard.d.ts +3 -0
- package/dist/components/selfie_capture/HighPerformanceSelfieGuidanceModelsProvider.d.ts +1 -0
- package/dist/sdk2.cjs.development.js +168 -46
- 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 +168 -46
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +168 -46
- 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/components/common/ModelLoadingErrorOverlay.d.ts +0 -5
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { CustomerSuppliedVerbiage } from '../../lib/locales';
|
|
3
|
+
import { LoaderButtonColors } from '../common/LoaderButton';
|
|
4
|
+
export type SelfieCaptureFallbackColors = {
|
|
5
|
+
captureBtn?: LoaderButtonColors;
|
|
6
|
+
doneBtn?: LoaderButtonColors;
|
|
7
|
+
};
|
|
8
|
+
export type SelfieCaptureFallbackVerbiage = {
|
|
9
|
+
headingText?: CustomerSuppliedVerbiage;
|
|
10
|
+
descriptionText?: CustomerSuppliedVerbiage;
|
|
11
|
+
captureBtnText?: CustomerSuppliedVerbiage;
|
|
12
|
+
doneBtnText?: CustomerSuppliedVerbiage;
|
|
13
|
+
doneBtnLoadingText?: CustomerSuppliedVerbiage;
|
|
14
|
+
};
|
|
15
|
+
export type SelfieCaptureFallbackProps = {
|
|
16
|
+
onFinished?: (imageData: string) => void;
|
|
17
|
+
onCapture?: (imageData: string) => void;
|
|
18
|
+
colors?: SelfieCaptureFallbackColors;
|
|
19
|
+
verbiage?: SelfieCaptureFallbackVerbiage;
|
|
20
|
+
};
|
|
21
|
+
export declare const SelfieCaptureFallback: ({ onFinished, onCapture, colors, verbiage: rawVerbiage, }: SelfieCaptureFallbackProps) => ReactElement;
|
|
@@ -3,6 +3,7 @@ import { IdCaptureAssets, IdCaptureColors, IdCaptureVerbiage } from './IdCapture
|
|
|
3
3
|
import { IdCaptureLoadingOverlayAssets, IdCaptureLoadingOverlayColors, IdCaptureLoadingOverlayVerbiage } from './IdCaptureLoadingOverlay';
|
|
4
4
|
import { FlipIdPromptAssets, FlipIdPromptVerbiage } from './FlipIdPrompt';
|
|
5
5
|
import { IdCaptureSuccessColors, IdCaptureSuccessVerbiage } from './IdCaptureSuccess';
|
|
6
|
+
import { IdCaptureFallbackColors, IdCaptureFallbackVerbiage } from '../fallback_flows/IdCapture';
|
|
6
7
|
export type IdCaptureWizardAssets = {
|
|
7
8
|
documentDetectionModelUrl?: string;
|
|
8
9
|
focusModelUrl?: string;
|
|
@@ -15,6 +16,7 @@ export type IdCaptureWizardAssets = {
|
|
|
15
16
|
export type IdCaptureWizardColors = IdCaptureColors & {
|
|
16
17
|
loadingOverlay?: IdCaptureLoadingOverlayColors;
|
|
17
18
|
success?: IdCaptureSuccessColors;
|
|
19
|
+
fallback?: IdCaptureFallbackColors;
|
|
18
20
|
};
|
|
19
21
|
export type IdCaptureWizardVerbiage = {
|
|
20
22
|
loadingOverlay?: IdCaptureLoadingOverlayVerbiage;
|
|
@@ -23,6 +25,7 @@ export type IdCaptureWizardVerbiage = {
|
|
|
23
25
|
passport?: IdCaptureVerbiage;
|
|
24
26
|
flipIdPrompt?: FlipIdPromptVerbiage;
|
|
25
27
|
success?: IdCaptureSuccessVerbiage;
|
|
28
|
+
fallback?: IdCaptureFallbackVerbiage;
|
|
26
29
|
};
|
|
27
30
|
export type IdCaptureSubmission = {
|
|
28
31
|
idFrontImage: string | null;
|
|
@@ -25,6 +25,7 @@ type HighPerformanceSelfieGuidanceModelsState = {
|
|
|
25
25
|
onPredictionMade: (handler: PredictionHandler) => void;
|
|
26
26
|
canvasRef: MutableRefObject<HTMLCanvasElement | null>;
|
|
27
27
|
ready: boolean;
|
|
28
|
+
error: Error | null;
|
|
28
29
|
};
|
|
29
30
|
export declare const HighPerformanceSelfieGuidanceModelsContext: React.Context<HighPerformanceSelfieGuidanceModelsState>;
|
|
30
31
|
export declare const HighPerformanceSelfieGuidanceModelsProvider: ({ autoStart, children, throttleMs, }: {
|
|
@@ -50,7 +50,7 @@ var useResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(useResizeObs
|
|
|
50
50
|
var SignatureCanvas__default = /*#__PURE__*/_interopDefaultLegacy(SignatureCanvas);
|
|
51
51
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
52
52
|
|
|
53
|
-
var webSdkVersion = '1.0.
|
|
53
|
+
var webSdkVersion = '1.0.14';
|
|
54
54
|
|
|
55
55
|
function getPlatform() {
|
|
56
56
|
return window.platform;
|
|
@@ -10451,7 +10451,9 @@ var IdCaptureWizard = function IdCaptureWizard(_a) {
|
|
|
10451
10451
|
imageData: imageData
|
|
10452
10452
|
}
|
|
10453
10453
|
});
|
|
10454
|
-
}
|
|
10454
|
+
},
|
|
10455
|
+
colors: colors.fallback,
|
|
10456
|
+
verbiage: verbiage.fallback
|
|
10455
10457
|
});
|
|
10456
10458
|
}
|
|
10457
10459
|
return /*#__PURE__*/React__default['default'].createElement(PageContainer, {
|
|
@@ -10570,23 +10572,6 @@ var FaceCaptureGuideOverlay = function FaceCaptureGuideOverlay(_a) {
|
|
|
10570
10572
|
}));
|
|
10571
10573
|
};
|
|
10572
10574
|
|
|
10573
|
-
var ModelLoadingErrorOverlay = function ModelLoadingErrorOverlay(_a) {
|
|
10574
|
-
var error = _a.error;
|
|
10575
|
-
return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, {
|
|
10576
|
-
style: {
|
|
10577
|
-
justifyContent: 'center'
|
|
10578
|
-
}
|
|
10579
|
-
}, /*#__PURE__*/React__default['default'].createElement("h3", {
|
|
10580
|
-
style: {
|
|
10581
|
-
marginBottom: 8
|
|
10582
|
-
}
|
|
10583
|
-
}, "We're sorry, an unexpected error has occurred."), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
10584
|
-
style: {
|
|
10585
|
-
marginBottom: 0
|
|
10586
|
-
}
|
|
10587
|
-
}, /*#__PURE__*/React__default['default'].createElement("code", null, error.message))));
|
|
10588
|
-
};
|
|
10589
|
-
|
|
10590
10575
|
var NUM_KEYPOINTS = 6;
|
|
10591
10576
|
var GREEN = '#32EEDB';
|
|
10592
10577
|
var RED = '#FF2C35';
|
|
@@ -10663,7 +10648,8 @@ var HighPerformanceSelfieGuidanceModelsContext = /*#__PURE__*/React.createContex
|
|
|
10663
10648
|
canvasRef: {
|
|
10664
10649
|
current: null
|
|
10665
10650
|
},
|
|
10666
|
-
ready: false
|
|
10651
|
+
ready: false,
|
|
10652
|
+
error: null
|
|
10667
10653
|
});
|
|
10668
10654
|
var HighPerformanceSelfieGuidanceModelsProvider = function HighPerformanceSelfieGuidanceModelsProvider(_a) {
|
|
10669
10655
|
var _b = _a.autoStart,
|
|
@@ -10686,8 +10672,8 @@ var HighPerformanceSelfieGuidanceModelsProvider = function HighPerformanceSelfie
|
|
|
10686
10672
|
var rafId = React.useRef(0);
|
|
10687
10673
|
var loopId = React.useRef(0);
|
|
10688
10674
|
var _f = React.useState(null),
|
|
10689
|
-
|
|
10690
|
-
|
|
10675
|
+
error = _f[0],
|
|
10676
|
+
setError = _f[1];
|
|
10691
10677
|
React.useEffect(function () {
|
|
10692
10678
|
(function () {
|
|
10693
10679
|
return tslib.__awaiter(void 0, void 0, void 0, function () {
|
|
@@ -10706,7 +10692,7 @@ var HighPerformanceSelfieGuidanceModelsProvider = function HighPerformanceSelfie
|
|
|
10706
10692
|
return [3, 4];
|
|
10707
10693
|
case 3:
|
|
10708
10694
|
e_1 = _b.sent();
|
|
10709
|
-
|
|
10695
|
+
setError(e_1);
|
|
10710
10696
|
return [3, 4];
|
|
10711
10697
|
case 4:
|
|
10712
10698
|
setReady(true);
|
|
@@ -10839,14 +10825,13 @@ var HighPerformanceSelfieGuidanceModelsProvider = function HighPerformanceSelfie
|
|
|
10839
10825
|
stop: stop,
|
|
10840
10826
|
ready: ready,
|
|
10841
10827
|
canvasRef: canvasRef,
|
|
10842
|
-
onPredictionMade: onPredictionMade
|
|
10828
|
+
onPredictionMade: onPredictionMade,
|
|
10829
|
+
error: error
|
|
10843
10830
|
};
|
|
10844
|
-
}, [onPredictionMade, ready, start, stop]);
|
|
10831
|
+
}, [error, onPredictionMade, ready, start, stop]);
|
|
10845
10832
|
return /*#__PURE__*/React__namespace.createElement(HighPerformanceSelfieGuidanceModelsContext.Provider, {
|
|
10846
10833
|
value: value
|
|
10847
|
-
},
|
|
10848
|
-
error: loadingError
|
|
10849
|
-
}) : children);
|
|
10834
|
+
}, children);
|
|
10850
10835
|
};
|
|
10851
10836
|
|
|
10852
10837
|
var GuidanceMessageContainer = styled__default['default'].div(templateObject_1$2 || (templateObject_1$2 = tslib.__makeTemplateObject(["\n position: absolute;\n top: calc(", ");\n font-weight: bold;\n width: 100%;\n display: flex;\n"], ["\n position: absolute;\n top: calc(", ");\n font-weight: bold;\n width: 100%;\n display: flex;\n"])), function (_a) {
|
|
@@ -10898,6 +10883,89 @@ var useTimeout = function useTimeout(durationMs, onTimeout, timeoutAverted, shou
|
|
|
10898
10883
|
};
|
|
10899
10884
|
};
|
|
10900
10885
|
|
|
10886
|
+
var SelfieCaptureFallback = function SelfieCaptureFallback(_a) {
|
|
10887
|
+
var onFinished = _a.onFinished,
|
|
10888
|
+
onCapture = _a.onCapture,
|
|
10889
|
+
_b = _a.colors,
|
|
10890
|
+
colors = _b === void 0 ? {} : _b,
|
|
10891
|
+
_c = _a.verbiage,
|
|
10892
|
+
rawVerbiage = _c === void 0 ? {} : _c;
|
|
10893
|
+
var _d = React.useState(null),
|
|
10894
|
+
image = _d[0],
|
|
10895
|
+
setImage = _d[1];
|
|
10896
|
+
var fileInput = React.useRef(null);
|
|
10897
|
+
var _e = React.useState(false),
|
|
10898
|
+
loading = _e[0],
|
|
10899
|
+
setLoading = _e[1];
|
|
10900
|
+
var verbiage = useTranslations(rawVerbiage, {
|
|
10901
|
+
headingText: "We're having some trouble.",
|
|
10902
|
+
descriptionText: 'On-device capture guidance failed, please capture a selfie manually.',
|
|
10903
|
+
captureBtnText: 'Capture',
|
|
10904
|
+
doneBtnText: 'Done',
|
|
10905
|
+
doneBtnLoadingText: 'Verifying...'
|
|
10906
|
+
});
|
|
10907
|
+
return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, {
|
|
10908
|
+
style: {
|
|
10909
|
+
justifyContent: 'center'
|
|
10910
|
+
}
|
|
10911
|
+
}, /*#__PURE__*/React__default['default'].createElement("h3", {
|
|
10912
|
+
style: {
|
|
10913
|
+
marginBottom: 8
|
|
10914
|
+
}
|
|
10915
|
+
}, verbiage.headingText), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
10916
|
+
style: {
|
|
10917
|
+
marginBottom: 8
|
|
10918
|
+
}
|
|
10919
|
+
}, verbiage.descriptionText), image && /*#__PURE__*/React__default['default'].createElement(OverlayImageWrapper, {
|
|
10920
|
+
style: {
|
|
10921
|
+
marginTop: 32
|
|
10922
|
+
}
|
|
10923
|
+
}, /*#__PURE__*/React__default['default'].createElement("img", {
|
|
10924
|
+
src: image,
|
|
10925
|
+
alt: ""
|
|
10926
|
+
})), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
10927
|
+
ref: fileInput,
|
|
10928
|
+
type: "file",
|
|
10929
|
+
accept: "image/*",
|
|
10930
|
+
hidden: true,
|
|
10931
|
+
onChange: function onChange(e) {
|
|
10932
|
+
var _a;
|
|
10933
|
+
var file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
10934
|
+
if (!file) return;
|
|
10935
|
+
var reader = new FileReader();
|
|
10936
|
+
reader.addEventListener('load', function (e) {
|
|
10937
|
+
var _a;
|
|
10938
|
+
var imageData = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;
|
|
10939
|
+
setImage(imageData);
|
|
10940
|
+
onCapture === null || onCapture === void 0 ? void 0 : onCapture(imageData);
|
|
10941
|
+
});
|
|
10942
|
+
reader.readAsDataURL(file);
|
|
10943
|
+
}
|
|
10944
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
10945
|
+
style: {
|
|
10946
|
+
marginTop: 32
|
|
10947
|
+
}
|
|
10948
|
+
}, !image && /*#__PURE__*/React__default['default'].createElement(LoaderButton, {
|
|
10949
|
+
colors: colors.captureBtn,
|
|
10950
|
+
finished: true,
|
|
10951
|
+
onClick: function onClick() {
|
|
10952
|
+
var _a;
|
|
10953
|
+
(_a = fileInput.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
10954
|
+
}
|
|
10955
|
+
}, verbiage.captureBtnText), image && /*#__PURE__*/React__default['default'].createElement(LoaderButton, {
|
|
10956
|
+
key: loading ? 'loading-btn' : 'ready-btn',
|
|
10957
|
+
colors: colors.doneBtn,
|
|
10958
|
+
finished: !loading,
|
|
10959
|
+
onClick: function onClick() {
|
|
10960
|
+
setLoading(true);
|
|
10961
|
+
onFinished === null || onFinished === void 0 ? void 0 : onFinished(image);
|
|
10962
|
+
},
|
|
10963
|
+
style: {
|
|
10964
|
+
marginLeft: 12
|
|
10965
|
+
}
|
|
10966
|
+
}, loading ? verbiage.doneBtnLoadingText : verbiage.doneBtnText))));
|
|
10967
|
+
};
|
|
10968
|
+
|
|
10901
10969
|
var initialState$3 = {
|
|
10902
10970
|
videoWidth: 0,
|
|
10903
10971
|
videoHeight: 0,
|
|
@@ -11022,7 +11090,9 @@ var SelfieCapture = function SelfieCapture(_a) {
|
|
|
11022
11090
|
cameraRef = _l.cameraRef,
|
|
11023
11091
|
cameraReady = _l.cameraReady,
|
|
11024
11092
|
videoRef = _l.videoRef;
|
|
11025
|
-
var
|
|
11093
|
+
var _m = React.useContext(HighPerformanceSelfieGuidanceModelsContext),
|
|
11094
|
+
onPredictionMade = _m.onPredictionMade,
|
|
11095
|
+
guidanceError = _m.error;
|
|
11026
11096
|
React.useEffect(function () {
|
|
11027
11097
|
if (cameraReady && videoRef.current && videoRef.current.videoWidth !== 0) {
|
|
11028
11098
|
dispatch({
|
|
@@ -11044,9 +11114,9 @@ var SelfieCapture = function SelfieCapture(_a) {
|
|
|
11044
11114
|
});
|
|
11045
11115
|
});
|
|
11046
11116
|
}, [onPredictionMade]);
|
|
11047
|
-
var
|
|
11048
|
-
captureReady =
|
|
11049
|
-
setCaptureReady =
|
|
11117
|
+
var _o = React.useState(false),
|
|
11118
|
+
captureReady = _o[0],
|
|
11119
|
+
setCaptureReady = _o[1];
|
|
11050
11120
|
React.useEffect(function () {
|
|
11051
11121
|
var timer;
|
|
11052
11122
|
if (state.faceReady) {
|
|
@@ -11079,9 +11149,9 @@ var SelfieCapture = function SelfieCapture(_a) {
|
|
|
11079
11149
|
});
|
|
11080
11150
|
})();
|
|
11081
11151
|
}, [captureReady, onSelfieCaptured, state.faces, videoRef]);
|
|
11082
|
-
var
|
|
11083
|
-
timedOut =
|
|
11084
|
-
timeoutStartedAt =
|
|
11152
|
+
var _p = useTimeout(timeoutDurationMs, onTimeout),
|
|
11153
|
+
timedOut = _p.timedOut,
|
|
11154
|
+
timeoutStartedAt = _p.timeoutStartedAt;
|
|
11085
11155
|
var debugScalingDetails = useDebugScalingDetails({
|
|
11086
11156
|
enabled: debugMode,
|
|
11087
11157
|
pageWidth: width,
|
|
@@ -11105,6 +11175,9 @@ var SelfieCapture = function SelfieCapture(_a) {
|
|
|
11105
11175
|
guidanceMessage || (guidanceMessage = state.faceReady ? verbiage.guidanceHoldStillText : state.faceLookingAway ? verbiage.guidanceLookStraightText : state.faceTooClose ? verbiage.guidanceMoveBackText : state.faceTooFar ? verbiage.guidanceMoveForwardText : state.faceNotCentered ? verbiage.guidanceMoveToCenterText : '');
|
|
11106
11176
|
var satisfied = state.faceReady;
|
|
11107
11177
|
if (typeof guidanceSatisfied === 'boolean') satisfied = guidanceSatisfied;
|
|
11178
|
+
if (guidanceError) {
|
|
11179
|
+
return /*#__PURE__*/React__default['default'].createElement(SelfieCaptureFallback, null);
|
|
11180
|
+
}
|
|
11108
11181
|
return /*#__PURE__*/React__default['default'].createElement(PageContainer, {
|
|
11109
11182
|
ref: ref,
|
|
11110
11183
|
className: "flex"
|
|
@@ -11145,6 +11218,7 @@ var initialState$2 = {
|
|
|
11145
11218
|
timesLivenessCheckFailed: 0
|
|
11146
11219
|
};
|
|
11147
11220
|
var reducer$2 = function reducer(state, action) {
|
|
11221
|
+
var _a, _b;
|
|
11148
11222
|
switch (action.type) {
|
|
11149
11223
|
case 'livenessReady':
|
|
11150
11224
|
{
|
|
@@ -11165,12 +11239,12 @@ var reducer$2 = function reducer(state, action) {
|
|
|
11165
11239
|
});
|
|
11166
11240
|
case 'livenessChecked':
|
|
11167
11241
|
{
|
|
11168
|
-
var
|
|
11169
|
-
|
|
11170
|
-
statusCode =
|
|
11171
|
-
statusMessage =
|
|
11172
|
-
errorData =
|
|
11173
|
-
resultData =
|
|
11242
|
+
var _c = action.payload.response,
|
|
11243
|
+
_d = _c.status,
|
|
11244
|
+
statusCode = _d.statusCode,
|
|
11245
|
+
statusMessage = _d.statusMessage,
|
|
11246
|
+
errorData = _d.errorData,
|
|
11247
|
+
resultData = _c.resultData;
|
|
11174
11248
|
if (statusCode !== '000') {
|
|
11175
11249
|
return tslib.__assign(tslib.__assign({}, state), {
|
|
11176
11250
|
requestState: 'ERROR',
|
|
@@ -11191,8 +11265,8 @@ var reducer$2 = function reducer(state, action) {
|
|
|
11191
11265
|
timesLivenessCheckFailed += 1;
|
|
11192
11266
|
}
|
|
11193
11267
|
return tslib.__assign(tslib.__assign({}, state), {
|
|
11194
|
-
frame: action.payload.frame,
|
|
11195
|
-
face: action.payload.face,
|
|
11268
|
+
frame: (_a = action.payload.frame) !== null && _a !== void 0 ? _a : null,
|
|
11269
|
+
face: (_b = action.payload.face) !== null && _b !== void 0 ? _b : null,
|
|
11196
11270
|
imageUrl: action.payload.imageUrl,
|
|
11197
11271
|
requestState: requestState,
|
|
11198
11272
|
faceLive: faceLive,
|
|
@@ -11227,6 +11301,7 @@ var FaceLivenessCapture = function FaceLivenessCapture(_a) {
|
|
|
11227
11301
|
var _e = React.useContext(SubmissionContext),
|
|
11228
11302
|
checkLiveness = _e.checkLiveness,
|
|
11229
11303
|
submissionError = _e.submissionError;
|
|
11304
|
+
var modelsError = React.useContext(HighPerformanceSelfieGuidanceModelsContext).error;
|
|
11230
11305
|
var _f = React.useReducer(reducer$2, initialState$2),
|
|
11231
11306
|
state = _f[0],
|
|
11232
11307
|
dispatch = _f[1];
|
|
@@ -11295,21 +11370,68 @@ var FaceLivenessCapture = function FaceLivenessCapture(_a) {
|
|
|
11295
11370
|
});
|
|
11296
11371
|
})();
|
|
11297
11372
|
}, [checkLiveness, face, frame, isReady, submissionError]);
|
|
11373
|
+
var onFallbackImageCaptured = React.useCallback(function (imageUrl) {
|
|
11374
|
+
return tslib.__awaiter(void 0, void 0, void 0, function () {
|
|
11375
|
+
var response, _a, e_2;
|
|
11376
|
+
return tslib.__generator(this, function (_b) {
|
|
11377
|
+
switch (_b.label) {
|
|
11378
|
+
case 0:
|
|
11379
|
+
dispatch({
|
|
11380
|
+
type: 'livenessChecking'
|
|
11381
|
+
});
|
|
11382
|
+
_b.label = 1;
|
|
11383
|
+
case 1:
|
|
11384
|
+
_b.trys.push([1, 4,, 5]);
|
|
11385
|
+
_a = checkLiveness;
|
|
11386
|
+
return [4, dataUrlToBase64(imageUrl)];
|
|
11387
|
+
case 2:
|
|
11388
|
+
return [4, _a.apply(void 0, [_b.sent()])];
|
|
11389
|
+
case 3:
|
|
11390
|
+
response = _b.sent();
|
|
11391
|
+
dispatch({
|
|
11392
|
+
type: 'livenessChecked',
|
|
11393
|
+
payload: {
|
|
11394
|
+
imageUrl: imageUrl,
|
|
11395
|
+
response: response
|
|
11396
|
+
}
|
|
11397
|
+
});
|
|
11398
|
+
return [3, 5];
|
|
11399
|
+
case 4:
|
|
11400
|
+
e_2 = _b.sent();
|
|
11401
|
+
dispatch({
|
|
11402
|
+
type: 'livenessCheckFailed',
|
|
11403
|
+
payload: {
|
|
11404
|
+
error: e_2
|
|
11405
|
+
}
|
|
11406
|
+
});
|
|
11407
|
+
return [3, 5];
|
|
11408
|
+
case 5:
|
|
11409
|
+
return [2];
|
|
11410
|
+
}
|
|
11411
|
+
});
|
|
11412
|
+
});
|
|
11413
|
+
}, [checkLiveness]);
|
|
11298
11414
|
React.useEffect(function () {
|
|
11299
11415
|
if (isPassed && state.imageUrl) onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(state.imageUrl);
|
|
11300
11416
|
}, [onSuccess, state.imageUrl, isPassed]);
|
|
11301
11417
|
React.useEffect(function () {
|
|
11302
|
-
|
|
11418
|
+
var allowedFailures = modelsError ? 1 : 2;
|
|
11419
|
+
if (state.timesLivenessCheckFailed >= allowedFailures) {
|
|
11303
11420
|
onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();
|
|
11304
11421
|
}
|
|
11305
|
-
}, [onTimeout, state.timesLivenessCheckFailed]);
|
|
11306
|
-
useTimeout(timeoutDurationMs, onTimeout, state.requestState === 'PASSED', state.requestState === 'IN_PROGRESS');
|
|
11422
|
+
}, [modelsError, onTimeout, state.timesLivenessCheckFailed]);
|
|
11423
|
+
useTimeout(timeoutDurationMs, onTimeout, state.requestState === 'PASSED' || !!modelsError, state.requestState === 'IN_PROGRESS');
|
|
11307
11424
|
var verbiage = useTranslations(rawVerbiage, {
|
|
11308
11425
|
guidanceRemoveEyeCoveringsText: 'Please remove your eye coverings (sunglasses, eye patch, etc.)...',
|
|
11309
11426
|
guidanceRemoveHeadCoveringsText: 'Please remove your head coverings (hat, scarf, etc.)...',
|
|
11310
11427
|
guidanceRemoveMaskText: 'Please remove your mask...'
|
|
11311
11428
|
});
|
|
11312
11429
|
var guidanceMessage = state.eyeCoveringDetected ? verbiage.guidanceRemoveEyeCoveringsText : state.headCoveringDetected ? verbiage.guidanceRemoveHeadCoveringsText : state.maskDetected ? verbiage.guidanceRemoveMaskText : undefined;
|
|
11430
|
+
if (modelsError) {
|
|
11431
|
+
return /*#__PURE__*/React__default['default'].createElement(SelfieCaptureFallback, {
|
|
11432
|
+
onFinished: onFallbackImageCaptured
|
|
11433
|
+
});
|
|
11434
|
+
}
|
|
11313
11435
|
return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(InvisibleCanvas, {
|
|
11314
11436
|
ref: rawCanvas
|
|
11315
11437
|
}), /*#__PURE__*/React__default['default'].createElement(InvisibleCanvas, {
|