naystack 1.5.28 → 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/client.cjs.js +7 -5
- package/dist/auth/email/client.d.mts +1 -1
- package/dist/auth/email/client.d.ts +1 -1
- package/dist/auth/email/client.esm.js +7 -5
- package/dist/auth/email/index.cjs.js +31 -31
- package/dist/auth/email/index.esm.js +31 -31
- package/dist/auth/email/routes/get.cjs.js +2 -4
- package/dist/auth/email/routes/get.esm.js +2 -4
- package/dist/auth/index.cjs.js +31 -31
- package/dist/auth/index.esm.js +31 -31
- 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
|
@@ -116,11 +116,13 @@ var AuthWrapper = ({
|
|
|
116
116
|
function useAuthFetch(getRefreshToken) {
|
|
117
117
|
const setToken = useSetToken();
|
|
118
118
|
const fetchToken = async () => {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
119
|
+
const url = new URL(getEnv("NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */));
|
|
120
|
+
if (getRefreshToken) {
|
|
121
|
+
const token = await getRefreshToken();
|
|
122
|
+
if (token) url.searchParams.set(REFRESH_COOKIE_NAME, token);
|
|
123
|
+
}
|
|
124
|
+
fetch(url, {
|
|
125
|
+
credentials: "include"
|
|
124
126
|
}).then((res) => res.json()).then((data) => setToken(data.accessToken));
|
|
125
127
|
};
|
|
126
128
|
(0, import_react.useEffect)(() => {
|
|
@@ -43,7 +43,7 @@ declare const AuthWrapper: ({ children, onTokenUpdate, }: {
|
|
|
43
43
|
children: React__default.ReactNode;
|
|
44
44
|
onTokenUpdate?: (token: string | null) => void;
|
|
45
45
|
}) => React__default.JSX.Element;
|
|
46
|
-
declare function useAuthFetch(getRefreshToken?: () => Promise<string>): void;
|
|
46
|
+
declare function useAuthFetch(getRefreshToken?: () => Promise<string | null>): void;
|
|
47
47
|
declare function AuthApply({ data }: {
|
|
48
48
|
data?: string | null;
|
|
49
49
|
}): null;
|
|
@@ -43,7 +43,7 @@ declare const AuthWrapper: ({ children, onTokenUpdate, }: {
|
|
|
43
43
|
children: React__default.ReactNode;
|
|
44
44
|
onTokenUpdate?: (token: string | null) => void;
|
|
45
45
|
}) => React__default.JSX.Element;
|
|
46
|
-
declare function useAuthFetch(getRefreshToken?: () => Promise<string>): void;
|
|
46
|
+
declare function useAuthFetch(getRefreshToken?: () => Promise<string | null>): void;
|
|
47
47
|
declare function AuthApply({ data }: {
|
|
48
48
|
data?: string | null;
|
|
49
49
|
}): null;
|
|
@@ -81,11 +81,13 @@ var AuthWrapper = ({
|
|
|
81
81
|
function useAuthFetch(getRefreshToken) {
|
|
82
82
|
const setToken = useSetToken();
|
|
83
83
|
const fetchToken = async () => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
const url = new URL(getEnv("NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */));
|
|
85
|
+
if (getRefreshToken) {
|
|
86
|
+
const token = await getRefreshToken();
|
|
87
|
+
if (token) url.searchParams.set(REFRESH_COOKIE_NAME, token);
|
|
88
|
+
}
|
|
89
|
+
fetch(url, {
|
|
90
|
+
credentials: "include"
|
|
89
91
|
}).then((res) => res.json()).then((data) => setToken(data.accessToken));
|
|
90
92
|
};
|
|
91
93
|
useEffect(() => {
|
|
@@ -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");
|
|
@@ -242,10 +271,8 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
242
271
|
|
|
243
272
|
// src/auth/email/routes/get.ts
|
|
244
273
|
var getGetRoute = (options) => async (req) => {
|
|
245
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
246
|
-
const
|
|
247
|
-
const bodyRefresh = requestBody?.[REFRESH_COOKIE_NAME];
|
|
248
|
-
const userID = getUserIdFromRefreshToken(refresh || bodyRefresh);
|
|
274
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.nextUrl.searchParams.get(REFRESH_COOKIE_NAME) || void 0;
|
|
275
|
+
const userID = getUserIdFromRefreshToken(refresh);
|
|
249
276
|
if (userID) {
|
|
250
277
|
if (options.onRefresh) {
|
|
251
278
|
const body = await req.json();
|
|
@@ -369,33 +396,6 @@ function AuthFetch() {
|
|
|
369
396
|
}
|
|
370
397
|
|
|
371
398
|
// src/auth/email/index.ts
|
|
372
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
373
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
374
|
-
return {
|
|
375
|
-
"Access-Control-Allow-Origin": origin,
|
|
376
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
377
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
378
|
-
"Access-Control-Allow-Credentials": "true"
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
|
-
function withCors(handler, allowedOrigins) {
|
|
382
|
-
if (!allowedOrigins?.length) return handler;
|
|
383
|
-
return ((req) => {
|
|
384
|
-
return handler(req).then((response) => {
|
|
385
|
-
if (!response) return response;
|
|
386
|
-
const corsHeaders = getCorsHeaders(
|
|
387
|
-
req.headers.get("origin"),
|
|
388
|
-
allowedOrigins
|
|
389
|
-
);
|
|
390
|
-
if (corsHeaders) {
|
|
391
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
392
|
-
response.headers.set(key, value);
|
|
393
|
-
});
|
|
394
|
-
}
|
|
395
|
-
return response;
|
|
396
|
-
});
|
|
397
|
-
});
|
|
398
|
-
}
|
|
399
399
|
function getEmailAuthRoutes(options) {
|
|
400
400
|
const { allowedOrigins } = options;
|
|
401
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";
|
|
@@ -205,10 +234,8 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
205
234
|
|
|
206
235
|
// src/auth/email/routes/get.ts
|
|
207
236
|
var getGetRoute = (options) => async (req) => {
|
|
208
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
209
|
-
const
|
|
210
|
-
const bodyRefresh = requestBody?.[REFRESH_COOKIE_NAME];
|
|
211
|
-
const userID = getUserIdFromRefreshToken(refresh || bodyRefresh);
|
|
237
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.nextUrl.searchParams.get(REFRESH_COOKIE_NAME) || void 0;
|
|
238
|
+
const userID = getUserIdFromRefreshToken(refresh);
|
|
212
239
|
if (userID) {
|
|
213
240
|
if (options.onRefresh) {
|
|
214
241
|
const body = await req.json();
|
|
@@ -336,33 +363,6 @@ function AuthFetch() {
|
|
|
336
363
|
}
|
|
337
364
|
|
|
338
365
|
// src/auth/email/index.ts
|
|
339
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
340
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
341
|
-
return {
|
|
342
|
-
"Access-Control-Allow-Origin": origin,
|
|
343
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
344
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
345
|
-
"Access-Control-Allow-Credentials": "true"
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
function withCors(handler, allowedOrigins) {
|
|
349
|
-
if (!allowedOrigins?.length) return handler;
|
|
350
|
-
return ((req) => {
|
|
351
|
-
return handler(req).then((response) => {
|
|
352
|
-
if (!response) return response;
|
|
353
|
-
const corsHeaders = getCorsHeaders(
|
|
354
|
-
req.headers.get("origin"),
|
|
355
|
-
allowedOrigins
|
|
356
|
-
);
|
|
357
|
-
if (corsHeaders) {
|
|
358
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
359
|
-
response.headers.set(key, value);
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
return response;
|
|
363
|
-
});
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
366
|
function getEmailAuthRoutes(options) {
|
|
367
367
|
const { allowedOrigins } = options;
|
|
368
368
|
return {
|
|
@@ -123,10 +123,8 @@ function getUserIdFromRefreshToken(refreshToken) {
|
|
|
123
123
|
|
|
124
124
|
// src/auth/email/routes/get.ts
|
|
125
125
|
var getGetRoute = (options) => async (req) => {
|
|
126
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
127
|
-
const
|
|
128
|
-
const bodyRefresh = requestBody?.[REFRESH_COOKIE_NAME];
|
|
129
|
-
const userID = getUserIdFromRefreshToken(refresh || bodyRefresh);
|
|
126
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.nextUrl.searchParams.get(REFRESH_COOKIE_NAME) || void 0;
|
|
127
|
+
const userID = getUserIdFromRefreshToken(refresh);
|
|
130
128
|
if (userID) {
|
|
131
129
|
if (options.onRefresh) {
|
|
132
130
|
const body = await req.json();
|
|
@@ -97,10 +97,8 @@ function getUserIdFromRefreshToken(refreshToken) {
|
|
|
97
97
|
|
|
98
98
|
// src/auth/email/routes/get.ts
|
|
99
99
|
var getGetRoute = (options) => async (req) => {
|
|
100
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
101
|
-
const
|
|
102
|
-
const bodyRefresh = requestBody?.[REFRESH_COOKIE_NAME];
|
|
103
|
-
const userID = getUserIdFromRefreshToken(refresh || bodyRefresh);
|
|
100
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.nextUrl.searchParams.get(REFRESH_COOKIE_NAME) || void 0;
|
|
101
|
+
const userID = getUserIdFromRefreshToken(refresh);
|
|
104
102
|
if (userID) {
|
|
105
103
|
if (options.onRefresh) {
|
|
106
104
|
const body = await req.json();
|
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");
|
|
@@ -260,10 +289,8 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
260
289
|
|
|
261
290
|
// src/auth/email/routes/get.ts
|
|
262
291
|
var getGetRoute = (options) => async (req) => {
|
|
263
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
264
|
-
const
|
|
265
|
-
const bodyRefresh = requestBody?.[REFRESH_COOKIE_NAME];
|
|
266
|
-
const userID = getUserIdFromRefreshToken(refresh || bodyRefresh);
|
|
292
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.nextUrl.searchParams.get(REFRESH_COOKIE_NAME) || void 0;
|
|
293
|
+
const userID = getUserIdFromRefreshToken(refresh);
|
|
267
294
|
if (userID) {
|
|
268
295
|
if (options.onRefresh) {
|
|
269
296
|
const body = await req.json();
|
|
@@ -387,33 +414,6 @@ function AuthFetch() {
|
|
|
387
414
|
}
|
|
388
415
|
|
|
389
416
|
// src/auth/email/index.ts
|
|
390
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
391
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
392
|
-
return {
|
|
393
|
-
"Access-Control-Allow-Origin": origin,
|
|
394
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
395
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
396
|
-
"Access-Control-Allow-Credentials": "true"
|
|
397
|
-
};
|
|
398
|
-
}
|
|
399
|
-
function withCors(handler, allowedOrigins) {
|
|
400
|
-
if (!allowedOrigins?.length) return handler;
|
|
401
|
-
return ((req) => {
|
|
402
|
-
return handler(req).then((response) => {
|
|
403
|
-
if (!response) return response;
|
|
404
|
-
const corsHeaders = getCorsHeaders(
|
|
405
|
-
req.headers.get("origin"),
|
|
406
|
-
allowedOrigins
|
|
407
|
-
);
|
|
408
|
-
if (corsHeaders) {
|
|
409
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
410
|
-
response.headers.set(key, value);
|
|
411
|
-
});
|
|
412
|
-
}
|
|
413
|
-
return response;
|
|
414
|
-
});
|
|
415
|
-
});
|
|
416
|
-
}
|
|
417
417
|
function getEmailAuthRoutes(options) {
|
|
418
418
|
const { allowedOrigins } = options;
|
|
419
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";
|
|
@@ -217,10 +246,8 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
217
246
|
|
|
218
247
|
// src/auth/email/routes/get.ts
|
|
219
248
|
var getGetRoute = (options) => async (req) => {
|
|
220
|
-
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
221
|
-
const
|
|
222
|
-
const bodyRefresh = requestBody?.[REFRESH_COOKIE_NAME];
|
|
223
|
-
const userID = getUserIdFromRefreshToken(refresh || bodyRefresh);
|
|
249
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value || req.nextUrl.searchParams.get(REFRESH_COOKIE_NAME) || void 0;
|
|
250
|
+
const userID = getUserIdFromRefreshToken(refresh);
|
|
224
251
|
if (userID) {
|
|
225
252
|
if (options.onRefresh) {
|
|
226
253
|
const body = await req.json();
|
|
@@ -348,33 +375,6 @@ function AuthFetch() {
|
|
|
348
375
|
}
|
|
349
376
|
|
|
350
377
|
// src/auth/email/index.ts
|
|
351
|
-
function getCorsHeaders(origin, allowedOrigins) {
|
|
352
|
-
if (!origin || !allowedOrigins.includes(origin)) return null;
|
|
353
|
-
return {
|
|
354
|
-
"Access-Control-Allow-Origin": origin,
|
|
355
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
356
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization",
|
|
357
|
-
"Access-Control-Allow-Credentials": "true"
|
|
358
|
-
};
|
|
359
|
-
}
|
|
360
|
-
function withCors(handler, allowedOrigins) {
|
|
361
|
-
if (!allowedOrigins?.length) return handler;
|
|
362
|
-
return ((req) => {
|
|
363
|
-
return handler(req).then((response) => {
|
|
364
|
-
if (!response) return response;
|
|
365
|
-
const corsHeaders = getCorsHeaders(
|
|
366
|
-
req.headers.get("origin"),
|
|
367
|
-
allowedOrigins
|
|
368
|
-
);
|
|
369
|
-
if (corsHeaders) {
|
|
370
|
-
Object.entries(corsHeaders).forEach(([key, value]) => {
|
|
371
|
-
response.headers.set(key, value);
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
return response;
|
|
375
|
-
});
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
378
|
function getEmailAuthRoutes(options) {
|
|
379
379
|
const { allowedOrigins } = options;
|
|
380
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
|
+
};
|