@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/README.md +119 -112
- package/dist/api.d.mts +39 -0
- package/dist/api.d.ts +39 -0
- package/dist/api.js +4 -60
- package/dist/api.js.map +1 -1
- package/dist/api.mjs +3 -58
- package/dist/api.mjs.map +1 -1
- package/dist/index.d.mts +245 -0
- package/dist/index.d.ts +245 -0
- package/dist/index.js +101 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +101 -67
- package/dist/index.mjs.map +1 -1
- package/dist/middleware.d.mts +20 -0
- package/dist/middleware.d.ts +20 -0
- package/dist/middleware.js +17 -21
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +17 -21
- package/dist/middleware.mjs.map +1 -1
- package/package.json +5 -4
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
|
|
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
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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
|
-
|
|
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
|