@regulaforensics/react-native-document-reader-api 7.6.39-beta → 7.6.58

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.
@@ -12,8 +12,8 @@ Pod::Spec.new do |s|
12
12
  s.homepage = 'https://regulaforensics.com'
13
13
 
14
14
  s.source = { :http => 'file:' + __dir__ }
15
- s.ios.deployment_target = '12.0'
15
+ s.ios.deployment_target = '13.0'
16
16
  s.source_files = "ios/*.{h,m}"
17
- s.dependency 'DocumentReader', '7.5.4221'
17
+ s.dependency 'DocumentReader', '7.6.4456'
18
18
  s.dependency 'React'
19
19
  end
@@ -41,7 +41,7 @@ dependencies {
41
41
  //noinspection GradleDynamicVersion
42
42
  implementation 'com.facebook.react:react-native:+'
43
43
  //noinspection GradleDependency
44
- implementation('com.regula.documentreader:api:7.5.10412') {
44
+ implementation('com.regula.documentreader:api:7.6.11270') {
45
45
  transitive = true
46
46
  }
47
47
  }
@@ -23,9 +23,9 @@ import android.os.Build
23
23
  import android.os.IBinder
24
24
  import android.provider.Settings
25
25
  import androidx.core.content.ContextCompat.checkSelfPermission
26
- import com.regula.documentreader.api.ble.BLEWrapper
27
- import com.regula.documentreader.api.ble.BleWrapperCallback
28
- import com.regula.documentreader.api.ble.RegulaBleService
26
+ import com.regula.common.ble.BLEWrapper
27
+ import com.regula.common.ble.BleWrapperCallback
28
+ import com.regula.common.ble.RegulaBleService
29
29
  import com.regula.documentreader.api.internal.permission.BluetoothPermissionHelper.BLE_ACCESS_PERMISSION
30
30
  import com.regula.documentreader.api.internal.permission.BluetoothSettingsHelper.isBluetoothEnabled
31
31
  import com.regula.documentreader.api.internal.permission.BluetoothSettingsHelper.isLocationServiceEnabled
@@ -55,6 +55,7 @@ fun setFunctionality(functionality: Functionality, opts: JSONObject) = opts.forE
55
55
  "isCameraTorchCheckDisabled" -> editor.setIsCameraTorchCheckDisabled(v as Boolean)
56
56
  "recordScanningProcess" -> editor.setDoRecordProcessingVideo(v as Boolean)
57
57
  "manualMultipageMode" -> editor.setManualMultipageMode(v as Boolean)
58
+ "torchTurnedOn" -> editor.setTorchTurnedOn(v as Boolean)
58
59
  "showCaptureButtonDelayFromDetect" -> editor.setShowCaptureButtonDelayFromDetect(v.toLong())
59
60
  "showCaptureButtonDelayFromStart" -> editor.setShowCaptureButtonDelayFromStart(v.toLong())
60
61
  "orientation" -> editor.setOrientation(v.toInt())
@@ -88,6 +89,7 @@ fun getFunctionality(functionality: Functionality) = mapOf(
88
89
  "isCameraTorchCheckDisabled" to functionality.isCameraTorchCheckDisabled,
89
90
  "recordScanningProcess" to functionality.doRecordProcessingVideo(),
90
91
  "manualMultipageMode" to functionality.isManualMultipageMode,
92
+ "torchTurnedOn" to functionality.isTorchTurnedOn,
91
93
  "showCaptureButtonDelayFromDetect" to functionality.showCaptureButtonDelayFromDetect,
92
94
  "showCaptureButtonDelayFromStart" to functionality.showCaptureButtonDelayFromStart,
93
95
  "orientation" to functionality.orientation,
@@ -142,6 +144,7 @@ fun setProcessParams(processParams: ProcessParam, opts: JSONObject) = opts.forEa
142
144
  "strictBarcodeDigitalSignatureCheck" -> processParams.strictBarcodeDigitalSignatureCheck = v as Boolean
143
145
  "selectLongestNames" -> processParams.selectLongestNames = v as Boolean
144
146
  "generateDTCVC" -> processParams.generateDTCVC = v as Boolean
147
+ "strictDLCategoryExpiry" -> processParams.strictDLCategoryExpiry = v as Boolean
145
148
  "measureSystem" -> processParams.measureSystem = v.toInt()
146
149
  "barcodeParserType" -> processParams.barcodeParserType = v.toInt()
147
150
  "perspectiveAngle" -> processParams.perspectiveAngle = v.toInt()
@@ -160,7 +163,6 @@ fun setProcessParams(processParams: ProcessParam, opts: JSONObject) = opts.forEa
160
163
  "dateFormat" -> processParams.dateFormat = v as String
161
164
  "scenario" -> processParams.scenario = v as String
162
165
  "captureButtonScenario" -> processParams.captureButtonScenario = v as String
163
- "sessionLogFolder" -> processParams.sessionLogFolder = v as String
164
166
  "timeout" -> processParams.timeout = v.toDouble()
165
167
  "timeoutFromFirstDetect" -> processParams.timeoutFromFirstDetect = v.toDouble()
166
168
  "timeoutFromFirstDocType" -> processParams.timeoutFromFirstDocType = v.toDouble()
@@ -224,6 +226,7 @@ fun getProcessParams(processParams: ProcessParam) = mapOf(
224
226
  "strictBarcodeDigitalSignatureCheck" to processParams.strictBarcodeDigitalSignatureCheck,
225
227
  "selectLongestNames" to processParams.selectLongestNames,
226
228
  "generateDTCVC" to processParams.generateDTCVC,
229
+ "strictDLCategoryExpiry" to processParams.strictDLCategoryExpiry,
227
230
  "measureSystem" to processParams.measureSystem,
228
231
  "barcodeParserType" to processParams.barcodeParserType,
229
232
  "perspectiveAngle" to processParams.perspectiveAngle,
@@ -242,7 +245,6 @@ fun getProcessParams(processParams: ProcessParam) = mapOf(
242
245
  "dateFormat" to processParams.dateFormat,
243
246
  "scenario" to processParams.scenario,
244
247
  "captureButtonScenario" to processParams.captureButtonScenario,
245
- "sessionLogFolder" to processParams.sessionLogFolder,
246
248
  "timeout" to processParams.timeout,
247
249
  "timeoutFromFirstDetect" to processParams.timeoutFromFirstDetect,
248
250
  "timeoutFromFirstDocType" to processParams.timeoutFromFirstDocType,
@@ -441,6 +443,8 @@ fun setRfidScenario(rfidScenario: RfidScenario, opts: JSONObject) = opts.forEach
441
443
  "proceedReadingAlways" -> rfidScenario.proceedReadingAlways = v as Boolean
442
444
  "readDTC" -> rfidScenario.isReadDTC = v as Boolean
443
445
  "mrzStrictCheck" -> rfidScenario.isMrzStrictCheck = v as Boolean
446
+ "loadCRLFromRemote" -> rfidScenario.isLoadCRLFromRemote = v as Boolean
447
+ "independentSODStatus" -> rfidScenario.isIndependentSODStatus = v as Boolean
444
448
  "signManagementAction" -> rfidScenario.signManagementAction = v.toInt()
445
449
  "readingBuffer" -> rfidScenario.readingBuffer = v.toInt()
446
450
  "onlineTAToSignDataType" -> rfidScenario.onlineTAToSignDataType = v.toInt()
@@ -460,7 +464,7 @@ fun setRfidScenario(rfidScenario: RfidScenario, opts: JSONObject) = opts.forEach
460
464
  "ePassportDataGroups" -> setDataGroups(rfidScenario.ePassportDataGroups(), v as JSONObject)
461
465
  "eIDDataGroups" -> setDataGroups(rfidScenario.eIDDataGroups(), v as JSONObject)
462
466
  "eDLDataGroups" -> setDataGroups(rfidScenario.eDLDataGroups(), v as JSONObject)
463
- "dtcDataGroups" -> setDataGroups(rfidScenario.DTCDataGroup(), v as JSONObject)
467
+ "dtcDataGroups" -> setDTCDataGroup(rfidScenario.DTCDataGroup(), v as JSONObject)
464
468
  }
465
469
  }
466
470
 
@@ -501,6 +505,8 @@ fun getRfidScenario(rfidScenario: RfidScenario) = mapOf(
501
505
  "proceedReadingAlways" to rfidScenario.proceedReadingAlways,
502
506
  "readDTC" to rfidScenario.isReadDTC,
503
507
  "mrzStrictCheck" to rfidScenario.isMrzStrictCheck,
508
+ "loadCRLFromRemote" to rfidScenario.isLoadCRLFromRemote,
509
+ "independentSODStatus" to rfidScenario.isIndependentSODStatus,
504
510
  "signManagementAction" to rfidScenario.signManagementAction,
505
511
  "readingBuffer" to rfidScenario.readingBuffer,
506
512
  "onlineTAToSignDataType" to rfidScenario.onlineTAToSignDataType,
@@ -520,7 +526,7 @@ fun getRfidScenario(rfidScenario: RfidScenario) = mapOf(
520
526
  "ePassportDataGroups" to getDataGroups(rfidScenario.ePassportDataGroups()),
521
527
  "eIDDataGroups" to getDataGroups(rfidScenario.eIDDataGroups()),
522
528
  "eDLDataGroups" to getDataGroups(rfidScenario.eDLDataGroups()),
523
- "dtcDataGroups" to getDataGroups(rfidScenario.DTCDataGroup())
529
+ "dtcDataGroups" to getDTCDataGroup(rfidScenario.DTCDataGroup())
524
530
  ).toJsonObject()
525
531
 
526
532
  fun setDataGroups(dataGroup: DataGroups, opts: JSONObject) = opts.forEach { k, v ->
@@ -554,15 +560,6 @@ fun setDataGroups(dataGroup: DataGroups, opts: JSONObject) = opts.forEach { k, v
554
560
  "DG20" -> dataGroup.isDG20 = value
555
561
  "DG21" -> dataGroup.isDG21 = value
556
562
  }
557
- if (dataGroup is DTCDataGroup) when (k) {
558
- "DG15" -> dataGroup.isDG15 = value
559
- "DG16" -> dataGroup.isDG16 = value
560
- "DG17" -> dataGroup.isDG17 = value
561
- "DG18" -> dataGroup.isDG18 = value
562
- "DG22" -> dataGroup.isDG22 = value
563
- "DG23" -> dataGroup.isDG23 = value
564
- "DG24" -> dataGroup.isDG24 = value
565
- }
566
563
  }
567
564
 
568
565
  fun getDataGroups(dataGroup: DataGroups): JSONObject {
@@ -595,18 +592,28 @@ fun getDataGroups(dataGroup: DataGroups): JSONObject {
595
592
  result["DG20"] = dataGroup.isDG20
596
593
  result["DG21"] = dataGroup.isDG21
597
594
  }
598
- if (dataGroup is DTCDataGroup) {
599
- result["DG15"] = dataGroup.isDG15
600
- result["DG16"] = dataGroup.isDG16
601
- result["DG17"] = dataGroup.isDG17
602
- result["DG18"] = dataGroup.isDG18
603
- result["DG22"] = dataGroup.isDG22
604
- result["DG23"] = dataGroup.isDG23
605
- result["DG24"] = dataGroup.isDG24
606
- }
607
595
  return result.toJsonObject()
608
596
  }
609
597
 
598
+ fun setDTCDataGroup(dataGroup: DTCDataGroup, opts: JSONObject) = opts.forEach { k, v ->
599
+ val value = v as Boolean
600
+ when (k) {
601
+ "DG17" -> dataGroup.isDG17 = value
602
+ "DG18" -> dataGroup.isDG18 = value
603
+ "DG22" -> dataGroup.isDG22 = value
604
+ "DG23" -> dataGroup.isDG23 = value
605
+ "DG24" -> dataGroup.isDG24 = value
606
+ }
607
+ }
608
+
609
+ fun getDTCDataGroup(dataGroup: DTCDataGroup) = mapOf(
610
+ "DG17" to dataGroup.isDG17,
611
+ "DG18" to dataGroup.isDG18,
612
+ "DG22" to dataGroup.isDG22,
613
+ "DG23" to dataGroup.isDG23,
614
+ "DG24" to dataGroup.isDG24,
615
+ ).toJsonObject()
616
+
610
617
  fun setImageQA(input: ImageQA, opts: JSONObject) = opts.forEach { k, v ->
611
618
  when (k) {
612
619
  "focusCheck" -> input.focusCheck = v as Boolean
@@ -619,6 +626,7 @@ fun setImageQA(input: ImageQA, opts: JSONObject) = opts.forEach { k, v ->
619
626
  "brightnessThreshold" -> input.brightnessThreshold = v.toDouble()
620
627
  "expectedPass" -> input.expectedPass = v.toIntArray()
621
628
  "glaresCheckParams" -> input.glaresCheckParams = glaresCheckParamsFromJSON(v as JSONObject)
629
+ "occlusionCheck" -> input.occlusionCheck = v as Boolean
622
630
  }
623
631
  }
624
632
 
@@ -633,6 +641,7 @@ fun getImageQA(input: ImageQA) = mapOf(
633
641
  "brightnessThreshold" to input.brightnessThreshold,
634
642
  "expectedPass" to input.expectedPass.generate(),
635
643
  "glaresCheckParams" to generateGlaresCheckParams(input.glaresCheckParams),
644
+ "occlusionCheck" to input.occlusionCheck,
636
645
  ).toJsonObject()
637
646
 
638
647
  fun setAuthenticityParams(input: AuthenticityParams, opts: JSONObject) = opts.forEach { k, v ->
@@ -651,6 +660,7 @@ fun setAuthenticityParams(input: AuthenticityParams, opts: JSONObject) = opts.fo
651
660
  "checkPhotoEmbedding" -> input.checkPhotoEmbedding = v as Boolean
652
661
  "checkPhotoComparison" -> input.checkPhotoComparison = v as Boolean
653
662
  "checkLetterScreen" -> input.checkLetterScreen = v as Boolean
663
+ "checkSecurityText" -> input.checkSecurityText = v as Boolean
654
664
  "livenessParams" -> {
655
665
  if (input.livenessParams == null) input.livenessParams = LivenessParams.defaultParams()
656
666
  setLivenessParams(input.livenessParams!!, v as JSONObject)
@@ -674,6 +684,7 @@ fun getAuthenticityParams(input: AuthenticityParams?) = input?.let {
674
684
  "checkPhotoEmbedding" to it.checkPhotoEmbedding,
675
685
  "checkPhotoComparison" to it.checkPhotoComparison,
676
686
  "checkLetterScreen" to it.checkLetterScreen,
687
+ "checkSecurityText" to it.checkSecurityText,
677
688
  "livenessParams" to getLivenessParams(it.livenessParams)
678
689
  ).toJsonObject()
679
690
  }
@@ -684,6 +695,8 @@ fun setLivenessParams(input: LivenessParams, opts: JSONObject) = opts.forEach {
684
695
  "checkMLI" -> input.checkMLI = v as Boolean
685
696
  "checkHolo" -> input.checkHolo = v as Boolean
686
697
  "checkED" -> input.checkED = v as Boolean
698
+ "checkBlackAndWhiteCopy" -> input.checkBlackAndWhiteCopy = v as Boolean
699
+ "checkDynaprint" -> input.checkDynaprint = v as Boolean
687
700
  }
688
701
  }
689
702
 
@@ -692,7 +705,9 @@ fun getLivenessParams(input: LivenessParams?) = input?.let {
692
705
  "checkOVI" to input.checkOVI,
693
706
  "checkMLI" to input.checkMLI,
694
707
  "checkHolo" to input.checkHolo,
695
- "checkED" to input.checkED
708
+ "checkED" to input.checkED,
709
+ "checkBlackAndWhiteCopy" to input.checkBlackAndWhiteCopy,
710
+ "checkDynaprint" to input.checkDynaprint,
696
711
  ).toJsonObject()
697
712
  }
698
713
 
@@ -178,6 +178,7 @@ fun transactionInfoFromJSON(temp: JSONObject?): TransactionInfo? {
178
178
 
179
179
  if (input.has("transactionId")) result.transactionId = input.getString("transactionId")
180
180
  if (input.has("tag")) result.tag = input.getString("tag")
181
+ if (input.has("sessionLogFolder")) result.sessionLogFolder = input.getString("sessionLogFolder")
181
182
 
182
183
  return result
183
184
  }
@@ -189,6 +190,7 @@ fun generateTransactionInfo(temp: TransactionInfo?): JSONObject? {
189
190
 
190
191
  result.put("transactionId", input.transactionId)
191
192
  result.put("tag", input.tag)
193
+ result.put("sessionLogFolder", input.sessionLogFolder)
192
194
 
193
195
  return result
194
196
  }
@@ -532,13 +534,13 @@ fun eIDDataGroupsFromJSON(input: JSONObject): EIDDataGroups {
532
534
 
533
535
  fun generateEIDDataGroups(input: EIDDataGroups): JSONObject = getDataGroups(input)
534
536
 
535
- fun dtcDataGroupsFromJSON(input: JSONObject): DTCDataGroup {
537
+ fun dtcDataGroupFromJSON(input: JSONObject): DTCDataGroup {
536
538
  val result = DTCDataGroup()
537
- setDataGroups(result, input)
539
+ setDTCDataGroup(result, input)
538
540
  return result
539
541
  }
540
542
 
541
- fun generateDTCDataGroups(input: DTCDataGroup): JSONObject = getDataGroups(input)
543
+ fun generateDTCDataGroup(input: DTCDataGroup): JSONObject = getDTCDataGroup(input)
542
544
 
543
545
  fun rfidScenarioFromJSON(input: JSONObject): RfidScenario {
544
546
  val result = RfidScenario()
@@ -1721,6 +1723,7 @@ fun generateDocumentReaderAuthenticityResult(temp: DocumentReaderAuthenticityRes
1721
1723
  temp ?: return null
1722
1724
  val input: DocumentReaderAuthenticityResult = temp
1723
1725
 
1726
+ @Suppress("DEPRECATION")
1724
1727
  result.put("status", input.status)
1725
1728
  result.put("checks", generateList(input.checks, ::generateDocumentReaderAuthenticityCheck, context))
1726
1729
 
@@ -2189,7 +2192,7 @@ fun documentReaderResultsFromJSON(temp: JSONObject?): DocumentReaderResults? {
2189
2192
  result.status = documentReaderResultsStatusFromJSON(input.optJSONObject("status"))!!
2190
2193
  result.vdsncData = vdsncDataFromJSON(input.optJSONObject("vdsncData")!!)
2191
2194
  result.dtcData = input.getString("dtcData")
2192
- result.transactionInfo = transactionInfoFromJSON(input.optJSONObject("transactionInfo"))
2195
+ result.transactionInfo = transactionInfoFromJSON(input.optJSONObject("transactionInfo"))!!
2193
2196
 
2194
2197
  return result
2195
2198
  }
@@ -448,7 +448,7 @@
448
448
  "$(inherited)",
449
449
  );
450
450
  INFOPLIST_FILE = DocumentReaderTests/Info.plist;
451
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
451
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
452
452
  LD_RUNPATH_SEARCH_PATHS = (
453
453
  "$(inherited)",
454
454
  "@executable_path/Frameworks",
@@ -477,7 +477,7 @@
477
477
  BUNDLE_LOADER = "$(TEST_HOST)";
478
478
  COPY_PHASE_STRIP = NO;
479
479
  INFOPLIST_FILE = DocumentReaderTests/Info.plist;
480
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
480
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
481
481
  LD_RUNPATH_SEARCH_PATHS = (
482
482
  "$(inherited)",
483
483
  "@executable_path/Frameworks",
@@ -612,7 +612,7 @@
612
612
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
613
613
  GCC_WARN_UNUSED_FUNCTION = YES;
614
614
  GCC_WARN_UNUSED_VARIABLE = YES;
615
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
615
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
616
616
  LD_RUNPATH_SEARCH_PATHS = (
617
617
  /usr/lib/swift,
618
618
  "$(inherited)",
@@ -678,7 +678,7 @@
678
678
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
679
679
  GCC_WARN_UNUSED_FUNCTION = YES;
680
680
  GCC_WARN_UNUSED_VARIABLE = YES;
681
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
681
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
682
682
  LD_RUNPATH_SEARCH_PATHS = (
683
683
  /usr/lib/swift,
684
684
  "$(inherited)",
@@ -1,3 +1,5 @@
1
+ source "https://github.com/CocoaPods/Specs.git"
2
+
1
3
  # Resolve react_native_pods.rb with node to allow for hoisting
2
4
  require Pod::Executable.execute_command('node', ['-p',
3
5
  'require.resolve(
@@ -10,8 +10,8 @@
10
10
  "test": "jest"
11
11
  },
12
12
  "dependencies": {
13
- "@regulaforensics/react-native-document-reader-api": "7.6.39-beta",
14
- "@regulaforensics/react-native-document-reader-core-fullauthrfid": "7.5.893",
13
+ "@regulaforensics/react-native-document-reader-api": "7.6.58",
14
+ "@regulaforensics/react-native-document-reader-core-fullauthrfid": "7.6.43",
15
15
  "react-native-progress": "5.0.0",
16
16
  "react-native-radio-buttons-group": "3.0.5",
17
17
  "@rneui/base": "4.0.0-rc.7",
package/index.d.ts CHANGED
@@ -1625,6 +1625,7 @@ export class DocReaderVersion {
1625
1625
  export class TransactionInfo {
1626
1626
  transactionId?: string
1627
1627
  tag?: string
1628
+ sessionLogFolder?: string
1628
1629
 
1629
1630
  static fromJson(jsonObject?: any): TransactionInfo | undefined {
1630
1631
  if (jsonObject == null || jsonObject == undefined) return undefined
@@ -1632,6 +1633,7 @@ export class TransactionInfo {
1632
1633
 
1633
1634
  result.transactionId = jsonObject["transactionId"]
1634
1635
  result.tag = jsonObject["tag"]
1636
+ result.sessionLogFolder = jsonObject["sessionLogFolder"]
1635
1637
 
1636
1638
  return result
1637
1639
  }
@@ -1823,6 +1825,7 @@ export class Functionality {
1823
1825
  recordScanningProcess?: boolean
1824
1826
  manualMultipageMode?: boolean
1825
1827
  singleResult?: boolean
1828
+ torchTurnedOn?: boolean
1826
1829
  showCaptureButtonDelayFromDetect?: number
1827
1830
  showCaptureButtonDelayFromStart?: number
1828
1831
  rfidTimeout?: number
@@ -1859,6 +1862,7 @@ export class Functionality {
1859
1862
  result.recordScanningProcess = jsonObject["recordScanningProcess"]
1860
1863
  result.manualMultipageMode = jsonObject["manualMultipageMode"]
1861
1864
  result.singleResult = jsonObject["singleResult"]
1865
+ result.torchTurnedOn = jsonObject["torchTurnedOn"]
1862
1866
  result.showCaptureButtonDelayFromDetect = jsonObject["showCaptureButtonDelayFromDetect"]
1863
1867
  result.showCaptureButtonDelayFromStart = jsonObject["showCaptureButtonDelayFromStart"]
1864
1868
  result.rfidTimeout = jsonObject["rfidTimeout"]
@@ -1910,6 +1914,7 @@ export class ImageQA {
1910
1914
  expectedPass?: number[]
1911
1915
  documentPositionIndent?: number
1912
1916
  brightnessThreshold?: number
1917
+ occlusionCheck?: boolean
1913
1918
 
1914
1919
  static fromJson(jsonObject?: any): ImageQA | undefined {
1915
1920
  if (jsonObject == null || jsonObject == undefined) return undefined
@@ -1930,6 +1935,7 @@ export class ImageQA {
1930
1935
  }
1931
1936
  result.documentPositionIndent = jsonObject["documentPositionIndent"]
1932
1937
  result.brightnessThreshold = jsonObject["brightnessThreshold"]
1938
+ result.occlusionCheck = jsonObject["occlusionCheck"]
1933
1939
 
1934
1940
  return result
1935
1941
  }
@@ -2026,6 +2032,8 @@ export class LivenessParams {
2026
2032
  checkMLI?: boolean
2027
2033
  checkHolo?: boolean
2028
2034
  checkED?: boolean
2035
+ checkBlackAndWhiteCopy?: boolean
2036
+ checkDynaprint?: boolean
2029
2037
 
2030
2038
  static fromJson(jsonObject?: any): LivenessParams | undefined {
2031
2039
  if (jsonObject == null || jsonObject == undefined) return undefined
@@ -2035,6 +2043,8 @@ export class LivenessParams {
2035
2043
  result.checkMLI = jsonObject["checkMLI"]
2036
2044
  result.checkHolo = jsonObject["checkHolo"]
2037
2045
  result.checkED = jsonObject["checkED"]
2046
+ result.checkBlackAndWhiteCopy = jsonObject["checkBlackAndWhiteCopy"]
2047
+ result.checkDynaprint = jsonObject["checkDynaprint"]
2038
2048
 
2039
2049
  return result
2040
2050
  }
@@ -2056,6 +2066,7 @@ export class AuthenticityParams {
2056
2066
  checkPhotoEmbedding?: boolean
2057
2067
  checkPhotoComparison?: boolean
2058
2068
  checkLetterScreen?: boolean
2069
+ checkSecurityText?: boolean
2059
2070
 
2060
2071
  static fromJson(jsonObject?: any): AuthenticityParams | undefined {
2061
2072
  if (jsonObject == null || jsonObject == undefined) return undefined
@@ -2076,6 +2087,7 @@ export class AuthenticityParams {
2076
2087
  result.checkPhotoEmbedding = jsonObject["checkPhotoEmbedding"]
2077
2088
  result.checkPhotoComparison = jsonObject["checkPhotoComparison"]
2078
2089
  result.checkLetterScreen = jsonObject["checkLetterScreen"]
2090
+ result.checkSecurityText = jsonObject["checkSecurityText"]
2079
2091
 
2080
2092
  return result
2081
2093
  }
@@ -2117,6 +2129,7 @@ export class ProcessParams {
2117
2129
  strictBarcodeDigitalSignatureCheck?: boolean
2118
2130
  selectLongestNames?: boolean
2119
2131
  generateDTCVC?: boolean
2132
+ strictDLCategoryExpiry?: boolean
2120
2133
  barcodeParserType?: number
2121
2134
  perspectiveAngle?: number
2122
2135
  minDPI?: number
@@ -2135,7 +2148,6 @@ export class ProcessParams {
2135
2148
  dateFormat?: string
2136
2149
  scenario?: string
2137
2150
  captureButtonScenario?: string
2138
- sessionLogFolder?: string
2139
2151
  timeout?: number
2140
2152
  timeoutFromFirstDetect?: number
2141
2153
  timeoutFromFirstDocType?: number
@@ -2195,6 +2207,7 @@ export class ProcessParams {
2195
2207
  result.strictBarcodeDigitalSignatureCheck = jsonObject["strictBarcodeDigitalSignatureCheck"]
2196
2208
  result.selectLongestNames = jsonObject["selectLongestNames"]
2197
2209
  result.generateDTCVC = jsonObject["generateDTCVC"]
2210
+ result.strictDLCategoryExpiry = jsonObject["strictDLCategoryExpiry"]
2198
2211
  result.barcodeParserType = jsonObject["barcodeParserType"]
2199
2212
  result.perspectiveAngle = jsonObject["perspectiveAngle"]
2200
2213
  result.minDPI = jsonObject["minDPI"]
@@ -2213,7 +2226,6 @@ export class ProcessParams {
2213
2226
  result.dateFormat = jsonObject["dateFormat"]
2214
2227
  result.scenario = jsonObject["scenario"]
2215
2228
  result.captureButtonScenario = jsonObject["captureButtonScenario"]
2216
- result.sessionLogFolder = jsonObject["sessionLogFolder"]
2217
2229
  result.timeout = jsonObject["timeout"]
2218
2230
  result.timeoutFromFirstDetect = jsonObject["timeoutFromFirstDetect"]
2219
2231
  result.timeoutFromFirstDocType = jsonObject["timeoutFromFirstDocType"]
@@ -2651,49 +2663,17 @@ export class EIDDataGroups {
2651
2663
  }
2652
2664
  }
2653
2665
 
2654
- export class DTCDataGroups {
2655
- DG1?: boolean
2656
- DG2?: boolean
2657
- DG3?: boolean
2658
- DG4?: boolean
2659
- DG5?: boolean
2660
- DG6?: boolean
2661
- DG7?: boolean
2662
- DG8?: boolean
2663
- DG9?: boolean
2664
- DG10?: boolean
2665
- DG11?: boolean
2666
- DG12?: boolean
2667
- DG13?: boolean
2668
- DG14?: boolean
2669
- DG15?: boolean
2670
- DG16?: boolean
2666
+ export class DTCDataGroup {
2671
2667
  DG17?: boolean
2672
2668
  DG18?: boolean
2673
2669
  DG22?: boolean
2674
2670
  DG23?: boolean
2675
2671
  DG24?: boolean
2676
2672
 
2677
- static fromJson(jsonObject?: any): DTCDataGroups | undefined {
2673
+ static fromJson(jsonObject?: any): DTCDataGroup | undefined {
2678
2674
  if (jsonObject == null || jsonObject == undefined) return undefined
2679
- const result = new DTCDataGroups
2675
+ const result = new DTCDataGroup
2680
2676
 
2681
- result.DG1 = jsonObject["DG1"]
2682
- result.DG2 = jsonObject["DG2"]
2683
- result.DG3 = jsonObject["DG3"]
2684
- result.DG4 = jsonObject["DG4"]
2685
- result.DG5 = jsonObject["DG5"]
2686
- result.DG6 = jsonObject["DG6"]
2687
- result.DG7 = jsonObject["DG7"]
2688
- result.DG8 = jsonObject["DG8"]
2689
- result.DG9 = jsonObject["DG9"]
2690
- result.DG10 = jsonObject["DG10"]
2691
- result.DG11 = jsonObject["DG11"]
2692
- result.DG12 = jsonObject["DG12"]
2693
- result.DG13 = jsonObject["DG13"]
2694
- result.DG14 = jsonObject["DG14"]
2695
- result.DG15 = jsonObject["DG15"]
2696
- result.DG16 = jsonObject["DG16"]
2697
2677
  result.DG17 = jsonObject["DG17"]
2698
2678
  result.DG18 = jsonObject["DG18"]
2699
2679
  result.DG22 = jsonObject["DG22"]
@@ -2741,6 +2721,8 @@ export class RFIDScenario {
2741
2721
  proceedReadingAlways?: boolean
2742
2722
  readDTC?: boolean
2743
2723
  mrzStrictCheck?: boolean
2724
+ loadCRLFromRemote?: boolean
2725
+ independentSODStatus?: boolean
2744
2726
  readingBuffer?: number
2745
2727
  onlineTAToSignDataType?: number
2746
2728
  defaultReadingBufferSize?: number
@@ -2760,7 +2742,7 @@ export class RFIDScenario {
2760
2742
  eDLDataGroups?: EDLDataGroups
2761
2743
  ePassportDataGroups?: EPassportDataGroups
2762
2744
  eIDDataGroups?: EIDDataGroups
2763
- dtcDataGroups?: DTCDataGroups
2745
+ dtcDataGroups?: DTCDataGroup
2764
2746
 
2765
2747
  static fromJson(jsonObject?: any): RFIDScenario | undefined {
2766
2748
  if (jsonObject == null || jsonObject == undefined) return undefined
@@ -2802,6 +2784,8 @@ export class RFIDScenario {
2802
2784
  result.proceedReadingAlways = jsonObject["proceedReadingAlways"]
2803
2785
  result.readDTC = jsonObject["readDTC"]
2804
2786
  result.mrzStrictCheck = jsonObject["mrzStrictCheck"]
2787
+ result.loadCRLFromRemote = jsonObject["loadCRLFromRemote"]
2788
+ result.independentSODStatus = jsonObject["independentSODStatus"]
2805
2789
  result.readingBuffer = jsonObject["readingBuffer"]
2806
2790
  result.onlineTAToSignDataType = jsonObject["onlineTAToSignDataType"]
2807
2791
  result.defaultReadingBufferSize = jsonObject["defaultReadingBufferSize"]
@@ -2821,7 +2805,7 @@ export class RFIDScenario {
2821
2805
  result.eDLDataGroups = EDLDataGroups.fromJson(jsonObject["eDLDataGroups"])
2822
2806
  result.ePassportDataGroups = EPassportDataGroups.fromJson(jsonObject["ePassportDataGroups"])
2823
2807
  result.eIDDataGroups = EIDDataGroups.fromJson(jsonObject["eIDDataGroups"])
2824
- result.dtcDataGroups = DTCDataGroups.fromJson(jsonObject["dtcDataGroups"])
2808
+ result.dtcDataGroups = DTCDataGroup.fromJson(jsonObject["dtcDataGroups"])
2825
2809
 
2826
2810
  return result
2827
2811
  }
@@ -3446,6 +3430,7 @@ export const ViewContentMode = {
3446
3430
 
3447
3431
  export const BarcodeResult = {
3448
3432
  NO_ERR: 0,
3433
+ INVALID_RESULT: 140,
3449
3434
  NULL_PTR_ERR: -6001,
3450
3435
  BAD_ARG_ERR: -6002,
3451
3436
  SIZE_ERR: -6003,
@@ -3614,6 +3599,7 @@ export const eCheckDiagnose = {
3614
3599
  OCR_QUALITY_INVALID_FONT: 221,
3615
3600
  OCR_QUALITY_INVALID_BACKGROUND: 222,
3616
3601
  LAS_INK_INVALID_LINES_FREQUENCY: 230,
3602
+ DOC_LIVENESS_DOCUMENT_NOT_LIVE: 238,
3617
3603
  CHD_DOC_LIVENESS_BLACK_AND_WHITE_COPY_DETECTED: 239,
3618
3604
  DOC_LIVENESS_ELECTRONIC_DEVICE_DETECTED: 240,
3619
3605
  DOC_LIVENESS_INVALID_BARCODE_BACKGROUND: 241,
@@ -3922,6 +3908,7 @@ export const eImageQualityCheckType = {
3922
3908
  IQC_PORTRAIT: 7,
3923
3909
  IQC_HANDWRITTEN: 8,
3924
3910
  IQC_BRIGHTNESS: 9,
3911
+ IQC_OCCLUSION: 10,
3925
3912
  }
3926
3913
 
3927
3914
  export const MRZFormat = {
@@ -5105,6 +5092,8 @@ export const eVisualFieldType = {
5105
5092
  FT_DIGITAL_TRAVEL_AUTHORIZATION_NUMBER: 690,
5106
5093
  FT_DATE_OF_FIRST_POSITIVE_TEST_RESULT: 691,
5107
5094
  FT_EF_CARD_ACCESS: 692,
5095
+ FT_SHORT_FLIGHT_NUMBER: 693,
5096
+ FT_AIRLINE_CODE: 694,
5108
5097
  }
5109
5098
 
5110
5099
  export const DocReaderOrientation = {
package/index.js CHANGED
@@ -1098,6 +1098,7 @@ export class TransactionInfo {
1098
1098
 
1099
1099
  result.transactionId = jsonObject["transactionId"]
1100
1100
  result.tag = jsonObject["tag"]
1101
+ result.sessionLogFolder = jsonObject["sessionLogFolder"]
1101
1102
 
1102
1103
  return result
1103
1104
  }
@@ -1255,6 +1256,7 @@ export class Functionality {
1255
1256
  result.recordScanningProcess = jsonObject["recordScanningProcess"]
1256
1257
  result.manualMultipageMode = jsonObject["manualMultipageMode"]
1257
1258
  result.singleResult = jsonObject["singleResult"]
1259
+ result.torchTurnedOn = jsonObject["torchTurnedOn"]
1258
1260
  result.showCaptureButtonDelayFromDetect = jsonObject["showCaptureButtonDelayFromDetect"]
1259
1261
  result.showCaptureButtonDelayFromStart = jsonObject["showCaptureButtonDelayFromStart"]
1260
1262
  result.rfidTimeout = jsonObject["rfidTimeout"]
@@ -1308,6 +1310,7 @@ export class ImageQA {
1308
1310
  result.expectedPass.push(jsonObject["expectedPass"][i])
1309
1311
  result.documentPositionIndent = jsonObject["documentPositionIndent"]
1310
1312
  result.brightnessThreshold = jsonObject["brightnessThreshold"]
1313
+ result.occlusionCheck = jsonObject["occlusionCheck"]
1311
1314
 
1312
1315
  return result
1313
1316
  }
@@ -1384,6 +1387,8 @@ export class LivenessParams {
1384
1387
  result.checkMLI = jsonObject["checkMLI"]
1385
1388
  result.checkHolo = jsonObject["checkHolo"]
1386
1389
  result.checkED = jsonObject["checkED"]
1390
+ result.checkBlackAndWhiteCopy = jsonObject["checkBlackAndWhiteCopy"]
1391
+ result.checkDynaprint = jsonObject["checkDynaprint"]
1387
1392
 
1388
1393
  return result
1389
1394
  }
@@ -1409,6 +1414,7 @@ export class AuthenticityParams {
1409
1414
  result.checkPhotoEmbedding = jsonObject["checkPhotoEmbedding"]
1410
1415
  result.checkPhotoComparison = jsonObject["checkPhotoComparison"]
1411
1416
  result.checkLetterScreen = jsonObject["checkLetterScreen"]
1417
+ result.checkSecurityText = jsonObject["checkSecurityText"]
1412
1418
 
1413
1419
  return result
1414
1420
  }
@@ -1454,6 +1460,7 @@ export class ProcessParams {
1454
1460
  result.strictBarcodeDigitalSignatureCheck = jsonObject["strictBarcodeDigitalSignatureCheck"]
1455
1461
  result.selectLongestNames = jsonObject["selectLongestNames"]
1456
1462
  result.generateDTCVC = jsonObject["generateDTCVC"]
1463
+ result.strictDLCategoryExpiry = jsonObject["strictDLCategoryExpiry"]
1457
1464
  result.barcodeParserType = jsonObject["barcodeParserType"]
1458
1465
  result.perspectiveAngle = jsonObject["perspectiveAngle"]
1459
1466
  result.minDPI = jsonObject["minDPI"]
@@ -1472,7 +1479,6 @@ export class ProcessParams {
1472
1479
  result.dateFormat = jsonObject["dateFormat"]
1473
1480
  result.scenario = jsonObject["scenario"]
1474
1481
  result.captureButtonScenario = jsonObject["captureButtonScenario"]
1475
- result.sessionLogFolder = jsonObject["sessionLogFolder"]
1476
1482
  result.timeout = jsonObject["timeout"]
1477
1483
  result.timeoutFromFirstDetect = jsonObject["timeoutFromFirstDetect"]
1478
1484
  result.timeoutFromFirstDocType = jsonObject["timeoutFromFirstDocType"]
@@ -1746,27 +1752,11 @@ export class EIDDataGroups {
1746
1752
  }
1747
1753
  }
1748
1754
 
1749
- export class DTCDataGroups {
1755
+ export class DTCDataGroup {
1750
1756
  static fromJson(jsonObject) {
1751
1757
  if (jsonObject == null) return null
1752
- const result = new DTCDataGroups()
1758
+ const result = new DTCDataGroup()
1753
1759
 
1754
- result.DG1 = jsonObject["DG1"]
1755
- result.DG2 = jsonObject["DG2"]
1756
- result.DG3 = jsonObject["DG3"]
1757
- result.DG4 = jsonObject["DG4"]
1758
- result.DG5 = jsonObject["DG5"]
1759
- result.DG6 = jsonObject["DG6"]
1760
- result.DG7 = jsonObject["DG7"]
1761
- result.DG8 = jsonObject["DG8"]
1762
- result.DG9 = jsonObject["DG9"]
1763
- result.DG10 = jsonObject["DG10"]
1764
- result.DG11 = jsonObject["DG11"]
1765
- result.DG12 = jsonObject["DG12"]
1766
- result.DG13 = jsonObject["DG13"]
1767
- result.DG14 = jsonObject["DG14"]
1768
- result.DG15 = jsonObject["DG15"]
1769
- result.DG16 = jsonObject["DG16"]
1770
1760
  result.DG17 = jsonObject["DG17"]
1771
1761
  result.DG18 = jsonObject["DG18"]
1772
1762
  result.DG22 = jsonObject["DG22"]
@@ -1818,6 +1808,8 @@ export class RFIDScenario {
1818
1808
  result.proceedReadingAlways = jsonObject["proceedReadingAlways"]
1819
1809
  result.readDTC = jsonObject["readDTC"]
1820
1810
  result.mrzStrictCheck = jsonObject["mrzStrictCheck"]
1811
+ result.loadCRLFromRemote = jsonObject["loadCRLFromRemote"]
1812
+ result.independentSODStatus = jsonObject["independentSODStatus"]
1821
1813
  result.readingBuffer = jsonObject["readingBuffer"]
1822
1814
  result.onlineTAToSignDataType = jsonObject["onlineTAToSignDataType"]
1823
1815
  result.defaultReadingBufferSize = jsonObject["defaultReadingBufferSize"]
@@ -1837,7 +1829,7 @@ export class RFIDScenario {
1837
1829
  result.eDLDataGroups = EDLDataGroups.fromJson(jsonObject["eDLDataGroups"])
1838
1830
  result.ePassportDataGroups = EPassportDataGroups.fromJson(jsonObject["ePassportDataGroups"])
1839
1831
  result.eIDDataGroups = EIDDataGroups.fromJson(jsonObject["eIDDataGroups"])
1840
- result.dtcDataGroups = DTCDataGroups.fromJson(jsonObject["dtcDataGroups"])
1832
+ result.dtcDataGroups = DTCDataGroup.fromJson(jsonObject["dtcDataGroups"])
1841
1833
 
1842
1834
  return result
1843
1835
  }
@@ -2460,6 +2452,7 @@ export const ViewContentMode = {
2460
2452
 
2461
2453
  export const BarcodeResult = {
2462
2454
  NO_ERR: 0,
2455
+ INVALID_RESULT: 140,
2463
2456
  NULL_PTR_ERR: -6001,
2464
2457
  BAD_ARG_ERR: -6002,
2465
2458
  SIZE_ERR: -6003,
@@ -2628,6 +2621,7 @@ export const eCheckDiagnose = {
2628
2621
  OCR_QUALITY_INVALID_FONT: 221,
2629
2622
  OCR_QUALITY_INVALID_BACKGROUND: 222,
2630
2623
  LAS_INK_INVALID_LINES_FREQUENCY: 230,
2624
+ DOC_LIVENESS_DOCUMENT_NOT_LIVE: 238,
2631
2625
  CHD_DOC_LIVENESS_BLACK_AND_WHITE_COPY_DETECTED: 239,
2632
2626
  DOC_LIVENESS_ELECTRONIC_DEVICE_DETECTED: 240,
2633
2627
  DOC_LIVENESS_INVALID_BARCODE_BACKGROUND: 241,
@@ -2936,6 +2930,7 @@ export const eImageQualityCheckType = {
2936
2930
  IQC_PORTRAIT: 7,
2937
2931
  IQC_HANDWRITTEN: 8,
2938
2932
  IQC_BRIGHTNESS: 9,
2933
+ IQC_OCCLUSION: 10,
2939
2934
  }
2940
2935
 
2941
2936
  export const MRZFormat = {
@@ -4119,6 +4114,8 @@ export const eVisualFieldType = {
4119
4114
  FT_DIGITAL_TRAVEL_AUTHORIZATION_NUMBER: 690,
4120
4115
  FT_DATE_OF_FIRST_POSITIVE_TEST_RESULT: 691,
4121
4116
  FT_EF_CARD_ACCESS: 692,
4117
+ FT_SHORT_FLIGHT_NUMBER: 693,
4118
+ FT_AIRLINE_CODE: 694,
4122
4119
  }
4123
4120
 
4124
4121
  export const DocReaderOrientation = {
package/ios/RGLWConfig.h CHANGED
@@ -23,6 +23,7 @@
23
23
  +(void)setCustomization:(NSDictionary*)options :(RGLCustomization*)customization;
24
24
  +(void)setRfidScenario:(NSDictionary*)options :(RGLRFIDScenario*)rfidScenario;
25
25
  +(void)setDataGroups:(RGLDataGroup*)dataGroup dict:(NSDictionary*)dict;
26
+ +(void)setDTCDataGroup:(RGLDTCDataGroup*)dataGroup dict:(NSDictionary*)dict;
26
27
  +(void)setImageQA:(RGLImageQA*)result input:(NSDictionary*)input;
27
28
  +(void)setAuthenticityParams:(RGLAuthenticityParams*)result input:(NSDictionary*)input;
28
29
  +(void)setLivenessParams:(RGLLivenessParams*)result input:(NSDictionary*)input;
@@ -32,6 +33,7 @@
32
33
  +(NSDictionary*)getCustomization:(RGLCustomization*)customization;
33
34
  +(NSDictionary*)getRfidScenario:(RGLRFIDScenario*)rfidScenario;
34
35
  +(NSDictionary*)getDataGroups:(RGLDataGroup*)dataGroup;
36
+ +(NSDictionary*)getDTCDataGroup:(RGLDTCDataGroup*)dataGroup;
35
37
  +(NSDictionary*)getImageQA:(RGLImageQA*)input;
36
38
  +(NSDictionary*)getAuthenticityParams:(RGLAuthenticityParams*)input;
37
39
  +(NSDictionary*)getLivenessParams:(RGLLivenessParams*)input;
package/ios/RGLWConfig.m CHANGED
@@ -41,6 +41,7 @@
41
41
  functionality.manualMultipageMode = [[options valueForKey:@"manualMultipageMode"] boolValue];
42
42
  if([options valueForKey:@"singleResult"] != nil)
43
43
  functionality.singleResult = [[options valueForKey:@"singleResult"] boolValue];
44
+ if(options[@"torchTurnedOn"]) functionality.torchTurnedOn = [options[@"torchTurnedOn"] boolValue];
44
45
 
45
46
  // Int
46
47
  if([options valueForKey:@"showCaptureButtonDelayFromDetect"] != nil)
@@ -94,6 +95,7 @@
94
95
  result[@"recordScanningProcess"] = [NSNumber numberWithBool:functionality.recordScanningProcess];
95
96
  result[@"manualMultipageMode"] = [NSNumber numberWithBool:functionality.manualMultipageMode];
96
97
  result[@"singleResult"] = [NSNumber numberWithBool:functionality.singleResult];
98
+ result[@"torchTurnedOn"] = @(functionality.torchTurnedOn);
97
99
 
98
100
  // Int
99
101
  result[@"showCaptureButtonDelayFromDetect"] = [NSNumber numberWithDouble:functionality.showCaptureButtonDelayFromDetect];
@@ -188,6 +190,7 @@
188
190
  if (options[@"strictBarcodeDigitalSignatureCheck"]) processParams.strictBarcodeDigitalSignatureCheck = options[@"strictBarcodeDigitalSignatureCheck"];
189
191
  if (options[@"selectLongestNames"]) processParams.selectLongestNames = options[@"selectLongestNames"];
190
192
  if (options[@"generateDTCVC"]) processParams.generateDTCVC = options[@"generateDTCVC"];
193
+ if (options[@"strictDLCategoryExpiry"]) processParams.strictDLCategoryExpiry = options[@"strictDLCategoryExpiry"];
191
194
 
192
195
  // Int
193
196
  if([options valueForKey:@"measureSystem"] != nil)
@@ -315,7 +318,8 @@
315
318
  result[@"strictBarcodeDigitalSignatureCheck"] = processParams.strictBarcodeDigitalSignatureCheck;
316
319
  result[@"selectLongestNames"] = processParams.selectLongestNames;
317
320
  result[@"generateDTCVC"] = processParams.generateDTCVC;
318
-
321
+ result[@"strictDLCategoryExpiry"] = processParams.strictDLCategoryExpiry;
322
+
319
323
  // Int
320
324
  result[@"measureSystem"] = [NSNumber numberWithInteger:processParams.measureSystem];
321
325
  result[@"barcodeParserType"] = processParams.barcodeParserType;
@@ -332,20 +336,19 @@
332
336
  result[@"convertCase"] = [self generateWithTextProcessing:processParams.convertCase];
333
337
  result[@"logLevel"] = processParams.logLevel;
334
338
  result[@"mrzDetectMode"] = processParams.mrzDetectMode;
335
-
339
+
336
340
  // String
337
341
  result[@"dateFormat"] = processParams.dateFormat;
338
342
  result[@"scenario"] = processParams.scenario;
339
343
  result[@"captureButtonScenario"] = processParams.captureButtonScenario;
340
- result[@"sessionLogFolder"] = processParams.sessionLogFolder;
341
-
344
+
342
345
  // Double
343
346
  result[@"timeout"] = processParams.timeout;
344
347
  result[@"timeoutFromFirstDetect"] = processParams.timeoutFromFirstDetect;
345
348
  result[@"timeoutFromFirstDocType"] = processParams.timeoutFromFirstDocType;
346
349
  result[@"documentAreaMin"] = processParams.documentAreaMin;
347
350
  result[@"timeoutLiveness"] = processParams.timeoutLiveness;
348
-
351
+
349
352
  // JSONArray
350
353
  result[@"documentIDList"] = processParams.documentIDList;
351
354
  result[@"barcodeTypes"] = processParams.barcodeTypes;
@@ -355,17 +358,17 @@
355
358
  result[@"lcidFilter"] = processParams.lcidFilter;
356
359
  result[@"mrzFormatsFilter"] = processParams.mrzFormatsFilter;
357
360
  result[@"resultTypeOutput"] = processParams.resultTypeOutput;
358
-
361
+
359
362
  // JSONObject
360
363
  result[@"imageQA"] = [self getImageQA:processParams.imageQA];
361
364
  result[@"rfidParams"] = [RGLWJSONConstructor generateRFIDParams:processParams.rfidParams];
362
365
  result[@"faceApiParams"] = [RGLWJSONConstructor generateFaceAPIParams:processParams.faceApiParams];
363
366
  result[@"backendProcessingConfig"] = [RGLWJSONConstructor generateBackendProcessingConfig:processParams.backendProcessingConfig];
364
367
  result[@"authenticityParams"] = [self getAuthenticityParams:processParams.authenticityParams];
365
-
368
+
366
369
  // Custom
367
370
  result[@"customParams"] = processParams.customParams;
368
-
371
+
369
372
  return result;
370
373
  }
371
374
 
@@ -381,7 +384,7 @@
381
384
  customization.showNextPageAnimation = [[options valueForKey:@"showNextPageAnimation"] boolValue];
382
385
  if([options valueForKey:@"showBackgroundMask"] != nil)
383
386
  customization.showBackgroundMask = [[options valueForKey:@"showBackgroundMask"] boolValue];
384
-
387
+
385
388
  // Int
386
389
  if([options valueForKey:@"cameraFrameBorderWidth"] != nil)
387
390
  customization.cameraFrameBorderWidth = [[options valueForKey:@"cameraFrameBorderWidth"] floatValue];
@@ -393,13 +396,13 @@
393
396
  customization.cameraFrameOffsetWidth = [[options valueForKey:@"cameraFrameOffsetWidth"] floatValue];
394
397
  if(options[@"nextPageAnimationStartDelay"]) customization.nextPageAnimationStartDelay = [options[@"nextPageAnimationStartDelay"] floatValue];
395
398
  if(options[@"nextPageAnimationEndDelay"]) customization.nextPageAnimationEndDelay = [options[@"nextPageAnimationEndDelay"] floatValue];
396
-
399
+
397
400
  // String
398
401
  if([options valueForKey:@"status"] != nil)
399
402
  customization.status = [options valueForKey:@"status"];
400
403
  if([options valueForKey:@"resultStatus"] != nil)
401
404
  customization.resultStatus = [options valueForKey:@"resultStatus"];
402
-
405
+
403
406
  // Color
404
407
  if([options valueForKey:@"cameraFrameDefaultColor"] != nil)
405
408
  customization.cameraFrameDefaultColor = [self colorWithInt:[options valueForKey:@"cameraFrameDefaultColor"]];
@@ -423,7 +426,7 @@
423
426
  customization.cameraPreviewBackgroundColor = [self colorWithInt:[options valueForKey:@"cameraPreviewBackgroundColor"]];
424
427
  if([options valueForKey:@"backgroundMaskColor"] != nil)
425
428
  customization.backgroundMaskColor = [self colorWithInt:[options valueForKey:@"backgroundMaskColor"]];
426
-
429
+
427
430
  // Float
428
431
  if([options valueForKey:@"statusPositionMultiplier"] != nil)
429
432
  customization.statusPositionMultiplier = [[options valueForKey:@"statusPositionMultiplier"] floatValue];
@@ -445,7 +448,7 @@
445
448
  customization.cameraFrameCornerRadius = [[options valueForKey:@"cameraFrameCornerRadius"] floatValue];
446
449
  if([options valueForKey:@"livenessAnimationPositionMultiplier"] != nil)
447
450
  customization.livenessAnimationPositionMultiplier = [[options valueForKey:@"livenessAnimationPositionMultiplier"] floatValue];
448
-
451
+
449
452
  // Drawable
450
453
  if([options valueForKey:@"multipageAnimationFrontImage"] != nil)
451
454
  customization.multipageAnimationFrontImage = [RGLWJSONConstructor imageWithBase64:[options valueForKey:@"multipageAnimationFrontImage"]];
@@ -471,13 +474,13 @@
471
474
  customization.torchButtonOffImage = [RGLWJSONConstructor imageWithBase64:[options valueForKey:@"torchButtonOffImage"]];
472
475
  if([options valueForKey:@"livenessAnimationImage"] != nil)
473
476
  customization.livenessAnimationImage = [RGLWJSONConstructor imageWithBase64:[options valueForKey:@"livenessAnimationImage"]];
474
-
477
+
475
478
  // Font
476
479
  if([options valueForKey:@"statusTextFont"] != nil)
477
480
  customization.statusTextFont = [self UIFontFromJSON:[options valueForKey:@"statusTextFont"]];
478
481
  if([options valueForKey:@"resultStatusTextFont"] != nil)
479
482
  customization.resultStatusTextFont = [self UIFontFromJSON:[options valueForKey:@"resultStatusTextFont"]];
480
-
483
+
481
484
  // Custom
482
485
  if([options valueForKey:@"customLabelStatus"] != nil)
483
486
  customization.customLabelStatus = [[NSAttributedString alloc]initWithString:[options valueForKey:@"customLabelStatus"]];
@@ -485,7 +488,7 @@
485
488
  customization.cameraFrameLineCap = [self lineCapWithNumber:[options valueForKey:@"cameraFrameLineCap"]];
486
489
  if([options valueForKey:@"uiCustomizationLayer"] != nil)
487
490
  customization.customUILayerJSON = [options valueForKey:@"uiCustomizationLayer"];
488
-
491
+
489
492
  // ContentMode
490
493
  if([options valueForKey:@"helpAnimationImageContentMode"] != nil)
491
494
  customization.helpAnimationImageContentMode = [self viewContentModeWithNumber:[options valueForKey:@"helpAnimationImageContentMode"]];
@@ -508,14 +511,14 @@
508
511
 
509
512
  +(NSDictionary*)getCustomization:(RGLCustomization*)customization {
510
513
  NSMutableDictionary *result = [NSMutableDictionary new];
511
-
514
+
512
515
  // Boolean
513
516
  result[@"showStatusMessages"] = [NSNumber numberWithBool:customization.showStatusMessages];
514
517
  result[@"showResultStatusMessages"] = [NSNumber numberWithBool:customization.showResultStatusMessages];
515
518
  result[@"showHelpAnimation"] = [NSNumber numberWithBool:customization.showHelpAnimation];
516
519
  result[@"showNextPageAnimation"] = [NSNumber numberWithBool:customization.showNextPageAnimation];
517
520
  result[@"showBackgroundMask"] = [NSNumber numberWithBool:customization.showBackgroundMask];
518
-
521
+
519
522
  // Int
520
523
  result[@"cameraFrameBorderWidth"] = [NSNumber numberWithFloat:customization.cameraFrameBorderWidth];
521
524
  result[@"cameraFrameLineLength"] = [NSNumber numberWithFloat:customization.cameraFrameLineLength];
@@ -523,11 +526,11 @@
523
526
  result[@"cameraFrameOffsetWidth"] = [NSNumber numberWithFloat:customization.cameraFrameOffsetWidth];
524
527
  result[@"nextPageAnimationStartDelay"] = [NSNumber numberWithFloat:customization.nextPageAnimationStartDelay];
525
528
  result[@"nextPageAnimationEndDelay"] = [NSNumber numberWithFloat:customization.nextPageAnimationEndDelay];
526
-
529
+
527
530
  // String
528
531
  result[@"status"] = customization.status;
529
532
  result[@"resultStatus"] = customization.resultStatus;
530
-
533
+
531
534
  // Color
532
535
  result[@"cameraFrameDefaultColor"] = [self intWithColor:customization.cameraFrameDefaultColor];
533
536
  result[@"cameraFrameActiveColor"] = [self intWithColor:customization.cameraFrameActiveColor];
@@ -540,7 +543,7 @@
540
543
  result[@"statusBackgroundColor"] = [self intWithColor:customization.statusBackgroundColor];
541
544
  result[@"cameraPreviewBackgroundColor"] = [self intWithColor:customization.cameraPreviewBackgroundColor];
542
545
  result[@"backgroundMaskColor"] = [self intWithColor:customization.backgroundMaskColor];
543
-
546
+
544
547
  // Float
545
548
  result[@"statusPositionMultiplier"] = [NSNumber numberWithFloat:customization.statusPositionMultiplier];
546
549
  result[@"resultStatusPositionMultiplier"] = [NSNumber numberWithFloat:customization.resultStatusPositionMultiplier];
@@ -552,7 +555,7 @@
552
555
  result[@"cameraFramePortraitAspectRatio"] = [NSNumber numberWithFloat:customization.cameraFramePortraitAspectRatio];
553
556
  result[@"cameraFrameCornerRadius"] = [NSNumber numberWithFloat:customization.cameraFrameCornerRadius];
554
557
  result[@"livenessAnimationPositionMultiplier"] = [NSNumber numberWithFloat:customization.livenessAnimationPositionMultiplier];
555
-
558
+
556
559
  // Drawable
557
560
  result[@"multipageAnimationFrontImage"] = [RGLWJSONConstructor base64WithImage:customization.multipageAnimationFrontImage];
558
561
  result[@"multipageAnimationBackImage"] = [RGLWJSONConstructor base64WithImage:customization.multipageAnimationBackImage];
@@ -566,27 +569,27 @@
566
569
  result[@"torchButtonOnImage"] = [RGLWJSONConstructor base64WithImage:customization.torchButtonOnImage];
567
570
  result[@"torchButtonOffImage"] = [RGLWJSONConstructor base64WithImage:customization.torchButtonOffImage];
568
571
  result[@"livenessAnimationImage"] = [RGLWJSONConstructor base64WithImage:customization.livenessAnimationImage];
569
-
572
+
570
573
  // Font
571
574
  result[@"statusTextFont"] = [self generateUIFont:customization.statusTextFont];
572
575
  result[@"resultStatusTextFont"] = [self generateUIFont:customization.resultStatusTextFont];
573
-
576
+
574
577
  // Custom
575
578
  if(customization.customLabelStatus != nil) result[@"customLabelStatus"] = customization.customLabelStatus.string;
576
579
  result[@"cameraFrameLineCap"] = [self generateLineCap:customization.cameraFrameLineCap];
577
580
  result[@"uiCustomizationLayer"] = customization.customUILayerJSON;
578
-
581
+
579
582
  // ContentMode
580
583
  result[@"helpAnimationImageContentMode"] = [self generateViewContentMode:customization.helpAnimationImageContentMode];
581
584
  result[@"multipageAnimationFrontImageContentMode"] = [self generateViewContentMode:customization.multipageAnimationFrontImageContentMode];
582
585
  result[@"multipageAnimationBackImageContentMode"] = [self generateViewContentMode:customization.multipageAnimationBackImageContentMode];
583
586
  result[@"livenessAnimationImageContentMode"] = [self generateViewContentMode:customization.livenessAnimationImageContentMode];
584
587
  result[@"borderBackgroundImageContentMode"] = [self generateViewContentMode:customization.borderBackgroundImageContentMode];
585
-
588
+
586
589
  result[@"colors"] = [self getColors: [customization.uiConfiguration valueForKey:@"colors"]];
587
590
  result[@"fonts"] = [self getFonts: [customization.uiConfiguration valueForKey:@"fonts"]];
588
591
  result[@"images"] = [self getImages: [customization.uiConfiguration valueForKey:@"images"]];
589
-
592
+
590
593
  return result;
591
594
  }
592
595
 
@@ -662,7 +665,9 @@
662
665
  rfidScenario.proceedReadingAlways = [[options valueForKey:@"proceedReadingAlways"] boolValue];
663
666
  if(options[@"readDTC"]) rfidScenario.readDTC = [options[@"readDTC"] boolValue];
664
667
  if(options[@"mrzStrictCheck"]) rfidScenario.mrzStrictCheck = options[@"mrzStrictCheck"];
665
-
668
+ if(options[@"loadCRLFromRemote"]) rfidScenario.loadCRLFromRemote = [options[@"loadCRLFromRemote"] boolValue];
669
+ if(options[@"independentSODStatus"]) rfidScenario.independentSODStatus = options[@"independentSODStatus"];
670
+
666
671
  // Int
667
672
  if([options valueForKey:@"signManagementAction"] != nil)
668
673
  rfidScenario.signManagementAction = [[options valueForKey:@"signManagementAction"] integerValue];
@@ -682,7 +687,7 @@
682
687
  rfidScenario.terminalType = [[options valueForKey:@"terminalType"] integerValue];
683
688
  if([options valueForKey:@"defaultReadingBufferSize"] != nil)
684
689
  rfidScenario.defaultReadingBufferSize = [[options valueForKey:@"defaultReadingBufferSize"] intValue];
685
-
690
+
686
691
  // String
687
692
  if([options valueForKey:@"password"] != nil)
688
693
  rfidScenario.password = [options valueForKey:@"password"];
@@ -697,7 +702,7 @@
697
702
  if([options valueForKey:@"eSignPINNewValue"] != nil)
698
703
  rfidScenario.eSignPINNewValue = [options valueForKey:@"eSignPINNewValue"];
699
704
  if(options[@"cardAccess"]) rfidScenario.cardAccess = options[@"cardAccess"];
700
-
705
+
701
706
  // DataGroup
702
707
  if([options valueForKey:@"ePassportDataGroups"] != nil)
703
708
  [self setDataGroups :rfidScenario.ePassportDataGroups dict:[options valueForKey:@"ePassportDataGroups"]];
@@ -705,12 +710,12 @@
705
710
  [self setDataGroups :rfidScenario.eIDDataGroups dict:[options valueForKey:@"eIDDataGroups"]];
706
711
  if([options valueForKey:@"eDLDataGroups"] != nil)
707
712
  [self setDataGroups :rfidScenario.eDLDataGroups dict:[options valueForKey:@"eDLDataGroups"]];
708
- if(options[@"dtcDataGroups"]) [self setDataGroups :rfidScenario.DTCDataGroups dict:options[@"dtcDataGroups"]];
713
+ if(options[@"dtcDataGroups"]) [self setDTCDataGroup :rfidScenario.DTCDataGroups dict:options[@"dtcDataGroups"]];
709
714
  }
710
715
 
711
716
  +(NSDictionary*)getRfidScenario:(RGLRFIDScenario*)rfidScenario {
712
717
  NSMutableDictionary *result = [NSMutableDictionary new];
713
-
718
+
714
719
  // Boolean
715
720
  result[@"paceStaticBinding"] = [NSNumber numberWithBool:rfidScenario.paceStaticBinding];
716
721
  result[@"onlineTA"] = [NSNumber numberWithBool:rfidScenario.onlineTA];
@@ -748,7 +753,9 @@
748
753
  result[@"proceedReadingAlways"] = [NSNumber numberWithBool:rfidScenario.proceedReadingAlways];
749
754
  result[@"readDTC"] = [NSNumber numberWithBool:rfidScenario.readDTC];
750
755
  result[@"mrzStrictCheck"] = rfidScenario.mrzStrictCheck;
751
-
756
+ result[@"loadCRLFromRemote"] = @(rfidScenario.loadCRLFromRemote);
757
+ result[@"independentSODStatus"] = rfidScenario.independentSODStatus;
758
+
752
759
  // Int
753
760
  result[@"signManagementAction"] = [NSNumber numberWithInteger:rfidScenario.signManagementAction];
754
761
  result[@"readingBuffer"] = [NSNumber numberWithInteger:rfidScenario.readingBuffer];
@@ -759,7 +766,7 @@
759
766
  result[@"pacePasswordType"] = [NSNumber numberWithInteger:rfidScenario.pacePasswordType];
760
767
  result[@"terminalType"] = [NSNumber numberWithInteger:rfidScenario.terminalType];
761
768
  result[@"defaultReadingBufferSize"] = [NSNumber numberWithInteger:rfidScenario.defaultReadingBufferSize];
762
-
769
+
763
770
  // String
764
771
  result[@"password"] = rfidScenario.password;
765
772
  result[@"pkdPA"] = rfidScenario.pkdPA;
@@ -768,18 +775,18 @@
768
775
  result[@"eSignPINDefault"] = rfidScenario.eSignPINDefault;
769
776
  result[@"eSignPINNewValue"] = rfidScenario.eSignPINNewValue;
770
777
  result[@"cardAccess"] = rfidScenario.cardAccess;
771
-
778
+
772
779
  // DataGroup
773
780
  result[@"eDLDataGroups"] = [self getDataGroups:rfidScenario.eDLDataGroups];
774
781
  result[@"ePassportDataGroups"] = [self getDataGroups:rfidScenario.ePassportDataGroups];
775
782
  result[@"eIDDataGroups"] = [self getDataGroups:rfidScenario.eIDDataGroups];
776
- result[@"dtcDataGroups"] = [self getDataGroups:rfidScenario.DTCDataGroups];
777
-
783
+ result[@"dtcDataGroups"] = [self getDTCDataGroup:rfidScenario.DTCDataGroups];
784
+
778
785
  return result;
779
786
  }
780
787
 
781
788
  +(void)setDataGroups:(RGLDataGroup*)dataGroup dict:(NSDictionary*)dict {
782
-
789
+
783
790
  // EDLDataGroups/Common: 1-14
784
791
  if([dict valueForKey:@"DG1"] != nil)
785
792
  dataGroup.dG1 = [[dict valueForKey:@"DG1"] boolValue];
@@ -809,7 +816,7 @@
809
816
  dataGroup.dG13 = [[dict valueForKey:@"DG13"] boolValue];
810
817
  if([dict valueForKey:@"DG14"] != nil)
811
818
  dataGroup.dG14 = [[dict valueForKey:@"DG14"] boolValue];
812
-
819
+
813
820
  // EPassportDataGroups: 1-16
814
821
  if ([dataGroup class] == [RGLePassportDataGroup class]) {
815
822
  if([dict valueForKey:@"DG15"] != nil)
@@ -817,7 +824,7 @@
817
824
  if([dict valueForKey:@"DG16"] != nil)
818
825
  ((RGLePassportDataGroup*)dataGroup).dG16 = [[dict valueForKey:@"DG16"] boolValue];
819
826
  }
820
-
827
+
821
828
  // EIDDataGroups: 1-21
822
829
  if ([dataGroup class] == [RGLeIDDataGroup class]) {
823
830
  if([dict valueForKey:@"DG15"] != nil)
@@ -835,22 +842,11 @@
835
842
  if([dict valueForKey:@"DG21"] != nil)
836
843
  ((RGLeIDDataGroup*)dataGroup).dG21 = [[dict valueForKey:@"DG21"] boolValue];
837
844
  }
838
-
839
- // DTCDataGroups: 1-18 & 22-24
840
- if ([dataGroup class] == [RGLDTCDataGroup class]) {
841
- if(dict[@"DG15"]) ((RGLDTCDataGroup*)dataGroup).dG15 = [dict[@"DG15"] boolValue];
842
- if(dict[@"DG16"]) ((RGLDTCDataGroup*)dataGroup).dG16 = [dict[@"DG16"] boolValue];
843
- if(dict[@"DG17"]) ((RGLDTCDataGroup*)dataGroup).dG17 = [dict[@"DG17"] boolValue];
844
- if(dict[@"DG18"]) ((RGLDTCDataGroup*)dataGroup).dG18 = [dict[@"DG18"] boolValue];
845
- if(dict[@"DG22"]) ((RGLDTCDataGroup*)dataGroup).dG22 = [dict[@"DG22"] boolValue];
846
- if(dict[@"DG23"]) ((RGLDTCDataGroup*)dataGroup).dG23 = [dict[@"DG23"] boolValue];
847
- if(dict[@"DG24"]) ((RGLDTCDataGroup*)dataGroup).dG24 = [dict[@"DG24"] boolValue];
848
- }
849
845
  }
850
846
 
851
847
  +(NSDictionary *)getDataGroups:(RGLDataGroup*)dataGroup {
852
848
  NSMutableDictionary *result = [NSMutableDictionary new];
853
-
849
+
854
850
  // EDLDataGroups/Common: 1-14
855
851
  result[@"DG1"] = [NSNumber numberWithBool:dataGroup.dG1];
856
852
  result[@"DG2"] = [NSNumber numberWithBool:dataGroup.dG2];
@@ -866,13 +862,13 @@
866
862
  result[@"DG12"] = [NSNumber numberWithBool:dataGroup.dG12];
867
863
  result[@"DG13"] = [NSNumber numberWithBool:dataGroup.dG13];
868
864
  result[@"DG14"] = [NSNumber numberWithBool:dataGroup.dG14];
869
-
865
+
870
866
  // EPassportDataGroups: 1-16
871
867
  if ([dataGroup class] == [RGLePassportDataGroup class]) {
872
868
  result[@"DG15"] = [NSNumber numberWithBool:((RGLePassportDataGroup*)dataGroup).dG15];
873
869
  result[@"DG16"] = [NSNumber numberWithBool:((RGLePassportDataGroup*)dataGroup).dG16];
874
870
  }
875
-
871
+
876
872
  // EIDDataGroups: 1-21
877
873
  if ([dataGroup class] == [RGLeIDDataGroup class]) {
878
874
  result[@"DG15"] = [NSNumber numberWithBool:((RGLeIDDataGroup*)dataGroup).dG15];
@@ -883,18 +879,27 @@
883
879
  result[@"DG20"] = [NSNumber numberWithBool:((RGLeIDDataGroup*)dataGroup).dG20];
884
880
  result[@"DG21"] = [NSNumber numberWithBool:((RGLeIDDataGroup*)dataGroup).dG21];
885
881
  }
886
-
887
- // DTCDataGroups: 1-18 & 22-24
888
- if ([dataGroup class] == [RGLDTCDataGroup class]) {
889
- result[@"DG15"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG15];
890
- result[@"DG16"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG16];
891
- result[@"DG17"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG17];
892
- result[@"DG18"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG18];
893
- result[@"DG22"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG22];
894
- result[@"DG23"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG23];
895
- result[@"DG24"] = [NSNumber numberWithBool:((RGLDTCDataGroup*)dataGroup).dG24];
896
- }
897
-
882
+
883
+ return result;
884
+ }
885
+
886
+ +(void)setDTCDataGroup:(RGLDTCDataGroup*)dataGroup dict:(NSDictionary*)dict {
887
+ if(dict[@"DG17"]) dataGroup.dG17 = [dict[@"DG17"] boolValue];
888
+ if(dict[@"DG18"]) dataGroup.dG18 = [dict[@"DG18"] boolValue];
889
+ if(dict[@"DG22"]) dataGroup.dG22 = [dict[@"DG22"] boolValue];
890
+ if(dict[@"DG23"]) dataGroup.dG23 = [dict[@"DG23"] boolValue];
891
+ if(dict[@"DG24"]) dataGroup.dG24 = [dict[@"DG24"] boolValue];
892
+ }
893
+
894
+ +(NSDictionary *)getDTCDataGroup:(RGLDTCDataGroup*)dataGroup {
895
+ NSMutableDictionary *result = [NSMutableDictionary new];
896
+
897
+ result[@"DG17"] = @(dataGroup.dG17);
898
+ result[@"DG18"] = @(dataGroup.dG18);
899
+ result[@"DG22"] = @(dataGroup.dG22);
900
+ result[@"DG23"] = @(dataGroup.dG23);
901
+ result[@"DG24"] = @(dataGroup.dG24);
902
+
898
903
  return result;
899
904
  }
900
905
 
@@ -922,11 +927,12 @@
922
927
  result.glaresCheckParams = [RGLWJSONConstructor glaresCheckParamsFromJson:[input valueForKey:@"glaresCheckParams"]];
923
928
  if([input valueForKey:@"brightnessThreshold"] != nil)
924
929
  result.brightnessThreshold = [input valueForKey:@"brightnessThreshold"];
930
+ if(input[@"occlusionCheck"]) result.occlusionCheck = input[@"occlusionCheck"];
925
931
  }
926
932
 
927
933
  +(NSDictionary*)getImageQA:(RGLImageQA*)input {
928
934
  NSMutableDictionary *result = [NSMutableDictionary new];
929
-
935
+
930
936
  result[@"dpiThreshold"] = input.dpiThreshold;
931
937
  result[@"angleThreshold"] = input.angleThreshold;
932
938
  result[@"focusCheck"] = input.focusCheck;
@@ -941,6 +947,7 @@
941
947
  result[@"documentPositionIndent"] = input.documentPositionIndent;
942
948
  result[@"glaresCheckParams"] = [RGLWJSONConstructor generateGlaresCheckParams:input.glaresCheckParams];
943
949
  result[@"brightnessThreshold"] = input.brightnessThreshold;
950
+ result[@"occlusionCheck"] = input.occlusionCheck;
944
951
 
945
952
  return result;
946
953
  }
@@ -978,6 +985,7 @@
978
985
  result.checkPhotoComparison = [input valueForKey:@"checkPhotoComparison"];
979
986
  if([input valueForKey:@"checkLetterScreen"] != nil)
980
987
  result.checkLetterScreen = [input valueForKey:@"checkLetterScreen"];
988
+ if(input[@"checkSecurityText"]) result.checkSecurityText = input[@"checkSecurityText"];
981
989
  }
982
990
 
983
991
  +(NSDictionary*)getAuthenticityParams:(RGLAuthenticityParams*)input {
@@ -999,6 +1007,7 @@
999
1007
  result[@"checkPhotoEmbedding"] = input.checkPhotoEmbedding;
1000
1008
  result[@"checkPhotoComparison"] = input.checkPhotoComparison;
1001
1009
  result[@"checkLetterScreen"] = input.checkLetterScreen;
1010
+ result[@"checkSecurityText"] = input.checkSecurityText;
1002
1011
 
1003
1012
  return result;
1004
1013
  }
@@ -1012,6 +1021,8 @@
1012
1021
  result.checkHolo = [input valueForKey:@"checkHolo"];
1013
1022
  if([input valueForKey:@"checkED"] != nil)
1014
1023
  result.checkED = [input valueForKey:@"checkED"];
1024
+ if(input[@"checkBlackAndWhiteCopy"]) result.checkBlackAndWhiteCopy = input[@"checkBlackAndWhiteCopy"];
1025
+ if(input[@"checkDynaprint"]) result.checkDynaprint = input[@"checkDynaprint"];
1015
1026
  }
1016
1027
 
1017
1028
  +(NSDictionary*)getLivenessParams:(RGLLivenessParams*)input {
@@ -1022,6 +1033,8 @@
1022
1033
  result[@"checkMLI"] = input.checkMLI;
1023
1034
  result[@"checkHolo"] = input.checkHolo;
1024
1035
  result[@"checkED"] = input.checkED;
1036
+ result[@"checkBlackAndWhiteCopy"] = input.checkBlackAndWhiteCopy;
1037
+ result[@"checkDynaprint"] = input.checkDynaprint;
1025
1038
 
1026
1039
  return result;
1027
1040
  }
@@ -1340,6 +1353,7 @@
1340
1353
  if(value == RGLImageQualityCheckTypePortrait) return @7;
1341
1354
  if(value == RGLImageQualityCheckTypeHandwritten) return @8;
1342
1355
  if(value == RGLImageQualityCheckTypeBrightness) return @9;
1356
+ if(value == RGLImageQualityCheckTypeOcclusion) return @10;
1343
1357
  return 0;
1344
1358
  }
1345
1359
 
@@ -1356,6 +1370,7 @@
1356
1370
  if(value == 7) return RGLImageQualityCheckTypePortrait;
1357
1371
  if(value == 8) return RGLImageQualityCheckTypeHandwritten;
1358
1372
  if(value == 9) return RGLImageQualityCheckTypeBrightness;
1373
+ if(value == 10) return RGLImageQualityCheckTypeOcclusion;
1359
1374
  return RGLImageQualityCheckTypeImageGlares;
1360
1375
  }
1361
1376
 
@@ -63,8 +63,8 @@
63
63
  +(NSDictionary* _Nullable)generateEPassportDataGroups:(RGLePassportDataGroup* _Nullable)input;
64
64
  +(RGLeIDDataGroup* _Nullable)eIDDataGroupsFromJson:(NSDictionary* _Nullable)input;
65
65
  +(NSDictionary* _Nullable)generateEIDDataGroups:(RGLeIDDataGroup* _Nullable)input;
66
- +(RGLeIDDataGroup* _Nullable)dtcDataGroupsFromJson:(NSDictionary* _Nullable)input;
67
- +(NSDictionary* _Nullable)generateRGLDTCDataGroups:(RGLeIDDataGroup* _Nullable)input;
66
+ +(RGLeIDDataGroup* _Nullable)dtcDataGroupFromJson:(NSDictionary* _Nullable)input;
67
+ +(NSDictionary* _Nullable)generateRGLDTCDataGroup:(RGLeIDDataGroup* _Nullable)input;
68
68
  +(RGLRFIDScenario* _Nullable)rfidScenarioFromJson:(NSDictionary* _Nullable)input;
69
69
  +(NSDictionary* _Nullable)generateRFIDScenario:(RGLRFIDScenario* _Nullable)input;
70
70
  +(RGLCustomization* _Nullable)customizationFromJson:(NSDictionary* _Nullable)input;
@@ -111,8 +111,9 @@ static NSMutableArray* weakReferencesHolder;
111
111
 
112
112
  NSString* transactionId = [input valueForKey:@"transactionId"];
113
113
  NSString* tag = [input valueForKey:@"tag"];
114
+ NSString* sessionLogFolder = input[@"sessionLogFolder"];
114
115
 
115
- return [[RGLTransactionInfo alloc] initWithTag:tag transactionId:transactionId];
116
+ return [[RGLTransactionInfo alloc] initWithTag:tag transactionId:transactionId sessionLogFolder:sessionLogFolder];
116
117
  }
117
118
 
118
119
  +(NSDictionary*)generateTransactionInfo:(RGLTransactionInfo*)input {
@@ -121,6 +122,7 @@ static NSMutableArray* weakReferencesHolder;
121
122
 
122
123
  result[@"transactionId"] = input.transactionId;
123
124
  result[@"tag"] = input.tag;
125
+ result[@"sessionLogFolder"] = input.sessionLogFolder;
124
126
 
125
127
  return result;
126
128
  }
@@ -356,14 +358,14 @@ static NSMutableArray* weakReferencesHolder;
356
358
  return [RGLWConfig getDataGroups:input];
357
359
  }
358
360
 
359
- +(RGLDTCDataGroup*)dtcDataGroupsFromJson:(NSDictionary*)input {
361
+ +(RGLDTCDataGroup*)dtcDataGroupFromJson:(NSDictionary*)input {
360
362
  RGLDTCDataGroup *result = [RGLDTCDataGroup new];
361
- [RGLWConfig setDataGroups :result dict:input];
363
+ [RGLWConfig setDTCDataGroup:result dict:input];
362
364
  return result;
363
365
  }
364
366
 
365
- +(NSDictionary*)generateRGLDTCDataGroups:(RGLDTCDataGroup*)input {
366
- return [RGLWConfig getDataGroups:input];
367
+ +(NSDictionary*)generateRGLDTCDataGroup:(RGLDTCDataGroup*)input {
368
+ return [RGLWConfig getDTCDataGroup:input];
367
369
  }
368
370
 
369
371
  +(RGLRFIDScenario*)rfidScenarioFromJson:(NSDictionary*)input {
@@ -1696,10 +1698,12 @@ static NSMutableArray* weakReferencesHolder;
1696
1698
  NSMutableArray<RGLAuthenticityElement*> *array = [NSMutableArray new];
1697
1699
  for(NSDictionary* item in [input valueForKey:@"elements"])
1698
1700
  [array addObject:[self authenticityElementFromJson:item]];
1699
- return [[RGLAuthenticityCheck alloc]
1700
- initWithAuthenticity:[[input valueForKey:@"type"] integerValue]
1701
- elements:array
1702
- pageIndex:[[input valueForKey:@"pageIndex"] integerValue]];
1701
+ RGLAuthenticityCheck* result = [[RGLAuthenticityCheck alloc]
1702
+ initWithAuthenticity:[[input valueForKey:@"type"] integerValue]
1703
+ elements:array
1704
+ pageIndex:[[input valueForKey:@"pageIndex"] integerValue]];
1705
+ if (input[@"status"]) [result setValue:input[@"status"] forKey:@"status"];
1706
+ return result;;
1703
1707
  }
1704
1708
 
1705
1709
  +(NSDictionary*)generateAuthenticityCheck:(RGLAuthenticityCheck*)input {
@@ -1802,8 +1806,10 @@ static NSMutableArray* weakReferencesHolder;
1802
1806
  NSMutableArray<RGLAuthenticityCheck*> *array = [NSMutableArray new];
1803
1807
  for(NSDictionary* item in [input valueForKey:@"checks"])
1804
1808
  [array addObject:[self authenticityCheckFromJson:item]];
1805
- return [[RGLDocumentReaderAuthenticityResult alloc]
1806
- initWithAuthenticityChecks:array];
1809
+ RGLDocumentReaderAuthenticityResult* result = [[RGLDocumentReaderAuthenticityResult alloc]
1810
+ initWithAuthenticityChecks:array];
1811
+ if (input[@"status"]) [result setValue:input[@"status"] forKey:@"_security"];
1812
+ return result;
1807
1813
  }
1808
1814
 
1809
1815
  +(NSDictionary*)generateDocumentReaderAuthenticityResult:(RGLDocumentReaderAuthenticityResult*)input {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regulaforensics/react-native-document-reader-api",
3
- "version": "7.6.39-beta",
3
+ "version": "7.6.58",
4
4
  "description": "React Native module for reading and validation of identification documents (API framework)",
5
5
  "main": "index.js",
6
6
  "scripts": {