nextauthz 1.0.1 → 1.0.3

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/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import React__default, { ReactNode } from 'react';
4
4
 
5
5
  type AuthContextType<UserType> = {
6
- user: UserType | any;
6
+ user: UserType | null;
7
7
  login: (tokens: Record<string, string>, user: UserType) => void;
8
8
  logout: () => void;
9
9
  setUser: (user: UserType) => void;
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import React__default, { ReactNode } from 'react';
4
4
 
5
5
  type AuthContextType<UserType> = {
6
- user: UserType | any;
6
+ user: UserType | null;
7
7
  login: (tokens: Record<string, string>, user: UserType) => void;
8
8
  logout: () => void;
9
9
  setUser: (user: UserType) => void;
package/dist/index.js CHANGED
@@ -1790,14 +1790,17 @@ var useAuthStore = (0, import_zustand.create)((set) => ({
1790
1790
  // src/AuthProvider.tsx
1791
1791
  var import_jsx_runtime = __toESM(require_jsx_runtime());
1792
1792
  function createAuthContext(options) {
1793
- const storageType = options?.storage || "cookie";
1794
- (0, import_react_token_manager.configureTokenManager)({ storage: storageType });
1795
- const manager = (0, import_react_token_manager.useTokenManager)();
1796
1793
  const AuthContext = (0, import_react.createContext)(null);
1797
1794
  const AuthProvider2 = ({ children }) => {
1795
+ const storageType = options?.storage || "cookie";
1796
+ (0, import_react.useEffect)(() => {
1797
+ (0, import_react_token_manager.configureTokenManager)({ storage: storageType });
1798
+ }, [storageType]);
1799
+ const manager = (0, import_react_token_manager.useTokenManager)();
1798
1800
  const [loading, setLoading] = (0, import_react.useState)(true);
1799
- const user = useAuthStore((state) => state.user);
1801
+ const rawUser = useAuthStore((state) => state.user);
1800
1802
  const error = useAuthStore((state) => state.error);
1803
+ const user = rawUser;
1801
1804
  (0, import_react.useEffect)(() => {
1802
1805
  const savedUser = manager.getSingleToken("user");
1803
1806
  if (savedUser) {
@@ -1805,13 +1808,15 @@ function createAuthContext(options) {
1805
1808
  const parsedUser = JSON.parse(savedUser);
1806
1809
  useAuthStore.getState().setUser(parsedUser);
1807
1810
  useAuthStore.getState().setError(null);
1808
- } catch (err) {
1811
+ } catch {
1809
1812
  useAuthStore.getState().resetAuth();
1810
- useAuthStore.getState().setError(new Error("Failed to parse saved user"));
1813
+ useAuthStore.getState().setError(
1814
+ new Error("Failed to parse saved user")
1815
+ );
1811
1816
  }
1812
1817
  }
1813
1818
  setLoading(false);
1814
- }, []);
1819
+ }, [manager]);
1815
1820
  const setUser = (userData) => {
1816
1821
  useAuthStore.getState().setUser(userData);
1817
1822
  useAuthStore.getState().setError(null);
@@ -1822,7 +1827,9 @@ function createAuthContext(options) {
1822
1827
  manager.setTokens(tokens);
1823
1828
  setUser(userData);
1824
1829
  } catch (err) {
1825
- useAuthStore.getState().setError(err instanceof Error ? err : new Error(String(err)));
1830
+ useAuthStore.getState().setError(
1831
+ err instanceof Error ? err : new Error(String(err))
1832
+ );
1826
1833
  }
1827
1834
  };
1828
1835
  const logout = () => {
@@ -1830,14 +1837,24 @@ function createAuthContext(options) {
1830
1837
  manager.clearTokens();
1831
1838
  useAuthStore.getState().resetAuth();
1832
1839
  } catch (err) {
1833
- useAuthStore.getState().setError(err instanceof Error ? err : new Error(String(err)));
1840
+ useAuthStore.getState().setError(
1841
+ err instanceof Error ? err : new Error(String(err))
1842
+ );
1834
1843
  }
1835
1844
  };
1836
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthContext.Provider, { value: { user, login, logout, setUser, loading, error }, children });
1845
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1846
+ AuthContext.Provider,
1847
+ {
1848
+ value: { user, login, logout, setUser, loading, error },
1849
+ children
1850
+ }
1851
+ );
1837
1852
  };
1838
1853
  const useAuth2 = () => {
1839
1854
  const ctx = (0, import_react.useContext)(AuthContext);
1840
- if (!ctx) throw new Error("useAuth must be used inside AuthProvider");
1855
+ if (!ctx) {
1856
+ throw new Error("useAuth must be used inside AuthProvider");
1857
+ }
1841
1858
  return ctx;
1842
1859
  };
1843
1860
  return { AuthProvider: AuthProvider2, useAuth: useAuth2 };
package/dist/index.mjs CHANGED
@@ -1774,14 +1774,17 @@ var useAuthStore = create((set) => ({
1774
1774
  // src/AuthProvider.tsx
1775
1775
  var import_jsx_runtime = __toESM(require_jsx_runtime());
1776
1776
  function createAuthContext(options) {
1777
- const storageType = options?.storage || "cookie";
1778
- configureTokenManager({ storage: storageType });
1779
- const manager = useTokenManager();
1780
1777
  const AuthContext = (0, import_react.createContext)(null);
1781
1778
  const AuthProvider2 = ({ children }) => {
1779
+ const storageType = options?.storage || "cookie";
1780
+ (0, import_react.useEffect)(() => {
1781
+ configureTokenManager({ storage: storageType });
1782
+ }, [storageType]);
1783
+ const manager = useTokenManager();
1782
1784
  const [loading, setLoading] = (0, import_react.useState)(true);
1783
- const user = useAuthStore((state) => state.user);
1785
+ const rawUser = useAuthStore((state) => state.user);
1784
1786
  const error = useAuthStore((state) => state.error);
1787
+ const user = rawUser;
1785
1788
  (0, import_react.useEffect)(() => {
1786
1789
  const savedUser = manager.getSingleToken("user");
1787
1790
  if (savedUser) {
@@ -1789,13 +1792,15 @@ function createAuthContext(options) {
1789
1792
  const parsedUser = JSON.parse(savedUser);
1790
1793
  useAuthStore.getState().setUser(parsedUser);
1791
1794
  useAuthStore.getState().setError(null);
1792
- } catch (err) {
1795
+ } catch {
1793
1796
  useAuthStore.getState().resetAuth();
1794
- useAuthStore.getState().setError(new Error("Failed to parse saved user"));
1797
+ useAuthStore.getState().setError(
1798
+ new Error("Failed to parse saved user")
1799
+ );
1795
1800
  }
1796
1801
  }
1797
1802
  setLoading(false);
1798
- }, []);
1803
+ }, [manager]);
1799
1804
  const setUser = (userData) => {
1800
1805
  useAuthStore.getState().setUser(userData);
1801
1806
  useAuthStore.getState().setError(null);
@@ -1806,7 +1811,9 @@ function createAuthContext(options) {
1806
1811
  manager.setTokens(tokens);
1807
1812
  setUser(userData);
1808
1813
  } catch (err) {
1809
- useAuthStore.getState().setError(err instanceof Error ? err : new Error(String(err)));
1814
+ useAuthStore.getState().setError(
1815
+ err instanceof Error ? err : new Error(String(err))
1816
+ );
1810
1817
  }
1811
1818
  };
1812
1819
  const logout = () => {
@@ -1814,14 +1821,24 @@ function createAuthContext(options) {
1814
1821
  manager.clearTokens();
1815
1822
  useAuthStore.getState().resetAuth();
1816
1823
  } catch (err) {
1817
- useAuthStore.getState().setError(err instanceof Error ? err : new Error(String(err)));
1824
+ useAuthStore.getState().setError(
1825
+ err instanceof Error ? err : new Error(String(err))
1826
+ );
1818
1827
  }
1819
1828
  };
1820
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthContext.Provider, { value: { user, login, logout, setUser, loading, error }, children });
1829
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1830
+ AuthContext.Provider,
1831
+ {
1832
+ value: { user, login, logout, setUser, loading, error },
1833
+ children
1834
+ }
1835
+ );
1821
1836
  };
1822
1837
  const useAuth2 = () => {
1823
1838
  const ctx = (0, import_react.useContext)(AuthContext);
1824
- if (!ctx) throw new Error("useAuth must be used inside AuthProvider");
1839
+ if (!ctx) {
1840
+ throw new Error("useAuth must be used inside AuthProvider");
1841
+ }
1825
1842
  return ctx;
1826
1843
  };
1827
1844
  return { AuthProvider: AuthProvider2, useAuth: useAuth2 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextauthz",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -1,11 +1,17 @@
1
1
  'use client'
2
2
 
3
- import React, { createContext, useContext, ReactNode, useState, useEffect } from 'react'
3
+ import React, {
4
+ createContext,
5
+ useContext,
6
+ ReactNode,
7
+ useState,
8
+ useEffect,
9
+ } from 'react'
4
10
  import { configureTokenManager, useTokenManager } from 'react-token-manager'
5
11
  import { useAuthStore } from '../store/useGuardStore'
6
12
 
7
13
  export type AuthContextType<UserType> = {
8
- user: UserType | any
14
+ user: UserType | null
9
15
  login: (tokens: Record<string, string>, user: UserType) => void
10
16
  logout: () => void
11
17
  setUser: (user: UserType) => void
@@ -21,45 +27,62 @@ export type AuthContextOptions = {
21
27
  * Factory to create typed AuthProvider and useAuth hook
22
28
  */
23
29
  export function createAuthContext<UserType>(options?: AuthContextOptions) {
24
- const storageType = options?.storage || 'cookie'
25
- configureTokenManager({ storage: storageType })
26
- const manager = useTokenManager()
27
-
28
30
  const AuthContext = createContext<AuthContextType<UserType> | null>(null)
29
31
 
30
32
  const AuthProvider = ({ children }: { children: ReactNode }) => {
33
+ const storageType = options?.storage || 'cookie'
34
+
35
+ // ✅ Configure token manager inside the component lifecycle
36
+ useEffect(() => {
37
+ configureTokenManager({ storage: storageType })
38
+ }, [storageType])
39
+
40
+ const manager = useTokenManager()
31
41
  const [loading, setLoading] = useState(true)
32
- const user = useAuthStore((state) => state.user)
42
+
43
+ // Zustand state
44
+ const rawUser = useAuthStore((state) => state.user)
33
45
  const error = useAuthStore((state) => state.error)
34
46
 
47
+ const user = rawUser as UserType | null
48
+
35
49
  // Restore user on mount
36
50
  useEffect(() => {
37
51
  const savedUser = manager.getSingleToken('user')
52
+
38
53
  if (savedUser) {
39
54
  try {
40
55
  const parsedUser = JSON.parse(savedUser)
41
56
  useAuthStore.getState().setUser(parsedUser)
42
57
  useAuthStore.getState().setError(null)
43
- } catch (err: any) {
58
+ } catch {
44
59
  useAuthStore.getState().resetAuth()
45
- useAuthStore.getState().setError(new Error('Failed to parse saved user'))
60
+ useAuthStore.getState().setError(
61
+ new Error('Failed to parse saved user')
62
+ )
46
63
  }
47
64
  }
65
+
48
66
  setLoading(false)
49
- }, [])
67
+ }, [manager])
50
68
 
51
- const setUser = (userData: any) => {
52
- useAuthStore.getState().setUser(userData)
69
+ const setUser = (userData: UserType) => {
70
+ useAuthStore.getState().setUser(userData as any)
53
71
  useAuthStore.getState().setError(null)
54
72
  manager.setTokens({ user: JSON.stringify(userData) })
55
73
  }
56
74
 
57
- const login = (tokens: Record<string, string>, userData: UserType) => {
75
+ const login = (
76
+ tokens: Record<string, string>,
77
+ userData: UserType
78
+ ) => {
58
79
  try {
59
80
  manager.setTokens(tokens)
60
81
  setUser(userData)
61
- } catch (err: any) {
62
- useAuthStore.getState().setError(err instanceof Error ? err : new Error(String(err)))
82
+ } catch (err) {
83
+ useAuthStore.getState().setError(
84
+ err instanceof Error ? err : new Error(String(err))
85
+ )
63
86
  }
64
87
  }
65
88
 
@@ -67,13 +90,17 @@ export function createAuthContext<UserType>(options?: AuthContextOptions) {
67
90
  try {
68
91
  manager.clearTokens()
69
92
  useAuthStore.getState().resetAuth()
70
- } catch (err: any) {
71
- useAuthStore.getState().setError(err instanceof Error ? err : new Error(String(err)))
93
+ } catch (err) {
94
+ useAuthStore.getState().setError(
95
+ err instanceof Error ? err : new Error(String(err))
96
+ )
72
97
  }
73
98
  }
74
99
 
75
100
  return (
76
- <AuthContext.Provider value={{ user, login, logout, setUser, loading, error }}>
101
+ <AuthContext.Provider
102
+ value={{ user, login, logout, setUser, loading, error }}
103
+ >
77
104
  {children}
78
105
  </AuthContext.Provider>
79
106
  )
@@ -81,7 +108,9 @@ export function createAuthContext<UserType>(options?: AuthContextOptions) {
81
108
 
82
109
  const useAuth = (): AuthContextType<UserType> => {
83
110
  const ctx = useContext(AuthContext)
84
- if (!ctx) throw new Error('useAuth must be used inside AuthProvider')
111
+ if (!ctx) {
112
+ throw new Error('useAuth must be used inside AuthProvider')
113
+ }
85
114
  return ctx
86
115
  }
87
116