@regulaforensics/face-sdk 8.4.1484-rc → 8.4.1486-nightly
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/Package.swift +1 -1
- package/android/build.gradle.kts +1 -1
- package/android/cordova.gradle.kts +1 -1
- package/examples/capacitor/package-lock.json +0 -555
- package/examples/capacitor/package.json +2 -2
- package/examples/ionic/package-lock.json +299 -831
- package/examples/ionic/package.json +3 -3
- package/examples/react_native/app.config.ts +3 -0
- package/examples/react_native/index.tsx +65 -35
- package/examples/react_native/metro.config.js +1 -3
- package/examples/react_native/package-lock.json +1158 -1159
- package/examples/react_native/package.json +13 -22
- package/examples/react_native/scripts/android.sh +1 -8
- package/examples/react_native/scripts/ios.sh +3 -11
- package/examples/react_native/scripts/setup.sh +0 -4
- package/examples/react_native/scripts/withoutMetroServer.js +86 -0
- package/package.json +1 -1
- package/plugin.xml +2 -2
- package/react-native-face-sdk.podspec +2 -2
- package/test/package-lock.json +2 -5
- package/examples/react_native/index.html +0 -12
|
@@ -4,35 +4,26 @@
|
|
|
4
4
|
"scripts": {
|
|
5
5
|
"setup": "scripts/setup.sh",
|
|
6
6
|
"ios": "scripts/ios.sh",
|
|
7
|
-
"android": "scripts/android.sh"
|
|
8
|
-
"start": "expo start --port \"$npm_package_config_metroPort\""
|
|
7
|
+
"android": "scripts/android.sh"
|
|
9
8
|
},
|
|
10
9
|
"dependencies": {
|
|
11
|
-
"@regulaforensics/face-sdk": "8.4.
|
|
12
|
-
"@regulaforensics/face-core-basic": "8.5.
|
|
13
|
-
"react-native": "0.88.0
|
|
10
|
+
"@regulaforensics/face-sdk": "8.4.1486-nightly",
|
|
11
|
+
"@regulaforensics/face-core-basic": "8.5.907-nightly",
|
|
12
|
+
"react-native": "0.88.0",
|
|
14
13
|
"react-native-fs": "^2.20.0",
|
|
15
|
-
"react-native-image-picker": "^8.
|
|
14
|
+
"react-native-image-picker": "^8.3.0",
|
|
16
15
|
"react-native-webview": "^14.0.1",
|
|
17
|
-
"react": "19.
|
|
18
|
-
"@types/react": "19.
|
|
19
|
-
"expo": "58.0.
|
|
20
|
-
"expo-dev-client": "58.0.3",
|
|
16
|
+
"react": "19.3.1",
|
|
17
|
+
"@types/react": "19.3.0",
|
|
18
|
+
"expo": "~58.0.10",
|
|
21
19
|
"expo-custom-assets": "^1.5.0",
|
|
22
|
-
"expo-build-properties": "58.0.
|
|
20
|
+
"expo-build-properties": "~58.0.10",
|
|
23
21
|
"typescript": "^7.0.2",
|
|
24
|
-
"@expo/config-plugins": "58.0.
|
|
22
|
+
"@expo/config-plugins": "~58.0.9"
|
|
25
23
|
},
|
|
26
24
|
"overrides": {
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
"source-map-js": "^1.2.2",
|
|
32
|
-
"shell-quote": "^1.11.0",
|
|
33
|
-
"@expo/metro-file-map": "^58.0.4"
|
|
34
|
-
},
|
|
35
|
-
"config": {
|
|
36
|
-
"metroPort": 8082
|
|
25
|
+
"xcode": {
|
|
26
|
+
"uuid": "^11.1.1"
|
|
27
|
+
}
|
|
37
28
|
}
|
|
38
29
|
}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
-
adb reverse tcp:${npm_package_config_metroPort} tcp:${npm_package_config_metroPort} >/dev/null || :
|
|
5
4
|
if [[ " $* " == *" --open "* ]] || [[ " $* " == *" -o "* ]]; then
|
|
6
5
|
open -a 'Android Studio' android
|
|
7
|
-
# Check if Metro is running at app's port.
|
|
8
|
-
if [[ "$(curl --silent --max-time 2 http://localhost:${npm_package_config_metroPort}/status)" != "packager-status:running" ]]; then
|
|
9
|
-
npm start
|
|
10
|
-
else
|
|
11
|
-
echo "Metro is already running on port ${npm_package_config_metroPort}."
|
|
12
|
-
fi
|
|
13
6
|
else
|
|
14
|
-
expo run:android --device --
|
|
7
|
+
npx expo run:android --device --no-bundler "$@"
|
|
15
8
|
fi
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
open ios/Face.xcworkspace
|
|
6
|
-
|
|
7
|
-
if [[ "$(curl --silent --max-time 2 http://localhost:${npm_package_config_metroPort}/status)" != "packager-status:running" ]]; then
|
|
8
|
-
npm start
|
|
9
|
-
else
|
|
10
|
-
echo "Metro is already running on port ${npm_package_config_metroPort}."
|
|
11
|
-
fi
|
|
12
|
-
else
|
|
13
|
-
npx expo run:ios --device --port ${npm_package_config_metroPort}
|
|
14
|
-
fi
|
|
4
|
+
[[ " $* " == *" --open "* || " $* " == *" -o "* ]] &&
|
|
5
|
+
open ios/Face.xcworkspace ||
|
|
6
|
+
npx expo run:ios --device --no-bundler "$@"
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
-
# Kill Metro instance at app's port.
|
|
5
|
-
lsof -tiTCP:${npm_package_config_metroPort} -sTCP:LISTEN | xargs kill 2>/dev/null || true
|
|
6
|
-
|
|
7
4
|
npm install
|
|
8
|
-
rm -rf node_modules/expo/node_modules/expo-modules-core/android/.cxx # Temp fix for expo@58.0.0-preview.3
|
|
9
5
|
npx expo prebuild --no-install
|
|
10
6
|
(cd ios && (pod install || pod update))
|
|
11
7
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
const { withAppDelegate, withAppBuildGradle, withMainApplication, withXcodeProject } = require('expo/config-plugins')
|
|
2
|
+
|
|
3
|
+
function replaceRequired(contents, pattern, replacement, description) {
|
|
4
|
+
if (!pattern.test(contents)) throw new Error(`Standalone build: cannot find ${description}`)
|
|
5
|
+
return contents.replace(pattern, replacement)
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
module.exports = config => {
|
|
9
|
+
config = withAppDelegate(config, config => {
|
|
10
|
+
let contents = config.modResults.contents
|
|
11
|
+
if (!contents.includes('// Standalone demo: no development menu.')) {
|
|
12
|
+
contents = replaceRequired(contents, /let factory = ExpoReactNativeFactory\(delegate: delegate\)/,
|
|
13
|
+
`let factory = ExpoReactNativeFactory(delegate: delegate)
|
|
14
|
+
// Standalone demo: no development menu.
|
|
15
|
+
#if DEBUG
|
|
16
|
+
factory.devMenuConfiguration = RCTDevMenuConfiguration(
|
|
17
|
+
devMenuEnabled: false, shakeGestureEnabled: false, keyboardShortcutsEnabled: false)
|
|
18
|
+
#endif`, 'React Native factory')
|
|
19
|
+
}
|
|
20
|
+
contents = replaceRequired(contents,
|
|
21
|
+
/override func bundleURL\(\) -> URL\? \{[\s\S]*?\n \}/,
|
|
22
|
+
`override func bundleURL() -> URL? {
|
|
23
|
+
return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
|
|
24
|
+
}`, 'bundleURL method')
|
|
25
|
+
config.modResults.contents = contents
|
|
26
|
+
return config
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
config = withXcodeProject(config, config => {
|
|
30
|
+
const phases = Object.values(config.modResults.hash.project.objects.PBXShellScriptBuildPhase || {})
|
|
31
|
+
const phase = phases.find(phase => phase.name === '"Bundle React Native code and images"')
|
|
32
|
+
if (!phase) throw new Error('Standalone build: cannot find iOS bundle build phase')
|
|
33
|
+
// Bundle plain JS in Debug as well. Hermes loads it directly, without an
|
|
34
|
+
// additional optimizing bytecode compiler pass or a Metro server.
|
|
35
|
+
phase.shellScript = JSON.stringify(`set -e
|
|
36
|
+
if [[ -f "$SRCROOT/.xcode.env" ]]; then source "$SRCROOT/.xcode.env"; fi
|
|
37
|
+
if [[ -f "$SRCROOT/.xcode.env.local" ]]; then source "$SRCROOT/.xcode.env.local"; fi
|
|
38
|
+
export PROJECT_ROOT="$PROJECT_DIR/.."
|
|
39
|
+
cd "$PROJECT_ROOT"
|
|
40
|
+
export NODE_ENV=production
|
|
41
|
+
export RCT_NO_LAUNCH_PACKAGER=1
|
|
42
|
+
ENTRY_FILE=$("$NODE_BINARY" -e "require('expo/scripts/resolveAppEntry')" "$PROJECT_ROOT" ios absolute | tail -n 1)
|
|
43
|
+
CLI_PATH=$("$NODE_BINARY" --print "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })")
|
|
44
|
+
DEST="$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
|
|
45
|
+
mkdir -p "$DEST"
|
|
46
|
+
rm -rf "$DEST/web"
|
|
47
|
+
mkdir -p "$DEST/web/src"
|
|
48
|
+
cp src/*.html src/*.css "$DEST/web/src/"
|
|
49
|
+
cp -R images "$DEST/web/"
|
|
50
|
+
"$NODE_BINARY" "$CLI_PATH" export:embed --entry-file "$ENTRY_FILE" --platform ios --dev false --minify false --bundle-output "$DEST/main.jsbundle" --assets-dest "$DEST"
|
|
51
|
+
`)
|
|
52
|
+
phase.alwaysOutOfDate = 1
|
|
53
|
+
return config
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
config = withMainApplication(config, config => {
|
|
57
|
+
if (!config.modResults.contents.includes('useDevSupport = false')) {
|
|
58
|
+
config.modResults.contents = replaceRequired(config.modResults.contents,
|
|
59
|
+
/context = applicationContext,/, 'context = applicationContext,\n useDevSupport = false,', 'Android ReactHost context')
|
|
60
|
+
}
|
|
61
|
+
return config
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
config = withAppBuildGradle(config, config => {
|
|
65
|
+
if (!config.modResults.contents.includes('// Standalone demo: embed JS in Debug.')) {
|
|
66
|
+
config.modResults.contents = replaceRequired(config.modResults.contents, /react \{/,
|
|
67
|
+
`react {
|
|
68
|
+
// Standalone demo: embed JS in Debug.
|
|
69
|
+
debuggableVariants = []
|
|
70
|
+
extraPackagerArgs = ["--minify", "false"]
|
|
71
|
+
hermesFlags = ["-O0"]`, 'Android react block')
|
|
72
|
+
}
|
|
73
|
+
if (!config.modResults.contents.includes('tasks.register("copyWebAssets", Sync)')) {
|
|
74
|
+
config.modResults.contents += `
|
|
75
|
+
android.sourceSets.main.assets.srcDir(layout.buildDirectory.dir("generated/webAssets").get().asFile)
|
|
76
|
+
tasks.register("copyWebAssets", Sync) {
|
|
77
|
+
from(projectRoot) { include "src/*.html", "src/*.css", "images/**" }
|
|
78
|
+
into(layout.buildDirectory.dir("generated/webAssets/web"))
|
|
79
|
+
}
|
|
80
|
+
tasks.named("preBuild").configure { dependsOn("copyWebAssets") }
|
|
81
|
+
`
|
|
82
|
+
}
|
|
83
|
+
return config
|
|
84
|
+
})
|
|
85
|
+
return config
|
|
86
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regulaforensics/face-sdk",
|
|
3
|
-
"version": "8.4.
|
|
3
|
+
"version": "8.4.1486-nightly",
|
|
4
4
|
"description": "This is an npm module for Regula Face SDK. It allows you to easily compaire faces using your phone's camera.",
|
|
5
5
|
"main": "www/react-native/index.js",
|
|
6
6
|
"module": "www/capacitor/index.js",
|
package/plugin.xml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
-
<plugin id="@regulaforensics/face-sdk" version="8.4.
|
|
2
|
+
<plugin id="@regulaforensics/face-sdk" version="8.4.1486-nightly" xmlns="http://apache.org/cordova/ns/plugins/1.0">
|
|
3
3
|
<name>FaceSDK</name>
|
|
4
4
|
<description>Cordova plugin for Regula Face SDK</description>
|
|
5
5
|
<license>commercial</license>
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<source url="https://github.com/regulaforensics/podspecs.git" />
|
|
28
28
|
</config>
|
|
29
29
|
<pods>
|
|
30
|
-
<pod name="
|
|
30
|
+
<pod name="FaceSDKNightly" spec="8.5.5104" nospm="true" />
|
|
31
31
|
</pods>
|
|
32
32
|
</podspec>
|
|
33
33
|
</platform>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Pod::Spec.new do |s|
|
|
2
2
|
s.name = 'react-native-face-sdk'
|
|
3
|
-
s.version = '8.4.
|
|
3
|
+
s.version = '8.4.1486-nightly'
|
|
4
4
|
s.summary = 'Regula React Native plugin.'
|
|
5
5
|
s.license = 'commercial'
|
|
6
6
|
s.authors = { 'RegulaForensics' => 'support@regulaforensics.com' }
|
|
@@ -9,6 +9,6 @@ Pod::Spec.new do |s|
|
|
|
9
9
|
s.ios.deployment_target = '15.0'
|
|
10
10
|
s.source_files = [ 'ios/*.swift', 'ios/RN*.m' ]
|
|
11
11
|
s.exclude_files = [ 'ios/CDVFaceSDK.swift' ]
|
|
12
|
-
s.dependency '
|
|
12
|
+
s.dependency 'FaceSDKNightly', '8.5.5104'
|
|
13
13
|
s.dependency 'React'
|
|
14
14
|
end
|
package/test/package-lock.json
CHANGED
|
@@ -13,12 +13,9 @@
|
|
|
13
13
|
},
|
|
14
14
|
"..": {
|
|
15
15
|
"name": "@regulaforensics/face-sdk",
|
|
16
|
-
"version": "
|
|
16
|
+
"version": "1.0.0",
|
|
17
17
|
"dev": true,
|
|
18
|
-
"license": "commercial"
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"@expo/config-plugins": "^10.0.0"
|
|
21
|
-
}
|
|
18
|
+
"license": "commercial"
|
|
22
19
|
},
|
|
23
20
|
"node_modules/@esbuild/aix-ppc64": {
|
|
24
21
|
"version": "0.25.9",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<meta name="viewport" content="initial-scale=1, user-scalable=no, viewport-fit=cover">
|
|
2
|
-
<link rel="stylesheet" href="src/main.css">
|
|
3
|
-
|
|
4
|
-
<div id="content" style="height: 100%"></div>
|
|
5
|
-
|
|
6
|
-
<script>
|
|
7
|
-
(async () => {
|
|
8
|
-
document.getElementById("content").innerHTML = await fetch("src/main.html").then(r => r.text())
|
|
9
|
-
await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve)))
|
|
10
|
-
window.ReactNativeWebView.postMessage(JSON.stringify({ id: "ready" }))
|
|
11
|
-
})()
|
|
12
|
-
</script>
|