/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, // Security headers async headers() { return [ { source: '/:path*', headers: [ { key: 'X-DNS-Prefetch-Control', value: 'on' }, { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' }, { key: 'X-Frame-Options', value: 'SAMEORIGIN' }, { key: 'X-Content-Type-Options', value: 'nosniff' }, { key: 'X-XSS-Protection', value: '1; mode=block' }, { key: 'Referrer-Policy', value: 'origin-when-cross-origin' }, { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' }, // Content Security Policy { key: 'Content-Security-Policy', value: [ "default-src 'self'", "script-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.walletconnect.com https://*.walletconnect.org", "style-src 'self' 'unsafe-inline'", "img-src 'self' data: https:", "font-src 'self' data:", "connect-src 'self' https://*.walletconnect.com https://*.walletconnect.org https://*.infura.io https://*.alchemy.com https://rpc.tenderly.co wss://*.walletconnect.com wss://*.walletconnect.org", "frame-src 'self' https:", "object-src 'none'", "base-uri 'self'", "form-action 'self'", "frame-ancestors 'self'", "upgrade-insecure-requests", ].join('; ') } ] } ]; }, webpack: (config) => { config.resolve.fallback = { fs: false, net: false, tls: false }; config.externals.push("pino-pretty"); return config; }, compiler: { styledComponents: true, }, // experimental: { // windowHistorySupport: true, // }, }; module.exports = nextConfig;