71 lines
1.5 KiB
TypeScript
71 lines
1.5 KiB
TypeScript
import type { NextConfig } from "next";
|
|
|
|
const nextConfig: NextConfig = {
|
|
output: "standalone",
|
|
serverExternalPackages: ["node-appwrite", "@google/genai"],
|
|
turbopack: {},
|
|
webpack: (config, { isServer }) => {
|
|
if (!isServer) {
|
|
config.resolve = config.resolve || {};
|
|
config.resolve.fallback = {
|
|
...(config.resolve.fallback || {}),
|
|
net: false,
|
|
tls: false,
|
|
fs: false,
|
|
child_process: false,
|
|
dns: false,
|
|
http2: false,
|
|
};
|
|
}
|
|
return config;
|
|
},
|
|
images: {
|
|
remotePatterns: [
|
|
{ protocol: "https", hostname: "**" },
|
|
],
|
|
},
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/:path*.apk',
|
|
headers: [
|
|
{
|
|
key: 'Content-Disposition',
|
|
value: 'attachment; filename="DripZone.apk"',
|
|
},
|
|
{
|
|
key: 'Content-Type',
|
|
value: 'application/vnd.android.package-archive',
|
|
},
|
|
{
|
|
key: 'Cache-Control',
|
|
value: 'public, max-age=3600, must-revalidate',
|
|
},
|
|
],
|
|
},
|
|
];
|
|
},
|
|
async rewrites() {
|
|
return [
|
|
{
|
|
source: '/catalog',
|
|
destination: '/catalogo',
|
|
},
|
|
{
|
|
source: '/coleccion',
|
|
destination: '/catalogo',
|
|
},
|
|
{
|
|
source: '/zapatillas',
|
|
destination: '/catalogo',
|
|
},
|
|
{
|
|
source: '/dripzone.apk',
|
|
destination: '/DripZone.apk',
|
|
},
|
|
];
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|