@insforge/nextjs 0.6.8 → 0.7.0

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.js CHANGED
@@ -58,7 +58,6 @@ __export(src_exports, {
58
58
  isProviderSupported: () => isProviderSupported,
59
59
  useAuth: () => useAuth,
60
60
  useInsforge: () => useInsforge,
61
- useOAuthProviders: () => useOAuthProviders,
62
61
  useSession: () => useSession,
63
62
  useUser: () => useUser,
64
63
  validatePasswordStrength: () => validatePasswordStrength
@@ -70,19 +69,6 @@ var import_react = require("react");
70
69
  var import_sdk = require("@insforge/sdk");
71
70
  var import_jsx_runtime = require("react/jsx-runtime");
72
71
  var InsforgeContext = (0, import_react.createContext)(void 0);
73
- function getTokenFromSDK() {
74
- console.log("[InsforgeProvider] Getting token from SDK");
75
- if (typeof window === "undefined") return null;
76
- console.log("[InsforgeProvider] Window:", window);
77
- try {
78
- const token = localStorage.getItem("insforge-auth-token");
79
- console.log("[InsforgeProvider] Token:", token);
80
- return token;
81
- } catch (error) {
82
- console.error("[InsforgeProvider] Error getting token from SDK:", error);
83
- return null;
84
- }
85
- }
86
72
  async function syncTokenToCookie(token) {
87
73
  try {
88
74
  const response = await fetch("/api/auth", {
@@ -113,11 +99,13 @@ function InsforgeProvider({
113
99
  const [user, setUser] = (0, import_react.useState)(null);
114
100
  const [session, setSession] = (0, import_react.useState)(null);
115
101
  const [isLoaded, setIsLoaded] = (0, import_react.useState)(false);
116
- const refreshIntervalRef = (0, import_react.useRef)();
102
+ const refreshIntervalRef = (0, import_react.useRef)(null);
117
103
  const [insforge] = (0, import_react.useState)(() => (0, import_sdk.createClient)({ baseUrl }));
118
104
  const loadAuthState = (0, import_react.useCallback)(async () => {
119
105
  try {
120
- const token = getTokenFromSDK();
106
+ const sessionResult = insforge.auth.getCurrentSession();
107
+ const session2 = sessionResult.data?.session;
108
+ const token = session2?.accessToken || null;
121
109
  if (!token) {
122
110
  setUser(null);
123
111
  setSession(null);
@@ -132,7 +120,6 @@ function InsforgeProvider({
132
120
  try {
133
121
  const cachedData = JSON.parse(cachedUserStr);
134
122
  if (cachedData.user) {
135
- console.log("[InsforgeProvider] Loading user from cache");
136
123
  const userData = {
137
124
  id: cachedData.user.id,
138
125
  email: cachedData.user.email,
@@ -162,7 +149,6 @@ function InsforgeProvider({
162
149
  }
163
150
  const userResult = await insforge.auth.getCurrentUser();
164
151
  if (userResult.data) {
165
- console.log("[InsforgeProvider] User data refreshed from API");
166
152
  const userData = {
167
153
  id: userResult.data.user.id,
168
154
  email: userResult.data.user.email,
@@ -223,28 +209,52 @@ function InsforgeProvider({
223
209
  async (email, password) => {
224
210
  const sdkResult = await insforge.auth.signInWithPassword({ email, password });
225
211
  if (sdkResult.data) {
226
- const userData = {
227
- id: sdkResult.data.user.id,
228
- email: sdkResult.data.user.email,
229
- name: sdkResult.data.user.name || void 0,
230
- createdAt: sdkResult.data.user.createdAt,
231
- updatedAt: sdkResult.data.user.updatedAt
232
- };
233
- const sessionData = {
234
- userId: sdkResult.data.user.id,
235
- token: sdkResult.data.accessToken,
236
- expiresAt: "",
237
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
238
- };
239
- setUser(userData);
240
- setSession(sessionData);
241
- if (onAuthChange) {
242
- onAuthChange(userData);
243
- }
244
- try {
245
- await syncTokenToCookie(sdkResult.data.accessToken);
246
- } catch (error) {
247
- console.error("Please add /api/auth route to your server to sync token to cookie:", error);
212
+ const userResult = await insforge.auth.getCurrentUser();
213
+ if (userResult.data) {
214
+ const userData = {
215
+ id: userResult.data.user.id,
216
+ email: userResult.data.user.email,
217
+ name: userResult.data.user.name || void 0,
218
+ createdAt: userResult.data.user.createdAt,
219
+ updatedAt: userResult.data.user.updatedAt,
220
+ ...userResult.data.profile
221
+ // Include profile fields (nickname, avatar_url, etc.)
222
+ };
223
+ const sessionData = {
224
+ userId: userResult.data.user.id,
225
+ token: sdkResult.data.accessToken || "",
226
+ expiresAt: "",
227
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
228
+ };
229
+ setUser(userData);
230
+ setSession(sessionData);
231
+ localStorage.setItem("insforge-user-profile", JSON.stringify(userResult.data));
232
+ if (onAuthChange) {
233
+ onAuthChange(userData);
234
+ }
235
+ try {
236
+ await syncTokenToCookie(sdkResult.data.accessToken || "");
237
+ } catch (error) {
238
+ console.error("Please add /api/auth route to your server to sync token to cookie:", error);
239
+ }
240
+ } else {
241
+ const userData = {
242
+ id: sdkResult.data.user.id,
243
+ email: sdkResult.data.user.email,
244
+ name: sdkResult.data.user.name || void 0,
245
+ createdAt: sdkResult.data.user.createdAt,
246
+ updatedAt: sdkResult.data.user.updatedAt
247
+ };
248
+ setUser(userData);
249
+ setSession({
250
+ userId: sdkResult.data.user.id,
251
+ token: sdkResult.data.accessToken || "",
252
+ expiresAt: "",
253
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
254
+ });
255
+ if (onAuthChange) {
256
+ onAuthChange(userData);
257
+ }
248
258
  }
249
259
  } else {
250
260
  const errorMessage = sdkResult.error?.message || "Invalid email or password";
@@ -257,27 +267,51 @@ function InsforgeProvider({
257
267
  async (email, password) => {
258
268
  const sdkResult = await insforge.auth.signUp({ email, password });
259
269
  if (sdkResult.data) {
260
- const userData = {
261
- id: sdkResult.data.user.id,
262
- email: sdkResult.data.user.email,
263
- name: sdkResult.data.user.name || void 0,
264
- createdAt: sdkResult.data.user.createdAt,
265
- updatedAt: sdkResult.data.user.updatedAt
266
- };
267
- const sessionData = {
268
- userId: sdkResult.data.user.id,
269
- token: sdkResult.data.accessToken,
270
- expiresAt: "",
271
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
272
- };
273
- setUser(userData);
274
- setSession(sessionData);
275
- if (onAuthChange) {
276
- onAuthChange(userData);
277
- }
278
- try {
279
- await syncTokenToCookie(sdkResult.data.accessToken);
280
- } catch (error) {
270
+ const userResult = await insforge.auth.getCurrentUser();
271
+ if (userResult.data) {
272
+ const userData = {
273
+ id: userResult.data.user.id,
274
+ email: userResult.data.user.email,
275
+ name: userResult.data.user.name || void 0,
276
+ createdAt: userResult.data.user.createdAt,
277
+ updatedAt: userResult.data.user.updatedAt,
278
+ ...userResult.data.profile
279
+ // Include profile fields (nickname, avatar_url, etc.)
280
+ };
281
+ const sessionData = {
282
+ userId: userResult.data.user.id,
283
+ token: sdkResult.data.accessToken || "",
284
+ expiresAt: "",
285
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
286
+ };
287
+ setUser(userData);
288
+ setSession(sessionData);
289
+ localStorage.setItem("insforge-user-profile", JSON.stringify(userResult.data));
290
+ if (onAuthChange) {
291
+ onAuthChange(userData);
292
+ }
293
+ try {
294
+ await syncTokenToCookie(sdkResult.data.accessToken || "");
295
+ } catch (error) {
296
+ }
297
+ } else {
298
+ const userData = {
299
+ id: sdkResult.data.user.id,
300
+ email: sdkResult.data.user.email,
301
+ name: sdkResult.data.user.name || void 0,
302
+ createdAt: sdkResult.data.user.createdAt,
303
+ updatedAt: sdkResult.data.user.updatedAt
304
+ };
305
+ setUser(userData);
306
+ setSession({
307
+ userId: sdkResult.data.user.id,
308
+ token: sdkResult.data.accessToken || "",
309
+ expiresAt: "",
310
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
311
+ });
312
+ if (onAuthChange) {
313
+ onAuthChange(userData);
314
+ }
281
315
  }
282
316
  } else {
283
317
  const errorMessage = sdkResult.error?.message || "Sign up failed";
@@ -365,6 +399,10 @@ function useSession() {
365
399
  return { session, isLoaded };
366
400
  }
367
401
 
402
+ // src/components/SignIn.tsx
403
+ var import_react5 = require("react");
404
+ var import_sdk3 = require("@insforge/sdk");
405
+
368
406
  // src/hooks/useOAuthProviders.ts
369
407
  var import_react2 = require("react");
370
408
  var import_sdk2 = require("@insforge/sdk");
@@ -383,7 +421,8 @@ function useOAuthProviders() {
383
421
  console.warn("[useOAuthProviders] Failed to fetch OAuth providers:", error);
384
422
  setProviders([]);
385
423
  } else if (data) {
386
- setProviders(data);
424
+ const configuredProviders = data.filter((p) => p.isConfigured).map((p) => p.provider);
425
+ setProviders(configuredProviders);
387
426
  } else {
388
427
  setProviders([]);
389
428
  }
@@ -404,10 +443,6 @@ function useOAuthProviders() {
404
443
  return { providers, isLoaded };
405
444
  }
406
445
 
407
- // src/components/SignIn.tsx
408
- var import_react5 = require("react");
409
- var import_sdk3 = require("@insforge/sdk");
410
-
411
446
  // src/components/auth/AuthBranding.tsx
412
447
  var import_link = __toESM(require("next/link"));
413
448
  var import_jsx_runtime2 = require("react/jsx-runtime");
@@ -1029,7 +1064,6 @@ function SignIn({
1029
1064
  provider,
1030
1065
  redirectTo
1031
1066
  });
1032
- console.log("handleOAuth result", result);
1033
1067
  } catch (err) {
1034
1068
  const errorMessage = err.message || `${provider} sign in failed`;
1035
1069
  setError(errorMessage);
@@ -1368,7 +1402,6 @@ function Protect({
1368
1402
  isProviderSupported,
1369
1403
  useAuth,
1370
1404
  useInsforge,
1371
- useOAuthProviders,
1372
1405
  useSession,
1373
1406
  useUser,
1374
1407
  validatePasswordStrength