react-native-authsignal 2.9.0 → 2.10.0

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.
@@ -61,5 +61,5 @@ dependencies {
61
61
 
62
62
  implementation "androidx.browser:browser:1.2.0"
63
63
 
64
- implementation("com.authsignal:authsignal-android:3.6.0")
64
+ implementation("com.authsignal:authsignal-android:3.7.0")
65
65
  }
@@ -4,6 +4,7 @@ import android.app.Activity
4
4
  import android.content.ActivityNotFoundException
5
5
  import android.content.Intent
6
6
  import android.net.Uri
7
+ import com.authsignal.DeviceCache
7
8
  import com.authsignal.TokenCache.Companion.shared
8
9
  import com.authsignal.react.AuthenticationActivity.Companion.authenticateUsingBrowser
9
10
  import com.facebook.react.bridge.ActivityEventListener
@@ -11,15 +12,21 @@ import com.facebook.react.bridge.Promise
11
12
  import com.facebook.react.bridge.ReactApplicationContext
12
13
  import com.facebook.react.bridge.ReactMethod
13
14
  import com.facebook.react.module.annotations.ReactModule
15
+ import kotlinx.coroutines.CoroutineScope
16
+ import kotlinx.coroutines.Dispatchers
17
+ import kotlinx.coroutines.SupervisorJob
18
+ import kotlinx.coroutines.launch
14
19
  import java.net.URLDecoder
15
20
 
16
21
  @ReactModule(name = AuthsignalModule.NAME)
17
22
  class AuthsignalModule(private val reactContext: ReactApplicationContext) :
18
23
  NativeAuthsignalModuleSpec(reactContext), ActivityEventListener {
24
+ private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
19
25
  private var launchPromise: Promise? = null
20
26
 
21
27
  init {
22
28
  reactContext.addActivityEventListener(this)
29
+ DeviceCache.shared.initialize(reactContext.applicationContext)
23
30
  }
24
31
 
25
32
  @ReactMethod
@@ -37,7 +44,7 @@ class AuthsignalModule(private val reactContext: ReactApplicationContext) :
37
44
  }
38
45
 
39
46
  val activity = reactContext.currentActivity
40
- val parsedUrl = Uri.parse(url)
47
+ val parsedUrl = buildLaunchUri(url)
41
48
  this.launchPromise = promise
42
49
 
43
50
  try {
@@ -92,10 +99,37 @@ class AuthsignalModule(private val reactContext: ReactApplicationContext) :
92
99
  this@AuthsignalModule.launchPromise = null
93
100
  }
94
101
 
102
+ @ReactMethod
103
+ override fun getDeviceId(promise: Promise) {
104
+ coroutineScope.launch {
105
+ val deviceId = DeviceCache.shared.getDefaultDeviceId()
106
+ promise.resolve(deviceId)
107
+ }
108
+ }
109
+
95
110
  override fun onNewIntent(intent: Intent) {
96
111
  }
97
112
 
113
+ private fun buildLaunchUri(url: String): Uri {
114
+ val parsedUrl = Uri.parse(url)
115
+ val builder = parsedUrl.buildUpon().clearQuery()
116
+
117
+ for (queryName in parsedUrl.queryParameterNames) {
118
+ if (queryName == NATIVE_SCHEME_QUERY_PARAM) continue
119
+
120
+ for (queryValue in parsedUrl.getQueryParameters(queryName)) {
121
+ builder.appendQueryParameter(queryName, queryValue)
122
+ }
123
+ }
124
+
125
+ builder.appendQueryParameter(NATIVE_SCHEME_QUERY_PARAM, CALLBACK_SCHEME)
126
+
127
+ return builder.build()
128
+ }
129
+
98
130
  companion object {
99
131
  const val NAME = "AuthsignalModule"
132
+ private const val CALLBACK_SCHEME = "authsignal"
133
+ private const val NATIVE_SCHEME_QUERY_PARAM = "nativeScheme"
100
134
  }
101
135
  }
@@ -11,4 +11,7 @@ RCT_EXTERN_METHOD(setToken:(NSString)token
11
11
  resolve:(RCTPromiseResolveBlock)resolve
12
12
  reject:(RCTPromiseRejectBlock)reject)
13
13
 
14
+ RCT_EXTERN_METHOD(getDeviceId:(RCTPromiseResolveBlock)resolve
15
+ reject:(RCTPromiseRejectBlock)reject)
16
+
14
17
  @end
@@ -6,6 +6,8 @@ import Security
6
6
 
7
7
  @objc(AuthsignalModule)
8
8
  class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProviding {
9
+ private let callbackScheme = "authsignal"
10
+ private let nativeSchemeQueryItemName = "nativeScheme"
9
11
  var session: ASWebAuthenticationSession?
10
12
 
11
13
  @objc static func requiresMainQueueSetup() -> Bool {
@@ -21,15 +23,13 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
21
23
  resolve: @escaping RCTPromiseResolveBlock,
22
24
  reject: @escaping RCTPromiseRejectBlock
23
25
  ) -> Void {
24
- let scheme = "authsignal"
25
-
26
- guard let authUrl = URL(string: url as String) else {
26
+ guard let authUrl = buildLaunchURL(from: url as String) else {
27
27
  reject("launchError", "Invalid URL", nil)
28
28
 
29
29
  return
30
30
  }
31
31
 
32
- let authenticationSession = ASWebAuthenticationSession(url: authUrl, callbackURLScheme: scheme) { callbackURL, error in
32
+ let authenticationSession = ASWebAuthenticationSession(url: authUrl, callbackURLScheme: callbackScheme) { callbackURL, error in
33
33
  if let error {
34
34
  if self.isCanceledLoginError(error) {
35
35
  resolve(nil)
@@ -75,10 +75,33 @@ class AuthsignalModule: NSObject, ASWebAuthenticationPresentationContextProvidin
75
75
 
76
76
  resolve("token_set")
77
77
  }
78
+
79
+ @objc func getDeviceId(
80
+ _ resolve: @escaping RCTPromiseResolveBlock,
81
+ reject: @escaping RCTPromiseRejectBlock
82
+ ) -> Void {
83
+ Task {
84
+ let deviceId = await DeviceCache.shared.getDefaultDeviceID()
85
+ resolve(deviceId)
86
+ }
87
+ }
78
88
 
79
89
  private func isCanceledLoginError(_ error: Error) -> Bool {
80
90
  (error as NSError).code == ASWebAuthenticationSessionError.canceledLogin.rawValue
81
91
  }
92
+
93
+ private func buildLaunchURL(from urlString: String) -> URL? {
94
+ guard let authUrl = URL(string: urlString),
95
+ var components = URLComponents(url: authUrl, resolvingAgainstBaseURL: false) else {
96
+ return nil
97
+ }
98
+
99
+ var queryItems = components.queryItems?.filter { $0.name != nativeSchemeQueryItemName } ?? []
100
+ queryItems.append(URLQueryItem(name: nativeSchemeQueryItemName, value: callbackScheme))
101
+ components.queryItems = queryItems
102
+
103
+ return components.url
104
+ }
82
105
 
83
106
  func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
84
107
  if let windowScene = UIApplication.shared.connectedScenes
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeAuthsignalModule.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAqE,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAOtDC,gCAAmB,CAACC,GAAG,CAAO,kBAAkB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeAuthsignalModule.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAqE,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAQtDC,gCAAmB,CAACC,GAAG,CAAO,kBAAkB,CAAC","ignoreList":[]}
@@ -72,6 +72,9 @@ class Authsignal {
72
72
  async launch(url, _options) {
73
73
  return await launch(url);
74
74
  }
75
+ async getDeviceId() {
76
+ return AuthsignalModule.getDeviceId();
77
+ }
75
78
  }
76
79
  exports.Authsignal = Authsignal;
77
80
  function launch(url, _options) {
@@ -1 +1 @@
1
- {"version":3,"names":["_getNativeModule","require","_NativeAuthsignalModule","_interopRequireDefault","_email","_passkey","_push","_sms","_totp","_qr","_whatsapp","_inapp","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_error","e","__esModule","default","AuthsignalModule","getNativeModule","NativeAuthsignalModule","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","__DEV__","input","passkey","AuthsignalPasskey","email","AuthsignalEmail","push","AuthsignalPush","qr","AuthsignalQrCode","inapp","AuthsignalInApp","sms","AuthsignalSms","totp","AuthsignalTotp","whatsapp","AuthsignalWhatsapp","setToken","token","launch","url","_options"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,IAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,GAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AAGA,IAAAW,MAAA,GAAAX,OAAA;AAAAY,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAxB,OAAA;AAAoC,SAAAE,uBAAAuB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC,MAAMG,gBAAgB,GAAG,IAAAC,gCAAe,EACtC,kBAAkB,EAClBC,+BACF,CAAC;AASM,MAAMC,UAAU,CAAC;EActBC,WAAWA,CAAC;IACVC,QAAQ;IACRC,OAAO,GAAG,+BAA+B;IACzCC,QAAQ;IACRC,aAAa,GAAGC;EACD,CAAC,EAAE;IAClB,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElC,MAAME,KAAK,GAAG;MAAEL,QAAQ;MAAEC,OAAO;MAAEC,QAAQ;MAAEC;IAAc,CAAC;IAE5D,IAAI,CAACG,OAAO,GAAG,IAAIC,0BAAiB,CAACF,KAAK,CAAC;IAC3C,IAAI,CAACG,KAAK,GAAG,IAAIC,sBAAe,CAACJ,KAAK,CAAC;IACvC,IAAI,CAACK,IAAI,GAAG,IAAIC,oBAAc,CAACN,KAAK,CAAC;IACrC,IAAI,CAACO,EAAE,GAAG,IAAIC,oBAAgB,CAACR,KAAK,CAAC;IACrC,IAAI,CAACS,KAAK,GAAG,IAAIC,sBAAe,CAACV,KAAK,CAAC;IACvC,IAAI,CAACW,GAAG,GAAG,IAAIC,kBAAa,CAACZ,KAAK,CAAC;IACnC,IAAI,CAACa,IAAI,GAAG,IAAIC,oBAAc,CAACd,KAAK,CAAC;IACrC,IAAI,CAACe,QAAQ,GAAG,IAAIC,4BAAkB,CAAChB,KAAK,CAAC;EAC/C;EAEA,MAAMiB,QAAQA,CAACC,KAAa,EAAiB;IAC3C,MAAM5B,gBAAgB,CAAC2B,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAMA,CAACC,GAAW,EAAEC,QAAwB,EAA0B;IAC1E,OAAO,MAAMF,MAAM,CAACC,GAAG,CAAC;EAC1B;AACF;AAACtC,OAAA,CAAAW,UAAA,GAAAA,UAAA;AAEM,SAAS0B,MAAMA,CACpBC,GAAW,EACXC,QAAwB,EACA;EACxB,OAAO/B,gBAAgB,CAAC6B,MAAM,CAACC,GAAG,CAAC;AACrC","ignoreList":[]}
1
+ {"version":3,"names":["_getNativeModule","require","_NativeAuthsignalModule","_interopRequireDefault","_email","_passkey","_push","_sms","_totp","_qr","_whatsapp","_inapp","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_error","e","__esModule","default","AuthsignalModule","getNativeModule","NativeAuthsignalModule","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","__DEV__","input","passkey","AuthsignalPasskey","email","AuthsignalEmail","push","AuthsignalPush","qr","AuthsignalQrCode","inapp","AuthsignalInApp","sms","AuthsignalSms","totp","AuthsignalTotp","whatsapp","AuthsignalWhatsapp","setToken","token","launch","url","_options","getDeviceId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,IAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,GAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AAGA,IAAAW,MAAA,GAAAX,OAAA;AAAAY,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAxB,OAAA;AAAoC,SAAAE,uBAAAuB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC,MAAMG,gBAAgB,GAAG,IAAAC,gCAAe,EACtC,kBAAkB,EAClBC,+BACF,CAAC;AASM,MAAMC,UAAU,CAAC;EActBC,WAAWA,CAAC;IACVC,QAAQ;IACRC,OAAO,GAAG,+BAA+B;IACzCC,QAAQ;IACRC,aAAa,GAAGC;EACD,CAAC,EAAE;IAClB,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElC,MAAME,KAAK,GAAG;MAAEL,QAAQ;MAAEC,OAAO;MAAEC,QAAQ;MAAEC;IAAc,CAAC;IAE5D,IAAI,CAACG,OAAO,GAAG,IAAIC,0BAAiB,CAACF,KAAK,CAAC;IAC3C,IAAI,CAACG,KAAK,GAAG,IAAIC,sBAAe,CAACJ,KAAK,CAAC;IACvC,IAAI,CAACK,IAAI,GAAG,IAAIC,oBAAc,CAACN,KAAK,CAAC;IACrC,IAAI,CAACO,EAAE,GAAG,IAAIC,oBAAgB,CAACR,KAAK,CAAC;IACrC,IAAI,CAACS,KAAK,GAAG,IAAIC,sBAAe,CAACV,KAAK,CAAC;IACvC,IAAI,CAACW,GAAG,GAAG,IAAIC,kBAAa,CAACZ,KAAK,CAAC;IACnC,IAAI,CAACa,IAAI,GAAG,IAAIC,oBAAc,CAACd,KAAK,CAAC;IACrC,IAAI,CAACe,QAAQ,GAAG,IAAIC,4BAAkB,CAAChB,KAAK,CAAC;EAC/C;EAEA,MAAMiB,QAAQA,CAACC,KAAa,EAAiB;IAC3C,MAAM5B,gBAAgB,CAAC2B,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAMA,CAACC,GAAW,EAAEC,QAAwB,EAA0B;IAC1E,OAAO,MAAMF,MAAM,CAACC,GAAG,CAAC;EAC1B;EAEA,MAAME,WAAWA,CAAA,EAAoB;IACnC,OAAOhC,gBAAgB,CAACgC,WAAW,CAAC,CAAC;EACvC;AACF;AAACxC,OAAA,CAAAW,UAAA,GAAAA,UAAA;AAEM,SAAS0B,MAAMA,CACpBC,GAAW,EACXC,QAAwB,EACA;EACxB,OAAO/B,gBAAgB,CAAC6B,MAAM,CAACC,GAAG,CAAC;AACrC","ignoreList":[]}
@@ -76,6 +76,18 @@ class Authsignal {
76
76
  async launch(url, options) {
77
77
  return await launch(url, options);
78
78
  }
79
+ async getDeviceId() {
80
+ if (typeof window === 'undefined' || !window.localStorage) {
81
+ return crypto.randomUUID();
82
+ }
83
+ const existingId = localStorage.getItem(DEVICE_ID_KEY);
84
+ if (existingId) {
85
+ return existingId;
86
+ }
87
+ const newId = crypto.randomUUID();
88
+ localStorage.setItem(DEVICE_ID_KEY, newId);
89
+ return newId;
90
+ }
79
91
  }
80
92
  exports.Authsignal = Authsignal;
81
93
  function launch(url, options) {
@@ -104,4 +116,5 @@ function launch(url, options) {
104
116
  }
105
117
  return Promise.resolve(null);
106
118
  }
119
+ const DEVICE_ID_KEY = '@as_device_id';
107
120
  //# sourceMappingURL=index.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webClient","require","_email","_passkey","_sms","_totp","_whatsapp","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_error","_lastClient","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","input","passkey","AuthsignalPasskey","email","AuthsignalEmail","sms","AuthsignalSms","totp","AuthsignalTotp","whatsapp","AuthsignalWhatsapp","setToken","token","client","getOrCreateWebClient","launch","url","options","mode","Promise","resolve","then","result","window","open"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_webClient","require","_email","_passkey","_sms","_totp","_whatsapp","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_error","_lastClient","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","input","passkey","AuthsignalPasskey","email","AuthsignalEmail","sms","AuthsignalSms","totp","AuthsignalTotp","whatsapp","AuthsignalWhatsapp","setToken","token","client","getOrCreateWebClient","launch","url","options","getDeviceId","window","localStorage","crypto","randomUUID","existingId","getItem","DEVICE_ID_KEY","newId","setItem","mode","Promise","resolve","then","result","open"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeAuthsignalModule.ts"],"mappings":"AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAOpE,eAAeA,mBAAmB,CAACC,GAAG,CAAO,kBAAkB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeAuthsignalModule.ts"],"mappings":"AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAQpE,eAAeA,mBAAmB,CAACC,GAAG,CAAO,kBAAkB,CAAC","ignoreList":[]}
@@ -42,6 +42,9 @@ export class Authsignal {
42
42
  async launch(url, _options) {
43
43
  return await launch(url);
44
44
  }
45
+ async getDeviceId() {
46
+ return AuthsignalModule.getDeviceId();
47
+ }
45
48
  }
46
49
  export function launch(url, _options) {
47
50
  return AuthsignalModule.launch(url);
@@ -1 +1 @@
1
- {"version":3,"names":["getNativeModule","NativeAuthsignalModule","AuthsignalEmail","AuthsignalPasskey","AuthsignalPush","AuthsignalSms","AuthsignalTotp","AuthsignalQrCode","AuthsignalWhatsapp","AuthsignalInApp","ErrorCode","AuthsignalModule","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","__DEV__","input","passkey","email","push","qr","inapp","sms","totp","whatsapp","setToken","token","launch","url","_options"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,eAAe,QAAQ,mBAAmB;AACnD,OAAOC,sBAAsB,MAEtB,0BAA0B;AACjC,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,aAAa,QAAQ,OAAO;AACrC,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,gBAAgB,QAAQ,MAAM;AACvC,SAASC,kBAAkB,QAAQ,YAAY;AAC/C,SAASC,eAAe,QAAQ,SAAS;AAGzC,cAAc,SAAS;AACvB,SAASC,SAAS,QAAQ,SAAS;AAEnC,MAAMC,gBAAgB,GAAGX,eAAe,CACtC,kBAAkB,EAClBC,sBACF,CAAC;AASD,OAAO,MAAMW,UAAU,CAAC;EActBC,WAAWA,CAAC;IACVC,QAAQ;IACRC,OAAO,GAAG,+BAA+B;IACzCC,QAAQ;IACRC,aAAa,GAAGC;EACD,CAAC,EAAE;IAClB,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElC,MAAME,KAAK,GAAG;MAAEL,QAAQ;MAAEC,OAAO;MAAEC,QAAQ;MAAEC;IAAc,CAAC;IAE5D,IAAI,CAACG,OAAO,GAAG,IAAIjB,iBAAiB,CAACgB,KAAK,CAAC;IAC3C,IAAI,CAACE,KAAK,GAAG,IAAInB,eAAe,CAACiB,KAAK,CAAC;IACvC,IAAI,CAACG,IAAI,GAAG,IAAIlB,cAAc,CAACe,KAAK,CAAC;IACrC,IAAI,CAACI,EAAE,GAAG,IAAIhB,gBAAgB,CAACY,KAAK,CAAC;IACrC,IAAI,CAACK,KAAK,GAAG,IAAIf,eAAe,CAACU,KAAK,CAAC;IACvC,IAAI,CAACM,GAAG,GAAG,IAAIpB,aAAa,CAACc,KAAK,CAAC;IACnC,IAAI,CAACO,IAAI,GAAG,IAAIpB,cAAc,CAACa,KAAK,CAAC;IACrC,IAAI,CAACQ,QAAQ,GAAG,IAAInB,kBAAkB,CAACW,KAAK,CAAC;EAC/C;EAEA,MAAMS,QAAQA,CAACC,KAAa,EAAiB;IAC3C,MAAMlB,gBAAgB,CAACiB,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAMA,CAACC,GAAW,EAAEC,QAAwB,EAA0B;IAC1E,OAAO,MAAMF,MAAM,CAACC,GAAG,CAAC;EAC1B;AACF;AAEA,OAAO,SAASD,MAAMA,CACpBC,GAAW,EACXC,QAAwB,EACA;EACxB,OAAOrB,gBAAgB,CAACmB,MAAM,CAACC,GAAG,CAAC;AACrC","ignoreList":[]}
1
+ {"version":3,"names":["getNativeModule","NativeAuthsignalModule","AuthsignalEmail","AuthsignalPasskey","AuthsignalPush","AuthsignalSms","AuthsignalTotp","AuthsignalQrCode","AuthsignalWhatsapp","AuthsignalInApp","ErrorCode","AuthsignalModule","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","__DEV__","input","passkey","email","push","qr","inapp","sms","totp","whatsapp","setToken","token","launch","url","_options","getDeviceId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,eAAe,QAAQ,mBAAmB;AACnD,OAAOC,sBAAsB,MAEtB,0BAA0B;AACjC,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,aAAa,QAAQ,OAAO;AACrC,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,gBAAgB,QAAQ,MAAM;AACvC,SAASC,kBAAkB,QAAQ,YAAY;AAC/C,SAASC,eAAe,QAAQ,SAAS;AAGzC,cAAc,SAAS;AACvB,SAASC,SAAS,QAAQ,SAAS;AAEnC,MAAMC,gBAAgB,GAAGX,eAAe,CACtC,kBAAkB,EAClBC,sBACF,CAAC;AASD,OAAO,MAAMW,UAAU,CAAC;EActBC,WAAWA,CAAC;IACVC,QAAQ;IACRC,OAAO,GAAG,+BAA+B;IACzCC,QAAQ;IACRC,aAAa,GAAGC;EACD,CAAC,EAAE;IAClB,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElC,MAAME,KAAK,GAAG;MAAEL,QAAQ;MAAEC,OAAO;MAAEC,QAAQ;MAAEC;IAAc,CAAC;IAE5D,IAAI,CAACG,OAAO,GAAG,IAAIjB,iBAAiB,CAACgB,KAAK,CAAC;IAC3C,IAAI,CAACE,KAAK,GAAG,IAAInB,eAAe,CAACiB,KAAK,CAAC;IACvC,IAAI,CAACG,IAAI,GAAG,IAAIlB,cAAc,CAACe,KAAK,CAAC;IACrC,IAAI,CAACI,EAAE,GAAG,IAAIhB,gBAAgB,CAACY,KAAK,CAAC;IACrC,IAAI,CAACK,KAAK,GAAG,IAAIf,eAAe,CAACU,KAAK,CAAC;IACvC,IAAI,CAACM,GAAG,GAAG,IAAIpB,aAAa,CAACc,KAAK,CAAC;IACnC,IAAI,CAACO,IAAI,GAAG,IAAIpB,cAAc,CAACa,KAAK,CAAC;IACrC,IAAI,CAACQ,QAAQ,GAAG,IAAInB,kBAAkB,CAACW,KAAK,CAAC;EAC/C;EAEA,MAAMS,QAAQA,CAACC,KAAa,EAAiB;IAC3C,MAAMlB,gBAAgB,CAACiB,QAAQ,CAACC,KAAK,CAAC;EACxC;EAEA,MAAMC,MAAMA,CAACC,GAAW,EAAEC,QAAwB,EAA0B;IAC1E,OAAO,MAAMF,MAAM,CAACC,GAAG,CAAC;EAC1B;EAEA,MAAME,WAAWA,CAAA,EAAoB;IACnC,OAAOtB,gBAAgB,CAACsB,WAAW,CAAC,CAAC;EACvC;AACF;AAEA,OAAO,SAASH,MAAMA,CACpBC,GAAW,EACXC,QAAwB,EACA;EACxB,OAAOrB,gBAAgB,CAACmB,MAAM,CAACC,GAAG,CAAC;AACrC","ignoreList":[]}
@@ -47,6 +47,18 @@ export class Authsignal {
47
47
  async launch(url, options) {
48
48
  return await launch(url, options);
49
49
  }
50
+ async getDeviceId() {
51
+ if (typeof window === 'undefined' || !window.localStorage) {
52
+ return crypto.randomUUID();
53
+ }
54
+ const existingId = localStorage.getItem(DEVICE_ID_KEY);
55
+ if (existingId) {
56
+ return existingId;
57
+ }
58
+ const newId = crypto.randomUUID();
59
+ localStorage.setItem(DEVICE_ID_KEY, newId);
60
+ return newId;
61
+ }
50
62
  }
51
63
  export function launch(url, options) {
52
64
  if (_lastClient) {
@@ -74,4 +86,5 @@ export function launch(url, options) {
74
86
  }
75
87
  return Promise.resolve(null);
76
88
  }
89
+ const DEVICE_ID_KEY = '@as_device_id';
77
90
  //# sourceMappingURL=index.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getOrCreateWebClient","AuthsignalEmail","AuthsignalPasskey","AuthsignalSms","AuthsignalTotp","AuthsignalWhatsapp","ErrorCode","_lastClient","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","input","passkey","email","sms","totp","whatsapp","setToken","token","client","launch","url","options","mode","Promise","resolve","then","result","window","open"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,iBAAiB,QAAQ,WAAW;AAC7C,SAASC,aAAa,QAAQ,OAAO;AACrC,SAASC,cAAc,QAAQ,QAAQ;AACvC,SAASC,kBAAkB,QAAQ,YAAY;AAG/C,cAAc,SAAS;AACvB,SAASC,SAAS,QAAQ,SAAS;AASnC,IAAIC,WAII,GAAG,IAAI;AAEf,OAAO,MAAMC,UAAU,CAAC;EAWtBC,WAAWA,CAAC;IACVC,QAAQ;IACRC,OAAO,GAAG,+BAA+B;IACzCC,QAAQ;IACRC,aAAa,GAAG;EACD,CAAC,EAAE;IAClB,IAAI,CAACH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,aAAa,GAAGA,aAAa;IAElCN,WAAW,GAAG;MAAEG,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC;IAElD,MAAMC,KAAK,GAAG;MAAEJ,QAAQ;MAAEC,OAAO;MAAEE;IAAc,CAAC;IAElD,IAAI,CAACE,OAAO,GAAG,IAAIb,iBAAiB,CAAC;MAAE,GAAGY,KAAK;MAAEF;IAAS,CAAC,CAAC;IAC5D,IAAI,CAACI,KAAK,GAAG,IAAIf,eAAe,CAACa,KAAK,CAAC;IACvC,IAAI,CAACG,GAAG,GAAG,IAAId,aAAa,CAACW,KAAK,CAAC;IACnC,IAAI,CAACI,IAAI,GAAG,IAAId,cAAc,CAACU,KAAK,CAAC;IACrC,IAAI,CAACK,QAAQ,GAAG,IAAId,kBAAkB,CAACS,KAAK,CAAC;EAC/C;EAEA,MAAMM,QAAQA,CAACC,KAAa,EAAiB;IAC3C,MAAMC,MAAM,GAAGtB,oBAAoB,CAAC;MAClCU,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBE,aAAa,EAAE,IAAI,CAACA;IACtB,CAAC,CAAC;IAEFS,MAAM,CAACF,QAAQ,CAACC,KAAK,CAAC;EACxB;EAEA,MAAME,MAAMA,CAACC,GAAW,EAAEC,OAAuB,EAA0B;IACzE,OAAO,MAAMF,MAAM,CAACC,GAAG,EAAEC,OAAO,CAAC;EACnC;AACF;AAEA,OAAO,SAASF,MAAMA,CACpBC,GAAW,EACXC,OAAuB,EACC;EACxB,IAAIlB,WAAW,EAAE;IACf,MAAMe,MAAM,GAAGtB,oBAAoB,CAAC;MAClCU,QAAQ,EAAEH,WAAW,CAACG,QAAQ;MAC9BC,OAAO,EAAEJ,WAAW,CAACI,OAAO;MAC5BE,aAAa,EAAEN,WAAW,CAACM;IAC7B,CAAC,CAAC;IAEF,IAAI,CAAAY,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,IAAI,MAAK,UAAU,EAAE;MAChCJ,MAAM,CAACC,MAAM,CAACC,GAAG,EAAE;QAAEE,IAAI,EAAE;MAAW,CAAC,CAAC;MACxC,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;IAC9B;IAEA,OAAON,MAAM,CAACC,MAAM,CAACC,GAAG,EAAE;MAAEE,IAAI,EAAE;IAAQ,CAAC,CAAC,CAACG,IAAI,CAAEC,MAAM,IAAK;MAC5D,OAAO,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAET,KAAK,KAAI,IAAI;IAC9B,CAAC,CAAC;EACJ;;EAEA;EACA,IAAI,OAAOU,MAAM,KAAK,WAAW,EAAE;IACjCA,MAAM,CAACC,IAAI,CAACR,GAAG,EAAE,QAAQ,CAAC;EAC5B;EAEA,OAAOG,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;AAC9B","ignoreList":[]}
1
+ {"version":3,"names":["getOrCreateWebClient","AuthsignalEmail","AuthsignalPasskey","AuthsignalSms","AuthsignalTotp","AuthsignalWhatsapp","ErrorCode","_lastClient","Authsignal","constructor","tenantID","baseURL","deviceID","enableLogging","input","passkey","email","sms","totp","whatsapp","setToken","token","client","launch","url","options","getDeviceId","window","localStorage","crypto","randomUUID","existingId","getItem","DEVICE_ID_KEY","newId","setItem","mode","Promise","resolve","then","result","open"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ import { type TurboModule } from 'react-native';
2
2
  export interface Spec extends TurboModule {
3
3
  setToken(token: string | null): Promise<string>;
4
4
  launch(url: string): Promise<string | null>;
5
+ getDeviceId(): Promise<string>;
5
6
  }
6
7
  declare const _default: Spec | null;
7
8
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAuthsignalModule.d.ts","sourceRoot":"","sources":["../../src/NativeAuthsignalModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7C;;AAED,wBAAiE"}
1
+ {"version":3,"file":"NativeAuthsignalModule.d.ts","sourceRoot":"","sources":["../../src/NativeAuthsignalModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAChC;;AAED,wBAAiE"}
@@ -30,6 +30,7 @@ export declare class Authsignal {
30
30
  constructor({ tenantID, baseURL, deviceID, enableLogging, }: ConstructorArgs);
31
31
  setToken(token: string): Promise<void>;
32
32
  launch(url: string, _options?: LaunchOptions): Promise<string | null>;
33
+ getDeviceId(): Promise<string>;
33
34
  }
34
35
  export declare function launch(url: string, _options?: LaunchOptions): Promise<string | null>;
35
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAIA,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,MAAM,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOpC,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,EAAE,EAAE,gBAAgB,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,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;IAiBZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAG5E;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAIA,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,MAAM,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOpC,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,EAAE,EAAE,gBAAgB,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,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;IAiBZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIrE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAGrC;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExB"}
@@ -24,6 +24,7 @@ export declare class Authsignal {
24
24
  constructor({ tenantID, baseURL, deviceID, enableLogging, }: ConstructorArgs);
25
25
  setToken(token: string): Promise<void>;
26
26
  launch(url: string, options?: LaunchOptions): Promise<string | null>;
27
+ getDeviceId(): Promise<string>;
27
28
  }
28
29
  export declare function launch(url: string, options?: LaunchOptions): Promise<string | null>;
29
30
  //# sourceMappingURL=index.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,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;AAQD,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,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;gBAEjB,EACV,QAAQ,EACR,OAAyC,EACzC,QAAQ,EACR,aAAqB,GACtB,EAAE,eAAe;IAgBZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAG3E;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,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;AAQD,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,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;gBAEjB,EACV,QAAQ,EACR,OAAyC,EACzC,QAAQ,EACR,aAAqB,GACtB,EAAE,eAAe;IAgBZ,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIpE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAgBrC;AAED,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-authsignal",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "The official Authsignal React Native library.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
18
18
  s.private_header_files = "ios/**/*.h"
19
19
 
20
20
  s.dependency "React-Core"
21
- s.dependency 'Authsignal', '2.5.0'
21
+ s.dependency 'Authsignal', '2.6.0'
22
22
 
23
23
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
24
24
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
@@ -3,6 +3,7 @@ import { TurboModuleRegistry, type TurboModule } from 'react-native';
3
3
  export interface Spec extends TurboModule {
4
4
  setToken(token: string | null): Promise<string>;
5
5
  launch(url: string): Promise<string | null>;
6
+ getDeviceId(): Promise<string>;
6
7
  }
7
8
 
8
9
  export default TurboModuleRegistry.get<Spec>('AuthsignalModule');
package/src/index.tsx CHANGED
@@ -70,6 +70,10 @@ export class Authsignal {
70
70
  async launch(url: string, _options?: LaunchOptions): Promise<string | null> {
71
71
  return await launch(url);
72
72
  }
73
+
74
+ async getDeviceId(): Promise<string> {
75
+ return AuthsignalModule.getDeviceId();
76
+ }
73
77
  }
74
78
 
75
79
  export function launch(
package/src/index.web.tsx CHANGED
@@ -67,6 +67,23 @@ export class Authsignal {
67
67
  async launch(url: string, options?: LaunchOptions): Promise<string | null> {
68
68
  return await launch(url, options);
69
69
  }
70
+
71
+ async getDeviceId(): Promise<string> {
72
+ if (typeof window === 'undefined' || !window.localStorage) {
73
+ return crypto.randomUUID();
74
+ }
75
+
76
+ const existingId = localStorage.getItem(DEVICE_ID_KEY);
77
+
78
+ if (existingId) {
79
+ return existingId;
80
+ }
81
+
82
+ const newId = crypto.randomUUID();
83
+ localStorage.setItem(DEVICE_ID_KEY, newId);
84
+
85
+ return newId;
86
+ }
70
87
  }
71
88
 
72
89
  export function launch(
@@ -97,3 +114,5 @@ export function launch(
97
114
 
98
115
  return Promise.resolve(null);
99
116
  }
117
+
118
+ const DEVICE_ID_KEY = '@as_device_id';