@microblink/blinkid-react-native 7.2.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.
- package/BlinkidReactNative.podspec +31 -0
- package/LICENSE +21 -0
- package/README.md +409 -0
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +85 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdDeserializationUtilities.kt +354 -0
- package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkIdSerializationUtilities.kt +661 -0
- package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkidReactNativeModule.kt +209 -0
- package/android/src/main/java/com/microblink/blinkid/reactnative/BlinkidReactNativePackage.kt +33 -0
- package/ios/BlinkIdDeserializationUtilities.swift +345 -0
- package/ios/BlinkIdSerializationUtilities.swift +675 -0
- package/ios/BlinkidReactNative.h +6 -0
- package/ios/BlinkidReactNative.mm +97 -0
- package/ios/BlinkidReactNativeModule.swift +138 -0
- package/ios/Frameworks/BlinkID.xcframework/Info.plist +44 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/BlinkID +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID-Swift.h +34696 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/BlinkID.h +19 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Headers/MBSampleBufferWrapper.h +28 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Info.plist +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.abi.json +59963 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.private.swiftinterface +1630 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios.swiftinterface +1630 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/module.modulemap +10 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/Modules/module.private.modulemap +12 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/PrivacyInfo.xcprivacy +56 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +16 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/_CodeSignature/CodeResources +245 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64/BlinkID.framework/conan.xcconfig +36 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/BlinkID +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID-Swift.h +69407 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/BlinkID.h +19 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Headers/MBSampleBufferWrapper.h +28 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Info.plist +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.abi.json +59963 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +1630 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1630 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.abi.json +59963 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +1630 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/BlinkID.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1630 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/module.modulemap +10 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/Modules/module.private.modulemap +12 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/PrivacyInfo.xcprivacy +56 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/PrivateHeaders/SwiftCxxBridge.hpp +16 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/_CodeSignature/CodeResources +300 -0
- package/ios/Frameworks/BlinkID.xcframework/ios-arm64_x86_64-simulator/BlinkID.framework/conan.xcconfig +36 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/Info.plist +44 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeResources +1575 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/_CodeSignature/CodeSignature +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/PrivacyInfo.xcprivacy +56 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Info.plist +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.abi.json +15405 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.package.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.private.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Assets.car +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/Info.plist +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/PrivacyInfo.xcprivacy +56 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeDirectory +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeRequirements +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeResources +634 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/_CodeSignature/CodeSignature +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ar.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/cs.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/de.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/en.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/es.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fil.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/fr.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/he.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hr.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/hu.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/id.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/it.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ms.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/nl.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/pt.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/ro.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sk.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sl.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/sr.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/th.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/vi.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hans.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/BlinkIDUX_BlinkIDUX.bundle/zh-Hant.lproj/Localizable.strings +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Info.plist +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.abi.json +15405 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/arm64-apple-ios-simulator.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.abi.json +15405 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/Modules/BlinkIDUX.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +563 -0
- package/ios/Frameworks/BlinkIDUX.xcframework/ios-arm64_x86_64-simulator/BlinkIDUX.framework/_CodeSignature/CodeResources +101 -0
- package/lib/module/NativeBlinkidReactNative.js +15 -0
- package/lib/module/NativeBlinkidReactNative.js.map +1 -0
- package/lib/module/blinkIdResult.js +612 -0
- package/lib/module/blinkIdResult.js.map +1 -0
- package/lib/module/blinkIdSettings.js +465 -0
- package/lib/module/blinkIdSettings.js.map +1 -0
- package/lib/module/blinkIdUtilities.js +21 -0
- package/lib/module/blinkIdUtilities.js.map +1 -0
- package/lib/module/index.js +63 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +3375 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeBlinkidReactNative.d.ts +43 -0
- package/lib/typescript/src/NativeBlinkidReactNative.d.ts.map +1 -0
- package/lib/typescript/src/blinkIdResult.d.ts +294 -0
- package/lib/typescript/src/blinkIdResult.d.ts.map +1 -0
- package/lib/typescript/src/blinkIdSettings.d.ts +416 -0
- package/lib/typescript/src/blinkIdSettings.d.ts.map +1 -0
- package/lib/typescript/src/blinkIdUtilities.d.ts +8 -0
- package/lib/typescript/src/blinkIdUtilities.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +52 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +3025 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +110 -0
- package/src/NativeBlinkidReactNative.ts +45 -0
- package/src/blinkIdResult.ts +711 -0
- package/src/blinkIdSettings.ts +515 -0
- package/src/blinkIdUtilities.ts +20 -0
- package/src/index.tsx +72 -0
- package/src/types.ts +4334 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
package com.microblink.blinkid.reactnative
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Intent
|
|
5
|
+
import com.facebook.react.bridge.BaseActivityEventListener
|
|
6
|
+
import com.facebook.react.bridge.Promise
|
|
7
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
9
|
+
import com.microblink.blinkid.core.BlinkIdSdk
|
|
10
|
+
import com.microblink.blinkid.core.session.BlinkIdProcessResult
|
|
11
|
+
import com.microblink.blinkid.ux.contract.BlinkIdScanActivityResultStatus
|
|
12
|
+
import com.microblink.blinkid.ux.contract.BlinkIdScanActivitySettings
|
|
13
|
+
import com.microblink.blinkid.ux.contract.MbBlinkIdScan
|
|
14
|
+
import com.microblink.core.LicenseLockedException
|
|
15
|
+
import com.microblink.core.image.InputImage
|
|
16
|
+
import com.microblink.ux.UiSettings
|
|
17
|
+
import kotlinx.coroutines.CoroutineScope
|
|
18
|
+
import kotlinx.coroutines.Dispatchers
|
|
19
|
+
import kotlinx.coroutines.launch
|
|
20
|
+
import kotlinx.coroutines.withContext
|
|
21
|
+
import org.json.JSONObject
|
|
22
|
+
|
|
23
|
+
@ReactModule(name = BlinkidReactNativeModule.NAME)
|
|
24
|
+
class BlinkidReactNativeModule(reactContext: ReactApplicationContext) :
|
|
25
|
+
NativeBlinkidReactNativeSpec(reactContext) {
|
|
26
|
+
private val BLINKID_REQUEST_CODE = 1453
|
|
27
|
+
private val BLINKID_ERROR_RESULT_CODE = "BlinkIdAndroid"
|
|
28
|
+
|
|
29
|
+
var pendingPromise: Promise? = null
|
|
30
|
+
|
|
31
|
+
override fun getName(): String {
|
|
32
|
+
return NAME
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
init {
|
|
36
|
+
reactApplicationContext.addActivityEventListener(object : BaseActivityEventListener() {
|
|
37
|
+
override fun onActivityResult(
|
|
38
|
+
activity: Activity?,
|
|
39
|
+
requestCode: Int,
|
|
40
|
+
resultCode: Int,
|
|
41
|
+
data: Intent?
|
|
42
|
+
) {
|
|
43
|
+
if (requestCode == BLINKID_REQUEST_CODE) {
|
|
44
|
+
|
|
45
|
+
val blinkIdResult = MbBlinkIdScan().parseResult(resultCode, data)
|
|
46
|
+
when (blinkIdResult.status) {
|
|
47
|
+
BlinkIdScanActivityResultStatus.DocumentScanned -> {
|
|
48
|
+
blinkIdResult.result?.let { scanningResult ->
|
|
49
|
+
val success = BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(
|
|
50
|
+
scanningResult
|
|
51
|
+
)
|
|
52
|
+
pendingPromise?.resolve(success)
|
|
53
|
+
|
|
54
|
+
} ?: pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "BlinkID result is empty.")
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
BlinkIdScanActivityResultStatus.Canceled -> {
|
|
58
|
+
pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Scanning is canceled.")
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
BlinkIdScanActivityResultStatus.ErrorSdkInit -> {
|
|
62
|
+
pendingPromise?.reject(
|
|
63
|
+
BLINKID_ERROR_RESULT_CODE,
|
|
64
|
+
"Could not initialize the SDK."
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
override fun performScan(
|
|
74
|
+
blinkIdSdkSettings: String?,
|
|
75
|
+
blinkIdSessionSettings: String?,
|
|
76
|
+
blinkIdUiSettings: String?,
|
|
77
|
+
classFilter: String?,
|
|
78
|
+
promise: Promise?
|
|
79
|
+
) {
|
|
80
|
+
pendingPromise = promise
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
val sdkSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
|
|
84
|
+
val sessionSettingsJson = blinkIdSessionSettings?.let { JSONObject(it) }
|
|
85
|
+
val classFilterJson = classFilter?.let { JSONObject(it) }
|
|
86
|
+
val blinkIdUiSettingsJson = blinkIdUiSettings?.let { JSONObject(it) }
|
|
87
|
+
val sdkSettings = sdkSettingsJson?.let {
|
|
88
|
+
BlinkIdDeserializationUtilities.deserializeBlinkIdSdkSettings(it)
|
|
89
|
+
} ?: run {
|
|
90
|
+
pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Invalid SDK settings.")
|
|
91
|
+
return
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
currentActivity?.applicationContext?.let {
|
|
95
|
+
val intent = MbBlinkIdScan().createIntent(
|
|
96
|
+
it,
|
|
97
|
+
BlinkIdScanActivitySettings(
|
|
98
|
+
sdkSettings = sdkSettings,
|
|
99
|
+
scanningSessionSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(
|
|
100
|
+
sessionSettingsJson,
|
|
101
|
+
false
|
|
102
|
+
),
|
|
103
|
+
uxSettings = BlinkIdDeserializationUtilities.deserializeBlinkIdUxSettings(
|
|
104
|
+
sessionSettingsJson,
|
|
105
|
+
classFilterJson,
|
|
106
|
+
),
|
|
107
|
+
showHelpButton = blinkIdUiSettingsJson?.optBoolean("showHelpButton", true)?: true,
|
|
108
|
+
showOnboardingDialog = blinkIdUiSettingsJson?.optBoolean("showOnboardingDialog", true) ?: true
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
currentActivity?.startActivityForResult(intent, BLINKID_REQUEST_CODE, null)
|
|
112
|
+
} ?: pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, "Activity not found.")
|
|
113
|
+
} catch (error: Exception) {
|
|
114
|
+
when (error) {
|
|
115
|
+
is LicenseLockedException -> {
|
|
116
|
+
pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, error.message)
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
else -> {
|
|
120
|
+
pendingPromise?.reject(BLINKID_ERROR_RESULT_CODE, error.message)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
override fun performDirectApiScan(
|
|
127
|
+
blinkIdSdkSettings: String?,
|
|
128
|
+
blinkIdSessionSettings: String?,
|
|
129
|
+
firstImage: String?,
|
|
130
|
+
secondImage: String?,
|
|
131
|
+
promise: Promise?
|
|
132
|
+
) {
|
|
133
|
+
CoroutineScope(Dispatchers.Default).launch {
|
|
134
|
+
try {
|
|
135
|
+
val sdkSettingsJson = blinkIdSdkSettings?.let { JSONObject(it) }
|
|
136
|
+
val sessionSettingsJson = blinkIdSessionSettings?.let { JSONObject(it) }
|
|
137
|
+
|
|
138
|
+
val sdkSettings =
|
|
139
|
+
BlinkIdDeserializationUtilities.deserializeBlinkIdSdkSettings(sdkSettingsJson)
|
|
140
|
+
?: return@launch withContext(Dispatchers.Main) {
|
|
141
|
+
promise?.reject(BLINKID_ERROR_RESULT_CODE, "Invalid SDK settings")
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
val context = currentActivity?.applicationContext
|
|
145
|
+
?: return@launch withContext(Dispatchers.Main) {
|
|
146
|
+
promise?.reject(BLINKID_ERROR_RESULT_CODE, "No activity")
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
val sdkInit = BlinkIdSdk.initializeSdk(context, sdkSettings)
|
|
150
|
+
when {
|
|
151
|
+
sdkInit.isSuccess -> {
|
|
152
|
+
val instance = sdkInit.getOrNull() ?: return@launch withContext(Dispatchers.Main) {
|
|
153
|
+
promise?.reject(BLINKID_ERROR_RESULT_CODE, "SDK returned null instance")
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
val session = instance.createScanningSession(
|
|
157
|
+
BlinkIdDeserializationUtilities.deserializeBlinkIdSessionSettings(
|
|
158
|
+
sessionSettingsJson,
|
|
159
|
+
true
|
|
160
|
+
)
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
val inputImages = listOfNotNull(
|
|
164
|
+
firstImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) },
|
|
165
|
+
secondImage?.let { BlinkIdDeserializationUtilities.base64ToBitmap(it) }
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
var result: Result<BlinkIdProcessResult>? = null
|
|
169
|
+
|
|
170
|
+
for (img in inputImages) {
|
|
171
|
+
result = session.process(InputImage.createFromBitmap(img))
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (result?.isSuccess == true) {
|
|
175
|
+
val scanResult = session.getResult()
|
|
176
|
+
val resultJson =
|
|
177
|
+
BlinkIdSerializationUtilities.serializeBlinkIdScanningResult(scanResult)
|
|
178
|
+
|
|
179
|
+
withContext(Dispatchers.Main) {
|
|
180
|
+
promise?.resolve(resultJson.toString())
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
withContext(Dispatchers.Main) {
|
|
184
|
+
promise?.reject(BLINKID_ERROR_RESULT_CODE, "Could not get the results.")
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
instance.close()
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
sdkInit.isFailure -> {
|
|
192
|
+
return@launch withContext(Dispatchers.Main) {
|
|
193
|
+
promise?.reject(BLINKID_ERROR_RESULT_CODE, sdkInit.exceptionOrNull()?.message)
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
} catch (e: Exception) {
|
|
199
|
+
withContext(Dispatchers.Main) {
|
|
200
|
+
promise?.reject(BLINKID_ERROR_RESULT_CODE, e.message)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
companion object {
|
|
207
|
+
const val NAME = "BlinkidReactNative"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
package com.microblink.blinkid.reactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
|
+
import java.util.HashMap
|
|
9
|
+
|
|
10
|
+
class BlinkidReactNativePackage : BaseReactPackage() {
|
|
11
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
12
|
+
return if (name == BlinkidReactNativeModule.NAME) {
|
|
13
|
+
BlinkidReactNativeModule(reactContext)
|
|
14
|
+
} else {
|
|
15
|
+
null
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
20
|
+
return ReactModuleInfoProvider {
|
|
21
|
+
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
22
|
+
moduleInfos[BlinkidReactNativeModule.NAME] = ReactModuleInfo(
|
|
23
|
+
BlinkidReactNativeModule.NAME,
|
|
24
|
+
BlinkidReactNativeModule.NAME,
|
|
25
|
+
false, // canOverrideExistingModule
|
|
26
|
+
false, // needsEagerInit
|
|
27
|
+
false, // isCxxModule
|
|
28
|
+
true // isTurboModule
|
|
29
|
+
)
|
|
30
|
+
moduleInfos
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
//
|
|
2
|
+
// BlinkIdDeserializationUtilities.swift
|
|
3
|
+
// BlinkidReactNative
|
|
4
|
+
//
|
|
5
|
+
// Created by Milan Parađina on 22.05.2025..
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import BlinkID
|
|
10
|
+
|
|
11
|
+
class BlinkIdDeserializationUtilities {
|
|
12
|
+
static func deserializeBlinkIdSdkSettings(_ sdkSettingsDict: Dictionary<String, Any>?) -> BlinkIDSdkSettings? {
|
|
13
|
+
var blinkidSdkSettings: BlinkIDSdkSettings?
|
|
14
|
+
|
|
15
|
+
if let licenseKey = sdkSettingsDict?["licenseKey"] as? String {
|
|
16
|
+
blinkidSdkSettings = BlinkIDSdkSettings(licenseKey: licenseKey)
|
|
17
|
+
}
|
|
18
|
+
if let licensee = sdkSettingsDict?["licensee"] as? String {
|
|
19
|
+
blinkidSdkSettings?.licensee = licensee
|
|
20
|
+
}
|
|
21
|
+
if let helloLogEnabled = sdkSettingsDict?["helloLogEnabled"] as? Bool {
|
|
22
|
+
blinkidSdkSettings?.helloLogEnabled = helloLogEnabled
|
|
23
|
+
}
|
|
24
|
+
if let downloadResources = sdkSettingsDict?["downloadResources"] as? Bool {
|
|
25
|
+
blinkidSdkSettings?.downloadResources = downloadResources
|
|
26
|
+
}
|
|
27
|
+
if let resourceDownloadUrl = sdkSettingsDict?["resourceDownloadUrl"] as? String {
|
|
28
|
+
blinkidSdkSettings?.resourceDownloadUrl = resourceDownloadUrl
|
|
29
|
+
}
|
|
30
|
+
if let resourceLocalFolder = sdkSettingsDict?["resourceLocalFolder"] as? String {
|
|
31
|
+
blinkidSdkSettings?.resourceLocalFolder = resourceLocalFolder
|
|
32
|
+
}
|
|
33
|
+
if let bundleURL = sdkSettingsDict?["bundleURL"] as? String,
|
|
34
|
+
let url = URL(string: bundleURL) {
|
|
35
|
+
blinkidSdkSettings?.bundleURL = url
|
|
36
|
+
}
|
|
37
|
+
if let resourceRequestTimeout = sdkSettingsDict?["resourceRequestTimeout"] as? Int {
|
|
38
|
+
blinkidSdkSettings?.resourceRequestTimeout = BlinkID.RequestTimeout.default
|
|
39
|
+
}
|
|
40
|
+
return blinkidSdkSettings
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static func deserializeBlinkIdSessionSettings(_ sessionSettingsDict: Dictionary<String, Any>?) -> BlinkIDSessionSettings {
|
|
44
|
+
var blinkidSessionSettings = BlinkIDSessionSettings()
|
|
45
|
+
|
|
46
|
+
if let scanningSettings = sessionSettingsDict?["scanningSettings"] as? Dictionary<String, Any> {
|
|
47
|
+
blinkidSessionSettings.scanningSettings = deserializeBlinkIdScanningSettings(scanningSettings)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if let scanningMode = sessionSettingsDict?["scanningMode"] as? Int {
|
|
51
|
+
blinkidSessionSettings.scanningMode = deseralizeScanningMode(scanningMode)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if let stepTimeoutDuration = sessionSettingsDict?["stepTimeoutDuration"] as? Int {
|
|
55
|
+
blinkidSessionSettings.stepTimeoutDuration = Double(stepTimeoutDuration) / 1000.0
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return blinkidSessionSettings
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static func deserializeBlinkIdScanningSettings(_ scanningSettingsDict: Dictionary<String, Any>?) -> ScanningSettings {
|
|
62
|
+
var scanningSettings = ScanningSettings()
|
|
63
|
+
|
|
64
|
+
if let blurDetectionLevel = scanningSettingsDict?["blurDetectionLevel"] as? Int {
|
|
65
|
+
|
|
66
|
+
scanningSettings.blurDetectionLevel = deseralizeDetectionLevel(blurDetectionLevel)
|
|
67
|
+
}
|
|
68
|
+
if let skipImagesWithBlur = scanningSettingsDict?["skipImagesWithBlur"] as? Bool {
|
|
69
|
+
scanningSettings.skipImagesWithBlur = skipImagesWithBlur
|
|
70
|
+
}
|
|
71
|
+
if let glareDetectionLevel = scanningSettingsDict?["glareDetectionLevel"] as? Int {
|
|
72
|
+
scanningSettings.glareDetectionLevel = deseralizeDetectionLevel(glareDetectionLevel)
|
|
73
|
+
}
|
|
74
|
+
if let skipImagesWithGlare = scanningSettingsDict?["skipImagesWithGlare"] as? Bool {
|
|
75
|
+
scanningSettings.skipImagesWithGlare = skipImagesWithGlare
|
|
76
|
+
}
|
|
77
|
+
if let tiltDetectionLevel = scanningSettingsDict?["tiltDetectionLevel"] as? Int {
|
|
78
|
+
scanningSettings.tiltDetectionLevel = deseralizeDetectionLevel(tiltDetectionLevel)
|
|
79
|
+
}
|
|
80
|
+
if let skipImagesWithInadequateLightingConditions = scanningSettingsDict?["skipImagesWithInadequateLightingConditions"] as? Bool {
|
|
81
|
+
scanningSettings.skipImagesWithInadequateLightingConditions = skipImagesWithInadequateLightingConditions
|
|
82
|
+
}
|
|
83
|
+
if let skipImagesOccludedByHand = scanningSettingsDict?["skipImagesOccludedByHand"] as? Bool {
|
|
84
|
+
scanningSettings.skipImagesOccludedByHand = skipImagesOccludedByHand
|
|
85
|
+
}
|
|
86
|
+
if let combineResultsFromMultipleInputImages = scanningSettingsDict?["combineResultsFromMultipleInputImages"] as? Bool {
|
|
87
|
+
scanningSettings.combineResultsFromMultipleInputImages = combineResultsFromMultipleInputImages
|
|
88
|
+
}
|
|
89
|
+
if let enableBarcodeScanOnly = scanningSettingsDict?["enableBarcodeScanOnly"] as? Bool {
|
|
90
|
+
scanningSettings.enableBarcodeScanOnly = enableBarcodeScanOnly
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if let customDocumentRules = scanningSettingsDict?["customDocumentRules"] as? Array<Dictionary<String, Any>> {
|
|
94
|
+
scanningSettings.customDocumentRules = deserializeCustomDocumentRules(customDocumentRules)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if let anonymizationMode = scanningSettingsDict?["anonymizationMode"] as? String,
|
|
98
|
+
let value = AnonymizationMode(rawValue: anonymizationMode) {
|
|
99
|
+
scanningSettings.anonymizationMode = value
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if let customDocumentAnonymizationSettings = scanningSettingsDict?["customDocumentAnonymizationSettings"] as? Array<Dictionary<String, Any>> {
|
|
103
|
+
scanningSettings.customDocumentAnonymizationSettings = deserializeCustomDocumentAnonymizationSettings(customDocumentAnonymizationSettings)
|
|
104
|
+
}
|
|
105
|
+
if let returnInputImages = scanningSettingsDict?["returnInputImages"] as? Bool {
|
|
106
|
+
scanningSettings.returnInputImages = returnInputImages
|
|
107
|
+
}
|
|
108
|
+
if let scanCroppedDocumentImage = scanningSettingsDict?["scanCroppedDocumentImage"] as? Bool {
|
|
109
|
+
scanningSettings.scanCroppedDocumentImage = scanCroppedDocumentImage
|
|
110
|
+
}
|
|
111
|
+
if let recognitionModeFilter = scanningSettingsDict?["recognitionModeFilter"] as? Dictionary<String, Any> {
|
|
112
|
+
scanningSettings.recognitionModeFilter = deserializeRecognitionModeFilter(recognitionModeFilter)
|
|
113
|
+
}
|
|
114
|
+
if let inputImageMargin = scanningSettingsDict?["inputImageMargin"] as? Double {
|
|
115
|
+
scanningSettings.inputImageMargin = Float(inputImageMargin)
|
|
116
|
+
}
|
|
117
|
+
if let scanUnsupportedBack = scanningSettingsDict?["scanUnsupportedBack"] as? Bool {
|
|
118
|
+
scanningSettings.scanUnsupportedBack = scanUnsupportedBack
|
|
119
|
+
}
|
|
120
|
+
if let allowUncertainFrontSideScan = scanningSettingsDict?["allowUncertainFrontSideScan"] as? Bool {
|
|
121
|
+
scanningSettings.allowUncertainFrontSideScan = allowUncertainFrontSideScan
|
|
122
|
+
}
|
|
123
|
+
if let maxAllowedMismatchesPerField = scanningSettingsDict?["maxAllowedMismatchesPerField"] as? Int {
|
|
124
|
+
scanningSettings.maxAllowedMismatchesPerField = maxAllowedMismatchesPerField
|
|
125
|
+
}
|
|
126
|
+
if let scanPassportDataPageOnly = scanningSettingsDict?["scanPassportDataPageOnly"] as? Bool {
|
|
127
|
+
scanningSettings.scanPassportDataPageOnly = scanPassportDataPageOnly
|
|
128
|
+
}
|
|
129
|
+
if let croppedImageSettings = scanningSettingsDict?["croppedImageSettings"] as? Dictionary<String, Any> {
|
|
130
|
+
scanningSettings.croppedImageSettings = deserializeBlinkIdCroppedImageSettings(croppedImageSettings)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return scanningSettings
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
static func deserializeBlinkIdCroppedImageSettings(_ croppedImageSettingsDict: Dictionary<String, Any>) -> CroppedImageSettings {
|
|
137
|
+
var croppedImageSettings = CroppedImageSettings()
|
|
138
|
+
|
|
139
|
+
if let dotsPerInch = croppedImageSettingsDict["dotsPerInch"] as? Int {
|
|
140
|
+
croppedImageSettings.dotsPerInch = dotsPerInch
|
|
141
|
+
}
|
|
142
|
+
if let extensionFactor = croppedImageSettingsDict["extensionFactor"] as? Double {
|
|
143
|
+
croppedImageSettings.extensionFactor = Float(extensionFactor)
|
|
144
|
+
}
|
|
145
|
+
if let returnDocumentImage = croppedImageSettingsDict["returnDocumentImage"] as? Bool {
|
|
146
|
+
croppedImageSettings.returnDocumentImage = returnDocumentImage
|
|
147
|
+
}
|
|
148
|
+
if let returnFaceImage = croppedImageSettingsDict["returnFaceImage"] as? Bool {
|
|
149
|
+
croppedImageSettings.returnFaceImage = returnFaceImage
|
|
150
|
+
}
|
|
151
|
+
if let returnSignatureImage = croppedImageSettingsDict["returnSignatureImage"] as? Bool {
|
|
152
|
+
croppedImageSettings.returnSignatureImage = returnSignatureImage
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return croppedImageSettings
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
static func deserializeRecognitionModeFilter(_ recognitionModeFilterDict: Dictionary<String, Any>) -> RecognitionModeFilter {
|
|
159
|
+
var recognitionModeFilter = RecognitionModeFilter()
|
|
160
|
+
|
|
161
|
+
if let enableMrzId = recognitionModeFilterDict["enableMrzId"] as? Bool {
|
|
162
|
+
recognitionModeFilter.enableMrzId = enableMrzId
|
|
163
|
+
}
|
|
164
|
+
if let enableMrzVisa = recognitionModeFilterDict["enableMrzVisa"] as? Bool {
|
|
165
|
+
recognitionModeFilter.enableMrzVisa = enableMrzVisa
|
|
166
|
+
}
|
|
167
|
+
if let enableMrzPassport = recognitionModeFilterDict["enableMrzPassport"] as? Bool {
|
|
168
|
+
recognitionModeFilter.enableMrzPassport = enableMrzPassport
|
|
169
|
+
}
|
|
170
|
+
if let enablePhotoId = recognitionModeFilterDict["enablePhotoId"] as? Bool {
|
|
171
|
+
recognitionModeFilter.enablePhotoId = enablePhotoId
|
|
172
|
+
}
|
|
173
|
+
if let enableBarcodeId = recognitionModeFilterDict["enableBarcodeId"] as? Bool {
|
|
174
|
+
recognitionModeFilter.enableBarcodeId = enableBarcodeId
|
|
175
|
+
}
|
|
176
|
+
if let enableFullDocumentRecognition = recognitionModeFilterDict["enableFullDocumentRecognition"] as? Bool {
|
|
177
|
+
recognitionModeFilter.enableFullDocumentRecognition = enableFullDocumentRecognition
|
|
178
|
+
}
|
|
179
|
+
return recognitionModeFilter
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
static func deserializeCustomDocumentRules(_ customDocumentRulesArray: [[String: Any]]) -> [DocumentRules] {
|
|
183
|
+
var documentRulesArr = Array<DocumentRules>()
|
|
184
|
+
|
|
185
|
+
for customRuleDict in customDocumentRulesArray {
|
|
186
|
+
guard let fields = customRuleDict["fields"] as? Array<Dictionary<String, Any>> else { continue }
|
|
187
|
+
|
|
188
|
+
let deserializedFields = fields.compactMap { deserializeDetailedFieldType($0) }
|
|
189
|
+
var documentRule = DocumentRules(fields: deserializedFields)
|
|
190
|
+
|
|
191
|
+
if let documentFilter = customRuleDict["documentFilter"] as? [String: Any] {
|
|
192
|
+
documentRule.documentFilter = deserializeDocumentFilter(documentFilter)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
documentRulesArr.append(documentRule)
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return documentRulesArr
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
static func deserializeDocumentFilter(_ documentFilterDict: Dictionary<String, Any>) -> DocumentFilter {
|
|
202
|
+
var documentFilter = DocumentFilter()
|
|
203
|
+
|
|
204
|
+
if let country = documentFilterDict["country"] as? String {
|
|
205
|
+
documentFilter.country = Country(rawValue: country)
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if let region = documentFilterDict["region"] as? String {
|
|
209
|
+
documentFilter.region = Region(rawValue: region)
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if let documentType = documentFilterDict["documentType"] as? String {
|
|
213
|
+
documentFilter.documentType = DocumentType(rawValue: documentType)
|
|
214
|
+
}
|
|
215
|
+
return documentFilter
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
static func deserializeDetailedFieldType(_ detailedFieldTypeDict: Dictionary<String, Any>?) -> DetailedFieldType? {
|
|
219
|
+
if let fieldType = detailedFieldTypeDict?["fieldType"] as? String,
|
|
220
|
+
let alphabetType = detailedFieldTypeDict?["alphabetType"] as? String,
|
|
221
|
+
let fieldTypeValue = FieldType.init(rawValue: fieldType),
|
|
222
|
+
let alphabetTypeValue = AlphabetType(rawValue: alphabetType) {
|
|
223
|
+
return DetailedFieldType(
|
|
224
|
+
fieldType: fieldTypeValue,
|
|
225
|
+
alphabetType: alphabetTypeValue)
|
|
226
|
+
}
|
|
227
|
+
return nil
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
static func deserializeCustomDocumentAnonymizationSettings(_ customAnonymizationArray: Array<Dictionary<String, Any>>) -> [DocumentAnonymizationSettings] {
|
|
231
|
+
var documentAnonymizationSettingsArray = Array<DocumentAnonymizationSettings>()
|
|
232
|
+
|
|
233
|
+
for customAnonymizationDict in customAnonymizationArray {
|
|
234
|
+
guard let fields = customAnonymizationDict["fields"] as? Array<String> else { continue }
|
|
235
|
+
var documentAnonymizationSettings = DocumentAnonymizationSettings(fields: deserializeFieldType(fields))
|
|
236
|
+
|
|
237
|
+
if let documentFilter = customAnonymizationDict["documentFilter"] as? Dictionary<String, Any> {
|
|
238
|
+
documentAnonymizationSettings.documentFilter = deserializeDocumentFilter(documentFilter)
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if let documentNumberAnonymizationSettings = customAnonymizationDict["documentNumberAnonymizationSettings"] as? Dictionary<String, Any> {
|
|
242
|
+
documentAnonymizationSettings.documentNumberAnonymizationSettings = deserializeDocumentNumberAnonymizationSettings(documentNumberAnonymizationSettings)
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
documentAnonymizationSettingsArray.append(documentAnonymizationSettings)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
return documentAnonymizationSettingsArray
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
static func deserializeDocumentNumberAnonymizationSettings(_ documentNumberAnonymizationSettingsDict: Dictionary<String, Any>) -> DocumentNumberAnonymizationSettings {
|
|
252
|
+
var documentNumberAnonymizationSettings = DocumentNumberAnonymizationSettings()
|
|
253
|
+
|
|
254
|
+
if let prefixDigitsVisible = documentNumberAnonymizationSettingsDict["prefixDigitsVisible"] as? Int {
|
|
255
|
+
documentNumberAnonymizationSettings.prefixDigitsVisible = prefixDigitsVisible
|
|
256
|
+
}
|
|
257
|
+
if let suffixDigitsVisible = documentNumberAnonymizationSettingsDict["suffixDigitsVisible"] as? Int {
|
|
258
|
+
documentNumberAnonymizationSettings.suffixDigitsVisible = suffixDigitsVisible
|
|
259
|
+
}
|
|
260
|
+
return documentNumberAnonymizationSettings
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
static func deserializeFieldType(_ fieldType: Array<String>) -> [FieldType] {
|
|
264
|
+
return fieldType.compactMap { FieldType.init(rawValue: $0) }
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
static func deserializeClassFilter(_ classFilterDictArr: Dictionary<String, Any>?, _ classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo) -> Bool {
|
|
268
|
+
guard let sanitizedDict = sanitizeDictionary(classFilterDictArr) else { return true}
|
|
269
|
+
var includeClass = false
|
|
270
|
+
var excludeClass = true
|
|
271
|
+
|
|
272
|
+
if let includedClasses = sanitizedDict["includeDocuments"] as? Array<Dictionary<String, Any>> {
|
|
273
|
+
for includedClass in includedClasses {
|
|
274
|
+
includeClass = includeClass || matchClassFilter(includedClass, classInfo: classInfo)
|
|
275
|
+
}
|
|
276
|
+
} else {
|
|
277
|
+
includeClass = true
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if let excludedClasses = sanitizedDict["excludeDocuments"] as? Array<Dictionary<String, Any>> {
|
|
281
|
+
for excludedClass in excludedClasses {
|
|
282
|
+
excludeClass = excludeClass && !matchClassFilter(excludedClass, classInfo: classInfo)
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
return includeClass && excludeClass
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
static func matchClassFilter(_ filteredClass: Dictionary<String, Any>, classInfo: BlinkID.BlinkIDSDK.DocumentClassInfo) -> Bool {
|
|
290
|
+
let country = filteredClass["country"] as? String
|
|
291
|
+
let type = filteredClass["documentType"] as? String
|
|
292
|
+
let region = filteredClass["region"] as? String
|
|
293
|
+
|
|
294
|
+
return (country == nil || classInfo.country == Country.init(rawValue: country!)) &&
|
|
295
|
+
(type == nil || classInfo.documentType == DocumentType.init(rawValue: type!) &&
|
|
296
|
+
(region == nil || classInfo.region == Region.init(rawValue: region!)))
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
static func deseralizeDetectionLevel(_ value: Int) -> DetectionLevel {
|
|
300
|
+
switch value {
|
|
301
|
+
case 0:
|
|
302
|
+
return DetectionLevel.off
|
|
303
|
+
case 1:
|
|
304
|
+
return DetectionLevel.low
|
|
305
|
+
case 2:
|
|
306
|
+
return DetectionLevel.mid
|
|
307
|
+
case 3:
|
|
308
|
+
return DetectionLevel.high
|
|
309
|
+
default:
|
|
310
|
+
return DetectionLevel.mid
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
static func deseralizeScanningMode(_ value: Int) -> ScanningMode {
|
|
315
|
+
switch value {
|
|
316
|
+
case 0:
|
|
317
|
+
return ScanningMode.single
|
|
318
|
+
case 1:
|
|
319
|
+
return ScanningMode.automatic
|
|
320
|
+
default:
|
|
321
|
+
return ScanningMode.automatic
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
static func sanitizeDictionary(_ dictionary: Dictionary<String, Any>?) -> Dictionary<String, Any>? {
|
|
326
|
+
if let dictionary = dictionary {
|
|
327
|
+
var sanitized = dictionary
|
|
328
|
+
for (key, value) in dictionary {
|
|
329
|
+
if value is NSNull {
|
|
330
|
+
sanitized[key] = nil
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return sanitized
|
|
334
|
+
}
|
|
335
|
+
return nil
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
static func deserializeBase64Image(_ base64Image: String?) -> UIImage? {
|
|
339
|
+
if let base64Image = base64Image,
|
|
340
|
+
let data = Data(base64Encoded: base64Image, options: .ignoreUnknownCharacters) {
|
|
341
|
+
return UIImage(data: data)
|
|
342
|
+
}
|
|
343
|
+
return nil
|
|
344
|
+
}
|
|
345
|
+
}
|