next.config.js (55 lines of code) (raw):

/** @type {import('next').NextConfig} */ const isDev = process.env.NODE_ENV !== "production"; const cspHeaderProd = ` default-src 'none'; img-src 'self' blob: data:; connect-src 'self'; frame-src *; font-src 'self'; script-src 'self'; script-src-elem * 'unsafe-inline'; style-src 'self'; style-src-attr * 'unsafe-inline'; frame-ancestors 'self'; base-uri 'self'; form-action 'self'; object-src 'none'; `; const cspHeaderDev = ` default-src 'none'; img-src 'self' blob: data:; connect-src 'self'; font-src 'self'; script-src 'self' 'unsafe-eval'; script-src-elem * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; base-uri 'self'; form-action 'self'; object-src 'none'; `; const nextConfig = { staticPageGenerationTimeout: 240, eslint: { dirs: ["pages", "app", "components", "lib", "src", "__tests__"], }, async headers() { return [ { source: "/:path*", headers: [ // { // key: "Content-Security-Policy", // value: isDev // ? cspHeaderDev.replace(/\n/g, "") // : cspHeaderProd.replace(/\n/g, ""), // }, { key: "X-Frame-Options", value: "DENY", }, { key: "Content-Security-Policy-Report-Only", value: cspHeaderProd.replace(/\n/g, "") + "report-uri /csp-violation-report-endpoint/", }, ], }, ]; }, }; module.exports = nextConfig;