facia-mobilesdk 0.0.1
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 +2 -0
- package/android/README.md +14 -0
- package/android/build.gradle +119 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/facia/plugins/reactnative/FaciaReactNativeModule.java +79 -0
- package/android/src/main/java/com/facia/plugins/reactnative/FaciaReactNativePackage.java +29 -0
- package/index.js +5 -0
- package/ios/MobilesdkModule.h +6 -0
- package/ios/MobilesdkModule.m +99 -0
- package/ios/MobilesdkModule.xcodeproj/project.pbxproj +281 -0
- package/ios/MobilesdkModule.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/MobilesdkModule.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/package.json +58 -0
package/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
README
|
|
2
|
+
======
|
|
3
|
+
|
|
4
|
+
If you want to publish the lib as a maven dependency, follow these steps before publishing a new version to npm:
|
|
5
|
+
|
|
6
|
+
1. Be sure to have the Android [SDK](https://developer.android.com/studio/index.html) and [NDK](https://developer.android.com/ndk/guides/index.html) installed
|
|
7
|
+
2. Be sure to have a `local.properties` file in this folder that points to the Android SDK and NDK
|
|
8
|
+
```
|
|
9
|
+
ndk.dir=/Users/{username}/Library/Android/sdk/ndk-bundle
|
|
10
|
+
sdk.dir=/Users/{username}/Library/Android/sdk
|
|
11
|
+
```
|
|
12
|
+
3. Delete the `maven` folder
|
|
13
|
+
4. Run `./gradlew installArchives`
|
|
14
|
+
5. Verify that latest set of generated files is in the maven folder with the correct version number
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// android/build.gradle
|
|
2
|
+
|
|
3
|
+
// based on:
|
|
4
|
+
//
|
|
5
|
+
// * https://github.com/facebook/react-native/blob/0.60-stable/template/android/build.gradle
|
|
6
|
+
// original location:
|
|
7
|
+
// - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/build.gradle
|
|
8
|
+
//
|
|
9
|
+
// * https://github.com/facebook/react-native/blob/0.60-stable/template/android/app/build.gradle
|
|
10
|
+
// original location:
|
|
11
|
+
// - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/app/build.gradle
|
|
12
|
+
|
|
13
|
+
def DEFAULT_COMPILE_SDK_VERSION = 33
|
|
14
|
+
def DEFAULT_MIN_SDK_VERSION = 23
|
|
15
|
+
def DEFAULT_TARGET_SDK_VERSION = 33
|
|
16
|
+
|
|
17
|
+
def safeExtGet(prop, fallback) {
|
|
18
|
+
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
apply plugin: 'com.android.library'
|
|
22
|
+
apply plugin: 'maven-publish'
|
|
23
|
+
|
|
24
|
+
buildscript {
|
|
25
|
+
// The Android Gradle plugin is only required when opening the android folder stand-alone.
|
|
26
|
+
// This avoids unnecessary downloads and potential conflicts when the library is included as a
|
|
27
|
+
// module dependency in an application project.
|
|
28
|
+
// ref: https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies
|
|
29
|
+
if (project == rootProject) {
|
|
30
|
+
repositories {
|
|
31
|
+
google()
|
|
32
|
+
mavenCentral()
|
|
33
|
+
}
|
|
34
|
+
dependencies {
|
|
35
|
+
classpath 'com.android.tools.build:gradle:4.1.3'
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
apply plugin: 'com.android.library'
|
|
41
|
+
apply plugin: 'maven-publish'
|
|
42
|
+
|
|
43
|
+
android {
|
|
44
|
+
compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
|
|
45
|
+
defaultConfig {
|
|
46
|
+
minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
|
|
47
|
+
targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
|
|
48
|
+
versionCode 1
|
|
49
|
+
versionName "1.0"
|
|
50
|
+
}
|
|
51
|
+
lintOptions {
|
|
52
|
+
abortOnError false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
repositories {
|
|
57
|
+
// ref: https://www.baeldung.com/maven-local-repository
|
|
58
|
+
// mavenLocal()
|
|
59
|
+
|
|
60
|
+
maven { url 'https://jitpack.io' }
|
|
61
|
+
maven {
|
|
62
|
+
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
63
|
+
url "$rootDir/../node_modules/react-native/android"
|
|
64
|
+
}
|
|
65
|
+
maven {
|
|
66
|
+
// Android JSC is installed from npm
|
|
67
|
+
url "$rootDir/../node_modules/jsc-android/dist"
|
|
68
|
+
}
|
|
69
|
+
google()
|
|
70
|
+
mavenCentral()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
dependencies {
|
|
74
|
+
//noinspection GradleDynamicVersion
|
|
75
|
+
implementation 'com.facebook.react:react-native:+' // From node_modules
|
|
76
|
+
implementation files('libs/Facia.aar')
|
|
77
|
+
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
def configureReactNativePom(def pom) {
|
|
81
|
+
def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
afterEvaluate { project ->
|
|
87
|
+
// some Gradle build hooks ref:
|
|
88
|
+
// https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html
|
|
89
|
+
task androidJavadoc(type: Javadoc) {
|
|
90
|
+
source = android.sourceSets.main.java.srcDirs
|
|
91
|
+
classpath += files(android.bootClasspath)
|
|
92
|
+
include '**/*.java'
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
|
|
96
|
+
classifier = 'javadoc'
|
|
97
|
+
from androidJavadoc.destinationDir
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
task androidSourcesJar(type: Jar) {
|
|
101
|
+
classifier = 'sources'
|
|
102
|
+
from android.sourceSets.main.java.srcDirs
|
|
103
|
+
include '**/*.java'
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
android.libraryVariants.all { variant ->
|
|
107
|
+
def name = variant.name.capitalize()
|
|
108
|
+
def javaCompileTask = variant.javaCompileProvider.get()
|
|
109
|
+
|
|
110
|
+
task "jar${name}"(type: Jar, dependsOn: javaCompileTask) {
|
|
111
|
+
from javaCompileTask.destinationDir
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
artifacts {
|
|
116
|
+
archives androidSourcesJar
|
|
117
|
+
archives androidJavadocJar
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
package com.facia.plugins.reactnative;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Nullable;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.*;
|
|
6
|
+
import com.facebook.react.modules.core.*;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
import org.jetbrains.annotations.*;
|
|
11
|
+
import android.os.Bundle;
|
|
12
|
+
import android.util.Log;
|
|
13
|
+
|
|
14
|
+
import com.facia.faciasdk.Activity.Helpers.Enums.FaceDetectionThreshold;
|
|
15
|
+
import com.facia.faciasdk.Activity.Helpers.Enums.FaceLivenessType;
|
|
16
|
+
import com.facia.faciasdk.Activity.Helpers.Enums.OvalSize;
|
|
17
|
+
import com.facia.faciasdk.FaciaAi;
|
|
18
|
+
|
|
19
|
+
import org.json.JSONException;
|
|
20
|
+
import org.json.JSONObject;
|
|
21
|
+
|
|
22
|
+
import java.util.HashMap;
|
|
23
|
+
|
|
24
|
+
import androidx.annotation.NonNull;
|
|
25
|
+
|
|
26
|
+
import org.json.JSONObject;
|
|
27
|
+
|
|
28
|
+
public class ShuftiproReactNativeModule extends ReactContextBaseJavaModule {
|
|
29
|
+
|
|
30
|
+
private final ReactApplicationContext reactContext;
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
private final static String LOG_TAG = "FaciaModule";
|
|
34
|
+
|
|
35
|
+
public FaciaReactNativeModule(@NonNull ReactApplicationContext reactContext) {
|
|
36
|
+
super(reactContext);
|
|
37
|
+
this.reactContext = reactContext;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactMethod
|
|
41
|
+
public void testMethod() {
|
|
42
|
+
Log.d(LOG_TAG,LOG_TAG+ " testing++");
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@ReactMethod
|
|
46
|
+
public void verify(String token, String configObject, Callback callback) {
|
|
47
|
+
try {
|
|
48
|
+
|
|
49
|
+
JSONObject configJson = new JSONObject(configObject);
|
|
50
|
+
|
|
51
|
+
FaciaAi faciaAi = new FaciaAi();
|
|
52
|
+
|
|
53
|
+
faciaAi.createRequest(token, getCurrentActivity(), configJson, responseSet -> {
|
|
54
|
+
callback.invoke(new JSONObject(hashMap).toString());
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// JSONObject requestJson = new JSONObject(requestObject);
|
|
58
|
+
// JSONObject authJson = new JSONObject(authObject);
|
|
59
|
+
// JSONObject configJson = new JSONObject(configObject);
|
|
60
|
+
|
|
61
|
+
// Shuftipro.getInstance().shuftiproVerification(requestJson, authJson, configJson, getCurrentActivity(), new ShuftiVerifyListener() {
|
|
62
|
+
// @Override
|
|
63
|
+
// public void verificationStatus(HashMap<String, String> hashMap) {
|
|
64
|
+
// callback.invoke(new JSONObject(hashMap).toString());
|
|
65
|
+
// }
|
|
66
|
+
// });
|
|
67
|
+
|
|
68
|
+
} catch (Exception e) {
|
|
69
|
+
e.printStackTrace();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@NonNull
|
|
75
|
+
@Override
|
|
76
|
+
public String getName() {
|
|
77
|
+
return "FaciaReactNativeModule";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
package com.facia.plugins.reactnative;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.ReactPackage;
|
|
6
|
+
import com.facebook.react.bridge.JavaScriptModule;
|
|
7
|
+
import com.facebook.react.bridge.NativeModule;
|
|
8
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
9
|
+
import com.facebook.react.uimanager.ViewManager;
|
|
10
|
+
|
|
11
|
+
import java.util.ArrayList;
|
|
12
|
+
import java.util.Collections;
|
|
13
|
+
import java.util.List;
|
|
14
|
+
|
|
15
|
+
public class FaciaReactNativePackage implements ReactPackage {
|
|
16
|
+
@NonNull
|
|
17
|
+
@Override
|
|
18
|
+
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
|
|
19
|
+
List<NativeModule> modules = new ArrayList<>();
|
|
20
|
+
modules.add(new FaciaReactNativeModule(reactContext));
|
|
21
|
+
return modules;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@NonNull
|
|
25
|
+
@Override
|
|
26
|
+
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
|
|
27
|
+
return Collections.emptyList();
|
|
28
|
+
}
|
|
29
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#import "MobilesdkModule.h"
|
|
2
|
+
#import <ShuftiPro/ShuftiPro-Swift.h>
|
|
3
|
+
#import <React/RCTLog.h>
|
|
4
|
+
#import <React/RCTUtils.h>
|
|
5
|
+
|
|
6
|
+
@implementation MobilesdkModule
|
|
7
|
+
|
|
8
|
+
RCT_EXPORT_MODULE(ShuftiproReactNativeModule)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
RCT_EXPORT_METHOD(testMethod:(NSString *)name location:(NSString *)location)
|
|
12
|
+
{
|
|
13
|
+
ShuftiPro *shufti = [[ShuftiPro alloc] init];
|
|
14
|
+
RCTLogInfo(@"Pretending to create an event %@ at %@", [shufti getUniqueReference] , location);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
RCT_EXPORT_METHOD(verify:(NSString *)request auth:(NSString *)auth config:(NSString *)config callback: (RCTResponseSenderBlock) callback)
|
|
18
|
+
{
|
|
19
|
+
ShuftiPro *shufti = [[ShuftiPro alloc] init];
|
|
20
|
+
|
|
21
|
+
// UIViewController *rootController =
|
|
22
|
+
// [UIApplication sharedApplication]delegate] window] rootViewController];
|
|
23
|
+
UIViewController* vc = RCTPresentedViewController();
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// [shufti shuftiProVerificationWithRequestObject:requestObject authKeys:authKeys parentVC:vc configs:configs completion:^(NSDictionary *result) {
|
|
29
|
+
// NSLog(@"Verification succeeded. Result: %@", result);
|
|
30
|
+
//
|
|
31
|
+
// }];
|
|
32
|
+
|
|
33
|
+
NSLog(@"Call from OBjective C ");
|
|
34
|
+
NSLog(@"pasrsing string to json config %@", [self parseJSONString:config]);
|
|
35
|
+
NSLog(@"pasrsing string to json request %@", [self parseJSONString:request]);
|
|
36
|
+
NSLog(@"pasrsing string to json auth %@", [self parseJSONString:auth]);
|
|
37
|
+
[shufti shuftiProVerificationWithRequestObject:[self parseJSONString:request] authKeys:[self parseJSONString:auth] parentVC:vc configs:[self parseJSONString:config] completion:^(NSDictionary *result) {
|
|
38
|
+
NSLog(@"Verification completed. Result: %@", result);
|
|
39
|
+
NSString *response = [self convertToJSONString:result];
|
|
40
|
+
|
|
41
|
+
callback(@[response]);
|
|
42
|
+
}];
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
- (NSDictionary *)parseJSONString:(NSString *)jsonString {
|
|
49
|
+
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
|
|
50
|
+
|
|
51
|
+
if (jsonData) {
|
|
52
|
+
NSError *error;
|
|
53
|
+
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
|
|
54
|
+
|
|
55
|
+
if (error) {
|
|
56
|
+
NSLog(@"Error parsing JSON string: %@", error.localizedDescription);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return jsonDictionary;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return nil;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
- (NSString *)convertToJSONString:(NSDictionary *)dictionary {
|
|
66
|
+
NSError *error;
|
|
67
|
+
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
|
|
68
|
+
|
|
69
|
+
if (error) {
|
|
70
|
+
NSLog(@"Error converting to JSON string: %@", error.localizedDescription);
|
|
71
|
+
return nil;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
|
75
|
+
return jsonString;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
- (dispatch_queue_t)methodQueue
|
|
80
|
+
{
|
|
81
|
+
return dispatch_get_main_queue();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getName)
|
|
85
|
+
{
|
|
86
|
+
return [[UIDevice currentDevice] name];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getUniqueReference)
|
|
90
|
+
{
|
|
91
|
+
ShuftiPro *shufti = [[ShuftiPro alloc] init];
|
|
92
|
+
return [shufti getUniqueReference];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
- (NSArray<NSString *> *)supportedEvents {
|
|
96
|
+
return @[@"verification.accepted", @"verification.declined", @"request.received", @"request.pending", @"request.unauthorized", @"request.invalid", @"request.timeout", @"permission.denied", @"verification.cancelled"];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@end
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
// !$*UTF8*$!
|
|
2
|
+
{
|
|
3
|
+
archiveVersion = 1;
|
|
4
|
+
classes = {
|
|
5
|
+
};
|
|
6
|
+
objectVersion = 46;
|
|
7
|
+
objects = {
|
|
8
|
+
|
|
9
|
+
/* Begin PBXCopyFilesBuildPhase section */
|
|
10
|
+
58B511D91A9E6C8500147676 /* CopyFiles */ = {
|
|
11
|
+
isa = PBXCopyFilesBuildPhase;
|
|
12
|
+
buildActionMask = 2147483647;
|
|
13
|
+
dstPath = "include/$(PRODUCT_NAME)";
|
|
14
|
+
dstSubfolderSpec = 16;
|
|
15
|
+
files = (
|
|
16
|
+
);
|
|
17
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
18
|
+
};
|
|
19
|
+
/* End PBXCopyFilesBuildPhase section */
|
|
20
|
+
|
|
21
|
+
/* Begin PBXFileReference section */
|
|
22
|
+
134814201AA4EA6300B7C361 /* libMobilesdkModule.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobilesdkModule.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
23
|
+
/* End PBXFileReference section */
|
|
24
|
+
|
|
25
|
+
/* Begin PBXFrameworksBuildPhase section */
|
|
26
|
+
58B511D81A9E6C8500147676 /* Frameworks */ = {
|
|
27
|
+
isa = PBXFrameworksBuildPhase;
|
|
28
|
+
buildActionMask = 2147483647;
|
|
29
|
+
files = (
|
|
30
|
+
);
|
|
31
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
32
|
+
};
|
|
33
|
+
/* End PBXFrameworksBuildPhase section */
|
|
34
|
+
|
|
35
|
+
/* Begin PBXGroup section */
|
|
36
|
+
134814211AA4EA7D00B7C361 /* Products */ = {
|
|
37
|
+
isa = PBXGroup;
|
|
38
|
+
children = (
|
|
39
|
+
134814201AA4EA6300B7C361 /* libMobilesdkModule.a */,
|
|
40
|
+
);
|
|
41
|
+
name = Products;
|
|
42
|
+
sourceTree = "<group>";
|
|
43
|
+
};
|
|
44
|
+
58B511D21A9E6C8500147676 = {
|
|
45
|
+
isa = PBXGroup;
|
|
46
|
+
children = (
|
|
47
|
+
134814211AA4EA7D00B7C361 /* Products */,
|
|
48
|
+
);
|
|
49
|
+
sourceTree = "<group>";
|
|
50
|
+
};
|
|
51
|
+
/* End PBXGroup section */
|
|
52
|
+
|
|
53
|
+
/* Begin PBXNativeTarget section */
|
|
54
|
+
58B511DA1A9E6C8500147676 /* MobilesdkModule */ = {
|
|
55
|
+
isa = PBXNativeTarget;
|
|
56
|
+
buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "MobilesdkModule" */;
|
|
57
|
+
buildPhases = (
|
|
58
|
+
58B511D71A9E6C8500147676 /* Sources */,
|
|
59
|
+
58B511D81A9E6C8500147676 /* Frameworks */,
|
|
60
|
+
58B511D91A9E6C8500147676 /* CopyFiles */,
|
|
61
|
+
);
|
|
62
|
+
buildRules = (
|
|
63
|
+
);
|
|
64
|
+
dependencies = (
|
|
65
|
+
);
|
|
66
|
+
name = MobilesdkModule;
|
|
67
|
+
productName = RCTDataManager;
|
|
68
|
+
productReference = 134814201AA4EA6300B7C361 /* libMobilesdkModule.a */;
|
|
69
|
+
productType = "com.apple.product-type.library.static";
|
|
70
|
+
};
|
|
71
|
+
/* End PBXNativeTarget section */
|
|
72
|
+
|
|
73
|
+
/* Begin PBXProject section */
|
|
74
|
+
58B511D31A9E6C8500147676 /* Project object */ = {
|
|
75
|
+
isa = PBXProject;
|
|
76
|
+
attributes = {
|
|
77
|
+
LastUpgradeCheck = 0920;
|
|
78
|
+
ORGANIZATIONNAME = Facebook;
|
|
79
|
+
TargetAttributes = {
|
|
80
|
+
58B511DA1A9E6C8500147676 = {
|
|
81
|
+
CreatedOnToolsVersion = 6.1.1;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "MobilesdkModule" */;
|
|
86
|
+
compatibilityVersion = "Xcode 3.2";
|
|
87
|
+
developmentRegion = en;
|
|
88
|
+
hasScannedForEncodings = 0;
|
|
89
|
+
knownRegions = (
|
|
90
|
+
en,
|
|
91
|
+
Base,
|
|
92
|
+
);
|
|
93
|
+
mainGroup = 58B511D21A9E6C8500147676;
|
|
94
|
+
productRefGroup = 58B511D21A9E6C8500147676;
|
|
95
|
+
projectDirPath = "";
|
|
96
|
+
projectRoot = "";
|
|
97
|
+
targets = (
|
|
98
|
+
58B511DA1A9E6C8500147676 /* MobilesdkModule */,
|
|
99
|
+
);
|
|
100
|
+
};
|
|
101
|
+
/* End PBXProject section */
|
|
102
|
+
|
|
103
|
+
/* Begin PBXSourcesBuildPhase section */
|
|
104
|
+
58B511D71A9E6C8500147676 /* Sources */ = {
|
|
105
|
+
isa = PBXSourcesBuildPhase;
|
|
106
|
+
buildActionMask = 2147483647;
|
|
107
|
+
files = (
|
|
108
|
+
);
|
|
109
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
110
|
+
};
|
|
111
|
+
/* End PBXSourcesBuildPhase section */
|
|
112
|
+
|
|
113
|
+
/* Begin XCBuildConfiguration section */
|
|
114
|
+
58B511ED1A9E6C8500147676 /* Debug */ = {
|
|
115
|
+
isa = XCBuildConfiguration;
|
|
116
|
+
buildSettings = {
|
|
117
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
118
|
+
CLANG_ANALYZER_NONNULL = YES;
|
|
119
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
120
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
121
|
+
CLANG_ENABLE_MODULES = YES;
|
|
122
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
123
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
124
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
125
|
+
CLANG_WARN_COMMA = YES;
|
|
126
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
127
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
128
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
129
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
130
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
131
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
132
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
133
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
134
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
135
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
136
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
137
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
138
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
139
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
140
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
141
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
142
|
+
COPY_PHASE_STRIP = NO;
|
|
143
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
144
|
+
ENABLE_TESTABILITY = YES;
|
|
145
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
146
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
|
147
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
148
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
|
149
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
150
|
+
"DEBUG=1",
|
|
151
|
+
"$(inherited)",
|
|
152
|
+
);
|
|
153
|
+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
|
154
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
155
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
156
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
157
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
158
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
159
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
160
|
+
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
|
161
|
+
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
|
|
162
|
+
LIBRARY_SEARCH_PATHS = (
|
|
163
|
+
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
|
|
164
|
+
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
|
|
165
|
+
"\"$(inherited)\"",
|
|
166
|
+
);
|
|
167
|
+
MTL_ENABLE_DEBUG_INFO = YES;
|
|
168
|
+
ONLY_ACTIVE_ARCH = YES;
|
|
169
|
+
SDKROOT = iphoneos;
|
|
170
|
+
};
|
|
171
|
+
name = Debug;
|
|
172
|
+
};
|
|
173
|
+
58B511EE1A9E6C8500147676 /* Release */ = {
|
|
174
|
+
isa = XCBuildConfiguration;
|
|
175
|
+
buildSettings = {
|
|
176
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
177
|
+
CLANG_ANALYZER_NONNULL = YES;
|
|
178
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
179
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
180
|
+
CLANG_ENABLE_MODULES = YES;
|
|
181
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
182
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
183
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
184
|
+
CLANG_WARN_COMMA = YES;
|
|
185
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
186
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
187
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
188
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
189
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
190
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
191
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
192
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
193
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
194
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
195
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
196
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
197
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
198
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
199
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
200
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
201
|
+
COPY_PHASE_STRIP = YES;
|
|
202
|
+
ENABLE_NS_ASSERTIONS = NO;
|
|
203
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
204
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
205
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
206
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
207
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
208
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
209
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
210
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
211
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
212
|
+
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
|
213
|
+
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
|
|
214
|
+
LIBRARY_SEARCH_PATHS = (
|
|
215
|
+
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
|
|
216
|
+
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
|
|
217
|
+
"\"$(inherited)\"",
|
|
218
|
+
);
|
|
219
|
+
MTL_ENABLE_DEBUG_INFO = NO;
|
|
220
|
+
SDKROOT = iphoneos;
|
|
221
|
+
VALIDATE_PRODUCT = YES;
|
|
222
|
+
};
|
|
223
|
+
name = Release;
|
|
224
|
+
};
|
|
225
|
+
58B511F01A9E6C8500147676 /* Debug */ = {
|
|
226
|
+
isa = XCBuildConfiguration;
|
|
227
|
+
buildSettings = {
|
|
228
|
+
HEADER_SEARCH_PATHS = (
|
|
229
|
+
"$(inherited)",
|
|
230
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
231
|
+
"$(SRCROOT)/../../../React/**",
|
|
232
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
233
|
+
);
|
|
234
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
235
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
236
|
+
PRODUCT_NAME = MobilesdkModule;
|
|
237
|
+
SKIP_INSTALL = YES;
|
|
238
|
+
};
|
|
239
|
+
name = Debug;
|
|
240
|
+
};
|
|
241
|
+
58B511F11A9E6C8500147676 /* Release */ = {
|
|
242
|
+
isa = XCBuildConfiguration;
|
|
243
|
+
buildSettings = {
|
|
244
|
+
HEADER_SEARCH_PATHS = (
|
|
245
|
+
"$(inherited)",
|
|
246
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
247
|
+
"$(SRCROOT)/../../../React/**",
|
|
248
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
249
|
+
);
|
|
250
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
251
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
252
|
+
PRODUCT_NAME = MobilesdkModule;
|
|
253
|
+
SKIP_INSTALL = YES;
|
|
254
|
+
};
|
|
255
|
+
name = Release;
|
|
256
|
+
};
|
|
257
|
+
/* End XCBuildConfiguration section */
|
|
258
|
+
|
|
259
|
+
/* Begin XCConfigurationList section */
|
|
260
|
+
58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "MobilesdkModule" */ = {
|
|
261
|
+
isa = XCConfigurationList;
|
|
262
|
+
buildConfigurations = (
|
|
263
|
+
58B511ED1A9E6C8500147676 /* Debug */,
|
|
264
|
+
58B511EE1A9E6C8500147676 /* Release */,
|
|
265
|
+
);
|
|
266
|
+
defaultConfigurationIsVisible = 0;
|
|
267
|
+
defaultConfigurationName = Release;
|
|
268
|
+
};
|
|
269
|
+
58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "MobilesdkModule" */ = {
|
|
270
|
+
isa = XCConfigurationList;
|
|
271
|
+
buildConfigurations = (
|
|
272
|
+
58B511F01A9E6C8500147676 /* Debug */,
|
|
273
|
+
58B511F11A9E6C8500147676 /* Release */,
|
|
274
|
+
);
|
|
275
|
+
defaultConfigurationIsVisible = 0;
|
|
276
|
+
defaultConfigurationName = Release;
|
|
277
|
+
};
|
|
278
|
+
/* End XCConfigurationList section */
|
|
279
|
+
};
|
|
280
|
+
rootObject = 58B511D31A9E6C8500147676 /* Project object */;
|
|
281
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "facia-mobilesdk",
|
|
3
|
+
"title": "React Native Mobilesdk Module",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"description": "Facia mobile SDK",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"files": [
|
|
8
|
+
"README.md",
|
|
9
|
+
"android/src",
|
|
10
|
+
"android/build.gradle",
|
|
11
|
+
"index.js",
|
|
12
|
+
"ios",
|
|
13
|
+
"facia-mobilesdk.podspec"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
|
|
17
|
+
"android": "react-native run-android",
|
|
18
|
+
|
|
19
|
+
"ios": "react-native run-ios",
|
|
20
|
+
|
|
21
|
+
"lint": "eslint .",
|
|
22
|
+
|
|
23
|
+
"start": "react-native start",
|
|
24
|
+
|
|
25
|
+
"test": "jest"
|
|
26
|
+
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"react-native",
|
|
33
|
+
"facia",
|
|
34
|
+
"kyc",
|
|
35
|
+
"android",
|
|
36
|
+
"ios"
|
|
37
|
+
],
|
|
38
|
+
"author": {
|
|
39
|
+
"name": "faica",
|
|
40
|
+
"email": "support@facia.ai"
|
|
41
|
+
},
|
|
42
|
+
"license": "Facia",
|
|
43
|
+
"licenseFilename": "LICENSE",
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"react-native": ">=0.60.0-rc.0 <1.0.x"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"babel-eslint": "10.1.0",
|
|
49
|
+
"eslint": "7.12.1",
|
|
50
|
+
"eslint-plugin-react": "7.21.5",
|
|
51
|
+
"eslint-plugin-react-hooks": "4.2.0",
|
|
52
|
+
"eslint-plugin-react-native": "3.10.0",
|
|
53
|
+
"react-native": "0.63.3"
|
|
54
|
+
},
|
|
55
|
+
"prettier": {
|
|
56
|
+
"printWidth": 120
|
|
57
|
+
}
|
|
58
|
+
}
|