naystack 1.7.20 → 1.7.24
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/auth/client.cjs.js +10 -24
- package/dist/auth/client.esm.js +10 -24
- package/dist/auth/email/client.cjs.js +10 -24
- package/dist/auth/email/client.d.mts +2 -4
- package/dist/auth/email/client.d.ts +2 -4
- package/dist/auth/email/client.esm.js +10 -24
- package/dist/auth/email/index.cjs.js +19 -23
- package/dist/auth/email/index.d.mts +3 -9
- package/dist/auth/email/index.d.ts +3 -9
- package/dist/auth/email/index.esm.js +18 -23
- package/dist/auth/email/next.cjs.js +2 -2
- package/dist/auth/email/next.d.mts +1 -1
- package/dist/auth/email/next.d.ts +1 -1
- package/dist/auth/email/next.esm.js +2 -2
- package/dist/auth/email/routes/delete.cjs.js +13 -4
- package/dist/auth/email/routes/delete.d.mts +1 -4
- package/dist/auth/email/routes/delete.d.ts +1 -4
- package/dist/auth/email/routes/delete.esm.js +13 -4
- package/dist/auth/email/routes/get.cjs.js +21 -16
- package/dist/auth/email/routes/get.d.mts +1 -4
- package/dist/auth/email/routes/get.d.ts +1 -4
- package/dist/auth/email/routes/get.esm.js +21 -16
- package/dist/auth/email/routes/post.cjs.js +25 -29
- package/dist/auth/email/routes/post.esm.js +25 -29
- package/dist/auth/email/routes/put.cjs.js +24 -24
- package/dist/auth/email/routes/put.esm.js +24 -24
- package/dist/auth/email/token.cjs.js +8 -7
- package/dist/auth/email/token.d.mts +4 -10
- package/dist/auth/email/token.d.ts +4 -10
- package/dist/auth/email/token.esm.js +8 -7
- package/dist/auth/google/get.cjs.js +3 -15
- package/dist/auth/google/get.esm.js +3 -15
- package/dist/auth/google/index.cjs.js +3 -15
- package/dist/auth/google/index.esm.js +3 -15
- package/dist/auth/index.cjs.js +20 -31
- package/dist/auth/index.d.mts +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.esm.js +19 -31
- package/dist/graphql/index.cjs.js +1 -2
- package/dist/graphql/index.esm.js +1 -2
- package/dist/graphql/init.cjs.js +1 -2
- package/dist/graphql/init.esm.js +1 -2
- package/dist/utils/route.cjs.js +1 -2
- package/dist/utils/route.esm.js +1 -2
- package/package.json +1 -1
|
@@ -4,19 +4,17 @@ import { UserOutput } from '../types.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Generates a JWT access token for the user (2-hour expiry).
|
|
6
6
|
* @param id - User id to encode in the JWT payload.
|
|
7
|
-
* @param signingKey - Secret used to sign the token (typically `SIGNING_KEY` env var).
|
|
8
7
|
* @returns Signed JWT string.
|
|
9
8
|
* @category Auth
|
|
10
9
|
*/
|
|
11
|
-
declare function generateAccessToken(id: number
|
|
10
|
+
declare function generateAccessToken(id: number): string;
|
|
12
11
|
/**
|
|
13
12
|
* Generates a JWT refresh token for the user (no expiry — persisted in httpOnly cookie).
|
|
14
13
|
* @param id - User id to encode in the JWT payload.
|
|
15
|
-
* @param refreshKey - Secret used to sign the token (typically `REFRESH_KEY` env var).
|
|
16
14
|
* @returns Signed JWT string.
|
|
17
15
|
* @category Auth
|
|
18
16
|
*/
|
|
19
|
-
declare function generateRefreshToken(id: number
|
|
17
|
+
declare function generateRefreshToken(id: number): string;
|
|
20
18
|
/**
|
|
21
19
|
* Builds a NextResponse with access/refresh tokens in the JSON body and sets the refresh cookie.
|
|
22
20
|
*
|
|
@@ -24,15 +22,11 @@ declare function generateRefreshToken(id: number, refreshKey: string): string;
|
|
|
24
22
|
* - If `refreshToken` is empty string, the cookie expires immediately (logout).
|
|
25
23
|
* - If `refreshToken` is a valid string, the cookie is set for 1 year.
|
|
26
24
|
*
|
|
27
|
-
* @param
|
|
28
|
-
* @param refreshToken - Optional refresh JWT to set as httpOnly cookie. Empty string clears the cookie.
|
|
25
|
+
* @param id - Optional user id.
|
|
29
26
|
* @returns NextResponse with JSON body and Set-Cookie headers.
|
|
30
27
|
* @category Auth
|
|
31
28
|
*/
|
|
32
|
-
declare function getTokenizedResponse(
|
|
33
|
-
accessToken: string | undefined;
|
|
34
|
-
refreshToken: string | undefined;
|
|
35
|
-
}>;
|
|
29
|
+
declare function getTokenizedResponse(id?: number): NextResponse<string | undefined>;
|
|
36
30
|
/**
|
|
37
31
|
* Decodes a refresh token and returns the user id from the JWT payload.
|
|
38
32
|
* @param refreshToken - JWT refresh token string.
|
|
@@ -59,17 +59,18 @@ function getEnv(key, skipCheck) {
|
|
|
59
59
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
60
60
|
|
|
61
61
|
// src/auth/email/token.ts
|
|
62
|
-
function generateAccessToken(id
|
|
63
|
-
return sign({ id },
|
|
62
|
+
function generateAccessToken(id) {
|
|
63
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
64
64
|
expiresIn: "2h"
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
function generateRefreshToken(id
|
|
68
|
-
return sign({ id },
|
|
67
|
+
function generateRefreshToken(id) {
|
|
68
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
69
69
|
}
|
|
70
|
-
function getTokenizedResponse(
|
|
71
|
-
const
|
|
72
|
-
const
|
|
70
|
+
function getTokenizedResponse(id) {
|
|
71
|
+
const accessToken = id ? generateAccessToken(id) : void 0;
|
|
72
|
+
const refreshToken = id ? generateRefreshToken(id) : void 0;
|
|
73
|
+
const response = NextResponse.json(accessToken, {
|
|
73
74
|
status: 200
|
|
74
75
|
});
|
|
75
76
|
if (!accessToken) {
|
|
@@ -88,13 +88,8 @@ function getEnv(key, skipCheck) {
|
|
|
88
88
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
89
89
|
|
|
90
90
|
// src/auth/email/token.ts
|
|
91
|
-
function
|
|
92
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
93
|
-
expiresIn: "2h"
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
function generateRefreshToken(id, refreshKey) {
|
|
97
|
-
return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
|
|
91
|
+
function generateRefreshToken(id) {
|
|
92
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
98
93
|
}
|
|
99
94
|
|
|
100
95
|
// src/auth/google/get.ts
|
|
@@ -170,18 +165,11 @@ var getGoogleGetRoute = ({
|
|
|
170
165
|
const { data } = JSON.parse(localState);
|
|
171
166
|
const id = await getUserIdFromEmail(user, data);
|
|
172
167
|
if (id) {
|
|
173
|
-
const accessToken = generateAccessToken(
|
|
174
|
-
id,
|
|
175
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
176
|
-
);
|
|
177
|
-
const refreshToken = generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
178
168
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
179
|
-
targetUrl.searchParams.set("accessToken", accessToken);
|
|
180
|
-
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
181
169
|
const res = import_server2.NextResponse.redirect(targetUrl);
|
|
182
170
|
res.cookies.set(
|
|
183
171
|
REFRESH_COOKIE_NAME,
|
|
184
|
-
|
|
172
|
+
generateRefreshToken(id),
|
|
185
173
|
{
|
|
186
174
|
httpOnly: true,
|
|
187
175
|
secure: true
|
|
@@ -64,13 +64,8 @@ function getEnv(key, skipCheck) {
|
|
|
64
64
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
65
65
|
|
|
66
66
|
// src/auth/email/token.ts
|
|
67
|
-
function
|
|
68
|
-
return sign({ id },
|
|
69
|
-
expiresIn: "2h"
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
function generateRefreshToken(id, refreshKey) {
|
|
73
|
-
return sign({ id }, refreshKey);
|
|
67
|
+
function generateRefreshToken(id) {
|
|
68
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
74
69
|
}
|
|
75
70
|
|
|
76
71
|
// src/auth/google/get.ts
|
|
@@ -146,18 +141,11 @@ var getGoogleGetRoute = ({
|
|
|
146
141
|
const { data } = JSON.parse(localState);
|
|
147
142
|
const id = await getUserIdFromEmail(user, data);
|
|
148
143
|
if (id) {
|
|
149
|
-
const accessToken = generateAccessToken(
|
|
150
|
-
id,
|
|
151
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
152
|
-
);
|
|
153
|
-
const refreshToken = generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
154
144
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
155
|
-
targetUrl.searchParams.set("accessToken", accessToken);
|
|
156
|
-
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
157
145
|
const res = NextResponse2.redirect(targetUrl);
|
|
158
146
|
res.cookies.set(
|
|
159
147
|
REFRESH_COOKIE_NAME,
|
|
160
|
-
|
|
148
|
+
generateRefreshToken(id),
|
|
161
149
|
{
|
|
162
150
|
httpOnly: true,
|
|
163
151
|
secure: true
|
|
@@ -90,13 +90,8 @@ function getEnv(key, skipCheck) {
|
|
|
90
90
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
91
91
|
|
|
92
92
|
// src/auth/email/token.ts
|
|
93
|
-
function
|
|
94
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
95
|
-
expiresIn: "2h"
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
function generateRefreshToken(id, refreshKey) {
|
|
99
|
-
return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
|
|
93
|
+
function generateRefreshToken(id) {
|
|
94
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
100
95
|
}
|
|
101
96
|
|
|
102
97
|
// src/auth/google/get.ts
|
|
@@ -172,18 +167,11 @@ var getGoogleGetRoute = ({
|
|
|
172
167
|
const { data } = JSON.parse(localState);
|
|
173
168
|
const id = await getUserIdFromEmail(user, data);
|
|
174
169
|
if (id) {
|
|
175
|
-
const accessToken = generateAccessToken(
|
|
176
|
-
id,
|
|
177
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
178
|
-
);
|
|
179
|
-
const refreshToken = generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
180
170
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
181
|
-
targetUrl.searchParams.set("accessToken", accessToken);
|
|
182
|
-
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
183
171
|
const res = import_server2.NextResponse.redirect(targetUrl);
|
|
184
172
|
res.cookies.set(
|
|
185
173
|
REFRESH_COOKIE_NAME,
|
|
186
|
-
|
|
174
|
+
generateRefreshToken(id),
|
|
187
175
|
{
|
|
188
176
|
httpOnly: true,
|
|
189
177
|
secure: true
|
|
@@ -64,13 +64,8 @@ function getEnv(key, skipCheck) {
|
|
|
64
64
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
65
65
|
|
|
66
66
|
// src/auth/email/token.ts
|
|
67
|
-
function
|
|
68
|
-
return sign({ id },
|
|
69
|
-
expiresIn: "2h"
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
function generateRefreshToken(id, refreshKey) {
|
|
73
|
-
return sign({ id }, refreshKey);
|
|
67
|
+
function generateRefreshToken(id) {
|
|
68
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
74
69
|
}
|
|
75
70
|
|
|
76
71
|
// src/auth/google/get.ts
|
|
@@ -146,18 +141,11 @@ var getGoogleGetRoute = ({
|
|
|
146
141
|
const { data } = JSON.parse(localState);
|
|
147
142
|
const id = await getUserIdFromEmail(user, data);
|
|
148
143
|
if (id) {
|
|
149
|
-
const accessToken = generateAccessToken(
|
|
150
|
-
id,
|
|
151
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
152
|
-
);
|
|
153
|
-
const refreshToken = generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
154
144
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
155
|
-
targetUrl.searchParams.set("accessToken", accessToken);
|
|
156
|
-
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
157
145
|
const res = NextResponse2.redirect(targetUrl);
|
|
158
146
|
res.cookies.set(
|
|
159
147
|
REFRESH_COOKIE_NAME,
|
|
160
|
-
|
|
148
|
+
generateRefreshToken(id),
|
|
161
149
|
{
|
|
162
150
|
httpOnly: true,
|
|
163
151
|
secure: true
|
package/dist/auth/index.cjs.js
CHANGED
|
@@ -36,6 +36,7 @@ __export(auth_exports, {
|
|
|
36
36
|
getContext: () => getContext,
|
|
37
37
|
getRefreshToken: () => getRefreshToken,
|
|
38
38
|
getRefreshedInstagramAccessToken: () => getRefreshedInstagramAccessToken,
|
|
39
|
+
getTokenizedResponse: () => getTokenizedResponse,
|
|
39
40
|
setupEmailAuth: () => setupEmailAuth,
|
|
40
41
|
setupGoogleAuth: () => setupGoogleAuth,
|
|
41
42
|
setupInstagramAuth: () => setupInstagramAuth
|
|
@@ -50,7 +51,6 @@ var import_server = require("next/server");
|
|
|
50
51
|
|
|
51
52
|
// src/auth/constants.ts
|
|
52
53
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
53
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
54
54
|
|
|
55
55
|
// src/utils/route.ts
|
|
56
56
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -58,7 +58,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
58
58
|
return {
|
|
59
59
|
"Access-Control-Allow-Origin": origin,
|
|
60
60
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
61
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
61
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
62
62
|
"Access-Control-Allow-Credentials": "true"
|
|
63
63
|
};
|
|
64
64
|
}
|
|
@@ -147,17 +147,18 @@ function getEnv(key, skipCheck) {
|
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
// src/auth/email/token.ts
|
|
150
|
-
function generateAccessToken(id
|
|
151
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
150
|
+
function generateAccessToken(id) {
|
|
151
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
152
152
|
expiresIn: "2h"
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
|
-
function generateRefreshToken(id
|
|
156
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
155
|
+
function generateRefreshToken(id) {
|
|
156
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
157
157
|
}
|
|
158
|
-
function getTokenizedResponse(
|
|
159
|
-
const
|
|
160
|
-
const
|
|
158
|
+
function getTokenizedResponse(id) {
|
|
159
|
+
const accessToken = id ? generateAccessToken(id) : void 0;
|
|
160
|
+
const refreshToken = id ? generateRefreshToken(id) : void 0;
|
|
161
|
+
const response = import_server2.NextResponse.json(accessToken, {
|
|
161
162
|
status: 200
|
|
162
163
|
});
|
|
163
164
|
if (!accessToken) {
|
|
@@ -298,12 +299,12 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
298
299
|
const body = await req.json();
|
|
299
300
|
await options.onLogout?.(ctx.userId, body);
|
|
300
301
|
}
|
|
301
|
-
return getTokenizedResponse(
|
|
302
|
+
return getTokenizedResponse();
|
|
302
303
|
};
|
|
303
304
|
|
|
304
305
|
// src/auth/email/routes/get.ts
|
|
305
306
|
var getGetRoute = (options) => async (req) => {
|
|
306
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value ||
|
|
307
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || void 0;
|
|
307
308
|
const userID = getUserIdFromRefreshToken(refresh);
|
|
308
309
|
if (userID) {
|
|
309
310
|
if (options.onRefresh) {
|
|
@@ -311,7 +312,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
311
312
|
await options.onRefresh?.(userID, body);
|
|
312
313
|
}
|
|
313
314
|
return getTokenizedResponse(
|
|
314
|
-
|
|
315
|
+
userID
|
|
315
316
|
);
|
|
316
317
|
}
|
|
317
318
|
return getTokenizedResponse();
|
|
@@ -326,11 +327,7 @@ var getPostRoute = (options) => async (req) => {
|
|
|
326
327
|
if (existingUser) {
|
|
327
328
|
if (await verifyUser(existingUser, data.password)) {
|
|
328
329
|
return getTokenizedResponse(
|
|
329
|
-
|
|
330
|
-
generateRefreshToken(
|
|
331
|
-
existingUser.id,
|
|
332
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
333
|
-
)
|
|
330
|
+
existingUser.id
|
|
334
331
|
);
|
|
335
332
|
}
|
|
336
333
|
return handleError(400, "A user already exists", options.onError);
|
|
@@ -345,8 +342,7 @@ var getPostRoute = (options) => async (req) => {
|
|
|
345
342
|
await options.onSignUp?.(newUser.id, data);
|
|
346
343
|
}
|
|
347
344
|
return getTokenizedResponse(
|
|
348
|
-
|
|
349
|
-
generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
|
|
345
|
+
newUser.id
|
|
350
346
|
);
|
|
351
347
|
}
|
|
352
348
|
return getTokenizedResponse();
|
|
@@ -364,8 +360,7 @@ var getPutRoute = (options) => async (req) => {
|
|
|
364
360
|
await options.onLogin?.(user.id, data);
|
|
365
361
|
}
|
|
366
362
|
return getTokenizedResponse(
|
|
367
|
-
|
|
368
|
-
generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
|
|
363
|
+
user.id
|
|
369
364
|
);
|
|
370
365
|
}
|
|
371
366
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -426,8 +421,8 @@ function AuthFetch() {
|
|
|
426
421
|
}
|
|
427
422
|
);
|
|
428
423
|
}
|
|
429
|
-
function AuthWrapper({ children,
|
|
430
|
-
return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(import_client2.AuthWrapper, { skipInitialFetch: true
|
|
424
|
+
function AuthWrapper({ children, skipInitialFetch }) {
|
|
425
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(import_client2.AuthWrapper, { skipInitialFetch: true }, !skipInitialFetch && /* @__PURE__ */ import_react3.default.createElement(AuthFetch, null), children));
|
|
431
426
|
}
|
|
432
427
|
|
|
433
428
|
// src/auth/email/index.ts
|
|
@@ -529,18 +524,11 @@ var getGoogleGetRoute = ({
|
|
|
529
524
|
const { data } = JSON.parse(localState);
|
|
530
525
|
const id = await getUserIdFromEmail(user, data);
|
|
531
526
|
if (id) {
|
|
532
|
-
const accessToken = generateAccessToken(
|
|
533
|
-
id,
|
|
534
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
535
|
-
);
|
|
536
|
-
const refreshToken = generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
537
527
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
538
|
-
targetUrl.searchParams.set("accessToken", accessToken);
|
|
539
|
-
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
540
528
|
const res = import_server6.NextResponse.redirect(targetUrl);
|
|
541
529
|
res.cookies.set(
|
|
542
530
|
REFRESH_COOKIE_NAME,
|
|
543
|
-
|
|
531
|
+
generateRefreshToken(id),
|
|
544
532
|
{
|
|
545
533
|
httpOnly: true,
|
|
546
534
|
secure: true
|
|
@@ -686,6 +674,7 @@ async function getRefreshToken() {
|
|
|
686
674
|
getContext,
|
|
687
675
|
getRefreshToken,
|
|
688
676
|
getRefreshedInstagramAccessToken,
|
|
677
|
+
getTokenizedResponse,
|
|
689
678
|
setupEmailAuth,
|
|
690
679
|
setupGoogleAuth,
|
|
691
680
|
setupInstagramAuth
|
package/dist/auth/index.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ export { SetupGoogleAuthOptions, setupGoogleAuth } from './google/index.mjs';
|
|
|
3
3
|
export { SetupInstagramAuthOptions, setupInstagramAuth } from './instagram/index.mjs';
|
|
4
4
|
export { getRefreshToken } from './utils/token.mjs';
|
|
5
5
|
export { AuthFetch, AuthWrapper } from './email/next.mjs';
|
|
6
|
-
export { checkAuthStatus } from './email/token.mjs';
|
|
6
|
+
export { checkAuthStatus, getTokenizedResponse } from './email/token.mjs';
|
|
7
7
|
export { getContext } from './email/utils.mjs';
|
|
8
8
|
export { getRefreshedInstagramAccessToken } from './instagram/utils.mjs';
|
|
9
9
|
import 'next/server';
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { SetupGoogleAuthOptions, setupGoogleAuth } from './google/index.js';
|
|
|
3
3
|
export { SetupInstagramAuthOptions, setupInstagramAuth } from './instagram/index.js';
|
|
4
4
|
export { getRefreshToken } from './utils/token.js';
|
|
5
5
|
export { AuthFetch, AuthWrapper } from './email/next.js';
|
|
6
|
-
export { checkAuthStatus } from './email/token.js';
|
|
6
|
+
export { checkAuthStatus, getTokenizedResponse } from './email/token.js';
|
|
7
7
|
export { getContext } from './email/utils.js';
|
|
8
8
|
export { getRefreshedInstagramAccessToken } from './instagram/utils.js';
|
|
9
9
|
import 'next/server';
|
package/dist/auth/index.esm.js
CHANGED
|
@@ -6,7 +6,6 @@ import { NextResponse } from "next/server";
|
|
|
6
6
|
|
|
7
7
|
// src/auth/constants.ts
|
|
8
8
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
9
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
10
9
|
|
|
11
10
|
// src/utils/route.ts
|
|
12
11
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -14,7 +13,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
14
13
|
return {
|
|
15
14
|
"Access-Control-Allow-Origin": origin,
|
|
16
15
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
17
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
16
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
18
17
|
"Access-Control-Allow-Credentials": "true"
|
|
19
18
|
};
|
|
20
19
|
}
|
|
@@ -103,17 +102,18 @@ function getEnv(key, skipCheck) {
|
|
|
103
102
|
}
|
|
104
103
|
|
|
105
104
|
// src/auth/email/token.ts
|
|
106
|
-
function generateAccessToken(id
|
|
107
|
-
return sign({ id },
|
|
105
|
+
function generateAccessToken(id) {
|
|
106
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
108
107
|
expiresIn: "2h"
|
|
109
108
|
});
|
|
110
109
|
}
|
|
111
|
-
function generateRefreshToken(id
|
|
112
|
-
return sign({ id },
|
|
110
|
+
function generateRefreshToken(id) {
|
|
111
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
113
112
|
}
|
|
114
|
-
function getTokenizedResponse(
|
|
115
|
-
const
|
|
116
|
-
const
|
|
113
|
+
function getTokenizedResponse(id) {
|
|
114
|
+
const accessToken = id ? generateAccessToken(id) : void 0;
|
|
115
|
+
const refreshToken = id ? generateRefreshToken(id) : void 0;
|
|
116
|
+
const response = NextResponse2.json(accessToken, {
|
|
117
117
|
status: 200
|
|
118
118
|
});
|
|
119
119
|
if (!accessToken) {
|
|
@@ -254,12 +254,12 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
254
254
|
const body = await req.json();
|
|
255
255
|
await options.onLogout?.(ctx.userId, body);
|
|
256
256
|
}
|
|
257
|
-
return getTokenizedResponse(
|
|
257
|
+
return getTokenizedResponse();
|
|
258
258
|
};
|
|
259
259
|
|
|
260
260
|
// src/auth/email/routes/get.ts
|
|
261
261
|
var getGetRoute = (options) => async (req) => {
|
|
262
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value ||
|
|
262
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || void 0;
|
|
263
263
|
const userID = getUserIdFromRefreshToken(refresh);
|
|
264
264
|
if (userID) {
|
|
265
265
|
if (options.onRefresh) {
|
|
@@ -267,7 +267,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
267
267
|
await options.onRefresh?.(userID, body);
|
|
268
268
|
}
|
|
269
269
|
return getTokenizedResponse(
|
|
270
|
-
|
|
270
|
+
userID
|
|
271
271
|
);
|
|
272
272
|
}
|
|
273
273
|
return getTokenizedResponse();
|
|
@@ -282,11 +282,7 @@ var getPostRoute = (options) => async (req) => {
|
|
|
282
282
|
if (existingUser) {
|
|
283
283
|
if (await verifyUser(existingUser, data.password)) {
|
|
284
284
|
return getTokenizedResponse(
|
|
285
|
-
|
|
286
|
-
generateRefreshToken(
|
|
287
|
-
existingUser.id,
|
|
288
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
289
|
-
)
|
|
285
|
+
existingUser.id
|
|
290
286
|
);
|
|
291
287
|
}
|
|
292
288
|
return handleError(400, "A user already exists", options.onError);
|
|
@@ -301,8 +297,7 @@ var getPostRoute = (options) => async (req) => {
|
|
|
301
297
|
await options.onSignUp?.(newUser.id, data);
|
|
302
298
|
}
|
|
303
299
|
return getTokenizedResponse(
|
|
304
|
-
|
|
305
|
-
generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
|
|
300
|
+
newUser.id
|
|
306
301
|
);
|
|
307
302
|
}
|
|
308
303
|
return getTokenizedResponse();
|
|
@@ -320,8 +315,7 @@ var getPutRoute = (options) => async (req) => {
|
|
|
320
315
|
await options.onLogin?.(user.id, data);
|
|
321
316
|
}
|
|
322
317
|
return getTokenizedResponse(
|
|
323
|
-
|
|
324
|
-
generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
|
|
318
|
+
user.id
|
|
325
319
|
);
|
|
326
320
|
}
|
|
327
321
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -386,8 +380,8 @@ function AuthFetch() {
|
|
|
386
380
|
}
|
|
387
381
|
);
|
|
388
382
|
}
|
|
389
|
-
function AuthWrapper({ children,
|
|
390
|
-
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(AuthWrapperClient, { skipInitialFetch: true
|
|
383
|
+
function AuthWrapper({ children, skipInitialFetch }) {
|
|
384
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(AuthWrapperClient, { skipInitialFetch: true }, !skipInitialFetch && /* @__PURE__ */ React2.createElement(AuthFetch, null), children));
|
|
391
385
|
}
|
|
392
386
|
|
|
393
387
|
// src/auth/email/index.ts
|
|
@@ -489,18 +483,11 @@ var getGoogleGetRoute = ({
|
|
|
489
483
|
const { data } = JSON.parse(localState);
|
|
490
484
|
const id = await getUserIdFromEmail(user, data);
|
|
491
485
|
if (id) {
|
|
492
|
-
const accessToken = generateAccessToken(
|
|
493
|
-
id,
|
|
494
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
495
|
-
);
|
|
496
|
-
const refreshToken = generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
497
486
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
498
|
-
targetUrl.searchParams.set("accessToken", accessToken);
|
|
499
|
-
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
500
487
|
const res = NextResponse5.redirect(targetUrl);
|
|
501
488
|
res.cookies.set(
|
|
502
489
|
REFRESH_COOKIE_NAME,
|
|
503
|
-
|
|
490
|
+
generateRefreshToken(id),
|
|
504
491
|
{
|
|
505
492
|
httpOnly: true,
|
|
506
493
|
secure: true
|
|
@@ -645,6 +632,7 @@ export {
|
|
|
645
632
|
getContext,
|
|
646
633
|
getRefreshToken,
|
|
647
634
|
getRefreshedInstagramAccessToken,
|
|
635
|
+
getTokenizedResponse,
|
|
648
636
|
setupEmailAuth,
|
|
649
637
|
setupGoogleAuth,
|
|
650
638
|
setupInstagramAuth
|
|
@@ -634,7 +634,6 @@ var import_server = require("next/server");
|
|
|
634
634
|
|
|
635
635
|
// src/auth/constants.ts
|
|
636
636
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
637
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
638
637
|
|
|
639
638
|
// src/utils/route.ts
|
|
640
639
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -642,7 +641,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
642
641
|
return {
|
|
643
642
|
"Access-Control-Allow-Origin": origin,
|
|
644
643
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
645
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
644
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
646
645
|
"Access-Control-Allow-Credentials": "true"
|
|
647
646
|
};
|
|
648
647
|
}
|
|
@@ -619,7 +619,6 @@ import { NextResponse } from "next/server";
|
|
|
619
619
|
|
|
620
620
|
// src/auth/constants.ts
|
|
621
621
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
622
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
623
622
|
|
|
624
623
|
// src/utils/route.ts
|
|
625
624
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -627,7 +626,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
627
626
|
return {
|
|
628
627
|
"Access-Control-Allow-Origin": origin,
|
|
629
628
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
630
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
629
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
631
630
|
"Access-Control-Allow-Credentials": "true"
|
|
632
631
|
};
|
|
633
632
|
}
|
package/dist/graphql/init.cjs.js
CHANGED
|
@@ -85,7 +85,6 @@ var import_server = require("next/server");
|
|
|
85
85
|
|
|
86
86
|
// src/auth/constants.ts
|
|
87
87
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
88
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
89
88
|
|
|
90
89
|
// src/utils/route.ts
|
|
91
90
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -93,7 +92,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
93
92
|
return {
|
|
94
93
|
"Access-Control-Allow-Origin": origin,
|
|
95
94
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
96
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
95
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
97
96
|
"Access-Control-Allow-Credentials": "true"
|
|
98
97
|
};
|
|
99
98
|
}
|
package/dist/graphql/init.esm.js
CHANGED
|
@@ -66,7 +66,6 @@ import { NextResponse } from "next/server";
|
|
|
66
66
|
|
|
67
67
|
// src/auth/constants.ts
|
|
68
68
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
69
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
70
69
|
|
|
71
70
|
// src/utils/route.ts
|
|
72
71
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -74,7 +73,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
74
73
|
return {
|
|
75
74
|
"Access-Control-Allow-Origin": origin,
|
|
76
75
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
77
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
76
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
78
77
|
"Access-Control-Allow-Credentials": "true"
|
|
79
78
|
};
|
|
80
79
|
}
|
package/dist/utils/route.cjs.js
CHANGED
|
@@ -28,7 +28,6 @@ var import_server = require("next/server");
|
|
|
28
28
|
|
|
29
29
|
// src/auth/constants.ts
|
|
30
30
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
31
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
32
31
|
|
|
33
32
|
// src/utils/route.ts
|
|
34
33
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -36,7 +35,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
36
35
|
return {
|
|
37
36
|
"Access-Control-Allow-Origin": origin,
|
|
38
37
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
39
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
38
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
40
39
|
"Access-Control-Allow-Credentials": "true"
|
|
41
40
|
};
|
|
42
41
|
}
|
package/dist/utils/route.esm.js
CHANGED
|
@@ -3,7 +3,6 @@ import { NextResponse } from "next/server";
|
|
|
3
3
|
|
|
4
4
|
// src/auth/constants.ts
|
|
5
5
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
6
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
7
6
|
|
|
8
7
|
// src/utils/route.ts
|
|
9
8
|
function getCorsHeaders(origin, allowedOrigins) {
|
|
@@ -11,7 +10,7 @@ function getCorsHeaders(origin, allowedOrigins) {
|
|
|
11
10
|
return {
|
|
12
11
|
"Access-Control-Allow-Origin": origin,
|
|
13
12
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
14
|
-
"Access-Control-Allow-Headers": `Content-Type, Authorization
|
|
13
|
+
"Access-Control-Allow-Headers": `Content-Type, Authorization`,
|
|
15
14
|
"Access-Control-Allow-Credentials": "true"
|
|
16
15
|
};
|
|
17
16
|
}
|