@regulaforensics/document-reader 8.4.375-beta → 8.4.386-beta

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.
Files changed (59) hide show
  1. package/RNDocumentReader.podspec +2 -2
  2. package/android/build.gradle +2 -2
  3. package/android/cordova.gradle +2 -2
  4. package/android/src/main/java/com/regula/plugin/documentreader/Config.kt +49 -1
  5. package/android/src/main/java/com/regula/plugin/documentreader/JSONConstructor.kt +30 -0
  6. package/android/src/main/java/com/regula/plugin/documentreader/Main.kt +24 -1
  7. package/examples/capacitor/package-lock.json +351 -313
  8. package/examples/capacitor/package.json +3 -3
  9. package/examples/ionic/package.json +3 -3
  10. package/examples/react_native/package.json +3 -3
  11. package/ios/RGLWConfig.m +38 -9
  12. package/ios/RGLWJSONConstructor.h +1 -0
  13. package/ios/RGLWJSONConstructor.m +21 -0
  14. package/ios/RGLWMain.m +46 -0
  15. package/package.json +1 -1
  16. package/plugin.xml +2 -2
  17. package/test/json.tsx +72 -31
  18. package/test/package-lock.json +1 -1
  19. package/test/test.tsx +3 -2
  20. package/www/capacitor/config/InitConfig.js +3 -0
  21. package/www/capacitor/index.js +5 -4
  22. package/www/capacitor/info/DocReaderException.js +2 -0
  23. package/www/capacitor/params/Functionality.js +8 -0
  24. package/www/capacitor/params/customization/CustomizationColors.js +32 -0
  25. package/www/capacitor/params/customization/CustomizationFonts.js +24 -0
  26. package/www/capacitor/params/customization/CustomizationImages.js +8 -0
  27. package/www/capacitor/params/process_params/AuthenticityParams.js +44 -0
  28. package/www/capacitor/params/process_params/FilterObject.js +60 -0
  29. package/www/capacitor/params/process_params/LivenessParams.js +38 -2
  30. package/www/capacitor/params/process_params/ProcessParams.js +30 -0
  31. package/www/capacitor/results/authenticity/CheckDiagnose.js +2 -0
  32. package/www/capacitor/results/authenticity/SecurityFeatureType.js +3 -1
  33. package/www/cordova.js +371 -92
  34. package/www/react-native/config/InitConfig.js +3 -0
  35. package/www/react-native/index.js +5 -4
  36. package/www/react-native/info/DocReaderException.js +2 -0
  37. package/www/react-native/params/Functionality.js +8 -0
  38. package/www/react-native/params/customization/CustomizationColors.js +32 -0
  39. package/www/react-native/params/customization/CustomizationFonts.js +24 -0
  40. package/www/react-native/params/customization/CustomizationImages.js +8 -0
  41. package/www/react-native/params/process_params/AuthenticityParams.js +44 -0
  42. package/www/react-native/params/process_params/FilterObject.js +60 -0
  43. package/www/react-native/params/process_params/LivenessParams.js +38 -2
  44. package/www/react-native/params/process_params/ProcessParams.js +30 -0
  45. package/www/react-native/results/authenticity/CheckDiagnose.js +2 -0
  46. package/www/react-native/results/authenticity/SecurityFeatureType.js +3 -1
  47. package/www/types/config/InitConfig.d.ts +5 -0
  48. package/www/types/index.d.ts +5 -4
  49. package/www/types/info/DocReaderException.d.ts +4 -0
  50. package/www/types/params/Functionality.d.ts +6 -0
  51. package/www/types/params/customization/CustomizationColors.d.ts +16 -8
  52. package/www/types/params/customization/CustomizationFonts.d.ts +6 -0
  53. package/www/types/params/customization/CustomizationImages.d.ts +6 -1
  54. package/www/types/params/process_params/AuthenticityParams.d.ts +25 -0
  55. package/www/types/params/process_params/FilterObject.d.ts +32 -0
  56. package/www/types/params/process_params/LivenessParams.d.ts +18 -0
  57. package/www/types/params/process_params/ProcessParams.d.ts +11 -0
  58. package/www/types/results/authenticity/CheckDiagnose.d.ts +4 -0
  59. package/www/types/results/authenticity/SecurityFeatureType.d.ts +4 -0
@@ -105,6 +105,12 @@ export class Functionality {
105
105
  this._set({ "torchTurnedOn": val });
106
106
  }
107
107
 
108
+ get preventScreenRecording() { return this._preventScreenRecording; }
109
+ set preventScreenRecording(val) {
110
+ this._preventScreenRecording = val;
111
+ this._set({ "preventScreenRecording": val });
112
+ }
113
+
108
114
  get showCaptureButtonDelayFromDetect() { return this._showCaptureButtonDelayFromDetect; }
109
115
  set showCaptureButtonDelayFromDetect(val) {
110
116
  this._showCaptureButtonDelayFromDetect = val;
@@ -222,6 +228,7 @@ export class Functionality {
222
228
  result._manualMultipageMode = jsonObject["manualMultipageMode"];
223
229
  result._singleResult = jsonObject["singleResult"];
224
230
  result._torchTurnedOn = jsonObject["torchTurnedOn"];
231
+ result._preventScreenRecording = jsonObject["preventScreenRecording"];
225
232
  result._showCaptureButtonDelayFromDetect = jsonObject["showCaptureButtonDelayFromDetect"];
226
233
  result._showCaptureButtonDelayFromStart = jsonObject["showCaptureButtonDelayFromStart"];
227
234
  result._rfidTimeout = jsonObject["rfidTimeout"];
@@ -261,6 +268,7 @@ export class Functionality {
261
268
  "manualMultipageMode": this.manualMultipageMode,
262
269
  "singleResult": this.singleResult,
263
270
  "torchTurnedOn": this.torchTurnedOn,
271
+ "preventScreenRecording": this.preventScreenRecording,
264
272
  "showCaptureButtonDelayFromDetect": this.showCaptureButtonDelayFromDetect,
265
273
  "showCaptureButtonDelayFromStart": this.showCaptureButtonDelayFromStart,
266
274
  "rfidTimeout": this.rfidTimeout,
@@ -49,6 +49,30 @@ export class CustomizationColors {
49
49
  this._set({ "rfidProcessingScreenLoadingBar": val });
50
50
  }
51
51
 
52
+ get rfidEnableNfcTitleText() { return this._rfidEnableNfcTitleText; }
53
+ set rfidEnableNfcTitleText(val) {
54
+ this._rfidEnableNfcTitleText = val;
55
+ this._set({ "rfidEnableNfcTitleText": val });
56
+ }
57
+
58
+ get rfidEnableNfcDescriptionText() { return this._rfidEnableNfcDescriptionText; }
59
+ set rfidEnableNfcDescriptionText(val) {
60
+ this._rfidEnableNfcDescriptionText = val;
61
+ this._set({ "rfidEnableNfcDescriptionText": val });
62
+ }
63
+
64
+ get rfidEnableNfcButtonText() { return this._rfidEnableNfcButtonText; }
65
+ set rfidEnableNfcButtonText(val) {
66
+ this._rfidEnableNfcButtonText = val;
67
+ this._set({ "rfidEnableNfcButtonText": val });
68
+ }
69
+
70
+ get rfidEnableNfcButtonBackground() { return this._rfidEnableNfcButtonBackground; }
71
+ set rfidEnableNfcButtonBackground(val) {
72
+ this._rfidEnableNfcButtonBackground = val;
73
+ this._set({ "rfidEnableNfcButtonBackground": val });
74
+ }
75
+
52
76
  static fromJson(jsonObject) {
53
77
  if (jsonObject == null) return null;
54
78
 
@@ -61,6 +85,10 @@ export class CustomizationColors {
61
85
  result._rfidProcessingScreenProgressBarBackground = jsonObject["rfidProcessingScreenProgressBarBackground"];
62
86
  result._rfidProcessingScreenResultLabelText = jsonObject["rfidProcessingScreenResultLabelText"];
63
87
  result._rfidProcessingScreenLoadingBar = jsonObject["rfidProcessingScreenLoadingBar"];
88
+ result._rfidEnableNfcTitleText = jsonObject["rfidEnableNfcTitleText"];
89
+ result._rfidEnableNfcDescriptionText = jsonObject["rfidEnableNfcDescriptionText"];
90
+ result._rfidEnableNfcButtonText = jsonObject["rfidEnableNfcButtonText"];
91
+ result._rfidEnableNfcButtonBackground = jsonObject["rfidEnableNfcButtonBackground"];
64
92
 
65
93
  return result;
66
94
  }
@@ -82,6 +110,10 @@ export class CustomizationColors {
82
110
  "rfidProcessingScreenProgressBarBackground": this.rfidProcessingScreenProgressBarBackground,
83
111
  "rfidProcessingScreenResultLabelText": this.rfidProcessingScreenResultLabelText,
84
112
  "rfidProcessingScreenLoadingBar": this.rfidProcessingScreenLoadingBar,
113
+ "rfidEnableNfcTitleText": this.rfidEnableNfcTitleText,
114
+ "rfidEnableNfcDescriptionText": this.rfidEnableNfcDescriptionText,
115
+ "rfidEnableNfcButtonText": this.rfidEnableNfcButtonText,
116
+ "rfidEnableNfcButtonBackground": this.rfidEnableNfcButtonBackground,
85
117
  }
86
118
  }
87
119
  }
@@ -20,6 +20,24 @@ export class CustomizationFonts {
20
20
  this._set({ "rfidProcessingScreenResultLabel": val });
21
21
  }
22
22
 
23
+ get rfidEnableNfcTitleText() { return this._rfidEnableNfcTitleText; }
24
+ set rfidEnableNfcTitleText(val) {
25
+ this._rfidEnableNfcTitleText = val;
26
+ this._set({ "rfidEnableNfcTitleText": val });
27
+ }
28
+
29
+ get rfidEnableNfcDescriptionText() { return this._rfidEnableNfcDescriptionText; }
30
+ set rfidEnableNfcDescriptionText(val) {
31
+ this._rfidEnableNfcDescriptionText = val;
32
+ this._set({ "rfidEnableNfcDescriptionText": val });
33
+ }
34
+
35
+ get rfidEnableNfcButtonText() { return this._rfidEnableNfcButtonText; }
36
+ set rfidEnableNfcButtonText(val) {
37
+ this._rfidEnableNfcButtonText = val;
38
+ this._set({ "rfidEnableNfcButtonText": val });
39
+ }
40
+
23
41
  static fromJson(jsonObject) {
24
42
  if (jsonObject == null) return null;
25
43
 
@@ -27,6 +45,9 @@ export class CustomizationFonts {
27
45
  result._rfidProcessingScreenHintLabel = Font.fromJson(jsonObject["rfidProcessingScreenHintLabel"]);
28
46
  result._rfidProcessingScreenProgressLabel = Font.fromJson(jsonObject["rfidProcessingScreenProgressLabel"]);
29
47
  result._rfidProcessingScreenResultLabel = Font.fromJson(jsonObject["rfidProcessingScreenResultLabel"]);
48
+ result._rfidEnableNfcTitleText = Font.fromJson(jsonObject["rfidEnableNfcTitleText"]);
49
+ result._rfidEnableNfcDescriptionText = Font.fromJson(jsonObject["rfidEnableNfcDescriptionText"]);
50
+ result._rfidEnableNfcButtonText = Font.fromJson(jsonObject["rfidEnableNfcButtonText"]);
30
51
 
31
52
  return result;
32
53
  }
@@ -43,6 +64,9 @@ export class CustomizationFonts {
43
64
  "rfidProcessingScreenHintLabel": this.rfidProcessingScreenHintLabel?.toJson(),
44
65
  "rfidProcessingScreenProgressLabel": this.rfidProcessingScreenProgressLabel?.toJson(),
45
66
  "rfidProcessingScreenResultLabel": this.rfidProcessingScreenResultLabel?.toJson(),
67
+ "rfidEnableNfcTitleText": this.rfidEnableNfcTitleText?.toJson(),
68
+ "rfidEnableNfcDescriptionText": this.rfidEnableNfcDescriptionText?.toJson(),
69
+ "rfidEnableNfcButtonText": this.rfidEnableNfcButtonText?.toJson(),
46
70
  }
47
71
  }
48
72
  }
@@ -7,11 +7,18 @@ export class CustomizationImages {
7
7
  this._set({ "rfidProcessingScreenFailureImage": val });
8
8
  }
9
9
 
10
+ get rfidEnableNfcImage() { return this._rfidEnableNfcImage; }
11
+ set rfidEnableNfcImage(val) {
12
+ this._rfidEnableNfcImage = val;
13
+ this._set({ "rfidEnableNfcImage": val });
14
+ }
15
+
10
16
  static fromJson(jsonObject) {
11
17
  if (jsonObject == null) return null;
12
18
 
13
19
  const result = new CustomizationImages();
14
20
  result._rfidProcessingScreenFailureImage = jsonObject["rfidProcessingScreenFailureImage"];
21
+ result._rfidEnableNfcImage = jsonObject["rfidEnableNfcImage"];
15
22
 
16
23
  return result;
17
24
  }
@@ -26,6 +33,7 @@ export class CustomizationImages {
26
33
  toJson() {
27
34
  return {
28
35
  "rfidProcessingScreenFailureImage": this.rfidProcessingScreenFailureImage,
36
+ "rfidEnableNfcImage": this.rfidEnableNfcImage,
29
37
  }
30
38
  }
31
39
  }
@@ -1,5 +1,6 @@
1
1
  import { DocumentReader } from '../../index';
2
2
  import { LivenessParams } from './LivenessParams';
3
+ import { FilterObject } from './FilterObject';
3
4
 
4
5
  export class AuthenticityParams {
5
6
  get useLivenessCheck() { return this._useLivenessCheck; }
@@ -95,6 +96,28 @@ export class AuthenticityParams {
95
96
  this._set({ "checkSecurityText": val });
96
97
  }
97
98
 
99
+ _checkFilters = {};
100
+
101
+ setCheckFilter(checkType, filter) {
102
+ this._checkFilters[checkType] = filter;
103
+ this._set({
104
+ "setCheckFilter": {
105
+ "checkType": checkType,
106
+ "filterObject": filter.toJson(),
107
+ },
108
+ });
109
+ }
110
+
111
+ removeCheckFilter(checkType) {
112
+ delete this._checkFilters[checkType];
113
+ this._set({ "removeCheckFilter": checkType });
114
+ }
115
+
116
+ clearCheckFilter() {
117
+ this._checkFilters = {};
118
+ this._set({ "clearCheckFilter": null });
119
+ }
120
+
98
121
  static fromJson(jsonObject) {
99
122
  if (jsonObject == null) return new AuthenticityParams();
100
123
 
@@ -116,6 +139,8 @@ export class AuthenticityParams {
116
139
  result._checkPhotoComparison = jsonObject["checkPhotoComparison"];
117
140
  result._checkLetterScreen = jsonObject["checkLetterScreen"];
118
141
  result._checkSecurityText = jsonObject["checkSecurityText"];
142
+ result._checkFilters = Object.fromEntries(Object.entries(jsonObject["checkFilters"] ?? {})
143
+ .map(([k, v]) => [k, FilterObject.fromJson(v)]));
119
144
 
120
145
  return result;
121
146
  }
@@ -145,6 +170,25 @@ export class AuthenticityParams {
145
170
  "checkPhotoComparison": this.checkPhotoComparison,
146
171
  "checkLetterScreen": this.checkLetterScreen,
147
172
  "checkSecurityText": this.checkSecurityText,
173
+ "checkFilters": Object.fromEntries(Object.entries(this._checkFilters).map(([k, v]) => [k, v.toJson()])),
148
174
  }
149
175
  }
150
176
  }
177
+
178
+ export const AuthenticityCheckType = {
179
+ USE_LIVENESS: "checkLiveness",
180
+ UV_LUMINISCENCE: "checkUVLuminiscence",
181
+ IR_B900: "checkIRB900",
182
+ IMAGE_PATTERNS: "checkImagePatterns",
183
+ FIBERS: "checkFibers",
184
+ EXT_MRZ: "checkExtMRZ",
185
+ EXT_OCR: "checkExtOCR",
186
+ AXIAL: "checkAxial",
187
+ BARCODE_FORMAT: "checkBarcodeFormat",
188
+ IR_VISIBILITY: "checkIRVisibility",
189
+ IPI: "checkIPI",
190
+ PHOTO_EMBEDDING: "checkPhotoEmbedding",
191
+ PHOTO_COMPARISON: "checkPhotoComparison",
192
+ LETTER_SCREEN: "checkLetterScreen",
193
+ SECURITY_TEXT: "checkSecurityText",
194
+ };
@@ -0,0 +1,60 @@
1
+ export class FilterObject {
2
+ docIDsFilter
3
+ docFormatsFilter
4
+ docCategoriesFilter
5
+ docCountriesFilter
6
+
7
+ static fromJson(json) {
8
+ var result = new FilterObject();
9
+ result.docIDsFilter = FilterObjectType.fromJson(json["docIDsFilter"]);
10
+ result.docFormatsFilter = FilterObjectType.fromJson(json["docFormatsFilter"]);
11
+ result.docCategoriesFilter = FilterObjectType.fromJson(json["docCategoriesFilter"]);
12
+ result.docCountriesFilter = FilterObjectType.fromJson(json["docCountriesFilter"]);
13
+ return result;
14
+ }
15
+
16
+ toJson() {
17
+ return {
18
+ "docIDsFilter": this.docIDsFilter?.toJson(),
19
+ "docFormatsFilter": this.docFormatsFilter?.toJson(),
20
+ "docCategoriesFilter": this.docCategoriesFilter?.toJson(),
21
+ "docCountriesFilter": this.docCountriesFilter?.toJson()
22
+ }
23
+ }
24
+ }
25
+
26
+ export class FilterObjectType {
27
+ _list
28
+ _isInclude
29
+
30
+ static createIncludeList(list) {
31
+ var result = new FilterObjectType();
32
+ result._list = list;
33
+ result._isInclude = true;
34
+ return result;
35
+ }
36
+
37
+ static createExcludeList(list) {
38
+ var result = new FilterObjectType();
39
+ result._list = list;
40
+ result._isInclude = false;
41
+ return result;
42
+ }
43
+
44
+ static fromJson(json) {
45
+ if (json == null) return null;
46
+ if (json["isInclude"]) {
47
+ return FilterObjectType.createIncludeList(json["list"]);
48
+ } else {
49
+ return FilterObjectType.createExcludeList(json["list"]);
50
+ }
51
+ }
52
+
53
+ toJson() {
54
+ return {
55
+ "list": this._list,
56
+ "isInclude": this._isInclude,
57
+ }
58
+ }
59
+ }
60
+
@@ -1,4 +1,5 @@
1
1
  import { DocumentReader } from '../../index';
2
+ import { FilterObject } from './FilterObject';
2
3
 
3
4
  export class LivenessParams {
4
5
  get checkOVI() { return this._checkOVI; }
@@ -43,9 +44,31 @@ export class LivenessParams {
43
44
  this._set({ "checkGeometry": val });
44
45
  }
45
46
 
47
+ _checkFilters = {};
48
+
49
+ setCheckFilter(checkType, filter) {
50
+ this._checkFilters[checkType] = filter;
51
+ this._set({
52
+ "setCheckFilter": {
53
+ "checkType": checkType,
54
+ "filterObject": filter.toJson(),
55
+ },
56
+ });
57
+ }
58
+
59
+ removeCheckFilter(checkType) {
60
+ delete this._checkFilters[checkType];
61
+ this._set({ "removeCheckFilter": checkType });
62
+ }
63
+
64
+ clearCheckFilter() {
65
+ this._checkFilters = {};
66
+ this._set({ "clearCheckFilter": null });
67
+ }
68
+
46
69
  static fromJson(jsonObject) {
47
70
  if (jsonObject == null) return new LivenessParams();
48
-
71
+
49
72
  const result = new LivenessParams();
50
73
  result._checkOVI = jsonObject["checkOVI"];
51
74
  result._checkMLI = jsonObject["checkMLI"];
@@ -54,7 +77,9 @@ export class LivenessParams {
54
77
  result._checkBlackAndWhiteCopy = jsonObject["checkBlackAndWhiteCopy"];
55
78
  result._checkDynaprint = jsonObject["checkDynaprint"];
56
79
  result._checkGeometry = jsonObject["checkGeometry"];
57
-
80
+ result._checkFilters = Object.fromEntries(Object.entries(jsonObject["checkFilters"] ?? {})
81
+ .map(([k, v]) => [k, FilterObject.fromJson(v)]));
82
+
58
83
  return result;
59
84
  }
60
85
 
@@ -74,6 +99,17 @@ export class LivenessParams {
74
99
  "checkBlackAndWhiteCopy": this.checkBlackAndWhiteCopy,
75
100
  "checkDynaprint": this.checkDynaprint,
76
101
  "checkGeometry": this.checkGeometry,
102
+ "checkFilters": Object.fromEntries(Object.entries(this._checkFilters).map(([k, v]) => [k, v.toJson()])),
77
103
  }
78
104
  }
79
105
  }
106
+
107
+ export const LivenessCheckType = {
108
+ OVI: "checkOVI",
109
+ MLI: "checkMLI",
110
+ HOLO: "checkHolo",
111
+ ED: "checkED",
112
+ BLACK_AND_WHITE_COPY: "checkBlackAndWhiteCopy",
113
+ DYNAPRINT: "checkDynaprint",
114
+ GEOMETRY: "checkGeometry",
115
+ };
@@ -5,6 +5,7 @@ import { RFIDParams } from './RFIDParams';
5
5
  import { FaceApiParams } from './FaceApiParams';
6
6
  import { BackendProcessingConfig } from './BackendProcessingConfig';
7
7
  import { AuthenticityParams } from './AuthenticityParams';
8
+ import { FilterObject } from './FilterObject';
8
9
 
9
10
  export class ProcessParams {
10
11
  get multipageProcessing() { return this._multipageProcessing; }
@@ -463,6 +464,28 @@ export class ProcessParams {
463
464
  this._set({ "customParams": val });
464
465
  }
465
466
 
467
+ _checkFilters = {};
468
+
469
+ setCheckFilter(checkType, filter) {
470
+ this._checkFilters[checkType] = filter;
471
+ this._set({
472
+ "setCheckFilter": {
473
+ "checkType": checkType,
474
+ "filterObject": filter.toJson(),
475
+ },
476
+ });
477
+ }
478
+
479
+ removeCheckFilter(checkType) {
480
+ delete this._checkFilters[checkType];
481
+ this._set({ "removeCheckFilter": checkType });
482
+ }
483
+
484
+ clearCheckFilter() {
485
+ this._checkFilters = {};
486
+ this._set({ "clearCheckFilter": null });
487
+ }
488
+
466
489
  static fromJson(jsonObject) {
467
490
  if (jsonObject == null) return new ProcessParams();
468
491
  const result = new ProcessParams();
@@ -544,6 +567,8 @@ export class ProcessParams {
544
567
  result._backendProcessingConfig = BackendProcessingConfig.fromJson(jsonObject["backendProcessingConfig"]);
545
568
  result._authenticityParams = AuthenticityParams.fromJson(jsonObject["authenticityParams"]);
546
569
  result._customParams = jsonObject["customParams"];
570
+ result._checkFilters = Object.fromEntries(Object.entries(jsonObject["checkFilters"] ?? {})
571
+ .map(([k, v]) => [k, FilterObject.fromJson(v)]));
547
572
 
548
573
  return result;
549
574
  }
@@ -626,6 +651,7 @@ export class ProcessParams {
626
651
  "backendProcessingConfig": this.backendProcessingConfig?.toJson(),
627
652
  "authenticityParams": this.authenticityParams?.toJson(),
628
653
  "customParams": this.customParams,
654
+ "checkFilters": Object.fromEntries(Object.entries(this._checkFilters).map(([k, v]) => [k, v.toJson()])),
629
655
  }
630
656
  }
631
657
 
@@ -663,3 +689,7 @@ export const MrzDetectionModes = {
663
689
  RESIZE_BINARIZE_WINDOW: 1,
664
690
  BLUR_BEFORE_BINARIZATION: 2
665
691
  };
692
+
693
+ export const FilterCheckType = {
694
+ AUTH: "checkAuth",
695
+ };
@@ -46,6 +46,8 @@ export const CheckDiagnose = {
46
46
  FIELD_POS_CORRECTOR_FACE_PRESENCE_CHECK_ERROR: 84,
47
47
  FIELD_POS_CORRECTOR_FACE_ABSENCE_CHECK_ERROR: 85,
48
48
  CHD_FIELD_POS_CORRECTOR_INCORRECT_HEAD_POSITION: 86,
49
+ CHD_FIELD_POS_CORRECTOR_AGE_CHECK_ERROR: 87,
50
+ CHD_FIELD_POS_CORRECTOR_SEX_CHECK_ERROR: 88,
49
51
  OVI_IR_INVISIBLE: 90,
50
52
  OVI_INSUFFICIENT_AREA: 91,
51
53
  OVI_COLOR_INVARIABLE: 92,
@@ -55,5 +55,7 @@ export const SecurityFeatureType = {
55
55
  HEAD_POSITION_CHECK: 52,
56
56
  LIVENESS_BLACK_AND_WHITE_COPY_CHECK: 53,
57
57
  LIVENESS_DYNAPRINT: 54,
58
- LIVENESS_GEOMETRY_CHECK: 55
58
+ LIVENESS_GEOMETRY_CHECK: 55,
59
+ AGE_CHECK: 56,
60
+ SEX_CHECK: 57,
59
61
  }