react-native-nitro-auth 0.5.1 → 0.5.4
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/README.md +362 -190
- package/android/build.gradle +2 -5
- package/android/src/main/cpp/PlatformAuth+Android.cpp +84 -18
- package/android/src/main/java/com/auth/AuthAdapter.kt +82 -182
- package/android/src/main/java/com/auth/NitroAuthPackage.kt +1 -1
- package/app.plugin.js +2 -9
- package/cpp/AuthCache.cpp +0 -134
- package/cpp/AuthCache.hpp +0 -7
- package/cpp/HybridAuth.cpp +57 -63
- package/cpp/HybridAuth.hpp +3 -4
- package/ios/AuthAdapter.swift +23 -25
- package/lib/commonjs/Auth.web.js +523 -201
- package/lib/commonjs/Auth.web.js.map +1 -1
- package/lib/commonjs/index.js +0 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +0 -12
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/js-storage-adapter.js +2 -0
- package/lib/commonjs/js-storage-adapter.js.map +1 -0
- package/lib/commonjs/service.js +9 -86
- package/lib/commonjs/service.js.map +1 -1
- package/lib/commonjs/service.web.js +1 -5
- package/lib/commonjs/service.web.js.map +1 -1
- package/lib/commonjs/ui/social-button.js +44 -29
- package/lib/commonjs/ui/social-button.js.map +1 -1
- package/lib/commonjs/ui/social-button.web.js +44 -29
- package/lib/commonjs/ui/social-button.web.js.map +1 -1
- package/lib/commonjs/use-auth.js +56 -42
- package/lib/commonjs/use-auth.js.map +1 -1
- package/lib/commonjs/utils/logger.js +12 -4
- package/lib/commonjs/utils/logger.js.map +1 -1
- package/lib/module/Auth.web.js +523 -201
- package/lib/module/Auth.web.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +0 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/js-storage-adapter.js +2 -0
- package/lib/module/js-storage-adapter.js.map +1 -0
- package/lib/module/service.js +9 -86
- package/lib/module/service.js.map +1 -1
- package/lib/module/service.web.js +1 -5
- package/lib/module/service.web.js.map +1 -1
- package/lib/module/ui/social-button.js +44 -29
- package/lib/module/ui/social-button.js.map +1 -1
- package/lib/module/ui/social-button.web.js +44 -29
- package/lib/module/ui/social-button.web.js.map +1 -1
- package/lib/module/use-auth.js +56 -42
- package/lib/module/use-auth.js.map +1 -1
- package/lib/module/utils/logger.js +12 -4
- package/lib/module/utils/logger.js.map +1 -1
- package/lib/typescript/commonjs/Auth.nitro.d.ts +3 -3
- package/lib/typescript/commonjs/Auth.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/Auth.web.d.ts +25 -6
- package/lib/typescript/commonjs/Auth.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +0 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/js-storage-adapter.d.ts +6 -0
- package/lib/typescript/commonjs/js-storage-adapter.d.ts.map +1 -0
- package/lib/typescript/commonjs/service.d.ts +1 -8
- package/lib/typescript/commonjs/service.d.ts.map +1 -1
- package/lib/typescript/commonjs/service.web.d.ts +1 -8
- package/lib/typescript/commonjs/service.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/social-button.d.ts +6 -6
- package/lib/typescript/commonjs/ui/social-button.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/social-button.web.d.ts +6 -6
- package/lib/typescript/commonjs/ui/social-button.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-auth.d.ts +4 -4
- package/lib/typescript/commonjs/use-auth.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/logger.d.ts +4 -4
- package/lib/typescript/commonjs/utils/logger.d.ts.map +1 -1
- package/lib/typescript/module/Auth.nitro.d.ts +3 -3
- package/lib/typescript/module/Auth.nitro.d.ts.map +1 -1
- package/lib/typescript/module/Auth.web.d.ts +25 -6
- package/lib/typescript/module/Auth.web.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +0 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/js-storage-adapter.d.ts +6 -0
- package/lib/typescript/module/js-storage-adapter.d.ts.map +1 -0
- package/lib/typescript/module/service.d.ts +1 -8
- package/lib/typescript/module/service.d.ts.map +1 -1
- package/lib/typescript/module/service.web.d.ts +1 -8
- package/lib/typescript/module/service.web.d.ts.map +1 -1
- package/lib/typescript/module/ui/social-button.d.ts +6 -6
- package/lib/typescript/module/ui/social-button.d.ts.map +1 -1
- package/lib/typescript/module/ui/social-button.web.d.ts +6 -6
- package/lib/typescript/module/ui/social-button.web.d.ts.map +1 -1
- package/lib/typescript/module/use-auth.d.ts +4 -4
- package/lib/typescript/module/use-auth.d.ts.map +1 -1
- package/lib/typescript/module/utils/logger.d.ts +4 -4
- package/lib/typescript/module/utils/logger.d.ts.map +1 -1
- package/nitrogen/generated/android/NitroAuth+autolinking.cmake +0 -1
- package/nitrogen/generated/shared/c++/AuthTokens.hpp +5 -1
- package/nitrogen/generated/shared/c++/AuthUser.hpp +5 -1
- package/nitrogen/generated/shared/c++/HybridAuthSpec.cpp +0 -1
- package/nitrogen/generated/shared/c++/HybridAuthSpec.hpp +0 -5
- package/package.json +11 -8
- package/react-native-nitro-auth.podspec +1 -1
- package/src/Auth.nitro.ts +4 -3
- package/src/Auth.web.ts +700 -246
- package/src/global.d.ts +0 -1
- package/src/index.ts +1 -2
- package/src/index.web.ts +0 -1
- package/src/js-storage-adapter.ts +5 -0
- package/src/service.ts +13 -106
- package/src/service.web.ts +0 -7
- package/src/ui/social-button.tsx +66 -43
- package/src/ui/social-button.web.tsx +67 -44
- package/src/use-auth.ts +116 -72
- package/src/utils/logger.ts +12 -4
- package/ios/KeychainStore.swift +0 -43
- package/lib/commonjs/AuthStorage.nitro.js +0 -6
- package/lib/commonjs/AuthStorage.nitro.js.map +0 -1
- package/lib/module/AuthStorage.nitro.js +0 -4
- package/lib/module/AuthStorage.nitro.js.map +0 -1
- package/lib/typescript/commonjs/AuthStorage.nitro.d.ts +0 -26
- package/lib/typescript/commonjs/AuthStorage.nitro.d.ts.map +0 -1
- package/lib/typescript/module/AuthStorage.nitro.d.ts +0 -26
- package/lib/typescript/module/AuthStorage.nitro.d.ts.map +0 -1
- package/nitrogen/generated/shared/c++/HybridAuthStorageAdapterSpec.cpp +0 -23
- package/nitrogen/generated/shared/c++/HybridAuthStorageAdapterSpec.hpp +0 -65
- package/src/AuthStorage.nitro.ts +0 -26
|
@@ -4,6 +4,28 @@ import React, { useState } from "react";
|
|
|
4
4
|
import { Pressable, Text, StyleSheet, View, ActivityIndicator } from "react-native";
|
|
5
5
|
import { AuthModule } from "../Auth.web.js";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
const PROVIDER_LABELS = {
|
|
8
|
+
google: "Google",
|
|
9
|
+
apple: "Apple",
|
|
10
|
+
microsoft: "Microsoft"
|
|
11
|
+
};
|
|
12
|
+
const PROVIDER_PRIMARY_BACKGROUND = {
|
|
13
|
+
google: "#4285F4",
|
|
14
|
+
apple: "#000000",
|
|
15
|
+
microsoft: "#2F2F2F"
|
|
16
|
+
};
|
|
17
|
+
const getBackgroundColor = ({
|
|
18
|
+
disabled,
|
|
19
|
+
variant,
|
|
20
|
+
provider
|
|
21
|
+
}) => {
|
|
22
|
+
if (disabled) return "#CCCCCC";
|
|
23
|
+
if (variant === "black") return "#000000";
|
|
24
|
+
if (variant === "white") return "#FFFFFF";
|
|
25
|
+
if (variant === "outline") return "transparent";
|
|
26
|
+
return PROVIDER_PRIMARY_BACKGROUND[provider];
|
|
27
|
+
};
|
|
28
|
+
const getTextColor = variant => variant === "white" || variant === "outline" ? "#000000" : "#FFFFFF";
|
|
7
29
|
async function performLogin(provider) {
|
|
8
30
|
await AuthModule.login(provider);
|
|
9
31
|
}
|
|
@@ -19,45 +41,37 @@ export const SocialButton = ({
|
|
|
19
41
|
onPress
|
|
20
42
|
}) => {
|
|
21
43
|
const [loading, setLoading] = useState(false);
|
|
22
|
-
const handleLogin = () => {
|
|
44
|
+
const handleLogin = async () => {
|
|
23
45
|
if (loading || disabled) return;
|
|
24
46
|
if (onPress) {
|
|
25
47
|
onPress();
|
|
26
48
|
return;
|
|
27
49
|
}
|
|
28
50
|
setLoading(true);
|
|
29
|
-
|
|
30
|
-
|
|
51
|
+
try {
|
|
52
|
+
await performLogin(provider);
|
|
31
53
|
const user = AuthModule.currentUser;
|
|
32
|
-
if (user)
|
|
33
|
-
|
|
54
|
+
if (user) {
|
|
55
|
+
onSuccess?.(user);
|
|
56
|
+
}
|
|
57
|
+
} catch (error) {
|
|
58
|
+
onError?.(error);
|
|
59
|
+
} finally {
|
|
34
60
|
setLoading(false);
|
|
35
|
-
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
const isGoogle = provider === "google";
|
|
39
|
-
const isMicrosoft = provider === "microsoft";
|
|
40
|
-
const isDisabled = loading || disabled;
|
|
41
|
-
const getBackgroundColor = () => {
|
|
42
|
-
if (isDisabled) return "#CCCCCC";
|
|
43
|
-
if (variant === "black") return "#000000";
|
|
44
|
-
if (variant === "white") return "#FFFFFF";
|
|
45
|
-
if (variant === "outline") return "transparent";
|
|
46
|
-
if (isGoogle) return "#4285F4";
|
|
47
|
-
if (isMicrosoft) return "#2F2F2F";
|
|
48
|
-
return "#000000";
|
|
49
|
-
};
|
|
50
|
-
const getTextColor = () => {
|
|
51
|
-
if (variant === "white" || variant === "outline") return "#000000";
|
|
52
|
-
return "#FFFFFF";
|
|
61
|
+
}
|
|
53
62
|
};
|
|
63
|
+
const isDisabled = loading || disabled === true;
|
|
54
64
|
const getBorderColor = () => {
|
|
55
65
|
if (variant === "outline") return "#DDDDDD";
|
|
56
66
|
return "transparent";
|
|
57
67
|
};
|
|
58
68
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
59
69
|
style: [styles.button, {
|
|
60
|
-
backgroundColor: getBackgroundColor(
|
|
70
|
+
backgroundColor: getBackgroundColor({
|
|
71
|
+
disabled: isDisabled,
|
|
72
|
+
variant,
|
|
73
|
+
provider
|
|
74
|
+
}),
|
|
61
75
|
borderRadius,
|
|
62
76
|
borderColor: getBorderColor(),
|
|
63
77
|
borderWidth: variant === "outline" ? 1 : 0
|
|
@@ -68,7 +82,7 @@ export const SocialButton = ({
|
|
|
68
82
|
style: styles.content,
|
|
69
83
|
children: loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
70
84
|
size: "small",
|
|
71
|
-
color: getTextColor()
|
|
85
|
+
color: getTextColor(variant)
|
|
72
86
|
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
73
87
|
children: [provider === "google" && variant !== "primary" && /*#__PURE__*/_jsx(View, {
|
|
74
88
|
style: styles.iconPlaceholder,
|
|
@@ -83,8 +97,9 @@ export const SocialButton = ({
|
|
|
83
97
|
children: /*#__PURE__*/_jsx(Text, {
|
|
84
98
|
style: {
|
|
85
99
|
fontSize: 18,
|
|
86
|
-
color: getTextColor()
|
|
87
|
-
}
|
|
100
|
+
color: getTextColor(variant)
|
|
101
|
+
},
|
|
102
|
+
children: "\uF8FF"
|
|
88
103
|
})
|
|
89
104
|
}), provider === "microsoft" && variant !== "primary" && /*#__PURE__*/_jsx(View, {
|
|
90
105
|
style: styles.iconPlaceholder,
|
|
@@ -96,9 +111,9 @@ export const SocialButton = ({
|
|
|
96
111
|
})
|
|
97
112
|
}), /*#__PURE__*/_jsxs(Text, {
|
|
98
113
|
style: [styles.text, {
|
|
99
|
-
color: getTextColor()
|
|
114
|
+
color: getTextColor(variant)
|
|
100
115
|
}, textStyle],
|
|
101
|
-
children: ["Sign in with
|
|
116
|
+
children: ["Sign in with ", PROVIDER_LABELS[provider]]
|
|
102
117
|
})]
|
|
103
118
|
})
|
|
104
119
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Pressable","Text","StyleSheet","View","ActivityIndicator","AuthModule","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","
|
|
1
|
+
{"version":3,"names":["React","useState","Pressable","Text","StyleSheet","View","ActivityIndicator","AuthModule","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PROVIDER_LABELS","google","apple","microsoft","PROVIDER_PRIMARY_BACKGROUND","getBackgroundColor","disabled","variant","provider","getTextColor","performLogin","login","SocialButton","borderRadius","style","textStyle","onSuccess","onError","onPress","loading","setLoading","handleLogin","user","currentUser","error","isDisabled","getBorderColor","styles","button","backgroundColor","borderColor","borderWidth","children","content","size","color","iconPlaceholder","fontSize","text","create","paddingVertical","paddingHorizontal","minHeight","justifyContent","alignItems","width","flexDirection","marginRight","height","fontWeight"],"sourceRoot":"../../../src","sources":["ui/social-button.web.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/use-auth.js
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
import { useState, useEffect, useCallback, useMemo } from "react";
|
|
4
4
|
import { AuthService } from "./service";
|
|
5
|
+
const areScopesEqual = (left, right) => {
|
|
6
|
+
if (left.length !== right.length) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
for (let index = 0; index < left.length; index += 1) {
|
|
10
|
+
if (left[index] !== right[index]) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
};
|
|
16
|
+
class AuthHookError extends Error {
|
|
17
|
+
constructor(message, underlyingError) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = "AuthHookError";
|
|
20
|
+
this.underlyingError = underlyingError;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
5
23
|
export function useAuth() {
|
|
6
24
|
const [state, setState] = useState({
|
|
7
25
|
user: AuthService.currentUser,
|
|
@@ -9,6 +27,21 @@ export function useAuth() {
|
|
|
9
27
|
loading: false,
|
|
10
28
|
error: undefined
|
|
11
29
|
});
|
|
30
|
+
const syncStateFromService = useCallback((nextLoading, nextError) => {
|
|
31
|
+
const nextUser = AuthService.currentUser;
|
|
32
|
+
const nextScopes = AuthService.grantedScopes;
|
|
33
|
+
setState(prev => {
|
|
34
|
+
if (prev.loading === nextLoading && prev.error === nextError && prev.user === nextUser && areScopesEqual(prev.scopes, nextScopes)) {
|
|
35
|
+
return prev;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
user: nextUser,
|
|
39
|
+
scopes: nextScopes,
|
|
40
|
+
loading: nextLoading,
|
|
41
|
+
error: nextError
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}, []);
|
|
12
45
|
const login = useCallback(async (provider, options) => {
|
|
13
46
|
setState(prev => ({
|
|
14
47
|
...prev,
|
|
@@ -17,12 +50,7 @@ export function useAuth() {
|
|
|
17
50
|
}));
|
|
18
51
|
try {
|
|
19
52
|
await AuthService.login(provider, options);
|
|
20
|
-
|
|
21
|
-
user: AuthService.currentUser,
|
|
22
|
-
scopes: AuthService.grantedScopes,
|
|
23
|
-
loading: false,
|
|
24
|
-
error: undefined
|
|
25
|
-
});
|
|
53
|
+
syncStateFromService(false, undefined);
|
|
26
54
|
} catch (e) {
|
|
27
55
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
28
56
|
setState(prev => ({
|
|
@@ -32,7 +60,7 @@ export function useAuth() {
|
|
|
32
60
|
}));
|
|
33
61
|
throw error;
|
|
34
62
|
}
|
|
35
|
-
}, []);
|
|
63
|
+
}, [syncStateFromService]);
|
|
36
64
|
const logout = useCallback(() => {
|
|
37
65
|
AuthService.logout();
|
|
38
66
|
setState({
|
|
@@ -50,12 +78,7 @@ export function useAuth() {
|
|
|
50
78
|
}));
|
|
51
79
|
try {
|
|
52
80
|
await AuthService.requestScopes(newScopes);
|
|
53
|
-
|
|
54
|
-
user: AuthService.currentUser,
|
|
55
|
-
scopes: AuthService.grantedScopes,
|
|
56
|
-
loading: false,
|
|
57
|
-
error: undefined
|
|
58
|
-
});
|
|
81
|
+
syncStateFromService(false, undefined);
|
|
59
82
|
} catch (e) {
|
|
60
83
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
61
84
|
setState(prev => ({
|
|
@@ -65,7 +88,7 @@ export function useAuth() {
|
|
|
65
88
|
}));
|
|
66
89
|
throw error;
|
|
67
90
|
}
|
|
68
|
-
}, []);
|
|
91
|
+
}, [syncStateFromService]);
|
|
69
92
|
const revokeScopes = useCallback(async scopesToRevoke => {
|
|
70
93
|
setState(prev => ({
|
|
71
94
|
...prev,
|
|
@@ -74,12 +97,7 @@ export function useAuth() {
|
|
|
74
97
|
}));
|
|
75
98
|
try {
|
|
76
99
|
await AuthService.revokeScopes(scopesToRevoke);
|
|
77
|
-
|
|
78
|
-
user: AuthService.currentUser,
|
|
79
|
-
scopes: AuthService.grantedScopes,
|
|
80
|
-
loading: false,
|
|
81
|
-
error: undefined
|
|
82
|
-
});
|
|
100
|
+
syncStateFromService(false, undefined);
|
|
83
101
|
} catch (e) {
|
|
84
102
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
85
103
|
setState(prev => ({
|
|
@@ -89,7 +107,7 @@ export function useAuth() {
|
|
|
89
107
|
}));
|
|
90
108
|
throw error;
|
|
91
109
|
}
|
|
92
|
-
}, []);
|
|
110
|
+
}, [syncStateFromService]);
|
|
93
111
|
const getAccessToken = useCallback(() => AuthService.getAccessToken(), []);
|
|
94
112
|
const refreshToken = useCallback(async () => {
|
|
95
113
|
setState(prev => ({
|
|
@@ -99,17 +117,11 @@ export function useAuth() {
|
|
|
99
117
|
}));
|
|
100
118
|
try {
|
|
101
119
|
const tokens = await AuthService.refreshToken();
|
|
102
|
-
|
|
103
|
-
user: AuthService.currentUser,
|
|
104
|
-
scopes: AuthService.grantedScopes,
|
|
105
|
-
loading: false,
|
|
106
|
-
error: undefined
|
|
107
|
-
});
|
|
120
|
+
syncStateFromService(false, undefined);
|
|
108
121
|
return tokens;
|
|
109
122
|
} catch (e) {
|
|
110
123
|
const msg = e instanceof Error ? e.message : String(e);
|
|
111
|
-
const authError = new
|
|
112
|
-
authError.underlyingError = AuthService.currentUser?.underlyingError;
|
|
124
|
+
const authError = new AuthHookError(msg, AuthService.currentUser?.underlyingError);
|
|
113
125
|
setState(prev => ({
|
|
114
126
|
...prev,
|
|
115
127
|
loading: false,
|
|
@@ -117,7 +129,7 @@ export function useAuth() {
|
|
|
117
129
|
}));
|
|
118
130
|
throw authError;
|
|
119
131
|
}
|
|
120
|
-
}, []);
|
|
132
|
+
}, [syncStateFromService]);
|
|
121
133
|
const silentRestore = useCallback(async () => {
|
|
122
134
|
setState(prev => ({
|
|
123
135
|
...prev,
|
|
@@ -126,12 +138,7 @@ export function useAuth() {
|
|
|
126
138
|
}));
|
|
127
139
|
try {
|
|
128
140
|
await AuthService.silentRestore();
|
|
129
|
-
|
|
130
|
-
user: AuthService.currentUser,
|
|
131
|
-
scopes: AuthService.grantedScopes,
|
|
132
|
-
loading: false,
|
|
133
|
-
error: undefined
|
|
134
|
-
});
|
|
141
|
+
syncStateFromService(false, undefined);
|
|
135
142
|
} catch (e) {
|
|
136
143
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
137
144
|
setState(prev => ({
|
|
@@ -141,14 +148,21 @@ export function useAuth() {
|
|
|
141
148
|
}));
|
|
142
149
|
throw error;
|
|
143
150
|
}
|
|
144
|
-
}, []);
|
|
151
|
+
}, [syncStateFromService]);
|
|
145
152
|
useEffect(() => {
|
|
146
153
|
const unsubscribe = AuthService.onAuthStateChanged(currentUser => {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
user
|
|
150
|
-
|
|
151
|
-
|
|
154
|
+
const nextScopes = AuthService.grantedScopes;
|
|
155
|
+
setState(prev => {
|
|
156
|
+
if (prev.user === currentUser && areScopesEqual(prev.scopes, nextScopes) && prev.loading === false) {
|
|
157
|
+
return prev;
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
...prev,
|
|
161
|
+
user: currentUser,
|
|
162
|
+
scopes: nextScopes,
|
|
163
|
+
loading: false
|
|
164
|
+
};
|
|
165
|
+
});
|
|
152
166
|
});
|
|
153
167
|
return unsubscribe;
|
|
154
168
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","useAuth","state","setState","user","currentUser","scopes","grantedScopes","loading","error","undefined","
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useCallback","useMemo","AuthService","areScopesEqual","left","right","length","index","AuthHookError","Error","constructor","message","underlyingError","name","useAuth","state","setState","user","currentUser","scopes","grantedScopes","loading","error","undefined","syncStateFromService","nextLoading","nextError","nextUser","nextScopes","prev","login","provider","options","e","String","logout","requestScopes","newScopes","revokeScopes","scopesToRevoke","getAccessToken","refreshToken","tokens","msg","authError","silentRestore","unsubscribe","onAuthStateChanged","hasPlayServices"],"sourceRoot":"../../src","sources":["use-auth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,9 +5,17 @@ export const logger = {
|
|
|
5
5
|
setEnabled(value) {
|
|
6
6
|
enabled = value;
|
|
7
7
|
},
|
|
8
|
-
log: (...args) =>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
log: (...args) => {
|
|
9
|
+
if (enabled) console.log("[NitroAuth]", ...args);
|
|
10
|
+
},
|
|
11
|
+
warn: (...args) => {
|
|
12
|
+
if (enabled) console.warn("[NitroAuth]", ...args);
|
|
13
|
+
},
|
|
14
|
+
error: (...args) => {
|
|
15
|
+
if (enabled) console.error("[NitroAuth]", ...args);
|
|
16
|
+
},
|
|
17
|
+
debug: (...args) => {
|
|
18
|
+
if (enabled) console.debug("[NitroAuth]", ...args);
|
|
19
|
+
}
|
|
12
20
|
};
|
|
13
21
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["enabled","logger","setEnabled","value","log","args","console","warn","error","debug"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":";;AAAA,IAAIA,OAAO,GAAG,KAAK;AAEnB,OAAO,MAAMC,MAAM,GAAG;EACpBC,UAAUA,CAACC,KAAc,EAAQ;IAC/BH,OAAO,GAAGG,KAAK;EACjB,CAAC;EACDC,GAAG,EAAEA,CAAC,GAAGC,IAAe,
|
|
1
|
+
{"version":3,"names":["enabled","logger","setEnabled","value","log","args","console","warn","error","debug"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":";;AAAA,IAAIA,OAAO,GAAG,KAAK;AAEnB,OAAO,MAAMC,MAAM,GAAG;EACpBC,UAAUA,CAACC,KAAc,EAAQ;IAC/BH,OAAO,GAAGG,KAAK;EACjB,CAAC;EACDC,GAAG,EAAEA,CAAC,GAAGC,IAAe,KAAK;IAC3B,IAAIL,OAAO,EAAEM,OAAO,CAACF,GAAG,CAAC,aAAa,EAAE,GAAGC,IAAI,CAAC;EAClD,CAAC;EACDE,IAAI,EAAEA,CAAC,GAAGF,IAAe,KAAK;IAC5B,IAAIL,OAAO,EAAEM,OAAO,CAACC,IAAI,CAAC,aAAa,EAAE,GAAGF,IAAI,CAAC;EACnD,CAAC;EACDG,KAAK,EAAEA,CAAC,GAAGH,IAAe,KAAK;IAC7B,IAAIL,OAAO,EAAEM,OAAO,CAACE,KAAK,CAAC,aAAa,EAAE,GAAGH,IAAI,CAAC;EACpD,CAAC;EACDI,KAAK,EAAEA,CAAC,GAAGJ,IAAe,KAAK;IAC7B,IAAIL,OAAO,EAAEM,OAAO,CAACG,KAAK,CAAC,aAAa,EAAE,GAAGJ,IAAI,CAAC;EACpD;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { HybridObject } from "react-native-nitro-modules";
|
|
2
|
-
import type { AuthStorageAdapter } from "./AuthStorage.nitro";
|
|
3
2
|
export type AuthProvider = "google" | "apple" | "microsoft";
|
|
4
|
-
export type AuthErrorCode = "cancelled" | "network_error" | "configuration_error" | "unsupported_provider" | "invalid_state" | "invalid_nonce" | "token_error" | "no_id_token" | "parse_error" | "refresh_failed" | "unknown";
|
|
3
|
+
export type AuthErrorCode = "cancelled" | "timeout" | "popup_blocked" | "network_error" | "configuration_error" | "unsupported_provider" | "invalid_state" | "invalid_nonce" | "token_error" | "no_id_token" | "parse_error" | "refresh_failed" | "unknown";
|
|
5
4
|
export type MicrosoftPrompt = "login" | "consent" | "select_account" | "none";
|
|
6
5
|
export interface LoginOptions {
|
|
7
6
|
scopes?: string[];
|
|
@@ -21,6 +20,7 @@ export interface LoginOptions {
|
|
|
21
20
|
export interface AuthTokens {
|
|
22
21
|
accessToken?: string;
|
|
23
22
|
idToken?: string;
|
|
23
|
+
refreshToken?: string;
|
|
24
24
|
expirationTime?: number;
|
|
25
25
|
}
|
|
26
26
|
export interface AuthUser {
|
|
@@ -30,6 +30,7 @@ export interface AuthUser {
|
|
|
30
30
|
photo?: string;
|
|
31
31
|
idToken?: string;
|
|
32
32
|
accessToken?: string;
|
|
33
|
+
refreshToken?: string;
|
|
33
34
|
serverAuthCode?: string;
|
|
34
35
|
scopes?: string[];
|
|
35
36
|
expirationTime?: number;
|
|
@@ -53,6 +54,5 @@ export interface Auth extends HybridObject<{
|
|
|
53
54
|
onAuthStateChanged(callback: (user: AuthUser | undefined) => void): () => void;
|
|
54
55
|
onTokensRefreshed(callback: (tokens: AuthTokens) => void): () => void;
|
|
55
56
|
setLoggingEnabled(enabled: boolean): void;
|
|
56
|
-
setStorageAdapter(adapter: AuthStorageAdapter | undefined): void;
|
|
57
57
|
}
|
|
58
58
|
//# sourceMappingURL=Auth.nitro.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.nitro.d.ts","sourceRoot":"","sources":["../../../src/Auth.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,
|
|
1
|
+
{"version":3,"file":"Auth.nitro.d.ts","sourceRoot":"","sources":["../../../src/Auth.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
import type { Auth, AuthUser, AuthProvider, LoginOptions, AuthTokens } from "./Auth.nitro";
|
|
2
|
-
import type {
|
|
2
|
+
import type { JSStorageAdapter } from "./js-storage-adapter";
|
|
3
3
|
declare class AuthWeb implements Auth {
|
|
4
|
+
private readonly _config;
|
|
4
5
|
private _currentUser;
|
|
5
6
|
private _grantedScopes;
|
|
6
7
|
private _listeners;
|
|
7
8
|
private _tokenListeners;
|
|
8
9
|
private _storageAdapter;
|
|
10
|
+
private _browserStorageResolved;
|
|
11
|
+
private _browserStorageCache;
|
|
12
|
+
private _refreshPromise;
|
|
13
|
+
private _appleSdkLoadPromise;
|
|
9
14
|
constructor();
|
|
15
|
+
private isPromiseLike;
|
|
16
|
+
private createWebStorageDriver;
|
|
17
|
+
private shouldPersistTokensInStorage;
|
|
18
|
+
private getWebStorageMode;
|
|
19
|
+
private getBrowserStorage;
|
|
20
|
+
private saveValue;
|
|
21
|
+
private loadValue;
|
|
22
|
+
private removeValue;
|
|
23
|
+
private removePersistedBrowserValue;
|
|
24
|
+
private sanitizeUserForPersistence;
|
|
25
|
+
private saveRefreshToken;
|
|
26
|
+
private loadRefreshToken;
|
|
10
27
|
private loadFromCache;
|
|
11
28
|
private removeFromCache;
|
|
12
29
|
get currentUser(): AuthUser | undefined;
|
|
@@ -19,11 +36,12 @@ declare class AuthWeb implements Auth {
|
|
|
19
36
|
requestScopes(scopes: string[]): Promise<void>;
|
|
20
37
|
revokeScopes(scopes: string[]): Promise<void>;
|
|
21
38
|
getAccessToken(): Promise<string | undefined>;
|
|
22
|
-
refreshToken(): Promise<
|
|
23
|
-
|
|
24
|
-
idToken?: string;
|
|
25
|
-
}>;
|
|
39
|
+
refreshToken(): Promise<AuthTokens>;
|
|
40
|
+
private performRefreshToken;
|
|
26
41
|
private mapError;
|
|
42
|
+
private parseResponseObject;
|
|
43
|
+
private parseJwtPayload;
|
|
44
|
+
private waitForPopupRedirect;
|
|
27
45
|
private loginGoogle;
|
|
28
46
|
private decodeGoogleJwt;
|
|
29
47
|
private loginMicrosoft;
|
|
@@ -33,12 +51,13 @@ declare class AuthWeb implements Auth {
|
|
|
33
51
|
private exchangeMicrosoftCodeForTokens;
|
|
34
52
|
private getMicrosoftAuthBaseUrl;
|
|
35
53
|
private decodeMicrosoftJwt;
|
|
54
|
+
private ensureAppleSdkLoaded;
|
|
36
55
|
private loginApple;
|
|
37
56
|
silentRestore(): Promise<void>;
|
|
38
57
|
logout(): void;
|
|
39
58
|
private updateUser;
|
|
40
59
|
setLoggingEnabled(enabled: boolean): void;
|
|
41
|
-
|
|
60
|
+
setWebStorageAdapter(adapter: JSStorageAdapter | undefined): void;
|
|
42
61
|
name: string;
|
|
43
62
|
dispose(): void;
|
|
44
63
|
equals(other: unknown): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.web.d.ts","sourceRoot":"","sources":["../../../src/Auth.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Auth.web.d.ts","sourceRoot":"","sources":["../../../src/Auth.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgK7D,cAAM,OAAQ,YAAW,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,oBAAoB,CAA4B;;IAOxD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,eAAe;IAIvB,IAAI,WAAW,IAAI,QAAQ,GAAG,SAAS,CAEtC;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,GAC7C,MAAM,IAAI;IAQb,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrE,OAAO,CAAC,MAAM;IAMR,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW7C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;YAgB3B,mBAAmB;IA6GjC,OAAO,CAAC,QAAQ;YAoBF,mBAAmB;IAQjC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,oBAAoB;YA8Dd,WAAW;IAgFzB,OAAO,CAAC,eAAe;YAcT,cAAc;IA2G5B,OAAO,CAAC,oBAAoB;YAMd,qBAAqB;IAOnC,OAAO,CAAC,eAAe;YAKT,8BAA8B;IA8E5C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,kBAAkB;YAiBZ,oBAAoB;YA2DpB,UAAU;IAqClB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,UAAU;IAOlB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI;IAQjE,IAAI,SAAU;IACd,OAAO;IACP,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB;AAED,eAAO,MAAM,UAAU,SAAgB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from "./Auth.nitro";
|
|
2
|
-
export * from "./AuthStorage.nitro";
|
|
3
2
|
export * from "./ui/social-button";
|
|
4
3
|
export { useAuth, type UseAuthReturn } from "./use-auth";
|
|
5
|
-
export { AuthService
|
|
4
|
+
export { AuthService } from "./service";
|
|
6
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-storage-adapter.d.ts","sourceRoot":"","sources":["../../../src/js-storage-adapter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC"}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
import type { Auth } from "./Auth.nitro";
|
|
2
|
-
export
|
|
3
|
-
save(key: string, value: string): void | Promise<void>;
|
|
4
|
-
load(key: string): string | undefined | Promise<string | undefined>;
|
|
5
|
-
remove(key: string): void | Promise<void>;
|
|
6
|
-
}
|
|
7
|
-
export declare const AuthService: Auth & {
|
|
8
|
-
setJSStorageAdapter(adapter: JSStorageAdapter | undefined): void;
|
|
9
|
-
};
|
|
2
|
+
export declare const AuthService: Auth;
|
|
10
3
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAKL,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,WAAW,EAAE,IAkEzB,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { AuthStorageAdapter } from "./AuthStorage.nitro";
|
|
2
|
-
import type { JSStorageAdapter } from "./service";
|
|
3
1
|
export declare const AuthService: {
|
|
4
2
|
name: string;
|
|
5
3
|
currentUser: import("./Auth.nitro").AuthUser | undefined;
|
|
@@ -10,17 +8,12 @@ export declare const AuthService: {
|
|
|
10
8
|
requestScopes: (scopes: string[]) => Promise<void>;
|
|
11
9
|
revokeScopes: (scopes: string[]) => Promise<void>;
|
|
12
10
|
getAccessToken: () => Promise<string | undefined>;
|
|
13
|
-
refreshToken: () => Promise<
|
|
14
|
-
accessToken?: string;
|
|
15
|
-
idToken?: string;
|
|
16
|
-
}>;
|
|
11
|
+
refreshToken: () => Promise<import("./Auth.nitro").AuthTokens>;
|
|
17
12
|
silentRestore: () => Promise<void>;
|
|
18
13
|
onAuthStateChanged: (callback: (user: import("./Auth.nitro").AuthUser | undefined) => void) => () => void;
|
|
19
14
|
onTokensRefreshed: (callback: (tokens: import("./Auth.nitro").AuthTokens) => void) => () => void;
|
|
20
15
|
setLoggingEnabled: (enabled: boolean) => void;
|
|
21
|
-
setStorageAdapter: (adapter: AuthStorageAdapter | undefined) => void;
|
|
22
16
|
dispose: () => void;
|
|
23
17
|
equals: (other: unknown) => boolean;
|
|
24
|
-
setJSStorageAdapter(adapter: JSStorageAdapter | undefined): void;
|
|
25
18
|
};
|
|
26
19
|
//# sourceMappingURL=service.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.web.d.ts","sourceRoot":"","sources":["../../../src/service.web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.web.d.ts","sourceRoot":"","sources":["../../../src/service.web.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CA+BvB,CAAC"}
|