import path from 'node:path' import { fileURLToPath } from 'node:url' import type { NextConfig } from 'next' const configuredBasePath = process.env.NEXT_PUBLIC_PASCAL_BASE_PATH?.trim() ?? '' const basePath = configuredBasePath ? `/${configuredBasePath.replace(/^\/+|\/+$/g, '')}` : undefined const pascalRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..') const nextConfig: NextConfig = { basePath, distDir: process.env.PASCAL_NEXT_DIST_DIR?.trim() || '.next', logging: { browserToTerminal: true, }, typescript: { ignoreBuildErrors: true, }, transpilePackages: [ 'three', '@pascal-app/viewer', '@pascal-app/core', '@pascal-app/editor', '@pascal-app/mcp', '@pascal-app/plugin-trees', '@dgreenheck/ez-tree', ], turbopack: { root: pascalRoot, resolveAlias: { react: './node_modules/react', three: './node_modules/three', '@react-three/fiber': './node_modules/@react-three/fiber', '@react-three/drei': './node_modules/@react-three/drei', }, }, experimental: { serverActions: { bodySizeLimit: '100mb', }, }, images: { unoptimized: process.env.NEXT_PUBLIC_ASSETS_CDN_URL?.startsWith('http://localhost') ?? false, remotePatterns: [ { protocol: 'https', hostname: '**', }, { protocol: 'http', hostname: '**', }, ], }, } export default nextConfig