@regulaforensics/document-reader 9.1.484-rc → 9.1.493-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 (77) 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 +8 -0
  5. package/android/src/main/java/com/regula/plugin/documentreader/JSONConstructor.kt +346 -40
  6. package/android/src/main/java/com/regula/plugin/documentreader/Main.kt +65 -11
  7. package/android/src/main/java/com/regula/plugin/documentreader/Utils.kt +62 -0
  8. package/examples/capacitor/ios/App/App/Info.plist +2 -0
  9. package/examples/capacitor/package.json +1 -1
  10. package/examples/ionic/config.xml +2 -0
  11. package/examples/ionic/package-lock.json +5257 -2650
  12. package/examples/ionic/package.json +10 -10
  13. package/examples/react_native/app.config.ts +3 -1
  14. package/examples/react_native/package-lock.json +3 -3
  15. package/examples/react_native/package.json +1 -1
  16. package/ios/RGLWConfig.m +9 -2
  17. package/ios/RGLWJSONConstructor.h +19 -0
  18. package/ios/RGLWJSONConstructor.m +349 -0
  19. package/ios/RGLWMain.m +49 -0
  20. package/package.json +1 -1
  21. package/plugin.xml +2 -2
  22. package/test/json.tsx +200 -95
  23. package/test/package-lock.json +1 -1
  24. package/test/test.tsx +12 -2
  25. package/www/capacitor/engagement/DataRetrieval.js +55 -0
  26. package/www/capacitor/engagement/DeviceEngagement.js +30 -0
  27. package/www/capacitor/engagement/DeviceRetrievalMethod.js +41 -0
  28. package/www/capacitor/engagement/DocumentRequestMDL.js +212 -0
  29. package/www/capacitor/engagement/NameSpaceMDL.js +33 -0
  30. package/www/capacitor/index.js +54 -2
  31. package/www/capacitor/info/DocReaderException.js +2 -0
  32. package/www/capacitor/params/Functionality.js +16 -0
  33. package/www/capacitor/params/customization/Customization.js +8 -0
  34. package/www/capacitor/params/process_params/ProcessParams.js +16 -0
  35. package/www/capacitor/results/Results.js +8 -1
  36. package/www/capacitor/results/status/AgeStatus.js +35 -0
  37. package/www/capacitor/results/status/ResultsStatus.js +13 -0
  38. package/www/capacitor/results/visible_digital_seals/DocFeature.js +23 -0
  39. package/www/capacitor/results/visible_digital_seals/VDSData.js +75 -0
  40. package/www/capacitor/results/visual_results/FieldType.js +3 -0
  41. package/www/capacitor/rfid/PKDCertificate.js +3 -0
  42. package/www/cordova.js +951 -177
  43. package/www/react-native/engagement/DataRetrieval.js +55 -0
  44. package/www/react-native/engagement/DeviceEngagement.js +30 -0
  45. package/www/react-native/engagement/DeviceRetrievalMethod.js +41 -0
  46. package/www/react-native/engagement/DocumentRequestMDL.js +212 -0
  47. package/www/react-native/engagement/NameSpaceMDL.js +33 -0
  48. package/www/react-native/index.js +54 -2
  49. package/www/react-native/info/DocReaderException.js +2 -0
  50. package/www/react-native/params/Functionality.js +16 -0
  51. package/www/react-native/params/customization/Customization.js +8 -0
  52. package/www/react-native/params/process_params/ProcessParams.js +16 -0
  53. package/www/react-native/results/Results.js +8 -1
  54. package/www/react-native/results/status/AgeStatus.js +35 -0
  55. package/www/react-native/results/status/ResultsStatus.js +13 -0
  56. package/www/react-native/results/visible_digital_seals/DocFeature.js +23 -0
  57. package/www/react-native/results/visible_digital_seals/VDSData.js +75 -0
  58. package/www/react-native/results/visual_results/FieldType.js +3 -0
  59. package/www/react-native/rfid/PKDCertificate.js +3 -0
  60. package/www/types/engagement/DataRetrieval.d.ts +28 -0
  61. package/www/types/engagement/DeviceEngagement.d.ts +16 -0
  62. package/www/types/engagement/DeviceRetrievalMethod.d.ts +18 -0
  63. package/www/types/engagement/DocumentRequestMDL.d.ts +61 -0
  64. package/www/types/engagement/NameSpaceMDL.d.ts +16 -0
  65. package/www/types/index.d.ts +35 -2
  66. package/www/types/info/DocReaderException.d.ts +2 -0
  67. package/www/types/params/Functionality.d.ts +7 -0
  68. package/www/types/params/customization/Customization.d.ts +5 -0
  69. package/www/types/params/process_params/ProcessParams.d.ts +13 -0
  70. package/www/types/results/Results.d.ts +9 -1
  71. package/www/types/results/status/AgeStatus.d.ts +14 -0
  72. package/www/types/results/status/ResultsStatus.d.ts +9 -0
  73. package/www/types/results/visible_digital_seals/DocFeature.d.ts +9 -0
  74. package/www/types/results/visible_digital_seals/VDSData.d.ts +32 -0
  75. package/www/types/results/visible_digital_seals/VDSNCData.d.ts +1 -1
  76. package/www/types/results/visual_results/FieldType.d.ts +6 -0
  77. package/www/types/rfid/PKDCertificate.d.ts +7 -1
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "..": {
15
15
  "name": "@regulaforensics/document-reader",
16
- "version": "9.1.484-rc",
16
+ "version": "9.1.493-beta",
17
17
  "dev": true,
18
18
  "license": "commercial"
19
19
  },
package/test/test.tsx CHANGED
@@ -1,6 +1,6 @@
1
1
  import { compare } from './utils'
2
- import { AccessControlProcedureType, Application, Attribute, AuthenticityCheck, AuthenticityElement, AuthenticityParams, AuthenticityResult, Authority, BackendProcessingConfig, BarcodeField, BarcodeResult, BytesData, CardProperties, CertificateChain, CertificateData, Comparison, Coordinate, Customization, CustomizationColors, CustomizationFonts, CustomizationImages, DataField, DocReaderException, DocReaderScenario, DocReaderVersion, DocumentsDatabase, DocumentType, EDLDataGroups, EIDDataGroups, DTCDataGroup, EPassportDataGroups, Extension, FaceApiParams, FaceApiSearchParams, File, FileData, Functionality, GlaresCheckParams, RFIDParams, GraphicField, GraphicResult, ImageInputData, ImageQA, ImageQuality, ImageQualityGroup, InitConfig, License, LivenessParams, OnlineProcessingConfig, OpticalStatus, PAAttribute, PAResourcesIssuer, PDF417Info, PKDCertificate, Position, PrepareProgress, ProcessParams, RecognizeConfig, Rect, Results, ResultsStatus, RFIDException, RFIDNotification, RFIDOrigin, RFIDScenario, RFIDSessionData, RFIDStatus, RFIDValidity, RFIDValue, ScannerConfig, SecurityObject, SecurityObjectCertificates, SignerInfo, Symbol, TAChallenge, TccParams, TextField, TextResult, TextSource, TransactionInfo, Validity, Value, VDSNCData } from '@regulaforensics/document-reader/www/capacitor'
3
- import { accessControlProcedureType, application, attribute, authenticityCheck, authenticityElement, authenticityParams, authenticityResult, authority, backendProcessingConfig, barcodeField, barcodeResult, bytesData, cardProperties, certificateChain, certificateData, comparison, coordinate, customization, customizationColors, customizationFonts, customizationImages, dataField, docReaderException, docReaderScenario, docReaderVersion, documentsDatabase, documentType, eDLDataGroups, eIDDataGroups, dtcDataGroup, ePassportDataGroups, extension, faceApiParams, faceApiSearchParams, file, fileData, functionality, glaresCheckParams, rfidParams, graphicField, graphicResult, imageInputData, imageQA, imageQuality, imageQualityGroup, initConfig, license, livenessParams, onlineProcessingConfig, opticalStatus, paAttribute, paResourcesIssuer, pdf417Info, pkdCertificate, position, prepareProgress, processParams, recognizeConfig, recognizeConfig2, rect, results, resultsStatus, rfidException, rfidNotification, rfidOrigin, rfidScenario, rfidSessionData, rfidStatus, rfidValidity, rfidValue, scannerConfig, securityObject, securityObjectCertificates, signerInfo, symbol, taChallenge, tccParams, textField, textResult, textSource, transactionInfo, validity, value, vdsncData } from './json'
2
+ import { AccessControlProcedureType, Application, Attribute, AuthenticityCheck, AuthenticityElement, AuthenticityParams, AuthenticityResult, Authority, BackendProcessingConfig, BarcodeField, BarcodeResult, BytesData, CardProperties, CertificateChain, CertificateData, Comparison, Coordinate, Customization, CustomizationColors, CustomizationFonts, CustomizationImages, DataField, DocReaderException, DocReaderScenario, DocReaderVersion, DocumentsDatabase, DocumentType, EDLDataGroups, EIDDataGroups, DTCDataGroup, EPassportDataGroups, Extension, FaceApiParams, FaceApiSearchParams, File, FileData, Functionality, GlaresCheckParams, RFIDParams, GraphicField, GraphicResult, ImageInputData, ImageQA, ImageQuality, ImageQualityGroup, InitConfig, License, LivenessParams, OnlineProcessingConfig, OpticalStatus, PAAttribute, PAResourcesIssuer, PDF417Info, PKDCertificate, Position, PrepareProgress, ProcessParams, RecognizeConfig, Rect, Results, ResultsStatus, RFIDException, RFIDNotification, RFIDOrigin, RFIDScenario, RFIDSessionData, AgeStatus, RFIDStatus, RFIDValidity, RFIDValue, ScannerConfig, SecurityObject, SecurityObjectCertificates, SignerInfo, Symbol, TAChallenge, TccParams, TextField, TextResult, TextSource, TransactionInfo, Validity, Value, VDSNCData, VDSData, DocFeature, DeviceRetrievalMethod, DocumentRequest18013MDL, DataRetrieval, DeviceEngagement, NameSpaceMDL, DocumentRequestMDL } from '@regulaforensics/document-reader/www/capacitor'
3
+ import { accessControlProcedureType, application, attribute, authenticityCheck, authenticityElement, authenticityParams, authenticityResult, authority, backendProcessingConfig, barcodeField, barcodeResult, bytesData, cardProperties, certificateChain, certificateData, comparison, coordinate, customization, customizationColors, customizationFonts, customizationImages, dataField, docReaderException, docReaderScenario, docReaderVersion, documentsDatabase, documentType, eDLDataGroups, eIDDataGroups, dtcDataGroup, ePassportDataGroups, extension, faceApiParams, faceApiSearchParams, file, fileData, functionality, glaresCheckParams, rfidParams, graphicField, graphicResult, imageInputData, imageQA, imageQuality, imageQualityGroup, initConfig, license, livenessParams, onlineProcessingConfig, opticalStatus, paAttribute, paResourcesIssuer, pdf417Info, pkdCertificate, position, prepareProgress, processParams, recognizeConfig, recognizeConfig2, rect, results, resultsStatus, rfidException, rfidNotification, rfidOrigin, rfidScenario, rfidSessionData, ageStatus, rfidStatus, rfidValidity, rfidValue, scannerConfig, securityObject, securityObjectCertificates, signerInfo, symbol, taChallenge, tccParams, textField, textResult, textSource, transactionInfo, validity, value, vdsncData, vdsData, docFeature, deviceRetrievalMethod, documentRequest18013MDL, dataRetrieval, deviceEngagement, nameSpaceMDL, documentRequestMDL } from './json'
4
4
 
5
5
  compare('initConfig', initConfig, InitConfig.fromJson)
6
6
  compare('onlineProcessingConfig', onlineProcessingConfig, OnlineProcessingConfig.fromJson)
@@ -65,7 +65,10 @@ compare('securityObject', securityObject, SecurityObject.fromJson)
65
65
  compare('rfidSessionData', rfidSessionData, RFIDSessionData.fromJson)
66
66
  compare('bytesData', bytesData, BytesData.fromJson)
67
67
  compare('vdsncData', vdsncData, VDSNCData.fromJson)
68
+ compare('docFeature', docFeature, DocFeature.fromJson)
69
+ compare('vdsData', vdsData, VDSData.fromJson)
68
70
  compare('opticalStatus', opticalStatus, OpticalStatus.fromJson)
71
+ compare('ageStatus', ageStatus, AgeStatus.fromJson)
69
72
  compare('rfidStatus', rfidStatus, RFIDStatus.fromJson)
70
73
  compare('resultsStatus', resultsStatus, ResultsStatus.fromJson)
71
74
  compare('comparison', comparison, Comparison.fromJson)
@@ -91,3 +94,10 @@ compare('paResourcesIssuer', paResourcesIssuer, PAResourcesIssuer.fromJson)
91
94
  compare('pkdCertificate', pkdCertificate, PKDCertificate.fromJson)
92
95
  compare('taChallenge', taChallenge, TAChallenge.fromJson)
93
96
  compare('tccParams', tccParams, TccParams.fromJson)
97
+
98
+ compare('deviceRetrievalMethod', deviceRetrievalMethod, DeviceRetrievalMethod.fromJson)
99
+ compare('deviceEngagement', deviceEngagement, DeviceEngagement.fromJson);
100
+ compare('nameSpaceMDL', nameSpaceMDL, NameSpaceMDL.fromJson);
101
+ compare('documentRequestMDL', documentRequestMDL, DocumentRequestMDL.fromJson);
102
+ compare('documentRequest18013MDL', documentRequest18013MDL, DocumentRequest18013MDL.fromJson)
103
+ compare('dataRetrieval', dataRetrieval, DataRetrieval.fromJson)
@@ -0,0 +1,55 @@
1
+ import { MDLIntentToRetain } from "./NameSpaceMDL";
2
+ import { DocumentRequestMDL } from "./DocumentRequestMDL";
3
+
4
+ export class DataRetrieval {
5
+ deviceRetrieval
6
+ docRequestPreset
7
+ intentToRetain = MDLIntentToRetain.FALSE
8
+ requests = []
9
+
10
+ constructor(deviceRetrieval) {
11
+ this.deviceRetrieval = deviceRetrieval
12
+ }
13
+
14
+ setDocRequestPreset(docRequestPreset, intentToRetain) {
15
+ this.docRequestPreset = docRequestPreset
16
+ this.intentToRetain = intentToRetain
17
+ }
18
+
19
+ addDocRequest(request) {
20
+ requests.push(request);
21
+ }
22
+
23
+ static fromJson(jsonObject) {
24
+ if (jsonObject == null) return null
25
+ const result = new DataRetrieval(jsonObject["deviceRetrieval"])
26
+
27
+ result.docRequestPreset = jsonObject["docRequestPreset"]
28
+ result.intentToRetain = jsonObject["intentToRetain"]
29
+ result.requests = (jsonObject["requests"]).map(item => DocumentRequestMDL.fromJson(item));
30
+
31
+ return result
32
+ }
33
+
34
+ toJson() {
35
+ return {
36
+ "deviceRetrieval": this.deviceRetrieval,
37
+ "docRequestPreset": this.docRequestPreset,
38
+ "intentToRetain": this.intentToRetain,
39
+ "requests": this.requests.map(item => item.toJson())
40
+ }
41
+ }
42
+ }
43
+
44
+ export const MDLDocRequestPreset = {
45
+ ALL: 0,
46
+ AGE: 1,
47
+ STANDARD_ID: 2,
48
+ TRAVEL: 3,
49
+ DRIVERS_LICENSE: 4,
50
+ }
51
+
52
+ export const MDLDeviceRetrieval = {
53
+ NFC: 1,
54
+ BLE: 2,
55
+ }
@@ -0,0 +1,30 @@
1
+ import { DeviceRetrievalMethod } from "./DeviceRetrievalMethod";
2
+
3
+ export class DeviceEngagement {
4
+ deviceRetrievalMethods = []
5
+
6
+ static fromJson(jsonObject) {
7
+ if (jsonObject == null) return null
8
+ const result = new DeviceEngagement()
9
+
10
+ for (var item of jsonObject["deviceRetrievalMethods"]) {
11
+ item = DeviceRetrievalMethod.fromJson(item);
12
+ if (item != null) {
13
+ result.deviceRetrievalMethods.push(item);
14
+ }
15
+ }
16
+
17
+ return result
18
+ }
19
+
20
+ toJson() {
21
+ return {
22
+ "deviceRetrievalMethods": this.deviceRetrievalMethods.map(e => e.toJson()),
23
+ }
24
+ }
25
+ }
26
+
27
+ export const MDLDeviceEngagement = {
28
+ QR: 0,
29
+ NFC: 1,
30
+ }
@@ -0,0 +1,41 @@
1
+ import { MDLDeviceRetrieval } from "./DataRetrieval";
2
+
3
+ export class DeviceRetrievalMethod {
4
+ type
5
+ version
6
+ cmdMaxLength
7
+ respMaxLength
8
+ clientModeSupport
9
+ clientModeUUID
10
+ serverModeSupport
11
+ serverModeUUID
12
+
13
+ static fromJson(jsonObject) {
14
+ if (jsonObject == null) return null
15
+ const result = new DeviceRetrievalMethod()
16
+
17
+ result.type = jsonObject["type"]
18
+ result.version = jsonObject["version"]
19
+ result.cmdMaxLength = jsonObject["cmdMaxLength"]
20
+ result.respMaxLength = jsonObject["respMaxLength"]
21
+ result.clientModeSupport = jsonObject["clientModeSupport"]
22
+ result.clientModeUUID = jsonObject["clientModeUUID"]
23
+ result.serverModeSupport = jsonObject["serverModeSupport"]
24
+ result.serverModeUUID = jsonObject["serverModeUUID"]
25
+
26
+ return result
27
+ }
28
+
29
+ toJson() {
30
+ return {
31
+ "type": this.type,
32
+ "version": this.version,
33
+ "cmdMaxLength": this.cmdMaxLength,
34
+ "respMaxLength": this.respMaxLength,
35
+ "clientModeSupport": this.clientModeSupport,
36
+ "clientModeUUID": this.clientModeUUID,
37
+ "serverModeSupport": this.serverModeSupport,
38
+ "serverModeUUID": this.serverModeUUID,
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,212 @@
1
+ import { NameSpaceMDL, MDLIntentToRetain } from "./NameSpaceMDL";
2
+
3
+ export class DocumentRequestMDL {
4
+ docType
5
+ namespaces = []
6
+
7
+ constructor(docType) {
8
+ this.docType = docType
9
+ }
10
+
11
+ addNameSpace(namespace) {
12
+ this.namespaces.push(namespace);
13
+ }
14
+
15
+ static fromJson(jsonObject) {
16
+ if (jsonObject == null) return null;
17
+ var docType = jsonObject["docType"];
18
+ if (docType == "org.iso.18013.5.1.mDL") {
19
+ return DocumentRequest18013MDL.fromJson(jsonObject);
20
+ }
21
+ var result = new DocumentRequestMDL(docType);
22
+
23
+ result.namespaces = (jsonObject["namespaces"]).map(item => NameSpaceMDL.fromJson(item));
24
+
25
+ return result;
26
+ }
27
+
28
+ toJson() {
29
+ return {
30
+ "docType": this.docType,
31
+ "namespaces": this.namespaces.map(item => item.toJson())
32
+ }
33
+ }
34
+ }
35
+
36
+ export class DocumentRequest18013MDL extends DocumentRequestMDL {
37
+ familyName
38
+ givenName
39
+ birthDate
40
+ issueDate
41
+ expiryDate
42
+ issuingCountry
43
+ issuingAuthority
44
+ documentNumber
45
+ portrait
46
+ drivingPrivileges
47
+ unDistinguishingSign
48
+ administrativeNumber
49
+ sex
50
+ height
51
+ weight
52
+ eyeColour
53
+ hairColour
54
+ birthPlace
55
+ residentAddress
56
+ portraitCaptureDate
57
+ ageInYears
58
+ ageBirthYear
59
+ ageOver18
60
+ issuingJurisdiction
61
+ nationality
62
+ residentCity
63
+ residentState
64
+ residentPostalCode
65
+ residentCountry
66
+ biometricTemplateFace
67
+ biometricTemplateIris
68
+ biometricTemplateFinger
69
+ biometricTemplateSignatureSign
70
+ familyNameNationalCharacter
71
+ givenNameNationalCharacter
72
+ signatureUsualMark
73
+
74
+ constructor() {
75
+ super("org.iso.18013.5.1.mDL")
76
+ }
77
+
78
+ disableIntentToRetainValues() {
79
+ this.setAll(MDLIntentToRetain.FALSE);
80
+ }
81
+
82
+ enableIntentToRetainValues() {
83
+ this.setAll(MDLIntentToRetain.TRUE);
84
+ }
85
+
86
+ setAll(value) {
87
+ this.familyName = value;
88
+ this.givenName = value;
89
+ this.birthDate = value;
90
+ this.issueDate = value;
91
+ this.expiryDate = value;
92
+ this.issuingCountry = value;
93
+ this.issuingAuthority = value;
94
+ this.documentNumber = value;
95
+ this.portrait = value;
96
+ this.drivingPrivileges = value;
97
+ this.unDistinguishingSign = value;
98
+ this.administrativeNumber = value;
99
+ this.sex = value;
100
+ this.height = value;
101
+ this.weight = value;
102
+ this.eyeColour = value;
103
+ this.hairColour = value;
104
+ this.birthPlace = value;
105
+ this.residentAddress = value;
106
+ this.portraitCaptureDate = value;
107
+ this.ageInYears = value;
108
+ this.ageBirthYear = value;
109
+ this.ageOver18 = value;
110
+ this.issuingJurisdiction = value;
111
+ this.nationality = value;
112
+ this.residentCity = value;
113
+ this.residentState = value;
114
+ this.residentPostalCode = value;
115
+ this.residentCountry = value;
116
+ this.biometricTemplateFace = value;
117
+ this.biometricTemplateIris = value;
118
+ this.biometricTemplateFinger = value;
119
+ this.biometricTemplateSignatureSign = value;
120
+ this.familyNameNationalCharacter = value;
121
+ this.givenNameNationalCharacter = value;
122
+ this.signatureUsualMark = value;
123
+ }
124
+
125
+ static fromJson(jsonObject) {
126
+ if (jsonObject == null) return null
127
+ const result = new DocumentRequest18013MDL()
128
+
129
+ result.namespaces = (jsonObject["namespaces"]).map(item => NameSpaceMDL.fromJson(item));
130
+ result.familyName = jsonObject["familyName"]
131
+ result.givenName = jsonObject["givenName"]
132
+ result.birthDate = jsonObject["birthDate"]
133
+ result.issueDate = jsonObject["issueDate"]
134
+ result.expiryDate = jsonObject["expiryDate"]
135
+ result.issuingCountry = jsonObject["issuingCountry"]
136
+ result.issuingAuthority = jsonObject["issuingAuthority"]
137
+ result.documentNumber = jsonObject["documentNumber"]
138
+ result.portrait = jsonObject["portrait"]
139
+ result.drivingPrivileges = jsonObject["drivingPrivileges"]
140
+ result.unDistinguishingSign = jsonObject["unDistinguishingSign"]
141
+ result.administrativeNumber = jsonObject["administrativeNumber"]
142
+ result.sex = jsonObject["sex"]
143
+ result.height = jsonObject["height"]
144
+ result.weight = jsonObject["weight"]
145
+ result.eyeColour = jsonObject["eyeColour"]
146
+ result.hairColour = jsonObject["hairColour"]
147
+ result.birthPlace = jsonObject["birthPlace"]
148
+ result.residentAddress = jsonObject["residentAddress"]
149
+ result.portraitCaptureDate = jsonObject["portraitCaptureDate"]
150
+ result.ageInYears = jsonObject["ageInYears"]
151
+ result.ageBirthYear = jsonObject["ageBirthYear"]
152
+ result.ageOver18 = jsonObject["ageOver18"]
153
+ result.issuingJurisdiction = jsonObject["issuingJurisdiction"]
154
+ result.nationality = jsonObject["nationality"]
155
+ result.residentCity = jsonObject["residentCity"]
156
+ result.residentState = jsonObject["residentState"]
157
+ result.residentPostalCode = jsonObject["residentPostalCode"]
158
+ result.residentCountry = jsonObject["residentCountry"]
159
+ result.biometricTemplateFace = jsonObject["biometricTemplateFace"]
160
+ result.biometricTemplateIris = jsonObject["biometricTemplateIris"]
161
+ result.biometricTemplateFinger = jsonObject["biometricTemplateFinger"]
162
+ result.biometricTemplateSignatureSign = jsonObject["biometricTemplateSignatureSign"]
163
+ result.familyNameNationalCharacter = jsonObject["familyNameNationalCharacter"]
164
+ result.givenNameNationalCharacter = jsonObject["givenNameNationalCharacter"]
165
+ result.signatureUsualMark = jsonObject["signatureUsualMark"]
166
+
167
+ return result
168
+ }
169
+
170
+ toJson() {
171
+ return {
172
+ "docType": this.docType,
173
+ "namespaces": this.namespaces.map(item => item.toJson()),
174
+ "familyName": this.familyName,
175
+ "givenName": this.givenName,
176
+ "birthDate": this.birthDate,
177
+ "issueDate": this.issueDate,
178
+ "expiryDate": this.expiryDate,
179
+ "issuingCountry": this.issuingCountry,
180
+ "issuingAuthority": this.issuingAuthority,
181
+ "documentNumber": this.documentNumber,
182
+ "portrait": this.portrait,
183
+ "drivingPrivileges": this.drivingPrivileges,
184
+ "unDistinguishingSign": this.unDistinguishingSign,
185
+ "administrativeNumber": this.administrativeNumber,
186
+ "sex": this.sex,
187
+ "height": this.height,
188
+ "weight": this.weight,
189
+ "eyeColour": this.eyeColour,
190
+ "hairColour": this.hairColour,
191
+ "birthPlace": this.birthPlace,
192
+ "residentAddress": this.residentAddress,
193
+ "portraitCaptureDate": this.portraitCaptureDate,
194
+ "ageInYears": this.ageInYears,
195
+ "ageBirthYear": this.ageBirthYear,
196
+ "ageOver18": this.ageOver18,
197
+ "issuingJurisdiction": this.issuingJurisdiction,
198
+ "nationality": this.nationality,
199
+ "residentCity": this.residentCity,
200
+ "residentState": this.residentState,
201
+ "residentPostalCode": this.residentPostalCode,
202
+ "residentCountry": this.residentCountry,
203
+ "biometricTemplateFace": this.biometricTemplateFace,
204
+ "biometricTemplateIris": this.biometricTemplateIris,
205
+ "biometricTemplateFinger": this.biometricTemplateFinger,
206
+ "biometricTemplateSignatureSign": this.biometricTemplateSignatureSign,
207
+ "familyNameNationalCharacter": this.familyNameNationalCharacter,
208
+ "givenNameNationalCharacter": this.givenNameNationalCharacter,
209
+ "signatureUsualMark": this.signatureUsualMark,
210
+ }
211
+ }
212
+ }
@@ -0,0 +1,33 @@
1
+ export class NameSpaceMDL {
2
+ name
3
+ map = {}
4
+
5
+ constructor(name) {
6
+ this.name = name
7
+ }
8
+
9
+ addField(name, intentToRetain) {
10
+ this.map[name] = intentToRetain;
11
+ }
12
+
13
+ static fromJson(jsonObject) {
14
+ if (jsonObject == null) return null
15
+ const result = new NameSpaceMDL(jsonObject["name"])
16
+
17
+ result.map = jsonObject["map"]
18
+
19
+ return result
20
+ }
21
+
22
+ toJson() {
23
+ return {
24
+ "name": this.name,
25
+ "map": this.map
26
+ }
27
+ }
28
+ }
29
+
30
+ export const MDLIntentToRetain = {
31
+ FALSE: 0,
32
+ TRUE: 1,
33
+ }
@@ -43,8 +43,9 @@ import { RFIDStatus } from './results/status/RFIDStatus';
43
43
  import { ResultsStatus } from './results/status/ResultsStatus';
44
44
  import { CheckResult } from './results/status/CheckResult';
45
45
  import { OpticalStatus } from './results/status/OpticalStatus';
46
+ import { AgeStatus } from './results/status/AgeStatus';
46
47
  import { ProcessingFinishedStatus } from './results/Results';
47
- export { RFIDStatus, ResultsStatus, CheckResult, OpticalStatus, ProcessingFinishedStatus };
48
+ export { RFIDStatus, ResultsStatus, CheckResult, OpticalStatus, AgeStatus, ProcessingFinishedStatus };
48
49
 
49
50
  import { CheckDiagnose } from './results/authenticity/CheckDiagnose';
50
51
  import { AuthenticityElement } from './results/authenticity/AuthenticityElement';
@@ -69,8 +70,10 @@ export { ImageQuality, ImageQualityGroup, ImageQualityCheckType };
69
70
  import { LDSParsingErrorCodes } from './results/visible_digital_seals/LDSParsingErrorCodes';
70
71
  import { VDSNCData } from './results/visible_digital_seals/VDSNCData';
71
72
  import { BytesData } from './results/visible_digital_seals/BytesData';
73
+ import { DocFeature } from './results/visible_digital_seals/DocFeature';
74
+ import { VDSData } from './results/visible_digital_seals/VDSData';
72
75
  import { LDSParsingNotificationCodes } from './results/visible_digital_seals/LDSParsingNotificationCodes';
73
- export { LDSParsingErrorCodes, VDSNCData, BytesData, LDSParsingNotificationCodes };
76
+ export { LDSParsingErrorCodes, VDSNCData, BytesData, DocFeature, VDSData, LDSParsingNotificationCodes };
74
77
 
75
78
  import { SecurityObject } from './results/rfid/SecurityObject';
76
79
  import { CardProperties } from './results/rfid/CardProperties';
@@ -131,6 +134,13 @@ import { TAChallenge } from './rfid/TAChallenge';
131
134
  import { PKDCertificate, PKDResourceType } from './rfid/PKDCertificate';
132
135
  export { PAResourcesIssuer, RFIDErrorCodes, TccParams, RFIDNotification, RFIDNotificationCodes, PAAttribute, TAChallenge, PKDCertificate, PKDResourceType };
133
136
 
137
+ import { DataRetrieval, MDLDocRequestPreset, MDLDeviceRetrieval } from './engagement/DataRetrieval';
138
+ import { DeviceEngagement, MDLDeviceEngagement } from './engagement/DeviceEngagement';
139
+ import { NameSpaceMDL, MDLIntentToRetain } from './engagement/NameSpaceMDL';
140
+ import { DocumentRequestMDL, DocumentRequest18013MDL } from './engagement/DocumentRequestMDL';
141
+ import { DeviceRetrievalMethod } from './engagement/DeviceRetrievalMethod';
142
+ export { DataRetrieval, MDLDocRequestPreset, MDLDeviceRetrieval, DeviceEngagement, MDLDeviceEngagement, DeviceRetrievalMethod, DocumentRequest18013MDL, MDLIntentToRetain, NameSpaceMDL, DocumentRequestMDL };
143
+
134
144
  export class DocumentReader {
135
145
  static get instance() { return DocumentReader._instance }
136
146
  static _instance = new DocumentReader()
@@ -371,6 +381,48 @@ export class DocumentReader {
371
381
  exec("endBackendTransaction", []);
372
382
  }
373
383
 
384
+ async readMDL(type, retrieval) {
385
+ var response = await exec("startReadMDl", [type, retrieval.toJson()]);
386
+ var jsonObject = JSON.parse(response);
387
+ return [
388
+ jsonObject["action"],
389
+ Results.fromJson(jsonObject["results"]),
390
+ DocReaderException.fromJson(jsonObject["error"]),
391
+ ]
392
+ }
393
+
394
+ async engageDevice(type, options) {
395
+ var response = "";
396
+ if (options?.withoutUI != true) {
397
+ response = await exec("startEngageDevice", [type.value]);
398
+ } else if (type == MDLDeviceEngagement.NFC) {
399
+ response = await exec("engageDeviceNFC", []);
400
+ } else if (type == MDLDeviceEngagement.QR && options?.data != null) {
401
+ response = await exec("engageDeviceData", [options.data]);
402
+ }
403
+
404
+ var jsonObject = JSON.parse(response);
405
+ return [
406
+ DeviceEngagement.fromJson(jsonObject["deviceEngagement"]),
407
+ DocReaderException.fromJson(jsonObject["error"]),
408
+ ]
409
+ }
410
+
411
+ async retrieveData(retrieval, options) {
412
+ var func = "startRetrieveData";
413
+ if (options?.withoutUI == MDLDeviceRetrieval.NFC) func = "engageDeviceNFC";
414
+ if (options?.withoutUI == MDLDeviceRetrieval.BLE) func = "engageDeviceBLE";
415
+
416
+ var response = await exec(func, [retrieval.toJson(), options?.engagement?.toJson()]);
417
+ var jsonObject = JSON.parse(response);
418
+
419
+ return [
420
+ jsonObject["action"],
421
+ Results.fromJson(jsonObject["results"]),
422
+ DocReaderException.fromJson(jsonObject["error"]),
423
+ ]
424
+ }
425
+
374
426
  _successOrErrorFromJson(jsonString) {
375
427
  var jsonObject = JSON.parse(jsonString);
376
428
  var success = jsonObject["success"];
@@ -53,6 +53,7 @@ export const ErrorCodes = {
53
53
  CAMERA_NO_PERMISSION: 29,
54
54
  CAMERA_NOT_AVAILABLE: 30,
55
55
  CANNOT_USE_CAMERA_IN_SCENARIO: 40,
56
+ BLUETOOTH_NO_PERMISSION: 41,
56
57
  BACKEND_ONLINE_PROCESSING: 303,
57
58
  WRONG_INPUT: 400,
58
59
  RESULT_UNAVAILABLE: 410,
@@ -62,5 +63,6 @@ export const ErrorCodes = {
62
63
  FEATURE_BLUETOOTH_LE_NOT_SUPPORTED: 601,
63
64
  APP_BACKGROUND: 700,
64
65
  ONLINE_PROCESSING_WRONG_INPUT: 800,
66
+ MDL_EXCEPTION: 900,
65
67
  NATIVE_JAVA_EXCEPTION: 1000
66
68
  }
@@ -111,6 +111,12 @@ export class Functionality {
111
111
  this._set({ "preventScreenRecording": val });
112
112
  }
113
113
 
114
+ get homeIndicatorAutoHide() { return this._homeIndicatorAutoHide; }
115
+ set homeIndicatorAutoHide(val) {
116
+ this._homeIndicatorAutoHide = val;
117
+ this._set({ "homeIndicatorAutoHide": val });
118
+ }
119
+
114
120
  get showCaptureButtonDelayFromDetect() { return this._showCaptureButtonDelayFromDetect; }
115
121
  set showCaptureButtonDelayFromDetect(val) {
116
122
  this._showCaptureButtonDelayFromDetect = val;
@@ -189,6 +195,12 @@ export class Functionality {
189
195
  this._set({ "videoRecordingSizeDownscaleFactor": val });
190
196
  }
191
197
 
198
+ get mdlTimeout() { return this._mdlTimeout; }
199
+ set mdlTimeout(val) {
200
+ this._mdlTimeout = val;
201
+ this._set({ "mdlTimeout": val });
202
+ }
203
+
192
204
  get excludedCamera2Models() { return this._excludedCamera2Models; }
193
205
  set excludedCamera2Models(val) {
194
206
  this._excludedCamera2Models = val;
@@ -229,6 +241,7 @@ export class Functionality {
229
241
  result._singleResult = jsonObject["singleResult"];
230
242
  result._torchTurnedOn = jsonObject["torchTurnedOn"];
231
243
  result._preventScreenRecording = jsonObject["preventScreenRecording"];
244
+ result._homeIndicatorAutoHide = jsonObject["homeIndicatorAutoHide"];
232
245
  result._showCaptureButtonDelayFromDetect = jsonObject["showCaptureButtonDelayFromDetect"];
233
246
  result._showCaptureButtonDelayFromStart = jsonObject["showCaptureButtonDelayFromStart"];
234
247
  result._rfidTimeout = jsonObject["rfidTimeout"];
@@ -242,6 +255,7 @@ export class Functionality {
242
255
  result._zoomFactor = jsonObject["zoomFactor"];
243
256
  result._exposure = jsonObject["exposure"];
244
257
  result._videoRecordingSizeDownscaleFactor = jsonObject["videoRecordingSizeDownscaleFactor"];
258
+ result._mdlTimeout = jsonObject["mdlTimeout"];
245
259
  result._excludedCamera2Models = jsonObject["excludedCamera2Models"];
246
260
  result._cameraResolutionAndroid = CameraSize.fromJson(jsonObject["cameraSize"]);
247
261
  result._cameraResolutionIOS = jsonObject["videoSessionPreset"];
@@ -269,6 +283,7 @@ export class Functionality {
269
283
  "singleResult": this.singleResult,
270
284
  "torchTurnedOn": this.torchTurnedOn,
271
285
  "preventScreenRecording": this.preventScreenRecording,
286
+ "homeIndicatorAutoHide": this.homeIndicatorAutoHide,
272
287
  "showCaptureButtonDelayFromDetect": this.showCaptureButtonDelayFromDetect,
273
288
  "showCaptureButtonDelayFromStart": this.showCaptureButtonDelayFromStart,
274
289
  "rfidTimeout": this.rfidTimeout,
@@ -282,6 +297,7 @@ export class Functionality {
282
297
  "zoomFactor": this.zoomFactor,
283
298
  "exposure": this.exposure,
284
299
  "videoRecordingSizeDownscaleFactor": this.videoRecordingSizeDownscaleFactor,
300
+ "mdlTimeout": this.mdlTimeout,
285
301
  "excludedCamera2Models": this.excludedCamera2Models,
286
302
  "cameraSize": this.cameraResolutionAndroid?.toJson(),
287
303
  "videoSessionPreset": this.cameraResolutionIOS,
@@ -240,6 +240,12 @@ export class Customization {
240
240
  this._set({ "cameraPreviewVerticalPositionMultiplier": val });
241
241
  }
242
242
 
243
+ get multipageButtonPositionMultiplier() { return this._multipageButtonPositionMultiplier; }
244
+ set multipageButtonPositionMultiplier(val) {
245
+ this._multipageButtonPositionMultiplier = val;
246
+ this._set({ "multipageButtonPositionMultiplier": val });
247
+ }
248
+
243
249
  get multipageAnimationFrontImage() { return this._multipageAnimationFrontImage; }
244
250
  set multipageAnimationFrontImage(val) {
245
251
  this._multipageAnimationFrontImage = val;
@@ -476,6 +482,7 @@ export class Customization {
476
482
  result._activityIndicatorPortraitPositionMultiplier = jsonObject["activityIndicatorPortraitPositionMultiplier"];
477
483
  result._activityIndicatorLandscapePositionMultiplier = jsonObject["activityIndicatorLandscapePositionMultiplier"];
478
484
  result._cameraPreviewVerticalPositionMultiplier = jsonObject["cameraPreviewVerticalPositionMultiplier"];
485
+ result._multipageButtonPositionMultiplier = jsonObject["multipageButtonPositionMultiplier"];
479
486
  result._multipageAnimationFrontImage = jsonObject["multipageAnimationFrontImage"];
480
487
  result._multipageAnimationBackImage = jsonObject["multipageAnimationBackImage"];
481
488
  result._borderBackgroundImage = jsonObject["borderBackgroundImage"];
@@ -554,6 +561,7 @@ export class Customization {
554
561
  "activityIndicatorPortraitPositionMultiplier": this.activityIndicatorPortraitPositionMultiplier,
555
562
  "activityIndicatorLandscapePositionMultiplier": this.activityIndicatorLandscapePositionMultiplier,
556
563
  "cameraPreviewVerticalPositionMultiplier": this.cameraPreviewVerticalPositionMultiplier,
564
+ "multipageButtonPositionMultiplier": this.multipageButtonPositionMultiplier,
557
565
  "multipageAnimationFrontImage": this.multipageAnimationFrontImage,
558
566
  "multipageAnimationBackImage": this.multipageAnimationBackImage,
559
567
  "borderBackgroundImage": this.borderBackgroundImage,
@@ -247,6 +247,12 @@ export class ProcessParams {
247
247
  this._set({ "returnTransliteratedFields": val });
248
248
  }
249
249
 
250
+ get checkCaptureProcessIntegrity() { return this._checkCaptureProcessIntegrity; }
251
+ set checkCaptureProcessIntegrity(val) {
252
+ this._checkCaptureProcessIntegrity = val;
253
+ this._set({ "checkCaptureProcessIntegrity": val });
254
+ }
255
+
250
256
  get barcodeParserType() { return this._barcodeParserType; }
251
257
  set barcodeParserType(val) {
252
258
  this._barcodeParserType = val;
@@ -439,6 +445,12 @@ export class ProcessParams {
439
445
  this._set({ "lcidFilter": val });
440
446
  }
441
447
 
448
+ get fieldTypesIgnoreFilter() { return this._fieldTypesIgnoreFilter; }
449
+ set fieldTypesIgnoreFilter(val) {
450
+ this._fieldTypesIgnoreFilter = val;
451
+ this._set({ "fieldTypesIgnoreFilter": val });
452
+ }
453
+
442
454
  _imageQA = new ImageQA();
443
455
  get imageQA() { return this._imageQA; }
444
456
  set imageQA(val) { (this._imageQA = val)._apply(); }
@@ -515,6 +527,7 @@ export class ProcessParams {
515
527
  result._disableAuthResolutionFilter = jsonObject["disableAuthResolutionFilter"];
516
528
  result._strictSecurityChecks = jsonObject["strictSecurityChecks"];
517
529
  result._returnTransliteratedFields = jsonObject["returnTransliteratedFields"];
530
+ result._checkCaptureProcessIntegrity = jsonObject["checkCaptureProcessIntegrity"];
518
531
  result._barcodeParserType = jsonObject["barcodeParserType"];
519
532
  result._perspectiveAngle = jsonObject["perspectiveAngle"];
520
533
  result._minDPI = jsonObject["minDPI"];
@@ -547,6 +560,7 @@ export class ProcessParams {
547
560
  result._documentGroupFilter = jsonObject["documentGroupFilter"];
548
561
  result._lcidIgnoreFilter = jsonObject["lcidIgnoreFilter"];
549
562
  result._lcidFilter = jsonObject["lcidFilter"];
563
+ result._fieldTypesIgnoreFilter = jsonObject["fieldTypesIgnoreFilter"];
550
564
  result._imageQA = ImageQA.fromJson(jsonObject["imageQA"]);
551
565
  result._rfidParams = RFIDParams.fromJson(jsonObject["rfidParams"]);
552
566
  result._faceApiParams = FaceApiParams.fromJson(jsonObject["faceApiParams"]);
@@ -598,6 +612,7 @@ export class ProcessParams {
598
612
  "disableAuthResolutionFilter": this.disableAuthResolutionFilter,
599
613
  "strictSecurityChecks": this.strictSecurityChecks,
600
614
  "returnTransliteratedFields": this.returnTransliteratedFields,
615
+ "checkCaptureProcessIntegrity": this.checkCaptureProcessIntegrity,
601
616
  "measureSystem": this.measureSystem,
602
617
  "barcodeParserType": this.barcodeParserType,
603
618
  "perspectiveAngle": this.perspectiveAngle,
@@ -630,6 +645,7 @@ export class ProcessParams {
630
645
  "documentGroupFilter": this.documentGroupFilter,
631
646
  "lcidIgnoreFilter": this.lcidIgnoreFilter,
632
647
  "lcidFilter": this.lcidFilter,
648
+ "fieldTypesIgnoreFilter": this.fieldTypesIgnoreFilter,
633
649
  "imageQA": this.imageQA?.toJson(),
634
650
  "rfidParams": this.rfidParams?.toJson(),
635
651
  "faceApiParams": this.faceApiParams?.toJson(),