naystack 1.4.34 → 1.4.36

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.
@@ -21,13 +21,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var email_exports = {};
22
22
  __export(email_exports, {
23
23
  checkAuthStatus: () => checkAuthStatus,
24
+ getContext: () => getContext,
24
25
  getEmailAuthRoutes: () => getEmailAuthRoutes
25
26
  });
26
27
  module.exports = __toCommonJS(email_exports);
27
28
 
28
- // src/auth/email/utils.ts
29
- var import_jsonwebtoken2 = require("jsonwebtoken");
30
-
31
29
  // src/auth/email/token.ts
32
30
  var import_bcryptjs = require("bcryptjs");
33
31
  var import_jsonwebtoken = require("jsonwebtoken");
@@ -141,6 +139,9 @@ async function checkAuthStatus(redirectUnauthorizedURL) {
141
139
  return isAuthorized;
142
140
  }
143
141
 
142
+ // src/auth/email/utils.ts
143
+ var import_jsonwebtoken2 = require("jsonwebtoken");
144
+
144
145
  // src/auth/utils/errors.ts
145
146
  var import_server2 = require("next/server");
146
147
  function handleError(status, message, onError) {
@@ -303,12 +304,12 @@ function getEmailAuthRoutes(options) {
303
304
  GET: getGetRoute(options),
304
305
  POST: getPostRoute(options),
305
306
  PUT: getPutRoute(options),
306
- DELETE: getDeleteRoute(options),
307
- getContext
307
+ DELETE: getDeleteRoute(options)
308
308
  };
309
309
  }
310
310
  // Annotate the CommonJS export names for ESM import in node:
311
311
  0 && (module.exports = {
312
312
  checkAuthStatus,
313
+ getContext,
313
314
  getEmailAuthRoutes
314
315
  });
@@ -1,22 +1,21 @@
1
1
  import * as next_server from 'next/server';
2
- import { NextRequest } from 'next/server';
3
- import { Context } from '../../graphql/types.mjs';
4
2
  import { InitRoutesOptions } from './types.mjs';
5
3
  export { checkAuthStatus } from './token.mjs';
4
+ export { getContext } from './utils.mjs';
6
5
  import '../types.mjs';
6
+ import '../../graphql/types.mjs';
7
7
 
8
8
  declare function getEmailAuthRoutes(options: InitRoutesOptions): {
9
- GET: (req: NextRequest) => Promise<next_server.NextResponse<{
9
+ GET: (req: next_server.NextRequest) => Promise<next_server.NextResponse<{
10
10
  accessToken: string | undefined;
11
11
  refreshToken: string | undefined;
12
12
  }>>;
13
- POST: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
14
- PUT: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
15
- DELETE: (req: NextRequest) => Promise<next_server.NextResponse<{
13
+ POST: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
14
+ PUT: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
15
+ DELETE: (req: next_server.NextRequest) => Promise<next_server.NextResponse<{
16
16
  accessToken: string | undefined;
17
17
  refreshToken: string | undefined;
18
18
  }>>;
19
- getContext: (req: NextRequest) => Context;
20
19
  };
21
20
 
22
21
  export { getEmailAuthRoutes };
@@ -1,22 +1,21 @@
1
1
  import * as next_server from 'next/server';
2
- import { NextRequest } from 'next/server';
3
- import { Context } from '../../graphql/types.js';
4
2
  import { InitRoutesOptions } from './types.js';
5
3
  export { checkAuthStatus } from './token.js';
4
+ export { getContext } from './utils.js';
6
5
  import '../types.js';
6
+ import '../../graphql/types.js';
7
7
 
8
8
  declare function getEmailAuthRoutes(options: InitRoutesOptions): {
9
- GET: (req: NextRequest) => Promise<next_server.NextResponse<{
9
+ GET: (req: next_server.NextRequest) => Promise<next_server.NextResponse<{
10
10
  accessToken: string | undefined;
11
11
  refreshToken: string | undefined;
12
12
  }>>;
13
- POST: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
14
- PUT: (req: NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
15
- DELETE: (req: NextRequest) => Promise<next_server.NextResponse<{
13
+ POST: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
14
+ PUT: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown> | undefined>;
15
+ DELETE: (req: next_server.NextRequest) => Promise<next_server.NextResponse<{
16
16
  accessToken: string | undefined;
17
17
  refreshToken: string | undefined;
18
18
  }>>;
19
- getContext: (req: NextRequest) => Context;
20
19
  };
21
20
 
22
21
  export { getEmailAuthRoutes };
@@ -1,6 +1,3 @@
1
- // src/auth/email/utils.ts
2
- import { verify as verify2 } from "jsonwebtoken";
3
-
4
1
  // src/auth/email/token.ts
5
2
  import { compare } from "bcryptjs";
6
3
  import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
@@ -114,6 +111,9 @@ async function checkAuthStatus(redirectUnauthorizedURL) {
114
111
  return isAuthorized;
115
112
  }
116
113
 
114
+ // src/auth/email/utils.ts
115
+ import { verify as verify2 } from "jsonwebtoken";
116
+
117
117
  // src/auth/utils/errors.ts
118
118
  import { NextResponse as NextResponse2 } from "next/server";
119
119
  function handleError(status, message, onError) {
@@ -276,11 +276,11 @@ function getEmailAuthRoutes(options) {
276
276
  GET: getGetRoute(options),
277
277
  POST: getPostRoute(options),
278
278
  PUT: getPutRoute(options),
279
- DELETE: getDeleteRoute(options),
280
- getContext
279
+ DELETE: getDeleteRoute(options)
281
280
  };
282
281
  }
283
282
  export {
284
283
  checkAuthStatus,
284
+ getContext,
285
285
  getEmailAuthRoutes
286
286
  };
@@ -28,9 +28,6 @@ __export(auth_exports, {
28
28
  });
29
29
  module.exports = __toCommonJS(auth_exports);
30
30
 
31
- // src/auth/email/utils.ts
32
- var import_jsonwebtoken2 = require("jsonwebtoken");
33
-
34
31
  // src/auth/email/token.ts
35
32
  var import_bcryptjs = require("bcryptjs");
36
33
  var import_jsonwebtoken = require("jsonwebtoken");
@@ -156,6 +153,9 @@ async function checkAuthStatus(redirectUnauthorizedURL) {
156
153
  return isAuthorized;
157
154
  }
158
155
 
156
+ // src/auth/email/utils.ts
157
+ var import_jsonwebtoken2 = require("jsonwebtoken");
158
+
159
159
  // src/auth/utils/errors.ts
160
160
  var import_server2 = require("next/server");
161
161
  function handleError(status, message, onError) {
@@ -318,8 +318,7 @@ function getEmailAuthRoutes(options) {
318
318
  GET: getGetRoute(options),
319
319
  POST: getPostRoute(options),
320
320
  PUT: getPutRoute(options),
321
- DELETE: getDeleteRoute(options),
322
- getContext
321
+ DELETE: getDeleteRoute(options)
323
322
  };
324
323
  }
325
324
 
@@ -4,9 +4,10 @@ export { initInstagramAuth } from './instagram/index.mjs';
4
4
  export { getRefreshToken } from './utils/token.mjs';
5
5
  export { checkAuthStatus } from './email/token.mjs';
6
6
  import 'next/server';
7
- import '../graphql/types.mjs';
8
7
  import './email/types.mjs';
9
8
  import './types.mjs';
9
+ import './email/utils.mjs';
10
+ import '../graphql/types.mjs';
10
11
  import 'googleapis';
11
12
  import './instagram/utils.mjs';
12
13
  import '../socials/instagram/types.mjs';
@@ -4,9 +4,10 @@ export { initInstagramAuth } from './instagram/index.js';
4
4
  export { getRefreshToken } from './utils/token.js';
5
5
  export { checkAuthStatus } from './email/token.js';
6
6
  import 'next/server';
7
- import '../graphql/types.js';
8
7
  import './email/types.js';
9
8
  import './types.js';
9
+ import './email/utils.js';
10
+ import '../graphql/types.js';
10
11
  import 'googleapis';
11
12
  import './instagram/utils.js';
12
13
  import '../socials/instagram/types.js';
@@ -1,6 +1,3 @@
1
- // src/auth/email/utils.ts
2
- import { verify as verify2 } from "jsonwebtoken";
3
-
4
1
  // src/auth/email/token.ts
5
2
  import { compare } from "bcryptjs";
6
3
  import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
@@ -126,6 +123,9 @@ async function checkAuthStatus(redirectUnauthorizedURL) {
126
123
  return isAuthorized;
127
124
  }
128
125
 
126
+ // src/auth/email/utils.ts
127
+ import { verify as verify2 } from "jsonwebtoken";
128
+
129
129
  // src/auth/utils/errors.ts
130
130
  import { NextResponse as NextResponse2 } from "next/server";
131
131
  function handleError(status, message, onError) {
@@ -288,8 +288,7 @@ function getEmailAuthRoutes(options) {
288
288
  GET: getGetRoute(options),
289
289
  POST: getPostRoute(options),
290
290
  PUT: getPutRoute(options),
291
- DELETE: getDeleteRoute(options),
292
- getContext
291
+ DELETE: getDeleteRoute(options)
293
292
  };
294
293
  }
295
294
 
@@ -571,7 +571,7 @@ function GQLError(status, message) {
571
571
 
572
572
  // src/graphql/init.ts
573
573
  var import_reflect_metadata = require("reflect-metadata");
574
- var import_server = require("@apollo/server");
574
+ var import_server3 = require("@apollo/server");
575
575
  var import_default = require("@apollo/server/plugin/landingPage/default");
576
576
  var import_next = require("@as-integrations/next");
577
577
  var import_type_graphql = require("type-graphql");
@@ -625,19 +625,72 @@ function getEnv(key, skipCheck) {
625
625
  return value;
626
626
  }
627
627
 
628
+ // src/auth/email/utils.ts
629
+ var import_jsonwebtoken2 = require("jsonwebtoken");
630
+
631
+ // src/auth/email/token.ts
632
+ var import_bcryptjs = require("bcryptjs");
633
+ var import_jsonwebtoken = require("jsonwebtoken");
634
+ var import_headers = require("next/headers");
635
+ var import_navigation = require("next/navigation");
636
+ var import_server = require("next/server");
637
+
638
+ // src/auth/constants.ts
639
+ var REFRESH_COOKIE_NAME = "refresh";
640
+
641
+ // src/auth/email/token.ts
642
+ function getUserIdFromRefreshToken(refreshToken) {
643
+ if (refreshToken)
644
+ try {
645
+ const decoded = (0, import_jsonwebtoken.verify)(refreshToken, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
646
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
647
+ return decoded.id;
648
+ } catch (e) {
649
+ if (!(e instanceof import_jsonwebtoken.JsonWebTokenError)) console.error(e, "errors");
650
+ return null;
651
+ }
652
+ return null;
653
+ }
654
+
655
+ // src/auth/utils/errors.ts
656
+ var import_server2 = require("next/server");
657
+
658
+ // src/auth/email/utils.ts
659
+ var getContext = (req) => {
660
+ const bearer = req.headers.get("authorization");
661
+ if (!bearer) {
662
+ const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
663
+ const userId = getUserIdFromRefreshToken(refresh);
664
+ if (userId) return { userId, isRefreshID: true };
665
+ return { userId: null };
666
+ }
667
+ const token = bearer.slice(7);
668
+ try {
669
+ const res = (0, import_jsonwebtoken2.verify)(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
670
+ if (typeof res === "string") {
671
+ return { userId: null };
672
+ }
673
+ return {
674
+ userId: res.id
675
+ };
676
+ } catch {
677
+ }
678
+ return { userId: null };
679
+ };
680
+
628
681
  // src/graphql/init.ts
629
682
  async function initGraphQLServer({
630
683
  authChecker,
631
684
  resolvers,
632
685
  plugins,
633
- getContext
686
+ getContext: overrideGetContext
634
687
  }) {
635
688
  const { typeDefs, resolvers: builtResolvers } = await (0, import_type_graphql.buildTypeDefsAndResolvers)({
636
689
  validate: true,
637
690
  authChecker: authChecker || (({ context }) => !!context.userId),
638
691
  resolvers
639
692
  });
640
- const server = new import_server.ApolloServer({
693
+ const server = new import_server3.ApolloServer({
641
694
  typeDefs,
642
695
  resolvers: builtResolvers,
643
696
  plugins: [
@@ -654,7 +707,7 @@ async function initGraphQLServer({
654
707
  status400ForVariableCoercionErrors: true
655
708
  });
656
709
  const handler = (0, import_next.startServerAndCreateNextHandler)(server, {
657
- context: getContext
710
+ context: overrideGetContext || getContext
658
711
  });
659
712
  return {
660
713
  GET: (request) => handler(request),
@@ -666,30 +719,6 @@ async function initGraphQLServer({
666
719
  var import_headers2 = require("next/headers");
667
720
  var import_react = require("react");
668
721
  var import_type_graphql2 = require("type-graphql");
669
-
670
- // src/auth/constants.ts
671
- var REFRESH_COOKIE_NAME = "refresh";
672
-
673
- // src/auth/email/token.ts
674
- var import_bcryptjs = require("bcryptjs");
675
- var import_jsonwebtoken = require("jsonwebtoken");
676
- var import_headers = require("next/headers");
677
- var import_navigation = require("next/navigation");
678
- var import_server2 = require("next/server");
679
- function getUserIdFromRefreshToken(refreshToken) {
680
- if (refreshToken)
681
- try {
682
- const decoded = (0, import_jsonwebtoken.verify)(refreshToken, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
683
- if (typeof decoded !== "string" && typeof decoded.id === "number")
684
- return decoded.id;
685
- } catch (e) {
686
- if (!(e instanceof import_jsonwebtoken.JsonWebTokenError)) console.error(e, "errors");
687
- return null;
688
- }
689
- return null;
690
- }
691
-
692
- // src/graphql/utils.ts
693
722
  function query(fn, options) {
694
723
  return {
695
724
  ...options,
@@ -612,12 +612,65 @@ function getEnv(key, skipCheck) {
612
612
  return value;
613
613
  }
614
614
 
615
+ // src/auth/email/utils.ts
616
+ import { verify as verify2 } from "jsonwebtoken";
617
+
618
+ // src/auth/email/token.ts
619
+ import { compare } from "bcryptjs";
620
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
621
+ import { cookies } from "next/headers";
622
+ import { redirect } from "next/navigation";
623
+ import { NextResponse } from "next/server";
624
+
625
+ // src/auth/constants.ts
626
+ var REFRESH_COOKIE_NAME = "refresh";
627
+
628
+ // src/auth/email/token.ts
629
+ function getUserIdFromRefreshToken(refreshToken) {
630
+ if (refreshToken)
631
+ try {
632
+ const decoded = verify(refreshToken, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
633
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
634
+ return decoded.id;
635
+ } catch (e) {
636
+ if (!(e instanceof JsonWebTokenError)) console.error(e, "errors");
637
+ return null;
638
+ }
639
+ return null;
640
+ }
641
+
642
+ // src/auth/utils/errors.ts
643
+ import { NextResponse as NextResponse2 } from "next/server";
644
+
645
+ // src/auth/email/utils.ts
646
+ var getContext = (req) => {
647
+ const bearer = req.headers.get("authorization");
648
+ if (!bearer) {
649
+ const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
650
+ const userId = getUserIdFromRefreshToken(refresh);
651
+ if (userId) return { userId, isRefreshID: true };
652
+ return { userId: null };
653
+ }
654
+ const token = bearer.slice(7);
655
+ try {
656
+ const res = verify2(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
657
+ if (typeof res === "string") {
658
+ return { userId: null };
659
+ }
660
+ return {
661
+ userId: res.id
662
+ };
663
+ } catch {
664
+ }
665
+ return { userId: null };
666
+ };
667
+
615
668
  // src/graphql/init.ts
616
669
  async function initGraphQLServer({
617
670
  authChecker,
618
671
  resolvers,
619
672
  plugins,
620
- getContext
673
+ getContext: overrideGetContext
621
674
  }) {
622
675
  const { typeDefs, resolvers: builtResolvers } = await buildTypeDefsAndResolvers({
623
676
  validate: true,
@@ -641,7 +694,7 @@ async function initGraphQLServer({
641
694
  status400ForVariableCoercionErrors: true
642
695
  });
643
696
  const handler = startServerAndCreateNextHandler(server, {
644
- context: getContext
697
+ context: overrideGetContext || getContext
645
698
  });
646
699
  return {
647
700
  GET: (request) => handler(request),
@@ -662,30 +715,6 @@ import {
662
715
  Resolver,
663
716
  Root
664
717
  } from "type-graphql";
665
-
666
- // src/auth/constants.ts
667
- var REFRESH_COOKIE_NAME = "refresh";
668
-
669
- // src/auth/email/token.ts
670
- import { compare } from "bcryptjs";
671
- import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
672
- import { cookies } from "next/headers";
673
- import { redirect } from "next/navigation";
674
- import { NextResponse } from "next/server";
675
- function getUserIdFromRefreshToken(refreshToken) {
676
- if (refreshToken)
677
- try {
678
- const decoded = verify(refreshToken, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
679
- if (typeof decoded !== "string" && typeof decoded.id === "number")
680
- return decoded.id;
681
- } catch (e) {
682
- if (!(e instanceof JsonWebTokenError)) console.error(e, "errors");
683
- return null;
684
- }
685
- return null;
686
- }
687
-
688
- // src/graphql/utils.ts
689
718
  function query(fn, options) {
690
719
  return {
691
720
  ...options,
@@ -24,7 +24,7 @@ __export(init_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(init_exports);
26
26
  var import_reflect_metadata = require("reflect-metadata");
27
- var import_server = require("@apollo/server");
27
+ var import_server3 = require("@apollo/server");
28
28
  var import_default = require("@apollo/server/plugin/landingPage/default");
29
29
  var import_next = require("@as-integrations/next");
30
30
  var import_type_graphql = require("type-graphql");
@@ -78,19 +78,72 @@ function getEnv(key, skipCheck) {
78
78
  return value;
79
79
  }
80
80
 
81
+ // src/auth/email/utils.ts
82
+ var import_jsonwebtoken2 = require("jsonwebtoken");
83
+
84
+ // src/auth/email/token.ts
85
+ var import_bcryptjs = require("bcryptjs");
86
+ var import_jsonwebtoken = require("jsonwebtoken");
87
+ var import_headers = require("next/headers");
88
+ var import_navigation = require("next/navigation");
89
+ var import_server = require("next/server");
90
+
91
+ // src/auth/constants.ts
92
+ var REFRESH_COOKIE_NAME = "refresh";
93
+
94
+ // src/auth/email/token.ts
95
+ function getUserIdFromRefreshToken(refreshToken) {
96
+ if (refreshToken)
97
+ try {
98
+ const decoded = (0, import_jsonwebtoken.verify)(refreshToken, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
99
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
100
+ return decoded.id;
101
+ } catch (e) {
102
+ if (!(e instanceof import_jsonwebtoken.JsonWebTokenError)) console.error(e, "errors");
103
+ return null;
104
+ }
105
+ return null;
106
+ }
107
+
108
+ // src/auth/utils/errors.ts
109
+ var import_server2 = require("next/server");
110
+
111
+ // src/auth/email/utils.ts
112
+ var getContext = (req) => {
113
+ const bearer = req.headers.get("authorization");
114
+ if (!bearer) {
115
+ const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
116
+ const userId = getUserIdFromRefreshToken(refresh);
117
+ if (userId) return { userId, isRefreshID: true };
118
+ return { userId: null };
119
+ }
120
+ const token = bearer.slice(7);
121
+ try {
122
+ const res = (0, import_jsonwebtoken2.verify)(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
123
+ if (typeof res === "string") {
124
+ return { userId: null };
125
+ }
126
+ return {
127
+ userId: res.id
128
+ };
129
+ } catch {
130
+ }
131
+ return { userId: null };
132
+ };
133
+
81
134
  // src/graphql/init.ts
82
135
  async function initGraphQLServer({
83
136
  authChecker,
84
137
  resolvers,
85
138
  plugins,
86
- getContext
139
+ getContext: overrideGetContext
87
140
  }) {
88
141
  const { typeDefs, resolvers: builtResolvers } = await (0, import_type_graphql.buildTypeDefsAndResolvers)({
89
142
  validate: true,
90
143
  authChecker: authChecker || (({ context }) => !!context.userId),
91
144
  resolvers
92
145
  });
93
- const server = new import_server.ApolloServer({
146
+ const server = new import_server3.ApolloServer({
94
147
  typeDefs,
95
148
  resolvers: builtResolvers,
96
149
  plugins: [
@@ -107,7 +160,7 @@ async function initGraphQLServer({
107
160
  status400ForVariableCoercionErrors: true
108
161
  });
109
162
  const handler = (0, import_next.startServerAndCreateNextHandler)(server, {
110
- context: getContext
163
+ context: overrideGetContext || getContext
111
164
  });
112
165
  return {
113
166
  GET: (request) => handler(request),
@@ -2,7 +2,7 @@ import { ApolloServerPlugin } from '@apollo/server';
2
2
  import { NextRequest } from 'next/server';
3
3
  import { AuthChecker, NonEmptyArray } from 'type-graphql';
4
4
 
5
- declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext, }: {
5
+ declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext: overrideGetContext, }: {
6
6
  authChecker?: AuthChecker<any>;
7
7
  resolvers: NonEmptyArray<Function>;
8
8
  plugins?: ApolloServerPlugin[];
@@ -2,7 +2,7 @@ import { ApolloServerPlugin } from '@apollo/server';
2
2
  import { NextRequest } from 'next/server';
3
3
  import { AuthChecker, NonEmptyArray } from 'type-graphql';
4
4
 
5
- declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext, }: {
5
+ declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext: overrideGetContext, }: {
6
6
  authChecker?: AuthChecker<any>;
7
7
  resolvers: NonEmptyArray<Function>;
8
8
  plugins?: ApolloServerPlugin[];
@@ -59,12 +59,65 @@ function getEnv(key, skipCheck) {
59
59
  return value;
60
60
  }
61
61
 
62
+ // src/auth/email/utils.ts
63
+ import { verify as verify2 } from "jsonwebtoken";
64
+
65
+ // src/auth/email/token.ts
66
+ import { compare } from "bcryptjs";
67
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
68
+ import { cookies } from "next/headers";
69
+ import { redirect } from "next/navigation";
70
+ import { NextResponse } from "next/server";
71
+
72
+ // src/auth/constants.ts
73
+ var REFRESH_COOKIE_NAME = "refresh";
74
+
75
+ // src/auth/email/token.ts
76
+ function getUserIdFromRefreshToken(refreshToken) {
77
+ if (refreshToken)
78
+ try {
79
+ const decoded = verify(refreshToken, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
80
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
81
+ return decoded.id;
82
+ } catch (e) {
83
+ if (!(e instanceof JsonWebTokenError)) console.error(e, "errors");
84
+ return null;
85
+ }
86
+ return null;
87
+ }
88
+
89
+ // src/auth/utils/errors.ts
90
+ import { NextResponse as NextResponse2 } from "next/server";
91
+
92
+ // src/auth/email/utils.ts
93
+ var getContext = (req) => {
94
+ const bearer = req.headers.get("authorization");
95
+ if (!bearer) {
96
+ const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
97
+ const userId = getUserIdFromRefreshToken(refresh);
98
+ if (userId) return { userId, isRefreshID: true };
99
+ return { userId: null };
100
+ }
101
+ const token = bearer.slice(7);
102
+ try {
103
+ const res = verify2(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
104
+ if (typeof res === "string") {
105
+ return { userId: null };
106
+ }
107
+ return {
108
+ userId: res.id
109
+ };
110
+ } catch {
111
+ }
112
+ return { userId: null };
113
+ };
114
+
62
115
  // src/graphql/init.ts
63
116
  async function initGraphQLServer({
64
117
  authChecker,
65
118
  resolvers,
66
119
  plugins,
67
- getContext
120
+ getContext: overrideGetContext
68
121
  }) {
69
122
  const { typeDefs, resolvers: builtResolvers } = await buildTypeDefsAndResolvers({
70
123
  validate: true,
@@ -88,7 +141,7 @@ async function initGraphQLServer({
88
141
  status400ForVariableCoercionErrors: true
89
142
  });
90
143
  const handler = startServerAndCreateNextHandler(server, {
91
- context: getContext
144
+ context: overrideGetContext || getContext
92
145
  });
93
146
  return {
94
147
  GET: (request) => handler(request),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naystack",
3
- "version": "1.4.34",
3
+ "version": "1.4.36",
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",