{"version":3,"sources":["../../src/server/config-shared.ts"],"sourcesContent":["import os from 'os'\nimport type { webpack } from 'next/dist/compiled/webpack/webpack'\nimport type { Header, Redirect, Rewrite } from '../lib/load-custom-routes'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport type {\n  ImageConfig,\n  ImageConfigComplete,\n} from '../shared/lib/image-config'\nimport type { SubresourceIntegrityAlgorithm } from '../build/webpack/plugins/subresource-integrity-plugin'\nimport type { WEB_VITALS } from '../shared/lib/utils'\nimport type { NextParsedUrlQuery } from './request-meta'\nimport type { SizeLimit } from '../types'\nimport type { SupportedTestRunners } from '../cli/next-test'\nimport type { ExperimentalPPRConfig } from './lib/experimental/ppr'\nimport { INFINITE_CACHE } from '../lib/constants'\nimport type { FallbackRouteParam } from '../build/static-paths/types'\nimport type { MemoryEvictionMode } from '../build/swc/types'\nimport type { CacheLife } from './use-cache/cache-life'\n\n/**\n * The `cacheLife` profiles after config normalization. `config.ts` always\n * backfills the `default` profile so that its `stale`, `revalidate`, and\n * `expire` are all defined, which is why `default` is `Required<CacheLife>`\n * here while other profiles may still be partial. Runtime `\"use cache\"` code\n * can therefore read `cacheLifeProfiles.default` without re-validating it.\n */\nexport interface ResolvedCacheLifeProfiles {\n  default: Required<CacheLife>\n  [profile: string]: CacheLife\n}\n\n/**\n * Resolved form of the prefetchInlining config after normalization in\n * config.ts. User input (true, partial objects) is converted to this shape.\n */\nexport type PrefetchInliningConfig =\n  | false\n  | { maxSize: number; maxBundleSize: number }\n\nexport type NextConfigComplete = Required<\n  Omit<NextConfig, 'configFile' | 'cacheLife'>\n> & {\n  images: Required<ImageConfigComplete>\n  typescript: TypeScriptConfig\n  configFile: string | undefined\n  configFileName: string\n  // Normalized by config.ts: the `default` profile is backfilled to be complete\n  // (see `ResolvedCacheLifeProfiles`), unlike the optional/partial user input.\n  // Omitted from the base so this is a clean replacement, not an intersection.\n  cacheLife: ResolvedCacheLifeProfiles\n  // override NextConfigComplete.experimental.htmlLimitedBots to string\n  // because it's not defined in NextConfigComplete.experimental\n  htmlLimitedBots: string | undefined\n  experimental: ExperimentalConfig & {\n    // Normalized by config.ts: true and partial objects become resolved objects\n    prefetchInlining?: PrefetchInliningConfig\n    // Normalized by config.ts: defaulted to 90% of staticPageGenerationTimeout\n    useCacheTimeout: number\n    // Normalized by config.ts `finalizeConfig`: defaulted to `'warning'`\n    instantInsights: { validationLevel: ValidationLevel }\n    // Normalized by finalized config with a default and the expected type\n    turbopackMemoryEvictionMode: MemoryEvictionMode\n  }\n  // The root directory of the distDir. In development mode, this is the parent directory of `distDir`\n  // since development builds use `{distDir}/dev`. This is used to ensure that the bundler doesn't\n  // traverse into the output directory.\n  distDirRoot: string\n  // The repository root, regardless of overwritten outputFileTracingRoot or turbopack.root.\n  repoRoot: string\n}\n\nexport type I18NDomains = readonly DomainLocale[]\n\nexport interface I18NConfig {\n  defaultLocale: string\n  domains?: I18NDomains\n  localeDetection?: false\n  locales: readonly string[]\n}\n\nexport interface DomainLocale {\n  defaultLocale: string\n  domain: string\n  http?: true\n  locales?: readonly string[]\n}\n\nexport interface TypeScriptConfig {\n  /** Do not run TypeScript during production builds (`next build`). */\n  ignoreBuildErrors?: boolean\n  /** Relative path to a custom tsconfig file */\n  tsconfigPath?: string\n}\n\nexport interface EmotionConfig {\n  sourceMap?: boolean\n  autoLabel?: 'dev-only' | 'always' | 'never'\n  labelFormat?: string\n  importMap?: {\n    [importName: string]: {\n      [exportName: string]: {\n        canonicalImport?: [string, string]\n        styledBaseImport?: [string, string]\n      }\n    }\n  }\n}\n\nexport interface StyledComponentsConfig {\n  /**\n   * Enabled by default in development, disabled in production to reduce file size,\n   * setting this will override the default for all environments.\n   */\n  displayName?: boolean\n  topLevelImportPaths?: string[]\n  ssr?: boolean\n  fileName?: boolean\n  meaninglessFileNames?: string[]\n  minify?: boolean\n  transpileTemplateLiterals?: boolean\n  namespace?: string\n  pure?: boolean\n  cssProp?: boolean\n}\n\nexport type JSONValue =\n  | string\n  | number\n  | boolean\n  | JSONValue[]\n  | { [k: string]: JSONValue }\n\n// At the moment, Turbopack options must be JSON-serializable, so restrict values.\nexport type TurbopackLoaderOptions = Record<string, JSONValue>\n\nexport type TurbopackLoaderItem =\n  | string\n  | {\n      loader: string\n      options?: TurbopackLoaderOptions\n    }\n\nexport type TurbopackLoaderBuiltinCondition =\n  | 'browser'\n  | 'foreign'\n  | 'development'\n  | 'production'\n  | 'node'\n  | 'edge-light'\n\nexport type TurbopackRuleCondition =\n  | { all: TurbopackRuleCondition[] }\n  | { any: TurbopackRuleCondition[] }\n  | { not: TurbopackRuleCondition }\n  | TurbopackLoaderBuiltinCondition\n  | {\n      path?: string | RegExp\n      content?: RegExp\n      query?: string | RegExp\n      contentType?: string | RegExp\n    }\n\n/**\n * The module type to use for matched files. This determines how files are\n * processed without requiring a custom loader.\n *\n * - `'asset'` - Emit the file and return its URL (like webpack's `asset/resource`)\n * - `'ecmascript'` - Process as JavaScript module\n * - `'typescript'` - Process as TypeScript module\n * - `'css'` - Process as CSS file\n * - `'css-module'` - Process as CSS module\n * - `'wasm'` - Process as WebAssembly module\n * - `'raw'` - Return raw file contents as a string\n * - `'node'` - Process as native Node.js addon\n * - `'bytes'` - Inline file contents as bytes in JavaScript\n *\n * @see [Module Types](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#module-types)\n */\nexport type TurbopackModuleType =\n  | 'asset'\n  | 'ecmascript'\n  | 'typescript'\n  | 'css'\n  | 'css-module'\n  | 'wasm'\n  | 'raw'\n  | 'node'\n  | 'bytes'\n  | 'text'\n\nexport type TurbopackRuleConfigItem = {\n  /** Loaders to apply to matched files. */\n  loaders?: TurbopackLoaderItem[]\n  /** Rename the file extension for loader output (e.g., `'*.js'`). */\n  as?: string\n  /** Additional conditions for when this rule applies. */\n  condition?: TurbopackRuleCondition\n  /**\n   * Set the module type directly without using a loader.\n   * @see [Module Types](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#module-types)\n   */\n  type?: TurbopackModuleType\n}\n\n/**\n * This can be an object representing a single configuration, or a list of\n * loaders and/or rule configuration objects.\n *\n * - A list of loader path strings or objects is the \"shorthand\" syntax.\n * - A list of rule configuration objects can be useful when each configuration\n *   object has different `condition` fields, but still match the same top-level\n *   path glob.\n */\nexport type TurbopackRuleConfigCollection =\n  | TurbopackRuleConfigItem\n  | (TurbopackLoaderItem | TurbopackRuleConfigItem)[]\n\nexport interface TurbopackOptions {\n  /**\n   * (`next --turbopack` only) A mapping of aliased imports to modules to load in their place.\n   *\n   * @see [Resolve Alias](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#resolving-aliases)\n   */\n  resolveAlias?: Record<\n    string,\n    string | string[] | Record<string, string | string[]>\n  >\n\n  /**\n   * (`next --turbopack` only) A list of extensions to resolve when importing files.\n   *\n   * @see [Resolve Extensions](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#resolving-custom-extensions)\n   */\n  resolveExtensions?: string[]\n\n  /**\n   * (`next --turbopack` only) A list of webpack loaders to apply when running with Turbopack.\n   *\n   * @see [Turbopack Loaders](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#configuring-webpack-loaders)\n   */\n  rules?: Record<string, TurbopackRuleConfigCollection>\n\n  /**\n   * This is the repo root usually and only files above this\n   * directory can be resolved by turbopack.\n   */\n  root?: string\n\n  /**\n   * Enables generation of debug IDs in JavaScript bundles and source maps.\n   * These debug IDs help with debugging and error tracking by providing stable identifiers.\n   *\n   * @see https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md TC39 Debug ID Proposal\n   */\n  debugIds?: boolean\n\n  /**\n   * An array of issue filter rules to ignore specific Turbopack issues.\n   * Each rule must have a `path` field (mandatory) and optionally `title`\n   * and `description`. String paths are treated as glob patterns. String\n   * titles/descriptions are exact matches. RegExp values match anywhere\n   * within the string (use `^` and `$` anchors for full-string matching).\n   */\n  ignoreIssue?: Array<{\n    path: string | RegExp\n    title?: string | RegExp\n    description?: string | RegExp\n  }>\n\n  /**\n   * Override the global variable name used for\n   * chunk loading. Useful when multiple Turbopack-built apps run on the same\n   * page (e.g. horizontal micro-frontends) to avoid `globalThis.TURBOPACK`\n   * conflicts.\n   *\n   * @see https://webpack.js.org/configuration/output/#outputchunkloadingglobal\n   */\n  chunkLoadingGlobal?: string\n}\n\nexport interface WebpackConfigContext {\n  /** Next.js root directory */\n  dir: string\n  /** Indicates if the compilation will be done in development */\n  dev: boolean\n  /** It's `true` for server-side compilation, and `false` for client-side compilation */\n  isServer: boolean\n  /**  The build id, used as a unique identifier between builds */\n  buildId: string\n  /** The next.config.js merged with default values */\n  config: NextConfigComplete\n  /** Default loaders used internally by Next.js */\n  defaultLoaders: {\n    /** Default babel-loader configuration */\n    babel: any\n  }\n  /** Number of total Next.js pages */\n  totalPages: number\n  /** The webpack configuration */\n  webpack: any\n  /** The current server runtime */\n  nextRuntime?: 'nodejs' | 'edge'\n}\n\nexport interface NextJsWebpackConfig {\n  (\n    /** Existing Webpack config */\n    config: any,\n    context: WebpackConfigContext\n  ): any\n}\n\n/**\n * Set of options for React Compiler that Next.js currently supports.\n *\n * These options may be changed in breaking ways at any time without notice\n * while support for React Compiler is experimental.\n *\n * @see https://react.dev/reference/react-compiler/configuration\n */\nexport interface ReactCompilerOptions {\n  /**\n   * Controls the strategy for determining which functions the React Compiler\n   * will optimize.\n   *\n   * The default is `'infer'`, which uses intelligent heuristics to identify\n   * React components and hooks.\n   *\n   * When using `infer`, Next.js applies its own heuristics before calling\n   * `react-compiler`. This improves compilation performance by avoiding extra\n   * invocations of Babel and reducing redundant parsing of code.\n   *\n   * @see https://react.dev/reference/react-compiler/compilationMode\n   */\n  compilationMode?: 'infer' | 'annotation' | 'all'\n  /**\n   * Controls how the React Compiler handles errors during compilation.\n   *\n   * The default is `'none'`, which skips components which cannot be compiled.\n   *\n   * @see https://react.dev/reference/react-compiler/panicThreshold\n   */\n  panicThreshold?: 'none' | 'critical_errors' | 'all_errors'\n}\n\nexport interface IncomingRequestLoggingConfig {\n  /**\n   * A regular expression array to match incoming requests that should not be logged.\n   * You can specify multiple patterns to match incoming requests that should not be logged.\n   */\n  ignore?: RegExp[]\n}\n\nexport interface LoggingConfig {\n  fetches?: {\n    fullUrl?: boolean\n    /**\n     * If true, fetch requests that are restored from the HMR cache are logged\n     * during an HMR refresh request, i.e. when editing a server component.\n     */\n    hmrRefreshes?: boolean\n  }\n\n  /**\n   * If set to false, incoming request logging is disabled.\n   * You can specify a pattern to match incoming requests that should not be logged.\n   */\n  incomingRequests?: boolean | IncomingRequestLoggingConfig\n\n  /**\n   * If false, Server Function invocation logging is disabled.\n   * @default true\n   */\n  serverFunctions?: boolean\n\n  /**\n   * Forward browser console logs to terminal.\n   * - `false`: Disable browser log forwarding\n   * - `true`: Forward all browser console output to terminal\n   * - `'warn'`: Forward warnings and errors to terminal\n   * - `'error'`: Forward only errors to terminal\n   */\n  browserToTerminal?: boolean | 'error' | 'warn'\n}\n\n/**\n * All recognized lightningcss feature names.\n * Individual features map 1:1 to lightningcss `Features` bitflags.\n * Composite names (`selectors`, `media-queries`, `colors`) enable a group of\n * related individual features at once.\n *\n * The name→bitmask mapping is duplicated in:\n * - JS:   `packages/next/src/build/webpack/loaders/lightningcss-loader/src/features.ts`\n * - Rust: `crates/next-core/src/next_config.rs` (`lightningcss_feature_names_to_mask`)\n */\nexport const LIGHTNINGCSS_FEATURE_NAMES = [\n  // Individual features (bit 0–20)\n  'nesting',\n  'not-selector-list',\n  'dir-selector',\n  'lang-selector-list',\n  'is-selector',\n  'text-decoration-thickness-percent',\n  'media-interval-syntax',\n  'media-range-syntax',\n  'custom-media-queries',\n  'clamp-function',\n  'color-function',\n  'oklab-colors',\n  'lab-colors',\n  'p3-colors',\n  'hex-alpha-colors',\n  'space-separated-color-notation',\n  'font-family-system-ui',\n  'double-position-gradients',\n  'vendor-prefixes',\n  'logical-properties',\n  'light-dark',\n  // Composite groups\n  'selectors',\n  'media-queries',\n  'colors',\n] as const\n\nexport type LightningCssFeature = (typeof LIGHTNINGCSS_FEATURE_NAMES)[number]\n\nexport interface LightningCssFeatures {\n  include?: LightningCssFeature[]\n  exclude?: LightningCssFeature[]\n}\n\n/**\n * Accepted shapes for `experimental.cssChunking`. See [`ExperimentalConfig.cssChunking`] for the\n * accepted values; use [`resolveCssChunkingMode`] to normalize the value at runtime.\n */\nexport type CssChunkingConfig =\n  | boolean\n  | 'strict'\n  | 'loose'\n  | 'graph'\n  | { type: 'strict' }\n  | { type: 'loose' }\n  | { type: 'graph'; requestCost?: number; weightDistribution?: number }\n\n/**\n * Normalize any [`CssChunkingConfig`] value to one of the four modes the build pipeline cares\n * about:\n *   - `'off'`  — `false`/`undefined`: do not run a CSS chunking plugin.\n *   - `'loose'` — `true` / `'loose'` / `{ type: 'loose' }`: heuristic-based chunking\n *     (the default).\n *   - `'strict'` — `'strict'` / `{ type: 'strict' }`: webpack-only ordered-chunking plugin.\n *   - `'graph'` — `'graph'` / `{ type: 'graph', … }`: Turbopack-only graph algorithm.\n */\nexport function resolveCssChunkingMode(\n  value: CssChunkingConfig | undefined\n): 'off' | 'loose' | 'strict' | 'graph' {\n  if (value === undefined || value === false) return 'off'\n  if (value === true || value === 'loose') return 'loose'\n  if (value === 'strict' || value === 'graph') return value\n  // Object form. `requestCost` and `weightDistribution` are validated by the schema.\n  if (value.type === 'strict') return 'strict'\n  if (value.type === 'graph') return 'graph'\n  return 'loose'\n}\n\nexport interface ExperimentalConfig {\n  /**\n   * @deprecated Use the top-level `outputHashSalt` option instead.\n   */\n  outputHashSalt?: string\n\n  appNewScrollHandler?: boolean\n  /**\n   * Shows a persistent \"Cold cache\" badge in the dev overlay after a load that\n   * filled an empty cache while streaming. Off by default while the badge's\n   * UI/UX is iterated on; the transient \"Rendering (cold cache)\" pill is shown\n   * regardless of this flag.\n   */\n  coldCacheBadge?: boolean\n  useSkewCookie?: boolean\n  /** @deprecated use top-level `cacheHandlers` instead */\n  cacheHandlers?: NextConfig['cacheHandlers']\n  multiZoneDraftMode?: boolean\n  appNavFailHandling?: boolean\n  prerenderEarlyExit?: boolean\n  linkNoTouchStart?: boolean\n  caseSensitiveRoutes?: boolean\n  /**\n   * The origins that are allowed to write the rewritten headers when\n   * performing a non-relative rewrite. When undefined, no non-relative\n   * rewrites will get the rewrite headers.\n   */\n  clientParamParsingOrigins?: string[]\n  /**\n   * Caches subsets of a route, seeded from actual navigations, so subsequent\n   * navigations to the same or similar pages can be served instantly. Requires\n   * Cache Components.\n   */\n  cachedNavigations?: boolean\n  dynamicOnHover?: boolean\n  useOffline?: boolean\n  optimisticRouting?: boolean\n  instrumentationClientRouterTransitionEvents?: boolean\n  varyParams?: boolean\n  prefetchInlining?:\n    | boolean\n    | {\n        maxSize?: number\n        maxBundleSize?: number\n      }\n  preloadEntriesOnStart?: boolean\n  clientRouterFilter?: boolean\n  clientRouterFilterRedirects?: boolean\n  /**\n   * This config can be used to override the cache behavior for the client router.\n   * These values indicate the time, in seconds, that the cache should be considered\n   * reusable. When the `prefetch` Link prop is left unspecified, this will use the `dynamic` value.\n   * When the `prefetch` Link prop is set to `true`, this will use the `static` value.\n   */\n  staleTimes?: {\n    dynamic?: number\n    /** Must be greater than or equal to 30 seconds, to ensure prefetching is not completely wasteful */\n    static?: number\n  }\n  /**\n   * @deprecated use top-level `cacheLife` instead\n   */\n  cacheLife?: NextConfig['cacheLife']\n  // decimal for percent for possible false positives\n  // e.g. 0.01 for 10% potential false matches lower\n  // percent increases size of the filter\n  clientRouterFilterAllowedRate?: number\n  /**\n   * @deprecated Use `externalProxyRewritesResolve` instead.\n   */\n  externalMiddlewareRewritesResolve?: boolean\n  externalProxyRewritesResolve?: boolean\n  /**\n   * Exposes the Instant Navigation Testing API in production builds. This\n   * API is always available in development mode.\n   *\n   * The testing API allows e2e tests to control navigation timing, enabling\n   * deterministic assertions on prefetched/cached UI before dynamic data\n   * streams in.\n   *\n   * WARNING: This flag is intended for profiling and testing purposes only.\n   * Do not enable in user-facing production deployments.\n   */\n  exposeTestingApiInProductionBuild?: boolean\n  /**\n   * Show Request Insights in the dev tools indicator. Request Insights records\n   * the local framework spans needed to explain App Router request, render,\n   * fetch, and cache behavior without requiring an external OTEL collector.\n   */\n  requestInsights?: boolean\n  extensionAlias?: Record<string, any>\n  allowedRevalidateHeaderKeys?: string[]\n  fetchCacheKeyPrefix?: string\n  imgOptConcurrency?: number | null\n  imgOptOperationCache?: boolean | null\n  imgOptTimeoutInSeconds?: number\n  imgOptMaxInputPixels?: number\n  imgOptSequentialRead?: boolean | null\n  optimisticClientCache?: boolean\n  /**\n   * @deprecated use config.expireTime instead\n   */\n  expireTime?: number\n  /**\n   * @deprecated Use `proxyPrefetch` instead.\n   */\n  middlewarePrefetch?: 'strict' | 'flexible'\n  proxyPrefetch?: 'strict' | 'flexible'\n  manualClientBasePath?: boolean\n  /**\n   * CSS Chunking strategy. Defaults to `true` (loose mode), which guesses dependencies between\n   * CSS files to keep ordering of them.\n   *\n   * - `true` / `'loose'` / `{ type: 'loose' }` — default heuristic-based chunking.\n   * - `'strict'` / `{ type: 'strict' }` — preserve correct ordering as much as possible, even\n   *   when this leads to many requests. Webpack only.\n   * - `false` — disable chunking; emit one chunk per CSS module. Webpack only.\n   * - `'graph'` / `{ type: 'graph', requestCost?, weightDistribution? }` — Turbopack only.\n   *   Selects a CSS chunking strategy that analyzes the most common style orderings across the\n   *   application and produces shared chunks accordingly. Compared to the default mode it\n   *   intentionally overships some styles in order to reduce the number of CSS requests per\n   *   page. Cost overrides:\n   *     - `requestCost` (bytes, default `100000`) — additional cost charged for every CSS\n   *       request a chunk group makes. Larger values bias the algorithm toward fewer, larger\n   *       shared chunks; smaller values toward more, smaller chunks.\n   *     - `weightDistribution` (default `0.1`) — controls how a chunk's cost is distributed across\n   *       the chunk groups that load it, via a per-group weight of\n   *       `groupSize ^ (-weightDistribution)`. `0` weights every chunk group equally; higher\n   *       values give smaller chunk groups more weight, so small pages ship fewer unrelated\n   *       styles at the expense of more requests overall.\n   */\n  cssChunking?: CssChunkingConfig\n  /**\n   * Controls whether the development server automatically restarts when its\n   * heap usage exceeds the memory threshold. Defaults to `true`.\n   */\n  devMemoryThresholdRestart?: boolean\n  disablePostcssPresetEnv?: boolean\n  cpus?: number\n  memoryBasedWorkersCount?: boolean\n  proxyTimeout?: number\n  isrFlushToDisk?: boolean\n  workerThreads?: boolean\n  // optimizeCss can be boolean or critters' option object\n  // Use Record<string, unknown> as critters doesn't export its Option type\n  // https://github.com/GoogleChromeLabs/critters/blob/a590c05f9197b656d2aeaae9369df2483c26b072/packages/critters/src/index.d.ts\n  optimizeCss?: boolean | Record<string, unknown>\n  nextScriptWorkers?: boolean\n  scrollRestoration?: boolean\n  externalDir?: boolean\n  disableOptimizedLoading?: boolean\n\n  /** @deprecated A no-op as of Next 16, size metrics were removed from the build output. */\n  gzipSize?: boolean\n  craCompat?: boolean\n  esmExternals?: boolean | 'loose'\n  fullySpecified?: boolean\n  urlImports?: NonNullable<webpack.Configuration['experiments']>['buildHttp']\n  swcTraceProfiling?: boolean\n  forceSwcTransforms?: boolean\n\n  swcPlugins?: Array<[string, Record<string, unknown>]>\n\n  /**\n   * Additional options for SWC's preset-env (`env` configuration).\n   * These are merged into the `env` block that Next.js passes to SWC,\n   * alongside the browserslist-derived `targets`.\n   *\n   * See https://swc.rs/docs/configuration/supported-browsers for full details.\n   *\n   * @example\n   * ```js\n   * // next.config.js\n   * module.exports = {\n   *   experimental: {\n   *     swcEnvOptions: {\n   *       mode: 'usage',\n   *       coreJs: '3.38',\n   *     },\n   *   },\n   * }\n   * ```\n   */\n  swcEnvOptions?: {\n    /**\n     * Polyfill injection mode, matching Babel's `useBuiltIns`.\n     * - `'usage'`: Adds specific polyfill imports per file based on actual usage.\n     * - `'entry'`: Replaces a single `import 'core-js'` with only the polyfills\n     *   needed for the target browsers.\n     */\n    mode?: 'usage' | 'entry'\n    /** The core-js version to use (e.g. `'3.38'`). Required when `mode` is set. */\n    coreJs?: string\n    /** Core-js modules or SWC transform passes to skip. */\n    skip?: string[]\n    /** Core-js modules or SWC transform passes to always include. */\n    include?: string[]\n    /** Core-js modules or SWC transform passes to always exclude. */\n    exclude?: string[]\n    /** Enable shipped TC39 proposals. */\n    shippedProposals?: boolean\n    /** Force all transforms regardless of targets. */\n    forceAllTransforms?: boolean\n    /** Enable debug output for preset-env. */\n    debug?: boolean\n    /** Enable loose mode for transforms. */\n    loose?: boolean\n  }\n\n  largePageDataBytes?: number\n  /**\n   * If set to `false`, webpack won't fall back to polyfill Node.js modules in the browser\n   * Full list of old polyfills is accessible here:\n   * [webpack/webpack#ModuleNotoundError.js#L13-L42](https://github.com/webpack/webpack/blob/2a0536cf510768111a3a6dceeb14cb79b9f59273/lib/ModuleNotFoundError.js#L13-L42)\n   */\n  fallbackNodePolyfills?: false\n  sri?: {\n    algorithm?: SubresourceIntegrityAlgorithm\n  }\n\n  webVitalsAttribution?: Array<(typeof WEB_VITALS)[number]>\n\n  /**\n   * Automatically apply the \"modularizeImports\" optimization to imports of the specified packages.\n   */\n  optimizePackageImports?: string[]\n\n  /**\n   * Optimize React APIs for server builds.\n   */\n  optimizeServerReact?: boolean\n\n  /**\n   * Type-checks props and return values of pages.\n   * Requires literal values for segment config (e.g. `export const dynamic = 'force-static' as const`).\n   */\n  strictRouteTypes?: boolean\n\n  /**\n   * Runs the project-local TypeScript CLI instead of using TypeScript's\n   * programmatic API for build-time type checking and config loading.\n   */\n  useTypeScriptCli?: boolean\n\n  /**\n   * Displays an indicator when a React Transition has no other indicator rendered.\n   * This includes displaying an indicator on client-side navigations.\n   */\n  transitionIndicator?: boolean\n\n  /**\n   * Enables experimental gesture transition APIs for optimistic client\n   * navigations. Requires experimental React.\n   */\n  gestureTransition?: boolean\n\n  /**\n   * Controls Turbopack's memory eviction strategy for development sessions\n   *\n   * Only effective in dev sessions where\n   * `experimental.turbopackFileSystemCacheForDev` is enabled (which it is by default).\n   *\n   * - `false`: disable eviction.\n   * - `'full'`: after every snapshot, drop as much memory as possible.\n   * - `'auto'`: evict after a snapshot when we expect to save a lot of memory or the system is under pressure\n   *\n   * Defaults to `'auto'`\n   */\n  turbopackMemoryEviction?: false | 'full' | 'auto'\n\n  /**\n   * Selects the backend used by Turbopack for Node.js evaluation, e.g. webpack\n   * loaders, Babel, or PostCSS.\n   *\n   * This defaults to `'childProcesses'`, which creates a pool of child node.js\n   * processes and communciates with them over sockets.\n   *\n   * `'workerThreads'` runs the same work in worker threads instead, which should\n   * use less memory and CPU. It may become the default in a future version of\n   * Next.js.\n   */\n  turbopackPluginRuntimeStrategy?: 'workerThreads' | 'childProcesses'\n\n  /**\n   * Enable minification. Defaults to true in build mode and false in dev mode.\n   */\n  turbopackMinify?: boolean\n\n  /**\n   * Enable support for `with {type: \"bytes\"}` for ESM imports.\n   */\n  turbopackImportTypeBytes?: boolean\n\n  /**\n   * Enable scope hoisting. Defaults to true in build mode. Always disabled in development mode.\n   */\n  turbopackScopeHoisting?: boolean\n\n  /**\n   * Share the browser runtime across routes in a single `runtime.js` asset and inline the\n   * per-route chunk-group bootstrap into the HTML, dropping the per-route runtime. Defaults to\n   * false. Only applies to production builds; has no effect in development mode.\n   */\n  turbopackSharedRuntime?: boolean\n\n  /**\n   * (`next --turbopack` only) These options change the assumptions Turbopack makes when\n   * making chunk merging decisions and the raw size thresholds it uses.\n   */\n  turbopackChunking?: {\n    /**\n     * This is a number between `0..1`, when higher, we weight the benefits of\n     * merging chunks for a signal page load higher. If you don't know a good\n     * number for this, your bounce rate is a good approximate for this value.\n     */\n    firstPageLoadPriority?: number\n    /**\n     * Regular expressions matching routes that are often the first page\n     * visited and whose client-side bundles should be merged more eagerly to reduce the single-route\n     * request cost (e.g. the homepage). This is at the cost of extra requests on other pages.\n     */\n    priorityRoutes?: RegExp[]\n    /**\n     * How much more eagerly to merge the client-side bundles of\n     * `priorityRoutes` routes, as a multiplier on their single-request probability (default\n     * `1.5`). Higher values merge more aggressively for those routes at the cost of extra requests\n     * elsewhere.\n     */\n    priorityBoost?: number\n    /**\n     * Estimated cost of an additional request, in bytes (uncompressed\n     * and unminfified bytes of code, default is 200 KB), used by the chunker to\n     * trade off request count against preventing double-fetching. Uncompressed and unminfified code\n     * is approximately 5x the size of compressed and minified code.\n     */\n    requestCost?: number\n    /**\n     * Avoid creating more than one chunk smaller than this size, in bytes. Smaller\n     * chunks are merged into bigger ones to avoid that. Defaults to `50000` (50 KB).\n     */\n    minChunkSize?: number\n    /**\n     * Avoid creating more than this number of chunks per chunk group. Chunks are\n     * merged into bigger ones to avoid that. Defaults to `40`.\n     */\n    maxChunkCountPerGroup?: number\n    /**\n     * Never merge chunks bigger than this size, in bytes, with other chunks. This keeps code\n     * in big chunks from being duplicated across multiple chunks. Defaults to `200000` (200 KB).\n     */\n    maxMergeChunkSize?: number\n    /**\n     * Emit each merged production chunk's constituent component chunks alongside it, so the\n     * browser runtime can load only the ones it doesn't already have. Defaults to `false`.\n     */\n    generateComponentChunks?: boolean\n    /**\n     * Minimum size, in bytes, for a component chunk to be emitted on its own when\n     * `generateComponentChunks` is enabled. Component chunks smaller than this are folded into a\n     * single remainder chunk. Defaults to `20000` (20 KB).\n     */\n    minComponentChunkSize?: number\n  }\n\n  /**\n   * (`next --turbopack` only) A custom URL prefix for Web Worker URLs\n   * produced by `new Worker(new URL(..., import.meta.url))` — both the\n   * entrypoint URL and the module chunks loaded inside the worker —\n   * overriding `assetPrefix` for those URLs.\n   *\n   * Use this when `assetPrefix` points to a cross-origin CDN: browsers\n   * reject cross-origin Worker construction, so the entrypoint must stay\n   * same-origin. Module chunks loaded inside the worker are also routed\n   * through this prefix because the worker bootstrap requires them to be\n   * same-origin with the entrypoint. Mirrors webpack's\n   * `output.workerPublicPath`.\n   *\n   * Like `assetPrefix`, the value is a prefix without a trailing slash and\n   * without `/_next` — `/_next/` is appended automatically. An empty\n   * string is treated as a literal empty prefix (resulting in same-origin\n   * `/_next/...` URLs); only `undefined` falls back to `assetPrefix`.\n   *\n   * @example\n   * ```js\n   * // next.config.js\n   * module.exports = {\n   *   assetPrefix: 'https://cdn.example.com',\n   *   experimental: {\n   *     turbopackWorkerAssetPrefix: '',\n   *   },\n   * }\n   * ```\n   */\n  turbopackWorkerAssetPrefix?: string\n\n  /**\n   * Enable nested async chunking for client side assets. Defaults to true in build mode and false in dev mode.\n   * This optimization computes all possible paths through dynamic imports in the applications to figure out the modules needed at dynamic imports for every path.\n   */\n  turbopackClientSideNestedAsyncChunking?: boolean\n\n  /**\n   * Enable nested async chunking for server side assets. Defaults to false in dev and build mode.\n   * This optimization computes all possible paths through dynamic imports in the applications to figure out the modules needed at dynamic imports for every path.\n   */\n  turbopackServerSideNestedAsyncChunking?: boolean\n\n  /**\n   * Enable filesystem cache for the turbopack dev server.\n   *\n   * Defaults to `true`.\n   */\n  turbopackFileSystemCacheForDev?: boolean\n\n  /**\n   * Enable filesystem cache for the turbopack build.\n   *\n   * Defaults to `true`.\n   */\n  turbopackFileSystemCacheForBuild?: boolean\n\n  /**\n   * When running inside a git worktree, warm-start this worktree's Turbopack\n   * filesystem cache by seeding it from the main checkout's cache if the\n   * worktree doesn't have one yet. This is best-effort and never fails a build.\n   *\n   * Defaults to `false`.\n   */\n  turbopackSeedCacheFromWorktree?: boolean\n\n  /**\n   * Enable source maps. Defaults to true.\n   */\n  turbopackSourceMaps?: boolean\n\n  /**\n   * Enable extraction of source maps from input files. Defaults to true.\n   */\n  turbopackInputSourceMaps?: boolean\n\n  /**\n   * Currently in active development. This splits modules into fragments and\n   * chunks only import the used fragments of the modules.\n   */\n  turbopackModuleFragments?: boolean\n\n  /**\n   * Enable removing unused imports for turbopack dev server and build.\n   */\n  turbopackRemoveUnusedImports?: boolean\n\n  /**\n   * Enable removing unused exports for turbopack dev server and build.\n   */\n  turbopackRemoveUnusedExports?: boolean\n\n  /**\n   * Enable local analysis to infer side effect free modules. When enabled, Turbopack will\n   * analyze module code to determine if it has side effects. This can improve tree shaking\n   * and bundle size at the cost of some additional analysis.\n   *\n   * Defaults to `true`\n   */\n  turbopackInferModuleSideEffects?: boolean\n\n  /**\n   * Enable tree shaking of unused exports from analyzable CommonJS modules in Turbopack.\n   *\n   * Defaults to `false`\n   */\n  turbopackCjsTreeShaking?: boolean\n\n  /**\n   * Set this to `false` to disable the automatic configuration of the babel loader when a Babel\n   * configuration file is present. This option is enabled by default.\n   *\n   * If this is set to `false`, but `reactCompiler` is `true`, the built-in Babel will\n   * still be configured, but any Babel configuration files on disk will be ignored. If you wish to\n   * use React Compiler with a different manually-configured `babel-loader`, you should disable both\n   * this and `reactCompiler`.\n   */\n  turbopackUseBuiltinBabel?: boolean\n\n  /**\n   * Set this to `false` to disable the automatic configuration of the sass loader. The sass loader\n   * configuration is enabled by default.\n   */\n  turbopackUseBuiltinSass?: boolean\n\n  /**\n   * Enable per-directory PostCSS config resolution for Turbopack. When enabled,\n   * Turbopack searches for `postcss.config.js` starting from the CSS file's\n   * parent directory first, then falls back to the project root. When disabled\n   * (default), the project root is checked first, with the CSS file's directory\n   * as a fallback.\n   */\n  turbopackLocalPostcssConfig?: boolean\n\n  /**\n   * The module ID strategy to use for Turbopack.\n   * If not set, the default is `'named'` for development and `'deterministic'`\n   * for production.\n   */\n  turbopackModuleIds?: 'named' | 'deterministic'\n\n  /**\n   * Enable server-side Fast Refresh (Hot Module Replacement) during development\n   * with Turbopack. When set to `false`, server-side HMR is disabled and a full\n   * restart is performed on server file changes.\n   *\n   * Can also be controlled via the `--no-server-fast-refresh` CLI flag.\n   * If both are set, the CLI flag takes precedence.\n   *\n   * @default true\n   */\n  turbopackServerFastRefresh?: boolean\n\n  /**\n   * For use with `@next/mdx`. Compile MDX files using the new Rust compiler.\n   * @see https://nextjs.org/docs/app/api-reference/next-config-js/mdxRs\n   */\n  mdxRs?:\n    | boolean\n    | {\n        development?: boolean\n        jsx?: boolean\n        jsxRuntime?: string\n        jsxImportSource?: string\n        providerImportSource?: string\n        mdxType?: 'gfm' | 'commonmark'\n      }\n\n  /**\n   * Enable type checking for Link and Router.push, etc.\n   * @deprecated Use `typedRoutes` instead — this feature is now stable.\n   * @see https://nextjs.org/docs/app/api-reference/config/typescript#statically-typed-links\n   */\n  typedRoutes?: boolean\n\n  /**\n   * Enable type-checking and autocompletion for environment variables.\n   *\n   * @default false\n   */\n  typedEnv?: boolean\n\n  /**\n   * Runs the compilations for server and edge in parallel instead of in serial.\n   * This will make builds faster if there is enough server and edge functions\n   * in the application at the cost of more memory.\n   *\n   * NOTE: This option is only valid when the build process can use workers. See\n   * the documentation for `webpackBuildWorker` for more details.\n   */\n  parallelServerCompiles?: boolean\n\n  /**\n   * Runs the logic to collect build traces for the server routes in parallel\n   * with other work during the compilation. This will increase the speed of\n   * the build at the cost of more memory. This option may incur some additional\n   * work compared to if the option was disabled since the work is started\n   * before data from the client compilation is available to potentially reduce\n   * the amount of code that needs to be traced. Despite that, this may still\n   * result in faster builds for some applications.\n   *\n   * Valid values are:\n   * - `true`: Collect the server build traces in parallel.\n   * - `false`: Do not collect the server build traces in parallel.\n   * - `undefined`: Collect server build traces in parallel only in the `experimental-compile` mode.\n   *\n   * NOTE: This option is only valid when the build process can use workers. See\n   * the documentation for `webpackBuildWorker` for more details.\n   */\n  parallelServerBuildTraces?: boolean\n\n  /**\n   * Run the Webpack build in a separate process to optimize memory usage during build.\n   * Valid values are:\n   * - `false`: Disable the Webpack build worker\n   * - `true`: Enable the Webpack build worker\n   * - `undefined`: Enable the Webpack build worker only if the webpack config is not customized\n   */\n  webpackBuildWorker?: boolean\n\n  /**\n   * Enables optimizations to reduce memory usage in Webpack. This reduces the max size of the heap\n   * but may increase compile times slightly.\n   * Valid values are:\n   * - `false`: Disable Webpack memory optimizations (default).\n   * - `true`: Enables Webpack memory optimizations.\n   */\n  webpackMemoryOptimizations?: boolean\n\n  /**\n   * The array of the meta tags to the client injected by tracing propagation data.\n   */\n  clientTraceMetadata?: string[]\n\n  /**\n   * @deprecated This configuration option has been merged into `cacheComponents`.\n   * The Partial Prerendering feature is still available via `cacheComponents`.\n   */\n  ppr?: ExperimentalPPRConfig\n\n  /**\n   * Enables experimental taint APIs in React.\n   * Using this feature will enable the `react@experimental` for the `app` directory.\n   */\n  taint?: boolean\n\n  /**\n   * Enables blocking server-side rendering for the `app` directory: React emits\n   * a `<link rel=\"expect\">` tag that holds the browser's first paint until the\n   * streamed shell is coherent, avoiding the layout shift / flicker that can\n   * occur while a partially-streamed HTML document is painted. Note that\n   * `rel=\"expect\"` is currently only implemented by Chromium-based browsers.\n   *\n   * This feature is currently only available in React's experimental release\n   * channel, so enabling it opts the `app` directory into `react@experimental`\n   * (the same channel used by `taint`, `transitionIndicator`, and\n   * `gestureTransition`). The name mirrors React's underlying feature flag.\n   *\n   * This is an opt-in only. Setting it to `false` does not disable the\n   * experimental channel when another feature (such as `taint`,\n   * `transitionIndicator`, or `gestureTransition`) requires it.\n   */\n  blockingSSR?: boolean\n\n  /**\n   * Uninstalls all \"unhandledRejection\" and \"uncaughtException\" listeners from\n   * the global process so that we can override the behavior, which in some\n   * runtimes is to exit the process.\n   *\n   * This is experimental until we've considered the impact in various\n   * deployment environments.\n   */\n  removeUncaughtErrorAndRejectionListeners?: boolean\n\n  /**\n   * During an RSC request, validates that the request headers match the\n   * cache-busting search parameter sent by the client.\n   */\n  validateRSCRequestHeaders?: boolean\n\n  serverActions?: {\n    /**\n     * Allows adjusting body parser size limit for server actions.\n     */\n    bodySizeLimit?: SizeLimit\n\n    /**\n     * Allowed origins that can bypass Server Action's CSRF check. This is helpful\n     * when you have reverse proxy in front of your app.\n     * @example\n     * [\"my-app.com\", \"*.my-app.com\"]\n     */\n    allowedOrigins?: string[]\n  }\n\n  /**\n   * Allows adjusting the maximum size of the postponed state body for PPR\n   * resume requests. This includes the Resume Data Cache (RDC) which may grow\n   * large for some applications.\n   * @default '100 MB'\n   */\n  maxPostponedStateSize?: SizeLimit\n\n  /**\n   * enables the minification of server code.\n   */\n  serverMinification?: boolean\n\n  /**\n   * Enables source maps generation for the server production bundle.\n   */\n  serverSourceMaps?: boolean\n\n  /**\n   * @internal Used by the Next.js internals only.\n   */\n  trustHostHeader?: boolean\n  /**\n   * @internal Used by the Next.js internals only.\n   */\n  isExperimentalCompile?: boolean\n\n  useWasmBinary?: boolean\n\n  /**\n   * Use lightningcss instead of postcss-loader\n   */\n  useLightningcss?: boolean\n\n  /**\n   * Configure which CSS features lightningcss should always transpile\n   * (include) or never transpile (exclude), regardless of browser targets.\n   * Requires `useLightningcss: true`.\n   */\n  lightningCssFeatures?: LightningCssFeatures\n\n  /**\n   * Enables `fetch` requests to be proxied to the experimental test proxy server\n   */\n  testProxy?: boolean\n\n  /**\n   * Set a default test runner to be used by `next experimental-test`.\n   */\n  defaultTestRunner?: SupportedTestRunners\n  /**\n   * Allow NODE_ENV=development even for `next build`.\n   */\n  allowDevelopmentBuild?: true\n  /**\n   * @deprecated use `config.bundlePagesRouterDependencies` instead\n   *\n   */\n  bundlePagesExternals?: boolean\n  /**\n   * @deprecated use `config.serverExternalPackages` instead\n   *\n   */\n  serverComponentsExternalPackages?: string[]\n\n  /**\n   * When enabled, in dev mode, Next.js will send React's debug info through the\n   * WebSocket connection, instead of including it in the main RSC payload.\n   */\n  reactDebugChannel?: boolean\n\n  /**\n   * @deprecated use top-level `cacheComponents` instead\n   */\n  cacheComponents?: boolean\n\n  /**\n   * Configuration for instant navigation validation.\n   */\n  instantInsights?: {\n    /**\n     * Controls the validation behavior of Instant Insights\n     *\n     * - `'warning'` (default): Validates all navigations for Instant UI in development\n     * - `'manual-warning'`: Validates navigations for Instant UI in development only when configured with `instant` in Pages and Layouts\n     * - `'experimental-error'`: Validates all navigations for Instant in development and build. Use with caution.\n     * - `'experimental-manual-error'`: Validates navigations for Instant UI in development and build when configured with `instant` in Pages and Layouts. Use with caution.\n     */\n    validationLevel?: ValidationLevel\n  }\n\n  /**\n   * Runs development Cache Components validation on a worker thread rather than\n   * the main thread, keeping the dev server's event loop responsive during\n   * rapid navigation. This covers static-shell validation (which runs on\n   * initial load and HMR refresh) as well as instant-navigation validation\n   * (when `instant` is configured). Enabled by default; set to `false` to run\n   * validation in-process, as an escape hatch to isolate a problem or fall back\n   * if the worker misbehaves.\n   *\n   * Has no effect with Webpack, where validation always runs in process. The\n   * worker's thread cannot reach Webpack's dev source maps, so validation\n   * errors would be reported without a source location.\n   */\n  devValidationWorker?: boolean\n\n  /**\n   * The number of times to retry static generation (per page) before giving up.\n   */\n  staticGenerationRetryCount?: number\n\n  /**\n   * The amount of pages to export per worker during static generation.\n   */\n  staticGenerationMaxConcurrency?: number\n\n  /**\n   * The minimum number of pages to be chunked into each export worker.\n   */\n  staticGenerationMinPagesPerWorker?: number\n\n  /**\n   * Allows previously fetched data to be re-used when editing server components.\n   */\n  serverComponentsHmrCache?: boolean\n\n  /**\n   * Cancels the render and validation work for a Server Components HMR refresh\n   * once a newer refresh supersedes it. Development only.\n   */\n  serverComponentsHmrCancellation?: boolean\n\n  /**\n   * Render <style> tags inline in the HTML for imported CSS assets.\n   * Supports app-router in production mode only.\n   */\n  inlineCss?: boolean\n\n  // TODO: Remove this config when the API is stable.\n  /**\n   * This config allows you to enable the experimental navigation API `forbidden` and `unauthorized`.\n   */\n  authInterrupts?: boolean\n\n  /**\n   * Seconds before a `'use cache'` fill is considered stalled. Defaults to\n   * 90% of `staticPageGenerationTimeout`. In prerender it's clamped to that\n   * ceiling so errors surface before the build worker kills the page.\n   */\n  useCacheTimeout?: number\n\n  /**\n   * Enables the use of the `\"use cache\"` directive.\n   * @deprecated use top-level `cacheComponents` instead\n   */\n  useCache?: boolean\n\n  /**\n   * Enables durable `\"use cache\"` remote cache entries across deployments. Only implemented for\n   * Turbopack.\n   */\n  durableUseCacheEntries?: boolean\n\n  /**\n   * Enables detection and reporting of slow modules during development builds.\n   * Enabling this may impact build performance to ensure accurate measurements.\n   */\n  slowModuleDetection?: {\n    /**\n     * The time threshold in milliseconds for identifying slow modules.\n     * Modules taking longer than this build time threshold will be reported.\n     */\n    buildTimeThresholdMs: number\n  }\n\n  /**\n   * Enables using the global-not-found.js file in the app directory\n   *\n   */\n  globalNotFound?: boolean\n\n  /**\n   * @experimental Use the Rust port of the React compiler (Turbopack only).\n   * Requires `reactCompiler` to be enabled.\n   */\n  turbopackRustReactCompiler?: boolean\n\n  /**\n   * Enable debug information to be forwarded from browser to dev server stdout/stderr.\n   *\n   * - `'warn'` (default): Forward warnings and errors to terminal\n   * - `'error'`: Forward only errors to terminal\n   * - `'verbose'`: Forward all browser console output to terminal\n   * - `true`: Same as 'verbose' - forward all browser console output to terminal\n   * - `false`: Disable browser log forwarding to terminal\n   * - Object: Enable with custom configuration\n   *\n   * @deprecated Use `logging.browserToTerminal` instead.\n   */\n  browserDebugInfoInTerminal?:\n    | boolean\n    | 'error'\n    | 'warn'\n    | 'verbose'\n    | {\n        /**\n         * Minimum log level to show in terminal.\n         * @default 'verbose' (for object config, to preserve backward compatibility)\n         */\n        level?: 'error' | 'warn' | 'verbose'\n\n        /**\n         * Option to limit stringification at a specific nesting depth when logging circular objects.\n         * @default 5\n         */\n        depthLimit?: number\n\n        /**\n         * Maximum number of properties/elements to stringify when logging objects/arrays with circular references.\n         * @default 100\n         */\n        edgeLimit?: number\n        /**\n         * Whether to include source location information in debug output when available\n         */\n        showSourceLocation?: boolean\n      }\n\n  /**\n   * Body size limit for request bodies with middleware configured.\n   * Defaults to 10MB. Can be specified as a number (bytes) or string (e.g. '5mb').\n   *\n   * @deprecated Use `proxyClientMaxBodySize` instead.\n   */\n  middlewareClientMaxBodySize?: SizeLimit\n\n  /**\n   * Body size limit for request bodies with proxy configured.\n   * Defaults to 10MB. Can be specified as a number (bytes) or string (e.g. '5mb').\n   */\n  proxyClientMaxBodySize?: SizeLimit\n\n  /**\n   * Enable the Model Context Protocol (MCP) server for AI-assisted development.\n   * When enabled, Next.js will expose an MCP server at `/_next/mcp` that provides\n   * code intelligence and project context to AI assistants.\n   *\n   * @default true\n   */\n  mcpServer?: boolean\n\n  /**\n   * Acquires a lockfile at `<distDir>/lock` when starting `next dev` or `next\n   * build`. Failing to acquire the lock causes the process to exit with an\n   * error message.\n   *\n   * This is because if multiple processes write to the same `distDir` at the\n   * same time, it can mangle the state of the directory. Disabling this option\n   * is not recommended.\n   *\n   * @default true\n   */\n  lockDistDir?: boolean\n\n  /**\n   * Hide logs that occur after a render has already aborted.\n   * This can help reduce noise in the console when dealing with aborted renders.\n   *\n   * @default false\n   */\n  hideLogsAfterAbort?: boolean\n\n  /**\n   * Whether `process.env.NEXT_DEPLOYMENT_ID` is available at runtime in the server (and `next\n   * build` doesn't need to embed the deployment ID value into the build output).\n   *\n   * @default false\n   */\n  runtimeServerDeploymentId?: boolean\n\n  /**\n   * @deprecated Use the top-level `supportsImmutableAssets` option instead.\n   */\n  supportsImmutableAssets?: boolean\n\n  /**\n   * An array of paths in app or pages directories that should wait to be processed\n   * until all other entries have been processed. This is useful for deferring\n   * compilation of certain routes during development and build.\n   */\n  deferredEntries?: string[]\n\n  /**\n   * An async function that is called and awaited before processing deferred entries.\n   * This callback runs after all non-deferred entries have been compiled.\n   */\n  onBeforeDeferredEntries?: () => Promise<void>\n\n  /**\n   * Whether to report inlined system environment variables as warnings or errors.\n   * Only supported for Turbopack.\n   */\n  reportSystemEnvInlining?: 'error' | 'warn'\n}\n\nexport type ExportPathMap = {\n  [path: string]: {\n    page: string\n    query?: NextParsedUrlQuery\n\n    /**\n     * When true, this indicates that this is a pages router page that should\n     * be rendered as a fallback.\n     *\n     * @internal\n     */\n    _pagesFallback?: boolean\n\n    /**\n     * The locale that this page should be rendered in.\n     *\n     * @internal\n     */\n    _locale?: string\n\n    /**\n     * The path that was used to generate the page.\n     *\n     * @internal\n     */\n    _ssgPath?: string\n\n    /**\n     * The parameters that are currently unknown.\n     *\n     * @internal\n     */\n    _fallbackRouteParams?: readonly FallbackRouteParam[]\n\n    /**\n     * @internal\n     */\n    _isAppDir?: boolean\n\n    /**\n     * @internal\n     */\n    _isDynamicError?: boolean\n\n    /**\n     * @internal\n     */\n    _isRoutePPREnabled?: boolean\n\n    /**\n     * When true, the page is prerendered as a fallback shell, while allowing\n     * any dynamic accesses to result in an empty shell. This is the case when\n     * the app has `experimental.ppr` and `cacheComponents` enabled, and\n     * there are also routes prerendered with a more complete set of params.\n     * Prerendering those routes would catch any invalid dynamic accesses.\n     *\n     * @internal\n     */\n    _allowEmptyStaticShell?: boolean\n\n    /**\n     * When true, run build-time instant validation for this export path.\n     * Only set on the first export entry per page, since validation uses\n     * instant.unstable_samples (not actual params from generateStaticParams),\n     * so the result is the same for all param combinations.\n     *\n     * @internal\n     */\n    _runInstantValidation?: boolean\n\n    /**\n     * When true, a fallback shell produced for this export path could later be\n     * upgraded to a concrete version (at least one fallback param is a\n     * `generateStaticParams` candidate). Threaded into\n     * `renderOpts.isFallbackUpgradeable` so the build-baked shell carries the\n     * gated `isUpgradeableISRFallback` value.\n     *\n     * @internal\n     */\n    _isFallbackUpgradeable?: boolean\n  }\n}\n\n/**\n * Next.js can be configured through a `next.config.js` file in the root of your project directory.\n *\n * This can change the behavior, enable experimental features, and configure other advanced options.\n *\n * Read more: [Next.js Docs: `next.config.js`](https://nextjs.org/docs/app/api-reference/config/next-config-js)\n */\n\nexport type ValidationLevel =\n  | 'warning'\n  | 'manual-warning'\n  | 'experimental-error'\n  | 'experimental-manual-error'\n\nexport interface NextConfig {\n  allowedDevOrigins?: string[]\n\n  exportPathMap?: (\n    defaultMap: ExportPathMap,\n    ctx: {\n      dev: boolean\n      dir: string\n      outDir: string | null\n      distDir: string\n      buildId: string\n    }\n  ) => Promise<ExportPathMap> | ExportPathMap\n\n  /**\n   * Internationalization configuration\n   *\n   * @see [Internationalization docs](https://nextjs.org/docs/advanced-features/i18n-routing)\n   */\n  i18n?: I18NConfig | null\n\n  /**\n   * @see [Next.js TypeScript documentation](https://nextjs.org/docs/app/api-reference/config/typescript)\n   */\n  typescript?: TypeScriptConfig\n\n  /**\n   * Enable type checking for Link and Router.push, etc.\n   * This feature requires TypeScript in your project.\n   *\n   * @see [Typed Links documentation](https://nextjs.org/docs/app/api-reference/config/typescript#statically-typed-links)\n   */\n  typedRoutes?: boolean\n\n  /**\n   * Headers allow you to set custom HTTP headers for an incoming request path.\n   *\n   * @see [Headers configuration documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/headers)\n   */\n  headers?: () => Promise<Header[]> | Header[]\n\n  /**\n   * Rewrites allow you to map an incoming request path to a different destination path.\n   *\n   * @see [Rewrites configuration documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/rewrites)\n   */\n  rewrites?: () =>\n    | Promise<\n        | Rewrite[]\n        | {\n            beforeFiles?: Rewrite[]\n            afterFiles?: Rewrite[]\n            fallback?: Rewrite[]\n          }\n      >\n    | Rewrite[]\n    | {\n        beforeFiles?: Rewrite[]\n        afterFiles?: Rewrite[]\n        fallback?: Rewrite[]\n      }\n\n  /**\n   * Redirects allow you to redirect an incoming request path to a different destination path.\n   *\n   * @see [Redirects configuration documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/redirects)\n   */\n  redirects?: () => Promise<Redirect[]> | Redirect[]\n\n  /**\n   * @see [Moment.js locales excluded by default](https://nextjs.org/docs/upgrading#momentjs-locales-excluded-by-default)\n   */\n  excludeDefaultMomentLocales?: boolean\n\n  /**\n   * Before continuing to add custom webpack configuration to your application make sure Next.js doesn't already support your use-case\n   *\n   * @see [Custom Webpack Config documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/webpack)\n   */\n  webpack?: NextJsWebpackConfig | null\n\n  /**\n   * By default Next.js will redirect urls with trailing slashes to their counterpart without a trailing slash.\n   *\n   * @default false\n   * @see [Trailing Slash Configuration](https://nextjs.org/docs/app/api-reference/config/next-config-js/trailingSlash)\n   */\n  trailingSlash?: boolean\n\n  /**\n   * Next.js comes with built-in support for environment variables\n   *\n   * @see [Environment Variables documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/env)\n   */\n  env?: Record<string, string | undefined>\n\n  /**\n   * Destination directory (defaults to `.next`)\n   */\n  distDir?: string\n\n  /**\n   * The build output directory (defaults to `.next`) is now cleared by default except for the Next.js caches.\n   */\n  cleanDistDir?: boolean\n\n  /**\n   * To set up a CDN, you can set up an asset prefix and configure your CDN's origin to resolve to the domain that Next.js is hosted on.\n   *\n   * @see [CDN Support with Asset Prefix](https://nextjs.org/docs/app/api-reference/config/next-config-js/assetPrefix)\n   */\n  assetPrefix?: string\n\n  /**\n   * The default cache handler for the Pages and App Router uses the filesystem cache. This requires no configuration, however, you can customize the cache handler if you prefer.\n   *\n   * @see [Configuring Caching](https://nextjs.org/docs/app/building-your-application/deploying#configuring-caching) and the [API Reference](https://nextjs.org/docs/app/api-reference/next-config-js/incrementalCacheHandlerPath).\n   */\n  cacheHandler?: string | undefined\n\n  /**\n   * Path to a custom adapter module for deployment platform integration.\n   * Can also be set via the `NEXT_ADAPTER_PATH` environment variable.\n   */\n  adapterPath?: string\n\n  cacheHandlers?: {\n    default?: string\n    remote?: string\n    static?: string\n    [handlerName: string]: string | undefined\n  }\n\n  /**\n   * Configure the in-memory cache size in bytes. Defaults to 50 MB.\n   * If `cacheMaxMemorySize: 0`, this disables in-memory caching entirely.\n   *\n   * @see [Configuring Caching](https://nextjs.org/docs/app/building-your-application/deploying#configuring-caching).\n   */\n  cacheMaxMemorySize?: number\n\n  /**\n   * By default, `Next` will serve each file in the `pages` folder under a pathname matching the filename.\n   * To disable this behavior and prevent routing based set this to `true`.\n   *\n   * @default true\n   * @see [Disabling file-system routing](https://nextjs.org/docs/advanced-features/custom-server#disabling-file-system-routing)\n   */\n  useFileSystemPublicRoutes?: boolean\n\n  /**\n   * @see [Configuring the build ID](https://nextjs.org/docs/app/api-reference/config/next-config-js/generateBuildId)\n   */\n  generateBuildId?: () => string | null | Promise<string | null>\n\n  /** @see [Disabling ETag Configuration](https://nextjs.org/docs/app/api-reference/config/next-config-js/generateEtags) */\n  generateEtags?: boolean\n\n  /** @see [Including non-page files in the pages directory](https://nextjs.org/docs/app/api-reference/config/next-config-js/pageExtensions) */\n  pageExtensions?: string[]\n\n  /**\n   * Module specifiers that are required for side effects on the client before\n   * hydration, in array order, ahead of the user's `instrumentation-client.{ts,js}`.\n   * Each entry may be a bare npm package name or a path relative to the project root.\n   */\n  instrumentationClientInject?: string[]\n\n  /** @see [Compression documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/compress) */\n  compress?: boolean\n\n  /** @see [Disabling x-powered-by](https://nextjs.org/docs/app/api-reference/config/next-config-js/poweredByHeader) */\n  poweredByHeader?: boolean\n\n  /** @see [Using the Image Component](https://nextjs.org/docs/app/api-reference/next-config-js/images) */\n  images?: ImageConfig\n\n  /** Configure indicators in development environment */\n  devIndicators?:\n    | false\n    | {\n        /**\n         * Position of the development tools indicator in the browser window.\n         * @default \"bottom-left\"\n         * */\n        position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n      }\n\n  /**\n   * Next.js exposes some options that give you some control over how the server will dispose or keep in memory built pages in development.\n   *\n   * @see [Configuring `onDemandEntries`](https://nextjs.org/docs/app/api-reference/config/next-config-js/onDemandEntries)\n   */\n  onDemandEntries?: {\n    /** period (in ms) where the server will keep pages in the buffer */\n    maxInactiveAge?: number\n    /** number of pages that should be kept simultaneously without being disposed */\n    pagesBufferLength?: number\n  }\n\n  /**\n   * A unique identifier for a deployment that will be included in each request's query string or header.\n   */\n  deploymentId?: string\n\n  /**\n   * Whether the deployment environment supports immutable assets (assets deployed to\n   * `_next/static/immutable` don't need a `?dpl` parameter and can be safely requested across\n   * deployments.)\n   */\n  supportsImmutableAssets?: boolean\n\n  /**\n   * Deploy a Next.js application under a sub-path of a domain\n   *\n   * @see [Base path configuration](https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath)\n   */\n  basePath?: string\n\n  /** @see [Customizing sass options](https://nextjs.org/docs/app/api-reference/next-config-js/sassOptions) */\n  sassOptions?: {\n    implementation?: string\n    [key: string]: any\n  }\n\n  /**\n   * Enable browser source map generation during the production build\n   *\n   * @see [Source Maps](https://nextjs.org/docs/advanced-features/source-maps)\n   */\n  productionBrowserSourceMaps?: boolean\n\n  /**\n   * Enable {@link https://nextjs.org/docs/app/api-reference/config/next-config-js/reactCompiler React Compiler in Next.js}.\n   * Configuration accepts partial config object of the Compiler.\n   * If provided, the Compiler will be enabled.\n   */\n  reactCompiler?: boolean | ReactCompilerOptions\n\n  /**\n   * Enable react profiling in production\n   *\n   */\n  reactProductionProfiling?: boolean\n\n  /**\n   * The Next.js runtime is Strict Mode-compliant.\n   *\n   * @see [React Strict Mode](https://nextjs.org/docs/app/api-reference/config/next-config-js/reactStrictMode)\n   */\n  reactStrictMode?: boolean | null\n\n  /**\n   * The maximum length of the headers that are emitted by React and added to\n   * the response.\n   *\n   * @see [React Max Headers Length](https://nextjs.org/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength)\n   */\n  reactMaxHeadersLength?: number\n\n  /**\n   * Next.js enables HTTP Keep-Alive by default.\n   * You may want to disable HTTP Keep-Alive for certain `fetch()` calls or globally.\n   *\n   * @see [Disabling HTTP Keep-Alive](https://nextjs.org/docs/app/api-reference/next-config-js/httpAgentOptions)\n   */\n  httpAgentOptions?: { keepAlive?: boolean }\n\n  /**\n   * Timeout after waiting to generate static pages in seconds\n   *\n   * @default 60\n   */\n  staticPageGenerationTimeout?: number\n\n  /**\n   * Add `\"crossorigin\"` attribute to generated `<script>` elements generated by `<Head />` or `<NextScript />` components\n   *\n   *\n   * @see [`crossorigin` attribute documentation](https://developer.mozilla.org/docs/Web/HTML/Attributes/crossorigin)\n   */\n  crossOrigin?: 'anonymous' | 'use-credentials'\n\n  /**\n   * Optionally enable compiler transforms\n   *\n   * @see [Supported Compiler Options](https://nextjs.org/docs/advanced-features/compiler#supported-features)\n   */\n  compiler?: {\n    reactRemoveProperties?:\n      | boolean\n      | {\n          properties?: string[]\n        }\n    relay?: {\n      src: string\n      artifactDirectory?: string\n      language?: 'typescript' | 'javascript' | 'flow'\n      eagerEsModules?: boolean\n    }\n    removeConsole?:\n      | boolean\n      | {\n          exclude?: string[]\n        }\n    styledComponents?: boolean | StyledComponentsConfig\n    emotion?: boolean | EmotionConfig\n\n    styledJsx?:\n      | boolean\n      | {\n          useLightningcss?: boolean\n        }\n\n    /**\n     * Replaces variables in your code during compile time. Each key will be\n     * replaced with the respective values.\n     */\n    define?: Record<string, string | number | boolean>\n\n    /**\n     * Replaces server-only (Node.js and Edge) variables in your code during compile time.\n     * Each key will be replaced with the respective values.\n     */\n    defineServer?: Record<string, string | number | boolean>\n\n    /**\n     * A hook function that executes after production build compilation finishes,\n     * but before running post-compilation tasks such as type checking and\n     * static page generation.\n     */\n    runAfterProductionCompile?: (metadata: {\n      /**\n       * The root directory of the project\n       */\n      projectDir: string\n      /**\n       * The build output directory (defaults to `.next`)\n       */\n      distDir: string\n    }) => Promise<void>\n  }\n\n  /**\n   * The type of build output.\n   * - `undefined`: The default build output, `.next` directory, that works with production mode `next start` or a hosting provider like Vercel\n   * - `'standalone'`: A standalone build output, `.next/standalone` directory, that only includes necessary files/dependencies. Useful for self-hosting in a Docker container.\n   * - `'export'`: An exported build output, `out` directory, that only includes static HTML/CSS/JS. Useful for self-hosting without a Node.js server.\n   * @see [Output File Tracing](https://nextjs.org/docs/advanced-features/output-file-tracing)\n   * @see [Static HTML Export](https://nextjs.org/docs/advanced-features/static-html-export)\n   */\n  output?: 'standalone' | 'export'\n\n  /**\n   * Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`). This replaces the\n   * `next-transpile-modules` package.\n   * @see [transpilePackages](https://nextjs.org/docs/advanced-features/compiler#module-transpilation)\n   */\n  transpilePackages?: string[]\n\n  /**\n   * Options for Turbopack. Temporarily also available as `experimental.turbo` for compatibility.\n   */\n  turbopack?: TurbopackOptions\n\n  /**\n   * @deprecated Use `skipProxyUrlNormalize` instead.\n   */\n  skipMiddlewareUrlNormalize?: boolean\n\n  skipProxyUrlNormalize?: boolean\n\n  skipTrailingSlashRedirect?: boolean\n\n  modularizeImports?: Record<\n    string,\n    {\n      transform: string | Record<string, string>\n      preventFullImport?: boolean\n      skipDefaultConversion?: boolean\n    }\n  >\n\n  /**\n   * Logging configuration. Set to `false` to disable logging.\n   */\n  logging?: LoggingConfig | false\n\n  /**\n   * Enables source maps while generating static pages.\n   * Helps with errors during the prerender phase in `next build`.\n   * Defaults to `true`. Set to `false` to disable.\n   */\n  enablePrerenderSourceMaps?: boolean\n\n  /**\n   * When enabled, routes can combine a prerendered shell with dynamic content\n   * streamed into it, rather than being either fully static or fully dynamic. You can mark data and parts of your UI as cacheable using the\n   * `use cache` directive, which includes them in the pre-render pass alongside\n   * static parts of the page. Also enables `cacheLife` and `cacheTag` APIs, and\n   * includes Partial Prerendering support.\n   *\n   * @see [Cache Components documentation](https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents)\n   */\n  cacheComponents?: boolean\n\n  /**\n   * Opts the whole app into Partial Prefetching: `<Link prefetch={true}>`\n   * prefetches only the static parts of a route, never its dynamic data.\n   * When `true`, the default segment-level `prefetch` becomes\n   * `'partial'`; per-segment `prefetch` exports still win. Requires\n   * `cacheComponents: true`.\n   *\n   * When `false` or omitted, this does nothing (the legacy behavior, where\n   * dynamic data is included in the prefetch).\n   *\n   * `'unstable_eager'` is like `true`, except the default becomes\n   * `'unstable_eager'` instead of `'partial'`: every Link has an implied\n   * prefetch={true}. Internal migration aid; not part of the public API.\n   */\n  partialPrefetching?: boolean | 'unstable_eager'\n\n  cacheLife?: {\n    [profile: string]: {\n      // How long the client can cache a value without checking with the server.\n      stale?: number\n      // How frequently you want the cache to refresh on the server.\n      // Stale values may be served while revalidating.\n      revalidate?: number\n      // In the worst case scenario, where you haven't had traffic in a while,\n      // how stale can a value be until you prefer deopting to dynamic.\n      // Must be longer than revalidate.\n      expire?: number\n    }\n  }\n\n  /**\n   * period (in seconds) where the server allow to serve stale cache\n   */\n  expireTime?: number\n\n  /**\n   * When `next dev` detects an AI coding agent and no managed\n   * agent-rules block is present, Next.js auto-generates `AGENTS.md`\n   * and `CLAUDE.md` at the project root so the agent reads\n   * version-matched docs from `node_modules/next/dist/docs/` instead\n   * of stale training data. Set to `false` to disable this behavior.\n   *\n   * @default true\n   */\n  agentRules?: boolean\n\n  /**\n   * Enable experimental features. Note that all experimental features are subject to breaking changes in the future.\n   */\n  experimental?: ExperimentalConfig\n\n  /**\n   * Enables the bundling of node_modules packages (externals) for pages server-side bundles.\n   * @see https://nextjs.org/docs/pages/api-reference/next-config-js/bundlePagesRouterDependencies\n   */\n  bundlePagesRouterDependencies?: boolean\n\n  /**\n   * A list of packages that should be treated as external in the server build.\n   * @see https://nextjs.org/docs/app/api-reference/next-config-js/serverExternalPackages\n   */\n  serverExternalPackages?: string[]\n\n  /**\n   * This is the repo root usually and only files above this\n   * directory are traced and included.\n   */\n  outputFileTracingRoot?: string\n\n  /**\n   * This allows manually excluding traced files if too many\n   * are included incorrectly on a per-page basis.\n   */\n  outputFileTracingExcludes?: Record<string, string[]>\n\n  /**\n   * This allows manually including traced files if some\n   * were not detected on a per-page basis.\n   */\n  outputFileTracingIncludes?: Record<string, string[]>\n\n  /**\n   * A string that is incorporated into content-addressed output filenames\n   * (chunks, assets) for both Webpack and Turbopack. Changing this value\n   * forces all output hashes to change, which is useful for invalidating\n   * cached assets across deployments without modifying source files.\n   *\n   * When `NEXT_HASH_SALT` environment variable is also set, the two values are\n   * concatenated (`outputHashSalt + NEXT_HASH_SALT`) to form the effective salt.\n   */\n  outputHashSalt?: string\n\n  watchOptions?: {\n    pollIntervalMs?: number\n  }\n\n  /**\n   * User Agent of bots that can handle streaming metadata.\n   * Besides the default behavior, Next.js act differently on serving metadata to bots based on their capability.\n   *\n   * @default\n   * /Mediapartners-Google|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview/i\n   */\n  htmlLimitedBots?: RegExp\n\n  /**\n   * @internal\n   */\n  configFile?: string | undefined\n\n  /**\n   * @internal\n   */\n  configOrigin?: string | undefined\n\n  /**\n   * @internal\n   */\n  _originalRedirects?: any\n\n  /**\n   * @internal\n   */\n  _originalRewrites?: any\n}\n\nexport const defaultConfig = Object.freeze({\n  env: {},\n  webpack: null,\n  typescript: {\n    ignoreBuildErrors: false,\n    tsconfigPath: undefined,\n  },\n  typedRoutes: false,\n  distDir: '.next',\n  cleanDistDir: true,\n  assetPrefix: '',\n  cacheHandler: process.env.NEXT_CACHE_HANDLER_PATH,\n  // default to 50MB limit\n  cacheMaxMemorySize: 50 * 1024 * 1024,\n  configOrigin: 'default',\n  useFileSystemPublicRoutes: true,\n  generateBuildId: () => null,\n  generateEtags: true,\n  pageExtensions: ['tsx', 'ts', 'jsx', 'js'],\n  instrumentationClientInject: [],\n  poweredByHeader: true,\n  compress: true,\n  images: imageConfigDefault,\n  devIndicators: {\n    position: 'bottom-left',\n  },\n  onDemandEntries: {\n    maxInactiveAge: 60 * 1000,\n    pagesBufferLength: 5,\n  },\n  basePath: '',\n  sassOptions: {},\n  trailingSlash: false,\n  i18n: null,\n  productionBrowserSourceMaps: false,\n  excludeDefaultMomentLocales: true,\n  reactProductionProfiling: false,\n  reactStrictMode: null,\n  reactMaxHeadersLength: 6000,\n  httpAgentOptions: {\n    keepAlive: true,\n  },\n  logging: {\n    serverFunctions: true,\n  } satisfies LoggingConfig,\n  compiler: {},\n  expireTime: process.env.NEXT_PRIVATE_CDN_CONSUMED_SWR_CACHE_CONTROL\n    ? undefined\n    : 31536000, // one year\n  staticPageGenerationTimeout: 60,\n  output: !!process.env.NEXT_PRIVATE_STANDALONE ? 'standalone' : undefined,\n  modularizeImports: undefined,\n  outputFileTracingRoot: '',\n  allowedDevOrigins: undefined,\n  enablePrerenderSourceMaps: true,\n  cacheComponents: false,\n  cacheLife: {\n    default: {\n      stale: undefined, // defaults to staleTimes.static\n      revalidate: 60 * 15, // 15 minutes\n      expire: INFINITE_CACHE,\n    },\n    seconds: {\n      stale: 30, // 30 seconds\n      revalidate: 1, // 1 second\n      expire: 60, // 1 minute\n    },\n    minutes: {\n      stale: 60 * 5, // 5 minutes\n      revalidate: 60, // 1 minute\n      expire: 60 * 60, // 1 hour\n    },\n    hours: {\n      stale: 60 * 5, // 5 minutes\n      revalidate: 60 * 60, // 1 hour\n      expire: 60 * 60 * 24, // 1 day\n    },\n    days: {\n      stale: 60 * 5, // 5 minutes\n      revalidate: 60 * 60 * 24, // 1 day\n      expire: 60 * 60 * 24 * 7, // 1 week\n    },\n    weeks: {\n      stale: 60 * 5, // 5 minutes\n      revalidate: 60 * 60 * 24 * 7, // 1 week\n      expire: 60 * 60 * 24 * 30, // 1 month\n    },\n    max: {\n      stale: 60 * 5, // 5 minutes\n      revalidate: 60 * 60 * 24 * 30, // 1 month\n      expire: 60 * 60 * 24 * 365, // 1 year\n    },\n  },\n  cacheHandlers: {\n    default: process.env.NEXT_DEFAULT_CACHE_HANDLER_PATH,\n    remote: process.env.NEXT_REMOTE_CACHE_HANDLER_PATH,\n    static: process.env.NEXT_STATIC_CACHE_HANDLER_PATH,\n  },\n  adapterPath: process.env.NEXT_ADAPTER_PATH || undefined,\n  experimental: {\n    appNewScrollHandler: true,\n    coldCacheBadge: false,\n    devValidationWorker: true,\n    useSkewCookie: false,\n    cssChunking: true,\n    multiZoneDraftMode: false,\n    appNavFailHandling: false,\n    prerenderEarlyExit: true,\n    serverMinification: true,\n    linkNoTouchStart: false,\n    caseSensitiveRoutes: false,\n    clientParamParsingOrigins: undefined,\n    cachedNavigations: false,\n    dynamicOnHover: false,\n    useOffline: false,\n    varyParams: true,\n    optimisticRouting: true,\n    instrumentationClientRouterTransitionEvents: false,\n    prefetchInlining: true,\n    preloadEntriesOnStart: true,\n    clientRouterFilter: true,\n    clientRouterFilterRedirects: false,\n    fetchCacheKeyPrefix: '',\n    proxyPrefetch: 'flexible',\n    optimisticClientCache: true,\n    manualClientBasePath: false,\n    cpus: Math.max(\n      1,\n      (Number(process.env.CIRCLE_NODE_TOTAL) ||\n        (os.cpus() || { length: 1 }).length) - 1\n    ),\n    memoryBasedWorkersCount: false,\n    imgOptConcurrency: null,\n    imgOptOperationCache: null,\n    imgOptTimeoutInSeconds: 7,\n    imgOptMaxInputPixels: 268_402_689, // https://sharp.pixelplumbing.com/api-constructor#:~:text=%5Boptions.limitInputPixels%5D\n    imgOptSequentialRead: null,\n    isrFlushToDisk: true,\n    workerThreads: false,\n    proxyTimeout: undefined,\n    optimizeCss: false,\n    nextScriptWorkers: false,\n    scrollRestoration: false,\n    externalDir: false,\n    devMemoryThresholdRestart: true,\n    disableOptimizedLoading: false,\n    gzipSize: true,\n    craCompat: false,\n    esmExternals: true,\n    fullySpecified: false,\n    swcTraceProfiling: false,\n    forceSwcTransforms: false,\n    requestInsights: false,\n    swcPlugins: undefined,\n    largePageDataBytes: 128 * 1000, // 128KB by default\n    disablePostcssPresetEnv: undefined,\n    urlImports: undefined,\n    typedEnv: false,\n    clientTraceMetadata: undefined,\n    parallelServerCompiles: false,\n    parallelServerBuildTraces: false,\n    ppr: false,\n    authInterrupts: false,\n    webpackBuildWorker: undefined,\n    webpackMemoryOptimizations: false,\n    optimizeServerReact: true,\n    strictRouteTypes: false,\n    useTypeScriptCli: true,\n    removeUncaughtErrorAndRejectionListeners: false,\n    validateRSCRequestHeaders: true,\n    staleTimes: {\n      dynamic: 0,\n      static: 300,\n    },\n    allowDevelopmentBuild: undefined,\n    reactDebugChannel: true,\n    staticGenerationRetryCount: undefined,\n    serverComponentsHmrCache: true,\n    serverComponentsHmrCancellation: false,\n    staticGenerationMaxConcurrency: 8,\n    staticGenerationMinPagesPerWorker: 25,\n    transitionIndicator: false,\n    gestureTransition: false,\n    inlineCss: false,\n    useCache: undefined,\n    slowModuleDetection: undefined,\n    globalNotFound: false,\n    browserDebugInfoInTerminal: 'warn',\n    lockDistDir: true,\n    proxyClientMaxBodySize: 10_485_760, // 10MB\n    hideLogsAfterAbort: false,\n    mcpServer: true,\n    turbopackFileSystemCacheForDev: true,\n    turbopackFileSystemCacheForBuild: true,\n    turbopackInferModuleSideEffects: true,\n    turbopackPluginRuntimeStrategy: 'childProcesses',\n  },\n  htmlLimitedBots: undefined,\n  bundlePagesRouterDependencies: false,\n} satisfies NextConfig)\n\nexport async function normalizeConfig(phase: string, config: any) {\n  if (typeof config === 'function') {\n    config = config(phase, { defaultConfig })\n  }\n  // Support `new Promise` and `async () =>` as return values of the config export\n  return await config\n}\n\n// This should be a supertype of NextConfigComplete\n//\n// The Vercel builder needs these fields (read `config` in required-server-files.json)\n// {\n//   pageExtensions: string[];\n//   experimental?: {\n//     cacheComponents?: boolean;\n//     clientParamParsingOrigins?: string[];\n//     clientSegmentCache?: boolean;\n//     ppr?: boolean | 'incremental';\n//     serverActions?: Record<string, never>;\n//   };\n// };\nexport interface NextConfigRuntime {\n  // Can be undefined, particularly when experimental.runtimeServerDeploymentId is true\n  deploymentId?: NextConfigComplete['deploymentId']\n  supportsImmutableAssets?: NextConfigComplete['supportsImmutableAssets']\n\n  configFileName?: string\n  // Should only be included when using isExperimentalCompile\n  env?: NextConfigComplete['env']\n\n  distDir: NextConfigComplete['distDir']\n  cacheComponents: NextConfigComplete['cacheComponents']\n  partialPrefetching: NextConfigComplete['partialPrefetching']\n  agentRules: NextConfigComplete['agentRules']\n  htmlLimitedBots: NextConfigComplete['htmlLimitedBots']\n  assetPrefix: NextConfigComplete['assetPrefix']\n  output: NextConfigComplete['output']\n  crossOrigin: NextConfigComplete['crossOrigin']\n  trailingSlash: NextConfigComplete['trailingSlash']\n  images: NextConfigComplete['images']\n  reactMaxHeadersLength: NextConfigComplete['reactMaxHeadersLength']\n  cacheLife: NextConfigComplete['cacheLife']\n  basePath: NextConfigComplete['basePath']\n  expireTime: NextConfigComplete['expireTime']\n  generateEtags: NextConfigComplete['generateEtags']\n  poweredByHeader: NextConfigComplete['poweredByHeader']\n  cacheHandler: NextConfigComplete['cacheHandler']\n  cacheHandlers: NextConfigComplete['cacheHandlers']\n  cacheMaxMemorySize: NextConfigComplete['cacheMaxMemorySize']\n  compress: NextConfigComplete['compress']\n  i18n: NextConfigComplete['i18n']\n  httpAgentOptions: NextConfigComplete['httpAgentOptions']\n  skipProxyUrlNormalize: NextConfigComplete['skipProxyUrlNormalize']\n  pageExtensions: NextConfigComplete['pageExtensions']\n  useFileSystemPublicRoutes: NextConfigComplete['useFileSystemPublicRoutes']\n  logging?: NextConfigComplete['logging']\n  adapterPath?: NextConfigComplete['adapterPath']\n  staticPageGenerationTimeout: NextConfigComplete['staticPageGenerationTimeout']\n\n  experimental: Pick<\n    NextConfigComplete['experimental'],\n    | 'ppr'\n    | 'taint'\n    | 'serverActions'\n    | 'staleTimes'\n    | 'dynamicOnHover'\n    | 'useOffline'\n    | 'optimisticRouting'\n    | 'inlineCss'\n    | 'prefetchInlining'\n    | 'authInterrupts'\n    | 'useCacheTimeout'\n    | 'clientTraceMetadata'\n    | 'clientParamParsingOrigins'\n    | 'allowedRevalidateHeaderKeys'\n    | 'fetchCacheKeyPrefix'\n    | 'isrFlushToDisk'\n    | 'optimizeCss'\n    | 'nextScriptWorkers'\n    | 'disableOptimizedLoading'\n    | 'largePageDataBytes'\n    | 'serverComponentsHmrCache'\n    | 'serverComponentsHmrCancellation'\n    | 'caseSensitiveRoutes'\n    | 'validateRSCRequestHeaders'\n    | 'sri'\n    | 'useSkewCookie'\n    | 'preloadEntriesOnStart'\n    | 'hideLogsAfterAbort'\n    | 'removeUncaughtErrorAndRejectionListeners'\n    | 'imgOptConcurrency'\n    | 'imgOptOperationCache'\n    | 'imgOptMaxInputPixels'\n    | 'imgOptSequentialRead'\n    | 'imgOptTimeoutInSeconds'\n    | 'proxyClientMaxBodySize'\n    | 'proxyTimeout'\n    | 'testProxy'\n    | 'runtimeServerDeploymentId'\n    | 'maxPostponedStateSize'\n    | 'cachedNavigations'\n    | 'exposeTestingApiInProductionBuild'\n    | 'instantInsights'\n    | 'requestInsights'\n  > & {\n    // Pick on @internal fields generates invalid .d.ts files\n    /** @internal */\n    trustHostHeader?: NextConfigComplete['experimental']['trustHostHeader']\n    /** @internal */\n    isExperimentalCompile?: NextConfigComplete['experimental']['isExperimentalCompile']\n  }\n}\n\nexport function getNextConfigRuntime(\n  config: NextConfigComplete | NextConfigRuntime\n): NextConfigRuntime {\n  // This config filter is a breaking change, so only do it if experimental.runtimeServerDeploymentId is enabled\n  if (!config.experimental.runtimeServerDeploymentId) {\n    return config\n  }\n\n  const ex = config.experimental\n\n  type Requiredish<T> = {\n    [K in keyof Required<T>]: T[K]\n  }\n\n  const experimental = {\n    ppr: ex.ppr,\n    taint: ex.taint,\n    serverActions: ex.serverActions,\n    staleTimes: ex.staleTimes,\n    dynamicOnHover: ex.dynamicOnHover,\n    useOffline: ex.useOffline,\n    optimisticRouting: ex.optimisticRouting,\n    inlineCss: ex.inlineCss,\n    prefetchInlining: ex.prefetchInlining,\n    authInterrupts: ex.authInterrupts,\n    useCacheTimeout: ex.useCacheTimeout,\n    clientTraceMetadata: ex.clientTraceMetadata,\n    clientParamParsingOrigins: ex.clientParamParsingOrigins,\n    allowedRevalidateHeaderKeys: ex.allowedRevalidateHeaderKeys,\n    fetchCacheKeyPrefix: ex.fetchCacheKeyPrefix,\n    isrFlushToDisk: ex.isrFlushToDisk,\n    optimizeCss: ex.optimizeCss,\n    nextScriptWorkers: ex.nextScriptWorkers,\n    disableOptimizedLoading: ex.disableOptimizedLoading,\n    largePageDataBytes: ex.largePageDataBytes,\n    serverComponentsHmrCache: ex.serverComponentsHmrCache,\n    serverComponentsHmrCancellation: ex.serverComponentsHmrCancellation,\n    caseSensitiveRoutes: ex.caseSensitiveRoutes,\n    validateRSCRequestHeaders: ex.validateRSCRequestHeaders,\n    sri: ex.sri,\n    useSkewCookie: ex.useSkewCookie,\n    preloadEntriesOnStart: ex.preloadEntriesOnStart,\n    hideLogsAfterAbort: ex.hideLogsAfterAbort,\n    removeUncaughtErrorAndRejectionListeners:\n      ex.removeUncaughtErrorAndRejectionListeners,\n    imgOptConcurrency: ex.imgOptConcurrency,\n    imgOptOperationCache: ex.imgOptOperationCache,\n    imgOptMaxInputPixels: ex.imgOptMaxInputPixels,\n    imgOptSequentialRead: ex.imgOptSequentialRead,\n    imgOptTimeoutInSeconds: ex.imgOptTimeoutInSeconds,\n    proxyClientMaxBodySize: ex.proxyClientMaxBodySize,\n    proxyTimeout: ex.proxyTimeout,\n    testProxy: ex.testProxy,\n    runtimeServerDeploymentId: ex.runtimeServerDeploymentId,\n    maxPostponedStateSize: ex.maxPostponedStateSize,\n    cachedNavigations: ex.cachedNavigations,\n    exposeTestingApiInProductionBuild: ex.exposeTestingApiInProductionBuild,\n    instantInsights: ex.instantInsights,\n    requestInsights: ex.requestInsights,\n\n    trustHostHeader: ex.trustHostHeader,\n    isExperimentalCompile: ex.isExperimentalCompile,\n  } satisfies Requiredish<NextConfigRuntime['experimental']>\n\n  const runtimeConfig: Requiredish<NextConfigRuntime> = {\n    deploymentId: config.experimental.runtimeServerDeploymentId\n      ? ''\n      : config.deploymentId,\n    supportsImmutableAssets: config.supportsImmutableAssets,\n\n    configFileName: undefined,\n    env: undefined,\n\n    distDir: config.distDir,\n    cacheComponents: config.cacheComponents,\n    partialPrefetching: config.partialPrefetching,\n    agentRules: config.agentRules,\n    htmlLimitedBots: config.htmlLimitedBots,\n    assetPrefix: config.assetPrefix,\n    output: config.output,\n    crossOrigin: config.crossOrigin,\n    trailingSlash: config.trailingSlash,\n    images: config.images,\n    reactMaxHeadersLength: config.reactMaxHeadersLength,\n    cacheLife: config.cacheLife,\n    basePath: config.basePath,\n    expireTime: config.expireTime,\n    generateEtags: config.generateEtags,\n    poweredByHeader: config.poweredByHeader,\n    cacheHandler: config.cacheHandler,\n    cacheHandlers: config.cacheHandlers,\n    // The full adapterPath might be non-deterministic across builds and doesn't\n    // actually matter at runtime, so replace it with a placeholder if it's set.\n    adapterPath: config.adapterPath ? '<omitted but set>' : undefined,\n    cacheMaxMemorySize: config.cacheMaxMemorySize,\n    compress: config.compress,\n    i18n: config.i18n,\n    httpAgentOptions: config.httpAgentOptions,\n    skipProxyUrlNormalize: config.skipProxyUrlNormalize,\n    pageExtensions: config.pageExtensions,\n    useFileSystemPublicRoutes: config.useFileSystemPublicRoutes,\n    logging: config.logging,\n    staticPageGenerationTimeout: config.staticPageGenerationTimeout,\n\n    experimental,\n  }\n\n  if (config.experimental.isExperimentalCompile) {\n    runtimeConfig.env = config.env\n  }\n\n  return runtimeConfig\n}\n\n// Re-export from shared lib for backwards compatibility\nexport {\n  DEFAULT_MAX_POSTPONED_STATE_SIZE,\n  parseMaxPostponedStateSize,\n} from '../shared/lib/size-limit'\n"],"names":["DEFAULT_MAX_POSTPONED_STATE_SIZE","LIGHTNINGCSS_FEATURE_NAMES","defaultConfig","getNextConfigRuntime","normalizeConfig","parseMaxPostponedStateSize","resolveCssChunkingMode","value","undefined","type","Object","freeze","env","webpack","typescript","ignoreBuildErrors","tsconfigPath","typedRoutes","distDir","cleanDistDir","assetPrefix","cacheHandler","process","NEXT_CACHE_HANDLER_PATH","cacheMaxMemorySize","configOrigin","useFileSystemPublicRoutes","generateBuildId","generateEtags","pageExtensions","instrumentationClientInject","poweredByHeader","compress","images","imageConfigDefault","devIndicators","position","onDemandEntries","maxInactiveAge","pagesBufferLength","basePath","sassOptions","trailingSlash","i18n","productionBrowserSourceMaps","excludeDefaultMomentLocales","reactProductionProfiling","reactStrictMode","reactMaxHeadersLength","httpAgentOptions","keepAlive","logging","serverFunctions","compiler","expireTime","NEXT_PRIVATE_CDN_CONSUMED_SWR_CACHE_CONTROL","staticPageGenerationTimeout","output","NEXT_PRIVATE_STANDALONE","modularizeImports","outputFileTracingRoot","allowedDevOrigins","enablePrerenderSourceMaps","cacheComponents","cacheLife","default","stale","revalidate","expire","INFINITE_CACHE","seconds","minutes","hours","days","weeks","max","cacheHandlers","NEXT_DEFAULT_CACHE_HANDLER_PATH","remote","NEXT_REMOTE_CACHE_HANDLER_PATH","static","NEXT_STATIC_CACHE_HANDLER_PATH","adapterPath","NEXT_ADAPTER_PATH","experimental","appNewScrollHandler","coldCacheBadge","devValidationWorker","useSkewCookie","cssChunking","multiZoneDraftMode","appNavFailHandling","prerenderEarlyExit","serverMinification","linkNoTouchStart","caseSensitiveRoutes","clientParamParsingOrigins","cachedNavigations","dynamicOnHover","useOffline","varyParams","optimisticRouting","instrumentationClientRouterTransitionEvents","prefetchInlining","preloadEntriesOnStart","clientRouterFilter","clientRouterFilterRedirects","fetchCacheKeyPrefix","proxyPrefetch","optimisticClientCache","manualClientBasePath","cpus","Math","Number","CIRCLE_NODE_TOTAL","os","length","memoryBasedWorkersCount","imgOptConcurrency","imgOptOperationCache","imgOptTimeoutInSeconds","imgOptMaxInputPixels","imgOptSequentialRead","isrFlushToDisk","workerThreads","proxyTimeout","optimizeCss","nextScriptWorkers","scrollRestoration","externalDir","devMemoryThresholdRestart","disableOptimizedLoading","gzipSize","craCompat","esmExternals","fullySpecified","swcTraceProfiling","forceSwcTransforms","requestInsights","swcPlugins","largePageDataBytes","disablePostcssPresetEnv","urlImports","typedEnv","clientTraceMetadata","parallelServerCompiles","parallelServerBuildTraces","ppr","authInterrupts","webpackBuildWorker","webpackMemoryOptimizations","optimizeServerReact","strictRouteTypes","useTypeScriptCli","removeUncaughtErrorAndRejectionListeners","validateRSCRequestHeaders","staleTimes","dynamic","allowDevelopmentBuild","reactDebugChannel","staticGenerationRetryCount","serverComponentsHmrCache","serverComponentsHmrCancellation","staticGenerationMaxConcurrency","staticGenerationMinPagesPerWorker","transitionIndicator","gestureTransition","inlineCss","useCache","slowModuleDetection","globalNotFound","browserDebugInfoInTerminal","lockDistDir","proxyClientMaxBodySize","hideLogsAfterAbort","mcpServer","turbopackFileSystemCacheForDev","turbopackFileSystemCacheForBuild","turbopackInferModuleSideEffects","turbopackPluginRuntimeStrategy","htmlLimitedBots","bundlePagesRouterDependencies","phase","config","runtimeServerDeploymentId","ex","taint","serverActions","useCacheTimeout","allowedRevalidateHeaderKeys","sri","testProxy","maxPostponedStateSize","exposeTestingApiInProductionBuild","instantInsights","trustHostHeader","isExperimentalCompile","runtimeConfig","deploymentId","supportsImmutableAssets","configFileName","partialPrefetching","agentRules","crossOrigin","skipProxyUrlNormalize"],"mappings":"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","ignoreList":[0]}