idmission-web-sdk 2.1.30 → 2.1.32

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.
@@ -29,6 +29,7 @@ export type IdCaptureState = {
29
29
  backDetectedFirst: boolean;
30
30
  allowOverrideFlipRequirement: boolean;
31
31
  overrideFlipRequirement: boolean;
32
+ wrongDocumentTypePredictions: number;
32
33
  idCardFrontDetectionScore: number;
33
34
  idCardFrontDetectionThresholdMet: boolean;
34
35
  idCardBackDetectionScore: number;
@@ -129,8 +130,7 @@ export type IdCaptureAction = {
129
130
  export type IdCaptureDispatch = Dispatch<IdCaptureAction>;
130
131
  export declare const IdCaptureStateContext: React.Context<IdCaptureState>;
131
132
  export declare const IdCaptureDispatchContext: React.Context<IdCaptureDispatch>;
132
- export declare const IdCaptureStateProvider: ({ children, flipRequiredTimeout, }: {
133
+ export declare const IdCaptureStateProvider: ({ children, }: {
133
134
  children: ReactNode;
134
- flipRequiredTimeout?: number;
135
135
  }) => React.JSX.Element;
136
136
  export declare const useIdCaptureState: () => [IdCaptureState, IdCaptureDispatch];
@@ -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.30';
237
+ var webSdkVersion = '2.1.32';
238
238
 
239
239
  function getPlatform() {
240
240
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -5363,9 +5363,9 @@ var defaultDocumentDetectorModelPath = "https://websdk-cdn-dev.idmission.com/ass
5363
5363
  var defaultDocumentDetectionScoreThreshold = 0.1;
5364
5364
  var defaultDocumentDetectionModelLoadTimeoutMs = 45000;
5365
5365
  var defaultDocumentDetectionThresholds = {
5366
- idCardFront: 0.7,
5367
- idCardBack: 0.7,
5368
- passport: 0.5
5366
+ idCardFront: 0.6,
5367
+ idCardBack: 0.6,
5368
+ passport: 0.4
5369
5369
  };
5370
5370
  var documentTypeDisplayNames = {
5371
5371
  idCardFront: 'ID card front',
@@ -6142,6 +6142,7 @@ var initialState$4 = {
6142
6142
  backDetectedFirst: false,
6143
6143
  allowOverrideFlipRequirement: false,
6144
6144
  overrideFlipRequirement: false,
6145
+ wrongDocumentTypePredictions: 0,
6145
6146
  idCardFrontDetectionScore: 0,
6146
6147
  idCardFrontDetectionThresholdMet: false,
6147
6148
  idCardBackDetectionScore: 0,
@@ -6262,6 +6263,10 @@ var _reducer = function reducer(state, action) {
6262
6263
  }
6263
6264
  var flipRequired = !state.overrideFlipRequirement && !state.allowIdCardBackToFrontCapture && state.requestedDocumentType === 'idCardBack' && detectedDocumentType === 'idCardFront';
6264
6265
  var backDetectedFirst = !state.overrideFlipRequirement && (state.allowIdCardBackToFrontCapture ? 'idCardBack' in state.capturedDocuments && detectedDocumentType === 'idCardBack' : state.requestedDocumentType.includes('idCardFront') && detectedDocumentType === 'idCardBack');
6266
+ var wrongDocumentTypePredictions = state.wrongDocumentTypePredictions;
6267
+ if (state.captureState === 'capturing' && (flipRequired || backDetectedFirst)) {
6268
+ wrongDocumentTypePredictions += 1;
6269
+ }
6265
6270
  var isGoodFrame = detectionThresholdMet && documentInBounds && !documentTooClose && !flipRequired && !backDetectedFirst && focusThresholdMet;
6266
6271
  var goodFramesCount = state.goodFramesCount;
6267
6272
  if (isGoodFrame) {
@@ -6284,10 +6289,9 @@ var _reducer = function reducer(state, action) {
6284
6289
  requestedDocumentType = 'idCardFront' in state.capturedDocuments ? 'idCardBack' : 'idCardFront';
6285
6290
  }
6286
6291
  }
6287
- var allowOverrideFlipRequirement = state.allowOverrideFlipRequirement;
6288
- if (isGoodFrame) {
6289
- allowOverrideFlipRequirement = false;
6290
- }
6292
+ var hasBeenRunningForLongEnough = !!state.captureStartedAt && new Date().getTime() - state.captureStartedAt.getTime() > 1000;
6293
+ var overrideFlipRequirementThreshold = Math.ceil(8 * frameCaptureRate);
6294
+ var allowOverrideFlipRequirement = hasBeenRunningForLongEnough && !state.overrideFlipRequirement && overrideFlipRequirementThreshold > 0 && (state.allowOverrideFlipRequirement || wrongDocumentTypePredictions >= overrideFlipRequirementThreshold);
6291
6295
  return _assign(_assign({}, state), {
6292
6296
  videoWidth: frameWidth,
6293
6297
  videoHeight: frameHeight,
@@ -6301,6 +6305,7 @@ var _reducer = function reducer(state, action) {
6301
6305
  flipRequired: flipRequired,
6302
6306
  backDetectedFirst: backDetectedFirst,
6303
6307
  allowOverrideFlipRequirement: allowOverrideFlipRequirement,
6308
+ wrongDocumentTypePredictions: wrongDocumentTypePredictions,
6304
6309
  idCardFrontDetectionScore: idCardFrontDetectionScore,
6305
6310
  idCardFrontDetectionThresholdMet: idCardFrontDetectionThresholdMet,
6306
6311
  idCardBackDetectionScore: idCardBackDetectionScore,
@@ -6349,6 +6354,7 @@ var _reducer = function reducer(state, action) {
6349
6354
  allowOverrideFlipRequirement: false,
6350
6355
  overrideFlipRequirement: false,
6351
6356
  goodFramesCount: 0,
6357
+ wrongDocumentTypePredictions: 0,
6352
6358
  capturedDocuments: _assign(_assign({}, state.capturedDocuments), (_a = {}, _a[action.payload.documentType] = action.payload, _a))
6353
6359
  });
6354
6360
  var remainingRequirements = requiredDocumentsForOption[state.captureRequirement].filter(function (v) {
@@ -6372,6 +6378,7 @@ var _reducer = function reducer(state, action) {
6372
6378
  newState_1.idCardFrontDetectionThresholdMet = false;
6373
6379
  newState_1.idCardBackDetectionThresholdMet = false;
6374
6380
  newState_1.passportDetectionThresholdMet = false;
6381
+ newState_1.wrongDocumentTypePredictions = 0;
6375
6382
  }
6376
6383
  }
6377
6384
  return newState_1;
@@ -6413,7 +6420,8 @@ var _reducer = function reducer(state, action) {
6413
6420
  return _assign(_assign({}, state), {
6414
6421
  captureState: 'capturing',
6415
6422
  allowOverrideFlipRequirement: false,
6416
- overrideFlipRequirement: false
6423
+ overrideFlipRequirement: false,
6424
+ wrongDocumentTypePredictions: 0
6417
6425
  });
6418
6426
  case 'allowOverrideFlipRequirement':
6419
6427
  return _assign(_assign({}, state), {
@@ -6434,12 +6442,10 @@ var _reducer = function reducer(state, action) {
6434
6442
  }
6435
6443
  };
6436
6444
  var IdCaptureStateProvider = function IdCaptureStateProvider(_a) {
6437
- var children = _a.children,
6438
- _b = _a.flipRequiredTimeout,
6439
- flipRequiredTimeout = _b === void 0 ? 10000 : _b;
6440
- var _c = React.useReducer(_reducer, initialState$4),
6441
- state = _c[0],
6442
- dispatch = _c[1];
6445
+ var children = _a.children;
6446
+ var _b = React.useReducer(_reducer, initialState$4),
6447
+ state = _b[0],
6448
+ dispatch = _b[1];
6443
6449
  var onResize = useDebounce.useDebouncedCallback(function () {
6444
6450
  dispatch({
6445
6451
  type: 'redrawRequested'
@@ -6453,19 +6459,6 @@ var IdCaptureStateProvider = function IdCaptureStateProvider(_a) {
6453
6459
  };
6454
6460
  }, [onResize]);
6455
6461
  var setRequiredDocumentType = React.useContext(IdCaptureModelsContext).setRequiredDocumentType;
6456
- React.useEffect(function () {
6457
- if (state.allowOverrideFlipRequirement) return;
6458
- if (state.captureState !== 'capturing') return;
6459
- if (!state.flipRequired && !state.backDetectedFirst) return;
6460
- var t = setTimeout(function () {
6461
- dispatch({
6462
- type: 'allowOverrideFlipRequirement'
6463
- });
6464
- }, flipRequiredTimeout);
6465
- return function () {
6466
- clearTimeout(t);
6467
- };
6468
- }, [flipRequiredTimeout, state.allowOverrideFlipRequirement, state.backDetectedFirst, state.captureState, state.flipRequired]);
6469
6462
  React.useEffect(function () {
6470
6463
  if (state.overrideFlipRequirement) {
6471
6464
  setRequiredDocumentType('none');