@microblink/blinkid-react-native 7.5.0 → 7.6.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 (202) hide show
  1. package/README.md +24 -1
  2. package/android/.project +28 -0
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdDeserializationUtilities.kt +20 -4
  5. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdSerializationUtilities.kt +63 -1
  6. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkidReactNativeModule.kt +114 -62
  7. package/ios/BlinkIdDeserializationUtilities.swift +29 -3
  8. package/ios/BlinkIdSerializationUtilities.swift +74 -9
  9. package/ios/BlinkidReactNative.mm +20 -5
  10. package/ios/BlinkidReactNativeModule.swift +53 -22
  11. package/ios/Frameworks/BlinkID.xcframework/Info.plist +5 -5
  12. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/BlinkID +0 -0
  13. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID-Swift.h +565 -72
  14. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Info.plist +0 -0
  15. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.abi.json +36173 -33777
  16. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.private.swiftinterface +1102 -949
  17. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  18. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftinterface +1102 -949
  19. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/_CodeSignature/CodeResources +15 -15
  20. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/conan.xcconfig +7 -3
  21. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/BlinkID +0 -0
  22. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID-Swift.h +1136 -150
  23. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Info.plist +0 -0
  24. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.abi.json +36173 -33777
  25. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +1102 -949
  26. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  27. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1102 -949
  28. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.abi.json +36173 -33777
  29. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +1102 -949
  30. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  31. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1102 -949
  32. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/_CodeSignature/CodeResources +25 -25
  33. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/conan.xcconfig +7 -3
  34. package/ios/Frameworks/BlinkIDUX.xcframework/Info.plist +5 -5
  35. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeDirectory +0 -0
  36. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements +0 -0
  37. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  38. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeResources +3027 -0
  39. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeSignature +0 -0
  40. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX +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/ak.lproj/Localizable.strings +0 -0
  43. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/am.lproj/Localizable.strings +0 -0
  44. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
  45. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/bn.lproj/Localizable.strings +0 -0
  46. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
  47. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/da.lproj/Localizable.strings +0 -0
  48. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
  49. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/el.lproj/Localizable.strings +0 -0
  50. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en-GB.lproj/Localizable.strings +0 -0
  51. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
  52. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es-MX.lproj/Localizable.strings +0 -0
  53. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
  54. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fa.lproj/Localizable.strings +0 -0
  55. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fi.lproj/Localizable.strings +0 -0
  56. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
  57. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr-CA.lproj/Localizable.strings +0 -0
  58. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
  59. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ha.lproj/Localizable.strings +0 -0
  60. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
  61. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hi.lproj/Localizable.strings +0 -0
  62. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  63. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
  64. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
  65. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/is.lproj/Localizable.strings +0 -0
  66. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
  67. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ja.lproj/Localizable.strings +0 -0
  68. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ka-GE.lproj/Localizable.strings +0 -0
  69. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/kk.lproj/Localizable.strings +0 -0
  70. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/km-KH.lproj/Localizable.strings +0 -0
  71. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ko.lproj/Localizable.strings +0 -0
  72. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/lv.lproj/Localizable.strings +0 -0
  73. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
  74. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nb.lproj/Localizable.strings +0 -0
  75. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ne.lproj/Localizable.strings +0 -0
  76. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
  77. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pl.lproj/Localizable.strings +0 -0
  78. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ps-AF.lproj/Localizable.strings +0 -0
  79. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt-BR.lproj/Localizable.strings +0 -0
  80. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
  81. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
  82. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ru.lproj/Localizable.strings +0 -0
  83. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/si.lproj/Localizable.strings +0 -0
  84. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
  85. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
  86. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
  87. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sv.lproj/Localizable.strings +0 -0
  88. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sw.lproj/Localizable.strings +0 -0
  89. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
  90. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/tr.lproj/Localizable.strings +0 -0
  91. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uk.lproj/Localizable.strings +0 -0
  92. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ur.lproj/Localizable.strings +0 -0
  93. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uz.lproj/Localizable.strings +0 -0
  94. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
  95. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/yo.lproj/Localizable.strings +0 -0
  96. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
  97. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
  98. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Info.plist +0 -0
  99. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.abi.json +739 -290
  100. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.package.swiftinterface +23 -6
  101. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.private.swiftinterface +23 -6
  102. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  103. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftinterface +23 -6
  104. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX +0 -0
  105. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
  106. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  107. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeDirectory +0 -0
  108. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeRequirements-1 +0 -0
  109. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeResources +816 -90
  110. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ak.lproj/Localizable.strings +0 -0
  111. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/am.lproj/Localizable.strings +0 -0
  112. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
  113. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/bn.lproj/Localizable.strings +0 -0
  114. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
  115. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/da.lproj/Localizable.strings +0 -0
  116. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
  117. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/el.lproj/Localizable.strings +0 -0
  118. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en-GB.lproj/Localizable.strings +0 -0
  119. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
  120. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es-MX.lproj/Localizable.strings +0 -0
  121. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
  122. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fa.lproj/Localizable.strings +0 -0
  123. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fi.lproj/Localizable.strings +0 -0
  124. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
  125. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr-CA.lproj/Localizable.strings +0 -0
  126. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
  127. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ha.lproj/Localizable.strings +0 -0
  128. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
  129. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hi.lproj/Localizable.strings +0 -0
  130. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  131. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
  132. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
  133. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/is.lproj/Localizable.strings +0 -0
  134. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
  135. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ja.lproj/Localizable.strings +0 -0
  136. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ka-GE.lproj/Localizable.strings +0 -0
  137. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/kk.lproj/Localizable.strings +0 -0
  138. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/km-KH.lproj/Localizable.strings +0 -0
  139. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ko.lproj/Localizable.strings +0 -0
  140. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/lv.lproj/Localizable.strings +0 -0
  141. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
  142. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nb.lproj/Localizable.strings +0 -0
  143. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ne.lproj/Localizable.strings +0 -0
  144. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
  145. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pl.lproj/Localizable.strings +0 -0
  146. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ps-AF.lproj/Localizable.strings +0 -0
  147. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt-BR.lproj/Localizable.strings +0 -0
  148. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
  149. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
  150. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ru.lproj/Localizable.strings +0 -0
  151. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/si.lproj/Localizable.strings +0 -0
  152. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
  153. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
  154. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
  155. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sv.lproj/Localizable.strings +0 -0
  156. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sw.lproj/Localizable.strings +0 -0
  157. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
  158. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/tr.lproj/Localizable.strings +0 -0
  159. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uk.lproj/Localizable.strings +0 -0
  160. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ur.lproj/Localizable.strings +0 -0
  161. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uz.lproj/Localizable.strings +0 -0
  162. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
  163. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/yo.lproj/Localizable.strings +0 -0
  164. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
  165. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
  166. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Info.plist +0 -0
  167. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.abi.json +739 -290
  168. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +23 -6
  169. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +23 -6
  170. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  171. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftinterface +23 -6
  172. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.abi.json +739 -290
  173. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +23 -6
  174. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +23 -6
  175. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  176. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +23 -6
  177. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/_CodeSignature/CodeResources +1 -1
  178. package/lib/module/NativeBlinkidReactNative.js.map +1 -1
  179. package/lib/module/blinkIdResult.js +122 -0
  180. package/lib/module/blinkIdResult.js.map +1 -1
  181. package/lib/module/blinkIdSettings.js +28 -7
  182. package/lib/module/blinkIdSettings.js.map +1 -1
  183. package/lib/module/index.js +47 -4
  184. package/lib/module/index.js.map +1 -1
  185. package/lib/module/types.js +97 -1
  186. package/lib/module/types.js.map +1 -1
  187. package/lib/typescript/src/NativeBlinkidReactNative.d.ts +39 -2
  188. package/lib/typescript/src/NativeBlinkidReactNative.d.ts.map +1 -1
  189. package/lib/typescript/src/blinkIdResult.d.ts +55 -0
  190. package/lib/typescript/src/blinkIdResult.d.ts.map +1 -1
  191. package/lib/typescript/src/blinkIdSettings.d.ts +25 -6
  192. package/lib/typescript/src/blinkIdSettings.d.ts.map +1 -1
  193. package/lib/typescript/src/index.d.ts +41 -4
  194. package/lib/typescript/src/index.d.ts.map +1 -1
  195. package/lib/typescript/src/types.d.ts +87 -3
  196. package/lib/typescript/src/types.d.ts.map +1 -1
  197. package/package.json +3 -3
  198. package/src/NativeBlinkidReactNative.ts +41 -2
  199. package/src/blinkIdResult.ts +133 -0
  200. package/src/blinkIdSettings.ts +30 -7
  201. package/src/index.tsx +52 -5
  202. package/src/types.ts +128 -1
package/README.md CHANGED
@@ -20,6 +20,7 @@ However, since the wrapper is open source, you can add the features you need on
20
20
  - [Plugin usage](#plugin-usage)
21
21
  - [Plugin specifics](#plugin-specifics)
22
22
  - [Scanning methods](#scanning-methods)
23
+ - [SDK loading & unloading](#sdk-loading--unloading)
23
24
  - [BlinkID Settings](#blinkid-settings)
24
25
  - [BlinkID Results](#blinkid-results)
25
26
  - [Additional information and Support](#additional-information-and-support)
@@ -30,7 +31,7 @@ A valid license key is required to initialize the BlinkID plugin. A free trial l
30
31
 
31
32
  ## <a name="requirements"></a> Requirements
32
33
 
33
- - BlinkID React Native was built and tested with [React Native v0.79.0](https://github.com/facebook/react-native/releases/tag/v0.79.0)
34
+ - BlinkID React Native was built and tested with [React Native v0.82.1](https://github.com/facebook/react-native/releases/tag/v0.82.1)
34
35
  - For additional help with React-Native setup, view the official documentation [here](https://reactnative.dev/docs/set-up-your-environment).
35
36
 
36
37
  **Device requirements**
@@ -348,6 +349,28 @@ The optional second image Base64 string - `String`: needed if the information fr
348
349
 
349
350
  - The implementation of the `performDirectApiScanning` method can be viewed here in the [index.tsx](https://github.com/BlinkID/blinkid-react-native/blob/master/BlinkID/src/index.tsx) file.
350
351
 
352
+ ### <a name="sdk-loading--unloading"></a> SDK loading & unloading
353
+ The BlinkID SDK also contains methods for loading and unloading. These methods can be called before the scanning methods (mentioned above), and are helpful to preload the neccessary resources and decrease the waiting time for the scanning session, but also to remove any resources after the scanning sessions ends.
354
+
355
+ **The `loadBlinkIdSdk` method**
356
+
357
+ The `loadBlinkIdSdk` method creates or retrieves the instance of the BlinkID SDK It initializes and loads the BlinkID SDK if it is not already loaded.
358
+
359
+ It can be called in advance to **preload** the SDK before starting a scanning session. Doing so reduces loading time for the `performScan` and `performDirectApiScan` methods, since all resources will already be available and the license verified.
360
+
361
+ If the method is not called beforehand, it will still be automatically invoked on the native platform channels when a scan starts. However, the initial scan may take longer due to resource loading and license checks.
362
+
363
+ It takes the following parameter: [BlinkIdSdkSettings](#blinkid-settings), which is explained in more details below.
364
+
365
+ **The `unloadBlinkIdSdk` method**
366
+
367
+ The `unloadBlinkIdSdk` platform method terminates the BlinkID SDK and releases all associated resources. It safely shuts down the SDK instance and frees any allocated memory.
368
+ After calling this method, you must reinitialize the SDK (by calling `loadBlinkIdSdk` or any of the scanning methods) before using it again.
369
+
370
+ If set to `true` (`false` is default), the method performs a **complete cleanup**, including deletion of all downloaded and cached SDK resources from the device.
371
+
372
+ This method is automatically called after each successful scan session.
373
+
351
374
  ### <a name="blinkid-settings"></a> BlinkID Settings
352
375
  The BlinkID SDK contains various settings, modifying different parts of scanning process:
353
376
  1. [BlinkID SDK settings](https://github.com/BlinkID/blinkid-react-native/blob/master/BlinkID/src/blinkIdSettings.ts#L14) - `BlinkIdSdkSettings` \
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>microblink_blinkid-react-native</name>
4
+ <comment>Project microblink_blinkid-react-native created by Buildship.</comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
16
+ </natures>
17
+ <filteredResources>
18
+ <filter>
19
+ <id>1753105404889</id>
20
+ <name></name>
21
+ <type>30</type>
22
+ <matcher>
23
+ <id>org.eclipse.core.resources.regexFilterMatcher</id>
24
+ <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
25
+ </matcher>
26
+ </filter>
27
+ </filteredResources>
28
+ </projectDescription>
@@ -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.5.0")
78
+ implementation("com.microblink:blinkid-ux:7.6.0")
79
79
  }
80
80
 
81
81
  react {
@@ -28,11 +28,14 @@ import kotlin.time.Duration.Companion.milliseconds
28
28
  import kotlinx.parcelize.Parcelize
29
29
  import kotlinx.parcelize.RawValue
30
30
  import android.graphics.Bitmap
31
+ import android.graphics.Camera
31
32
  import android.util.Base64
32
33
  import com.microblink.blinkid.core.session.InputImageSource
33
34
  import com.microblink.blinkid.core.settings.DocumentNumberAnonymizationSettings
34
35
  import com.microblink.core.network.RequestTimeout
35
36
  import com.microblink.ux.UiSettings
37
+ import com.microblink.ux.camera.CameraLensFacing
38
+ import com.microblink.ux.camera.CameraSettings
36
39
  import org.json.JSONArray
37
40
  import org.json.JSONObject
38
41
 
@@ -275,19 +278,32 @@ object BlinkIdDeserializationUtilities {
275
278
  }
276
279
 
277
280
 
278
- fun deserializeBlinkIdUxSettings(
279
- blinkidUxSettingsMap: JSONObject?,
281
+ fun deserializeBlinkIdScanningUxSettings(
282
+ blinkidScanningUxSettingsMap: JSONObject?,
280
283
  classFilterMap: JSONObject?
281
284
  ): BlinkIdUxSettings {
282
- if (blinkidUxSettingsMap == null) return BlinkIdUxSettings()
285
+ if (blinkidScanningUxSettingsMap == null) return BlinkIdUxSettings()
283
286
  return BlinkIdUxSettings(
284
- stepTimeoutDuration = (blinkidUxSettingsMap.optInt(
287
+ stepTimeoutDuration = (blinkidScanningUxSettingsMap.optInt(
285
288
  "stepTimeoutDuration",
286
289
  15000
287
290
  ).milliseconds),
291
+ allowHapticFeedback = blinkidScanningUxSettingsMap.optBoolean("allowHapticFeedback", true),
288
292
  classFilter = classFilterMap?.let { CustomClassFilter(it.toString()) },
289
293
  )
290
294
  }
295
+ fun deserializeCameraSettings(blinkidScanningUxSettingsMap: JSONObject?): CameraSettings {
296
+ if (blinkidScanningUxSettingsMap == null) return CameraSettings()
297
+ return CameraSettings(lensFacing = deserializeLensFacingCamera(blinkidScanningUxSettingsMap.optString("preferredCamera")))
298
+ }
299
+
300
+ fun deserializeLensFacingCamera(lens: String?): CameraLensFacing {
301
+ return when (lens?.lowercase()) {
302
+ "front" -> CameraLensFacing.LensFacingFront
303
+ "back" -> CameraLensFacing.LensFacingBack
304
+ else -> CameraLensFacing.LensFacingBack
305
+ }
306
+ }
291
307
 
292
308
  fun deserializeClassFilter(
293
309
  classFilterMap: JSONObject?,
@@ -135,6 +135,9 @@ object BlinkIdSerializationUtilities {
135
135
  scanningResult?.vehicleType?.let {
136
136
  scanningResultJson.put("vehicleType", serializeStringResult(it))
137
137
  }
138
+ scanningResult?.vehicleOwner?.let {
139
+ scanningResultJson.put("vehicleOwner", serializeStringResult(it))
140
+ }
138
141
  scanningResult?.eligibilityCategory?.let {
139
142
  scanningResultJson.put("eligibilityCategory", serializeStringResult(it))
140
143
  }
@@ -162,6 +165,36 @@ object BlinkIdSerializationUtilities {
162
165
  scanningResult?.dateOfExpiry?.let {
163
166
  scanningResultJson.put("dateOfExpiry", serializeDateResult(it))
164
167
  }
168
+ scanningResult?.dateOfEntry?.let {
169
+ scanningResultJson.put("dateOfEntry", serializeDateResult(it))
170
+ }
171
+ scanningResult?.localityCode?.let {
172
+ scanningResultJson.put("localityCode", serializeStringResult(it))
173
+ }
174
+ scanningResult?.maidenName?.let {
175
+ scanningResultJson.put("maidenName", serializeStringResult(it))
176
+ }
177
+ scanningResult?.municipalityCode?.let {
178
+ scanningResultJson.put("municipalityCode", serializeStringResult(it))
179
+ }
180
+ scanningResult?.municipalityOfRegistration?.let {
181
+ scanningResultJson.put("municipalityOfRegistration", serializeStringResult(it))
182
+ }
183
+ scanningResult?.pollingStationCode?.let {
184
+ scanningResultJson.put("pollingStationCode", serializeStringResult(it))
185
+ }
186
+ scanningResult?.registrationCenterCode?.let {
187
+ scanningResultJson.put("registrationCenterCode", serializeStringResult(it))
188
+ }
189
+ scanningResult?.sectionCode?.let {
190
+ scanningResultJson.put("sectionCode", serializeStringResult(it))
191
+ }
192
+ scanningResult?.stateCode?.let {
193
+ scanningResultJson.put("stateCode", serializeStringResult(it))
194
+ }
195
+ scanningResult?.stateName?.let {
196
+ scanningResultJson.put("stateName", serializeStringResult(it))
197
+ }
165
198
  scanningResult?.dateOfExpiryPermanent?.let {
166
199
  scanningResultJson.put("dateOfExpiryPermanent", it)
167
200
  }
@@ -180,7 +213,6 @@ object BlinkIdSerializationUtilities {
180
213
  JSONArray(it.map { subResult -> serializeSubResult(subResult) })
181
214
  )
182
215
  }
183
-
184
216
  scanningResult?.inputImage(ScanningSide.First)?.let {
185
217
  scanningResultJson.put("firstInputImage", encodeBase64Image(it.bitmap))
186
218
  }
@@ -510,6 +542,36 @@ object BlinkIdSerializationUtilities {
510
542
  vizResult?.dateOfIssue?.let {
511
543
  vizResultJson.put("dateOfIssue", serializeDateResult(it))
512
544
  }
545
+ vizResult?.dateOfEntry?.let {
546
+ vizResultJson.put("dateOfEntry", serializeDateResult(it))
547
+ }
548
+ vizResult?.localityCode?.let {
549
+ vizResultJson.put("localityCode", serializeStringResult(it))
550
+ }
551
+ vizResult?.maidenName?.let {
552
+ vizResultJson.put("maidenName", serializeStringResult(it))
553
+ }
554
+ vizResult?.municipalityCode?.let {
555
+ vizResultJson.put("municipalityCode", serializeStringResult(it))
556
+ }
557
+ vizResult?.municipalityOfRegistration?.let {
558
+ vizResultJson.put("municipalityOfRegistration", serializeStringResult(it))
559
+ }
560
+ vizResult?.pollingStationCode?.let {
561
+ vizResultJson.put("pollingStationCode", serializeStringResult(it))
562
+ }
563
+ vizResult?.registrationCenterCode?.let {
564
+ vizResultJson.put("registrationCenterCode", serializeStringResult(it))
565
+ }
566
+ vizResult?.sectionCode?.let {
567
+ vizResultJson.put("sectionCode", serializeStringResult(it))
568
+ }
569
+ vizResult?.stateCode?.let {
570
+ vizResultJson.put("stateCode", serializeStringResult(it))
571
+ }
572
+ vizResult?.stateName?.let {
573
+ vizResultJson.put("stateName", serializeStringResult(it))
574
+ }
513
575
  vizResult?.dateOfExpiryPermanent?.let {
514
576
  vizResultJson.put("dateOfExpiryPermanent", it)
515
577
  }
@@ -20,6 +20,7 @@ import kotlinx.coroutines.CoroutineScope
20
20
  import kotlinx.coroutines.Dispatchers
21
21
  import kotlinx.coroutines.launch
22
22
  import kotlinx.coroutines.withContext
23
+ import okhttp3.Dispatcher
23
24
  import org.json.JSONObject
24
25
 
25
26
  @ReactModule(name = BlinkidReactNativeModule.NAME)
@@ -27,17 +28,61 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
27
28
  NativeBlinkidReactNativeSpec(reactContext) {
28
29
  private val BLINKID_REQUEST_CODE = 1453
29
30
  private val BLINKID_ERROR_RESULT_CODE = "BlinkIdAndroid"
30
-
31
31
  var pendingPromise: Promise? = null
32
+ private var blinkIdSdk: BlinkIdSdk? = null
32
33
 
33
34
  override fun getName(): String {
34
35
  return NAME
35
36
  }
36
37
 
38
+ override fun loadBlinkIdSdk(
39
+ blinkIdSdkSettings: String?,
40
+ promise: Promise?
41
+ ) {
42
+ pendingPromise = promise
43
+ CoroutineScope(Dispatchers.Main).launch {
44
+ try {
45
+ val blinkIdSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
46
+ ensureLoadedSdk(blinkIdSettingsJson)
47
+ pendingPromise?.resolve("")
48
+ } catch (error: Exception) {
49
+ blinkIdSdk = null
50
+ when (error) {
51
+ is LicenseLockedException -> {
52
+ pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, error.message)
53
+ }
54
+ else -> {
55
+ pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, error.message)
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ override fun unloadBlinkIdSdk(
63
+ deleteCachedResources: Boolean,
64
+ promise: Promise?
65
+ ) {
66
+ try {
67
+ pendingPromise = promise
68
+ if (deleteCachedResources) {
69
+ BlinkIdSdk.sdkInstance?.closeAndDeleteCachedAssets()
70
+ } else {
71
+ BlinkIdSdk.sdkInstance?.close()
72
+ }
73
+ blinkIdSdk = null
74
+ pendingPromise?.resolve("")
75
+ } catch (exception: Exception) {
76
+ blinkIdSdk = null
77
+ pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, exception.message, null)
78
+ }
79
+ }
80
+
37
81
  init {
38
82
  reactApplicationContext.addActivityEventListener(object : BaseActivityEventListener() {
83
+
39
84
  override fun onActivityResult(
40
- activity: Activity?,
85
+ activity: Activity,
41
86
  requestCode: Int,
42
87
  resultCode: Int,
43
88
  data: Intent?
@@ -76,7 +121,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
76
121
  override fun performScan(
77
122
  blinkIdSdkSettings: String?,
78
123
  blinkIdSessionSettings: String?,
79
- blinkIdUiSettings: String?,
124
+ blinkIdScanningUxSettings: String?,
80
125
  classFilter: String?,
81
126
  promise: Promise?
82
127
  ) {
@@ -86,7 +131,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
86
131
  val sdkSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
87
132
  val sessionSettingsJson = blinkIdSessionSettings?.let { JSONObject(it) }
88
133
  val classFilterJson = classFilter?.let { JSONObject(it) }
89
- val blinkIdUiSettingsJson = blinkIdUiSettings?.let { JSONObject(it) }
134
+ val blinkIdScanningUxJson = blinkIdScanningUxSettings?.let { JSONObject(it) }
90
135
  val sdkSettings = sdkSettingsJson?.let {
91
136
  BlinkIdDeserializationUtilities.deserializeBlinkIdSdkSettings(it)
92
137
  } ?: run {
@@ -94,25 +139,26 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
94
139
  return
95
140
  }
96
141
 
97
- currentActivity?.applicationContext?.let {
98
- val intent = MbBlinkIdScan().createIntent(
142
+ reactApplicationContext.currentActivity?.applicationContext?.let {
143
+ val intent = MbBlinkIdScan().createIntent(
99
144
  it,
100
145
  BlinkIdScanActivitySettings(
101
146
  sdkSettings = sdkSettings,
147
+ cameraSettings = BlinkIdDeserializationUtilities.deserializeCameraSettings(blinkIdScanningUxJson),
102
148
  scanningSessionSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(
103
149
  sessionSettingsJson,
104
150
  false
105
151
  ),
106
- uxSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdUxSettings(
107
- sessionSettingsJson,
152
+ uxSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdScanningUxSettings(
153
+ blinkIdScanningUxJson,
108
154
  classFilterJson,
109
155
  ),
110
- showHelpButton = blinkIdUiSettingsJson?.optBoolean("showHelpButton", true)?: true,
111
- showOnboardingDialog = blinkIdUiSettingsJson?.optBoolean("showOnboardingDialog", true) ?: true
156
+ showHelpButton = blinkIdScanningUxJson?.optBoolean("showHelpButton", true)?: true,
157
+ showOnboardingDialog = blinkIdScanningUxJson?.optBoolean("showOnboardingDialog", true) ?: true
112
158
  )
113
159
  )
114
160
  addReactNativePinglet(it)
115
- currentActivity?.startActivityForResult(intent, BLINKID_REQUEST_CODE, null)
161
+ reactApplicationContext.startActivityForResult(intent, BLINKID_REQUEST_CODE, null)
116
162
  } ?: pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Activity not found.")
117
163
  } catch (error: Exception) {
118
164
  when (error) {
@@ -134,74 +180,54 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
134
180
  secondImage: String?,
135
181
  promise: Promise?
136
182
  ) {
183
+ pendingPromise = promise
137
184
  CoroutineScope(Dispatchers.Default).launch {
138
185
  try {
139
186
  val sdkSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
140
187
  val sessionSettingsJson = blinkIdSessionSettings?.let { JSONObject(it) }
141
188
 
142
- val sdkSettings =
143
- BlinkIdDeserializationUtilities.deserializeBlinkIdSdkSettings(sdkSettingsJson)
144
- ?: return@launch withContext(Dispatchers.Main) {
145
- promise?.reject(BLINKID_ERROR_RESULT_CODE, "Invalid SDK settings")
146
- }
147
-
148
- val context = currentActivity?.applicationContext
189
+ val context = reactApplicationContext.applicationContext
149
190
  ?: return@launch withContext(Dispatchers.Main) {
150
191
  promise?.reject(BLINKID_ERROR_RESULT_CODE, "No activity")
151
192
  }
152
-
153
- val sdkInit = BlinkIdSdk.initializeSdk(context, sdkSettings)
154
-
155
- addReactNativePinglet(context)
156
-
157
- when {
158
- sdkInit.isSuccess -> {
159
- val instance = sdkInit.getOrNull() ?: return@launch withContext(Dispatchers.Main) {
160
- promise?.reject(BLINKID_ERROR_RESULT_CODE, "SDK returned null instance")
161
- }
162
-
163
- val session = instance.createScanningSession(
164
- BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(
165
- sessionSettingsJson,
166
- true
167
- )
168
- )
169
-
170
- val inputImages = listOfNotNull(
171
- firstImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) },
172
- secondImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) }
193
+ blinkIdSdk = ensureLoadedSdk(sdkSettingsJson)
194
+ blinkIdSdk?.let {
195
+ addReactNativePinglet(context)
196
+ val session = it.createScanningSession(
197
+ BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(
198
+ sessionSettingsJson,
199
+ true
173
200
  )
201
+ )
174
202
 
175
- var result: Result<BlinkIdProcessResult>? = null
176
-
177
- for (img in inputImages) {
178
- result = session.process(InputImage.createFromBitmap(img))
179
- }
203
+ val inputImages = listOfNotNull(
204
+ firstImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) },
205
+ secondImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) }
206
+ )
180
207
 
181
- if (result?.isSuccess == true) {
182
- val scanResult = session.getResult()
183
- val resultJson =
184
- BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scanResult)
185
-
186
- withContext(Dispatchers.Main) {
187
- promise?.resolve(resultJson.toString())
188
- }
189
- } else {
190
- withContext(Dispatchers.Main) {
191
- promise?.reject(BLINKID_ERROR_RESULT_CODE, "Could not get the results.")
192
- }
193
- }
208
+ var result: Result<BlinkIdProcessResult>? = null
194
209
 
195
- instance.close()
210
+ for (img in inputImages) {
211
+ result = session.process(InputImage.createFromBitmap(img))
196
212
  }
197
213
 
198
- sdkInit.isFailure -> {
199
- return@launch withContext(Dispatchers.Main) {
200
- promise?.reject(BLINKID_ERROR_RESULT_CODE, sdkInit.exceptionOrNull()?.message)
214
+ if (result?.isSuccess == true) {
215
+ val scanResult = session.getResult()
216
+ val resultJson =
217
+ BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scanResult)
218
+
219
+ withContext(Dispatchers.Main) {
220
+ promise?.resolve(resultJson.toString())
221
+ }
222
+ } else {
223
+ withContext(Dispatchers.Main) {
224
+ promise?.reject(BLINKID_ERROR_RESULT_CODE, "Could not get the results.")
201
225
  }
202
226
  }
203
- }
204
227
 
228
+ it.close()
229
+ blinkIdSdk = null
230
+ }?:pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Reason: The BlinkID SDK is not initialized. Call the loadBlinkIdSdk() method to pre-load the SDK first, or try running the performDirectApiScan() method with a valid internet connection.", null)
205
231
  } catch (e: Exception) {
206
232
  withContext(Dispatchers.Main) {
207
233
  promise?.reject(BLINKID_ERROR_RESULT_CODE, e.message)
@@ -209,6 +235,32 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
209
235
  }
210
236
  }
211
237
  }
238
+
239
+ private suspend fun ensureLoadedSdk(blinkidSdkSettings: JSONObject?): BlinkIdSdk? {
240
+
241
+ blinkIdSdk?.let { return it }
242
+
243
+ val sdkSettings = BlinkIdDeserializationUtilities
244
+ .deserializeBlinkIdSdkSettings(blinkidSdkSettings)?: throw IllegalStateException("Incorrect SDK Settings.")
245
+
246
+ reactApplicationContext.currentActivity?.let {
247
+ val maybeInstance = BlinkIdSdk.initializeSdk(it, sdkSettings)
248
+ when {
249
+ maybeInstance.isSuccess -> {
250
+ blinkIdSdk = maybeInstance.getOrNull()
251
+ return blinkIdSdk
252
+ }
253
+
254
+ maybeInstance.isFailure -> {
255
+ blinkIdSdk = null
256
+ throw maybeInstance.exceptionOrNull() ?: IllegalStateException("SDK initialization failed.")
257
+ }
258
+ }
259
+ }?: throw IllegalStateException("Activity not available.")
260
+
261
+ return null
262
+ }
263
+
212
264
  private fun addReactNativePinglet(context: Context) {
213
265
  PingManager.getInstance(context).add(
214
266
  WrapperProductInfo(
@@ -7,6 +7,7 @@
7
7
 
8
8
  import Foundation
9
9
  import BlinkID
10
+ import BlinkIDUX
10
11
 
11
12
  class BlinkIdDeserializationUtilities {
12
13
  static func deserializeBlinkIdSdkSettings(_ sdkSettingsDict: Dictionary<String, Any>?) -> BlinkIDSdkSettings? {
@@ -30,9 +31,9 @@ class BlinkIdDeserializationUtilities {
30
31
  if let resourceLocalFolder = sdkSettingsDict?["resourceLocalFolder"] as? String {
31
32
  blinkidSdkSettings?.resourceLocalFolder = resourceLocalFolder
32
33
  }
33
- if let bundleURL = sdkSettingsDict?["bundleURL"] as? String,
34
- let url = URL(string: bundleURL) {
35
- blinkidSdkSettings?.bundleURL = url
34
+ if let bundleIdentifier = sdkSettingsDict?["bundleIdentifier"] as? String,
35
+ let bundle = Bundle.init(identifier: bundleIdentifier) {
36
+ blinkidSdkSettings?.bundleURL = bundle.bundleURL
36
37
  }
37
38
  if let resourceRequestTimeout = sdkSettingsDict?["resourceRequestTimeout"] as? Int {
38
39
  blinkidSdkSettings?.resourceRequestTimeout = BlinkID.RequestTimeout.default
@@ -157,6 +158,20 @@ class BlinkIdDeserializationUtilities {
157
158
 
158
159
  return croppedImageSettings
159
160
  }
161
+ static func deserializeBlinkIdUxScanningSettings(_ scanningUxSettingsDict: Dictionary<String, Any>?) -> ScanningUXSettings {
162
+ if let scanningUxSettingsDict = scanningUxSettingsDict,
163
+ let allowHapticFeedback = scanningUxSettingsDict["allowHapticFeedback"] as? Bool,
164
+ let preferredCameraPosition = scanningUxSettingsDict["preferredCamera"] as? String,
165
+ let showHelpButton = scanningUxSettingsDict["showHelpButton"] as? Bool,
166
+ let showIntroductionAlert = scanningUxSettingsDict["showOnboardingDialog"] as? Bool {
167
+ return ScanningUXSettings(
168
+ showIntroductionAlert: showIntroductionAlert,
169
+ showHelpButton: showHelpButton,
170
+ preferredCameraPosition: deserializePrefferedCameraPosition(preferredCameraPosition),
171
+ allowHapticFeedback: allowHapticFeedback)
172
+ }
173
+ return ScanningUXSettings()
174
+ }
160
175
 
161
176
  static func deserializeRecognitionModeFilter(_ recognitionModeFilterDict: Dictionary<String, Any>) -> RecognitionModeFilter {
162
177
  var recognitionModeFilter = RecognitionModeFilter()
@@ -324,6 +339,17 @@ class BlinkIdDeserializationUtilities {
324
339
  return ScanningMode.automatic
325
340
  }
326
341
  }
342
+
343
+ static func deserializePrefferedCameraPosition(_ value: String) -> Camera.CameraPosition {
344
+ switch value {
345
+ case "front":
346
+ return Camera.CameraPosition.front
347
+ case "back":
348
+ return Camera.CameraPosition.back
349
+ default:
350
+ return Camera.CameraPosition.back
351
+ }
352
+ }
327
353
 
328
354
  static func sanitizeDictionary(_ dictionary: Dictionary<String, Any>?) -> Dictionary<String, Any>? {
329
355
  if let dictionary = dictionary {
@@ -117,6 +117,9 @@ class BlinkIdSerializationUtilities {
117
117
  if let vehicleType = scanningResult?.vehicleType {
118
118
  scanningResultDict["vehicleType"] = serializeStringResult(vehicleType)
119
119
  }
120
+ if let vehicleOwner = scanningResult?.vehicleOwner {
121
+ scanningResultDict["vehicleOwner"] = serializeStringResult(vehicleOwner)
122
+ }
120
123
  if let countryCode = scanningResult?.countryCode {
121
124
  scanningResultDict["countryCode"] = serializeStringResult(countryCode)
122
125
  }
@@ -147,6 +150,36 @@ class BlinkIdSerializationUtilities {
147
150
  if let dateOfExpiry = scanningResult?.dateOfExpiry {
148
151
  scanningResultDict["dateOfExpiry"] = serializeDateResult(dateOfExpiry)
149
152
  }
153
+ if let dateOfEntry = scanningResult?.dateOfEntry {
154
+ scanningResultDict["dateOfEntry"] = serializeDateResult(dateOfEntry)
155
+ }
156
+ if let localityCode = scanningResult?.localityCode {
157
+ scanningResultDict["localityCode"] = serializeStringResult(localityCode)
158
+ }
159
+ if let maidenName = scanningResult?.maidenName {
160
+ scanningResultDict["maidenName"] = serializeStringResult(maidenName)
161
+ }
162
+ if let municipalityCode = scanningResult?.municipalityCode {
163
+ scanningResultDict["municipalityCode"] = serializeStringResult(municipalityCode)
164
+ }
165
+ if let municipalityOfRegistration = scanningResult?.municipalityOfRegistration {
166
+ scanningResultDict["municipalityOfRegistration"] = serializeStringResult(municipalityOfRegistration)
167
+ }
168
+ if let pollingStationCode = scanningResult?.pollingStationCode {
169
+ scanningResultDict["pollingStationCode"] = serializeStringResult(pollingStationCode)
170
+ }
171
+ if let registrationCenterCode = scanningResult?.registrationCenterCode {
172
+ scanningResultDict["registrationCenterCode"] = serializeStringResult(registrationCenterCode)
173
+ }
174
+ if let sectionCode = scanningResult?.sectionCode {
175
+ scanningResultDict["sectionCode"] = serializeStringResult(sectionCode)
176
+ }
177
+ if let stateCode = scanningResult?.stateCode {
178
+ scanningResultDict["stateCode"] = serializeStringResult(stateCode)
179
+ }
180
+ if let stateName = scanningResult?.stateName {
181
+ scanningResultDict["stateName"] = serializeStringResult(stateName)
182
+ }
150
183
  if let driverLicenseDetailedInfo = scanningResult?.driverLicenseDetailedInfo {
151
184
  scanningResultDict["driverLicenseDetailedInfo"] = serializeDriverLicenseDetailedInfo(driverLicenseDetailedInfo)
152
185
  }
@@ -287,7 +320,7 @@ class BlinkIdSerializationUtilities {
287
320
  "effectiveDate": serializeDateResult(vehicleClassInfo?.effectiveDate),
288
321
  "expiryDate": serializeDateResult(vehicleClassInfo?.expiryDate),
289
322
  "licenceType": serializeStringType(vehicleClassInfo?.licenceType),
290
- "vehicleClass": serializeStringType(vehicleClassInfo?.vehicleClass as? String)
323
+ "vehicleClass": serializeStringType(vehicleClassInfo?.vehicleClass)
291
324
  ]
292
325
  return vehicleClassInfoDict.compactMapValues { $0 }
293
326
  }
@@ -302,15 +335,17 @@ class BlinkIdSerializationUtilities {
302
335
  }
303
336
 
304
337
  static func serializeSingleSideScanningResult(_ singleSideScanningResult: SingleSideScanningResult?) -> Dictionary<String, Any> {
338
+ guard let singleSideScanningResult else { return [:] }
339
+
305
340
  let singleSideScanningDict: [String: Any?] = [
306
- "barcode": serializeBarcodeResult(singleSideScanningResult?.barcode),
307
- "barcodeInputImage": encodeImage(singleSideScanningResult?.barcodeInputImage?.uiImage),
308
- "documentImage": encodeImage(singleSideScanningResult?.documentImage?.uiImage),
309
- "faceImage": serializeDetailedCroppedImageResult(singleSideScanningResult?.faceImage),
310
- "inputImage": encodeImage(singleSideScanningResult?.inputImage?.uiImage),
311
- "mrz": serializeMrzResult(singleSideScanningResult?.mrz),
312
- "signatureImage": serializeDetailedCroppedImageResult(singleSideScanningResult?.signatureImage),
313
- "viz": serializeVizResult(singleSideScanningResult?.viz)
341
+ "barcode": serializeBarcodeResult(singleSideScanningResult.barcode),
342
+ "barcodeInputImage": encodeImage(singleSideScanningResult.barcodeInputImage?.uiImage),
343
+ "documentImage": encodeImage(singleSideScanningResult.documentImage?.uiImage),
344
+ "faceImage": serializeDetailedCroppedImageResult(singleSideScanningResult.faceImage),
345
+ "inputImage": encodeImage(singleSideScanningResult.inputImage?.uiImage),
346
+ "mrz": serializeMrzResult(singleSideScanningResult.mrz),
347
+ "signatureImage": serializeDetailedCroppedImageResult(singleSideScanningResult.signatureImage),
348
+ "viz": serializeVizResult(singleSideScanningResult.viz)
314
349
  ]
315
350
 
316
351
  return singleSideScanningDict.compactMapValues { $0 }
@@ -639,6 +674,36 @@ class BlinkIdSerializationUtilities {
639
674
  if let nationalInsuranceNumber = vizResult.nationalInsuranceNumber {
640
675
  vizResultDict["nationalInsuranceNumber"] = serializeStringResult(nationalInsuranceNumber)
641
676
  }
677
+ if let dateOfEntry = vizResult.dateOfEntry {
678
+ vizResultDict["dateOfEntry"] = serializeDateResult(dateOfEntry)
679
+ }
680
+ if let localityCode = vizResult.localityCode {
681
+ vizResultDict["localityCode"] = serializeStringResult(localityCode)
682
+ }
683
+ if let maidenName = vizResult.maidenName {
684
+ vizResultDict["maidenName"] = serializeStringResult(maidenName)
685
+ }
686
+ if let municipalityCode = vizResult.municipalityCode {
687
+ vizResultDict["municipalityCode"] = serializeStringResult(municipalityCode)
688
+ }
689
+ if let municipalityOfRegistration = vizResult.municipalityOfRegistration {
690
+ vizResultDict["municipalityOfRegistration"] = serializeStringResult(municipalityOfRegistration)
691
+ }
692
+ if let pollingStationCode = vizResult.pollingStationCode {
693
+ vizResultDict["pollingStationCode"] = serializeStringResult(pollingStationCode)
694
+ }
695
+ if let registrationCenterCode = vizResult.registrationCenterCode {
696
+ vizResultDict["registrationCenterCode"] = serializeStringResult(registrationCenterCode)
697
+ }
698
+ if let sectionCode = vizResult.sectionCode {
699
+ vizResultDict["sectionCode"] = serializeStringResult(sectionCode)
700
+ }
701
+ if let stateCode = vizResult.stateCode {
702
+ vizResultDict["stateCode"] = serializeStringResult(stateCode)
703
+ }
704
+ if let stateName = vizResult.stateName {
705
+ vizResultDict["stateName"] = serializeStringResult(stateName)
706
+ }
642
707
  }
643
708
  return vizResultDict
644
709
  }