react-native-authsignal 1.4.0 → 1.5.0-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,5 +77,5 @@ dependencies {
77
77
 
78
78
  implementation "androidx.browser:browser:1.2.0"
79
79
 
80
- implementation("com.authsignal:authsignal-android:2.3.1")
80
+ implementation("com.authsignal:authsignal-android:2.4.0-alpha4")
81
81
  }
@@ -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
 
@@ -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>";
@@ -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
+ }
@@ -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;
@@ -59,6 +60,7 @@ class Authsignal {
59
60
  _defineProperty(this, "device", void 0);
60
61
  _defineProperty(this, "sms", void 0);
61
62
  _defineProperty(this, "totp", void 0);
63
+ _defineProperty(this, "whatsapp", void 0);
62
64
  this.tenantID = tenantID;
63
65
  this.baseURL = baseURL;
64
66
  this.enableLogging = enableLogging;
@@ -93,6 +95,11 @@ class Authsignal {
93
95
  baseURL,
94
96
  enableLogging
95
97
  });
98
+ this.whatsapp = new _whatsapp.AuthsignalWhatsapp({
99
+ tenantID,
100
+ baseURL,
101
+ enableLogging
102
+ });
96
103
  }
97
104
  async setToken(token) {
98
105
  await AuthsignalModule.setToken(token);
@@ -1 +1 @@
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","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;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;EAYtBC,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;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;EACtE;EAEA,MAAMc,QAAQ,CAACC,KAAa,EAAiB;IAC3C,MAAM1B,gBAAgB,CAACyB,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,OAAO9B,gBAAgB,CAAC2B,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;MAEDjC,gBAAgB,CAAC2B,MAAM,CAACC,GAAG,EAAEM,QAAQ,CAAC;IACxC,CAAC,CAAC;EACJ;AACF"}
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"}
@@ -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"}
@@ -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({}, {
@@ -31,6 +32,7 @@ export class Authsignal {
31
32
  _defineProperty(this, "device", void 0);
32
33
  _defineProperty(this, "sms", void 0);
33
34
  _defineProperty(this, "totp", void 0);
35
+ _defineProperty(this, "whatsapp", void 0);
34
36
  this.tenantID = tenantID;
35
37
  this.baseURL = baseURL;
36
38
  this.enableLogging = enableLogging;
@@ -65,6 +67,11 @@ export class Authsignal {
65
67
  baseURL,
66
68
  enableLogging
67
69
  });
70
+ this.whatsapp = new AuthsignalWhatsapp({
71
+ tenantID,
72
+ baseURL,
73
+ enableLogging
74
+ });
68
75
  }
69
76
  async setToken(token) {
70
77
  await AuthsignalModule.setToken(token);
@@ -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","deviceID","enableLogging","__DEV__","passkey","email","push","device","sms","totp","setToken","token","launch","url","OS","Promise","resolve","reject","callback","error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
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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"}
@@ -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,6 +4,7 @@ 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 {
@@ -22,6 +23,7 @@ export declare class Authsignal {
22
23
  device: AuthsignalDevice;
23
24
  sms: AuthsignalSms;
24
25
  totp: AuthsignalTotp;
26
+ whatsapp: AuthsignalWhatsapp;
25
27
  constructor({ tenantID, baseURL, deviceID, enableLogging, }: ConstructorArgs);
26
28
  setToken(token: string): Promise<void>;
27
29
  launch(url: string): Promise<string | null>;
@@ -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;AAE5C,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;gBAET,EACV,QAAQ,EACR,OAAyC,EACzC,QAAQ,EACR,aAAuB,GACxB,EAAE,eAAe;IAmBZ,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"}
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"}
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-authsignal",
3
- "version": "1.4.0",
3
+ "version": "1.5.0-alpha2",
4
4
  "description": "The official Authsignal React Native library.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -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.3.0'
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';
@@ -39,6 +40,7 @@ export class Authsignal {
39
40
  device: AuthsignalDevice;
40
41
  sms: AuthsignalSms;
41
42
  totp: AuthsignalTotp;
43
+ whatsapp: AuthsignalWhatsapp;
42
44
 
43
45
  constructor({
44
46
  tenantID,
@@ -62,6 +64,11 @@ export class Authsignal {
62
64
  this.device = new AuthsignalDevice({ tenantID, baseURL, enableLogging });
63
65
  this.sms = new AuthsignalSms({ tenantID, baseURL, enableLogging });
64
66
  this.totp = new AuthsignalTotp({ tenantID, baseURL, enableLogging });
67
+ this.whatsapp = new AuthsignalWhatsapp({
68
+ tenantID,
69
+ baseURL,
70
+ enableLogging,
71
+ });
65
72
  }
66
73
 
67
74
  async setToken(token: string): Promise<void> {
@@ -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
+ }