@regulaforensics/document-reader 8.4.401-beta → 8.5.443-nightly
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.
- package/README.md +1 -1
- package/RNDocumentReader.podspec +2 -2
- package/android/build.gradle +2 -2
- package/android/cordova.gradle +2 -2
- package/android/src/main/java/com/regula/plugin/documentreader/Config.kt +3 -31
- package/android/src/main/java/com/regula/plugin/documentreader/JSONConstructor.kt +0 -27
- package/android/src/main/java/com/regula/plugin/documentreader/Main.kt +4 -24
- package/examples/capacitor/package-lock.json +9 -9
- package/examples/capacitor/package.json +3 -3
- package/examples/ionic/package-lock.json +14 -14
- package/examples/ionic/package.json +3 -3
- package/examples/react_native/package-lock.json +34 -34
- package/examples/react_native/package.json +3 -3
- package/ios/RGLWConfig.m +2 -30
- package/ios/RGLWJSONConstructor.h +0 -1
- package/ios/RGLWJSONConstructor.m +0 -18
- package/ios/RGLWMain.m +0 -46
- package/package.json +1 -1
- package/plugin.xml +2 -2
- package/test/json.tsx +1 -29
- package/test/package-lock.json +1 -1
- package/test/test.tsx +2 -3
- package/www/capacitor/index.js +4 -5
- package/www/capacitor/params/process_params/AuthenticityParams.js +1 -44
- package/www/capacitor/params/process_params/LivenessParams.js +0 -36
- package/www/capacitor/params/process_params/ProcessParams.js +10 -30
- package/www/cordova.js +100 -287
- package/www/react-native/index.js +4 -5
- package/www/react-native/params/process_params/AuthenticityParams.js +1 -44
- package/www/react-native/params/process_params/LivenessParams.js +0 -36
- package/www/react-native/params/process_params/ProcessParams.js +10 -30
- package/www/types/index.d.ts +5 -6
- package/www/types/params/process_params/AuthenticityParams.d.ts +0 -25
- package/www/types/params/process_params/LivenessParams.d.ts +0 -18
- package/www/types/params/process_params/ProcessParams.d.ts +5 -11
- package/www/capacitor/params/process_params/FilterObject.js +0 -60
- package/www/react-native/params/process_params/FilterObject.js +0 -60
- package/www/types/params/process_params/FilterObject.d.ts +0 -32
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ Document Reader allows you to read various kinds of identification documents, pa
|
|
|
3
3
|
|
|
4
4
|
## Demo applications
|
|
5
5
|
In the [examples](examples/) folder you can find 3 demo applications:
|
|
6
|
-
* [React-native](examples/
|
|
6
|
+
* [React-native](examples/react_native)
|
|
7
7
|
* [Ionic(ionic app with cordova, angular)](examples/ionic)
|
|
8
8
|
* [Capacitor(ionic app with capacitor, react)](examples/capacitor)
|
|
9
9
|
|
package/RNDocumentReader.podspec
CHANGED
|
@@ -5,7 +5,7 @@ source = File.join(__dir__, 'ios')
|
|
|
5
5
|
|
|
6
6
|
Pod::Spec.new do |s|
|
|
7
7
|
s.name = 'RNDocumentReader'
|
|
8
|
-
s.version = '8.
|
|
8
|
+
s.version = '8.5.443-nightly'
|
|
9
9
|
s.summary = package['description']
|
|
10
10
|
s.license = package['license']
|
|
11
11
|
|
|
@@ -16,6 +16,6 @@ Pod::Spec.new do |s|
|
|
|
16
16
|
s.ios.deployment_target = '13.0'
|
|
17
17
|
s.source_files = 'ios/**/*.{h,m}'
|
|
18
18
|
s.exclude_files = [ 'ios/CVDDocumentReader.h', 'ios/CVDDocumentReader.m' ]
|
|
19
|
-
s.dependency '
|
|
19
|
+
s.dependency 'DocumentReaderNightly', '8.5.5471'
|
|
20
20
|
s.dependency 'React'
|
|
21
21
|
end
|
package/android/build.gradle
CHANGED
|
@@ -20,7 +20,7 @@ android {
|
|
|
20
20
|
rootProject.allprojects {
|
|
21
21
|
repositories {
|
|
22
22
|
maven {
|
|
23
|
-
url "https://maven.regulaforensics.com/RegulaDocumentReader/
|
|
23
|
+
url "https://maven.regulaforensics.com/RegulaDocumentReader/Nightly"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -29,7 +29,7 @@ dependencies {
|
|
|
29
29
|
//noinspection GradleDynamicVersion
|
|
30
30
|
implementation 'com.facebook.react:react-native:+'
|
|
31
31
|
//noinspection GradleDependency
|
|
32
|
-
implementation('com.regula.documentreader:api:8.
|
|
32
|
+
implementation('com.regula.documentreader:api:8.5.12053'){
|
|
33
33
|
transitive = true
|
|
34
34
|
}
|
|
35
35
|
}
|
package/android/cordova.gradle
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
repositories {
|
|
2
2
|
maven {
|
|
3
|
-
url "https://maven.regulaforensics.com/RegulaDocumentReader/
|
|
3
|
+
url "https://maven.regulaforensics.com/RegulaDocumentReader/Nightly"
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
dependencies {
|
|
8
8
|
//noinspection GradleDependency
|
|
9
|
-
implementation('com.regula.documentreader:api:8.
|
|
9
|
+
implementation('com.regula.documentreader:api:8.5.12053'){
|
|
10
10
|
transitive = true
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -11,7 +11,7 @@ import androidx.core.content.ContextCompat
|
|
|
11
11
|
import com.regula.documentreader.api.enums.CustomizationColor
|
|
12
12
|
import com.regula.documentreader.api.enums.CustomizationFont
|
|
13
13
|
import com.regula.documentreader.api.enums.CustomizationImage
|
|
14
|
-
import com.regula.documentreader.api.
|
|
14
|
+
import com.regula.documentreader.api.enums.LogLevel
|
|
15
15
|
import com.regula.documentreader.api.params.AuthenticityParams
|
|
16
16
|
import com.regula.documentreader.api.params.Functionality
|
|
17
17
|
import com.regula.documentreader.api.params.ImageQA
|
|
@@ -143,6 +143,7 @@ fun setProcessParams(processParams: ProcessParam, opts: JSONObject) = opts.forEa
|
|
|
143
143
|
"generateAlpha2Codes" -> processParams.generateAlpha2Codes = v as Boolean
|
|
144
144
|
"disableAuthResolutionFilter" -> processParams.disableAuthResolutionFilter = v as Boolean
|
|
145
145
|
"strictSecurityChecks" -> processParams.strictSecurityChecks = v as Boolean
|
|
146
|
+
"returnTransliteratedFields" -> processParams.returnTransliteratedFields = v as Boolean
|
|
146
147
|
"measureSystem" -> processParams.measureSystem = v.toInt()
|
|
147
148
|
"barcodeParserType" -> processParams.barcodeParserType = v.toInt()
|
|
148
149
|
"perspectiveAngle" -> processParams.perspectiveAngle = v.toInt()
|
|
@@ -184,16 +185,6 @@ fun setProcessParams(processParams: ProcessParam, opts: JSONObject) = opts.forEa
|
|
|
184
185
|
if (processParams.authenticityParams == null) processParams.authenticityParams = AuthenticityParams.defaultParams()
|
|
185
186
|
setAuthenticityParams(processParams.authenticityParams!!, v as JSONObject)
|
|
186
187
|
}
|
|
187
|
-
|
|
188
|
-
"setCheckFilter" -> processParams.setCheckFilter((v as JSONObject).getString("checkType"), filterObjectFromJSON(v.getJSONObject("filterObject")))
|
|
189
|
-
"removeCheckFilter" -> processParams.removeCheckFilter(v as String)
|
|
190
|
-
"clearCheckFilter" -> processParams.clearCheckFilter()
|
|
191
|
-
"checkFilters" -> {
|
|
192
|
-
processParams.clearCheckFilter()
|
|
193
|
-
(v as JSONObject).forEach { key, value ->
|
|
194
|
-
processParams.setCheckFilter(key, filterObjectFromJSON(value as JSONObject))
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
188
|
}
|
|
198
189
|
}
|
|
199
190
|
|
|
@@ -239,6 +230,7 @@ fun getProcessParams(processParams: ProcessParam) = mapOf(
|
|
|
239
230
|
"generateAlpha2Codes" to processParams.generateAlpha2Codes,
|
|
240
231
|
"disableAuthResolutionFilter" to processParams.disableAuthResolutionFilter,
|
|
241
232
|
"strictSecurityChecks" to processParams.strictSecurityChecks,
|
|
233
|
+
"returnTransliteratedFields" to processParams.returnTransliteratedFields,
|
|
242
234
|
"measureSystem" to processParams.measureSystem,
|
|
243
235
|
"barcodeParserType" to processParams.barcodeParserType,
|
|
244
236
|
"perspectiveAngle" to processParams.perspectiveAngle,
|
|
@@ -705,16 +697,6 @@ fun setAuthenticityParams(input: AuthenticityParams, opts: JSONObject) = opts.fo
|
|
|
705
697
|
if (input.livenessParams == null) input.livenessParams = LivenessParams.defaultParams()
|
|
706
698
|
setLivenessParams(input.livenessParams!!, v as JSONObject)
|
|
707
699
|
}
|
|
708
|
-
|
|
709
|
-
"setCheckFilter" -> input.setCheckFilter((v as JSONObject).getString("checkType"), filterObjectFromJSON(v.getJSONObject("filterObject")))
|
|
710
|
-
"removeCheckFilter" -> input.removeCheckFilter(v as String)
|
|
711
|
-
"clearCheckFilter" -> input.clearCheckFilter()
|
|
712
|
-
"checkFilters" -> {
|
|
713
|
-
input.clearCheckFilter()
|
|
714
|
-
(v as JSONObject).forEach { key, value ->
|
|
715
|
-
input.setCheckFilter(key, filterObjectFromJSON(value as JSONObject))
|
|
716
|
-
}
|
|
717
|
-
}
|
|
718
700
|
}
|
|
719
701
|
}
|
|
720
702
|
|
|
@@ -748,16 +730,6 @@ fun setLivenessParams(input: LivenessParams, opts: JSONObject) = opts.forEach {
|
|
|
748
730
|
"checkBlackAndWhiteCopy" -> input.checkBlackAndWhiteCopy = v as Boolean
|
|
749
731
|
"checkDynaprint" -> input.checkDynaprint = v as Boolean
|
|
750
732
|
"checkGeometry" -> input.checkGeometry = v as Boolean
|
|
751
|
-
|
|
752
|
-
"setCheckFilter" -> input.setCheckFilter((v as JSONObject).getString("checkType"), filterObjectFromJSON(v.getJSONObject("filterObject")))
|
|
753
|
-
"removeCheckFilter" -> input.removeCheckFilter(v as String)
|
|
754
|
-
"clearCheckFilter" -> input.clearCheckFilter()
|
|
755
|
-
"checkFilters" -> {
|
|
756
|
-
input.clearCheckFilter()
|
|
757
|
-
(v as JSONObject).forEach { key, value ->
|
|
758
|
-
input.setCheckFilter(key, filterObjectFromJSON(value as JSONObject))
|
|
759
|
-
}
|
|
760
|
-
}
|
|
761
733
|
}
|
|
762
734
|
}
|
|
763
735
|
|
|
@@ -27,8 +27,6 @@ import com.regula.documentreader.api.params.BackendProcessingConfig
|
|
|
27
27
|
import com.regula.documentreader.api.params.BleDeviceConfig
|
|
28
28
|
import com.regula.documentreader.api.params.DocReaderConfig
|
|
29
29
|
import com.regula.documentreader.api.params.FaceApiParams
|
|
30
|
-
import com.regula.documentreader.api.params.FilterObject
|
|
31
|
-
import com.regula.documentreader.api.params.FilterObjectType
|
|
32
30
|
import com.regula.documentreader.api.params.Functionality
|
|
33
31
|
import com.regula.documentreader.api.params.ImageInputData
|
|
34
32
|
import com.regula.documentreader.api.params.ImageQA
|
|
@@ -1798,28 +1796,3 @@ fun generateMatrix(input: Matrix?) = input?.let {
|
|
|
1798
1796
|
for (f in floats) result.put(java.lang.Float.valueOf(f))
|
|
1799
1797
|
result
|
|
1800
1798
|
}
|
|
1801
|
-
|
|
1802
|
-
fun filterObjectFromJSON(it: JSONObject): FilterObject {
|
|
1803
|
-
val result = FilterObject()
|
|
1804
|
-
|
|
1805
|
-
result.docIDsFilter = filterObjectTypeIntFromJSON(it.getJSONObjectOrNull("docIDsFilter"))
|
|
1806
|
-
result.docFormatsFilter = filterObjectTypeIntFromJSON(it.getJSONObjectOrNull("docFormatsFilter"))
|
|
1807
|
-
result.docCategoriesFilter = filterObjectTypeIntFromJSON(it.getJSONObjectOrNull("docCategoriesFilter"))
|
|
1808
|
-
result.docCountriesFilter = filterObjectTypeStringFromJSON(it.getJSONObjectOrNull("docCountriesFilter"))
|
|
1809
|
-
|
|
1810
|
-
return result
|
|
1811
|
-
}
|
|
1812
|
-
|
|
1813
|
-
fun filterObjectTypeIntFromJSON(input: JSONObject?): FilterObjectType<Int>? = input?.let {
|
|
1814
|
-
val array = it.getJSONArray("list").toArray<Int>()!!
|
|
1815
|
-
if (it.getBoolean("isInclude"))
|
|
1816
|
-
return FilterObjectType.createIncludeList(array)
|
|
1817
|
-
return FilterObjectType.createExcludeList(array)
|
|
1818
|
-
}
|
|
1819
|
-
|
|
1820
|
-
fun filterObjectTypeStringFromJSON(input: JSONObject?): FilterObjectType<String>? = input?.let {
|
|
1821
|
-
val array = it.getJSONArray("list").toArray<String>()!!
|
|
1822
|
-
if (it.getBoolean("isInclude"))
|
|
1823
|
-
return FilterObjectType.createIncludeList(array)
|
|
1824
|
-
return FilterObjectType.createExcludeList(array)
|
|
1825
|
-
}
|
|
@@ -16,6 +16,7 @@ import com.regula.documentreader.api.DocumentReader.Instance
|
|
|
16
16
|
import com.regula.documentreader.api.completions.IDocumentReaderCompletion
|
|
17
17
|
import com.regula.documentreader.api.completions.IDocumentReaderInitCompletion
|
|
18
18
|
import com.regula.documentreader.api.completions.IDocumentReaderPrepareDbCompletion
|
|
19
|
+
import com.regula.documentreader.api.completions.IVideoEncoderCompletion
|
|
19
20
|
import com.regula.documentreader.api.completions.model.PrepareProgress
|
|
20
21
|
import com.regula.documentreader.api.completions.rfid.IRfidPKDCertificateCompletion
|
|
21
22
|
import com.regula.documentreader.api.completions.rfid.IRfidReaderCompletion
|
|
@@ -122,16 +123,6 @@ fun methodCall(method: String, callback: (Any?) -> Unit): Any? = when (method) {
|
|
|
122
123
|
"finalizePackage" -> finalizePackage(callback)
|
|
123
124
|
"endBackendTransaction" -> endBackendTransaction()
|
|
124
125
|
"getTranslation" -> getTranslation(callback, args(0), args(1))
|
|
125
|
-
// remove after finishing old dr support
|
|
126
|
-
"processParamsSetCheckFilter" -> processParamsSetCheckFilter(args(0), args(1))
|
|
127
|
-
"processParamsRemoveCheckFilter" -> processParamsRemoveCheckFilter(args(0))
|
|
128
|
-
"processParamsClearCheckFilter" -> processParamsClearCheckFilter()
|
|
129
|
-
"authenticityParamsSetCheckFilter" -> authenticityParamsSetCheckFilter(args(0), args(1))
|
|
130
|
-
"authenticityParamsRemoveCheckFilter" -> authenticityParamsRemoveCheckFilter(args(0))
|
|
131
|
-
"authenticityParamsClearCheckFilter" -> authenticityParamsClearCheckFilter()
|
|
132
|
-
"livenessParamsSetCheckFilter" -> livenessParamsSetCheckFilter(args(0), args(1))
|
|
133
|
-
"livenessParamsRemoveCheckFilter" -> livenessParamsRemoveCheckFilter(args(0))
|
|
134
|
-
"livenessParamsClearCheckFilter" -> livenessParamsClearCheckFilter()
|
|
135
126
|
else -> Unit
|
|
136
127
|
}
|
|
137
128
|
|
|
@@ -462,19 +453,6 @@ fun getTranslation(callback: Callback, className: String, value: Int) = when (cl
|
|
|
462
453
|
else -> Unit
|
|
463
454
|
}
|
|
464
455
|
|
|
465
|
-
// remove after finishing old dr support
|
|
466
|
-
fun processParamsSetCheckFilter(checkType: String, filter: JSONObject) = Instance().processParams().setCheckFilter(checkType, filterObjectFromJSON(filter))
|
|
467
|
-
fun processParamsRemoveCheckFilter(checkType: String) = Instance().processParams().removeCheckFilter(checkType)
|
|
468
|
-
fun processParamsClearCheckFilter() = Instance().processParams().clearCheckFilter()
|
|
469
|
-
|
|
470
|
-
fun authenticityParamsSetCheckFilter(checkType: String, filter: JSONObject) = Instance().processParams().authenticityParams?.setCheckFilter(checkType, filterObjectFromJSON(filter))
|
|
471
|
-
fun authenticityParamsRemoveCheckFilter(checkType: String) = Instance().processParams().authenticityParams?.removeCheckFilter(checkType)
|
|
472
|
-
fun authenticityParamsClearCheckFilter() = Instance().processParams().authenticityParams?.clearCheckFilter()
|
|
473
|
-
|
|
474
|
-
fun livenessParamsSetCheckFilter(checkType: String, filter: JSONObject) = Instance().processParams().authenticityParams?.livenessParams?.setCheckFilter(checkType, filterObjectFromJSON(filter))
|
|
475
|
-
fun livenessParamsRemoveCheckFilter(checkType: String) = Instance().processParams().authenticityParams?.livenessParams?.removeCheckFilter(checkType)
|
|
476
|
-
fun livenessParamsClearCheckFilter() = Instance().processParams().authenticityParams?.livenessParams?.clearCheckFilter()
|
|
477
|
-
|
|
478
456
|
// --------------------------------------------------------------------------------------------------------------------------
|
|
479
457
|
|
|
480
458
|
val completion = { action: Int, results: DocumentReaderResults?, error: DocumentReaderException? ->
|
|
@@ -499,7 +477,8 @@ fun prepareCompletion(callback: Callback) = object : IDocumentReaderPrepareDbCom
|
|
|
499
477
|
|
|
500
478
|
fun initCompletion(callback: Callback) = IDocumentReaderInitCompletion { success, error ->
|
|
501
479
|
if (success) {
|
|
502
|
-
|
|
480
|
+
videoEncoderCompletion = IVideoEncoderCompletion { _, file -> sendEvent(videoEncoderCompletionEvent, file.path) }
|
|
481
|
+
Instance().setVideoEncoderCompletion(videoEncoderCompletion)
|
|
503
482
|
Instance().setOnClickListener { sendEvent(onCustomButtonTappedEvent, it.tag) }
|
|
504
483
|
}
|
|
505
484
|
callback(generateSuccessCompletion(success, error))
|
|
@@ -600,3 +579,4 @@ fun stopBackgroundRFID() {
|
|
|
600
579
|
|
|
601
580
|
// Weak references
|
|
602
581
|
lateinit var localizationCallbacks: LocalizationCallbacks
|
|
582
|
+
lateinit var videoEncoderCompletion: IVideoEncoderCompletion
|
|
@@ -2278,14 +2278,14 @@
|
|
|
2278
2278
|
}
|
|
2279
2279
|
},
|
|
2280
2280
|
"node_modules/glob": {
|
|
2281
|
-
"version": "11.0
|
|
2282
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.
|
|
2283
|
-
"integrity": "sha512-
|
|
2284
|
-
"license": "
|
|
2281
|
+
"version": "11.1.0",
|
|
2282
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
|
|
2283
|
+
"integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
|
|
2284
|
+
"license": "BlueOak-1.0.0",
|
|
2285
2285
|
"dependencies": {
|
|
2286
2286
|
"foreground-child": "^3.3.1",
|
|
2287
2287
|
"jackspeak": "^4.1.1",
|
|
2288
|
-
"minimatch": "^10.
|
|
2288
|
+
"minimatch": "^10.1.1",
|
|
2289
2289
|
"minipass": "^7.1.2",
|
|
2290
2290
|
"package-json-from-dist": "^1.0.0",
|
|
2291
2291
|
"path-scurry": "^2.0.0"
|
|
@@ -2502,10 +2502,10 @@
|
|
|
2502
2502
|
}
|
|
2503
2503
|
},
|
|
2504
2504
|
"node_modules/minimatch": {
|
|
2505
|
-
"version": "10.
|
|
2506
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.
|
|
2507
|
-
"integrity": "sha512-
|
|
2508
|
-
"license": "
|
|
2505
|
+
"version": "10.1.1",
|
|
2506
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
|
|
2507
|
+
"integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
|
|
2508
|
+
"license": "BlueOak-1.0.0",
|
|
2509
2509
|
"dependencies": {
|
|
2510
2510
|
"@isaacs/brace-expansion": "^5.0.0"
|
|
2511
2511
|
},
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"android": "scripts/android.sh"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@regulaforensics/document-reader": "8.
|
|
10
|
-
"@regulaforensics/document-reader-core-fullauthrfid": "8.4.
|
|
11
|
-
"@regulaforensics/document-reader-btdevice": "8.4.
|
|
9
|
+
"@regulaforensics/document-reader": "8.5.443-nightly",
|
|
10
|
+
"@regulaforensics/document-reader-core-fullauthrfid": "8.4.787",
|
|
11
|
+
"@regulaforensics/document-reader-btdevice": "8.4.31",
|
|
12
12
|
"@awesome-cordova-plugins/file": "6.6.0",
|
|
13
13
|
"@awesome-cordova-plugins/camera": "6.6.0",
|
|
14
14
|
"cordova-plugin-file": "8.1.3",
|
|
@@ -6067,10 +6067,10 @@
|
|
|
6067
6067
|
"license": "ISC"
|
|
6068
6068
|
},
|
|
6069
6069
|
"node_modules/cacache/node_modules/tar": {
|
|
6070
|
-
"version": "7.5.
|
|
6071
|
-
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.
|
|
6072
|
-
"integrity": "sha512-
|
|
6073
|
-
"license": "
|
|
6070
|
+
"version": "7.5.2",
|
|
6071
|
+
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
|
|
6072
|
+
"integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
|
|
6073
|
+
"license": "BlueOak-1.0.0",
|
|
6074
6074
|
"dependencies": {
|
|
6075
6075
|
"@isaacs/fs-minipass": "^4.0.0",
|
|
6076
6076
|
"chownr": "^3.0.0",
|
|
@@ -7917,9 +7917,9 @@
|
|
|
7917
7917
|
}
|
|
7918
7918
|
},
|
|
7919
7919
|
"node_modules/glob": {
|
|
7920
|
-
"version": "10.
|
|
7921
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
7922
|
-
"integrity": "sha512-
|
|
7920
|
+
"version": "10.5.0",
|
|
7921
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
7922
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
7923
7923
|
"license": "ISC",
|
|
7924
7924
|
"dependencies": {
|
|
7925
7925
|
"foreground-child": "^3.1.0",
|
|
@@ -8781,9 +8781,9 @@
|
|
|
8781
8781
|
"license": "MIT"
|
|
8782
8782
|
},
|
|
8783
8783
|
"node_modules/js-yaml": {
|
|
8784
|
-
"version": "4.1.
|
|
8785
|
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.
|
|
8786
|
-
"integrity": "sha512-
|
|
8784
|
+
"version": "4.1.1",
|
|
8785
|
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
|
|
8786
|
+
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
|
8787
8787
|
"license": "MIT",
|
|
8788
8788
|
"dependencies": {
|
|
8789
8789
|
"argparse": "^2.0.1"
|
|
@@ -9788,10 +9788,10 @@
|
|
|
9788
9788
|
}
|
|
9789
9789
|
},
|
|
9790
9790
|
"node_modules/node-gyp/node_modules/tar": {
|
|
9791
|
-
"version": "7.5.
|
|
9792
|
-
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.
|
|
9793
|
-
"integrity": "sha512-
|
|
9794
|
-
"license": "
|
|
9791
|
+
"version": "7.5.2",
|
|
9792
|
+
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
|
|
9793
|
+
"integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
|
|
9794
|
+
"license": "BlueOak-1.0.0",
|
|
9795
9795
|
"dependencies": {
|
|
9796
9796
|
"@isaacs/fs-minipass": "^4.0.0",
|
|
9797
9797
|
"chownr": "^3.0.0",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"@awesome-cordova-plugins/file": "^8.1.0",
|
|
19
19
|
"@ionic/angular": "^8.7.3",
|
|
20
20
|
"@ionic/cordova-builders": "^12.3.0",
|
|
21
|
-
"@regulaforensics/document-reader": "8.
|
|
22
|
-
"@regulaforensics/document-reader-core-fullauthrfid": "8.4.
|
|
23
|
-
"@regulaforensics/document-reader-btdevice": "8.4.
|
|
21
|
+
"@regulaforensics/document-reader": "8.5.443-nightly",
|
|
22
|
+
"@regulaforensics/document-reader-core-fullauthrfid": "8.4.787",
|
|
23
|
+
"@regulaforensics/document-reader-btdevice": "8.4.31",
|
|
24
24
|
"cordova-android": "^14.0.1",
|
|
25
25
|
"cordova-ios": "^7.1.1",
|
|
26
26
|
"cordova-plugin-camera": "^8.0.0",
|
|
@@ -1588,9 +1588,9 @@
|
|
|
1588
1588
|
}
|
|
1589
1589
|
},
|
|
1590
1590
|
"node_modules/@expo/cli/node_modules/glob": {
|
|
1591
|
-
"version": "10.
|
|
1592
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
1593
|
-
"integrity": "sha512-
|
|
1591
|
+
"version": "10.5.0",
|
|
1592
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
1593
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
1594
1594
|
"license": "ISC",
|
|
1595
1595
|
"dependencies": {
|
|
1596
1596
|
"foreground-child": "^3.1.0",
|
|
@@ -1673,9 +1673,9 @@
|
|
|
1673
1673
|
}
|
|
1674
1674
|
},
|
|
1675
1675
|
"node_modules/@expo/config-plugins/node_modules/glob": {
|
|
1676
|
-
"version": "10.
|
|
1677
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
1678
|
-
"integrity": "sha512-
|
|
1676
|
+
"version": "10.5.0",
|
|
1677
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
1678
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
1679
1679
|
"license": "ISC",
|
|
1680
1680
|
"dependencies": {
|
|
1681
1681
|
"foreground-child": "^3.1.0",
|
|
@@ -1720,9 +1720,9 @@
|
|
|
1720
1720
|
}
|
|
1721
1721
|
},
|
|
1722
1722
|
"node_modules/@expo/config/node_modules/glob": {
|
|
1723
|
-
"version": "10.
|
|
1724
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
1725
|
-
"integrity": "sha512-
|
|
1723
|
+
"version": "10.5.0",
|
|
1724
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
1725
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
1726
1726
|
"license": "ISC",
|
|
1727
1727
|
"dependencies": {
|
|
1728
1728
|
"foreground-child": "^3.1.0",
|
|
@@ -1772,9 +1772,9 @@
|
|
|
1772
1772
|
}
|
|
1773
1773
|
},
|
|
1774
1774
|
"node_modules/@expo/devcert/node_modules/glob": {
|
|
1775
|
-
"version": "10.
|
|
1776
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
1777
|
-
"integrity": "sha512-
|
|
1775
|
+
"version": "10.5.0",
|
|
1776
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
1777
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
1778
1778
|
"license": "ISC",
|
|
1779
1779
|
"dependencies": {
|
|
1780
1780
|
"foreground-child": "^3.1.0",
|
|
@@ -1848,9 +1848,9 @@
|
|
|
1848
1848
|
}
|
|
1849
1849
|
},
|
|
1850
1850
|
"node_modules/@expo/fingerprint/node_modules/glob": {
|
|
1851
|
-
"version": "10.
|
|
1852
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
1853
|
-
"integrity": "sha512-
|
|
1851
|
+
"version": "10.5.0",
|
|
1852
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
1853
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
1854
1854
|
"license": "ISC",
|
|
1855
1855
|
"dependencies": {
|
|
1856
1856
|
"foreground-child": "^3.1.0",
|
|
@@ -2005,9 +2005,9 @@
|
|
|
2005
2005
|
}
|
|
2006
2006
|
},
|
|
2007
2007
|
"node_modules/@expo/metro-config/node_modules/glob": {
|
|
2008
|
-
"version": "10.
|
|
2009
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
2010
|
-
"integrity": "sha512-
|
|
2008
|
+
"version": "10.5.0",
|
|
2009
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
2010
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
2011
2011
|
"license": "ISC",
|
|
2012
2012
|
"dependencies": {
|
|
2013
2013
|
"foreground-child": "^3.1.0",
|
|
@@ -2363,9 +2363,9 @@
|
|
|
2363
2363
|
}
|
|
2364
2364
|
},
|
|
2365
2365
|
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
|
|
2366
|
-
"version": "3.14.
|
|
2367
|
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.
|
|
2368
|
-
"integrity": "sha512-
|
|
2366
|
+
"version": "3.14.2",
|
|
2367
|
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
|
|
2368
|
+
"integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
|
|
2369
2369
|
"license": "MIT",
|
|
2370
2370
|
"dependencies": {
|
|
2371
2371
|
"argparse": "^1.0.7",
|
|
@@ -4421,9 +4421,9 @@
|
|
|
4421
4421
|
}
|
|
4422
4422
|
},
|
|
4423
4423
|
"node_modules/expo-modules-autolinking/node_modules/glob": {
|
|
4424
|
-
"version": "10.
|
|
4425
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
4426
|
-
"integrity": "sha512-
|
|
4424
|
+
"version": "10.5.0",
|
|
4425
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
4426
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
4427
4427
|
"license": "ISC",
|
|
4428
4428
|
"dependencies": {
|
|
4429
4429
|
"foreground-child": "^3.1.0",
|
|
@@ -5239,9 +5239,9 @@
|
|
|
5239
5239
|
"license": "MIT"
|
|
5240
5240
|
},
|
|
5241
5241
|
"node_modules/js-yaml": {
|
|
5242
|
-
"version": "4.1.
|
|
5243
|
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.
|
|
5244
|
-
"integrity": "sha512-
|
|
5242
|
+
"version": "4.1.1",
|
|
5243
|
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
|
|
5244
|
+
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
|
5245
5245
|
"license": "MIT",
|
|
5246
5246
|
"dependencies": {
|
|
5247
5247
|
"argparse": "^2.0.1"
|
|
@@ -8059,9 +8059,9 @@
|
|
|
8059
8059
|
}
|
|
8060
8060
|
},
|
|
8061
8061
|
"node_modules/sucrase/node_modules/glob": {
|
|
8062
|
-
"version": "10.
|
|
8063
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-10.
|
|
8064
|
-
"integrity": "sha512-
|
|
8062
|
+
"version": "10.5.0",
|
|
8063
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
|
8064
|
+
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
|
8065
8065
|
"license": "ISC",
|
|
8066
8066
|
"dependencies": {
|
|
8067
8067
|
"foreground-child": "^3.1.0",
|
|
@@ -8116,10 +8116,10 @@
|
|
|
8116
8116
|
}
|
|
8117
8117
|
},
|
|
8118
8118
|
"node_modules/tar": {
|
|
8119
|
-
"version": "7.5.
|
|
8120
|
-
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.
|
|
8121
|
-
"integrity": "sha512-
|
|
8122
|
-
"license": "
|
|
8119
|
+
"version": "7.5.2",
|
|
8120
|
+
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
|
|
8121
|
+
"integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
|
|
8122
|
+
"license": "BlueOak-1.0.0",
|
|
8123
8123
|
"dependencies": {
|
|
8124
8124
|
"@isaacs/fs-minipass": "^4.0.0",
|
|
8125
8125
|
"chownr": "^3.0.0",
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"start": "expo start"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@regulaforensics/document-reader": "8.
|
|
12
|
-
"@regulaforensics/document-reader-core-fullauthrfid": "8.4.
|
|
13
|
-
"@regulaforensics/document-reader-btdevice": "8.4.
|
|
11
|
+
"@regulaforensics/document-reader": "8.5.443-nightly",
|
|
12
|
+
"@regulaforensics/document-reader-core-fullauthrfid": "8.4.787",
|
|
13
|
+
"@regulaforensics/document-reader-btdevice": "8.4.31",
|
|
14
14
|
"react-native": "^0.81.4",
|
|
15
15
|
"react-native-fs": "^2.20.0",
|
|
16
16
|
"react-native-image-picker": "^8.2.1",
|
package/ios/RGLWConfig.m
CHANGED
|
@@ -188,6 +188,7 @@
|
|
|
188
188
|
if (options[@"generateAlpha2Codes"]) processParams.generateAlpha2Codes = options[@"generateAlpha2Codes"];
|
|
189
189
|
if (options[@"disableAuthResolutionFilter"]) processParams.disableAuthResolutionFilter = options[@"disableAuthResolutionFilter"];
|
|
190
190
|
if (options[@"strictSecurityChecks"]) processParams.strictSecurityChecks = options[@"strictSecurityChecks"];
|
|
191
|
+
if (options[@"returnTransliteratedFields"]) processParams.returnTransliteratedFields = options[@"returnTransliteratedFields"];
|
|
191
192
|
|
|
192
193
|
// Int
|
|
193
194
|
if([options valueForKey:@"measureSystem"] != nil)
|
|
@@ -272,16 +273,6 @@
|
|
|
272
273
|
if(processParams.authenticityParams == nil) processParams.authenticityParams = [RGLAuthenticityParams defaultParams];
|
|
273
274
|
[self setAuthenticityParams:processParams.authenticityParams input:[options valueForKey:@"authenticityParams"]];
|
|
274
275
|
}
|
|
275
|
-
|
|
276
|
-
if (options[@"setCheckFilter"]) [processParams
|
|
277
|
-
addFilter:[RGLWJSONConstructor filterObjectFromJson: options[@"setCheckFilter"][@"filterObject"]] forCheckType:options[@"setCheckFilter"][@"checkType"]];
|
|
278
|
-
if (options[@"removeCheckFilter"]) [processParams removeFilterForCheckType: options[@"removeCheckFilter"]];
|
|
279
|
-
if (options[@"clearCheckFilter"]) [processParams clearCheckFilter];
|
|
280
|
-
if (options[@"checkFilters"]) {
|
|
281
|
-
[processParams clearCheckFilter];
|
|
282
|
-
for (NSString* key in options[@"checkFilters"])
|
|
283
|
-
[processParams addFilter:[RGLWJSONConstructor filterObjectFromJson: options[@"checkFilters"][key]] forCheckType: key];
|
|
284
|
-
}
|
|
285
276
|
}
|
|
286
277
|
|
|
287
278
|
+(NSDictionary*)getProcessParams:(RGLProcessParams*)processParams {
|
|
@@ -327,6 +318,7 @@
|
|
|
327
318
|
result[@"generateAlpha2Codes"] = processParams.generateAlpha2Codes;
|
|
328
319
|
result[@"disableAuthResolutionFilter"] = processParams.disableAuthResolutionFilter;
|
|
329
320
|
result[@"strictSecurityChecks"] = processParams.strictSecurityChecks;
|
|
321
|
+
result[@"returnTransliteratedFields"] = processParams.returnTransliteratedFields;
|
|
330
322
|
|
|
331
323
|
// Int
|
|
332
324
|
result[@"measureSystem"] = [NSNumber numberWithInteger:processParams.measureSystem];
|
|
@@ -1017,16 +1009,6 @@
|
|
|
1017
1009
|
if([input valueForKey:@"checkLetterScreen"] != nil)
|
|
1018
1010
|
result.checkLetterScreen = [input valueForKey:@"checkLetterScreen"];
|
|
1019
1011
|
if(input[@"checkSecurityText"]) result.checkSecurityText = input[@"checkSecurityText"];
|
|
1020
|
-
|
|
1021
|
-
if (input[@"setCheckFilter"]) [result
|
|
1022
|
-
addFilter:[RGLWJSONConstructor filterObjectFromJson: input[@"setCheckFilter"][@"filterObject"]] forCheckType:input[@"setCheckFilter"][@"checkType"]];
|
|
1023
|
-
if (input[@"removeCheckFilter"]) [result removeFilterForCheckType: input[@"removeCheckFilter"]];
|
|
1024
|
-
if (input[@"clearCheckFilter"]) [result clearCheckFilter];
|
|
1025
|
-
if (input[@"checkFilters"]) {
|
|
1026
|
-
[result clearCheckFilter];
|
|
1027
|
-
for (NSString* key in input[@"checkFilters"])
|
|
1028
|
-
[result addFilter:[RGLWJSONConstructor filterObjectFromJson: input[@"checkFilters"][key]] forCheckType: key];
|
|
1029
|
-
}
|
|
1030
1012
|
}
|
|
1031
1013
|
|
|
1032
1014
|
+(NSDictionary*)getAuthenticityParams:(RGLAuthenticityParams*)input {
|
|
@@ -1065,16 +1047,6 @@
|
|
|
1065
1047
|
if(input[@"checkBlackAndWhiteCopy"]) result.checkBlackAndWhiteCopy = input[@"checkBlackAndWhiteCopy"];
|
|
1066
1048
|
if(input[@"checkDynaprint"]) result.checkDynaprint = input[@"checkDynaprint"];
|
|
1067
1049
|
if(input[@"checkGeometry"]) result.checkGeometry = input[@"checkGeometry"];
|
|
1068
|
-
|
|
1069
|
-
if (input[@"setCheckFilter"]) [result
|
|
1070
|
-
addFilter:[RGLWJSONConstructor filterObjectFromJson: input[@"setCheckFilter"][@"filterObject"]] forCheckType:input[@"setCheckFilter"][@"checkType"]];
|
|
1071
|
-
if (input[@"removeCheckFilter"]) [result removeFilterForCheckType: input[@"removeCheckFilter"]];
|
|
1072
|
-
if (input[@"clearCheckFilter"]) [result clearCheckFilter];
|
|
1073
|
-
if (input[@"checkFilters"]) {
|
|
1074
|
-
[result clearCheckFilter];
|
|
1075
|
-
for (NSString* key in input[@"checkFilters"])
|
|
1076
|
-
[result addFilter:[RGLWJSONConstructor filterObjectFromJson: input[@"checkFilters"][key]] forCheckType: key];
|
|
1077
|
-
}
|
|
1078
1050
|
}
|
|
1079
1051
|
|
|
1080
1052
|
+(NSDictionary*)getLivenessParams:(RGLLivenessParams*)input {
|
|
@@ -175,7 +175,6 @@
|
|
|
175
175
|
+(NSDictionary* _Nullable)generateTCCParams:(RGLTCCParams* _Nullable)input;
|
|
176
176
|
+(RGLTransactionInfo* _Nullable)transactionInfoFromJson:(NSDictionary* _Nullable)input;
|
|
177
177
|
+(NSDictionary* _Nullable)generateTransactionInfo:(RGLTransactionInfo* _Nullable)input;
|
|
178
|
-
+(RGLFilterObject* _Nonnull)filterObjectFromJson:(NSDictionary* _Nonnull)input;
|
|
179
178
|
|
|
180
179
|
@end
|
|
181
180
|
|
|
@@ -2350,24 +2350,6 @@ static NSMutableArray* weakReferencesHolder;
|
|
|
2350
2350
|
return result;
|
|
2351
2351
|
}
|
|
2352
2352
|
|
|
2353
|
-
+(RGLFilterObject*)filterObjectFromJson:(NSDictionary*)input {
|
|
2354
|
-
RGLFilterObject* result = [RGLFilterObject new];
|
|
2355
|
-
|
|
2356
|
-
result.docIDsFilter = [self filterObjectTypeFromJSON: input[@"docIDsFilter"]];
|
|
2357
|
-
result.docFormatsFilter = [self filterObjectTypeFromJSON: input[@"docFormatsFilter"]];
|
|
2358
|
-
result.docCategoriesFilter = [self filterObjectTypeFromJSON: input[@"docCategoriesFilter"]];
|
|
2359
|
-
result.docCountriesFilter = [self filterObjectTypeFromJSON: input[@"docCountriesFilter"]];
|
|
2360
|
-
|
|
2361
|
-
return result;
|
|
2362
|
-
}
|
|
2363
|
-
|
|
2364
|
-
+(RGLFilterObjectType*)filterObjectTypeFromJSON:(NSDictionary*)input {
|
|
2365
|
-
NSArray* array = input[@"list"];
|
|
2366
|
-
if ([input[@"isInclude"] boolValue])
|
|
2367
|
-
return [RGLFilterObjectType createIncludeList:array];
|
|
2368
|
-
return [RGLFilterObjectType createExcludeList:array];
|
|
2369
|
-
}
|
|
2370
|
-
|
|
2371
2353
|
+(NSDictionary*)generateDictionary:(NSDictionary<NSNumber*, NSNumber*>*)input {
|
|
2372
2354
|
if(input == nil) return nil;
|
|
2373
2355
|
NSMutableDictionary* result = [NSMutableDictionary new];
|