import { WebpackOverrideFn } from '@remotion/bundler';
import path from 'path';

export const webpackOverride: WebpackOverrideFn = (currentConfig) => {
    return {
        ...currentConfig,
        resolve: {
            ...currentConfig.resolve,
            alias: {
                ...(currentConfig.resolve?.alias ?? {}),
                '@': path.resolve(__dirname, '..'),
                'next/navigation': path.resolve(__dirname, 'mocks/next-navigation.tsx'),
                'next/image': path.resolve(__dirname, 'mocks/next-image.tsx'),
                'next/link': path.resolve(__dirname, 'mocks/next-navigation.tsx'),

                // SYSTEMATIC ALIASING FOR ALL ANIMATION PROXYING
                'framer-motion': path.resolve(__dirname, 'mocks/framer-motion.tsx'),
                'framer-motion/dist/framer-motion': path.resolve(__dirname, 'mocks/framer-motion.tsx'),

                // Reveal Component Proxying (Deterministic Reveal)
                '../Reveal': path.resolve(__dirname, 'mocks/reveal.tsx'),
                '../../Reveal': path.resolve(__dirname, 'mocks/reveal.tsx'),
                '../../../Reveal': path.resolve(__dirname, 'mocks/reveal.tsx'),
                '@/src/components/Reveal': path.resolve(__dirname, 'mocks/reveal.tsx'),
            },
        },
    };
};
