import type { NextConfig } from "next"; const securityHeaders = [ { key: "X-Content-Type-Options", value: "nosniff" }, { key: "X-Frame-Options", value: "DENY" }, { key: "Referrer-Policy", value: "strict-origin-when-cross-origin" }, { key: "Permissions-Policy", value: "camera=(), microphone=(), geolocation=()" }, { key: "Strict-Transport-Security", value: "max-age=63072000; includeSubDomains" }, { key: "Content-Security-Policy", value: [ "default-src 'self'", "script-src 'self' 'unsafe-inline' 'unsafe-eval'", "style-src 'self' 'unsafe-inline'", "img-src 'self' data: blob: https:", "font-src 'self' data:", "connect-src 'self'", "media-src 'self' blob:", "frame-src https://www.youtube-nocookie.com https://www.youtube.com https://player.vimeo.com", "worker-src 'self' blob:", "object-src 'none'", "base-uri 'self'", "form-action 'self'", "frame-ancestors 'none'", ].join("; "), }, ]; const nextConfig: NextConfig = { serverExternalPackages: ["pg-boss", "postgres", "@node-rs/argon2", "pdf-parse", "mammoth", "pino"], experimental: { serverActions: { bodySizeLimit: "50mb" } }, async headers() { return [{ source: "/(.*)", headers: securityHeaders }]; }, }; export default nextConfig;