react-native-authsignal 1.3.8 → 1.5.0-alpha1
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 +1 -1
- package/android/src/main/java/com/authsignal/react/AuthsignalPackage.kt +2 -1
- package/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.kt +2 -2
- package/android/src/main/java/com/authsignal/react/AuthsignalWhatsappModule.kt +98 -0
- package/ios/Authsignal.xcodeproj/project.pbxproj +4 -0
- package/ios/AuthsignalPasskeyModule.m +1 -0
- package/ios/AuthsignalPasskeyModule.swift +2 -1
- package/ios/AuthsignalWhatsappModule.m +18 -0
- package/ios/AuthsignalWhatsappModule.swift +76 -0
- package/lib/commonjs/index.js +11 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/passkey.js +4 -1
- package/lib/commonjs/passkey.js.map +1 -1
- package/lib/commonjs/whatsapp.js +68 -0
- package/lib/commonjs/whatsapp.js.map +1 -0
- package/lib/module/index.js +11 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/passkey.js +4 -1
- package/lib/module/passkey.js.map +1 -1
- package/lib/module/whatsapp.js +61 -0
- package/lib/module/whatsapp.js.map +1 -0
- package/lib/typescript/index.d.ts +4 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/passkey.d.ts +3 -1
- package/lib/typescript/passkey.d.ts.map +1 -1
- package/lib/typescript/whatsapp.d.ts +18 -0
- package/lib/typescript/whatsapp.d.ts.map +1 -0
- package/package.json +1 -1
- package/react-native-authsignal.podspec +1 -1
- package/src/index.tsx +16 -1
- package/src/passkey.ts +9 -2
- package/src/whatsapp.ts +78 -0
package/android/build.gradle
CHANGED
|
@@ -14,7 +14,8 @@ class AuthsignalPackage : ReactPackage {
|
|
|
14
14
|
AuthsignalPushModule(reactContext),
|
|
15
15
|
AuthsignalDeviceModule(reactContext),
|
|
16
16
|
AuthsignalSMSModule(reactContext),
|
|
17
|
-
AuthsignalTOTPModule(reactContext)
|
|
17
|
+
AuthsignalTOTPModule(reactContext),
|
|
18
|
+
AuthsignalWhatsappModule(reactContext)
|
|
18
19
|
)
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -29,11 +29,11 @@ class AuthsignalPasskeyModule(private val reactContext: ReactApplicationContext)
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
@ReactMethod
|
|
32
|
-
fun initialize(tenantID: String, baseURL: String, promise: Promise) {
|
|
32
|
+
fun initialize(tenantID: String, baseURL: String, deviceID: String?, promise: Promise) {
|
|
33
33
|
val activity = reactContext.currentActivity
|
|
34
34
|
|
|
35
35
|
if (activity != null) {
|
|
36
|
-
authsignal = AuthsignalPasskey(tenantID, baseURL, activity)
|
|
36
|
+
authsignal = AuthsignalPasskey(tenantID, baseURL, activity, deviceID)
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
promise.resolve(null)
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
package com.authsignal.react
|
|
2
|
+
|
|
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
|
+
import com.authsignal.whatsapp.AuthsignalWhatsapp
|
|
9
|
+
import com.facebook.react.bridge.Arguments
|
|
10
|
+
import com.facebook.react.bridge.Promise
|
|
11
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
12
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
13
|
+
import com.facebook.react.bridge.ReactMethod
|
|
14
|
+
import kotlinx.coroutines.CoroutineScope
|
|
15
|
+
import kotlinx.coroutines.Dispatchers
|
|
16
|
+
import kotlinx.coroutines.SupervisorJob
|
|
17
|
+
import kotlinx.coroutines.launch
|
|
18
|
+
import java.util.function.Consumer
|
|
19
|
+
|
|
20
|
+
class AuthsignalWhatsappModule(private val reactContext: ReactApplicationContext) :
|
|
21
|
+
ReactContextBaseJavaModule(
|
|
22
|
+
reactContext
|
|
23
|
+
) {
|
|
24
|
+
private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
|
|
25
|
+
private var authsignal: AuthsignalWhatsapp? = null
|
|
26
|
+
private val defaultError = "unexpected_error"
|
|
27
|
+
|
|
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
|
+
@ReactMethod
|
|
39
|
+
fun initialize(tenantID: String, baseURL: String, promise: Promise) {
|
|
40
|
+
val currentActivity = reactContext.currentActivity
|
|
41
|
+
|
|
42
|
+
if (currentActivity != null) {
|
|
43
|
+
authsignal = AuthsignalWhatsapp(tenantID, baseURL)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
promise.resolve(null)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@ReactMethod
|
|
50
|
+
fun challenge(promise: Promise) {
|
|
51
|
+
launch(promise) {
|
|
52
|
+
val response = it.challenge()
|
|
53
|
+
|
|
54
|
+
if (response.error != null) {
|
|
55
|
+
val errorCode = response.errorCode ?: defaultError
|
|
56
|
+
|
|
57
|
+
promise.reject(errorCode, response.error)
|
|
58
|
+
} else {
|
|
59
|
+
val challengeResponse = response.data
|
|
60
|
+
val map = Arguments.createMap()
|
|
61
|
+
map.putString("challengeId", challengeResponse!!.challengeId)
|
|
62
|
+
promise.resolve(map)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@ReactMethod
|
|
68
|
+
fun verify(code: String, promise: Promise) {
|
|
69
|
+
launch(promise) {
|
|
70
|
+
val response = it.verify(code)
|
|
71
|
+
|
|
72
|
+
if (response.error != null) {
|
|
73
|
+
val errorCode = response.errorCode ?: defaultError
|
|
74
|
+
|
|
75
|
+
promise.reject(errorCode, response.error)
|
|
76
|
+
} else {
|
|
77
|
+
val verifyResponse = response.data
|
|
78
|
+
val map = Arguments.createMap()
|
|
79
|
+
map.putBoolean("isVerified", verifyResponse!!.isVerified)
|
|
80
|
+
map.putString("token", verifyResponse.token)
|
|
81
|
+
map.putString("failureReason", verifyResponse.failureReason)
|
|
82
|
+
promise.resolve(map)
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private fun launch(promise: Promise, fn: suspend (client: AuthsignalWhatsapp) -> Unit) {
|
|
88
|
+
coroutineScope.launch {
|
|
89
|
+
authsignal?.let {
|
|
90
|
+
fn(it)
|
|
91
|
+
} ?: run {
|
|
92
|
+
Log.w("init_error", "AuthsignalWhatsappModule is not initialized.")
|
|
93
|
+
|
|
94
|
+
promise.resolve(null)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
D8EC5CD72A4D1EE90085B442 /* Authsignal-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Authsignal-Bridging-Header.h"; sourceTree = "<group>"; };
|
|
36
36
|
DDDCE5EE2DDD8E5B0095B3F2 /* AuthsignalDeviceModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AuthsignalDeviceModule.m; sourceTree = "<group>"; };
|
|
37
37
|
DDDCE5EF2DDD8E5B0095B3F2 /* AuthsignalDeviceModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthsignalDeviceModule.swift; sourceTree = "<group>"; };
|
|
38
|
+
DDDD1001AAAA1111BBBB2222 /* AuthsignalWhatsappModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AuthsignalWhatsappModule.m; sourceTree = "<group>"; };
|
|
39
|
+
DDDD1002AAAA1111BBBB2222 /* AuthsignalWhatsappModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthsignalWhatsappModule.swift; sourceTree = "<group>"; };
|
|
38
40
|
/* End PBXFileReference section */
|
|
39
41
|
|
|
40
42
|
/* Begin PBXFrameworksBuildPhase section */
|
|
@@ -74,6 +76,8 @@
|
|
|
74
76
|
D8EC5CD42A4D1EE00085B442 /* AuthsignalPushModule.swift */,
|
|
75
77
|
DDDCE5EE2DDD8E5B0095B3F2 /* AuthsignalDeviceModule.m */,
|
|
76
78
|
DDDCE5EF2DDD8E5B0095B3F2 /* AuthsignalDeviceModule.swift */,
|
|
79
|
+
DDDD1001AAAA1111BBBB2222 /* AuthsignalWhatsappModule.m */,
|
|
80
|
+
DDDD1002AAAA1111BBBB2222 /* AuthsignalWhatsappModule.swift */,
|
|
77
81
|
134814211AA4EA7D00B7C361 /* Products */,
|
|
78
82
|
);
|
|
79
83
|
sourceTree = "<group>";
|
|
@@ -13,10 +13,11 @@ class AuthsignalPasskeyModule: NSObject {
|
|
|
13
13
|
@objc func initialize(
|
|
14
14
|
_ tenantID: NSString,
|
|
15
15
|
withBaseURL baseURL: NSString,
|
|
16
|
+
withDeviceID deviceID: NSString?,
|
|
16
17
|
resolver resolve: @escaping RCTPromiseResolveBlock,
|
|
17
18
|
rejecter reject: @escaping RCTPromiseRejectBlock
|
|
18
19
|
) -> Void {
|
|
19
|
-
self.authsignal = AuthsignalPasskey(tenantID: tenantID as String, baseURL: baseURL as String)
|
|
20
|
+
self.authsignal = AuthsignalPasskey(tenantID: tenantID as String, baseURL: baseURL as String, deviceID: deviceID as String?)
|
|
20
21
|
|
|
21
22
|
resolve(nil)
|
|
22
23
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import <Foundation/Foundation.h>
|
|
3
|
+
|
|
4
|
+
@interface RCT_EXTERN_MODULE(AuthsignalWhatsappModule, 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(challenge:(RCTPromiseResolveBlock)resolve
|
|
12
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
13
|
+
|
|
14
|
+
RCT_EXTERN_METHOD(verify:(NSString)code
|
|
15
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
16
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
17
|
+
|
|
18
|
+
@end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import Security
|
|
2
|
+
import Foundation
|
|
3
|
+
import Authsignal
|
|
4
|
+
|
|
5
|
+
@objc(AuthsignalWhatsappModule)
|
|
6
|
+
class AuthsignalWhatsappModule: NSObject {
|
|
7
|
+
var authsignal: AuthsignalWhatsapp?
|
|
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 = AuthsignalWhatsapp(tenantID: tenantID as String, baseURL: baseURL as String)
|
|
20
|
+
|
|
21
|
+
resolve(nil)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@objc func challenge(
|
|
25
|
+
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
26
|
+
rejecter reject: @escaping RCTPromiseRejectBlock
|
|
27
|
+
) -> Void {
|
|
28
|
+
if (authsignal == nil) {
|
|
29
|
+
resolve(nil)
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Task.init {
|
|
34
|
+
let response = await authsignal!.challenge()
|
|
35
|
+
|
|
36
|
+
if (response.error != nil) {
|
|
37
|
+
reject(response.errorCode ?? "unexpected_error", response.error, nil)
|
|
38
|
+
} else {
|
|
39
|
+
let challengeResponse: [String: String?] = [
|
|
40
|
+
"challengeId": response.data!.challengeId,
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
resolve(challengeResponse)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@objc func verify(
|
|
49
|
+
_ code: NSString,
|
|
50
|
+
resolver resolve: @escaping RCTPromiseResolveBlock,
|
|
51
|
+
rejecter reject: @escaping RCTPromiseRejectBlock
|
|
52
|
+
) -> Void {
|
|
53
|
+
if (authsignal == nil) {
|
|
54
|
+
resolve(nil)
|
|
55
|
+
return
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
let codeStr = code as String
|
|
59
|
+
|
|
60
|
+
Task.init {
|
|
61
|
+
let response = await authsignal!.verify(code: codeStr)
|
|
62
|
+
|
|
63
|
+
if (response.error != nil) {
|
|
64
|
+
reject(response.errorCode ?? "unexpected_error", response.error, nil)
|
|
65
|
+
} else {
|
|
66
|
+
let verifyResponse: [String: Any?] = [
|
|
67
|
+
"isVerified": response.data!.isVerified,
|
|
68
|
+
"token": response.data!.token,
|
|
69
|
+
"failureReason": response.data!.failureReason,
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
resolve(verifyResponse)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -24,6 +24,7 @@ var _push = require("./push");
|
|
|
24
24
|
var _sms = require("./sms");
|
|
25
25
|
var _totp = require("./totp");
|
|
26
26
|
var _device = require("./device");
|
|
27
|
+
var _whatsapp = require("./whatsapp");
|
|
27
28
|
var _types = require("./types");
|
|
28
29
|
Object.keys(_types).forEach(function (key) {
|
|
29
30
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -47,6 +48,7 @@ class Authsignal {
|
|
|
47
48
|
let {
|
|
48
49
|
tenantID,
|
|
49
50
|
baseURL = 'https://api.authsignal.com/v1',
|
|
51
|
+
deviceID,
|
|
50
52
|
enableLogging = __DEV__
|
|
51
53
|
} = _ref;
|
|
52
54
|
_defineProperty(this, "tenantID", void 0);
|
|
@@ -58,15 +60,17 @@ class Authsignal {
|
|
|
58
60
|
_defineProperty(this, "device", void 0);
|
|
59
61
|
_defineProperty(this, "sms", void 0);
|
|
60
62
|
_defineProperty(this, "totp", void 0);
|
|
63
|
+
_defineProperty(this, "whatsapp", void 0);
|
|
61
64
|
this.tenantID = tenantID;
|
|
62
65
|
this.baseURL = baseURL;
|
|
63
66
|
this.enableLogging = enableLogging;
|
|
64
|
-
this.
|
|
67
|
+
this.passkey = new _passkey.AuthsignalPasskey({
|
|
65
68
|
tenantID,
|
|
66
69
|
baseURL,
|
|
70
|
+
deviceID,
|
|
67
71
|
enableLogging
|
|
68
72
|
});
|
|
69
|
-
this.
|
|
73
|
+
this.email = new _email.AuthsignalEmail({
|
|
70
74
|
tenantID,
|
|
71
75
|
baseURL,
|
|
72
76
|
enableLogging
|
|
@@ -91,6 +95,11 @@ class Authsignal {
|
|
|
91
95
|
baseURL,
|
|
92
96
|
enableLogging
|
|
93
97
|
});
|
|
98
|
+
this.whatsapp = new _whatsapp.AuthsignalWhatsapp({
|
|
99
|
+
tenantID,
|
|
100
|
+
baseURL,
|
|
101
|
+
enableLogging
|
|
102
|
+
});
|
|
94
103
|
}
|
|
95
104
|
async setToken(token) {
|
|
96
105
|
await AuthsignalModule.setToken(token);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AuthsignalModule","NativeModules","Proxy","get","Error","LINKING_ERROR","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","
|
|
1
|
+
{"version":3,"names":["AuthsignalModule","NativeModules","Proxy","get","Error","LINKING_ERROR","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","__DEV__","passkey","AuthsignalPasskey","email","AuthsignalEmail","push","AuthsignalPush","device","AuthsignalDevice","sms","AuthsignalSms","totp","AuthsignalTotp","whatsapp","AuthsignalWhatsapp","setToken","token","launch","url","Platform","OS","Promise","resolve","reject","callback","error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAAwB;AAGxB,MAAMA,gBAAgB,GAAGC,0BAAa,CAACD,gBAAgB,GACnDC,0BAAa,CAACD,gBAAgB,GAC9B,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACC,oBAAa,CAAC;EAChC;AACF,CAAC,CACF;AASE,MAAMC,UAAU,CAAC;EAatBC,WAAW,OAKS;IAAA,IALR;MACVC,QAAQ;MACRC,OAAO,GAAG,+BAA+B;MACzCC,QAAQ;MACRC,aAAa,GAAGC;IACD,CAAC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAChB,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElC,IAAI,CAACE,OAAO,GAAG,IAAIC,0BAAiB,CAAC;MACnCN,QAAQ;MACRC,OAAO;MACPC,QAAQ;MACRC;IACF,CAAC,CAAC;IAEF,IAAI,CAACI,KAAK,GAAG,IAAIC,sBAAe,CAAC;MAAER,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC,CAAC;IACtE,IAAI,CAACM,IAAI,GAAG,IAAIC,oBAAc,CAAC;MAAEV,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC,CAAC;IACpE,IAAI,CAACQ,MAAM,GAAG,IAAIC,wBAAgB,CAAC;MAAEZ,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC,CAAC;IACxE,IAAI,CAACU,GAAG,GAAG,IAAIC,kBAAa,CAAC;MAAEd,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC,CAAC;IAClE,IAAI,CAACY,IAAI,GAAG,IAAIC,oBAAc,CAAC;MAAEhB,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC,CAAC;IACpE,IAAI,CAACc,QAAQ,GAAG,IAAIC,4BAAkB,CAAC;MACrClB,QAAQ;MACRC,OAAO;MACPE;IACF,CAAC,CAAC;EACJ;EAEA,MAAMgB,QAAQ,CAACC,KAAa,EAAiB;IAC3C,MAAM5B,gBAAgB,CAAC2B,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAM,CAACC,GAAW,EAA0B;IAChD,OAAO,MAAMD,MAAM,CAACC,GAAG,CAAC;EAC1B;AACF;AAAC;AAEM,SAASD,MAAM,CAACC,GAAW,EAA0B;EAC1D,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOhC,gBAAgB,CAAC6B,MAAM,CAACC,GAAG,CAAC;EACrC,CAAC,MAAM;IACL,OAAO,IAAIG,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,QAAQ,GAAG,CAACC,KAAU,EAAET,KAAa,KAAK;QAC9C,IAAIA,KAAK,EAAE;UACTM,OAAO,CAACN,KAAK,CAAC;QAChB,CAAC,MAAM,IAAIS,KAAK,EAAE;UAChB,IAAIA,KAAK,CAACA,KAAK,KAAK,gBAAgB,EAAE;YACpCH,OAAO,CAAC,IAAI,CAAC;UACf,CAAC,MAAM;YACLC,MAAM,CAACE,KAAK,CAAC;UACf;QACF,CAAC,MAAM;UACLF,MAAM,CAAC,kBAAkB,CAAC;QAC5B;MACF,CAAC;MAEDnC,gBAAgB,CAAC6B,MAAM,CAACC,GAAG,EAAEM,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
|
package/lib/commonjs/passkey.js
CHANGED
|
@@ -19,13 +19,16 @@ class AuthsignalPasskey {
|
|
|
19
19
|
let {
|
|
20
20
|
tenantID,
|
|
21
21
|
baseURL,
|
|
22
|
+
deviceID,
|
|
22
23
|
enableLogging
|
|
23
24
|
} = _ref;
|
|
24
25
|
_defineProperty(this, "tenantID", void 0);
|
|
25
26
|
_defineProperty(this, "baseURL", void 0);
|
|
27
|
+
_defineProperty(this, "deviceID", void 0);
|
|
26
28
|
_defineProperty(this, "enableLogging", void 0);
|
|
27
29
|
this.tenantID = tenantID;
|
|
28
30
|
this.baseURL = baseURL;
|
|
31
|
+
this.deviceID = deviceID;
|
|
29
32
|
this.enableLogging = enableLogging;
|
|
30
33
|
}
|
|
31
34
|
async signUp() {
|
|
@@ -97,7 +100,7 @@ class AuthsignalPasskey {
|
|
|
97
100
|
if (initialized) {
|
|
98
101
|
return;
|
|
99
102
|
}
|
|
100
|
-
await AuthsignalPasskeyModule.initialize(this.tenantID, this.baseURL);
|
|
103
|
+
await AuthsignalPasskeyModule.initialize(this.tenantID, this.baseURL, this.deviceID);
|
|
101
104
|
initialized = true;
|
|
102
105
|
}
|
|
103
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["initialized","autofillRequestPending","AuthsignalPasskeyModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","username","displayName","ensureModuleIsInitialized","data","ex","console","log","handleErrorCodes","signIn","action","autofill","preferImmediatelyAvailableCredentials","Platform","OS","cancel","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":";;;;;;AAAA;AACA;AAA0D;
|
|
1
|
+
{"version":3,"names":["initialized","autofillRequestPending","AuthsignalPasskeyModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalPasskey","constructor","tenantID","baseURL","deviceID","enableLogging","signUp","token","username","displayName","ensureModuleIsInitialized","data","ex","console","log","handleErrorCodes","signIn","action","autofill","preferImmediatelyAvailableCredentials","Platform","OS","cancel","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AuthsignalWhatsapp = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _error = require("./error");
|
|
9
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
+
let initialized = false;
|
|
11
|
+
const AuthsignalWhatsappModule = _reactNative.NativeModules.AuthsignalWhatsappModule ? _reactNative.NativeModules.AuthsignalWhatsappModule : new Proxy({}, {
|
|
12
|
+
get() {
|
|
13
|
+
throw new Error(_error.LINKING_ERROR);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
class AuthsignalWhatsapp {
|
|
17
|
+
constructor(_ref) {
|
|
18
|
+
let {
|
|
19
|
+
tenantID,
|
|
20
|
+
baseURL,
|
|
21
|
+
enableLogging
|
|
22
|
+
} = _ref;
|
|
23
|
+
_defineProperty(this, "tenantID", void 0);
|
|
24
|
+
_defineProperty(this, "baseURL", void 0);
|
|
25
|
+
_defineProperty(this, "enableLogging", void 0);
|
|
26
|
+
this.tenantID = tenantID;
|
|
27
|
+
this.baseURL = baseURL;
|
|
28
|
+
this.enableLogging = enableLogging;
|
|
29
|
+
}
|
|
30
|
+
async challenge() {
|
|
31
|
+
await this.ensureModuleIsInitialized();
|
|
32
|
+
try {
|
|
33
|
+
await AuthsignalWhatsappModule.challenge();
|
|
34
|
+
return {};
|
|
35
|
+
} catch (ex) {
|
|
36
|
+
return this.handleError(ex);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async verify(_ref2) {
|
|
40
|
+
let {
|
|
41
|
+
code
|
|
42
|
+
} = _ref2;
|
|
43
|
+
await this.ensureModuleIsInitialized();
|
|
44
|
+
try {
|
|
45
|
+
const data = await AuthsignalWhatsappModule.verify(code);
|
|
46
|
+
return {
|
|
47
|
+
data
|
|
48
|
+
};
|
|
49
|
+
} catch (ex) {
|
|
50
|
+
return this.handleError(ex);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async ensureModuleIsInitialized() {
|
|
54
|
+
if (initialized) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
await AuthsignalWhatsappModule.initialize(this.tenantID, this.baseURL);
|
|
58
|
+
initialized = true;
|
|
59
|
+
}
|
|
60
|
+
handleError(ex) {
|
|
61
|
+
if (this.enableLogging) {
|
|
62
|
+
console.log(ex);
|
|
63
|
+
}
|
|
64
|
+
return (0, _error.handleErrorCodes)(ex);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.AuthsignalWhatsapp = AuthsignalWhatsapp;
|
|
68
|
+
//# sourceMappingURL=whatsapp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["initialized","AuthsignalWhatsappModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalWhatsapp","constructor","tenantID","baseURL","enableLogging","challenge","ensureModuleIsInitialized","ex","handleError","verify","code","data","initialize","console","log","handleErrorCodes"],"sourceRoot":"../../src","sources":["whatsapp.ts"],"mappings":";;;;;;AAAA;AACA;AAA0D;AAS1D,IAAIA,WAAW,GAAG,KAAK;AAEvB,MAAMC,wBAAwB,GAAGC,0BAAa,CAACD,wBAAwB,GACnEC,0BAAa,CAACD,wBAAwB,GACtC,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACC,oBAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEE,MAAMC,kBAAkB,CAAC;EAK9BC,WAAW,OAAwD;IAAA,IAAvD;MAAEC,QAAQ;MAAEC,OAAO;MAAEC;IAA+B,CAAC;IAAA;IAAA;IAAA;IAC/D,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,SAAS,GAAsC;IACnD,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMZ,wBAAwB,CAACW,SAAS,EAAE;MAE1C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOE,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,MAAM,QAEiD;IAAA,IAFhD;MACXC;IACW,CAAC;IACZ,MAAM,IAAI,CAACJ,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMK,IAAI,GAAG,MAAMjB,wBAAwB,CAACe,MAAM,CAACC,IAAI,CAAC;MAExD,OAAO;QAAEC;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOJ,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAcD,yBAAyB,GAAG;IACxC,IAAIb,WAAW,EAAE;MACf;IACF;IAEA,MAAMC,wBAAwB,CAACkB,UAAU,CAAC,IAAI,CAACV,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAEtEV,WAAW,GAAG,IAAI;EACpB;EAEQe,WAAW,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACH,aAAa,EAAE;MACtBS,OAAO,CAACC,GAAG,CAACP,EAAE,CAAC;IACjB;IAEA,OAAO,IAAAQ,uBAAgB,EAACR,EAAE,CAAC;EAC7B;AACF;AAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { AuthsignalPush } from './push';
|
|
|
7
7
|
import { AuthsignalSms } from './sms';
|
|
8
8
|
import { AuthsignalTotp } from './totp';
|
|
9
9
|
import { AuthsignalDevice } from './device';
|
|
10
|
+
import { AuthsignalWhatsapp } from './whatsapp';
|
|
10
11
|
export * from './types';
|
|
11
12
|
export { ErrorCode } from './error';
|
|
12
13
|
const AuthsignalModule = NativeModules.AuthsignalModule ? NativeModules.AuthsignalModule : new Proxy({}, {
|
|
@@ -19,6 +20,7 @@ export class Authsignal {
|
|
|
19
20
|
let {
|
|
20
21
|
tenantID,
|
|
21
22
|
baseURL = 'https://api.authsignal.com/v1',
|
|
23
|
+
deviceID,
|
|
22
24
|
enableLogging = __DEV__
|
|
23
25
|
} = _ref;
|
|
24
26
|
_defineProperty(this, "tenantID", void 0);
|
|
@@ -30,15 +32,17 @@ export class Authsignal {
|
|
|
30
32
|
_defineProperty(this, "device", void 0);
|
|
31
33
|
_defineProperty(this, "sms", void 0);
|
|
32
34
|
_defineProperty(this, "totp", void 0);
|
|
35
|
+
_defineProperty(this, "whatsapp", void 0);
|
|
33
36
|
this.tenantID = tenantID;
|
|
34
37
|
this.baseURL = baseURL;
|
|
35
38
|
this.enableLogging = enableLogging;
|
|
36
|
-
this.
|
|
39
|
+
this.passkey = new AuthsignalPasskey({
|
|
37
40
|
tenantID,
|
|
38
41
|
baseURL,
|
|
42
|
+
deviceID,
|
|
39
43
|
enableLogging
|
|
40
44
|
});
|
|
41
|
-
this.
|
|
45
|
+
this.email = new AuthsignalEmail({
|
|
42
46
|
tenantID,
|
|
43
47
|
baseURL,
|
|
44
48
|
enableLogging
|
|
@@ -63,6 +67,11 @@ export class Authsignal {
|
|
|
63
67
|
baseURL,
|
|
64
68
|
enableLogging
|
|
65
69
|
});
|
|
70
|
+
this.whatsapp = new AuthsignalWhatsapp({
|
|
71
|
+
tenantID,
|
|
72
|
+
baseURL,
|
|
73
|
+
enableLogging
|
|
74
|
+
});
|
|
66
75
|
}
|
|
67
76
|
async setToken(token) {
|
|
68
77
|
await AuthsignalModule.setToken(token);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","AuthsignalEmail","AuthsignalPasskey","AuthsignalPush","AuthsignalSms","AuthsignalTotp","AuthsignalDevice","ErrorCode","AuthsignalModule","Proxy","get","Error","Authsignal","constructor","tenantID","baseURL","enableLogging","__DEV__","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","AuthsignalEmail","AuthsignalPasskey","AuthsignalPush","AuthsignalSms","AuthsignalTotp","AuthsignalDevice","AuthsignalWhatsapp","ErrorCode","AuthsignalModule","Proxy","get","Error","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","__DEV__","passkey","email","push","device","sms","totp","whatsapp","setToken","token","launch","url","OS","Promise","resolve","reject","callback","error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
|
package/lib/module/passkey.js
CHANGED
|
@@ -13,13 +13,16 @@ export class AuthsignalPasskey {
|
|
|
13
13
|
let {
|
|
14
14
|
tenantID,
|
|
15
15
|
baseURL,
|
|
16
|
+
deviceID,
|
|
16
17
|
enableLogging
|
|
17
18
|
} = _ref;
|
|
18
19
|
_defineProperty(this, "tenantID", void 0);
|
|
19
20
|
_defineProperty(this, "baseURL", void 0);
|
|
21
|
+
_defineProperty(this, "deviceID", void 0);
|
|
20
22
|
_defineProperty(this, "enableLogging", void 0);
|
|
21
23
|
this.tenantID = tenantID;
|
|
22
24
|
this.baseURL = baseURL;
|
|
25
|
+
this.deviceID = deviceID;
|
|
23
26
|
this.enableLogging = enableLogging;
|
|
24
27
|
}
|
|
25
28
|
async signUp() {
|
|
@@ -91,7 +94,7 @@ export class AuthsignalPasskey {
|
|
|
91
94
|
if (initialized) {
|
|
92
95
|
return;
|
|
93
96
|
}
|
|
94
|
-
await AuthsignalPasskeyModule.initialize(this.tenantID, this.baseURL);
|
|
97
|
+
await AuthsignalPasskeyModule.initialize(this.tenantID, this.baseURL, this.deviceID);
|
|
95
98
|
initialized = true;
|
|
96
99
|
}
|
|
97
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","handleErrorCodes","initialized","autofillRequestPending","AuthsignalPasskeyModule","Proxy","get","Error","AuthsignalPasskey","constructor","tenantID","baseURL","enableLogging","signUp","token","username","displayName","ensureModuleIsInitialized","data","ex","console","log","signIn","action","autofill","preferImmediatelyAvailableCredentials","OS","cancel","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":";AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,SAAS;
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","handleErrorCodes","initialized","autofillRequestPending","AuthsignalPasskeyModule","Proxy","get","Error","AuthsignalPasskey","constructor","tenantID","baseURL","deviceID","enableLogging","signUp","token","username","displayName","ensureModuleIsInitialized","data","ex","console","log","signIn","action","autofill","preferImmediatelyAvailableCredentials","OS","cancel","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
import { NativeModules } from 'react-native';
|
|
3
|
+
import { handleErrorCodes, LINKING_ERROR } from './error';
|
|
4
|
+
let initialized = false;
|
|
5
|
+
const AuthsignalWhatsappModule = NativeModules.AuthsignalWhatsappModule ? NativeModules.AuthsignalWhatsappModule : new Proxy({}, {
|
|
6
|
+
get() {
|
|
7
|
+
throw new Error(LINKING_ERROR);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
export class AuthsignalWhatsapp {
|
|
11
|
+
constructor(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
tenantID,
|
|
14
|
+
baseURL,
|
|
15
|
+
enableLogging
|
|
16
|
+
} = _ref;
|
|
17
|
+
_defineProperty(this, "tenantID", void 0);
|
|
18
|
+
_defineProperty(this, "baseURL", void 0);
|
|
19
|
+
_defineProperty(this, "enableLogging", void 0);
|
|
20
|
+
this.tenantID = tenantID;
|
|
21
|
+
this.baseURL = baseURL;
|
|
22
|
+
this.enableLogging = enableLogging;
|
|
23
|
+
}
|
|
24
|
+
async challenge() {
|
|
25
|
+
await this.ensureModuleIsInitialized();
|
|
26
|
+
try {
|
|
27
|
+
await AuthsignalWhatsappModule.challenge();
|
|
28
|
+
return {};
|
|
29
|
+
} catch (ex) {
|
|
30
|
+
return this.handleError(ex);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async verify(_ref2) {
|
|
34
|
+
let {
|
|
35
|
+
code
|
|
36
|
+
} = _ref2;
|
|
37
|
+
await this.ensureModuleIsInitialized();
|
|
38
|
+
try {
|
|
39
|
+
const data = await AuthsignalWhatsappModule.verify(code);
|
|
40
|
+
return {
|
|
41
|
+
data
|
|
42
|
+
};
|
|
43
|
+
} catch (ex) {
|
|
44
|
+
return this.handleError(ex);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async ensureModuleIsInitialized() {
|
|
48
|
+
if (initialized) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
await AuthsignalWhatsappModule.initialize(this.tenantID, this.baseURL);
|
|
52
|
+
initialized = true;
|
|
53
|
+
}
|
|
54
|
+
handleError(ex) {
|
|
55
|
+
if (this.enableLogging) {
|
|
56
|
+
console.log(ex);
|
|
57
|
+
}
|
|
58
|
+
return handleErrorCodes(ex);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=whatsapp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","handleErrorCodes","LINKING_ERROR","initialized","AuthsignalWhatsappModule","Proxy","get","Error","AuthsignalWhatsapp","constructor","tenantID","baseURL","enableLogging","challenge","ensureModuleIsInitialized","ex","handleError","verify","code","data","initialize","console","log"],"sourceRoot":"../../src","sources":["whatsapp.ts"],"mappings":";AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,SAAS;AASzD,IAAIC,WAAW,GAAG,KAAK;AAEvB,MAAMC,wBAAwB,GAAGJ,aAAa,CAACI,wBAAwB,GACnEJ,aAAa,CAACI,wBAAwB,GACtC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACL,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEL,OAAO,MAAMM,kBAAkB,CAAC;EAK9BC,WAAW,OAAwD;IAAA,IAAvD;MAAEC,QAAQ;MAAEC,OAAO;MAAEC;IAA+B,CAAC;IAAA;IAAA;IAAA;IAC/D,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,SAAS,GAAsC;IACnD,MAAM,IAAI,CAACC,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMV,wBAAwB,CAACS,SAAS,EAAE;MAE1C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,OAAOE,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAME,MAAM,QAEiD;IAAA,IAFhD;MACXC;IACW,CAAC;IACZ,MAAM,IAAI,CAACJ,yBAAyB,EAAE;IAEtC,IAAI;MACF,MAAMK,IAAI,GAAG,MAAMf,wBAAwB,CAACa,MAAM,CAACC,IAAI,CAAC;MAExD,OAAO;QAAEC;MAAK,CAAC;IACjB,CAAC,CAAC,OAAOJ,EAAE,EAAE;MACX,OAAO,IAAI,CAACC,WAAW,CAACD,EAAE,CAAC;IAC7B;EACF;EAEA,MAAcD,yBAAyB,GAAG;IACxC,IAAIX,WAAW,EAAE;MACf;IACF;IAEA,MAAMC,wBAAwB,CAACgB,UAAU,CAAC,IAAI,CAACV,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC;IAEtER,WAAW,GAAG,IAAI;EACpB;EAEQa,WAAW,CAACD,EAAW,EAAE;IAC/B,IAAI,IAAI,CAACH,aAAa,EAAE;MACtBS,OAAO,CAACC,GAAG,CAACP,EAAE,CAAC;IACjB;IAEA,OAAOd,gBAAgB,CAACc,EAAE,CAAC;EAC7B;AACF"}
|
|
@@ -4,11 +4,13 @@ import { AuthsignalPush } from './push';
|
|
|
4
4
|
import { AuthsignalSms } from './sms';
|
|
5
5
|
import { AuthsignalTotp } from './totp';
|
|
6
6
|
import { AuthsignalDevice } from './device';
|
|
7
|
+
import { AuthsignalWhatsapp } from './whatsapp';
|
|
7
8
|
export * from './types';
|
|
8
9
|
export { ErrorCode } from './error';
|
|
9
10
|
interface ConstructorArgs {
|
|
10
11
|
tenantID: string;
|
|
11
12
|
baseURL?: string;
|
|
13
|
+
deviceID?: string;
|
|
12
14
|
enableLogging?: boolean;
|
|
13
15
|
}
|
|
14
16
|
export declare class Authsignal {
|
|
@@ -21,7 +23,8 @@ export declare class Authsignal {
|
|
|
21
23
|
device: AuthsignalDevice;
|
|
22
24
|
sms: AuthsignalSms;
|
|
23
25
|
totp: AuthsignalTotp;
|
|
24
|
-
|
|
26
|
+
whatsapp: AuthsignalWhatsapp;
|
|
27
|
+
constructor({ tenantID, baseURL, deviceID, enableLogging, }: ConstructorArgs);
|
|
25
28
|
setToken(token: string): Promise<void>;
|
|
26
29
|
launch(url: string): Promise<string | null>;
|
|
27
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAapC,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,UAAU;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IAEvB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;gBAEjB,EACV,QAAQ,EACR,OAAyC,EACzC,QAAQ,EACR,aAAuB,GACxB,EAAE,eAAe;IAwBZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGlD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsB1D"}
|
|
@@ -2,6 +2,7 @@ import type { AuthsignalResponse, SignInResponse, SignUpResponse } from './types
|
|
|
2
2
|
interface ConstructorArgs {
|
|
3
3
|
tenantID: string;
|
|
4
4
|
baseURL: string;
|
|
5
|
+
deviceID?: string;
|
|
5
6
|
enableLogging: boolean;
|
|
6
7
|
}
|
|
7
8
|
interface PasskeySignUpInput {
|
|
@@ -18,8 +19,9 @@ interface PasskeySignInInput {
|
|
|
18
19
|
export declare class AuthsignalPasskey {
|
|
19
20
|
tenantID: string;
|
|
20
21
|
baseURL: string;
|
|
22
|
+
deviceID?: string;
|
|
21
23
|
enableLogging: boolean;
|
|
22
|
-
constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
|
|
24
|
+
constructor({ tenantID, baseURL, deviceID, enableLogging }: ConstructorArgs);
|
|
23
25
|
signUp({ token, username, displayName, }?: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>>;
|
|
24
26
|
signIn({ action, token, autofill, preferImmediatelyAvailableCredentials, }?: PasskeySignInInput): Promise<AuthsignalResponse<SignInResponse>>;
|
|
25
27
|
cancel(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/passkey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD;AAgBD,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/passkey.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD;AAgBD,qBAAa,iBAAiB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,eAAe;IAOrE,MAAM,CAAC,EACX,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAoBlE,MAAM,CAAC,EACX,MAAM,EACN,KAAK,EACL,QAAgB,EAChB,qCAA4C,GAC7C,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IA6CxE,MAAM;IAMA,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;YAM/B,yBAAyB;CAaxC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AuthsignalResponse, VerifyInput, VerifyResponse } from './types';
|
|
2
|
+
interface ConstructorArgs {
|
|
3
|
+
tenantID: string;
|
|
4
|
+
baseURL: string;
|
|
5
|
+
enableLogging: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class AuthsignalWhatsapp {
|
|
8
|
+
tenantID: string;
|
|
9
|
+
baseURL: string;
|
|
10
|
+
enableLogging: boolean;
|
|
11
|
+
constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
|
|
12
|
+
challenge(): Promise<AuthsignalResponse<void>>;
|
|
13
|
+
verify({ code, }: VerifyInput): Promise<AuthsignalResponse<VerifyResponse>>;
|
|
14
|
+
private ensureModuleIsInitialized;
|
|
15
|
+
private handleError;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=whatsapp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/whatsapp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/E,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAeD,qBAAa,kBAAkB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;gBAEX,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,eAAe;IAM3D,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAY9C,MAAM,CAAC,EACX,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAY9C,yBAAyB;IAUvC,OAAO,CAAC,WAAW;CAOpB"}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
18
18
|
|
|
19
19
|
s.dependency "React-Core"
|
|
20
|
-
s.dependency 'Authsignal', '1.
|
|
20
|
+
s.dependency 'Authsignal', '1.4.0'
|
|
21
21
|
|
|
22
22
|
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
23
23
|
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
package/src/index.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import { AuthsignalPush } from './push';
|
|
|
6
6
|
import { AuthsignalSms } from './sms';
|
|
7
7
|
import { AuthsignalTotp } from './totp';
|
|
8
8
|
import { AuthsignalDevice } from './device';
|
|
9
|
+
import { AuthsignalWhatsapp } from './whatsapp';
|
|
9
10
|
|
|
10
11
|
export * from './types';
|
|
11
12
|
export { ErrorCode } from './error';
|
|
@@ -24,6 +25,7 @@ const AuthsignalModule = NativeModules.AuthsignalModule
|
|
|
24
25
|
interface ConstructorArgs {
|
|
25
26
|
tenantID: string;
|
|
26
27
|
baseURL?: string;
|
|
28
|
+
deviceID?: string;
|
|
27
29
|
enableLogging?: boolean;
|
|
28
30
|
}
|
|
29
31
|
|
|
@@ -38,22 +40,35 @@ export class Authsignal {
|
|
|
38
40
|
device: AuthsignalDevice;
|
|
39
41
|
sms: AuthsignalSms;
|
|
40
42
|
totp: AuthsignalTotp;
|
|
43
|
+
whatsapp: AuthsignalWhatsapp;
|
|
41
44
|
|
|
42
45
|
constructor({
|
|
43
46
|
tenantID,
|
|
44
47
|
baseURL = 'https://api.authsignal.com/v1',
|
|
48
|
+
deviceID,
|
|
45
49
|
enableLogging = __DEV__,
|
|
46
50
|
}: ConstructorArgs) {
|
|
47
51
|
this.tenantID = tenantID;
|
|
48
52
|
this.baseURL = baseURL;
|
|
49
53
|
this.enableLogging = enableLogging;
|
|
50
54
|
|
|
55
|
+
this.passkey = new AuthsignalPasskey({
|
|
56
|
+
tenantID,
|
|
57
|
+
baseURL,
|
|
58
|
+
deviceID,
|
|
59
|
+
enableLogging,
|
|
60
|
+
});
|
|
61
|
+
|
|
51
62
|
this.email = new AuthsignalEmail({ tenantID, baseURL, enableLogging });
|
|
52
|
-
this.passkey = new AuthsignalPasskey({ tenantID, baseURL, enableLogging });
|
|
53
63
|
this.push = new AuthsignalPush({ tenantID, baseURL, enableLogging });
|
|
54
64
|
this.device = new AuthsignalDevice({ tenantID, baseURL, enableLogging });
|
|
55
65
|
this.sms = new AuthsignalSms({ tenantID, baseURL, enableLogging });
|
|
56
66
|
this.totp = new AuthsignalTotp({ tenantID, baseURL, enableLogging });
|
|
67
|
+
this.whatsapp = new AuthsignalWhatsapp({
|
|
68
|
+
tenantID,
|
|
69
|
+
baseURL,
|
|
70
|
+
enableLogging,
|
|
71
|
+
});
|
|
57
72
|
}
|
|
58
73
|
|
|
59
74
|
async setToken(token: string): Promise<void> {
|
package/src/passkey.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type {
|
|
|
9
9
|
interface ConstructorArgs {
|
|
10
10
|
tenantID: string;
|
|
11
11
|
baseURL: string;
|
|
12
|
+
deviceID?: string;
|
|
12
13
|
enableLogging: boolean;
|
|
13
14
|
}
|
|
14
15
|
|
|
@@ -42,11 +43,13 @@ const AuthsignalPasskeyModule = NativeModules.AuthsignalPasskeyModule
|
|
|
42
43
|
export class AuthsignalPasskey {
|
|
43
44
|
tenantID: string;
|
|
44
45
|
baseURL: string;
|
|
46
|
+
deviceID?: string;
|
|
45
47
|
enableLogging: boolean;
|
|
46
48
|
|
|
47
|
-
constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs) {
|
|
49
|
+
constructor({ tenantID, baseURL, deviceID, enableLogging }: ConstructorArgs) {
|
|
48
50
|
this.tenantID = tenantID;
|
|
49
51
|
this.baseURL = baseURL;
|
|
52
|
+
this.deviceID = deviceID;
|
|
50
53
|
this.enableLogging = enableLogging;
|
|
51
54
|
}
|
|
52
55
|
|
|
@@ -141,7 +144,11 @@ export class AuthsignalPasskey {
|
|
|
141
144
|
return;
|
|
142
145
|
}
|
|
143
146
|
|
|
144
|
-
await AuthsignalPasskeyModule.initialize(
|
|
147
|
+
await AuthsignalPasskeyModule.initialize(
|
|
148
|
+
this.tenantID,
|
|
149
|
+
this.baseURL,
|
|
150
|
+
this.deviceID
|
|
151
|
+
);
|
|
145
152
|
|
|
146
153
|
initialized = true;
|
|
147
154
|
}
|
package/src/whatsapp.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
import { handleErrorCodes, LINKING_ERROR } from './error';
|
|
3
|
+
import type { AuthsignalResponse, VerifyInput, VerifyResponse } from './types';
|
|
4
|
+
|
|
5
|
+
interface ConstructorArgs {
|
|
6
|
+
tenantID: string;
|
|
7
|
+
baseURL: string;
|
|
8
|
+
enableLogging: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let initialized = false;
|
|
12
|
+
|
|
13
|
+
const AuthsignalWhatsappModule = NativeModules.AuthsignalWhatsappModule
|
|
14
|
+
? NativeModules.AuthsignalWhatsappModule
|
|
15
|
+
: new Proxy(
|
|
16
|
+
{},
|
|
17
|
+
{
|
|
18
|
+
get() {
|
|
19
|
+
throw new Error(LINKING_ERROR);
|
|
20
|
+
},
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
export class AuthsignalWhatsapp {
|
|
25
|
+
tenantID: string;
|
|
26
|
+
baseURL: string;
|
|
27
|
+
enableLogging: boolean;
|
|
28
|
+
|
|
29
|
+
constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs) {
|
|
30
|
+
this.tenantID = tenantID;
|
|
31
|
+
this.baseURL = baseURL;
|
|
32
|
+
this.enableLogging = enableLogging;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async challenge(): Promise<AuthsignalResponse<void>> {
|
|
36
|
+
await this.ensureModuleIsInitialized();
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
await AuthsignalWhatsappModule.challenge();
|
|
40
|
+
|
|
41
|
+
return {};
|
|
42
|
+
} catch (ex) {
|
|
43
|
+
return this.handleError(ex);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async verify({
|
|
48
|
+
code,
|
|
49
|
+
}: VerifyInput): Promise<AuthsignalResponse<VerifyResponse>> {
|
|
50
|
+
await this.ensureModuleIsInitialized();
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
const data = await AuthsignalWhatsappModule.verify(code);
|
|
54
|
+
|
|
55
|
+
return { data };
|
|
56
|
+
} catch (ex) {
|
|
57
|
+
return this.handleError(ex);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private async ensureModuleIsInitialized() {
|
|
62
|
+
if (initialized) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
await AuthsignalWhatsappModule.initialize(this.tenantID, this.baseURL);
|
|
67
|
+
|
|
68
|
+
initialized = true;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private handleError(ex: unknown) {
|
|
72
|
+
if (this.enableLogging) {
|
|
73
|
+
console.log(ex);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return handleErrorCodes(ex);
|
|
77
|
+
}
|
|
78
|
+
}
|