{"version":3,"sources":["../../../src/build/define-env.ts"],"sourcesContent":["import type {\n  I18NConfig,\n  I18NDomains,\n  NextConfigComplete,\n} from '../server/config-shared'\nimport type { ProxyMatcher } from './analysis/get-page-static-info'\nimport type { Rewrite } from '../lib/load-custom-routes'\nimport path from 'node:path'\nimport { needsExperimentalReact } from '../lib/needs-experimental-react'\nimport { checkIsAppPPREnabled } from '../server/lib/experimental/ppr'\nimport {\n  getNextConfigEnv,\n  getNextPublicEnvironmentVariables,\n} from '../lib/static-env'\n\ntype BloomFilter = ReturnType<\n  import('../shared/lib/bloom-filter').BloomFilter['export']\n>\n\nexport interface DefineEnvOptions {\n  isTurbopack: boolean\n  clientRouterFilters?: {\n    staticFilter: BloomFilter\n    dynamicFilter: BloomFilter\n  }\n  config: NextConfigComplete\n  dev: boolean\n  distDir: string\n  projectPath: string\n  fetchCacheKeyPrefix: string | undefined\n  hasRewrites: boolean\n  isClient: boolean\n  isEdgeServer: boolean\n  isNodeServer: boolean\n  middlewareMatchers: ProxyMatcher[] | undefined\n  omitNonDeterministic?: boolean\n  rewrites: {\n    beforeFiles: Rewrite[]\n    afterFiles: Rewrite[]\n    fallback: Rewrite[]\n  }\n}\n\nconst DEFINE_ENV_EXPRESSION = Symbol('DEFINE_ENV_EXPRESSION')\n\ninterface DefineEnv {\n  [key: string]:\n    | string\n    | string[]\n    | boolean\n    | { [DEFINE_ENV_EXPRESSION]: string }\n    | ProxyMatcher[]\n    | BloomFilter\n    | Partial<NextConfigComplete['images']>\n    | I18NDomains\n    | I18NConfig\n}\n\ninterface SerializedDefineEnv {\n  [key: string]: string\n}\n\n/**\n * Serializes the DefineEnv config so that it can be inserted into the code by Webpack/Turbopack, JSON stringifies each value.\n */\nfunction serializeDefineEnv(defineEnv: DefineEnv): SerializedDefineEnv {\n  const defineEnvStringified: SerializedDefineEnv = Object.fromEntries(\n    Object.entries(defineEnv).map(([key, value]) => [\n      key,\n      typeof value === 'object' && DEFINE_ENV_EXPRESSION in value\n        ? value[DEFINE_ENV_EXPRESSION]\n        : JSON.stringify(value),\n    ])\n  )\n  return defineEnvStringified\n}\n\nfunction getImageConfig(\n  config: NextConfigComplete,\n  dev: boolean\n): { 'process.env.__NEXT_IMAGE_OPTS': Partial<NextConfigComplete['images']> } {\n  return {\n    'process.env.__NEXT_IMAGE_OPTS': {\n      deviceSizes: config.images.deviceSizes,\n      imageSizes: config.images.imageSizes,\n      qualities: config.images.qualities,\n      path: config.images.path,\n      loader: config.images.loader,\n      dangerouslyAllowSVG: config.images.dangerouslyAllowSVG,\n      unoptimized: config?.images?.unoptimized,\n      ...(dev\n        ? {\n            // additional config in dev to allow validating on the client\n            domains: config.images.domains,\n            remotePatterns: config.images?.remotePatterns,\n            localPatterns: config.images?.localPatterns,\n            output: config.output,\n          }\n        : {}),\n    },\n  }\n}\n\nexport function getDefineEnv({\n  isTurbopack,\n  clientRouterFilters,\n  config,\n  dev,\n  distDir,\n  projectPath,\n  fetchCacheKeyPrefix,\n  hasRewrites,\n  isClient,\n  isEdgeServer,\n  isNodeServer,\n  middlewareMatchers,\n  omitNonDeterministic,\n  rewrites,\n}: DefineEnvOptions): SerializedDefineEnv {\n  const nextPublicEnv = getNextPublicEnvironmentVariables()\n  const nextConfigEnv = getNextConfigEnv(config)\n\n  const isPPREnabled = checkIsAppPPREnabled(config.experimental.ppr)\n  const isCacheComponentsEnabled = !!config.cacheComponents\n  const isUseCacheEnabled = !!config.experimental.useCache\n\n  const defineEnv: DefineEnv = {\n    // internal field to identify the plugin config\n    __NEXT_DEFINE_ENV: true,\n\n    ...nextPublicEnv,\n    ...nextConfigEnv,\n    ...(!isEdgeServer\n      ? {}\n      : {\n          EdgeRuntime:\n            /**\n             * Cloud providers can set this environment variable to allow users\n             * and library authors to have different implementations based on\n             * the runtime they are running with, if it's not using `edge-runtime`\n             */\n            process.env.NEXT_EDGE_RUNTIME_PROVIDER ?? 'edge-runtime',\n\n          // process should be only { env: {...} } for edge runtime.\n          // For ignore avoid warn on `process.emit` usage but directly omit it.\n          'process.emit': false,\n        }),\n    'process.turbopack': isTurbopack,\n    'process.env.TURBOPACK': isTurbopack,\n    'process.env.__NEXT_BUNDLER': isTurbopack\n      ? 'Turbopack'\n      : process.env.NEXT_RSPACK\n        ? 'Rspack'\n        : 'Webpack',\n    // TODO: enforce `NODE_ENV` on `process.env`, and add a test:\n    'process.env.NODE_ENV':\n      dev || config.experimental.allowDevelopmentBuild\n        ? 'development'\n        : 'production',\n    'process.env.__NEXT_DEV_SERVER': dev ? '1' : '',\n    'process.env.NEXT_RUNTIME': isEdgeServer\n      ? 'edge'\n      : isNodeServer\n        ? 'nodejs'\n        : '',\n    'process.env.NEXT_MINIMAL': '',\n    'process.env.__NEXT_APP_NAV_FAIL_HANDLING': Boolean(\n      config.experimental.appNavFailHandling\n    ),\n    'process.env.__NEXT_APP_NEW_SCROLL_HANDLER': Boolean(\n      config.experimental.appNewScrollHandler\n    ),\n    'process.env.__NEXT_PPR': isPPREnabled,\n    'process.env.__NEXT_CACHE_COMPONENTS': isCacheComponentsEnabled,\n    'process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS': Boolean(\n      config.experimental.cachedNavigations\n    ),\n    'process.env.__NEXT_INSTANT_NAV_TOGGLE':\n      !!config.experimental.instantNavigationDevToolsToggle,\n    'process.env.__NEXT_USE_CACHE': isUseCacheEnabled,\n\n    'process.env.NEXT_IMMUTABLE_ASSET_TOKEN':\n      config.experimental.immutableAssetToken || '',\n\n    ...(config.experimental?.useSkewCookie || !config.deploymentId\n      ? {\n          'process.env.NEXT_DEPLOYMENT_ID': false,\n        }\n      : isClient\n        ? isTurbopack\n          ? {\n              // This is set at runtime by packages/next/src/client/register-deployment-id-global.ts\n              'process.env.NEXT_DEPLOYMENT_ID': {\n                [DEFINE_ENV_EXPRESSION]: 'globalThis.NEXT_DEPLOYMENT_ID',\n              },\n            }\n          : {\n              // For Webpack, we currently don't use the non-inlining globalThis.NEXT_DEPLOYMENT_ID\n              // approach because we cannot forward this global variable to web workers easily.\n              'process.env.NEXT_DEPLOYMENT_ID': config.deploymentId || false,\n            }\n        : config.experimental?.runtimeServerDeploymentId\n          ? {\n              // Don't inline at all, keep process.env.NEXT_DEPLOYMENT_ID as is\n            }\n          : {\n              'process.env.NEXT_DEPLOYMENT_ID': config.deploymentId || false,\n            }),\n\n    // Propagates the `__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING` environment\n    // variable to the client.\n    'process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING':\n      process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING || false,\n    'process.env.__NEXT_FETCH_CACHE_KEY_PREFIX': fetchCacheKeyPrefix ?? '',\n    ...(isTurbopack\n      ? {}\n      : {\n          'process.env.__NEXT_MIDDLEWARE_MATCHERS': middlewareMatchers ?? [],\n        }),\n    'process.env.__NEXT_MANUAL_CLIENT_BASE_PATH':\n      config.experimental.manualClientBasePath ?? false,\n    'process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME': JSON.stringify(\n      isNaN(Number(config.experimental.staleTimes?.dynamic))\n        ? 0\n        : config.experimental.staleTimes?.dynamic\n    ),\n    'process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME': JSON.stringify(\n      isNaN(Number(config.experimental.staleTimes?.static))\n        ? 5 * 60 // 5 minutes\n        : config.experimental.staleTimes?.static\n    ),\n    'process.env.__NEXT_CLIENT_ROUTER_FILTER_ENABLED':\n      config.experimental.clientRouterFilter ?? true,\n    'process.env.__NEXT_CLIENT_ROUTER_S_FILTER':\n      clientRouterFilters?.staticFilter ?? false,\n    'process.env.__NEXT_CLIENT_ROUTER_D_FILTER':\n      clientRouterFilters?.dynamicFilter ?? false,\n    'process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS': Boolean(\n      config.experimental.validateRSCRequestHeaders\n    ),\n    'process.env.__NEXT_DYNAMIC_ON_HOVER': Boolean(\n      config.experimental.dynamicOnHover\n    ),\n    'process.env.__NEXT_PREFETCH_INLINING': Boolean(\n      config.experimental.prefetchInlining\n    ),\n    'process.env.__NEXT_OPTIMISTIC_CLIENT_CACHE':\n      config.experimental.optimisticClientCache ?? true,\n    'process.env.__NEXT_MIDDLEWARE_PREFETCH':\n      config.experimental.proxyPrefetch ?? 'flexible',\n    'process.env.__NEXT_CROSS_ORIGIN': config.crossOrigin,\n    'process.browser': isClient,\n    'process.env.__NEXT_TEST_MODE': process.env.__NEXT_TEST_MODE ?? false,\n    // This is used in client/dev-error-overlay/hot-dev-client.js to replace the dist directory\n    ...(dev && (isClient ?? isEdgeServer)\n      ? {\n          'process.env.__NEXT_DIST_DIR': distDir,\n        }\n      : {}),\n    // This is used in devtools to strip the project path in edge runtime,\n    // as there's only a dummy `dir` value (`.`) as edge runtime doesn't have concept of file system.\n    ...(dev && isEdgeServer\n      ? {\n          'process.env.__NEXT_EDGE_PROJECT_DIR': isTurbopack\n            ? path.relative(process.cwd(), projectPath)\n            : projectPath,\n        }\n      : {}),\n    'process.env.__NEXT_BASE_PATH': config.basePath,\n    'process.env.__NEXT_CASE_SENSITIVE_ROUTES': Boolean(\n      config.experimental.caseSensitiveRoutes\n    ),\n    'process.env.__NEXT_REWRITES': rewrites as any,\n    'process.env.__NEXT_TRAILING_SLASH': config.trailingSlash,\n    'process.env.__NEXT_DEV_INDICATOR': config.devIndicators !== false,\n    'process.env.__NEXT_DEV_INDICATOR_POSITION':\n      config.devIndicators === false\n        ? 'bottom-left' // This will not be used as the indicator is disabled.\n        : (config.devIndicators.position ?? 'bottom-left'),\n    'process.env.__NEXT_STRICT_MODE':\n      config.reactStrictMode === null ? false : config.reactStrictMode,\n    'process.env.__NEXT_STRICT_MODE_APP':\n      // When next.config.js does not have reactStrictMode it's enabled by default.\n      config.reactStrictMode === null ? true : config.reactStrictMode,\n    'process.env.__NEXT_OPTIMIZE_CSS':\n      (config.experimental.optimizeCss && !dev) ?? false,\n    'process.env.__NEXT_SCRIPT_WORKERS':\n      (config.experimental.nextScriptWorkers && !dev) ?? false,\n    'process.env.__NEXT_SCROLL_RESTORATION':\n      config.experimental.scrollRestoration ?? false,\n    ...getImageConfig(config, dev),\n    'process.env.__NEXT_ROUTER_BASEPATH': config.basePath,\n    'process.env.__NEXT_HAS_REWRITES': hasRewrites,\n    'process.env.__NEXT_CONFIG_OUTPUT': config.output,\n    'process.env.__NEXT_I18N_SUPPORT': !!config.i18n,\n    'process.env.__NEXT_I18N_DOMAINS': config.i18n?.domains ?? false,\n    'process.env.__NEXT_I18N_CONFIG': config.i18n || '',\n    'process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE':\n      config.skipProxyUrlNormalize,\n    'process.env.__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE':\n      config.experimental.externalProxyRewritesResolve ?? false,\n    'process.env.__NEXT_MANUAL_TRAILING_SLASH':\n      config.skipTrailingSlashRedirect,\n    'process.env.__NEXT_HAS_WEB_VITALS_ATTRIBUTION':\n      (config.experimental.webVitalsAttribution &&\n        config.experimental.webVitalsAttribution.length > 0) ??\n      false,\n    'process.env.__NEXT_WEB_VITALS_ATTRIBUTION':\n      config.experimental.webVitalsAttribution ?? false,\n    'process.env.__NEXT_LINK_NO_TOUCH_START':\n      config.experimental.linkNoTouchStart ?? false,\n    'process.env.__NEXT_ASSET_PREFIX': config.assetPrefix,\n    'process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS':\n      !!config.experimental.authInterrupts,\n    'process.env.__NEXT_TELEMETRY_DISABLED': Boolean(\n      process.env.NEXT_TELEMETRY_DISABLED\n    ),\n    ...(isNodeServer || isEdgeServer\n      ? {\n          // Fix bad-actors in the npm ecosystem (e.g. `node-formidable`)\n          // This is typically found in unmaintained modules from the\n          // pre-webpack era (common in server-side code)\n          'global.GENTLY': false,\n        }\n      : undefined),\n    ...(isNodeServer || isEdgeServer\n      ? {\n          'process.env.__NEXT_EXPERIMENTAL_REACT':\n            needsExperimentalReact(config),\n        }\n      : undefined),\n\n    'process.env.__NEXT_MULTI_ZONE_DRAFT_MODE':\n      config.experimental.multiZoneDraftMode ?? false,\n    'process.env.__NEXT_TRUST_HOST_HEADER':\n      config.experimental.trustHostHeader ?? false,\n    'process.env.__NEXT_ALLOWED_REVALIDATE_HEADERS':\n      config.experimental.allowedRevalidateHeaderKeys ?? [],\n    ...(isNodeServer || isEdgeServer\n      ? {\n          'process.env.__NEXT_RELATIVE_DIST_DIR': config.distDir,\n          'process.env.__NEXT_RELATIVE_PROJECT_DIR': path.relative(\n            process.cwd(),\n            projectPath\n          ),\n        }\n      : {}),\n\n    'process.env.__NEXT_BROWSER_DEBUG_INFO_IN_TERMINAL': JSON.stringify(\n      (config.logging && config.logging.browserToTerminal) || false\n    ),\n    'process.env.__NEXT_MCP_SERVER': !!config.experimental.mcpServer,\n\n    // The devtools need to know whether or not to show an option to clear the\n    // bundler cache. This option may be removed later once Turbopack's\n    // filesystem cache feature is more stable.\n    //\n    // This environment value is currently best-effort:\n    // - It's possible to disable the webpack filesystem cache, but it's\n    //   unlikely for a user to do that.\n    // - Rspack's filesystem cache is unstable and requires a different\n    //   configuration than webpack to enable (which we don't do).\n    //\n    // In the worst case we'll show an option to clear the cache, but it'll be a\n    // no-op that just restarts the development server.\n    'process.env.__NEXT_BUNDLER_HAS_PERSISTENT_CACHE':\n      !isTurbopack ||\n      (config.experimental.turbopackFileSystemCacheForDev ?? false),\n    'process.env.__NEXT_REACT_DEBUG_CHANNEL':\n      config.experimental.reactDebugChannel ?? false,\n    'process.env.__NEXT_TRANSITION_INDICATOR':\n      config.experimental.transitionIndicator ?? false,\n    'process.env.__NEXT_GESTURE_TRANSITION':\n      config.experimental.gestureTransition ?? false,\n    'process.env.__NEXT_OPTIMISTIC_ROUTING':\n      config.experimental.optimisticRouting ?? false,\n    'process.env.__NEXT_VARY_PARAMS': config.experimental.varyParams ?? false,\n    'process.env.__NEXT_EXPOSE_TESTING_API':\n      dev || config.experimental.exposeTestingApiInProductionBuild === true,\n    'process.env.__NEXT_CACHE_LIFE': config.cacheLife,\n    'process.env.__NEXT_CLIENT_PARAM_PARSING_ORIGINS':\n      config.experimental.clientParamParsingOrigins || [],\n  }\n\n  const userDefines = config.compiler?.define ?? {}\n  for (const key in userDefines) {\n    if (defineEnv.hasOwnProperty(key)) {\n      throw new Error(\n        `The \\`compiler.define\\` option is configured to replace the \\`${key}\\` variable. This variable is either part of a Next.js built-in or is already configured.`\n      )\n    }\n    defineEnv[key] = userDefines[key]\n  }\n\n  if (isNodeServer || isEdgeServer) {\n    const userDefinesServer = config.compiler?.defineServer ?? {}\n    for (const key in userDefinesServer) {\n      if (defineEnv.hasOwnProperty(key)) {\n        throw new Error(\n          `The \\`compiler.defineServer\\` option is configured to replace the \\`${key}\\` variable. This variable is either part of a Next.js built-in or is already configured.`\n        )\n      }\n      defineEnv[key] = userDefinesServer[key]\n    }\n  }\n\n  const serializedDefineEnv = serializeDefineEnv(defineEnv)\n\n  // we delay inlining these values until after the build\n  // with flying shuttle enabled so we can update them\n  // without invalidating entries\n  if (!dev && omitNonDeterministic) {\n    // client uses window. instead of leaving process.env\n    // in case process isn't polyfilled on client already\n    // since by this point it won't be added by webpack\n    const safeKey = (key: string) =>\n      isClient ? `window.${key.split('.').pop()}` : key\n\n    for (const key in nextPublicEnv) {\n      serializedDefineEnv[key] = safeKey(key)\n    }\n    for (const key in nextConfigEnv) {\n      serializedDefineEnv[key] = safeKey(key)\n    }\n    if (!config.experimental.runtimeServerDeploymentId) {\n      for (const key of ['process.env.NEXT_DEPLOYMENT_ID']) {\n        serializedDefineEnv[key] = safeKey(key)\n      }\n    }\n  }\n\n  return serializedDefineEnv\n}\n"],"names":["path","needsExperimentalReact","checkIsAppPPREnabled","getNextConfigEnv","getNextPublicEnvironmentVariables","DEFINE_ENV_EXPRESSION","Symbol","serializeDefineEnv","defineEnv","defineEnvStringified","Object","fromEntries","entries","map","key","value","JSON","stringify","getImageConfig","config","dev","deviceSizes","images","imageSizes","qualities","loader","dangerouslyAllowSVG","unoptimized","domains","remotePatterns","localPatterns","output","getDefineEnv","isTurbopack","clientRouterFilters","distDir","projectPath","fetchCacheKeyPrefix","hasRewrites","isClient","isEdgeServer","isNodeServer","middlewareMatchers","omitNonDeterministic","rewrites","nextPublicEnv","nextConfigEnv","isPPREnabled","experimental","ppr","isCacheComponentsEnabled","cacheComponents","isUseCacheEnabled","useCache","__NEXT_DEFINE_ENV","EdgeRuntime","process","env","NEXT_EDGE_RUNTIME_PROVIDER","NEXT_RSPACK","allowDevelopmentBuild","Boolean","appNavFailHandling","appNewScrollHandler","cachedNavigations","instantNavigationDevToolsToggle","immutableAssetToken","useSkewCookie","deploymentId","runtimeServerDeploymentId","__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING","manualClientBasePath","isNaN","Number","staleTimes","dynamic","static","clientRouterFilter","staticFilter","dynamicFilter","validateRSCRequestHeaders","dynamicOnHover","prefetchInlining","optimisticClientCache","proxyPrefetch","crossOrigin","__NEXT_TEST_MODE","relative","cwd","basePath","caseSensitiveRoutes","trailingSlash","devIndicators","position","reactStrictMode","optimizeCss","nextScriptWorkers","scrollRestoration","i18n","skipProxyUrlNormalize","externalProxyRewritesResolve","skipTrailingSlashRedirect","webVitalsAttribution","length","linkNoTouchStart","assetPrefix","authInterrupts","NEXT_TELEMETRY_DISABLED","undefined","multiZoneDraftMode","trustHostHeader","allowedRevalidateHeaderKeys","logging","browserToTerminal","mcpServer","turbopackFileSystemCacheForDev","reactDebugChannel","transitionIndicator","gestureTransition","optimisticRouting","varyParams","exposeTestingApiInProductionBuild","cacheLife","clientParamParsingOrigins","userDefines","compiler","define","hasOwnProperty","Error","userDefinesServer","defineServer","serializedDefineEnv","safeKey","split","pop"],"mappings":"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","ignoreList":[0]}