react-native-authsignal 1.8.1 → 2.0.0-alpha2

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 (47) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/authsignal/react/AuthsignalInAppModule.kt +135 -0
  3. package/android/src/main/java/com/authsignal/react/AuthsignalPackage.kt +2 -1
  4. package/android/src/main/java/com/authsignal/react/AuthsignalPushModule.kt +8 -1
  5. package/android/src/main/java/com/authsignal/react/{AuthsignalDeviceModule.kt → AuthsignalQRCodeModule.kt} +6 -55
  6. package/ios/AuthsignalInAppModule.m +26 -0
  7. package/ios/AuthsignalInAppModule.swift +163 -0
  8. package/ios/AuthsignalPushModule.swift +9 -1
  9. package/ios/{AuthsignalDeviceModule.m → AuthsignalQRModule.m} +1 -7
  10. package/ios/{AuthsignalDeviceModule.swift → AuthsignalQRModule.swift} +4 -64
  11. package/lib/commonjs/inapp.js +100 -0
  12. package/lib/commonjs/inapp.js.map +1 -0
  13. package/lib/commonjs/index.js +14 -34
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/push.js.map +1 -1
  16. package/lib/commonjs/{device.js → qr.js} +11 -39
  17. package/lib/commonjs/qr.js.map +1 -0
  18. package/lib/commonjs/types.js.map +1 -1
  19. package/lib/module/inapp.js +93 -0
  20. package/lib/module/inapp.js.map +1 -0
  21. package/lib/module/index.js +14 -34
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/push.js.map +1 -1
  24. package/lib/module/{device.js → qr.js} +9 -37
  25. package/lib/module/qr.js.map +1 -0
  26. package/lib/module/types.js.map +1 -1
  27. package/lib/typescript/inapp.d.ts +19 -0
  28. package/lib/typescript/inapp.d.ts.map +1 -0
  29. package/lib/typescript/index.d.ts +4 -2
  30. package/lib/typescript/index.d.ts.map +1 -1
  31. package/lib/typescript/push.d.ts +4 -14
  32. package/lib/typescript/push.d.ts.map +1 -1
  33. package/lib/typescript/qr.d.ts +20 -0
  34. package/lib/typescript/qr.d.ts.map +1 -0
  35. package/lib/typescript/types.d.ts +13 -13
  36. package/lib/typescript/types.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/react-native-authsignal.podspec +1 -1
  39. package/src/inapp.ts +122 -0
  40. package/src/index.tsx +13 -18
  41. package/src/push.ts +7 -18
  42. package/src/{device.ts → qr.ts} +16 -66
  43. package/src/types.ts +14 -13
  44. package/lib/commonjs/device.js.map +0 -1
  45. package/lib/module/device.js.map +0 -1
  46. package/lib/typescript/device.d.ts +0 -35
  47. package/lib/typescript/device.d.ts.map +0 -1
@@ -77,5 +77,5 @@ dependencies {
77
77
 
78
78
  implementation "androidx.browser:browser:1.2.0"
79
79
 
80
- implementation("com.authsignal:authsignal-android:2.6.0")
80
+ implementation("com.authsignal:authsignal-android:3.0.0-alpha")
81
81
  }
@@ -0,0 +1,135 @@
1
+ package com.authsignal.react
2
+
3
+ import android.util.Log
4
+ import com.authsignal.inapp.AuthsignalInApp
5
+ import com.facebook.react.bridge.Arguments
6
+ import com.facebook.react.bridge.Promise
7
+ import com.facebook.react.bridge.ReactApplicationContext
8
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
9
+ import com.facebook.react.bridge.ReactMethod
10
+ import kotlinx.coroutines.CoroutineScope
11
+ import kotlinx.coroutines.Dispatchers
12
+ import kotlinx.coroutines.SupervisorJob
13
+ import kotlinx.coroutines.launch
14
+
15
+ class AuthsignalInAppModule(private val reactContext: ReactApplicationContext) :
16
+ ReactContextBaseJavaModule(
17
+ reactContext
18
+ ) {
19
+ private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
20
+ private var authsignal: AuthsignalInApp? = null
21
+ private var defaultError = "unexpected_error"
22
+
23
+ override fun getConstants(): Map<String, Any>? {
24
+ val constants: MutableMap<String, Any> = HashMap()
25
+ constants["bundleIdentifier"] = reactContext.applicationInfo.packageName
26
+ return constants
27
+ }
28
+
29
+ override fun getName(): String {
30
+ return "AuthsignalInAppModule"
31
+ }
32
+
33
+ @ReactMethod
34
+ fun initialize(tenantID: String?, baseURL: String?, promise: Promise) {
35
+ Log.d("AuthsignalInAppModule", "initialize: $tenantID, $baseURL")
36
+ authsignal = AuthsignalInApp(tenantID!!, baseURL!!)
37
+
38
+ promise.resolve(null)
39
+ }
40
+
41
+ @ReactMethod
42
+ fun getCredential(promise: Promise) {
43
+ launch(promise) {
44
+ val response = it.getCredential()
45
+
46
+ if (response.error != null) {
47
+ val errorCode = response.errorCode ?: defaultError
48
+
49
+ promise.reject(errorCode, response.error)
50
+ } else if (response.data != null) {
51
+ val credential = response.data
52
+ val map = Arguments.createMap()
53
+ map.putString("credentialId", credential!!.credentialId)
54
+ map.putString("createdAt", credential.createdAt)
55
+ map.putString("userId", credential.userId)
56
+ map.putString("lastAuthenticatedAt", credential.lastAuthenticatedAt)
57
+ promise.resolve(map)
58
+ } else {
59
+ promise.resolve(null)
60
+ }
61
+ }
62
+ }
63
+
64
+ @ReactMethod
65
+ fun addCredential(
66
+ token: String?,
67
+ promise: Promise
68
+ ) {
69
+ launch(promise) {
70
+ val response = it.addCredential(token, null)
71
+
72
+ if (response.error != null) {
73
+ val errorCode = response.errorCode ?: defaultError
74
+
75
+ promise.reject(errorCode, response.error)
76
+ } else {
77
+ val credential = response.data
78
+ val map = Arguments.createMap()
79
+ map.putString("credentialId", credential!!.credentialId)
80
+ map.putString("createdAt", credential.createdAt)
81
+ map.putString("userId", credential.userId)
82
+ map.putString("lastAuthenticatedAt", credential.lastAuthenticatedAt)
83
+ promise.resolve(map)
84
+ }
85
+ }
86
+ }
87
+
88
+ @ReactMethod
89
+ fun removeCredential(promise: Promise) {
90
+ launch(promise) {
91
+ val response = it.removeCredential()
92
+
93
+ if (response.error != null) {
94
+ val errorCode = response.errorCode ?: defaultError
95
+
96
+ promise.reject(errorCode, response.error)
97
+ } else {
98
+ promise.resolve(response.data)
99
+ }
100
+ }
101
+ }
102
+
103
+ @ReactMethod
104
+ fun verify(promise: Promise) {
105
+ launch(promise) {
106
+ val response = it.verify()
107
+
108
+ if (response.error != null) {
109
+ val errorCode = response.errorCode ?: defaultError
110
+
111
+ promise.reject(errorCode, response.error)
112
+ } else {
113
+ val data = response.data!!
114
+ val map = Arguments.createMap()
115
+ map.putString("token", data.token)
116
+ map.putString("userId", data.userId)
117
+ map.putString("userAuthenticatorId", data.userAuthenticatorId)
118
+ map.putString("username", data.username)
119
+ promise.resolve(map)
120
+ }
121
+ }
122
+ }
123
+
124
+ private fun launch(promise: Promise, fn: suspend (client: AuthsignalDevice) -> Unit) {
125
+ coroutineScope.launch {
126
+ authsignal?.let {
127
+ fn(it)
128
+ } ?: run {
129
+ Log.w("init_error", "AuthsignalInAppModule is not initialized.")
130
+
131
+ promise.resolve(null)
132
+ }
133
+ }
134
+ }
135
+ }
@@ -12,7 +12,8 @@ class AuthsignalPackage : ReactPackage {
12
12
  AuthsignalEmailModule(reactContext),
13
13
  AuthsignalPasskeyModule(reactContext),
14
14
  AuthsignalPushModule(reactContext),
15
- AuthsignalDeviceModule(reactContext),
15
+ AuthsignalInAppModule(reactContext),
16
+ AuthsignalQRCodeModule(reactContext),
16
17
  AuthsignalSMSModule(reactContext),
17
18
  AuthsignalTOTPModule(reactContext),
18
19
  AuthsignalWhatsappModule(reactContext)
@@ -51,6 +51,7 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
51
51
  val map = Arguments.createMap()
52
52
  map.putString("credentialId", credential!!.credentialId)
53
53
  map.putString("createdAt", credential.createdAt)
54
+ map.putString("userId", credential.userId)
54
55
  map.putString("lastAuthenticatedAt", credential.lastAuthenticatedAt)
55
56
  promise.resolve(map)
56
57
  }
@@ -70,7 +71,13 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
70
71
 
71
72
  promise.reject(errorCode, response.error)
72
73
  } else {
73
- promise.resolve(response.data)
74
+ val credential = response.data
75
+ val map = Arguments.createMap()
76
+ map.putString("credentialId", credential!!.credentialId)
77
+ map.putString("createdAt", credential.createdAt)
78
+ map.putString("userId", credential.userId)
79
+ map.putString("lastAuthenticatedAt", credential.lastAuthenticatedAt)
80
+ promise.resolve(map)
74
81
  }
75
82
  }
76
83
  }
@@ -1,7 +1,7 @@
1
1
  package com.authsignal.react
2
2
 
3
3
  import android.util.Log
4
- import com.authsignal.device.AuthsignalDevice
4
+ import com.authsignal.qr.AuthsignalQRCode
5
5
  import com.facebook.react.bridge.Arguments
6
6
  import com.facebook.react.bridge.Promise
7
7
  import com.facebook.react.bridge.ReactApplicationContext
@@ -12,12 +12,12 @@ import kotlinx.coroutines.Dispatchers
12
12
  import kotlinx.coroutines.SupervisorJob
13
13
  import kotlinx.coroutines.launch
14
14
 
15
- class AuthsignalDeviceModule(private val reactContext: ReactApplicationContext) :
15
+ class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext) :
16
16
  ReactContextBaseJavaModule(
17
17
  reactContext
18
18
  ) {
19
19
  private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
20
- private var authsignal: AuthsignalDevice? = null
20
+ private var authsignal: AuthsignalQRCode? = null
21
21
  private var defaultError = "unexpected_error"
22
22
 
23
23
  override fun getConstants(): Map<String, Any>? {
@@ -27,12 +27,12 @@ class AuthsignalDeviceModule(private val reactContext: ReactApplicationContext)
27
27
  }
28
28
 
29
29
  override fun getName(): String {
30
- return "AuthsignalDeviceModule"
30
+ return "AuthsignalQRCodeModule"
31
31
  }
32
32
 
33
33
  @ReactMethod
34
34
  fun initialize(tenantID: String?, baseURL: String?, promise: Promise) {
35
- Log.d("AuthsignalDeviceModule", "initialize: $tenantID, $baseURL")
35
+ Log.d("AuthsignalQRCodeModule", "initialize: $tenantID, $baseURL")
36
36
  authsignal = AuthsignalDevice(tenantID!!, baseURL!!)
37
37
 
38
38
  promise.resolve(null)
@@ -100,34 +100,6 @@ class AuthsignalDeviceModule(private val reactContext: ReactApplicationContext)
100
100
  }
101
101
  }
102
102
 
103
- @ReactMethod
104
- fun getChallenge(promise: Promise) {
105
- launch(promise) {
106
- val response = it.getChallenge()
107
-
108
- if (response.error != null) {
109
- val errorCode = response.errorCode ?: defaultError
110
-
111
- promise.reject(errorCode, response.error)
112
- } else {
113
- val challenge = response.data
114
-
115
- if (challenge == null) {
116
- promise.resolve(null)
117
- } else {
118
- val map = Arguments.createMap()
119
- map.putString("challengeId", challenge.challengeId)
120
- map.putString("actionCode", challenge.actionCode)
121
- map.putString("idempotencyKey", challenge.idempotencyKey)
122
- map.putString("ipAddress", challenge.ipAddress)
123
- map.putString("deviceId", challenge.deviceId)
124
- map.putString("userAgent", challenge.userAgent)
125
- promise.resolve(map)
126
- }
127
- }
128
- }
129
- }
130
-
131
103
  @ReactMethod
132
104
  fun claimChallenge(
133
105
  challengeId: String,
@@ -175,33 +147,12 @@ class AuthsignalDeviceModule(private val reactContext: ReactApplicationContext)
175
147
  }
176
148
  }
177
149
 
178
- @ReactMethod
179
- fun verify(promise: Promise) {
180
- launch(promise) {
181
- val response = it.verify()
182
-
183
- if (response.error != null) {
184
- val errorCode = response.errorCode ?: defaultError
185
-
186
- promise.reject(errorCode, response.error)
187
- } else {
188
- val data = response.data!!
189
- val map = Arguments.createMap()
190
- map.putString("token", data.token)
191
- map.putString("userId", data.userId)
192
- map.putString("userAuthenticatorId", data.userAuthenticatorId)
193
- map.putString("username", data.username)
194
- promise.resolve(map)
195
- }
196
- }
197
- }
198
-
199
150
  private fun launch(promise: Promise, fn: suspend (client: AuthsignalDevice) -> Unit) {
200
151
  coroutineScope.launch {
201
152
  authsignal?.let {
202
153
  fn(it)
203
154
  } ?: run {
204
- Log.w("init_error", "AuthsignalDeviceModule is not initialized.")
155
+ Log.w("init_error", "AuthsignalQRCodeModule is not initialized.")
205
156
 
206
157
  promise.resolve(null)
207
158
  }
@@ -0,0 +1,26 @@
1
+ #import <React/RCTBridgeModule.h>
2
+ #import <Foundation/Foundation.h>
3
+
4
+ @interface RCT_EXTERN_MODULE(AuthsignalInAppModule, NSObject)
5
+
6
+ RCT_EXTERN_METHOD(initialize:(NSString)tenantID
7
+ withBaseURL:(NSString)baseURL
8
+ resolver:(RCTPromiseResolveBlock)resolve
9
+ rejecter:(RCTPromiseRejectBlock)reject)
10
+
11
+ RCT_EXTERN_METHOD(getCredential:(RCTPromiseResolveBlock)resolve
12
+ rejecter:(RCTPromiseRejectBlock)reject)
13
+
14
+ RCT_EXTERN_METHOD(addCredential:(NSString)token
15
+ withRequireUserAuthentication:(BOOL)requireUserAuthentication
16
+ withKeychainAccess:(NSString)keychainAccess
17
+ resolver:(RCTPromiseResolveBlock)resolve
18
+ rejecter:(RCTPromiseRejectBlock)reject)
19
+
20
+ RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
21
+ rejecter:(RCTPromiseRejectBlock)reject)
22
+
23
+ RCT_EXTERN_METHOD(verify:(RCTPromiseResolveBlock)resolve
24
+ rejecter:(RCTPromiseRejectBlock)reject)
25
+
26
+ @end
@@ -0,0 +1,163 @@
1
+ import Security
2
+ import Foundation
3
+ import Authsignal
4
+
5
+ @objc(AuthsignalInAppModule)
6
+ class AuthsignalInAppModule: NSObject {
7
+ var authsignal: AuthsignalInApp?
8
+
9
+ @objc static func requiresMainQueueSetup() -> Bool {
10
+ return true
11
+ }
12
+
13
+ @objc func initialize(
14
+ _ tenantID: NSString,
15
+ withBaseURL baseURL: NSString,
16
+ resolver resolve: @escaping RCTPromiseResolveBlock,
17
+ rejecter reject: @escaping RCTPromiseRejectBlock
18
+ ) -> Void {
19
+ self.authsignal = AuthsignalInApp(tenantID: tenantID as String, baseURL: baseURL as String)
20
+
21
+ resolve(nil)
22
+ }
23
+
24
+ @objc func getCredential(
25
+ _ resolve: @escaping RCTPromiseResolveBlock,
26
+ rejecter reject: @escaping RCTPromiseRejectBlock
27
+ ) -> Void {
28
+ guard let authsignal = authsignal else {
29
+ resolve(nil)
30
+ return
31
+ }
32
+
33
+ Task.init {
34
+ let response = await authsignal.getCredential()
35
+
36
+ if let error = response.error {
37
+ reject(response.errorCode ?? "unexpected_error", error, nil)
38
+ } else if let data = response.data {
39
+ let credential: [String: String?] = [
40
+ "credentialId": data.credentialId,
41
+ "createdAt": data.createdAt,
42
+ "userId": data.userId,
43
+ "lastAuthenticatedAt": data.lastAuthenticatedAt,
44
+ ]
45
+
46
+ resolve(credential)
47
+ } else {
48
+ resolve(nil)
49
+ }
50
+ }
51
+ }
52
+
53
+ @objc func addCredential(
54
+ _ token: NSString?,
55
+ withRequireUserAuthentication requireUserAuthentication: Bool,
56
+ withKeychainAccess keychainAccess: NSString,
57
+ resolver resolve: @escaping RCTPromiseResolveBlock,
58
+ rejecter reject: @escaping RCTPromiseRejectBlock
59
+ ) -> Void {
60
+ guard let authsignal = authsignal else {
61
+ resolve(nil)
62
+ return
63
+ }
64
+
65
+ let tokenStr = token as String?
66
+ let userPresenceRequired = requireUserAuthentication as Bool
67
+ let keychainAccess = getKeychainAccess(value: keychainAccess as String?)
68
+
69
+ Task.init {
70
+ let response = await authsignal.addCredential(
71
+ token: tokenStr,
72
+ keychainAccess: keychainAccess,
73
+ userPresenceRequired: userPresenceRequired
74
+ )
75
+
76
+ if let error = response.error {
77
+ reject(response.errorCode ?? "unexpected_error", error, nil)
78
+ } else if let data = response.data {
79
+ let credential: [String: String?] = [
80
+ "credentialId": data.credentialId,
81
+ "createdAt": data.createdAt,
82
+ "userId": data.userId,
83
+ "lastAuthenticatedAt": data.lastAuthenticatedAt,
84
+ ]
85
+
86
+ resolve(credential)
87
+ } else {
88
+ resolve(nil)
89
+ }
90
+ }
91
+ }
92
+
93
+ @objc func removeCredential(
94
+ _ resolve: @escaping RCTPromiseResolveBlock,
95
+ rejecter reject: @escaping RCTPromiseRejectBlock
96
+ ) -> Void {
97
+ guard let authsignal = authsignal else {
98
+ resolve(nil)
99
+ return
100
+ }
101
+
102
+ Task.init {
103
+ let response = await authsignal.removeCredential()
104
+
105
+ if let error = response.error {
106
+ reject(response.errorCode ?? "unexpected_error", error, nil)
107
+ } else {
108
+ resolve(response.data)
109
+ }
110
+ }
111
+ }
112
+
113
+ @objc func verify(
114
+ _ resolve: @escaping RCTPromiseResolveBlock,
115
+ rejecter reject: @escaping RCTPromiseRejectBlock
116
+ ) -> Void {
117
+ guard let authsignal = authsignal else {
118
+ resolve(nil)
119
+ return
120
+ }
121
+
122
+ Task.init {
123
+ let response = await authsignal.verify()
124
+
125
+ if let error = response.error {
126
+ reject(response.errorCode ?? "unexpected_error", error, nil)
127
+ } else if let data = response.data {
128
+ let result: [String: String?] = [
129
+ "token": data.token,
130
+ "userId": data.userId,
131
+ "userAuthenticatorId": data.userAuthenticatorId,
132
+ "username": data.username,
133
+ ]
134
+
135
+ resolve(result)
136
+ } else {
137
+ resolve(nil)
138
+ }
139
+ }
140
+ }
141
+
142
+ func getKeychainAccess(value: String?) -> KeychainAccess {
143
+ switch value {
144
+ case "afterFirstUnlock":
145
+ return .afterFirstUnlock
146
+
147
+ case "afterFirstUnlockThisDeviceOnly":
148
+ return .afterFirstUnlockThisDeviceOnly
149
+
150
+ case "whenUnlocked":
151
+ return .whenUnlocked
152
+
153
+ case "whenUnlockedThisDeviceOnly":
154
+ return .whenUnlockedThisDeviceOnly
155
+
156
+ case "whenPasscodeSetThisDeviceOnly":
157
+ return .whenPasscodeSetThisDeviceOnly
158
+
159
+ default:
160
+ return .whenUnlockedThisDeviceOnly
161
+ }
162
+ }
163
+ }
@@ -39,6 +39,7 @@ class AuthsignalPushModule: NSObject {
39
39
  let credential: [String: String?] = [
40
40
  "credentialId": data.credentialId,
41
41
  "createdAt": data.createdAt,
42
+ "userId": data.userId,
42
43
  "lastAuthenticatedAt": data.lastAuthenticatedAt,
43
44
  ]
44
45
 
@@ -75,7 +76,14 @@ class AuthsignalPushModule: NSObject {
75
76
  if let error = response.error {
76
77
  reject(response.errorCode ?? "unexpected_error", error, nil)
77
78
  } else {
78
- resolve(response.data)
79
+ let credential: [String: String?] = [
80
+ "credentialId": response.data!.credentialId,
81
+ "createdAt": response.data!.createdAt,
82
+ "userId": response.data!.userId,
83
+ "lastAuthenticatedAt": response.data!.lastAuthenticatedAt,
84
+ ]
85
+
86
+ resolve(credential)
79
87
  }
80
88
  }
81
89
  }
@@ -1,7 +1,7 @@
1
1
  #import <React/RCTBridgeModule.h>
2
2
  #import <Foundation/Foundation.h>
3
3
 
4
- @interface RCT_EXTERN_MODULE(AuthsignalDeviceModule, NSObject)
4
+ @interface RCT_EXTERN_MODULE(AuthsignalQRCodeModule, NSObject)
5
5
 
6
6
  RCT_EXTERN_METHOD(initialize:(NSString)tenantID
7
7
  withBaseURL:(NSString)baseURL
@@ -20,9 +20,6 @@ RCT_EXTERN_METHOD(addCredential:(NSString)token
20
20
  RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
21
21
  rejecter:(RCTPromiseRejectBlock)reject)
22
22
 
23
- RCT_EXTERN_METHOD(getChallenge:(RCTPromiseResolveBlock)resolve
24
- rejecter:(RCTPromiseRejectBlock)reject)
25
-
26
23
  RCT_EXTERN_METHOD(claimChallenge:(NSString)challengeId
27
24
  resolver:(RCTPromiseResolveBlock)resolve
28
25
  rejecter:(RCTPromiseRejectBlock)reject)
@@ -33,7 +30,4 @@ RCT_EXTERN_METHOD(updateChallenge:(NSString)challengeId
33
30
  resolver:(RCTPromiseResolveBlock)resolve
34
31
  rejecter:(RCTPromiseRejectBlock)reject)
35
32
 
36
- RCT_EXTERN_METHOD(verify:(RCTPromiseResolveBlock)resolve
37
- rejecter:(RCTPromiseRejectBlock)reject)
38
-
39
33
  @end
@@ -2,9 +2,9 @@ import Security
2
2
  import Foundation
3
3
  import Authsignal
4
4
 
5
- @objc(AuthsignalDeviceModule)
6
- class AuthsignalDeviceModule: NSObject {
7
- var authsignal: AuthsignalDevice?
5
+ @objc(AuthsignalQRCodeModule)
6
+ class AuthsignalQRCodeModule: NSObject {
7
+ var authsignal: AuthsignalQRCode?
8
8
 
9
9
  @objc static func requiresMainQueueSetup() -> Bool {
10
10
  return true
@@ -16,7 +16,7 @@ class AuthsignalDeviceModule: NSObject {
16
16
  resolver resolve: @escaping RCTPromiseResolveBlock,
17
17
  rejecter reject: @escaping RCTPromiseRejectBlock
18
18
  ) -> Void {
19
- self.authsignal = AuthsignalDevice(tenantID: tenantID as String, baseURL: baseURL as String)
19
+ self.authsignal = AuthsignalQRCode(tenantID: tenantID as String, baseURL: baseURL as String)
20
20
 
21
21
  resolve(nil)
22
22
  }
@@ -110,37 +110,6 @@ class AuthsignalDeviceModule: NSObject {
110
110
  }
111
111
  }
112
112
 
113
- @objc func getChallenge(
114
- _ resolve: @escaping RCTPromiseResolveBlock,
115
- rejecter reject: @escaping RCTPromiseRejectBlock
116
- ) -> Void {
117
- guard let authsignal = authsignal else {
118
- resolve(nil)
119
- return
120
- }
121
-
122
- Task.init {
123
- let response = await authsignal.getChallenge()
124
-
125
- if let error = response.error {
126
- reject(response.errorCode ?? "unexpected_error", error, nil)
127
- } else if let data = response.data as? DeviceChallenge {
128
- let challenge: [String: String?] = [
129
- "challengeId": data.challengeId,
130
- "actionCode": data.actionCode,
131
- "idempotencyKey": data.idempotencyKey,
132
- "userAgent": data.userAgent,
133
- "deviceId": data.deviceId,
134
- "ipAddress": data.ipAddress,
135
- ]
136
-
137
- resolve(challenge)
138
- } else {
139
- resolve(nil)
140
- }
141
- }
142
- }
143
-
144
113
  @objc func claimChallenge(
145
114
  _ challengeId: NSString,
146
115
  resolver resolve: @escaping RCTPromiseResolveBlock,
@@ -203,35 +172,6 @@ class AuthsignalDeviceModule: NSObject {
203
172
  }
204
173
  }
205
174
 
206
- @objc func verify(
207
- _ resolve: @escaping RCTPromiseResolveBlock,
208
- rejecter reject: @escaping RCTPromiseRejectBlock
209
- ) -> Void {
210
- guard let authsignal = authsignal else {
211
- resolve(nil)
212
- return
213
- }
214
-
215
- Task.init {
216
- let response = await authsignal.verify()
217
-
218
- if let error = response.error {
219
- reject(response.errorCode ?? "unexpected_error", error, nil)
220
- } else if let data = response.data {
221
- let result: [String: String?] = [
222
- "token": data.token,
223
- "userId": data.userId,
224
- "userAuthenticatorId": data.userAuthenticatorId,
225
- "username": data.username,
226
- ]
227
-
228
- resolve(result)
229
- } else {
230
- resolve(nil)
231
- }
232
- }
233
- }
234
-
235
175
  func getKeychainAccess(value: String?) -> KeychainAccess {
236
176
  switch value {
237
177
  case "afterFirstUnlock":