idmission-web-sdk 2.1.53 → 2.1.54

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.
@@ -64,6 +64,11 @@ export type SubmissionState = {
64
64
  retryLocationAccess: () => void;
65
65
  };
66
66
  export declare const SubmissionContext: React.Context<SubmissionState>;
67
+ export type OnSubmit = (payload: SubmissionRequest) => void;
68
+ export type OnBeforeSubmit = (req: SubmissionRequest) => Promise<SubmissionRequest>;
69
+ export type OnBeforeLivenessCheck = (req: LivenessCheckRequest) => Promise<LivenessCheckRequest>;
70
+ export type OnResponseReceived = (res: SubmissionResponse, req: SubmissionRequest) => void;
71
+ export type OnRequestFailure = (err: Error) => void;
67
72
  export type SubmissionProviderProps = {
68
73
  action: SubmissionAction;
69
74
  children: ReactElement;
@@ -96,16 +101,16 @@ export type SubmissionProviderProps = {
96
101
  precapturedDocuments?: CapturedDocuments;
97
102
  documentServiceUrl?: string;
98
103
  sendBase64DocumentsInSwaggerProxy?: boolean;
99
- onSubmit?: (payload: SubmissionRequest) => void;
100
- onBeforeSubmit?: (req: SubmissionRequest) => Promise<SubmissionRequest>;
101
- onBeforeLivenessCheck?: (req: LivenessCheckRequest) => Promise<LivenessCheckRequest>;
104
+ onSubmit?: OnSubmit;
105
+ onBeforeSubmit?: OnBeforeSubmit;
106
+ onBeforeLivenessCheck?: OnBeforeLivenessCheck;
102
107
  onBeforeDocumentUpload?: OnBeforeDocumentUpload;
103
108
  onDocumentUploadProgress?: OnDocumentUploadProgress;
104
109
  onDocumentUploaded?: OnDocumentUploaded;
105
110
  onDocumentUploadFailed?: OnDocumentUploadFailed;
106
- onResponseReceived?: (res: SubmissionResponse, req: SubmissionRequest) => void;
107
- onRequestFailure?: (err: Error) => void;
111
+ onResponseReceived?: OnResponseReceived;
112
+ onRequestFailure?: OnRequestFailure;
108
113
  readTextPrompt?: string;
109
114
  clientRequestID?: string;
110
115
  };
111
- export declare const SubmissionProvider: ({ action, children, submissionUrl, environment, companyId, enrollmentId, personalData, cardData, idData, bypassAgeValidation, bypassNameMatching, needImmediateResponse, manualReviewRequired, idBackImageRequired, idImageResolutionCheck, verifyIdWithExternalDatabases, deduplicationEnabled, deduplicationSynchronous, idCardForFaceMatch, geolocationEnabled, geolocationRequired, webhooksEnabled, webhooksClientTraceId, webhooksStripSpecialCharacters, webhooksSendInputImages, webhooksSendProcessedImages, webhooksFireOnReview, customerDataMatchConfig, precapturedDocuments, documentServiceUrl, sendBase64DocumentsInSwaggerProxy, onSubmit, onBeforeSubmit, onBeforeLivenessCheck, onBeforeDocumentUpload, onDocumentUploadProgress, onDocumentUploaded, onDocumentUploadFailed, onResponseReceived, onRequestFailure, clientRequestID, }: SubmissionProviderProps) => ReactElement;
116
+ export declare const SubmissionProvider: ({ action, children, submissionUrl, environment, companyId, enrollmentId, personalData, cardData, idData, bypassAgeValidation, bypassNameMatching, needImmediateResponse, manualReviewRequired, idBackImageRequired, idImageResolutionCheck, verifyIdWithExternalDatabases, deduplicationEnabled, deduplicationSynchronous, idCardForFaceMatch, geolocationEnabled, geolocationRequired, webhooksEnabled, webhooksClientTraceId, webhooksStripSpecialCharacters, webhooksSendInputImages, webhooksSendProcessedImages, webhooksFireOnReview, customerDataMatchConfig, precapturedDocuments, documentServiceUrl, sendBase64DocumentsInSwaggerProxy, onSubmit: userSuppliedOnSubmit, onBeforeSubmit: userSuppliedOnBeforeSubmit, onBeforeLivenessCheck: userSuppliedOnBeforeLivenessCheck, onBeforeDocumentUpload: userSuppliedOnBeforeDocumentUpload, onDocumentUploadProgress: userSuppliedOnDocumentUploadProgress, onDocumentUploaded: userSuppliedOnDocumentUploaded, onDocumentUploadFailed: userSuppliedOnDocumentUploadFailed, onResponseReceived: userSuppliedOnResponseReceived, onRequestFailure: userSuppliedOnRequestFailure, clientRequestID, }: SubmissionProviderProps) => ReactElement;
@@ -234,7 +234,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
234
234
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
235
235
  };
236
236
 
237
- var webSdkVersion = '2.1.53';
237
+ var webSdkVersion = '2.1.54';
238
238
 
239
239
  function getPlatform() {
240
240
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -1168,15 +1168,15 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1168
1168
  documentServiceUrl = _v === void 0 ? defaultDocumentServiceUrl : _v,
1169
1169
  _w = _a.sendBase64DocumentsInSwaggerProxy,
1170
1170
  sendBase64DocumentsInSwaggerProxy = _w === void 0 ? false : _w,
1171
- onSubmit = _a.onSubmit,
1172
- onBeforeSubmit = _a.onBeforeSubmit,
1173
- onBeforeLivenessCheck = _a.onBeforeLivenessCheck,
1174
- onBeforeDocumentUpload = _a.onBeforeDocumentUpload,
1175
- onDocumentUploadProgress = _a.onDocumentUploadProgress,
1176
- onDocumentUploaded = _a.onDocumentUploaded,
1177
- onDocumentUploadFailed = _a.onDocumentUploadFailed,
1178
- onResponseReceived = _a.onResponseReceived,
1179
- onRequestFailure = _a.onRequestFailure,
1171
+ userSuppliedOnSubmit = _a.onSubmit,
1172
+ userSuppliedOnBeforeSubmit = _a.onBeforeSubmit,
1173
+ userSuppliedOnBeforeLivenessCheck = _a.onBeforeLivenessCheck,
1174
+ userSuppliedOnBeforeDocumentUpload = _a.onBeforeDocumentUpload,
1175
+ userSuppliedOnDocumentUploadProgress = _a.onDocumentUploadProgress,
1176
+ userSuppliedOnDocumentUploaded = _a.onDocumentUploaded,
1177
+ userSuppliedOnDocumentUploadFailed = _a.onDocumentUploadFailed,
1178
+ userSuppliedOnResponseReceived = _a.onResponseReceived,
1179
+ userSuppliedOnRequestFailure = _a.onRequestFailure,
1180
1180
  clientRequestID = _a.clientRequestID;
1181
1181
  var sessionId = useAuthContext()[0].sessionId;
1182
1182
  var _x = React.useState(SubmissionStatus.READY),
@@ -1274,20 +1274,57 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1274
1274
  setSelfieImage(dataUrlToBase64Sync(precapturedDocuments.selfie.imageData));
1275
1275
  }
1276
1276
  }, [precapturedDocuments === null || precapturedDocuments === void 0 ? void 0 : precapturedDocuments.selfie]);
1277
+ var onSubmit = React.useRef();
1278
+ React.useEffect(function () {
1279
+ onSubmit.current = userSuppliedOnSubmit;
1280
+ }, [userSuppliedOnSubmit]);
1281
+ var onBeforeSubmit = React.useRef();
1282
+ React.useEffect(function () {
1283
+ onBeforeSubmit.current = userSuppliedOnBeforeSubmit;
1284
+ }, [userSuppliedOnBeforeSubmit]);
1285
+ var onBeforeLivenessCheck = React.useRef();
1286
+ React.useEffect(function () {
1287
+ onBeforeLivenessCheck.current = userSuppliedOnBeforeLivenessCheck;
1288
+ }, [userSuppliedOnBeforeLivenessCheck]);
1289
+ var onResponseReceived = React.useRef();
1290
+ React.useEffect(function () {
1291
+ onResponseReceived.current = userSuppliedOnResponseReceived;
1292
+ }, [userSuppliedOnResponseReceived]);
1293
+ var onRequestFailure = React.useRef();
1294
+ React.useEffect(function () {
1295
+ onRequestFailure.current = userSuppliedOnRequestFailure;
1296
+ }, [userSuppliedOnRequestFailure]);
1297
+ var onBeforeDocumentUpload = React.useRef();
1298
+ React.useEffect(function () {
1299
+ onBeforeDocumentUpload.current = userSuppliedOnBeforeDocumentUpload;
1300
+ }, [userSuppliedOnBeforeDocumentUpload]);
1301
+ var onDocumentUploadProgress = React.useRef();
1302
+ React.useEffect(function () {
1303
+ onDocumentUploadProgress.current = userSuppliedOnDocumentUploadProgress;
1304
+ }, [userSuppliedOnDocumentUploadProgress]);
1305
+ var onDocumentUploaded = React.useRef();
1306
+ React.useEffect(function () {
1307
+ onDocumentUploaded.current = userSuppliedOnDocumentUploaded;
1308
+ }, [userSuppliedOnDocumentUploaded]);
1309
+ var onDocumentUploadFailed = React.useRef();
1310
+ React.useEffect(function () {
1311
+ onDocumentUploadFailed.current = userSuppliedOnDocumentUploadFailed;
1312
+ }, [userSuppliedOnDocumentUploadFailed]);
1277
1313
  var uploadDocument = React.useCallback(function (src, metadata) {
1278
1314
  return new Promise(function (resolve, reject) {
1279
1315
  return __awaiter(void 0, void 0, void 0, function () {
1280
1316
  var blob, _a, upload;
1281
- return __generator(this, function (_b) {
1282
- switch (_b.label) {
1317
+ var _b;
1318
+ return __generator(this, function (_c) {
1319
+ switch (_c.label) {
1283
1320
  case 0:
1284
1321
  blob = typeof src === 'string' ? convertBase64ToBlob(src) : src;
1285
- _a = onBeforeDocumentUpload;
1322
+ _a = onBeforeDocumentUpload.current;
1286
1323
  if (!_a) return [3 /*break*/, 2];
1287
- return [4 /*yield*/, onBeforeDocumentUpload === null || onBeforeDocumentUpload === void 0 ? void 0 : onBeforeDocumentUpload(blob, metadata)];
1324
+ return [4 /*yield*/, (_b = onBeforeDocumentUpload.current) === null || _b === void 0 ? void 0 : _b.call(onBeforeDocumentUpload, blob, metadata)];
1288
1325
  case 1:
1289
- _a = _b.sent() === false;
1290
- _b.label = 2;
1326
+ _a = _c.sent() === false;
1327
+ _c.label = 2;
1291
1328
  case 2:
1292
1329
  if (_a) return [2 /*return*/, resolve(blobToB64(blob))];
1293
1330
  upload = createUpload(blob, {
@@ -1300,7 +1337,8 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1300
1337
  filetype: blob.type
1301
1338
  },
1302
1339
  onProgress: function onProgress(bytesUploaded, bytesTotal) {
1303
- onDocumentUploadProgress === null || onDocumentUploadProgress === void 0 ? void 0 : onDocumentUploadProgress({
1340
+ var _a;
1341
+ (_a = onDocumentUploadProgress.current) === null || _a === void 0 ? void 0 : _a.call(onDocumentUploadProgress, {
1304
1342
  bytesUploaded: bytesUploaded,
1305
1343
  bytesTotal: bytesTotal,
1306
1344
  percentage: (bytesUploaded / bytesTotal * 100).toFixed(2) + '%',
@@ -1308,14 +1346,15 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1308
1346
  });
1309
1347
  },
1310
1348
  onSuccess: function onSuccess() {
1311
- var _a;
1349
+ var _a, _b;
1312
1350
  var documentId = 'urn:documentsv1:' + ((_a = upload.url.split('/files/').pop()) === null || _a === void 0 ? void 0 : _a.split('+').shift());
1313
- onDocumentUploaded === null || onDocumentUploaded === void 0 ? void 0 : onDocumentUploaded(documentId, metadata);
1351
+ (_b = onDocumentUploaded.current) === null || _b === void 0 ? void 0 : _b.call(onDocumentUploaded, documentId, metadata);
1314
1352
  resolve(documentId);
1315
1353
  },
1316
1354
  onError: function onError(error) {
1355
+ var _a;
1317
1356
  log('Failed because: ' + error);
1318
- onDocumentUploadFailed === null || onDocumentUploadFailed === void 0 ? void 0 : onDocumentUploadFailed(error, metadata);
1357
+ (_a = onDocumentUploadFailed.current) === null || _a === void 0 ? void 0 : _a.call(onDocumentUploadFailed, error, metadata);
1319
1358
  reject(error);
1320
1359
  }
1321
1360
  });
@@ -1333,7 +1372,7 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1333
1372
  });
1334
1373
  });
1335
1374
  });
1336
- }, [onBeforeDocumentUpload, documentServiceUrl, sessionId, onDocumentUploadProgress, onDocumentUploaded, onDocumentUploadFailed]);
1375
+ }, [documentServiceUrl, sessionId]);
1337
1376
  var buildSubmissionPayload = React.useCallback(function () {
1338
1377
  return __awaiter(void 0, void 0, void 0, function () {
1339
1378
  function uploadIfPossible(src_1, filename_1) {
@@ -1529,8 +1568,8 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1529
1568
  idBackCaptureAttempts: idBackCaptureAttempts,
1530
1569
  geolocationResult: geolocationResult
1531
1570
  });
1532
- if (!onBeforeSubmit) return [3 /*break*/, 10];
1533
- return [4 /*yield*/, onBeforeSubmit(submissionRequest)];
1571
+ if (!onBeforeSubmit.current) return [3 /*break*/, 10];
1572
+ return [4 /*yield*/, onBeforeSubmit.current(submissionRequest)];
1534
1573
  case 9:
1535
1574
  onBeforeSubmitResult = _h.sent();
1536
1575
  if (onBeforeSubmitResult) submissionRequest = onBeforeSubmitResult;
@@ -1540,13 +1579,13 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1540
1579
  }
1541
1580
  });
1542
1581
  });
1543
- }, [additionalDocuments, bypassAgeValidation, bypassNameMatching, cardData, clientRequestID, companyId, customerDataMatchConfig, deduplicationEnabled, deduplicationSynchronous, documentServiceUrl, enrollmentId, expectedAudioText, geolocationResult, idBackCaptureAttempts, idBackImage, idBackImageRequired, idCaptureVideoAudioStartsAt, idCaptureVideoAudioUrl, idCaptureVideoIdBackImage, idCaptureVideoIdFrontImage, idCaptureVideoUrl, idData, idFrontCaptureAttempts, idFrontImage, idImageResolutionCheck, manualReviewRequired, needImmediateResponse, onBeforeSubmit, passportImage, personalData, selfieCaptureAttempts, selfieImage, signatureData, signatureVideoUrl, uploadDocument, verifyIdWithExternalDatabases, webhooksClientTraceId, webhooksEnabled, webhooksFireOnReview, webhooksSendInputImages, webhooksSendProcessedImages, webhooksStripSpecialCharacters]);
1582
+ }, [additionalDocuments, bypassAgeValidation, bypassNameMatching, cardData, clientRequestID, companyId, customerDataMatchConfig, deduplicationEnabled, deduplicationSynchronous, documentServiceUrl, enrollmentId, expectedAudioText, geolocationResult, idBackCaptureAttempts, idBackImage, idBackImageRequired, idCaptureVideoAudioStartsAt, idCaptureVideoAudioUrl, idCaptureVideoIdBackImage, idCaptureVideoIdFrontImage, idCaptureVideoUrl, idData, idFrontCaptureAttempts, idFrontImage, idImageResolutionCheck, manualReviewRequired, needImmediateResponse, passportImage, personalData, selfieCaptureAttempts, selfieImage, signatureData, signatureVideoUrl, uploadDocument, verifyIdWithExternalDatabases, webhooksClientTraceId, webhooksEnabled, webhooksFireOnReview, webhooksSendInputImages, webhooksSendProcessedImages, webhooksStripSpecialCharacters]);
1544
1583
  var defaultOnSubmit = React.useCallback(function () {
1545
1584
  return __awaiter(void 0, void 0, void 0, function () {
1546
1585
  var submissionResponse_1, payload, host, endpoint, response, statusMessage, submissionResponse_2, e_1, err;
1547
- var _a;
1548
- return __generator(this, function (_b) {
1549
- switch (_b.label) {
1586
+ var _a, _b, _c;
1587
+ return __generator(this, function (_d) {
1588
+ switch (_d.label) {
1550
1589
  case 0:
1551
1590
  if (action === SubmissionAction.NONE) {
1552
1591
  submissionResponse_1 = {
@@ -1560,12 +1599,12 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1560
1599
  return [2 /*return*/, submissionResponse_1];
1561
1600
  }
1562
1601
  setSubmissionStatus(SubmissionStatus.SUBMITTING);
1563
- _b.label = 1;
1602
+ _d.label = 1;
1564
1603
  case 1:
1565
- _b.trys.push([1, 7,, 8]);
1604
+ _d.trys.push([1, 7,, 8]);
1566
1605
  return [4 /*yield*/, buildSubmissionPayload()];
1567
1606
  case 2:
1568
- payload = _b.sent();
1607
+ payload = _d.sent();
1569
1608
  host = submissionUrl || determineSubmissionHost(environment);
1570
1609
  endpoint = determineSubmissionEndpoint(action, !!(idFrontImage || idBackImage || passportImage), !!selfieImage);
1571
1610
  return [4 /*yield*/, fetch(host + endpoint, {
@@ -1576,11 +1615,11 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1576
1615
  throw new NetworkError(e.message);
1577
1616
  })];
1578
1617
  case 3:
1579
- response = _b.sent();
1618
+ response = _d.sent();
1580
1619
  if (!(!response || !response.ok)) return [3 /*break*/, 5];
1581
1620
  return [4 /*yield*/, response === null || response === void 0 ? void 0 : response.text()];
1582
1621
  case 4:
1583
- statusMessage = _b.sent();
1622
+ statusMessage = _d.sent();
1584
1623
  if (!statusMessage || statusMessage === 'Load failed') throw new NetworkError(statusMessage);
1585
1624
  throw new SubmissionError({
1586
1625
  statusCode: (_a = response === null || response === void 0 ? void 0 : response.statusText) !== null && _a !== void 0 ? _a : '???',
@@ -1589,16 +1628,17 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1589
1628
  case 5:
1590
1629
  return [4 /*yield*/, response.json()];
1591
1630
  case 6:
1592
- submissionResponse_2 = _b.sent();
1631
+ submissionResponse_2 = _d.sent();
1593
1632
  if (submissionResponse_2.status.statusCode !== '000') {
1594
1633
  throw new SubmissionError(submissionResponse_2.status);
1595
1634
  }
1596
1635
  setSubmissionRequest(payload);
1597
1636
  setSubmissionResponse(submissionResponse_2);
1598
1637
  setSubmissionStatus(SubmissionStatus.SUBMITTED);
1638
+ (_b = onResponseReceived.current) === null || _b === void 0 ? void 0 : _b.call(onResponseReceived, submissionResponse_2, payload);
1599
1639
  return [2 /*return*/, submissionResponse_2];
1600
1640
  case 7:
1601
- e_1 = _b.sent();
1641
+ e_1 = _d.sent();
1602
1642
  err = e_1;
1603
1643
  setSubmissionStatus(SubmissionStatus.FAILED);
1604
1644
  setSubmissionError(e_1 instanceof SubmissionError || e_1 instanceof NetworkError ? e_1 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
@@ -1610,6 +1650,7 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1610
1650
  return null;
1611
1651
  } : defaultOnSubmit;
1612
1652
  });
1653
+ (_c = onRequestFailure.current) === null || _c === void 0 ? void 0 : _c.call(onRequestFailure, err);
1613
1654
  throw err;
1614
1655
  case 8:
1615
1656
  return [2 /*return*/];
@@ -1617,35 +1658,25 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1617
1658
  });
1618
1659
  });
1619
1660
  }, [action, buildSubmissionPayload, submissionUrl, environment, idFrontImage, idBackImage, passportImage, selfieImage, sessionId, sendBase64DocumentsInSwaggerProxy]);
1620
- React.useEffect(function () {
1621
- if (submissionRequest && submissionResponse) {
1622
- onResponseReceived === null || onResponseReceived === void 0 ? void 0 : onResponseReceived(submissionResponse, submissionRequest);
1623
- }
1624
- }, [onResponseReceived, submissionRequest, submissionResponse]);
1625
- React.useEffect(function () {
1626
- if (submissionError) {
1627
- onRequestFailure === null || onRequestFailure === void 0 ? void 0 : onRequestFailure(submissionError);
1628
- }
1629
- }, [onRequestFailure, submissionError]);
1630
1661
  var submit = React.useCallback(function () {
1631
1662
  return __awaiter(void 0, void 0, void 0, function () {
1632
- var _a;
1633
- return __generator(this, function (_b) {
1634
- switch (_b.label) {
1663
+ var _a, _b;
1664
+ return __generator(this, function (_c) {
1665
+ switch (_c.label) {
1635
1666
  case 0:
1636
- if (!onSubmit) return [3 /*break*/, 2];
1637
- _a = onSubmit;
1667
+ if (!onSubmit.current) return [3 /*break*/, 2];
1668
+ _b = (_a = onSubmit).current;
1638
1669
  return [4 /*yield*/, buildSubmissionPayload()];
1639
1670
  case 1:
1640
- return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
1671
+ return [2 /*return*/, _b.apply(_a, [_c.sent()])];
1641
1672
  case 2:
1642
1673
  return [4 /*yield*/, defaultOnSubmit()];
1643
1674
  case 3:
1644
- return [2 /*return*/, _b.sent()];
1675
+ return [2 /*return*/, _c.sent()];
1645
1676
  }
1646
1677
  });
1647
1678
  });
1648
- }, [buildSubmissionPayload, defaultOnSubmit, onSubmit]);
1679
+ }, [buildSubmissionPayload, defaultOnSubmit]);
1649
1680
  var buildLivenessCheckPayload = React.useCallback(function (imageDataUrl) {
1650
1681
  return __awaiter(void 0, void 0, void 0, function () {
1651
1682
  var request, onBeforeLivenessCheckResult;
@@ -1688,8 +1719,8 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1688
1719
  idBackCaptureAttempts: idBackCaptureAttempts,
1689
1720
  geolocationResult: geolocationResult
1690
1721
  });
1691
- if (!onBeforeLivenessCheck) return [3 /*break*/, 3];
1692
- return [4 /*yield*/, onBeforeLivenessCheck(request)];
1722
+ if (!onBeforeLivenessCheck.current) return [3 /*break*/, 3];
1723
+ return [4 /*yield*/, onBeforeLivenessCheck.current(request)];
1693
1724
  case 2:
1694
1725
  onBeforeLivenessCheckResult = _d.sent();
1695
1726
  if (onBeforeLivenessCheckResult) request = onBeforeLivenessCheckResult;
@@ -1700,17 +1731,18 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1700
1731
  }
1701
1732
  });
1702
1733
  });
1703
- }, [clientRequestID, geolocationResult, idBackCaptureAttempts, idCardForFaceMatch, idFrontCaptureAttempts, onBeforeLivenessCheck, selfieCaptureAttempts, webhooksStripSpecialCharacters]);
1734
+ }, [clientRequestID, geolocationResult, idBackCaptureAttempts, idCardForFaceMatch, idFrontCaptureAttempts, selfieCaptureAttempts, webhooksStripSpecialCharacters]);
1704
1735
  var checkLiveness = React.useCallback(function (imageDataUrl) {
1705
1736
  return __awaiter(void 0, void 0, void 0, function () {
1706
1737
  var request, host, endpoint, response, statusMessage, submissionResponse_3, e_2, err;
1707
- return __generator(this, function (_a) {
1708
- switch (_a.label) {
1738
+ var _a;
1739
+ return __generator(this, function (_b) {
1740
+ switch (_b.label) {
1709
1741
  case 0:
1710
- _a.trys.push([0, 6,, 7]);
1742
+ _b.trys.push([0, 6,, 7]);
1711
1743
  return [4 /*yield*/, buildLivenessCheckPayload(imageDataUrl)];
1712
1744
  case 1:
1713
- request = _a.sent();
1745
+ request = _b.sent();
1714
1746
  host = submissionUrl || determineSubmissionHost(environment);
1715
1747
  endpoint = liveCheckEndpoint(!!idCardForFaceMatch);
1716
1748
  return [4 /*yield*/, fetch(host + endpoint, {
@@ -1721,11 +1753,11 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1721
1753
  throw new NetworkError(e.message);
1722
1754
  })];
1723
1755
  case 2:
1724
- response = _a.sent();
1756
+ response = _b.sent();
1725
1757
  if (!!response.ok) return [3 /*break*/, 4];
1726
1758
  return [4 /*yield*/, response.text()];
1727
1759
  case 3:
1728
- statusMessage = _a.sent();
1760
+ statusMessage = _b.sent();
1729
1761
  if (!statusMessage || statusMessage === 'Load failed') throw new NetworkError(statusMessage);
1730
1762
  throw new SubmissionError({
1731
1763
  statusCode: response.statusText,
@@ -1734,14 +1766,14 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1734
1766
  case 4:
1735
1767
  return [4 /*yield*/, response.json()];
1736
1768
  case 5:
1737
- submissionResponse_3 = _a.sent();
1769
+ submissionResponse_3 = _b.sent();
1738
1770
  if (submissionResponse_3.status.statusCode !== '000') {
1739
1771
  throw new SubmissionError(submissionResponse_3.status);
1740
1772
  }
1741
1773
  setSubmissionResponse(submissionResponse_3);
1742
1774
  return [2 /*return*/, submissionResponse_3];
1743
1775
  case 6:
1744
- e_2 = _a.sent();
1776
+ e_2 = _b.sent();
1745
1777
  err = e_2;
1746
1778
  setSubmissionStatus(SubmissionStatus.FAILED);
1747
1779
  setSubmissionError(e_2 instanceof SubmissionError || e_2 instanceof NetworkError ? e_2 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
@@ -1754,6 +1786,7 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1754
1786
  return null;
1755
1787
  };
1756
1788
  });
1789
+ (_a = onRequestFailure.current) === null || _a === void 0 ? void 0 : _a.call(onRequestFailure, err);
1757
1790
  throw err;
1758
1791
  case 7:
1759
1792
  return [2 /*return*/];