@regulaforensics/face-sdk 8.2.855-nightly → 8.2.856-rc

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.
Files changed (46) hide show
  1. package/RNFaceSDK.podspec +4 -4
  2. package/android/{CDVFaceSDK.kt → CVDFaceSDK.kt} +1 -1
  3. package/android/build.gradle +2 -2
  4. package/android/cordova.gradle +2 -2
  5. package/android/src/main/java/com/regula/plugin/facesdk/JSONConstructor.kt +7 -12
  6. package/examples/capacitor/android/app/build.gradle +2 -2
  7. package/examples/capacitor/android/app/capacitor.build.gradle +3 -2
  8. package/examples/capacitor/android/app/src/main/AndroidManifest.xml +1 -1
  9. package/examples/capacitor/android/build.gradle +3 -3
  10. package/examples/capacitor/android/capacitor.settings.gradle +5 -2
  11. package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  12. package/examples/capacitor/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  13. package/examples/capacitor/android/gradlew +5 -4
  14. package/examples/capacitor/android/gradlew.bat +2 -2
  15. package/examples/capacitor/android/variables.gradle +10 -10
  16. package/examples/capacitor/ios/App/App.xcodeproj/project.pbxproj +4 -20
  17. package/examples/capacitor/ios/App/Podfile +1 -5
  18. package/examples/capacitor/ios/App/Podfile.lock +14 -14
  19. package/examples/capacitor/package-lock.json +847 -811
  20. package/examples/capacitor/package.json +17 -17
  21. package/examples/ionic/images/icon.png +0 -0
  22. package/examples/ionic/package-lock.json +2419 -2633
  23. package/examples/ionic/package.json +14 -16
  24. package/examples/ionic/scripts/ios.sh +1 -1
  25. package/examples/react_native/package-lock.json +1443 -1161
  26. package/examples/react_native/package.json +2 -2
  27. package/ios/CVDFaceSDK.h +7 -0
  28. package/ios/CVDFaceSDK.m +43 -0
  29. package/ios/RFSWConfig.h +27 -0
  30. package/ios/RFSWConfig.m +199 -0
  31. package/ios/RFSWJSONConstructor.h +135 -0
  32. package/ios/RFSWJSONConstructor.m +985 -0
  33. package/ios/RFSWMain.h +24 -0
  34. package/ios/RFSWMain.m +381 -0
  35. package/ios/RNFaceSDK.h +8 -0
  36. package/ios/RNFaceSDK.m +39 -7
  37. package/package.json +1 -1
  38. package/plugin.xml +13 -11
  39. package/test/package-lock.json +1 -1
  40. package/examples/ionic/patches/cordova-plugin-ionic-webview+5.0.1.patch +0 -23
  41. package/ios/CDVFaceSDK.swift +0 -42
  42. package/ios/Config.swift +0 -242
  43. package/ios/Decoder.swift +0 -934
  44. package/ios/Main.swift +0 -191
  45. package/ios/RNFaceSDK.swift +0 -42
  46. package/ios/Utils.swift +0 -82
@@ -8,8 +8,8 @@
8
8
  "start": "expo start"
9
9
  },
10
10
  "dependencies": {
11
- "@regulaforensics/face-sdk": "8.2.855-nightly",
12
- "@regulaforensics/face-core-basic": "8.2.453-nightly",
11
+ "@regulaforensics/face-sdk": "8.2.856-rc",
12
+ "@regulaforensics/face-core-basic": "8.2.454-rc",
13
13
  "react-native": "^0.81.4",
14
14
  "react-native-fs": "^2.20.0",
15
15
  "react-native-image-picker": "^8.2.1",
@@ -0,0 +1,7 @@
1
+ #import <Cordova/CDVPlugin.h>
2
+ #import <Foundation/Foundation.h>
3
+ #import "RFSWMain.h"
4
+ @import UIKit;
5
+
6
+ @interface CVDFaceSDK : CDVPlugin
7
+ @end
@@ -0,0 +1,43 @@
1
+ #import "CVDFaceSDK.h"
2
+
3
+ @implementation CVDFaceSDK
4
+
5
+ static NSMutableDictionary<NSString*, NSString*>* _eventCallbackIds = nil;
6
+ - (NSMutableDictionary<NSString*, NSString*>*)eventCallbackIds {
7
+ if (_eventCallbackIds == nil) _eventCallbackIds = @{}.mutableCopy;
8
+ return _eventCallbackIds;
9
+ }
10
+
11
+ UIViewController*(^RFSWRootViewController)(void) = ^UIViewController*(){
12
+ for (UIScene *scene in UIApplication.sharedApplication.connectedScenes)
13
+ if ([scene isKindOfClass:[UIWindowScene class]]) {
14
+ UIWindowScene *windowScene = (UIWindowScene *)scene;
15
+ for (UIWindow *window in windowScene.windows)
16
+ if (window.isKeyWindow)
17
+ return window.rootViewController;
18
+ }
19
+ return nil;
20
+ };
21
+
22
+ - (void) exec:(CDVInvokedUrlCommand*)command {
23
+ NSString* method = command.arguments[0];
24
+ NSMutableArray* args = [NSMutableArray new];
25
+ for (int i = 1; i < command.arguments.count; i++) [args addObject:command.arguments[i]];
26
+ if ([method isEqualToString:@"setEvent"]) {
27
+ self.eventCallbackIds[args[0]] = command.callbackId;
28
+ return;
29
+ }
30
+
31
+ RFSWEventSender sendEvent = ^(NSString* callbackId, id data) {
32
+ NSString* eventId = [self.eventCallbackIds objectForKey:callbackId];
33
+ if(eventId) callbackId = eventId;
34
+ data = [RFSWJSONConstructor toSendable:data];
35
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:data];
36
+ [result setKeepCallbackAsBool:YES];
37
+ [self.commandDelegate sendPluginResult:result callbackId:callbackId];
38
+ };
39
+
40
+ [RFSWMain methodCall:method :args :^(id data) { sendEvent(command.callbackId, data); } :sendEvent];
41
+ }
42
+
43
+ @end
@@ -0,0 +1,27 @@
1
+ #ifndef RFSWConfig_h
2
+ #define RFSWConfig_h
3
+
4
+ #import <FaceSDK/FaceSDK.h>
5
+ #import "RFSWJSONConstructor.h"
6
+
7
+ @interface RFSWConfig : NSObject
8
+
9
+ +(RFSFaceCaptureConfiguration* _Nonnull)faceCaptureConfigFromJSON:(id _Nonnull)input;
10
+ +(NSDictionary<NSString*, id>* _Nonnull)generateFaceCaptureConfig:(RFSFaceCaptureConfiguration* _Nonnull)input;
11
+
12
+ +(RFSLivenessConfiguration* _Nonnull)livenessConfigFromJSON:(id _Nonnull)input;
13
+ +(NSDictionary<NSString*, id>* _Nonnull)generateLivenessConfig:(RFSLivenessConfiguration* _Nonnull)input;
14
+
15
+ +(RFSMatchFacesConfiguration* _Nonnull)matchFacesConfigFromJSON:(id _Nonnull)input;
16
+ +(NSDictionary<NSString*, id>* _Nonnull)generateMatchFacesConfig:(RFSMatchFacesConfiguration* _Nonnull)input;
17
+
18
+
19
+ +(void)setCustomization:(NSDictionary* _Nonnull)config :(RFSCustomization* _Nonnull)result;
20
+
21
+ +(RFSImageQualityCharacteristic* _Nonnull)imageQualityCharacteristicWithName:(NSString* _Nonnull)name
22
+ recommendedRange:(NSArray<NSNumber*>* _Nullable)recommendedRange
23
+ customRange:(NSArray* _Nullable)customRange
24
+ color:(UIColor* _Nullable)color;
25
+
26
+ @end
27
+ #endif
@@ -0,0 +1,199 @@
1
+ #import "RFSWConfig.h"
2
+
3
+ @implementation RFSWConfig
4
+
5
+ +(RFSFaceCaptureConfiguration*)faceCaptureConfigFromJSON:(NSDictionary*)input {
6
+ if (!input || [input isEqual:[NSNull null]]) return nil;
7
+ return [RFSFaceCaptureConfiguration configurationWithBuilder:^(RFSFaceCaptureConfigurationBuilder * _Nonnull builder) {
8
+ for (NSString* key in input) {
9
+ id value = input[key];
10
+ NSDictionary* Switch = @{
11
+ @"copyright": ^{ [builder setCopyright:[value boolValue]]; },
12
+ @"cameraSwitchEnabled": ^{ [builder setCameraSwitchButtonEnabled:[value boolValue]]; },
13
+ @"closeButtonEnabled": ^{ [builder setCloseButtonEnabled:[value boolValue]]; },
14
+ @"torchButtonEnabled": ^{ [builder setTorchButtonEnabled:[value boolValue]]; },
15
+ @"vibrateOnSteps": ^{ [builder setVibrateOnSteps:[value boolValue]]; },
16
+ @"detectOcclusion": ^{ [builder setDetectOcclusion:[value boolValue]]; },
17
+ @"showFaceAnimation": ^{ [builder setShowFaceAnimation:[value boolValue]]; },
18
+ @"cameraPositionIOS": ^{ [builder setCameraPosition:[value integerValue]]; },
19
+ @"screenOrientation": ^{ [builder setScreenOrientation:[RFSWJSONConstructor screenOrienrationFromJSON:value]]; },
20
+ @"timeout": ^{ [builder setTimeoutInterval:value]; },
21
+ @"holdStillDuration": ^{ [builder setHoldStillDuration:value]; },
22
+ };
23
+ if(Switch[key]) ((void(^)(void))Switch[key])();
24
+ }
25
+ }];
26
+ }
27
+
28
+ +(id)generateFaceCaptureConfig:(RFSFaceCaptureConfiguration*)input {
29
+ NSMutableDictionary* result = @{
30
+ @"copyright":@(input.copyright),
31
+ @"cameraSwitchEnabled":@(input.cameraSwitchButtonEnabled),
32
+ @"closeButtonEnabled":@(input.closeButtonEnabled),
33
+ @"torchButtonEnabled":@(input.torchButtonEnabled),
34
+ @"vibrateOnSteps":@(input.vibrateOnSteps),
35
+ @"detectOcclusion":@(input.detectOcclusion),
36
+ @"showFaceAnimation":@(input.showFaceAnimation),
37
+ @"cameraPositionIOS":@(input.cameraPosition),
38
+ @"screenOrientation":[RFSWJSONConstructor generateScreenOrienration:input.screenOrientation],
39
+ }.mutableCopy;
40
+ if (input.timeoutInterval) result[@"timeout"] = input.timeoutInterval;
41
+ if (input.holdStillDuration) result[@"holdStillDuration"] = input.holdStillDuration;
42
+ return result;
43
+ }
44
+
45
+ +(RFSLivenessConfiguration*)livenessConfigFromJSON:(NSDictionary*)input {
46
+ if (!input || [input isEqual:[NSNull null]]) return nil;
47
+ return [RFSLivenessConfiguration configurationWithBuilder:^(RFSLivenessConfigurationBuilder * _Nonnull builder) {
48
+ for (NSString* key in input) {
49
+ id value = input[key];
50
+ NSDictionary* Switch = @{
51
+ @"copyright": ^{ [builder setCopyright:[value boolValue]]; },
52
+ @"cameraSwitchEnabled": ^{ [builder setCameraSwitchButtonEnabled:[value boolValue]]; },
53
+ @"closeButtonEnabled": ^{ [builder setCloseButtonEnabled:[value boolValue]]; },
54
+ @"torchButtonEnabled": ^{ [builder setTorchButtonEnabled:[value boolValue]]; },
55
+ @"vibrateOnSteps": ^{ [builder setVibrateOnSteps:[value boolValue]]; },
56
+ @"cameraPositionIOS": ^{ [builder setCameraPosition:[value integerValue]]; },
57
+ @"attemptsCount": ^{ [builder setAttemptsCount:[value integerValue]]; },
58
+ @"locationTrackingEnabled": ^{ [builder setLocationTrackingEnabled:[value boolValue]]; },
59
+ @"recordingProcess": ^{ [builder setRecordingProcess:[value integerValue]]; },
60
+ @"livenessType": ^{ [builder setLivenessType:[value integerValue]]; },
61
+ @"screenOrientation": ^{ [builder setScreenOrientation:[RFSWJSONConstructor screenOrienrationFromJSON:value]]; },
62
+ @"tag": ^{ [builder setTag:value]; },
63
+ @"skipStep": ^{ [builder setStepSkippingMask:[RFSWJSONConstructor livenessStepSkipFromJSON:value]]; },
64
+ @"metadata": ^{ [builder setMetadata:value]; },
65
+ };
66
+ if(Switch[key]) ((void(^)(void))Switch[key])();
67
+ }
68
+ }];
69
+ }
70
+
71
+ +(id)generateLivenessConfig:(RFSLivenessConfiguration*)input {
72
+ NSMutableDictionary* result = @{
73
+ @"copyright":@(input.copyright),
74
+ @"cameraSwitchEnabled":@(input.cameraSwitchButtonEnabled),
75
+ @"closeButtonEnabled":@(input.closeButtonEnabled),
76
+ @"torchButtonEnabled":@(input.torchButtonEnabled),
77
+ @"vibrateOnSteps":@(input.vibrateOnSteps),
78
+ @"cameraPositionIOS":@(input.cameraPosition),
79
+ @"attemptsCount":@(input.attemptsCount),
80
+ @"locationTrackingEnabled":@(input.locationTrackingEnabled),
81
+ @"recordingProcess":@(input.recordingProcess),
82
+ @"livenessType":@(input.livenessType),
83
+ @"screenOrientation":[RFSWJSONConstructor generateScreenOrienration:input.screenOrientation],
84
+ @"skipStep":[RFSWJSONConstructor generateLivenessStepSkip:input.stepSkippingMask],
85
+ @"metadata":input.metadata,
86
+ }.mutableCopy;
87
+ if (input.tag) result[@"tag"] = input.tag;
88
+ return result;
89
+ }
90
+
91
+ +(RFSMatchFacesConfiguration*)matchFacesConfigFromJSON:(NSDictionary*)input {
92
+ if (!input || [input isEqual:[NSNull null]]) return nil;
93
+ return [RFSMatchFacesConfiguration configurationWithBuilder:^(RFSMatchFacesConfigurationBuilder * _Nonnull builder) {
94
+ for (NSString* key in input) {
95
+ id value = input[key];
96
+ NSDictionary* Switch = @{
97
+ @"processingMode": ^{ [builder setProcessingMode:[value integerValue]]; },
98
+ @"locationTrackingEnabled": ^{ [builder setLocationTrackingEnabled:[value boolValue]]; },
99
+ };
100
+ if(Switch[key]) ((void(^)(void))Switch[key])();
101
+ }
102
+ }];
103
+ }
104
+
105
+ +(id)generateMatchFacesConfig:(RFSMatchFacesConfiguration*)input {
106
+ return @{
107
+ @"processingMode":@(input.processingMode),
108
+ @"locationTrackingEnabled":@(input.locationTrackingEnabled),
109
+ };
110
+ }
111
+
112
+ // For some reason if you iterate over dictionary using NSNumber* or id,
113
+ // it does't work as a key to dictionary unless you do this.
114
+ +(NSNumber*)toKey:(id)input {
115
+ return [NSNumber numberWithInt:[input intValue]];
116
+ }
117
+
118
+ +(void)setCustomization:(NSDictionary*)config :(RFSCustomization*)result {
119
+ RFSUIConfiguration* uiConfig = [result configuration];
120
+ for (NSString* key in config) {
121
+ NSDictionary* value = config[key];
122
+ NSDictionary* Switch = @{
123
+ @"colors": ^{ for (id k in value) [uiConfig valueForKey:key][[RFSWConfig toKey:k]] = [RFSWJSONConstructor colorWithInt:value[k]]; },
124
+ @"fonts": ^{ for (id k in value) [uiConfig valueForKey:key][[RFSWConfig toKey:k]] = [RFSWJSONConstructor fontFromJSON:value[k]]; },
125
+ @"images": ^{ for (id k in value) [uiConfig valueForKey:key][[RFSWConfig toKey:k]] = [RFSWJSONConstructor imageWithBase64:value[k]]; },
126
+ @"uiCustomizationLayer": ^{ [result setCustomUILayerJSON:value]; },
127
+ };
128
+ ((void(^)(void))Switch[key])();
129
+ }
130
+ }
131
+
132
+ +(id)imageQualityCharacteristicWithName:(NSString*)name recommendedRange:(NSArray*)recommendedRange customRange:(NSArray*)customRange color:(UIColor*)color {
133
+ __block RFSImageQualityCharacteristic* result = nil;
134
+ NSDictionary* Switch = @{
135
+ @"ImageWidth": ^{ result = [RFSImageCharacteristics imageWidthWithRange:recommendedRange]; },
136
+ @"ImageHeight": ^{ result = [RFSImageCharacteristics imageHeightWithRange:recommendedRange]; },
137
+ @"ImageWidthToHeight": ^{ result = [RFSImageCharacteristics imageWidthToHeightWithRange:recommendedRange]; },
138
+ @"ImageChannelsNumber": ^{ result = [RFSImageCharacteristics imageChannelsNumberWithValue:recommendedRange[0]]; },
139
+ @"PaddingRatio": ^{ result = [RFSImageCharacteristics paddingRatioWithMinValue:recommendedRange[0] maxValue:recommendedRange[1]]; },
140
+ @"ArtFace": ^{ result = RFSImageCharacteristics.artFace; },
141
+
142
+ @"FaceMidPointHorizontalPosition": ^{ result = RFSHeadSizeAndPosition.faceMidPointHorizontalPosition; },
143
+ @"FaceMidPointVerticalPosition": ^{ result = RFSHeadSizeAndPosition.faceMidPointVerticalPosition; },
144
+ @"HeadWidthRatio": ^{ result = RFSHeadSizeAndPosition.headWidthRatio; },
145
+ @"HeadHeightRatio": ^{ result = RFSHeadSizeAndPosition.headHeightRatio; },
146
+ @"EyesDistance": ^{ result = RFSHeadSizeAndPosition.eyesDistance; },
147
+ @"Yaw": ^{ result = RFSHeadSizeAndPosition.yaw; },
148
+ @"Pitch": ^{ result = RFSHeadSizeAndPosition.pitch; },
149
+ @"Roll": ^{ result = RFSHeadSizeAndPosition.roll; },
150
+
151
+ @"BlurLevel": ^{ result = RFSFaceImageQuality.blurLevel; },
152
+ @"NoiseLevel": ^{ result = RFSFaceImageQuality.noiseLevel; },
153
+ @"UnnaturalSkinTone": ^{ result = RFSFaceImageQuality.unnaturalSkinTone; },
154
+ @"FaceDynamicRange": ^{ result = RFSFaceImageQuality.faceDynamicRange; },
155
+
156
+ @"EyeRightClosed": ^{ result = RFSEyesCharacteristics.eyeRightClosed; },
157
+ @"EyeLeftClosed": ^{ result = RFSEyesCharacteristics.eyeLeftClosed; },
158
+ @"EyeRightOccluded": ^{ result = RFSEyesCharacteristics.eyeRightOccluded; },
159
+ @"EyeLeftOccluded": ^{ result = RFSEyesCharacteristics.eyeLeftOccluded; },
160
+ @"EyesRed": ^{ result = RFSEyesCharacteristics.eyesRed; },
161
+ @"EyeRightCoveredWithHair": ^{ result = RFSEyesCharacteristics.eyeRightCoveredWithHair; },
162
+ @"EyeLeftCoveredWithHair": ^{ result = RFSEyesCharacteristics.eyeLeftCoveredWithHair; },
163
+ @"OffGaze": ^{ result = RFSEyesCharacteristics.offGaze; },
164
+
165
+ @"TooDark": ^{ result = RFSShadowsAndLightning.tooDark; },
166
+ @"TooLight": ^{ result = RFSShadowsAndLightning.tooLight; },
167
+ @"FaceGlare": ^{ result = RFSShadowsAndLightning.faceGlare; },
168
+ @"ShadowsOnFace": ^{ result = RFSShadowsAndLightning.shadowsOnFace; },
169
+
170
+ @"ShouldersPose": ^{ result = RFSPoseAndExpression.shouldersPose; },
171
+ @"ExpressionLevel": ^{ result = RFSPoseAndExpression.expressionLevel; },
172
+ @"MouthOpen": ^{ result = RFSPoseAndExpression.mouthOpen; },
173
+ @"Smile": ^{ result = RFSPoseAndExpression.smile; },
174
+
175
+ @"DarkGlasses": ^{ result = RFSHeadOcclusion.darkGlasses; },
176
+ @"ReflectionOnGlasses": ^{ result = RFSHeadOcclusion.reflectionOnGlasses; },
177
+ @"FramesTooHeavy": ^{ result = RFSHeadOcclusion.framesTooHeavy; },
178
+ @"FaceOccluded": ^{ result = RFSHeadOcclusion.faceOccluded; },
179
+ @"HeadCovering": ^{ result = RFSHeadOcclusion.headCovering; },
180
+ @"ForeheadCovering": ^{ result = RFSHeadOcclusion.foreheadCovering; },
181
+ @"StrongMakeup": ^{ result = RFSHeadOcclusion.strongMakeup; },
182
+ @"Headphones": ^{ result = RFSHeadOcclusion.headphones; },
183
+ @"MedicalMask": ^{ result = RFSHeadOcclusion.medicalMask; },
184
+
185
+ @"BackgroundUniformity": ^{ result = RFSQualityBackground.backgroundUniformity; },
186
+ @"ShadowsOnBackground": ^{ result = RFSQualityBackground.shadowsOnBackground; },
187
+ @"OtherFaces": ^{ result = RFSQualityBackground.otherFaces; },
188
+ @"BackgroundColorMatch": ^{
189
+ if (color) result = [RFSQualityBackground backgroundColorMatchWithColor:color];
190
+ else result = RFSQualityBackground.backgroundColorMatch;
191
+ },
192
+ };
193
+ ((void(^)(void))Switch[name])();
194
+ if (!result) [NSException raise:@"RFSImageQualityCharacteristic" format:@"name not found"];
195
+ if (customRange) result = [result withCustomRange:customRange];
196
+ return result;
197
+ }
198
+
199
+ @end
@@ -0,0 +1,135 @@
1
+ #ifndef RFSWJSONConstructor_h
2
+ #define RFSWJSONConstructor_h
3
+
4
+ #import <FaceSDK/FaceSDK.h>
5
+ #import "RFSWConfig.h"
6
+
7
+ @interface RFSWJSONConstructor : NSObject
8
+
9
+ +(NSString* _Nullable)toSendable:(id _Nullable)input;
10
+ +(id _Nonnull)generateArray:(NSArray* _Nullable)input :(SEL _Nonnull)toJson;
11
+ +(id _Nullable)arrayFromJSON:(NSArray* _Nullable)input :(SEL _Nonnull)fromJson;
12
+ +(id _Nullable)base64Encode:(NSData* _Nullable)input;
13
+ +(id _Nullable)imageWithBase64:(NSString* _Nullable)input;
14
+
15
+ +(UIFont* _Nonnull)fontFromJSON:(NSDictionary* _Nonnull)input;
16
+ +(RFSLivenessStepSkip)livenessStepSkipFromJSON:(NSArray<NSNumber*>* _Nonnull)input;
17
+ +(NSArray<NSNumber*>* _Nonnull)generateLivenessStepSkip:(RFSLivenessStepSkip)input;
18
+ +(RFSScreenOrientation)screenOrienrationFromJSON:(NSArray<NSNumber*>* _Nonnull)input;
19
+ +(NSArray<NSNumber*>* _Nonnull)generateScreenOrienration:(RFSScreenOrientation)input;
20
+ +(UIColor* _Nonnull)colorWithInt:(NSNumber* _Nonnull)input;
21
+
22
+ +(id _Nonnull)generateInitCompletion:(BOOL)success :(NSError* _Nullable)error;
23
+ +(id _Nonnull)generateVideoEncoderCompletion:(NSString* _Nonnull)transactionId :(BOOL)success;
24
+ +(id _Nonnull)generateComparedFacesSplit:(RFSMatchFacesSimilarityThresholdSplit* _Nonnull)input;
25
+ +(id _Nonnull)generatePersonDBResponse:(id _Nullable)data :(NSError* _Nullable)error;
26
+ +(id _Nonnull)idFromJSON:(NSDictionary* _Nonnull)input;
27
+ +(id _Nonnull)updatePersonFromJSON:(RFSPerson* _Nonnull)result :(NSDictionary* _Nonnull)json;
28
+ +(id _Nonnull)updatePersonGroupFromJSON:(RFSPersonGroup* _Nonnull)result :(NSDictionary* _Nonnull)json;
29
+
30
+
31
+ +(RFSPoint* _Nonnull)pointFromJSON:(id _Nonnull)input;
32
+ +(NSDictionary<NSString*, id>* _Nonnull)generatePoint:(RFSPoint* _Nonnull)input;
33
+
34
+ +(CGRect)rectFromJSON:(id _Nonnull)input;
35
+ +(NSDictionary<NSString*, id>* _Nonnull)generateRect:(CGRect)input;
36
+
37
+ +(CGSize)sizeFromJSON:(id _Nonnull)input;
38
+ +(NSDictionary<NSString*, id>* _Nonnull)generateSize:(CGSize)input;
39
+
40
+ +(RFSOutputImageCrop* _Nonnull)outputImageCropFromJSON:(id _Nonnull)input;
41
+ +(NSDictionary<NSString*, id>* _Nonnull)generateOutputImageCrop:(RFSOutputImageCrop* _Nonnull)input;
42
+
43
+ +(RFSOutputImageParams* _Nonnull)outputImageParamsFromJSON:(id _Nonnull)input;
44
+ +(NSDictionary<NSString*, id>* _Nonnull)generateOutputImageParams:(RFSOutputImageParams* _Nonnull)input;
45
+
46
+ +(RFSImageQualityRange* _Nonnull)imageQualityRangeFromJSON:(id _Nonnull)input;
47
+ +(NSDictionary<NSString*, id>* _Nonnull)generateImageQualityRange:(RFSImageQualityRange* _Nonnull)input;
48
+
49
+ +(RFSImageQualityResult* _Nonnull)imageQualityResultFromJSON:(id _Nonnull)input;
50
+ +(NSDictionary<NSString*, id>* _Nonnull)generateImageQualityResult:(RFSImageQualityResult* _Nonnull)input;
51
+
52
+ +(RFSImageQualityCharacteristic* _Nonnull)imageQualityCharacteristicFromJSON:(id _Nonnull)input;
53
+ +(NSDictionary<NSString*, id>* _Nonnull)generateImageQualityCharacteristic:(RFSImageQualityCharacteristic* _Nonnull)input;
54
+
55
+ +(NSDictionary<NSString*, id>* _Nonnull)generateFaceSDKVersion:(RFSFaceSDKVersion* _Nonnull)input;
56
+
57
+ +(RFSInitializationConfiguration* _Nonnull)initConfigFromJSON:(id _Nonnull)input;
58
+ +(NSDictionary<NSString*, id>* _Nonnull)generateInitConfig:(RFSInitializationConfiguration* _Nonnull)input;
59
+
60
+ +(RFSDetectFacesAttributeResult* _Nonnull)detectFacesAttributeResultFromJSON:(id _Nonnull)input;
61
+ +(NSDictionary<NSString*, id>* _Nonnull)generateDetectFacesAttributeResult:(RFSDetectFacesAttributeResult* _Nonnull)input;
62
+
63
+ +(RFSDetectFaceResult* _Nonnull)detectFaceResultFromJSON:(id _Nonnull)input;
64
+ +(NSDictionary<NSString*, id>* _Nonnull)generateDetectFaceResult:(RFSDetectFaceResult* _Nonnull)input;
65
+
66
+ +(RFSDetectFacesConfiguration* _Nonnull)detectFacesConfigFromJSON:(id _Nonnull)input;
67
+ +(NSDictionary<NSString*, id>* _Nonnull)generateDetectFacesConfig:(RFSDetectFacesConfiguration* _Nonnull)input;
68
+
69
+ +(RFSDetectFacesRequest* _Nonnull)detectFacesRequestFromJSON:(id _Nonnull)input;
70
+ +(NSDictionary<NSString*, id>* _Nonnull)generateDetectFacesRequest:(RFSDetectFacesRequest* _Nonnull)input;
71
+
72
+ +(RFSDetectFacesResponse* _Nonnull)detectFacesResponseFromJSON:(id _Nonnull)input;
73
+ +(NSDictionary<NSString*, id>* _Nonnull)generateDetectFacesResponse:(RFSDetectFacesResponse* _Nonnull)input;
74
+
75
+ +(RFSImage* _Nonnull)faceCaptureImageFromJSON:(id _Nonnull)input;
76
+ +(NSDictionary<NSString*, id>* _Nonnull)generateFaceCaptureImage:(RFSImage* _Nonnull)input;
77
+
78
+ +(RFSFaceCaptureResponse* _Nonnull)faceCaptureResponseFromJSON:(id _Nonnull)input;
79
+ +(NSDictionary<NSString*, id>* _Nonnull)generateFaceCaptureResponse:(RFSFaceCaptureResponse* _Nonnull)input;
80
+
81
+ +(RFSLivenessResponse* _Nonnull)livenessResponseFromJSON:(id _Nonnull)input;
82
+ +(NSDictionary<NSString*, id>* _Nonnull)generateLivenessResponse:(RFSLivenessResponse* _Nonnull)input;
83
+
84
+ +(id _Nonnull)generateLivenessNotification:(RFSLivenessProcessStatus)status result:(RFSLivenessResponse* _Nullable)response;
85
+
86
+ +(RFSMatchFacesImage* _Nonnull)matchFacesImageFromJSON:(id _Nonnull)input;
87
+ +(NSDictionary<NSString*, id>* _Nonnull)generateMatchFacesImage:(RFSMatchFacesImage* _Nonnull)input;
88
+
89
+ +(RFSMatchFacesRequest* _Nonnull)matchFacesRequestFromJSON:(id _Nonnull)input;
90
+ +(NSDictionary<NSString*, id>* _Nonnull)generateMatchFacesRequest:(RFSMatchFacesRequest* _Nonnull)input;
91
+
92
+ +(RFSMatchFacesDetectionFace* _Nonnull)matchFacesDetectionFaceFromJSON:(id _Nonnull)input;
93
+ +(NSDictionary<NSString*, id>* _Nonnull)generateMatchFacesDetectionFace:(RFSMatchFacesDetectionFace* _Nonnull)input;
94
+
95
+ +(RFSMatchFacesDetection* _Nonnull)matchFacesDetectionFromJSON:(id _Nonnull)input;
96
+ +(NSDictionary<NSString*, id>* _Nonnull)generateMatchFacesDetection:(RFSMatchFacesDetection* _Nonnull)input;
97
+
98
+ +(RFSMatchFacesComparedFace* _Nonnull)comparedFaceFromJSON:(id _Nonnull)input;
99
+ +(NSDictionary<NSString*, id>* _Nonnull)generateComparedFace:(RFSMatchFacesComparedFace* _Nonnull)input;
100
+
101
+ +(RFSMatchFacesComparedFacesPair* _Nonnull)comparedFacesPairFromJSON:(id _Nonnull)input;
102
+ +(NSDictionary<NSString*, id>* _Nonnull)generateComparedFacesPair:(RFSMatchFacesComparedFacesPair* _Nonnull)input;
103
+
104
+ +(RFSMatchFacesResponse* _Nonnull)matchFacesResponseFromJSON:(id _Nonnull)input;
105
+ +(NSDictionary<NSString*, id>* _Nonnull)generateMatchFacesResponse:(RFSMatchFacesResponse* _Nonnull)input;
106
+
107
+ +(RFSEditGroupPersonsRequest* _Nonnull)editGroupPersonsRequestFromJSON:(id _Nonnull)input;
108
+ +(NSDictionary<NSString*, id>* _Nonnull)generateEditGroupPersonsRequest:(RFSEditGroupPersonsRequest* _Nonnull)input;
109
+
110
+ +(RFSImageUpload* _Nonnull)imageUploadFromJSON:(id _Nonnull)input;
111
+ +(NSDictionary<NSString*, id>* _Nonnull)generateImageUpload:(RFSImageUpload* _Nonnull)input;
112
+
113
+ +(RFSPerson* _Nonnull)personFromJSON:(id _Nonnull)input;
114
+ +(NSDictionary<NSString*, id>* _Nonnull)generatePerson:(RFSPerson* _Nonnull)input;
115
+
116
+ +(RFSPersonGroup* _Nonnull)personGroupFromJSON:(id _Nonnull)input;
117
+ +(NSDictionary<NSString*, id>* _Nonnull)generatePersonGroup:(RFSPersonGroup* _Nonnull)input;
118
+
119
+ +(RFSPersonImage* _Nonnull)personImageFromJSON:(id _Nonnull)input;
120
+ +(NSDictionary<NSString*, id>* _Nonnull)generatePersonImage:(RFSPersonImage* _Nonnull)input;
121
+
122
+ +(RFSSearchPersonDetection* _Nonnull)searchPersonDetectionFromJSON:(id _Nonnull)input;
123
+ +(NSDictionary<NSString*, id>* _Nonnull)generateSearchPersonDetection:(RFSSearchPersonDetection* _Nonnull)input;
124
+
125
+ +(RFSSearchPersonImage* _Nonnull)searchPersonImageFromJSON:(id _Nonnull)input;
126
+ +(NSDictionary<NSString*, id>* _Nonnull)generateSearchPersonImage:(RFSSearchPersonImage* _Nonnull)input;
127
+
128
+ +(RFSSearchPerson* _Nonnull)searchPersonFromJSON:(id _Nonnull)input;
129
+ +(NSDictionary<NSString*, id>* _Nonnull)generateSearchPerson:(RFSSearchPerson* _Nonnull)input;
130
+
131
+ +(RFSSearchPersonRequest* _Nonnull)searchPersonRequestFromJSON:(id _Nonnull)input;
132
+ +(NSDictionary<NSString*, id>* _Nonnull)generateSearchPersonRequest:(RFSSearchPersonRequest* _Nonnull)input;
133
+
134
+ @end
135
+ #endif