naystack 1.5.29 → 1.5.30
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 +29 -27
- package/dist/auth/email/index.esm.js +29 -27
- package/dist/auth/index.cjs.js +29 -27
- package/dist/auth/index.esm.js +29 -27
- package/dist/graphql/index.cjs.js +33 -3
- package/dist/graphql/index.esm.js +33 -3
- package/dist/graphql/init.cjs.js +33 -3
- package/dist/graphql/init.d.mts +2 -1
- package/dist/graphql/init.d.ts +2 -1
- package/dist/graphql/init.esm.js +33 -3
- package/dist/utils/route.cjs.js +58 -0
- package/dist/utils/route.d.mts +11 -0
- package/dist/utils/route.d.ts +11 -0
- package/dist/utils/route.esm.js +32 -0
- package/package.json +1 -1
|
@@ -38,6 +38,35 @@ __export(email_exports, {
|
|
|
38
38
|
module.exports = __toCommonJS(email_exports);
|
|
39
39
|
var import_server4 = require("next/server");
|
|
40
40
|
|
|
41
|
+
// src/utils/route.ts
|
|
42
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
43
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
44
|
+
return {
|
|
45
|
+
"Access-Control-Allow-Origin": origin,
|
|
46
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
47
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
48
|
+
"Access-Control-Allow-Credentials": "true"
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function withCors(handler, allowedOrigins) {
|
|
52
|
+
if (!allowedOrigins?.length) return handler;
|
|
53
|
+
return ((req) => {
|
|
54
|
+
return handler(req).then((response) => {
|
|
55
|
+
if (!response) return response;
|
|
56
|
+
const corsHeaders = getCorsHeaders(
|
|
57
|
+
req.headers.get("origin"),
|
|
58
|
+
allowedOrigins
|
|
59
|
+
);
|
|
60
|
+
if (corsHeaders) {
|
|
61
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
62
|
+
response.headers.set(key, value);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return response;
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
41
70
|
// src/auth/email/token.ts
|
|
42
71
|
var import_bcryptjs = require("bcryptjs");
|
|
43
72
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
@@ -367,33 +396,6 @@ function AuthFetch() {
|
|
|
367
396
|
}
|
|
368
397
|
|
|
369
398
|
// src/auth/email/index.ts
|
|
370
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
371
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
372
|
-
return {
|
|
373
|
-
"Access-Control-Allow-Origin": origin,
|
|
374
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
375
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
376
|
-
"Access-Control-Allow-Credentials": "true"
|
|
377
|
-
};
|
|
378
|
-
}
|
|
379
|
-
function withCors(handler, allowedOrigins) {
|
|
380
|
-
if (!allowedOrigins?.length) return handler;
|
|
381
|
-
return ((req) => {
|
|
382
|
-
return handler(req).then((response) => {
|
|
383
|
-
if (!response) return response;
|
|
384
|
-
const corsHeaders = getCorsHeaders(
|
|
385
|
-
req.headers.get("origin"),
|
|
386
|
-
allowedOrigins
|
|
387
|
-
);
|
|
388
|
-
if (corsHeaders) {
|
|
389
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
390
|
-
response.headers.set(key, value);
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
return response;
|
|
394
|
-
});
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
399
|
function getEmailAuthRoutes(options) {
|
|
398
400
|
const { allowedOrigins } = options;
|
|
399
401
|
return {
|
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
// src/auth/email/index.ts
|
|
2
2
|
import { NextResponse as NextResponse3 } from "next/server";
|
|
3
3
|
|
|
4
|
+
// src/utils/route.ts
|
|
5
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
6
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
7
|
+
return {
|
|
8
|
+
"Access-Control-Allow-Origin": origin,
|
|
9
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
10
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
11
|
+
"Access-Control-Allow-Credentials": "true"
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function withCors(handler, allowedOrigins) {
|
|
15
|
+
if (!allowedOrigins?.length) return handler;
|
|
16
|
+
return ((req) => {
|
|
17
|
+
return handler(req).then((response) => {
|
|
18
|
+
if (!response) return response;
|
|
19
|
+
const corsHeaders = getCorsHeaders(
|
|
20
|
+
req.headers.get("origin"),
|
|
21
|
+
allowedOrigins
|
|
22
|
+
);
|
|
23
|
+
if (corsHeaders) {
|
|
24
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
25
|
+
response.headers.set(key, value);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return response;
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
4
33
|
// src/auth/email/token.ts
|
|
5
34
|
import { compare } from "bcryptjs";
|
|
6
35
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
@@ -334,33 +363,6 @@ function AuthFetch() {
|
|
|
334
363
|
}
|
|
335
364
|
|
|
336
365
|
// src/auth/email/index.ts
|
|
337
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
338
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
339
|
-
return {
|
|
340
|
-
"Access-Control-Allow-Origin": origin,
|
|
341
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
342
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
343
|
-
"Access-Control-Allow-Credentials": "true"
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
function withCors(handler, allowedOrigins) {
|
|
347
|
-
if (!allowedOrigins?.length) return handler;
|
|
348
|
-
return ((req) => {
|
|
349
|
-
return handler(req).then((response) => {
|
|
350
|
-
if (!response) return response;
|
|
351
|
-
const corsHeaders = getCorsHeaders(
|
|
352
|
-
req.headers.get("origin"),
|
|
353
|
-
allowedOrigins
|
|
354
|
-
);
|
|
355
|
-
if (corsHeaders) {
|
|
356
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
357
|
-
response.headers.set(key, value);
|
|
358
|
-
});
|
|
359
|
-
}
|
|
360
|
-
return response;
|
|
361
|
-
});
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
366
|
function getEmailAuthRoutes(options) {
|
|
365
367
|
const { allowedOrigins } = options;
|
|
366
368
|
return {
|
package/dist/auth/index.cjs.js
CHANGED
|
@@ -44,6 +44,35 @@ module.exports = __toCommonJS(auth_exports);
|
|
|
44
44
|
// src/auth/email/index.ts
|
|
45
45
|
var import_server4 = require("next/server");
|
|
46
46
|
|
|
47
|
+
// src/utils/route.ts
|
|
48
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
49
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
50
|
+
return {
|
|
51
|
+
"Access-Control-Allow-Origin": origin,
|
|
52
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
53
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
54
|
+
"Access-Control-Allow-Credentials": "true"
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function withCors(handler, allowedOrigins) {
|
|
58
|
+
if (!allowedOrigins?.length) return handler;
|
|
59
|
+
return ((req) => {
|
|
60
|
+
return handler(req).then((response) => {
|
|
61
|
+
if (!response) return response;
|
|
62
|
+
const corsHeaders = getCorsHeaders(
|
|
63
|
+
req.headers.get("origin"),
|
|
64
|
+
allowedOrigins
|
|
65
|
+
);
|
|
66
|
+
if (corsHeaders) {
|
|
67
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
68
|
+
response.headers.set(key, value);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return response;
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
47
76
|
// src/auth/email/token.ts
|
|
48
77
|
var import_bcryptjs = require("bcryptjs");
|
|
49
78
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
@@ -385,33 +414,6 @@ function AuthFetch() {
|
|
|
385
414
|
}
|
|
386
415
|
|
|
387
416
|
// src/auth/email/index.ts
|
|
388
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
389
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
390
|
-
return {
|
|
391
|
-
"Access-Control-Allow-Origin": origin,
|
|
392
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
393
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
394
|
-
"Access-Control-Allow-Credentials": "true"
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
function withCors(handler, allowedOrigins) {
|
|
398
|
-
if (!allowedOrigins?.length) return handler;
|
|
399
|
-
return ((req) => {
|
|
400
|
-
return handler(req).then((response) => {
|
|
401
|
-
if (!response) return response;
|
|
402
|
-
const corsHeaders = getCorsHeaders(
|
|
403
|
-
req.headers.get("origin"),
|
|
404
|
-
allowedOrigins
|
|
405
|
-
);
|
|
406
|
-
if (corsHeaders) {
|
|
407
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
408
|
-
response.headers.set(key, value);
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
return response;
|
|
412
|
-
});
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
417
|
function getEmailAuthRoutes(options) {
|
|
416
418
|
const { allowedOrigins } = options;
|
|
417
419
|
return {
|
package/dist/auth/index.esm.js
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
// src/auth/email/index.ts
|
|
2
2
|
import { NextResponse as NextResponse3 } from "next/server";
|
|
3
3
|
|
|
4
|
+
// src/utils/route.ts
|
|
5
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
6
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
7
|
+
return {
|
|
8
|
+
"Access-Control-Allow-Origin": origin,
|
|
9
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
10
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
11
|
+
"Access-Control-Allow-Credentials": "true"
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function withCors(handler, allowedOrigins) {
|
|
15
|
+
if (!allowedOrigins?.length) return handler;
|
|
16
|
+
return ((req) => {
|
|
17
|
+
return handler(req).then((response) => {
|
|
18
|
+
if (!response) return response;
|
|
19
|
+
const corsHeaders = getCorsHeaders(
|
|
20
|
+
req.headers.get("origin"),
|
|
21
|
+
allowedOrigins
|
|
22
|
+
);
|
|
23
|
+
if (corsHeaders) {
|
|
24
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
25
|
+
response.headers.set(key, value);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return response;
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
4
33
|
// src/auth/email/token.ts
|
|
5
34
|
import { compare } from "bcryptjs";
|
|
6
35
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
@@ -346,33 +375,6 @@ function AuthFetch() {
|
|
|
346
375
|
}
|
|
347
376
|
|
|
348
377
|
// src/auth/email/index.ts
|
|
349
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
350
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
351
|
-
return {
|
|
352
|
-
"Access-Control-Allow-Origin": origin,
|
|
353
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
354
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
355
|
-
"Access-Control-Allow-Credentials": "true"
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
function withCors(handler, allowedOrigins) {
|
|
359
|
-
if (!allowedOrigins?.length) return handler;
|
|
360
|
-
return ((req) => {
|
|
361
|
-
return handler(req).then((response) => {
|
|
362
|
-
if (!response) return response;
|
|
363
|
-
const corsHeaders = getCorsHeaders(
|
|
364
|
-
req.headers.get("origin"),
|
|
365
|
-
allowedOrigins
|
|
366
|
-
);
|
|
367
|
-
if (corsHeaders) {
|
|
368
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
369
|
-
response.headers.set(key, value);
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
return response;
|
|
373
|
-
});
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
378
|
function getEmailAuthRoutes(options) {
|
|
377
379
|
const { allowedOrigins } = options;
|
|
378
380
|
return {
|
|
@@ -625,6 +625,35 @@ function getEnv(key, skipCheck) {
|
|
|
625
625
|
return value;
|
|
626
626
|
}
|
|
627
627
|
|
|
628
|
+
// src/utils/route.ts
|
|
629
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
630
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
631
|
+
return {
|
|
632
|
+
"Access-Control-Allow-Origin": origin,
|
|
633
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
634
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
635
|
+
"Access-Control-Allow-Credentials": "true"
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
function withCors(handler, allowedOrigins) {
|
|
639
|
+
if (!allowedOrigins?.length) return handler;
|
|
640
|
+
return ((req) => {
|
|
641
|
+
return handler(req).then((response) => {
|
|
642
|
+
if (!response) return response;
|
|
643
|
+
const corsHeaders = getCorsHeaders(
|
|
644
|
+
req.headers.get("origin"),
|
|
645
|
+
allowedOrigins
|
|
646
|
+
);
|
|
647
|
+
if (corsHeaders) {
|
|
648
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
649
|
+
response.headers.set(key, value);
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
return response;
|
|
653
|
+
});
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
|
|
628
657
|
// src/auth/email/utils.ts
|
|
629
658
|
var import_jsonwebtoken2 = require("jsonwebtoken");
|
|
630
659
|
|
|
@@ -683,7 +712,8 @@ async function initGraphQLServer({
|
|
|
683
712
|
authChecker,
|
|
684
713
|
resolvers,
|
|
685
714
|
plugins,
|
|
686
|
-
getContext: overrideGetContext
|
|
715
|
+
getContext: overrideGetContext,
|
|
716
|
+
allowedOrigins
|
|
687
717
|
}) {
|
|
688
718
|
const { typeDefs, resolvers: builtResolvers } = await (0, import_type_graphql.buildTypeDefsAndResolvers)({
|
|
689
719
|
validate: true,
|
|
@@ -710,8 +740,8 @@ async function initGraphQLServer({
|
|
|
710
740
|
context: overrideGetContext || getContext
|
|
711
741
|
});
|
|
712
742
|
return {
|
|
713
|
-
GET: (request) => handler(request),
|
|
714
|
-
POST: (request) => handler(request)
|
|
743
|
+
GET: withCors((request) => handler(request), allowedOrigins),
|
|
744
|
+
POST: withCors((request) => handler(request), allowedOrigins)
|
|
715
745
|
};
|
|
716
746
|
}
|
|
717
747
|
|
|
@@ -612,6 +612,35 @@ function getEnv(key, skipCheck) {
|
|
|
612
612
|
return value;
|
|
613
613
|
}
|
|
614
614
|
|
|
615
|
+
// src/utils/route.ts
|
|
616
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
617
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
618
|
+
return {
|
|
619
|
+
"Access-Control-Allow-Origin": origin,
|
|
620
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
621
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
622
|
+
"Access-Control-Allow-Credentials": "true"
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
function withCors(handler, allowedOrigins) {
|
|
626
|
+
if (!allowedOrigins?.length) return handler;
|
|
627
|
+
return ((req) => {
|
|
628
|
+
return handler(req).then((response) => {
|
|
629
|
+
if (!response) return response;
|
|
630
|
+
const corsHeaders = getCorsHeaders(
|
|
631
|
+
req.headers.get("origin"),
|
|
632
|
+
allowedOrigins
|
|
633
|
+
);
|
|
634
|
+
if (corsHeaders) {
|
|
635
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
636
|
+
response.headers.set(key, value);
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
return response;
|
|
640
|
+
});
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
|
|
615
644
|
// src/auth/email/utils.ts
|
|
616
645
|
import { verify as verify2 } from "jsonwebtoken";
|
|
617
646
|
|
|
@@ -670,7 +699,8 @@ async function initGraphQLServer({
|
|
|
670
699
|
authChecker,
|
|
671
700
|
resolvers,
|
|
672
701
|
plugins,
|
|
673
|
-
getContext: overrideGetContext
|
|
702
|
+
getContext: overrideGetContext,
|
|
703
|
+
allowedOrigins
|
|
674
704
|
}) {
|
|
675
705
|
const { typeDefs, resolvers: builtResolvers } = await buildTypeDefsAndResolvers({
|
|
676
706
|
validate: true,
|
|
@@ -697,8 +727,8 @@ async function initGraphQLServer({
|
|
|
697
727
|
context: overrideGetContext || getContext
|
|
698
728
|
});
|
|
699
729
|
return {
|
|
700
|
-
GET: (request) => handler(request),
|
|
701
|
-
POST: (request) => handler(request)
|
|
730
|
+
GET: withCors((request) => handler(request), allowedOrigins),
|
|
731
|
+
POST: withCors((request) => handler(request), allowedOrigins)
|
|
702
732
|
};
|
|
703
733
|
}
|
|
704
734
|
|
package/dist/graphql/init.cjs.js
CHANGED
|
@@ -78,6 +78,35 @@ function getEnv(key, skipCheck) {
|
|
|
78
78
|
return value;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
// src/utils/route.ts
|
|
82
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
83
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
84
|
+
return {
|
|
85
|
+
"Access-Control-Allow-Origin": origin,
|
|
86
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
87
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
88
|
+
"Access-Control-Allow-Credentials": "true"
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function withCors(handler, allowedOrigins) {
|
|
92
|
+
if (!allowedOrigins?.length) return handler;
|
|
93
|
+
return ((req) => {
|
|
94
|
+
return handler(req).then((response) => {
|
|
95
|
+
if (!response) return response;
|
|
96
|
+
const corsHeaders = getCorsHeaders(
|
|
97
|
+
req.headers.get("origin"),
|
|
98
|
+
allowedOrigins
|
|
99
|
+
);
|
|
100
|
+
if (corsHeaders) {
|
|
101
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
102
|
+
response.headers.set(key, value);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return response;
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
81
110
|
// src/auth/email/utils.ts
|
|
82
111
|
var import_jsonwebtoken2 = require("jsonwebtoken");
|
|
83
112
|
|
|
@@ -136,7 +165,8 @@ async function initGraphQLServer({
|
|
|
136
165
|
authChecker,
|
|
137
166
|
resolvers,
|
|
138
167
|
plugins,
|
|
139
|
-
getContext: overrideGetContext
|
|
168
|
+
getContext: overrideGetContext,
|
|
169
|
+
allowedOrigins
|
|
140
170
|
}) {
|
|
141
171
|
const { typeDefs, resolvers: builtResolvers } = await (0, import_type_graphql.buildTypeDefsAndResolvers)({
|
|
142
172
|
validate: true,
|
|
@@ -163,8 +193,8 @@ async function initGraphQLServer({
|
|
|
163
193
|
context: overrideGetContext || getContext
|
|
164
194
|
});
|
|
165
195
|
return {
|
|
166
|
-
GET: (request) => handler(request),
|
|
167
|
-
POST: (request) => handler(request)
|
|
196
|
+
GET: withCors((request) => handler(request), allowedOrigins),
|
|
197
|
+
POST: withCors((request) => handler(request), allowedOrigins)
|
|
168
198
|
};
|
|
169
199
|
}
|
|
170
200
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/graphql/init.d.mts
CHANGED
|
@@ -35,11 +35,12 @@ import { AuthChecker, NonEmptyArray } from 'type-graphql';
|
|
|
35
35
|
*
|
|
36
36
|
* @category GraphQL
|
|
37
37
|
*/
|
|
38
|
-
declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext: overrideGetContext, }: {
|
|
38
|
+
declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext: overrideGetContext, allowedOrigins, }: {
|
|
39
39
|
authChecker?: AuthChecker<any>;
|
|
40
40
|
resolvers: NonEmptyArray<Function>;
|
|
41
41
|
plugins?: ApolloServerPlugin[];
|
|
42
42
|
getContext?: (req: NextRequest) => Promise<any> | any;
|
|
43
|
+
allowedOrigins?: string[];
|
|
43
44
|
}): Promise<{
|
|
44
45
|
GET: (request: NextRequest) => Promise<Response>;
|
|
45
46
|
POST: (request: NextRequest) => Promise<Response>;
|
package/dist/graphql/init.d.ts
CHANGED
|
@@ -35,11 +35,12 @@ import { AuthChecker, NonEmptyArray } from 'type-graphql';
|
|
|
35
35
|
*
|
|
36
36
|
* @category GraphQL
|
|
37
37
|
*/
|
|
38
|
-
declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext: overrideGetContext, }: {
|
|
38
|
+
declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext: overrideGetContext, allowedOrigins, }: {
|
|
39
39
|
authChecker?: AuthChecker<any>;
|
|
40
40
|
resolvers: NonEmptyArray<Function>;
|
|
41
41
|
plugins?: ApolloServerPlugin[];
|
|
42
42
|
getContext?: (req: NextRequest) => Promise<any> | any;
|
|
43
|
+
allowedOrigins?: string[];
|
|
43
44
|
}): Promise<{
|
|
44
45
|
GET: (request: NextRequest) => Promise<Response>;
|
|
45
46
|
POST: (request: NextRequest) => Promise<Response>;
|
package/dist/graphql/init.esm.js
CHANGED
|
@@ -59,6 +59,35 @@ function getEnv(key, skipCheck) {
|
|
|
59
59
|
return value;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
// src/utils/route.ts
|
|
63
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
64
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
65
|
+
return {
|
|
66
|
+
"Access-Control-Allow-Origin": origin,
|
|
67
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
68
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
69
|
+
"Access-Control-Allow-Credentials": "true"
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function withCors(handler, allowedOrigins) {
|
|
73
|
+
if (!allowedOrigins?.length) return handler;
|
|
74
|
+
return ((req) => {
|
|
75
|
+
return handler(req).then((response) => {
|
|
76
|
+
if (!response) return response;
|
|
77
|
+
const corsHeaders = getCorsHeaders(
|
|
78
|
+
req.headers.get("origin"),
|
|
79
|
+
allowedOrigins
|
|
80
|
+
);
|
|
81
|
+
if (corsHeaders) {
|
|
82
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
83
|
+
response.headers.set(key, value);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return response;
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
62
91
|
// src/auth/email/utils.ts
|
|
63
92
|
import { verify as verify2 } from "jsonwebtoken";
|
|
64
93
|
|
|
@@ -117,7 +146,8 @@ async function initGraphQLServer({
|
|
|
117
146
|
authChecker,
|
|
118
147
|
resolvers,
|
|
119
148
|
plugins,
|
|
120
|
-
getContext: overrideGetContext
|
|
149
|
+
getContext: overrideGetContext,
|
|
150
|
+
allowedOrigins
|
|
121
151
|
}) {
|
|
122
152
|
const { typeDefs, resolvers: builtResolvers } = await buildTypeDefsAndResolvers({
|
|
123
153
|
validate: true,
|
|
@@ -144,8 +174,8 @@ async function initGraphQLServer({
|
|
|
144
174
|
context: overrideGetContext || getContext
|
|
145
175
|
});
|
|
146
176
|
return {
|
|
147
|
-
GET: (request) => handler(request),
|
|
148
|
-
POST: (request) => handler(request)
|
|
177
|
+
GET: withCors((request) => handler(request), allowedOrigins),
|
|
178
|
+
POST: withCors((request) => handler(request), allowedOrigins)
|
|
149
179
|
};
|
|
150
180
|
}
|
|
151
181
|
export {
|
|
@@ -0,0 +1,58 @@
|
|
|
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/utils/route.ts
|
|
21
|
+
var route_exports = {};
|
|
22
|
+
__export(route_exports, {
|
|
23
|
+
getCorsHeaders: () => getCorsHeaders,
|
|
24
|
+
withCors: () => withCors
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(route_exports);
|
|
27
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
28
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
29
|
+
return {
|
|
30
|
+
"Access-Control-Allow-Origin": origin,
|
|
31
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
32
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
33
|
+
"Access-Control-Allow-Credentials": "true"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function withCors(handler, allowedOrigins) {
|
|
37
|
+
if (!allowedOrigins?.length) return handler;
|
|
38
|
+
return ((req) => {
|
|
39
|
+
return handler(req).then((response) => {
|
|
40
|
+
if (!response) return response;
|
|
41
|
+
const corsHeaders = getCorsHeaders(
|
|
42
|
+
req.headers.get("origin"),
|
|
43
|
+
allowedOrigins
|
|
44
|
+
);
|
|
45
|
+
if (corsHeaders) {
|
|
46
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
47
|
+
response.headers.set(key, value);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return response;
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
55
|
+
0 && (module.exports = {
|
|
56
|
+
getCorsHeaders,
|
|
57
|
+
withCors
|
|
58
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
|
|
3
|
+
declare function getCorsHeaders(origin: string | null, allowedOrigins: string[]): {
|
|
4
|
+
"Access-Control-Allow-Origin": string;
|
|
5
|
+
"Access-Control-Allow-Methods": string;
|
|
6
|
+
"Access-Control-Allow-Headers": string;
|
|
7
|
+
"Access-Control-Allow-Credentials": string;
|
|
8
|
+
} | null;
|
|
9
|
+
declare function withCors<T extends (req: NextRequest) => Promise<NextResponse | Response | undefined>>(handler: T, allowedOrigins?: string[]): T;
|
|
10
|
+
|
|
11
|
+
export { getCorsHeaders, withCors };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
|
|
3
|
+
declare function getCorsHeaders(origin: string | null, allowedOrigins: string[]): {
|
|
4
|
+
"Access-Control-Allow-Origin": string;
|
|
5
|
+
"Access-Control-Allow-Methods": string;
|
|
6
|
+
"Access-Control-Allow-Headers": string;
|
|
7
|
+
"Access-Control-Allow-Credentials": string;
|
|
8
|
+
} | null;
|
|
9
|
+
declare function withCors<T extends (req: NextRequest) => Promise<NextResponse | Response | undefined>>(handler: T, allowedOrigins?: string[]): T;
|
|
10
|
+
|
|
11
|
+
export { getCorsHeaders, withCors };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// src/utils/route.ts
|
|
2
|
+
function getCorsHeaders(origin, allowedOrigins) {
|
|
3
|
+
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
4
|
+
return {
|
|
5
|
+
"Access-Control-Allow-Origin": origin,
|
|
6
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
7
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
8
|
+
"Access-Control-Allow-Credentials": "true"
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function withCors(handler, allowedOrigins) {
|
|
12
|
+
if (!allowedOrigins?.length) return handler;
|
|
13
|
+
return ((req) => {
|
|
14
|
+
return handler(req).then((response) => {
|
|
15
|
+
if (!response) return response;
|
|
16
|
+
const corsHeaders = getCorsHeaders(
|
|
17
|
+
req.headers.get("origin"),
|
|
18
|
+
allowedOrigins
|
|
19
|
+
);
|
|
20
|
+
if (corsHeaders) {
|
|
21
|
+
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
22
|
+
response.headers.set(key, value);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return response;
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
getCorsHeaders,
|
|
31
|
+
withCors
|
|
32
|
+
};
|