react-native-authsignal 2.6.1 → 2.8.0-alpha.2

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 (179) hide show
  1. package/android/build.gradle +3 -19
  2. package/android/gradle.properties +1 -1
  3. package/android/src/main/java/com/authsignal/react/AuthsignalEmailModule.kt +11 -18
  4. package/android/src/main/java/com/authsignal/react/AuthsignalInAppModule.kt +61 -45
  5. package/android/src/main/java/com/authsignal/react/AuthsignalModule.kt +25 -39
  6. package/android/src/main/java/com/authsignal/react/AuthsignalPackage.kt +70 -17
  7. package/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.kt +23 -17
  8. package/android/src/main/java/com/authsignal/react/AuthsignalPushModule.kt +16 -21
  9. package/android/src/main/java/com/authsignal/react/AuthsignalQRCodeModule.kt +16 -22
  10. package/android/src/main/java/com/authsignal/react/AuthsignalSMSModule.kt +11 -25
  11. package/android/src/main/java/com/authsignal/react/AuthsignalTOTPModule.kt +10 -17
  12. package/android/src/main/java/com/authsignal/react/AuthsignalWhatsappModule.kt +10 -23
  13. package/ios/AuthsignalEmailModule.m +7 -7
  14. package/ios/AuthsignalEmailModule.swift +10 -9
  15. package/ios/AuthsignalInAppModule.m +18 -17
  16. package/ios/AuthsignalInAppModule.swift +41 -27
  17. package/ios/AuthsignalModule.m +4 -4
  18. package/ios/AuthsignalModule.swift +14 -10
  19. package/ios/AuthsignalPasskeyModule.m +10 -10
  20. package/ios/AuthsignalPasskeyModule.swift +22 -21
  21. package/ios/AuthsignalPushModule.m +9 -9
  22. package/ios/AuthsignalPushModule.swift +14 -13
  23. package/ios/AuthsignalQRModule.m +10 -10
  24. package/ios/AuthsignalQRModule.swift +15 -14
  25. package/ios/AuthsignalSMSModule.m +7 -7
  26. package/ios/AuthsignalSMSModule.swift +10 -9
  27. package/ios/AuthsignalTOTPModule.m +5 -5
  28. package/ios/AuthsignalTOTPModule.swift +8 -7
  29. package/ios/AuthsignalTurboModules.mm +26 -0
  30. package/ios/AuthsignalWhatsappModule.m +5 -5
  31. package/ios/AuthsignalWhatsappModule.swift +8 -7
  32. package/lib/commonjs/NativeAuthsignalEmailModule.js +9 -0
  33. package/lib/commonjs/NativeAuthsignalEmailModule.js.map +1 -0
  34. package/lib/commonjs/NativeAuthsignalInAppModule.js +9 -0
  35. package/lib/commonjs/NativeAuthsignalInAppModule.js.map +1 -0
  36. package/lib/commonjs/NativeAuthsignalModule.js +9 -0
  37. package/lib/commonjs/NativeAuthsignalModule.js.map +1 -0
  38. package/lib/commonjs/NativeAuthsignalPasskeyModule.js +9 -0
  39. package/lib/commonjs/NativeAuthsignalPasskeyModule.js.map +1 -0
  40. package/lib/commonjs/NativeAuthsignalPushModule.js +9 -0
  41. package/lib/commonjs/NativeAuthsignalPushModule.js.map +1 -0
  42. package/lib/commonjs/NativeAuthsignalQRCodeModule.js +9 -0
  43. package/lib/commonjs/NativeAuthsignalQRCodeModule.js.map +1 -0
  44. package/lib/commonjs/NativeAuthsignalSMSModule.js +9 -0
  45. package/lib/commonjs/NativeAuthsignalSMSModule.js.map +1 -0
  46. package/lib/commonjs/NativeAuthsignalTOTPModule.js +9 -0
  47. package/lib/commonjs/NativeAuthsignalTOTPModule.js.map +1 -0
  48. package/lib/commonjs/NativeAuthsignalWhatsappModule.js +9 -0
  49. package/lib/commonjs/NativeAuthsignalWhatsappModule.js.map +1 -0
  50. package/lib/commonjs/email.js +7 -9
  51. package/lib/commonjs/email.js.map +1 -1
  52. package/lib/commonjs/getNativeModule.js +23 -0
  53. package/lib/commonjs/getNativeModule.js.map +1 -0
  54. package/lib/commonjs/inapp.js +15 -16
  55. package/lib/commonjs/inapp.js.map +1 -1
  56. package/lib/commonjs/index.js +6 -27
  57. package/lib/commonjs/index.js.map +1 -1
  58. package/lib/commonjs/passkey.js +21 -31
  59. package/lib/commonjs/passkey.js.map +1 -1
  60. package/lib/commonjs/push.js +8 -10
  61. package/lib/commonjs/push.js.map +1 -1
  62. package/lib/commonjs/qr.js +8 -10
  63. package/lib/commonjs/qr.js.map +1 -1
  64. package/lib/commonjs/sms.js +7 -9
  65. package/lib/commonjs/sms.js.map +1 -1
  66. package/lib/commonjs/totp.js +7 -9
  67. package/lib/commonjs/totp.js.map +1 -1
  68. package/lib/commonjs/types.js.map +1 -1
  69. package/lib/commonjs/whatsapp.js +7 -9
  70. package/lib/commonjs/whatsapp.js.map +1 -1
  71. package/lib/module/NativeAuthsignalEmailModule.js +3 -0
  72. package/lib/module/NativeAuthsignalEmailModule.js.map +1 -0
  73. package/lib/module/NativeAuthsignalInAppModule.js +3 -0
  74. package/lib/module/NativeAuthsignalInAppModule.js.map +1 -0
  75. package/lib/module/NativeAuthsignalModule.js +3 -0
  76. package/lib/module/NativeAuthsignalModule.js.map +1 -0
  77. package/lib/module/NativeAuthsignalPasskeyModule.js +3 -0
  78. package/lib/module/NativeAuthsignalPasskeyModule.js.map +1 -0
  79. package/lib/module/NativeAuthsignalPushModule.js +3 -0
  80. package/lib/module/NativeAuthsignalPushModule.js.map +1 -0
  81. package/lib/module/NativeAuthsignalQRCodeModule.js +3 -0
  82. package/lib/module/NativeAuthsignalQRCodeModule.js.map +1 -0
  83. package/lib/module/NativeAuthsignalSMSModule.js +3 -0
  84. package/lib/module/NativeAuthsignalSMSModule.js.map +1 -0
  85. package/lib/module/NativeAuthsignalTOTPModule.js +3 -0
  86. package/lib/module/NativeAuthsignalTOTPModule.js.map +1 -0
  87. package/lib/module/NativeAuthsignalWhatsappModule.js +3 -0
  88. package/lib/module/NativeAuthsignalWhatsappModule.js.map +1 -0
  89. package/lib/module/email.js +7 -10
  90. package/lib/module/email.js.map +1 -1
  91. package/lib/module/getNativeModule.js +17 -0
  92. package/lib/module/getNativeModule.js.map +1 -0
  93. package/lib/module/inapp.js +15 -17
  94. package/lib/module/inapp.js.map +1 -1
  95. package/lib/module/index.js +4 -27
  96. package/lib/module/index.js.map +1 -1
  97. package/lib/module/passkey.js +22 -33
  98. package/lib/module/passkey.js.map +1 -1
  99. package/lib/module/push.js +8 -11
  100. package/lib/module/push.js.map +1 -1
  101. package/lib/module/qr.js +8 -11
  102. package/lib/module/qr.js.map +1 -1
  103. package/lib/module/sms.js +7 -10
  104. package/lib/module/sms.js.map +1 -1
  105. package/lib/module/totp.js +7 -10
  106. package/lib/module/totp.js.map +1 -1
  107. package/lib/module/types.js.map +1 -1
  108. package/lib/module/whatsapp.js +7 -10
  109. package/lib/module/whatsapp.js.map +1 -1
  110. package/lib/typescript/NativeAuthsignalEmailModule.d.ts +10 -0
  111. package/lib/typescript/NativeAuthsignalEmailModule.d.ts.map +1 -0
  112. package/lib/typescript/NativeAuthsignalInAppModule.d.ts +15 -0
  113. package/lib/typescript/NativeAuthsignalInAppModule.d.ts.map +1 -0
  114. package/lib/typescript/NativeAuthsignalModule.d.ts +8 -0
  115. package/lib/typescript/NativeAuthsignalModule.d.ts.map +1 -0
  116. package/lib/typescript/NativeAuthsignalPasskeyModule.d.ts +12 -0
  117. package/lib/typescript/NativeAuthsignalPasskeyModule.d.ts.map +1 -0
  118. package/lib/typescript/NativeAuthsignalPushModule.d.ts +12 -0
  119. package/lib/typescript/NativeAuthsignalPushModule.d.ts.map +1 -0
  120. package/lib/typescript/NativeAuthsignalQRCodeModule.d.ts +12 -0
  121. package/lib/typescript/NativeAuthsignalQRCodeModule.d.ts.map +1 -0
  122. package/lib/typescript/NativeAuthsignalSMSModule.d.ts +10 -0
  123. package/lib/typescript/NativeAuthsignalSMSModule.d.ts.map +1 -0
  124. package/lib/typescript/NativeAuthsignalTOTPModule.d.ts +9 -0
  125. package/lib/typescript/NativeAuthsignalTOTPModule.d.ts.map +1 -0
  126. package/lib/typescript/NativeAuthsignalWhatsappModule.d.ts +9 -0
  127. package/lib/typescript/NativeAuthsignalWhatsappModule.d.ts.map +1 -0
  128. package/lib/typescript/email.d.ts +1 -0
  129. package/lib/typescript/email.d.ts.map +1 -1
  130. package/lib/typescript/getNativeModule.d.ts +2 -0
  131. package/lib/typescript/getNativeModule.d.ts.map +1 -0
  132. package/lib/typescript/inapp.d.ts +2 -1
  133. package/lib/typescript/inapp.d.ts.map +1 -1
  134. package/lib/typescript/index.d.ts.map +1 -1
  135. package/lib/typescript/passkey.d.ts +2 -0
  136. package/lib/typescript/passkey.d.ts.map +1 -1
  137. package/lib/typescript/push.d.ts +1 -0
  138. package/lib/typescript/push.d.ts.map +1 -1
  139. package/lib/typescript/qr.d.ts +1 -0
  140. package/lib/typescript/qr.d.ts.map +1 -1
  141. package/lib/typescript/sms.d.ts +1 -0
  142. package/lib/typescript/sms.d.ts.map +1 -1
  143. package/lib/typescript/totp.d.ts +1 -0
  144. package/lib/typescript/totp.d.ts.map +1 -1
  145. package/lib/typescript/types.d.ts +5 -0
  146. package/lib/typescript/types.d.ts.map +1 -1
  147. package/lib/typescript/whatsapp.d.ts +1 -0
  148. package/lib/typescript/whatsapp.d.ts.map +1 -1
  149. package/package.json +10 -1
  150. package/react-native-authsignal.podspec +3 -2
  151. package/src/NativeAuthsignalEmailModule.ts +10 -0
  152. package/src/NativeAuthsignalInAppModule.ts +32 -0
  153. package/src/NativeAuthsignalModule.ts +8 -0
  154. package/src/NativeAuthsignalPasskeyModule.ts +26 -0
  155. package/src/NativeAuthsignalPushModule.ts +20 -0
  156. package/src/NativeAuthsignalQRCodeModule.ts +20 -0
  157. package/src/NativeAuthsignalSMSModule.ts +10 -0
  158. package/src/NativeAuthsignalTOTPModule.ts +9 -0
  159. package/src/NativeAuthsignalWhatsappModule.ts +9 -0
  160. package/src/email.ts +90 -0
  161. package/src/email.web.ts +105 -0
  162. package/src/error.ts +28 -0
  163. package/src/error.web.ts +21 -0
  164. package/src/getNativeModule.ts +28 -0
  165. package/src/inapp.ts +220 -0
  166. package/src/index.tsx +80 -0
  167. package/src/index.web.tsx +99 -0
  168. package/src/passkey.ts +165 -0
  169. package/src/passkey.web.ts +153 -0
  170. package/src/push.ts +147 -0
  171. package/src/qr.ts +150 -0
  172. package/src/sms.ts +92 -0
  173. package/src/sms.web.ts +107 -0
  174. package/src/totp.ts +79 -0
  175. package/src/totp.web.ts +95 -0
  176. package/src/types.ts +161 -0
  177. package/src/web-client.ts +29 -0
  178. package/src/whatsapp.ts +76 -0
  179. package/src/whatsapp.web.ts +83 -0
@@ -1,6 +1,7 @@
1
- import Security
2
- import Foundation
3
1
  import Authsignal
2
+ import Foundation
3
+ import React
4
+ import Security
4
5
 
5
6
  @objc(AuthsignalInAppModule)
6
7
  class AuthsignalInAppModule: NSObject {
@@ -13,8 +14,8 @@ class AuthsignalInAppModule: NSObject {
13
14
  @objc func initialize(
14
15
  _ tenantID: NSString,
15
16
  withBaseURL baseURL: NSString,
16
- resolver resolve: @escaping RCTPromiseResolveBlock,
17
- rejecter reject: @escaping RCTPromiseRejectBlock
17
+ resolve: @escaping RCTPromiseResolveBlock,
18
+ reject: @escaping RCTPromiseRejectBlock
18
19
  ) -> Void {
19
20
  self.authsignal = AuthsignalInApp(tenantID: tenantID as String, baseURL: baseURL as String)
20
21
 
@@ -23,8 +24,8 @@ class AuthsignalInAppModule: NSObject {
23
24
 
24
25
  @objc func getCredential(
25
26
  _ username: NSString?,
26
- resolver resolve: @escaping RCTPromiseResolveBlock,
27
- rejecter reject: @escaping RCTPromiseRejectBlock
27
+ resolve: @escaping RCTPromiseResolveBlock,
28
+ reject: @escaping RCTPromiseRejectBlock
28
29
  ) -> Void {
29
30
  guard let authsignal = authsignal else {
30
31
  resolve(nil)
@@ -56,27 +57,38 @@ class AuthsignalInAppModule: NSObject {
56
57
  @objc func addCredential(
57
58
  _ token: NSString?,
58
59
  withRequireUserAuthentication requireUserAuthentication: Bool,
59
- withKeychainAccess keychainAccess: NSString,
60
+ withKeychainAccess keychainAccess: NSString?,
60
61
  withUsername username: NSString?,
61
- resolver resolve: @escaping RCTPromiseResolveBlock,
62
- rejecter reject: @escaping RCTPromiseRejectBlock
62
+ withAppAttestation appAttestationDict: NSDictionary?,
63
+ resolve: @escaping RCTPromiseResolveBlock,
64
+ reject: @escaping RCTPromiseRejectBlock
63
65
  ) -> Void {
64
66
  guard let authsignal = authsignal else {
65
67
  resolve(nil)
66
68
  return
67
69
  }
68
-
70
+
69
71
  let tokenStr = token as String?
70
72
  let userPresenceRequired = requireUserAuthentication as Bool
71
73
  let keychainAccess = getKeychainAccess(value: keychainAccess as String?)
72
74
  let usernameStr = username as String?
73
-
75
+
76
+ var appAttestation: AppAttestation? = nil
77
+ if let dict = appAttestationDict,
78
+ let attestationToken = dict["token"] as? String {
79
+ appAttestation = AppAttestation(
80
+ token: attestationToken,
81
+ keyId: dict["keyId"] as? String
82
+ )
83
+ }
84
+
74
85
  Task.init {
75
86
  let response = await authsignal.addCredential(
76
87
  token: tokenStr,
77
88
  keychainAccess: keychainAccess,
78
89
  userPresenceRequired: userPresenceRequired,
79
- username: usernameStr
90
+ username: usernameStr,
91
+ appAttestation: appAttestation
80
92
  )
81
93
 
82
94
  if let error = response.error {
@@ -98,8 +110,8 @@ class AuthsignalInAppModule: NSObject {
98
110
 
99
111
  @objc func removeCredential(
100
112
  _ username: NSString?,
101
- resolver resolve: @escaping RCTPromiseResolveBlock,
102
- rejecter reject: @escaping RCTPromiseRejectBlock
113
+ resolve: @escaping RCTPromiseResolveBlock,
114
+ reject: @escaping RCTPromiseRejectBlock
103
115
  ) -> Void {
104
116
  guard let authsignal = authsignal else {
105
117
  resolve(nil)
@@ -122,8 +134,8 @@ class AuthsignalInAppModule: NSObject {
122
134
  @objc func verify(
123
135
  _ action: NSString?,
124
136
  withUsername username: NSString?,
125
- resolver resolve: @escaping RCTPromiseResolveBlock,
126
- rejecter reject: @escaping RCTPromiseRejectBlock
137
+ resolve: @escaping RCTPromiseResolveBlock,
138
+ reject: @escaping RCTPromiseRejectBlock
127
139
  ) -> Void {
128
140
  guard let authsignal = authsignal else {
129
141
  resolve(nil)
@@ -157,8 +169,8 @@ class AuthsignalInAppModule: NSObject {
157
169
  _ pin: NSString,
158
170
  withUsername username: NSString,
159
171
  withToken token: NSString?,
160
- resolver resolve: @escaping RCTPromiseResolveBlock,
161
- rejecter reject: @escaping RCTPromiseRejectBlock
172
+ resolve: @escaping RCTPromiseResolveBlock,
173
+ reject: @escaping RCTPromiseRejectBlock
162
174
  ) -> Void {
163
175
  guard let authsignal = authsignal else {
164
176
  resolve(nil)
@@ -197,8 +209,8 @@ class AuthsignalInAppModule: NSObject {
197
209
  _ pin: NSString,
198
210
  withUsername username: NSString,
199
211
  withAction action: NSString?,
200
- resolver resolve: @escaping RCTPromiseResolveBlock,
201
- rejecter reject: @escaping RCTPromiseRejectBlock
212
+ resolve: @escaping RCTPromiseResolveBlock,
213
+ reject: @escaping RCTPromiseRejectBlock
202
214
  ) -> Void {
203
215
  guard let authsignal = authsignal else {
204
216
  resolve(nil)
@@ -218,22 +230,24 @@ class AuthsignalInAppModule: NSObject {
218
230
 
219
231
  if let error = response.error {
220
232
  reject(response.errorCode ?? "unexpected_error", error, nil)
221
- } else {
233
+ } else if let data = response.data {
222
234
  let verifyPinResponse: [String: Any?] = [
223
- "isVerified": response.data!.isVerified,
224
- "token": response.data!.token,
225
- "userId": response.data!.userId,
235
+ "isVerified": data.isVerified,
236
+ "token": data.token,
237
+ "userId": data.userId,
226
238
  ]
227
239
 
228
240
  resolve(verifyPinResponse)
241
+ } else {
242
+ reject("unexpected_error", "No data returned", nil)
229
243
  }
230
244
  }
231
245
  }
232
246
 
233
247
  @objc func deletePin(
234
248
  _ username: NSString,
235
- resolver resolve: @escaping RCTPromiseResolveBlock,
236
- rejecter reject: @escaping RCTPromiseRejectBlock
249
+ resolve: @escaping RCTPromiseResolveBlock,
250
+ reject: @escaping RCTPromiseRejectBlock
237
251
  ) -> Void {
238
252
  guard let authsignal = authsignal else {
239
253
  resolve(nil)
@@ -255,7 +269,7 @@ class AuthsignalInAppModule: NSObject {
255
269
 
256
270
  @objc func getAllPinUsernames(
257
271
  _ resolve: @escaping RCTPromiseResolveBlock,
258
- rejecter reject: @escaping RCTPromiseRejectBlock
272
+ reject: @escaping RCTPromiseRejectBlock
259
273
  ) -> Void {
260
274
  guard let authsignal = authsignal else {
261
275
  resolve(nil)
@@ -4,11 +4,11 @@
4
4
  @interface RCT_EXTERN_MODULE(AuthsignalModule, NSObject)
5
5
 
6
6
  RCT_EXTERN_METHOD(launch:(NSString)url
7
- resolver:(RCTPromiseResolveBlock)resolve
8
- rejecter:(RCTPromiseRejectBlock)reject)
7
+ resolve:(RCTPromiseResolveBlock)resolve
8
+ reject:(RCTPromiseRejectBlock)reject)
9
9
 
10
10
  RCT_EXTERN_METHOD(setToken:(NSString)token
11
- resolver:(RCTPromiseResolveBlock)resolve
12
- rejecter:(RCTPromiseRejectBlock)reject)
11
+ resolve:(RCTPromiseResolveBlock)resolve
12
+ reject:(RCTPromiseRejectBlock)reject)
13
13
 
14
14
  @end
@@ -18,13 +18,12 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
18
18
 
19
19
  @objc func launch(
20
20
  _ url: NSString,
21
- resolver resolve: @escaping RCTPromiseResolveBlock,
22
- rejecter reject: @escaping RCTPromiseRejectBlock
21
+ resolve: @escaping RCTPromiseResolveBlock,
22
+ reject: @escaping RCTPromiseRejectBlock
23
23
  ) -> Void {
24
24
  let scheme = "authsignal"
25
- let urlStr = url as String?
26
-
27
- guard let authUrl = URL(string: urlStr!) else {
25
+
26
+ guard let authUrl = URL(string: url as String) else {
28
27
  reject("launchError", "Invalid URL", nil)
29
28
 
30
29
  return
@@ -68,11 +67,11 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
68
67
  }
69
68
 
70
69
  @objc func setToken(
71
- _ token: NSString,
72
- resolver resolve: @escaping RCTPromiseResolveBlock,
73
- rejecter reject: @escaping RCTPromiseRejectBlock
70
+ _ token: NSString?,
71
+ resolve: @escaping RCTPromiseResolveBlock,
72
+ reject: @escaping RCTPromiseRejectBlock
74
73
  ) -> Void {
75
- TokenCache.shared.token = token as String
74
+ TokenCache.shared.token = token as String?
76
75
 
77
76
  resolve("token_set")
78
77
  }
@@ -82,6 +81,11 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
82
81
  }
83
82
 
84
83
  func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
85
- return UIApplication.shared.keyWindow!
84
+ if let windowScene = UIApplication.shared.connectedScenes
85
+ .first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene,
86
+ let keyWindow = windowScene.windows.first(where: { $0.isKeyWindow }) {
87
+ return keyWindow
88
+ }
89
+ return UIWindow()
86
90
  }
87
91
  }
@@ -6,30 +6,30 @@
6
6
  RCT_EXTERN_METHOD(initialize:(NSString)tenantID
7
7
  withBaseURL:(NSString)baseURL
8
8
  withDeviceID:(NSString)deviceID
9
- resolver:(RCTPromiseResolveBlock)resolve
10
- rejecter:(RCTPromiseRejectBlock)reject)
9
+ resolve:(RCTPromiseResolveBlock)resolve
10
+ reject:(RCTPromiseRejectBlock)reject)
11
11
 
12
12
  RCT_EXTERN_METHOD(signUp:(NSString)token
13
13
  withUsername:(NSString)username
14
14
  withDisplayName:(NSString)displayName
15
15
  withIgnorePasskeyAlreadyExistsError:(BOOL)ignorePasskeyAlreadyExistsError
16
- resolver:(RCTPromiseResolveBlock)resolve
17
- rejecter:(RCTPromiseRejectBlock)reject)
16
+ resolve:(RCTPromiseResolveBlock)resolve
17
+ reject:(RCTPromiseRejectBlock)reject)
18
18
 
19
19
  RCT_EXTERN_METHOD(signIn:(NSString)action
20
20
  withToken:(NSString)token
21
21
  withAutofill:(BOOL)autofill
22
22
  withPreferImmediatelyAvailableCredentials:(BOOL)preferImmediatelyAvailableCredentials
23
- resolver:(RCTPromiseResolveBlock)resolve
24
- rejecter:(RCTPromiseRejectBlock)reject)
23
+ resolve:(RCTPromiseResolveBlock)resolve
24
+ reject:(RCTPromiseRejectBlock)reject)
25
25
 
26
26
  RCT_EXTERN_METHOD(shouldPromptToCreatePasskey:(NSString)username
27
- resolver:(RCTPromiseResolveBlock)resolve
28
- rejecter:(RCTPromiseRejectBlock)reject)
27
+ resolve:(RCTPromiseResolveBlock)resolve
28
+ reject:(RCTPromiseRejectBlock)reject)
29
29
 
30
30
  RCT_EXTERN_METHOD(isAvailableOnDevice:(RCTPromiseResolveBlock)resolve
31
- rejecter:(RCTPromiseRejectBlock)reject)
31
+ reject:(RCTPromiseRejectBlock)reject)
32
32
 
33
- RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(cancel)
33
+ RCT_EXTERN_METHOD(cancel)
34
34
 
35
35
  @end
@@ -1,6 +1,7 @@
1
- import Security
2
- import Foundation
3
1
  import Authsignal
2
+ import Foundation
3
+ import React
4
+ import Security
4
5
 
5
6
  @objc(AuthsignalPasskeyModule)
6
7
  class AuthsignalPasskeyModule: NSObject {
@@ -14,8 +15,8 @@ class AuthsignalPasskeyModule: NSObject {
14
15
  _ tenantID: NSString,
15
16
  withBaseURL baseURL: NSString,
16
17
  withDeviceID deviceID: NSString?,
17
- resolver resolve: @escaping RCTPromiseResolveBlock,
18
- rejecter reject: @escaping RCTPromiseRejectBlock
18
+ resolve: @escaping RCTPromiseResolveBlock,
19
+ reject: @escaping RCTPromiseRejectBlock
19
20
  ) -> Void {
20
21
  self.authsignal = AuthsignalPasskey(tenantID: tenantID as String, baseURL: baseURL as String, deviceID: deviceID as String?)
21
22
 
@@ -27,8 +28,8 @@ class AuthsignalPasskeyModule: NSObject {
27
28
  withUsername username: NSString?,
28
29
  withDisplayName displayName: NSString?,
29
30
  withIgnorePasskeyAlreadyExistsError ignorePasskeyAlreadyExistsError: Bool,
30
- resolver resolve: @escaping RCTPromiseResolveBlock,
31
- rejecter reject: @escaping RCTPromiseRejectBlock
31
+ resolve: @escaping RCTPromiseResolveBlock,
32
+ reject: @escaping RCTPromiseRejectBlock
32
33
  ) -> Void {
33
34
  if (authsignal == nil) {
34
35
  resolve(nil)
@@ -64,8 +65,8 @@ class AuthsignalPasskeyModule: NSObject {
64
65
  withToken token: NSString?,
65
66
  withAutofill autofill: Bool,
66
67
  withPreferImmediatelyAvailableCredentials preferImmediatelyAvailableCredentials: Bool,
67
- resolver resolve: @escaping RCTPromiseResolveBlock,
68
- rejecter reject: @escaping RCTPromiseRejectBlock
68
+ resolve: @escaping RCTPromiseResolveBlock,
69
+ reject: @escaping RCTPromiseRejectBlock
69
70
  ) -> Void {
70
71
  if (authsignal == nil) {
71
72
  resolve(nil)
@@ -85,25 +86,25 @@ class AuthsignalPasskeyModule: NSObject {
85
86
 
86
87
  if (response.error != nil) {
87
88
  reject(response.errorCode ?? "unexpected_error", response.error, nil)
88
- } else {
89
+ } else if let data = response.data {
89
90
  let signInResponse: [String: Any?] = [
90
- "isVerified": response.data!.isVerified,
91
- "token": response.data!.token,
92
- "userId": response.data!.userId,
93
- "userAuthenticatorId": response.data!.userAuthenticatorId,
94
- "username": response.data!.username,
95
- "displayName": response.data!.displayName,
91
+ "isVerified": data.isVerified,
92
+ "token": data.token,
93
+ "userId": data.userId,
94
+ "userAuthenticatorId": data.userAuthenticatorId,
95
+ "username": data.username,
96
+ "displayName": data.displayName,
96
97
  ]
97
98
 
98
99
  resolve(signInResponse)
100
+ } else {
101
+ reject("unexpected_error", "No data returned", nil)
99
102
  }
100
103
  }
101
104
  }
102
105
 
103
- @objc func cancel() -> NSString? {
106
+ @objc func cancel() -> Void {
104
107
  authsignal?.cancel()
105
-
106
- return nil
107
108
  }
108
109
 
109
110
  @objc func invalidate() -> Void {
@@ -112,8 +113,8 @@ class AuthsignalPasskeyModule: NSObject {
112
113
 
113
114
  @objc func shouldPromptToCreatePasskey(
114
115
  _ username: NSString?,
115
- resolver resolve: @escaping RCTPromiseResolveBlock,
116
- rejecter reject: @escaping RCTPromiseRejectBlock
116
+ resolve: @escaping RCTPromiseResolveBlock,
117
+ reject: @escaping RCTPromiseRejectBlock
117
118
  ) -> Void {
118
119
  if (authsignal == nil) {
119
120
  resolve(false)
@@ -133,7 +134,7 @@ class AuthsignalPasskeyModule: NSObject {
133
134
  }
134
135
  }
135
136
 
136
- @objc func isAvailableOnDevice(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
137
+ @objc func isAvailableOnDevice(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
137
138
  if (authsignal == nil) {
138
139
  resolve(false)
139
140
  return
@@ -5,28 +5,28 @@
5
5
 
6
6
  RCT_EXTERN_METHOD(initialize:(NSString)tenantID
7
7
  withBaseURL:(NSString)baseURL
8
- resolver:(RCTPromiseResolveBlock)resolve
9
- rejecter:(RCTPromiseRejectBlock)reject)
8
+ resolve:(RCTPromiseResolveBlock)resolve
9
+ reject:(RCTPromiseRejectBlock)reject)
10
10
 
11
11
  RCT_EXTERN_METHOD(getCredential:(RCTPromiseResolveBlock)resolve
12
- rejecter:(RCTPromiseRejectBlock)reject)
12
+ reject:(RCTPromiseRejectBlock)reject)
13
13
 
14
14
  RCT_EXTERN_METHOD(addCredential:(NSString)token
15
15
  withRequireUserAuthentication:(BOOL)requireUserAuthentication
16
16
  withKeychainAccess:(NSString)keychainAccess
17
- resolver:(RCTPromiseResolveBlock)resolve
18
- rejecter:(RCTPromiseRejectBlock)reject)
17
+ resolve:(RCTPromiseResolveBlock)resolve
18
+ reject:(RCTPromiseRejectBlock)reject)
19
19
 
20
20
  RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
21
- rejecter:(RCTPromiseRejectBlock)reject)
21
+ reject:(RCTPromiseRejectBlock)reject)
22
22
 
23
23
  RCT_EXTERN_METHOD(getChallenge:(RCTPromiseResolveBlock)resolve
24
- rejecter:(RCTPromiseRejectBlock)reject)
24
+ reject:(RCTPromiseRejectBlock)reject)
25
25
 
26
26
  RCT_EXTERN_METHOD(updateChallenge:(NSString)challengeId
27
27
  withApproval:(BOOL)approved
28
28
  withVerificationCode:(NSString)verificationCode
29
- resolver:(RCTPromiseResolveBlock)resolve
30
- rejecter:(RCTPromiseRejectBlock)reject)
29
+ resolve:(RCTPromiseResolveBlock)resolve
30
+ reject:(RCTPromiseRejectBlock)reject)
31
31
 
32
32
  @end
@@ -1,6 +1,7 @@
1
- import Security
2
- import Foundation
3
1
  import Authsignal
2
+ import Foundation
3
+ import React
4
+ import Security
4
5
 
5
6
  @objc(AuthsignalPushModule)
6
7
  class AuthsignalPushModule: NSObject {
@@ -13,8 +14,8 @@ class AuthsignalPushModule: NSObject {
13
14
  @objc func initialize(
14
15
  _ tenantID: NSString,
15
16
  withBaseURL baseURL: NSString,
16
- resolver resolve: @escaping RCTPromiseResolveBlock,
17
- rejecter reject: @escaping RCTPromiseRejectBlock
17
+ resolve: @escaping RCTPromiseResolveBlock,
18
+ reject: @escaping RCTPromiseRejectBlock
18
19
  ) -> Void {
19
20
  self.authsignal = AuthsignalPush(tenantID: tenantID as String, baseURL: baseURL as String)
20
21
 
@@ -23,7 +24,7 @@ class AuthsignalPushModule: NSObject {
23
24
 
24
25
  @objc func getCredential(
25
26
  _ resolve: @escaping RCTPromiseResolveBlock,
26
- rejecter reject: @escaping RCTPromiseRejectBlock
27
+ reject: @escaping RCTPromiseRejectBlock
27
28
  ) -> Void {
28
29
  guard let authsignal = authsignal else {
29
30
  resolve(nil)
@@ -53,9 +54,9 @@ class AuthsignalPushModule: NSObject {
53
54
  @objc func addCredential(
54
55
  _ token: NSString?,
55
56
  withRequireUserAuthentication requireUserAuthentication: Bool,
56
- withKeychainAccess keychainAccess: NSString,
57
- resolver resolve: @escaping RCTPromiseResolveBlock,
58
- rejecter reject: @escaping RCTPromiseRejectBlock
57
+ withKeychainAccess keychainAccess: NSString?,
58
+ resolve: @escaping RCTPromiseResolveBlock,
59
+ reject: @escaping RCTPromiseRejectBlock
59
60
  ) -> Void {
60
61
  guard let authsignal = authsignal else {
61
62
  resolve(nil)
@@ -90,7 +91,7 @@ class AuthsignalPushModule: NSObject {
90
91
 
91
92
  @objc func removeCredential(
92
93
  _ resolve: @escaping RCTPromiseResolveBlock,
93
- rejecter reject: @escaping RCTPromiseRejectBlock
94
+ reject: @escaping RCTPromiseRejectBlock
94
95
  ) -> Void {
95
96
  guard let authsignal = authsignal else {
96
97
  resolve(nil)
@@ -110,7 +111,7 @@ class AuthsignalPushModule: NSObject {
110
111
 
111
112
  @objc func getChallenge(
112
113
  _ resolve: @escaping RCTPromiseResolveBlock,
113
- rejecter reject: @escaping RCTPromiseRejectBlock
114
+ reject: @escaping RCTPromiseRejectBlock
114
115
  ) -> Void {
115
116
  guard let authsignal = authsignal else {
116
117
  resolve(nil)
@@ -142,9 +143,9 @@ class AuthsignalPushModule: NSObject {
142
143
  @objc func updateChallenge(
143
144
  _ challengeId: NSString,
144
145
  withApproval approved: Bool,
145
- withVerificationCode verificationCode: NSString,
146
- resolver resolve: @escaping RCTPromiseResolveBlock,
147
- rejecter reject: @escaping RCTPromiseRejectBlock
146
+ withVerificationCode verificationCode: NSString?,
147
+ resolve: @escaping RCTPromiseResolveBlock,
148
+ reject: @escaping RCTPromiseRejectBlock
148
149
  ) -> Void {
149
150
  guard let authsignal = authsignal else {
150
151
  resolve(nil)
@@ -5,29 +5,29 @@
5
5
 
6
6
  RCT_EXTERN_METHOD(initialize:(NSString)tenantID
7
7
  withBaseURL:(NSString)baseURL
8
- resolver:(RCTPromiseResolveBlock)resolve
9
- rejecter:(RCTPromiseRejectBlock)reject)
8
+ resolve:(RCTPromiseResolveBlock)resolve
9
+ reject:(RCTPromiseRejectBlock)reject)
10
10
 
11
11
  RCT_EXTERN_METHOD(getCredential:(RCTPromiseResolveBlock)resolve
12
- rejecter:(RCTPromiseRejectBlock)reject)
12
+ reject:(RCTPromiseRejectBlock)reject)
13
13
 
14
14
  RCT_EXTERN_METHOD(addCredential:(NSString)token
15
15
  withRequireUserAuthentication:(BOOL)requireUserAuthentication
16
16
  withKeychainAccess:(NSString)keychainAccess
17
- resolver:(RCTPromiseResolveBlock)resolve
18
- rejecter:(RCTPromiseRejectBlock)reject)
17
+ resolve:(RCTPromiseResolveBlock)resolve
18
+ reject:(RCTPromiseRejectBlock)reject)
19
19
 
20
20
  RCT_EXTERN_METHOD(removeCredential:(RCTPromiseResolveBlock)resolve
21
- rejecter:(RCTPromiseRejectBlock)reject)
21
+ reject:(RCTPromiseRejectBlock)reject)
22
22
 
23
23
  RCT_EXTERN_METHOD(claimChallenge:(NSString)challengeId
24
- resolver:(RCTPromiseResolveBlock)resolve
25
- rejecter:(RCTPromiseRejectBlock)reject)
24
+ resolve:(RCTPromiseResolveBlock)resolve
25
+ reject:(RCTPromiseRejectBlock)reject)
26
26
 
27
27
  RCT_EXTERN_METHOD(updateChallenge:(NSString)challengeId
28
28
  withApproval:(BOOL)approved
29
29
  withVerificationCode:(NSString)verificationCode
30
- resolver:(RCTPromiseResolveBlock)resolve
31
- rejecter:(RCTPromiseRejectBlock)reject)
30
+ resolve:(RCTPromiseResolveBlock)resolve
31
+ reject:(RCTPromiseRejectBlock)reject)
32
32
 
33
33
  @end
@@ -1,6 +1,7 @@
1
- import Security
2
- import Foundation
3
1
  import Authsignal
2
+ import Foundation
3
+ import React
4
+ import Security
4
5
 
5
6
  @objc(AuthsignalQRCodeModule)
6
7
  class AuthsignalQRCodeModule: NSObject {
@@ -13,8 +14,8 @@ class AuthsignalQRCodeModule: NSObject {
13
14
  @objc func initialize(
14
15
  _ tenantID: NSString,
15
16
  withBaseURL baseURL: NSString,
16
- resolver resolve: @escaping RCTPromiseResolveBlock,
17
- rejecter reject: @escaping RCTPromiseRejectBlock
17
+ resolve: @escaping RCTPromiseResolveBlock,
18
+ reject: @escaping RCTPromiseRejectBlock
18
19
  ) -> Void {
19
20
  self.authsignal = AuthsignalQRCode(tenantID: tenantID as String, baseURL: baseURL as String)
20
21
 
@@ -23,7 +24,7 @@ class AuthsignalQRCodeModule: NSObject {
23
24
 
24
25
  @objc func getCredential(
25
26
  _ resolve: @escaping RCTPromiseResolveBlock,
26
- rejecter reject: @escaping RCTPromiseRejectBlock
27
+ reject: @escaping RCTPromiseRejectBlock
27
28
  ) -> Void {
28
29
  guard let authsignal = authsignal else {
29
30
  resolve(nil)
@@ -53,9 +54,9 @@ class AuthsignalQRCodeModule: NSObject {
53
54
  @objc func addCredential(
54
55
  _ token: NSString?,
55
56
  withRequireUserAuthentication requireUserAuthentication: Bool,
56
- withKeychainAccess keychainAccess: NSString,
57
- resolver resolve: @escaping RCTPromiseResolveBlock,
58
- rejecter reject: @escaping RCTPromiseRejectBlock
57
+ withKeychainAccess keychainAccess: NSString?,
58
+ resolve: @escaping RCTPromiseResolveBlock,
59
+ reject: @escaping RCTPromiseRejectBlock
59
60
  ) -> Void {
60
61
  guard let authsignal = authsignal else {
61
62
  resolve(nil)
@@ -92,7 +93,7 @@ class AuthsignalQRCodeModule: NSObject {
92
93
 
93
94
  @objc func removeCredential(
94
95
  _ resolve: @escaping RCTPromiseResolveBlock,
95
- rejecter reject: @escaping RCTPromiseRejectBlock
96
+ reject: @escaping RCTPromiseRejectBlock
96
97
  ) -> Void {
97
98
  guard let authsignal = authsignal else {
98
99
  resolve(nil)
@@ -112,8 +113,8 @@ class AuthsignalQRCodeModule: NSObject {
112
113
 
113
114
  @objc func claimChallenge(
114
115
  _ challengeId: NSString,
115
- resolver resolve: @escaping RCTPromiseResolveBlock,
116
- rejecter reject: @escaping RCTPromiseRejectBlock
116
+ resolve: @escaping RCTPromiseResolveBlock,
117
+ reject: @escaping RCTPromiseRejectBlock
117
118
  ) -> Void {
118
119
  guard let authsignal = authsignal else {
119
120
  resolve(nil)
@@ -146,9 +147,9 @@ class AuthsignalQRCodeModule: NSObject {
146
147
  @objc func updateChallenge(
147
148
  _ challengeId: NSString,
148
149
  withApproval approved: Bool,
149
- withVerificationCode verificationCode: NSString,
150
- resolver resolve: @escaping RCTPromiseResolveBlock,
151
- rejecter reject: @escaping RCTPromiseRejectBlock
150
+ withVerificationCode verificationCode: NSString?,
151
+ resolve: @escaping RCTPromiseResolveBlock,
152
+ reject: @escaping RCTPromiseRejectBlock
152
153
  ) -> Void {
153
154
  guard let authsignal = authsignal else {
154
155
  resolve(nil)
@@ -5,18 +5,18 @@
5
5
 
6
6
  RCT_EXTERN_METHOD(initialize:(NSString)tenantID
7
7
  withBaseURL:(NSString)baseURL
8
- resolver:(RCTPromiseResolveBlock)resolve
9
- rejecter:(RCTPromiseRejectBlock)reject)
8
+ resolve:(RCTPromiseResolveBlock)resolve
9
+ reject:(RCTPromiseRejectBlock)reject)
10
10
 
11
11
  RCT_EXTERN_METHOD(enroll:(NSString)phoneNumber
12
- resolver:(RCTPromiseResolveBlock)resolve
13
- rejecter:(RCTPromiseRejectBlock)reject)
12
+ resolve:(RCTPromiseResolveBlock)resolve
13
+ reject:(RCTPromiseRejectBlock)reject)
14
14
 
15
15
  RCT_EXTERN_METHOD(challenge:(RCTPromiseResolveBlock)resolve
16
- rejecter:(RCTPromiseRejectBlock)reject)
16
+ reject:(RCTPromiseRejectBlock)reject)
17
17
 
18
18
  RCT_EXTERN_METHOD(verify:(NSString)code
19
- resolver:(RCTPromiseResolveBlock)resolve
20
- rejecter:(RCTPromiseRejectBlock)reject)
19
+ resolve:(RCTPromiseResolveBlock)resolve
20
+ reject:(RCTPromiseRejectBlock)reject)
21
21
 
22
22
  @end
@@ -1,6 +1,7 @@
1
- import Security
2
- import Foundation
3
1
  import Authsignal
2
+ import Foundation
3
+ import React
4
+ import Security
4
5
 
5
6
  @objc(AuthsignalSMSModule)
6
7
  class AuthsignalSMSModule: NSObject {
@@ -13,8 +14,8 @@ class AuthsignalSMSModule: NSObject {
13
14
  @objc func initialize(
14
15
  _ tenantID: NSString,
15
16
  withBaseURL baseURL: NSString,
16
- resolver resolve: @escaping RCTPromiseResolveBlock,
17
- rejecter reject: @escaping RCTPromiseRejectBlock
17
+ resolve: @escaping RCTPromiseResolveBlock,
18
+ reject: @escaping RCTPromiseRejectBlock
18
19
  ) -> Void {
19
20
  self.authsignal = AuthsignalSMS(tenantID: tenantID as String, baseURL: baseURL as String)
20
21
 
@@ -23,8 +24,8 @@ class AuthsignalSMSModule: NSObject {
23
24
 
24
25
  @objc func enroll(
25
26
  _ phoneNumber: NSString,
26
- resolver resolve: @escaping RCTPromiseResolveBlock,
27
- rejecter reject: @escaping RCTPromiseRejectBlock
27
+ resolve: @escaping RCTPromiseResolveBlock,
28
+ reject: @escaping RCTPromiseRejectBlock
28
29
  ) -> Void {
29
30
  if (authsignal == nil) {
30
31
  resolve(nil)
@@ -50,7 +51,7 @@ class AuthsignalSMSModule: NSObject {
50
51
 
51
52
  @objc func challenge(
52
53
  _ resolve: @escaping RCTPromiseResolveBlock,
53
- rejecter reject: @escaping RCTPromiseRejectBlock
54
+ reject: @escaping RCTPromiseRejectBlock
54
55
  ) -> Void {
55
56
  if (authsignal == nil) {
56
57
  resolve(nil)
@@ -74,8 +75,8 @@ class AuthsignalSMSModule: NSObject {
74
75
 
75
76
  @objc func verify(
76
77
  _ code: NSString,
77
- resolver resolve: @escaping RCTPromiseResolveBlock,
78
- rejecter reject: @escaping RCTPromiseRejectBlock
78
+ resolve: @escaping RCTPromiseResolveBlock,
79
+ reject: @escaping RCTPromiseRejectBlock
79
80
  ) -> Void {
80
81
  if (authsignal == nil) {
81
82
  resolve(nil)