Rocky_Mountain_Vending/.pnpm-store/v10/files/93/1a0c6b58ff1a76c32e9db99b4fdb84c28b02ddaa0ed9d3c9970ec40a8936c2adc75415f48716b3986357ac936140d1a2280a167fdfd7e2bcbdefc1a326db75
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

1 line
No EOL
103 KiB
Text

{"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 { join, relative, isAbsolute, posix, dirname } from 'path'\nimport {\n createEntrypoints,\n createPagesMapping,\n finalizeEntrypoint,\n getClientEntry,\n getEdgeServerEntry,\n getAppEntry,\n runDependingOnPageType,\n getInstrumentationEntry,\n} from '../../build/entries'\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 { getNodeDebugType } from '../lib/utils'\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 { InvariantError } from '../../shared/lib/invariant-error'\nimport {\n connectReactDebugChannel,\n deleteReactDebugChannel,\n setReactDebugChannel,\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'\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 private dir: string\n private buildId: string\n private encryptionKey: string\n private middlewares: ((\n req: IncomingMessage,\n res: ServerResponse,\n next: () => void\n ) => Promise<void>)[]\n private pagesDir?: string\n private distDir: string\n private webpackHotMiddleware?: WebpackHotMiddleware\n private 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 private previewProps: __ApiPreviewProps\n private watcher: any\n private rewrites: CustomRoutes['rewrites']\n private fallbackWatcher: any\n private hotReloaderSpan: Span\n private pagesMapping: { [key: string]: string } = {}\n private 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 requestId = 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, requestId)\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 = !requestId || !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 if (this.config.experimental.browserDebugInfoInTerminal) {\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: this.config.experimental.browserDebugInfoInTerminal,\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 (requestId) {\n connectReactDebugChannel(\n requestId,\n this.sendToClient.bind(this, client)\n )\n if (enableCacheComponents) {\n const status = this.cacheStatusesByRequestId.get(requestId)\n if (status) {\n this.sendToClient(client, {\n type: HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR,\n state: status,\n })\n this.cacheStatusesByRequestId.delete(requestId)\n }\n }\n }\n\n client.on('close', () => {\n this.webpackHotMiddleware?.deleteClient(client, requestId)\n\n if (requestId) {\n deleteReactDebugChannel(requestId)\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 nodeDebugType = getNodeDebugType()\n if (nodeDebugType && !this.devtoolsFrontendUrl) {\n const debugPort = process.debugPort\n let debugInfo\n try {\n // It requires to use 127.0.0.1 instead of localhost for server-side fetching.\n const debugInfoList = await fetch(\n `http://127.0.0.1:${debugPort}/json/list`\n ).then((res) => res.json())\n // There will be only one item for current process, so always get the first item.\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 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 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 // 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 = [\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 ...(this.config.experimental.mcpServer\n ? [\n getMcpMiddleware({\n projectPath: this.dir,\n distDir: this.distDir,\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\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 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 requestId: 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(requestId, status)\n }\n }\n\n public setReactDebugChannel(\n debugChannel: ReactDebugChannelForBrowser,\n htmlRequestId: string,\n requestId: string\n ): void {\n // Store the debug channel, regardless of whether the client is connected.\n setReactDebugChannel(requestId, debugChannel)\n\n // If the client is connected, we can connect the debug channel immediately.\n // Otherwise, we'll do that when the client connects.\n const client = this.webpackHotMiddleware?.getClient(htmlRequestId)\n\n if (client) {\n connectReactDebugChannel(requestId, this.sendToClient.bind(this, client))\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","join","relative","isAbsolute","posix","dirname","createEntrypoints","createPagesMapping","finalizeEntrypoint","getClientEntry","getEdgeServerEntry","getAppEntry","runDependingOnPageType","getInstrumentationEntry","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","getNodeDebugType","getNextErrorFeedbackMiddleware","getDevOverlayFontMiddleware","getDisableDevIndicatorMiddleware","getWebpackBundler","getRestartDevServerMiddleware","checkFileSystemCacheInvalidationAndCleanup","receiveBrowserLogsWebpack","handleClientFileLogs","devToolsConfigMiddleware","getDevToolsConfig","InvariantError","connectReactDebugChannel","deleteReactDebugChannel","setReactDebugChannel","getVersionInfo","matchNextPageBundleRequest","getMcpMiddleware","setStackFrameResolver","recordMcpTelemetry","getFileLogger","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","requestId","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","browserDebugInfoInTerminal","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","nodeDebugType","devtoolsFrontendUrl","debugPort","debugInfo","debugInfoList","fetch","then","json","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","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","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","invalidate","getErrors","normalizedPage","hasErrors","publish","publishToClient","sendToLegacyClients","publishToLegacyClients","setCacheStatus","htmlRequestId","getClient","debugChannel","definition","isApp","inputPage","close"],"mappings":"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","ignoreList":[0]}