react-native-authsignal 1.7.1 → 1.8.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.
@@ -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.5.0")
80
+ implementation("com.authsignal:authsignal-android:2.6.0")
81
81
  }
@@ -40,9 +40,9 @@ class AuthsignalPasskeyModule(private val reactContext: ReactApplicationContext)
40
40
  }
41
41
 
42
42
  @ReactMethod
43
- fun signUp(token: String?, username: String?, displayName: String?, promise: Promise) {
43
+ fun signUp(token: String?, username: String?, displayName: String?, ignorePasskeyAlreadyExistsError: Boolean, promise: Promise) {
44
44
  launch(promise) {
45
- val response = it.signUp(token, username, displayName)
45
+ val response = it.signUp(token, username, displayName, false, ignorePasskeyAlreadyExistsError)
46
46
 
47
47
  if (response.error != null) {
48
48
  val errorCode = response.errorCode ?: defaultError
@@ -80,6 +80,15 @@ class AuthsignalPasskeyModule(private val reactContext: ReactApplicationContext)
80
80
  }
81
81
  }
82
82
 
83
+ @ReactMethod
84
+ fun shouldPromptToCreatePasskey(promise: Promise) {
85
+ launch(promise) {
86
+ val response = it.shouldPromptToCreatePasskey()
87
+
88
+ promise.resolve(response.data ?: false)
89
+ }
90
+ }
91
+
83
92
  @ReactMethod
84
93
  fun isAvailableOnDevice(promise: Promise) {
85
94
  launch(promise) {
@@ -12,6 +12,7 @@ RCT_EXTERN_METHOD(initialize:(NSString)tenantID
12
12
  RCT_EXTERN_METHOD(signUp:(NSString)token
13
13
  withUsername:(NSString)username
14
14
  withDisplayName:(NSString)displayName
15
+ withIgnorePasskeyAlreadyExistsError:(BOOL)ignorePasskeyAlreadyExistsError
15
16
  resolver:(RCTPromiseResolveBlock)resolve
16
17
  rejecter:(RCTPromiseRejectBlock)reject)
17
18
 
@@ -22,6 +23,9 @@ RCT_EXTERN_METHOD(signIn:(NSString)action
22
23
  resolver:(RCTPromiseResolveBlock)resolve
23
24
  rejecter:(RCTPromiseRejectBlock)reject)
24
25
 
26
+ RCT_EXTERN_METHOD(shouldPromptToCreatePasskey:(RCTPromiseResolveBlock)resolve
27
+ rejecter:(RCTPromiseRejectBlock)reject)
28
+
25
29
  RCT_EXTERN_METHOD(isAvailableOnDevice:(RCTPromiseResolveBlock)resolve
26
30
  rejecter:(RCTPromiseRejectBlock)reject)
27
31
 
@@ -26,6 +26,7 @@ class AuthsignalPasskeyModule: NSObject {
26
26
  _ token: NSString?,
27
27
  withUsername username: NSString?,
28
28
  withDisplayName displayName: NSString?,
29
+ withIgnorePasskeyAlreadyExistsError ignorePasskeyAlreadyExistsError: Bool,
29
30
  resolver resolve: @escaping RCTPromiseResolveBlock,
30
31
  rejecter reject: @escaping RCTPromiseRejectBlock
31
32
  ) -> Void {
@@ -39,8 +40,13 @@ class AuthsignalPasskeyModule: NSObject {
39
40
  let displayNameStr = displayName as String?
40
41
 
41
42
  Task.init {
42
- let response = await authsignal!.signUp(token: tokenStr, username: usernameStr, displayName: displayNameStr)
43
-
43
+ let response = await authsignal!.signUp(
44
+ token: tokenStr,
45
+ username: usernameStr,
46
+ displayName: displayNameStr,
47
+ ignorePasskeyAlreadyExistsError: ignorePasskeyAlreadyExistsError
48
+ )
49
+
44
50
  if (response.error != nil) {
45
51
  reject(response.errorCode ?? "unexpected_error", response.error, nil)
46
52
  } else {
@@ -104,6 +110,23 @@ class AuthsignalPasskeyModule: NSObject {
104
110
  authsignal?.cancel()
105
111
  }
106
112
 
113
+ @objc func shouldPromptToCreatePasskey(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
114
+ if (authsignal == nil) {
115
+ resolve(false)
116
+ return
117
+ }
118
+
119
+ Task.init {
120
+ let response = await authsignal!.shouldPromptToCreatePasskey()
121
+
122
+ if (response.error != nil) {
123
+ resolve(false)
124
+ } else {
125
+ resolve(response.data)
126
+ }
127
+ }
128
+ }
129
+
107
130
  @objc func isAvailableOnDevice(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
108
131
  if (authsignal == nil) {
109
132
  resolve(false)
@@ -16,6 +16,7 @@ exports.ErrorCode = ErrorCode;
16
16
  (function (ErrorCode) {
17
17
  ErrorCode["user_canceled"] = "user_canceled";
18
18
  ErrorCode["no_credential"] = "no_credential";
19
+ ErrorCode["matched_excluded_credential"] = "matched_excluded_credential";
19
20
  ErrorCode["token_not_set"] = "token_not_set";
20
21
  ErrorCode["token_required"] = "token_required";
21
22
  ErrorCode["token_invalid"] = "token_invalid";
@@ -1 +1 @@
1
- {"version":3,"names":["LINKING_ERROR","Platform","select","ios","default","ErrorCode","handleErrorCodes","ex","error","message","errorCode","code"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;;AAAA;AAEO,MAAMA,aAAa,GACvB,kFAAiF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAAC;AAAA,IAEtBC,SAAS;AAAA;AAAA,WAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,yBAATA,SAAS;AAQd,SAASC,gBAAgB,CAACC,EAAO,EAAE;EACxC,OAAO;IACLC,KAAK,EAAED,EAAE,CAACE,OAAO;IACjBC,SAAS,EAAEH,EAAE,CAACI;EAChB,CAAC;AACH"}
1
+ {"version":3,"names":["LINKING_ERROR","Platform","select","ios","default","ErrorCode","handleErrorCodes","ex","error","message","errorCode","code"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;;AAAA;AAEO,MAAMA,aAAa,GACvB,kFAAiF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAAC;AAAA,IAEtBC,SAAS;AAAA;AAAA,WAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,yBAATA,SAAS;AASd,SAASC,gBAAgB,CAACC,EAAO,EAAE;EACxC,OAAO;IACLC,KAAK,EAAED,EAAE,CAACE,OAAO;IACjBC,SAAS,EAAEH,EAAE,CAACI;EAChB,CAAC;AACH"}
@@ -35,11 +35,12 @@ class AuthsignalPasskey {
35
35
  let {
36
36
  token,
37
37
  username,
38
- displayName
38
+ displayName,
39
+ ignorePasskeyAlreadyExistsError = false
39
40
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
41
  await this.ensureModuleIsInitialized();
41
42
  try {
42
- const data = await AuthsignalPasskeyModule.signUp(token, username, displayName);
43
+ const data = await AuthsignalPasskeyModule.signUp(token, username, displayName, ignorePasskeyAlreadyExistsError);
43
44
  return {
44
45
  data
45
46
  };
@@ -101,6 +102,10 @@ class AuthsignalPasskey {
101
102
  return false;
102
103
  }
103
104
  }
105
+ async shouldPromptToCreatePasskey() {
106
+ await this.ensureModuleIsInitialized();
107
+ return await AuthsignalPasskeyModule.shouldPromptToCreatePasskey();
108
+ }
104
109
 
105
110
  /**
106
111
  * @deprecated Use 'preferImmediatelyAvailableCredentials' to control what happens when a passkey isn't available.
@@ -1 +1 @@
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","isSupported","Version","parseInt","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
1
+ {"version":3,"names":["initialized","autofillRequestPending","AuthsignalPasskeyModule","NativeModules","Proxy","get","Error","LINKING_ERROR","AuthsignalPasskey","constructor","tenantID","baseURL","deviceID","enableLogging","signUp","token","username","displayName","ignorePasskeyAlreadyExistsError","ensureModuleIsInitialized","data","ex","console","log","handleErrorCodes","signIn","action","autofill","preferImmediatelyAvailableCredentials","Platform","OS","cancel","isSupported","Version","parseInt","shouldPromptToCreatePasskey","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
@@ -7,6 +7,7 @@ export let ErrorCode;
7
7
  (function (ErrorCode) {
8
8
  ErrorCode["user_canceled"] = "user_canceled";
9
9
  ErrorCode["no_credential"] = "no_credential";
10
+ ErrorCode["matched_excluded_credential"] = "matched_excluded_credential";
10
11
  ErrorCode["token_not_set"] = "token_not_set";
11
12
  ErrorCode["token_required"] = "token_required";
12
13
  ErrorCode["token_invalid"] = "token_invalid";
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","LINKING_ERROR","select","ios","default","ErrorCode","handleErrorCodes","ex","error","message","errorCode","code"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,aAAa,GACvB,kFAAiF,GAClFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,WAAYC,SAAS;AAMpB,WANWA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,KAATA,SAAS;AAQrB,OAAO,SAASC,gBAAgB,CAACC,EAAO,EAAE;EACxC,OAAO;IACLC,KAAK,EAAED,EAAE,CAACE,OAAO;IACjBC,SAAS,EAAEH,EAAE,CAACI;EAChB,CAAC;AACH"}
1
+ {"version":3,"names":["Platform","LINKING_ERROR","select","ios","default","ErrorCode","handleErrorCodes","ex","error","message","errorCode","code"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,aAAa,GACvB,kFAAiF,GAClFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,WAAYC,SAAS;AAOpB,WAPWA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,KAATA,SAAS;AASrB,OAAO,SAASC,gBAAgB,CAACC,EAAO,EAAE;EACxC,OAAO;IACLC,KAAK,EAAED,EAAE,CAACE,OAAO;IACjBC,SAAS,EAAEH,EAAE,CAACI;EAChB,CAAC;AACH"}
@@ -29,11 +29,12 @@ export class AuthsignalPasskey {
29
29
  let {
30
30
  token,
31
31
  username,
32
- displayName
32
+ displayName,
33
+ ignorePasskeyAlreadyExistsError = false
33
34
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
34
35
  await this.ensureModuleIsInitialized();
35
36
  try {
36
- const data = await AuthsignalPasskeyModule.signUp(token, username, displayName);
37
+ const data = await AuthsignalPasskeyModule.signUp(token, username, displayName, ignorePasskeyAlreadyExistsError);
37
38
  return {
38
39
  data
39
40
  };
@@ -95,6 +96,10 @@ export class AuthsignalPasskey {
95
96
  return false;
96
97
  }
97
98
  }
99
+ async shouldPromptToCreatePasskey() {
100
+ await this.ensureModuleIsInitialized();
101
+ return await AuthsignalPasskeyModule.shouldPromptToCreatePasskey();
102
+ }
98
103
 
99
104
  /**
100
105
  * @deprecated Use 'preferImmediatelyAvailableCredentials' to control what happens when a passkey isn't available.
@@ -1 +1 @@
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","isSupported","Version","parseInt","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
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","ignorePasskeyAlreadyExistsError","ensureModuleIsInitialized","data","ex","console","log","signIn","action","autofill","preferImmediatelyAvailableCredentials","OS","cancel","isSupported","Version","parseInt","shouldPromptToCreatePasskey","isAvailableOnDevice","initialize"],"sourceRoot":"../../src","sources":["passkey.ts"],"mappings":"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"}
@@ -2,6 +2,7 @@ export declare const LINKING_ERROR: string;
2
2
  export declare enum ErrorCode {
3
3
  user_canceled = "user_canceled",
4
4
  no_credential = "no_credential",
5
+ matched_excluded_credential = "matched_excluded_credential",
5
6
  token_not_set = "token_not_set",
6
7
  token_required = "token_required",
7
8
  token_invalid = "token_invalid"
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,QAIO,CAAC;AAElC,oBAAY,SAAS;IACnB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,GAAG,iBAKvC;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,QAIO,CAAC;AAElC,oBAAY,SAAS;IACnB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,2BAA2B,gCAAgC;IAC3D,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,GAAG,iBAKvC;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -9,6 +9,7 @@ interface PasskeySignUpInput {
9
9
  token?: string;
10
10
  username?: string;
11
11
  displayName?: string;
12
+ ignorePasskeyAlreadyExistsError?: boolean;
12
13
  }
13
14
  interface PasskeySignInInput {
14
15
  action?: string;
@@ -22,10 +23,11 @@ export declare class AuthsignalPasskey {
22
23
  deviceID?: string;
23
24
  enableLogging: boolean;
24
25
  constructor({ tenantID, baseURL, deviceID, enableLogging }: ConstructorArgs);
25
- signUp({ token, username, displayName, }?: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>>;
26
+ signUp({ token, username, displayName, ignorePasskeyAlreadyExistsError, }?: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>>;
26
27
  signIn({ action, token, autofill, preferImmediatelyAvailableCredentials, }?: PasskeySignInInput): Promise<AuthsignalResponse<SignInResponse>>;
27
28
  cancel(): void;
28
29
  isSupported(): boolean;
30
+ shouldPromptToCreatePasskey(): Promise<boolean>;
29
31
  /**
30
32
  * @deprecated Use 'preferImmediatelyAvailableCredentials' to control what happens when a passkey isn't available.
31
33
  */
@@ -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,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;IAMN,WAAW,IAAI,OAAO;IAUtB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;YAM/B,yBAAyB;CAaxC"}
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;IACrB,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;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,EACX,+BAAuC,GACxC,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAqBlE,MAAM,CAAC,EACX,MAAM,EACN,KAAK,EACL,QAAgB,EAChB,qCAA4C,GAC7C,GAAE,kBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IA6CxE,MAAM;IAMN,WAAW,IAAI,OAAO;IAUhB,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;YAM/B,yBAAyB;CAaxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-authsignal",
3
- "version": "1.7.1",
3
+ "version": "1.8.0",
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.5.1'
20
+ s.dependency 'Authsignal', '1.6.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/error.ts CHANGED
@@ -9,6 +9,7 @@ export const LINKING_ERROR =
9
9
  export enum ErrorCode {
10
10
  user_canceled = 'user_canceled',
11
11
  no_credential = 'no_credential',
12
+ matched_excluded_credential = 'matched_excluded_credential',
12
13
  token_not_set = 'token_not_set',
13
14
  token_required = 'token_required',
14
15
  token_invalid = 'token_invalid',
package/src/passkey.ts CHANGED
@@ -17,6 +17,7 @@ interface PasskeySignUpInput {
17
17
  token?: string;
18
18
  username?: string;
19
19
  displayName?: string;
20
+ ignorePasskeyAlreadyExistsError?: boolean;
20
21
  }
21
22
 
22
23
  interface PasskeySignInInput {
@@ -57,6 +58,7 @@ export class AuthsignalPasskey {
57
58
  token,
58
59
  username,
59
60
  displayName,
61
+ ignorePasskeyAlreadyExistsError = false,
60
62
  }: PasskeySignUpInput = {}): Promise<AuthsignalResponse<SignUpResponse>> {
61
63
  await this.ensureModuleIsInitialized();
62
64
 
@@ -64,7 +66,8 @@ export class AuthsignalPasskey {
64
66
  const data = await AuthsignalPasskeyModule.signUp(
65
67
  token,
66
68
  username,
67
- displayName
69
+ displayName,
70
+ ignorePasskeyAlreadyExistsError
68
71
  );
69
72
 
70
73
  return { data };
@@ -143,6 +146,12 @@ export class AuthsignalPasskey {
143
146
  }
144
147
  }
145
148
 
149
+ async shouldPromptToCreatePasskey(): Promise<boolean> {
150
+ await this.ensureModuleIsInitialized();
151
+
152
+ return await AuthsignalPasskeyModule.shouldPromptToCreatePasskey();
153
+ }
154
+
146
155
  /**
147
156
  * @deprecated Use 'preferImmediatelyAvailableCredentials' to control what happens when a passkey isn't available.
148
157
  */