import { withContentlayer } from "next-contentlayer2"; import createNextIntlPlugin from "next-intl/plugin"; import nextPWA from "next-pwa"; const withNextIntl = createNextIntlPlugin(); import("./env.mjs"); /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, swcMinify: true, output: "standalone", images: { remotePatterns: [ { protocol: "https", hostname: "**", }, { protocol: "https", hostname: "unavatar.io", }, { protocol: "https", hostname: "avatars.githubusercontent.com", }, { protocol: "https", hostname: "lh3.googleusercontent.com", }, { protocol: "https", hostname: "randomuser.me", }, { protocol: "https", hostname: "email-attachment.wr.do", }, { protocol: "http", hostname: "localhost", }, { protocol: "https", hostname: "wr.do", }, { protocol: "https", hostname: "api.dicebear.com", }, ], }, experimental: { serverComponentsExternalPackages: ["@prisma/client"], // serverActions: { // allowedOrigins: ["localhost:3000", process.env.NEXT_PUBLIC_APP_URL], // }, }, rewrites() { return [ { source: "/logo.png", destination: "/_static/logo-192.png", }, ]; }, redirects() { return [ { source: "/s", destination: "/", permanent: true, }, { source: "/docs/developer", destination: "/docs/developer/installation", permanent: true, }, { source: "/x", destination: "https://wr.do/s/x", permanent: true, }, ]; }, }; const withPWA = nextPWA({ dest: "public", disable: false, }); export default withContentlayer(withPWA(withNextIntl(nextConfig)));