naystack 1.1.12-beta.2 → 1.1.12-beta.20

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 (39) hide show
  1. package/dist/auth/email/index.cjs.js +41 -18
  2. package/dist/auth/email/index.d.mts +8 -3
  3. package/dist/auth/email/index.d.ts +8 -3
  4. package/dist/auth/email/index.esm.js +41 -18
  5. package/dist/auth/email/routes/post.cjs.js +1 -0
  6. package/dist/auth/email/routes/post.esm.js +1 -0
  7. package/dist/auth/email/routes/put.cjs.js +1 -0
  8. package/dist/auth/email/routes/put.esm.js +1 -0
  9. package/dist/auth/email/utils.cjs.js +43 -2
  10. package/dist/auth/email/utils.d.mts +5 -1
  11. package/dist/auth/email/utils.d.ts +5 -1
  12. package/dist/auth/email/utils.esm.js +44 -2
  13. package/dist/auth/google/index.cjs.js +31 -0
  14. package/dist/auth/google/index.d.mts +3 -0
  15. package/dist/auth/google/index.d.ts +3 -0
  16. package/dist/auth/google/index.esm.js +6 -0
  17. package/dist/auth/google/oauth.cjs.js +35 -0
  18. package/dist/auth/google/oauth.d.mts +5 -0
  19. package/dist/auth/google/oauth.d.ts +5 -0
  20. package/dist/auth/google/oauth.esm.js +10 -0
  21. package/dist/auth/index.cjs.js +41 -18
  22. package/dist/auth/index.esm.js +41 -18
  23. package/dist/graphql/index.cjs.js +117 -63
  24. package/dist/graphql/index.d.mts +1 -2
  25. package/dist/graphql/index.d.ts +1 -2
  26. package/dist/graphql/index.esm.js +122 -60
  27. package/dist/graphql/init.cjs.js +8 -61
  28. package/dist/graphql/init.d.mts +3 -5
  29. package/dist/graphql/init.d.ts +3 -5
  30. package/dist/graphql/init.esm.js +6 -59
  31. package/dist/graphql/utils.cjs.js +0 -2
  32. package/dist/graphql/utils.d.mts +15 -10
  33. package/dist/graphql/utils.d.ts +15 -10
  34. package/dist/graphql/utils.esm.js +0 -2
  35. package/package.json +7 -3
  36. package/dist/graphql/context.cjs.js +0 -76
  37. package/dist/graphql/context.d.mts +0 -6
  38. package/dist/graphql/context.d.ts +0 -6
  39. package/dist/graphql/context.esm.js +0 -51
@@ -24,6 +24,9 @@ __export(email_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(email_exports);
26
26
 
27
+ // src/auth/email/utils.ts
28
+ var import_jsonwebtoken2 = require("jsonwebtoken");
29
+
27
30
  // src/auth/email/token.ts
28
31
  var import_bcryptjs = require("bcryptjs");
29
32
  var import_jsonwebtoken = require("jsonwebtoken");
@@ -74,23 +77,6 @@ function verifyUser(user, password) {
74
77
  return (0, import_bcryptjs.compare)(password, user.password);
75
78
  }
76
79
 
77
- // src/auth/email/routes/delete.ts
78
- var getDeleteRoute = () => () => getTokenizedResponse(void 0, "");
79
-
80
- // src/auth/email/routes/get.ts
81
- var getGetRoute = (options) => (req) => {
82
- const refresh = req.cookies.get("refresh")?.value;
83
- const userID = getUserIdFromRefreshToken(options.refreshKey, refresh);
84
- if (userID)
85
- return getTokenizedResponse(
86
- generateAccessToken(userID, options.signingKey)
87
- );
88
- return getTokenizedResponse();
89
- };
90
-
91
- // src/auth/email/routes/post.ts
92
- var import_bcryptjs2 = require("bcryptjs");
93
-
94
80
  // src/auth/utils/errors.ts
95
81
  var import_server2 = require("next/server");
96
82
  function handleError(status, message, onError) {
@@ -142,8 +128,44 @@ async function verifyCaptcha(token, secret) {
142
128
  }
143
129
  return false;
144
130
  }
131
+ var getUserContext = (refreshKey, signingKey, req) => {
132
+ const bearer = req.headers.get("authorization");
133
+ if (!bearer) {
134
+ const refresh = req.cookies.get("refresh")?.value;
135
+ const userId = getUserIdFromRefreshToken(refreshKey, refresh);
136
+ if (userId) return { refreshUserID: userId };
137
+ return null;
138
+ }
139
+ const token = bearer.slice(7);
140
+ try {
141
+ const res = (0, import_jsonwebtoken2.verify)(token, signingKey);
142
+ if (typeof res === "string") {
143
+ return null;
144
+ }
145
+ return {
146
+ accessUserId: res.id
147
+ };
148
+ } catch {
149
+ }
150
+ return null;
151
+ };
152
+
153
+ // src/auth/email/routes/delete.ts
154
+ var getDeleteRoute = () => () => getTokenizedResponse(void 0, "");
155
+
156
+ // src/auth/email/routes/get.ts
157
+ var getGetRoute = (options) => (req) => {
158
+ const refresh = req.cookies.get("refresh")?.value;
159
+ const userID = getUserIdFromRefreshToken(options.refreshKey, refresh);
160
+ if (userID)
161
+ return getTokenizedResponse(
162
+ generateAccessToken(userID, options.signingKey)
163
+ );
164
+ return getTokenizedResponse();
165
+ };
145
166
 
146
167
  // src/auth/email/routes/post.ts
168
+ var import_bcryptjs2 = require("bcryptjs");
147
169
  var getPostRoute = (options) => async (req) => {
148
170
  const { data, error } = await massageRequest(req, options);
149
171
  if (error || !data) return error;
@@ -194,7 +216,8 @@ function getEmailAuthRoutes(options) {
194
216
  GET: getGetRoute(options),
195
217
  POST: getPostRoute(options),
196
218
  PUT: getPutRoute(options),
197
- DELETE: getDeleteRoute()
219
+ DELETE: getDeleteRoute(),
220
+ getUserIdFromRequest: (req) => getUserContext(options.refreshKey, options.signingKey, req)
198
221
  };
199
222
  }
200
223
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,18 +1,23 @@
1
1
  import * as next_server from 'next/server';
2
+ import { NextRequest } from 'next/server';
2
3
  import { InitRoutesOptions } from './types.mjs';
3
4
  import '../types.mjs';
4
5
 
5
6
  declare function getEmailAuthRoutes(options: InitRoutesOptions): {
6
- GET: (req: next_server.NextRequest) => next_server.NextResponse<{
7
+ GET: (req: NextRequest) => next_server.NextResponse<{
7
8
  accessToken: string | undefined;
8
9
  refreshToken: string | undefined;
9
10
  }>;
10
- POST: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
11
- PUT: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
11
+ POST: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
12
+ PUT: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
12
13
  DELETE: () => next_server.NextResponse<{
13
14
  accessToken: string | undefined;
14
15
  refreshToken: string | undefined;
15
16
  }>;
17
+ getUserIdFromRequest: (req: NextRequest) => {
18
+ refreshUserID?: number;
19
+ accessUserId?: number;
20
+ } | null;
16
21
  };
17
22
 
18
23
  export { getEmailAuthRoutes };
@@ -1,18 +1,23 @@
1
1
  import * as next_server from 'next/server';
2
+ import { NextRequest } from 'next/server';
2
3
  import { InitRoutesOptions } from './types.js';
3
4
  import '../types.js';
4
5
 
5
6
  declare function getEmailAuthRoutes(options: InitRoutesOptions): {
6
- GET: (req: next_server.NextRequest) => next_server.NextResponse<{
7
+ GET: (req: NextRequest) => next_server.NextResponse<{
7
8
  accessToken: string | undefined;
8
9
  refreshToken: string | undefined;
9
10
  }>;
10
- POST: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
11
- PUT: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
11
+ POST: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
12
+ PUT: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
12
13
  DELETE: () => next_server.NextResponse<{
13
14
  accessToken: string | undefined;
14
15
  refreshToken: string | undefined;
15
16
  }>;
17
+ getUserIdFromRequest: (req: NextRequest) => {
18
+ refreshUserID?: number;
19
+ accessUserId?: number;
20
+ } | null;
16
21
  };
17
22
 
18
23
  export { getEmailAuthRoutes };
@@ -1,3 +1,6 @@
1
+ // src/auth/email/utils.ts
2
+ import { verify as verify2 } from "jsonwebtoken";
3
+
1
4
  // src/auth/email/token.ts
2
5
  import { compare } from "bcryptjs";
3
6
  import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
@@ -48,23 +51,6 @@ function verifyUser(user, password) {
48
51
  return compare(password, user.password);
49
52
  }
50
53
 
51
- // src/auth/email/routes/delete.ts
52
- var getDeleteRoute = () => () => getTokenizedResponse(void 0, "");
53
-
54
- // src/auth/email/routes/get.ts
55
- var getGetRoute = (options) => (req) => {
56
- const refresh = req.cookies.get("refresh")?.value;
57
- const userID = getUserIdFromRefreshToken(options.refreshKey, refresh);
58
- if (userID)
59
- return getTokenizedResponse(
60
- generateAccessToken(userID, options.signingKey)
61
- );
62
- return getTokenizedResponse();
63
- };
64
-
65
- // src/auth/email/routes/post.ts
66
- import { hash } from "bcryptjs";
67
-
68
54
  // src/auth/utils/errors.ts
69
55
  import { NextResponse as NextResponse2 } from "next/server";
70
56
  function handleError(status, message, onError) {
@@ -116,8 +102,44 @@ async function verifyCaptcha(token, secret) {
116
102
  }
117
103
  return false;
118
104
  }
105
+ var getUserContext = (refreshKey, signingKey, req) => {
106
+ const bearer = req.headers.get("authorization");
107
+ if (!bearer) {
108
+ const refresh = req.cookies.get("refresh")?.value;
109
+ const userId = getUserIdFromRefreshToken(refreshKey, refresh);
110
+ if (userId) return { refreshUserID: userId };
111
+ return null;
112
+ }
113
+ const token = bearer.slice(7);
114
+ try {
115
+ const res = verify2(token, signingKey);
116
+ if (typeof res === "string") {
117
+ return null;
118
+ }
119
+ return {
120
+ accessUserId: res.id
121
+ };
122
+ } catch {
123
+ }
124
+ return null;
125
+ };
126
+
127
+ // src/auth/email/routes/delete.ts
128
+ var getDeleteRoute = () => () => getTokenizedResponse(void 0, "");
129
+
130
+ // src/auth/email/routes/get.ts
131
+ var getGetRoute = (options) => (req) => {
132
+ const refresh = req.cookies.get("refresh")?.value;
133
+ const userID = getUserIdFromRefreshToken(options.refreshKey, refresh);
134
+ if (userID)
135
+ return getTokenizedResponse(
136
+ generateAccessToken(userID, options.signingKey)
137
+ );
138
+ return getTokenizedResponse();
139
+ };
119
140
 
120
141
  // src/auth/email/routes/post.ts
142
+ import { hash } from "bcryptjs";
121
143
  var getPostRoute = (options) => async (req) => {
122
144
  const { data, error } = await massageRequest(req, options);
123
145
  if (error || !data) return error;
@@ -168,7 +190,8 @@ function getEmailAuthRoutes(options) {
168
190
  GET: getGetRoute(options),
169
191
  POST: getPostRoute(options),
170
192
  PUT: getPutRoute(options),
171
- DELETE: getDeleteRoute()
193
+ DELETE: getDeleteRoute(),
194
+ getUserIdFromRequest: (req) => getUserContext(options.refreshKey, options.signingKey, req)
172
195
  };
173
196
  }
174
197
  export {
@@ -72,6 +72,7 @@ function verifyUser(user, password) {
72
72
  }
73
73
 
74
74
  // src/auth/email/utils.ts
75
+ var import_jsonwebtoken2 = require("jsonwebtoken");
75
76
  async function massageRequest(req, options) {
76
77
  const data = await req.json();
77
78
  if (!data.email || !data.password)
@@ -48,6 +48,7 @@ function verifyUser(user, password) {
48
48
  }
49
49
 
50
50
  // src/auth/email/utils.ts
51
+ import { verify as verify2 } from "jsonwebtoken";
51
52
  async function massageRequest(req, options) {
52
53
  const data = await req.json();
53
54
  if (!data.email || !data.password)
@@ -71,6 +71,7 @@ function verifyUser(user, password) {
71
71
  }
72
72
 
73
73
  // src/auth/email/utils.ts
74
+ var import_jsonwebtoken2 = require("jsonwebtoken");
74
75
  async function massageRequest(req, options) {
75
76
  const data = await req.json();
76
77
  if (!data.email || !data.password)
@@ -45,6 +45,7 @@ function verifyUser(user, password) {
45
45
  }
46
46
 
47
47
  // src/auth/email/utils.ts
48
+ import { verify as verify2 } from "jsonwebtoken";
48
49
  async function massageRequest(req, options) {
49
50
  const data = await req.json();
50
51
  if (!data.email || !data.password)
@@ -20,17 +20,36 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/auth/email/utils.ts
21
21
  var utils_exports = {};
22
22
  __export(utils_exports, {
23
+ getUserContext: () => getUserContext,
23
24
  massageRequest: () => massageRequest,
24
25
  verifyCaptcha: () => verifyCaptcha
25
26
  });
26
27
  module.exports = __toCommonJS(utils_exports);
28
+ var import_jsonwebtoken2 = require("jsonwebtoken");
27
29
 
28
- // src/auth/utils/errors.ts
30
+ // src/auth/email/token.ts
31
+ var import_bcryptjs = require("bcryptjs");
32
+ var import_jsonwebtoken = require("jsonwebtoken");
29
33
  var import_server = require("next/server");
34
+ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
35
+ if (refreshToken)
36
+ try {
37
+ const decoded = (0, import_jsonwebtoken.verify)(refreshToken, refreshKey);
38
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
39
+ return decoded.id;
40
+ } catch (e) {
41
+ if (!(e instanceof import_jsonwebtoken.JsonWebTokenError)) console.error(e, "errors");
42
+ return null;
43
+ }
44
+ return null;
45
+ }
46
+
47
+ // src/auth/utils/errors.ts
48
+ var import_server2 = require("next/server");
30
49
  function handleError(status, message, onError) {
31
50
  const res = onError?.({ status, message });
32
51
  if (res) return res;
33
- return new import_server.NextResponse(message, { status });
52
+ return new import_server2.NextResponse(message, { status });
34
53
  }
35
54
 
36
55
  // src/auth/email/utils.ts
@@ -76,8 +95,30 @@ async function verifyCaptcha(token, secret) {
76
95
  }
77
96
  return false;
78
97
  }
98
+ var getUserContext = (refreshKey, signingKey, req) => {
99
+ const bearer = req.headers.get("authorization");
100
+ if (!bearer) {
101
+ const refresh = req.cookies.get("refresh")?.value;
102
+ const userId = getUserIdFromRefreshToken(refreshKey, refresh);
103
+ if (userId) return { refreshUserID: userId };
104
+ return null;
105
+ }
106
+ const token = bearer.slice(7);
107
+ try {
108
+ const res = (0, import_jsonwebtoken2.verify)(token, signingKey);
109
+ if (typeof res === "string") {
110
+ return null;
111
+ }
112
+ return {
113
+ accessUserId: res.id
114
+ };
115
+ } catch {
116
+ }
117
+ return null;
118
+ };
79
119
  // Annotate the CommonJS export names for ESM import in node:
80
120
  0 && (module.exports = {
121
+ getUserContext,
81
122
  massageRequest,
82
123
  verifyCaptcha
83
124
  });
@@ -12,5 +12,9 @@ declare function massageRequest(req: NextRequest, options: InitRoutesOptions): P
12
12
  };
13
13
  }>;
14
14
  declare function verifyCaptcha(token: string, secret?: string): Promise<boolean>;
15
+ declare const getUserContext: (refreshKey: string, signingKey: string, req: NextRequest) => {
16
+ refreshUserID?: number;
17
+ accessUserId?: number;
18
+ } | null;
15
19
 
16
- export { massageRequest, verifyCaptcha };
20
+ export { getUserContext, massageRequest, verifyCaptcha };
@@ -12,5 +12,9 @@ declare function massageRequest(req: NextRequest, options: InitRoutesOptions): P
12
12
  };
13
13
  }>;
14
14
  declare function verifyCaptcha(token: string, secret?: string): Promise<boolean>;
15
+ declare const getUserContext: (refreshKey: string, signingKey: string, req: NextRequest) => {
16
+ refreshUserID?: number;
17
+ accessUserId?: number;
18
+ } | null;
15
19
 
16
- export { massageRequest, verifyCaptcha };
20
+ export { getUserContext, massageRequest, verifyCaptcha };
@@ -1,9 +1,29 @@
1
- // src/auth/utils/errors.ts
1
+ // src/auth/email/utils.ts
2
+ import { verify as verify2 } from "jsonwebtoken";
3
+
4
+ // src/auth/email/token.ts
5
+ import { compare } from "bcryptjs";
6
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
2
7
  import { NextResponse } from "next/server";
8
+ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
9
+ if (refreshToken)
10
+ try {
11
+ const decoded = verify(refreshToken, refreshKey);
12
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
13
+ return decoded.id;
14
+ } catch (e) {
15
+ if (!(e instanceof JsonWebTokenError)) console.error(e, "errors");
16
+ return null;
17
+ }
18
+ return null;
19
+ }
20
+
21
+ // src/auth/utils/errors.ts
22
+ import { NextResponse as NextResponse2 } from "next/server";
3
23
  function handleError(status, message, onError) {
4
24
  const res = onError?.({ status, message });
5
25
  if (res) return res;
6
- return new NextResponse(message, { status });
26
+ return new NextResponse2(message, { status });
7
27
  }
8
28
 
9
29
  // src/auth/email/utils.ts
@@ -49,7 +69,29 @@ async function verifyCaptcha(token, secret) {
49
69
  }
50
70
  return false;
51
71
  }
72
+ var getUserContext = (refreshKey, signingKey, req) => {
73
+ const bearer = req.headers.get("authorization");
74
+ if (!bearer) {
75
+ const refresh = req.cookies.get("refresh")?.value;
76
+ const userId = getUserIdFromRefreshToken(refreshKey, refresh);
77
+ if (userId) return { refreshUserID: userId };
78
+ return null;
79
+ }
80
+ const token = bearer.slice(7);
81
+ try {
82
+ const res = verify2(token, signingKey);
83
+ if (typeof res === "string") {
84
+ return null;
85
+ }
86
+ return {
87
+ accessUserId: res.id
88
+ };
89
+ } catch {
90
+ }
91
+ return null;
92
+ };
52
93
  export {
94
+ getUserContext,
53
95
  massageRequest,
54
96
  verifyCaptcha
55
97
  };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/auth/google/index.ts
21
+ var google_exports = {};
22
+ __export(google_exports, {
23
+ initGoogleAuth: () => initGoogleAuth
24
+ });
25
+ module.exports = __toCommonJS(google_exports);
26
+ function initGoogleAuth() {
27
+ }
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ initGoogleAuth
31
+ });
@@ -0,0 +1,3 @@
1
+ declare function initGoogleAuth(): void;
2
+
3
+ export { initGoogleAuth };
@@ -0,0 +1,3 @@
1
+ declare function initGoogleAuth(): void;
2
+
3
+ export { initGoogleAuth };
@@ -0,0 +1,6 @@
1
+ // src/auth/google/index.ts
2
+ function initGoogleAuth() {
3
+ }
4
+ export {
5
+ initGoogleAuth
6
+ };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/auth/google/oauth.ts
21
+ var oauth_exports = {};
22
+ __export(oauth_exports, {
23
+ oauth2Client: () => oauth2Client
24
+ });
25
+ module.exports = __toCommonJS(oauth_exports);
26
+ var import_googleapis = require("googleapis");
27
+ var oauth2Client = new import_googleapis.google.auth.OAuth2(
28
+ process.env.GOOGLE_CLIENT_ID,
29
+ process.env.GOOGLE_CLIENT_SECRET,
30
+ `${process.env.NEXT_PUBLIC_BACKEND_BASE_URL}/google`
31
+ );
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ oauth2Client
35
+ });
@@ -0,0 +1,5 @@
1
+ import { OAuth2Client } from 'google-auth-library';
2
+
3
+ declare const oauth2Client: OAuth2Client;
4
+
5
+ export { oauth2Client };
@@ -0,0 +1,5 @@
1
+ import { OAuth2Client } from 'google-auth-library';
2
+
3
+ declare const oauth2Client: OAuth2Client;
4
+
5
+ export { oauth2Client };
@@ -0,0 +1,10 @@
1
+ // src/auth/google/oauth.ts
2
+ import { google } from "googleapis";
3
+ var oauth2Client = new google.auth.OAuth2(
4
+ process.env.GOOGLE_CLIENT_ID,
5
+ process.env.GOOGLE_CLIENT_SECRET,
6
+ `${process.env.NEXT_PUBLIC_BACKEND_BASE_URL}/google`
7
+ );
8
+ export {
9
+ oauth2Client
10
+ };
@@ -24,6 +24,9 @@ __export(auth_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(auth_exports);
26
26
 
27
+ // src/auth/email/utils.ts
28
+ var import_jsonwebtoken2 = require("jsonwebtoken");
29
+
27
30
  // src/auth/email/token.ts
28
31
  var import_bcryptjs = require("bcryptjs");
29
32
  var import_jsonwebtoken = require("jsonwebtoken");
@@ -74,23 +77,6 @@ function verifyUser(user, password) {
74
77
  return (0, import_bcryptjs.compare)(password, user.password);
75
78
  }
76
79
 
77
- // src/auth/email/routes/delete.ts
78
- var getDeleteRoute = () => () => getTokenizedResponse(void 0, "");
79
-
80
- // src/auth/email/routes/get.ts
81
- var getGetRoute = (options) => (req) => {
82
- const refresh = req.cookies.get("refresh")?.value;
83
- const userID = getUserIdFromRefreshToken(options.refreshKey, refresh);
84
- if (userID)
85
- return getTokenizedResponse(
86
- generateAccessToken(userID, options.signingKey)
87
- );
88
- return getTokenizedResponse();
89
- };
90
-
91
- // src/auth/email/routes/post.ts
92
- var import_bcryptjs2 = require("bcryptjs");
93
-
94
80
  // src/auth/utils/errors.ts
95
81
  var import_server2 = require("next/server");
96
82
  function handleError(status, message, onError) {
@@ -142,8 +128,44 @@ async function verifyCaptcha(token, secret) {
142
128
  }
143
129
  return false;
144
130
  }
131
+ var getUserContext = (refreshKey, signingKey, req) => {
132
+ const bearer = req.headers.get("authorization");
133
+ if (!bearer) {
134
+ const refresh = req.cookies.get("refresh")?.value;
135
+ const userId = getUserIdFromRefreshToken(refreshKey, refresh);
136
+ if (userId) return { refreshUserID: userId };
137
+ return null;
138
+ }
139
+ const token = bearer.slice(7);
140
+ try {
141
+ const res = (0, import_jsonwebtoken2.verify)(token, signingKey);
142
+ if (typeof res === "string") {
143
+ return null;
144
+ }
145
+ return {
146
+ accessUserId: res.id
147
+ };
148
+ } catch {
149
+ }
150
+ return null;
151
+ };
152
+
153
+ // src/auth/email/routes/delete.ts
154
+ var getDeleteRoute = () => () => getTokenizedResponse(void 0, "");
155
+
156
+ // src/auth/email/routes/get.ts
157
+ var getGetRoute = (options) => (req) => {
158
+ const refresh = req.cookies.get("refresh")?.value;
159
+ const userID = getUserIdFromRefreshToken(options.refreshKey, refresh);
160
+ if (userID)
161
+ return getTokenizedResponse(
162
+ generateAccessToken(userID, options.signingKey)
163
+ );
164
+ return getTokenizedResponse();
165
+ };
145
166
 
146
167
  // src/auth/email/routes/post.ts
168
+ var import_bcryptjs2 = require("bcryptjs");
147
169
  var getPostRoute = (options) => async (req) => {
148
170
  const { data, error } = await massageRequest(req, options);
149
171
  if (error || !data) return error;
@@ -194,7 +216,8 @@ function getEmailAuthRoutes(options) {
194
216
  GET: getGetRoute(options),
195
217
  POST: getPostRoute(options),
196
218
  PUT: getPutRoute(options),
197
- DELETE: getDeleteRoute()
219
+ DELETE: getDeleteRoute(),
220
+ getUserIdFromRequest: (req) => getUserContext(options.refreshKey, options.signingKey, req)
198
221
  };
199
222
  }
200
223
  // Annotate the CommonJS export names for ESM import in node: