@yeomessagingcom/react-native-yeofr 0.1.28 → 0.1.30

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.
@@ -83,5 +83,5 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
83
83
  dependencies {
84
84
  implementation "com.facebook.react:react-android"
85
85
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
86
- implementation "com.yeomessaging:yeofr-android:0.1.9"
86
+ implementation "com.yeomessaging:yeofr-android:0.1.15"
87
87
  }
@@ -266,6 +266,52 @@ 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
+ /// ---------------------------------------------------------------------
282
+ /// @name ShoulderSurfing
283
+ /// ---------------------------------------------------------------------
284
+ ///
285
+ /// @param resizeWidth Internal resize width for detection (see vendor docs).
286
+ /// @param threshold Detection threshold (higher is stricter).
287
+ /// @param error Populated on failure with an NSError describing the SDK error.
288
+ ///
289
+ /// @return FRSDKReturnCode.
290
+ ///
291
+ /// Call this early (e.g., after activation) and whenever configuration changes.
292
+ + (FRSDKReturnCode)configureShoulderSurfingWithResizeWidth:(int32_t)resizeWidth
293
+ detectionThreshold:(int32_t)threshold
294
+ error:(NSError * _Nullable * _Nullable)error;
295
+ /// ---------------------------------------------------------------------
296
+ /// @name Still Image Processing (PNG buffers / UIImage helpers)
297
+ /// ---------------------------------------------------------------------
298
+
299
+ /// Detect faces in a PNG buffer (ARGB is handled internally by the SDK).
300
+ ///
301
+ /// Loads with FSDK_LoadImageFromPngBuffer → mirrors → feeds tracker.
302
+ /// Returns the number of detected faces (0..N).
303
+ + (FRSDKReturnCode)detectFacesInPNGData:(NSData *)pngData
304
+ tracker:(int64_t)tracker
305
+ outDetectedCount:(NSInteger * _Nullable)outDetectedCount
306
+ error:(NSError * _Nullable * _Nullable)error;
307
+
308
+ /// Convenience: returns YES iff exactly one face is detected in the PNG.
309
+ /// Same pipeline as above. Useful for “does this match the tracker?” checks.
310
+ + (FRSDKReturnCode)checkPNGImageMatchesTracker:(NSData *)pngData
311
+ tracker:(int64_t)tracker
312
+ outIsSingle:(BOOL * _Nullable)outIsSingle
313
+ error:(NSError * _Nullable * _Nullable)error;
314
+
269
315
  @end
270
316
 
271
317
  NS_ASSUME_NONNULL_END
@@ -3593,6 +3593,65 @@
3593
3593
  "RawDocComment"
3594
3594
  ],
3595
3595
  "funcSelfKind": "NonMutating"
3596
+ },
3597
+ {
3598
+ "kind": "Function",
3599
+ "name": "imageMatchesTracker",
3600
+ "printedName": "imageMatchesTracker(_:)",
3601
+ "children": [
3602
+ {
3603
+ "kind": "TypeNominal",
3604
+ "name": "Bool",
3605
+ "printedName": "Swift.Bool",
3606
+ "usr": "s:Sb"
3607
+ },
3608
+ {
3609
+ "kind": "TypeNominal",
3610
+ "name": "UIImage",
3611
+ "printedName": "UIKit.UIImage",
3612
+ "usr": "c:objc(cs)UIImage"
3613
+ }
3614
+ ],
3615
+ "declKind": "Func",
3616
+ "usr": "s:5YEOFR8YEOFRSDKC19imageMatchesTrackerySbSo7UIImageCF",
3617
+ "mangledName": "$s5YEOFR8YEOFRSDKC19imageMatchesTrackerySbSo7UIImageCF",
3618
+ "moduleName": "YEOFR",
3619
+ "declAttributes": [
3620
+ "Final",
3621
+ "AccessControl",
3622
+ "DiscardableResult",
3623
+ "RawDocComment"
3624
+ ],
3625
+ "funcSelfKind": "NonMutating"
3626
+ },
3627
+ {
3628
+ "kind": "Function",
3629
+ "name": "detectedFaceCount",
3630
+ "printedName": "detectedFaceCount(in:)",
3631
+ "children": [
3632
+ {
3633
+ "kind": "TypeNominal",
3634
+ "name": "Int",
3635
+ "printedName": "Swift.Int",
3636
+ "usr": "s:Si"
3637
+ },
3638
+ {
3639
+ "kind": "TypeNominal",
3640
+ "name": "UIImage",
3641
+ "printedName": "UIKit.UIImage",
3642
+ "usr": "c:objc(cs)UIImage"
3643
+ }
3644
+ ],
3645
+ "declKind": "Func",
3646
+ "usr": "s:5YEOFR8YEOFRSDKC17detectedFaceCount2inSiSo7UIImageC_tF",
3647
+ "mangledName": "$s5YEOFR8YEOFRSDKC17detectedFaceCount2inSiSo7UIImageC_tF",
3648
+ "moduleName": "YEOFR",
3649
+ "declAttributes": [
3650
+ "Final",
3651
+ "AccessControl",
3652
+ "RawDocComment"
3653
+ ],
3654
+ "funcSelfKind": "NonMutating"
3596
3655
  }
3597
3656
  ],
3598
3657
  "declKind": "Class",
@@ -3707,48 +3766,48 @@
3707
3766
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3708
3767
  "kind": "StringLiteral",
3709
3768
  "offset": 1148,
3710
- "length": 7,
3711
- "value": "\"0.1.9\""
3769
+ "length": 8,
3770
+ "value": "\"0.1.12\""
3712
3771
  },
3713
3772
  {
3714
3773
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3715
3774
  "kind": "BooleanLiteral",
3716
- "offset": 1435,
3775
+ "offset": 1436,
3717
3776
  "length": 5,
3718
3777
  "value": "false"
3719
3778
  },
3720
3779
  {
3721
3780
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3722
3781
  "kind": "StringLiteral",
3723
- "offset": 1533,
3782
+ "offset": 1534,
3724
3783
  "length": 174,
3725
3784
  "value": "\"gMor7aO9VX79M0PuKeBI3Ckly688XNIvE5JWodRaPQtF2SKMq4D3iiAztF1oMFY5FUYbj0\/u4dteElxdjYRtJlmfNZDO\/vwFdNdths\/4jyWH3zNGOV+i28x5ORTg4Te2P0fXfFDSJH+Hr804XvG+ob55i5exp9Rt+9urM31+bEI=\""
3726
3785
  },
3727
3786
  {
3728
3787
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3729
3788
  "kind": "IntegerLiteral",
3730
- "offset": 1816,
3789
+ "offset": 1817,
3731
3790
  "length": 1,
3732
3791
  "value": "0"
3733
3792
  },
3734
3793
  {
3735
3794
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3736
3795
  "kind": "BooleanLiteral",
3737
- "offset": 4703,
3796
+ "offset": 4757,
3738
3797
  "length": 4,
3739
3798
  "value": "true"
3740
3799
  },
3741
3800
  {
3742
3801
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3743
3802
  "kind": "BooleanLiteral",
3744
- "offset": 5468,
3803
+ "offset": 5522,
3745
3804
  "length": 4,
3746
3805
  "value": "true"
3747
3806
  },
3748
3807
  {
3749
3808
  "filePath": "\/Users\/paulcalver\/workspace\/ios\/YEOFRWorkspace\/YEOFR\/YEOFR\/YEOFRSDK.swift",
3750
3809
  "kind": "BooleanLiteral",
3751
- "offset": 13877,
3810
+ "offset": 14283,
3752
3811
  "length": 4,
3753
3812
  "value": "true"
3754
3813
  }
@@ -97,6 +97,9 @@ public typealias YEOFRTrackerHandle = Swift.Int64
97
97
  final public func configureFRSDK(config: any YEOFR.YEOFRConfigurable) -> YEOFR.FRSDKReturnCode
98
98
  final public func detectFacesFromBase64(height: Swift.Int32, width: Swift.Int32, scanLine: Swift.Int32, ratio: Swift.Float, bufferBase64: Swift.String, needFaceRect: Swift.Bool, uuidString: Swift.String) -> Foundation.NSDictionary
99
99
  final public func detectFaces(from pixelBuffer: CoreVideo.CVImageBuffer, needFaceRect: Swift.Bool = true) -> Foundation.NSDictionary
100
+ @discardableResult
101
+ final public func imageMatchesTracker(_ image: UIKit.UIImage) -> Swift.Bool
102
+ final public func detectedFaceCount(in image: UIKit.UIImage) -> Swift.Int
100
103
  @objc deinit
101
104
  }
102
105
  extension YEOFR.FaceRecognitionState : Swift.Equatable {}
@@ -97,6 +97,9 @@ public typealias YEOFRTrackerHandle = Swift.Int64
97
97
  final public func configureFRSDK(config: any YEOFR.YEOFRConfigurable) -> YEOFR.FRSDKReturnCode
98
98
  final public func detectFacesFromBase64(height: Swift.Int32, width: Swift.Int32, scanLine: Swift.Int32, ratio: Swift.Float, bufferBase64: Swift.String, needFaceRect: Swift.Bool, uuidString: Swift.String) -> Foundation.NSDictionary
99
99
  final public func detectFaces(from pixelBuffer: CoreVideo.CVImageBuffer, needFaceRect: Swift.Bool = true) -> Foundation.NSDictionary
100
+ @discardableResult
101
+ final public func imageMatchesTracker(_ image: UIKit.UIImage) -> Swift.Bool
102
+ final public func detectedFaceCount(in image: UIKit.UIImage) -> Swift.Int
100
103
  @objc deinit
101
104
  }
102
105
  extension YEOFR.FaceRecognitionState : Swift.Equatable {}
@@ -10,7 +10,7 @@
10
10
  </data>
11
11
  <key>Headers/YEOFRBridge.h</key>
12
12
  <data>
13
- kxFO0G6QZxbsiGT4c2IQQ4wgIZs=
13
+ aFzeWQIbU2baQSl4mIRInAkHepE=
14
14
  </data>
15
15
  <key>Info.plist</key>
16
16
  <data>
@@ -18,32 +18,28 @@
18
18
  </data>
19
19
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.abi.json</key>
20
20
  <data>
21
- 8sXAWlQlXpV8MLLLlNjEHr7lLbY=
21
+ y3DpBuZOt+B3AjXFqPCjSYmweig=
22
22
  </data>
23
23
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
24
24
  <data>
25
- UyfKvU17LmfemSFEZRHiNPSdAD4=
25
+ QlbpReoHeZ1JYHRJDF1GwkdlkW4=
26
26
  </data>
27
27
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftdoc</key>
28
28
  <data>
29
- IUtl5ph9IOYMhLcJd6bzVWwAFDs=
29
+ 5x0pw/Ee3Zk7dJCpTOXv+fD/LlQ=
30
30
  </data>
31
31
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftinterface</key>
32
32
  <data>
33
- UyfKvU17LmfemSFEZRHiNPSdAD4=
33
+ QlbpReoHeZ1JYHRJDF1GwkdlkW4=
34
34
  </data>
35
35
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftmodule</key>
36
36
  <data>
37
- plHRyxv5XqANcMsymdEUs8IAi6I=
37
+ hnuQvrS9K93oF+53pzg2yRYex8A=
38
38
  </data>
39
39
  <key>Modules/module.modulemap</key>
40
40
  <data>
41
41
  0cEkiWzPcmD6LOPJlrOyroH/JN0=
42
42
  </data>
43
- <key>YEOFR-Docs.docx</key>
44
- <data>
45
- jBMvS9O8dXjJ6mIXPfSmlIgL1Ow=
46
- </data>
47
43
  </dict>
48
44
  <key>files2</key>
49
45
  <dict>
@@ -58,42 +54,42 @@
58
54
  <dict>
59
55
  <key>hash2</key>
60
56
  <data>
61
- 68UTMzAdscjrmDdbwgQWL27l3iq9JhzpkHRcYZ7QPnI=
57
+ 0oRuNBKrwWEUvPGBtLVUrRW01DNIrQHh1JpzUnlv/No=
62
58
  </data>
63
59
  </dict>
64
60
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.abi.json</key>
65
61
  <dict>
66
62
  <key>hash2</key>
67
63
  <data>
68
- /fyY+nLGjFTdfSwnMCAYpBfsARM3nRf8EPyvsCNc8Z8=
64
+ xNgTrky7HpefW//yqJX6Z0BFpmV1LVKhs63/co2rmGc=
69
65
  </data>
70
66
  </dict>
71
67
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
72
68
  <dict>
73
69
  <key>hash2</key>
74
70
  <data>
75
- 7GIFjdvFjLpfZJuQFHeG33LeqSogDKp4dIo688x8dUY=
71
+ CQdE7ZYo1/Sgl1hExq2Jiop4FM+hxEf8tWbGuO2H0nY=
76
72
  </data>
77
73
  </dict>
78
74
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftdoc</key>
79
75
  <dict>
80
76
  <key>hash2</key>
81
77
  <data>
82
- mPb8Air4/3cFYWEaooJvEsIOGT9Dlr4c8HTORrDRX/g=
78
+ LNixwMqc8SOVXd7VioIEOGBWsqBVUcAVcEpGgRV2TE0=
83
79
  </data>
84
80
  </dict>
85
81
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftinterface</key>
86
82
  <dict>
87
83
  <key>hash2</key>
88
84
  <data>
89
- 7GIFjdvFjLpfZJuQFHeG33LeqSogDKp4dIo688x8dUY=
85
+ CQdE7ZYo1/Sgl1hExq2Jiop4FM+hxEf8tWbGuO2H0nY=
90
86
  </data>
91
87
  </dict>
92
88
  <key>Modules/YEOFR.swiftmodule/arm64-apple-ios.swiftmodule</key>
93
89
  <dict>
94
90
  <key>hash2</key>
95
91
  <data>
96
- ZLqnCmHinFmxhUFkhK41THoPq8IJ1K/bowV1o5e73LA=
92
+ 7ir6YISB4+9BKGI7uphWAyBa+w0Cfh1jbHeZ6855V9E=
97
93
  </data>
98
94
  </dict>
99
95
  <key>Modules/module.modulemap</key>
@@ -103,13 +99,6 @@
103
99
  +5JyvnnaSRux4yw7wZPK5HoxZFtB+bt8UTMlhfA/Y2U=
104
100
  </data>
105
101
  </dict>
106
- <key>YEOFR-Docs.docx</key>
107
- <dict>
108
- <key>hash2</key>
109
- <data>
110
- 6olpDy6o6XB3XE7sGTHRUZ6Fa1NS1nLwCI4u5lAcJxE=
111
- </data>
112
- </dict>
113
102
  </dict>
114
103
  <key>rules</key>
115
104
  <dict>
@@ -1,6 +1,6 @@
1
1
  Pod::Spec.new do |s|
2
2
  s.name = "react-native-yeofr"
3
- s.version = "0.1.24"
3
+ s.version = "0.1.29"
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.28",
3
+ "version": "0.1.30",
4
4
  "description": "React Native iOS integration for YEO Face Recognition (device-only).",
5
5
  "main": "index.ts",
6
6
  "react-native": "index.ts",
@@ -45,6 +45,9 @@
45
45
  "devDependencies": {
46
46
  "@types/react-native": "^0.72.0"
47
47
  },
48
+ "dependencies": {
49
+ "@yeomessagingcom/react-native-yeofr": "^0.1.30"
50
+ },
48
51
  "workspaces": [
49
52
  "example"
50
53
  ],