@yeomessagingcom/react-native-yeofr 0.1.25 → 0.1.27

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 CHANGED
@@ -4,32 +4,39 @@ iOS face recognition bridge for React Native (device-only).
4
4
  **Build & run on a real device.** No simulator support.
5
5
 
6
6
  ## Install
7
+
7
8
  ```bash
8
9
  npm i @yeomessaging/react-native-yeofr
9
10
  cd ios && pod install && cd ..
10
11
  ```
11
12
 
12
13
  ## Bumping npm module version:
14
+
13
15
  1. update s.version in podspec with the new version number
14
16
  2. update "version" in package.json with the new version number
15
17
 
16
18
  if need to update SPM version that is used for framework asset:
19
+
17
20
  1. update bin_ver in podspec
18
21
  2. update sha256 with checksum from spm in podspec
19
22
 
20
23
  ## Publishing:
24
+
21
25
  1. deprecate previous version (if required) (NB 0.1.11 is an example):
26
+
22
27
  ```bash
23
28
  npm deprecate @yeomessagingcom/react-native-yeofr@0.1.11 "Deprecated"
24
29
  ```
25
30
 
26
31
  2. tag with lastest version (NB 0.1.12 is an example - use the real next version of the nom module):
32
+
27
33
  ```bash
28
- git tag 0.1.12
34
+ git tag 0.1.12
29
35
  git push --tags
30
36
  ```
31
37
 
32
38
  3. publish
39
+
33
40
  ```bash
34
41
  npm publish --access public
35
- ```
42
+ ```
File without changes
@@ -0,0 +1,2 @@
1
+ #Sun Oct 19 23:03:10 WAT 2025
2
+ gradle.version=8.9
File without changes
@@ -0,0 +1,87 @@
1
+ buildscript {
2
+ ext.getExtOrDefault = {name ->
3
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['Yeofr_' + name]
4
+ }
5
+
6
+ repositories {
7
+ google()
8
+ mavenCentral()
9
+
10
+ maven {
11
+ name = "Repsy"
12
+ url = uri("https://repo.repsy.io/mvn/samsonyeo/yeomessaging")
13
+ }
14
+ }
15
+
16
+ dependencies {
17
+ classpath "com.android.tools.build:gradle:8.7.2"
18
+ // noinspection DifferentKotlinGradleVersion
19
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
20
+ }
21
+ }
22
+
23
+
24
+ apply plugin: "com.android.library"
25
+ apply plugin: "kotlin-android"
26
+
27
+ apply plugin: "com.facebook.react"
28
+
29
+ def getExtOrIntegerDefault(name) {
30
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["Yeofr_" + name]).toInteger()
31
+ }
32
+
33
+ android {
34
+ namespace "com.yeofr"
35
+
36
+ compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
37
+
38
+ defaultConfig {
39
+ minSdkVersion getExtOrIntegerDefault("minSdkVersion")
40
+ targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
41
+ }
42
+
43
+ buildFeatures {
44
+ buildConfig true
45
+ }
46
+
47
+ buildTypes {
48
+ release {
49
+ minifyEnabled false
50
+ }
51
+ }
52
+
53
+ lintOptions {
54
+ disable "GradleCompatible"
55
+ }
56
+
57
+ compileOptions {
58
+ sourceCompatibility JavaVersion.VERSION_1_8
59
+ targetCompatibility JavaVersion.VERSION_1_8
60
+ }
61
+
62
+ sourceSets {
63
+ main {
64
+ java.srcDirs += [
65
+ "generated/java",
66
+ "generated/jni"
67
+ ]
68
+ }
69
+ }
70
+ }
71
+
72
+ repositories {
73
+ mavenCentral()
74
+ google()
75
+ maven {
76
+ name = "Repsy"
77
+ url = uri("https://repo.repsy.io/mvn/samsonyeo/yeomessaging")
78
+ }
79
+ }
80
+
81
+ def kotlin_version = getExtOrDefault("kotlinVersion")
82
+
83
+ dependencies {
84
+ implementation "com.facebook.react:react-android"
85
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
86
+ implementation "com.yeomessaging:yeofr-android:0.1.8"
87
+ }
@@ -0,0 +1,5 @@
1
+ Yeofr_kotlinVersion=2.0.21
2
+ Yeofr_minSdkVersion=24
3
+ Yeofr_targetSdkVersion=34
4
+ Yeofr_compileSdkVersion=35
5
+ Yeofr_ndkVersion=27.1.12297006
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ </manifest>
@@ -0,0 +1,69 @@
1
+ package com.yeofr
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
6
+ import com.facebook.react.bridge.ReactMethod
7
+ import com.facebook.react.module.annotations.ReactModule
8
+ import com.youreyeonly.yeofr.YEOFRSDK
9
+ import kotlin.io.encoding.Base64
10
+ import kotlin.io.encoding.ExperimentalEncodingApi
11
+
12
+ @ReactModule(name = YeofrModule.NAME)
13
+ class YeofrModule(reactContext: ReactApplicationContext) :
14
+ ReactContextBaseJavaModule(reactContext) {
15
+
16
+ override fun getName(): String {
17
+ return NAME
18
+ }
19
+
20
+ @ReactMethod
21
+ fun getVersion(promise: Promise) {
22
+ promise.resolve(YEOFRSDK.version)
23
+ }
24
+
25
+ @ReactMethod
26
+ fun createTracker(promise: Promise) {
27
+ promise.resolve(YEOFRSDK.createTracker())
28
+ }
29
+
30
+ @ReactMethod
31
+ fun freeTracker(promise: Promise) {
32
+ promise.resolve(YEOFRSDK.freeTracker())
33
+ }
34
+
35
+ @ReactMethod
36
+ fun clearTracker(promise: Promise) {
37
+ promise.resolve(YEOFRSDK.clearTracker())
38
+ }
39
+
40
+ @OptIn(ExperimentalEncodingApi::class)
41
+ @ReactMethod
42
+ fun getTrackerData(promise: Promise) {
43
+ YEOFRSDK.faceRecognitionTrackerData()?.let { data ->
44
+ promise.resolve(Base64.encode(data))
45
+ } ?: run {
46
+ promise.reject("-1", "No tracker available!")
47
+ }
48
+ }
49
+
50
+ @OptIn(ExperimentalEncodingApi::class)
51
+ @ReactMethod
52
+ fun loadTracker(base64String: String, promise: Promise) {
53
+ try {
54
+ val data = Base64.decode(base64String)
55
+ promise.resolve(YEOFRSDK.loadTracker(data))
56
+ } catch (e: Throwable) {
57
+ promise.reject(e)
58
+ }
59
+ }
60
+
61
+ @ReactMethod
62
+ fun enroll(faceID: Int, name: String, promise: Promise) {
63
+ promise.resolve(YEOFRSDK.enroll(faceID, name, true))
64
+ }
65
+
66
+ companion object {
67
+ const val NAME = "YEOFRModule"
68
+ }
69
+ }
@@ -0,0 +1,32 @@
1
+ package com.yeofr
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 YeofrPackage : BaseReactPackage() {
11
+ override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
12
+ return when (name) {
13
+ YeofrModule.NAME -> YeofrModule(reactContext)
14
+ else -> null
15
+ }
16
+ }
17
+
18
+ override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
19
+ return ReactModuleInfoProvider {
20
+ val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
21
+ moduleInfos[YeofrModule.NAME] = ReactModuleInfo(
22
+ YeofrModule.NAME,
23
+ YeofrModule.NAME,
24
+ false, // canOverrideExistingModule
25
+ false, // needsEagerInit
26
+ false, // isCxxModule
27
+ false // isTurboModule
28
+ )
29
+ moduleInfos
30
+ }
31
+ }
32
+ }
@@ -266,18 +266,6 @@ typedef NS_ENUM(NSInteger, FRSDKReturnCode) {
266
266
  detectionThreshold:(int32_t)threshold
267
267
  error:(NSError * _Nullable * _Nullable)error;
268
268
 
269
- // Configure global SDK parameters.
270
- ///
271
- /// @param threads Number of threads for the SDK to use.
272
- /// @param error Populated on failure with an NSError describing the SDK error.
273
- ///
274
- /// @return FRSDKReturnCode.
275
- ///
276
- /// @discussion Applies common global knobs such as thread count and detection parameters.
277
- /// Call this early (e.g., after activation) and whenever configuration changes.
278
- + (FRSDKReturnCode)configureWithThreads:(int32_t)threads
279
- error:(NSError * _Nullable * _Nullable)error;
280
-
281
269
  @end
282
270
 
283
271
  NS_ASSUME_NONNULL_END
@@ -3707,48 +3707,48 @@
3707
3707
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3708
3708
  "kind": "StringLiteral",
3709
3709
  "offset": 1148,
3710
- "length": 8,
3711
- "value": "\"0.1.10\""
3710
+ "length": 7,
3711
+ "value": "\"0.1.9\""
3712
3712
  },
3713
3713
  {
3714
3714
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3715
3715
  "kind": "BooleanLiteral",
3716
- "offset": 1436,
3716
+ "offset": 1435,
3717
3717
  "length": 5,
3718
3718
  "value": "false"
3719
3719
  },
3720
3720
  {
3721
3721
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3722
3722
  "kind": "StringLiteral",
3723
- "offset": 1534,
3723
+ "offset": 1533,
3724
3724
  "length": 174,
3725
3725
  "value": "\"gMor7aO9VX79M0PuKeBI3Ckly688XNIvE5JWodRaPQtF2SKMq4D3iiAztF1oMFY5FUYbj0\/u4dteElxdjYRtJlmfNZDO\/vwFdNdths\/4jyWH3zNGOV+i28x5ORTg4Te2P0fXfFDSJH+Hr804XvG+ob55i5exp9Rt+9urM31+bEI=\""
3726
3726
  },
3727
3727
  {
3728
3728
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3729
3729
  "kind": "IntegerLiteral",
3730
- "offset": 1817,
3730
+ "offset": 1816,
3731
3731
  "length": 1,
3732
3732
  "value": "0"
3733
3733
  },
3734
3734
  {
3735
3735
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3736
3736
  "kind": "BooleanLiteral",
3737
- "offset": 4757,
3737
+ "offset": 4703,
3738
3738
  "length": 4,
3739
3739
  "value": "true"
3740
3740
  },
3741
3741
  {
3742
3742
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3743
3743
  "kind": "BooleanLiteral",
3744
- "offset": 5522,
3744
+ "offset": 5468,
3745
3745
  "length": 4,
3746
3746
  "value": "true"
3747
3747
  },
3748
3748
  {
3749
3749
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3750
3750
  "kind": "BooleanLiteral",
3751
- "offset": 14051,
3751
+ "offset": 13877,
3752
3752
  "length": 4,
3753
3753
  "value": "true"
3754
3754
  }
@@ -10,7 +10,7 @@
10
10
  </data>
11
11
  <key>Headers/YEOFRBridge.h</key>
12
12
  <data>
13
- LolNxOBBWqAQYPFleHPCIu0F2fg=
13
+ kxFO0G6QZxbsiGT4c2IQQ4wgIZs=
14
14
  </data>
15
15
  <key>Info.plist</key>
16
16
  <data>
@@ -18,7 +18,7 @@
18
18
  </data>
19
19
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.abi.json</key>
20
20
  <data>
21
- tAokMZ16BnDnz3AkPs3r4nAd+TY=
21
+ 8sXAWlQlXpV8MLLLlNjEHr7lLbY=
22
22
  </data>
23
23
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
24
24
  <data>
@@ -34,7 +34,7 @@
34
34
  </data>
35
35
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftmodule</key>
36
36
  <data>
37
- YOHxf25xILk3rn2m1F1xPlf94Pc=
37
+ plHRyxv5XqANcMsymdEUs8IAi6I=
38
38
  </data>
39
39
  <key>Modules/module.modulemap</key>
40
40
  <data>
@@ -58,14 +58,14 @@
58
58
  <dict>
59
59
  <key>hash2</key>
60
60
  <data>
61
- X4LZg0lKjvzu9RH19fE0EiCdu8dYCA/tSU9PLicRR0A=
61
+ 68UTMzAdscjrmDdbwgQWL27l3iq9JhzpkHRcYZ7QPnI=
62
62
  </data>
63
63
  </dict>
64
64
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.abi.json</key>
65
65
  <dict>
66
66
  <key>hash2</key>
67
67
  <data>
68
- A0jNuHVuBFEfN/EqkU+6pktWZ1oJyW9gZbRG6P9rdh8=
68
+ /fyY+nLGjFTdfSwnMCAYpBfsARM3nRf8EPyvsCNc8Z8=
69
69
  </data>
70
70
  </dict>
71
71
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
@@ -93,7 +93,7 @@
93
93
  <dict>
94
94
  <key>hash2</key>
95
95
  <data>
96
- U4nlJ7SIiRYwR76Jc5OuC3gi/VUedV/drelg0pRUk1k=
96
+ ZLqnCmHinFmxhUFkhK41THoPq8IJ1K/bowV1o5e73LA=
97
97
  </data>
98
98
  </dict>
99
99
  <key>Modules/module.modulemap</key>
@@ -1,6 +1,6 @@
1
1
  Pod::Spec.new do |s|
2
2
  s.name = "react-native-yeofr"
3
- s.version = "0.1.25"
3
+ s.version = "0.1.24"
4
4
  s.summary = "React Native iOS bridge for YEO Face Recognition."
5
5
  s.homepage = "https://github.com/yeomessaging/react-native-yeofr"
6
6
  s.license = { :type => "Commercial", :file => "LICENSE" }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeomessagingcom/react-native-yeofr",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "description": "React Native iOS integration for YEO Face Recognition (device-only).",
5
5
  "main": "index.ts",
6
6
  "react-native": "index.ts",
@@ -18,6 +18,12 @@
18
18
  "files": [
19
19
  "index.ts",
20
20
  "ios/**",
21
+ "android",
22
+ "!android/build",
23
+ "!android/gradle",
24
+ "!android/gradlew",
25
+ "!android/gradlew.bat",
26
+ "!android/local.properties",
21
27
  "react-native.config.js",
22
28
  "react-native-yeofr.podspec",
23
29
  "README.md",
@@ -29,16 +35,26 @@
29
35
  "keywords": [
30
36
  "react-native",
31
37
  "ios",
38
+ "android",
32
39
  "face-recognition",
33
40
  "yeofr"
34
41
  ],
35
42
  "peerDependencies": {
36
- "react-native": ">=0.72.0"
43
+ "react-native": "*"
37
44
  },
38
45
  "devDependencies": {
39
46
  "@types/react-native": "^0.72.0"
40
47
  },
41
- "dependencies": {
42
- "@yeomessagingcom/react-native-yeofr": "^0.1.25"
48
+ "workspaces": [
49
+ "example"
50
+ ],
51
+ "packageManager": "yarn@3.6.1",
52
+ "codegenConfig": {
53
+ "name": "ReactNativeYeofrSpec",
54
+ "type": "modules",
55
+ "jsSrcsDir": ".",
56
+ "android": {
57
+ "javaPackageName": "com.yeomessaging.reactnativeyeofr"
58
+ }
43
59
  }
44
60
  }
@@ -1,10 +1,19 @@
1
+ const path = require("path");
2
+ const pkg = require("./package.json");
3
+
1
4
  module.exports = {
2
- dependency: {
3
- platforms: {
4
- ios: {
5
- podspecPath: 'ios/react-native-yeofr.podspec',
5
+ dependencies: {
6
+ [pkg.name]: {
7
+ name: pkg.name,
8
+ root: path.join(__dirname, ".."),
9
+ platforms: {
10
+ // Codegen script incorrectly fails without this
11
+ // So we explicitly specify the platforms with empty object
12
+ ios: {
13
+ podspecPath: "ios/react-native-yeofr.podspec",
14
+ },
15
+ android: {},
6
16
  },
7
- android: null,
8
17
  },
9
18
  },
10
- };
19
+ };