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.
Files changed (45) hide show
  1. package/dist/auth/client.cjs.js +10 -24
  2. package/dist/auth/client.esm.js +10 -24
  3. package/dist/auth/email/client.cjs.js +10 -24
  4. package/dist/auth/email/client.d.mts +2 -4
  5. package/dist/auth/email/client.d.ts +2 -4
  6. package/dist/auth/email/client.esm.js +10 -24
  7. package/dist/auth/email/index.cjs.js +19 -23
  8. package/dist/auth/email/index.d.mts +3 -9
  9. package/dist/auth/email/index.d.ts +3 -9
  10. package/dist/auth/email/index.esm.js +18 -23
  11. package/dist/auth/email/next.cjs.js +2 -2
  12. package/dist/auth/email/next.d.mts +1 -1
  13. package/dist/auth/email/next.d.ts +1 -1
  14. package/dist/auth/email/next.esm.js +2 -2
  15. package/dist/auth/email/routes/delete.cjs.js +13 -4
  16. package/dist/auth/email/routes/delete.d.mts +1 -4
  17. package/dist/auth/email/routes/delete.d.ts +1 -4
  18. package/dist/auth/email/routes/delete.esm.js +13 -4
  19. package/dist/auth/email/routes/get.cjs.js +21 -16
  20. package/dist/auth/email/routes/get.d.mts +1 -4
  21. package/dist/auth/email/routes/get.d.ts +1 -4
  22. package/dist/auth/email/routes/get.esm.js +21 -16
  23. package/dist/auth/email/routes/post.cjs.js +25 -29
  24. package/dist/auth/email/routes/post.esm.js +25 -29
  25. package/dist/auth/email/routes/put.cjs.js +24 -24
  26. package/dist/auth/email/routes/put.esm.js +24 -24
  27. package/dist/auth/email/token.cjs.js +8 -7
  28. package/dist/auth/email/token.d.mts +4 -10
  29. package/dist/auth/email/token.d.ts +4 -10
  30. package/dist/auth/email/token.esm.js +8 -7
  31. package/dist/auth/google/get.cjs.js +3 -15
  32. package/dist/auth/google/get.esm.js +3 -15
  33. package/dist/auth/google/index.cjs.js +3 -15
  34. package/dist/auth/google/index.esm.js +3 -15
  35. package/dist/auth/index.cjs.js +20 -31
  36. package/dist/auth/index.d.mts +1 -1
  37. package/dist/auth/index.d.ts +1 -1
  38. package/dist/auth/index.esm.js +19 -31
  39. package/dist/graphql/index.cjs.js +1 -2
  40. package/dist/graphql/index.esm.js +1 -2
  41. package/dist/graphql/init.cjs.js +1 -2
  42. package/dist/graphql/init.esm.js +1 -2
  43. package/dist/utils/route.cjs.js +1 -2
  44. package/dist/utils/route.esm.js +1 -2
  45. package/package.json +1 -1
@@ -110,8 +110,8 @@ function AuthFetch() {
110
110
  }
111
111
  );
112
112
  }
113
- function AuthWrapper({ children, getRefreshToken, onTokenUpdate, skipInitialFetch }) {
114
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(AuthWrapperClient, { skipInitialFetch: true, getRefreshToken, onTokenUpdate }, !skipInitialFetch && /* @__PURE__ */ React2.createElement(AuthFetch, null), children));
113
+ function AuthWrapper({ children, skipInitialFetch }) {
114
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(AuthWrapperClient, { skipInitialFetch: true }, !skipInitialFetch && /* @__PURE__ */ React2.createElement(AuthFetch, null), children));
115
115
  }
116
116
  export {
117
117
  AuthFetch,
@@ -85,9 +85,18 @@ function getEnv(key, skipCheck) {
85
85
  var REFRESH_COOKIE_NAME = "refresh";
86
86
 
87
87
  // src/auth/email/token.ts
88
- function getTokenizedResponse(accessToken, refreshToken) {
89
- const body = { accessToken, refreshToken };
90
- const response = import_server.NextResponse.json(body, {
88
+ function generateAccessToken(id) {
89
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
90
+ expiresIn: "2h"
91
+ });
92
+ }
93
+ function generateRefreshToken(id) {
94
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
95
+ }
96
+ function getTokenizedResponse(id) {
97
+ const accessToken = id ? generateAccessToken(id) : void 0;
98
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
99
+ const response = import_server.NextResponse.json(accessToken, {
91
100
  status: 200
92
101
  });
93
102
  if (!accessToken) {
@@ -155,7 +164,7 @@ var getDeleteRoute = (options) => async (req) => {
155
164
  const body = await req.json();
156
165
  await options.onLogout?.(ctx.userId, body);
157
166
  }
158
- return getTokenizedResponse(void 0, "");
167
+ return getTokenizedResponse();
159
168
  };
160
169
  // Annotate the CommonJS export names for ESM import in node:
161
170
  0 && (module.exports = {
@@ -8,9 +8,6 @@ import '../../types.mjs';
8
8
  * @param options - SetupEmailAuthOptions
9
9
  * @returns Async route handler
10
10
  */
11
- declare const getDeleteRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<{
12
- accessToken: string | undefined;
13
- refreshToken: string | undefined;
14
- }>>;
11
+ declare const getDeleteRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<string | undefined>>;
15
12
 
16
13
  export { getDeleteRoute };
@@ -8,9 +8,6 @@ import '../../types.js';
8
8
  * @param options - SetupEmailAuthOptions
9
9
  * @returns Async route handler
10
10
  */
11
- declare const getDeleteRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<{
12
- accessToken: string | undefined;
13
- refreshToken: string | undefined;
14
- }>>;
11
+ declare const getDeleteRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<string | undefined>>;
15
12
 
16
13
  export { getDeleteRoute };
@@ -59,9 +59,18 @@ function getEnv(key, skipCheck) {
59
59
  var REFRESH_COOKIE_NAME = "refresh";
60
60
 
61
61
  // src/auth/email/token.ts
62
- function getTokenizedResponse(accessToken, refreshToken) {
63
- const body = { accessToken, refreshToken };
64
- const response = NextResponse.json(body, {
62
+ function generateAccessToken(id) {
63
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
64
+ expiresIn: "2h"
65
+ });
66
+ }
67
+ function generateRefreshToken(id) {
68
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
69
+ }
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, {
65
74
  status: 200
66
75
  });
67
76
  if (!accessToken) {
@@ -129,7 +138,7 @@ var getDeleteRoute = (options) => async (req) => {
129
138
  const body = await req.json();
130
139
  await options.onLogout?.(ctx.userId, body);
131
140
  }
132
- return getTokenizedResponse(void 0, "");
141
+ return getTokenizedResponse();
133
142
  };
134
143
  export {
135
144
  getDeleteRoute
@@ -24,6 +24,16 @@ __export(get_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(get_exports);
26
26
 
27
+ // src/auth/constants.ts
28
+ var REFRESH_COOKIE_NAME = "refresh";
29
+
30
+ // src/auth/email/token.ts
31
+ var import_bcryptjs = require("bcryptjs");
32
+ var import_jsonwebtoken = require("jsonwebtoken");
33
+ var import_headers = require("next/headers");
34
+ var import_navigation = require("next/navigation");
35
+ var import_server = require("next/server");
36
+
27
37
  // src/env.ts
28
38
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
29
39
  var getEnvValue = (key) => {
@@ -74,24 +84,19 @@ function getEnv(key, skipCheck) {
74
84
  return value;
75
85
  }
76
86
 
77
- // src/auth/constants.ts
78
- var REFRESH_COOKIE_NAME = "refresh";
79
- var REFRESH_HEADER_NAME = "X-Refresh-Token";
80
-
81
87
  // src/auth/email/token.ts
82
- var import_bcryptjs = require("bcryptjs");
83
- var import_jsonwebtoken = require("jsonwebtoken");
84
- var import_headers = require("next/headers");
85
- var import_navigation = require("next/navigation");
86
- var import_server = require("next/server");
87
- function generateAccessToken(id, signingKey) {
88
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
88
+ function generateAccessToken(id) {
89
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
89
90
  expiresIn: "2h"
90
91
  });
91
92
  }
92
- function getTokenizedResponse(accessToken, refreshToken) {
93
- const body = { accessToken, refreshToken };
94
- const response = import_server.NextResponse.json(body, {
93
+ function generateRefreshToken(id) {
94
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
95
+ }
96
+ function getTokenizedResponse(id) {
97
+ const accessToken = id ? generateAccessToken(id) : void 0;
98
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
99
+ const response = import_server.NextResponse.json(accessToken, {
95
100
  status: 200
96
101
  });
97
102
  if (!accessToken) {
@@ -125,7 +130,7 @@ function getUserIdFromRefreshToken(refreshToken) {
125
130
 
126
131
  // src/auth/email/routes/get.ts
127
132
  var getGetRoute = (options) => async (req) => {
128
- const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.headers.get(REFRESH_HEADER_NAME) || void 0;
133
+ const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || void 0;
129
134
  const userID = getUserIdFromRefreshToken(refresh);
130
135
  if (userID) {
131
136
  if (options.onRefresh) {
@@ -133,7 +138,7 @@ var getGetRoute = (options) => async (req) => {
133
138
  await options.onRefresh?.(userID, body);
134
139
  }
135
140
  return getTokenizedResponse(
136
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
141
+ userID
137
142
  );
138
143
  }
139
144
  return getTokenizedResponse();
@@ -8,9 +8,6 @@ import '../../types.mjs';
8
8
  * @param options - SetupEmailAuthOptions
9
9
  * @returns Async route handler
10
10
  */
11
- declare const getGetRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<{
12
- accessToken: string | undefined;
13
- refreshToken: string | undefined;
14
- }>>;
11
+ declare const getGetRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<string | undefined>>;
15
12
 
16
13
  export { getGetRoute };
@@ -8,9 +8,6 @@ import '../../types.js';
8
8
  * @param options - SetupEmailAuthOptions
9
9
  * @returns Async route handler
10
10
  */
11
- declare const getGetRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<{
12
- accessToken: string | undefined;
13
- refreshToken: string | undefined;
14
- }>>;
11
+ declare const getGetRoute: (options: SetupEmailAuthOptions) => (req: NextRequest) => Promise<next_server.NextResponse<string | undefined>>;
15
12
 
16
13
  export { getGetRoute };
@@ -1,3 +1,13 @@
1
+ // src/auth/constants.ts
2
+ var REFRESH_COOKIE_NAME = "refresh";
3
+
4
+ // src/auth/email/token.ts
5
+ import { compare } from "bcryptjs";
6
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
7
+ import { cookies } from "next/headers";
8
+ import { redirect } from "next/navigation";
9
+ import { NextResponse } from "next/server";
10
+
1
11
  // src/env.ts
2
12
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
3
13
  var getEnvValue = (key) => {
@@ -48,24 +58,19 @@ function getEnv(key, skipCheck) {
48
58
  return value;
49
59
  }
50
60
 
51
- // src/auth/constants.ts
52
- var REFRESH_COOKIE_NAME = "refresh";
53
- var REFRESH_HEADER_NAME = "X-Refresh-Token";
54
-
55
61
  // src/auth/email/token.ts
56
- import { compare } from "bcryptjs";
57
- import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
58
- import { cookies } from "next/headers";
59
- import { redirect } from "next/navigation";
60
- import { NextResponse } from "next/server";
61
- function generateAccessToken(id, signingKey) {
62
- return sign({ id }, signingKey, {
62
+ function generateAccessToken(id) {
63
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
63
64
  expiresIn: "2h"
64
65
  });
65
66
  }
66
- function getTokenizedResponse(accessToken, refreshToken) {
67
- const body = { accessToken, refreshToken };
68
- const response = NextResponse.json(body, {
67
+ function generateRefreshToken(id) {
68
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
69
+ }
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, {
69
74
  status: 200
70
75
  });
71
76
  if (!accessToken) {
@@ -99,7 +104,7 @@ function getUserIdFromRefreshToken(refreshToken) {
99
104
 
100
105
  // src/auth/email/routes/get.ts
101
106
  var getGetRoute = (options) => async (req) => {
102
- const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.headers.get(REFRESH_HEADER_NAME) || void 0;
107
+ const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || void 0;
103
108
  const userID = getUserIdFromRefreshToken(refresh);
104
109
  if (userID) {
105
110
  if (options.onRefresh) {
@@ -107,7 +112,7 @@ var getGetRoute = (options) => async (req) => {
107
112
  await options.onRefresh?.(userID, body);
108
113
  }
109
114
  return getTokenizedResponse(
110
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
115
+ userID
111
116
  );
112
117
  }
113
118
  return getTokenizedResponse();
@@ -25,6 +25,21 @@ __export(post_exports, {
25
25
  module.exports = __toCommonJS(post_exports);
26
26
  var import_bcryptjs2 = require("bcryptjs");
27
27
 
28
+ // src/auth/utils/errors.ts
29
+ var import_server = require("next/server");
30
+ function handleError(status, message, onError) {
31
+ const res = onError?.({ status, message });
32
+ if (res) return res;
33
+ return new import_server.NextResponse(message, { status });
34
+ }
35
+
36
+ // src/auth/email/token.ts
37
+ var import_bcryptjs = require("bcryptjs");
38
+ var import_jsonwebtoken = require("jsonwebtoken");
39
+ var import_headers = require("next/headers");
40
+ var import_navigation = require("next/navigation");
41
+ var import_server2 = require("next/server");
42
+
28
43
  // src/env.ts
29
44
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
30
45
  var getEnvValue = (key) => {
@@ -75,36 +90,22 @@ function getEnv(key, skipCheck) {
75
90
  return value;
76
91
  }
77
92
 
78
- // src/auth/utils/errors.ts
79
- var import_server = require("next/server");
80
- function handleError(status, message, onError) {
81
- const res = onError?.({ status, message });
82
- if (res) return res;
83
- return new import_server.NextResponse(message, { status });
84
- }
85
-
86
- // src/auth/email/token.ts
87
- var import_bcryptjs = require("bcryptjs");
88
- var import_jsonwebtoken = require("jsonwebtoken");
89
- var import_headers = require("next/headers");
90
- var import_navigation = require("next/navigation");
91
- var import_server2 = require("next/server");
92
-
93
93
  // src/auth/constants.ts
94
94
  var REFRESH_COOKIE_NAME = "refresh";
95
95
 
96
96
  // src/auth/email/token.ts
97
- function generateAccessToken(id, signingKey) {
98
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
97
+ function generateAccessToken(id) {
98
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
99
99
  expiresIn: "2h"
100
100
  });
101
101
  }
102
- function generateRefreshToken(id, refreshKey) {
103
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
102
+ function generateRefreshToken(id) {
103
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
104
104
  }
105
- function getTokenizedResponse(accessToken, refreshToken) {
106
- const body = { accessToken, refreshToken };
107
- const response = import_server2.NextResponse.json(body, {
105
+ function getTokenizedResponse(id) {
106
+ const accessToken = id ? generateAccessToken(id) : void 0;
107
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
108
+ const response = import_server2.NextResponse.json(accessToken, {
108
109
  status: 200
109
110
  });
110
111
  if (!accessToken) {
@@ -184,11 +185,7 @@ var getPostRoute = (options) => async (req) => {
184
185
  if (existingUser) {
185
186
  if (await verifyUser(existingUser, data.password)) {
186
187
  return getTokenizedResponse(
187
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
188
- generateRefreshToken(
189
- existingUser.id,
190
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
191
- )
188
+ existingUser.id
192
189
  );
193
190
  }
194
191
  return handleError(400, "A user already exists", options.onError);
@@ -203,8 +200,7 @@ var getPostRoute = (options) => async (req) => {
203
200
  await options.onSignUp?.(newUser.id, data);
204
201
  }
205
202
  return getTokenizedResponse(
206
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
207
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
203
+ newUser.id
208
204
  );
209
205
  }
210
206
  return getTokenizedResponse();
@@ -1,6 +1,21 @@
1
1
  // src/auth/email/routes/post.ts
2
2
  import { hash } from "bcryptjs";
3
3
 
4
+ // src/auth/utils/errors.ts
5
+ import { NextResponse } from "next/server";
6
+ function handleError(status, message, onError) {
7
+ const res = onError?.({ status, message });
8
+ if (res) return res;
9
+ return new NextResponse(message, { status });
10
+ }
11
+
12
+ // src/auth/email/token.ts
13
+ import { compare } from "bcryptjs";
14
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
15
+ import { cookies } from "next/headers";
16
+ import { redirect } from "next/navigation";
17
+ import { NextResponse as NextResponse2 } from "next/server";
18
+
4
19
  // src/env.ts
5
20
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
6
21
  var getEnvValue = (key) => {
@@ -51,36 +66,22 @@ function getEnv(key, skipCheck) {
51
66
  return value;
52
67
  }
53
68
 
54
- // src/auth/utils/errors.ts
55
- import { NextResponse } from "next/server";
56
- function handleError(status, message, onError) {
57
- const res = onError?.({ status, message });
58
- if (res) return res;
59
- return new NextResponse(message, { status });
60
- }
61
-
62
- // src/auth/email/token.ts
63
- import { compare } from "bcryptjs";
64
- import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
65
- import { cookies } from "next/headers";
66
- import { redirect } from "next/navigation";
67
- import { NextResponse as NextResponse2 } from "next/server";
68
-
69
69
  // src/auth/constants.ts
70
70
  var REFRESH_COOKIE_NAME = "refresh";
71
71
 
72
72
  // src/auth/email/token.ts
73
- function generateAccessToken(id, signingKey) {
74
- return sign({ id }, signingKey, {
73
+ function generateAccessToken(id) {
74
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
75
75
  expiresIn: "2h"
76
76
  });
77
77
  }
78
- function generateRefreshToken(id, refreshKey) {
79
- return sign({ id }, refreshKey);
78
+ function generateRefreshToken(id) {
79
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
80
80
  }
81
- function getTokenizedResponse(accessToken, refreshToken) {
82
- const body = { accessToken, refreshToken };
83
- const response = NextResponse2.json(body, {
81
+ function getTokenizedResponse(id) {
82
+ const accessToken = id ? generateAccessToken(id) : void 0;
83
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
84
+ const response = NextResponse2.json(accessToken, {
84
85
  status: 200
85
86
  });
86
87
  if (!accessToken) {
@@ -160,11 +161,7 @@ var getPostRoute = (options) => async (req) => {
160
161
  if (existingUser) {
161
162
  if (await verifyUser(existingUser, data.password)) {
162
163
  return getTokenizedResponse(
163
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
164
- generateRefreshToken(
165
- existingUser.id,
166
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
167
- )
164
+ existingUser.id
168
165
  );
169
166
  }
170
167
  return handleError(400, "A user already exists", options.onError);
@@ -179,8 +176,7 @@ var getPostRoute = (options) => async (req) => {
179
176
  await options.onSignUp?.(newUser.id, data);
180
177
  }
181
178
  return getTokenizedResponse(
182
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
183
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
179
+ newUser.id
184
180
  );
185
181
  }
186
182
  return getTokenizedResponse();
@@ -24,6 +24,21 @@ __export(put_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(put_exports);
26
26
 
27
+ // src/auth/utils/errors.ts
28
+ var import_server = require("next/server");
29
+ function handleError(status, message, onError) {
30
+ const res = onError?.({ status, message });
31
+ if (res) return res;
32
+ return new import_server.NextResponse(message, { status });
33
+ }
34
+
35
+ // src/auth/email/token.ts
36
+ var import_bcryptjs = require("bcryptjs");
37
+ var import_jsonwebtoken = require("jsonwebtoken");
38
+ var import_headers = require("next/headers");
39
+ var import_navigation = require("next/navigation");
40
+ var import_server2 = require("next/server");
41
+
27
42
  // src/env.ts
28
43
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
29
44
  var getEnvValue = (key) => {
@@ -74,36 +89,22 @@ function getEnv(key, skipCheck) {
74
89
  return value;
75
90
  }
76
91
 
77
- // src/auth/utils/errors.ts
78
- var import_server = require("next/server");
79
- function handleError(status, message, onError) {
80
- const res = onError?.({ status, message });
81
- if (res) return res;
82
- return new import_server.NextResponse(message, { status });
83
- }
84
-
85
- // src/auth/email/token.ts
86
- var import_bcryptjs = require("bcryptjs");
87
- var import_jsonwebtoken = require("jsonwebtoken");
88
- var import_headers = require("next/headers");
89
- var import_navigation = require("next/navigation");
90
- var import_server2 = require("next/server");
91
-
92
92
  // src/auth/constants.ts
93
93
  var REFRESH_COOKIE_NAME = "refresh";
94
94
 
95
95
  // src/auth/email/token.ts
96
- function generateAccessToken(id, signingKey) {
97
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
96
+ function generateAccessToken(id) {
97
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
98
98
  expiresIn: "2h"
99
99
  });
100
100
  }
101
- function generateRefreshToken(id, refreshKey) {
102
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
101
+ function generateRefreshToken(id) {
102
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
103
103
  }
104
- function getTokenizedResponse(accessToken, refreshToken) {
105
- const body = { accessToken, refreshToken };
106
- const response = import_server2.NextResponse.json(body, {
104
+ function getTokenizedResponse(id) {
105
+ const accessToken = id ? generateAccessToken(id) : void 0;
106
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
107
+ const response = import_server2.NextResponse.json(accessToken, {
107
108
  status: 200
108
109
  });
109
110
  if (!accessToken) {
@@ -187,8 +188,7 @@ var getPutRoute = (options) => async (req) => {
187
188
  await options.onLogin?.(user.id, data);
188
189
  }
189
190
  return getTokenizedResponse(
190
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
191
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
191
+ user.id
192
192
  );
193
193
  }
194
194
  return handleError(403, "Invalid password", options.onError);
@@ -1,3 +1,18 @@
1
+ // src/auth/utils/errors.ts
2
+ import { NextResponse } from "next/server";
3
+ function handleError(status, message, onError) {
4
+ const res = onError?.({ status, message });
5
+ if (res) return res;
6
+ return new NextResponse(message, { status });
7
+ }
8
+
9
+ // src/auth/email/token.ts
10
+ import { compare } from "bcryptjs";
11
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
12
+ import { cookies } from "next/headers";
13
+ import { redirect } from "next/navigation";
14
+ import { NextResponse as NextResponse2 } from "next/server";
15
+
1
16
  // src/env.ts
2
17
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
3
18
  var getEnvValue = (key) => {
@@ -48,36 +63,22 @@ function getEnv(key, skipCheck) {
48
63
  return value;
49
64
  }
50
65
 
51
- // src/auth/utils/errors.ts
52
- import { NextResponse } from "next/server";
53
- function handleError(status, message, onError) {
54
- const res = onError?.({ status, message });
55
- if (res) return res;
56
- return new NextResponse(message, { status });
57
- }
58
-
59
- // src/auth/email/token.ts
60
- import { compare } from "bcryptjs";
61
- import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
62
- import { cookies } from "next/headers";
63
- import { redirect } from "next/navigation";
64
- import { NextResponse as NextResponse2 } from "next/server";
65
-
66
66
  // src/auth/constants.ts
67
67
  var REFRESH_COOKIE_NAME = "refresh";
68
68
 
69
69
  // src/auth/email/token.ts
70
- function generateAccessToken(id, signingKey) {
71
- return sign({ id }, signingKey, {
70
+ function generateAccessToken(id) {
71
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
72
72
  expiresIn: "2h"
73
73
  });
74
74
  }
75
- function generateRefreshToken(id, refreshKey) {
76
- return sign({ id }, refreshKey);
75
+ function generateRefreshToken(id) {
76
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
77
77
  }
78
- function getTokenizedResponse(accessToken, refreshToken) {
79
- const body = { accessToken, refreshToken };
80
- const response = NextResponse2.json(body, {
78
+ function getTokenizedResponse(id) {
79
+ const accessToken = id ? generateAccessToken(id) : void 0;
80
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
81
+ const response = NextResponse2.json(accessToken, {
81
82
  status: 200
82
83
  });
83
84
  if (!accessToken) {
@@ -161,8 +162,7 @@ var getPutRoute = (options) => async (req) => {
161
162
  await options.onLogin?.(user.id, data);
162
163
  }
163
164
  return getTokenizedResponse(
164
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
165
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
165
+ user.id
166
166
  );
167
167
  }
168
168
  return handleError(403, "Invalid password", options.onError);
@@ -89,17 +89,18 @@ function getEnv(key, skipCheck) {
89
89
  var REFRESH_COOKIE_NAME = "refresh";
90
90
 
91
91
  // src/auth/email/token.ts
92
- function generateAccessToken(id, signingKey) {
93
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
92
+ function generateAccessToken(id) {
93
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
94
94
  expiresIn: "2h"
95
95
  });
96
96
  }
97
- function generateRefreshToken(id, refreshKey) {
98
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
97
+ function generateRefreshToken(id) {
98
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
99
99
  }
100
- function getTokenizedResponse(accessToken, refreshToken) {
101
- const body = { accessToken, refreshToken };
102
- const response = import_server.NextResponse.json(body, {
100
+ function getTokenizedResponse(id) {
101
+ const accessToken = id ? generateAccessToken(id) : void 0;
102
+ const refreshToken = id ? generateRefreshToken(id) : void 0;
103
+ const response = import_server.NextResponse.json(accessToken, {
103
104
  status: 200
104
105
  });
105
106
  if (!accessToken) {
@@ -4,19 +4,17 @@ import { UserOutput } from '../types.mjs';
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, signingKey: string): string;
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, refreshKey: string): string;
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 accessToken - Optional access JWT to include in response body.
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(accessToken?: string, refreshToken?: string): NextResponse<{
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.