{"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    | number\n    | string[]\n    | boolean\n    | { [DEFINE_ENV_EXPRESSION]: string }\n    | ProxyMatcher[]\n    | BloomFilter\n    | Partial<NextConfigComplete['images']>\n    | NextConfigComplete['cacheLife']\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_DISABLE_DEV_OVERLAY_UX':\n      process.env.NEXT_PRIVATE_DISABLE_DEV_OVERLAY_UX === '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_TURBOPACK_SHARED_RUNTIME': Boolean(\n      config.experimental.turbopackSharedRuntime\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': isCacheComponentsEnabled,\n    'process.env.__NEXT_EXPERIMENTAL_COLD_CACHE_BADGE': Boolean(\n      config.experimental.coldCacheBadge\n    ),\n    'process.env.__NEXT_REQUEST_INSIGHTS':\n      dev && !!config.experimental.requestInsights,\n    'process.env.__NEXT_USE_CACHE': isUseCacheEnabled,\n    'process.env.__NEXT_USE_NODE_STREAMS': isEdgeServer ? false : true,\n\n    'process.env.NEXT_SUPPORTS_IMMUTABLE_ASSETS':\n      config.supportsImmutableAssets || false,\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_SERVER_COMPONENTS_HMR_CANCELLATION': Boolean(\n      config.experimental.serverComponentsHmrCancellation\n    ),\n    'process.env.__NEXT_DYNAMIC_ON_HOVER': Boolean(\n      config.experimental.dynamicOnHover\n    ),\n    'process.env.__NEXT_USE_OFFLINE': Boolean(config.experimental.useOffline),\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_INSTRUMENTATION_CLIENT_ROUTER_TRANSITION_EVENTS':\n      config.experimental.instrumentationClientRouterTransitionEvents ?? 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","NEXT_PRIVATE_DISABLE_DEV_OVERLAY_UX","Boolean","appNavFailHandling","appNewScrollHandler","turbopackSharedRuntime","cachedNavigations","coldCacheBadge","requestInsights","supportsImmutableAssets","useSkewCookie","deploymentId","runtimeServerDeploymentId","__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING","manualClientBasePath","isNaN","Number","staleTimes","dynamic","static","clientRouterFilter","staticFilter","dynamicFilter","validateRSCRequestHeaders","serverComponentsHmrCancellation","dynamicOnHover","useOffline","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","instrumentationClientRouterTransitionEvents","varyParams","exposeTestingApiInProductionBuild","cacheLife","clientParamParsingOrigins","userDefines","compiler","define","hasOwnProperty","Error","userDefinesServer","defineServer","serializedDefineEnv","safeKey","split","pop"],"mappings":"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","ignoreList":[0]}