@microblink/blinkid-react-native 7.2.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  6. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  7. package/android/build.gradle +1 -1
  8. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdDeserializationUtilities.kt +2 -1
  9. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdSerializationUtilities.kt +21 -3
  10. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkidReactNativeModule.kt +14 -2
  11. package/ios/BlinkIdDeserializationUtilities.swift +3 -0
  12. package/ios/BlinkIdSerializationUtilities.swift +151 -53
  13. package/ios/BlinkidReactNativeModule.swift +22 -3
  14. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/BlinkID +0 -0
  15. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID-Swift.h +24563 -16979
  16. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Info.plist +0 -0
  17. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.abi.json +14027 -608
  18. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.private.swiftinterface +462 -14
  19. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  20. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftinterface +462 -14
  21. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +1 -0
  22. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/_CodeSignature/CodeResources +17 -17
  23. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/conan.xcconfig +3 -3
  24. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/BlinkID +0 -0
  25. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID-Swift.h +49697 -34548
  26. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Info.plist +0 -0
  27. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.abi.json +14027 -608
  28. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +462 -14
  29. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  30. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftinterface +462 -14
  31. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.abi.json +14027 -608
  32. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +462 -14
  33. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  34. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +462 -14
  35. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +1 -0
  36. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/_CodeSignature/CodeResources +27 -27
  37. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/conan.xcconfig +3 -3
  38. package/ios/Frameworks/BlinkIDUX.xcframework/Info.plist +5 -5
  39. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX +0 -0
  40. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
  41. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  42. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  43. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Info.plist +0 -0
  44. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.abi.json +708 -193
  45. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.package.swiftinterface +28 -41
  46. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.private.swiftinterface +28 -41
  47. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  48. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftinterface +28 -41
  49. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX +0 -0
  50. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
  51. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  52. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeDirectory +0 -0
  53. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeRequirements-1 +0 -0
  54. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeResources +6 -6
  55. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  56. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Info.plist +0 -0
  57. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.abi.json +708 -193
  58. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +28 -41
  59. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +28 -41
  60. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  61. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftinterface +28 -41
  62. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.abi.json +708 -193
  63. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +28 -41
  64. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +28 -41
  65. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  66. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +28 -41
  67. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/_CodeSignature/CodeResources +1 -1
  68. package/lib/module/NativeBlinkidReactNative.js +4 -4
  69. package/lib/module/NativeBlinkidReactNative.js.map +1 -1
  70. package/lib/module/blinkIdResult.js +34 -1
  71. package/lib/module/blinkIdResult.js.map +1 -1
  72. package/lib/module/blinkIdSettings.js +272 -259
  73. package/lib/module/blinkIdSettings.js.map +1 -1
  74. package/lib/module/blinkIdUtilities.js +2 -2
  75. package/lib/module/index.js +19 -19
  76. package/lib/module/index.js.map +1 -1
  77. package/lib/module/types.js +30 -9
  78. package/lib/module/types.js.map +1 -1
  79. package/lib/typescript/src/NativeBlinkidReactNative.d.ts +1 -1
  80. package/lib/typescript/src/NativeBlinkidReactNative.d.ts.map +1 -1
  81. package/lib/typescript/src/blinkIdResult.d.ts +16 -1
  82. package/lib/typescript/src/blinkIdResult.d.ts.map +1 -1
  83. package/lib/typescript/src/blinkIdSettings.d.ts +193 -181
  84. package/lib/typescript/src/blinkIdSettings.d.ts.map +1 -1
  85. package/lib/typescript/src/index.d.ts +6 -6
  86. package/lib/typescript/src/index.d.ts.map +1 -1
  87. package/lib/typescript/src/types.d.ts +20 -1
  88. package/lib/typescript/src/types.d.ts.map +1 -1
  89. package/package.json +1 -1
  90. package/src/NativeBlinkidReactNative.ts +25 -15
  91. package/src/blinkIdResult.ts +74 -74
  92. package/src/blinkIdSettings.ts +264 -250
  93. package/src/blinkIdUtilities.ts +4 -4
  94. package/src/index.tsx +56 -34
  95. package/src/types.ts +647 -688
  96. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeDirectory +0 -0
  97. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements +0 -0
  98. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  99. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeResources +0 -1575
  100. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeSignature +0 -0
@@ -1,2 +1,2 @@
1
- #Tue May 20 15:25:31 CEST 2025
1
+ #Mon Jul 21 15:42:56 CEST 2025
2
2
  gradle.version=8.9
@@ -75,7 +75,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
75
75
  dependencies {
76
76
  implementation "com.facebook.react:react-android"
77
77
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
78
- implementation("com.microblink:blinkid-ux:7.2.1")
78
+ implementation("com.microblink:blinkid-ux:7.5.0")
79
79
  }
80
80
 
81
81
  react {
@@ -57,7 +57,8 @@ object BlinkIdDeserializationUtilities {
57
57
  blinkIdSdkSettingsMap.optJSONObject(
58
58
  "resourceRequestTimeout"
59
59
  )
60
- )
60
+ ),
61
+ microblinkProxyUrl = if (blinkIdSdkSettingsMap.has("microblinkProxyURL")) blinkIdSdkSettingsMap.getString("microblinkProxyURL") else null,
61
62
  )
62
63
  }
63
64
 
@@ -144,7 +144,15 @@ object BlinkIdSerializationUtilities {
144
144
  scanningResult?.visaType?.let {
145
145
  scanningResultJson.put("visaType", serializeStringResult(it))
146
146
  }
147
-
147
+ scanningResult?.countryCode?.let {
148
+ scanningResultJson.put("countryCode", serializeStringResult(it))
149
+ }
150
+ scanningResult?.certificateNumber?.let {
151
+ scanningResultJson.put("certificateNumber", serializeStringResult(it))
152
+ }
153
+ scanningResult?.nationalInsuranceNumber?.let {
154
+ scanningResultJson.put("nationalInsuranceNumber", serializeStringResult(it))
155
+ }
148
156
  scanningResult?.dateOfBirth?.let {
149
157
  scanningResultJson.put("dateOfBirth", serializeDateResult(it))
150
158
  }
@@ -339,8 +347,8 @@ object BlinkIdSerializationUtilities {
339
347
 
340
348
  private fun <T> serializeVehicleClassInfo(vehicleClassInfo: VehicleClassInfo<T>): JSONObject {
341
349
  val vehicleClassInfoJson = JSONObject()
342
- vehicleClassInfoJson.put("effectiveDate", serializeStringType(vehicleClassInfo.effectiveDate))
343
- vehicleClassInfoJson.put("expiryDate", serializeStringType(vehicleClassInfo.expiryDate))
350
+ vehicleClassInfoJson.put("effectiveDate", serializeDateResult(vehicleClassInfo.effectiveDate))
351
+ vehicleClassInfoJson.put("expiryDate", serializeDateResult(vehicleClassInfo.expiryDate))
344
352
  vehicleClassInfoJson.put("licenceType", serializeStringType(vehicleClassInfo.licenceType))
345
353
  vehicleClassInfoJson.put("vehicleClass", serializeStringType(vehicleClassInfo.vehicleClass))
346
354
  return vehicleClassInfoJson
@@ -415,6 +423,7 @@ object BlinkIdSerializationUtilities {
415
423
  barcodeResultJson.put("religion", barcodeResult?.religion)
416
424
  barcodeResultJson.put("residentialStatus", barcodeResult?.residentialStatus)
417
425
  barcodeResultJson.put("sex", barcodeResult?.sex)
426
+ barcodeResultJson.put("parsed", barcodeResult?.parsed)
418
427
  barcodeResultJson.put(
419
428
  "extendedElements",
420
429
  serializeBarcodeExtendedElements(barcodeResult?.extendedElements?.barcodeElements)
@@ -603,6 +612,15 @@ object BlinkIdSerializationUtilities {
603
612
  vizResult?.visaType?.let {
604
613
  vizResultJson.put("visaType", serializeStringResult(it))
605
614
  }
615
+ vizResult?.countryCode?.let {
616
+ vizResultJson.put("countryCode", serializeStringResult(it))
617
+ }
618
+ vizResult?.certificateNumber?.let {
619
+ vizResultJson.put("certificateNumber", serializeStringResult(it))
620
+ }
621
+ vizResult?.nationalInsuranceNumber?.let {
622
+ vizResultJson.put("nationalInsuranceNumber", serializeStringResult(it))
623
+ }
606
624
  return vizResultJson
607
625
  }
608
626
 
@@ -1,6 +1,7 @@
1
1
  package com.microblink.blinkid.reactnative
2
2
 
3
3
  import android.app.Activity
4
+ import android.content.Context
4
5
  import android.content.Intent
5
6
  import com.facebook.react.bridge.BaseActivityEventListener
6
7
  import com.facebook.react.bridge.Promise
@@ -13,7 +14,8 @@ import com.microblink.blinkid.ux.contract.BlinkIdScanActivitySettings
13
14
  import com.microblink.blinkid.ux.contract.MbBlinkIdScan
14
15
  import com.microblink.core.LicenseLockedException
15
16
  import com.microblink.core.image.InputImage
16
- import com.microblink.ux.UiSettings
17
+ import com.microblink.core.ping.PingManager
18
+ import com.microblink.core.ping.pinglets.WrapperProductInfo
17
19
  import kotlinx.coroutines.CoroutineScope
18
20
  import kotlinx.coroutines.Dispatchers
19
21
  import kotlinx.coroutines.launch
@@ -56,6 +58,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
56
58
 
57
59
  BlinkIdScanActivityResultStatus.Canceled -> {
58
60
  pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Scanning is canceled.")
61
+ suspend { BlinkIdSdk.sdkInstance?.close() }
59
62
  }
60
63
 
61
64
  BlinkIdScanActivityResultStatus.ErrorSdkInit -> {
@@ -108,6 +111,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
108
111
  showOnboardingDialog = blinkIdUiSettingsJson?.optBoolean("showOnboardingDialog", true) ?: true
109
112
  )
110
113
  )
114
+ addReactNativePinglet(it)
111
115
  currentActivity?.startActivityForResult(intent, BLINKID_REQUEST_CODE, null)
112
116
  } ?: pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Activity not found.")
113
117
  } catch (error: Exception) {
@@ -147,6 +151,9 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
147
151
  }
148
152
 
149
153
  val sdkInit = BlinkIdSdk.initializeSdk(context, sdkSettings)
154
+
155
+ addReactNativePinglet(context)
156
+
150
157
  when {
151
158
  sdkInit.isSuccess -> {
152
159
  val instance = sdkInit.getOrNull() ?: return@launch withContext(Dispatchers.Main) {
@@ -202,7 +209,12 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
202
209
  }
203
210
  }
204
211
  }
205
-
212
+ private fun addReactNativePinglet(context: Context) {
213
+ PingManager.getInstance(context).add(
214
+ WrapperProductInfo(
215
+ wrapperProduct = WrapperProductInfo.WrapperProduct.CROSSPLATFORMREACTNATIVE),
216
+ 0)
217
+ }
206
218
  companion object {
207
219
  const val NAME = "BlinkidReactNative"
208
220
  }
@@ -37,6 +37,9 @@ class BlinkIdDeserializationUtilities {
37
37
  if let resourceRequestTimeout = sdkSettingsDict?["resourceRequestTimeout"] as? Int {
38
38
  blinkidSdkSettings?.resourceRequestTimeout = BlinkID.RequestTimeout.default
39
39
  }
40
+ if let microblinkProxyUrl = sdkSettingsDict?["microblinkProxyURL"] as? String {
41
+ blinkidSdkSettings?.microblinkProxyURL = microblinkProxyUrl
42
+ }
40
43
  return blinkidSdkSettings
41
44
  }
42
45
 
@@ -117,6 +117,15 @@ class BlinkIdSerializationUtilities {
117
117
  if let vehicleType = scanningResult?.vehicleType {
118
118
  scanningResultDict["vehicleType"] = serializeStringResult(vehicleType)
119
119
  }
120
+ if let countryCode = scanningResult?.countryCode {
121
+ scanningResultDict["countryCode"] = serializeStringResult(countryCode)
122
+ }
123
+ if let certificateNumber = scanningResult?.certificateNumber {
124
+ scanningResultDict["certificateNumber"] = serializeStringResult(certificateNumber)
125
+ }
126
+ if let nationalInsuranceNumber = scanningResult?.nationalInsuranceNumber {
127
+ scanningResultDict["nationalInsuranceNumber"] = serializeStringResult(nationalInsuranceNumber)
128
+ }
120
129
  if let eligibilityCategory = scanningResult?.eligibilityCategory {
121
130
  scanningResultDict["eligibilityCategory"] = serializeStringResult(eligibilityCategory)
122
131
  }
@@ -275,8 +284,8 @@ class BlinkIdSerializationUtilities {
275
284
 
276
285
  static func serializeVehicleClassInfo<T>(_ vehicleClassInfo: VehicleClassInfo<T>?) -> Dictionary<String, Any> {
277
286
  let vehicleClassInfoDict: [String: Any?] = [
278
- "effectiveDate": serializeStringType(vehicleClassInfo?.effectiveDate),
279
- "expiryDate": serializeStringType(vehicleClassInfo?.expiryDate),
287
+ "effectiveDate": serializeDateResult(vehicleClassInfo?.effectiveDate),
288
+ "expiryDate": serializeDateResult(vehicleClassInfo?.expiryDate),
280
289
  "licenceType": serializeStringType(vehicleClassInfo?.licenceType),
281
290
  "vehicleClass": serializeStringType(vehicleClassInfo?.vehicleClass as? String)
282
291
  ]
@@ -334,7 +343,8 @@ class BlinkIdSerializationUtilities {
334
343
  "race": barcodeResult?.race,
335
344
  "religion": barcodeResult?.religion,
336
345
  "residentialStatus": barcodeResult?.residentialStatus,
337
- "sex": barcodeResult?.sex
346
+ "sex": barcodeResult?.sex,
347
+ "parsed": barcodeResult?.parsed
338
348
  ]
339
349
 
340
350
  return barcodeResultDict.compactMapValues { $0 }
@@ -494,56 +504,144 @@ class BlinkIdSerializationUtilities {
494
504
  return mrzResultDict.compactMapValues { $0 }
495
505
  }
496
506
 
497
- static func serializeVizResult(_ vizResult: VIZResult?) -> Dictionary<String, Any> {
498
-
499
- let vizResultDict: [String: Any?] =
500
- [
501
- "additionalAddressInformation": serializeStringResult(vizResult?.additionalAddressInformation),
502
- "additionalNameInformation": serializeStringResult(vizResult?.additionalNameInformation),
503
- "additionalOptionalAddressInformation": serializeStringResult(vizResult?.additionalOptionalAddressInformation),
504
- "additionalPersonalIdNumber": serializeStringResult(vizResult?.additionalPersonalIdNumber),
505
- "address": serializeStringResult(vizResult?.address),
506
- "bloodType": serializeStringResult(vizResult?.bloodType),
507
- "dateOfBirth": serializeDateResult(vizResult?.dateOfBirth),
508
- "dateOfExpiry": serializeDateResult(vizResult?.dateOfExpiry),
509
- "dateOfExpiryPermanent": vizResult?.dateOfExpiryPermanent,
510
- "dateOfIssue": serializeDateResult(vizResult?.dateOfIssue),
511
- "dependentsInfo": vizResult?.dependentsInfo.compactMap(serializeDependentInfo(_:)),
512
- "documentAdditionalNumber": serializeStringResult(vizResult?.documentAdditionalNumber),
513
- "documentNumber": serializeStringResult(vizResult?.documentNumber),
514
- "documentOptionalAdditionalNumber": serializeStringResult(vizResult?.documentOptionalAdditionalNumber),
515
- "documentSubtype": serializeStringResult(vizResult?.documentSubtype),
516
- "driverLicenseDetailedInfo": serializeDriverLicenseDetailedInfo(vizResult?.driverLicenseDetailedInfo),
517
- "eligibilityCategory": serializeStringResult(vizResult?.eligibilityCategory),
518
- "employer": serializeStringResult(vizResult?.employer),
519
- "fathersName": serializeStringResult(vizResult?.fathersName),
520
- "firstName": serializeStringResult(vizResult?.firstName),
521
- "fullName": serializeStringResult(vizResult?.fullName),
522
- "issuingAuthority": serializeStringResult(vizResult?.issuingAuthority),
523
- "lastName": serializeStringResult(vizResult?.lastName),
524
- "localizedName": serializeStringResult(vizResult?.localizedName),
525
- "manufacturingYear": serializeStringResult(vizResult?.manufacturingYear),
526
- "maritalStatus": serializeStringResult(vizResult?.maritalStatus),
527
- "mothersName": serializeStringResult(vizResult?.mothersName),
528
- "nationality": serializeStringResult(vizResult?.nationality),
529
- "personalIdNumber": serializeStringResult(vizResult?.personalIdNumber),
530
- "placeOfBirth": serializeStringResult(vizResult?.placeOfBirth),
531
- "profession": serializeStringResult(vizResult?.profession),
532
- "race": serializeStringResult(vizResult?.race),
533
- "religion": serializeStringResult(vizResult?.religion),
534
- "remarks": serializeStringResult(vizResult?.remarks),
535
- "residencePermitType": serializeStringResult(vizResult?.residencePermitType),
536
- "residentialStatus": serializeStringResult(vizResult?.residentialStatus),
537
- "sex": serializeStringResult(vizResult?.sex),
538
- "specificDocumentValidity": serializeStringResult(vizResult?.specificDocumentValidity),
539
- "sponsor": serializeStringResult(vizResult?.sponsor),
540
- "vehicleOwner": serializeStringResult(vizResult?.vehicleOwner),
541
- "vehicleType": serializeStringResult(vizResult?.vehicleType),
542
- "visaType": serializeStringResult(vizResult?.visaType)
543
- ]
544
-
545
- return vizResultDict.compactMapValues { $0 }
546
- }
507
+ static func serializeVizResult(_ vizResult: VIZResult?) -> Dictionary<String, Any> {
508
+ var vizResultDict = Dictionary<String, Any>()
509
+ if let vizResult = vizResult {
510
+ if let additionalAddressInformation = vizResult.additionalAddressInformation {
511
+ vizResultDict["additionalAddressInformation"] = serializeStringResult(additionalAddressInformation)
512
+ }
513
+
514
+ if let additionalNameInformation = vizResult.additionalNameInformation {
515
+ vizResultDict["additionalNameInformation"] = serializeStringResult(additionalNameInformation)
516
+ }
517
+ if let additionalOptionalAddressInformation = vizResult.additionalOptionalAddressInformation {
518
+ vizResultDict["additionalOptionalAddressInformation"] = serializeStringResult(additionalOptionalAddressInformation)
519
+ }
520
+ if let additionalPersonalIdNumber = vizResult.additionalPersonalIdNumber {
521
+ vizResultDict["additionalPersonalIdNumber"] = serializeStringResult(additionalPersonalIdNumber)
522
+ }
523
+ if let address = vizResult.address {
524
+ vizResultDict["address"] = serializeStringResult(address)
525
+ }
526
+ if let bloodType = vizResult.bloodType {
527
+ vizResultDict["bloodType"] = serializeStringResult(bloodType)
528
+ }
529
+ if let dateOfBirth = vizResult.dateOfBirth {
530
+ vizResultDict["dateOfBirth"] = serializeDateResult(dateOfBirth)
531
+ }
532
+ if let dateOfExpiry = vizResult.dateOfExpiry {
533
+ vizResultDict["dateOfExpiry"] = serializeDateResult(dateOfExpiry)
534
+ }
535
+ vizResultDict["dateOfExpiryPermanent"] = vizResult.dateOfExpiryPermanent
536
+ if let dateOfIssue = vizResult.dateOfIssue {
537
+ vizResultDict["dateOfIssue"] = serializeDateResult(dateOfIssue)
538
+ }
539
+ vizResultDict["dependentsInfo"] = vizResult.dependentsInfo?.compactMap(serializeDependentInfo(_:))
540
+ if let documentAdditionalNumber = vizResult.documentAdditionalNumber {
541
+ vizResultDict["documentAdditionalNumber"] = serializeStringResult(documentAdditionalNumber)
542
+ }
543
+ if let documentNumber = vizResult.documentNumber {
544
+ vizResultDict["documentNumber"] = serializeStringResult(documentNumber)
545
+ }
546
+ if let documentOptionalAdditionalNumber = vizResult.documentOptionalAdditionalNumber {
547
+ vizResultDict["documentOptionalAdditionalNumber"] = serializeStringResult(documentOptionalAdditionalNumber)
548
+ }
549
+ if let documentSubtype = vizResult.documentSubtype {
550
+ vizResultDict["documentSubtype"] = serializeStringResult(documentSubtype)
551
+ }
552
+ if let driverLicenseDetailedInfo = vizResult.driverLicenseDetailedInfo {
553
+ vizResultDict["driverLicenseDetailedInfo"] = serializeDriverLicenseDetailedInfo(driverLicenseDetailedInfo)
554
+ }
555
+ if let eligibilityCategory = vizResult.eligibilityCategory {
556
+ vizResultDict["eligibilityCategory"] = serializeStringResult(eligibilityCategory)
557
+ }
558
+ if let employer = vizResult.employer {
559
+ vizResultDict["employer"] = serializeStringResult(employer)
560
+ }
561
+ if let fathersName = vizResult.fathersName {
562
+ vizResultDict["fathersName"] = serializeStringResult(fathersName)
563
+ }
564
+ if let firstName = vizResult.firstName {
565
+ vizResultDict["firstName"] = serializeStringResult(firstName)
566
+ }
567
+ if let fullName = vizResult.fullName {
568
+ vizResultDict["fullName"] = serializeStringResult(fullName)
569
+ }
570
+ if let issuingAuthority = vizResult.issuingAuthority {
571
+ vizResultDict["issuingAuthority"] = serializeStringResult(issuingAuthority)
572
+ }
573
+ if let lastName = vizResult.lastName {
574
+ vizResultDict["lastName"] = serializeStringResult(lastName)
575
+ }
576
+ if let localizedName = vizResult.localizedName {
577
+ vizResultDict["localizedName"] = serializeStringResult(localizedName)
578
+ }
579
+ if let manufacturingYear = vizResult.manufacturingYear {
580
+ vizResultDict["manufacturingYear"] = serializeStringResult(manufacturingYear)
581
+ }
582
+ if let maritalStatus = vizResult.maritalStatus {
583
+ vizResultDict["maritalStatus"] = serializeStringResult(maritalStatus)
584
+ }
585
+ if let mothersName = vizResult.mothersName {
586
+ vizResultDict["mothersName"] = serializeStringResult(mothersName)
587
+ }
588
+ if let nationality = vizResult.nationality {
589
+ vizResultDict["nationality"] = serializeStringResult(nationality)
590
+ }
591
+ if let personalIdNumber = vizResult.personalIdNumber {
592
+ vizResultDict["personalIdNumber"] = serializeStringResult(personalIdNumber)
593
+ }
594
+ if let placeOfBirth = vizResult.placeOfBirth {
595
+ vizResultDict["placeOfBirth"] = serializeStringResult(placeOfBirth)
596
+ }
597
+ if let profession = vizResult.profession {
598
+ vizResultDict["profession"] = serializeStringResult(profession)
599
+ }
600
+ if let race = vizResult.race {
601
+ vizResultDict["race"] = serializeStringResult(race)
602
+ }
603
+ if let religion = vizResult.religion {
604
+ vizResultDict["religion"] = serializeStringResult(religion)
605
+ }
606
+ if let remarks = vizResult.remarks {
607
+ vizResultDict["remarks"] = serializeStringResult(remarks)
608
+ }
609
+ if let residencePermitType = vizResult.residencePermitType {
610
+ vizResultDict["residencePermitType"] = serializeStringResult(residencePermitType)
611
+ }
612
+ if let residentialStatus = vizResult.residentialStatus {
613
+ vizResultDict["residentialStatus"] = serializeStringResult(residentialStatus)
614
+ }
615
+ if let sex = vizResult.sex {
616
+ vizResultDict["sex"] = serializeStringResult(sex)
617
+ }
618
+ if let specificDocumentValidity = vizResult.specificDocumentValidity {
619
+ vizResultDict["specificDocumentValidity"] = serializeStringResult(specificDocumentValidity)
620
+ }
621
+ if let sponsor = vizResult.sponsor {
622
+ vizResultDict["sponsor"] = serializeStringResult(sponsor)
623
+ }
624
+ if let vehicleOwner = vizResult.vehicleOwner {
625
+ vizResultDict["vehicleOwner"] = serializeStringResult(vehicleOwner)
626
+ }
627
+ if let vehicleType = vizResult.vehicleType {
628
+ vizResultDict["vehicleType"] = serializeStringResult(vehicleType)
629
+ }
630
+ if let visaType = vizResult.visaType {
631
+ vizResultDict["visaType"] = serializeStringResult(visaType)
632
+ }
633
+ if let countryCode = vizResult.countryCode {
634
+ vizResultDict["countryCode"] = serializeStringResult(countryCode)
635
+ }
636
+ if let certificateNumber = vizResult.certificateNumber {
637
+ vizResultDict["certificateNumber"] = serializeStringResult(certificateNumber)
638
+ }
639
+ if let nationalInsuranceNumber = vizResult.nationalInsuranceNumber {
640
+ vizResultDict["nationalInsuranceNumber"] = serializeStringResult(nationalInsuranceNumber)
641
+ }
642
+ }
643
+ return vizResultDict
644
+ }
547
645
 
548
646
  static func serializeDetailedCroppedImageResult(_ detailedcroppedImageResult: DetailedCroppedImageResult?) -> Dictionary<String, Any> {
549
647
  let detailedcroppedImageResultDict: [String: Any?] = [
@@ -36,6 +36,7 @@ import BlinkIDUX
36
36
  eventStream: BlinkIDEventStream(),
37
37
  classFilter: self
38
38
  )
39
+ await addReactNativePinglet(with: analyzer.sessionNumber)
39
40
 
40
41
  var shouldShowIntroductionAlert = true
41
42
  if let showOnboardingDialog = blinkIdUiSettings["showOnboardingDialog"] as? Bool {
@@ -49,7 +50,8 @@ import BlinkIDUX
49
50
  let scanningUxModel = await BlinkIDUXModel(
50
51
  analyzer: analyzer,
51
52
  shouldShowIntroductionAlert: shouldShowIntroductionAlert,
52
- showHelpButton: shouldShowHelpButton)
53
+ showHelpButton: shouldShowHelpButton, sessionNumber: analyzer.sessionNumber)
54
+
53
55
  await scanningUxModel.$result
54
56
  .sink { [weak self] scanningResultState in
55
57
  if let scanningResultState {
@@ -62,6 +64,9 @@ import BlinkIDUX
62
64
  }
63
65
  }
64
66
  else {
67
+ Task {
68
+ await BlinkIDSdk.terminateBlinkIDSdk()
69
+ }
65
70
  DispatchQueue.main.async {
66
71
  onReject("Scanning has been canceled")
67
72
  rootVc.dismiss(animated: true)
@@ -74,7 +79,11 @@ import BlinkIDUX
74
79
 
75
80
  self.presentScanningUI(scanningUxModel, rootVc)
76
81
  } catch {
77
- onReject(error.localizedDescription)
82
+ if let sdkError = error as? InvalidLicenseKeyError {
83
+ onReject(sdkError.message)
84
+ } else {
85
+ onReject(error.localizedDescription)
86
+ }
78
87
  }
79
88
  }
80
89
  }
@@ -93,6 +102,8 @@ import BlinkIDUX
93
102
  let blinkidSdk = try await BlinkIDSdk.createBlinkIDSdk(withSettings: sdkSettings)
94
103
  let session = try await blinkidSdk.createScanningSession(sessionSettings: sessionSettings)
95
104
 
105
+ await addReactNativePinglet(with: session.getSessionNumber())
106
+
96
107
  guard let frontUIImage = BlinkIdDeserializationUtilities.deserializeBase64Image(firstImage) else {
97
108
  onReject("Could not extract the information from the first image! An image of a valid document needs to be sent.")
98
109
  return
@@ -113,7 +124,11 @@ import BlinkIDUX
113
124
  }
114
125
  }
115
126
  } catch {
116
- onReject(error.localizedDescription)
127
+ if let sdkError = error as? InvalidLicenseKeyError {
128
+ onReject(sdkError.message)
129
+ } else {
130
+ onReject(error.localizedDescription)
131
+ }
117
132
  }
118
133
  }
119
134
 
@@ -126,6 +141,10 @@ import BlinkIDUX
126
141
  rootVc.present(viewController, animated: true)
127
142
  }
128
143
  }
144
+
145
+ private func addReactNativePinglet(with sessionNumber: Int) async {
146
+ await PingManager.shared.addPinglet(pinglet: WrapperProductInfoPinglet(wrapperProduct: .crossplatformreactnative), sessionNumber: sessionNumber)
147
+ }
129
148
  }
130
149
 
131
150
  extension BlinkidReactNativeModule: BlinkIDClassFilter {