const fs = require('fs'); const path = require('path'); const envSchema = require('./config/schema/env'); const urls = require('./constants/urls'); const { devices } = require('./config/ui'); const { publicRuntimeConfigSchema } = require('./config/schema/runtime-config'); const { serverRuntimeConfigSchema } = require('./config/schema/runtime-config'); const { withSentryConfig } = require('@sentry/nextjs'); const env = envSchema.parse(process.env); const favicons = fs.readdirSync('./public/favicon/prod'); const faviconSubPath = env.USE_DEV_COLORS ? '/favicon/dev' : '/favicon/prod'; function buildFaviconRewrite(source) { return { destination: String.prototype.concat(env.BASE_PATH, faviconSubPath, source), source, }; } module.exports = withSentryConfig({ basePath: env.BASE_PATH, compiler: { styledComponents: true, }, eslint: { ignoreDuringBuilds: true, }, experimental: { outputFileTracingRoot: path.join(__dirname, '../../'), }, images: { deviceSizes: devices, }, output: 'standalone', publicRuntimeConfig: publicRuntimeConfigSchema.parse(env), reactStrictMode: true, async rewrites() { return [ { destination: env.URL_CRM_GRAPHQL_PROXY + '/:path*', source: urls.URL_CRM_GRAPHQL_PROXY + '/:path*', }, { destination: env.URL_CRM_DOWNLOADKP_BASE + '/:path*', source: urls.URL_CRM_DOWNLOADKP_PROXY + '/:path*', }, { destination: env.URL_GET_USER_DIRECT, source: urls.URL_GET_USER_PROXY, }, { destination: env.URL_CORE_FINGAP_DIRECT, source: urls.URL_CORE_FINGAP_PROXY, }, { destination: env.URL_1C_TRANSTAX_DIRECT, source: urls.URL_1C_TRANSTAX_PROXY, }, { destination: env.URL_ELT_KASKO_DIRECT, source: urls.URL_ELT_KASKO_PROXY, }, { destination: env.URL_ELT_OSAGO_DIRECT, source: urls.URL_ELT_OSAGO_PROXY, }, ...favicons.map((fileName) => buildFaviconRewrite(`/${fileName}`)), ]; }, sentry: { tunnelRoute: '/track-error', }, serverRuntimeConfig: serverRuntimeConfigSchema.parse(env), swcMinify: true, transpilePackages: ['ui', 'tools', 'antd'], });