naystack 1.7.19 → 1.7.21

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.
@@ -33,6 +33,8 @@ __export(email_exports, {
33
33
  AuthFetch: () => AuthFetch,
34
34
  AuthWrapper: () => AuthWrapper,
35
35
  checkAuthStatus: () => checkAuthStatus,
36
+ generateAccessToken: () => generateAccessToken,
37
+ generateRefreshToken: () => generateRefreshToken,
36
38
  getContext: () => getContext,
37
39
  setupEmailAuth: () => setupEmailAuth
38
40
  });
@@ -141,13 +143,13 @@ function getEnv(key, skipCheck) {
141
143
  }
142
144
 
143
145
  // src/auth/email/token.ts
144
- function generateAccessToken(id, signingKey) {
145
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
146
+ function generateAccessToken(id) {
147
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
146
148
  expiresIn: "2h"
147
149
  });
148
150
  }
149
- function generateRefreshToken(id, refreshKey) {
150
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
151
+ function generateRefreshToken(id) {
152
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
151
153
  }
152
154
  function getTokenizedResponse(accessToken, refreshToken) {
153
155
  const body = { accessToken, refreshToken };
@@ -293,7 +295,7 @@ var getGetRoute = (options) => async (req) => {
293
295
  await options.onRefresh?.(userID, body);
294
296
  }
295
297
  return getTokenizedResponse(
296
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
298
+ generateAccessToken(userID)
297
299
  );
298
300
  }
299
301
  return getTokenizedResponse();
@@ -308,10 +310,9 @@ var getPostRoute = (options) => async (req) => {
308
310
  if (existingUser) {
309
311
  if (await verifyUser(existingUser, data.password)) {
310
312
  return getTokenizedResponse(
311
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
313
+ generateAccessToken(existingUser.id),
312
314
  generateRefreshToken(
313
- existingUser.id,
314
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
315
+ existingUser.id
315
316
  )
316
317
  );
317
318
  }
@@ -327,8 +328,8 @@ var getPostRoute = (options) => async (req) => {
327
328
  await options.onSignUp?.(newUser.id, data);
328
329
  }
329
330
  return getTokenizedResponse(
330
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
331
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
331
+ generateAccessToken(newUser.id),
332
+ generateRefreshToken(newUser.id)
332
333
  );
333
334
  }
334
335
  return getTokenizedResponse();
@@ -346,8 +347,8 @@ var getPutRoute = (options) => async (req) => {
346
347
  await options.onLogin?.(user.id, data);
347
348
  }
348
349
  return getTokenizedResponse(
349
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
350
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
350
+ generateAccessToken(user.id),
351
+ generateRefreshToken(user.id)
351
352
  );
352
353
  }
353
354
  return handleError(403, "Invalid password", options.onError);
@@ -439,6 +440,8 @@ function setupEmailAuth(options) {
439
440
  AuthFetch,
440
441
  AuthWrapper,
441
442
  checkAuthStatus,
443
+ generateAccessToken,
444
+ generateRefreshToken,
442
445
  getContext,
443
446
  setupEmailAuth
444
447
  });
@@ -1,7 +1,7 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
2
  import { SetupEmailAuthOptions } from './types.mjs';
3
3
  export { AuthFetch, AuthWrapper } from './next.mjs';
4
- export { checkAuthStatus } from './token.mjs';
4
+ export { checkAuthStatus, generateAccessToken, generateRefreshToken } from './token.mjs';
5
5
  export { getContext } from './utils.mjs';
6
6
  import '../types.mjs';
7
7
  import 'react';
@@ -1,7 +1,7 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
2
  import { SetupEmailAuthOptions } from './types.js';
3
3
  export { AuthFetch, AuthWrapper } from './next.js';
4
- export { checkAuthStatus } from './token.js';
4
+ export { checkAuthStatus, generateAccessToken, generateRefreshToken } from './token.js';
5
5
  export { getContext } from './utils.js';
6
6
  import '../types.js';
7
7
  import 'react';
@@ -103,13 +103,13 @@ function getEnv(key, skipCheck) {
103
103
  }
104
104
 
105
105
  // src/auth/email/token.ts
106
- function generateAccessToken(id, signingKey) {
107
- return sign({ id }, signingKey, {
106
+ function generateAccessToken(id) {
107
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
108
108
  expiresIn: "2h"
109
109
  });
110
110
  }
111
- function generateRefreshToken(id, refreshKey) {
112
- return sign({ id }, refreshKey);
111
+ function generateRefreshToken(id) {
112
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
113
113
  }
114
114
  function getTokenizedResponse(accessToken, refreshToken) {
115
115
  const body = { accessToken, refreshToken };
@@ -255,7 +255,7 @@ var getGetRoute = (options) => async (req) => {
255
255
  await options.onRefresh?.(userID, body);
256
256
  }
257
257
  return getTokenizedResponse(
258
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
258
+ generateAccessToken(userID)
259
259
  );
260
260
  }
261
261
  return getTokenizedResponse();
@@ -270,10 +270,9 @@ var getPostRoute = (options) => async (req) => {
270
270
  if (existingUser) {
271
271
  if (await verifyUser(existingUser, data.password)) {
272
272
  return getTokenizedResponse(
273
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
273
+ generateAccessToken(existingUser.id),
274
274
  generateRefreshToken(
275
- existingUser.id,
276
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
275
+ existingUser.id
277
276
  )
278
277
  );
279
278
  }
@@ -289,8 +288,8 @@ var getPostRoute = (options) => async (req) => {
289
288
  await options.onSignUp?.(newUser.id, data);
290
289
  }
291
290
  return getTokenizedResponse(
292
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
293
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
291
+ generateAccessToken(newUser.id),
292
+ generateRefreshToken(newUser.id)
294
293
  );
295
294
  }
296
295
  return getTokenizedResponse();
@@ -308,8 +307,8 @@ var getPutRoute = (options) => async (req) => {
308
307
  await options.onLogin?.(user.id, data);
309
308
  }
310
309
  return getTokenizedResponse(
311
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
312
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
310
+ generateAccessToken(user.id),
311
+ generateRefreshToken(user.id)
313
312
  );
314
313
  }
315
314
  return handleError(403, "Invalid password", options.onError);
@@ -404,6 +403,8 @@ export {
404
403
  AuthFetch,
405
404
  AuthWrapper,
406
405
  checkAuthStatus,
406
+ generateAccessToken,
407
+ generateRefreshToken,
407
408
  getContext,
408
409
  setupEmailAuth
409
410
  };
@@ -24,6 +24,17 @@ __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
+ var REFRESH_HEADER_NAME = "X-Refresh-Token";
30
+
31
+ // src/auth/email/token.ts
32
+ var import_bcryptjs = require("bcryptjs");
33
+ var import_jsonwebtoken = require("jsonwebtoken");
34
+ var import_headers = require("next/headers");
35
+ var import_navigation = require("next/navigation");
36
+ var import_server = require("next/server");
37
+
27
38
  // src/env.ts
28
39
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
29
40
  var getEnvValue = (key) => {
@@ -74,18 +85,9 @@ function getEnv(key, skipCheck) {
74
85
  return value;
75
86
  }
76
87
 
77
- // src/auth/constants.ts
78
- var REFRESH_COOKIE_NAME = "refresh";
79
- var REFRESH_HEADER_NAME = "X-Refresh-Token";
80
-
81
88
  // 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, {
89
+ function generateAccessToken(id) {
90
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
89
91
  expiresIn: "2h"
90
92
  });
91
93
  }
@@ -133,7 +135,7 @@ var getGetRoute = (options) => async (req) => {
133
135
  await options.onRefresh?.(userID, body);
134
136
  }
135
137
  return getTokenizedResponse(
136
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
138
+ generateAccessToken(userID)
137
139
  );
138
140
  }
139
141
  return getTokenizedResponse();
@@ -1,3 +1,14 @@
1
+ // src/auth/constants.ts
2
+ var REFRESH_COOKIE_NAME = "refresh";
3
+ var REFRESH_HEADER_NAME = "X-Refresh-Token";
4
+
5
+ // src/auth/email/token.ts
6
+ import { compare } from "bcryptjs";
7
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
8
+ import { cookies } from "next/headers";
9
+ import { redirect } from "next/navigation";
10
+ import { NextResponse } from "next/server";
11
+
1
12
  // src/env.ts
2
13
  var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
3
14
  var getEnvValue = (key) => {
@@ -48,18 +59,9 @@ function getEnv(key, skipCheck) {
48
59
  return value;
49
60
  }
50
61
 
51
- // src/auth/constants.ts
52
- var REFRESH_COOKIE_NAME = "refresh";
53
- var REFRESH_HEADER_NAME = "X-Refresh-Token";
54
-
55
62
  // 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, {
63
+ function generateAccessToken(id) {
64
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
63
65
  expiresIn: "2h"
64
66
  });
65
67
  }
@@ -107,7 +109,7 @@ var getGetRoute = (options) => async (req) => {
107
109
  await options.onRefresh?.(userID, body);
108
110
  }
109
111
  return getTokenizedResponse(
110
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
112
+ generateAccessToken(userID)
111
113
  );
112
114
  }
113
115
  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,32 +90,17 @@ 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
105
  function getTokenizedResponse(accessToken, refreshToken) {
106
106
  const body = { accessToken, refreshToken };
@@ -184,10 +184,9 @@ var getPostRoute = (options) => async (req) => {
184
184
  if (existingUser) {
185
185
  if (await verifyUser(existingUser, data.password)) {
186
186
  return getTokenizedResponse(
187
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
187
+ generateAccessToken(existingUser.id),
188
188
  generateRefreshToken(
189
- existingUser.id,
190
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
189
+ existingUser.id
191
190
  )
192
191
  );
193
192
  }
@@ -203,8 +202,8 @@ var getPostRoute = (options) => async (req) => {
203
202
  await options.onSignUp?.(newUser.id, data);
204
203
  }
205
204
  return getTokenizedResponse(
206
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
207
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
205
+ generateAccessToken(newUser.id),
206
+ generateRefreshToken(newUser.id)
208
207
  );
209
208
  }
210
209
  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,32 +66,17 @@ 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
81
  function getTokenizedResponse(accessToken, refreshToken) {
82
82
  const body = { accessToken, refreshToken };
@@ -160,10 +160,9 @@ var getPostRoute = (options) => async (req) => {
160
160
  if (existingUser) {
161
161
  if (await verifyUser(existingUser, data.password)) {
162
162
  return getTokenizedResponse(
163
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
163
+ generateAccessToken(existingUser.id),
164
164
  generateRefreshToken(
165
- existingUser.id,
166
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
165
+ existingUser.id
167
166
  )
168
167
  );
169
168
  }
@@ -179,8 +178,8 @@ var getPostRoute = (options) => async (req) => {
179
178
  await options.onSignUp?.(newUser.id, data);
180
179
  }
181
180
  return getTokenizedResponse(
182
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
183
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
181
+ generateAccessToken(newUser.id),
182
+ generateRefreshToken(newUser.id)
184
183
  );
185
184
  }
186
185
  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,32 +89,17 @@ 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
104
  function getTokenizedResponse(accessToken, refreshToken) {
105
105
  const body = { accessToken, refreshToken };
@@ -187,8 +187,8 @@ var getPutRoute = (options) => async (req) => {
187
187
  await options.onLogin?.(user.id, data);
188
188
  }
189
189
  return getTokenizedResponse(
190
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
191
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
190
+ generateAccessToken(user.id),
191
+ generateRefreshToken(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,32 +63,17 @@ 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
78
  function getTokenizedResponse(accessToken, refreshToken) {
79
79
  const body = { accessToken, refreshToken };
@@ -161,8 +161,8 @@ var getPutRoute = (options) => async (req) => {
161
161
  await options.onLogin?.(user.id, data);
162
162
  }
163
163
  return getTokenizedResponse(
164
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
165
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
164
+ generateAccessToken(user.id),
165
+ generateRefreshToken(user.id)
166
166
  );
167
167
  }
168
168
  return handleError(403, "Invalid password", options.onError);
@@ -89,13 +89,13 @@ 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
100
  function getTokenizedResponse(accessToken, refreshToken) {
101
101
  const body = { accessToken, refreshToken };
@@ -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
  *
@@ -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, 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
  *
@@ -59,13 +59,13 @@ function getEnv(key, skipCheck) {
59
59
  var REFRESH_COOKIE_NAME = "refresh";
60
60
 
61
61
  // src/auth/email/token.ts
62
- function generateAccessToken(id, signingKey) {
63
- return sign({ id }, signingKey, {
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, refreshKey) {
68
- return sign({ id }, refreshKey);
67
+ function generateRefreshToken(id) {
68
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
69
69
  }
70
70
  function getTokenizedResponse(accessToken, refreshToken) {
71
71
  const body = { accessToken, refreshToken };
@@ -88,13 +88,13 @@ function getEnv(key, skipCheck) {
88
88
  var REFRESH_COOKIE_NAME = "refresh";
89
89
 
90
90
  // src/auth/email/token.ts
91
- function generateAccessToken(id, signingKey) {
92
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
91
+ function generateAccessToken(id) {
92
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
93
93
  expiresIn: "2h"
94
94
  });
95
95
  }
96
- function generateRefreshToken(id, refreshKey) {
97
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
96
+ function generateRefreshToken(id) {
97
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
98
98
  }
99
99
 
100
100
  // src/auth/google/get.ts
@@ -171,15 +171,16 @@ var getGoogleGetRoute = ({
171
171
  const id = await getUserIdFromEmail(user, data);
172
172
  if (id) {
173
173
  const accessToken = generateAccessToken(
174
- id,
175
- getEnv("SIGNING_KEY" /* SIGNING_KEY */)
174
+ id
176
175
  );
176
+ const refreshToken = generateRefreshToken(id);
177
177
  const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
178
178
  targetUrl.searchParams.set("accessToken", accessToken);
179
+ targetUrl.searchParams.set("refreshToken", refreshToken);
179
180
  const res = import_server2.NextResponse.redirect(targetUrl);
180
181
  res.cookies.set(
181
182
  REFRESH_COOKIE_NAME,
182
- generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
183
+ refreshToken,
183
184
  {
184
185
  httpOnly: true,
185
186
  secure: true
@@ -64,13 +64,13 @@ function getEnv(key, skipCheck) {
64
64
  var REFRESH_COOKIE_NAME = "refresh";
65
65
 
66
66
  // src/auth/email/token.ts
67
- function generateAccessToken(id, signingKey) {
68
- return sign({ id }, signingKey, {
67
+ function generateAccessToken(id) {
68
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
69
69
  expiresIn: "2h"
70
70
  });
71
71
  }
72
- function generateRefreshToken(id, refreshKey) {
73
- return sign({ id }, refreshKey);
72
+ function generateRefreshToken(id) {
73
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
74
74
  }
75
75
 
76
76
  // src/auth/google/get.ts
@@ -147,15 +147,16 @@ var getGoogleGetRoute = ({
147
147
  const id = await getUserIdFromEmail(user, data);
148
148
  if (id) {
149
149
  const accessToken = generateAccessToken(
150
- id,
151
- getEnv("SIGNING_KEY" /* SIGNING_KEY */)
150
+ id
152
151
  );
152
+ const refreshToken = generateRefreshToken(id);
153
153
  const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
154
154
  targetUrl.searchParams.set("accessToken", accessToken);
155
+ targetUrl.searchParams.set("refreshToken", refreshToken);
155
156
  const res = NextResponse2.redirect(targetUrl);
156
157
  res.cookies.set(
157
158
  REFRESH_COOKIE_NAME,
158
- generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
159
+ refreshToken,
159
160
  {
160
161
  httpOnly: true,
161
162
  secure: true
@@ -90,13 +90,13 @@ function getEnv(key, skipCheck) {
90
90
  var REFRESH_COOKIE_NAME = "refresh";
91
91
 
92
92
  // src/auth/email/token.ts
93
- function generateAccessToken(id, signingKey) {
94
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
93
+ function generateAccessToken(id) {
94
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
95
95
  expiresIn: "2h"
96
96
  });
97
97
  }
98
- function generateRefreshToken(id, refreshKey) {
99
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
98
+ function generateRefreshToken(id) {
99
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
100
100
  }
101
101
 
102
102
  // src/auth/google/get.ts
@@ -173,15 +173,16 @@ var getGoogleGetRoute = ({
173
173
  const id = await getUserIdFromEmail(user, data);
174
174
  if (id) {
175
175
  const accessToken = generateAccessToken(
176
- id,
177
- getEnv("SIGNING_KEY" /* SIGNING_KEY */)
176
+ id
178
177
  );
178
+ const refreshToken = generateRefreshToken(id);
179
179
  const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
180
180
  targetUrl.searchParams.set("accessToken", accessToken);
181
+ targetUrl.searchParams.set("refreshToken", refreshToken);
181
182
  const res = import_server2.NextResponse.redirect(targetUrl);
182
183
  res.cookies.set(
183
184
  REFRESH_COOKIE_NAME,
184
- generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
185
+ refreshToken,
185
186
  {
186
187
  httpOnly: true,
187
188
  secure: true
@@ -64,13 +64,13 @@ function getEnv(key, skipCheck) {
64
64
  var REFRESH_COOKIE_NAME = "refresh";
65
65
 
66
66
  // src/auth/email/token.ts
67
- function generateAccessToken(id, signingKey) {
68
- return sign({ id }, signingKey, {
67
+ function generateAccessToken(id) {
68
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
69
69
  expiresIn: "2h"
70
70
  });
71
71
  }
72
- function generateRefreshToken(id, refreshKey) {
73
- return sign({ id }, refreshKey);
72
+ function generateRefreshToken(id) {
73
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
74
74
  }
75
75
 
76
76
  // src/auth/google/get.ts
@@ -147,15 +147,16 @@ var getGoogleGetRoute = ({
147
147
  const id = await getUserIdFromEmail(user, data);
148
148
  if (id) {
149
149
  const accessToken = generateAccessToken(
150
- id,
151
- getEnv("SIGNING_KEY" /* SIGNING_KEY */)
150
+ id
152
151
  );
152
+ const refreshToken = generateRefreshToken(id);
153
153
  const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
154
154
  targetUrl.searchParams.set("accessToken", accessToken);
155
+ targetUrl.searchParams.set("refreshToken", refreshToken);
155
156
  const res = NextResponse2.redirect(targetUrl);
156
157
  res.cookies.set(
157
158
  REFRESH_COOKIE_NAME,
158
- generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
159
+ refreshToken,
159
160
  {
160
161
  httpOnly: true,
161
162
  secure: true
@@ -33,6 +33,8 @@ __export(auth_exports, {
33
33
  AuthFetch: () => AuthFetch,
34
34
  AuthWrapper: () => AuthWrapper,
35
35
  checkAuthStatus: () => checkAuthStatus,
36
+ generateAccessToken: () => generateAccessToken,
37
+ generateRefreshToken: () => generateRefreshToken,
36
38
  getContext: () => getContext,
37
39
  getRefreshToken: () => getRefreshToken,
38
40
  getRefreshedInstagramAccessToken: () => getRefreshedInstagramAccessToken,
@@ -147,13 +149,13 @@ function getEnv(key, skipCheck) {
147
149
  }
148
150
 
149
151
  // src/auth/email/token.ts
150
- function generateAccessToken(id, signingKey) {
151
- return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
152
+ function generateAccessToken(id) {
153
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
152
154
  expiresIn: "2h"
153
155
  });
154
156
  }
155
- function generateRefreshToken(id, refreshKey) {
156
- return (0, import_jsonwebtoken.sign)({ id }, refreshKey);
157
+ function generateRefreshToken(id) {
158
+ return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
157
159
  }
158
160
  function getTokenizedResponse(accessToken, refreshToken) {
159
161
  const body = { accessToken, refreshToken };
@@ -311,7 +313,7 @@ var getGetRoute = (options) => async (req) => {
311
313
  await options.onRefresh?.(userID, body);
312
314
  }
313
315
  return getTokenizedResponse(
314
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
316
+ generateAccessToken(userID)
315
317
  );
316
318
  }
317
319
  return getTokenizedResponse();
@@ -326,10 +328,9 @@ var getPostRoute = (options) => async (req) => {
326
328
  if (existingUser) {
327
329
  if (await verifyUser(existingUser, data.password)) {
328
330
  return getTokenizedResponse(
329
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
331
+ generateAccessToken(existingUser.id),
330
332
  generateRefreshToken(
331
- existingUser.id,
332
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
333
+ existingUser.id
333
334
  )
334
335
  );
335
336
  }
@@ -345,8 +346,8 @@ var getPostRoute = (options) => async (req) => {
345
346
  await options.onSignUp?.(newUser.id, data);
346
347
  }
347
348
  return getTokenizedResponse(
348
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
349
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
349
+ generateAccessToken(newUser.id),
350
+ generateRefreshToken(newUser.id)
350
351
  );
351
352
  }
352
353
  return getTokenizedResponse();
@@ -364,8 +365,8 @@ var getPutRoute = (options) => async (req) => {
364
365
  await options.onLogin?.(user.id, data);
365
366
  }
366
367
  return getTokenizedResponse(
367
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
368
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
368
+ generateAccessToken(user.id),
369
+ generateRefreshToken(user.id)
369
370
  );
370
371
  }
371
372
  return handleError(403, "Invalid password", options.onError);
@@ -530,15 +531,16 @@ var getGoogleGetRoute = ({
530
531
  const id = await getUserIdFromEmail(user, data);
531
532
  if (id) {
532
533
  const accessToken = generateAccessToken(
533
- id,
534
- getEnv("SIGNING_KEY" /* SIGNING_KEY */)
534
+ id
535
535
  );
536
+ const refreshToken = generateRefreshToken(id);
536
537
  const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
537
538
  targetUrl.searchParams.set("accessToken", accessToken);
539
+ targetUrl.searchParams.set("refreshToken", refreshToken);
538
540
  const res = import_server6.NextResponse.redirect(targetUrl);
539
541
  res.cookies.set(
540
542
  REFRESH_COOKIE_NAME,
541
- generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
543
+ refreshToken,
542
544
  {
543
545
  httpOnly: true,
544
546
  secure: true
@@ -681,6 +683,8 @@ async function getRefreshToken() {
681
683
  AuthFetch,
682
684
  AuthWrapper,
683
685
  checkAuthStatus,
686
+ generateAccessToken,
687
+ generateRefreshToken,
684
688
  getContext,
685
689
  getRefreshToken,
686
690
  getRefreshedInstagramAccessToken,
@@ -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, generateAccessToken, generateRefreshToken } 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';
@@ -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, generateAccessToken, generateRefreshToken } 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';
@@ -103,13 +103,13 @@ function getEnv(key, skipCheck) {
103
103
  }
104
104
 
105
105
  // src/auth/email/token.ts
106
- function generateAccessToken(id, signingKey) {
107
- return sign({ id }, signingKey, {
106
+ function generateAccessToken(id) {
107
+ return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
108
108
  expiresIn: "2h"
109
109
  });
110
110
  }
111
- function generateRefreshToken(id, refreshKey) {
112
- return sign({ id }, refreshKey);
111
+ function generateRefreshToken(id) {
112
+ return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
113
113
  }
114
114
  function getTokenizedResponse(accessToken, refreshToken) {
115
115
  const body = { accessToken, refreshToken };
@@ -267,7 +267,7 @@ var getGetRoute = (options) => async (req) => {
267
267
  await options.onRefresh?.(userID, body);
268
268
  }
269
269
  return getTokenizedResponse(
270
- generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
270
+ generateAccessToken(userID)
271
271
  );
272
272
  }
273
273
  return getTokenizedResponse();
@@ -282,10 +282,9 @@ var getPostRoute = (options) => async (req) => {
282
282
  if (existingUser) {
283
283
  if (await verifyUser(existingUser, data.password)) {
284
284
  return getTokenizedResponse(
285
- generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
285
+ generateAccessToken(existingUser.id),
286
286
  generateRefreshToken(
287
- existingUser.id,
288
- getEnv("REFRESH_KEY" /* REFRESH_KEY */)
287
+ existingUser.id
289
288
  )
290
289
  );
291
290
  }
@@ -301,8 +300,8 @@ var getPostRoute = (options) => async (req) => {
301
300
  await options.onSignUp?.(newUser.id, data);
302
301
  }
303
302
  return getTokenizedResponse(
304
- generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
305
- generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
303
+ generateAccessToken(newUser.id),
304
+ generateRefreshToken(newUser.id)
306
305
  );
307
306
  }
308
307
  return getTokenizedResponse();
@@ -320,8 +319,8 @@ var getPutRoute = (options) => async (req) => {
320
319
  await options.onLogin?.(user.id, data);
321
320
  }
322
321
  return getTokenizedResponse(
323
- generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
324
- generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
322
+ generateAccessToken(user.id),
323
+ generateRefreshToken(user.id)
325
324
  );
326
325
  }
327
326
  return handleError(403, "Invalid password", options.onError);
@@ -490,15 +489,16 @@ var getGoogleGetRoute = ({
490
489
  const id = await getUserIdFromEmail(user, data);
491
490
  if (id) {
492
491
  const accessToken = generateAccessToken(
493
- id,
494
- getEnv("SIGNING_KEY" /* SIGNING_KEY */)
492
+ id
495
493
  );
494
+ const refreshToken = generateRefreshToken(id);
496
495
  const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
497
496
  targetUrl.searchParams.set("accessToken", accessToken);
497
+ targetUrl.searchParams.set("refreshToken", refreshToken);
498
498
  const res = NextResponse5.redirect(targetUrl);
499
499
  res.cookies.set(
500
500
  REFRESH_COOKIE_NAME,
501
- generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
501
+ refreshToken,
502
502
  {
503
503
  httpOnly: true,
504
504
  secure: true
@@ -640,6 +640,8 @@ export {
640
640
  AuthFetch,
641
641
  AuthWrapper,
642
642
  checkAuthStatus,
643
+ generateAccessToken,
644
+ generateRefreshToken,
643
645
  getContext,
644
646
  getRefreshToken,
645
647
  getRefreshedInstagramAccessToken,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naystack",
3
- "version": "1.7.19",
3
+ "version": "1.7.21",
4
4
  "description": "A stack built with Next + GraphQL + S3 + Auth",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",