{"version":3,"sources":["../../../../src/server/dev/hot-reloader-webpack.ts"],"sourcesContent":["import type { NextConfigComplete } from '../config-shared'\nimport type { CustomRoutes } from '../../lib/load-custom-routes'\nimport type { Duplex } from 'stream'\nimport type { Telemetry } from '../../telemetry/storage'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { UrlObject } from 'url'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\n\nimport { type webpack, StringXor } from 'next/dist/compiled/webpack/webpack'\nimport {\n  getOverlayMiddleware,\n  getSourceMapMiddleware,\n  getOriginalStackFrames,\n} from './middleware-webpack'\nimport { WebpackHotMiddleware } from './hot-middleware'\nimport * as inspector from 'inspector'\nimport { join, relative, isAbsolute, posix, dirname } from 'path'\nimport {\n  createEntrypoints,\n  finalizeEntrypoint,\n  getClientEntry,\n  getEdgeServerEntry,\n  getAppEntry,\n  runDependingOnPageType,\n  getInstrumentationEntry,\n} from '../../build/entries'\nimport { createPagesMapping } from '../../build/route-discovery'\nimport { getStaticInfoIncludingLayouts } from '../../build/get-static-info-including-layouts'\nimport { watchCompilers } from '../../build/output'\nimport * as Log from '../../build/output/log'\nimport getBaseWebpackConfig, {\n  getCacheDirectories,\n  loadProjectInfo,\n} from '../../build/webpack-config'\nimport { APP_DIR_ALIAS, WEBPACK_LAYERS } from '../../lib/constants'\nimport { recursiveDeleteSyncWithAsyncRetries } from '../../lib/recursive-delete'\nimport {\n  BLOCKED_PAGES,\n  CLIENT_STATIC_FILES_RUNTIME_MAIN,\n  CLIENT_STATIC_FILES_RUNTIME_MAIN_APP,\n  CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n  COMPILER_NAMES,\n  RSC_MODULE_TYPES,\n} from '../../shared/lib/constants'\nimport type { __ApiPreviewProps } from '../api-utils'\nimport { findPageFile } from '../lib/find-page-file'\nimport {\n  BUILDING,\n  getEntries,\n  EntryTypes,\n  getInvalidator,\n  onDemandEntryHandler,\n} from './on-demand-entry-handler'\nimport { denormalizePagePath } from '../../shared/lib/page-path/denormalize-page-path'\nimport { normalizePathSep } from '../../shared/lib/page-path/normalize-path-sep'\nimport getRouteFromEntrypoint from '../get-route-from-entrypoint'\nimport {\n  difference,\n  isInstrumentationHookFile,\n  isMiddlewareFile,\n  isMiddlewareFilename,\n} from '../../build/utils'\nimport { DecodeError } from '../../shared/lib/utils'\nimport { type Span, trace } from '../../trace'\nimport { getProperError } from '../../lib/is-error'\nimport ws from 'next/dist/compiled/ws'\nimport { existsSync, promises as fs } from 'fs'\nimport type { UnwrapPromise } from '../../lib/coalesced-function'\nimport type { VersionInfo } from './parse-version-info'\nimport { isAPIRoute } from '../../lib/is-api-route'\nimport { getRouteLoaderEntry } from '../../build/webpack/loaders/next-route-loader'\nimport {\n  isInternalComponent,\n  isNonRoutePagesPage,\n} from '../../lib/is-internal-component'\nimport { RouteKind } from '../route-kind'\nimport {\n  HMR_MESSAGE_SENT_TO_BROWSER,\n  type NextJsHotReloaderInterface,\n} from './hot-reloader-types'\nimport type { HmrMessageSentToBrowser } from './hot-reloader-types'\nimport type { WebpackError } from 'webpack'\nimport { PAGE_TYPES } from '../../lib/page-types'\nimport { FAST_REFRESH_RUNTIME_RELOAD } from './messages'\nimport { getNextErrorFeedbackMiddleware } from '../../next-devtools/server/get-next-error-feedback-middleware'\nimport { getDevOverlayFontMiddleware } from '../../next-devtools/server/font/get-dev-overlay-font-middleware'\nimport { getDisableDevIndicatorMiddleware } from '../../next-devtools/server/dev-indicator-middleware'\nimport getWebpackBundler from '../../shared/lib/get-webpack-bundler'\nimport { getRestartDevServerMiddleware } from '../../next-devtools/server/restart-dev-server-middleware'\nimport { checkFileSystemCacheInvalidationAndCleanup } from '../../build/webpack/cache-invalidation'\nimport {\n  receiveBrowserLogsWebpack,\n  handleClientFileLogs,\n} from './browser-logs/receive-logs'\nimport {\n  devToolsConfigMiddleware,\n  getDevToolsConfig,\n} from '../../next-devtools/server/devtools-config-middleware'\nimport { getAttachNodejsDebuggerMiddleware } from '../../next-devtools/server/attach-nodejs-debugger-middleware'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n  connectReactDebugChannel,\n  connectReactDebugChannelForHtmlRequest,\n  deleteReactDebugChannelForHtmlRequest,\n  setReactDebugChannelForHtmlRequest,\n  type ReactDebugChannelForBrowser,\n} from './debug-channel'\nimport {\n  getVersionInfo,\n  matchNextPageBundleRequest,\n} from './hot-reloader-shared-utils'\nimport { getMcpMiddleware } from '../mcp/get-mcp-middleware'\nimport { setStackFrameResolver } from '../mcp/tools/utils/format-errors'\nimport { recordMcpTelemetry } from '../mcp/mcp-telemetry-tracker'\nimport { getFileLogger } from './browser-logs/file-logger'\nimport type { ServerCacheStatus } from '../../next-devtools/dev-overlay/cache-indicator'\nimport type { Lockfile } from '../../build/lockfile'\nimport {\n  sendSerializedErrorsToClient,\n  sendSerializedErrorsToClientForHtmlRequest,\n  setErrorsRscStreamForHtmlRequest,\n} from './serialized-errors'\n\nconst MILLISECONDS_IN_NANOSECOND = BigInt(1_000_000)\n\nfunction diff(a: Set<any>, b: Set<any>) {\n  return new Set([...a].filter((v) => !b.has(v)))\n}\n\nconst wsServer = new ws.Server({ noServer: true })\n\nexport async function renderScriptError(\n  res: ServerResponse,\n  error: Error,\n  { verbose = true } = {}\n): Promise<{ finished: true | undefined }> {\n  // Asks CDNs and others to not to cache the errored page\n  res.setHeader(\n    'Cache-Control',\n    'no-cache, no-store, max-age=0, must-revalidate'\n  )\n\n  if ((error as any).code === 'ENOENT') {\n    return { finished: undefined }\n  }\n\n  if (verbose) {\n    console.error(error.stack)\n  }\n  res.statusCode = 500\n  res.end('500 - Internal Error')\n  return { finished: true }\n}\n\nfunction addCorsSupport(req: IncomingMessage, res: ServerResponse) {\n  // Only rewrite CORS handling when URL matches a hot-reloader middleware\n  if (!req.url!.startsWith('/__next')) {\n    return { preflight: false }\n  }\n\n  if (!req.headers.origin) {\n    return { preflight: false }\n  }\n\n  res.setHeader('Access-Control-Allow-Origin', req.headers.origin)\n  res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET')\n  // Based on https://github.com/primus/access-control/blob/4cf1bc0e54b086c91e6aa44fb14966fa5ef7549c/index.js#L158\n  if (req.headers['access-control-request-headers']) {\n    res.setHeader(\n      'Access-Control-Allow-Headers',\n      req.headers['access-control-request-headers'] as string\n    )\n  }\n\n  if (req.method === 'OPTIONS') {\n    res.writeHead(200)\n    res.end()\n    return { preflight: true }\n  }\n\n  return { preflight: false }\n}\n\n// Iteratively look up the issuer till it ends up at the root\nfunction findEntryModule(\n  module: webpack.Module,\n  compilation: webpack.Compilation\n): any {\n  for (;;) {\n    const issuer = compilation.moduleGraph.getIssuer(module)\n    if (!issuer) return module\n    module = issuer\n  }\n}\n\nfunction erroredPages(compilation: webpack.Compilation) {\n  const failedPages: { [page: string]: WebpackError[] } = {}\n  for (const error of compilation.errors) {\n    if (!error.module) {\n      continue\n    }\n\n    const entryModule = findEntryModule(error.module, compilation)\n    const { name } = entryModule\n    if (!name) {\n      continue\n    }\n\n    // Only pages have to be reloaded\n    const enhancedName = getRouteFromEntrypoint(name)\n\n    if (!enhancedName) {\n      continue\n    }\n\n    if (!failedPages[enhancedName]) {\n      failedPages[enhancedName] = []\n    }\n\n    failedPages[enhancedName].push(error)\n  }\n\n  return failedPages\n}\n\nexport default class HotReloaderWebpack implements NextJsHotReloaderInterface {\n  private hasAppRouterEntrypoints: boolean\n  private hasPagesRouterEntrypoints: boolean\n  protected dir: string\n  protected buildId: string\n  private encryptionKey: string\n  protected middlewares: ((\n    req: IncomingMessage,\n    res: ServerResponse,\n    next: () => void\n  ) => Promise<void>)[]\n  protected pagesDir?: string\n  protected distDir: string\n  private webpackHotMiddleware?: WebpackHotMiddleware\n  protected config: NextConfigComplete\n  private clientStats: webpack.Stats | null\n  private clientError: Error | null = null\n  private serverError: Error | null = null\n  private hmrServerError: Error | null = null\n  private serverPrevDocumentHash: string | null\n  private serverChunkNames?: Set<string>\n  private prevChunkNames?: Set<any>\n  private onDemandEntries?: ReturnType<typeof onDemandEntryHandler>\n  protected previewProps: __ApiPreviewProps\n  private watcher: any\n  private rewrites: CustomRoutes['rewrites']\n  private fallbackWatcher: any\n  protected hotReloaderSpan: Span\n  private pagesMapping: { [key: string]: string } = {}\n  protected appDir?: string\n  private telemetry: Telemetry\n  private resetFetch: () => void\n  private lockfile: Lockfile | undefined\n  private versionInfo: VersionInfo = {\n    staleness: 'unknown',\n    installed: '0.0.0',\n  }\n  private devtoolsFrontendUrl: string | undefined\n  private reloadAfterInvalidation: boolean = false\n  private isSrcDir: boolean\n  private cacheStatusesByRequestId = new Map<string, ServerCacheStatus>()\n\n  public serverStats: webpack.Stats | null\n  public edgeServerStats: webpack.Stats | null\n  public multiCompiler?: webpack.MultiCompiler\n  public activeWebpackConfigs?: Array<\n    UnwrapPromise<ReturnType<typeof getBaseWebpackConfig>>\n  >\n\n  constructor(\n    dir: string,\n    {\n      config,\n      isSrcDir,\n      pagesDir,\n      distDir,\n      buildId,\n      encryptionKey,\n      previewProps,\n      rewrites,\n      appDir,\n      telemetry,\n      resetFetch,\n      lockfile,\n      onDevServerCleanup,\n    }: {\n      config: NextConfigComplete\n      isSrcDir: boolean\n      pagesDir?: string\n      distDir: string\n      buildId: string\n      encryptionKey: string\n      previewProps: __ApiPreviewProps\n      rewrites: CustomRoutes['rewrites']\n      appDir?: string\n      telemetry: Telemetry\n      resetFetch: () => void\n      lockfile: Lockfile | undefined\n      onDevServerCleanup: ((listener: () => Promise<void>) => void) | undefined\n    }\n  ) {\n    this.hasAppRouterEntrypoints = false\n    this.hasPagesRouterEntrypoints = false\n    this.buildId = buildId\n    this.encryptionKey = encryptionKey\n    this.dir = dir\n    this.isSrcDir = isSrcDir\n    this.middlewares = []\n    this.pagesDir = pagesDir\n    this.appDir = appDir\n    this.distDir = distDir\n    this.clientStats = null\n    this.serverStats = null\n    this.edgeServerStats = null\n    this.serverPrevDocumentHash = null\n    this.telemetry = telemetry\n    this.resetFetch = resetFetch\n    this.lockfile = lockfile\n\n    this.config = config\n    this.previewProps = previewProps\n    this.rewrites = rewrites\n    this.hotReloaderSpan = trace('hot-reloader', undefined, {\n      version: process.env.__NEXT_VERSION as string,\n    })\n    // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing\n    // of the current `next dev` invocation.\n    this.hotReloaderSpan.stop()\n\n    // Initialize log monitor for file logging\n    // Enable logging by default in development mode\n    const mcpServerEnabled = !!config.experimental.mcpServer\n    const fileLogger = getFileLogger()\n    fileLogger.initialize(this.distDir, mcpServerEnabled)\n\n    onDevServerCleanup?.(async () => {\n      await lockfile?.unlock()\n    })\n  }\n\n  public async run(\n    req: IncomingMessage,\n    res: ServerResponse,\n    parsedUrl: UrlObject\n  ): Promise<{ finished?: true }> {\n    // Usually CORS support is not needed for the hot-reloader (this is dev only feature)\n    // With when the app runs for multi-zones support behind a proxy,\n    // the current page is trying to access this URL via assetPrefix.\n    // That's when the CORS support is needed.\n    const { preflight } = addCorsSupport(req, res)\n    if (preflight) {\n      return {}\n    }\n\n    // When a request comes in that is a page bundle, e.g. /_next/static/<buildid>/pages/index.js\n    // we have to compile the page using on-demand-entries, this middleware will handle doing that\n    // by adding the page to on-demand-entries, waiting till it's done\n    // and then the bundle will be served like usual by the actual route in server/index.js\n    const handlePageBundleRequest = async (\n      pageBundleRes: ServerResponse,\n      parsedPageBundleUrl: UrlObject\n    ): Promise<{ finished?: true }> => {\n      const { pathname } = parsedPageBundleUrl\n      if (!pathname) return {}\n\n      const params = matchNextPageBundleRequest(pathname)\n      if (!params) return {}\n\n      let decodedPagePath: string\n\n      try {\n        decodedPagePath = `/${params.path\n          .map((param: string) => decodeURIComponent(param))\n          .join('/')}`\n      } catch (_) {\n        throw new DecodeError('failed to decode param')\n      }\n\n      const page = denormalizePagePath(decodedPagePath)\n\n      if (page === '/_error' || BLOCKED_PAGES.indexOf(page) === -1) {\n        try {\n          await this.ensurePage({ page, clientOnly: true, url: req.url })\n        } catch (error) {\n          return await renderScriptError(pageBundleRes, getProperError(error))\n        }\n\n        const errors = await this.getCompilationErrors(page)\n        if (errors.length > 0) {\n          return await renderScriptError(pageBundleRes, errors[0], {\n            verbose: false,\n          })\n        }\n      }\n\n      return {}\n    }\n\n    const { finished } = await handlePageBundleRequest(res, parsedUrl)\n\n    for (const middleware of this.middlewares) {\n      let calledNext = false\n\n      await middleware(req, res, () => {\n        calledNext = true\n      })\n\n      if (!calledNext) {\n        return { finished: true }\n      }\n    }\n\n    return { finished }\n  }\n\n  public setHmrServerError(error: Error | null): void {\n    this.hmrServerError = error\n  }\n\n  public clearHmrServerError(): void {\n    if (this.hmrServerError) {\n      this.setHmrServerError(null)\n      this.send({\n        type: HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE,\n        data: 'clear hmr server error',\n      })\n    }\n  }\n\n  protected async refreshServerComponents(hash: string): Promise<void> {\n    this.send({\n      type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES,\n      hash,\n      // TODO: granular reloading of changes\n      // entrypoints: serverComponentChanges,\n    })\n  }\n\n  public onHMR(\n    req: IncomingMessage,\n    _socket: Duplex,\n    head: Buffer,\n    callback: (\n      client: ws.WebSocket,\n      context: { isLegacyClient: boolean }\n    ) => void\n  ) {\n    wsServer.handleUpgrade(req, req.socket, head, (client) => {\n      const htmlRequestId = req.url\n        ? new URL(req.url, 'http://n').searchParams.get('id')\n        : null\n\n      if (!this.webpackHotMiddleware) {\n        throw new InvariantError('Did not start HotReloaderWebpack.')\n      }\n\n      this.webpackHotMiddleware.onHMR(client, htmlRequestId)\n      this.onDemandEntries?.onHMR(client, () => this.hmrServerError)\n\n      const enableCacheComponents = this.config.cacheComponents\n      // Clients with a request ID are inferred App Router clients. If Cache\n      // Components is not enabled, we consider those legacy clients. Pages\n      // Router clients are also considered legacy clients. TODO: Maybe mark\n      // clients as App Router / Pages Router clients explicitly, instead of\n      // inferring it from the presence of a request ID.\n      const isLegacyClient = !htmlRequestId || !enableCacheComponents\n\n      callback(client, { isLegacyClient })\n\n      client.addEventListener('message', async ({ data }) => {\n        data = typeof data !== 'string' ? data.toString() : data\n\n        try {\n          const payload = JSON.parse(data)\n\n          let traceChild:\n            | {\n                name: string\n                startTime?: bigint\n                endTime?: bigint\n                attrs?: Record<string, number | string | undefined | string[]>\n              }\n            | undefined\n\n          switch (payload.event) {\n            case 'span-end': {\n              traceChild = {\n                name: payload.spanName,\n                startTime:\n                  BigInt(Math.floor(payload.startTime)) *\n                  MILLISECONDS_IN_NANOSECOND,\n                attrs: payload.attributes,\n                endTime:\n                  BigInt(Math.floor(payload.endTime)) *\n                  MILLISECONDS_IN_NANOSECOND,\n              }\n              break\n            }\n            case 'client-hmr-latency': {\n              traceChild = {\n                name: payload.event,\n                startTime:\n                  BigInt(payload.startTime) * MILLISECONDS_IN_NANOSECOND,\n                endTime: BigInt(payload.endTime) * MILLISECONDS_IN_NANOSECOND,\n                attrs: {\n                  updatedModules: payload.updatedModules.map((m: string) =>\n                    m\n                      .replace(`(${WEBPACK_LAYERS.appPagesBrowser})/`, '')\n                      .replace(/^\\.\\//, '[project]/')\n                  ),\n                  page: payload.page,\n                  isPageHidden: payload.isPageHidden,\n                },\n              }\n              break\n            }\n            case 'client-reload-page':\n            case 'client-success': {\n              traceChild = {\n                name: payload.event,\n              }\n              break\n            }\n            case 'client-error': {\n              traceChild = {\n                name: payload.event,\n                attrs: { errorCount: payload.errorCount },\n              }\n              break\n            }\n            case 'client-warning': {\n              traceChild = {\n                name: payload.event,\n                attrs: { warningCount: payload.warningCount },\n              }\n              break\n            }\n            case 'client-removed-page':\n            case 'client-added-page': {\n              traceChild = {\n                name: payload.event,\n                attrs: { page: payload.page || '' },\n              }\n              break\n            }\n            case 'client-full-reload': {\n              const { event, stackTrace, hadRuntimeError } = payload\n\n              traceChild = {\n                name: event,\n                attrs: { stackTrace: stackTrace ?? '' },\n              }\n\n              if (hadRuntimeError) {\n                Log.warn(FAST_REFRESH_RUNTIME_RELOAD)\n                break\n              }\n\n              let fileMessage = ''\n              if (stackTrace) {\n                const file = /Aborted because (.+) is not accepted/.exec(\n                  stackTrace\n                )?.[1]\n                if (file) {\n                  // `file` is filepath in `pages/` but it can be a webpack url.\n                  // If it's a webpack loader URL, it will include the app-pages layer\n                  if (file.startsWith(`(${WEBPACK_LAYERS.appPagesBrowser})/`)) {\n                    const fileUrl = new URL(file, 'file://')\n                    const cwd = process.cwd()\n                    const modules = fileUrl.searchParams\n                      .getAll('modules')\n                      .map((filepath) => filepath.slice(cwd.length + 1))\n                      .filter(\n                        (filepath) => !filepath.startsWith('node_modules')\n                      )\n\n                    if (modules.length > 0) {\n                      fileMessage = ` when ${modules.join(', ')} changed`\n                    }\n                  } else if (\n                    // Handle known webpack layers\n                    file.startsWith(`(${WEBPACK_LAYERS.pagesDirBrowser})/`)\n                  ) {\n                    const cleanedFilePath = file.slice(\n                      `(${WEBPACK_LAYERS.pagesDirBrowser})/`.length\n                    )\n\n                    fileMessage = ` when ${cleanedFilePath} changed`\n                  } else {\n                    fileMessage = ` when ${file} changed`\n                  }\n                }\n              }\n\n              Log.warn(\n                `Fast Refresh had to perform a full reload${fileMessage}. Read more: https://nextjs.org/docs/messages/fast-refresh-reload`\n              )\n              break\n            }\n            case 'browser-logs': {\n              const browserToTerminalConfig =\n                this.config.logging && this.config.logging.browserToTerminal\n              if (browserToTerminalConfig) {\n                await receiveBrowserLogsWebpack({\n                  entries: payload.entries,\n                  router: payload.router,\n                  sourceType: payload.sourceType,\n                  clientStats: () => this.clientStats,\n                  serverStats: () => this.serverStats,\n                  edgeServerStats: () => this.edgeServerStats,\n                  rootDirectory: this.dir,\n                  distDir: this.distDir,\n                  config: browserToTerminalConfig,\n                })\n              }\n              break\n            }\n            case 'client-file-logs': {\n              // Always log to file regardless of terminal flag\n              await handleClientFileLogs(payload.logs)\n              break\n            }\n            case 'ping': {\n              // Handle ping events to keep WebSocket connections alive\n              // No-op - just acknowledge the ping\n              break\n            }\n            default: {\n              break\n            }\n          }\n\n          if (traceChild) {\n            this.hotReloaderSpan.manualTraceChild(\n              traceChild.name,\n              traceChild.startTime,\n              traceChild.endTime,\n              { ...traceChild.attrs, clientId: payload.id }\n            )\n          }\n        } catch (_) {\n          // invalid WebSocket message\n        }\n      })\n\n      if (htmlRequestId) {\n        connectReactDebugChannelForHtmlRequest(\n          htmlRequestId,\n          this.sendToClient.bind(this, client)\n        )\n\n        sendSerializedErrorsToClientForHtmlRequest(\n          htmlRequestId,\n          this.sendToClient.bind(this, client)\n        )\n\n        if (enableCacheComponents) {\n          const status = this.cacheStatusesByRequestId.get(htmlRequestId)\n          if (status) {\n            this.sendToClient(client, {\n              type: HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR,\n              state: status,\n            })\n            this.cacheStatusesByRequestId.delete(htmlRequestId)\n          }\n        }\n      }\n\n      client.on('close', () => {\n        this.webpackHotMiddleware?.deleteClient(client, htmlRequestId)\n\n        if (htmlRequestId) {\n          deleteReactDebugChannelForHtmlRequest(htmlRequestId)\n        }\n      })\n    })\n  }\n\n  private async clean(span: Span): Promise<void> {\n    return span\n      .traceChild('clean')\n      .traceAsyncFn(() =>\n        recursiveDeleteSyncWithAsyncRetries(\n          join(this.dir, this.config.distDir),\n          /^(cache|lock)/\n        )\n      )\n  }\n\n  private async getWebpackConfig(span: Span) {\n    const webpackConfigSpan = span.traceChild('get-webpack-config')\n\n    const pageExtensions = this.config.pageExtensions\n\n    return webpackConfigSpan.traceAsyncFn(async () => {\n      const pagePaths = !this.pagesDir\n        ? ([] as (string | null)[])\n        : await webpackConfigSpan\n            .traceChild('get-page-paths')\n            .traceAsyncFn(() =>\n              Promise.all([\n                findPageFile(this.pagesDir!, '/_app', pageExtensions, false),\n                findPageFile(\n                  this.pagesDir!,\n                  '/_document',\n                  pageExtensions,\n                  false\n                ),\n              ])\n            )\n\n      this.pagesMapping = await webpackConfigSpan\n        .traceChild('create-pages-mapping')\n        .traceAsyncFn(() =>\n          createPagesMapping({\n            isDev: true,\n            pageExtensions: this.config.pageExtensions,\n            pagesType: PAGE_TYPES.PAGES,\n            pagePaths: pagePaths.filter(\n              (i: string | null): i is string => typeof i === 'string'\n            ),\n            pagesDir: this.pagesDir,\n            appDir: this.appDir,\n            appDirOnly: Boolean(this.appDir && !this.pagesDir),\n          })\n        )\n\n      const entrypoints = await webpackConfigSpan\n        .traceChild('create-entrypoints')\n        .traceAsyncFn(() =>\n          createEntrypoints({\n            appDir: this.appDir,\n            buildId: this.buildId,\n            config: this.config,\n            envFiles: [],\n            isDev: true,\n            pages: this.pagesMapping,\n            pagesDir: this.pagesDir,\n            previewMode: this.previewProps,\n            rootDir: this.dir,\n            pageExtensions: this.config.pageExtensions,\n          })\n        )\n\n      const commonWebpackOptions = {\n        dev: true,\n        buildId: this.buildId,\n        encryptionKey: this.encryptionKey,\n        config: this.config,\n        pagesDir: this.pagesDir,\n        rewrites: this.rewrites,\n        originalRewrites: this.config._originalRewrites,\n        originalRedirects: this.config._originalRedirects,\n        runWebpackSpan: this.hotReloaderSpan,\n        appDir: this.appDir,\n        previewProps: this.previewProps,\n      }\n\n      return webpackConfigSpan\n        .traceChild('generate-webpack-config')\n        .traceAsyncFn(async () => {\n          const info = await loadProjectInfo({\n            dir: this.dir,\n            config: commonWebpackOptions.config,\n            dev: true,\n          })\n          return Promise.all([\n            // order is important here\n            getBaseWebpackConfig(this.dir, {\n              ...commonWebpackOptions,\n              compilerType: COMPILER_NAMES.client,\n              entrypoints: entrypoints.client,\n              ...info,\n            }),\n            getBaseWebpackConfig(this.dir, {\n              ...commonWebpackOptions,\n              compilerType: COMPILER_NAMES.server,\n              entrypoints: entrypoints.server,\n              ...info,\n            }),\n            getBaseWebpackConfig(this.dir, {\n              ...commonWebpackOptions,\n              compilerType: COMPILER_NAMES.edgeServer,\n              entrypoints: entrypoints.edgeServer,\n              ...info,\n            }),\n          ])\n        })\n    })\n  }\n\n  public async buildFallbackError(): Promise<void> {\n    if (this.fallbackWatcher) return\n\n    const info = await loadProjectInfo({\n      dir: this.dir,\n      config: this.config,\n      dev: true,\n    })\n    const fallbackConfig = await getBaseWebpackConfig(this.dir, {\n      previewProps: this.previewProps,\n      runWebpackSpan: this.hotReloaderSpan,\n      dev: true,\n      compilerType: COMPILER_NAMES.client,\n      config: this.config,\n      buildId: this.buildId,\n      encryptionKey: this.encryptionKey,\n      appDir: this.appDir,\n      pagesDir: this.pagesDir,\n      rewrites: {\n        beforeFiles: [],\n        afterFiles: [],\n        fallback: [],\n      },\n      originalRewrites: {\n        beforeFiles: [],\n        afterFiles: [],\n        fallback: [],\n      },\n      originalRedirects: [],\n      isDevFallback: true,\n      entrypoints: (\n        await createEntrypoints({\n          appDir: this.appDir,\n          buildId: this.buildId,\n          config: this.config,\n          envFiles: [],\n          isDev: true,\n          pages: {\n            '/_app': 'next/dist/pages/_app',\n            '/_error': 'next/dist/pages/_error',\n          },\n          pagesDir: this.pagesDir,\n          previewMode: this.previewProps,\n          rootDir: this.dir,\n          pageExtensions: this.config.pageExtensions,\n        })\n      ).client,\n      ...info,\n    })\n\n    const fallbackCompiler = getWebpackBundler()(fallbackConfig)\n\n    this.fallbackWatcher = await new Promise((resolve) => {\n      let bootedFallbackCompiler = false\n      fallbackCompiler.watch(\n        // @ts-ignore webpack supports an array of watchOptions when using a multiCompiler\n        fallbackConfig.watchOptions,\n        // Errors are handled separately\n        (_err: any) => {\n          if (!bootedFallbackCompiler) {\n            bootedFallbackCompiler = true\n            resolve(true)\n          }\n        }\n      )\n    })\n  }\n\n  private async tracedGetVersionInfo(span: Span) {\n    const versionInfoSpan = span.traceChild('get-version-info')\n    return versionInfoSpan.traceAsyncFn<VersionInfo>(async () =>\n      getVersionInfo()\n    )\n  }\n\n  public async start(): Promise<void> {\n    const startSpan = this.hotReloaderSpan.traceChild('start')\n    startSpan.stop() // Stop immediately to create an artificial parent span\n\n    this.versionInfo = await this.tracedGetVersionInfo(startSpan)\n\n    const inspectorURLRaw = inspector.url()\n    if (inspectorURLRaw !== undefined) {\n      const inspectorURL = new URL(inspectorURLRaw)\n\n      let debugInfo\n      try {\n        const debugInfoList = await fetch(\n          `http://${inspectorURL.host}/json/list`\n        ).then((res) => res.json())\n        debugInfo = debugInfoList[0]\n      } catch {}\n      if (debugInfo) {\n        this.devtoolsFrontendUrl = debugInfo.devtoolsFrontendUrl\n      }\n    }\n\n    await this.clean(startSpan)\n    // Ensure distDir exists before writing package.json\n    await fs.mkdir(this.distDir, { recursive: true })\n\n    const initialDevToolsConfig = await getDevToolsConfig(this.distDir)\n\n    const distPackageJsonPath = join(this.distDir, 'package.json')\n    // Ensure commonjs handling is used for files in the distDir (generally .next)\n    // Files outside of the distDir can be \"type\": \"module\"\n    await fs.writeFile(distPackageJsonPath, '{\"type\": \"commonjs\"}')\n\n    this.activeWebpackConfigs = await this.getWebpackConfig(startSpan)\n\n    for (const config of this.activeWebpackConfigs) {\n      const defaultEntry = config.entry\n      config.entry = async (...args) => {\n        const outputPath = this.multiCompiler?.outputPath || ''\n        const entries = getEntries(outputPath)\n        // @ts-ignore entry is always a function\n        const entrypoints = await defaultEntry(...args)\n        const isClientCompilation = config.name === COMPILER_NAMES.client\n        const isNodeServerCompilation = config.name === COMPILER_NAMES.server\n        const isEdgeServerCompilation =\n          config.name === COMPILER_NAMES.edgeServer\n\n        await Promise.all(\n          Object.keys(entries).map(async (entryKey) => {\n            const entryData = entries[entryKey]\n            const { bundlePath, dispose } = entryData\n\n            const result =\n              /^(client|server|edge-server)@(app|pages|root)@(.*)/g.exec(\n                entryKey\n              )\n            const [, key /* pageType */, , page] = result! // this match should always happen\n\n            if (key === COMPILER_NAMES.client && !isClientCompilation) return\n            if (key === COMPILER_NAMES.server && !isNodeServerCompilation)\n              return\n            if (key === COMPILER_NAMES.edgeServer && !isEdgeServerCompilation)\n              return\n\n            const isEntry = entryData.type === EntryTypes.ENTRY\n            const isChildEntry = entryData.type === EntryTypes.CHILD_ENTRY\n\n            // Check if the page was removed or disposed and remove it\n            if (isEntry) {\n              const pageExists =\n                !dispose && existsSync(entryData.absolutePagePath)\n              if (!pageExists) {\n                delete entries[entryKey]\n                return\n              }\n            }\n\n            // For child entries, if it has an entry file and it's gone, remove it\n            if (isChildEntry) {\n              if (entryData.absoluteEntryFilePath) {\n                const pageExists =\n                  !dispose && existsSync(entryData.absoluteEntryFilePath)\n                if (!pageExists) {\n                  delete entries[entryKey]\n                  return\n                }\n              }\n            }\n\n            // Ensure _error is considered a `pages` page.\n            if (page === '/_error') {\n              this.hasPagesRouterEntrypoints = true\n            }\n\n            const hasAppDir = !!this.appDir\n            const isAppPath = hasAppDir && bundlePath.startsWith('app/')\n            const staticInfo = isEntry\n              ? await getStaticInfoIncludingLayouts({\n                  isInsideAppDir: isAppPath,\n                  pageExtensions: this.config.pageExtensions,\n                  pageFilePath: entryData.absolutePagePath,\n                  appDir: this.appDir,\n                  config: this.config,\n                  isDev: true,\n                  page,\n                })\n              : undefined\n\n            const isServerComponent =\n              isAppPath && staticInfo?.rsc !== RSC_MODULE_TYPES.client\n\n            const pageType: PAGE_TYPES = entryData.bundlePath.startsWith(\n              'pages/'\n            )\n              ? PAGE_TYPES.PAGES\n              : entryData.bundlePath.startsWith('app/')\n                ? PAGE_TYPES.APP\n                : PAGE_TYPES.ROOT\n\n            if (pageType === 'pages') {\n              this.hasPagesRouterEntrypoints = true\n            }\n            if (pageType === 'app') {\n              this.hasAppRouterEntrypoints = true\n            }\n\n            const isInstrumentation =\n              isInstrumentationHookFile(page) && pageType === PAGE_TYPES.ROOT\n\n            let pageRuntime = staticInfo?.runtime\n\n            runDependingOnPageType({\n              page,\n              pageRuntime,\n              pageType,\n              onEdgeServer: () => {\n                // TODO-APP: verify if child entry should support.\n                if (!isEdgeServerCompilation || !isEntry) return\n                entries[entryKey].status = BUILDING\n\n                if (isInstrumentation) {\n                  const normalizedBundlePath = bundlePath.replace('src/', '')\n                  entrypoints[normalizedBundlePath] = finalizeEntrypoint({\n                    compilerType: COMPILER_NAMES.edgeServer,\n                    name: normalizedBundlePath,\n                    value: getInstrumentationEntry({\n                      absolutePagePath: entryData.absolutePagePath,\n                      isEdgeServer: true,\n                      isDev: true,\n                    }),\n                    isServerComponent: true,\n                    hasAppDir,\n                  })\n                  return\n                }\n                const appDirLoader = isAppPath\n                  ? getAppEntry({\n                      name: bundlePath,\n                      page,\n                      appPaths: entryData.appPaths,\n                      allNormalizedAppPaths: null, // Not available in dev mode\n                      pagePath: posix.join(\n                        APP_DIR_ALIAS,\n                        relative(\n                          this.appDir!,\n                          entryData.absolutePagePath\n                        ).replace(/\\\\/g, '/')\n                      ),\n                      appDir: this.appDir!,\n                      pageExtensions: this.config.pageExtensions,\n                      rootDir: this.dir,\n                      isDev: true,\n                      tsconfigPath: this.config.typescript.tsconfigPath,\n                      basePath: this.config.basePath,\n                      assetPrefix: this.config.assetPrefix,\n                      nextConfigOutput: this.config.output,\n                      preferredRegion: staticInfo?.preferredRegion,\n                      middlewareConfig: Buffer.from(\n                        JSON.stringify(staticInfo?.middleware || {})\n                      ).toString('base64'),\n                      isGlobalNotFoundEnabled: this.config.experimental\n                        .globalNotFound\n                        ? true\n                        : undefined,\n                    }).import\n                  : undefined\n\n                entrypoints[bundlePath] = finalizeEntrypoint({\n                  compilerType: COMPILER_NAMES.edgeServer,\n                  name: bundlePath,\n                  value: getEdgeServerEntry({\n                    absolutePagePath: entryData.absolutePagePath,\n                    rootDir: this.dir,\n                    buildId: this.buildId,\n                    bundlePath,\n                    config: this.config,\n                    isDev: true,\n                    page,\n                    pages: this.pagesMapping,\n                    isServerComponent,\n                    appDirLoader,\n                    pagesType: isAppPath ? PAGE_TYPES.APP : PAGE_TYPES.PAGES,\n                    preferredRegion: staticInfo?.preferredRegion,\n                  }),\n                  hasAppDir,\n                })\n              },\n              onClient: () => {\n                if (!isClientCompilation) return\n                if (isChildEntry) {\n                  entries[entryKey].status = BUILDING\n                  entrypoints[bundlePath] = finalizeEntrypoint({\n                    name: bundlePath,\n                    compilerType: COMPILER_NAMES.client,\n                    value: entryData.request,\n                    hasAppDir,\n                  })\n                } else {\n                  entries[entryKey].status = BUILDING\n                  entrypoints[bundlePath] = finalizeEntrypoint({\n                    name: bundlePath,\n                    compilerType: COMPILER_NAMES.client,\n                    value: getClientEntry({\n                      absolutePagePath: entryData.absolutePagePath,\n                      page,\n                    }),\n                    hasAppDir,\n                  })\n                }\n              },\n              onServer: () => {\n                // TODO-APP: verify if child entry should support.\n                if (!isNodeServerCompilation || !isEntry) return\n                entries[entryKey].status = BUILDING\n                let relativeRequest = relative(\n                  config.context!,\n                  entryData.absolutePagePath\n                )\n                if (\n                  !isAbsolute(relativeRequest) &&\n                  !relativeRequest.startsWith('../')\n                ) {\n                  relativeRequest = `./${relativeRequest}`\n                }\n\n                let value: { import: string; layer?: string } | string\n                if (isInstrumentation) {\n                  value = getInstrumentationEntry({\n                    absolutePagePath: entryData.absolutePagePath,\n                    isEdgeServer: false,\n                    isDev: true,\n                  })\n                  entrypoints[bundlePath] = finalizeEntrypoint({\n                    compilerType: COMPILER_NAMES.server,\n                    name: bundlePath,\n                    isServerComponent: true,\n                    value,\n                    hasAppDir,\n                  })\n                } else if (isMiddlewareFile(page)) {\n                  value = getEdgeServerEntry({\n                    absolutePagePath: entryData.absolutePagePath,\n                    rootDir: this.dir,\n                    buildId: this.buildId,\n                    bundlePath,\n                    config: this.config,\n                    isDev: true,\n                    page,\n                    pages: this.pagesMapping,\n                    isServerComponent,\n                    pagesType: PAGE_TYPES.PAGES,\n                    preferredRegion: staticInfo?.preferredRegion,\n                  })\n                } else if (isAppPath) {\n                  // This path normalization is critical for webpack to resolve the next internals as entry.\n                  const pagePath = entryData.absolutePagePath.startsWith(\n                    dirname(require.resolve('next/package.json'))\n                  )\n                    ? entryData.absolutePagePath\n                    : posix.join(\n                        APP_DIR_ALIAS,\n                        relative(\n                          this.appDir!,\n                          entryData.absolutePagePath\n                        ).replace(/\\\\/g, '/')\n                      )\n                  value = getAppEntry({\n                    name: bundlePath,\n                    page,\n                    appPaths: entryData.appPaths,\n                    allNormalizedAppPaths: null, // Not available in dev mode\n                    pagePath,\n                    appDir: this.appDir!,\n                    pageExtensions: this.config.pageExtensions,\n                    rootDir: this.dir,\n                    isDev: true,\n                    tsconfigPath: this.config.typescript.tsconfigPath,\n                    basePath: this.config.basePath,\n                    assetPrefix: this.config.assetPrefix,\n                    nextConfigOutput: this.config.output,\n                    preferredRegion: staticInfo?.preferredRegion,\n                    middlewareConfig: Buffer.from(\n                      JSON.stringify(staticInfo?.middleware || {})\n                    ).toString('base64'),\n                    isGlobalNotFoundEnabled: this.config.experimental\n                      .globalNotFound\n                      ? true\n                      : undefined,\n                  })\n                } else if (isAPIRoute(page)) {\n                  value = getRouteLoaderEntry({\n                    kind: RouteKind.PAGES_API,\n                    page,\n                    absolutePagePath: relativeRequest,\n                    preferredRegion: staticInfo?.preferredRegion,\n                    middlewareConfig: staticInfo?.middleware || {},\n                  })\n                } else if (\n                  !isMiddlewareFile(page) &&\n                  !isInternalComponent(relativeRequest) &&\n                  !isNonRoutePagesPage(page) &&\n                  !isInstrumentation\n                ) {\n                  value = getRouteLoaderEntry({\n                    kind: RouteKind.PAGES,\n                    page,\n                    pages: this.pagesMapping,\n                    absolutePagePath: relativeRequest,\n                    preferredRegion: staticInfo?.preferredRegion,\n                    middlewareConfig: staticInfo?.middleware ?? {},\n                  })\n                } else {\n                  value = relativeRequest\n                }\n\n                entrypoints[bundlePath] = finalizeEntrypoint({\n                  compilerType: COMPILER_NAMES.server,\n                  name: bundlePath,\n                  isServerComponent,\n                  value,\n                  hasAppDir,\n                })\n              },\n            })\n          })\n        )\n        if (!this.hasPagesRouterEntrypoints) {\n          delete entrypoints[CLIENT_STATIC_FILES_RUNTIME_MAIN]\n          delete entrypoints['pages/_app']\n          delete entrypoints['pages/_error']\n          delete entrypoints['/_error']\n          delete entrypoints['pages/_document']\n        }\n        // Remove React Refresh entrypoint chunk as `app` doesn't require it.\n        if (!this.hasPagesRouterEntrypoints) {\n          delete entrypoints[CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH]\n        }\n        if (!this.hasAppRouterEntrypoints) {\n          delete entrypoints[CLIENT_STATIC_FILES_RUNTIME_MAIN_APP]\n        }\n\n        return entrypoints\n      }\n    }\n\n    // Enable building of client compilation before server compilation in development\n    // @ts-ignore webpack 5\n    this.activeWebpackConfigs.parallelism = 1\n\n    await Promise.all(\n      Array.from(getCacheDirectories(this.activeWebpackConfigs)).map(\n        checkFileSystemCacheInvalidationAndCleanup\n      )\n    )\n    this.multiCompiler = getWebpackBundler()(\n      this.activeWebpackConfigs\n    ) as unknown as webpack.MultiCompiler\n\n    await this.afterCompile(this.multiCompiler)\n\n    // Copy over the filesystem so that it is shared between all compilers.\n    const inputFileSystem = this.multiCompiler.compilers[0].inputFileSystem\n    for (const compiler of this.multiCompiler.compilers) {\n      compiler.inputFileSystem = inputFileSystem\n      // This is set for the initial compile. After that Watching class in webpack adds it.\n      compiler.fsStartTime = Date.now()\n      // Ensure NodeEnvironmentPlugin doesn't purge the inputFileSystem. Purging is handled in `done` below.\n      compiler.hooks.beforeRun.intercept({\n        register(tapInfo: any) {\n          if (tapInfo.name === 'NodeEnvironmentPlugin') {\n            return null\n          }\n          return tapInfo\n        },\n      })\n    }\n\n    this.multiCompiler.hooks.done.tap('NextjsHotReloader', () => {\n      inputFileSystem?.purge?.()\n    })\n    watchCompilers(\n      this.multiCompiler.compilers[0],\n      this.multiCompiler.compilers[1],\n      this.multiCompiler.compilers[2]\n    )\n\n    // Watch for changes to client/server page files so we can tell when just\n    // the server file changes and trigger a reload for GS(S)P pages\n    const changedClientPages = new Set<string>()\n    const changedServerPages = new Set<string>()\n    const changedEdgeServerPages = new Set<string>()\n\n    const changedServerComponentPages = new Set<string>()\n    const changedCSSImportPages = new Set<string>()\n\n    const prevClientPageHashes = new Map<string, string>()\n    const prevServerPageHashes = new Map<string, string>()\n    const prevEdgeServerPageHashes = new Map<string, string>()\n    const prevCSSImportModuleHashes = new Map<string, string>()\n\n    const pageExtensionRegex = new RegExp(\n      `\\\\.(?:${this.config.pageExtensions.join('|')})$`\n    )\n\n    const trackPageChanges =\n      (\n        pageHashMap: Map<string, string>,\n        changedItems: Set<string>,\n        serverComponentChangedItems?: Set<string>\n      ) =>\n      (stats: webpack.Compilation) => {\n        try {\n          stats.entrypoints.forEach((entry, key) => {\n            if (\n              key.startsWith('pages/') ||\n              key.startsWith('app/') ||\n              isMiddlewareFilename(key)\n            ) {\n              // TODO this doesn't handle on demand loaded chunks\n              entry.chunks.forEach((chunk) => {\n                if (chunk.id === key) {\n                  const modsIterable: any =\n                    stats.chunkGraph.getChunkModulesIterable(chunk)\n\n                  let hasCSSModuleChanges = false\n                  let chunksHash = new StringXor()\n                  let chunksHashServerLayer = new StringXor()\n\n                  modsIterable.forEach((mod: any) => {\n                    if (\n                      mod.resource &&\n                      mod.resource.replace(/\\\\/g, '/').includes(key) &&\n                      // Shouldn't match CSS modules, etc.\n                      pageExtensionRegex.test(mod.resource)\n                    ) {\n                      // use original source to calculate hash since mod.hash\n                      // includes the source map in development which changes\n                      // every time for both server and client so we calculate\n                      // the hash without the source map for the page module\n                      const hash = (\n                        require('crypto') as typeof import('crypto')\n                      )\n                        .createHash('sha1')\n                        .update(mod.originalSource().buffer())\n                        .digest()\n                        .toString('hex')\n\n                      if (\n                        mod.layer === WEBPACK_LAYERS.reactServerComponents &&\n                        mod?.buildInfo?.rsc?.type !== 'client'\n                      ) {\n                        chunksHashServerLayer.add(hash)\n                      }\n\n                      chunksHash.add(hash)\n                    } else {\n                      // for non-pages we can use the module hash directly\n                      const hash = stats.chunkGraph.getModuleHash(\n                        mod,\n                        chunk.runtime\n                      )\n\n                      if (\n                        mod.layer === WEBPACK_LAYERS.reactServerComponents &&\n                        mod?.buildInfo?.rsc?.type !== 'client'\n                      ) {\n                        chunksHashServerLayer.add(hash)\n                      }\n\n                      chunksHash.add(hash)\n\n                      // Both CSS import changes from server and client\n                      // components are tracked.\n                      if (\n                        key.startsWith('app/') &&\n                        /\\.(css|scss|sass)$/.test(mod.resource || '')\n                      ) {\n                        const resourceKey = mod.layer + ':' + mod.resource\n                        const prevHash =\n                          prevCSSImportModuleHashes.get(resourceKey)\n                        if (prevHash && prevHash !== hash) {\n                          hasCSSModuleChanges = true\n                        }\n                        prevCSSImportModuleHashes.set(resourceKey, hash)\n                      }\n                    }\n                  })\n\n                  const prevHash = pageHashMap.get(key)\n                  const curHash = chunksHash.toString()\n                  if (prevHash && prevHash !== curHash) {\n                    changedItems.add(key)\n                  }\n                  pageHashMap.set(key, curHash)\n\n                  if (serverComponentChangedItems) {\n                    const serverKey =\n                      WEBPACK_LAYERS.reactServerComponents + ':' + key\n                    const prevServerHash = pageHashMap.get(serverKey)\n                    const curServerHash = chunksHashServerLayer.toString()\n                    if (prevServerHash && prevServerHash !== curServerHash) {\n                      serverComponentChangedItems.add(key)\n                    }\n                    pageHashMap.set(serverKey, curServerHash)\n                  }\n\n                  if (hasCSSModuleChanges) {\n                    changedCSSImportPages.add(key)\n                  }\n                }\n              })\n            }\n          })\n        } catch (err) {\n          console.error(err)\n        }\n      }\n\n    this.multiCompiler.compilers[0].hooks.emit.tap(\n      'NextjsHotReloaderForClient',\n      trackPageChanges(prevClientPageHashes, changedClientPages)\n    )\n    this.multiCompiler.compilers[1].hooks.emit.tap(\n      'NextjsHotReloaderForServer',\n      trackPageChanges(\n        prevServerPageHashes,\n        changedServerPages,\n        changedServerComponentPages\n      )\n    )\n    this.multiCompiler.compilers[2].hooks.emit.tap(\n      'NextjsHotReloaderForServer',\n      trackPageChanges(\n        prevEdgeServerPageHashes,\n        changedEdgeServerPages,\n        changedServerComponentPages\n      )\n    )\n\n    // This plugin watches for changes to _document.js and notifies the client side that it should reload the page\n    this.multiCompiler.compilers[1].hooks.failed.tap(\n      'NextjsHotReloaderForServer',\n      (err: Error) => {\n        this.serverError = err\n        this.serverStats = null\n        this.serverChunkNames = undefined\n      }\n    )\n\n    this.multiCompiler.compilers[2].hooks.done.tap(\n      'NextjsHotReloaderForServer',\n      (stats) => {\n        this.serverError = null\n        this.edgeServerStats = stats\n      }\n    )\n\n    this.multiCompiler.compilers[1].hooks.done.tap(\n      'NextjsHotReloaderForServer',\n      (stats) => {\n        this.serverError = null\n        this.serverStats = stats\n\n        if (!this.pagesDir) {\n          return\n        }\n\n        const { compilation } = stats\n\n        // We only watch `_document` for changes on the server compilation\n        // the rest of the files will be triggered by the client compilation\n        const documentChunk = compilation.namedChunks.get('pages/_document')\n        // If the document chunk can't be found we do nothing\n        if (!documentChunk) {\n          return\n        }\n\n        // Initial value\n        if (this.serverPrevDocumentHash === null) {\n          this.serverPrevDocumentHash = documentChunk.hash || null\n          return\n        }\n\n        // If _document.js didn't change we don't trigger a reload.\n        if (documentChunk.hash === this.serverPrevDocumentHash) {\n          return\n        }\n\n        // As document chunk will change if new app pages are joined,\n        // since react bundle is different it will effect the chunk hash.\n        // So we diff the chunk changes, if there's only new app page chunk joins,\n        // then we don't trigger a reload by checking pages/_document chunk change.\n        if (this.appDir) {\n          const chunkNames = new Set(compilation.namedChunks.keys())\n          const diffChunkNames = difference<string>(\n            this.serverChunkNames || new Set(),\n            chunkNames\n          )\n\n          if (\n            diffChunkNames.length === 0 ||\n            diffChunkNames.every((chunkName) => chunkName.startsWith('app/'))\n          ) {\n            return\n          }\n          this.serverChunkNames = chunkNames\n        }\n\n        this.serverPrevDocumentHash = documentChunk.hash || null\n\n        // Notify reload to reload the page, as _document.js was changed (different hash)\n        this.send({\n          type: HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE,\n          data: '_document has changed',\n        })\n      }\n    )\n\n    this.multiCompiler.hooks.done.tap('NextjsHotReloaderForServer', (stats) => {\n      const reloadAfterInvalidation = this.reloadAfterInvalidation\n      this.reloadAfterInvalidation = false\n\n      const serverOnlyChanges = difference<string>(\n        changedServerPages,\n        changedClientPages\n      )\n\n      const edgeServerOnlyChanges = difference<string>(\n        changedEdgeServerPages,\n        changedClientPages\n      )\n\n      const pageChanges = serverOnlyChanges\n        .concat(edgeServerOnlyChanges)\n        .filter((key) => key.startsWith('pages/'))\n\n      const middlewareChanges = [\n        ...Array.from(changedEdgeServerPages),\n        ...Array.from(changedServerPages),\n      ].filter((name) => isMiddlewareFilename(name))\n\n      if (middlewareChanges.length > 0) {\n        this.send({\n          type: HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES,\n        })\n      }\n\n      if (pageChanges.length > 0) {\n        this.send({\n          type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES,\n          pages: serverOnlyChanges.map((pg) =>\n            denormalizePagePath(pg.slice('pages'.length))\n          ),\n        })\n      }\n\n      if (\n        changedServerComponentPages.size ||\n        changedCSSImportPages.size ||\n        reloadAfterInvalidation\n      ) {\n        this.resetFetch()\n        this.refreshServerComponents(stats.hash)\n      }\n\n      changedClientPages.clear()\n      changedServerPages.clear()\n      changedEdgeServerPages.clear()\n      changedServerComponentPages.clear()\n      changedCSSImportPages.clear()\n    })\n\n    this.multiCompiler.compilers[0].hooks.failed.tap(\n      'NextjsHotReloaderForClient',\n      (err: Error) => {\n        this.clientError = err\n        this.clientStats = null\n      }\n    )\n    this.multiCompiler.compilers[0].hooks.done.tap(\n      'NextjsHotReloaderForClient',\n      (stats) => {\n        this.clientError = null\n        this.clientStats = stats\n\n        const { compilation } = stats\n        const chunkNames = new Set(\n          [...compilation.namedChunks.keys()].filter(\n            (name) => !!getRouteFromEntrypoint(name)\n          )\n        )\n\n        if (this.prevChunkNames) {\n          // detect chunks which have to be replaced with a new template\n          // e.g, pages/index.js <-> pages/_error.js\n          const addedPages = diff(chunkNames, this.prevChunkNames!)\n          const removedPages = diff(this.prevChunkNames!, chunkNames)\n\n          if (addedPages.size > 0) {\n            for (const addedPage of addedPages) {\n              const page = getRouteFromEntrypoint(addedPage)\n              this.send({\n                type: HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE,\n                data: [page],\n              })\n            }\n          }\n\n          if (removedPages.size > 0) {\n            for (const removedPage of removedPages) {\n              const page = getRouteFromEntrypoint(removedPage)\n              this.send({\n                type: HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE,\n                data: [page],\n              })\n            }\n          }\n        }\n\n        this.prevChunkNames = chunkNames\n      }\n    )\n\n    this.webpackHotMiddleware = new WebpackHotMiddleware(\n      this.multiCompiler.compilers,\n      this.versionInfo,\n      this.devtoolsFrontendUrl,\n      this.config,\n      initialDevToolsConfig\n    )\n\n    let booted = false\n\n    this.watcher = await new Promise((resolve) => {\n      const watcher = this.multiCompiler?.watch(\n        // @ts-ignore webpack supports an array of watchOptions when using a multiCompiler\n        this.activeWebpackConfigs.map((config) => config.watchOptions!),\n        // Errors are handled separately\n        (_err: any) => {\n          if (!booted) {\n            booted = true\n            resolve(watcher)\n          }\n        }\n      )\n    })\n\n    this.onDemandEntries = onDemandEntryHandler({\n      hotReloader: this,\n      multiCompiler: this.multiCompiler,\n      pagesDir: this.pagesDir,\n      appDir: this.appDir,\n      rootDir: this.dir,\n      nextConfig: this.config,\n      ...(this.config.onDemandEntries as {\n        maxInactiveAge: number\n        pagesBufferLength: number\n      }),\n    })\n\n    this.middlewares.push(\n      getOverlayMiddleware({\n        rootDirectory: this.dir,\n        isSrcDir: this.isSrcDir,\n        clientStats: () => this.clientStats,\n        serverStats: () => this.serverStats,\n        edgeServerStats: () => this.edgeServerStats,\n      }),\n      getSourceMapMiddleware({\n        clientStats: () => this.clientStats,\n        serverStats: () => this.serverStats,\n        edgeServerStats: () => this.edgeServerStats,\n      }),\n      getNextErrorFeedbackMiddleware(this.telemetry),\n      getDevOverlayFontMiddleware(),\n      getDisableDevIndicatorMiddleware(),\n      getRestartDevServerMiddleware({\n        telemetry: this.telemetry,\n        webpackCacheDirectories:\n          this.activeWebpackConfigs != null\n            ? getCacheDirectories(this.activeWebpackConfigs)\n            : undefined,\n      }),\n      devToolsConfigMiddleware({\n        distDir: this.distDir,\n        sendUpdateSignal: (data) => {\n          // Update the in-memory devToolsConfig value\n          // which will be used for the next onHMR call.\n          this.webpackHotMiddleware?.updateDevToolsConfig(data)\n\n          this.send({\n            type: HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG,\n            data,\n          })\n        },\n      }),\n      getAttachNodejsDebuggerMiddleware(),\n      ...(this.config.experimental.mcpServer\n        ? [\n            getMcpMiddleware({\n              projectPath: this.dir,\n              distDir: this.distDir,\n              nextConfig: this.config,\n              pagesDir: this.pagesDir,\n              appDir: this.appDir,\n              sendHmrMessage: (message) => this.send(message),\n              getActiveConnectionCount: () =>\n                this.webpackHotMiddleware?.getClientCount() ?? 0,\n              getDevServerUrl: () => process.env.__NEXT_PRIVATE_ORIGIN,\n            }),\n          ]\n        : [])\n    )\n    setStackFrameResolver(async (request) => {\n      return getOriginalStackFrames({\n        isServer: request.isServer,\n        isEdgeServer: request.isEdgeServer,\n        isAppDirectory: request.isAppDirectory,\n        frames: request.frames,\n        clientStats: () => this.clientStats,\n        serverStats: () => this.serverStats,\n        edgeServerStats: () => this.edgeServerStats,\n        rootDirectory: this.dir,\n      })\n    })\n  }\n\n  protected async afterCompile(_multiCompiler: webpack.MultiCompiler) {}\n\n  public invalidate(\n    { reloadAfterInvalidation }: { reloadAfterInvalidation: boolean } = {\n      reloadAfterInvalidation: false,\n    }\n  ) {\n    // Cache the `reloadAfterInvalidation` flag, and use it to reload the page when compilation is done\n    this.reloadAfterInvalidation = reloadAfterInvalidation\n    const outputPath = this.multiCompiler?.outputPath\n    if (outputPath) {\n      getInvalidator(outputPath)?.invalidate()\n    }\n  }\n\n  public async getCompilationErrors(page: string) {\n    const getErrors = ({ compilation }: webpack.Stats) => {\n      const failedPages = erroredPages(compilation)\n      const normalizedPage = normalizePathSep(page)\n      // If there is an error related to the requesting page we display it instead of the first error\n      return failedPages[normalizedPage]?.length > 0\n        ? failedPages[normalizedPage]\n        : compilation.errors\n    }\n\n    if (this.clientError) {\n      return [this.clientError]\n    } else if (this.serverError) {\n      return [this.serverError]\n    } else if (this.clientStats?.hasErrors()) {\n      return getErrors(this.clientStats)\n    } else if (this.serverStats?.hasErrors()) {\n      return getErrors(this.serverStats)\n    } else if (this.edgeServerStats?.hasErrors()) {\n      return getErrors(this.edgeServerStats)\n    } else {\n      return []\n    }\n  }\n\n  public send(message: HmrMessageSentToBrowser): void {\n    this.webpackHotMiddleware!.publish(message)\n  }\n\n  public sendToClient(client: ws, message: HmrMessageSentToBrowser): void {\n    this.webpackHotMiddleware!.publishToClient(client, message)\n  }\n\n  public sendToLegacyClients(message: HmrMessageSentToBrowser): void {\n    this.webpackHotMiddleware!.publishToLegacyClients(message)\n  }\n\n  public setCacheStatus(\n    status: ServerCacheStatus,\n    htmlRequestId: string\n  ): void {\n    const client = this.webpackHotMiddleware?.getClient(htmlRequestId)\n    if (client !== undefined) {\n      this.sendToClient(client, {\n        type: HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR,\n        state: status,\n      })\n    } else {\n      // If the client is not connected, store the status so that we can send it\n      // when the client connects.\n      this.cacheStatusesByRequestId.set(htmlRequestId, status)\n    }\n  }\n\n  public setReactDebugChannel(\n    debugChannel: ReactDebugChannelForBrowser,\n    htmlRequestId: string,\n    requestId: string\n  ): void {\n    const client = this.webpackHotMiddleware?.getClient(htmlRequestId)\n\n    if (htmlRequestId === requestId) {\n      // The debug channel is for the HTML request.\n      if (client) {\n        // If the client is connected, we can connect the debug channel for\n        // the HTML request immediately.\n        connectReactDebugChannel(\n          htmlRequestId,\n          debugChannel,\n          this.sendToClient.bind(this, client)\n        )\n      } else {\n        // Otherwise, we'll do that when the client connects and just store\n        // the debug channel.\n        setReactDebugChannelForHtmlRequest(htmlRequestId, debugChannel)\n      }\n    } else if (client) {\n      // The debug channel is for a subsequent request (e.g. client-side\n      // navigation for server function call). If the client is not connected\n      // anymore, we don't need to connect the debug channel.\n      connectReactDebugChannel(\n        requestId,\n        debugChannel,\n        this.sendToClient.bind(this, client)\n      )\n    }\n  }\n\n  public sendErrorsToBrowser(\n    errorsRscStream: ReadableStream<Uint8Array>,\n    htmlRequestId: string\n  ): void {\n    const client = this.webpackHotMiddleware?.getClient(htmlRequestId)\n\n    if (client) {\n      // If the client is connected, we can send the errors immediately.\n      sendSerializedErrorsToClient(\n        errorsRscStream,\n        this.sendToClient.bind(this, client)\n      )\n    } else {\n      // Otherwise, store the errors stream so that we can send it when the\n      // client connects.\n      setErrorsRscStreamForHtmlRequest(htmlRequestId, errorsRscStream)\n    }\n  }\n\n  public async ensurePage({\n    page,\n    clientOnly,\n    appPaths,\n    definition,\n    isApp,\n    url,\n  }: {\n    page: string\n    clientOnly: boolean\n    appPaths?: ReadonlyArray<string> | null\n    isApp?: boolean\n    definition?: RouteDefinition\n    url?: string\n  }): Promise<void> {\n    return this.hotReloaderSpan\n      .traceChild('ensure-page', {\n        inputPage: page,\n      })\n      .traceAsyncFn(async () => {\n        // Make sure we don't re-build or dispose prebuilt pages\n        if (page !== '/_error' && BLOCKED_PAGES.indexOf(page) !== -1) {\n          return\n        }\n        const error = clientOnly\n          ? this.clientError\n          : this.serverError || this.clientError\n        if (error) {\n          throw error\n        }\n\n        return this.onDemandEntries?.ensurePage({\n          page,\n          appPaths,\n          definition,\n          isApp,\n          url,\n        })\n      })\n  }\n\n  public close() {\n    // Report MCP telemetry if MCP server is enabled\n    recordMcpTelemetry(this.telemetry)\n\n    this.webpackHotMiddleware?.close()\n  }\n}\n"],"names":["StringXor","getOverlayMiddleware","getSourceMapMiddleware","getOriginalStackFrames","WebpackHotMiddleware","inspector","join","relative","isAbsolute","posix","dirname","createEntrypoints","finalizeEntrypoint","getClientEntry","getEdgeServerEntry","getAppEntry","runDependingOnPageType","getInstrumentationEntry","createPagesMapping","getStaticInfoIncludingLayouts","watchCompilers","Log","getBaseWebpackConfig","getCacheDirectories","loadProjectInfo","APP_DIR_ALIAS","WEBPACK_LAYERS","recursiveDeleteSyncWithAsyncRetries","BLOCKED_PAGES","CLIENT_STATIC_FILES_RUNTIME_MAIN","CLIENT_STATIC_FILES_RUNTIME_MAIN_APP","CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH","COMPILER_NAMES","RSC_MODULE_TYPES","findPageFile","BUILDING","getEntries","EntryTypes","getInvalidator","onDemandEntryHandler","denormalizePagePath","normalizePathSep","getRouteFromEntrypoint","difference","isInstrumentationHookFile","isMiddlewareFile","isMiddlewareFilename","DecodeError","trace","getProperError","ws","existsSync","promises","fs","isAPIRoute","getRouteLoaderEntry","isInternalComponent","isNonRoutePagesPage","RouteKind","HMR_MESSAGE_SENT_TO_BROWSER","PAGE_TYPES","FAST_REFRESH_RUNTIME_RELOAD","getNextErrorFeedbackMiddleware","getDevOverlayFontMiddleware","getDisableDevIndicatorMiddleware","getWebpackBundler","getRestartDevServerMiddleware","checkFileSystemCacheInvalidationAndCleanup","receiveBrowserLogsWebpack","handleClientFileLogs","devToolsConfigMiddleware","getDevToolsConfig","getAttachNodejsDebuggerMiddleware","InvariantError","connectReactDebugChannel","connectReactDebugChannelForHtmlRequest","deleteReactDebugChannelForHtmlRequest","setReactDebugChannelForHtmlRequest","getVersionInfo","matchNextPageBundleRequest","getMcpMiddleware","setStackFrameResolver","recordMcpTelemetry","getFileLogger","sendSerializedErrorsToClient","sendSerializedErrorsToClientForHtmlRequest","setErrorsRscStreamForHtmlRequest","MILLISECONDS_IN_NANOSECOND","BigInt","diff","a","b","Set","filter","v","has","wsServer","Server","noServer","renderScriptError","res","error","verbose","setHeader","code","finished","undefined","console","stack","statusCode","end","addCorsSupport","req","url","startsWith","preflight","headers","origin","method","writeHead","findEntryModule","module","compilation","issuer","moduleGraph","getIssuer","erroredPages","failedPages","errors","entryModule","name","enhancedName","push","HotReloaderWebpack","constructor","dir","config","isSrcDir","pagesDir","distDir","buildId","encryptionKey","previewProps","rewrites","appDir","telemetry","resetFetch","lockfile","onDevServerCleanup","clientError","serverError","hmrServerError","pagesMapping","versionInfo","staleness","installed","reloadAfterInvalidation","cacheStatusesByRequestId","Map","hasAppRouterEntrypoints","hasPagesRouterEntrypoints","middlewares","clientStats","serverStats","edgeServerStats","serverPrevDocumentHash","hotReloaderSpan","version","process","env","__NEXT_VERSION","stop","mcpServerEnabled","experimental","mcpServer","fileLogger","initialize","unlock","run","parsedUrl","handlePageBundleRequest","pageBundleRes","parsedPageBundleUrl","pathname","params","decodedPagePath","path","map","param","decodeURIComponent","_","page","indexOf","ensurePage","clientOnly","getCompilationErrors","length","middleware","calledNext","setHmrServerError","clearHmrServerError","send","type","RELOAD_PAGE","data","refreshServerComponents","hash","SERVER_COMPONENT_CHANGES","onHMR","_socket","head","callback","handleUpgrade","socket","client","htmlRequestId","URL","searchParams","get","webpackHotMiddleware","onDemandEntries","enableCacheComponents","cacheComponents","isLegacyClient","addEventListener","toString","payload","JSON","parse","traceChild","event","spanName","startTime","Math","floor","attrs","attributes","endTime","updatedModules","m","replace","appPagesBrowser","isPageHidden","errorCount","warningCount","stackTrace","hadRuntimeError","warn","fileMessage","file","exec","fileUrl","cwd","modules","getAll","filepath","slice","pagesDirBrowser","cleanedFilePath","browserToTerminalConfig","logging","browserToTerminal","entries","router","sourceType","rootDirectory","logs","manualTraceChild","clientId","id","sendToClient","bind","status","CACHE_INDICATOR","state","delete","on","deleteClient","clean","span","traceAsyncFn","getWebpackConfig","webpackConfigSpan","pageExtensions","pagePaths","Promise","all","isDev","pagesType","PAGES","i","appDirOnly","Boolean","entrypoints","envFiles","pages","previewMode","rootDir","commonWebpackOptions","dev","originalRewrites","_originalRewrites","originalRedirects","_originalRedirects","runWebpackSpan","info","compilerType","server","edgeServer","buildFallbackError","fallbackWatcher","fallbackConfig","beforeFiles","afterFiles","fallback","isDevFallback","fallbackCompiler","resolve","bootedFallbackCompiler","watch","watchOptions","_err","tracedGetVersionInfo","versionInfoSpan","start","startSpan","inspectorURLRaw","inspectorURL","debugInfo","debugInfoList","fetch","host","then","json","devtoolsFrontendUrl","mkdir","recursive","initialDevToolsConfig","distPackageJsonPath","writeFile","activeWebpackConfigs","defaultEntry","entry","args","outputPath","multiCompiler","isClientCompilation","isNodeServerCompilation","isEdgeServerCompilation","Object","keys","entryKey","entryData","bundlePath","dispose","result","key","isEntry","ENTRY","isChildEntry","CHILD_ENTRY","pageExists","absolutePagePath","absoluteEntryFilePath","hasAppDir","isAppPath","staticInfo","isInsideAppDir","pageFilePath","isServerComponent","rsc","pageType","APP","ROOT","isInstrumentation","pageRuntime","runtime","onEdgeServer","normalizedBundlePath","value","isEdgeServer","appDirLoader","appPaths","allNormalizedAppPaths","pagePath","tsconfigPath","typescript","basePath","assetPrefix","nextConfigOutput","output","preferredRegion","middlewareConfig","Buffer","from","stringify","isGlobalNotFoundEnabled","globalNotFound","import","onClient","request","onServer","relativeRequest","context","require","kind","PAGES_API","parallelism","Array","afterCompile","inputFileSystem","compilers","compiler","fsStartTime","Date","now","hooks","beforeRun","intercept","register","tapInfo","done","tap","purge","changedClientPages","changedServerPages","changedEdgeServerPages","changedServerComponentPages","changedCSSImportPages","prevClientPageHashes","prevServerPageHashes","prevEdgeServerPageHashes","prevCSSImportModuleHashes","pageExtensionRegex","RegExp","trackPageChanges","pageHashMap","changedItems","serverComponentChangedItems","stats","forEach","chunks","chunk","modsIterable","chunkGraph","getChunkModulesIterable","hasCSSModuleChanges","chunksHash","chunksHashServerLayer","mod","resource","includes","test","createHash","update","originalSource","buffer","digest","layer","reactServerComponents","buildInfo","add","getModuleHash","resourceKey","prevHash","set","curHash","serverKey","prevServerHash","curServerHash","err","emit","failed","serverChunkNames","documentChunk","namedChunks","chunkNames","diffChunkNames","every","chunkName","serverOnlyChanges","edgeServerOnlyChanges","pageChanges","concat","middlewareChanges","MIDDLEWARE_CHANGES","SERVER_ONLY_CHANGES","pg","size","clear","prevChunkNames","addedPages","removedPages","addedPage","ADDED_PAGE","removedPage","REMOVED_PAGE","booted","watcher","hotReloader","nextConfig","webpackCacheDirectories","sendUpdateSignal","updateDevToolsConfig","DEVTOOLS_CONFIG","projectPath","sendHmrMessage","message","getActiveConnectionCount","getClientCount","getDevServerUrl","__NEXT_PRIVATE_ORIGIN","isServer","isAppDirectory","frames","_multiCompiler","invalidate","getErrors","normalizedPage","hasErrors","publish","publishToClient","sendToLegacyClients","publishToLegacyClients","setCacheStatus","getClient","setReactDebugChannel","debugChannel","requestId","sendErrorsToBrowser","errorsRscStream","definition","isApp","inputPage","close"],"mappings":"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","ignoreList":[0]}