@take-out/better-auth-utils 0.0.28
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/LICENSE +21 -0
- package/README.md +137 -0
- package/dist/cjs/createAuthClient.cjs +172 -0
- package/dist/cjs/createAuthClient.js +153 -0
- package/dist/cjs/createAuthClient.js.map +6 -0
- package/dist/cjs/createAuthClient.native.js +161 -0
- package/dist/cjs/createAuthClient.native.js.map +6 -0
- package/dist/cjs/index.cjs +18 -0
- package/dist/cjs/index.js +15 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +20 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/esm/createAuthClient.js +143 -0
- package/dist/esm/createAuthClient.js.map +6 -0
- package/dist/esm/createAuthClient.mjs +149 -0
- package/dist/esm/createAuthClient.mjs.map +1 -0
- package/dist/esm/createAuthClient.native.js +164 -0
- package/dist/esm/createAuthClient.native.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -0
- package/package.json +64 -0
- package/src/createAuthClient.ts +324 -0
- package/src/index.ts +1 -0
- package/types/client.d.ts +10 -0
- package/types/client.d.ts.map +11 -0
- package/types/createAuthClient.d.ts +81 -0
- package/types/createAuthClient.d.ts.map +18 -0
- package/types/hooks/useAuthSession.d.ts +8 -0
- package/types/hooks/useAuthSession.d.ts.map +13 -0
- package/types/hooks/useAuthState.d.ts +7 -0
- package/types/hooks/useAuthState.d.ts.map +13 -0
- package/types/hooks/useAuthUser.d.ts +8 -0
- package/types/hooks/useAuthUser.d.ts.map +13 -0
- package/types/index.d.ts +3 -0
- package/types/index.d.ts.map +11 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
|
+
return to;
|
|
10
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
11
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
12
|
+
var index_exports = {};
|
|
13
|
+
module.exports = __toCommonJS(index_exports);
|
|
14
|
+
__reExport(index_exports, require("./createAuthClient"), module.exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
return to;
|
|
11
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
12
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
13
|
+
var index_exports = {};
|
|
14
|
+
module.exports = __toCommonJS(index_exports);
|
|
15
|
+
__reExport(index_exports, require("./createAuthClient"), module.exports);
|
|
16
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
17
|
+
0 && (module.exports = {
|
|
18
|
+
...require("./createAuthClient")
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createEmitter,
|
|
3
|
+
createLocalStorageValue,
|
|
4
|
+
isEqualDeepLite,
|
|
5
|
+
useEmitterValue
|
|
6
|
+
} from "@take-out/helpers";
|
|
7
|
+
import { createAuthClient } from "better-auth/client";
|
|
8
|
+
function createBetterAuthClient(options) {
|
|
9
|
+
const {
|
|
10
|
+
onAuthStateChange,
|
|
11
|
+
onAuthError,
|
|
12
|
+
createUser,
|
|
13
|
+
storagePrefix = "auth",
|
|
14
|
+
retryDelay = 4e3,
|
|
15
|
+
tokenValidationEndpoint = "/api/auth/validateToken",
|
|
16
|
+
...authClientOptions
|
|
17
|
+
} = options, empty = {
|
|
18
|
+
state: "logged-out",
|
|
19
|
+
session: null,
|
|
20
|
+
user: null,
|
|
21
|
+
token: null
|
|
22
|
+
}, createAuthClientWithSession = (session) => createAuthClient({
|
|
23
|
+
...authClientOptions,
|
|
24
|
+
fetchOptions: {
|
|
25
|
+
headers: {
|
|
26
|
+
Authorization: `Bearer ${session}`
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}), keysStorage = createLocalStorageValue(`${storagePrefix}-keys`), stateStorage = createLocalStorageValue(`${storagePrefix}-state`);
|
|
30
|
+
let authClient = (() => {
|
|
31
|
+
const existingSession = keysStorage.get()?.session;
|
|
32
|
+
return existingSession ? createAuthClientWithSession(existingSession) : createAuthClient(authClientOptions);
|
|
33
|
+
})();
|
|
34
|
+
const authState = createEmitter(
|
|
35
|
+
"authState",
|
|
36
|
+
stateStorage.get() || empty,
|
|
37
|
+
{
|
|
38
|
+
comparator: isEqualDeepLite
|
|
39
|
+
}
|
|
40
|
+
), authClientVersion = createEmitter("authClientVersion", 0), setState = (update) => {
|
|
41
|
+
const next = { ...authState.value, ...update };
|
|
42
|
+
stateStorage.set(next), authState.emit(next), next.token && next.session ? keysStorage.set({
|
|
43
|
+
token: next.token,
|
|
44
|
+
session: next.session.token
|
|
45
|
+
}) : keysStorage.set({
|
|
46
|
+
token: "",
|
|
47
|
+
session: ""
|
|
48
|
+
}), onAuthStateChange?.(next);
|
|
49
|
+
}, setAuthClientToken = async (props) => {
|
|
50
|
+
keysStorage.set(props), updateAuthClient(props.session);
|
|
51
|
+
};
|
|
52
|
+
function updateAuthClient(session) {
|
|
53
|
+
authClient = createAuthClientWithSession(session), authClientVersion.emit(Math.random()), subscribeToAuthEffect();
|
|
54
|
+
}
|
|
55
|
+
let dispose = null, retryTimer = null;
|
|
56
|
+
function subscribeToAuthEffect() {
|
|
57
|
+
dispose?.(), dispose = authClient.useSession.subscribe(async (props) => {
|
|
58
|
+
const { data: dataGeneric, isPending, error } = props;
|
|
59
|
+
if (error) {
|
|
60
|
+
onAuthError?.(error), scheduleAuthRetry(retryDelay);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const data = dataGeneric;
|
|
64
|
+
setState({
|
|
65
|
+
state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
|
|
66
|
+
session: data?.session,
|
|
67
|
+
user: data?.user ? createUser ? createUser(data.user) : data.user : null
|
|
68
|
+
}), data?.session && !authState.value.token && getValidToken().then((token) => {
|
|
69
|
+
token && setState({ token });
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function scheduleAuthRetry(delayMs) {
|
|
74
|
+
retryTimer && clearTimeout(retryTimer), retryTimer = setTimeout(() => {
|
|
75
|
+
retryTimer = null, subscribeToAuthEffect();
|
|
76
|
+
}, delayMs);
|
|
77
|
+
}
|
|
78
|
+
async function getValidToken() {
|
|
79
|
+
const existing = keysStorage.get()?.token;
|
|
80
|
+
if (existing)
|
|
81
|
+
try {
|
|
82
|
+
if ((await fetch(tokenValidationEndpoint, {
|
|
83
|
+
method: "POST",
|
|
84
|
+
headers: {
|
|
85
|
+
"Content-Type": "application/json"
|
|
86
|
+
},
|
|
87
|
+
body: JSON.stringify({
|
|
88
|
+
token: existing
|
|
89
|
+
})
|
|
90
|
+
}).then((res2) => res2.json()))?.valid)
|
|
91
|
+
return existing;
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error("Error validating token:", error);
|
|
94
|
+
}
|
|
95
|
+
const res = await authClient.$fetch("/token");
|
|
96
|
+
if (res.error) {
|
|
97
|
+
console.error(`Error fetching token: ${res.error.statusText}`);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
return res.data?.token;
|
|
101
|
+
}
|
|
102
|
+
const clearAuthClientToken = () => {
|
|
103
|
+
keysStorage.remove();
|
|
104
|
+
}, getAuth = () => {
|
|
105
|
+
const state = authState?.value || empty;
|
|
106
|
+
return {
|
|
107
|
+
...state,
|
|
108
|
+
loggedIn: !!state.session
|
|
109
|
+
};
|
|
110
|
+
}, useAuth = () => useEmitterValue(authState) || empty;
|
|
111
|
+
function clearState() {
|
|
112
|
+
keysStorage.clear(), stateStorage.clear(), setState(empty);
|
|
113
|
+
}
|
|
114
|
+
if (subscribeToAuthEffect(), typeof window < "u" && window.addEventListener) {
|
|
115
|
+
const cleanup = () => {
|
|
116
|
+
dispose?.(), retryTimer && clearTimeout(retryTimer);
|
|
117
|
+
};
|
|
118
|
+
window.addEventListener("beforeunload", cleanup);
|
|
119
|
+
}
|
|
120
|
+
const proxiedAuthClient = new Proxy(authClient, {
|
|
121
|
+
get(_target, key) {
|
|
122
|
+
return key === "signOut" ? async () => {
|
|
123
|
+
clearState(), await authClient.signOut?.(), typeof window < "u" && window.location?.reload?.();
|
|
124
|
+
} : Reflect.get(authClient, key);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
authClientVersion,
|
|
129
|
+
clearState,
|
|
130
|
+
authState,
|
|
131
|
+
authClient: proxiedAuthClient,
|
|
132
|
+
setAuthClientToken,
|
|
133
|
+
clearAuthClientToken,
|
|
134
|
+
useAuth,
|
|
135
|
+
getAuth,
|
|
136
|
+
getValidToken,
|
|
137
|
+
updateAuthClient
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export {
|
|
141
|
+
createBetterAuthClient
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=createAuthClient.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/createAuthClient.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["res"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { createEmitter, createLocalStorageValue, isEqualDeepLite, useEmitterValue } from "@take-out/helpers";
|
|
2
|
+
import { createAuthClient } from "better-auth/client";
|
|
3
|
+
function createBetterAuthClient(options) {
|
|
4
|
+
const {
|
|
5
|
+
onAuthStateChange,
|
|
6
|
+
onAuthError,
|
|
7
|
+
createUser,
|
|
8
|
+
storagePrefix = "auth",
|
|
9
|
+
retryDelay = 4e3,
|
|
10
|
+
tokenValidationEndpoint = "/api/auth/validateToken",
|
|
11
|
+
...authClientOptions
|
|
12
|
+
} = options,
|
|
13
|
+
empty = {
|
|
14
|
+
state: "logged-out",
|
|
15
|
+
session: null,
|
|
16
|
+
user: null,
|
|
17
|
+
token: null
|
|
18
|
+
},
|
|
19
|
+
createAuthClientWithSession = session => createAuthClient({
|
|
20
|
+
...authClientOptions,
|
|
21
|
+
fetchOptions: {
|
|
22
|
+
headers: {
|
|
23
|
+
Authorization: `Bearer ${session}`
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}),
|
|
27
|
+
keysStorage = createLocalStorageValue(`${storagePrefix}-keys`),
|
|
28
|
+
stateStorage = createLocalStorageValue(`${storagePrefix}-state`);
|
|
29
|
+
let authClient = (() => {
|
|
30
|
+
const existingSession = keysStorage.get()?.session;
|
|
31
|
+
return existingSession ? createAuthClientWithSession(existingSession) : createAuthClient(authClientOptions);
|
|
32
|
+
})();
|
|
33
|
+
const authState = createEmitter("authState", stateStorage.get() || empty, {
|
|
34
|
+
comparator: isEqualDeepLite
|
|
35
|
+
}),
|
|
36
|
+
authClientVersion = createEmitter("authClientVersion", 0),
|
|
37
|
+
setState = update => {
|
|
38
|
+
const next = {
|
|
39
|
+
...authState.value,
|
|
40
|
+
...update
|
|
41
|
+
};
|
|
42
|
+
stateStorage.set(next), authState.emit(next), next.token && next.session ? keysStorage.set({
|
|
43
|
+
token: next.token,
|
|
44
|
+
session: next.session.token
|
|
45
|
+
}) : keysStorage.set({
|
|
46
|
+
token: "",
|
|
47
|
+
session: ""
|
|
48
|
+
}), onAuthStateChange?.(next);
|
|
49
|
+
},
|
|
50
|
+
setAuthClientToken = async props => {
|
|
51
|
+
keysStorage.set(props), updateAuthClient(props.session);
|
|
52
|
+
};
|
|
53
|
+
function updateAuthClient(session) {
|
|
54
|
+
authClient = createAuthClientWithSession(session), authClientVersion.emit(Math.random()), subscribeToAuthEffect();
|
|
55
|
+
}
|
|
56
|
+
let dispose = null,
|
|
57
|
+
retryTimer = null;
|
|
58
|
+
function subscribeToAuthEffect() {
|
|
59
|
+
dispose?.(), dispose = authClient.useSession.subscribe(async props => {
|
|
60
|
+
const {
|
|
61
|
+
data: dataGeneric,
|
|
62
|
+
isPending,
|
|
63
|
+
error
|
|
64
|
+
} = props;
|
|
65
|
+
if (error) {
|
|
66
|
+
onAuthError?.(error), scheduleAuthRetry(retryDelay);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const data = dataGeneric;
|
|
70
|
+
setState({
|
|
71
|
+
state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
|
|
72
|
+
session: data?.session,
|
|
73
|
+
user: data?.user ? createUser ? createUser(data.user) : data.user : null
|
|
74
|
+
}), data?.session && !authState.value.token && getValidToken().then(token => {
|
|
75
|
+
token && setState({
|
|
76
|
+
token
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function scheduleAuthRetry(delayMs) {
|
|
82
|
+
retryTimer && clearTimeout(retryTimer), retryTimer = setTimeout(() => {
|
|
83
|
+
retryTimer = null, subscribeToAuthEffect();
|
|
84
|
+
}, delayMs);
|
|
85
|
+
}
|
|
86
|
+
async function getValidToken() {
|
|
87
|
+
const existing = keysStorage.get()?.token;
|
|
88
|
+
if (existing) try {
|
|
89
|
+
if ((await fetch(tokenValidationEndpoint, {
|
|
90
|
+
method: "POST",
|
|
91
|
+
headers: {
|
|
92
|
+
"Content-Type": "application/json"
|
|
93
|
+
},
|
|
94
|
+
body: JSON.stringify({
|
|
95
|
+
token: existing
|
|
96
|
+
})
|
|
97
|
+
}).then(res2 => res2.json()))?.valid) return existing;
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error("Error validating token:", error);
|
|
100
|
+
}
|
|
101
|
+
const res = await authClient.$fetch("/token");
|
|
102
|
+
if (res.error) {
|
|
103
|
+
console.error(`Error fetching token: ${res.error.statusText}`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
return res.data?.token;
|
|
107
|
+
}
|
|
108
|
+
const clearAuthClientToken = () => {
|
|
109
|
+
keysStorage.remove();
|
|
110
|
+
},
|
|
111
|
+
getAuth = () => {
|
|
112
|
+
const state = authState?.value || empty;
|
|
113
|
+
return {
|
|
114
|
+
...state,
|
|
115
|
+
loggedIn: !!state.session
|
|
116
|
+
};
|
|
117
|
+
},
|
|
118
|
+
useAuth = () => useEmitterValue(authState) || empty;
|
|
119
|
+
function clearState() {
|
|
120
|
+
keysStorage.clear(), stateStorage.clear(), setState(empty);
|
|
121
|
+
}
|
|
122
|
+
if (subscribeToAuthEffect(), typeof window < "u" && window.addEventListener) {
|
|
123
|
+
const cleanup = () => {
|
|
124
|
+
dispose?.(), retryTimer && clearTimeout(retryTimer);
|
|
125
|
+
};
|
|
126
|
+
window.addEventListener("beforeunload", cleanup);
|
|
127
|
+
}
|
|
128
|
+
const proxiedAuthClient = new Proxy(authClient, {
|
|
129
|
+
get(_target, key) {
|
|
130
|
+
return key === "signOut" ? async () => {
|
|
131
|
+
clearState(), await authClient.signOut?.(), typeof window < "u" && window.location?.reload?.();
|
|
132
|
+
} : Reflect.get(authClient, key);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
authClientVersion,
|
|
137
|
+
clearState,
|
|
138
|
+
authState,
|
|
139
|
+
authClient: proxiedAuthClient,
|
|
140
|
+
setAuthClientToken,
|
|
141
|
+
clearAuthClientToken,
|
|
142
|
+
useAuth,
|
|
143
|
+
getAuth,
|
|
144
|
+
getValidToken,
|
|
145
|
+
updateAuthClient
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export { createBetterAuthClient };
|
|
149
|
+
//# sourceMappingURL=createAuthClient.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createEmitter","createLocalStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","tokenValidationEndpoint","authClientOptions","empty","state","session","user","token","createAuthClientWithSession","fetchOptions","headers","Authorization","keysStorage","stateStorage","authClient","existingSession","get","authState","comparator","authClientVersion","setState","update","next","value","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","data","dataGeneric","isPending","error","scheduleAuthRetry","getValidToken","then","delayMs","clearTimeout","setTimeout","existing","fetch","method","body","JSON","stringify","res2","json","valid","console","res","$fetch","statusText","clearAuthClientToken","remove","getAuth","loggedIn","useAuth","clearState","clear","window","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","signOut","location","reload","Reflect"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { createEmitter, createLocalStorageValue, isEqualDeepLite, useEmitterValue } from "@take-out/helpers";
|
|
2
|
+
import { createAuthClient } from "better-auth/client";
|
|
3
|
+
function createBetterAuthClient(options) {
|
|
4
|
+
var {
|
|
5
|
+
onAuthStateChange,
|
|
6
|
+
onAuthError,
|
|
7
|
+
createUser,
|
|
8
|
+
storagePrefix = "auth",
|
|
9
|
+
retryDelay = 4e3,
|
|
10
|
+
tokenValidationEndpoint = "/api/auth/validateToken",
|
|
11
|
+
...authClientOptions
|
|
12
|
+
} = options,
|
|
13
|
+
empty = {
|
|
14
|
+
state: "logged-out",
|
|
15
|
+
session: null,
|
|
16
|
+
user: null,
|
|
17
|
+
token: null
|
|
18
|
+
},
|
|
19
|
+
createAuthClientWithSession = function (session) {
|
|
20
|
+
return createAuthClient({
|
|
21
|
+
...authClientOptions,
|
|
22
|
+
fetchOptions: {
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: `Bearer ${session}`
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
keysStorage = createLocalStorageValue(`${storagePrefix}-keys`),
|
|
30
|
+
stateStorage = createLocalStorageValue(`${storagePrefix}-state`),
|
|
31
|
+
authClient = function () {
|
|
32
|
+
var _keysStorage_get,
|
|
33
|
+
existingSession = (_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session;
|
|
34
|
+
return existingSession ? createAuthClientWithSession(existingSession) : createAuthClient(authClientOptions);
|
|
35
|
+
}(),
|
|
36
|
+
authState = createEmitter("authState", stateStorage.get() || empty, {
|
|
37
|
+
comparator: isEqualDeepLite
|
|
38
|
+
}),
|
|
39
|
+
authClientVersion = createEmitter("authClientVersion", 0),
|
|
40
|
+
setState = function (update) {
|
|
41
|
+
var current = authState.value,
|
|
42
|
+
next = {
|
|
43
|
+
...current,
|
|
44
|
+
...update
|
|
45
|
+
};
|
|
46
|
+
stateStorage.set(next), authState.emit(next), next.token && next.session ? keysStorage.set({
|
|
47
|
+
token: next.token,
|
|
48
|
+
session: next.session.token
|
|
49
|
+
}) : keysStorage.set({
|
|
50
|
+
token: "",
|
|
51
|
+
session: ""
|
|
52
|
+
}), onAuthStateChange?.(next);
|
|
53
|
+
},
|
|
54
|
+
setAuthClientToken = async function (props) {
|
|
55
|
+
keysStorage.set(props), updateAuthClient(props.session);
|
|
56
|
+
};
|
|
57
|
+
function updateAuthClient(session) {
|
|
58
|
+
authClient = createAuthClientWithSession(session), authClientVersion.emit(Math.random()), subscribeToAuthEffect();
|
|
59
|
+
}
|
|
60
|
+
var dispose = null,
|
|
61
|
+
retryTimer = null;
|
|
62
|
+
function subscribeToAuthEffect() {
|
|
63
|
+
dispose?.(), dispose = authClient.useSession.subscribe(async function (props) {
|
|
64
|
+
var {
|
|
65
|
+
data: dataGeneric,
|
|
66
|
+
isPending,
|
|
67
|
+
error
|
|
68
|
+
} = props;
|
|
69
|
+
if (error) {
|
|
70
|
+
onAuthError?.(error), scheduleAuthRetry(retryDelay);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
var data = dataGeneric;
|
|
74
|
+
setState({
|
|
75
|
+
state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
|
|
76
|
+
session: data?.session,
|
|
77
|
+
user: data?.user ? createUser ? createUser(data.user) : data.user : null
|
|
78
|
+
}), data?.session && !authState.value.token && getValidToken().then(function (token) {
|
|
79
|
+
token && setState({
|
|
80
|
+
token
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function scheduleAuthRetry(delayMs) {
|
|
86
|
+
retryTimer && clearTimeout(retryTimer), retryTimer = setTimeout(function () {
|
|
87
|
+
retryTimer = null, subscribeToAuthEffect();
|
|
88
|
+
}, delayMs);
|
|
89
|
+
}
|
|
90
|
+
async function getValidToken() {
|
|
91
|
+
var _keysStorage_get,
|
|
92
|
+
existing = (_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.token;
|
|
93
|
+
if (existing) try {
|
|
94
|
+
var response = await fetch(tokenValidationEndpoint, {
|
|
95
|
+
method: "POST",
|
|
96
|
+
headers: {
|
|
97
|
+
"Content-Type": "application/json"
|
|
98
|
+
},
|
|
99
|
+
body: JSON.stringify({
|
|
100
|
+
token: existing
|
|
101
|
+
})
|
|
102
|
+
}).then(function (res2) {
|
|
103
|
+
return res2.json();
|
|
104
|
+
});
|
|
105
|
+
if (response?.valid) return existing;
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error("Error validating token:", error);
|
|
108
|
+
}
|
|
109
|
+
var res = await authClient.$fetch("/token");
|
|
110
|
+
if (res.error) {
|
|
111
|
+
console.error(`Error fetching token: ${res.error.statusText}`);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
var data = res.data;
|
|
115
|
+
return data?.token;
|
|
116
|
+
}
|
|
117
|
+
var clearAuthClientToken = function () {
|
|
118
|
+
keysStorage.remove();
|
|
119
|
+
},
|
|
120
|
+
getAuth = function () {
|
|
121
|
+
var state = authState?.value || empty;
|
|
122
|
+
return {
|
|
123
|
+
...state,
|
|
124
|
+
loggedIn: !!state.session
|
|
125
|
+
};
|
|
126
|
+
},
|
|
127
|
+
useAuth = function () {
|
|
128
|
+
return useEmitterValue(authState) || empty;
|
|
129
|
+
};
|
|
130
|
+
function clearState() {
|
|
131
|
+
keysStorage.clear(), stateStorage.clear(), setState(empty);
|
|
132
|
+
}
|
|
133
|
+
if (subscribeToAuthEffect(), typeof window < "u" && window.addEventListener) {
|
|
134
|
+
var cleanup = function () {
|
|
135
|
+
dispose?.(), retryTimer && clearTimeout(retryTimer);
|
|
136
|
+
};
|
|
137
|
+
window.addEventListener("beforeunload", cleanup);
|
|
138
|
+
}
|
|
139
|
+
var proxiedAuthClient = new Proxy(authClient, {
|
|
140
|
+
get(_target, key) {
|
|
141
|
+
return key === "signOut" ? async function () {
|
|
142
|
+
var _authClient_signOut;
|
|
143
|
+
if (clearState(), await ((_authClient_signOut = authClient.signOut) === null || _authClient_signOut === void 0 ? void 0 : _authClient_signOut.call(authClient)), typeof window < "u") {
|
|
144
|
+
var _window_location_reload, _window_location;
|
|
145
|
+
(_window_location = window.location) === null || _window_location === void 0 || (_window_location_reload = _window_location.reload) === null || _window_location_reload === void 0 || _window_location_reload.call(_window_location);
|
|
146
|
+
}
|
|
147
|
+
} : Reflect.get(authClient, key);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
authClientVersion,
|
|
152
|
+
clearState,
|
|
153
|
+
authState,
|
|
154
|
+
authClient: proxiedAuthClient,
|
|
155
|
+
setAuthClientToken,
|
|
156
|
+
clearAuthClientToken,
|
|
157
|
+
useAuth,
|
|
158
|
+
getAuth,
|
|
159
|
+
getValidToken,
|
|
160
|
+
updateAuthClient
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
export { createBetterAuthClient };
|
|
164
|
+
//# sourceMappingURL=createAuthClient.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createEmitter","createLocalStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","tokenValidationEndpoint","authClientOptions","empty","state","session","user","token","createAuthClientWithSession","fetchOptions","headers","Authorization","keysStorage","stateStorage","authClient","_keysStorage_get","existingSession","get","authState","comparator","authClientVersion","setState","update","current","value","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","data","dataGeneric","isPending","error","scheduleAuthRetry","getValidToken","then","delayMs","clearTimeout","setTimeout","existing","response","fetch","method","body","JSON","stringify","res2","json","valid","console","res","$fetch","statusText","clearAuthClientToken","remove","getAuth","loggedIn","useAuth","clearState","clear","window","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","_authClient_signOut","signOut","call","_window_location_reload","_window_location","location","reload","Reflect"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@take-out/better-auth-utils",
|
|
3
|
+
"version": "0.0.28",
|
|
4
|
+
"description": "Better auth utilities and client for React/React Native applications",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"source": "src/index.ts",
|
|
8
|
+
"main": "dist/cjs",
|
|
9
|
+
"module": "dist/esm",
|
|
10
|
+
"types": "./types/index.d.ts",
|
|
11
|
+
"files": [
|
|
12
|
+
"src",
|
|
13
|
+
"types",
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tamagui-build",
|
|
18
|
+
"watch": "tamagui-build --watch",
|
|
19
|
+
"lint": "biome check src",
|
|
20
|
+
"lint:fix": "biome check --write src",
|
|
21
|
+
"clean": "tamagui-build clean",
|
|
22
|
+
"clean:build": "tamagui-build clean:build"
|
|
23
|
+
},
|
|
24
|
+
"exports": {
|
|
25
|
+
"./package.json": "./package.json",
|
|
26
|
+
".": {
|
|
27
|
+
"react-native": {
|
|
28
|
+
"import": "./dist/esm/index.native.js",
|
|
29
|
+
"require": "./dist/cjs/index.native.js"
|
|
30
|
+
},
|
|
31
|
+
"types": "./types/index.d.ts",
|
|
32
|
+
"import": "./dist/esm/index.mjs",
|
|
33
|
+
"require": "./dist/cjs/index.cjs",
|
|
34
|
+
"default": "./dist/esm/index.mjs"
|
|
35
|
+
},
|
|
36
|
+
"./client": {
|
|
37
|
+
"react-native": {
|
|
38
|
+
"import": "./dist/esm/client.native.js",
|
|
39
|
+
"require": "./dist/cjs/client.native.js"
|
|
40
|
+
},
|
|
41
|
+
"types": "./types/client.d.ts",
|
|
42
|
+
"import": "./dist/esm/client.mjs",
|
|
43
|
+
"require": "./dist/cjs/client.cjs",
|
|
44
|
+
"default": "./dist/esm/client.mjs"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@take-out/helpers": "0.0.28",
|
|
49
|
+
"better-auth": "^1.3.28"
|
|
50
|
+
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"react": "*"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@biomejs/biome": "^2.1.2",
|
|
56
|
+
"@tamagui/build": "1.135.2",
|
|
57
|
+
"@types/node": "24.0.3",
|
|
58
|
+
"@types/react": "^19.0.8",
|
|
59
|
+
"react": "*"
|
|
60
|
+
},
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
}
|
|
64
|
+
}
|