react-native-authsignal 1.7.2 → 1.8.1
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/AuthsignalPasskeyModule.kt +15 -3
- package/ios/AuthsignalPasskeyModule.m +4 -0
- package/ios/AuthsignalPasskeyModule.swift +25 -2
- package/lib/commonjs/error.js +1 -0
- package/lib/commonjs/error.js.map +1 -1
- package/lib/commonjs/passkey.js +7 -2
- package/lib/commonjs/passkey.js.map +1 -1
- package/lib/module/error.js +1 -0
- package/lib/module/error.js.map +1 -1
- package/lib/module/passkey.js +7 -2
- package/lib/module/passkey.js.map +1 -1
- package/lib/typescript/error.d.ts +1 -0
- package/lib/typescript/error.d.ts.map +1 -1
- package/lib/typescript/passkey.d.ts +3 -1
- package/lib/typescript/passkey.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-authsignal.podspec +1 -1
- package/src/error.ts +1 -0
- package/src/passkey.ts +10 -1
package/android/build.gradle
CHANGED
|
@@ -40,19 +40,22 @@ 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
|
|
49
49
|
|
|
50
50
|
promise.reject(errorCode, response.error)
|
|
51
|
-
} else {
|
|
51
|
+
} else if (response.data != null) {
|
|
52
52
|
val signUpResponse = response.data
|
|
53
53
|
val map = Arguments.createMap()
|
|
54
54
|
map.putString("token", signUpResponse!!.token)
|
|
55
55
|
promise.resolve(map)
|
|
56
|
+
} else {
|
|
57
|
+
val map = Arguments.createMap()
|
|
58
|
+
promise.resolve(map)
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
}
|
|
@@ -80,6 +83,15 @@ class AuthsignalPasskeyModule(private val reactContext: ReactApplicationContext)
|
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
|
|
86
|
+
@ReactMethod
|
|
87
|
+
fun shouldPromptToCreatePasskey(promise: Promise) {
|
|
88
|
+
launch(promise) {
|
|
89
|
+
val response = it.shouldPromptToCreatePasskey()
|
|
90
|
+
|
|
91
|
+
promise.resolve(response.data ?: false)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
83
95
|
@ReactMethod
|
|
84
96
|
fun isAvailableOnDevice(promise: Promise) {
|
|
85
97
|
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(
|
|
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)
|
package/lib/commonjs/error.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/commonjs/passkey.js
CHANGED
|
@@ -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":";;;;;;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","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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"}
|
package/lib/module/error.js
CHANGED
|
@@ -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";
|
package/lib/module/error.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/module/passkey.js
CHANGED
|
@@ -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":";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","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;
|
|
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
|
@@ -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.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
|
*/
|