import { env } from './src/env'; import { withSentryConfig } from '@sentry/nextjs'; import { withPlausibleProxy } from 'next-plausible'; import { createJiti } from "jiti"; const jiti = createJiti(import.meta.url); // Import env files to validate at build time. Use jiti so we can load .ts files in here. await jiti.import("./src/env"); /** @type {import("next").NextConfig} */ const config = withPlausibleProxy({ customDomain: env.NEXT_PUBLIC_PLAUSIBLE_URL, })({ output: 'standalone', images: { remotePatterns: [ { protocol: 'https', hostname: '*.gbrown.org', }, ], }, serverExternalPackages: ['require-in-the-middle'], experimental: { serverActions: { bodySizeLimit: '10mb', }, }, /** Enables hot reloading for local packages without a build step */ transpilePackages: [ "@gib/backend", "@gib/ui", ], typescript: { ignoreBuildErrors: true }, }); const sentryConfig = { // For all available options, see: // https://www.npmjs.com/package/@sentry/webpack-plugin#options org: env.NEXT_PUBLIC_SENTRY_ORG, project: env.NEXT_PUBLIC_SENTRY_PROJECT_NAME, sentryUrl: env.NEXT_PUBLIC_SENTRY_URL, authToken: env.SENTRY_AUTH_TOKEN, // Only print logs for uploading source maps in CI silent: !env.CI, // For all available options, see: // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ // Upload a larger set of source maps for prettier stack traces (increases build time) widenClientFileUpload: true, // Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. // This can increase your server load as well as your hosting bill. // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- // side errors will fail. tunnelRoute: '/monitoring', // Automatically tree-shake Sentry logger statements to reduce bundle size disableLogger: true, // Capture React Component Names reactComponentAnnotation: { enabled: true, }, }; export default withSentryConfig(config, sentryConfig);