@insforge/nextjs 0.5.6 → 0.6.5

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.mjs CHANGED
@@ -20,11 +20,15 @@ async function fetchOAuthProviders(baseUrl) {
20
20
  }
21
21
  }
22
22
  function getTokenFromSDK() {
23
+ console.log("[InsforgeProvider] Getting token from SDK");
23
24
  if (typeof window === "undefined") return null;
25
+ console.log("[InsforgeProvider] Window:", window);
24
26
  try {
25
27
  const token = localStorage.getItem("insforge-auth-token");
28
+ console.log("[InsforgeProvider] Token:", token);
26
29
  return token;
27
30
  } catch (error) {
31
+ console.error("[InsforgeProvider] Error getting token from SDK:", error);
28
32
  return null;
29
33
  }
30
34
  }
@@ -51,7 +55,9 @@ async function syncTokenToCookie(token) {
51
55
  function InsforgeProvider({
52
56
  children,
53
57
  baseUrl,
54
- onAuthChange
58
+ frontendUrl,
59
+ onAuthChange,
60
+ useBuiltInAuth = true
55
61
  }) {
56
62
  const [user, setUser] = useState(null);
57
63
  const [session, setSession] = useState(null);
@@ -80,33 +86,63 @@ function InsforgeProvider({
80
86
  setIsLoaded(true);
81
87
  return;
82
88
  }
89
+ const cachedUserStr = localStorage.getItem("insforge-user-profile");
90
+ if (cachedUserStr) {
91
+ try {
92
+ const cachedData = JSON.parse(cachedUserStr);
93
+ if (cachedData.user) {
94
+ console.log("[InsforgeProvider] Loading user from cache");
95
+ const userData = {
96
+ id: cachedData.user.id,
97
+ email: cachedData.user.email,
98
+ createdAt: cachedData.user.createdAt || (/* @__PURE__ */ new Date()).toISOString(),
99
+ updatedAt: cachedData.user.updatedAt || (/* @__PURE__ */ new Date()).toISOString(),
100
+ ...cachedData.profile
101
+ };
102
+ setUser(userData);
103
+ setSession({
104
+ userId: cachedData.user.id,
105
+ token,
106
+ expiresAt: "",
107
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
108
+ });
109
+ if (onAuthChange) {
110
+ onAuthChange(userData);
111
+ }
112
+ setIsLoaded(true);
113
+ }
114
+ } catch (e) {
115
+ console.warn("[InsforgeProvider] Failed to parse cached user data:", e);
116
+ }
117
+ }
83
118
  try {
84
119
  await syncTokenToCookie(token);
85
120
  } catch (error) {
86
121
  }
87
122
  const userResult = await insforge.auth.getCurrentUser();
88
123
  if (userResult.data) {
124
+ console.log("[InsforgeProvider] User data refreshed from API");
89
125
  const userData = {
90
126
  id: userResult.data.user.id,
91
127
  email: userResult.data.user.email,
92
128
  createdAt: userResult.data.user.createdAt || (/* @__PURE__ */ new Date()).toISOString(),
93
129
  updatedAt: userResult.data.user.updatedAt || (/* @__PURE__ */ new Date()).toISOString(),
94
130
  ...userResult.data.profile
95
- // Add profile data if available
96
131
  };
97
132
  setUser(userData);
98
133
  setSession({
99
134
  userId: userResult.data.user.id,
100
135
  token,
101
136
  expiresAt: "",
102
- // Insforge tokens are long-lived
103
137
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
104
138
  });
139
+ localStorage.setItem("insforge-user-profile", JSON.stringify(userResult.data));
105
140
  if (onAuthChange) {
106
141
  onAuthChange(userData);
107
142
  }
108
143
  } else {
109
144
  localStorage.removeItem("insforge-auth-token");
145
+ localStorage.removeItem("insforge-user-profile");
110
146
  try {
111
147
  await fetch("/api/auth", { method: "DELETE" });
112
148
  } catch (error) {
@@ -118,7 +154,9 @@ function InsforgeProvider({
118
154
  }
119
155
  }
120
156
  } catch (error) {
157
+ console.error("[InsforgeProvider] Token validation failed:", error);
121
158
  localStorage.removeItem("insforge-auth-token");
159
+ localStorage.removeItem("insforge-user-profile");
122
160
  try {
123
161
  await fetch("/api/auth", { method: "DELETE" });
124
162
  } catch (error2) {
@@ -209,6 +247,7 @@ function InsforgeProvider({
209
247
  );
210
248
  const signOut = useCallback(async () => {
211
249
  await insforge.auth.signOut();
250
+ localStorage.removeItem("insforge-user-profile");
212
251
  await fetch("/api/auth", { method: "DELETE" }).catch(() => {
213
252
  });
214
253
  if (refreshIntervalRef.current) {
@@ -296,6 +335,7 @@ function InsforgeProvider({
296
335
  session,
297
336
  isLoaded,
298
337
  isSignedIn: !!user,
338
+ setUser,
299
339
  signIn,
300
340
  signUp,
301
341
  signOut,
@@ -330,8 +370,8 @@ function useAuth() {
330
370
 
331
371
  // src/hooks/useUser.ts
332
372
  function useUser() {
333
- const { user, isLoaded, updateUser } = useInsforge();
334
- return { user, isLoaded, updateUser };
373
+ const { user, isLoaded, updateUser, setUser } = useInsforge();
374
+ return { user, isLoaded, updateUser, setUser };
335
375
  }
336
376
 
337
377
  // src/hooks/useSession.ts