@microblink/blinkid-react-native 7.7.0 → 8001.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 (234) hide show
  1. package/BlinkidReactNative.podspec +2 -1
  2. package/README.md +621 -281
  3. package/android/build.gradle +56 -4
  4. package/android/gradle.properties +3 -4
  5. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdClassInfoIdMappings.kt +33 -0
  6. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdDeserializationUtilities.kt +370 -258
  7. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdSerializationUtilities.kt +149 -41
  8. package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkidReactNativeModule.kt +54 -31
  9. package/ios/BlinkidReactNative.mm +49 -52
  10. package/ios/BlinkidReactNativeModule.swift +114 -57
  11. package/ios/Frameworks/BlinkID.xcframework/Info.plist +5 -9
  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.h +893 -13
  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.swiftdoc +0 -0
  16. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/{arm64-apple-ios.private.swiftinterface → arm64.swiftinterface} +2421 -2076
  17. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/module.modulemap +1 -7
  18. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/PrivacyInfo.xcprivacy +0 -0
  19. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/BlinkID +0 -0
  20. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID.h +893 -13
  21. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Info.plist +0 -0
  22. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64.swiftdoc +0 -0
  23. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/{arm64-apple-ios-simulator.swiftinterface → arm64.swiftinterface} +2421 -2076
  24. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64.swiftdoc +0 -0
  25. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/{x86_64-apple-ios-simulator.private.swiftinterface → x86_64.swiftinterface} +2421 -2076
  26. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/module.modulemap +1 -7
  27. package/ios/Frameworks/BlinkIDUX.xcframework/Info.plist +5 -5
  28. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeDirectory +0 -0
  29. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeResources +276 -276
  30. package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeSignature +0 -0
  31. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX +0 -0
  32. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
  33. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  34. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ak.lproj/Localizable.strings +0 -0
  35. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/am.lproj/Localizable.strings +0 -0
  36. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
  37. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/bn.lproj/Localizable.strings +0 -0
  38. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
  39. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/da.lproj/Localizable.strings +0 -0
  40. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
  41. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/el.lproj/Localizable.strings +0 -0
  42. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en-GB.lproj/Localizable.strings +0 -0
  43. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
  44. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es-MX.lproj/Localizable.strings +0 -0
  45. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
  46. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fa.lproj/Localizable.strings +0 -0
  47. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fi.lproj/Localizable.strings +0 -0
  48. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
  49. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr-CA.lproj/Localizable.strings +0 -0
  50. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
  51. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ha.lproj/Localizable.strings +0 -0
  52. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
  53. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hi.lproj/Localizable.strings +0 -0
  54. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  55. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
  56. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
  57. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/is.lproj/Localizable.strings +0 -0
  58. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
  59. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ja.lproj/Localizable.strings +0 -0
  60. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ka-GE.lproj/Localizable.strings +0 -0
  61. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/kk.lproj/Localizable.strings +0 -0
  62. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/km-KH.lproj/Localizable.strings +0 -0
  63. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ko.lproj/Localizable.strings +0 -0
  64. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/lv.lproj/Localizable.strings +0 -0
  65. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
  66. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nb.lproj/Localizable.strings +0 -0
  67. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ne.lproj/Localizable.strings +0 -0
  68. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
  69. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pl.lproj/Localizable.strings +0 -0
  70. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ps-AF.lproj/Localizable.strings +0 -0
  71. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt-BR.lproj/Localizable.strings +0 -0
  72. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
  73. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
  74. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ru.lproj/Localizable.strings +0 -0
  75. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/si.lproj/Localizable.strings +0 -0
  76. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
  77. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
  78. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
  79. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sv.lproj/Localizable.strings +0 -0
  80. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sw.lproj/Localizable.strings +0 -0
  81. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
  82. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/tr.lproj/Localizable.strings +0 -0
  83. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uk.lproj/Localizable.strings +0 -0
  84. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ur.lproj/Localizable.strings +0 -0
  85. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uz.lproj/Localizable.strings +0 -0
  86. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
  87. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/yo.lproj/Localizable.strings +0 -0
  88. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
  89. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
  90. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Info.plist +0 -0
  91. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.abi.json +3860 -1881
  92. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.package.swiftinterface +87 -69
  93. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.private.swiftinterface +87 -69
  94. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  95. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftinterface +87 -69
  96. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX +0 -0
  97. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
  98. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
  99. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeDirectory +0 -0
  100. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeResources +114 -114
  101. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ak.lproj/Localizable.strings +0 -0
  102. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/am.lproj/Localizable.strings +0 -0
  103. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
  104. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/bn.lproj/Localizable.strings +0 -0
  105. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
  106. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/da.lproj/Localizable.strings +0 -0
  107. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
  108. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/el.lproj/Localizable.strings +0 -0
  109. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en-GB.lproj/Localizable.strings +0 -0
  110. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
  111. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es-MX.lproj/Localizable.strings +0 -0
  112. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
  113. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fa.lproj/Localizable.strings +0 -0
  114. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fi.lproj/Localizable.strings +0 -0
  115. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
  116. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr-CA.lproj/Localizable.strings +0 -0
  117. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
  118. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ha.lproj/Localizable.strings +0 -0
  119. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
  120. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hi.lproj/Localizable.strings +0 -0
  121. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
  122. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
  123. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
  124. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/is.lproj/Localizable.strings +0 -0
  125. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
  126. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ja.lproj/Localizable.strings +0 -0
  127. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ka-GE.lproj/Localizable.strings +0 -0
  128. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/kk.lproj/Localizable.strings +0 -0
  129. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/km-KH.lproj/Localizable.strings +0 -0
  130. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ko.lproj/Localizable.strings +0 -0
  131. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/lv.lproj/Localizable.strings +0 -0
  132. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
  133. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nb.lproj/Localizable.strings +0 -0
  134. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ne.lproj/Localizable.strings +0 -0
  135. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
  136. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pl.lproj/Localizable.strings +0 -0
  137. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ps-AF.lproj/Localizable.strings +0 -0
  138. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt-BR.lproj/Localizable.strings +0 -0
  139. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
  140. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
  141. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ru.lproj/Localizable.strings +0 -0
  142. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/si.lproj/Localizable.strings +0 -0
  143. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
  144. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
  145. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
  146. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sv.lproj/Localizable.strings +0 -0
  147. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sw.lproj/Localizable.strings +0 -0
  148. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
  149. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/tr.lproj/Localizable.strings +0 -0
  150. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uk.lproj/Localizable.strings +0 -0
  151. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ur.lproj/Localizable.strings +0 -0
  152. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/uz.lproj/Localizable.strings +0 -0
  153. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
  154. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/yo.lproj/Localizable.strings +0 -0
  155. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
  156. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
  157. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Info.plist +0 -0
  158. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.abi.json +3860 -1881
  159. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +87 -69
  160. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +87 -69
  161. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  162. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftinterface +87 -69
  163. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.abi.json +3860 -1881
  164. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +87 -69
  165. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +87 -69
  166. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  167. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +87 -69
  168. package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/_CodeSignature/CodeResources +1 -1
  169. package/ios/Serialization/BlinkIdDeserializationUtils.swift +614 -0
  170. package/ios/{BlinkIdSerializationUtilities.swift → Serialization/BlinkIdSerializationUtils.swift} +294 -255
  171. package/lib/module/NativeBlinkidReactNative.js.map +1 -1
  172. package/lib/module/blinkIdResult.js +1 -822
  173. package/lib/module/blinkIdResult.js.map +1 -1
  174. package/lib/module/blinkIdSettings.js +1 -496
  175. package/lib/module/blinkIdSettings.js.map +1 -1
  176. package/lib/module/index.js +94 -17
  177. package/lib/module/index.js.map +1 -1
  178. package/lib/module/types.js +715 -3373
  179. package/lib/module/types.js.map +1 -1
  180. package/lib/typescript/src/NativeBlinkidReactNative.d.ts +36 -5
  181. package/lib/typescript/src/NativeBlinkidReactNative.d.ts.map +1 -1
  182. package/lib/typescript/src/blinkIdResult.d.ts +17 -20
  183. package/lib/typescript/src/blinkIdResult.d.ts.map +1 -1
  184. package/lib/typescript/src/blinkIdSettings.d.ts +195 -317
  185. package/lib/typescript/src/blinkIdSettings.d.ts.map +1 -1
  186. package/lib/typescript/src/index.d.ts +48 -10
  187. package/lib/typescript/src/index.d.ts.map +1 -1
  188. package/lib/typescript/src/types.d.ts +1062 -1210
  189. package/lib/typescript/src/types.d.ts.map +1 -1
  190. package/package.json +5 -4
  191. package/src/NativeBlinkidReactNative.ts +39 -5
  192. package/src/blinkIdResult.ts +19 -466
  193. package/src/blinkIdSettings.ts +218 -389
  194. package/src/index.tsx +221 -35
  195. package/src/types.ts +1253 -1463
  196. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  197. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  198. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  199. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  200. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  201. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  202. package/android/.gradle/8.9/gc.properties +0 -0
  203. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  204. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  205. package/android/.gradle/vcs-1/gc.properties +0 -0
  206. package/android/.project +0 -28
  207. package/ios/BlinkIdDeserializationUtilities.swift +0 -374
  208. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID-Swift.h +0 -43937
  209. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/MBSampleBufferWrapper.h +0 -28
  210. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.abi.json +0 -78651
  211. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  212. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftinterface +0 -2304
  213. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/module.private.modulemap +0 -12
  214. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +0 -19
  215. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/_CodeSignature/CodeResources +0 -245
  216. package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/conan.xcconfig +0 -40
  217. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID-Swift.h +0 -87870
  218. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/MBSampleBufferWrapper.h +0 -28
  219. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.abi.json +0 -78651
  220. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +0 -2304
  221. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  222. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.abi.json +0 -78651
  223. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  224. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +0 -2304
  225. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/module.private.modulemap +0 -12
  226. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +0 -19
  227. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/_CodeSignature/CodeResources +0 -300
  228. package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/conan.xcconfig +0 -40
  229. package/lib/module/blinkIdUtilities.js +0 -21
  230. package/lib/module/blinkIdUtilities.js.map +0 -1
  231. package/lib/typescript/src/blinkIdUtilities.d.ts +0 -8
  232. package/lib/typescript/src/blinkIdUtilities.d.ts.map +0 -1
  233. package/src/android/.project +0 -28
  234. package/src/blinkIdUtilities.ts +0 -20
@@ -0,0 +1,614 @@
1
+ //
2
+ // BlinkIdDeserializationUtilities.swift
3
+ // BlinkidReactNative
4
+ //
5
+ // Created by Milan Parađina on 22.05.2025..
6
+ //
7
+
8
+ import Foundation
9
+ import BlinkID
10
+ import UIKit
11
+ import BlinkIDUX
12
+
13
+ struct BlinkIdDeserializationUtils {
14
+ private static let defaultResourceDownloadUrl = "https://models.cdn.microblink.com/resources"
15
+ private static let defaultResourceLocalFolder = "MLModels"
16
+
17
+ private static let defaultOtaDownloadUrl = "https://blinkid-ota.microblink.com"
18
+ private static let defaultOtaResourcesLocalFolder = "OTAMLModels"
19
+ private static let defaultTimeoutSeconds: TimeInterval = 30
20
+
21
+ private static func deserializeResourceRequestTimeout(_ value: Any?) -> RequestTimeout {
22
+ guard let map = value as? [String: Any] else {
23
+ return .default
24
+ }
25
+
26
+ return RequestTimeout(
27
+ connectionTimeout: deserializeTimeoutSeconds(
28
+ map["connectionTimeoutMilliseconds"],
29
+ defaultSeconds: defaultTimeoutSeconds
30
+ ),
31
+ readTimeout: deserializeTimeoutSeconds(
32
+ map["readTimeoutMilliseconds"],
33
+ defaultSeconds: defaultTimeoutSeconds
34
+ ),
35
+ writeTimeout: deserializeTimeoutSeconds(
36
+ map["writeTimeoutMilliseconds"],
37
+ defaultSeconds: defaultTimeoutSeconds
38
+ )
39
+ )
40
+ }
41
+
42
+ private static func deserializeTimeoutSeconds(
43
+ _ value: Any?,
44
+ defaultSeconds: TimeInterval
45
+ ) -> TimeInterval {
46
+ guard let milliseconds = parseTimeoutMilliseconds(value) else {
47
+ return defaultSeconds
48
+ }
49
+ return Double(milliseconds) / 1000.0
50
+ }
51
+
52
+ private static func parseTimeoutMilliseconds(_ value: Any?) -> Int? {
53
+ if let intValue = value as? Int {
54
+ return intValue
55
+ }
56
+ if let doubleValue = value as? Double {
57
+ return Int(doubleValue)
58
+ }
59
+ if let numberValue = value as? NSNumber {
60
+ return numberValue.intValue
61
+ }
62
+ return nil
63
+ }
64
+
65
+ static func deserializeBlinkIdSdkSettings(_ sdkSettingsDict: Dictionary<String, Any>?) -> BlinkIDSdkSettings? {
66
+ var blinkidSdkSettings: BlinkIDSdkSettings?
67
+
68
+ if let licenseKey = sdkSettingsDict?["licenseKey"] as? String {
69
+ blinkidSdkSettings = BlinkIDSdkSettings(licenseKey: licenseKey)
70
+ }
71
+
72
+ if let licensee = sdkSettingsDict?["licensee"] as? String {
73
+ blinkidSdkSettings?.licensee = licensee
74
+ }
75
+
76
+ if let helloLogEnabled = sdkSettingsDict?["helloLogEnabled"] as? Bool {
77
+ blinkidSdkSettings?.helloLogEnabled = helloLogEnabled
78
+ }
79
+
80
+ let resourcesDict = sdkSettingsDict?["resourcesConfig"] as? Dictionary<String, Any>
81
+
82
+ let download = resourcesDict?["download"] as? Bool ?? true
83
+
84
+ let serviceUrl = resourcesDict?["serviceUrl"] as? String
85
+ ?? defaultResourceDownloadUrl
86
+
87
+ let localFolder = resourcesDict?["localFolder"] as? String
88
+ ?? defaultResourceLocalFolder
89
+
90
+ var bundleUrl: URL? = nil
91
+ if let bundleIdentifier = resourcesDict?["bundleIdentifier"] as? String,
92
+ let bundle = Bundle(identifier: bundleIdentifier) {
93
+ bundleUrl = bundle.bundleURL
94
+ }
95
+
96
+ blinkidSdkSettings?.resourcesConfiguration = ResourcesConfig(
97
+ download: download,
98
+ serviceUrl: serviceUrl,
99
+ localFolder: localFolder,
100
+ requestTimeout: deserializeResourceRequestTimeout(resourcesDict?["requestTimeout"]),
101
+ bundleUrl: bundleUrl
102
+ )
103
+
104
+ let otaResourcesDict = sdkSettingsDict?["otaResourcesConfig"] as? Dictionary<String, Any>
105
+
106
+ let otaCheckForUpdates = otaResourcesDict?["checkForUpdates"] as? Bool ?? true
107
+ let otaStrict = otaResourcesDict?["strict"] as? Bool ?? false
108
+ let otaServiceUrl = otaResourcesDict?["serviceUrl"] as? String
109
+ ?? defaultOtaDownloadUrl
110
+ let otaLocalFolder = otaResourcesDict?["localFolder"] as? String
111
+ ?? defaultOtaResourcesLocalFolder
112
+
113
+ var otaBundleUrl: URL? = nil
114
+ if let otaBundleIdentifier = otaResourcesDict?["bundleIdentifier"] as? String,
115
+ let otaBundle = Bundle(identifier: otaBundleIdentifier) {
116
+ otaBundleUrl = otaBundle.bundleURL
117
+ }
118
+
119
+ blinkidSdkSettings?.otaResourcesConfiguration = OTAResourcesConfig(
120
+ checkForUpdates: otaCheckForUpdates,
121
+ strict: otaStrict,
122
+ serviceUrl: otaServiceUrl,
123
+ localFolder: otaLocalFolder,
124
+ requestTimeout: deserializeResourceRequestTimeout(otaResourcesDict?["requestTimeout"]),
125
+ bundleUrl: otaBundleUrl
126
+ )
127
+
128
+ if let microblinkProxyUrl = sdkSettingsDict?["microblinkProxyURL"] as? String
129
+ ?? sdkSettingsDict?["microblinkProxyUrl"] as? String {
130
+ blinkidSdkSettings?.microblinkProxyURL = microblinkProxyUrl
131
+ }
132
+
133
+ return blinkidSdkSettings
134
+ }
135
+
136
+ static func deserializeBlinkIdSessionSettings(_ sessionSettingsDict: Dictionary<String, Any>?, isFromDirectApi: Bool = false) -> BlinkIDSessionSettings {
137
+ var blinkidSessionSettings = BlinkIDSessionSettings()
138
+
139
+ if let scanningSettings = sessionSettingsDict?["scanningSettings"] as? Dictionary<String, Any> {
140
+ blinkidSessionSettings.scanningSettings = deserializeBlinkIdScanningSettings(scanningSettings)
141
+ }
142
+
143
+ if let scanningMode = sessionSettingsDict?["scanningMode"] as? String {
144
+ blinkidSessionSettings.scanningMode = deseralizeScanningMode(scanningMode)
145
+ }
146
+
147
+ if let stepTimeoutDuration = sessionSettingsDict?["stepTimeoutDuration"] as? Int {
148
+ blinkidSessionSettings.stepTimeoutDuration = Double(stepTimeoutDuration) / 1000.0
149
+ }
150
+
151
+ if let inactivityTimeoutDuration = sessionSettingsDict?["inactivityTimeoutDuration"] as? Int {
152
+ blinkidSessionSettings.inactivityTimeoutDuration = Double(inactivityTimeoutDuration) / 1000.0
153
+ }
154
+
155
+ if isFromDirectApi {
156
+ blinkidSessionSettings.inputImageSource = .photo
157
+ }
158
+
159
+ return blinkidSessionSettings
160
+ }
161
+
162
+ static func deserializeBlinkIdScanningSettings(_ scanningSettingsDict: Dictionary<String, Any>?) -> ScanningSettings {
163
+ var scanningSettings = ScanningSettings()
164
+ guard let scanningSettingsDict else {
165
+ return scanningSettings
166
+ }
167
+
168
+ if scanningSettingsDict.keys.contains("barcodeModule") {
169
+ if let barcodeModuleDict = scanningSettingsDict["barcodeModule"] as? Dictionary<String, Any> {
170
+ scanningSettings.barcodeModule = deserializeBarcodeModule(barcodeModuleDict)
171
+ } else {
172
+ scanningSettings.barcodeModule = nil
173
+ }
174
+ }
175
+
176
+ if scanningSettingsDict.keys.contains("documentCaptureModule") {
177
+ if let documentCaptureDict = scanningSettingsDict["documentCaptureModule"] as? Dictionary<String, Any> {
178
+ scanningSettings.documentCaptureModule = deserializeDocumentCaptureModule(documentCaptureDict)
179
+ } else {
180
+ scanningSettings.documentCaptureModule = nil
181
+ }
182
+ }
183
+
184
+ if scanningSettingsDict.keys.contains("mrzModule") {
185
+ if let mrzModuleDict = scanningSettingsDict["mrzModule"] as? Dictionary<String, Any> {
186
+ scanningSettings.mrzModule = deserializeMrzModule(mrzModuleDict)
187
+ } else {
188
+ scanningSettings.mrzModule = nil
189
+ }
190
+ }
191
+
192
+ if scanningSettingsDict.keys.contains("vizModule") {
193
+ if let vizModuleDict = scanningSettingsDict["vizModule"] as? Dictionary<String, Any> {
194
+ scanningSettings.vizModule = deserializeVizModule(vizModuleDict)
195
+ } else {
196
+ scanningSettings.vizModule = nil
197
+ }
198
+ }
199
+
200
+ if let maxAllowedMismatchesPerField = scanningSettingsDict["maxAllowedMismatchesPerField"] as? Int {
201
+ scanningSettings.maxAllowedMismatchesPerField = maxAllowedMismatchesPerField
202
+ }
203
+
204
+ return scanningSettings
205
+ }
206
+
207
+ static func deserializeBarcodeModule(_ barcodeModuleDict: Dictionary<String, Any>) -> BarcodeModuleSettings {
208
+ var barodeModuleSettings = BarcodeModuleSettings()
209
+
210
+ if let barcodeImageReturnEnabled = barcodeModuleDict["barcodeImageReturnEnabled"] as? Bool {
211
+ barodeModuleSettings.barcodeImageReturnEnabled = barcodeImageReturnEnabled
212
+ }
213
+
214
+ if let code128ScanningEnabled = barcodeModuleDict["code128ScanningEnabled"] as? Bool {
215
+ barodeModuleSettings.code128ScanningEnabled = code128ScanningEnabled
216
+ }
217
+
218
+ if let code39ScanningEnabled = barcodeModuleDict["code39ScanningEnabled"] as? Bool {
219
+ barodeModuleSettings.code39ScanningEnabled = code39ScanningEnabled
220
+ }
221
+
222
+ if let dataMatrixScanningEnabled = barcodeModuleDict["dataMatrixScanningEnabled"] as? Bool {
223
+ barodeModuleSettings.dataMatrixScanningEnabled = dataMatrixScanningEnabled
224
+ }
225
+
226
+ if let aztecScanningEnabled = barcodeModuleDict["aztecScanningEnabled"] as? Bool {
227
+ barodeModuleSettings.aztecScanningEnabled = aztecScanningEnabled
228
+ }
229
+
230
+ if let ean13ScanningEnabled = barcodeModuleDict["ean13ScanningEnabled"] as? Bool {
231
+ barodeModuleSettings.ean13ScanningEnabled = ean13ScanningEnabled
232
+ }
233
+
234
+ if let ean8ScanningEnabled = barcodeModuleDict["ean8ScanningEnabled"] as? Bool {
235
+ barodeModuleSettings.ean8ScanningEnabled = ean8ScanningEnabled
236
+ }
237
+
238
+ if let itfScanningEnabled = barcodeModuleDict["itfScanningEnabled"] as? Bool {
239
+ barodeModuleSettings.itfScanningEnabled = itfScanningEnabled
240
+ }
241
+
242
+ if let pdf417ScanningEnabled = barcodeModuleDict["pdf417ScanningEnabled"] as? Bool {
243
+ barodeModuleSettings.pdf417ScanningEnabled = pdf417ScanningEnabled
244
+ }
245
+
246
+ if let presenceMandatory = barcodeModuleDict["presenceMandatory"] as? Bool {
247
+ barodeModuleSettings.presenceMandatory = presenceMandatory
248
+ }
249
+
250
+ if let qrScanningEnabled = barcodeModuleDict["qrScanningEnabled"] as? Bool {
251
+ barodeModuleSettings.qrScanningEnabled = qrScanningEnabled
252
+ }
253
+
254
+ if let upcaScanningEnabled = barcodeModuleDict["upcaScanningEnabled"] as? Bool {
255
+ barodeModuleSettings.upcaScanningEnabled = upcaScanningEnabled
256
+ }
257
+
258
+ if let upceScanningEnabled = barcodeModuleDict["upceScanningEnabled"] as? Bool {
259
+ barodeModuleSettings.upceScanningEnabled = upceScanningEnabled
260
+ }
261
+
262
+ return barodeModuleSettings
263
+ }
264
+
265
+ static func deserializeDocumentCaptureModule(_ documentCaptureModuleDict: Dictionary<String, Any>) -> DocumentCaptureModuleSettings {
266
+ var documentCaptureSettings = DocumentCaptureModuleSettings()
267
+
268
+ if let blurSensitivityLevel = documentCaptureModuleDict["blurSensitivityLevel"] as? String {
269
+ documentCaptureSettings.blurSensitivityLevel = deserializeSensitivityLevel(blurSensitivityLevel)
270
+ }
271
+
272
+ if let glareSensitivityLevel = documentCaptureModuleDict["glareSensitivityLevel"] as? String {
273
+ documentCaptureSettings.glareSensitivityLevel = deserializeSensitivityLevel(glareSensitivityLevel)
274
+ }
275
+
276
+ if let tiltSensitivityLevel = documentCaptureModuleDict["tiltSensitivityLevel"] as? String {
277
+ documentCaptureSettings.tiltSensitivityLevel = deserializeSensitivityLevel(tiltSensitivityLevel)
278
+ }
279
+
280
+ if let documentImageReturnEnabled = documentCaptureModuleDict["documentImageReturnEnabled"] as? Bool {
281
+ documentCaptureSettings.documentImageReturnEnabled = documentImageReturnEnabled
282
+ }
283
+
284
+ if let dotsPerInch = documentCaptureModuleDict["dotsPerInch"] as? Int {
285
+ documentCaptureSettings.dotsPerInch = DPI(dotsPerInch)
286
+ }
287
+
288
+ if let extensionFactor = documentCaptureModuleDict["extensionFactor"] as? Double {
289
+ documentCaptureSettings.extensionFactor = Float(extensionFactor)
290
+ }
291
+
292
+ if let faceImageExtractionEnabled = documentCaptureModuleDict["faceImageExtractionEnabled"] as? Bool {
293
+ documentCaptureSettings.faceImageExtractionEnabled = faceImageExtractionEnabled
294
+ }
295
+
296
+ if let faceImagePresenceMandatory = documentCaptureModuleDict["faceImagePresenceMandatory"] as? Bool {
297
+ documentCaptureSettings.faceImagePresenceMandatory = faceImagePresenceMandatory
298
+ }
299
+
300
+ if let imageWithBlurRejected = documentCaptureModuleDict["imageWithBlurRejected"] as? Bool {
301
+ documentCaptureSettings.imageWithBlurRejected = imageWithBlurRejected
302
+ }
303
+
304
+ if let imageWithGlareRejected = documentCaptureModuleDict["imageWithGlareRejected"] as? Bool {
305
+ documentCaptureSettings.imageWithGlareRejected = imageWithGlareRejected
306
+ }
307
+
308
+ if let imageWithHandOcclusionRejected = documentCaptureModuleDict["imageWithHandOcclusionRejected"] as? Bool {
309
+ documentCaptureSettings.imageWithHandOcclusionRejected = imageWithHandOcclusionRejected
310
+ }
311
+
312
+ if let imageWithPoorLightingRejected = documentCaptureModuleDict["imageWithPoorLightingRejected"] as? Bool {
313
+ documentCaptureSettings.imageWithPoorLightingRejected = imageWithPoorLightingRejected
314
+ }
315
+
316
+ if let cropType = documentCaptureModuleDict["cropType"] as? String {
317
+ documentCaptureSettings.cropType = deserializeInputImageCropType(cropType)
318
+ }
319
+
320
+ if let inputImageSelectionStrategy = documentCaptureModuleDict["inputImageSelectionStrategy"] as? String {
321
+ documentCaptureSettings.inputImageSelectionStrategy = deserializeInputImageSelectionStrategy(inputImageSelectionStrategy)
322
+ }
323
+
324
+ if let inputImageReturnEnabled = documentCaptureModuleDict["inputImageReturnEnabled"] as? Bool {
325
+ documentCaptureSettings.inputImageReturnEnabled = inputImageReturnEnabled
326
+ }
327
+
328
+ if let passportDataPageScanOnly = documentCaptureModuleDict["passportDataPageScanOnly"] as? Bool {
329
+ documentCaptureSettings.passportDataPageScanOnly = passportDataPageScanOnly
330
+ }
331
+
332
+ if let secondSideWithNoExtractableDataSkipped = documentCaptureModuleDict["secondSideWithNoExtractableDataSkipped"] as? Bool {
333
+ documentCaptureSettings.secondSideWithNoExtractableDataSkipped = secondSideWithNoExtractableDataSkipped
334
+ }
335
+
336
+ if let unsupportedDocumentsAllowed = documentCaptureModuleDict["unsupportedDocumentsAllowed"] as? Bool {
337
+ documentCaptureSettings.unsupportedDocumentsAllowed = unsupportedDocumentsAllowed
338
+ }
339
+
340
+ if let inputImageMargin = documentCaptureModuleDict["inputImageMargin"] as? Double {
341
+ documentCaptureSettings.inputImageMargin = Float(inputImageMargin)
342
+ }
343
+
344
+ if let tiltSensitivityLevel = documentCaptureModuleDict["tiltSensitivityLevel"] as? String {
345
+ documentCaptureSettings.tiltSensitivityLevel = deserializeSensitivityLevel(tiltSensitivityLevel)
346
+ }
347
+ return documentCaptureSettings
348
+ }
349
+
350
+ static func deserializeInputImageCropType(_ value: String) -> InputImageCropType {
351
+ switch value {
352
+ case "cropped": return InputImageCropType.cropped
353
+ case "unknown": return InputImageCropType.unknown
354
+ case "not-cropped": return InputImageCropType.notCropped
355
+ default: return InputImageCropType.notCropped
356
+ }
357
+ }
358
+
359
+ static func deserializeInputImageSelectionStrategy(_ value: String) -> InputImageSelectionStrategy {
360
+ switch value {
361
+ case "single-image": return InputImageSelectionStrategy.singleImage
362
+ case "optimize-for-speed": return InputImageSelectionStrategy.optimizeForSpeed
363
+ case "balanced": return InputImageSelectionStrategy.balanced
364
+ case "optimize-for-quality": return InputImageSelectionStrategy.optimizeForQuality
365
+ default: return InputImageSelectionStrategy.balanced
366
+ }
367
+ }
368
+
369
+ static func deserializeSensitivityLevel(_ sensitivityLevelRawValue: String) -> SensitivityLevel {
370
+ switch sensitivityLevelRawValue {
371
+ case "off": return .off
372
+ case "low": return .low
373
+ case "mid": return .mid
374
+ case "high": return .high
375
+ default: return .mid
376
+ }
377
+ }
378
+
379
+ static func deserializeMrzModule(_ mrzModuleDict: Dictionary<String, Any>) -> MrzModuleSettings {
380
+
381
+ var mrzModuleSettings = MrzModuleSettings()
382
+
383
+ if let presenceMandatory = mrzModuleDict["presenceMandatory"] as? Bool {
384
+ mrzModuleSettings.presenceMandatory = presenceMandatory
385
+ }
386
+
387
+ return mrzModuleSettings
388
+ }
389
+
390
+ static func deserializeVizModule(_ vizModuleDict: Dictionary<String, Any>) -> VizModuleSettings {
391
+ var vizModuleSettings = VizModuleSettings()
392
+
393
+ if let characterValidationEnabled = vizModuleDict["characterValidationEnabled"] as? Bool {
394
+ vizModuleSettings.characterValidationEnabled = characterValidationEnabled
395
+ }
396
+
397
+ if let presenceMandatory = vizModuleDict["presenceMandatory"] as? Bool {
398
+ vizModuleSettings.presenceMandatory = presenceMandatory
399
+ }
400
+
401
+ if let signatureImageExtractionEnabled = vizModuleDict["signatureImageExtractionEnabled"] as? Bool {
402
+ vizModuleSettings.signatureImageExtractionEnabled = signatureImageExtractionEnabled
403
+ }
404
+
405
+ if let resultAggregationEnabled = vizModuleDict["resultAggregationEnabled"] as? Bool {
406
+ vizModuleSettings.resultAggregationEnabled = resultAggregationEnabled
407
+ }
408
+
409
+ return vizModuleSettings
410
+ }
411
+
412
+ static func deserializeRedactionSettings(_ redactionDict: Dictionary<String, Any>) -> RedactionSettings? {
413
+ var redactionSettings: RedactionSettings?
414
+ if let fieldsRaw = redactionDict["fields"] as? [String] {
415
+ let fieldTypes: [FieldType] = fieldsRaw.compactMap { FieldType(rawValue: $0) }
416
+ redactionSettings = RedactionSettings(fields: fieldTypes)
417
+ } else {
418
+ return nil
419
+ }
420
+
421
+ if let modeRaw = redactionDict["mode"] as? String,
422
+ let mode = RedactionMode(rawValue: modeRaw) {
423
+ redactionSettings?.mode = mode
424
+ }
425
+
426
+ if let redactBarcode = redactionDict["redactBarcode"] as? Bool
427
+ ?? redactionDict["redactBarcodeResult"] as? Bool {
428
+ redactionSettings?.redactBarcode = redactBarcode
429
+ }
430
+
431
+ if let redactMrz = redactionDict["redactMrz"] as? Bool
432
+ ?? redactionDict["redactMrzResult"] as? Bool {
433
+ redactionSettings?.redactMrz = redactMrz
434
+ }
435
+
436
+ if let documentNumberRedactionDict = redactionDict["documentNumberRedactionSettings"] as? Dictionary<String, Any> {
437
+ redactionSettings?.documentNumberRedactionSettings =
438
+ deserializeDocumentNumberRedactionSettings(documentNumberRedactionDict)
439
+ }
440
+
441
+ return redactionSettings
442
+ }
443
+
444
+ static func deserializeDocumentNumberRedactionSettings(_ documentNumberRedactionSettingsDict: Dictionary<String, Any>) -> DocumentNumberRedactionSettings {
445
+ var documentNumberRedactionSettings = DocumentNumberRedactionSettings()
446
+
447
+ if let prefixDigitsVisible = documentNumberRedactionSettingsDict["prefixDigitsVisible"] as? Int {
448
+ documentNumberRedactionSettings.prefixDigitsVisible = UInt8(prefixDigitsVisible)
449
+ }
450
+
451
+ if let suffixDigitsVisible = documentNumberRedactionSettingsDict["suffixDigitsVisible"] as? Int {
452
+ documentNumberRedactionSettings.suffixDigitsVisible = UInt8(suffixDigitsVisible)
453
+ }
454
+
455
+ return documentNumberRedactionSettings
456
+ }
457
+
458
+
459
+ static func deserializeBlinkIdUxScanningSettings(_ scanningUxSettingsDict: Dictionary<String, Any>?) -> ScanningUXSettings {
460
+ guard let scanningUxSettingsDict = scanningUxSettingsDict,
461
+ !scanningUxSettingsDict.isEmpty else {
462
+ return ScanningUXSettings()
463
+ }
464
+
465
+ let preferredCameraRaw = scanningUxSettingsDict["preferredCamera"] as? String
466
+ return ScanningUXSettings(
467
+ showIntroductionAlert: scanningUxSettingsDict["showOnboardingDialog"] as? Bool ?? true,
468
+ showHelpButton: scanningUxSettingsDict["showHelpButton"] as? Bool ?? true,
469
+ preferredCameraPosition: deserializePreferredCameraPosition(preferredCameraRaw ?? "back"),
470
+ allowHapticFeedback: scanningUxSettingsDict["allowHapticFeedback"] as? Bool ?? true)
471
+ }
472
+
473
+ static func deserializePreferredCameraPosition(_ value: String) -> Camera.CameraPosition {
474
+ switch value {
475
+ case "front":
476
+ return Camera.CameraPosition.front
477
+ case "back":
478
+ return Camera.CameraPosition.back
479
+ default:
480
+ return Camera.CameraPosition.back
481
+ }
482
+ }
483
+
484
+ static func deseralizeScanningMode(_ value: String) -> ScanningMode {
485
+ switch value {
486
+ case "single":
487
+ return ScanningMode.single
488
+ case "automatic":
489
+ return ScanningMode.automatic
490
+ default:
491
+ return ScanningMode.automatic
492
+ }
493
+ }
494
+
495
+
496
+ static func deserializeDetailedFieldType(_ detailedFieldTypeDict: Dictionary<String, Any>?) -> DetailedFieldType? {
497
+ if let fieldType = detailedFieldTypeDict?["fieldType"] as? String,
498
+ let alphabetType = detailedFieldTypeDict?["alphabetType"] as? String,
499
+ let fieldTypeValue = FieldType.init(rawValue: fieldType),
500
+ let alphabetTypeValue = AlphabetType(rawValue: alphabetType) {
501
+ return DetailedFieldType(
502
+ fieldType: fieldTypeValue,
503
+ alphabetType: alphabetTypeValue)
504
+ }
505
+ return nil
506
+ }
507
+
508
+ static func deserializeRedactionSettingsResolver(
509
+ _ redactionResolverDict: Dictionary<String, Any>?,
510
+ _ classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo
511
+ ) -> RedactionSettings? {
512
+
513
+ guard let redactionResolverDict,
514
+ let documentRedactionList = redactionResolverDict["documentRedactionList"] as? [[String: Any]] else { return nil }
515
+
516
+ for redactionDict in documentRedactionList {
517
+ if shouldUseRedactionSettings(redactionDict, classInfo: classInfo) {
518
+ return deserializeRedactionSettings(redactionDict)
519
+ }
520
+ }
521
+
522
+ return nil
523
+ }
524
+
525
+ private static func shouldUseRedactionSettings(
526
+ _ redactionDict: [String: Any],
527
+ classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo
528
+ ) -> Bool {
529
+ if let documentFilters = redactionDict["documentFilter"] as? [[String: Any]] {
530
+ if documentFilters.isEmpty {
531
+ return true
532
+ }
533
+ return documentFilters.contains { filterDict in
534
+ matchClassFilter(filterDict, classInfo: classInfo)
535
+ }
536
+ }
537
+
538
+ if let documentFilter = redactionDict["documentFilter"] as? Dictionary<String, Any> {
539
+ return matchClassFilter(documentFilter, classInfo: classInfo)
540
+ }
541
+
542
+ return true
543
+ }
544
+
545
+ static func deserializeClassFilter(_ classFilterDictArr: Dictionary<String, Any>?, _ classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo) -> Bool {
546
+ guard let sanitizedDict = sanitizeDictionary(classFilterDictArr) else { return true}
547
+ var includeClass = false
548
+ var excludeClass = true
549
+
550
+ if let includedClasses = sanitizedDict["includeDocuments"] as? Array<Dictionary<String, Any>> {
551
+ for includedClass in includedClasses {
552
+ includeClass = includeClass || matchClassFilter(includedClass, classInfo: classInfo)
553
+ }
554
+ } else {
555
+ includeClass = true
556
+ }
557
+
558
+ if let excludedClasses = sanitizedDict["excludeDocuments"] as? Array<Dictionary<String, Any>> {
559
+ for excludedClass in excludedClasses {
560
+ excludeClass = excludeClass && !matchClassFilter(excludedClass, classInfo: classInfo)
561
+ }
562
+ }
563
+
564
+ return includeClass && excludeClass
565
+ }
566
+
567
+ static func matchClassFilter(_ filteredClass: Dictionary<String, Any>, classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo) -> Bool {
568
+ let country = filteredClass["country"] as? String
569
+ let type = filteredClass["documentType"] as? String
570
+ let region = filteredClass["region"] as? String
571
+
572
+ return (country == nil || classInfo.country?.countryId == parseCountryId(country!)) &&
573
+ (type == nil || classInfo.documentType?.documentTypeId == parseDocumentTypeId(type!)) &&
574
+ (region == nil || classInfo.region?.regionId == parseRegionId(region!))
575
+ }
576
+
577
+ private static func parseCountryId(_ value: String) -> CountryID? {
578
+ switch value {
579
+ case "schengenArea":
580
+ return .schengen_area
581
+ default:
582
+ return CountryID(rawValue: value)
583
+ }
584
+ }
585
+
586
+ private static func parseRegionId(_ value: String) -> RegionID? {
587
+ RegionID(rawValue: value)
588
+ }
589
+
590
+ private static func parseDocumentTypeId(_ value: String) -> DocumentTypeID? {
591
+ DocumentTypeID(rawValue: value)
592
+ }
593
+
594
+ static func sanitizeDictionary(_ dictionary: Dictionary<String, Any>?) -> Dictionary<String, Any>? {
595
+ if let dictionary = dictionary {
596
+ var sanitized = dictionary
597
+ for (key, value) in dictionary {
598
+ if value is NSNull {
599
+ sanitized[key] = nil
600
+ }
601
+ }
602
+ return sanitized
603
+ }
604
+ return dictionary
605
+ }
606
+
607
+ static func deserializeBase64Image(_ base64Image: String?) -> UIImage? {
608
+ if let base64Image = base64Image,
609
+ let data = Data(base64Encoded: base64Image, options: .ignoreUnknownCharacters) {
610
+ return UIImage(data: data)
611
+ }
612
+ return nil
613
+ }
614
+ }