@microblink/blinkid-react-native 7.6.2 → 8000.0.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 (223) hide show
  1. package/BlinkidReactNative.podspec +2 -1
  2. package/README.md +490 -282
  3. package/android/build.gradle +56 -4
  4. package/android/gradle.properties +3 -4
  5. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdDeserializationUtilities.kt +312 -251
  6. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdSerializationUtilities.kt +859 -710
  7. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkidReactNativeModule.kt +42 -34
  8. package/ios/BlinkidReactNative.mm +42 -52
  9. package/ios/BlinkidReactNativeModule.swift +92 -57
  10. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/BlinkID +0 -0
  11. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID-Swift.h +23857 -17935
  12. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID.h +2 -1
  13. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Info.plist +0 -0
  14. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.abi.json +24452 -8480
  15. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.private.swiftinterface +536 -234
  16. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  17. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftinterface +536 -234
  18. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +2 -0
  19. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/_CodeSignature/CodeResources +19 -30
  20. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/conan.xcconfig +3 -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 +51708 -39864
  23. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID.h +2 -1
  24. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Info.plist +0 -0
  25. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.abi.json +24452 -8480
  26. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +536 -234
  27. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  28. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftinterface +536 -234
  29. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.abi.json +24452 -8480
  30. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +536 -234
  31. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  32. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +536 -234
  33. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +2 -0
  34. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/_CodeSignature/CodeResources +29 -40
  35. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/conan.xcconfig +3 -3
  36. package/ios/Frameworks/BlinkIDUX.xcframework/Info.plist +5 -5
  37. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeDirectory +0 -0
  38. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeResources +276 -859
  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/Assets.car +0 -0
  42. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  43. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ak.lproj/Localizable.strings +0 -0
  44. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/am.lproj/Localizable.strings +0 -0
  45. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
  46. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/bn.lproj/Localizable.strings +0 -0
  47. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
  48. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/da.lproj/Localizable.strings +0 -0
  49. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
  50. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/el.lproj/Localizable.strings +0 -0
  51. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en-GB.lproj/Localizable.strings +0 -0
  52. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
  53. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es-MX.lproj/Localizable.strings +0 -0
  54. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
  55. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fa.lproj/Localizable.strings +0 -0
  56. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fi.lproj/Localizable.strings +0 -0
  57. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
  58. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr-CA.lproj/Localizable.strings +0 -0
  59. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
  60. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ha.lproj/Localizable.strings +0 -0
  61. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
  62. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hi.lproj/Localizable.strings +0 -0
  63. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  64. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
  65. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
  66. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/is.lproj/Localizable.strings +0 -0
  67. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
  68. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ja.lproj/Localizable.strings +0 -0
  69. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ka-GE.lproj/Localizable.strings +0 -0
  70. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/kk.lproj/Localizable.strings +0 -0
  71. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/km-KH.lproj/Localizable.strings +0 -0
  72. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ko.lproj/Localizable.strings +0 -0
  73. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/lv.lproj/Localizable.strings +0 -0
  74. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
  75. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nb.lproj/Localizable.strings +0 -0
  76. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ne.lproj/Localizable.strings +0 -0
  77. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
  78. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pl.lproj/Localizable.strings +0 -0
  79. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ps-AF.lproj/Localizable.strings +0 -0
  80. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt-BR.lproj/Localizable.strings +0 -0
  81. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
  82. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
  83. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ru.lproj/Localizable.strings +0 -0
  84. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/si.lproj/Localizable.strings +0 -0
  85. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
  86. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
  87. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
  88. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sv.lproj/Localizable.strings +0 -0
  89. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sw.lproj/Localizable.strings +0 -0
  90. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
  91. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/tr.lproj/Localizable.strings +0 -0
  92. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uk.lproj/Localizable.strings +0 -0
  93. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ur.lproj/Localizable.strings +0 -0
  94. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uz.lproj/Localizable.strings +0 -0
  95. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
  96. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/yo.lproj/Localizable.strings +0 -0
  97. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
  98. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
  99. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Info.plist +0 -0
  100. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.abi.json +8983 -4775
  101. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.package.swiftinterface +234 -100
  102. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.private.swiftinterface +234 -100
  103. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  104. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftinterface +234 -100
  105. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX +0 -0
  106. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
  107. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  108. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeDirectory +0 -0
  109. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeResources +114 -346
  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 +8983 -4775
  168. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +234 -100
  169. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +234 -100
  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 +234 -100
  172. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.abi.json +8983 -4775
  173. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +234 -100
  174. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +234 -100
  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 +234 -100
  177. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/_CodeSignature/CodeResources +1 -1
  178. package/ios/Serialization/BlinkIdDeserializationUtils.swift +492 -0
  179. package/ios/Serialization/BlinkIdSerializationUtils.swift +866 -0
  180. package/lib/module/NativeBlinkidReactNative.js.map +1 -1
  181. package/lib/module/blinkIdResult.js +1 -764
  182. package/lib/module/blinkIdResult.js.map +1 -1
  183. package/lib/module/blinkIdSettings.js +1 -496
  184. package/lib/module/blinkIdSettings.js.map +1 -1
  185. package/lib/module/index.js +81 -17
  186. package/lib/module/index.js.map +1 -1
  187. package/lib/module/types.js +697 -3334
  188. package/lib/module/types.js.map +1 -1
  189. package/lib/typescript/src/NativeBlinkidReactNative.d.ts +26 -5
  190. package/lib/typescript/src/NativeBlinkidReactNative.d.ts.map +1 -1
  191. package/lib/typescript/src/blinkIdResult.d.ts +35 -17
  192. package/lib/typescript/src/blinkIdResult.d.ts.map +1 -1
  193. package/lib/typescript/src/blinkIdSettings.d.ts +36 -297
  194. package/lib/typescript/src/blinkIdSettings.d.ts.map +1 -1
  195. package/lib/typescript/src/index.d.ts +38 -10
  196. package/lib/typescript/src/index.d.ts.map +1 -1
  197. package/lib/typescript/src/types.d.ts +992 -1149
  198. package/lib/typescript/src/types.d.ts.map +1 -1
  199. package/package.json +5 -4
  200. package/src/NativeBlinkidReactNative.ts +28 -5
  201. package/src/blinkIdResult.ts +44 -432
  202. package/src/blinkIdSettings.ts +53 -373
  203. package/src/index.tsx +208 -35
  204. package/src/types.ts +1180 -1398
  205. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  206. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  207. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  208. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  209. package/android/.gradle/8.9/gc.properties +0 -0
  210. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  211. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  212. package/android/.gradle/vcs-1/gc.properties +0 -0
  213. package/ios/BlinkIdDeserializationUtilities.swift +0 -374
  214. package/ios/BlinkIdSerializationUtilities.swift +0 -839
  215. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/MBSampleBufferWrapper.h +0 -28
  216. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/MBSampleBufferWrapper.h +0 -28
  217. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  218. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeRequirements-1 +0 -0
  219. package/lib/module/blinkIdUtilities.js +0 -21
  220. package/lib/module/blinkIdUtilities.js.map +0 -1
  221. package/lib/typescript/src/blinkIdUtilities.d.ts +0 -8
  222. package/lib/typescript/src/blinkIdUtilities.d.ts.map +0 -1
  223. package/src/blinkIdUtilities.ts +0 -20
@@ -10,12 +10,12 @@ import com.facebook.react.module.annotations.ReactModule
10
10
  import com.microblink.blinkid.core.BlinkIdSdk
11
11
  import com.microblink.blinkid.core.BlinkIdSdkSettings
12
12
  import com.microblink.blinkid.core.session.BlinkIdProcessResult
13
- import com.microblink.blinkid.ux.contract.BlinkIdScanActivityResultStatus
14
13
  import com.microblink.blinkid.ux.contract.BlinkIdScanActivitySettings
15
14
  import com.microblink.blinkid.ux.contract.MbBlinkIdScan
16
- import com.microblink.core.image.InputImage
17
- import com.microblink.core.ping.PingManager
18
- import com.microblink.core.ping.pinglets.WrapperProductInfo
15
+ import com.microblink.blinkid.core.image.InputImage
16
+ import com.microblink.blinkid.core.ping.PingManager
17
+ import com.microblink.blinkid.core.ping.pinglets.WrapperProductInfo
18
+ import com.microblink.blinkid.ux.contract.ScanActivityResultStatus
19
19
  import kotlinx.coroutines.CoroutineScope
20
20
  import kotlinx.coroutines.Dispatchers
21
21
  import kotlinx.coroutines.launch
@@ -83,7 +83,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
83
83
 
84
84
  val blinkIdResult = MbBlinkIdScan().parseResult(resultCode, data)
85
85
  when (blinkIdResult.status) {
86
- BlinkIdScanActivityResultStatus.DocumentScanned -> {
86
+ ScanActivityResultStatus.Scanned -> {
87
87
  blinkIdResult.result?.let { scanningResult ->
88
88
  val success = BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(
89
89
  scanningResult
@@ -93,7 +93,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
93
93
  } ?: pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "BlinkID result is empty.")
94
94
  }
95
95
 
96
- BlinkIdScanActivityResultStatus.Canceled -> {
96
+ ScanActivityResultStatus.Canceled -> {
97
97
  pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Scanning is canceled.")
98
98
  blinkIdSdk = null
99
99
  suspend {
@@ -101,7 +101,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
101
101
  }
102
102
  }
103
103
 
104
- BlinkIdScanActivityResultStatus.ErrorSdkInit -> {
104
+ ScanActivityResultStatus.ErrorSdkInit -> {
105
105
  pendingPromise?.reject(
106
106
  BLINKID_ERROR_RESULT_CODE,
107
107
  "Could not initialize the SDK."
@@ -122,6 +122,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
122
122
  blinkIdSessionSettings: String?,
123
123
  blinkIdScanningUxSettings: String?,
124
124
  classFilter: String?,
125
+ redactionSettingsResolver: String?,
125
126
  promise: Promise?
126
127
  ) {
127
128
  CoroutineScope(Dispatchers.Main).launch {
@@ -129,32 +130,36 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
129
130
  try {
130
131
  val sdkSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
131
132
  val sessionSettingsJson = blinkIdSessionSettings?.let { JSONObject(it) }
132
- val classFilterJson = classFilter?.let { JSONObject(it) }
133
- val blinkIdScanningUxJson = blinkIdScanningUxSettings?.let { JSONObject(it) }
133
+ val classFilterJson = parseOptionalJsonObject(classFilter)
134
+ val redactionResolverJson = parseOptionalJsonObject(redactionSettingsResolver)
135
+ val blinkIdScanningUxJson = parseOptionalJsonObject(blinkIdScanningUxSettings)
134
136
  val sdkSettings: BlinkIdSdkSettings = sdkSettingsJson?.let {
135
137
  BlinkIdDeserializationUtilities.deserializeBlinkIdSdkSettings(it)
136
- }?:return@launch withContext(Dispatchers.Main) {
138
+ } ?: return@launch withContext(Dispatchers.Main) {
137
139
  promise?.reject(BLINKID_ERROR_RESULT_CODE, "Invalid SDK settings")
138
140
  }
139
141
 
140
- blinkIdSdk = ensureLoadedSdk(sdkSettingsJson)
141
-
142
142
  reactApplicationContext.currentActivity?.applicationContext?.let {
143
143
  val intent = MbBlinkIdScan().createIntent(
144
144
  it,
145
145
  BlinkIdScanActivitySettings(
146
146
  sdkSettings = sdkSettings,
147
- cameraSettings = BlinkIdDeserializationUtilities.deserializeCameraSettings(blinkIdScanningUxJson),
147
+ cameraSettings = BlinkIdDeserializationUtilities.deserializeCameraSettings(
148
+ blinkIdScanningUxJson
149
+ ),
148
150
  scanningSessionSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(
149
151
  sessionSettingsJson,
150
152
  false
151
153
  ),
152
- uxSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdScanningUxSettings(
154
+ uxSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdUxSettings(
153
155
  blinkIdScanningUxJson,
156
+ sessionSettingsJson,
154
157
  classFilterJson,
158
+ redactionResolverJson,
155
159
  ),
156
- showHelpButton = blinkIdScanningUxJson?.optBoolean("showHelpButton", true)?: true,
157
- showOnboardingDialog = blinkIdScanningUxJson?.optBoolean("showOnboardingDialog", true) ?: true
160
+ showHelpButton = blinkIdScanningUxJson?.optBoolean("showHelpButton", true) ?: true,
161
+ showOnboardingDialog = blinkIdScanningUxJson?.optBoolean("showOnboardingDialog", true)
162
+ ?: true
158
163
  )
159
164
  )
160
165
  addReactNativePinglet(it)
@@ -173,6 +178,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
173
178
  blinkIdSessionSettings: String?,
174
179
  firstImage: String?,
175
180
  secondImage: String?,
181
+ redactionSettings: String?,
176
182
  promise: Promise?
177
183
  ) {
178
184
  pendingPromise = promise
@@ -180,6 +186,7 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
180
186
  try {
181
187
  val sdkSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
182
188
  val sessionSettingsJson = blinkIdSessionSettings?.let { JSONObject(it) }
189
+ val redactionSettingsJson = parseOptionalJsonObject(redactionSettings)
183
190
 
184
191
  val context = reactApplicationContext.applicationContext
185
192
  ?: return@launch withContext(Dispatchers.Main) {
@@ -193,31 +200,25 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
193
200
  sessionSettingsJson,
194
201
  true
195
202
  )
196
- )
203
+ ).getOrThrow()
197
204
 
198
205
  val inputImages = listOfNotNull(
199
206
  firstImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) },
200
207
  secondImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) }
201
208
  )
202
209
 
203
- var result: Result<BlinkIdProcessResult>? = null
204
-
205
210
  for (img in inputImages) {
206
- result = session.process(InputImage.createFromBitmap(img))
211
+ session.process(InputImage.createFromBitmap(img)).getOrThrow()
207
212
  }
208
213
 
209
- if (result?.isSuccess == true) {
210
- val scanResult = session.getResult()
211
- val resultJson =
212
- BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scanResult)
214
+ val scanResult = session.getResult(
215
+ BlinkIdDeserializationUtilities.deserializeRedactionSettings(redactionSettingsJson)
216
+ ).getOrThrow()
217
+ val resultJson =
218
+ BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scanResult)
213
219
 
214
- withContext(Dispatchers.Main) {
215
- promise?.resolve(resultJson.toString())
216
- }
217
- } else {
218
- withContext(Dispatchers.Main) {
219
- promise?.reject(BLINKID_ERROR_RESULT_CODE, "Could not get the results.")
220
- }
220
+ withContext(Dispatchers.Main) {
221
+ promise?.resolve(resultJson)
221
222
  }
222
223
 
223
224
  it.close()
@@ -260,10 +261,17 @@ class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
260
261
 
261
262
  private fun addReactNativePinglet(context: Context) {
262
263
  PingManager.getInstance(context).add(
263
- WrapperProductInfo(
264
- wrapperProduct = WrapperProductInfo.WrapperProduct.CROSSPLATFORMREACTNATIVE),
265
- 0)
264
+ WrapperProductInfo(WrapperProductInfo.WrapperProduct.CROSSPLATFORMREACTNATIVE),
265
+ 0
266
+ )
266
267
  }
268
+ private fun parseOptionalJsonObject(value: String?): JSONObject? {
269
+ if (value.isNullOrBlank() || value == "null" || value == "undefined") {
270
+ return null
271
+ }
272
+ return JSONObject(value)
273
+ }
274
+
267
275
  companion object {
268
276
  const val NAME = "BlinkidReactNative"
269
277
  }
@@ -1,5 +1,6 @@
1
1
  #import "BlinkidReactNative.h"
2
2
  #import "BlinkidReactNative-Swift.h"
3
+ #import <React/RCTUtils.h>
3
4
 
4
5
  #ifdef RCT_NEW_ARCH_ENABLED
5
6
  #import <BlinkidReactNativeSpec/BlinkidReactNativeSpec.h>
@@ -43,64 +44,45 @@ RCT_EXPORT_METHOD(unloadBlinkIdSdk:(BOOL)deleteCachedResources
43
44
  }];
44
45
  }
45
46
 
46
- RCT_EXPORT_METHOD(performScan:(NSString *)blinkIdSdkSettings
47
- blinkIdSessionSettings:(NSString *)blinkIdSessionSettings
48
- blinkIdScanningUxSettings:(NSString *)blinkIdScanningUxSettings
49
- classFilter:(NSString *)classFilter
50
- resolve:(RCTPromiseResolveBlock)resolve
51
- reject:(RCTPromiseRejectBlock)reject)
52
- {
47
+ RCT_EXPORT_METHOD(performDirectApiScan:(nonnull NSString *)blinkIdSdkSettings blinkIdSessionSettings:(nonnull NSString *)blinkIdSessionSettings firstImage:(nonnull NSString *)firstImage secondImage:(nonnull NSString *)secondImage redactionSettings:(nonnull NSString *)redactionSettings resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject) {
48
+ [self->moduleImplementation
49
+ performDirectApiScanWithBlinkIdSdkSettings: [self createDictionaryFromBlinkIdObject: blinkIdSdkSettings]
50
+ blinkIdSessionSettings: [self createDictionaryFromBlinkIdObject: blinkIdSessionSettings]
51
+ redactionSettings: [self createDictionaryFromBlinkIdObject:redactionSettings]
52
+ firstImage:firstImage
53
+ secondImage:secondImage
54
+ onResolve:^(NSString * _Nonnull result) {
55
+ resolve(result);
56
+ } onReject:^(NSString * _Nonnull error) {
57
+ reject(@"BlinkIdIosError", error, nil);
58
+ }];
59
+ }
60
+
61
+
62
+ RCT_EXPORT_METHOD(performScan:(NSString *)blinkIdSdkSettings blinkIdSessionSettings:(NSString *)blinkIdSessionSettings blinkIdScanningUxSettings:(NSString *)blinkIdScanningUxSettings classFilter:(NSString *)classFilter redactionSettingsResolver:(NSString *)redactionSettingsResolver resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
53
63
  dispatch_async(dispatch_get_main_queue(), ^{
54
- UIWindow *keyWindow = nil;
55
-
56
- for (UIWindowScene *scene in [UIApplication sharedApplication].connectedScenes) {
57
- if (scene.activationState == UISceneActivationStateForegroundActive &&
58
- [scene isKindOfClass:[UIWindowScene class]]) {
59
- for (UIWindow *window in scene.windows) {
60
- if (window.isKeyWindow) {
61
- keyWindow = window;
62
- break;
63
- }
64
- }
65
- }
66
- if (keyWindow) {
67
- break;
68
- }
64
+ UIViewController *rootViewController = RCTPresentedViewController();
65
+ if (rootViewController == nil) {
66
+ reject(@"BlinkIdIosError", @"No view controller is available to present the BlinkID scanning UI.", nil);
67
+ return;
69
68
  }
70
-
69
+
71
70
  [self->moduleImplementation
72
- performScan:keyWindow.rootViewController
71
+ performScan:rootViewController
73
72
  blinkIdSdkSettings:[self createDictionaryFromBlinkIdObject:blinkIdSdkSettings]
74
73
  blinkIdSessionSettings:[self createDictionaryFromBlinkIdObject:blinkIdSessionSettings]
75
74
  blinkIdScanningUxSettings:[self createDictionaryFromBlinkIdObject:blinkIdScanningUxSettings]
76
75
  classFilterSettings:[self createDictionaryFromBlinkIdObject:classFilter]
76
+ redactionSettingsResolver: [self createDictionaryFromBlinkIdObject:redactionSettingsResolver]
77
77
  onResolve:^(NSString * _Nonnull result) {
78
- resolve(@[result]);
78
+ resolve(result);
79
79
  } onReject:^(NSString * _Nonnull error) {
80
- reject(@"BlinkIdIosError", error, nil);
80
+ NSString *message = error.length > 0 ? error : @"Unknown BlinkID iOS error.";
81
+ reject(@"BlinkIdIosError", message, nil);
81
82
  }];
82
83
  });
83
84
  }
84
85
 
85
- RCT_EXPORT_METHOD(performDirectApiScan:(NSString *)blinkIdSdkSettings
86
- blinkIdSessionSettings:(NSString *)blinkIdSessionSettings
87
- firstImage:(NSString *)firstImage
88
- secondImage:(NSString *)secondImage
89
- resolve:(RCTPromiseResolveBlock)resolve
90
- reject:(RCTPromiseRejectBlock)reject)
91
- {
92
- [self->moduleImplementation
93
- performDirectApiScanWithBlinkIdSdkSettings: [self createDictionaryFromBlinkIdObject: blinkIdSdkSettings]
94
- blinkIdSessionSettings: [self createDictionaryFromBlinkIdObject: blinkIdSessionSettings]
95
- firstImage:firstImage
96
- secondImage:secondImage
97
- onResolve:^(NSString * _Nonnull result) {
98
- resolve(@[result]);
99
- } onReject:^(NSString * _Nonnull error) {
100
- reject(@"BlinkIdIosError", error, nil);
101
- }];
102
- }
103
-
104
86
  #ifdef RCT_NEW_ARCH_ENABLED
105
87
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
106
88
  (const facebook::react::ObjCTurboModule::InitParams &)params
@@ -111,16 +93,24 @@ RCT_EXPORT_METHOD(performDirectApiScan:(NSString *)blinkIdSdkSettings
111
93
 
112
94
  - (NSDictionary *)createDictionaryFromBlinkIdObject:(NSString *)jsonString
113
95
  {
114
- NSError *jsonError;
96
+ if (jsonString == nil || jsonString.length == 0) {
97
+ return @{};
98
+ }
99
+
115
100
  NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
116
- if (!data) {
117
- return nil;
101
+ if (data == nil) {
102
+ return @{};
103
+ }
104
+
105
+ NSError *jsonError = nil;
106
+ id parsed = [NSJSONSerialization JSONObjectWithData:data
107
+ options:NSJSONReadingMutableContainers
108
+ error:&jsonError];
109
+ if (![parsed isKindOfClass:[NSDictionary class]]) {
110
+ return @{};
118
111
  }
119
112
 
120
- NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data
121
- options:NSJSONReadingMutableContainers
122
- error:&jsonError];
123
- return dict;
113
+ return (NSDictionary *)parsed;
124
114
  }
125
115
 
126
116
  @end
@@ -12,10 +12,10 @@ import Combine
12
12
  import BlinkID
13
13
  import BlinkIDUX
14
14
 
15
- @objc public class BlinkidReactNativeModule: NSObject {
15
+ @objc public final class BlinkidReactNativeModule: NSObject {
16
16
 
17
- private var cancellables = Set<AnyCancellable>()
18
17
  private var classFilterDict: [String: Any]?
18
+ private var redactionSettingsResolverDict: [String: Any]?
19
19
 
20
20
  private var blinkIdSdk: BlinkIDSdk?
21
21
 
@@ -25,7 +25,7 @@ import BlinkIDUX
25
25
  let _ = try await ensureLoadedSdk(blinkIdSdkSettings)
26
26
  onResolve("")
27
27
  } catch {
28
- onReject(error.localizedDescription)
28
+ onReject(BlinkIdReactNativeError.message(for: error))
29
29
  }
30
30
  }
31
31
  }
@@ -33,20 +33,21 @@ import BlinkIDUX
33
33
  private func ensureLoadedSdk(_ blinkIdSdkSettings: [String: Any]) async throws -> BlinkIDSdk? {
34
34
  if let blinkIdSdk = blinkIdSdk { return blinkIdSdk }
35
35
  do {
36
- guard let settings = BlinkIdDeserializationUtilities.deserializeBlinkIdSdkSettings(blinkIdSdkSettings) else { throw BlinkIdReactNativeError.incorrectArgument(message: "Incorrect BlinkID SDK settings!") }
36
+ guard let settings = BlinkIdDeserializationUtils.deserializeBlinkIdSdkSettings(blinkIdSdkSettings) else {
37
+ throw BlinkIdReactNativeError.incorrectArgument("BlinkID SDK settings (licenseKey is required)")
38
+ }
37
39
  blinkIdSdk = try await BlinkIDSdk.createBlinkIDSdk(withSettings: settings)
38
40
  return blinkIdSdk
39
41
  } catch {
40
42
  blinkIdSdk = nil
41
43
  throw error
42
44
  }
43
- return nil
44
45
  }
45
46
 
46
47
  @objc public func unloadSdk(_ deleteCachedResources: Bool, onResolve: @escaping (String) -> Void, onReject: @escaping (String) -> Void) {
47
48
  Task {
48
49
  if deleteCachedResources {
49
- await BlinkIDSdk.terminateBlinkIDSdkAndDeleteCachedResources()
50
+ await BlinkIDSdk.terminateBlinkIDSdkAndDeleteCachedResources()
50
51
  } else {
51
52
  await BlinkIDSdk.terminateBlinkIDSdk()
52
53
  }
@@ -55,110 +56,104 @@ import BlinkIDUX
55
56
  }
56
57
  }
57
58
 
58
- @objc public func performScan(_ rootVc: UIViewController, blinkIdSdkSettings: [String: Any], blinkIdSessionSettings: [String: Any], blinkIdScanningUxSettings: [String: Any], classFilterSettings: [String: Any], onResolve: @escaping (String) -> Void, onReject: @escaping (String) -> Void) {
59
+ @objc public func performScan(_ rootVc: UIViewController, blinkIdSdkSettings: [String: Any], blinkIdSessionSettings: [String: Any], blinkIdScanningUxSettings: [String: Any], classFilterSettings: [String: Any], redactionSettingsResolver: [String: Any], onResolve: @escaping (String) -> Void, onReject: @escaping (String) -> Void) {
59
60
  Task {
60
61
  do {
61
-
62
62
  blinkIdSdk = try await ensureLoadedSdk(blinkIdSdkSettings)
63
63
  guard let blinkIdSdk = blinkIdSdk else {
64
- onReject("The SDK is not loaded!")
65
- return
64
+ throw BlinkIdReactNativeError.initError("The BlinkID SDK is not initialized. Call the loadBlinkIdSdk() method to pre-load the SDK first, or try running the performScan() method with a valid internet connection.")
66
65
  }
67
- let sessionSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(blinkIdSessionSettings)
66
+
67
+ let sessionSettings = BlinkIdDeserializationUtils.deserializeBlinkIdSessionSettings(blinkIdSessionSettings)
68
+
68
69
  classFilterDict = classFilterSettings
70
+ redactionSettingsResolverDict = redactionSettingsResolver
69
71
 
70
72
  let analyzer = try await BlinkIDAnalyzer(
71
73
  sdk: blinkIdSdk,
72
74
  blinkIdSessionSettings: sessionSettings,
73
75
  eventStream: BlinkIDEventStream(),
74
- classFilter: self
76
+ classFilter: self,
77
+ redactionSettingsResolver: self
75
78
  )
76
79
  await addReactNativePinglet(with: analyzer.sessionNumber)
77
80
 
78
81
  let scanningUxModel = await BlinkIDUXModel(
79
82
  analyzer: analyzer,
80
- uxSettings: BlinkIdDeserializationUtilities.deserializeBlinkIdUxScanningSettings(blinkIdScanningUxSettings),
81
- sessionNumber: analyzer.sessionNumber)
82
-
83
- await scanningUxModel.$result
84
- .sink { [weak self] scanningResultState in
85
- if let scanningResultState {
86
- if let scanningResult = scanningResultState.scanningResult {
87
- DispatchQueue.main.async {
88
- if let result = BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scanningResult) {
89
- onResolve(result)
90
- rootVc.dismiss(animated: true)
91
- }
92
- }
93
- }
94
- else {
95
- Task {
96
- await BlinkIDSdk.terminateBlinkIDSdk()
97
- }
98
- DispatchQueue.main.async {
99
- onReject("Scanning has been canceled")
83
+ uxSettings: BlinkIdDeserializationUtils.deserializeBlinkIdUxScanningSettings(blinkIdScanningUxSettings), onScanCompleted: { blinkIdState in
84
+ if let scanningResult = blinkIdState.scanningResult {
85
+ DispatchQueue.main.async {
86
+ if let result = BlinkIdSerializationUtils.serializeBlinkIdScanningResult(scanningResult) {
87
+ onResolve(result)
100
88
  rootVc.dismiss(animated: true)
101
89
  }
102
- self?.cancellables.forEach{ $0.cancel() }
103
90
  }
104
91
  }
92
+ else {
93
+ Task { await BlinkIDSdk.terminateBlinkIDSdk() }
94
+ DispatchQueue.main.async {
95
+ onReject(BlinkIdReactNativeError.message(for: BlinkIdReactNativeError.scanningCancelled))
96
+ rootVc.dismiss(animated: true)
97
+ }
98
+ }
99
+
105
100
  }
106
- .store(in: &cancellables)
101
+ )
107
102
 
108
103
  self.presentScanningUI(scanningUxModel, rootVc)
104
+ } catch let blinkIdError as BlinkIdReactNativeError {
105
+ onReject(BlinkIdReactNativeError.message(for: blinkIdError))
109
106
  } catch {
110
107
  if let sdkError = error as? InvalidLicenseKeyError {
111
108
  onReject(sdkError.message)
112
109
  } else {
113
- onReject(error.localizedDescription)
110
+ onReject(BlinkIdReactNativeError.message(for: error))
114
111
  }
115
112
  }
116
113
  }
117
114
  }
118
115
 
119
- @objc public func performDirectApiScan(blinkIdSdkSettings: [String: Any], blinkIdSessionSettings: [String: Any], firstImage: String, secondImage: String?, onResolve: @escaping (String) -> Void, onReject: @escaping (String) -> Void) {
116
+ @objc public func performDirectApiScan(blinkIdSdkSettings: [String: Any], blinkIdSessionSettings: [String: Any], redactionSettings: [String: Any], firstImage: String, secondImage: String?, onResolve: @escaping (String) -> Void, onReject: @escaping (String) -> Void) {
120
117
  Task{
121
118
  do {
122
119
  blinkIdSdk = try await ensureLoadedSdk(blinkIdSdkSettings)
123
120
  guard let blinkIdSdk = blinkIdSdk else {
124
- onReject("The BlinkID SDK is not initialized!")
125
- return
121
+ throw BlinkIdReactNativeError.initError("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.")
126
122
  }
127
- var sessionSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(blinkIdSessionSettings)
128
- sessionSettings.inputImageSource = .photo
129
123
 
124
+ let sessionSettings = BlinkIdDeserializationUtils.deserializeBlinkIdSessionSettings(blinkIdSessionSettings, isFromDirectApi: true)
130
125
  let session = try await blinkIdSdk.createScanningSession(sessionSettings: sessionSettings)
131
126
 
132
127
  await addReactNativePinglet(with: session.getSessionNumber())
133
128
 
134
- guard let frontUIImage = BlinkIdDeserializationUtilities.deserializeBase64Image(firstImage) else {
135
- onReject("Could not extract the information from the first image! An image of a valid document needs to be sent.")
136
- return
129
+ guard let frontUIImage = BlinkIdDeserializationUtils.deserializeBase64Image(firstImage) else {
130
+ throw BlinkIdReactNativeError.frontImageError
137
131
  }
138
132
 
139
- await session.process(inputImage: InputImage(uiImage: frontUIImage))
133
+ let _ = try await session.process(inputImage: InputImage(uiImage: frontUIImage))
140
134
 
141
- if let backUIImage = BlinkIdDeserializationUtilities.deserializeBase64Image(secondImage) {
142
- await session.process(inputImage: InputImage(uiImage: backUIImage))
135
+ if let backUIImage = BlinkIdDeserializationUtils.deserializeBase64Image(secondImage) {
136
+ let _ = try await session.process(inputImage: InputImage(uiImage: backUIImage))
143
137
  }
144
138
 
145
- let scannedResults = await session.getResult()
139
+ let scannedResults = await session.getResult(redactionSettings: BlinkIdDeserializationUtils.deserializeRedactionSettings(redactionSettings))
146
140
  DispatchQueue.main.async {
147
- if let results = BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scannedResults) {
141
+ if let results = BlinkIdSerializationUtils.serializeBlinkIdScanningResult(scannedResults) {
148
142
  onResolve(results)
149
143
  } else {
150
144
  onReject("Could not retrive the results from DirectAPI scanning!")
151
145
  }
152
146
  }
147
+ } catch let blinkIdError as BlinkIdReactNativeError {
148
+ onReject(BlinkIdReactNativeError.message(for: blinkIdError))
153
149
  } catch {
154
150
  if let sdkError = error as? InvalidLicenseKeyError {
155
151
  onReject(sdkError.message)
156
152
  } else {
157
- onReject(error.localizedDescription)
153
+ onReject(BlinkIdReactNativeError.message(for: error))
158
154
  }
159
155
  }
160
156
  }
161
-
162
157
  }
163
158
 
164
159
  private func presentScanningUI(_ model: BlinkIDUXModel, _ rootVc: UIViewController) {
@@ -174,15 +169,55 @@ import BlinkIDUX
174
169
  }
175
170
  }
176
171
 
177
- enum BlinkIdReactNativeError: Error {
178
- case incorrectArgument(message: String)
179
- }
180
-
181
172
  extension BlinkidReactNativeModule: BlinkIDClassFilter {
182
173
  public func classAllowed(classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo) -> Bool {
183
- if let classInfoFilterDict = classFilterDict {
184
- return BlinkIdDeserializationUtilities.deserializeClassFilter(classInfoFilterDict, classInfo)
174
+ guard let classInfoFilterDict = classFilterDict, !classInfoFilterDict.isEmpty else {
175
+ return true
185
176
  }
186
- return true
177
+ return BlinkIdDeserializationUtils.deserializeClassFilter(classInfoFilterDict, classInfo)
178
+ }
179
+ }
180
+
181
+ extension BlinkidReactNativeModule: RedactionSettingsResolver {
182
+ public func resolveRedactionSettings(classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo) -> BlinkID.RedactionSettings? {
183
+ guard let redactionSettingsResolverDict, !redactionSettingsResolverDict.isEmpty else {
184
+ return nil
185
+ }
186
+ return BlinkIdDeserializationUtils.deserializeRedactionSettingsResolver(redactionSettingsResolverDict, classInfo)
187
+ }
188
+ }
189
+
190
+ enum BlinkIdReactNativeError: LocalizedError {
191
+ case incorrectArgument(String)
192
+ case settingsError
193
+ case initError(String)
194
+ case frontImageError
195
+ case scanningCancelled
196
+
197
+ var errorDescription: String? {
198
+ switch self {
199
+ case .incorrectArgument(let argument):
200
+ return "Incorrect argument passed for \(argument)"
201
+ case .settingsError:
202
+ return "Invalid SDK settings provided"
203
+ case .initError(let initErrorReason):
204
+ return "Could not initialize the SDK. Reason: \(initErrorReason)"
205
+ case .frontImageError:
206
+ return "Could not extract the information from the first image! An image of a valid document needs to be sent."
207
+ case .scanningCancelled:
208
+ return "Scanning has been cancelled"
209
+ }
210
+ }
211
+
212
+ static func message(for error: Error) -> String {
213
+ if let localizedError = error as? LocalizedError,
214
+ let description = localizedError.errorDescription {
215
+ return description
216
+ }
217
+ return error.localizedDescription
218
+ }
219
+
220
+ static var iosErrorName : String {
221
+ return "blinkid_ios_error"
187
222
  }
188
223
  }