naystack 1.5.33 → 1.5.35

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.
@@ -57,26 +57,19 @@ function getCorsHeaders(origin, allowedOrigins) {
57
57
  }
58
58
  function withCors(handler, allowedOrigins) {
59
59
  if (!allowedOrigins?.length) return handler;
60
- return ((req) => {
61
- return handler(req).then((response) => {
62
- if (!response) return response;
63
- const corsHeaders = getCorsHeaders(
64
- req.headers.get("origin"),
65
- allowedOrigins
66
- );
67
- if (corsHeaders) {
68
- const newResponse = new import_server.NextResponse(response.body, {
69
- status: response.status,
70
- statusText: response.statusText,
71
- headers: new Headers(response.headers)
72
- });
73
- Object.entries(corsHeaders).forEach(([key, value]) => {
74
- newResponse.headers.set(key, value);
75
- });
76
- return newResponse;
77
- }
78
- return response;
60
+ return (async (req) => {
61
+ const origin = req.headers.get("origin");
62
+ const isSameOrigin = origin === req.nextUrl.origin;
63
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
64
+ if (origin && !isSameOrigin && !corsHeaders) {
65
+ return new import_server.NextResponse(null, { status: 403 });
66
+ }
67
+ const response = await handler(req);
68
+ if (!response || !corsHeaders) return response;
69
+ Object.entries(corsHeaders).forEach(([key, value]) => {
70
+ response.headers.set(key, value);
79
71
  });
72
+ return response;
80
73
  });
81
74
  }
82
75
 
@@ -20,26 +20,19 @@ function getCorsHeaders(origin, allowedOrigins) {
20
20
  }
21
21
  function withCors(handler, allowedOrigins) {
22
22
  if (!allowedOrigins?.length) return handler;
23
- return ((req) => {
24
- return handler(req).then((response) => {
25
- if (!response) return response;
26
- const corsHeaders = getCorsHeaders(
27
- req.headers.get("origin"),
28
- allowedOrigins
29
- );
30
- if (corsHeaders) {
31
- const newResponse = new NextResponse(response.body, {
32
- status: response.status,
33
- statusText: response.statusText,
34
- headers: new Headers(response.headers)
35
- });
36
- Object.entries(corsHeaders).forEach(([key, value]) => {
37
- newResponse.headers.set(key, value);
38
- });
39
- return newResponse;
40
- }
41
- return response;
23
+ return (async (req) => {
24
+ const origin = req.headers.get("origin");
25
+ const isSameOrigin = origin === req.nextUrl.origin;
26
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
27
+ if (origin && !isSameOrigin && !corsHeaders) {
28
+ return new NextResponse(null, { status: 403 });
29
+ }
30
+ const response = await handler(req);
31
+ if (!response || !corsHeaders) return response;
32
+ Object.entries(corsHeaders).forEach(([key, value]) => {
33
+ response.headers.set(key, value);
42
34
  });
35
+ return response;
43
36
  });
44
37
  }
45
38
 
@@ -63,26 +63,19 @@ function getCorsHeaders(origin, allowedOrigins) {
63
63
  }
64
64
  function withCors(handler, allowedOrigins) {
65
65
  if (!allowedOrigins?.length) return handler;
66
- return ((req) => {
67
- return handler(req).then((response) => {
68
- if (!response) return response;
69
- const corsHeaders = getCorsHeaders(
70
- req.headers.get("origin"),
71
- allowedOrigins
72
- );
73
- if (corsHeaders) {
74
- const newResponse = new import_server.NextResponse(response.body, {
75
- status: response.status,
76
- statusText: response.statusText,
77
- headers: new Headers(response.headers)
78
- });
79
- Object.entries(corsHeaders).forEach(([key, value]) => {
80
- newResponse.headers.set(key, value);
81
- });
82
- return newResponse;
83
- }
84
- return response;
66
+ return (async (req) => {
67
+ const origin = req.headers.get("origin");
68
+ const isSameOrigin = origin === req.nextUrl.origin;
69
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
70
+ if (origin && !isSameOrigin && !corsHeaders) {
71
+ return new import_server.NextResponse(null, { status: 403 });
72
+ }
73
+ const response = await handler(req);
74
+ if (!response || !corsHeaders) return response;
75
+ Object.entries(corsHeaders).forEach(([key, value]) => {
76
+ response.headers.set(key, value);
85
77
  });
78
+ return response;
86
79
  });
87
80
  }
88
81
 
@@ -20,26 +20,19 @@ function getCorsHeaders(origin, allowedOrigins) {
20
20
  }
21
21
  function withCors(handler, allowedOrigins) {
22
22
  if (!allowedOrigins?.length) return handler;
23
- return ((req) => {
24
- return handler(req).then((response) => {
25
- if (!response) return response;
26
- const corsHeaders = getCorsHeaders(
27
- req.headers.get("origin"),
28
- allowedOrigins
29
- );
30
- if (corsHeaders) {
31
- const newResponse = new NextResponse(response.body, {
32
- status: response.status,
33
- statusText: response.statusText,
34
- headers: new Headers(response.headers)
35
- });
36
- Object.entries(corsHeaders).forEach(([key, value]) => {
37
- newResponse.headers.set(key, value);
38
- });
39
- return newResponse;
40
- }
41
- return response;
23
+ return (async (req) => {
24
+ const origin = req.headers.get("origin");
25
+ const isSameOrigin = origin === req.nextUrl.origin;
26
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
27
+ if (origin && !isSameOrigin && !corsHeaders) {
28
+ return new NextResponse(null, { status: 403 });
29
+ }
30
+ const response = await handler(req);
31
+ if (!response || !corsHeaders) return response;
32
+ Object.entries(corsHeaders).forEach(([key, value]) => {
33
+ response.headers.set(key, value);
42
34
  });
35
+ return response;
43
36
  });
44
37
  }
45
38
 
@@ -645,26 +645,19 @@ function getCorsHeaders(origin, allowedOrigins) {
645
645
  }
646
646
  function withCors(handler, allowedOrigins) {
647
647
  if (!allowedOrigins?.length) return handler;
648
- return ((req) => {
649
- return handler(req).then((response) => {
650
- if (!response) return response;
651
- const corsHeaders = getCorsHeaders(
652
- req.headers.get("origin"),
653
- allowedOrigins
654
- );
655
- if (corsHeaders) {
656
- const newResponse = new import_server.NextResponse(response.body, {
657
- status: response.status,
658
- statusText: response.statusText,
659
- headers: new Headers(response.headers)
660
- });
661
- Object.entries(corsHeaders).forEach(([key, value]) => {
662
- newResponse.headers.set(key, value);
663
- });
664
- return newResponse;
665
- }
666
- return response;
648
+ return (async (req) => {
649
+ const origin = req.headers.get("origin");
650
+ const isSameOrigin = origin === req.nextUrl.origin;
651
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
652
+ if (origin && !isSameOrigin && !corsHeaders) {
653
+ return new import_server.NextResponse(null, { status: 403 });
654
+ }
655
+ const response = await handler(req);
656
+ if (!response || !corsHeaders) return response;
657
+ Object.entries(corsHeaders).forEach(([key, value]) => {
658
+ response.headers.set(key, value);
667
659
  });
660
+ return response;
668
661
  });
669
662
  }
670
663
 
@@ -751,18 +744,10 @@ async function initGraphQLServer({
751
744
  return {
752
745
  GET: withCors((request) => handler(request), allowedOrigins),
753
746
  POST: withCors((request) => handler(request), allowedOrigins),
754
- ...allowedOrigins?.length ? {
755
- OPTIONS: (req) => {
756
- const corsHeaders = getCorsHeaders(
757
- req.headers.get("origin"),
758
- allowedOrigins
759
- );
760
- return new import_server5.NextResponse(null, {
761
- status: 204,
762
- headers: corsHeaders ?? void 0
763
- });
764
- }
765
- } : {}
747
+ OPTIONS: withCors(
748
+ () => new import_server5.NextResponse(null, { status: 204 }),
749
+ allowedOrigins
750
+ )
766
751
  };
767
752
  }
768
753
 
@@ -632,26 +632,19 @@ function getCorsHeaders(origin, allowedOrigins) {
632
632
  }
633
633
  function withCors(handler, allowedOrigins) {
634
634
  if (!allowedOrigins?.length) return handler;
635
- return ((req) => {
636
- return handler(req).then((response) => {
637
- if (!response) return response;
638
- const corsHeaders = getCorsHeaders(
639
- req.headers.get("origin"),
640
- allowedOrigins
641
- );
642
- if (corsHeaders) {
643
- const newResponse = new NextResponse(response.body, {
644
- status: response.status,
645
- statusText: response.statusText,
646
- headers: new Headers(response.headers)
647
- });
648
- Object.entries(corsHeaders).forEach(([key, value]) => {
649
- newResponse.headers.set(key, value);
650
- });
651
- return newResponse;
652
- }
653
- return response;
635
+ return (async (req) => {
636
+ const origin = req.headers.get("origin");
637
+ const isSameOrigin = origin === req.nextUrl.origin;
638
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
639
+ if (origin && !isSameOrigin && !corsHeaders) {
640
+ return new NextResponse(null, { status: 403 });
641
+ }
642
+ const response = await handler(req);
643
+ if (!response || !corsHeaders) return response;
644
+ Object.entries(corsHeaders).forEach(([key, value]) => {
645
+ response.headers.set(key, value);
654
646
  });
647
+ return response;
655
648
  });
656
649
  }
657
650
 
@@ -738,18 +731,10 @@ async function initGraphQLServer({
738
731
  return {
739
732
  GET: withCors((request) => handler(request), allowedOrigins),
740
733
  POST: withCors((request) => handler(request), allowedOrigins),
741
- ...allowedOrigins?.length ? {
742
- OPTIONS: (req) => {
743
- const corsHeaders = getCorsHeaders(
744
- req.headers.get("origin"),
745
- allowedOrigins
746
- );
747
- return new NextResponse4(null, {
748
- status: 204,
749
- headers: corsHeaders ?? void 0
750
- });
751
- }
752
- } : {}
734
+ OPTIONS: withCors(
735
+ () => new NextResponse4(null, { status: 204 }),
736
+ allowedOrigins
737
+ )
753
738
  };
754
739
  }
755
740
 
@@ -98,26 +98,19 @@ function getCorsHeaders(origin, allowedOrigins) {
98
98
  }
99
99
  function withCors(handler, allowedOrigins) {
100
100
  if (!allowedOrigins?.length) return handler;
101
- return ((req) => {
102
- return handler(req).then((response) => {
103
- if (!response) return response;
104
- const corsHeaders = getCorsHeaders(
105
- req.headers.get("origin"),
106
- allowedOrigins
107
- );
108
- if (corsHeaders) {
109
- const newResponse = new import_server.NextResponse(response.body, {
110
- status: response.status,
111
- statusText: response.statusText,
112
- headers: new Headers(response.headers)
113
- });
114
- Object.entries(corsHeaders).forEach(([key, value]) => {
115
- newResponse.headers.set(key, value);
116
- });
117
- return newResponse;
118
- }
119
- return response;
101
+ return (async (req) => {
102
+ const origin = req.headers.get("origin");
103
+ const isSameOrigin = origin === req.nextUrl.origin;
104
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
105
+ if (origin && !isSameOrigin && !corsHeaders) {
106
+ return new import_server.NextResponse(null, { status: 403 });
107
+ }
108
+ const response = await handler(req);
109
+ if (!response || !corsHeaders) return response;
110
+ Object.entries(corsHeaders).forEach(([key, value]) => {
111
+ response.headers.set(key, value);
120
112
  });
113
+ return response;
121
114
  });
122
115
  }
123
116
 
@@ -204,18 +197,10 @@ async function initGraphQLServer({
204
197
  return {
205
198
  GET: withCors((request) => handler(request), allowedOrigins),
206
199
  POST: withCors((request) => handler(request), allowedOrigins),
207
- ...allowedOrigins?.length ? {
208
- OPTIONS: (req) => {
209
- const corsHeaders = getCorsHeaders(
210
- req.headers.get("origin"),
211
- allowedOrigins
212
- );
213
- return new import_server5.NextResponse(null, {
214
- status: 204,
215
- headers: corsHeaders ?? void 0
216
- });
217
- }
218
- } : {}
200
+ OPTIONS: withCors(
201
+ () => new import_server5.NextResponse(null, { status: 204 }),
202
+ allowedOrigins
203
+ )
219
204
  };
220
205
  }
221
206
  // Annotate the CommonJS export names for ESM import in node:
@@ -42,9 +42,9 @@ declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext
42
42
  getContext?: (req: NextRequest) => Promise<any> | any;
43
43
  allowedOrigins?: string[];
44
44
  }): Promise<{
45
- OPTIONS?: ((req: NextRequest) => NextResponse<unknown>) | undefined;
46
45
  GET: (request: NextRequest) => Promise<Response>;
47
46
  POST: (request: NextRequest) => Promise<Response>;
47
+ OPTIONS: () => NextResponse<unknown>;
48
48
  }>;
49
49
 
50
50
  export { initGraphQLServer };
@@ -42,9 +42,9 @@ declare function initGraphQLServer({ authChecker, resolvers, plugins, getContext
42
42
  getContext?: (req: NextRequest) => Promise<any> | any;
43
43
  allowedOrigins?: string[];
44
44
  }): Promise<{
45
- OPTIONS?: ((req: NextRequest) => NextResponse<unknown>) | undefined;
46
45
  GET: (request: NextRequest) => Promise<Response>;
47
46
  POST: (request: NextRequest) => Promise<Response>;
47
+ OPTIONS: () => NextResponse<unknown>;
48
48
  }>;
49
49
 
50
50
  export { initGraphQLServer };
@@ -79,26 +79,19 @@ function getCorsHeaders(origin, allowedOrigins) {
79
79
  }
80
80
  function withCors(handler, allowedOrigins) {
81
81
  if (!allowedOrigins?.length) return handler;
82
- return ((req) => {
83
- return handler(req).then((response) => {
84
- if (!response) return response;
85
- const corsHeaders = getCorsHeaders(
86
- req.headers.get("origin"),
87
- allowedOrigins
88
- );
89
- if (corsHeaders) {
90
- const newResponse = new NextResponse(response.body, {
91
- status: response.status,
92
- statusText: response.statusText,
93
- headers: new Headers(response.headers)
94
- });
95
- Object.entries(corsHeaders).forEach(([key, value]) => {
96
- newResponse.headers.set(key, value);
97
- });
98
- return newResponse;
99
- }
100
- return response;
82
+ return (async (req) => {
83
+ const origin = req.headers.get("origin");
84
+ const isSameOrigin = origin === req.nextUrl.origin;
85
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
86
+ if (origin && !isSameOrigin && !corsHeaders) {
87
+ return new NextResponse(null, { status: 403 });
88
+ }
89
+ const response = await handler(req);
90
+ if (!response || !corsHeaders) return response;
91
+ Object.entries(corsHeaders).forEach(([key, value]) => {
92
+ response.headers.set(key, value);
101
93
  });
94
+ return response;
102
95
  });
103
96
  }
104
97
 
@@ -185,18 +178,10 @@ async function initGraphQLServer({
185
178
  return {
186
179
  GET: withCors((request) => handler(request), allowedOrigins),
187
180
  POST: withCors((request) => handler(request), allowedOrigins),
188
- ...allowedOrigins?.length ? {
189
- OPTIONS: (req) => {
190
- const corsHeaders = getCorsHeaders(
191
- req.headers.get("origin"),
192
- allowedOrigins
193
- );
194
- return new NextResponse4(null, {
195
- status: 204,
196
- headers: corsHeaders ?? void 0
197
- });
198
- }
199
- } : {}
181
+ OPTIONS: withCors(
182
+ () => new NextResponse4(null, { status: 204 }),
183
+ allowedOrigins
184
+ )
200
185
  };
201
186
  }
202
187
  export {
@@ -41,26 +41,19 @@ function getCorsHeaders(origin, allowedOrigins) {
41
41
  }
42
42
  function withCors(handler, allowedOrigins) {
43
43
  if (!allowedOrigins?.length) return handler;
44
- return ((req) => {
45
- return handler(req).then((response) => {
46
- if (!response) return response;
47
- const corsHeaders = getCorsHeaders(
48
- req.headers.get("origin"),
49
- allowedOrigins
50
- );
51
- if (corsHeaders) {
52
- const newResponse = new import_server.NextResponse(response.body, {
53
- status: response.status,
54
- statusText: response.statusText,
55
- headers: new Headers(response.headers)
56
- });
57
- Object.entries(corsHeaders).forEach(([key, value]) => {
58
- newResponse.headers.set(key, value);
59
- });
60
- return newResponse;
61
- }
62
- return response;
44
+ return (async (req) => {
45
+ const origin = req.headers.get("origin");
46
+ const isSameOrigin = origin === req.nextUrl.origin;
47
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
48
+ if (origin && !isSameOrigin && !corsHeaders) {
49
+ return new import_server.NextResponse(null, { status: 403 });
50
+ }
51
+ const response = await handler(req);
52
+ if (!response || !corsHeaders) return response;
53
+ Object.entries(corsHeaders).forEach(([key, value]) => {
54
+ response.headers.set(key, value);
63
55
  });
56
+ return response;
64
57
  });
65
58
  }
66
59
  // Annotate the CommonJS export names for ESM import in node:
@@ -6,6 +6,6 @@ declare function getCorsHeaders(origin: string | null, allowedOrigins: string[])
6
6
  "Access-Control-Allow-Headers": string;
7
7
  "Access-Control-Allow-Credentials": string;
8
8
  } | null;
9
- declare function withCors<T extends (req: NextRequest) => Promise<NextResponse | Response | undefined>>(handler: T, allowedOrigins?: string[]): T;
9
+ declare function withCors<T extends (req: NextRequest) => Promise<NextResponse | Response | undefined> | NextResponse | Response | undefined>(handler: T, allowedOrigins?: string[]): T;
10
10
 
11
11
  export { getCorsHeaders, withCors };
@@ -6,6 +6,6 @@ declare function getCorsHeaders(origin: string | null, allowedOrigins: string[])
6
6
  "Access-Control-Allow-Headers": string;
7
7
  "Access-Control-Allow-Credentials": string;
8
8
  } | null;
9
- declare function withCors<T extends (req: NextRequest) => Promise<NextResponse | Response | undefined>>(handler: T, allowedOrigins?: string[]): T;
9
+ declare function withCors<T extends (req: NextRequest) => Promise<NextResponse | Response | undefined> | NextResponse | Response | undefined>(handler: T, allowedOrigins?: string[]): T;
10
10
 
11
11
  export { getCorsHeaders, withCors };
@@ -16,26 +16,19 @@ function getCorsHeaders(origin, allowedOrigins) {
16
16
  }
17
17
  function withCors(handler, allowedOrigins) {
18
18
  if (!allowedOrigins?.length) return handler;
19
- return ((req) => {
20
- return handler(req).then((response) => {
21
- if (!response) return response;
22
- const corsHeaders = getCorsHeaders(
23
- req.headers.get("origin"),
24
- allowedOrigins
25
- );
26
- if (corsHeaders) {
27
- const newResponse = new NextResponse(response.body, {
28
- status: response.status,
29
- statusText: response.statusText,
30
- headers: new Headers(response.headers)
31
- });
32
- Object.entries(corsHeaders).forEach(([key, value]) => {
33
- newResponse.headers.set(key, value);
34
- });
35
- return newResponse;
36
- }
37
- return response;
19
+ return (async (req) => {
20
+ const origin = req.headers.get("origin");
21
+ const isSameOrigin = origin === req.nextUrl.origin;
22
+ const corsHeaders = isSameOrigin ? null : getCorsHeaders(origin, allowedOrigins);
23
+ if (origin && !isSameOrigin && !corsHeaders) {
24
+ return new NextResponse(null, { status: 403 });
25
+ }
26
+ const response = await handler(req);
27
+ if (!response || !corsHeaders) return response;
28
+ Object.entries(corsHeaders).forEach(([key, value]) => {
29
+ response.headers.set(key, value);
38
30
  });
31
+ return response;
39
32
  });
40
33
  }
41
34
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naystack",
3
- "version": "1.5.33",
3
+ "version": "1.5.35",
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",