@regulaforensics/face-sdk 7.1.210-rc → 7.1.252-beta
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/README.md +1 -1
- package/RNFaceSDK.podspec +3 -3
- package/android/CVDFaceSDK.kt +22 -8
- package/android/build.gradle +1 -1
- package/android/cordova.gradle +1 -1
- package/android/src/main/java/com/regula/plugin/facesdk/Config.kt +9 -1
- package/android/src/main/java/com/regula/plugin/facesdk/JSONConstructor.kt +2 -0
- package/android/src/main/java/com/regula/plugin/facesdk/Main.kt +15 -9
- package/android/src/main/java/com/regula/plugin/facesdk/RNFaceApiModule.kt +16 -6
- package/android/src/main/java/com/regula/plugin/facesdk/Utils.kt +32 -2
- package/examples/capacitor/README.md +3 -8
- package/examples/capacitor/android/app/build.gradle +2 -6
- package/examples/capacitor/android/app/capacitor.build.gradle +4 -4
- package/examples/capacitor/android/app/src/main/AndroidManifest.xml +3 -16
- package/examples/capacitor/android/app/src/main/java/com/regula/{faceapi → documentreader}/MainActivity.java +1 -1
- package/examples/capacitor/android/app/src/main/res/values/strings.xml +2 -2
- package/examples/capacitor/android/build.gradle +1 -1
- package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.properties +2 -1
- package/examples/capacitor/android/gradlew +21 -13
- package/examples/capacitor/android/gradlew.bat +12 -10
- package/examples/capacitor/android/variables.gradle +11 -11
- package/examples/capacitor/index.html +8 -104
- package/examples/capacitor/ios/App/App.xcodeproj/project.pbxproj +4 -4
- package/examples/capacitor/ios/App/Podfile +2 -3
- package/examples/capacitor/ios/App/Podfile.lock +57 -0
- package/examples/capacitor/package-lock.json +3536 -0
- package/examples/capacitor/package.json +19 -56
- package/examples/capacitor/public/images/portrait.png +0 -0
- package/examples/capacitor/scripts/setup.sh +2 -0
- package/examples/capacitor/src/main.css +77 -0
- package/examples/capacitor/src/main.html +22 -0
- package/examples/capacitor/src/main.tsx +152 -11
- package/examples/capacitor/tsconfig.json +1 -17
- package/examples/capacitor/vite.config.ts +10 -9
- package/examples/cordova/README.md +4 -6
- package/examples/cordova/config.xml +4 -15
- package/examples/cordova/package-lock.json +1333 -0
- package/examples/cordova/package.json +8 -12
- package/examples/cordova/scripts/setup.sh +4 -1
- package/examples/cordova/www/images/portrait.png +0 -0
- package/examples/cordova/www/index.html +19 -92
- package/examples/cordova/www/src/main.css +77 -0
- package/examples/cordova/www/src/main.html +22 -0
- package/examples/cordova/www/{js/index.js → src/main.js} +41 -43
- package/examples/ionic/README.md +3 -6
- package/examples/ionic/angular.json +6 -154
- package/examples/ionic/config.xml +4 -93
- package/examples/ionic/index.html +19 -0
- package/examples/ionic/index.ts +17 -0
- package/examples/ionic/package-lock.json +13777 -0
- package/examples/ionic/package.json +24 -75
- package/examples/ionic/scripts/setup.sh +4 -1
- package/examples/ionic/src/images/portrait.png +0 -0
- package/examples/ionic/src/main.css +77 -0
- package/examples/ionic/src/main.html +22 -0
- package/examples/ionic/src/main.ts +157 -8
- package/examples/ionic/tsconfig.json +6 -20
- package/examples/react-native/Gemfile +7 -0
- package/examples/react-native/Gemfile.lock +28 -21
- package/examples/react-native/README.md +4 -10
- package/examples/react-native/android/app/build.gradle +2 -70
- package/examples/react-native/android/app/src/main/AndroidManifest.xml +21 -21
- package/examples/react-native/android/app/src/main/java/com/regula/{face/api → documentreader}/MainActivity.kt +2 -2
- package/examples/react-native/android/app/src/main/java/com/regula/{face/api → documentreader}/MainApplication.kt +1 -1
- package/examples/react-native/android/build.gradle +3 -3
- package/examples/react-native/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/examples/react-native/android/gradle.properties +0 -34
- package/examples/react-native/android/gradlew +1 -2
- package/examples/react-native/android/settings.gradle +1 -1
- package/examples/react-native/images/portrait.png +0 -0
- package/examples/react-native/index.html +11 -0
- package/examples/react-native/index.tsx +51 -0
- package/examples/react-native/ios/{FaceSDK → App}/AppDelegate.mm +1 -1
- package/examples/react-native/ios/{FaceSDK.xcodeproj → App.xcodeproj}/project.pbxproj +52 -269
- package/examples/react-native/ios/{FaceSDK.xcodeproj/xcshareddata/xcschemes/FaceSDK.xcscheme → App.xcodeproj/xcshareddata/xcschemes/App.xcscheme} +9 -27
- package/examples/react-native/ios/{FaceSDK.xcworkspace → App.xcworkspace}/contents.xcworkspacedata +1 -1
- package/examples/react-native/ios/Podfile +3 -6
- package/examples/react-native/ios/Podfile.lock +565 -512
- package/examples/react-native/metro.config.js +16 -11
- package/examples/react-native/package-lock.json +2121 -6901
- package/examples/react-native/package.json +12 -34
- package/examples/react-native/patches/react-native-webview+13.13.5.patch +36 -0
- package/examples/react-native/scripts/android.sh +5 -0
- package/examples/react-native/scripts/ios.sh +5 -1
- package/examples/react-native/src/main.css +77 -0
- package/examples/react-native/src/main.html +22 -0
- package/examples/react-native/{App.tsx → src/main.tsx} +19 -86
- package/ios/RFSWConfig.m +7 -1
- package/ios/RFSWJSONConstructor.h +2 -0
- package/ios/RFSWJSONConstructor.m +32 -15
- package/ios/RFSWMain.m +1 -1
- package/package.json +1 -1
- package/plugin.xml +4 -4
- package/www/capacitor/detect_faces/detect_faces_request.js +2 -0
- package/www/capacitor/face_capture/face_capture_config.js +6 -2
- package/www/capacitor/image_quality/image_quality_characteristic.js +2 -0
- package/www/capacitor/image_quality/image_quality_group.js +1 -0
- package/www/capacitor/init/init_config.js +8 -0
- package/www/capacitor/internal/bridge.js +8 -7
- package/www/capacitor/liveness/liveness_backend_exception.js +8 -0
- package/www/capacitor/liveness/liveness_config.js +3 -3
- package/www/capacitor/person_database/person_database.js +1 -1
- package/www/cordova.js +109 -80
- package/www/react-native/detect_faces/detect_faces_request.js +2 -0
- package/www/react-native/face_capture/face_capture_config.js +6 -2
- package/www/react-native/image_quality/image_quality_characteristic.js +2 -0
- package/www/react-native/image_quality/image_quality_group.js +1 -0
- package/www/react-native/init/init_config.js +8 -0
- package/www/react-native/internal/bridge.js +8 -7
- package/www/react-native/liveness/liveness_backend_exception.js +8 -0
- package/www/react-native/liveness/liveness_config.js +3 -3
- package/www/react-native/person_database/person_database.js +1 -1
- package/www/types/face_capture/face_capture_config.d.ts +6 -1
- package/www/types/init/init_config.d.ts +7 -1
- package/www/types/liveness/liveness_backend_exception.d.ts +9 -1
- package/www/types/liveness/liveness_config.d.ts +1 -1
- package/www/types/person_database/person_database.d.ts +1 -1
- package/.gitlab/report.yaml +0 -75
- package/.gitlab-ci.yml +0 -49
- package/examples/capacitor/.browserslistrc +0 -6
- package/examples/capacitor/.eslintrc.js +0 -17
- package/examples/capacitor/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
- package/examples/capacitor/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
- package/examples/capacitor/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
- package/examples/capacitor/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
- package/examples/capacitor/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/examples/capacitor/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
- package/examples/capacitor/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/examples/capacitor/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/examples/capacitor/android/app/src/main/res/values/ic_launcher_background.xml +0 -4
- package/examples/capacitor/android/app/src/main/res/xml/file_paths.xml +0 -5
- package/examples/capacitor/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
- package/examples/capacitor/capacitor.config.ts +0 -12
- package/examples/capacitor/cypress/e2e/test.cy.ts +0 -6
- package/examples/capacitor/cypress/fixtures/example.json +0 -5
- package/examples/capacitor/cypress/support/commands.ts +0 -37
- package/examples/capacitor/cypress/support/e2e.ts +0 -20
- package/examples/capacitor/cypress.config.ts +0 -10
- package/examples/capacitor/public/assets/img/id.png +0 -0
- package/examples/capacitor/public/assets/img/portrait.png +0 -0
- package/examples/capacitor/public/favicon.png +0 -0
- package/examples/capacitor/public/manifest.json +0 -21
- package/examples/capacitor/src/App.test.tsx +0 -8
- package/examples/capacitor/src/App.tsx +0 -42
- package/examples/capacitor/src/components/ExploreContainer.css +0 -24
- package/examples/capacitor/src/components/ExploreContainer.tsx +0 -14
- package/examples/capacitor/src/pages/Home.tsx +0 -159
- package/examples/capacitor/src/setupTests.ts +0 -14
- package/examples/capacitor/src/theme/variables.css +0 -242
- package/examples/capacitor/src/vite-env.d.ts +0 -1
- package/examples/capacitor/tsconfig.node.json +0 -9
- package/examples/cordova/jsconfig.json +0 -1
- package/examples/cordova/www/css/index.css +0 -107
- package/examples/cordova/www/img/id.png +0 -0
- package/examples/cordova/www/img/portrait.png +0 -0
- package/examples/ionic/browserslist +0 -12
- package/examples/ionic/e2e/protractor.conf.js +0 -28
- package/examples/ionic/e2e/src/app.e2e-spec.ts +0 -14
- package/examples/ionic/e2e/src/app.po.ts +0 -11
- package/examples/ionic/e2e/tsconfig.json +0 -13
- package/examples/ionic/karma.conf.js +0 -31
- package/examples/ionic/resources/README.md +0 -8
- package/examples/ionic/resources/android/icon/drawable-hdpi-icon.png +0 -0
- package/examples/ionic/resources/android/icon/drawable-ldpi-icon.png +0 -0
- package/examples/ionic/resources/android/icon/drawable-mdpi-icon.png +0 -0
- package/examples/ionic/resources/android/icon/drawable-xhdpi-icon.png +0 -0
- package/examples/ionic/resources/android/icon/drawable-xxhdpi-icon.png +0 -0
- package/examples/ionic/resources/android/icon/drawable-xxxhdpi-icon.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-land-hdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-land-ldpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-land-mdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-land-xhdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-land-xxhdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-land-xxxhdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-port-hdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-port-ldpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-port-mdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-port-xhdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-port-xxhdpi-screen.png +0 -0
- package/examples/ionic/resources/android/splash/drawable-port-xxxhdpi-screen.png +0 -0
- package/examples/ionic/resources/android/xml/network_security_config.xml +0 -6
- package/examples/ionic/resources/ios/icon/icon-1024.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-20.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-20@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-20@3x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-24@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-27.5@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-29.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-29@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-29@3x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-40.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-40@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-40@3x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-44@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-50.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-50@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-60.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-60@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-60@3x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-72.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-72@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-76.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-76@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-83.5@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-86@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-98@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-small.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-small@2x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon-small@3x.png +0 -0
- package/examples/ionic/resources/ios/icon/icon.png +0 -0
- package/examples/ionic/resources/ios/icon/icon@2x.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-2436h.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-667h.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-736h.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Landscape-2436h.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Landscape-736h.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Landscape~ipad.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
- package/examples/ionic/resources/ios/splash/Default-Portrait~ipad.png +0 -0
- package/examples/ionic/resources/ios/splash/Default@2x~iphone.png +0 -0
- package/examples/ionic/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
- package/examples/ionic/resources/ios/splash/Default~iphone.png +0 -0
- package/examples/ionic/resources/splash.png +0 -0
- package/examples/ionic/src/app/app-routing.module.ts +0 -15
- package/examples/ionic/src/app/app.component.html +0 -3
- package/examples/ionic/src/app/app.component.spec.ts +0 -47
- package/examples/ionic/src/app/app.component.ts +0 -27
- package/examples/ionic/src/app/app.module.ts +0 -23
- package/examples/ionic/src/app/home/home.module.ts +0 -29
- package/examples/ionic/src/app/home/home.page.html +0 -75
- package/examples/ionic/src/app/home/home.page.scss +0 -1
- package/examples/ionic/src/app/home/home.page.spec.ts +0 -24
- package/examples/ionic/src/app/home/home.page.ts +0 -166
- package/examples/ionic/src/assets/icon/favicon.png +0 -0
- package/examples/ionic/src/assets/img/portrait.png +0 -0
- package/examples/ionic/src/assets/shapes.svg +0 -1
- package/examples/ionic/src/environments/environment.prod.ts +0 -3
- package/examples/ionic/src/environments/environment.ts +0 -16
- package/examples/ionic/src/global.scss +0 -31
- package/examples/ionic/src/index.html +0 -25
- package/examples/ionic/src/polyfills.ts +0 -66
- package/examples/ionic/src/test.ts +0 -20
- package/examples/ionic/src/theme/variables.scss +0 -77
- package/examples/ionic/src/zone-flags.ts +0 -5
- package/examples/ionic/tsconfig.app.json +0 -14
- package/examples/ionic/tsconfig.spec.json +0 -19
- package/examples/ionic/tslint.json +0 -88
- package/examples/react-native/.watchmanconfig +0 -1
- package/examples/react-native/android/app/proguard-rules.pro +0 -10
- package/examples/react-native/android/app/src/debug/AndroidManifest.xml +0 -9
- package/examples/react-native/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
- package/examples/react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/examples/react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/examples/react-native/android/app/src/main/res/values/strings.xml +0 -3
- package/examples/react-native/android/app/src/main/res/values/styles.xml +0 -9
- package/examples/react-native/app.json +0 -5
- package/examples/react-native/index.js +0 -5
- package/examples/react-native/ios/FaceSDKTests/FaceSDKTests.m +0 -66
- package/examples/react-native/ios/FaceSDKTests/Info.plist +0 -24
- /package/examples/capacitor/android/app/src/main/res/{mipmap-xxxhdpi → drawable}/ic_launcher.png +0 -0
- /package/examples/cordova/www/{img → images}/logo.png +0 -0
- /package/examples/ionic/src/{app/app.component.scss → assets/.gitkeep} +0 -0
- /package/examples/ionic/{resources → src/images}/icon.png +0 -0
- /package/examples/react-native/android/app/src/main/res/{mipmap-xxxhdpi → drawable}/ic_launcher.png +0 -0
- /package/examples/react-native/android/app/src/main/res/{mipmap-xxxhdpi → drawable}/ic_launcher_round.png +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/AppDelegate.h +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/Images.xcassets/Contents.json +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/Info.plist +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/LaunchScreen.storyboard +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/PrivacyInfo.xcprivacy +0 -0
- /package/examples/react-native/ios/{FaceSDK → App}/main.m +0 -0
- /package/examples/react-native/ios/{FaceSDK.xcworkspace → App.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist +0 -0
|
@@ -1,96 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "face-sdk",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"author": "Ionic Framework",
|
|
5
|
-
"homepage": "https://ionicframework.com/",
|
|
6
3
|
"scripts": {
|
|
7
4
|
"setup": "scripts/setup.sh",
|
|
8
5
|
"ios": "scripts/ios.sh",
|
|
9
|
-
"android": "scripts/android.sh"
|
|
10
|
-
"ng": "ng",
|
|
11
|
-
"start": "ng serve",
|
|
12
|
-
"build": "ng build",
|
|
13
|
-
"test": "ng test",
|
|
14
|
-
"lint": "ng lint",
|
|
15
|
-
"e2e": "ng e2e"
|
|
6
|
+
"android": "scripts/android.sh"
|
|
16
7
|
},
|
|
17
|
-
"private": true,
|
|
18
8
|
"dependencies": {
|
|
19
|
-
"@regulaforensics/face-sdk": "7.1.
|
|
20
|
-
"@regulaforensics/face-core-basic": "7.1.
|
|
21
|
-
"cordova-
|
|
22
|
-
"@awesome-cordova-plugins/camera": "6.
|
|
23
|
-
"@awesome-cordova-plugins/
|
|
24
|
-
"@awesome-cordova-plugins/dialogs": "6.14.0",
|
|
25
|
-
"@awesome-cordova-plugins/splash-screen": "6.14.0",
|
|
26
|
-
"@awesome-cordova-plugins/status-bar": "6.14.0",
|
|
27
|
-
"@awesome-cordova-plugins/file": "6.14.0",
|
|
28
|
-
"@angular/common": "~13.3.2",
|
|
29
|
-
"@angular/core": "~13.3.2",
|
|
30
|
-
"@angular/forms": "~13.3.2",
|
|
31
|
-
"@angular/platform-browser": "~13.3.2",
|
|
32
|
-
"@angular/platform-browser-dynamic": "~13.3.2",
|
|
33
|
-
"@angular/router": "~13.3.2",
|
|
34
|
-
"@ionic/angular": "^6.0.15",
|
|
35
|
-
"@ionic/cordova-builders": "^6.1.0",
|
|
36
|
-
"cordova-android": "13.0.0",
|
|
9
|
+
"@regulaforensics/face-sdk": "7.1.252-beta",
|
|
10
|
+
"@regulaforensics/face-core-basic": "7.1.99-beta",
|
|
11
|
+
"@awesome-cordova-plugins/file": "6.16.0",
|
|
12
|
+
"@awesome-cordova-plugins/camera": "6.16.0",
|
|
13
|
+
"@awesome-cordova-plugins/dialogs": "6.16.0",
|
|
37
14
|
"cordova-ios": "7.1.1",
|
|
38
|
-
"cordova-
|
|
39
|
-
"cordova-plugin-
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"@angular-
|
|
48
|
-
"@angular
|
|
49
|
-
"@angular-
|
|
50
|
-
"@angular-devkit/
|
|
51
|
-
"@angular
|
|
52
|
-
"@
|
|
53
|
-
"@angular/compiler-cli": "~13.3.2",
|
|
54
|
-
"@angular/language-service": "~13.3.2",
|
|
55
|
-
"@ionic/angular-toolkit": "^6.1.0",
|
|
56
|
-
"@types/jasmine": "~3.5.14",
|
|
57
|
-
"@types/jasminewd2": "~2.0.8",
|
|
58
|
-
"@types/node": "~14.11.5",
|
|
59
|
-
"codelyzer": "^6.0.1",
|
|
60
|
-
"cordova-plugin-device": "^3.0.0",
|
|
61
|
-
"cordova-plugin-ionic-keyboard": "^2.2.0",
|
|
62
|
-
"cordova-plugin-ionic-webview": "^5.0.0",
|
|
63
|
-
"cordova-plugin-splashscreen": "^6.0.0",
|
|
64
|
-
"cordova-plugin-statusbar": "^2.4.3",
|
|
65
|
-
"jasmine-core": "~4.0.1",
|
|
66
|
-
"jasmine-spec-reporter": "~6.0.0",
|
|
67
|
-
"karma": "~6.3.17",
|
|
68
|
-
"karma-chrome-launcher": "~3.1.0",
|
|
69
|
-
"karma-coverage-istanbul-reporter": "~3.0.3",
|
|
70
|
-
"karma-jasmine": "~4.0.1",
|
|
71
|
-
"karma-jasmine-html-reporter": "^1.5.4",
|
|
72
|
-
"protractor": "~7.0.0",
|
|
73
|
-
"ts-node": "~9.0.0",
|
|
74
|
-
"tslint": "~5.20.1",
|
|
75
|
-
"typescript": "~4.4.2"
|
|
15
|
+
"cordova-android": "13.0.0",
|
|
16
|
+
"cordova-plugin-file": "8.1.3",
|
|
17
|
+
"cordova-plugin-camera": "8.0.0",
|
|
18
|
+
"cordova-plugin-dialogs": "2.0.2",
|
|
19
|
+
"cordova-plugin-ionic-webview": "5.0.1",
|
|
20
|
+
"@angular/cli": "19.2.10",
|
|
21
|
+
"@angular/core": "19.2.9",
|
|
22
|
+
"@angular/common": "19.2.9",
|
|
23
|
+
"@angular/forms": "19.2.9",
|
|
24
|
+
"@angular/compiler-cli": "19.2.9",
|
|
25
|
+
"@angular/router": "19.2.9",
|
|
26
|
+
"@angular/platform-browser-dynamic": "19.2.9",
|
|
27
|
+
"@angular-devkit/build-angular": "19.2.10",
|
|
28
|
+
"@ionic/angular": "8.5.6",
|
|
29
|
+
"@ionic/cordova-builders": "12.2.0"
|
|
76
30
|
},
|
|
77
|
-
"description": "An Ionic project",
|
|
78
31
|
"cordova": {
|
|
79
32
|
"plugins": {
|
|
80
33
|
"@regulaforensics/face-sdk": {},
|
|
81
34
|
"@regulaforensics/face-core-basic": {},
|
|
35
|
+
"cordova-plugin-file": {},
|
|
82
36
|
"cordova-plugin-camera": {},
|
|
83
37
|
"cordova-plugin-dialogs": {},
|
|
84
|
-
"cordova-plugin-
|
|
85
|
-
"cordova-plugin-device": {},
|
|
86
|
-
"cordova-plugin-splashscreen": {},
|
|
87
|
-
"cordova-plugin-ionic-webview": {},
|
|
88
|
-
"cordova-plugin-ionic-keyboard": {},
|
|
89
|
-
"cordova-plugin-file": {}
|
|
38
|
+
"cordova-plugin-ionic-webview": {}
|
|
90
39
|
},
|
|
91
40
|
"platforms": [
|
|
92
41
|
"android",
|
|
93
42
|
"ios"
|
|
94
43
|
]
|
|
95
44
|
}
|
|
96
|
-
}
|
|
45
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
html,
|
|
2
|
+
body {
|
|
3
|
+
width: 99%;
|
|
4
|
+
height: 99vh;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.page {
|
|
10
|
+
height: 100%;
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.column {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
width: 100%;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.row {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: row;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.header {
|
|
31
|
+
text-align: center;
|
|
32
|
+
padding-top: 80px;
|
|
33
|
+
margin-top: -10px;
|
|
34
|
+
background-color: rgba(0, 0, 0, 0.03);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.title {
|
|
38
|
+
font-weight: 600;
|
|
39
|
+
font-size: 18px;
|
|
40
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.divider {
|
|
44
|
+
height: 1px;
|
|
45
|
+
background-color: rgba(0, 0, 0, 0.075);
|
|
46
|
+
margin-top: 13px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.no-scroll {
|
|
50
|
+
flex-grow: 1;
|
|
51
|
+
overflow-y: hidden;
|
|
52
|
+
overflow-x: hidden;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.button {
|
|
56
|
+
width: 175px;
|
|
57
|
+
height: 40px;
|
|
58
|
+
margin: 5px;
|
|
59
|
+
margin-top: 10px;
|
|
60
|
+
background-color: #4285F4;
|
|
61
|
+
color: white;
|
|
62
|
+
border: none;
|
|
63
|
+
padding: 10px 20px;
|
|
64
|
+
font-size: 16px;
|
|
65
|
+
border-radius: 100px;
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
transition: all 0.3s ease;
|
|
68
|
+
user-select: none;
|
|
69
|
+
-webkit-user-select: none;
|
|
70
|
+
-moz-user-select: none;
|
|
71
|
+
-ms-user-select: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.button:active {
|
|
75
|
+
position: relative;
|
|
76
|
+
top: 1px;
|
|
77
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<div class="page">
|
|
2
|
+
<div class="column header">
|
|
3
|
+
<span id="status" class="title">Loading...</span>
|
|
4
|
+
<div class="column divider"></div>
|
|
5
|
+
</div>
|
|
6
|
+
<div id="main" class="column no-scroll">
|
|
7
|
+
<div class="column">
|
|
8
|
+
<img id="first-image" src="images/portrait.png" width="150px" style="padding: 10px">
|
|
9
|
+
<img id="second-image" src="images/portrait.png" width="150px" style="padding: 10px">
|
|
10
|
+
</div>
|
|
11
|
+
<div class="column" style="padding: 10px">
|
|
12
|
+
<button id="match-faces" class="button">Match</button>
|
|
13
|
+
<button id="start-liveness" class="button">Liveness</button>
|
|
14
|
+
<button id="clear-results" class="button">Clear</button>
|
|
15
|
+
</div>
|
|
16
|
+
<div>
|
|
17
|
+
Similarity: <span style="margin-right: 15px" id="similarity-status">null</span> Liveness: <span
|
|
18
|
+
id="liveness-status">null</span>
|
|
19
|
+
</div>
|
|
20
|
+
<div style="padding-top: 100px;"></div>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
@@ -1,12 +1,161 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Component } from '@angular/core'
|
|
2
|
+
import { Dialogs } from '@awesome-cordova-plugins/dialogs/ngx'
|
|
3
|
+
import { File } from '@awesome-cordova-plugins/file'
|
|
4
|
+
import { Camera, DestinationType, MediaType, PictureSourceType } from '@awesome-cordova-plugins/camera/ngx'
|
|
5
|
+
import { Platform } from '@ionic/angular'
|
|
6
|
+
import { FaceSDK, MatchFacesRequest, MatchFacesImage, InitConfig, LivenessSkipStep, ImageType, LivenessStatus, LivenessConfig } from '@regulaforensics/face-sdk'
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
async function init() {
|
|
9
|
+
if (!await initialize()) return
|
|
10
|
+
setStatus("Ready")
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async function startLiveness() {
|
|
14
|
+
var response = await faceSdk.startLiveness({
|
|
15
|
+
config: new LivenessConfig({
|
|
16
|
+
skipStep: [LivenessSkipStep.ONBOARDING_STEP]
|
|
17
|
+
}),
|
|
18
|
+
notificationCompletion: (notification) => {
|
|
19
|
+
console.log("LivenessStatus: " + notification.status)
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
if (response.image == null) return
|
|
23
|
+
setImage("data:image/png;base64," + response.image, ImageType.LIVE, 1)
|
|
24
|
+
setLivenessStatus(response.liveness == LivenessStatus.PASSED ? "passed" : "unknown")
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async function matchFaces() {
|
|
28
|
+
if (image1 == null || image2 == null) {
|
|
29
|
+
setStatus("Both images required!")
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
setStatus("Processing...")
|
|
33
|
+
var request = new MatchFacesRequest([image1, image2])
|
|
34
|
+
var response = await faceSdk.matchFaces(request)
|
|
35
|
+
var split = await faceSdk.splitComparedFaces(response.results, 0.75)
|
|
36
|
+
var match = split.matchedFaces
|
|
37
|
+
setSimilarityStatus("failed")
|
|
38
|
+
if (match.length > 0)
|
|
39
|
+
setSimilarityStatus((match[0].similarity * 100).toFixed(2) + "%")
|
|
40
|
+
setStatus("Ready")
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function clearResults() {
|
|
44
|
+
setStatus("Ready")
|
|
45
|
+
setSimilarityStatus("null")
|
|
46
|
+
setLivenessStatus("null")
|
|
47
|
+
resetImages()
|
|
48
|
+
image1 = null
|
|
49
|
+
image2 = null
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// If 'regula.license' exists, init using license(enables offline match)
|
|
53
|
+
// otherwise init without license.
|
|
54
|
+
async function initialize() {
|
|
55
|
+
setStatus("Initializing...")
|
|
56
|
+
|
|
57
|
+
var license = await loadAssetIfExists("regula.license")
|
|
58
|
+
var config: InitConfig | undefined
|
|
59
|
+
if (license != null) config = new InitConfig(license)
|
|
60
|
+
var [success, error] = await faceSdk.initialize({ config: config })
|
|
61
|
+
|
|
62
|
+
if (!success && error != null) {
|
|
63
|
+
setStatus(error.message)
|
|
64
|
+
console.log(error.code + ": " + error.message)
|
|
65
|
+
}
|
|
66
|
+
return success
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function setImage(base64: string, type: number, position: number) {
|
|
70
|
+
setSimilarityStatus("null")
|
|
71
|
+
var mfImage = new MatchFacesImage(base64, type)
|
|
72
|
+
if (position == 1) {
|
|
73
|
+
image1 = mfImage
|
|
74
|
+
setUiImage1(base64)
|
|
75
|
+
setLivenessStatus("null")
|
|
76
|
+
}
|
|
77
|
+
if (position == 2) {
|
|
78
|
+
image2 = mfImage
|
|
79
|
+
setUiImage2(base64)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
6
82
|
|
|
7
|
-
|
|
8
|
-
|
|
83
|
+
async function useCamera(position: number) {
|
|
84
|
+
var response = await faceSdk.startFaceCapture()
|
|
85
|
+
if (response.image == null) return
|
|
86
|
+
var image = response.image
|
|
87
|
+
setImage("data:image/png;base64," + image.image, image.imageType, position)
|
|
9
88
|
}
|
|
10
89
|
|
|
11
|
-
|
|
12
|
-
|
|
90
|
+
async function useGallery(position: number) {
|
|
91
|
+
var image = await app.camera.getPicture({
|
|
92
|
+
destinationType: DestinationType.DATA_URL,
|
|
93
|
+
mediaType: MediaType.PICTURE,
|
|
94
|
+
sourceType: PictureSourceType.PHOTOLIBRARY
|
|
95
|
+
})
|
|
96
|
+
setImage(image, ImageType.PRINTED, position)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
async function pickImage(position: number) {
|
|
100
|
+
var option = await app.dialogs.confirm("", "Select option", ["Use gallery", "Use camera"])
|
|
101
|
+
if (option == 1) useGallery(position)
|
|
102
|
+
else useCamera(position)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async function loadAssetIfExists(path: string): Promise<string | null> {
|
|
106
|
+
try {
|
|
107
|
+
var dir = await File.resolveDirectoryUrl(File.applicationDirectory + "www/assets")
|
|
108
|
+
var fileEntry = await File.getFile(dir, path, null)
|
|
109
|
+
var result = await new Promise<string | null>((resolve, _) => {
|
|
110
|
+
fileEntry.file(file => {
|
|
111
|
+
var reader = new FileReader()
|
|
112
|
+
reader.onloadend = (_) => resolve(reader.result as string)
|
|
113
|
+
reader.readAsDataURL(file)
|
|
114
|
+
}, _ => resolve(null))
|
|
115
|
+
})
|
|
116
|
+
return result
|
|
117
|
+
} catch (_) {
|
|
118
|
+
return null
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
var app: Main
|
|
123
|
+
var faceSdk = FaceSDK.instance
|
|
124
|
+
var image1: MatchFacesImage | null
|
|
125
|
+
var image2: MatchFacesImage | null
|
|
126
|
+
|
|
127
|
+
var setStatus = (data: string) => document.getElementById("status").innerHTML = data
|
|
128
|
+
var setLivenessStatus = (data: string) => document.getElementById("liveness-status").innerHTML = data
|
|
129
|
+
var setSimilarityStatus = (data: string) => document.getElementById("similarity-status").innerHTML = data
|
|
130
|
+
var setUiImage1 = (data: string) => (document.getElementById("first-image") as HTMLImageElement).src = data
|
|
131
|
+
var setUiImage2 = (data: string) => (document.getElementById("second-image") as HTMLImageElement).src = data
|
|
132
|
+
var resetImages = () => {
|
|
133
|
+
setUiImage1("images/portrait.png")
|
|
134
|
+
setUiImage2("images/portrait.png")
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@Component({
|
|
138
|
+
selector: 'app-root',
|
|
139
|
+
templateUrl: 'main.html',
|
|
140
|
+
styleUrl: 'main.css'
|
|
141
|
+
})
|
|
142
|
+
export class Main {
|
|
143
|
+
dialogs: Dialogs
|
|
144
|
+
camera: Camera
|
|
145
|
+
|
|
146
|
+
constructor(platform: Platform, dialogs: Dialogs, camera: Camera) {
|
|
147
|
+
platform.ready().then(() => {
|
|
148
|
+
this.dialogs = dialogs
|
|
149
|
+
this.camera = camera
|
|
150
|
+
app = this
|
|
151
|
+
|
|
152
|
+
document.getElementById("first-image").onclick = () => pickImage(1)
|
|
153
|
+
document.getElementById("second-image").onclick = () => pickImage(2)
|
|
154
|
+
document.getElementById("match-faces").onclick = () => matchFaces()
|
|
155
|
+
document.getElementById("start-liveness").onclick = () => startLiveness()
|
|
156
|
+
document.getElementById("clear-results").onclick = () => clearResults()
|
|
157
|
+
|
|
158
|
+
init()
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -1,26 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"include": [
|
|
3
|
+
"*.ts"
|
|
4
|
+
],
|
|
3
5
|
"compilerOptions": {
|
|
4
|
-
"
|
|
5
|
-
"outDir": "./dist/out-tsc",
|
|
6
|
-
"sourceMap": true,
|
|
7
|
-
"declaration": false,
|
|
6
|
+
"types": [],
|
|
8
7
|
"module": "esnext",
|
|
9
8
|
"moduleResolution": "node",
|
|
10
|
-
"emitDecoratorMetadata": true,
|
|
11
9
|
"experimentalDecorators": true,
|
|
12
|
-
"
|
|
13
|
-
"target": "es2015",
|
|
14
|
-
"typeRoots": [
|
|
15
|
-
"node_modules/@types"
|
|
16
|
-
],
|
|
17
|
-
"lib": [
|
|
18
|
-
"es2018",
|
|
19
|
-
"dom"
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"angularCompilerOptions": {
|
|
23
|
-
"fullTemplateTypeCheck": true,
|
|
24
|
-
"strictInjectionParameters": true
|
|
10
|
+
"target": "es2022"
|
|
25
11
|
}
|
|
26
|
-
}
|
|
12
|
+
}
|
|
@@ -7,3 +7,10 @@ ruby ">= 2.6.10"
|
|
|
7
7
|
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
|
|
8
8
|
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
|
|
9
9
|
gem 'xcodeproj', '< 1.26.0'
|
|
10
|
+
gem 'concurrent-ruby', '< 1.3.4'
|
|
11
|
+
|
|
12
|
+
# Ruby 3.4.0 has removed some libraries from the standard library.
|
|
13
|
+
gem 'bigdecimal'
|
|
14
|
+
gem 'logger'
|
|
15
|
+
gem 'benchmark'
|
|
16
|
+
gem 'mutex_m'
|
|
@@ -65,39 +65,41 @@ GEM
|
|
|
65
65
|
netrc (~> 0.11)
|
|
66
66
|
cocoapods-try (1.2.0)
|
|
67
67
|
colored2 (3.1.2)
|
|
68
|
-
concurrent-ruby (1.3.
|
|
69
|
-
connection_pool (2.5.
|
|
68
|
+
concurrent-ruby (1.3.3)
|
|
69
|
+
connection_pool (2.5.3)
|
|
70
70
|
drb (2.2.1)
|
|
71
71
|
escape (0.0.4)
|
|
72
72
|
ethon (0.16.0)
|
|
73
73
|
ffi (>= 1.15.0)
|
|
74
|
-
ffi (1.17.
|
|
75
|
-
ffi (1.17.
|
|
76
|
-
ffi (1.17.
|
|
77
|
-
ffi (1.17.
|
|
78
|
-
ffi (1.17.
|
|
79
|
-
ffi (1.17.
|
|
80
|
-
ffi (1.17.
|
|
81
|
-
ffi (1.17.
|
|
82
|
-
ffi (1.17.
|
|
83
|
-
ffi (1.17.
|
|
84
|
-
ffi (1.17.
|
|
74
|
+
ffi (1.17.2)
|
|
75
|
+
ffi (1.17.2-aarch64-linux-gnu)
|
|
76
|
+
ffi (1.17.2-aarch64-linux-musl)
|
|
77
|
+
ffi (1.17.2-arm-linux-gnu)
|
|
78
|
+
ffi (1.17.2-arm-linux-musl)
|
|
79
|
+
ffi (1.17.2-arm64-darwin)
|
|
80
|
+
ffi (1.17.2-x86-linux-gnu)
|
|
81
|
+
ffi (1.17.2-x86-linux-musl)
|
|
82
|
+
ffi (1.17.2-x86_64-darwin)
|
|
83
|
+
ffi (1.17.2-x86_64-linux-gnu)
|
|
84
|
+
ffi (1.17.2-x86_64-linux-musl)
|
|
85
85
|
fourflusher (2.3.1)
|
|
86
86
|
fuzzy_match (2.0.4)
|
|
87
87
|
gh_inspector (1.1.3)
|
|
88
|
-
httpclient (2.
|
|
89
|
-
|
|
88
|
+
httpclient (2.9.0)
|
|
89
|
+
mutex_m
|
|
90
|
+
i18n (1.14.7)
|
|
90
91
|
concurrent-ruby (~> 1.0)
|
|
91
|
-
json (2.
|
|
92
|
-
logger (1.
|
|
93
|
-
minitest (5.25.
|
|
92
|
+
json (2.11.3)
|
|
93
|
+
logger (1.7.0)
|
|
94
|
+
minitest (5.25.5)
|
|
94
95
|
molinillo (0.8.0)
|
|
96
|
+
mutex_m (0.3.0)
|
|
95
97
|
nanaimo (0.3.0)
|
|
96
98
|
nap (1.1.0)
|
|
97
99
|
netrc (0.11.0)
|
|
98
100
|
nkf (0.2.0)
|
|
99
101
|
public_suffix (4.0.7)
|
|
100
|
-
rexml (3.4.
|
|
102
|
+
rexml (3.4.1)
|
|
101
103
|
ruby-macho (2.5.1)
|
|
102
104
|
securerandom (0.4.1)
|
|
103
105
|
typhoeus (1.4.1)
|
|
@@ -127,11 +129,16 @@ PLATFORMS
|
|
|
127
129
|
|
|
128
130
|
DEPENDENCIES
|
|
129
131
|
activesupport (>= 6.1.7.5, != 7.1.0)
|
|
132
|
+
benchmark
|
|
133
|
+
bigdecimal
|
|
130
134
|
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
|
|
135
|
+
concurrent-ruby (< 1.3.4)
|
|
136
|
+
logger
|
|
137
|
+
mutex_m
|
|
131
138
|
xcodeproj (< 1.26.0)
|
|
132
139
|
|
|
133
140
|
RUBY VERSION
|
|
134
|
-
ruby 3.4.
|
|
141
|
+
ruby 3.4.2p28
|
|
135
142
|
|
|
136
143
|
BUNDLED WITH
|
|
137
|
-
2.6.
|
|
144
|
+
2.6.3
|
|
@@ -12,20 +12,14 @@
|
|
|
12
12
|
**Note**: this is just one way of running the app. You can also pass `-o` or `--open` argument to the command, and this will open Xcode/Android Studio, then run the app directly from the IDE. Overall, this is a more consistent way, so if you're having troubles running the app from terminal, try running it from the IDE. Just don't forget to make sure that Metro Bundler is running(`npm start`).
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
## How to use
|
|
15
|
+
## How to use offline match
|
|
16
16
|
1. Place a license that supports offline match at `android/app/src/main/assets/regula.license` and `ios/license/regula.license`.
|
|
17
17
|
|
|
18
|
-
2. Change
|
|
19
|
-
```bash
|
|
20
|
-
git init
|
|
21
|
-
npx react-native-rename@latest "FaceSDK" --androidBundleID "ANDROID_ID" --iosBundleID "IOS_ID" --skipGitStatusCheck
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
3. Change core with the following commands:
|
|
18
|
+
2. Change core with the following commands:
|
|
25
19
|
```bash
|
|
26
20
|
npm uninstall @regulaforensics/face-core-basic
|
|
27
21
|
npm install @regulaforensics/face-core-match
|
|
28
|
-
|
|
22
|
+
(cd ios && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install)
|
|
29
23
|
```
|
|
30
24
|
|
|
31
|
-
|
|
25
|
+
3. Turn off the internet and run the app.
|
|
@@ -2,74 +2,11 @@ apply plugin: "com.android.application"
|
|
|
2
2
|
apply plugin: "org.jetbrains.kotlin.android"
|
|
3
3
|
apply plugin: "com.facebook.react"
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* This is the configuration block to customize your React Native Android app.
|
|
7
|
-
* By default you don't need to apply any configuration, just uncomment the lines you need.
|
|
8
|
-
*/
|
|
9
5
|
react {
|
|
10
|
-
/* Folders */
|
|
11
|
-
// The root of your project, i.e. where "package.json" lives. Default is '../..'
|
|
12
|
-
// root = file("../../")
|
|
13
|
-
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
|
|
14
|
-
// reactNativeDir = file("../../node_modules/react-native")
|
|
15
|
-
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
|
|
16
|
-
// codegenDir = file("../../node_modules/@react-native/codegen")
|
|
17
|
-
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
|
|
18
|
-
// cliFile = file("../../node_modules/react-native/cli.js")
|
|
19
|
-
|
|
20
|
-
/* Variants */
|
|
21
|
-
// The list of variants to that are debuggable. For those we're going to
|
|
22
|
-
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
|
|
23
|
-
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
|
|
24
|
-
// debuggableVariants = ["liteDebug", "prodDebug"]
|
|
25
|
-
|
|
26
|
-
/* Bundling */
|
|
27
|
-
// A list containing the node command and its flags. Default is just 'node'.
|
|
28
|
-
// nodeExecutableAndArgs = ["node"]
|
|
29
|
-
//
|
|
30
|
-
// The command to run when bundling. By default is 'bundle'
|
|
31
|
-
// bundleCommand = "ram-bundle"
|
|
32
|
-
//
|
|
33
|
-
// The path to the CLI configuration file. Default is empty.
|
|
34
|
-
// bundleConfig = file(../rn-cli.config.js)
|
|
35
|
-
//
|
|
36
|
-
// The name of the generated asset file containing your JS bundle
|
|
37
|
-
// bundleAssetName = "MyApplication.android.bundle"
|
|
38
|
-
//
|
|
39
|
-
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
|
|
40
|
-
// entryFile = file("../js/MyApplication.android.js")
|
|
41
|
-
//
|
|
42
|
-
// A list of extra flags to pass to the 'bundle' commands.
|
|
43
|
-
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
|
|
44
|
-
// extraPackagerArgs = []
|
|
45
|
-
|
|
46
|
-
/* Hermes Commands */
|
|
47
|
-
// The hermes compiler command to run. By default it is 'hermesc'
|
|
48
|
-
// hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
|
|
49
|
-
//
|
|
50
|
-
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
|
|
51
|
-
// hermesFlags = ["-O", "-output-source-map"]
|
|
52
|
-
|
|
53
|
-
/* Autolinking */
|
|
54
6
|
autolinkLibrariesWithApp()
|
|
55
7
|
}
|
|
56
8
|
|
|
57
|
-
/**
|
|
58
|
-
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
|
|
59
|
-
*/
|
|
60
9
|
def enableProguardInReleaseBuilds = false
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* The preferred build flavor of JavaScriptCore (JSC)
|
|
64
|
-
*
|
|
65
|
-
* For example, to use the international variant, you can use:
|
|
66
|
-
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
|
|
67
|
-
*
|
|
68
|
-
* The international variant includes ICU i18n library and necessary data
|
|
69
|
-
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
|
|
70
|
-
* give correct results when using with locales other than en-US. Note that
|
|
71
|
-
* this variant is about 6MiB larger per architecture than default.
|
|
72
|
-
*/
|
|
73
10
|
def jscFlavor = 'org.webkit:android-jsc:+'
|
|
74
11
|
|
|
75
12
|
android {
|
|
@@ -77,9 +14,9 @@ android {
|
|
|
77
14
|
buildToolsVersion rootProject.ext.buildToolsVersion
|
|
78
15
|
compileSdk rootProject.ext.compileSdkVersion
|
|
79
16
|
|
|
80
|
-
namespace "com.regula.
|
|
17
|
+
namespace "com.regula.documentreader.api.androidtest"
|
|
81
18
|
defaultConfig {
|
|
82
|
-
applicationId "com.regula.
|
|
19
|
+
applicationId "com.regula.documentreader.api.androidtest"
|
|
83
20
|
minSdkVersion rootProject.ext.minSdkVersion
|
|
84
21
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
|
85
22
|
versionCode 1
|
|
@@ -98,23 +35,18 @@ android {
|
|
|
98
35
|
signingConfig signingConfigs.debug
|
|
99
36
|
}
|
|
100
37
|
release {
|
|
101
|
-
// Caution! In production, you need to generate your own keystore file.
|
|
102
|
-
// see https://reactnative.dev/docs/signed-apk-android.
|
|
103
38
|
signingConfig signingConfigs.debug
|
|
104
39
|
minifyEnabled enableProguardInReleaseBuilds
|
|
105
40
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
|
106
41
|
}
|
|
107
42
|
}
|
|
108
|
-
|
|
109
43
|
aaptOptions {
|
|
110
44
|
noCompress "Regula/faceSdkResource.dat"
|
|
111
45
|
}
|
|
112
46
|
}
|
|
113
47
|
|
|
114
48
|
dependencies {
|
|
115
|
-
// The version of react-native is set by the React Native Gradle Plugin
|
|
116
49
|
implementation("com.facebook.react:react-android")
|
|
117
|
-
|
|
118
50
|
if (hermesEnabled.toBoolean()) {
|
|
119
51
|
implementation("com.facebook.react:hermes-android")
|
|
120
52
|
} else {
|