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
@@ -5,40 +5,29 @@ import com.authsignal.push.AuthsignalPush
5
5
  import com.facebook.react.bridge.Arguments
6
6
  import com.facebook.react.bridge.Promise
7
7
  import com.facebook.react.bridge.ReactApplicationContext
8
- import com.facebook.react.bridge.ReactContextBaseJavaModule
9
8
  import com.facebook.react.bridge.ReactMethod
9
+ import com.facebook.react.module.annotations.ReactModule
10
10
  import kotlinx.coroutines.CoroutineScope
11
11
  import kotlinx.coroutines.Dispatchers
12
12
  import kotlinx.coroutines.SupervisorJob
13
13
  import kotlinx.coroutines.launch
14
14
 
15
+ @ReactModule(name = AuthsignalPushModule.NAME)
15
16
  class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
16
- ReactContextBaseJavaModule(
17
- reactContext
18
- ) {
17
+ NativeAuthsignalPushModuleSpec(reactContext) {
19
18
  private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
20
19
  private var authsignal: AuthsignalPush? = null
21
20
  private var defaultError = "unexpected_error"
22
21
 
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 "AuthsignalPushModule"
31
- }
32
-
33
22
  @ReactMethod
34
- fun initialize(tenantID: String?, baseURL: String?, promise: Promise) {
35
- authsignal = AuthsignalPush(tenantID!!, baseURL!!)
23
+ override fun initialize(tenantID: String, baseURL: String, promise: Promise) {
24
+ authsignal = AuthsignalPush(tenantID, baseURL)
36
25
 
37
26
  promise.resolve(null)
38
27
  }
39
28
 
40
29
  @ReactMethod
41
- fun getCredential(promise: Promise) {
30
+ override fun getCredential(promise: Promise) {
42
31
  launch(promise) {
43
32
  val response = it.getCredential()
44
33
 
@@ -61,8 +50,10 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
61
50
  }
62
51
 
63
52
  @ReactMethod
64
- fun addCredential(
53
+ override fun addCredential(
65
54
  token: String?,
55
+ _requireUserAuthentication: Boolean,
56
+ _keychainAccess: String?,
66
57
  promise: Promise
67
58
  ) {
68
59
  launch(promise) {
@@ -85,7 +76,7 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
85
76
  }
86
77
 
87
78
  @ReactMethod
88
- fun removeCredential(promise: Promise) {
79
+ override fun removeCredential(promise: Promise) {
89
80
  launch(promise) {
90
81
  val response = it.removeCredential()
91
82
 
@@ -100,7 +91,7 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
100
91
  }
101
92
 
102
93
  @ReactMethod
103
- fun getChallenge(promise: Promise) {
94
+ override fun getChallenge(promise: Promise) {
104
95
  launch(promise) {
105
96
  val response = it.getChallenge()
106
97
 
@@ -128,7 +119,7 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
128
119
  }
129
120
 
130
121
  @ReactMethod
131
- fun updateChallenge(
122
+ override fun updateChallenge(
132
123
  challengeId: String,
133
124
  approved: Boolean,
134
125
  verificationCode: String?,
@@ -158,4 +149,8 @@ class AuthsignalPushModule(private val reactContext: ReactApplicationContext) :
158
149
  }
159
150
  }
160
151
  }
152
+
153
+ companion object {
154
+ const val NAME = "AuthsignalPushModule"
155
+ }
161
156
  }
@@ -5,41 +5,29 @@ 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
8
- import com.facebook.react.bridge.ReactContextBaseJavaModule
9
8
  import com.facebook.react.bridge.ReactMethod
9
+ import com.facebook.react.module.annotations.ReactModule
10
10
  import kotlinx.coroutines.CoroutineScope
11
11
  import kotlinx.coroutines.Dispatchers
12
12
  import kotlinx.coroutines.SupervisorJob
13
13
  import kotlinx.coroutines.launch
14
14
 
15
+ @ReactModule(name = AuthsignalQRCodeModule.NAME)
15
16
  class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext) :
16
- ReactContextBaseJavaModule(
17
- reactContext
18
- ) {
17
+ NativeAuthsignalQRCodeModuleSpec(reactContext) {
19
18
  private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
20
19
  private var authsignal: AuthsignalQRCode? = null
21
20
  private var defaultError = "unexpected_error"
22
21
 
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 "AuthsignalQRCodeModule"
31
- }
32
-
33
22
  @ReactMethod
34
- fun initialize(tenantID: String?, baseURL: String?, promise: Promise) {
35
- Log.d("AuthsignalQRCodeModule", "initialize: $tenantID, $baseURL")
36
- authsignal = AuthsignalQRCode(tenantID!!, baseURL!!)
23
+ override fun initialize(tenantID: String, baseURL: String, promise: Promise) {
24
+ authsignal = AuthsignalQRCode(tenantID, baseURL)
37
25
 
38
26
  promise.resolve(null)
39
27
  }
40
28
 
41
29
  @ReactMethod
42
- fun getCredential(promise: Promise) {
30
+ override fun getCredential(promise: Promise) {
43
31
  launch(promise) {
44
32
  val response = it.getCredential()
45
33
 
@@ -62,8 +50,10 @@ class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext)
62
50
  }
63
51
 
64
52
  @ReactMethod
65
- fun addCredential(
53
+ override fun addCredential(
66
54
  token: String?,
55
+ _requireUserAuthentication: Boolean,
56
+ _keychainAccess: String?,
67
57
  promise: Promise
68
58
  ) {
69
59
  launch(promise) {
@@ -86,7 +76,7 @@ class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext)
86
76
  }
87
77
 
88
78
  @ReactMethod
89
- fun removeCredential(promise: Promise) {
79
+ override fun removeCredential(promise: Promise) {
90
80
  launch(promise) {
91
81
  val response = it.removeCredential()
92
82
 
@@ -101,7 +91,7 @@ class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext)
101
91
  }
102
92
 
103
93
  @ReactMethod
104
- fun claimChallenge(
94
+ override fun claimChallenge(
105
95
  challengeId: String,
106
96
  promise: Promise
107
97
  ) {
@@ -130,7 +120,7 @@ class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext)
130
120
  }
131
121
 
132
122
  @ReactMethod
133
- fun updateChallenge(
123
+ override fun updateChallenge(
134
124
  challengeId: String,
135
125
  approved: Boolean,
136
126
  verificationCode: String?,
@@ -160,4 +150,8 @@ class AuthsignalQRCodeModule(private val reactContext: ReactApplicationContext)
160
150
  }
161
151
  }
162
152
  }
153
+
154
+ companion object {
155
+ const val NAME = "AuthsignalQRCodeModule"
156
+ }
163
157
  }
@@ -1,43 +1,25 @@
1
1
  package com.authsignal.react
2
2
 
3
3
  import android.util.Log
4
- import com.authsignal.models.AuthsignalResponse
5
- import com.authsignal.models.ChallengeResponse
6
- import com.authsignal.models.EnrollResponse
7
- import com.authsignal.models.VerifyResponse
8
4
  import com.authsignal.sms.AuthsignalSMS
9
- import com.authsignal.totp.AuthsignalTOTP
10
5
  import com.facebook.react.bridge.Arguments
11
6
  import com.facebook.react.bridge.Promise
12
7
  import com.facebook.react.bridge.ReactApplicationContext
13
- import com.facebook.react.bridge.ReactContextBaseJavaModule
14
8
  import com.facebook.react.bridge.ReactMethod
9
+ import com.facebook.react.module.annotations.ReactModule
15
10
  import kotlinx.coroutines.CoroutineScope
16
11
  import kotlinx.coroutines.Dispatchers
17
12
  import kotlinx.coroutines.SupervisorJob
18
13
  import kotlinx.coroutines.launch
19
- import java.util.function.Consumer
20
-
14
+ @ReactModule(name = AuthsignalSMSModule.NAME)
21
15
  class AuthsignalSMSModule(private val reactContext: ReactApplicationContext) :
22
- ReactContextBaseJavaModule(
23
- reactContext
24
- ) {
16
+ NativeAuthsignalSMSModuleSpec(reactContext) {
25
17
  private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
26
18
  private var authsignal: AuthsignalSMS? = null
27
19
  private val defaultError = "unexpected_error"
28
20
 
29
- override fun getConstants(): Map<String, Any>? {
30
- val constants: MutableMap<String, Any> = HashMap()
31
- constants["bundleIdentifier"] = reactContext.applicationInfo.packageName
32
- return constants
33
- }
34
-
35
- override fun getName(): String {
36
- return "AuthsignalSMSModule"
37
- }
38
-
39
21
  @ReactMethod
40
- fun initialize(tenantID: String, baseURL: String, promise: Promise) {
22
+ override fun initialize(tenantID: String, baseURL: String, promise: Promise) {
41
23
  val currentActivity = reactContext.currentActivity
42
24
 
43
25
  if (currentActivity != null) {
@@ -48,7 +30,7 @@ class AuthsignalSMSModule(private val reactContext: ReactApplicationContext) :
48
30
  }
49
31
 
50
32
  @ReactMethod
51
- fun enroll(phoneNumber: String, promise: Promise) {
33
+ override fun enroll(phoneNumber: String, promise: Promise) {
52
34
  launch(promise) {
53
35
  val response = it.enroll(phoneNumber)
54
36
 
@@ -66,7 +48,7 @@ class AuthsignalSMSModule(private val reactContext: ReactApplicationContext) :
66
48
  }
67
49
 
68
50
  @ReactMethod
69
- fun challenge(promise: Promise) {
51
+ override fun challenge(promise: Promise) {
70
52
  launch(promise) {
71
53
  val response = it.challenge()
72
54
 
@@ -84,7 +66,7 @@ class AuthsignalSMSModule(private val reactContext: ReactApplicationContext) :
84
66
  }
85
67
 
86
68
  @ReactMethod
87
- fun verify(code: String, promise: Promise) {
69
+ override fun verify(code: String, promise: Promise) {
88
70
  launch(promise) {
89
71
  val response = it.verify(code)
90
72
 
@@ -114,4 +96,8 @@ class AuthsignalSMSModule(private val reactContext: ReactApplicationContext) :
114
96
  }
115
97
  }
116
98
  }
99
+
100
+ companion object {
101
+ const val NAME = "AuthsignalSMSModule"
102
+ }
117
103
  }
@@ -5,33 +5,22 @@ import com.authsignal.totp.AuthsignalTOTP
5
5
  import com.facebook.react.bridge.Arguments
6
6
  import com.facebook.react.bridge.Promise
7
7
  import com.facebook.react.bridge.ReactApplicationContext
8
- import com.facebook.react.bridge.ReactContextBaseJavaModule
9
8
  import com.facebook.react.bridge.ReactMethod
9
+ import com.facebook.react.module.annotations.ReactModule
10
10
  import kotlinx.coroutines.CoroutineScope
11
11
  import kotlinx.coroutines.Dispatchers
12
12
  import kotlinx.coroutines.SupervisorJob
13
13
  import kotlinx.coroutines.launch
14
14
 
15
+ @ReactModule(name = AuthsignalTOTPModule.NAME)
15
16
  class AuthsignalTOTPModule(private val reactContext: ReactApplicationContext) :
16
- ReactContextBaseJavaModule(
17
- reactContext
18
- ) {
17
+ NativeAuthsignalTOTPModuleSpec(reactContext) {
19
18
  private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
20
19
  private var authsignal: AuthsignalTOTP? = null
21
20
  private val defaultError = "unexpected_error"
22
21
 
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 "AuthsignalTOTPModule"
31
- }
32
-
33
22
  @ReactMethod
34
- fun initialize(tenantID: String, baseURL: String, promise: Promise) {
23
+ override fun initialize(tenantID: String, baseURL: String, promise: Promise) {
35
24
  val currentActivity = reactContext.currentActivity
36
25
 
37
26
  if (currentActivity != null) {
@@ -42,7 +31,7 @@ class AuthsignalTOTPModule(private val reactContext: ReactApplicationContext) :
42
31
  }
43
32
 
44
33
  @ReactMethod
45
- fun enroll(promise: Promise) {
34
+ override fun enroll(promise: Promise) {
46
35
  launch(promise) {
47
36
  val response = it.enroll()
48
37
 
@@ -62,7 +51,7 @@ class AuthsignalTOTPModule(private val reactContext: ReactApplicationContext) :
62
51
  }
63
52
 
64
53
  @ReactMethod
65
- fun verify(code: String, promise: Promise) {
54
+ override fun verify(code: String, promise: Promise) {
66
55
  launch(promise) {
67
56
  val response = it.verify(code)
68
57
 
@@ -92,4 +81,8 @@ class AuthsignalTOTPModule(private val reactContext: ReactApplicationContext) :
92
81
  }
93
82
  }
94
83
  }
84
+
85
+ companion object {
86
+ const val NAME = "AuthsignalTOTPModule"
87
+ }
95
88
  }
@@ -1,42 +1,25 @@
1
1
  package com.authsignal.react
2
2
 
3
3
  import android.util.Log
4
- import com.authsignal.models.AuthsignalResponse
5
- import com.authsignal.models.ChallengeResponse
6
- import com.authsignal.models.EnrollResponse
7
- import com.authsignal.models.VerifyResponse
8
4
  import com.authsignal.whatsapp.AuthsignalWhatsApp
9
5
  import com.facebook.react.bridge.Arguments
10
6
  import com.facebook.react.bridge.Promise
11
7
  import com.facebook.react.bridge.ReactApplicationContext
12
- import com.facebook.react.bridge.ReactContextBaseJavaModule
13
8
  import com.facebook.react.bridge.ReactMethod
9
+ import com.facebook.react.module.annotations.ReactModule
14
10
  import kotlinx.coroutines.CoroutineScope
15
11
  import kotlinx.coroutines.Dispatchers
16
12
  import kotlinx.coroutines.SupervisorJob
17
13
  import kotlinx.coroutines.launch
18
- import java.util.function.Consumer
19
-
14
+ @ReactModule(name = AuthsignalWhatsappModule.NAME)
20
15
  class AuthsignalWhatsappModule(private val reactContext: ReactApplicationContext) :
21
- ReactContextBaseJavaModule(
22
- reactContext
23
- ) {
16
+ NativeAuthsignalWhatsappModuleSpec(reactContext) {
24
17
  private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
25
18
  private var authsignal: AuthsignalWhatsApp? = null
26
19
  private val defaultError = "unexpected_error"
27
20
 
28
- override fun getConstants(): Map<String, Any>? {
29
- val constants: MutableMap<String, Any> = HashMap()
30
- constants["bundleIdentifier"] = reactContext.applicationInfo.packageName
31
- return constants
32
- }
33
-
34
- override fun getName(): String {
35
- return "AuthsignalWhatsappModule"
36
- }
37
-
38
21
  @ReactMethod
39
- fun initialize(tenantID: String, baseURL: String, promise: Promise) {
22
+ override fun initialize(tenantID: String, baseURL: String, promise: Promise) {
40
23
  val currentActivity = reactContext.currentActivity
41
24
 
42
25
  if (currentActivity != null) {
@@ -47,7 +30,7 @@ class AuthsignalWhatsappModule(private val reactContext: ReactApplicationContext
47
30
  }
48
31
 
49
32
  @ReactMethod
50
- fun challenge(promise: Promise) {
33
+ override fun challenge(promise: Promise) {
51
34
  launch(promise) {
52
35
  val response = it.challenge()
53
36
 
@@ -65,7 +48,7 @@ class AuthsignalWhatsappModule(private val reactContext: ReactApplicationContext
65
48
  }
66
49
 
67
50
  @ReactMethod
68
- fun verify(code: String, promise: Promise) {
51
+ override fun verify(code: String, promise: Promise) {
69
52
  launch(promise) {
70
53
  val response = it.verify(code)
71
54
 
@@ -95,4 +78,8 @@ class AuthsignalWhatsappModule(private val reactContext: ReactApplicationContext
95
78
  }
96
79
  }
97
80
  }
81
+
82
+ companion object {
83
+ const val NAME = "AuthsignalWhatsappModule"
84
+ }
98
85
  }
@@ -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)email
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(AuthsignalEmailModule)
6
7
  class AuthsignalEmailModule: NSObject {
@@ -13,8 +14,8 @@ class AuthsignalEmailModule: 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 = AuthsignalEmail(tenantID: tenantID as String, baseURL: baseURL as String)
20
21
 
@@ -23,8 +24,8 @@ class AuthsignalEmailModule: NSObject {
23
24
 
24
25
  @objc func enroll(
25
26
  _ email: 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 AuthsignalEmailModule: 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 AuthsignalEmailModule: 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)
@@ -5,46 +5,47 @@
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:(NSString)username
12
- resolver:(RCTPromiseResolveBlock)resolve
13
- rejecter:(RCTPromiseRejectBlock)reject)
12
+ resolve:(RCTPromiseResolveBlock)resolve
13
+ reject:(RCTPromiseRejectBlock)reject)
14
14
 
15
15
  RCT_EXTERN_METHOD(addCredential:(NSString)token
16
16
  withRequireUserAuthentication:(BOOL)requireUserAuthentication
17
17
  withKeychainAccess:(NSString)keychainAccess
18
18
  withUsername:(NSString)username
19
- resolver:(RCTPromiseResolveBlock)resolve
20
- rejecter:(RCTPromiseRejectBlock)reject)
19
+ withAppAttestation:(NSDictionary)appAttestation
20
+ resolve:(RCTPromiseResolveBlock)resolve
21
+ reject:(RCTPromiseRejectBlock)reject)
21
22
 
22
23
  RCT_EXTERN_METHOD(removeCredential:(NSString)username
23
- resolver:(RCTPromiseResolveBlock)resolve
24
- rejecter:(RCTPromiseRejectBlock)reject)
24
+ resolve:(RCTPromiseResolveBlock)resolve
25
+ reject:(RCTPromiseRejectBlock)reject)
25
26
 
26
27
  RCT_EXTERN_METHOD(verify:(NSString)action
27
28
  withUsername:(NSString)username
28
- resolver:(RCTPromiseResolveBlock)resolve
29
- rejecter:(RCTPromiseRejectBlock)reject)
29
+ resolve:(RCTPromiseResolveBlock)resolve
30
+ reject:(RCTPromiseRejectBlock)reject)
30
31
 
31
32
  RCT_EXTERN_METHOD(createPin:(NSString)pin
32
33
  withUsername:(NSString)username
33
34
  withToken:(NSString)token
34
- resolver:(RCTPromiseResolveBlock)resolve
35
- rejecter:(RCTPromiseRejectBlock)reject)
35
+ resolve:(RCTPromiseResolveBlock)resolve
36
+ reject:(RCTPromiseRejectBlock)reject)
36
37
 
37
38
  RCT_EXTERN_METHOD(verifyPin:(NSString)pin
38
39
  withUsername:(NSString)username
39
40
  withAction:(NSString)action
40
- resolver:(RCTPromiseResolveBlock)resolve
41
- rejecter:(RCTPromiseRejectBlock)reject)
41
+ resolve:(RCTPromiseResolveBlock)resolve
42
+ reject:(RCTPromiseRejectBlock)reject)
42
43
 
43
44
  RCT_EXTERN_METHOD(deletePin:(NSString)username
44
- resolver:(RCTPromiseResolveBlock)resolve
45
- rejecter:(RCTPromiseRejectBlock)reject)
45
+ resolve:(RCTPromiseResolveBlock)resolve
46
+ reject:(RCTPromiseRejectBlock)reject)
46
47
 
47
48
  RCT_EXTERN_METHOD(getAllPinUsernames:(RCTPromiseResolveBlock)resolve
48
- rejecter:(RCTPromiseRejectBlock)reject)
49
+ reject:(RCTPromiseRejectBlock)reject)
49
50
 
50
51
  @end