-
Notifications
You must be signed in to change notification settings - Fork 133
Expand file tree
/
Copy pathnext.config.js
More file actions
101 lines (99 loc) · 2.72 KB
/
next.config.js
File metadata and controls
101 lines (99 loc) · 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
module.exports = {
/**
* Block cross-origin requests during development.
*
* Without this, when running next dev, malicious website can:
* - Initiate a WebSocket connection to localhost and interact
* with the local development server, potentially exposing
* internal component code.
* - Inject a <script> tag referencing predictable paths for
* development scripts (e.g., /app/page.js), which are then
* executed in the attacker's origin.
*
* See https://vercel.com/changelog/cve-2025-48068
*/
allowedDevOrigins: [],
experimental: {
turbo: {
resolveAlias: {
canvas: 'util',
},
},
serverComponentsExternalPackages: ['mjml', 'mongoose'],
},
images: {
domains: [
`files.${process.env.ZETKIN_API_DOMAIN}`,
`avatars.${process.env.ZETKIN_API_DOMAIN}`,
// localhost added for playwright testing
'localhost',
],
},
async redirects() {
return [
{
source: '/storybook',
destination: '/storybook/index.html',
permanent: true,
},
{
source: '/docs',
destination: '/docs/index.html',
permanent: true,
},
{
source: '/my',
destination: '/my/home',
permanent: false,
},
{
source: '/:prevPath*/calendar/events',
destination: '/:prevPath*/calendar',
permanent: false,
},
{
source: '/:prevPath*/calendar/tasks',
destination: '/:prevPath*/calendar',
permanent: false,
},
{
source: `/organize/:orgId/people/views`,
destination: '/organize/:orgId/people',
permanent: true,
},
{
source: `/organize/:orgId`,
destination: '/organize/:orgId/projects',
permanent: false,
},
// redirects to Gen2 for MVP August 2021
{
source: '/organize/:orgId(\\d{1,})',
destination: '/legacy?orgId=:orgId',
permanent: false,
},
{
source:
'/organize/:orgId(\\d{1,})/projects/calendar/events/:eventId(\\d{1,})',
destination: '/legacy?path=/campaign/action%3A:eventId&orgId=:orgId',
permanent: false,
},
{
source:
'/organize/:orgId(\\d{1,})/projects/:campId(\\d{1,})/calendar/events/:eventId(\\d{1,})',
destination: '/legacy?path=/campaign/action%3A:eventId&orgId=:orgId',
permanent: false,
},
{
source: '/organize/:orgId/campaigns/:path*',
destination: '/organize/:orgId/projects/:path*',
permanent: false,
},
{
source: '/organize/:orgId/people/views/:path*',
destination: '/organize/:orgId/people/lists/:path*',
permanent: false,
},
];
},
};