@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
@@ -4,738 +4,887 @@ import android.graphics.Bitmap
4
4
  import com.microblink.blinkid.core.result.AddressDetailedInfo
5
5
  import com.microblink.blinkid.core.result.AlphabetType
6
6
  import com.microblink.blinkid.core.result.DataMatchFieldState
7
+ import com.microblink.blinkid.core.result.DataMatchFieldType
7
8
  import com.microblink.blinkid.core.result.DataMatchResult
8
- import com.microblink.blinkid.core.result.DateResult
9
+ import com.microblink.blinkid.core.result.DataMatchState
9
10
  import com.microblink.blinkid.core.result.DependentInfo
10
11
  import com.microblink.blinkid.core.result.DriverLicenseDetailedInfo
11
- import com.microblink.blinkid.core.result.Rectangle
12
12
  import com.microblink.blinkid.core.result.SingleSideScanningResult
13
13
  import com.microblink.blinkid.core.result.StringResult
14
14
  import com.microblink.blinkid.core.result.VehicleClassInfo
15
15
  import com.microblink.blinkid.core.result.barcode.BarcodeData
16
16
  import com.microblink.blinkid.core.result.barcode.BarcodeResult
17
+ import com.microblink.blinkid.core.result.barcode.BarcodeType
17
18
  import com.microblink.blinkid.core.result.classinfo.DocumentClassInfo
18
- import com.microblink.blinkid.core.result.image.DetailedCroppedImageResult
19
+ import com.microblink.blinkid.core.result.mrz.DocumentType
19
20
  import com.microblink.blinkid.core.result.mrz.MrzResult
20
21
  import com.microblink.blinkid.core.result.viz.VizResult
21
22
  import com.microblink.blinkid.core.session.BlinkIdScanningResult
22
23
  import org.json.JSONObject
23
24
  import java.io.ByteArrayOutputStream
24
25
  import android.util.Base64
25
- import com.microblink.blinkid.core.result.ScanningSide
26
+ import com.microblink.blinkid.core.result.ParentInfo
26
27
  import com.microblink.blinkid.core.result.barcode.BarcodeElement
28
+ import com.microblink.blinkid.core.result.DateResult
29
+ import com.microblink.blinkid.core.result.DetailedCroppedImageResult
30
+ import com.microblink.blinkid.core.result.Rectangle
31
+ import com.microblink.blinkid.core.result.ScanningSide
27
32
  import org.json.JSONArray
28
33
 
29
34
  object BlinkIdSerializationUtilities {
30
- fun serializeBlinkIdScanningResult(scanningResult: BlinkIdScanningResult?): String {
31
- val scanningResultJson: JSONObject = JSONObject()
32
-
33
- scanningResult?.mode.let {
34
- scanningResultJson.put("recognitionMode", it?.name)
35
- }
36
- scanningResult?.documentClassInfo?.let {
37
- scanningResultJson.put("documentClassInfo", serializeDocumentClassInfo(it))
38
- }
39
- scanningResult?.dataMatchResult?.let {
40
- scanningResultJson.put("dataMatchResult", serializeDataMatchResult(it))
41
- }
42
- scanningResult?.firstName?.let {
43
- scanningResultJson.put("firstName", serializeStringResult(it))
44
- }
45
- scanningResult?.lastName?.let {
46
- scanningResultJson.put("lastName", serializeStringResult(it))
47
- }
48
- scanningResult?.fullName?.let {
49
- scanningResultJson.put("fullName", serializeStringResult(it))
50
- }
51
- scanningResult?.additionalNameInformation?.let {
52
- scanningResultJson.put("additionalNameInformation", serializeStringResult(it))
53
- }
54
- scanningResult?.localizedName?.let {
55
- scanningResultJson.put("localizedName", serializeStringResult(it))
56
- }
57
- scanningResult?.fathersName?.let {
58
- scanningResultJson.put("fathersName", serializeStringResult(it))
59
- }
60
- scanningResult?.mothersName?.let {
61
- scanningResultJson.put("mothersName", serializeStringResult(it))
62
- }
63
- scanningResult?.address?.let {
64
- scanningResultJson.put("address", serializeStringResult(it))
65
- }
66
- scanningResult?.additionalAddressInformation?.let {
67
- scanningResultJson.put("additionalAddressInformation", serializeStringResult(it))
68
- }
69
- scanningResult?.additionalOptionalAddressInformation?.let {
70
- scanningResultJson.put("additionalOptionalAddressInformation", serializeStringResult(it))
71
- }
72
- scanningResult?.placeOfBirth?.let {
73
- scanningResultJson.put("placeOfBirth", serializeStringResult(it))
74
- }
75
- scanningResult?.nationality?.let {
76
- scanningResultJson.put("nationality", serializeStringResult(it))
77
- }
78
- scanningResult?.race?.let {
79
- scanningResultJson.put("race", serializeStringResult(it))
80
- }
81
- scanningResult?.religion?.let {
82
- scanningResultJson.put("religion", serializeStringResult(it))
83
- }
84
- scanningResult?.profession?.let {
85
- scanningResultJson.put("profession", serializeStringResult(it))
86
- }
87
- scanningResult?.maritalStatus?.let {
88
- scanningResultJson.put("maritalStatus", serializeStringResult(it))
89
- }
90
- scanningResult?.residentialStatus?.let {
91
- scanningResultJson.put("residentialStatus", serializeStringResult(it))
92
- }
93
- scanningResult?.employer?.let {
94
- scanningResultJson.put("employer", serializeStringResult(it))
95
- }
96
- scanningResult?.sex?.let {
97
- scanningResultJson.put("sex", serializeStringResult(it))
98
- }
99
- scanningResult?.sponsor?.let {
100
- scanningResultJson.put("sponsor", serializeStringResult(it))
101
- }
102
- scanningResult?.bloodType?.let {
103
- scanningResultJson.put("bloodType", serializeStringResult(it))
104
- }
105
- scanningResult?.documentNumber?.let {
106
- scanningResultJson.put("documentNumber", serializeStringResult(it))
107
- }
108
- scanningResult?.personalIdNumber?.let {
109
- scanningResultJson.put("personalIdNumber", serializeStringResult(it))
110
- }
111
- scanningResult?.documentAdditionalNumber?.let {
112
- scanningResultJson.put("documentAdditionalNumber", serializeStringResult(it))
113
- }
114
- scanningResult?.documentOptionalAdditionalNumber?.let {
115
- scanningResultJson.put("documentOptionalAdditionalNumber", serializeStringResult(it))
116
- }
117
- scanningResult?.additionalPersonalIdNumber?.let {
118
- scanningResultJson.put("additionalPersonalIdNumber", serializeStringResult(it))
119
- }
120
- scanningResult?.issuingAuthority?.let {
121
- scanningResultJson.put("issuingAuthority", serializeStringResult(it))
122
- }
123
- scanningResult?.documentSubtype?.let {
124
- scanningResultJson.put("documentSubtype", serializeStringResult(it))
125
- }
126
- scanningResult?.remarks?.let {
127
- scanningResultJson.put("remarks", serializeStringResult(it))
128
- }
129
- scanningResult?.residencePermitType?.let {
130
- scanningResultJson.put("residencePermitType", serializeStringResult(it))
131
- }
132
- scanningResult?.manufacturingYear?.let {
133
- scanningResultJson.put("manufacturingYear", serializeStringResult(it))
134
- }
135
- scanningResult?.vehicleType?.let {
136
- scanningResultJson.put("vehicleType", serializeStringResult(it))
137
- }
138
- scanningResult?.vehicleOwner?.let {
139
- scanningResultJson.put("vehicleOwner", serializeStringResult(it))
140
- }
141
- scanningResult?.eligibilityCategory?.let {
142
- scanningResultJson.put("eligibilityCategory", serializeStringResult(it))
143
- }
144
- scanningResult?.specificDocumentValidity?.let {
145
- scanningResultJson.put("specificDocumentValidity", serializeStringResult(it))
146
- }
147
- scanningResult?.visaType?.let {
148
- scanningResultJson.put("visaType", serializeStringResult(it))
149
- }
150
- scanningResult?.countryCode?.let {
151
- scanningResultJson.put("countryCode", serializeStringResult(it))
152
- }
153
- scanningResult?.certificateNumber?.let {
154
- scanningResultJson.put("certificateNumber", serializeStringResult(it))
155
- }
156
- scanningResult?.nationalInsuranceNumber?.let {
157
- scanningResultJson.put("nationalInsuranceNumber", serializeStringResult(it))
158
- }
159
- scanningResult?.dateOfBirth?.let {
160
- scanningResultJson.put("dateOfBirth", serializeDateResult(it))
161
- }
162
- scanningResult?.dateOfIssue?.let {
163
- scanningResultJson.put("dateOfIssue", serializeDateResult(it))
164
- }
165
- scanningResult?.dateOfExpiry?.let {
166
- scanningResultJson.put("dateOfExpiry", serializeDateResult(it))
167
- }
168
- scanningResult?.dateOfEntry?.let {
169
- scanningResultJson.put("dateOfEntry", serializeDateResult(it))
170
- }
171
- scanningResult?.localityCode?.let {
172
- scanningResultJson.put("localityCode", serializeStringResult(it))
173
- }
174
- scanningResult?.maidenName?.let {
175
- scanningResultJson.put("maidenName", serializeStringResult(it))
176
- }
177
- scanningResult?.municipalityCode?.let {
178
- scanningResultJson.put("municipalityCode", serializeStringResult(it))
179
- }
180
- scanningResult?.municipalityOfRegistration?.let {
181
- scanningResultJson.put("municipalityOfRegistration", serializeStringResult(it))
182
- }
183
- scanningResult?.pollingStationCode?.let {
184
- scanningResultJson.put("pollingStationCode", serializeStringResult(it))
185
- }
186
- scanningResult?.registrationCenterCode?.let {
187
- scanningResultJson.put("registrationCenterCode", serializeStringResult(it))
188
- }
189
- scanningResult?.sectionCode?.let {
190
- scanningResultJson.put("sectionCode", serializeStringResult(it))
191
- }
192
- scanningResult?.stateCode?.let {
193
- scanningResultJson.put("stateCode", serializeStringResult(it))
194
- }
195
- scanningResult?.stateName?.let {
196
- scanningResultJson.put("stateName", serializeStringResult(it))
197
- }
198
- scanningResult?.dateOfExpiryPermanent?.let {
199
- scanningResultJson.put("dateOfExpiryPermanent", it)
200
- }
201
- scanningResult?.driverLicenseDetailedInfo?.let {
202
- scanningResultJson.put("driverLicenseDetailedInfo", serializeDriverLicenseDetailedInfo(it))
203
- }
204
- scanningResult?.dependentsInfo?.let {
205
- scanningResultJson.put(
206
- "dependentsInfo",
207
- JSONArray(it.map { dependentInfo -> serializeDependentInfo(dependentInfo) })
208
- )
209
- }
210
- scanningResult?.subResults?.let {
211
- scanningResultJson.put(
212
- "subResults",
213
- JSONArray(it.map { subResult -> serializeSubResult(subResult) })
214
- )
215
- }
216
- scanningResult?.inputImage(ScanningSide.First)?.let {
217
- scanningResultJson.put("firstInputImage", encodeBase64Image(it.bitmap))
218
- }
219
- scanningResult?.inputImage(ScanningSide.Second)?.let {
220
- scanningResultJson.put("secondInputImage", encodeBase64Image(it.bitmap))
221
- }
222
- scanningResult?.barcodeInputImage()?.let {
223
- scanningResultJson.put("barcodeInputImage", encodeBase64Image(it.bitmap))
224
- }
225
- scanningResult?.documentImage(ScanningSide.First)?.let {
226
- scanningResultJson.put("firstDocumentImage", encodeBase64Image(it.bitmap))
227
- }
228
- scanningResult?.documentImage(ScanningSide.Second)?.let {
229
- scanningResultJson.put("secondDocumentImage", encodeBase64Image(it.bitmap))
230
- }
231
- scanningResult?.faceImage()?.let {
232
- scanningResultJson.put("faceImage", serializeDetailedCroppedImageResult(it))
233
- }
234
- scanningResult?.signatureImage()?.let {
235
- scanningResultJson.put("signatureImage", serializeDetailedCroppedImageResult(it))
236
- }
237
-
238
- return scanningResultJson.toString()
239
- }
240
-
241
- private fun <T> serializeDateResult(dateResult: DateResult<T>?): JSONObject {
242
- val dateResultJson = JSONObject()
243
-
244
- dateResultJson.put("date", serializeSimpleDateResult(dateResult));
245
- dateResultJson.put("filledByDomainKnowledge", dateResult?.filledByDomainKnowledge)
246
- dateResultJson.put("successfullyParsed", dateResult?.successfullyParsed)
247
- dateResultJson.put("originalString", serializeStringType(dateResult?.originalString))
248
- return dateResultJson
249
- }
250
-
251
- private fun <T> serializeSimpleDateResult(dateResult: DateResult<T>?): JSONObject {
252
- val simpleDateResultJson = JSONObject()
253
- dateResult?.day?.let {
254
- simpleDateResultJson.put("day", it)
255
- }
256
- dateResult?.month?.let {
257
- simpleDateResultJson.put("month", it)
258
- }
259
- dateResult?.year?.let {
260
- simpleDateResultJson.put("year", it)
261
- }
262
- return simpleDateResultJson;
263
- }
264
-
265
- private fun serializeDocumentClassInfo(documentClassInfo: DocumentClassInfo): JSONObject {
266
- val documentClassInfoJson = JSONObject()
267
- documentClassInfo.country?.name?.let {
268
- documentClassInfoJson.put("country", it.replaceFirstChar { char -> char.lowercase() })
269
- }
270
- documentClassInfo.region?.name?.let {
271
- documentClassInfoJson.put("region", it.replaceFirstChar { char -> char.lowercase() })
272
- }
273
- documentClassInfo.type?.name?.let {
274
- documentClassInfoJson.put("documentType", it.replaceFirstChar { char -> char.lowercase() })
275
- }
276
- documentClassInfo.countryName?.let {
277
- documentClassInfoJson.put("countryName", it)
278
- }
279
- documentClassInfo.isoAlpha2CountryCode?.let {
280
- documentClassInfoJson.put("isoAlpha2CountryCode", it)
281
- }
282
- documentClassInfo.isoAlpha3CountryCode?.let {
283
- documentClassInfoJson.put("isoAlpha3CountryCode", it)
284
- }
285
- return documentClassInfoJson
286
- }
287
-
288
- private fun serializeDataMatchResult(dataMatchResult: DataMatchResult): JSONObject {
289
- val dataMatchResultJson = JSONObject()
290
-
291
- val statesArray = JSONArray()
292
- dataMatchResult.statePerField.forEach {
293
- statesArray.put(serializeDataMatchField(it))
294
- }
295
-
296
- dataMatchResultJson.put("states", statesArray)
297
- dataMatchResultJson.put("overallState", dataMatchResult.overallState.ordinal)
298
-
299
- return dataMatchResultJson
300
- }
301
-
302
- private fun serializeDataMatchField(dataMatchField: DataMatchFieldState): JSONObject {
303
- val dataMatchFieldJson = JSONObject()
304
- dataMatchFieldJson.put("field", dataMatchField.fieldType.ordinal)
305
- dataMatchFieldJson.put("state", dataMatchField.state.ordinal)
306
- return dataMatchFieldJson
307
- }
308
-
309
- private fun serializeStringResult(stringResult: StringResult): JSONObject {
310
- val stringResultJson = JSONObject()
311
- stringResultJson.put("value", stringResult.value(AlphabetType.Latin))
312
- stringResultJson.put("latin", stringResult.value(AlphabetType.Latin))
313
- stringResultJson.put("arabic", stringResult.value(AlphabetType.Arabic))
314
- stringResultJson.put("cyrillic", stringResult.value(AlphabetType.Cyrillic))
315
- stringResultJson.put("greek", stringResult.value(AlphabetType.Greek))
316
-
317
- val locationJson = JSONObject()
318
- stringResult.location(AlphabetType.Latin)?.let {
319
- locationJson.put("latin", serializeLocation(it))
320
- }
321
- stringResult.location(AlphabetType.Arabic)?.let {
322
- locationJson.put("arabic", serializeLocation(it))
323
- }
324
- stringResult.location(AlphabetType.Cyrillic)?.let {
325
- locationJson.put("cyrillic", serializeLocation(it))
326
- }
327
- stringResult.location(AlphabetType.Greek)?.let {
328
- locationJson.put("greek", serializeLocation(it))
329
- }
330
- stringResultJson.put("location", locationJson)
331
-
332
- val sideJson = JSONObject()
333
- stringResult.side(AlphabetType.Latin)?.let {
334
- sideJson.put("latin", it.ordinal)
335
- }
336
- stringResult.side(AlphabetType.Arabic)?.let {
337
- sideJson.put("arabic", it.ordinal)
338
- }
339
- stringResult.side(AlphabetType.Cyrillic)?.let {
340
- sideJson.put("cyrillic", it.ordinal)
341
- }
342
- stringResult.side(AlphabetType.Greek)?.let {
343
- sideJson.put("greek", it.ordinal)
344
- }
345
- stringResultJson.put("side", sideJson)
346
-
347
- return stringResultJson
348
- }
349
-
350
- private fun serializeLocation(rectangle: Rectangle): JSONObject {
351
- val locationJson = JSONObject()
352
- locationJson.put("x", rectangle.x.toDouble())
353
- locationJson.put("y", rectangle.y.toDouble())
354
- locationJson.put("width", rectangle.width.toDouble())
355
- locationJson.put("height", rectangle.height.toDouble())
356
- return locationJson
357
- }
358
-
359
- private fun <T> serializeDriverLicenseDetailedInfo(
360
- driverLicenseDetailedInfo: DriverLicenseDetailedInfo<T>?
361
- ): JSONObject {
362
- val json = JSONObject()
363
-
364
- json.put("conditions", serializeStringType(driverLicenseDetailedInfo?.conditions))
365
- json.put("endorsements", serializeStringType(driverLicenseDetailedInfo?.endorsements))
366
- json.put("restrictions", serializeStringType(driverLicenseDetailedInfo?.restrictions))
367
- json.put("vehicleClass", serializeStringType(driverLicenseDetailedInfo?.vehicleClass))
368
-
369
- driverLicenseDetailedInfo?.vehicleClassesInfo?.let { vehicleClasses ->
370
- val array = JSONArray()
371
- for (info in vehicleClasses) {
372
- array.put(serializeVehicleClassInfo(info))
373
- }
374
- json.put("vehicleClassesInfo", array)
375
- }
376
-
377
- return json
378
- }
379
-
380
- private fun <T> serializeVehicleClassInfo(vehicleClassInfo: VehicleClassInfo<T>): JSONObject {
381
- val vehicleClassInfoJson = JSONObject()
382
- vehicleClassInfoJson.put("effectiveDate", serializeDateResult(vehicleClassInfo.effectiveDate))
383
- vehicleClassInfoJson.put("expiryDate", serializeDateResult(vehicleClassInfo.expiryDate))
384
- vehicleClassInfoJson.put("licenceType", serializeStringType(vehicleClassInfo.licenceType))
385
- vehicleClassInfoJson.put("vehicleClass", serializeStringType(vehicleClassInfo.vehicleClass))
386
- return vehicleClassInfoJson
387
- }
388
-
389
- private fun serializeDependentInfo(dependentInfo: DependentInfo): JSONObject {
390
- val dependentInfoJson = JSONObject()
391
-
392
- dependentInfo.fullName?.let {
393
- dependentInfoJson.put("fullName", serializeStringResult(it))
394
- }
395
- dependentInfo.sex?.let {
396
- dependentInfoJson.put("sex", serializeStringResult(it))
397
- }
398
- dependentInfo.dateOfBirth?.let {
399
- dependentInfoJson.put("dateOfBirth", serializeDateResult(it))
400
- }
401
-
402
- dependentInfo.documentNumber?.let {
403
- dependentInfoJson.put("documentNumber", serializeStringResult(it))
404
- }
405
-
406
- return dependentInfoJson
407
- }
408
-
409
- private fun serializeSubResult(subResult: SingleSideScanningResult): JSONObject {
410
- val subResultJson = JSONObject()
411
- subResultJson.put("barcode", serializeBarcodeResult(subResult.barcode))
412
- subResultJson.put("barcodeInputImage", encodeBase64Image(subResult.barcodeInputImage?.bitmap))
413
- subResultJson.put("documentImage", encodeBase64Image(subResult.documentImage?.bitmap))
414
- subResultJson.put("faceImage", serializeDetailedCroppedImageResult(subResult.faceImage))
415
- subResultJson.put("inputImage", encodeBase64Image(subResult.inputImage?.bitmap))
416
- subResultJson.put("mrz", serializeMrzResult(subResult.mrz))
417
- subResultJson.put(
418
- "signatureImage",
419
- serializeDetailedCroppedImageResult(subResult.signatureImage)
420
- )
421
- subResultJson.put("viz", serializeVizResult(subResult.viz))
422
- return subResultJson
423
- }
424
-
425
- private fun serializeBarcodeResult(barcodeResult: BarcodeResult?): JSONObject {
426
- val barcodeResultJson = JSONObject()
427
- barcodeResultJson.put("additionalNameInformation", barcodeResult?.additionalNameInformation)
428
- barcodeResultJson.put("address", barcodeResult?.address)
429
- barcodeResultJson.put(
430
- "addressDetailedInfo",
431
- serializeAddressDetailedInfo(barcodeResult?.addressDetailedInfo)
432
- )
433
- barcodeResultJson.put("barcodeData", serializeBarcodeData(barcodeResult?.barcodeData))
434
- barcodeResultJson.put("dateOfBirth", serializeDateResult(barcodeResult?.dateOfBirth))
435
- barcodeResultJson.put("dateOfExpiry", serializeDateResult(barcodeResult?.dateOfExpiry))
436
- barcodeResultJson.put("dateOfIssue", serializeDateResult(barcodeResult?.dateOfIssue))
437
- barcodeResultJson.put("documentAdditionalNumber", barcodeResult?.documentAdditionalNumber)
438
- barcodeResultJson.put("documentNumber", barcodeResult?.documentNumber)
439
- barcodeResultJson.put(
440
- "driverLicenseDetailedInfo",
441
- serializeDriverLicenseDetailedInfo(barcodeResult?.driverLicenseDetailedInfo)
442
- )
443
- barcodeResultJson.put("employer", barcodeResult?.employer)
444
- barcodeResultJson.put("firstName", barcodeResult?.firstName)
445
- barcodeResultJson.put("fullName", barcodeResult?.fullName)
446
- barcodeResultJson.put("issuingAuthority", barcodeResult?.issuingAuthority)
447
- barcodeResultJson.put("lastName", barcodeResult?.lastName)
448
- barcodeResultJson.put("maritalStatus", barcodeResult?.maritalStatus)
449
- barcodeResultJson.put("middleName", barcodeResult?.middleName)
450
- barcodeResultJson.put("nationality", barcodeResult?.nationality)
451
- barcodeResultJson.put("personalIdNumber", barcodeResult?.personalIdNumber)
452
- barcodeResultJson.put("placeOfBirth", barcodeResult?.placeOfBirth)
453
- barcodeResultJson.put("profession", barcodeResult?.profession)
454
- barcodeResultJson.put("race", barcodeResult?.race)
455
- barcodeResultJson.put("religion", barcodeResult?.religion)
456
- barcodeResultJson.put("residentialStatus", barcodeResult?.residentialStatus)
457
- barcodeResultJson.put("sex", barcodeResult?.sex)
458
- barcodeResultJson.put("parsed", barcodeResult?.parsed)
459
- barcodeResultJson.put(
460
- "extendedElements",
461
- serializeBarcodeExtendedElements(barcodeResult?.extendedElements?.barcodeElements)
462
- )
463
-
464
- return barcodeResultJson
465
- }
466
-
467
- private fun serializeAddressDetailedInfo(addressDetailedInfo: AddressDetailedInfo?): JSONObject {
468
- val addressDetailedInfoJson = JSONObject()
469
- addressDetailedInfoJson.put("city", addressDetailedInfo?.city)
470
- addressDetailedInfoJson.put("postalCode", addressDetailedInfo?.postalCode)
471
- addressDetailedInfoJson.put("jurisdiction", addressDetailedInfo?.jurisdiction)
472
- addressDetailedInfoJson.put("street", addressDetailedInfo?.street)
473
-
474
- return addressDetailedInfoJson
475
- }
476
-
477
- private fun serializeBarcodeData(barcodeData: BarcodeData?): JSONObject {
478
- val barcodeDataJson = JSONObject()
479
- barcodeDataJson.put("barcodeType", barcodeData?.barcodeType?.ordinal)
480
- barcodeDataJson.put("rawData", barcodeData?.rawData.toString())
481
- barcodeDataJson.put("stringData", barcodeData?.stringData)
482
- barcodeDataJson.put("uncertain", barcodeData?.uncertain)
483
-
484
- return barcodeDataJson
485
- }
486
-
487
- private fun serializeMrzResult(mrzResult: MrzResult?): JSONObject {
488
- val mrzResultJson = JSONObject()
489
- mrzResultJson.put("dateOfBirth", serializeDateResult(mrzResult?.dateOfBirth))
490
- mrzResultJson.put("dateOfExpiry", serializeDateResult(mrzResult?.dateOfExpiry))
491
- mrzResultJson.put("documentCode", mrzResult?.documentCode)
492
- mrzResultJson.put("documentNumber", mrzResult?.documentNumber)
493
- mrzResultJson.put("documentType", mrzResult?.documentType?.ordinal)
494
- mrzResultJson.put("gender", mrzResult?.gender)
495
- mrzResultJson.put("issuer", mrzResult?.issuer)
496
- mrzResultJson.put("issuerName", mrzResult?.issuerName)
497
- mrzResultJson.put("nationality", mrzResult?.nationality)
498
- mrzResultJson.put("nationalityName", mrzResult?.nationalityName)
499
- mrzResultJson.put("opt1", mrzResult?.opt1)
500
- mrzResultJson.put("opt2", mrzResult?.opt2)
501
- mrzResultJson.put("primaryID", mrzResult?.primaryID)
502
- mrzResultJson.put("rawMRZString", mrzResult?.rawMRZString)
503
- mrzResultJson.put("sanitizedDocumentCode", mrzResult?.sanitizedDocumentCode)
504
- mrzResultJson.put("sanitizedDocumentNumber", mrzResult?.sanitizedDocumentNumber)
505
- mrzResultJson.put("sanitizedIssuer", mrzResult?.sanitizedIssuer)
506
- mrzResultJson.put("sanitizedNationality", mrzResult?.sanitizedNationality)
507
- mrzResultJson.put("sanitizedOpt1", mrzResult?.sanitizedOpt1)
508
- mrzResultJson.put("sanitizedOpt2", mrzResult?.sanitizedOpt2)
509
- mrzResultJson.put("secondaryID", mrzResult?.secondaryID)
510
- mrzResultJson.put("verified", mrzResult?.verified)
511
-
512
- return mrzResultJson
513
- }
514
-
515
- private fun serializeVizResult(vizResult: VizResult?): JSONObject {
516
- val vizResultJson = JSONObject()
517
-
518
- vizResult?.additionalAddressInformation?.let {
519
- vizResultJson.put("additionalAddressInformation", serializeStringResult(it))
520
- }
521
- vizResult?.additionalNameInformation?.let {
522
- vizResultJson.put("additionalNameInformation", serializeStringResult(it))
523
- }
524
- vizResult?.additionalOptionalAddressInformation?.let {
525
- vizResultJson.put("additionalOptionalAddressInformation", serializeStringResult(it))
526
- }
527
- vizResult?.additionalPersonalIdNumber?.let {
528
- vizResultJson.put("additionalPersonalIdNumber", serializeStringResult(it))
529
- }
530
- vizResult?.address?.let {
531
- vizResultJson.put("address", serializeStringResult(it))
532
- }
533
- vizResult?.bloodType?.let {
534
- vizResultJson.put("bloodType", serializeStringResult(it))
535
- }
536
- vizResult?.dateOfBirth?.let {
537
- vizResultJson.put("dateOfBirth", serializeDateResult(it))
538
- }
539
- vizResult?.dateOfExpiry?.let {
540
- vizResultJson.put("dateOfExpiry", serializeDateResult(it))
541
- }
542
- vizResult?.dateOfIssue?.let {
543
- vizResultJson.put("dateOfIssue", serializeDateResult(it))
544
- }
545
- vizResult?.dateOfEntry?.let {
546
- vizResultJson.put("dateOfEntry", serializeDateResult(it))
547
- }
548
- vizResult?.localityCode?.let {
549
- vizResultJson.put("localityCode", serializeStringResult(it))
550
- }
551
- vizResult?.maidenName?.let {
552
- vizResultJson.put("maidenName", serializeStringResult(it))
553
- }
554
- vizResult?.municipalityCode?.let {
555
- vizResultJson.put("municipalityCode", serializeStringResult(it))
556
- }
557
- vizResult?.municipalityOfRegistration?.let {
558
- vizResultJson.put("municipalityOfRegistration", serializeStringResult(it))
559
- }
560
- vizResult?.pollingStationCode?.let {
561
- vizResultJson.put("pollingStationCode", serializeStringResult(it))
562
- }
563
- vizResult?.registrationCenterCode?.let {
564
- vizResultJson.put("registrationCenterCode", serializeStringResult(it))
565
- }
566
- vizResult?.sectionCode?.let {
567
- vizResultJson.put("sectionCode", serializeStringResult(it))
568
- }
569
- vizResult?.stateCode?.let {
570
- vizResultJson.put("stateCode", serializeStringResult(it))
571
- }
572
- vizResult?.stateName?.let {
573
- vizResultJson.put("stateName", serializeStringResult(it))
574
- }
575
- vizResult?.dateOfExpiryPermanent?.let {
576
- vizResultJson.put("dateOfExpiryPermanent", it)
577
- }
578
- vizResult?.documentAdditionalNumber?.let {
579
- vizResultJson.put("documentAdditionalNumber", serializeStringResult(it))
580
- }
581
- vizResult?.dependentsInfo.let {
582
- vizResultJson.put(
583
- "dependentsInfo",
584
- JSONArray(it?.map { dependentInfo -> serializeDependentInfo(dependentInfo) })
585
- )
586
- }
587
- vizResult?.documentNumber?.let {
588
- vizResultJson.put("documentNumber", serializeStringResult(it))
589
- }
590
- vizResult?.documentOptionalAdditionalNumber?.let {
591
- vizResultJson.put("documentOptionalAdditionalNumber", serializeStringResult(it))
592
- }
593
- vizResult?.documentSubtype?.let {
594
- vizResultJson.put("documentSubtype", serializeStringResult(it))
595
- }
596
- vizResult?.driverLicenseDetailedInfo?.let {
597
- vizResultJson.put("driverLicenseDetailedInfo", serializeDriverLicenseDetailedInfo(it))
598
- }
599
- vizResult?.eligibilityCategory?.let {
600
- vizResultJson.put("eligibilityCategory", serializeStringResult(it))
601
- }
602
- vizResult?.employer?.let {
603
- vizResultJson.put("employer", serializeStringResult(it))
604
- }
605
- vizResult?.fathersName?.let {
606
- vizResultJson.put("fathersName", serializeStringResult(it))
607
- }
608
- vizResult?.firstName?.let {
609
- vizResultJson.put("firstName", serializeStringResult(it))
610
- }
611
- vizResult?.fullName?.let {
612
- vizResultJson.put("fullName", serializeStringResult(it))
613
- }
614
- vizResult?.issuingAuthority?.let {
615
- vizResultJson.put("issuingAuthority", serializeStringResult(it))
616
- }
617
- vizResult?.lastName?.let {
618
- vizResultJson.put("lastName", serializeStringResult(it))
619
- }
620
- vizResult?.localizedName?.let {
621
- vizResultJson.put("localizedName", serializeStringResult(it))
622
- }
623
- vizResult?.profession?.let {
624
- vizResultJson.put("profession", serializeStringResult(it))
625
- }
626
- vizResult?.placeOfBirth?.let {
627
- vizResultJson.put("placeOfBirth", serializeStringResult(it))
628
- }
629
- vizResult?.personalIdNumber?.let {
630
- vizResultJson.put("personalIdNumber", serializeStringResult(it))
631
- }
632
- vizResult?.nationality?.let {
633
- vizResultJson.put("nationality", serializeStringResult(it))
634
- }
635
- vizResult?.mothersName?.let {
636
- vizResultJson.put("mothersName", serializeStringResult(it))
637
- }
638
- vizResult?.maritalStatus?.let {
639
- vizResultJson.put("maritalStatus", serializeStringResult(it))
640
- }
641
- vizResult?.manufacturingYear?.let {
642
- vizResultJson.put("manufacturingYear", serializeStringResult(it))
643
- }
644
- vizResult?.race?.let {
645
- vizResultJson.put("race", serializeStringResult(it))
646
- }
647
- vizResult?.religion?.let {
648
- vizResultJson.put("religion", serializeStringResult(it))
649
- }
650
- vizResult?.remarks?.let {
651
- vizResultJson.put("remarks", serializeStringResult(it))
652
- }
653
- vizResult?.residencePermitType?.let {
654
- vizResultJson.put("residencePermitType", serializeStringResult(it))
655
- }
656
- vizResult?.residentialStatus?.let {
657
- vizResultJson.put("residentialStatus", serializeStringResult(it))
658
- }
659
- vizResult?.sex?.let {
660
- vizResultJson.put("sex", serializeStringResult(it))
661
- }
662
- vizResult?.specificDocumentValidity?.let {
663
- vizResultJson.put("specificDocumentValidity", serializeStringResult(it))
664
- }
665
- vizResult?.sponsor?.let {
666
- vizResultJson.put("sponsor", serializeStringResult(it))
667
- }
668
- vizResult?.vehicleOwner?.let {
669
- vizResultJson.put("vehicleOwner", serializeStringResult(it))
670
- }
671
- vizResult?.vehicleType?.let {
672
- vizResultJson.put("vehicleType", serializeStringResult(it))
673
- }
674
- vizResult?.visaType?.let {
675
- vizResultJson.put("visaType", serializeStringResult(it))
676
- }
677
- vizResult?.countryCode?.let {
678
- vizResultJson.put("countryCode", serializeStringResult(it))
679
- }
680
- vizResult?.certificateNumber?.let {
681
- vizResultJson.put("certificateNumber", serializeStringResult(it))
682
- }
683
- vizResult?.nationalInsuranceNumber?.let {
684
- vizResultJson.put("nationalInsuranceNumber", serializeStringResult(it))
685
- }
686
- return vizResultJson
687
- }
688
-
689
- private fun serializeDetailedCroppedImageResult(detailedCroppedImageResult: DetailedCroppedImageResult?): JSONObject {
690
- val detailedCroppedImageResultJson = JSONObject()
691
-
692
- detailedCroppedImageResult?.bitmap?.let {
693
- encodeBase64Image(it)?.let { image ->
694
- detailedCroppedImageResultJson.put("image", image)
695
- }
696
- }
697
- detailedCroppedImageResult?.location?.let {
698
- detailedCroppedImageResultJson.put("location", serializeLocation(it))
699
- }
700
- detailedCroppedImageResult?.side?.let {
701
- detailedCroppedImageResultJson.put("side", it.ordinal)
702
-
35
+ fun serializeBlinkIdScanningResult(scanningResult: BlinkIdScanningResult?): String {
36
+ val scanningResultJson: JSONObject = JSONObject()
37
+
38
+ scanningResult?.documentClassInfo?.let {
39
+ scanningResultJson.put("documentClassInfo", serializeDocumentClassInfo(it))
40
+ }
41
+ scanningResult?.dataMatchResult?.let {
42
+ scanningResultJson.put("dataMatchResult", serializeDataMatchResult(it))
43
+ }
44
+ scanningResult?.firstName?.let {
45
+ scanningResultJson.put("firstName", serializeStringResult(it))
46
+ }
47
+ scanningResult?.lastName?.let {
48
+ scanningResultJson.put("lastName", serializeStringResult(it))
49
+ }
50
+ scanningResult?.fullName?.let {
51
+ scanningResultJson.put("fullName", serializeStringResult(it))
52
+ }
53
+ scanningResult?.additionalNameInformation?.let {
54
+ scanningResultJson.put("additionalNameInformation", serializeStringResult(it))
55
+ }
56
+ scanningResult?.localizedName?.let {
57
+ scanningResultJson.put("localizedName", serializeStringResult(it))
58
+ }
59
+ scanningResult?.fathersName?.let {
60
+ scanningResultJson.put("fathersName", serializeStringResult(it))
61
+ }
62
+ scanningResult?.mothersName?.let {
63
+ scanningResultJson.put("mothersName", serializeStringResult(it))
64
+ }
65
+ scanningResult?.address?.let {
66
+ scanningResultJson.put("address", serializeStringResult(it))
67
+ }
68
+ scanningResult?.additionalAddressInformation?.let {
69
+ scanningResultJson.put("additionalAddressInformation", serializeStringResult(it))
70
+ }
71
+ scanningResult?.additionalOptionalAddressInformation?.let {
72
+ scanningResultJson.put(
73
+ "additionalOptionalAddressInformation",
74
+ serializeStringResult(it)
75
+ )
76
+ }
77
+ scanningResult?.placeOfBirth?.let {
78
+ scanningResultJson.put("placeOfBirth", serializeStringResult(it))
79
+ }
80
+ scanningResult?.nationality?.let {
81
+ scanningResultJson.put("nationality", serializeStringResult(it))
82
+ }
83
+ scanningResult?.race?.let {
84
+ scanningResultJson.put("race", serializeStringResult(it))
85
+ }
86
+ scanningResult?.religion?.let {
87
+ scanningResultJson.put("religion", serializeStringResult(it))
88
+ }
89
+ scanningResult?.profession?.let {
90
+ scanningResultJson.put("profession", serializeStringResult(it))
91
+ }
92
+ scanningResult?.maritalStatus?.let {
93
+ scanningResultJson.put("maritalStatus", serializeStringResult(it))
94
+ }
95
+ scanningResult?.residentialStatus?.let {
96
+ scanningResultJson.put("residentialStatus", serializeStringResult(it))
97
+ }
98
+ scanningResult?.employer?.let {
99
+ scanningResultJson.put("employer", serializeStringResult(it))
100
+ }
101
+ scanningResult?.sex?.let {
102
+ scanningResultJson.put("sex", serializeStringResult(it))
103
+ }
104
+ scanningResult?.sponsor?.let {
105
+ scanningResultJson.put("sponsor", serializeStringResult(it))
106
+ }
107
+ scanningResult?.bloodType?.let {
108
+ scanningResultJson.put("bloodType", serializeStringResult(it))
109
+ }
110
+ scanningResult?.documentNumber?.let {
111
+ scanningResultJson.put("documentNumber", serializeStringResult(it))
112
+ }
113
+ scanningResult?.cardAccessNumber?.let {
114
+ scanningResultJson.put("cardAccessNumber", serializeStringResult(it))
115
+ }
116
+ scanningResult?.personalIdNumber?.let {
117
+ scanningResultJson.put("personalIdNumber", serializeStringResult(it))
118
+ }
119
+ scanningResult?.documentAdditionalNumber?.let {
120
+ scanningResultJson.put("documentAdditionalNumber", serializeStringResult(it))
121
+ }
122
+ scanningResult?.documentOptionalAdditionalNumber?.let {
123
+ scanningResultJson.put("documentOptionalAdditionalNumber", serializeStringResult(it))
124
+ }
125
+ scanningResult?.additionalPersonalIdNumber?.let {
126
+ scanningResultJson.put("additionalPersonalIdNumber", serializeStringResult(it))
127
+ }
128
+ scanningResult?.issuingAuthority?.let {
129
+ scanningResultJson.put("issuingAuthority", serializeStringResult(it))
130
+ }
131
+ scanningResult?.documentSubtype?.let {
132
+ scanningResultJson.put("documentSubtype", serializeStringResult(it))
133
+ }
134
+ scanningResult?.remarks?.let {
135
+ scanningResultJson.put("remarks", serializeStringResult(it))
136
+ }
137
+ scanningResult?.residencePermitType?.let {
138
+ scanningResultJson.put("residencePermitType", serializeStringResult(it))
139
+ }
140
+ scanningResult?.manufacturingYear?.let {
141
+ scanningResultJson.put("manufacturingYear", serializeStringResult(it))
142
+ }
143
+ scanningResult?.vehicleType?.let {
144
+ scanningResultJson.put("vehicleType", serializeStringResult(it))
145
+ }
146
+ scanningResult?.vehicleOwner?.let {
147
+ scanningResultJson.put("vehicleOwner", serializeStringResult(it))
148
+ }
149
+ scanningResult?.eligibilityCategory?.let {
150
+ scanningResultJson.put("eligibilityCategory", serializeStringResult(it))
151
+ }
152
+ scanningResult?.specificDocumentValidity?.let {
153
+ scanningResultJson.put("specificDocumentValidity", serializeStringResult(it))
154
+ }
155
+ scanningResult?.visaType?.let {
156
+ scanningResultJson.put("visaType", serializeStringResult(it))
157
+ }
158
+ scanningResult?.countryCode?.let {
159
+ scanningResultJson.put("countryCode", serializeStringResult(it))
160
+ }
161
+ scanningResult?.certificateNumber?.let {
162
+ scanningResultJson.put("certificateNumber", serializeStringResult(it))
163
+ }
164
+ scanningResult?.nationalInsuranceNumber?.let {
165
+ scanningResultJson.put("nationalInsuranceNumber", serializeStringResult(it))
166
+ }
167
+ scanningResult?.dateOfBirth?.let {
168
+ scanningResultJson.put("dateOfBirth", serializeDateResult(it))
169
+ }
170
+ scanningResult?.dateOfIssue?.let {
171
+ scanningResultJson.put("dateOfIssue", serializeDateResult(it))
172
+ }
173
+ scanningResult?.dateOfExpiry?.let {
174
+ scanningResultJson.put("dateOfExpiry", serializeDateResult(it))
175
+ }
176
+ scanningResult?.dateOfEntry?.let {
177
+ scanningResultJson.put("dateOfEntry", serializeDateResult(it))
178
+ }
179
+ scanningResult?.localityCode?.let {
180
+ scanningResultJson.put("localityCode", serializeStringResult(it))
181
+ }
182
+ scanningResult?.maidenName?.let {
183
+ scanningResultJson.put("maidenName", serializeStringResult(it))
184
+ }
185
+ scanningResult?.municipalityCode?.let {
186
+ scanningResultJson.put("municipalityCode", serializeStringResult(it))
187
+ }
188
+ scanningResult?.municipalityOfRegistration?.let {
189
+ scanningResultJson.put("municipalityOfRegistration", serializeStringResult(it))
190
+ }
191
+ scanningResult?.pollingStationCode?.let {
192
+ scanningResultJson.put("pollingStationCode", serializeStringResult(it))
193
+ }
194
+ scanningResult?.registrationCenterCode?.let {
195
+ scanningResultJson.put("registrationCenterCode", serializeStringResult(it))
196
+ }
197
+ scanningResult?.sectionCode?.let {
198
+ scanningResultJson.put("sectionCode", serializeStringResult(it))
199
+ }
200
+ scanningResult?.stateCode?.let {
201
+ scanningResultJson.put("stateCode", serializeStringResult(it))
202
+ }
203
+ scanningResult?.stateName?.let {
204
+ scanningResultJson.put("stateName", serializeStringResult(it))
205
+ }
206
+ scanningResult?.dateOfExpiryPermanent?.let {
207
+ scanningResultJson.put("dateOfExpiryPermanent", it)
208
+ }
209
+ scanningResult?.driverLicenseDetailedInfo?.let {
210
+ scanningResultJson.put(
211
+ "driverLicenseDetailedInfo",
212
+ serializeDriverLicenseDetailedInfo(it)
213
+ )
214
+ }
215
+ scanningResult?.dependentsInfo?.let {
216
+ scanningResultJson.put(
217
+ "dependentsInfo",
218
+ JSONArray(it.map { dependentInfo -> serializeDependentInfo(dependentInfo) })
219
+ )
220
+ }
221
+ scanningResult?.parentsInfo?.let {
222
+ scanningResultJson.put(
223
+ "parentsInfo",
224
+ JSONArray(it.map { parentInfo -> serializeParentInfo(parentInfo) })
225
+ )
226
+ }
227
+ scanningResult?.effectiveDate?.let {
228
+ scanningResultJson.put("effectiveDate", serializeDateResult(it))
229
+ }
230
+ scanningResult?.husbandName?.let {
231
+ scanningResultJson.put("husbandName", serializeStringResult(it))
232
+ }
233
+ scanningResult?.legalStatus?.let {
234
+ scanningResultJson.put("legalStatus", serializeStringResult(it))
235
+ }
236
+ scanningResult?.socialSecurityStatus?.let {
237
+ scanningResultJson.put("socialSecurityStatus", serializeStringResult(it))
238
+ }
239
+ scanningResult?.workRestriction?.let {
240
+ scanningResultJson.put("workRestriction", serializeStringResult(it))
241
+ }
242
+ scanningResult?.subResults?.let {
243
+ scanningResultJson.put(
244
+ "subResults",
245
+ JSONArray(it.map { subResult -> serializeSubResult(subResult) })
246
+ )
247
+ }
248
+ scanningResult?.inputImage(ScanningSide.First)?.let {
249
+ scanningResultJson.put("firstInputImage", encodeBase64Image(it.bitmap))
250
+ }
251
+ scanningResult?.inputImage(ScanningSide.Second)?.let {
252
+ scanningResultJson.put("secondInputImage", encodeBase64Image(it.bitmap))
253
+ }
254
+ scanningResult?.barcodeImage()?.let {
255
+ scanningResultJson.put("barcodeImage", encodeBase64Image(it.bitmap))
256
+ }
257
+ scanningResult?.documentImage(ScanningSide.First)?.let {
258
+ scanningResultJson.put("firstDocumentImage", encodeBase64Image(it.bitmap))
259
+ }
260
+ scanningResult?.documentImage(ScanningSide.Second)?.let {
261
+ scanningResultJson.put("secondDocumentImage", encodeBase64Image(it.bitmap))
262
+ }
263
+ scanningResult?.faceImage()?.let {
264
+ scanningResultJson.put("faceImage", serializeDetailedCroppedImageResult(it))
265
+ }
266
+ scanningResult?.signatureImage()?.let {
267
+ scanningResultJson.put("signatureImage", serializeDetailedCroppedImageResult(it))
268
+ }
269
+
270
+ return scanningResultJson.toString()
271
+ }
272
+
273
+ private fun serializeDateResult(dateResult: DateResult<*>?): JSONObject {
274
+ val dateResultJson = JSONObject()
275
+
276
+ dateResultJson.put("date", serializeSimpleDateResult(dateResult));
277
+ dateResultJson.put("filledByDomainKnowledge", dateResult?.filledByDomainKnowledge)
278
+ dateResultJson.put("successfullyParsed", dateResult?.successfullyParsed)
279
+ dateResultJson.put("originalString", serializeStringType(dateResult?.originalString))
280
+ return dateResultJson
281
+ }
282
+
283
+ private fun serializeSimpleDateResult(dateResult: DateResult<*>?): JSONObject {
284
+ val simpleDateResultJson = JSONObject()
285
+ dateResult?.day?.let {
286
+ simpleDateResultJson.put("day", it)
287
+ }
288
+ dateResult?.month?.let {
289
+ simpleDateResultJson.put("month", it)
290
+ }
291
+ dateResult?.year?.let {
292
+ simpleDateResultJson.put("year", it)
293
+ }
294
+ return simpleDateResultJson;
295
+ }
296
+
297
+ private fun serializeDocumentClassInfo(documentClassInfo: DocumentClassInfo): JSONObject {
298
+ val documentClassInfoJson = JSONObject()
299
+ // TODO: Align country/region/documentType strings with iOS (rawValue). Android uses
300
+ // enum.name with only the first character lowercased; values usually match but are not
301
+ // guaranteed identical for every enum. Prefer shared explicit string mappers on both platforms.
302
+ documentClassInfo.country?.name?.let {
303
+ documentClassInfoJson.put("country", it.replaceFirstChar { char -> char.lowercase() })
304
+ }
305
+ documentClassInfo.region?.name?.let {
306
+ documentClassInfoJson.put("region", it.replaceFirstChar { char -> char.lowercase() })
307
+ }
308
+ documentClassInfo.type?.name?.let {
309
+ documentClassInfoJson.put(
310
+ "documentType",
311
+ it.replaceFirstChar { char -> char.lowercase() })
312
+ }
313
+ documentClassInfo.countryName?.let {
314
+ documentClassInfoJson.put("countryName", it)
315
+ }
316
+ documentClassInfo.isoAlpha2CountryCode?.let {
317
+ documentClassInfoJson.put("isoAlpha2CountryCode", it)
318
+ }
319
+ documentClassInfo.isoAlpha3CountryCode?.let {
320
+ documentClassInfoJson.put("isoAlpha3CountryCode", it)
321
+ }
322
+ documentClassInfo.isoNumericCountryCode?.let {
323
+ documentClassInfoJson.put("isoNumericCountryCode", it)
324
+ }
325
+ documentClassInfoJson.put("empty", documentClassInfo.isEmpty())
326
+ return documentClassInfoJson
327
+ }
328
+
329
+ private fun serializeDataMatchResult(dataMatchResult: DataMatchResult): JSONObject {
330
+ val dataMatchResultJson = JSONObject()
331
+
332
+ val statesArray = JSONArray()
333
+ dataMatchResult.statePerField.forEach {
334
+ statesArray.put(serializeDataMatchField(it))
335
+ }
336
+
337
+ dataMatchResultJson.put("states", statesArray)
338
+ dataMatchResultJson.put("overallState", serializeDataMatchState(dataMatchResult.overallState))
339
+
340
+ return dataMatchResultJson
341
+ }
342
+
343
+ private fun serializeDataMatchField(dataMatchField: DataMatchFieldState): JSONObject {
344
+ val dataMatchFieldJson = JSONObject()
345
+ dataMatchFieldJson.put("field", serializeDataMatchFieldType(dataMatchField.fieldType))
346
+ dataMatchFieldJson.put("state", serializeDataMatchState(dataMatchField.state))
347
+ return dataMatchFieldJson
348
+ }
349
+
350
+ private fun serializeDataMatchFieldType(fieldType: DataMatchFieldType): String {
351
+ return when (fieldType) {
352
+ DataMatchFieldType.DateOfBirth -> "dateOfBirth"
353
+ DataMatchFieldType.DateOfExpiry -> "dateOfExpiry"
354
+ DataMatchFieldType.DocumentNumber -> "documentNumber"
355
+ DataMatchFieldType.DocumentAdditionalNumber -> "documentAdditionalNumber"
356
+ DataMatchFieldType.DocumentOptionalAdditionalNumber -> "documentOptionalAdditionalNumber"
357
+ DataMatchFieldType.PersonalIdNumber -> "personalIdNumber"
358
+ }
359
+ }
360
+
361
+ private fun serializeDataMatchState(state: DataMatchState): String {
362
+ return when (state) {
363
+ DataMatchState.NotPerformed -> "notPerformed"
364
+ DataMatchState.Failed -> "failed"
365
+ DataMatchState.Success -> "success"
366
+ }
367
+ }
368
+
369
+ private fun serializeStringResult(stringResult: StringResult): JSONObject {
370
+ val stringResultJson = JSONObject()
371
+ stringResultJson.put("value", stringResult.value(AlphabetType.Latin))
372
+ stringResultJson.put("latin", stringResult.value(AlphabetType.Latin))
373
+ stringResultJson.put("arabic", stringResult.value(AlphabetType.Arabic))
374
+ stringResultJson.put("cyrillic", stringResult.value(AlphabetType.Cyrillic))
375
+ stringResultJson.put("greek", stringResult.value(AlphabetType.Greek))
376
+
377
+ val locationJson = JSONObject()
378
+ stringResult.location(AlphabetType.Latin)?.let {
379
+ locationJson.put("latin", serializeLocation(it))
380
+ }
381
+ stringResult.location(AlphabetType.Arabic)?.let {
382
+ locationJson.put("arabic", serializeLocation(it))
383
+ }
384
+ stringResult.location(AlphabetType.Cyrillic)?.let {
385
+ locationJson.put("cyrillic", serializeLocation(it))
386
+ }
387
+ stringResult.location(AlphabetType.Greek)?.let {
388
+ locationJson.put("greek", serializeLocation(it))
389
+ }
390
+ stringResultJson.put("location", locationJson)
391
+
392
+ val sideJson = JSONObject()
393
+ stringResult.side(AlphabetType.Latin)?.let {
394
+ sideJson.put("latin", serializeScanningSide(it))
395
+ }
396
+ stringResult.side(AlphabetType.Arabic)?.let {
397
+ sideJson.put("arabic", serializeScanningSide(it))
398
+ }
399
+ stringResult.side(AlphabetType.Cyrillic)?.let {
400
+ sideJson.put("cyrillic", serializeScanningSide(it))
401
+ }
402
+ stringResult.side(AlphabetType.Greek)?.let {
403
+ sideJson.put("greek", serializeScanningSide(it))
404
+ }
405
+ stringResultJson.put("side", sideJson)
406
+
407
+ return stringResultJson
408
+ }
409
+
410
+ private fun serializeLocation(rectangle: Rectangle): JSONObject {
411
+ val locationJson = JSONObject()
412
+ locationJson.put("x", rectangle.x.toDouble())
413
+ locationJson.put("y", rectangle.y.toDouble())
414
+ locationJson.put("width", rectangle.width.toDouble())
415
+ locationJson.put("height", rectangle.height.toDouble())
416
+ return locationJson
417
+ }
418
+
419
+ private fun serializeDriverLicenseDetailedInfo(
420
+ driverLicenseDetailedInfo: DriverLicenseDetailedInfo<*>?
421
+ ): JSONObject {
422
+ val json = JSONObject()
423
+
424
+ json.put("conditions", serializeStringType(driverLicenseDetailedInfo?.conditions))
425
+ json.put("endorsements", serializeStringType(driverLicenseDetailedInfo?.endorsements))
426
+ json.put("restrictions", serializeStringType(driverLicenseDetailedInfo?.restrictions))
427
+ json.put("vehicleClass", serializeStringType(driverLicenseDetailedInfo?.vehicleClass))
428
+
429
+ driverLicenseDetailedInfo?.vehicleClassesInfo?.let { vehicleClasses ->
430
+ val array = JSONArray()
431
+ for (info in vehicleClasses) {
432
+ array.put(serializeVehicleClassInfo(info))
433
+ }
434
+ json.put("vehicleClassesInfo", array)
435
+ }
436
+
437
+ return json
438
+ }
439
+
440
+ private fun serializeVehicleClassInfo(vehicleClassInfo: VehicleClassInfo<*>): JSONObject {
441
+ val vehicleClassInfoJson = JSONObject()
442
+ vehicleClassInfoJson.put(
443
+ "effectiveDate",
444
+ serializeDateResult(vehicleClassInfo.effectiveDate)
445
+ )
446
+ vehicleClassInfoJson.put("expiryDate", serializeDateResult(vehicleClassInfo.expiryDate))
447
+ vehicleClassInfoJson.put("licenceType", serializeStringType(vehicleClassInfo.licenceType))
448
+ vehicleClassInfoJson.put("vehicleClass", serializeStringType(vehicleClassInfo.vehicleClass))
449
+ return vehicleClassInfoJson
450
+ }
451
+
452
+ private fun serializeDependentInfo(dependentInfo: DependentInfo): JSONObject {
453
+ val dependentInfoJson = JSONObject()
454
+
455
+ dependentInfo.fullName?.let {
456
+ dependentInfoJson.put("fullName", serializeStringResult(it))
457
+ }
458
+ dependentInfo.sex?.let {
459
+ dependentInfoJson.put("sex", serializeStringResult(it))
460
+ }
461
+ dependentInfo.dateOfBirth?.let {
462
+ dependentInfoJson.put("dateOfBirth", serializeDateResult(it))
463
+ }
464
+
465
+ dependentInfo.documentNumber?.let {
466
+ dependentInfoJson.put("documentNumber", serializeStringResult(it))
467
+ }
468
+
469
+ return dependentInfoJson
470
+ }
471
+
472
+ private fun serializeSubResult(subResult: SingleSideScanningResult): JSONObject {
473
+ val subResultJson = JSONObject()
474
+ subResultJson.put("barcode", serializeBarcodeResult(subResult.barcode))
475
+ subResultJson.put(
476
+ "barcodeImage",
477
+ encodeBase64Image(subResult.barcodeImage?.bitmap)
478
+ )
479
+ subResultJson.put("documentImage", encodeBase64Image(subResult.documentImage?.bitmap))
480
+ subResultJson.put("faceImage", serializeDetailedCroppedImageResult(subResult.faceImage))
481
+ subResultJson.put("inputImage", encodeBase64Image(subResult.inputImage?.bitmap))
482
+ subResultJson.put("mrz", serializeMrzResult(subResult.mrz))
483
+ subResultJson.put(
484
+ "signatureImage",
485
+ serializeDetailedCroppedImageResult(subResult.signatureImage)
486
+ )
487
+ subResultJson.put("viz", serializeVizResult(subResult.viz))
488
+ return subResultJson
703
489
  }
704
- return detailedCroppedImageResultJson
705
- }
706
490
 
707
- private fun serializeBarcodeExtendedElements(barcodeExtendedElements: Array<BarcodeElement>?): JSONObject {
708
- val barcodeExtendedElementsJson = JSONObject()
709
-
710
- barcodeExtendedElements?.let {
711
- it.map { element ->
712
- barcodeExtendedElementsJson.put(
713
- element.key.name.replaceFirstChar { char -> char.lowercase() },
714
- element.value
491
+ private fun serializeBarcodeResult(barcodeResult: BarcodeResult?): JSONObject {
492
+ val barcodeResultJson = JSONObject()
493
+ barcodeResultJson.put("additionalNameInformation", barcodeResult?.additionalNameInformation)
494
+ barcodeResultJson.put("address", barcodeResult?.address)
495
+ barcodeResultJson.put(
496
+ "addressDetailedInfo",
497
+ serializeAddressDetailedInfo(barcodeResult?.addressDetailedInfo)
715
498
  )
716
- }
717
- }
718
- return barcodeExtendedElementsJson
719
- }
720
-
721
- private fun serializeStringType(value: Any?): Any? {
722
- return when (value) {
723
- is StringResult -> serializeStringResult(value)
724
- is String -> value
725
- else -> null
726
- }
727
- }
728
-
729
- private fun encodeBase64Image(image: Bitmap?): String? {
730
- return image?.let { bmp ->
731
- val outputStream = ByteArrayOutputStream()
732
- outputStream.use { stream ->
733
- bmp.compress(Bitmap.CompressFormat.JPEG, 95, stream)
734
- Base64.encodeToString(
735
- stream.toByteArray(),
736
- Base64.NO_WRAP
499
+ barcodeResultJson.put("barcodeData", serializeBarcodeData(barcodeResult?.barcodeData))
500
+ barcodeResultJson.put("dateOfBirth", serializeDateResult(barcodeResult?.dateOfBirth))
501
+ barcodeResultJson.put("dateOfExpiry", serializeDateResult(barcodeResult?.dateOfExpiry))
502
+ barcodeResultJson.put("dateOfIssue", serializeDateResult(barcodeResult?.dateOfIssue))
503
+ barcodeResultJson.put("documentAdditionalNumber", barcodeResult?.documentAdditionalNumber)
504
+ barcodeResultJson.put("documentNumber", barcodeResult?.documentNumber)
505
+ barcodeResultJson.put(
506
+ "driverLicenseDetailedInfo",
507
+ serializeDriverLicenseDetailedInfo(barcodeResult?.driverLicenseDetailedInfo)
737
508
  )
738
- }
509
+ barcodeResultJson.put("employer", barcodeResult?.employer)
510
+ barcodeResultJson.put("firstName", barcodeResult?.firstName)
511
+ barcodeResultJson.put("fullName", barcodeResult?.fullName)
512
+ barcodeResultJson.put("issuingAuthority", barcodeResult?.issuingAuthority)
513
+ barcodeResultJson.put("lastName", barcodeResult?.lastName)
514
+ barcodeResultJson.put("maritalStatus", barcodeResult?.maritalStatus)
515
+ barcodeResultJson.put("middleName", barcodeResult?.middleName)
516
+ barcodeResultJson.put("nationality", barcodeResult?.nationality)
517
+ barcodeResultJson.put("personalIdNumber", barcodeResult?.personalIdNumber)
518
+ barcodeResultJson.put("placeOfBirth", barcodeResult?.placeOfBirth)
519
+ barcodeResultJson.put("profession", barcodeResult?.profession)
520
+ barcodeResultJson.put("race", barcodeResult?.race)
521
+ barcodeResultJson.put("religion", barcodeResult?.religion)
522
+ barcodeResultJson.put("residentialStatus", barcodeResult?.residentialStatus)
523
+ barcodeResultJson.put("sex", barcodeResult?.sex)
524
+ barcodeResultJson.put("parsed", barcodeResult?.parsed)
525
+ barcodeResultJson.put(
526
+ "extendedElements",
527
+ serializeBarcodeExtendedElements(barcodeResult?.extendedElements?.barcodeElements)
528
+ )
529
+
530
+ return barcodeResultJson
531
+ }
532
+
533
+ private fun serializeAddressDetailedInfo(addressDetailedInfo: AddressDetailedInfo?): JSONObject {
534
+ val addressDetailedInfoJson = JSONObject()
535
+ addressDetailedInfoJson.put("city", addressDetailedInfo?.city)
536
+ addressDetailedInfoJson.put("postalCode", addressDetailedInfo?.postalCode)
537
+ addressDetailedInfoJson.put("jurisdiction", addressDetailedInfo?.jurisdiction)
538
+ addressDetailedInfoJson.put("street", addressDetailedInfo?.street)
539
+
540
+ return addressDetailedInfoJson
541
+ }
542
+
543
+ private fun serializeBarcodeData(barcodeData: BarcodeData?): JSONObject {
544
+ val barcodeDataJson = JSONObject()
545
+ barcodeDataJson.put("barcodeType", serializeBarcodeType(barcodeData?.barcodeType))
546
+ barcodeDataJson.put("rawData", encodeBase64Bytes(barcodeData?.rawData))
547
+ barcodeDataJson.put("stringData", barcodeData?.stringData)
548
+ barcodeDataJson.put("uncertain", barcodeData?.uncertain)
549
+
550
+ return barcodeDataJson
551
+ }
552
+
553
+ private fun serializeBarcodeType(barcodeType: BarcodeType?): String {
554
+ return when (barcodeType) {
555
+ BarcodeType.None -> "none"
556
+ BarcodeType.QRCode -> "qrCode"
557
+ BarcodeType.DataMatrix -> "dataMatrix"
558
+ BarcodeType.UPCE -> "upce"
559
+ BarcodeType.UPCA -> "upca"
560
+ BarcodeType.EAN8 -> "ean8"
561
+ BarcodeType.EAN13 -> "ean13"
562
+ BarcodeType.Code128 -> "code128"
563
+ BarcodeType.Code39 -> "code39"
564
+ BarcodeType.ITF -> "itf"
565
+ BarcodeType.Aztec -> "aztec"
566
+ BarcodeType.PDF417 -> "pdf417"
567
+ null -> "none"
568
+ }
569
+ }
570
+
571
+ private fun serializeMrzResult(mrzResult: MrzResult?): JSONObject {
572
+ val mrzResultJson = JSONObject()
573
+ mrzResultJson.put("dateOfBirth", serializeDateResult(mrzResult?.dateOfBirth))
574
+ mrzResultJson.put("dateOfExpiry", serializeDateResult(mrzResult?.dateOfExpiry))
575
+ mrzResultJson.put("documentCode", mrzResult?.documentCode)
576
+ mrzResultJson.put("documentNumber", mrzResult?.documentNumber)
577
+ mrzResultJson.put("documentType", serializeMrzDocumentType(mrzResult?.documentType))
578
+ mrzResultJson.put("gender", mrzResult?.gender)
579
+ mrzResultJson.put("issuer", mrzResult?.issuer)
580
+ mrzResultJson.put("issuerName", mrzResult?.issuerName)
581
+ mrzResultJson.put("nationality", mrzResult?.nationality)
582
+ mrzResultJson.put("nationalityName", mrzResult?.nationalityName)
583
+ mrzResultJson.put("opt1", mrzResult?.opt1)
584
+ mrzResultJson.put("opt2", mrzResult?.opt2)
585
+ mrzResultJson.put("primaryID", mrzResult?.primaryID)
586
+ mrzResultJson.put("rawMRZString", mrzResult?.rawMRZString)
587
+ mrzResultJson.put("sanitizedDocumentCode", mrzResult?.sanitizedDocumentCode)
588
+ mrzResultJson.put("sanitizedDocumentNumber", mrzResult?.sanitizedDocumentNumber)
589
+ mrzResultJson.put("sanitizedIssuer", mrzResult?.sanitizedIssuer)
590
+ mrzResultJson.put("sanitizedNationality", mrzResult?.sanitizedNationality)
591
+ mrzResultJson.put("sanitizedOpt1", mrzResult?.sanitizedOpt1)
592
+ mrzResultJson.put("sanitizedOpt2", mrzResult?.sanitizedOpt2)
593
+ mrzResultJson.put("secondaryID", mrzResult?.secondaryID)
594
+ mrzResultJson.put("verified", mrzResult?.verified)
595
+
596
+ return mrzResultJson
597
+ }
598
+
599
+ private fun serializeVizResult(vizResult: VizResult?): JSONObject {
600
+ val vizResultJson = JSONObject()
601
+
602
+ vizResult?.additionalAddressInformation?.let {
603
+ vizResultJson.put("additionalAddressInformation", serializeStringResult(it))
604
+ }
605
+ vizResult?.additionalNameInformation?.let {
606
+ vizResultJson.put("additionalNameInformation", serializeStringResult(it))
607
+ }
608
+ vizResult?.additionalOptionalAddressInformation?.let {
609
+ vizResultJson.put("additionalOptionalAddressInformation", serializeStringResult(it))
610
+ }
611
+ vizResult?.additionalPersonalIdNumber?.let {
612
+ vizResultJson.put("additionalPersonalIdNumber", serializeStringResult(it))
613
+ }
614
+ vizResult?.address?.let {
615
+ vizResultJson.put("address", serializeStringResult(it))
616
+ }
617
+ vizResult?.bloodType?.let {
618
+ vizResultJson.put("bloodType", serializeStringResult(it))
619
+ }
620
+ vizResult?.dateOfBirth?.let {
621
+ vizResultJson.put("dateOfBirth", serializeDateResult(it))
622
+ }
623
+ vizResult?.dateOfExpiry?.let {
624
+ vizResultJson.put("dateOfExpiry", serializeDateResult(it))
625
+ }
626
+ vizResult?.dateOfIssue?.let {
627
+ vizResultJson.put("dateOfIssue", serializeDateResult(it))
628
+ }
629
+ vizResult?.dateOfEntry?.let {
630
+ vizResultJson.put("dateOfEntry", serializeDateResult(it))
631
+ }
632
+ vizResult?.localityCode?.let {
633
+ vizResultJson.put("localityCode", serializeStringResult(it))
634
+ }
635
+ vizResult?.maidenName?.let {
636
+ vizResultJson.put("maidenName", serializeStringResult(it))
637
+ }
638
+ vizResult?.municipalityCode?.let {
639
+ vizResultJson.put("municipalityCode", serializeStringResult(it))
640
+ }
641
+ vizResult?.municipalityOfRegistration?.let {
642
+ vizResultJson.put("municipalityOfRegistration", serializeStringResult(it))
643
+ }
644
+ vizResult?.pollingStationCode?.let {
645
+ vizResultJson.put("pollingStationCode", serializeStringResult(it))
646
+ }
647
+ vizResult?.registrationCenterCode?.let {
648
+ vizResultJson.put("registrationCenterCode", serializeStringResult(it))
649
+ }
650
+ vizResult?.sectionCode?.let {
651
+ vizResultJson.put("sectionCode", serializeStringResult(it))
652
+ }
653
+ vizResult?.stateCode?.let {
654
+ vizResultJson.put("stateCode", serializeStringResult(it))
655
+ }
656
+ vizResult?.stateName?.let {
657
+ vizResultJson.put("stateName", serializeStringResult(it))
658
+ }
659
+ vizResult?.dateOfExpiryPermanent?.let {
660
+ vizResultJson.put("dateOfExpiryPermanent", it)
661
+ }
662
+ vizResult?.documentAdditionalNumber?.let {
663
+ vizResultJson.put("documentAdditionalNumber", serializeStringResult(it))
664
+ }
665
+ vizResult?.dependentsInfo?.let {
666
+ vizResultJson.put(
667
+ "dependentsInfo",
668
+ JSONArray(it.map { dependentInfo -> serializeDependentInfo(dependentInfo) })
669
+ )
670
+ }
671
+ vizResult?.documentNumber?.let {
672
+ vizResultJson.put("documentNumber", serializeStringResult(it))
673
+ }
674
+ vizResult?.cardAccessNumber?.let {
675
+ vizResultJson.put("cardAccessNumber", serializeStringResult(it))
676
+ }
677
+ vizResult?.documentOptionalAdditionalNumber?.let {
678
+ vizResultJson.put("documentOptionalAdditionalNumber", serializeStringResult(it))
679
+ }
680
+ vizResult?.documentSubtype?.let {
681
+ vizResultJson.put("documentSubtype", serializeStringResult(it))
682
+ }
683
+ vizResult?.driverLicenseDetailedInfo?.let {
684
+ vizResultJson.put("driverLicenseDetailedInfo", serializeDriverLicenseDetailedInfo(it))
685
+ }
686
+ vizResult?.eligibilityCategory?.let {
687
+ vizResultJson.put("eligibilityCategory", serializeStringResult(it))
688
+ }
689
+ vizResult?.employer?.let {
690
+ vizResultJson.put("employer", serializeStringResult(it))
691
+ }
692
+ vizResult?.fathersName?.let {
693
+ vizResultJson.put("fathersName", serializeStringResult(it))
694
+ }
695
+ vizResult?.firstName?.let {
696
+ vizResultJson.put("firstName", serializeStringResult(it))
697
+ }
698
+ vizResult?.fullName?.let {
699
+ vizResultJson.put("fullName", serializeStringResult(it))
700
+ }
701
+ vizResult?.issuingAuthority?.let {
702
+ vizResultJson.put("issuingAuthority", serializeStringResult(it))
703
+ }
704
+ vizResult?.lastName?.let {
705
+ vizResultJson.put("lastName", serializeStringResult(it))
706
+ }
707
+ vizResult?.localizedName?.let {
708
+ vizResultJson.put("localizedName", serializeStringResult(it))
709
+ }
710
+ vizResult?.profession?.let {
711
+ vizResultJson.put("profession", serializeStringResult(it))
712
+ }
713
+ vizResult?.placeOfBirth?.let {
714
+ vizResultJson.put("placeOfBirth", serializeStringResult(it))
715
+ }
716
+ vizResult?.personalIdNumber?.let {
717
+ vizResultJson.put("personalIdNumber", serializeStringResult(it))
718
+ }
719
+ vizResult?.nationality?.let {
720
+ vizResultJson.put("nationality", serializeStringResult(it))
721
+ }
722
+ vizResult?.mothersName?.let {
723
+ vizResultJson.put("mothersName", serializeStringResult(it))
724
+ }
725
+ vizResult?.maritalStatus?.let {
726
+ vizResultJson.put("maritalStatus", serializeStringResult(it))
727
+ }
728
+ vizResult?.manufacturingYear?.let {
729
+ vizResultJson.put("manufacturingYear", serializeStringResult(it))
730
+ }
731
+ vizResult?.race?.let {
732
+ vizResultJson.put("race", serializeStringResult(it))
733
+ }
734
+ vizResult?.religion?.let {
735
+ vizResultJson.put("religion", serializeStringResult(it))
736
+ }
737
+ vizResult?.remarks?.let {
738
+ vizResultJson.put("remarks", serializeStringResult(it))
739
+ }
740
+ vizResult?.residencePermitType?.let {
741
+ vizResultJson.put("residencePermitType", serializeStringResult(it))
742
+ }
743
+ vizResult?.residentialStatus?.let {
744
+ vizResultJson.put("residentialStatus", serializeStringResult(it))
745
+ }
746
+ vizResult?.sex?.let {
747
+ vizResultJson.put("sex", serializeStringResult(it))
748
+ }
749
+ vizResult?.specificDocumentValidity?.let {
750
+ vizResultJson.put("specificDocumentValidity", serializeStringResult(it))
751
+ }
752
+ vizResult?.sponsor?.let {
753
+ vizResultJson.put("sponsor", serializeStringResult(it))
754
+ }
755
+ vizResult?.vehicleOwner?.let {
756
+ vizResultJson.put("vehicleOwner", serializeStringResult(it))
757
+ }
758
+ vizResult?.vehicleType?.let {
759
+ vizResultJson.put("vehicleType", serializeStringResult(it))
760
+ }
761
+ vizResult?.visaType?.let {
762
+ vizResultJson.put("visaType", serializeStringResult(it))
763
+ }
764
+ vizResult?.countryCode?.let {
765
+ vizResultJson.put("countryCode", serializeStringResult(it))
766
+ }
767
+ vizResult?.certificateNumber?.let {
768
+ vizResultJson.put("certificateNumber", serializeStringResult(it))
769
+ }
770
+ vizResult?.nationalInsuranceNumber?.let {
771
+ vizResultJson.put("nationalInsuranceNumber", serializeStringResult(it))
772
+ }
773
+ vizResult?.parentsInfo?.let {
774
+ vizResultJson.put(
775
+ "parentsInfo",
776
+ JSONArray(it.map { parentInfo -> serializeParentInfo(parentInfo) })
777
+ )
778
+ }
779
+ vizResult?.effectiveDate?.let {
780
+ vizResultJson.put("effectiveDate", serializeDateResult(it))
781
+ }
782
+ vizResult?.husbandName?.let {
783
+ vizResultJson.put("husbandName", serializeStringResult(it))
784
+ }
785
+ vizResult?.legalStatus?.let {
786
+ vizResultJson.put("legalStatus", serializeStringResult(it))
787
+ }
788
+ vizResult?.socialSecurityStatus?.let {
789
+ vizResultJson.put("socialSecurityStatus", serializeStringResult(it))
790
+ }
791
+ vizResult?.workRestriction?.let {
792
+ vizResultJson.put("workRestriction", serializeStringResult(it))
793
+ }
794
+ return vizResultJson
795
+ }
796
+
797
+ private fun serializeDetailedCroppedImageResult(detailedCroppedImageResult: DetailedCroppedImageResult?): JSONObject {
798
+ val detailedCroppedImageResultJson = JSONObject()
799
+
800
+ detailedCroppedImageResult?.bitmap?.let {
801
+ encodeBase64Image(it)?.let { image ->
802
+ detailedCroppedImageResultJson.put("image", image)
803
+ }
804
+ }
805
+ detailedCroppedImageResult?.location?.let {
806
+ detailedCroppedImageResultJson.put("location", serializeLocation(it))
807
+ }
808
+ detailedCroppedImageResult?.side?.let { side ->
809
+ detailedCroppedImageResultJson.put("side", serializeScanningSide(side))
810
+ }
811
+ return detailedCroppedImageResultJson
812
+ }
813
+
814
+ private fun serializeMrzDocumentType(documentType: DocumentType?): String? {
815
+ return when (documentType) {
816
+ DocumentType.Unknown -> "unknown"
817
+ DocumentType.IdentityCard -> "identityCard"
818
+ DocumentType.Passport -> "passport"
819
+ DocumentType.Visa -> "visa"
820
+ DocumentType.GreenCard -> "greenCard"
821
+ DocumentType.MysPassIMM13P -> "mysPassIMM13P"
822
+ DocumentType.DriverLicense -> "driverLicense"
823
+ DocumentType.InternalTravelDocument -> "internalTravelDocument"
824
+ DocumentType.BorderCrossingCard -> "borderCrossingCard"
825
+ null -> null
826
+ }
827
+ }
828
+
829
+ private fun serializeScanningSide(side: ScanningSide): String {
830
+ return when (side) {
831
+ ScanningSide.First -> "first"
832
+ ScanningSide.Second -> "second"
833
+ }
834
+ }
835
+
836
+ private fun serializeBarcodeExtendedElements(barcodeExtendedElements: Array<BarcodeElement>?): JSONObject {
837
+ val barcodeExtendedElementsJson = JSONObject()
838
+
839
+ barcodeExtendedElements?.let {
840
+ it.map { element ->
841
+ barcodeExtendedElementsJson.put(
842
+ element.key.name.replaceFirstChar { char -> char.lowercase() },
843
+ element.value
844
+ )
845
+ }
846
+ }
847
+ return barcodeExtendedElementsJson
848
+ }
849
+
850
+ private fun serializeParentInfo(parentInfo: ParentInfo): JSONObject {
851
+ val parentInfoJson = JSONObject()
852
+
853
+ parentInfo.firstName?.let {
854
+ parentInfoJson.put("firstName", serializeStringResult(it))
855
+ }
856
+
857
+ parentInfo.lastName?.let {
858
+ parentInfoJson.put("lastName", serializeStringResult(it))
859
+ }
860
+
861
+ return parentInfoJson
862
+ }
863
+
864
+ private fun serializeStringType(value: Any?): Any? {
865
+ return when (value) {
866
+ is StringResult -> serializeStringResult(value)
867
+ is String -> value
868
+ else -> null
869
+ }
870
+ }
871
+
872
+ private fun encodeBase64Bytes(data: ByteArray?): String? {
873
+ return data?.let {
874
+ Base64.encodeToString(it, Base64.NO_WRAP)
875
+ }
876
+ }
877
+
878
+ private fun encodeBase64Image(image: Bitmap?): String? {
879
+ return image?.let { bmp ->
880
+ val outputStream = ByteArrayOutputStream()
881
+ outputStream.use { stream ->
882
+ bmp.compress(Bitmap.CompressFormat.JPEG, 95, stream)
883
+ Base64.encodeToString(
884
+ stream.toByteArray(),
885
+ Base64.NO_WRAP
886
+ )
887
+ }
888
+ }
739
889
  }
740
- }
741
890
  }