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.
- package/dist/auth/email/index.cjs.js +6 -5
- package/dist/auth/email/index.d.mts +6 -7
- package/dist/auth/email/index.d.ts +6 -7
- package/dist/auth/email/index.esm.js +5 -5
- package/dist/auth/index.cjs.js +4 -5
- package/dist/auth/index.d.mts +2 -1
- package/dist/auth/index.d.ts +2 -1
- package/dist/auth/index.esm.js +4 -5
- package/dist/graphql/index.cjs.js +57 -28
- package/dist/graphql/index.esm.js +55 -26
- package/dist/graphql/init.cjs.js +57 -4
- package/dist/graphql/init.d.mts +1 -1
- package/dist/graphql/init.d.ts +1 -1
- package/dist/graphql/init.esm.js +55 -2
- package/package.json +1 -1
|
@@ -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
|
};
|
package/dist/auth/index.cjs.js
CHANGED
|
@@ -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
|
|
package/dist/auth/index.d.mts
CHANGED
|
@@ -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';
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/auth/index.esm.js
CHANGED
|
@@ -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
|
|
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
|
|
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,
|
package/dist/graphql/init.cjs.js
CHANGED
|
@@ -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
|
|
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
|
|
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),
|
package/dist/graphql/init.d.mts
CHANGED
|
@@ -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[];
|
package/dist/graphql/init.d.ts
CHANGED
|
@@ -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[];
|
package/dist/graphql/init.esm.js
CHANGED
|
@@ -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),
|