@smile_identity/react-native 10.1.3 → 10.1.4
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/android/build.gradle +5 -24
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/smileidentity/react/SmileIdModule.kt +66 -2
- package/android/src/main/java/com/smileidentity/react/SmileIdPackage.kt +2 -2
- package/android/src/oldarch/SmileIdSpec.kt +14 -0
- package/ios/RNSmileID.mm +7 -0
- package/ios/RNSmileID.swift +145 -87
- package/ios/Utils/SmileIDDictExt.swift +16 -0
- package/ios/View/SmileIDBiometricKYCView.swift +1 -1
- package/ios/View/SmileIDDocumentVerificationView.swift +1 -1
- package/ios/View/SmileIDEnhancedDocumentVerificationView.swift +1 -1
- package/ios/View/SmileIDSmartSelfieAuthView.swift +1 -1
- package/ios/View/SmileIDSmartSelfieEnrollmentView.swift +1 -1
- package/lib/commonjs/NativeSmileId.js.map +1 -1
- package/lib/commonjs/SmileIDBiometricKYCView.js +2 -2
- package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -1
- package/lib/commonjs/SmileIDConsentView.js +2 -2
- package/lib/commonjs/SmileIDConsentView.js.map +1 -1
- package/lib/commonjs/SmileIDDocumentVerificationView.js +2 -2
- package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -1
- package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +2 -2
- package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -1
- package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +2 -2
- package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -1
- package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +2 -2
- package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -1
- package/lib/commonjs/index.js +22 -146
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeSmileId.js.map +1 -1
- package/lib/module/SmileIDBiometricKYCView.js +1 -1
- package/lib/module/SmileIDBiometricKYCView.js.map +1 -1
- package/lib/module/SmileIDConsentView.js +1 -1
- package/lib/module/SmileIDConsentView.js.map +1 -1
- package/lib/module/SmileIDDocumentVerificationView.js +1 -1
- package/lib/module/SmileIDDocumentVerificationView.js.map +1 -1
- package/lib/module/SmileIDEnhancedDocumentVerificationView.js +1 -1
- package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -1
- package/lib/module/SmileIDSmartSelfieAuthenticationView.js +1 -1
- package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -1
- package/lib/module/SmileIDSmartSelfieEnrollmentView.js +1 -1
- package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -1
- package/lib/module/index.js +22 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/{NativeSmileId.d.ts → src/NativeSmileId.d.ts} +33 -0
- package/lib/typescript/src/NativeSmileId.d.ts.map +1 -0
- package/lib/typescript/{SmileIDBiometricKYCView.d.ts → src/SmileIDBiometricKYCView.d.ts} +1 -1
- package/lib/typescript/src/SmileIDBiometricKYCView.d.ts.map +1 -0
- package/lib/typescript/{SmileIDConsentView.d.ts → src/SmileIDConsentView.d.ts} +1 -1
- package/lib/typescript/src/SmileIDConsentView.d.ts.map +1 -0
- package/lib/typescript/{SmileIDDocumentVerificationView.d.ts → src/SmileIDDocumentVerificationView.d.ts} +1 -1
- package/lib/typescript/src/SmileIDDocumentVerificationView.d.ts.map +1 -0
- package/lib/typescript/{SmileIDEnhancedDocumentVerificationView.d.ts → src/SmileIDEnhancedDocumentVerificationView.d.ts} +1 -1
- package/lib/typescript/src/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -0
- package/lib/typescript/{SmileIDSmartSelfieAuthenticationView.d.ts → src/SmileIDSmartSelfieAuthenticationView.d.ts} +1 -1
- package/lib/typescript/src/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -0
- package/lib/typescript/{SmileIDSmartSelfieEnrollmentView.d.ts → src/SmileIDSmartSelfieEnrollmentView.d.ts} +1 -1
- package/lib/typescript/src/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +24 -2
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/{types.d.ts → src/types.d.ts} +1 -1
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +25 -38
- package/react-native-smile-id.podspec +17 -17
- package/src/NativeSmileId.ts +40 -0
- package/src/SmileIDBiometricKYCView.tsx +3 -7
- package/src/SmileIDConsentView.tsx +3 -7
- package/src/SmileIDDocumentVerificationView.tsx +3 -7
- package/src/SmileIDEnhancedDocumentVerificationView.tsx +3 -7
- package/src/SmileIDSmartSelfieAuthenticationView.tsx +3 -7
- package/src/SmileIDSmartSelfieEnrollmentView.tsx +3 -7
- package/src/index.tsx +32 -2
- package/src/types.ts +1 -1
- package/lib/typescript/NativeSmileId.d.ts.map +0 -1
- package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +0 -1
- package/lib/typescript/SmileIDConsentView.d.ts.map +0 -1
- package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +0 -1
- package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +0 -1
- package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +0 -1
- package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/types.d.ts.map +0 -1
package/android/build.gradle
CHANGED
|
@@ -18,8 +18,9 @@ buildscript {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
def
|
|
22
|
-
|
|
21
|
+
def reactNativeArchitectures() {
|
|
22
|
+
def value = rootProject.getProperties().get("reactNativeArchitectures")
|
|
23
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
apply plugin: "com.android.library"
|
|
@@ -27,10 +28,6 @@ apply plugin: "kotlin-android"
|
|
|
27
28
|
apply plugin: 'kotlin-kapt'
|
|
28
29
|
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
|
29
30
|
|
|
30
|
-
if (isNewArchitectureEnabled()) {
|
|
31
|
-
apply plugin: "com.facebook.react"
|
|
32
|
-
}
|
|
33
|
-
|
|
34
31
|
def getExtOrDefault(name) {
|
|
35
32
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["SmileId_" + name]
|
|
36
33
|
}
|
|
@@ -68,7 +65,7 @@ android {
|
|
|
68
65
|
defaultConfig {
|
|
69
66
|
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
70
67
|
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
71
|
-
|
|
68
|
+
|
|
72
69
|
}
|
|
73
70
|
buildTypes {
|
|
74
71
|
release {
|
|
@@ -100,15 +97,7 @@ android {
|
|
|
100
97
|
|
|
101
98
|
sourceSets {
|
|
102
99
|
main {
|
|
103
|
-
|
|
104
|
-
java.srcDirs += [
|
|
105
|
-
"src/newarch",
|
|
106
|
-
// This is needed to build Kotlin project with NewArch enabled
|
|
107
|
-
"${project.buildDir}/generated/source/codegen/java"
|
|
108
|
-
]
|
|
109
|
-
} else {
|
|
110
|
-
java.srcDirs += ["src/oldarch"]
|
|
111
|
-
}
|
|
100
|
+
java.srcDirs += ["src/oldarch"]
|
|
112
101
|
}
|
|
113
102
|
}
|
|
114
103
|
}
|
|
@@ -144,11 +133,3 @@ dependencies {
|
|
|
144
133
|
debugImplementation 'androidx.compose.ui:ui-tooling'
|
|
145
134
|
debugImplementation 'androidx.compose.ui:ui-test-manifest'
|
|
146
135
|
}
|
|
147
|
-
|
|
148
|
-
if (isNewArchitectureEnabled()) {
|
|
149
|
-
react {
|
|
150
|
-
jsRootDir = file("../src/")
|
|
151
|
-
libraryName = "SmileId"
|
|
152
|
-
codegenJavaPackageName = "com.smileidentity.react"
|
|
153
|
-
}
|
|
154
|
-
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
package com.smileidentity.react
|
|
2
2
|
|
|
3
3
|
import android.util.Log
|
|
4
|
+
import com.facebook.react.bridge.Arguments
|
|
4
5
|
import com.facebook.react.bridge.Promise
|
|
5
6
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
7
|
import com.facebook.react.bridge.ReactMethod
|
|
7
8
|
import com.facebook.react.bridge.ReadableMap
|
|
9
|
+
import com.facebook.react.bridge.WritableArray
|
|
8
10
|
import com.smileidentity.SmileID
|
|
9
11
|
import com.smileidentity.SmileIDCrashReporting
|
|
10
12
|
import com.smileidentity.SmileIdSpec
|
|
@@ -27,6 +29,7 @@ import com.smileidentity.networking.pollSmartSelfieJobStatus
|
|
|
27
29
|
import com.smileidentity.react.utils.getIntOrDefault
|
|
28
30
|
import com.smileidentity.react.utils.getStringOrDefault
|
|
29
31
|
import com.smileidentity.results.SmartSelfieResult
|
|
32
|
+
import java.net.URL
|
|
30
33
|
import kotlinx.coroutines.CoroutineExceptionHandler
|
|
31
34
|
import kotlinx.coroutines.CoroutineScope
|
|
32
35
|
import kotlinx.coroutines.Dispatchers
|
|
@@ -53,11 +56,72 @@ class SmileIdModule internal constructor(context: ReactApplicationContext) :
|
|
|
53
56
|
promise.resolve(null)
|
|
54
57
|
}
|
|
55
58
|
|
|
59
|
+
@ReactMethod
|
|
60
|
+
override fun setEnvironment(useSandBox: Boolean, promise: Promise) {
|
|
61
|
+
SmileID.setEnvironment(useSandbox = useSandBox)
|
|
62
|
+
promise.resolve(null)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@ReactMethod
|
|
66
|
+
override fun setCallbackUrl(callbackUrl: String, promise: Promise) {
|
|
67
|
+
SmileID.setCallbackUrl(callbackUrl = URL(callbackUrl))
|
|
68
|
+
promise.resolve(null)
|
|
69
|
+
}
|
|
70
|
+
|
|
56
71
|
@ReactMethod
|
|
57
72
|
override fun disableCrashReporting(promise: Promise) {
|
|
58
73
|
SmileIDCrashReporting.disable()
|
|
59
74
|
}
|
|
60
75
|
|
|
76
|
+
@ReactMethod
|
|
77
|
+
override fun setAllowOfflineMode(allowOfflineMode: Boolean, promise: Promise) {
|
|
78
|
+
SmileID.setAllowOfflineMode(allowOfflineMode)
|
|
79
|
+
promise.resolve(null)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ReactMethod
|
|
83
|
+
override fun submitJob(jobId: String, promise: Promise) = launch(
|
|
84
|
+
work = { SmileID.submitJob(jobId) },
|
|
85
|
+
clazz = Unit::class.java,
|
|
86
|
+
promise = promise
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
@ReactMethod
|
|
90
|
+
override fun getUnsubmittedJobs(promise: Promise) {
|
|
91
|
+
try {
|
|
92
|
+
val writableArray: WritableArray = Arguments.createArray()
|
|
93
|
+
SmileID.getUnsubmittedJobs().forEach {
|
|
94
|
+
writableArray.pushString(it)
|
|
95
|
+
}
|
|
96
|
+
promise.resolve(writableArray)
|
|
97
|
+
} catch (e: Exception) {
|
|
98
|
+
promise.reject(e)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@ReactMethod
|
|
103
|
+
override fun getSubmittedJobs(promise: Promise) {
|
|
104
|
+
try {
|
|
105
|
+
val writableArray: WritableArray = Arguments.createArray()
|
|
106
|
+
SmileID.getSubmittedJobs().forEach {
|
|
107
|
+
writableArray.pushString(it)
|
|
108
|
+
}
|
|
109
|
+
promise.resolve(writableArray)
|
|
110
|
+
} catch (e: Exception) {
|
|
111
|
+
promise.reject(e)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@ReactMethod
|
|
116
|
+
override fun cleanup(jobId: String, promise: Promise) {
|
|
117
|
+
try {
|
|
118
|
+
SmileID.cleanup(jobId)
|
|
119
|
+
promise.resolve(null)
|
|
120
|
+
} catch (e: Exception) {
|
|
121
|
+
promise.resolve(e)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
61
125
|
@ReactMethod
|
|
62
126
|
override fun authenticate(request: ReadableMap, promise: Promise) = launch(
|
|
63
127
|
work = {
|
|
@@ -264,7 +328,7 @@ class SmileIdModule internal constructor(context: ReactApplicationContext) :
|
|
|
264
328
|
scope: CoroutineScope = CoroutineScope(Dispatchers.IO)
|
|
265
329
|
) {
|
|
266
330
|
val handler = CoroutineExceptionHandler { _, throwable ->
|
|
267
|
-
promise.reject(throwable
|
|
331
|
+
promise.reject(throwable)
|
|
268
332
|
}
|
|
269
333
|
scope.launch(handler) {
|
|
270
334
|
try {
|
|
@@ -276,7 +340,7 @@ class SmileIdModule internal constructor(context: ReactApplicationContext) :
|
|
|
276
340
|
promise.resolve(jsonResult)
|
|
277
341
|
}
|
|
278
342
|
} catch (e: Exception) {
|
|
279
|
-
promise.reject(e
|
|
343
|
+
promise.reject(e)
|
|
280
344
|
}
|
|
281
345
|
}
|
|
282
346
|
}
|
|
@@ -36,7 +36,7 @@ class SmileIdPackage : TurboReactPackage() {
|
|
|
36
36
|
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
37
37
|
return ReactModuleInfoProvider {
|
|
38
38
|
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
moduleInfos[SmileIdModule.NAME] = ReactModuleInfo(
|
|
41
41
|
SmileIdModule.NAME,
|
|
42
42
|
SmileIdModule.NAME,
|
|
@@ -44,7 +44,7 @@ class SmileIdPackage : TurboReactPackage() {
|
|
|
44
44
|
false, // needsEagerInit
|
|
45
45
|
true, // hasConstants
|
|
46
46
|
false, // isCxxModule
|
|
47
|
-
|
|
47
|
+
false // isTurboModule
|
|
48
48
|
)
|
|
49
49
|
moduleInfos
|
|
50
50
|
}
|
|
@@ -10,6 +10,20 @@ abstract class SmileIdSpec internal constructor(context: ReactApplicationContext
|
|
|
10
10
|
|
|
11
11
|
abstract fun initialize(useSandBox: Boolean ,promise: Promise)
|
|
12
12
|
|
|
13
|
+
abstract fun setEnvironment(useSandbox: Boolean, promise: Promise)
|
|
14
|
+
|
|
15
|
+
abstract fun setCallbackUrl(callbackUrl: String, promise: Promise)
|
|
16
|
+
|
|
17
|
+
abstract fun setAllowOfflineMode(allowOfflineMode: Boolean ,promise: Promise)
|
|
18
|
+
|
|
19
|
+
abstract fun submitJob(jobId: String ,promise: Promise)
|
|
20
|
+
|
|
21
|
+
abstract fun getUnsubmittedJobs(promise: Promise)
|
|
22
|
+
|
|
23
|
+
abstract fun getSubmittedJobs(promise: Promise)
|
|
24
|
+
|
|
25
|
+
abstract fun cleanup(jobId: String ,promise: Promise)
|
|
26
|
+
|
|
13
27
|
abstract fun disableCrashReporting(promise: Promise)
|
|
14
28
|
|
|
15
29
|
abstract fun authenticate(request: ReadableMap, promise: Promise)
|
package/ios/RNSmileID.mm
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
@interface RCT_EXTERN_MODULE(RNSmileID, NSObject)
|
|
4
4
|
RCT_EXTERN_METHOD(initialize:(BOOL)useSandBox withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
5
|
+
RCT_EXTERN_METHOD(setEnvironment:(BOOL)useSandBox withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
6
|
+
RCT_EXTERN_METHOD(setCallbackUrl:(NSString)callbackUrl withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
7
|
+
RCT_EXTERN_METHOD(setAllowOfflineMode:(BOOL)allowOfflineMode withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
8
|
+
RCT_EXTERN_METHOD(submitJob:(NSString *)jobId withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
9
|
+
RCT_EXTERN_METHOD(getUnsubmittedJobs:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
10
|
+
RCT_EXTERN_METHOD(getSubmittedJobs:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
11
|
+
RCT_EXTERN_METHOD(cleanup:(NSString *)jobId withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
5
12
|
RCT_EXTERN_METHOD(authenticate:(NSDictionary *)request withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
6
13
|
RCT_EXTERN_METHOD(prepUpload:(NSDictionary *)request withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
|
7
14
|
RCT_EXTERN_METHOD(upload:(NSString *)url request:(NSDictionary *)request withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
|
package/ios/RNSmileID.swift
CHANGED
|
@@ -1,16 +1,71 @@
|
|
|
1
|
-
import Combine
|
|
2
1
|
import SmileID
|
|
3
2
|
|
|
4
3
|
@objc(RNSmileID)
|
|
5
4
|
class RNSmileID: NSObject {
|
|
6
|
-
private var cancellables = Set<AnyCancellable>()
|
|
7
|
-
|
|
8
5
|
@objc(initialize:withResolver:withRejecter:)
|
|
9
6
|
func initialize(useSandBox: Bool, resolve: @escaping RCTPromiseResolveBlock, reject _: @escaping RCTPromiseRejectBlock) {
|
|
10
7
|
SmileID.initialize(useSandbox: useSandBox)
|
|
11
8
|
resolve(nil)
|
|
12
9
|
}
|
|
13
10
|
|
|
11
|
+
@objc(setEnvironment:withResolver:withRejecter:)
|
|
12
|
+
func setEnvironment(useSandBox: Bool, resolve: @escaping RCTPromiseResolveBlock, reject _: @escaping RCTPromiseRejectBlock) {
|
|
13
|
+
SmileID.setEnvironment(useSandbox: useSandBox)
|
|
14
|
+
resolve(nil)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@objc(setCallbackUrl:withResolver:withRejecter:)
|
|
18
|
+
func setCallbackUrl(callbackUrl: URL, resolve: @escaping RCTPromiseResolveBlock, reject _: @escaping RCTPromiseRejectBlock) {
|
|
19
|
+
SmileID.setCallbackUrl(callbackUrl: callbackUrl)
|
|
20
|
+
resolve(nil)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@objc(setAllowOfflineMode:withResolver:withRejecter:)
|
|
24
|
+
func setAllowOfflineMode(allowOfflineMode: Bool, resolve: @escaping RCTPromiseResolveBlock, reject _: @escaping RCTPromiseRejectBlock) {
|
|
25
|
+
SmileID.setAllowOfflineMode(allowOfflineMode: allowOfflineMode)
|
|
26
|
+
resolve(nil)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@objc(submitJob:withResolver:withRejecter:)
|
|
30
|
+
func submitJob(jobId: String, resolve: @escaping RCTPromiseResolveBlock, reject : @escaping RCTPromiseRejectBlock) {
|
|
31
|
+
do {
|
|
32
|
+
try SmileID.submitJob(jobId: jobId)
|
|
33
|
+
resolve(nil)
|
|
34
|
+
} catch let error as NSError {
|
|
35
|
+
reject("Error", error.localizedDescription, error)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@objc(getSubmittedJobs:withRejecter:)
|
|
40
|
+
func getSubmittedJobs(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
41
|
+
do {
|
|
42
|
+
let jobs: [String] = SmileID.getUnsubmittedJobs()
|
|
43
|
+
resolve(jobs)
|
|
44
|
+
} catch let error as NSError {
|
|
45
|
+
reject("Error", error.localizedDescription, error)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@objc(getUnsubmittedJobs:withRejecter:)
|
|
50
|
+
func getUnsubmittedJobs(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
51
|
+
do {
|
|
52
|
+
let jobs: [String] = SmileID.getUnsubmittedJobs()
|
|
53
|
+
resolve(jobs)
|
|
54
|
+
} catch let error as NSError {
|
|
55
|
+
reject("Error", error.localizedDescription, error)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@objc(cleanup:withResolver:withRejecter:)
|
|
60
|
+
func cleanup(jobId: String, resolve: @escaping RCTPromiseResolveBlock, reject : @escaping RCTPromiseRejectBlock) {
|
|
61
|
+
do {
|
|
62
|
+
try SmileID.cleanup(jobId: jobId)
|
|
63
|
+
resolve(nil)
|
|
64
|
+
} catch let error as NSError {
|
|
65
|
+
reject("Error", error.localizedDescription, error)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
14
69
|
@objc(authenticate:withResolver:withRejecter:)
|
|
15
70
|
func authenticate(request: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
16
71
|
guard let authenticationRequest = request.toAuthenticationRequest() else {
|
|
@@ -18,12 +73,14 @@ class RNSmileID: NSObject {
|
|
|
18
73
|
return
|
|
19
74
|
}
|
|
20
75
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}, receiveValue: { response in
|
|
76
|
+
Task {
|
|
77
|
+
do {
|
|
78
|
+
let response = try await SmileID.api.authenticate(request: authenticationRequest)
|
|
25
79
|
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
26
|
-
}
|
|
80
|
+
} catch {
|
|
81
|
+
reject("Error", error.localizedDescription, error)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
27
84
|
}
|
|
28
85
|
|
|
29
86
|
@objc(prepUpload:withResolver:withRejecter:)
|
|
@@ -33,11 +90,14 @@ class RNSmileID: NSObject {
|
|
|
33
90
|
return
|
|
34
91
|
}
|
|
35
92
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
93
|
+
Task {
|
|
94
|
+
do {
|
|
95
|
+
let response = try await SmileID.api.prepUpload(request: prepUploadRequest)
|
|
96
|
+
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
97
|
+
} catch {
|
|
98
|
+
reject("Error", error.localizedDescription, error)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
41
101
|
}
|
|
42
102
|
|
|
43
103
|
@objc(upload:request:withResolver:withRejecter:)
|
|
@@ -57,10 +117,14 @@ class RNSmileID: NSObject {
|
|
|
57
117
|
return
|
|
58
118
|
}
|
|
59
119
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
120
|
+
Task {
|
|
121
|
+
do {
|
|
122
|
+
try await SmileID.api.upload(zip: zipData, to: url)
|
|
123
|
+
resolve(nil)
|
|
124
|
+
} catch {
|
|
125
|
+
reject("Error", error.localizedDescription, error)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
64
128
|
}
|
|
65
129
|
|
|
66
130
|
@objc(doEnhancedKyc:withResolver:withRejecter:)
|
|
@@ -111,23 +175,19 @@ class RNSmileID: NSObject {
|
|
|
111
175
|
signature: signature
|
|
112
176
|
)
|
|
113
177
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
case let .failure(error):
|
|
118
|
-
reject("Error", error.localizedDescription, error)
|
|
119
|
-
case .finished:
|
|
120
|
-
break
|
|
121
|
-
}
|
|
122
|
-
}, receiveValue: { response in
|
|
178
|
+
Task {
|
|
179
|
+
do {
|
|
180
|
+
let response = try await SmileID.api.doEnhancedKyc(request: request)
|
|
123
181
|
let encoder = JSONEncoder()
|
|
124
182
|
guard let jsonData = try? encoder.encode(response) else {
|
|
125
|
-
|
|
126
|
-
SmileIDError.unknown("doEnhancedKyc encoding error "))
|
|
127
|
-
return
|
|
183
|
+
throw SmileIDError.unknown("doEnhancedKyc encoding error")
|
|
128
184
|
}
|
|
129
|
-
|
|
130
|
-
|
|
185
|
+
// Assuming you have a method to convert response to a dictionary
|
|
186
|
+
resolve(["result": String(data: jsonData, encoding: .utf8)!])
|
|
187
|
+
} catch {
|
|
188
|
+
reject("Error", error.localizedDescription, error)
|
|
189
|
+
}
|
|
190
|
+
}
|
|
131
191
|
}
|
|
132
192
|
|
|
133
193
|
@objc(doEnhancedKycAsync:withResolver:withRejecter:)
|
|
@@ -178,23 +238,19 @@ class RNSmileID: NSObject {
|
|
|
178
238
|
signature: signature
|
|
179
239
|
)
|
|
180
240
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return
|
|
195
|
-
}
|
|
196
|
-
resolve(["result": String(data: jsonData, encoding: .utf8)!]) // Assuming you have a method to convert response to a dictionary
|
|
197
|
-
}).store(in: &cancellables)
|
|
241
|
+
Task {
|
|
242
|
+
do {
|
|
243
|
+
let response = try await SmileID.api.doEnhancedKycAsync(request: request)
|
|
244
|
+
let encoder = JSONEncoder()
|
|
245
|
+
guard let jsonData = try? encoder.encode(response) else {
|
|
246
|
+
throw SmileIDError.unknown("doEnhancedKyc encoding error")
|
|
247
|
+
}
|
|
248
|
+
// Assuming you have a method to convert response to a dictionary
|
|
249
|
+
resolve(["result": String(data: jsonData, encoding: .utf8)!])
|
|
250
|
+
} catch {
|
|
251
|
+
reject("Error", error.localizedDescription, error)
|
|
252
|
+
}
|
|
253
|
+
}
|
|
198
254
|
}
|
|
199
255
|
|
|
200
256
|
@objc(getSmartSelfieJobStatus:withResolver:withRejecter:)
|
|
@@ -224,11 +280,14 @@ class RNSmileID: NSObject {
|
|
|
224
280
|
return
|
|
225
281
|
}
|
|
226
282
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
283
|
+
Task {
|
|
284
|
+
do {
|
|
285
|
+
let response = try await SmileID.api.getProductsConfig(request: productsConfigRequest)
|
|
286
|
+
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
287
|
+
} catch {
|
|
288
|
+
reject("Error", error.localizedDescription, error)
|
|
289
|
+
}
|
|
290
|
+
}
|
|
232
291
|
}
|
|
233
292
|
|
|
234
293
|
@objc(getValidDocuments:withResolver:withRejecter:)
|
|
@@ -238,18 +297,26 @@ class RNSmileID: NSObject {
|
|
|
238
297
|
return
|
|
239
298
|
}
|
|
240
299
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
300
|
+
Task {
|
|
301
|
+
do {
|
|
302
|
+
let response = try await SmileID.api.getValidDocuments(request: validDocumentsRequest)
|
|
303
|
+
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
304
|
+
} catch {
|
|
305
|
+
reject("Error", error.localizedDescription, error)
|
|
306
|
+
}
|
|
307
|
+
}
|
|
245
308
|
}
|
|
246
309
|
|
|
247
310
|
@objc(getServicesWithResolver:withRejecter:)
|
|
248
311
|
func getServices(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
312
|
+
Task {
|
|
313
|
+
do {
|
|
314
|
+
let response = try await SmileID.api.getServices()
|
|
315
|
+
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
316
|
+
} catch {
|
|
317
|
+
reject("Error", error.localizedDescription, error)
|
|
318
|
+
}
|
|
319
|
+
}
|
|
253
320
|
}
|
|
254
321
|
|
|
255
322
|
@objc(getJobStatus:withResolver:withRejecter:)
|
|
@@ -259,10 +326,14 @@ class RNSmileID: NSObject {
|
|
|
259
326
|
return
|
|
260
327
|
}
|
|
261
328
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
329
|
+
Task {
|
|
330
|
+
do {
|
|
331
|
+
let response = try await SmileID.api.getJobStatus(request: jobStatusRequest)
|
|
332
|
+
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
333
|
+
} catch {
|
|
334
|
+
reject("Error", error.localizedDescription, error)
|
|
335
|
+
}
|
|
336
|
+
}
|
|
266
337
|
}
|
|
267
338
|
|
|
268
339
|
@objc(pollSmartSelfieJobStatus:withResolver:withRejecter:)
|
|
@@ -374,7 +445,7 @@ class RNSmileID: NSObject {
|
|
|
374
445
|
}
|
|
375
446
|
|
|
376
447
|
func pollJobStatus<RequestType, ResponseType: Encodable>(
|
|
377
|
-
apiCall: @escaping (RequestType, TimeInterval, Int) ->
|
|
448
|
+
apiCall: @escaping (RequestType, TimeInterval, Int) async throws -> ResponseType,
|
|
378
449
|
request: RequestType,
|
|
379
450
|
interval: Int64,
|
|
380
451
|
numAttempts: Int64,
|
|
@@ -387,18 +458,14 @@ class RNSmileID: NSObject {
|
|
|
387
458
|
return
|
|
388
459
|
}
|
|
389
460
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}, receiveValue: { [self] response in
|
|
399
|
-
resolveResponse(response, resolve: resolve, reject: reject)
|
|
400
|
-
})
|
|
401
|
-
.store(in: &cancellables)
|
|
461
|
+
Task {
|
|
462
|
+
do {
|
|
463
|
+
let response = try await apiCall(request, timeInterval, numAttemptsInt)
|
|
464
|
+
self.resolveResponse(response, resolve: resolve, reject: reject)
|
|
465
|
+
} catch {
|
|
466
|
+
reject("ApiCallFailure", "API call failed with error: \(error.localizedDescription)", error)
|
|
467
|
+
}
|
|
468
|
+
}
|
|
402
469
|
}
|
|
403
470
|
|
|
404
471
|
|
|
@@ -407,15 +474,6 @@ class RNSmileID: NSObject {
|
|
|
407
474
|
return TimeInterval(seconds)
|
|
408
475
|
}
|
|
409
476
|
|
|
410
|
-
private func handleCompletion(_ completion: Subscribers.Completion<Error>, reject: @escaping RCTPromiseRejectBlock) {
|
|
411
|
-
switch completion {
|
|
412
|
-
case let .failure(error):
|
|
413
|
-
reject("Error", error.localizedDescription, error)
|
|
414
|
-
case .finished:
|
|
415
|
-
break
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
477
|
private func resolveResponse<T: Encodable>(_ response: T, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
420
478
|
let encoder = JSONEncoder()
|
|
421
479
|
guard let jsonData = try? encoder.encode(response) else {
|
|
@@ -188,3 +188,19 @@ extension NSDictionary {
|
|
|
188
188
|
)
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
|
+
|
|
192
|
+
extension Dictionary where Key == String, Value == Any {
|
|
193
|
+
func toJSONCompatibleDictionary() -> [String: Any] {
|
|
194
|
+
var jsonCompatibleDict = [String: Any]()
|
|
195
|
+
for (key, value) in self {
|
|
196
|
+
if let arrayValue = value as? [String] {
|
|
197
|
+
jsonCompatibleDict[key] = arrayValue
|
|
198
|
+
} else if let stringValue = value as? String {
|
|
199
|
+
jsonCompatibleDict[key] = stringValue
|
|
200
|
+
} else {
|
|
201
|
+
jsonCompatibleDict[key] = (value as? [String: Any])?.toJSONCompatibleDictionary() ?? [:]
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return jsonCompatibleDict
|
|
205
|
+
}
|
|
206
|
+
}
|
|
@@ -38,7 +38,7 @@ extension SmileIDBiometricKYCView: BiometricKycResultDelegate {
|
|
|
38
38
|
"didSubmitBiometricJob": didSubmitBiometricJob,
|
|
39
39
|
]
|
|
40
40
|
|
|
41
|
-
guard let jsonData = try? JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) else {
|
|
41
|
+
guard let jsonData = try? JSONSerialization.data(withJSONObject: params.toJSONCompatibleDictionary(), options: .prettyPrinted) else {
|
|
42
42
|
product.onResult?(["error": SmileIDError.unknown("SmileIDBiometricKYCView encoding error")])
|
|
43
43
|
return
|
|
44
44
|
}
|
|
@@ -46,7 +46,7 @@ extension SmileIDDocumentVerificationView: DocumentVerificationResultDelegate {
|
|
|
46
46
|
params["documentBackImage"] = documentBackImage.absoluteString
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
guard let jsonData = try? JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) else {
|
|
49
|
+
guard let jsonData = try? JSONSerialization.data(withJSONObject: params.toJSONCompatibleDictionary(), options: .prettyPrinted) else {
|
|
50
50
|
product.onResult?(["error": SmileIDError.unknown("SmileIDDocumentVerificationView encoding error")])
|
|
51
51
|
return
|
|
52
52
|
}
|
|
@@ -46,7 +46,7 @@ extension SmileIDEnhancedDocumentVerificationView: EnhancedDocumentVerificationR
|
|
|
46
46
|
params["documentBackImage"] = documentBackImage.absoluteString
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
guard let jsonData = try? JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) else {
|
|
49
|
+
guard let jsonData = try? JSONSerialization.data(withJSONObject: params.toJSONCompatibleDictionary(), options: .prettyPrinted) else {
|
|
50
50
|
product.onResult?(["error": SmileIDError.unknown("SmileIDEnhancedDocumentVerificationView encoding error")])
|
|
51
51
|
return
|
|
52
52
|
}
|
|
@@ -32,7 +32,7 @@ extension SmileIDSmartSelfieAuthView: SmartSelfieResultDelegate {
|
|
|
32
32
|
params["apiResponse"] = apiResponse
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
guard let jsonData = try? JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) else {
|
|
35
|
+
guard let jsonData = try? JSONSerialization.data(withJSONObject: params.toJSONCompatibleDictionary(), options: .prettyPrinted) else {
|
|
36
36
|
product.onResult?(["error": SmileIDError.unknown("SmileIDSmartSelfieAuthView encoding error")])
|
|
37
37
|
return
|
|
38
38
|
}
|
|
@@ -32,7 +32,7 @@ extension SmileIDSmartSelfieEnrollmentView: SmartSelfieResultDelegate {
|
|
|
32
32
|
params["apiResponse"] = apiResponse
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
guard let jsonData = try? JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) else {
|
|
35
|
+
guard let jsonData = try? JSONSerialization.data(withJSONObject: params.toJSONCompatibleDictionary(), options: .prettyPrinted) else {
|
|
36
36
|
product.onResult?(["error": SmileIDError.unknown("SmileIDSmartSelfieEnrollmentView encoding error")])
|
|
37
37
|
return
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSmileId.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSmileId.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA+HpCC,gCAAmB,CAACC,YAAY,CAAO,WAAW,CAAC","ignoreList":[]}
|
|
@@ -7,10 +7,10 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
10
|
-
function _interopRequireDefault(
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
13
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
14
|
const SmileIDBiometricKYCComponent = (0, _codegenNativeComponent.default)('SmileIDBiometricKYCView');
|
|
15
15
|
class SmileIDBiometricKYCView extends _react.Component {
|
|
16
16
|
viewRef = /*#__PURE__*/_react.default.createRef(); //
|