{"version":3,"sources":["../../../src/build/webpack-build/impl.ts"],"sourcesContent":["// Import cpu-profile first to start profiling early if enabled\nimport { saveCpuProfile } from '../../server/lib/cpu-profile'\nimport type { webpack } from 'next/dist/compiled/webpack/webpack'\nimport { stringBufferUtils } from 'next/dist/compiled/webpack-sources3'\nimport { red } from '../../lib/picocolors'\nimport formatWebpackMessages from '../../shared/lib/format-webpack-messages'\nimport { nonNullable } from '../../lib/non-nullable'\nimport type { COMPILER_INDEXES } from '../../shared/lib/constants'\nimport {\n  COMPILER_NAMES,\n  CLIENT_STATIC_FILES_RUNTIME_MAIN_APP,\n  APP_CLIENT_INTERNALS,\n  PHASE_PRODUCTION_BUILD,\n} from '../../shared/lib/constants'\nimport { runCompiler } from '../compiler'\nimport * as Log from '../output/log'\nimport getBaseWebpackConfig, { loadProjectInfo } from '../webpack-config'\nimport type { NextError } from '../../lib/is-error'\nimport {\n  TelemetryPlugin,\n  type TelemetryPluginState,\n} from '../webpack/plugins/telemetry-plugin/telemetry-plugin'\nimport {\n  NextBuildContext,\n  resumePluginState,\n  getPluginState,\n} from '../build-context'\nimport { createEntrypoints } from '../entries'\nimport loadConfig from '../../server/config'\nimport {\n  getTraceEvents,\n  initializeTraceState,\n  setGlobal,\n  trace,\n  type TraceEvent,\n  type TraceState,\n} from '../../trace'\nimport { WEBPACK_LAYERS } from '../../lib/constants'\nimport { TraceEntryPointsPlugin } from '../webpack/plugins/next-trace-entrypoints-plugin'\nimport type { BuildTraceContext } from '../webpack/plugins/next-trace-entrypoints-plugin'\nimport type { UnwrapPromise } from '../../lib/coalesced-function'\n\nimport origDebug from 'next/dist/compiled/debug'\nimport { Telemetry } from '../../telemetry/storage'\nimport { durationToString, hrtimeToSeconds } from '../duration-to-string'\nimport { installBindings } from '../swc/install-bindings'\nimport { Bundler } from '../../lib/bundler'\n\nconst debug = origDebug('next:build:webpack-build')\n\ntype CompilerResult = {\n  errors: webpack.StatsError[]\n  warnings: webpack.StatsError[]\n  stats: (webpack.Stats | undefined)[]\n}\n\ntype SingleCompilerResult = {\n  errors: webpack.StatsError[]\n  warnings: webpack.StatsError[]\n  stats: webpack.Stats | undefined\n}\n\nfunction isTelemetryPlugin(plugin: unknown): plugin is TelemetryPlugin {\n  return plugin instanceof TelemetryPlugin\n}\n\nfunction isTraceEntryPointsPlugin(\n  plugin: unknown\n): plugin is TraceEntryPointsPlugin {\n  return plugin instanceof TraceEntryPointsPlugin\n}\n\nexport async function webpackBuildImpl(\n  compilerName: keyof typeof COMPILER_INDEXES | null\n): Promise<{\n  duration: number\n  pluginState: any\n  buildTraceContext?: BuildTraceContext\n  telemetryState?: TelemetryPluginState\n}> {\n  let result: CompilerResult | null = {\n    warnings: [],\n    errors: [],\n    stats: [],\n  }\n  let webpackBuildStart\n  const nextBuildSpan = NextBuildContext.nextBuildSpan!\n  const dir = NextBuildContext.dir!\n  const config = NextBuildContext.config!\n  process.env.NEXT_COMPILER_NAME = compilerName || 'server'\n\n  const runWebpackSpan = nextBuildSpan.traceChild('run-webpack-compiler')\n\n  const hasDeferredEntries =\n    config.experimental.deferredEntries &&\n    config.experimental.deferredEntries.length > 0\n\n  // Create entrypoints - exclude deferred entries if configured\n  const entrypoints = await nextBuildSpan\n    .traceChild('create-entrypoints')\n    .traceAsyncFn(() =>\n      createEntrypoints({\n        buildId: NextBuildContext.buildId!,\n        config: config,\n        envFiles: NextBuildContext.loadedEnvFiles!,\n        isDev: false,\n        rootDir: dir,\n        pageExtensions: config.pageExtensions!,\n        pagesDir: NextBuildContext.pagesDir!,\n        appDir: NextBuildContext.appDir!,\n        pages: NextBuildContext.mappedPages!,\n        appPaths: NextBuildContext.mappedAppPages!,\n        previewMode: NextBuildContext.previewProps!,\n        rootPaths: NextBuildContext.mappedRootPaths!,\n        hasInstrumentationHook: NextBuildContext.hasInstrumentationHook!,\n        deferredEntriesFilter: hasDeferredEntries ? 'exclude' : undefined,\n      })\n    )\n\n  // Create deferred entrypoints if configured\n  const deferredEntrypoints = hasDeferredEntries\n    ? await nextBuildSpan\n        .traceChild('create-deferred-entrypoints')\n        .traceAsyncFn(() =>\n          createEntrypoints({\n            buildId: NextBuildContext.buildId!,\n            config: config,\n            envFiles: NextBuildContext.loadedEnvFiles!,\n            isDev: false,\n            rootDir: dir,\n            pageExtensions: config.pageExtensions!,\n            pagesDir: NextBuildContext.pagesDir!,\n            appDir: NextBuildContext.appDir!,\n            pages: NextBuildContext.mappedPages!,\n            appPaths: NextBuildContext.mappedAppPages!,\n            previewMode: NextBuildContext.previewProps!,\n            rootPaths: NextBuildContext.mappedRootPaths!,\n            hasInstrumentationHook: NextBuildContext.hasInstrumentationHook!,\n            deferredEntriesFilter: 'only',\n          })\n        )\n    : null\n\n  const commonWebpackOptions = {\n    isServer: false,\n    isCompileMode: NextBuildContext.isCompileMode,\n    buildId: NextBuildContext.buildId!,\n    encryptionKey: NextBuildContext.encryptionKey!,\n    config: config,\n    appDir: NextBuildContext.appDir!,\n    pagesDir: NextBuildContext.pagesDir!,\n    rewrites: NextBuildContext.rewrites!,\n    originalRewrites: NextBuildContext.originalRewrites,\n    originalRedirects: NextBuildContext.originalRedirects,\n    noMangling: NextBuildContext.noMangling!,\n    clientRouterFilters: NextBuildContext.clientRouterFilters!,\n    previewProps: NextBuildContext.previewProps!,\n    allowedRevalidateHeaderKeys: NextBuildContext.allowedRevalidateHeaderKeys!,\n    fetchCacheKeyPrefix: NextBuildContext.fetchCacheKeyPrefix!,\n  }\n\n  const configs = await runWebpackSpan\n    .traceChild('generate-webpack-config')\n    .traceAsyncFn(async () => {\n      const info = await loadProjectInfo({\n        dir,\n        config: commonWebpackOptions.config,\n        dev: false,\n      })\n      return Promise.all([\n        getBaseWebpackConfig(dir, {\n          ...commonWebpackOptions,\n          middlewareMatchers: entrypoints.middlewareMatchers,\n          runWebpackSpan,\n          compilerType: COMPILER_NAMES.client,\n          entrypoints: entrypoints.client,\n          deferredEntrypoints: deferredEntrypoints?.client,\n          ...info,\n        }),\n        getBaseWebpackConfig(dir, {\n          ...commonWebpackOptions,\n          runWebpackSpan,\n          middlewareMatchers: entrypoints.middlewareMatchers,\n          compilerType: COMPILER_NAMES.server,\n          entrypoints: entrypoints.server,\n          deferredEntrypoints: deferredEntrypoints?.server,\n          ...info,\n        }),\n        getBaseWebpackConfig(dir, {\n          ...commonWebpackOptions,\n          runWebpackSpan,\n          middlewareMatchers: entrypoints.middlewareMatchers,\n          compilerType: COMPILER_NAMES.edgeServer,\n          entrypoints: entrypoints.edgeServer,\n          deferredEntrypoints: deferredEntrypoints?.edgeServer,\n          ...info,\n        }),\n      ])\n    })\n\n  const clientConfig = configs[0]\n  const serverConfig = configs[1]\n  const edgeConfig = configs[2]\n\n  if (\n    clientConfig.optimization &&\n    (clientConfig.optimization.minimize !== true ||\n      (clientConfig.optimization.minimizer &&\n        clientConfig.optimization.minimizer.length === 0))\n  ) {\n    Log.warn(\n      `Production code optimization has been disabled in your project. Read more: https://nextjs.org/docs/messages/minification-disabled`\n    )\n  }\n\n  webpackBuildStart = process.hrtime()\n\n  debug(`starting compiler`, compilerName)\n  // We run client and server compilation separately to optimize for memory usage\n  await runWebpackSpan.traceAsyncFn(async () => {\n    if (config.experimental.webpackMemoryOptimizations) {\n      stringBufferUtils.disableDualStringBufferCaching()\n      stringBufferUtils.enterStringInterningRange()\n    }\n\n    // Run the server compilers first and then the client\n    // compiler to track the boundary of server/client components.\n    let clientResult: SingleCompilerResult | null = null\n\n    // During the server compilations, entries of client components will be\n    // injected to this set and then will be consumed by the client compiler.\n    let serverResult: UnwrapPromise<ReturnType<typeof runCompiler>>[0] | null =\n      null\n    let edgeServerResult:\n      | UnwrapPromise<ReturnType<typeof runCompiler>>[0]\n      | null = null\n\n    let inputFileSystem: webpack.Compiler['inputFileSystem'] | undefined\n\n    if (!compilerName || compilerName === 'server') {\n      debug('starting server compiler')\n      const start = Date.now()\n      ;[serverResult, inputFileSystem] = await runCompiler(serverConfig, {\n        runWebpackSpan,\n        inputFileSystem,\n      })\n      debug(`server compiler finished ${Date.now() - start}ms`)\n    }\n\n    if (!compilerName || compilerName === 'edge-server') {\n      debug('starting edge-server compiler')\n      const start = Date.now()\n      ;[edgeServerResult, inputFileSystem] = edgeConfig\n        ? await runCompiler(edgeConfig, { runWebpackSpan, inputFileSystem })\n        : [null]\n      debug(`edge-server compiler finished ${Date.now() - start}ms`)\n    }\n\n    // Only continue if there were no errors\n    if (!serverResult?.errors.length && !edgeServerResult?.errors.length) {\n      const pluginState = getPluginState()\n      for (const key in pluginState.injectedClientEntries) {\n        const value = pluginState.injectedClientEntries[key]\n        const clientEntry = clientConfig.entry as webpack.EntryObject\n        if (key === APP_CLIENT_INTERNALS) {\n          clientEntry[CLIENT_STATIC_FILES_RUNTIME_MAIN_APP] = {\n            import: [\n              // TODO-APP: cast clientEntry[CLIENT_STATIC_FILES_RUNTIME_MAIN_APP] to type EntryDescription once it's available from webpack\n              // @ts-expect-error clientEntry['main-app'] is type EntryDescription { import: ... }\n              ...clientEntry[CLIENT_STATIC_FILES_RUNTIME_MAIN_APP].import,\n              value,\n            ],\n            layer: WEBPACK_LAYERS.appPagesBrowser,\n          }\n        } else {\n          clientEntry[key] = {\n            dependOn: [CLIENT_STATIC_FILES_RUNTIME_MAIN_APP],\n            import: value,\n            layer: WEBPACK_LAYERS.appPagesBrowser,\n          }\n        }\n      }\n\n      if (!compilerName || compilerName === 'client') {\n        debug('starting client compiler')\n        const start = Date.now()\n        ;[clientResult, inputFileSystem] = await runCompiler(clientConfig, {\n          runWebpackSpan,\n          inputFileSystem,\n        })\n        debug(`client compiler finished ${Date.now() - start}ms`)\n      }\n    }\n\n    if (config.experimental.webpackMemoryOptimizations) {\n      stringBufferUtils.exitStringInterningRange()\n    }\n    inputFileSystem?.purge?.()\n\n    result = {\n      warnings: [\n        ...(clientResult?.warnings ?? []),\n        ...(serverResult?.warnings ?? []),\n        ...(edgeServerResult?.warnings ?? []),\n      ].filter(nonNullable),\n      errors: [\n        ...(clientResult?.errors ?? []),\n        ...(serverResult?.errors ?? []),\n        ...(edgeServerResult?.errors ?? []),\n      ].filter(nonNullable),\n      stats: [\n        clientResult?.stats,\n        serverResult?.stats,\n        edgeServerResult?.stats,\n      ],\n    }\n  })\n  result = nextBuildSpan\n    .traceChild('format-webpack-messages')\n    .traceFn(() => formatWebpackMessages(result, true)) as CompilerResult\n\n  const telemetryPlugin = (clientConfig as webpack.Configuration).plugins?.find(\n    isTelemetryPlugin\n  )\n\n  const traceEntryPointsPlugin = (\n    serverConfig as webpack.Configuration\n  ).plugins?.find(isTraceEntryPointsPlugin)\n\n  const webpackBuildEnd = process.hrtime(webpackBuildStart)\n\n  if (result.errors.length > 0) {\n    // Only keep the first few errors. Others are often indicative\n    // of the same problem, but confuse the reader with noise.\n    if (result.errors.length > 5) {\n      result.errors.length = 5\n    }\n    let error = result.errors.filter(Boolean).join('\\n\\n')\n\n    console.error(red('Failed to compile.\\n'))\n\n    if (\n      error.indexOf('private-next-pages') > -1 &&\n      error.indexOf('does not contain a default export') > -1\n    ) {\n      const page_name_regex = /'private-next-pages\\/(?<page_name>[^']*)'/\n      const parsed = page_name_regex.exec(error)\n      const page_name = parsed && parsed.groups && parsed.groups.page_name\n      throw new Error(\n        `webpack build failed: found page without a React Component as default export in pages/${page_name}\\n\\nSee https://nextjs.org/docs/messages/page-without-valid-component for more info.`\n      )\n    }\n\n    console.error(error)\n    console.error()\n\n    if (\n      error.indexOf('private-next-pages') > -1 ||\n      error.indexOf('__next_polyfill__') > -1\n    ) {\n      const err = new Error(\n        'webpack config.resolve.alias was incorrectly overridden. https://nextjs.org/docs/messages/invalid-resolve-alias'\n      ) as NextError\n      err.code = 'INVALID_RESOLVE_ALIAS'\n      throw err\n    }\n    const err = new Error(\n      `Build failed because of ${process.env.NEXT_RSPACK ? 'Rspack' : 'webpack'} errors`\n    ) as NextError\n    err.code = 'WEBPACK_ERRORS'\n    throw err\n  } else {\n    const duration = hrtimeToSeconds(webpackBuildEnd)\n    const durationString = durationToString(duration)\n\n    if (result.warnings.length > 0) {\n      Log.warn(`Compiled with warnings in ${durationString}\\n`)\n      console.warn(result.warnings.filter(Boolean).join('\\n\\n'))\n      console.warn()\n    } else if (!compilerName) {\n      Log.event(`Compiled successfully in ${durationString}`)\n    }\n\n    return {\n      duration,\n      buildTraceContext: traceEntryPointsPlugin?.buildTraceContext,\n      pluginState: getPluginState(),\n      telemetryState: {\n        usages: telemetryPlugin?.usages() || [],\n        packagesUsedInServerSideProps:\n          telemetryPlugin?.packagesUsedInServerSideProps() || [],\n        useCacheTracker: telemetryPlugin?.getUseCacheTracker() || {},\n      },\n    }\n  }\n}\n\n// the main function when this file is run as a worker\nexport async function workerMain(workerData: {\n  compilerName: keyof typeof COMPILER_INDEXES\n  buildContext: typeof NextBuildContext\n  traceState: TraceState\n}): Promise<\n  Awaited<ReturnType<typeof webpackBuildImpl>> & {\n    debugTraceEvents: TraceEvent[]\n  }\n> {\n  // Clone the telemetry for worker\n  const telemetry = new Telemetry({\n    distDir: workerData.buildContext.config!.distDir,\n  })\n  setGlobal('telemetry', telemetry)\n  // setup new build context from the serialized data passed from the parent\n  Object.assign(NextBuildContext, workerData.buildContext)\n\n  // Initialize tracer state from the parent\n  initializeTraceState(workerData.traceState)\n\n  // Resume plugin state\n  resumePluginState(NextBuildContext.pluginState)\n\n  /// load the config because it's not serializable\n  const config = (NextBuildContext.config = await loadConfig(\n    PHASE_PRODUCTION_BUILD,\n    NextBuildContext.dir!,\n    {\n      debugPrerender: NextBuildContext.debugPrerender,\n      reactProductionProfiling: NextBuildContext.reactProductionProfiling,\n      bundler: process.env.NEXT_RSPACK ? Bundler.Rspack : Bundler.Webpack,\n    }\n  ))\n  await installBindings(config.experimental?.useWasmBinary)\n  NextBuildContext.nextBuildSpan = trace(\n    `worker-main-${workerData.compilerName}`\n  )\n\n  const result = await webpackBuildImpl(workerData.compilerName)\n  const { entriesTrace, chunksTrace } = result.buildTraceContext ?? {}\n  if (entriesTrace) {\n    const { entryNameMap, depModArray } = entriesTrace\n    if (depModArray) {\n      result.buildTraceContext!.entriesTrace!.depModArray = depModArray\n    }\n    if (entryNameMap) {\n      const entryEntries = entryNameMap\n      result.buildTraceContext!.entriesTrace!.entryNameMap = entryEntries\n    }\n  }\n  if (chunksTrace?.entryNameFilesMap) {\n    const entryNameFilesMap = chunksTrace.entryNameFilesMap\n    result.buildTraceContext!.chunksTrace!.entryNameFilesMap = entryNameFilesMap\n  }\n  NextBuildContext.nextBuildSpan.stop()\n  await telemetry.flush()\n\n  // Save CPU profile before worker exits\n  await saveCpuProfile()\n\n  return { ...result, debugTraceEvents: getTraceEvents() }\n}\n"],"names":["webpackBuildImpl","workerMain","debug","origDebug","isTelemetryPlugin","plugin","TelemetryPlugin","isTraceEntryPointsPlugin","TraceEntryPointsPlugin","compilerName","result","warnings","errors","stats","webpackBuildStart","nextBuildSpan","NextBuildContext","dir","config","process","env","NEXT_COMPILER_NAME","runWebpackSpan","traceChild","hasDeferredEntries","experimental","deferredEntries","length","entrypoints","traceAsyncFn","createEntrypoints","buildId","envFiles","loadedEnvFiles","isDev","rootDir","pageExtensions","pagesDir","appDir","pages","mappedPages","appPaths","mappedAppPages","previewMode","previewProps","rootPaths","mappedRootPaths","hasInstrumentationHook","deferredEntriesFilter","undefined","deferredEntrypoints","commonWebpackOptions","isServer","isCompileMode","encryptionKey","rewrites","originalRewrites","originalRedirects","noMangling","clientRouterFilters","allowedRevalidateHeaderKeys","fetchCacheKeyPrefix","configs","info","loadProjectInfo","dev","Promise","all","getBaseWebpackConfig","middlewareMatchers","compilerType","COMPILER_NAMES","client","server","edgeServer","clientConfig","serverConfig","edgeConfig","optimization","minimize","minimizer","Log","warn","hrtime","inputFileSystem","webpackMemoryOptimizations","stringBufferUtils","disableDualStringBufferCaching","enterStringInterningRange","clientResult","serverResult","edgeServerResult","start","Date","now","runCompiler","pluginState","getPluginState","key","injectedClientEntries","value","clientEntry","entry","APP_CLIENT_INTERNALS","CLIENT_STATIC_FILES_RUNTIME_MAIN_APP","import","layer","WEBPACK_LAYERS","appPagesBrowser","dependOn","exitStringInterningRange","purge","filter","nonNullable","traceFn","formatWebpackMessages","telemetryPlugin","plugins","find","traceEntryPointsPlugin","webpackBuildEnd","error","Boolean","join","console","red","indexOf","page_name_regex","parsed","exec","page_name","groups","Error","err","code","NEXT_RSPACK","duration","hrtimeToSeconds","durationString","durationToString","event","buildTraceContext","telemetryState","usages","packagesUsedInServerSideProps","useCacheTracker","getUseCacheTracker","workerData","telemetry","Telemetry","distDir","buildContext","setGlobal","Object","assign","initializeTraceState","traceState","resumePluginState","loadConfig","PHASE_PRODUCTION_BUILD","debugPrerender","reactProductionProfiling","bundler","Bundler","Rspack","Webpack","installBindings","useWasmBinary","trace","entriesTrace","chunksTrace","entryNameMap","depModArray","entryEntries","entryNameFilesMap","stop","flush","saveCpuProfile","debugTraceEvents","getTraceEvents"],"mappings":"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","ignoreList":[0]}