import withMintelConfig from "@mintel/next-config"; import createMDX from '@next/mdx'; import path from 'path'; import { fileURLToPath } from 'url'; const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(filename); /** @type {import('next').NextConfig} */ const nextConfig = { serverExternalPackages: [ 'canvas', 'sharp', 'puppeteer', 'require-in-the-middle', 'import-in-the-middle' ], transpilePackages: [ '@mintel/content-engine', '@mintel/concept-engine', '@mintel/estimation-engine', '@mintel/meme-generator', '@mintel/pdf', '@mintel/thumbnail-generator' ], images: { remotePatterns: [ { protocol: 'https', hostname: '*.your-objectstorage.com', }, { protocol: 'https', hostname: 'fsn1.your-objectstorage.com', }, ], }, async redirects() { return [ { source: '/case-studies/klz', destination: '/case-studies/klz-cables', permanent: true, }, ]; }, async rewrites() { return { beforeFiles: [ // Map Patttern: Global assets moved into KLZ showcase folder { source: '/assets/klz-cables.com/:path*', destination: '/showcase/klz-cables.com/assets/klz-cables.com/:path*', }, { source: '/wp-content/:path*', destination: '/showcase/klz-cables.com/wp-content/:path*', }, { source: '/wp-includes/:path*', destination: '/showcase/klz-cables.com/wp-includes/:path*', }, { source: '/case-studies/assets/:directory/:path*', destination: '/showcase/:directory/assets/:directory/:path*', }, ] }; }, // In Standalone mode, Next.js expects the tracing root to be the monorepo root outputFileTracingRoot: path.join(dirname, '../../'), }; const withMDX = createMDX({}); // Clean, standard wrapper application // Rewrites are now handled by src/middleware.ts for maximum robustness const config = withMintelConfig(withMDX(nextConfig)); // Cleanup config to prevent Next.js 16 warnings about deprecated keys if (config.serverActions) { delete config.serverActions; } export default config;