@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.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +137 -0
  3. package/dist/cjs/createAuthClient.cjs +172 -0
  4. package/dist/cjs/createAuthClient.js +153 -0
  5. package/dist/cjs/createAuthClient.js.map +6 -0
  6. package/dist/cjs/createAuthClient.native.js +161 -0
  7. package/dist/cjs/createAuthClient.native.js.map +6 -0
  8. package/dist/cjs/index.cjs +18 -0
  9. package/dist/cjs/index.js +15 -0
  10. package/dist/cjs/index.js.map +6 -0
  11. package/dist/cjs/index.native.js +20 -0
  12. package/dist/cjs/index.native.js.map +6 -0
  13. package/dist/esm/createAuthClient.js +143 -0
  14. package/dist/esm/createAuthClient.js.map +6 -0
  15. package/dist/esm/createAuthClient.mjs +149 -0
  16. package/dist/esm/createAuthClient.mjs.map +1 -0
  17. package/dist/esm/createAuthClient.native.js +164 -0
  18. package/dist/esm/createAuthClient.native.js.map +1 -0
  19. package/dist/esm/index.js +2 -0
  20. package/dist/esm/index.js.map +6 -0
  21. package/dist/esm/index.mjs +2 -0
  22. package/dist/esm/index.mjs.map +1 -0
  23. package/dist/esm/index.native.js +2 -0
  24. package/dist/esm/index.native.js.map +1 -0
  25. package/package.json +64 -0
  26. package/src/createAuthClient.ts +324 -0
  27. package/src/index.ts +1 -0
  28. package/types/client.d.ts +10 -0
  29. package/types/client.d.ts.map +11 -0
  30. package/types/createAuthClient.d.ts +81 -0
  31. package/types/createAuthClient.d.ts.map +18 -0
  32. package/types/hooks/useAuthSession.d.ts +8 -0
  33. package/types/hooks/useAuthSession.d.ts.map +13 -0
  34. package/types/hooks/useAuthState.d.ts +7 -0
  35. package/types/hooks/useAuthState.d.ts.map +13 -0
  36. package/types/hooks/useAuthUser.d.ts +8 -0
  37. package/types/hooks/useAuthUser.d.ts.map +13 -0
  38. package/types/index.d.ts +3 -0
  39. 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,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,+BAAd;",
5
+ "names": []
6
+ }
@@ -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,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,+BAAd;",
5
+ "names": []
6
+ }
@@ -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":"AAWA,SAAAA,aAAA,EAAAC,uBAAA,EAAAC,eAAA,EAAAC,eAAA;AAAA,SACEC,gBAAA;AAAA,SACAC,uBAAAC,OAAA;EAEA;MAAAC,iBAAA;MAAAC,WAAA;MAAAC,UAAA;MAAAC,aAAA;MAAAC,UAAA;MAAAC,uBAAA;MAAA,GAAAC;IAAA,IAAAP,OAAA;IAAAQ,KAAA;MACAC,KAAA;MAAAC,OACK;MAEPC,IAAA,EAAuC;MAkEhCC,KAAS;IAId;IAAAC,2BAAM,YAAAA,CAAAH,OAAA;MACJ,OAAAZ,gBAAA;QACA,GAAAS,iBAAA;QACAO,YAAA;UACAC,OAAA;YACAC,aAAa,YAAAN,OAAA;UACb;QACA;MACF,EAAI;IAE4B;IAC9BO,WAAO,GAAAtB,uBAAA,IAAAS,aAAA;IAAAc,YAAA,GAAAvB,uBAAA,IAAAS,aAAA;IAAAe,UAAA;MACP,IAAAC,gBAAS;QAAAC,eAAA,IAAAD,gBAAA,GAAAH,WAAA,CAAAK,GAAA,gBAAAF,gBAAA,uBAAAA,gBAAA,CAAAV,OAAA;MACT,OAAMW,eAAA,GAAAR,2BAAA,CAAAQ,eAAA,IAAAvB,gBAAA,CAAAS,iBAAA;IAAA,EACN;IAAAgB,SAAO,GAAA7B,aAAA,cAAAwB,YAAA,CAAAI,GAAA,MAAAd,KAAA;MACTgB,UAEM,EAAA5B;IACoB,EACtB;IAAA6B,iBAAG,GAAA/B,aAAA;IAAAgC,QAAA,YAAAA,CAAAC,MAAA;MACH,IAAAC,OAAA,GAAcL,SAAA,CAAAM,KAAA;QAAAC,IAAA;UACZ,GAAAF,OAAS;UAAA,GACPD;QAAgC;MAEpCT,YAAA,CAAAa,GAAA,CAAAD,IAAA,GAAAP,SAAA,CAAAS,IAAA,CAAAF,IAAA,GAAAA,IAAA,CAAAlB,KAAA,IAAAkB,IAAA,CAAApB,OAAA,GAAAO,WAAA,CAAAc,GAAA;QAIEnB,KAAA,EAAAkB,IAAA,CAAAlB,KAAc;QAGhBF,OAAA,EAAAoB,IAAA,CAAcpB,OAAM,CAAAE;MACtB,KAAAK,WAAM,CAAAc,GAAA;QACNnB,KAAO;QAGNF,OAAA;MAEH,IAAMT,iBAAY,GAAA6B,IAAA;IAAA;IAChBG,kBAAA,kBAAAA,CAAAC,KAAA;MACAjB,WAAA,CAAAc,GAAa,CAAAG,KAAI,CAAK,EAAAC,gBAAA,CAAAD,KAAA,CAAAxB,OAAA;IAAA;EACtB,SACEyB,gBAAYA,CAAAzB,OAAA;IACdS,UAAA,GAAAN,2BAAA,CAAAH,OAAA,GAAAe,iBAAA,CAAAO,IAAA,CAAAI,IAAA,CAAAC,MAAA,KAAAC,qBAAA;EACF;EAME,IAAAC,OAAM,OAAS;IADCC,UAAU,OACC;EAC3B,SAAAF,qBACAA,CAAA;IAIkBC,OACd,GAAO,GAAAA,OAAK,GAAApB,UAAA,CAAAsB,UAAA,CAAAC,SAAA,iBAAAR,KAAA;MACZ;QAAAS,IAAS,EAAAC,WAAa;QAAAC,SAAA;QAAAC;MAAA,IAAAZ,KAAA;MACvB,IAEDY,KAAA;QACE5C,WAAO,GAAA4C,KAAA,GAAAC,iBAAA,CAAA1C,UAAA;QACP;MACD;MAOC,IAAAsC,IAAA,GAAAC,WAAqB;MACzBlB,QAAA;QAEFjB,KAAA,EAAAoC,SAAA,eAAAF,IAAA,EAAAjC,OAAA;QAEAA,OAAS,EAAAiC,IAAA,EAAAjC,OAAiB;QACxBC,IAAA,EAAAgC,IAAa,EAAAhC,IAAA,GAAAR,UAAA,GAAAA,UAA4B,CAAAwC,IACzC,CAAAhC,IAAA,IAAAgC,IAAA,CAAAhC,IAAkB;MAEpB,IAAAgC,IAAA,EAAAjC,OAAA,KAAAa,SAAA,CAAAM,KAAA,CAAAjB,KAAA,IAAAoC,aAAA,GAAAC,IAAA,WAAArC,KAAA;QAEIA,KAAA,IAA2Bc,QAC3B;UAEJd;QACE;MAGE;IAEA;EACE;EAGA,SAAAmC,kBAAAG,OAAA;IAAAV,UACF,IAAAW,YAAA,CAAAX,UAAA,GAAAA,UAAA,GAAAY,UAAA;MAEAZ,UAAM,GAAO,MAAAF,qBAAA;IAOb,GAAAY,OAAA,CAAS;EAAA;EACsD,eACpDF,aAAMA,CAAA;IAAA,IACf5B,gBAAY;MAAAiC,QACR,IAAAjC,gBACa,GAAKH,WACf,CAAKK,GAAA,QACR,QAAAF,gBAAA,uBAAAA,gBAAA,CAAAR,KAAA;IAAA,IACLyC,QAGS,EAEN,IAAI;MAGL,IAAAC,QAAA,SAAAC,KAAA,CAAAjD,uBAAA;QAEJkD,MAAA;QACHzC,OAAA;UAES;QACH;QAIF0C,IAAA,EAAAC,IAAa,CAAAC,SACb;UACC/C,KAAO,EAAAyC;QACZ;MAEA,GAAAJ,IAAA,WAAeW,IAAA;QACP,OAAAA,IAAW,CAAAC,IAAA;MAEb;MACF,IAAIP,QAAA,EAAAQ,KAAA,EAWF,OAViBT,QAAY;IAAyB,SACpDP,KAAQ;MAAAiB,OACR,CAAAjB,KAAS,4BAAAA,KAAA;IAAA;IACS,IAAAkB,GAClB,SAAA7C,UAAA,CAAA8C,MAAA;IAAA,IAAAD,GACA,CAAAlB,KAAM;MAAeiB,OACnB,CAAAjB,KAAO,0BAAAkB,GAAA,CAAAlB,KAAA,CAAAoB,UAAA;MAAA;IACR;IAID,IAAAvB,IAAA,GAAAqB,GAAO,CAAArB,IAAA;IAAA,OAEXA,IAAS,EAAA/B,KAAO;EACd;EAA8C,IAChDuD,oBAAA,YAAAA,CAAA;MAGFlD,WAAM,CAAMmD,MAAM;IAClB;IAAAC,OAAQ,YAAAA,CAAA,EAAO;MACb,IAAA5D,KAAA,GAAQc,SAAM,EAAAM,KAAA,IAAArB,KAAA;MACd;QACF,GAAAC,KAAA;QAEA6D,QADa,EAAI,EAAA7D,KACJ,CAAAC;MACf;IAEA;IAAA6D,OAAM,YAAAA,CAAA;MACJ,OAAA1E,eAAmB,CAAA0B,SAAA,KAAAf,KAAA;IACrB;EAGE,SAAMgE,UAAQA,CAAA;IACdvD,WAAO,CAAAwD,KAAA,IAAAvD,YAAA,CAAAuD,KAAA,IAAA/C,QAAA,CAAAlB,KAAA;EAAA;EACF,IACH8B,qBAAkB,WAAAoC,MAAA,UAAAA,MAAA,CAAAC,gBAAA;IACpB,IAAAC,OAAA,YAAAA,CAAA;MAGIrC,OAAA,GAAU,GAAAC,UACP,IAAAW,YAAgB,CAASX,UAAK;IAGvC;IACEkC,MAAA,CAAAC,gBACA,eAAa,EAAMC,OACnB;EACF;EAMA,IAHAC,iBAAA,OAAsBC,KAGlB,CAAA3D,UAAO,EAAW;IACpBG,IAAAyD,OAAM,EAAAC,GAAU;MACd,OAAAA,GAAU,KACN,YACF,kBAAa;QAEjB,IAAAC,mBAAA;QACA,IAAOT,UAAA,WAAiB,CAAAS,mBAAuB,GAAA9D,UAAA,CAAA+D,OAAA,cAAAD,mBAAA,uBAAAA,mBAAA,CAAAE,IAAA,CAAAhE,UAAA,WAAAuD,MAAA;UACjD,IAAAU,uBAAA,EAAAC,gBAAA;UAEM,CAAAA,gBAAA,GAAoBX,MAAI,CAAAY,QAAM,MAAY,QAAAD,gBAAA,gBAAAD,uBAAA,GAAAC,gBAAA,CAAAE,MAAA,cAAAH,uBAAA,eAAAA,uBAAA,CAAAD,IAAA,CAAAE,gBAAA;QAC1C;MACF,IAAAG,OAAI,CAAAlE,GAAQ,CAAAH,UAAA,EACH6D,GAAA;IACL;EAK4B;EAKE,OACpC;IACDvD,iBAAA;IAED+C,UAAO;IACLjD,SAAA;IACAJ,UAAA,EAAA0D,iBAAA;IACA5C,kBAAA;IACAkC,oBAAY;IACZI,OAAA;IACAF,OAAA;IACArB,aAAA;IACAb;EAAA;AACA;AACA,SAEJpC,sBAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./createAuthClient";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": "AAAA,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./createAuthClient.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./createAuthClient.native.js";
2
+ //# sourceMappingURL=index.native.js.map
@@ -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
+ }